aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2022-10-01 15:28:35 -0700
committerAdam Soltys <[email protected]>2022-10-01 15:28:38 -0700
commitcb272477247582355d38bc6c47b1795801689a55 (patch)
tree9480acdafbc6c80b47c775010a743c7265cbf410 /src
parent17e470bfc8453f2b83b2a916a936f33f6d03bae1 (diff)
downloadcoinos-ui-cb272477247582355d38bc6c47b1795801689a55.tar.gz
coinos-ui-cb272477247582355d38bc6c47b1795801689a55.zip
send lightning endpoint
Diffstat (limited to 'src')
-rw-r--r--src/lib/parse.js18
-rw-r--r--src/routes/send/bitcoin/[address]/+page.svelte2
-rw-r--r--src/routes/send/lightning/+page.svelte0
-rw-r--r--src/routes/send/lightning/[payreq]/+page.server.js14
-rw-r--r--src/routes/send/lightning/[payreq]/+page.svelte42
5 files changed, 65 insertions, 11 deletions
diff --git a/src/lib/parse.js b/src/lib/parse.js
index e503a723..95d0a8b6 100644
--- a/src/lib/parse.js
+++ b/src/lib/parse.js
@@ -5,27 +5,25 @@ import { get } from '$lib/utils';
import { goto } from '$app/navigation';
let debounce;
-export default async (text) => {
- if (!text) return;
+export default async (t) => {
+ if (!t) return;
console.log('parsing');
// lightning
- if (text.startsWith('ln')) {
- try {
- console.log('lightning');
- } catch (e) {}
+ if (t.startsWith('ln')) {
+ goto(`/send/lightning/${t}`);
}
// bitcoin
- if (validate(text)) {
+ if (validate(t)) {
console.log('bitcoin');
- goto(`/send/bitcoin/${text}`);
+ goto(`/send/bitcoin/${t}`);
}
// ln address
- if (text.includes('@') && text.includes('.')) {
+ if (t.includes('@') && t.includes('.')) {
console.log('ln address');
- let [name, domain] = text.split('@');
+ let [name, domain] = t.split('@');
try {
clearTimeout(debounce);
await new Promise((r) => (debounce = setTimeout(r, 1500)));
diff --git a/src/routes/send/bitcoin/[address]/+page.svelte b/src/routes/send/bitcoin/[address]/+page.svelte
index fd635fd5..2b472124 100644
--- a/src/routes/send/bitcoin/[address]/+page.svelte
+++ b/src/routes/send/bitcoin/[address]/+page.svelte
@@ -1,5 +1,5 @@
<script>
- import { AppHeader, Icon, Numpad } from '$comp';
+ import { AppHeader, Icon, Numpad, Spinner } from '$comp';
import { page } from '$app/stores';
import { back } from '$lib/utils';
export let data;
diff --git a/src/routes/send/lightning/+page.svelte b/src/routes/send/lightning/+page.svelte
deleted file mode 100644
index e69de29b..00000000
--- a/src/routes/send/lightning/+page.svelte
+++ /dev/null
diff --git a/src/routes/send/lightning/[payreq]/+page.server.js b/src/routes/send/lightning/[payreq]/+page.server.js
new file mode 100644
index 00000000..0030d690
--- /dev/null
+++ b/src/routes/send/lightning/[payreq]/+page.server.js
@@ -0,0 +1,14 @@
+import { redirect } from '@sveltejs/kit';
+import { btc as asset, auth, post } from '$lib/utils';
+
+export async function load({ params }) {
+ return post('/lightning/parse', params);
+}
+
+export const actions = {
+ default: async ({ request }) => {
+ let body = Object.fromEntries(await request.formData());
+ await post('/lightning/send', body, auth(request));
+ throw redirect(307, '/sent');
+ }
+};
diff --git a/src/routes/send/lightning/[payreq]/+page.svelte b/src/routes/send/lightning/[payreq]/+page.svelte
new file mode 100644
index 00000000..79fc1c44
--- /dev/null
+++ b/src/routes/send/lightning/[payreq]/+page.svelte
@@ -0,0 +1,42 @@
+<script>
+ import { AppHeader, Icon, Numpad, Spinner } from '$comp';
+ import { page } from '$app/stores';
+ import { back } from '$lib/utils';
+ export let data;
+
+ let { payreq } = $page.params;
+
+ let { currency } = data.user;
+ let amount, loading;
+
+ console.log(data)
+</script>
+
+<button class="ml-5 md:ml-20 mt-5 md:mt-10 hover:opacity-80" on:click={back}>
+ <Icon icon="arrow-left" style="w-10" />
+</button>
+
+<div class="container px-4 mt-20 max-w-xl mx-auto">
+ <div class="text-center mb-8">
+ <h1 class="text-3xl md:text-4xl font-semibold mb-2">Send to</h1>
+ <p class="text-lg text-secondary">{payreq}</p>
+ </div>
+ <Numpad bind:amount {currency} />
+
+ <form method="POST">
+ <input name="payreq" value={payreq} type="hidden" />
+ <input name="amount" value={amount} type="hidden" />
+ <div class="flex w-full">
+ <button
+ type="submit"
+ class="opacity-100 hover:opacity-80'} rounded-2xl border py-3 font-bold mx-auto mt-2 bg-black text-white px-4 w-24"
+ >
+ {#if loading}
+ <Spinner />
+ {:else}
+ Send
+ {/if}
+ </button>
+ </div>
+ </form>
+</div>