aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2024-09-16 16:07:43 -0700
committerAdam Soltys <[email protected]>2024-09-16 16:07:43 -0700
commit55297eeaae86fee264f6fc05c95bfc703be1056f (patch)
tree77c4fc0555673647d7d37cb63f4c3e4f1572c905 /src
parent321cfecb92104a6be0bce64dfc2c7358f20983f8 (diff)
downloadcoinos-ui-55297eeaae86fee264f6fc05c95bfc703be1056f.tar.gz
coinos-ui-55297eeaae86fee264f6fc05c95bfc703be1056f.zip
nwc
Diffstat (limited to 'src')
-rw-r--r--src/lib/nostr.ts6
-rw-r--r--src/locales/en.json1
-rw-r--r--src/routes/(app)/[username]/(profile)/+layout.svelte51
3 files changed, 43 insertions, 15 deletions
diff --git a/src/lib/nostr.ts b/src/lib/nostr.ts
index fce09d30..1a02114d 100644
--- a/src/lib/nostr.ts
+++ b/src/lib/nostr.ts
@@ -22,9 +22,6 @@ import wordlist from "$lib/english";
import { bech32m } from "@scure/base";
import { generateSeedWords, privateKeyFromSeedWords } from "nostr-tools/nip06";
-import { PUBLIC_COINOS_PUBKEY } from "$env/static/public";
-
-let damus = "wss://relay.damus.io";
type User = {
[key: string]: any;
@@ -178,6 +175,3 @@ export let reEncryptEntropy = async (user: User, newPassword: string) => {
return encode("en", toWords(bytes), 180);
};
-
-export let nwc = (user: User) =>
- `nostr+walletconnect://${PUBLIC_COINOS_PUBKEY}?relay=${damus}&secret=${user.nwc}`;
diff --git a/src/locales/en.json b/src/locales/en.json
index f1d96157..29929c6b 100644
--- a/src/locales/en.json
+++ b/src/locales/en.json
@@ -159,6 +159,7 @@
"moreDetails": "Profile details",
"noMessages": "You have not sent or received any messages",
"profilePage": "Profile page",
+ "nwc": "Nostr wallet connect",
"nostrPubkey": "Nostr pubkey",
"requestPayment": "Request Payment",
"welcome": "Welcome! Your account balance is empty. You can start by making a deposit or by asking someone to pay you.",
diff --git a/src/routes/(app)/[username]/(profile)/+layout.svelte b/src/routes/(app)/[username]/(profile)/+layout.svelte
index 3a1dee56..c4750581 100644
--- a/src/routes/(app)/[username]/(profile)/+layout.svelte
+++ b/src/routes/(app)/[username]/(profile)/+layout.svelte
@@ -6,6 +6,10 @@
import { sign, send } from "$lib/nostr";
import { bech32m } from "@scure/base";
import { page } from "$app/stores";
+ import {
+ PUBLIC_COINOS_PUBKEY as pk,
+ PUBLIC_COINOS_RELAY as relay,
+ } from "$env/static/public";
export let data;
@@ -15,7 +19,7 @@
$: ({ events, user, subject, src, rates, text } = data);
$: ({ currency, username: n, display } = subject);
- $: stripped = n.replace(/\s/g, "")
+ $: stripped = n.replace(/\s/g, "");
$: username = n.length > 60 ? n.substr(0, 6) : display || stripped;
$: npub =
subject.pubkey &&
@@ -23,13 +27,12 @@
$: lnaddr = `${stripped}@${$page.url.host}`;
$: profile = `${$page.url.host}/${stripped}`;
+ $: nwc = `nostr+walletconnect://${pk}?relay=${encodeURIComponent(
+ relay
+ )}&secret=${user.nwc}`;
+
let follow = async () => {
- user.follows.push([
- "p",
- subject.pubkey,
- "wss://nostr.coinos.io",
- stripped,
- ]);
+ user.follows.push(["p", subject.pubkey, "wss://nostr.coinos.io", stripped]);
update();
};
@@ -118,7 +121,11 @@
<div class="mt-1">
{$t("user.moreDetails")}
</div>
- <div class:-rotate-90={showDetails} class:rotate-180={!showDetails} class="my-auto">
+ <div
+ class:-rotate-90={showDetails}
+ class:rotate-180={!showDetails}
+ class="my-auto"
+ >
<Icon icon="chevron-left" style="w-6 mr-2" />
</div>
</button>
@@ -136,7 +143,12 @@
<button class="my-auto" on:click={() => copy(profile)}
><Icon icon="copy" style="max-w-max w-8 min-w-[32px]" /></button
>
- <a href={`/qr/${encodeURIComponent(`${$page.url.protocol}//${profile}`)}`} class="my-auto">
+ <a
+ href={`/qr/${encodeURIComponent(
+ `${$page.url.protocol}//${profile}`
+ )}`}
+ class="my-auto"
+ >
<Icon icon="qr" style="invert max-w-max min-w-[32px]" />
</a>
</div>
@@ -174,6 +186,27 @@
</div>
</div>
</div>
+ {#if user.id === subject.id}
+ <div>
+ <div class="font-bold">{$t("user.nwc")}</div>
+ <div class="flex gap-4">
+ <div class="break-all grow text-secondary">
+ {nwc}
+ </div>
+ <div class="flex my-auto gap-1">
+ <button class="my-auto" on:click={() => copy(nwc)}
+ ><Icon
+ icon="copy"
+ style="max-w-max w-8 min-w-[32px]"
+ /></button
+ >
+ <a href={`/qr/${encodeURIComponent(nwc)}`} class="my-auto">
+ <Icon icon="qr" style="invert max-w-max min-w-[32px]" />
+ </a>
+ </div>
+ </div>
+ </div>
+ {/if}
</div>
{/if}