git.delta.rocks / unique-network / refs/commits / bfab6035a123

difftreelog

source

js-packages/tests/migrations/942057-appPromotion/stakersParser.jsonnet1.1 KiBsourcehistory
1function(chainUrl)23  local4    state = cql.chain(chainUrl).latest,5    locked_balances = state.Balances.Locks._preloadKeys,6    accountsRaw = state.System.Account._preloadKeys,7    stakers = state.AppPromotion.Staked._preloadKeys,8    unstakes = state.AppPromotion.PendingUnstake._preloadKeys,9    locks = [10      { [k]: std.filter(function(l) l.id == '0x6170707374616b65', locked_balances[k]) }11      for k in std.objectFields(locked_balances)12    ],13    unstakersData = [14      { [pair[0]]: { block: block, value: pair[1] } }1516      for block in std.objectFields(unstakes)17      for pair in unstakes[block]18    ],19    non_empty_locks = std.prune(locks)20  ;2122  std.map(function(a) {23    address: std.objectFields(a)[0],24    balance: a[std.objectFields(a)[0]][0].amount,25    account: accountsRaw[std.objectFields(a)[0]].data,26    locks: locked_balances[std.objectFields(a)[0]],27    stakes: if std.objectHas(stakers, std.objectFields(a)[0]) then stakers[std.objectFields(a)[0]] else null,28    unstakes: std.filterMap(function(b) std.objectHas(b, std.objectFields(a)[0]), function(c) std.objectValues(c)[0], unstakersData),29  }, non_empty_locks)