aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes
diff options
context:
space:
mode:
authorAdrien Hopkins <[email protected]>2025-09-05 19:43:20 -0500
committerAdrien Hopkins <[email protected]>2025-09-05 19:43:20 -0500
commitfd098a90952269db708f4d2d21de085c968e835e (patch)
treebb355ee885762e27161a77c55ae17a46b93f8323 /src/routes
parent4a2af45b77bb36a81b7f29908b3b320ddb76a769 (diff)
downloadcoinos-ui-fd098a90952269db708f4d2d21de085c968e835e.tar.gz
coinos-ui-fd098a90952269db708f4d2d21de085c968e835e.zip
Remove need for explicit key entry
If window.nostr is available, I don't need the sender's SK, I can do everything with its functions. Otherwise, I'll ask for the SK using getPrivateKey(). The override public key was only for testing, but I still don't need it because I can get the users' private keys from the settings tab.
Diffstat (limited to 'src/routes')
-rw-r--r--src/routes/(app)/dm/[recipient]/+page.svelte40
1 files changed, 13 insertions, 27 deletions
diff --git a/src/routes/(app)/dm/[recipient]/+page.svelte b/src/routes/(app)/dm/[recipient]/+page.svelte
index 33edfcc6..446a1068 100644
--- a/src/routes/(app)/dm/[recipient]/+page.svelte
+++ b/src/routes/(app)/dm/[recipient]/+page.svelte
@@ -2,33 +2,26 @@
import Icon from "$comp/Icon.svelte";
import { hexToBytes, bytesToHex } from '@noble/hashes/utils';
import * as nip17 from 'nostr-tools/nip17';
- import { createNIP17Message } from '$lib/nip17';
+ import { createNIP17MessageSK, createNIP17MessageNIP07 } from '$lib/nip17';
import { sign, getPrivateKey } from '$lib/nostr';
let { data } = $props();
const { user, recipient } = data;
- let senderSK = $state("");
- let overridePK = $state("");
let text = $state("");
- getPrivateKey(user)
- .then(key => senderSK = bytesToHex(key))
- .catch(console.log);
-
- const btnCreateMessage = () => {
- try {
- const recipientPK = overridePK || recipient.pubkey;
- const skBytes = hexToBytes(senderSK);
- const event = createNIP17Message(text, skBytes, recipientPK);
- event.then(displayEvent);
- } catch (error) {
- console.log(error);
+ const btnCreateMessage = async () => {
+ let event;
+ if (window.nostr) {
+ event = await createNIP17MessageNIP07(
+ text, user.pubkey, recipient.pubkey);
+ } else {
+ const sk = await getPrivateKey(user);
+ event = createNIP17MessageSK(text, sk, recipient.pubkey);
}
- }
- const displayEvent = (event: object) => {
- console.log(JSON.stringify(event));
+ // TODO send event to relays instead of displaying it
+ text = JSON.stringify(event);
}
</script>
@@ -45,17 +38,10 @@
<h1
class="text-5xl font-medium text-left w-full mx-auto lg:mx-0 md:w-[500px]"
>Direct Messages</h1>
- <p><em>Testing Message:</em> You are sending nostr messages to {recipient.username}. Their pubkey is <code>{recipient.pubkey}</code>.</p>
-
- <label for="senderSKInput">(Temp) Sender Secret Key:</label>
- <input id="senderSKInput" bind:value={senderSK}>
-
- <label for="overridePKInput">(Temp) Override Receiver Public Key:</label>
- <input id="overridePKInput" bind:value={overridePK}>
+ <p>You are sending nostr messages to {recipient.username}.</p>
- <label for="message-contents">Message Contents:</label>
<textarea id="message-contents" bind:value={text}></textarea>
- <input type="button" class="btn" value="Send Message" on:click={btnCreateMessage}>
+ <input type="button" class="btn" value="Generate Message" on:click={btnCreateMessage}>
</div>
</div>