You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Don't persist BIP39 mnemonic password; require it on load and spend
The mnemonic password is a second factor whose value depends on not being
stored next to the seed. The prior flow both persisted it and plumbed it
through the sign path, getting the worst of both. Switch to a supply model:
- Drop WalletData.mnemonicPassword; fromMnemonicWithPassword no longer writes it.
- loadSpendingKey / getChainAddress derive from the supplied password.
- loadExisting + RailgunEngine.loadExistingWallet take an optional
mnemonicPassword; keys/address are re-derived each session.
- assertMnemonicPasswordMatchesID verifies the supplied password reproduces
the wallet ID on load and on every spend, turning a wrong/missing password
into a clear error instead of a silently divergent key.
Tests: supply-model load, no-password regression, wrong/missing-password
rejection, and sign+verify with a supplied password (plus negative cases).
0 commit comments