WIP: unclaimed UD are almost calculated

This commit is contained in:
poka 2022-08-09 10:19:16 +02:00
parent 29754e23b5
commit d71261d0ec
1 changed files with 33 additions and 21 deletions

View File

@ -265,37 +265,49 @@ class SubstrateSdk with ChangeNotifier {
} else {
balance = -1;
}
await getUnclaimedUd(address);
return balance;
}
Future<double> getUnclaimedUd(String address) async {
// TODO: Implement unclaimedUd evaluation
// Pour ce faire, il vous faut requêter cinq éléments de storage :
final balanceGlobal = await sdk.webView!
.evalJavascript('api.query.system.account("$address")');
// system.account(address)
// identity.identityIndexOf(address)
// identity.identities(idtyIndex)
// universalDividend.currentUdIndex()
// universalDividend.pastReevals()
final idtyIndex = await sdk.webView!
.evalJavascript('api.query.identity.identityIndexOf("$address")');
final idtyData = await sdk.webView!
.evalJavascript('api.query.identity.identities($idtyIndex)');
// const api = await ApiPromise.create(...);
// const { data: balance } = await api.query.system.account(address);
// const idtyIndex = await api.query.identity.identityIndexOf(address);
// const { data: idtyData } = await api.query.identity.identies(idtyIndex);
// const currentUdIndex = await api.query.universalDividend.currentUdIndex();
// const pastReevals = await api.query.universalDividend.pastReevals();
final int currentUdIndex = int.parse(await sdk.webView!
.evalJavascript('api.query.universalDividend.currentUdIndex()'));
// let newUdsAmount = computeClaimUds(currentUdIndex, idtyData.firstEligibleUd, pastReevals);
// let transferableBalance = balance.free + newUdsAmount;
// let potentialBalance = balance.reserved + transferableBalance;
final List pastReevals = await sdk.webView!
.evalJavascript('api.query.universalDividend.pastReevals()');
double balance = 0.0;
log.d(
'DEBUGG ${getShortPubkey(address)} : $balanceGlobal |---| $idtyIndex |---| $idtyData |---| $currentUdIndex |---| $pastReevals');
final brutBalance = await sdk.api.account.queryBalance(address);
// log.d(brutBalance?.toJson());
balance = int.parse(brutBalance!.freeBalance) / 100;
final int newUdsAmount = _computeClaimUds(currentUdIndex,
idtyData?['data']?['firstEligibleUd'] ?? 0, pastReevals);
return balance;
final double transferableBalance =
(balanceGlobal['data']['free'] + newUdsAmount) / 100;
final double potentialBalance =
(balanceGlobal['data']['reserved'] + transferableBalance) / 100;
log.i(
'transferableBalance: $transferableBalance --- potentialBalance: $potentialBalance');
return transferableBalance;
}
int _computeClaimUds(
int currentUdIndex, int firstEligibleUd, List pastReevals) {
// TODO: Implement _computeClaimUds
log.d('DEBUGGG: $currentUdIndex - $firstEligibleUd - $pastReevals');
return 0;
}
Future<double> subscribeBalance(String address, {bool isUd = false}) async {