fix(wallets): don't mislabel a legacy HD wallet as "Seed phrase"
The Wallets modal's "Seed phrase" vs "Legacy" badge came from the offline wallet.dat probe, which flags hdseed/chdseed/hdchain. But hdchain is present in BOTH a BIP39-mnemonic wallet AND a legacy HD wallet (DragonX has no separate mnemonic DB record — the mnemonic is derived from the HD seed), so a legacy HD wallet was shown as "Seed phrase". For the ACTIVE wallet the app already knows the truth at runtime via z_exportmnemonic (wallet_seed_status_). The active row's badge now uses that authoritative status (activeWalletSeedBadge: seed-phrase / legacy / undecided) and only falls back to the probe for non-active or not-yet-decided wallets; the "unknown" seed badge is suppressed once the runtime status is authoritative. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -389,6 +389,14 @@ public:
|
||||
// True when the current full-node wallet is a legacy, pre-seed-phrase wallet (no BIP39 mnemonic)
|
||||
// that a capable daemon could migrate — the Migrate-to-seed button glows to nudge the user.
|
||||
bool isPreSeedWallet() const { return wallet_seed_status_ == WalletSeedStatus::NoMnemonic; }
|
||||
// Authoritative BIP39-mnemonic status of the ACTIVE wallet, decided at runtime by z_exportmnemonic
|
||||
// (not the offline file probe, which can't tell an HD-but-no-mnemonic wallet from a seed-phrase one).
|
||||
// 0 = unknown/undecidable, 1 = has a seed phrase, 2 = legacy (no mnemonic).
|
||||
int activeWalletSeedBadge() const {
|
||||
if (wallet_seed_status_ == WalletSeedStatus::HasMnemonic) return 1;
|
||||
if (wallet_seed_status_ == WalletSeedStatus::NoMnemonic) return 2;
|
||||
return 0;
|
||||
}
|
||||
void showAboutDialog() { show_about_ = true; }
|
||||
|
||||
// Legacy tab compat — maps int to NavPage
|
||||
|
||||
Reference in New Issue
Block a user