diff options
| author | Adam Soltys <[email protected]> | 2024-10-23 10:32:57 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2024-10-23 10:32:57 -0700 |
| commit | 53c1198f0ccfad1c1ea95ab87be7244b8a61b2a6 (patch) | |
| tree | 05dfd147b48d6a95f00beb01a128e187eb05cc18 | |
| parent | b21b2c01b0294427fd799249a4670415c256df3f (diff) | |
| download | coinos-ui-53c1198f0ccfad1c1ea95ab87be7244b8a61b2a6.tar.gz coinos-ui-53c1198f0ccfad1c1ea95ab87be7244b8a61b2a6.zip | |
no more slow fee rate
| -rw-r--r-- | .env.staging | 8 | ||||
| -rw-r--r-- | src/routes/(app)/+layout.server.ts | 91 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/(profile)/+page.svelte | 48 | ||||
| -rw-r--r-- | src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.server.ts | 76 | ||||
| -rw-r--r-- | src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.svelte | 11 | ||||
| -rw-r--r-- | src/routes/+layout.server.ts | 7 |
6 files changed, 124 insertions, 117 deletions
diff --git a/.env.staging b/.env.staging index 9f7d8f4b..fa6cb6ff 100644 --- a/.env.staging +++ b/.env.staging @@ -1,6 +1,10 @@ -PUBLIC_COINOS_URL=https://dev.coinos.io/api +PUBLIC_COINOS_URL=http://localhost:3119 PUBLIC_BTC=6f0279e9ed041c3d710a9f57d0c02928416460c4b722ae3457a11eec381c526d PUBLIC_SOCKET=wss://dev.coinos.io/ws PUBLIC_EXPLORER=https://mempool.space +PUBLIC_LIQUID_EXPLORER=https://liquid.network PUBLIC_DOMAIN=dev.coinos.io -ORIGIN=https://dev.coinos.io +PUBLIC_COINOS_PUBKEY=ba80990666ef0b6f4ba5059347beb13242921e54669e680064ca755256a1e3a6 +PUBLIC_COINOS_RELAY=wss://relay.coinos.io +PUBLIC_COINOS_NETWORK=regtest +PUBLIC_VAPID_PUBKEY=BEfgMDTeAn1F8ZQUGC6v5iKTD86zYXaa3QVr1E-ylKXC5c24JplcfSAN9PDlXAsVtUd3cU6j4-LsX_TKQzz_yDQ diff --git a/src/routes/(app)/+layout.server.ts b/src/routes/(app)/+layout.server.ts index 5824d36a..b5a279f2 100644 --- a/src/routes/(app)/+layout.server.ts +++ b/src/routes/(app)/+layout.server.ts @@ -1,56 +1,59 @@ +import { auth, get, protectedRoutes, sleep } from "$lib/utils"; import { error, redirect } from "@sveltejs/kit"; -import { get, auth, protectedRoutes } from "$lib/utils"; export async function load({ cookies, request, url, params }) { - let { pathname } = url; - let { username } = params; - let token = cookies.get("token"); - let rate, - rates = { USD: 1 }; + const { pathname } = url; + const { username } = params; + const token = cookies.get("token"); + let rate; + let rates = { USD: 1 }; - let user; - if (token) { - try { - user = await get("/me", auth(cookies)); - } catch (e) {} - } + let user; + if (token) { + try { + user = await get("/me", auth(cookies)); + } catch (e) { + if (e.message.startsWith("Rate")) await sleep(3000); + user = await get("/me", auth(cookies)); + } + } - let subject; - if (username) { - try { - subject = await get(`/users/${username}`); - } catch (e) { - error(500, "Unable to retrieve user account data"); - } - } + let subject; + if (username) { + try { + subject = await get(`/users/${username}`); + } catch (e) { + error(500, "Unable to retrieve user account data"); + } + } - if (user?.needsMigration) { - redirect(307, `/migrate`); - } + if (user?.needsMigration) { + redirect(307, "/migrate"); + } - if ( - user && - ["/login", "/register"].includes(pathname) && - request.method === "GET" - ) { - redirect(307, `/${user.username}`); - } + if ( + user && + ["/login", "/register"].includes(pathname) && + request.method === "GET" + ) { + redirect(307, `/${user.username}`); + } - if (protectedRoutes.find((p) => pathname.match(p)) && !user) { - redirect(307, "/login"); - } + if (protectedRoutes.find((p) => pathname.match(p)) && !user) { + redirect(307, "/login"); + } - if (user && !user.pubkey && !pathname.includes("generate")) { - console.log("user missing pubkey", user); - redirect(303, `/generate`); - } + if (user && !user.pubkey && !pathname.includes("generate")) { + console.log("user missing pubkey", user); + redirect(303, "/generate"); + } - try { - rate = await get("/rate"); - rates = await get("/rates"); - } catch (e) { - console.log(e); - } + try { + rate = await get("/rate"); + rates = await get("/rates"); + } catch (e) { + console.log(e); + } - return { user, token, rate, rates, subject }; + return { user, token, rate, rates, subject }; } diff --git a/src/routes/(app)/[username]/(profile)/+page.svelte b/src/routes/(app)/[username]/(profile)/+page.svelte index bd9537b1..7de6ec37 100644 --- a/src/routes/(app)/[username]/(profile)/+page.svelte +++ b/src/routes/(app)/[username]/(profile)/+page.svelte @@ -40,34 +40,32 @@ {/each} </div> - <div class="flex justify-center gap-2"> - <a href={`/account/savings`} class="contents"> - <button - class="rounded-2xl py-5 px-6 hover:opacity-80 flex w-full justify-center bg-primary" - > - <div class="mx-auto flex gap-2"> - <Icon icon="plus" style="w-8 mx-auto" /> - <div class="my-auto text-xl whitespace-nowrap"> - {$t("accounts.addAccount")} - </div> + <a href={`/account/savings`} class="contents"> + <button + class="rounded-2xl py-5 px-6 hover:opacity-80 flex w-full justify-center bg-primary" + > + <div class="mx-auto flex gap-2"> + <Icon icon="plus" style="w-8 mx-auto" /> + <div class="my-auto text-xl whitespace-nowrap"> + {$t("accounts.addAccount")} </div> - </button> - </a> + </div> + </button> + </a> - {#if $installPrompt} - <button - class="rounded-2xl border py-5 px-6 font-bold hover:opacity-80 flex bg-black text-white xl:hidden w-full justify-center" - on:click={install} - > - <div class="mx-auto flex gap-2"> - <Icon icon="save" style="w-8 mx-auto invert" /> - <div class="my-auto text-xl whitespace-nowrap"> - {$t("user.install")} - </div> + {#if $installPrompt} + <button + class="rounded-2xl border py-5 px-6 font-bold hover:opacity-80 flex bg-black text-white xl:hidden w-full justify-center" + on:click={install} + > + <div class="mx-auto flex gap-2"> + <Icon icon="save" style="w-8 mx-auto invert" /> + <div class="my-auto text-xl whitespace-nowrap"> + {$t("user.install")} </div> - </button> - {/if} - </div> + </div> + </button> + {/if} {/if} <Items {items} {subject} {user} {total} {currency} {rate} /> diff --git a/src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.server.ts b/src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.server.ts index 77fd8a4d..1122e689 100644 --- a/src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.server.ts +++ b/src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.server.ts @@ -1,49 +1,49 @@ +import { auth, fd, get, post } from "$lib/utils"; import { fail, redirect } from "@sveltejs/kit"; -import { auth, get, post, fd } from "$lib/utils"; export async function load({ params: { address, amount, feeRate }, cookies }) { - let aid = cookies.get("aid"); + const aid = cookies.get("aid"); - try { - let { fee, fees, inputs, ourfee, hex } = await post( - "/bitcoin/fee", - { address, amount, feeRate, aid }, - auth(cookies), - ); + try { + const { fee, fees, inputs, ourfee, hex } = await post( + "/bitcoin/fee", + { address, amount, feeRate, aid }, + auth(cookies), + ); - let account = await get(`/account/${aid}`, auth(cookies)); + const account = await get(`/account/${aid}`, auth(cookies)); - return { - account, - amount, - address, - fee, - fees, - feeRate, - ourfee, - hex, - inputs, - }; - } catch (e: any) { - return { amount, address, feeRate, message: e.message }; - } + return { + account, + amount, + address, + fee, + fees, + feeRate, + ourfee, + hex, + inputs, + }; + } catch (e: any) { + return { amount, address, feeRate, message: e.message }; + } } export const actions = { - default: async ({ - cookies, - params: { address, amount, feeRate }, - request, - }) => { - let p; - try { - let body = await fd(request); - p = await post("/bitcoin/send", body, auth(cookies)); - } catch (e: any) { - console.log("problem sending bitcoin", e); - return fail(400, { address, amount, feeRate, message: e.message }); - } + default: async ({ + cookies, + params: { address, amount, feeRate }, + request, + }) => { + let p; + try { + const body = await fd(request); + p = await post("/bitcoin/send", body, auth(cookies)); + } catch (e: any) { + console.log("problem sending bitcoin", e); + return fail(400, { address, amount, feeRate, message: e.message }); + } - redirect(307, `/sent/${p.id}`); - }, + redirect(307, `/sent/${p.id}`); + }, }; diff --git a/src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.svelte b/src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.svelte index ba87436f..903bd372 100644 --- a/src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.svelte +++ b/src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.svelte @@ -98,7 +98,7 @@ data); if (!fees) return; delete fees.minimumFee; - feeRate = closest(Object.values(fees), feeRate); + feeRate = feeRate ? closest(Object.values(fees), feeRate) : fees.halfHourFee; if (!$rate) $rate = rates[currency]; }; @@ -106,10 +106,9 @@ let submitting, submit, showSettings; let feeNames = { - fastestFee: "Fastest", - halfHourFee: "Fast", - hourFee: "Medium", - economyFee: "Slow", + fastestFee: $t("payments.fastest"), + halfHourFee: $t("payments.fast"), + hourFee: $t("payments.medium"), }; let toggleSettings = () => (showSettings = !showSettings); @@ -152,7 +151,7 @@ on:change={setFee} class="border text-lg bg-white p-4 rounded-2xl text-center my-auto" > - {#each Object.keys(fees) as feeName} + {#each Object.keys(feeNames) as feeName} <option value={fees[feeName]} >{feeNames[feeName]} — ⚡️{fees[feeName]}/vb</option > diff --git a/src/routes/+layout.server.ts b/src/routes/+layout.server.ts index a18ba506..b4022e69 100644 --- a/src/routes/+layout.server.ts +++ b/src/routes/+layout.server.ts @@ -3,7 +3,7 @@ import { loadTranslations, locales, } from "$lib/translations/index"; -import { auth, get } from "$lib/utils"; +import { auth, get, sleep } from "$lib/utils"; export const load = async ({ cookies, request, url }) => { const { host, pathname } = url; @@ -12,7 +12,10 @@ export const load = async ({ cookies, request, url }) => { if (token) { try { user = await get("/me", auth(cookies)); - } catch (e) {} + } catch (e) { + if (e.message.startsWith("Rate")) await sleep(3000); + user = await get("/me", auth(cookies)); + } } // Try to get the locale from cookie |
