Fix restoring duplicate hardware wallet (#2673)

Omar Hatem committed Nov 24, 2025 at 23:13 UTC a4a6e2e3e9fa83591d1a0da240b197b1c2fc2c45
1 file changed +6 -9
lib/view_model/wallet_creation_vm.dart
+6 -9
@@ -17,7 +17,6 @@ import 'package:cw_core/wallet_base.dart';
17 import 'package:cw_core/wallet_credentials.dart';
18 import 'package:cw_core/wallet_info.dart';
19 import 'package:cw_core/wallet_type.dart';
20 -import 'package:hive/hive.dart';
20 import 'package:mobx/mobx.dart';
21 import 'package:polyseed/polyseed.dart';
22
@@ -94,7 +93,7 @@ abstract class WalletCreationVMBase with Store {
93 final diId = await di!.save();
94 credentials.derivationInfo = di;
95
97 - final walletInfo = WalletInfo.external(
96 + credentials.walletInfo = WalletInfo.external(
97 id: WalletBase.idFor(name, type),
98 name: name,
99 type: type,
@@ -109,16 +108,14 @@ abstract class WalletCreationVMBase with Store {
108 hardwareWalletType: credentials.hardwareWalletType,
109 );
110
112 - credentials.walletInfo = walletInfo;
113 - // await walletInfo.save();
114 - printV("derivationInfo: ${(await walletInfo.getDerivationInfo()).toJson()}");
111 + printV("derivationInfo: ${(await credentials.walletInfo!.getDerivationInfo()).toJson()}");
112 final wallet = await process(credentials);
113
114 final isNonSeedWallet = isRecovery ? wallet.seed == null : false;
118 - walletInfo.isNonSeedWallet = isNonSeedWallet;
119 - walletInfo.hashedWalletIdentifier = createHashedWalletIdentifier(wallet);
120 - walletInfo.address = wallet.walletAddresses.address;
121 - await walletInfo.save();
115 + credentials.walletInfo!.isNonSeedWallet = isNonSeedWallet;
116 + credentials.walletInfo!.hashedWalletIdentifier = createHashedWalletIdentifier(wallet);
117 + credentials.walletInfo!.address = wallet.walletAddresses.address;
118 + await credentials.walletInfo!.save();
119 await _appStore.changeCurrentWallet(wallet);
120 _appStore.authenticationStore.allowedCreate();
121 state = ExecutedSuccessfullyState();