diff --git a/cw_monero/lib/api/wallet_manager.dart b/cw_monero/lib/api/wallet_manager.dart index 6a7ecdb5d..67a1a666e 100644 --- a/cw_monero/lib/api/wallet_manager.dart +++ b/cw_monero/lib/api/wallet_manager.dart @@ -100,7 +100,7 @@ void restoreWalletFromSeedSync( required String passphrase, required String seed, int nettype = 0, - int restoreHeight = 0}) async { + int restoreHeight = 0}) { txhistory = null; final newWptr = monero.WalletManager_recoveryWallet( wmPtr, @@ -404,7 +404,7 @@ void _restoreFromSeed(Map args) { final seed = args['seed'] as String; final restoreHeight = args['restoreHeight'] as int; - restoreWalletFromSeedSync( + return restoreWalletFromSeedSync( path: path, password: password, passphrase: passphrase, seed: seed, restoreHeight: restoreHeight); } @@ -472,13 +472,13 @@ Future createWallet( 'nettype': nettype }); -Future restoreFromSeed( +void restoreFromSeed( {required String path, required String password, required String passphrase, required String seed, int nettype = 0, - int restoreHeight = 0}) async => + int restoreHeight = 0}) => _restoreFromSeed({ 'path': path, 'password': password, diff --git a/cw_monero/lib/monero_wallet_service.dart b/cw_monero/lib/monero_wallet_service.dart index 648c79702..fbb1c5331 100644 --- a/cw_monero/lib/monero_wallet_service.dart +++ b/cw_monero/lib/monero_wallet_service.dart @@ -292,14 +292,21 @@ class MoneroWalletService extends WalletService< Future restoreFromSeed( MoneroRestoreWalletFromSeedCredentials credentials, {bool? isTestnet}) async { - // Restore from Polyseed - if (Polyseed.isValidSeed(credentials.mnemonic)) { - return restoreFromPolyseed(credentials); + if (credentials.mnemonic.split(" ").length == 16) { + // Restore from Polyseed + try { + if (Polyseed.isValidSeed(credentials.mnemonic)) { + return restoreFromPolyseed(credentials); + } + } catch (e) { + printV("Polyseed restore failed: $e"); + rethrow; + } } try { final path = await pathForWallet(name: credentials.name, type: getType()); - await monero_wallet_manager.restoreFromSeed( + monero_wallet_manager.restoreFromSeed( path: path, password: credentials.password!, passphrase: credentials.passphrase,