fix: import scanned wallets

This commit is contained in:
poka 2022-08-16 16:13:11 +02:00
parent 6af9199a76
commit 4d027e0555
2 changed files with 45 additions and 48 deletions

View File

@ -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,

View File

@ -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<String, dynamic>);
log.d(keypair.address);
}
Future<String> 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<String, dynamic>);
log.d(keypair.address);
}
//////////////////////////////////////
///////// 5: CALLS EXECUTION /////////
//////////////////////////////////////