diff options
| author | Adrien Hopkins <[email protected]> | 2025-09-05 19:43:20 -0500 |
|---|---|---|
| committer | Adrien Hopkins <[email protected]> | 2025-09-05 19:43:20 -0500 |
| commit | fd098a90952269db708f4d2d21de085c968e835e (patch) | |
| tree | bb355ee885762e27161a77c55ae17a46b93f8323 /src/routes | |
| parent | 4a2af45b77bb36a81b7f29908b3b320ddb76a769 (diff) | |
| download | coinos-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.svelte | 40 |
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> |
