Fix restoring duplicate hardware wallet (#2673)

This commit is contained in:
Omar Hatem
2025-11-24 23:13:38 +01:00
committed by GitHub
parent b2bccac48e
commit a4a6e2e3e9
+6 -9
View File
@@ -17,7 +17,6 @@ import 'package:cw_core/wallet_base.dart';
import 'package:cw_core/wallet_credentials.dart';
import 'package:cw_core/wallet_info.dart';
import 'package:cw_core/wallet_type.dart';
import 'package:hive/hive.dart';
import 'package:mobx/mobx.dart';
import 'package:polyseed/polyseed.dart';
@@ -94,7 +93,7 @@ abstract class WalletCreationVMBase with Store {
final diId = await di!.save();
credentials.derivationInfo = di;
final walletInfo = WalletInfo.external(
credentials.walletInfo = WalletInfo.external(
id: WalletBase.idFor(name, type),
name: name,
type: type,
@@ -109,16 +108,14 @@ abstract class WalletCreationVMBase with Store {
hardwareWalletType: credentials.hardwareWalletType,
);
credentials.walletInfo = walletInfo;
// await walletInfo.save();
printV("derivationInfo: ${(await walletInfo.getDerivationInfo()).toJson()}");
printV("derivationInfo: ${(await credentials.walletInfo!.getDerivationInfo()).toJson()}");
final wallet = await process(credentials);
final isNonSeedWallet = isRecovery ? wallet.seed == null : false;
walletInfo.isNonSeedWallet = isNonSeedWallet;
walletInfo.hashedWalletIdentifier = createHashedWalletIdentifier(wallet);
walletInfo.address = wallet.walletAddresses.address;
await walletInfo.save();
credentials.walletInfo!.isNonSeedWallet = isNonSeedWallet;
credentials.walletInfo!.hashedWalletIdentifier = createHashedWalletIdentifier(wallet);
credentials.walletInfo!.address = wallet.walletAddresses.address;
await credentials.walletInfo!.save();
await _appStore.changeCurrentWallet(wallet);
_appStore.authenticationStore.allowedCreate();
state = ExecutedSuccessfullyState();