diff options
| author | Adam Soltys <[email protected]> | 2025-09-15 11:58:01 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2025-09-15 11:58:01 -0700 |
| commit | 9205d9d996f10bafb611787b92ca57c2ee05b32d (patch) | |
| tree | 7dd0eddedbe1c2d011ecaf621f40a14a41798ae3 | |
| parent | 1c6a15704d38ef110743c8ebb613829f7ee43db1 (diff) | |
| download | coinosv3-9205d9d996f10bafb611787b92ca57c2ee05b32d.tar.gz coinosv3-9205d9d996f10bafb611787b92ca57c2ee05b32d.zip | |
seed toggle
| -rw-r--r-- | src/routes/+layout.svelte | 2 | ||||
| -rw-r--r-- | src/routes/+page.svelte | 35 |
2 files changed, 24 insertions, 13 deletions
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index f9049c9..fe115b3 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -11,7 +11,7 @@ <div class="flex items-center justify-center gap-2"> <img src="/bitcoin.svg" /> <div> - <a href="/" class="mx-auto text-2xl">Bitcoin Wallet</a> + <a href="/" class="mx-auto text-2xl">Adamant</a> </div> </div> diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 1654c7b..8cf8c90 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -17,7 +17,8 @@ password = await navigator.clipboard.readText(); }; - const toggleReveal = () => (reveal = !reveal); + const togglePassword = () => (revealPassword = !revealPassword); + const toggleSeed = () => (revealSeed = !revealSeed); let NET = 'bitcoin'; const versions = { @@ -58,10 +59,11 @@ // ); // let withdrawing = $state(true); let destination = $state(); - let password = $state(); - let mnemonic = $state(); + let password = $state(''); + let mnemonic = $state(''); let withdrawing = $state(); - let reveal = $state(false); + let revealPassword = $state(false); + let revealSeed = $state(true); let balance = $state(); let pending = $state(); @@ -91,9 +93,11 @@ let node = $derived.by(() => { if (!mnemonic) return; - const seed = mnemonicToSeedSync(mnemonic, password); - const root = HDKey.fromMasterSeed(seed, versions); - return root.derive(`m/84'/0'/0'/0/0`); + try { + const seed = mnemonicToSeedSync(mnemonic.trim(), password.trim()); + const root = HDKey.fromMasterSeed(seed, versions); + return root.derive(`m/84'/0'/0'/0/0`); + } catch (e) {} }); let address = $derived(node ? p2wpkh(node.publicKey).address : undefined); @@ -225,22 +229,29 @@ <form class="space-y-5" onsubmit={checkBalance}> <div class="flex items-center gap-2"> - <textarea use:focus class="textarea grow" placeholder="Seed phrase" bind:value={mnemonic} - ></textarea> + {#if revealSeed} + <textarea use:focus class="textarea grow" placeholder="Seed phrase" bind:value={mnemonic} + ></textarea> + {:else} + <input type="password" class="input grow" placeholder="Seed phrase" bind:value={mnemonic} /> + {/if} + <button type="button" class="btn" onclick={toggleSeed}> + <iconify-icon icon={revealSeed ? 'ph:eye-bold' : 'ph:eye-slash-bold'} width={32} /> + </button> <button type="button" class="btn" onclick={generate}> <iconify-icon icon="ph:dice-five-bold" width={32} /> </button> </div> <div class="flex"> - {#if reveal} + {#if revealPassword} <input class="input w-full" placeholder="Passphrase" bind:value={password} /> {:else} <input type="password" class="input w-full" placeholder="Passphrase" bind:value={password} /> {/if} - <button type="button" class="btn" onclick={toggleReveal}> - <iconify-icon icon={reveal ? 'ph:eye-bold' : 'ph:eye-slash-bold'} width={32} /> + <button type="button" class="btn" onclick={togglePassword}> + <iconify-icon icon={revealPassword ? 'ph:eye-bold' : 'ph:eye-slash-bold'} width={32} /> </button> <Copy bind:text={password} /> |
