From 4d027e05556197fff76d2ec8cd9cc941cf14324e Mon Sep 17 00:00:00 2001 From: poka Date: Tue, 16 Aug 2022 16:13:11 +0200 Subject: [PATCH] fix: import scanned wallets --- lib/providers/generate_wallets.dart | 6 +- lib/providers/substrate_sdk.dart | 87 ++++++++++++++--------------- 2 files changed, 45 insertions(+), 48 deletions(-) diff --git a/lib/providers/generate_wallets.dart b/lib/providers/generate_wallets.dart index b47e463..a1292ba 100644 --- a/lib/providers/generate_wallets.dart +++ b/lib/providers/generate_wallets.dart @@ -409,7 +409,9 @@ class GenerateWalletsProvider with ChangeNotifier { ? 'currentWallet'.tr() : '${'wallet'.tr()} ${scanedValidWalletNumber + 1}'; await sub.importAccount( - derivePath: '//$derivationNbr', password: pin.text); + mnemonic: generatedMnemonic!, + derivePath: '//$derivationNbr', + password: pin.text); WalletData myWallet = WalletData( version: dataVersion, @@ -445,7 +447,7 @@ class GenerateWalletsProvider with ChangeNotifier { "${addressData.address!}: ${balance['transferableBalance']} $currencyName"); if (balance['transferableBalance'] != 0) { String walletName = 'myRootWallet'.tr(); - await sub.importAccount(password: pin.text); + await sub.importAccount(mnemonic: generatedMnemonic!, password: pin.text); WalletData myWallet = WalletData( version: dataVersion, diff --git a/lib/providers/substrate_sdk.dart b/lib/providers/substrate_sdk.dart index 09c90c4..69113db 100644 --- a/lib/providers/substrate_sdk.dart +++ b/lib/providers/substrate_sdk.dart @@ -370,52 +370,6 @@ class SubstrateSdk with ChangeNotifier { return nodeParams; } - Future csToV2(String salt, String password) async { - final scrypt = pc.KeyDerivator('scrypt'); - - scrypt.init( - pc.ScryptParameters( - 4096, - 16, - 1, - 32, - Uint8List.fromList(salt.codeUnits), - ), - ); - final rawSeed = scrypt.process(Uint8List.fromList(password.codeUnits)); - final rawSeedHex = '0x${HEX.encode(rawSeed)}'; - - // final newAddress1 = await sdk.api.keyring.addressFromRawSeed(ss58, - // cryptoType: CryptoType.ed25519, rawSeed: '0x$rawSeedString'); - - // log.d('csconvert address: ${newAddress1.address}'); - - final json = await sdk.api.keyring - .importAccount(keyring, - keyType: KeyType.rawSeed, - key: rawSeedHex, - name: 'test', - password: 'password', - derivePath: '', - cryptoType: CryptoType.ed25519) - .catchError((e) { - importIsLoading = false; - notifyListeners(); - }); - - final keypair = await sdk.api.keyring.addAccount( - keyring, - keyType: KeyType.rawSeed, - acc: json!, - password: password, - ); - await sdk.api.keyring.deleteAccount(keyring, keypair); - - // final keypair2 = KeyPairData.fromJson(json as Map); - - log.d(keypair.address); - } - Future importAccount( {String mnemonic = '', String derivePath = '', @@ -593,6 +547,47 @@ class SubstrateSdk with ChangeNotifier { return await sdk.api.keyring.checkMnemonicValid(mnemonic); } + Future csToV2(String salt, String password) async { + final scrypt = pc.KeyDerivator('scrypt'); + + scrypt.init( + pc.ScryptParameters( + 4096, + 16, + 1, + 32, + Uint8List.fromList(salt.codeUnits), + ), + ); + final rawSeed = scrypt.process(Uint8List.fromList(password.codeUnits)); + final rawSeedHex = '0x${HEX.encode(rawSeed)}'; + + // Just get the address without keystore + // final newAddress1 = await sdk.api.keyring.addressFromRawSeed(ss58, + // cryptoType: CryptoType.ed25519, rawSeed: '0x$rawSeedString'); + // log.d('csconvert address: ${newAddress1.address}'); + + final json = await sdk.api.keyring.importAccount(keyring, + keyType: KeyType.rawSeed, + key: rawSeedHex, + name: 'test', + password: 'password', + derivePath: '', + cryptoType: CryptoType.ed25519); + + final keypair = await sdk.api.keyring.addAccount( + keyring, + keyType: KeyType.rawSeed, + acc: json!, + password: password, + ); + await sdk.api.keyring.deleteAccount(keyring, keypair); + + // final keypair2 = KeyPairData.fromJson(json as Map); + + log.d(keypair.address); + } + ////////////////////////////////////// ///////// 5: CALLS EXECUTION ///////// //////////////////////////////////////