diff options
| author | Adam Soltys <[email protected]> | 2023-10-26 14:24:43 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2023-11-11 00:04:22 -0800 |
| commit | e2608b3fe00d4575c08846af4f7a192e4f1100ed (patch) | |
| tree | 1151366d2c615657f5675c6d10c4c9273f408a42 | |
| parent | 7334c3c6b6311807627bfa244429ced4921c3e27 (diff) | |
| download | coinos-ui-e2608b3fe00d4575c08846af4f7a192e4f1100ed.tar.gz coinos-ui-e2608b3fe00d4575c08846af4f7a192e4f1100ed.zip | |
reveal seed phrase
| -rw-r--r-- | src/lib/nostr.js | 9 | ||||
| -rw-r--r-- | src/locales/en.json | 1 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/settings/[...tab]/_security.svelte | 36 |
3 files changed, 35 insertions, 11 deletions
diff --git a/src/lib/nostr.js b/src/lib/nostr.js index 987b89d0..28dbe50f 100644 --- a/src/lib/nostr.js +++ b/src/lib/nostr.js @@ -58,7 +58,7 @@ function typedArrayToBuffer(array) { return array.buffer.slice(array.byteOffset, array.byteLength + array.byteOffset); } -let getPrivateKey = async (user) => { +export let getMnemonic = async (user) => { let { cipher, username, salt } = user; let password = get(pw); @@ -85,8 +85,11 @@ let getPrivateKey = async (user) => { ) ); - mnemonic = entropyToMnemonic(entropy, wordlist); - return privateKeyFromSeedWords(mnemonic); + return entropyToMnemonic(entropy, wordlist); +}; + +let getPrivateKey = async (user) => { + return privateKeyFromSeedWords(await getMnemonic(user)); }; export let sign = async ({ event, user }) => { diff --git a/src/locales/en.json b/src/locales/en.json index 1ec8cced..9c098763 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -206,6 +206,7 @@ "placeholder": "Paste a bitcoin address, lightning invoice or coinos username" }, "settings": { + "revealSeed": "Reveal seed phrase", "saveSettings": "Save Settings", "bannerImage": "Banner Image", "profileImage": "Profile Image", diff --git a/src/routes/(app)/[username]/settings/[...tab]/_security.svelte b/src/routes/(app)/[username]/settings/[...tab]/_security.svelte index c01db734..f3df3fa3 100644 --- a/src/routes/(app)/[username]/settings/[...tab]/_security.svelte +++ b/src/routes/(app)/[username]/settings/[...tab]/_security.svelte @@ -1,4 +1,5 @@ <script> + import { getMnemonic } from '$lib/nostr'; import { tick } from 'svelte'; import { t } from '$lib/translations'; import { Pin, Icon, Qr } from '$comp'; @@ -8,18 +9,28 @@ import { page } from '$app/stores'; export let user, submit; - let pin, verify; - let settingPin, setting2fa, disabling2fa, confirming2fa; - let password, revealPassword; - let token = ''; - let old; + let confirming2fa, + disabling2fa, + locked, + mnemonic, + old, + otp, + password, + pin, + revealPassword, + revealSeed, + token = '', + setting2fa, + settingPin, + verify; let togglePassword = () => (revealPassword = !revealPassword); + let toggleSeed = async () => { + mnemonic = await getMnemonic(user); + revealSeed = !revealSeed; + }; - let otp; - - let locked; $: verifying = pin?.length > 5; $: verify && checkPin(pin); let checkPin = async () => { @@ -211,3 +222,12 @@ <option value={8 * 60 * 60}>8 {$t('user.settings.hours')}</option> </select> </div> + +<button type="button" class="primary" on:click={toggleSeed}> + <Icon icon="mobile" style="mr-1" /> + {$t('user.settings.revealSeed')} +</button> + +{#if revealSeed} + {mnemonic} +{/if} |
