aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2025-09-15 11:58:01 -0700
committerAdam Soltys <[email protected]>2025-09-15 11:58:01 -0700
commit9205d9d996f10bafb611787b92ca57c2ee05b32d (patch)
tree7dd0eddedbe1c2d011ecaf621f40a14a41798ae3 /src
parent1c6a15704d38ef110743c8ebb613829f7ee43db1 (diff)
downloadcoinosv3-9205d9d996f10bafb611787b92ca57c2ee05b32d.tar.gz
coinosv3-9205d9d996f10bafb611787b92ca57c2ee05b32d.zip
seed toggle
Diffstat (limited to 'src')
-rw-r--r--src/routes/+layout.svelte2
-rw-r--r--src/routes/+page.svelte35
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} />