get onchain consts; fix batch validate membership
This commit is contained in:
parent
e8acb59f3e
commit
0687ae072f
|
@ -390,7 +390,7 @@ class GenerateWalletsProvider with ChangeNotifier {
|
||||||
|
|
||||||
for (var derivationNbr in [for (var i = 0; i < numberScan; i += 1) i]) {
|
for (var derivationNbr in [for (var i = 0; i < numberScan; i += 1) i]) {
|
||||||
final addressData = await sub.sdk.api.keyring.addressFromMnemonic(
|
final addressData = await sub.sdk.api.keyring.addressFromMnemonic(
|
||||||
sub.ss58,
|
sub.currencyParameters['ss58']!,
|
||||||
cryptoType: CryptoType.sr25519,
|
cryptoType: CryptoType.sr25519,
|
||||||
mnemonic: generatedMnemonic!,
|
mnemonic: generatedMnemonic!,
|
||||||
derivePath: '//$derivationNbr');
|
derivePath: '//$derivationNbr');
|
||||||
|
@ -435,7 +435,7 @@ class GenerateWalletsProvider with ChangeNotifier {
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<bool> scanRootBalance(SubstrateSdk sub, int currentChestNumber) async {
|
Future<bool> scanRootBalance(SubstrateSdk sub, int currentChestNumber) async {
|
||||||
final addressData = await sub.sdk.api.keyring.addressFromMnemonic(sub.ss58,
|
final addressData = await sub.sdk.api.keyring.addressFromMnemonic(sub.currencyParameters['ss58']!,
|
||||||
cryptoType: CryptoType.sr25519, mnemonic: generatedMnemonic!);
|
cryptoType: CryptoType.sr25519, mnemonic: generatedMnemonic!);
|
||||||
|
|
||||||
final balance = await sub.getBalance(addressData.address!).timeout(
|
final balance = await sub.getBalance(addressData.address!).timeout(
|
||||||
|
|
|
@ -29,7 +29,8 @@ class SubstrateSdk with ChangeNotifier {
|
||||||
bool isLoadingEndpoint = false;
|
bool isLoadingEndpoint = false;
|
||||||
String debugConnection = '';
|
String debugConnection = '';
|
||||||
String transactionStatus = '';
|
String transactionStatus = '';
|
||||||
int ss58 = 42;
|
final int initSs58 = 42;
|
||||||
|
Map<String, int> currencyParameters = {};
|
||||||
|
|
||||||
/////////////////////////////////////
|
/////////////////////////////////////
|
||||||
////////// 1: API METHODS ///////////
|
////////// 1: API METHODS ///////////
|
||||||
|
@ -66,6 +67,11 @@ class SubstrateSdk with ChangeNotifier {
|
||||||
return await sdk.webView!.evalJavascript('api.query.$call');
|
return await sdk.webView!.evalJavascript('api.query.$call');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future getStorageConst(String call) async {
|
||||||
|
return (await sdk.webView!
|
||||||
|
.evalJavascript('api.consts.$call', wrapPromise: false))[0];
|
||||||
|
}
|
||||||
|
|
||||||
TxSenderData _setSender() {
|
TxSenderData _setSender() {
|
||||||
return TxSenderData(
|
return TxSenderData(
|
||||||
keyring.current.address,
|
keyring.current.address,
|
||||||
|
@ -108,12 +114,6 @@ class SubstrateSdk with ChangeNotifier {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<Map<String, dynamic>> getParameters() async {
|
|
||||||
final currencyParameters =
|
|
||||||
await getStorage('parameters.parametersStorage()') ?? {};
|
|
||||||
return currencyParameters;
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<bool> hasAccountConsumers(String address) async {
|
Future<bool> hasAccountConsumers(String address) async {
|
||||||
final accountInfo = await getStorage('system.account("$address")');
|
final accountInfo = await getStorage('system.account("$address")');
|
||||||
final consumers = accountInfo['consumers'];
|
final consumers = accountInfo['consumers'];
|
||||||
|
@ -136,6 +136,8 @@ class SubstrateSdk with ChangeNotifier {
|
||||||
// }
|
// }
|
||||||
|
|
||||||
Future<Map<String, double>> getBalance(String address) async {
|
Future<Map<String, double>> getBalance(String address) async {
|
||||||
|
// log.d('currencyParameters: $currencyParameters');
|
||||||
|
|
||||||
if (!nodeConnected) {
|
if (!nodeConnected) {
|
||||||
return {
|
return {
|
||||||
'transferableBalance': 0,
|
'transferableBalance': 0,
|
||||||
|
@ -202,17 +204,6 @@ class SubstrateSdk with ChangeNotifier {
|
||||||
return totalAmount;
|
return totalAmount;
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<int> getSs58Prefix() async {
|
|
||||||
final List res = await sdk.webView!.evalJavascript(
|
|
||||||
'api.consts.system.ss58Prefix.words',
|
|
||||||
wrapPromise: false) ??
|
|
||||||
[42];
|
|
||||||
|
|
||||||
ss58 = res[0];
|
|
||||||
log.d(ss58);
|
|
||||||
return ss58;
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<bool> isMemberGet(String address) async {
|
Future<bool> isMemberGet(String address) async {
|
||||||
return await idtyStatus(address) == 'Validated';
|
return await idtyStatus(address) == 'Validated';
|
||||||
}
|
}
|
||||||
|
@ -268,7 +259,32 @@ class SubstrateSdk with ChangeNotifier {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future getCurencyName() async {}
|
// Future addressToPubkey(String address) async {
|
||||||
|
// await sdk.api.account.decodeAddress([address]);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// Future pubkeyToAddress(String pubkey) async {
|
||||||
|
// await sdk.api.account.encodeAddress([pubkey]);
|
||||||
|
// }
|
||||||
|
|
||||||
|
Future initCurrencyParameters() async {
|
||||||
|
currencyParameters['ss58'] =
|
||||||
|
await getStorageConst('system.ss58Prefix.words');
|
||||||
|
currencyParameters['minCertForMembership'] =
|
||||||
|
await getStorageConst('wot.minCertForMembership.words');
|
||||||
|
currencyParameters['newAccountPrice'] =
|
||||||
|
await getStorageConst('account.newAccountPrice.words');
|
||||||
|
currencyParameters['existentialDeposit'] =
|
||||||
|
await getStorageConst('balances.existentialDeposit.words');
|
||||||
|
currencyParameters['certPeriod'] =
|
||||||
|
await getStorageConst('cert.certPeriod.words');
|
||||||
|
currencyParameters['certMaxByIssuer'] =
|
||||||
|
await getStorageConst('cert.maxByIssuer.words');
|
||||||
|
currencyParameters['certValidityPeriod'] =
|
||||||
|
await getStorageConst('cert.validityPeriod.words');
|
||||||
|
|
||||||
|
log.i('currencyParameters: $currencyParameters');
|
||||||
|
}
|
||||||
|
|
||||||
/////////////////////////////////////
|
/////////////////////////////////////
|
||||||
////// 3: SUBSTRATE CONNECTION //////
|
////// 3: SUBSTRATE CONNECTION //////
|
||||||
|
@ -276,8 +292,8 @@ class SubstrateSdk with ChangeNotifier {
|
||||||
|
|
||||||
Future<void> initApi() async {
|
Future<void> initApi() async {
|
||||||
sdkLoading = true;
|
sdkLoading = true;
|
||||||
await keyring.init([ss58]);
|
await keyring.init([initSs58]);
|
||||||
keyring.setSS58(ss58);
|
keyring.setSS58(initSs58);
|
||||||
|
|
||||||
await sdk.init(keyring);
|
await sdk.init(keyring);
|
||||||
sdkReady = true;
|
sdkReady = true;
|
||||||
|
@ -356,7 +372,7 @@ class SubstrateSdk with ChangeNotifier {
|
||||||
final n = NetworkParams();
|
final n = NetworkParams();
|
||||||
n.name = currencyName;
|
n.name = currencyName;
|
||||||
n.endpoint = endpoint;
|
n.endpoint = endpoint;
|
||||||
n.ss58 = ss58;
|
n.ss58 = currencyParameters['ss58'] ?? initSs58;
|
||||||
node.add(n);
|
node.add(n);
|
||||||
}
|
}
|
||||||
return node;
|
return node;
|
||||||
|
@ -366,7 +382,7 @@ class SubstrateSdk with ChangeNotifier {
|
||||||
final nodeParams = NetworkParams();
|
final nodeParams = NetworkParams();
|
||||||
nodeParams.name = currencyName;
|
nodeParams.name = currencyName;
|
||||||
nodeParams.endpoint = configBox.get('customEndpoint');
|
nodeParams.endpoint = configBox.get('customEndpoint');
|
||||||
nodeParams.ss58 = ss58;
|
nodeParams.ss58 = currencyParameters['ss58'] ?? initSs58;
|
||||||
return nodeParams;
|
return nodeParams;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -476,7 +492,8 @@ class SubstrateSdk with ChangeNotifier {
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<String> generateMnemonic({String lang = appLang}) async {
|
Future<String> generateMnemonic({String lang = appLang}) async {
|
||||||
final gen = await sdk.api.keyring.generateMnemonic(ss58);
|
final gen = await sdk.api.keyring
|
||||||
|
.generateMnemonic(currencyParameters['ss58'] ?? initSs58);
|
||||||
generatedMnemonic = gen.mnemonic!;
|
generatedMnemonic = gen.mnemonic!;
|
||||||
|
|
||||||
return gen.mnemonic!;
|
return gen.mnemonic!;
|
||||||
|
@ -654,7 +671,8 @@ class SubstrateSdk with ChangeNotifier {
|
||||||
String? rawParams;
|
String? rawParams;
|
||||||
|
|
||||||
final toCerts = await getCerts(toAddress);
|
final toCerts = await getCerts(toAddress);
|
||||||
final currencyParameters = await getParameters();
|
|
||||||
|
// log.d('debug: ${currencyParameters['minCertForMembership']}');
|
||||||
|
|
||||||
if (toIdtyStatus == 'noid') {
|
if (toIdtyStatus == 'noid') {
|
||||||
txInfo = TxInfoData(
|
txInfo = TxInfoData(
|
||||||
|
@ -665,7 +683,7 @@ class SubstrateSdk with ChangeNotifier {
|
||||||
txOptions = [toAddress];
|
txOptions = [toAddress];
|
||||||
} else if (toIdtyStatus == 'Validated' ||
|
} else if (toIdtyStatus == 'Validated' ||
|
||||||
toIdtyStatus == 'ConfirmedByOwner') {
|
toIdtyStatus == 'ConfirmedByOwner') {
|
||||||
if (toCerts[0] >= currencyParameters['wotMinCertForMembership'] &&
|
if (toCerts[0] >= currencyParameters['minCertForMembership']! - 1 &&
|
||||||
toIdtyStatus != 'Validated') {
|
toIdtyStatus != 'Validated') {
|
||||||
log.i('Batch cert and membership validation');
|
log.i('Batch cert and membership validation');
|
||||||
txInfo = TxInfoData(
|
txInfo = TxInfoData(
|
||||||
|
|
|
@ -167,6 +167,7 @@ class HomeScreen extends StatelessWidget {
|
||||||
sub.reload();
|
sub.reload();
|
||||||
} else {
|
} else {
|
||||||
await sub.connectNode(ctx);
|
await sub.connectNode(ctx);
|
||||||
|
await sub.initCurrencyParameters();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue