feat: remove an address from an HD wallet, behind a confirmation (closes #162)
All checks were successful
check / check (push) Successful in 36s
All checks were successful
check / check (push) Successful in 36s
Address rows on Home gain an [x] control, on wallets that derive addresses from an extended key and hold more than one, opening a DeleteAddress confirmation screen. Removal cannot destroy anything: the key material stays. Derivation indices are not renumbered, so the next "+" derives the next unused index rather than resurrecting the removed one. The confirmation states the real route back -- delete the whole wallet in Settings, which asks for the password and destroys the stored recovery phrase, then import it again -- and notes that the scan which follows only finds addresses with on-chain activity. The copy varies by wallet type, since an xprv wallet has no recovery phrase. Removing an address that holds a balance is allowed, with a warning naming no figure; the funds are at the address on-chain and stay there either way. Selection and active address move only when the removed address was the one selected, and site permissions are dropped for it alone. The state transition shares its address comparison, permission cleanup and active-changed broadcast with the wallet-level removal.
This commit was merged in pull request #240.
This commit is contained in:
@@ -1142,6 +1142,62 @@
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<!-- ============ DELETE ADDRESS CONFIRM ============ -->
|
||||
<div id="view-delete-address-confirm" class="view hidden">
|
||||
<button
|
||||
id="btn-delete-address-back"
|
||||
class="border border-border px-2 py-1 hover:bg-fg hover:text-bg cursor-pointer mb-2"
|
||||
>
|
||||
< Back
|
||||
</button>
|
||||
<h2 class="font-bold mb-3">Remove Address</h2>
|
||||
<p class="text-xs mb-2">
|
||||
You are about to remove
|
||||
<strong id="delete-address-label"></strong> from
|
||||
<strong id="delete-address-wallet-name"></strong>.
|
||||
</p>
|
||||
<div
|
||||
id="delete-address-value"
|
||||
class="text-xs mb-2 break-all min-h-[1rem]"
|
||||
></div>
|
||||
<div
|
||||
class="text-xs mb-2 border border-border border-dashed p-2"
|
||||
>
|
||||
This only stops this wallet from tracking the address.
|
||||
Nothing is destroyed and no key is deleted. Any funds at the
|
||||
address stay exactly where they are, and the address remains
|
||||
yours. Any site permissions granted to this address are
|
||||
forgotten.
|
||||
</div>
|
||||
<!-- Filled by src/popup/views/deleteAddress.js: the route
|
||||
back names the wallet's own kind of key material. -->
|
||||
<div
|
||||
id="delete-address-recovery"
|
||||
class="text-xs mb-2 border border-border border-dashed p-2"
|
||||
></div>
|
||||
<div
|
||||
id="delete-address-balance"
|
||||
class="text-xs mb-2 min-h-[1.25rem] pointer-events-none"
|
||||
>
|
||||
|
||||
</div>
|
||||
<p class="text-xs text-muted mb-3">
|
||||
A wallet always keeps at least one address. To remove the
|
||||
last one, delete the whole wallet from Settings instead.
|
||||
</p>
|
||||
<div
|
||||
id="delete-address-flash"
|
||||
class="text-xs text-red-500 mb-2 min-h-[1.25rem]"
|
||||
style="visibility: hidden"
|
||||
></div>
|
||||
<button
|
||||
id="btn-delete-address-confirm"
|
||||
class="border border-border text-red-500 px-2 py-1 hover:bg-fg hover:text-bg cursor-pointer"
|
||||
>
|
||||
Remove Address
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<!-- ============ SHOW RECOVERY PHRASE ============ -->
|
||||
<div id="view-show-phrase" class="view hidden">
|
||||
<button
|
||||
|
||||
Reference in New Issue
Block a user