@pezkuwi/api-derive 16.5.5 → 16.5.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +2 -2
- package/accounts/accountId.js +29 -0
- package/{build/accounts → accounts}/flags.d.ts +2 -2
- package/accounts/flags.js +55 -0
- package/accounts/idAndIndex.js +34 -0
- package/accounts/idToIndex.js +17 -0
- package/{build/accounts → accounts}/identity.d.ts +3 -3
- package/accounts/identity.js +153 -0
- package/{src/accounts/index.ts → accounts/index.js} +0 -3
- package/accounts/indexToId.js +18 -0
- package/accounts/indexes.js +34 -0
- package/accounts/info.js +33 -0
- package/{src/alliance/index.ts → alliance/index.js} +0 -5
- package/augment.js +1 -0
- package/bagsList/get.js +42 -0
- package/bagsList/getExpanded.js +19 -0
- package/bagsList/index.js +3 -0
- package/bagsList/listNodes.d.ts +9 -0
- package/bagsList/listNodes.js +26 -0
- package/{build/bagsList → bagsList}/types.d.ts +3 -3
- package/bagsList/types.js +1 -0
- package/bagsList/util.js +8 -0
- package/balances/account.js +149 -0
- package/balances/all.js +167 -0
- package/{src/balances/index.ts → balances/index.js} +0 -6
- package/{build/balances → balances}/types.d.ts +7 -7
- package/balances/types.js +1 -0
- package/balances/votingBalances.js +18 -0
- package/bounties/bounties.js +50 -0
- package/bounties/helpers/filterBountyProposals.js +5 -0
- package/bounties/index.js +1 -0
- package/bundle.js +107 -0
- package/{src/chain/bestNumber.ts → chain/bestNumber.js} +1 -10
- package/{src/chain/bestNumberFinalized.ts → chain/bestNumberFinalized.js} +1 -10
- package/chain/bestNumberLag.js +19 -0
- package/chain/getBlock.js +25 -0
- package/chain/getBlockByNumber.js +16 -0
- package/chain/getHeader.js +19 -0
- package/{src/chain/index.ts → chain/index.js} +0 -3
- package/chain/subscribeFinalizedBlocks.js +15 -0
- package/chain/subscribeFinalizedHeads.js +37 -0
- package/chain/subscribeNewBlocks.js +15 -0
- package/chain/subscribeNewHeads.js +21 -0
- package/chain/util.js +57 -0
- package/cjs/accounts/accountId.d.ts +17 -0
- package/cjs/accounts/accountId.js +32 -0
- package/cjs/accounts/flags.d.ts +29 -0
- package/cjs/accounts/flags.js +59 -0
- package/cjs/accounts/idAndIndex.d.ts +15 -0
- package/cjs/accounts/idAndIndex.js +37 -0
- package/cjs/accounts/idToIndex.d.ts +16 -0
- package/cjs/accounts/idToIndex.js +20 -0
- package/cjs/accounts/identity.d.ts +48 -0
- package/cjs/accounts/identity.js +159 -0
- package/cjs/accounts/index.d.ts +8 -0
- package/cjs/accounts/index.js +11 -0
- package/cjs/accounts/indexToId.d.ts +15 -0
- package/cjs/accounts/indexToId.js +21 -0
- package/cjs/accounts/indexes.d.ts +16 -0
- package/cjs/accounts/indexes.js +37 -0
- package/cjs/accounts/info.d.ts +18 -0
- package/cjs/accounts/info.js +36 -0
- package/cjs/accounts/types.d.ts +39 -0
- package/cjs/accounts/types.js +2 -0
- package/cjs/alliance/index.d.ts +70 -0
- package/cjs/alliance/index.js +74 -0
- package/cjs/augment.d.ts +1 -0
- package/cjs/augment.js +3 -0
- package/cjs/bagsList/get.d.ts +12 -0
- package/cjs/bagsList/get.js +47 -0
- package/cjs/bagsList/getExpanded.d.ts +16 -0
- package/cjs/bagsList/getExpanded.js +23 -0
- package/cjs/bagsList/index.d.ts +3 -0
- package/cjs/bagsList/index.js +6 -0
- package/cjs/bagsList/listNodes.d.ts +9 -0
- package/cjs/bagsList/listNodes.js +29 -0
- package/cjs/bagsList/types.d.ts +13 -0
- package/cjs/bagsList/types.js +2 -0
- package/cjs/bagsList/util.d.ts +2 -0
- package/cjs/bagsList/util.js +11 -0
- package/cjs/balances/account.d.ts +17 -0
- package/cjs/balances/account.js +152 -0
- package/cjs/balances/all.d.ts +20 -0
- package/cjs/balances/all.js +170 -0
- package/cjs/balances/index.d.ts +20 -0
- package/cjs/balances/index.js +25 -0
- package/cjs/balances/types.d.ts +69 -0
- package/cjs/balances/types.js +2 -0
- package/cjs/balances/votingBalances.d.ts +15 -0
- package/cjs/balances/votingBalances.js +21 -0
- package/cjs/bounties/bounties.d.ts +12 -0
- package/cjs/bounties/bounties.js +53 -0
- package/cjs/bounties/helpers/filterBountyProposals.d.ts +2 -0
- package/cjs/bounties/helpers/filterBountyProposals.js +8 -0
- package/cjs/bounties/index.d.ts +1 -0
- package/cjs/bounties/index.js +4 -0
- package/cjs/bundle.d.ts +9 -0
- package/cjs/bundle.js +112 -0
- package/cjs/chain/bestNumber.d.ts +11 -0
- package/cjs/chain/bestNumber.js +15 -0
- package/cjs/chain/bestNumberFinalized.d.ts +12 -0
- package/cjs/chain/bestNumberFinalized.js +16 -0
- package/cjs/chain/bestNumberLag.d.ts +15 -0
- package/cjs/chain/bestNumberLag.js +22 -0
- package/cjs/chain/getBlock.d.ts +15 -0
- package/cjs/chain/getBlock.js +28 -0
- package/{src/chain/getBlockByNumber.ts → cjs/chain/getBlockByNumber.d.ts} +1 -15
- package/cjs/chain/getBlockByNumber.js +19 -0
- package/cjs/chain/getHeader.d.ts +16 -0
- package/cjs/chain/getHeader.js +22 -0
- package/cjs/chain/index.d.ts +10 -0
- package/cjs/chain/index.js +13 -0
- package/cjs/chain/subscribeFinalizedBlocks.d.ts +14 -0
- package/cjs/chain/subscribeFinalizedBlocks.js +18 -0
- package/cjs/chain/subscribeFinalizedHeads.d.ts +22 -0
- package/cjs/chain/subscribeFinalizedHeads.js +41 -0
- package/cjs/chain/subscribeNewBlocks.d.ts +14 -0
- package/cjs/chain/subscribeNewBlocks.js +18 -0
- package/cjs/chain/subscribeNewHeads.d.ts +15 -0
- package/cjs/chain/subscribeNewHeads.js +24 -0
- package/cjs/chain/util.d.ts +9 -0
- package/cjs/chain/util.js +61 -0
- package/cjs/collective/helpers.js +23 -0
- package/cjs/collective/index.js +6 -0
- package/cjs/collective/members.js +5 -0
- package/cjs/collective/prime.js +11 -0
- package/cjs/collective/proposals.js +44 -0
- package/cjs/collective/types.js +2 -0
- package/{build → cjs}/contracts/fees.d.ts +1 -1
- package/cjs/contracts/fees.js +48 -0
- package/cjs/contracts/index.js +4 -0
- package/cjs/council/index.js +77 -0
- package/cjs/council/types.js +2 -0
- package/cjs/council/votes.js +59 -0
- package/cjs/council/votesOf.js +21 -0
- package/{build → cjs}/crowdloan/childKey.d.ts +2 -2
- package/cjs/crowdloan/childKey.js +26 -0
- package/{build → cjs}/crowdloan/contributions.d.ts +2 -2
- package/cjs/crowdloan/contributions.js +83 -0
- package/cjs/crowdloan/index.js +6 -0
- package/{build → cjs}/crowdloan/ownContributions.d.ts +2 -2
- package/cjs/crowdloan/ownContributions.js +48 -0
- package/cjs/crowdloan/types.js +2 -0
- package/{build → cjs}/crowdloan/util.d.ts +2 -2
- package/cjs/crowdloan/util.js +20 -0
- package/cjs/democracy/dispatchQueue.js +90 -0
- package/cjs/democracy/index.js +14 -0
- package/cjs/democracy/locks.js +65 -0
- package/cjs/democracy/nextExternal.js +31 -0
- package/{build → cjs}/democracy/preimages.d.ts +5 -5
- package/cjs/democracy/preimages.js +117 -0
- package/cjs/democracy/proposals.js +46 -0
- package/cjs/democracy/referendumIds.js +24 -0
- package/cjs/democracy/referendums.js +22 -0
- package/cjs/democracy/referendumsActive.js +19 -0
- package/{build → cjs}/democracy/referendumsFinished.d.ts +2 -2
- package/cjs/democracy/referendumsFinished.js +20 -0
- package/{build → cjs}/democracy/referendumsInfo.d.ts +2 -2
- package/cjs/democracy/referendumsInfo.js +114 -0
- package/cjs/democracy/sqrtElectorate.js +18 -0
- package/{build → cjs}/democracy/types.d.ts +3 -3
- package/cjs/democracy/types.js +2 -0
- package/{build → cjs}/democracy/util.d.ts +5 -5
- package/cjs/democracy/util.js +137 -0
- package/{build → cjs}/derive.d.ts +2 -2
- package/cjs/derive.js +25 -0
- package/cjs/elections/index.js +4 -0
- package/cjs/elections/info.js +93 -0
- package/cjs/elections/types.js +2 -0
- package/cjs/imOnline/index.js +4 -0
- package/cjs/imOnline/receivedHeartbeats.js +42 -0
- package/cjs/index.js +5 -0
- package/cjs/membership/index.js +74 -0
- package/cjs/package.json +3 -0
- package/cjs/packageDetect.d.ts +1 -0
- package/cjs/packageDetect.js +5 -0
- package/cjs/packageInfo.js +4 -0
- package/cjs/session/index.js +6 -0
- package/cjs/session/indexes.js +68 -0
- package/cjs/session/info.js +28 -0
- package/cjs/session/progress.js +93 -0
- package/cjs/session/types.js +2 -0
- package/cjs/society/candidates.js +42 -0
- package/cjs/society/index.js +7 -0
- package/cjs/society/info.js +36 -0
- package/cjs/society/member.js +18 -0
- package/cjs/society/members.js +70 -0
- package/{build → cjs}/society/types.d.ts +5 -5
- package/cjs/society/types.js +2 -0
- package/{build → cjs}/staking/account.d.ts +1 -1
- package/cjs/staking/account.js +80 -0
- package/cjs/staking/cache.js +39 -0
- package/{build → cjs}/staking/currentPoints.d.ts +2 -2
- package/cjs/staking/currentPoints.js +17 -0
- package/cjs/staking/electedInfo.js +37 -0
- package/cjs/staking/erasExposure.js +76 -0
- package/cjs/staking/erasHistoric.js +31 -0
- package/cjs/staking/erasPoints.js +51 -0
- package/cjs/staking/erasPrefs.js +47 -0
- package/cjs/staking/erasRewards.js +38 -0
- package/cjs/staking/erasSlashes.js +53 -0
- package/cjs/staking/index.js +25 -0
- package/{build → cjs}/staking/keys.d.ts +1 -1
- package/cjs/staking/keys.js +61 -0
- package/cjs/staking/overview.js +31 -0
- package/{build → cjs}/staking/ownExposure.d.ts +1 -1
- package/cjs/staking/ownExposure.js +64 -0
- package/{build → cjs}/staking/ownSlashes.d.ts +1 -1
- package/cjs/staking/ownSlashes.js +51 -0
- package/{build → cjs}/staking/query.d.ts +1 -1
- package/cjs/staking/query.js +176 -0
- package/{build → cjs}/staking/stakerExposure.d.ts +1 -1
- package/cjs/staking/stakerExposure.js +56 -0
- package/cjs/staking/stakerPoints.js +35 -0
- package/cjs/staking/stakerPrefs.js +33 -0
- package/{build → cjs}/staking/stakerRewards.d.ts +1 -1
- package/cjs/staking/stakerRewards.js +222 -0
- package/cjs/staking/stakerSlashes.js +34 -0
- package/cjs/staking/stashes.js +38 -0
- package/{build → cjs}/staking/types.d.ts +15 -15
- package/cjs/staking/types.js +2 -0
- package/cjs/staking/util.js +53 -0
- package/cjs/staking/validators.js +71 -0
- package/cjs/staking/waitingInfo.js +32 -0
- package/cjs/technicalCommittee/index.js +74 -0
- package/cjs/teyrchains/index.js +5 -0
- package/{build/parachains → cjs/teyrchains}/info.d.ts +7 -7
- package/cjs/teyrchains/info.js +75 -0
- package/cjs/teyrchains/overview.d.ts +15 -0
- package/cjs/teyrchains/overview.js +39 -0
- package/{build/parachains → cjs/teyrchains}/types.d.ts +6 -6
- package/cjs/teyrchains/types.js +2 -0
- package/cjs/teyrchains/util.js +8 -0
- package/cjs/treasury/index.js +4 -0
- package/cjs/treasury/proposals.js +71 -0
- package/cjs/tx/constants.js +8 -0
- package/cjs/tx/events.js +24 -0
- package/cjs/tx/extrinsicInfo.js +87 -0
- package/cjs/tx/index.js +6 -0
- package/cjs/tx/signingInfo.js +81 -0
- package/cjs/type/HeaderExtended.js +23 -0
- package/cjs/type/SignedBlockExtended.js +60 -0
- package/cjs/type/index.js +7 -0
- package/cjs/type/types.js +2 -0
- package/cjs/type/util.js +36 -0
- package/{build → cjs}/types.d.ts +4 -4
- package/cjs/types.js +15 -0
- package/cjs/util/approvalFlagsToBools.js +19 -0
- package/cjs/util/blockNumber.js +9 -0
- package/cjs/util/cache.js +45 -0
- package/cjs/util/cacheImpl.js +26 -0
- package/cjs/util/first.js +12 -0
- package/cjs/util/index.js +13 -0
- package/cjs/util/lazy.js +7 -0
- package/cjs/util/types.js +2 -0
- package/collective/helpers.d.ts +6 -0
- package/collective/helpers.js +18 -0
- package/collective/index.d.ts +3 -0
- package/collective/index.js +3 -0
- package/collective/members.d.ts +2 -0
- package/collective/members.js +2 -0
- package/collective/prime.d.ts +2 -0
- package/collective/prime.js +8 -0
- package/collective/proposals.d.ts +6 -0
- package/collective/proposals.js +38 -0
- package/{src/collective/types.ts → collective/types.d.ts} +0 -11
- package/collective/types.js +1 -0
- package/contracts/fees.d.ts +14 -0
- package/contracts/fees.js +45 -0
- package/contracts/index.d.ts +1 -0
- package/contracts/index.js +1 -0
- package/council/index.d.ts +72 -0
- package/{src/council/index.ts → council/index.js} +0 -6
- package/{src/council/types.ts → council/types.d.ts} +2 -7
- package/council/types.js +1 -0
- package/council/votes.d.ts +11 -0
- package/council/votes.js +56 -0
- package/council/votesOf.d.ts +16 -0
- package/council/votesOf.js +18 -0
- package/crowdloan/childKey.d.ts +15 -0
- package/crowdloan/childKey.js +23 -0
- package/crowdloan/contributions.d.ts +14 -0
- package/crowdloan/contributions.js +80 -0
- package/crowdloan/index.d.ts +3 -0
- package/crowdloan/index.js +3 -0
- package/crowdloan/ownContributions.d.ts +15 -0
- package/crowdloan/ownContributions.js +45 -0
- package/{src/crowdloan/types.ts → crowdloan/types.d.ts} +2 -7
- package/crowdloan/types.js +1 -0
- package/crowdloan/util.d.ts +10 -0
- package/crowdloan/util.js +17 -0
- package/democracy/dispatchQueue.d.ts +12 -0
- package/democracy/dispatchQueue.js +87 -0
- package/{src/democracy/index.ts → democracy/index.d.ts} +0 -3
- package/democracy/index.js +11 -0
- package/democracy/locks.d.ts +14 -0
- package/democracy/locks.js +62 -0
- package/democracy/nextExternal.d.ts +12 -0
- package/democracy/nextExternal.js +28 -0
- package/democracy/preimages.d.ts +24 -0
- package/democracy/preimages.js +113 -0
- package/democracy/proposals.d.ts +12 -0
- package/democracy/proposals.js +43 -0
- package/democracy/referendumIds.d.ts +12 -0
- package/democracy/referendumIds.js +21 -0
- package/democracy/referendums.d.ts +11 -0
- package/democracy/referendums.js +19 -0
- package/democracy/referendumsActive.d.ts +12 -0
- package/democracy/referendumsActive.js +16 -0
- package/democracy/referendumsFinished.d.ts +15 -0
- package/democracy/referendumsFinished.js +17 -0
- package/democracy/referendumsInfo.d.ts +23 -0
- package/democracy/referendumsInfo.js +108 -0
- package/democracy/sqrtElectorate.d.ts +13 -0
- package/democracy/sqrtElectorate.js +15 -0
- package/democracy/types.d.ts +70 -0
- package/democracy/types.js +1 -0
- package/democracy/util.d.ts +18 -0
- package/democracy/util.js +129 -0
- package/derive.d.ts +52 -0
- package/{src/derive.ts → derive.js} +2 -22
- package/elections/index.d.ts +1 -0
- package/elections/index.js +1 -0
- package/elections/info.d.ts +14 -0
- package/elections/info.js +90 -0
- package/elections/types.d.ts +18 -0
- package/elections/types.js +1 -0
- package/imOnline/index.d.ts +1 -0
- package/imOnline/index.js +1 -0
- package/imOnline/receivedHeartbeats.d.ts +13 -0
- package/imOnline/receivedHeartbeats.js +39 -0
- package/index.d.ts +2 -0
- package/index.js +2 -0
- package/membership/index.d.ts +70 -0
- package/{src/membership/index.ts → membership/index.js} +0 -5
- package/package.json +2066 -19
- package/packageDetect.d.ts +1 -0
- package/packageDetect.js +3 -0
- package/packageInfo.d.ts +6 -0
- package/packageInfo.js +1 -0
- package/session/index.d.ts +3 -0
- package/session/index.js +3 -0
- package/session/indexes.d.ts +15 -0
- package/session/indexes.js +65 -0
- package/session/info.d.ts +13 -0
- package/{src/session/info.ts → session/info.js} +7 -21
- package/session/progress.d.ts +47 -0
- package/session/progress.js +89 -0
- package/session/types.d.ts +19 -0
- package/session/types.js +1 -0
- package/society/candidates.d.ts +12 -0
- package/society/candidates.js +39 -0
- package/{src/society/index.ts → society/index.d.ts} +0 -3
- package/society/index.js +4 -0
- package/society/info.d.ts +12 -0
- package/society/info.js +33 -0
- package/society/member.d.ts +14 -0
- package/society/member.js +15 -0
- package/society/members.d.ts +14 -0
- package/society/members.js +66 -0
- package/society/types.d.ts +27 -0
- package/society/types.js +1 -0
- package/staking/account.d.ts +31 -0
- package/staking/account.js +76 -0
- package/staking/cache.d.ts +12 -0
- package/staking/cache.js +32 -0
- package/staking/currentPoints.d.ts +13 -0
- package/staking/currentPoints.js +14 -0
- package/staking/electedInfo.d.ts +23 -0
- package/staking/electedInfo.js +34 -0
- package/staking/erasExposure.d.ts +30 -0
- package/staking/erasExposure.js +72 -0
- package/staking/erasHistoric.d.ts +8 -0
- package/staking/erasHistoric.js +28 -0
- package/staking/erasPoints.d.ts +18 -0
- package/staking/erasPoints.js +47 -0
- package/staking/erasPrefs.d.ts +27 -0
- package/staking/erasPrefs.js +43 -0
- package/staking/erasRewards.d.ts +14 -0
- package/staking/erasRewards.js +34 -0
- package/staking/erasSlashes.d.ts +26 -0
- package/staking/erasSlashes.js +49 -0
- package/{src/staking/index.ts → staking/index.d.ts} +0 -3
- package/staking/index.js +22 -0
- package/staking/keys.d.ts +35 -0
- package/staking/keys.js +57 -0
- package/staking/overview.d.ts +19 -0
- package/staking/overview.js +28 -0
- package/staking/ownExposure.d.ts +37 -0
- package/staking/ownExposure.js +60 -0
- package/staking/ownSlashes.d.ts +35 -0
- package/staking/ownSlashes.js +47 -0
- package/staking/query.d.ts +31 -0
- package/staking/query.js +172 -0
- package/staking/stakerExposure.d.ts +33 -0
- package/staking/stakerExposure.js +51 -0
- package/staking/stakerPoints.d.ts +22 -0
- package/staking/stakerPoints.js +31 -0
- package/staking/stakerPrefs.d.ts +24 -0
- package/staking/stakerPrefs.js +29 -0
- package/staking/stakerRewards.d.ts +49 -0
- package/staking/stakerRewards.js +215 -0
- package/staking/stakerSlashes.d.ts +22 -0
- package/staking/stakerSlashes.js +30 -0
- package/staking/stashes.d.ts +16 -0
- package/staking/stashes.js +35 -0
- package/staking/types.d.ts +139 -0
- package/staking/types.js +1 -0
- package/staking/util.d.ts +14 -0
- package/staking/util.js +46 -0
- package/staking/validators.d.ts +33 -0
- package/{src/staking/validators.ts → staking/validators.js} +25 -40
- package/staking/waitingInfo.d.ts +16 -0
- package/{src/staking/waitingInfo.ts → staking/waitingInfo.js} +8 -24
- package/technicalCommittee/index.d.ts +70 -0
- package/{src/technicalCommittee/index.ts → technicalCommittee/index.js} +0 -5
- package/teyrchains/index.d.ts +2 -0
- package/teyrchains/index.js +2 -0
- package/teyrchains/info.d.ts +19 -0
- package/teyrchains/info.js +72 -0
- package/teyrchains/overview.d.ts +15 -0
- package/teyrchains/overview.js +36 -0
- package/teyrchains/types.d.ts +38 -0
- package/teyrchains/types.js +1 -0
- package/teyrchains/util.d.ts +3 -0
- package/teyrchains/util.js +5 -0
- package/treasury/index.d.ts +1 -0
- package/treasury/index.js +1 -0
- package/treasury/proposals.d.ts +12 -0
- package/treasury/proposals.js +68 -0
- package/tx/constants.d.ts +5 -0
- package/{src/tx/constants.ts → tx/constants.js} +0 -8
- package/tx/events.d.ts +22 -0
- package/tx/events.js +21 -0
- package/tx/extrinsicInfo.d.ts +61 -0
- package/tx/extrinsicInfo.js +83 -0
- package/tx/index.d.ts +3 -0
- package/tx/index.js +3 -0
- package/tx/signingInfo.d.ts +25 -0
- package/tx/signingInfo.js +78 -0
- package/type/HeaderExtended.d.ts +4 -0
- package/type/HeaderExtended.js +20 -0
- package/type/SignedBlockExtended.d.ts +4 -0
- package/type/SignedBlockExtended.js +57 -0
- package/{src/type/index.ts → type/index.d.ts} +0 -3
- package/type/index.js +2 -0
- package/type/types.d.ts +15 -0
- package/type/types.js +1 -0
- package/type/util.d.ts +2 -0
- package/type/util.js +33 -0
- package/{src/types.ts → types.d.ts} +39 -57
- package/types.js +12 -0
- package/util/approvalFlagsToBools.d.ts +4 -0
- package/util/approvalFlagsToBools.js +16 -0
- package/util/blockNumber.d.ts +7 -0
- package/util/blockNumber.js +6 -0
- package/util/cache.d.ts +4 -0
- package/util/cache.js +42 -0
- package/util/cacheImpl.d.ts +3 -0
- package/util/cacheImpl.js +23 -0
- package/util/first.d.ts +4 -0
- package/util/first.js +8 -0
- package/{src/util/index.ts → util/index.d.ts} +0 -6
- package/util/index.js +7 -0
- package/util/lazy.d.ts +4 -0
- package/util/lazy.js +4 -0
- package/util/types.d.ts +6 -0
- package/util/types.js +1 -0
- package/build/bagsList/listNodes.d.ts +0 -9
- package/build/parachains/overview.d.ts +0 -15
- package/src/accounts/accountId.ts +0 -44
- package/src/accounts/flags.ts +0 -90
- package/src/accounts/idAndIndex.ts +0 -51
- package/src/accounts/idToIndex.ts +0 -31
- package/src/accounts/identity.ts +0 -235
- package/src/accounts/indexToId.ts +0 -33
- package/src/accounts/indexes.ts +0 -56
- package/src/accounts/info.ts +0 -58
- package/src/accounts/types.ts +0 -48
- package/src/augment.ts +0 -4
- package/src/bagsList/get.ts +0 -79
- package/src/bagsList/getExpanded.ts +0 -41
- package/src/bagsList/index.ts +0 -6
- package/src/bagsList/listNodes.ts +0 -50
- package/src/bagsList/types.ts +0 -18
- package/src/bagsList/util.ts +0 -14
- package/src/balances/account.ts +0 -210
- package/src/balances/all.ts +0 -246
- package/src/balances/types.ts +0 -79
- package/src/balances/votingBalances.ts +0 -33
- package/src/bounties/bounties.spec.ts +0 -162
- package/src/bounties/bounties.ts +0 -76
- package/src/bounties/helpers/filterBountyProposals.ts +0 -13
- package/src/bounties/index.ts +0 -4
- package/src/bundle.ts +0 -140
- package/src/chain/bestNumberLag.ts +0 -33
- package/src/chain/getBlock.ts +0 -43
- package/src/chain/getHeader.ts +0 -37
- package/src/chain/subscribeFinalizedBlocks.ts +0 -30
- package/src/chain/subscribeFinalizedHeads.ts +0 -62
- package/src/chain/subscribeNewBlocks.ts +0 -30
- package/src/chain/subscribeNewHeads.ts +0 -38
- package/src/chain/util.ts +0 -112
- package/src/checkTypes.manual.ts +0 -8
- package/src/collective/helpers.ts +0 -36
- package/src/collective/index.ts +0 -6
- package/src/collective/members.ts +0 -8
- package/src/collective/prime.ts +0 -25
- package/src/collective/proposals.ts +0 -73
- package/src/contracts/fees.ts +0 -61
- package/src/contracts/index.ts +0 -4
- package/src/council/votes.ts +0 -97
- package/src/council/votesOf.ts +0 -35
- package/src/crowdloan/childKey.ts +0 -57
- package/src/crowdloan/contributions.ts +0 -142
- package/src/crowdloan/index.ts +0 -6
- package/src/crowdloan/ownContributions.ts +0 -81
- package/src/crowdloan/util.ts +0 -33
- package/src/democracy/dispatchQueue.ts +0 -158
- package/src/democracy/locks.ts +0 -114
- package/src/democracy/nextExternal.ts +0 -49
- package/src/democracy/preimages.ts +0 -171
- package/src/democracy/proposals.ts +0 -81
- package/src/democracy/referendumIds.ts +0 -37
- package/src/democracy/referendums.ts +0 -39
- package/src/democracy/referendumsActive.ts +0 -30
- package/src/democracy/referendumsFinished.ts +0 -37
- package/src/democracy/referendumsInfo.ts +0 -181
- package/src/democracy/sqrtElectorate.ts +0 -29
- package/src/democracy/types.ts +0 -84
- package/src/democracy/util.ts +0 -166
- package/src/elections/index.ts +0 -4
- package/src/elections/info.ts +0 -126
- package/src/elections/types.ts +0 -22
- package/src/imOnline/index.ts +0 -4
- package/src/imOnline/receivedHeartbeats.ts +0 -65
- package/src/index.spec.ts +0 -103
- package/src/index.ts +0 -6
- package/src/mod.ts +0 -4
- package/src/packageDetect.ts +0 -11
- package/src/packageInfo.ts +0 -6
- package/src/parachains/index.ts +0 -5
- package/src/parachains/info.ts +0 -111
- package/src/parachains/overview.ts +0 -63
- package/src/parachains/types.ts +0 -46
- package/src/parachains/util.ts +0 -11
- package/src/session/index.ts +0 -6
- package/src/session/indexes.ts +0 -90
- package/src/session/progress.ts +0 -130
- package/src/session/types.ts +0 -25
- package/src/society/candidates.ts +0 -71
- package/src/society/info.ts +0 -50
- package/src/society/member.ts +0 -28
- package/src/society/members.ts +0 -107
- package/src/society/types.ts +0 -33
- package/src/staking/account.ts +0 -112
- package/src/staking/cache.ts +0 -48
- package/src/staking/currentPoints.ts +0 -28
- package/src/staking/electedInfo.ts +0 -54
- package/src/staking/erasExposure.ts +0 -105
- package/src/staking/erasHistoric.ts +0 -47
- package/src/staking/erasPoints.ts +0 -67
- package/src/staking/erasPrefs.ts +0 -63
- package/src/staking/erasRewards.ts +0 -52
- package/src/staking/erasSlashes.ts +0 -69
- package/src/staking/keys.ts +0 -86
- package/src/staking/overview.ts +0 -42
- package/src/staking/ownExposure.ts +0 -83
- package/src/staking/ownSlashes.ts +0 -68
- package/src/staking/query.ts +0 -230
- package/src/staking/stakerExposure.ts +0 -78
- package/src/staking/stakerPoints.ts +0 -46
- package/src/staking/stakerPrefs.ts +0 -45
- package/src/staking/stakerRewards.ts +0 -298
- package/src/staking/stakerSlashes.ts +0 -45
- package/src/staking/stashes.ts +0 -55
- package/src/staking/types.ts +0 -174
- package/src/staking/util.ts +0 -94
- package/src/test/bountyFactory.ts +0 -39
- package/src/test/bytesFactory.ts +0 -15
- package/src/test/helpers.ts +0 -23
- package/src/test/proposalFactory.ts +0 -25
- package/src/treasury/index.ts +0 -4
- package/src/treasury/proposals.ts +0 -109
- package/src/tx/events.ts +0 -43
- package/src/tx/extrinsicInfo.ts +0 -123
- package/src/tx/index.ts +0 -6
- package/src/tx/signingInfo.ts +0 -129
- package/src/type/HeaderExtended.ts +0 -33
- package/src/type/SignedBlockExtended.ts +0 -75
- package/src/type/types.ts +0 -21
- package/src/type/util.ts +0 -45
- package/src/util/approvalFlagToBools.spec.ts +0 -37
- package/src/util/approvalFlagsToBools.ts +0 -26
- package/src/util/blockNumber.ts +0 -15
- package/src/util/cache.ts +0 -65
- package/src/util/cacheImpl.ts +0 -30
- package/src/util/first.ts +0 -20
- package/src/util/lazy.ts +0 -16
- package/src/util/types.ts +0 -9
- package/tsconfig.build.json +0 -21
- package/tsconfig.build.tsbuildinfo +0 -1
- package/tsconfig.spec.json +0 -27
- /package/{build/accounts → accounts}/accountId.d.ts +0 -0
- /package/{build/accounts → accounts}/idAndIndex.d.ts +0 -0
- /package/{build/accounts → accounts}/idToIndex.d.ts +0 -0
- /package/{build/accounts → accounts}/index.d.ts +0 -0
- /package/{build/accounts → accounts}/indexToId.d.ts +0 -0
- /package/{build/accounts → accounts}/indexes.d.ts +0 -0
- /package/{build/accounts → accounts}/info.d.ts +0 -0
- /package/{build/accounts → accounts}/types.d.ts +0 -0
- /package/{build/packageDetect.d.ts → accounts/types.js} +0 -0
- /package/{build/alliance → alliance}/index.d.ts +0 -0
- /package/{build/augment.d.ts → augment.d.ts} +0 -0
- /package/{build/bagsList → bagsList}/get.d.ts +0 -0
- /package/{build/bagsList → bagsList}/getExpanded.d.ts +0 -0
- /package/{build/bagsList → bagsList}/index.d.ts +0 -0
- /package/{build/bagsList → bagsList}/util.d.ts +0 -0
- /package/{build/balances → balances}/account.d.ts +0 -0
- /package/{build/balances → balances}/all.d.ts +0 -0
- /package/{build/balances → balances}/index.d.ts +0 -0
- /package/{build/balances → balances}/votingBalances.d.ts +0 -0
- /package/{build/bounties → bounties}/bounties.d.ts +0 -0
- /package/{build/bounties → bounties}/helpers/filterBountyProposals.d.ts +0 -0
- /package/{build/bounties → bounties}/index.d.ts +0 -0
- /package/{build/bundle.d.ts → bundle.d.ts} +0 -0
- /package/{build/chain → chain}/bestNumber.d.ts +0 -0
- /package/{build/chain → chain}/bestNumberFinalized.d.ts +0 -0
- /package/{build/chain → chain}/bestNumberLag.d.ts +0 -0
- /package/{build/chain → chain}/getBlock.d.ts +0 -0
- /package/{build/chain → chain}/getBlockByNumber.d.ts +0 -0
- /package/{build/chain → chain}/getHeader.d.ts +0 -0
- /package/{build/chain → chain}/index.d.ts +0 -0
- /package/{build/chain → chain}/subscribeFinalizedBlocks.d.ts +0 -0
- /package/{build/chain → chain}/subscribeFinalizedHeads.d.ts +0 -0
- /package/{build/chain → chain}/subscribeNewBlocks.d.ts +0 -0
- /package/{build/chain → chain}/subscribeNewHeads.d.ts +0 -0
- /package/{build/chain → chain}/util.d.ts +0 -0
- /package/{build → cjs}/collective/helpers.d.ts +0 -0
- /package/{build → cjs}/collective/index.d.ts +0 -0
- /package/{build → cjs}/collective/members.d.ts +0 -0
- /package/{build → cjs}/collective/prime.d.ts +0 -0
- /package/{build → cjs}/collective/proposals.d.ts +0 -0
- /package/{build → cjs}/collective/types.d.ts +0 -0
- /package/{build → cjs}/contracts/index.d.ts +0 -0
- /package/{build → cjs}/council/index.d.ts +0 -0
- /package/{build → cjs}/council/types.d.ts +0 -0
- /package/{build → cjs}/council/votes.d.ts +0 -0
- /package/{build → cjs}/council/votesOf.d.ts +0 -0
- /package/{build → cjs}/crowdloan/index.d.ts +0 -0
- /package/{build → cjs}/crowdloan/types.d.ts +0 -0
- /package/{build → cjs}/democracy/dispatchQueue.d.ts +0 -0
- /package/{build → cjs}/democracy/index.d.ts +0 -0
- /package/{build → cjs}/democracy/locks.d.ts +0 -0
- /package/{build → cjs}/democracy/nextExternal.d.ts +0 -0
- /package/{build → cjs}/democracy/proposals.d.ts +0 -0
- /package/{build → cjs}/democracy/referendumIds.d.ts +0 -0
- /package/{build → cjs}/democracy/referendums.d.ts +0 -0
- /package/{build → cjs}/democracy/referendumsActive.d.ts +0 -0
- /package/{build → cjs}/democracy/sqrtElectorate.d.ts +0 -0
- /package/{build → cjs}/elections/index.d.ts +0 -0
- /package/{build → cjs}/elections/info.d.ts +0 -0
- /package/{build → cjs}/elections/types.d.ts +0 -0
- /package/{build → cjs}/imOnline/index.d.ts +0 -0
- /package/{build → cjs}/imOnline/receivedHeartbeats.d.ts +0 -0
- /package/{build → cjs}/index.d.ts +0 -0
- /package/{build → cjs}/membership/index.d.ts +0 -0
- /package/{build → cjs}/packageInfo.d.ts +0 -0
- /package/{build → cjs}/session/index.d.ts +0 -0
- /package/{build → cjs}/session/indexes.d.ts +0 -0
- /package/{build → cjs}/session/info.d.ts +0 -0
- /package/{build → cjs}/session/progress.d.ts +0 -0
- /package/{build → cjs}/session/types.d.ts +0 -0
- /package/{build → cjs}/society/candidates.d.ts +0 -0
- /package/{build → cjs}/society/index.d.ts +0 -0
- /package/{build → cjs}/society/info.d.ts +0 -0
- /package/{build → cjs}/society/member.d.ts +0 -0
- /package/{build → cjs}/society/members.d.ts +0 -0
- /package/{build → cjs}/staking/cache.d.ts +0 -0
- /package/{build → cjs}/staking/electedInfo.d.ts +0 -0
- /package/{build → cjs}/staking/erasExposure.d.ts +0 -0
- /package/{build → cjs}/staking/erasHistoric.d.ts +0 -0
- /package/{build → cjs}/staking/erasPoints.d.ts +0 -0
- /package/{build → cjs}/staking/erasPrefs.d.ts +0 -0
- /package/{build → cjs}/staking/erasRewards.d.ts +0 -0
- /package/{build → cjs}/staking/erasSlashes.d.ts +0 -0
- /package/{build → cjs}/staking/index.d.ts +0 -0
- /package/{build → cjs}/staking/overview.d.ts +0 -0
- /package/{build → cjs}/staking/stakerPoints.d.ts +0 -0
- /package/{build → cjs}/staking/stakerPrefs.d.ts +0 -0
- /package/{build → cjs}/staking/stakerSlashes.d.ts +0 -0
- /package/{build → cjs}/staking/stashes.d.ts +0 -0
- /package/{build → cjs}/staking/util.d.ts +0 -0
- /package/{build → cjs}/staking/validators.d.ts +0 -0
- /package/{build → cjs}/staking/waitingInfo.d.ts +0 -0
- /package/{build → cjs}/technicalCommittee/index.d.ts +0 -0
- /package/{build/parachains → cjs/teyrchains}/index.d.ts +0 -0
- /package/{build/parachains → cjs/teyrchains}/util.d.ts +0 -0
- /package/{build → cjs}/treasury/index.d.ts +0 -0
- /package/{build → cjs}/treasury/proposals.d.ts +0 -0
- /package/{build → cjs}/tx/constants.d.ts +0 -0
- /package/{build → cjs}/tx/events.d.ts +0 -0
- /package/{build → cjs}/tx/extrinsicInfo.d.ts +0 -0
- /package/{build → cjs}/tx/index.d.ts +0 -0
- /package/{build → cjs}/tx/signingInfo.d.ts +0 -0
- /package/{build → cjs}/type/HeaderExtended.d.ts +0 -0
- /package/{build → cjs}/type/SignedBlockExtended.d.ts +0 -0
- /package/{build → cjs}/type/index.d.ts +0 -0
- /package/{build → cjs}/type/types.d.ts +0 -0
- /package/{build → cjs}/type/util.d.ts +0 -0
- /package/{build → cjs}/util/approvalFlagsToBools.d.ts +0 -0
- /package/{build → cjs}/util/blockNumber.d.ts +0 -0
- /package/{build → cjs}/util/cache.d.ts +0 -0
- /package/{build → cjs}/util/cacheImpl.d.ts +0 -0
- /package/{build → cjs}/util/first.d.ts +0 -0
- /package/{build → cjs}/util/index.d.ts +0 -0
- /package/{build → cjs}/util/lazy.d.ts +0 -0
- /package/{build → cjs}/util/types.d.ts +0 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { combineLatest, map, switchMap } from 'rxjs';
|
|
2
|
+
import { BN, BN_ZERO, objectSpread } from '@pezkuwi/util';
|
|
3
|
+
import { firstMemo, memo } from '../util/index.js';
|
|
4
|
+
const QUERY_OPTS = {
|
|
5
|
+
withDestination: true,
|
|
6
|
+
withLedger: true,
|
|
7
|
+
withNominations: true,
|
|
8
|
+
withPrefs: true
|
|
9
|
+
};
|
|
10
|
+
function groupByEra(list) {
|
|
11
|
+
return list.reduce((map, { era, value }) => {
|
|
12
|
+
const key = era.toString();
|
|
13
|
+
map[key] = (map[key] || BN_ZERO).add(value.unwrap());
|
|
14
|
+
return map;
|
|
15
|
+
}, {});
|
|
16
|
+
}
|
|
17
|
+
function calculateUnlocking(api, stakingLedger, sessionInfo) {
|
|
18
|
+
const results = Object
|
|
19
|
+
.entries(groupByEra((stakingLedger?.unlocking || []).filter(({ era }) => era.unwrap().gt(sessionInfo.activeEra))))
|
|
20
|
+
.map(([eraString, value]) => ({
|
|
21
|
+
remainingEras: new BN(eraString).isub(sessionInfo.activeEra),
|
|
22
|
+
value: api.registry.createType('Balance', value)
|
|
23
|
+
}));
|
|
24
|
+
return results.length
|
|
25
|
+
? results
|
|
26
|
+
: undefined;
|
|
27
|
+
}
|
|
28
|
+
function redeemableSum(api, stakingLedger, sessionInfo) {
|
|
29
|
+
return api.registry.createType('Balance', (stakingLedger?.unlocking || []).reduce((total, { era, value }) => {
|
|
30
|
+
// aligns with https://github.com/pezkuwichain/bizinikiwi/blob/fdfdc73f9e64dc47934b72eb9af3e1989e4ba699/frame/staking/src/pallet/mod.rs#L973-L975
|
|
31
|
+
// (ensure currentEra >= era passed, as per https://github.com/pezkuwichain/bizinikiwi/blob/fdfdc73f9e64dc47934b72eb9af3e1989e4ba699/frame/staking/src/lib.rs#L477-L494)
|
|
32
|
+
// NOTE: Previously we used activeEra >= era, which is incorrect for the last session
|
|
33
|
+
return era.unwrap().gt(sessionInfo.currentEra)
|
|
34
|
+
? total
|
|
35
|
+
: total.iadd(value.unwrap());
|
|
36
|
+
}, new BN(0)));
|
|
37
|
+
}
|
|
38
|
+
function parseResult(api, sessionInfo, keys, query) {
|
|
39
|
+
return objectSpread({}, keys, query, {
|
|
40
|
+
redeemable: redeemableSum(api, query.stakingLedger, sessionInfo),
|
|
41
|
+
unlocking: calculateUnlocking(api, query.stakingLedger, sessionInfo)
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* @name accounts
|
|
46
|
+
* @param {(Uint8Array | string)[]} accountIds List of account stashes
|
|
47
|
+
* @param {StakingQueryFlags} opts optional filtering flag
|
|
48
|
+
* @description From a list of stashes, fill in all the relevant staking details
|
|
49
|
+
* @example
|
|
50
|
+
* ```javascript
|
|
51
|
+
* const accounts = await api.derive.staking.accounts([
|
|
52
|
+
* "149B17nn7zVL4SkLSNmANupEkGexUBAxVrdk4bbWFZYibkFc",
|
|
53
|
+
* ]);
|
|
54
|
+
* console.log("First account staking info:", accounts[0]);
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
export function accounts(instanceId, api) {
|
|
58
|
+
return memo(instanceId, (accountIds, opts = QUERY_OPTS) => api.derive.session.info().pipe(switchMap((sessionInfo) => combineLatest([
|
|
59
|
+
api.derive.staking.keysMulti(accountIds),
|
|
60
|
+
api.derive.staking.queryMulti(accountIds, opts)
|
|
61
|
+
]).pipe(map(([keys, queries]) => queries.map((q, index) => parseResult(api, sessionInfo, keys[index], q)))))));
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* @name account
|
|
65
|
+
* @param {(Uint8Array | string)} accountId AccountId of the stash.
|
|
66
|
+
* @param {StakingQueryFlags} opts (Optional) filtering flag.
|
|
67
|
+
* @description From a stash, retrieve the controllerId and fill in all the relevant staking details.
|
|
68
|
+
* @example
|
|
69
|
+
* ```javascript
|
|
70
|
+
* const accountStakingData = await api.derive.staking.account(
|
|
71
|
+
* "149B17nn7zVL4SkLSNmANupEkGexUBAxVrdk4bbWFZYibkFc"
|
|
72
|
+
* );
|
|
73
|
+
* console.log(accountStakingData);
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
export const account = /*#__PURE__*/ firstMemo((api, accountId, opts) => api.derive.staking.accounts([accountId], opts));
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { EraIndex } from '@pezkuwi/types/interfaces';
|
|
2
|
+
export declare function getEraCache<T>(CACHE_KEY: string, era: EraIndex, withActive?: boolean): [string, T | undefined];
|
|
3
|
+
export declare function getEraMultiCache<T>(CACHE_KEY: string, eras: EraIndex[], withActive?: boolean): T[];
|
|
4
|
+
export declare function setEraCache<T extends {
|
|
5
|
+
era: EraIndex;
|
|
6
|
+
}>(cacheKey: string, withActive: boolean, value: T): T;
|
|
7
|
+
export declare function setEraMultiCache<T extends {
|
|
8
|
+
era: EraIndex;
|
|
9
|
+
}>(CACHE_KEY: string, withActive: boolean, values: T[]): T[];
|
|
10
|
+
export declare function filterCachedEras<T extends {
|
|
11
|
+
era: EraIndex;
|
|
12
|
+
}>(eras: EraIndex[], cached: T[], query: T[]): T[];
|
package/staking/cache.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { deriveCache } from '../util/index.js';
|
|
2
|
+
export function getEraCache(CACHE_KEY, era, withActive) {
|
|
3
|
+
const cacheKey = `${CACHE_KEY}-${era.toString()}`;
|
|
4
|
+
return [
|
|
5
|
+
cacheKey,
|
|
6
|
+
withActive
|
|
7
|
+
? undefined
|
|
8
|
+
: deriveCache.get(cacheKey)
|
|
9
|
+
];
|
|
10
|
+
}
|
|
11
|
+
export function getEraMultiCache(CACHE_KEY, eras, withActive) {
|
|
12
|
+
const cached = withActive
|
|
13
|
+
? []
|
|
14
|
+
: eras
|
|
15
|
+
.map((e) => deriveCache.get(`${CACHE_KEY}-${e.toString()}`))
|
|
16
|
+
.filter((v) => !!v);
|
|
17
|
+
return cached;
|
|
18
|
+
}
|
|
19
|
+
export function setEraCache(cacheKey, withActive, value) {
|
|
20
|
+
!withActive && deriveCache.set(cacheKey, value);
|
|
21
|
+
return value;
|
|
22
|
+
}
|
|
23
|
+
export function setEraMultiCache(CACHE_KEY, withActive, values) {
|
|
24
|
+
!withActive && values.forEach((v) => deriveCache.set(`${CACHE_KEY}-${v.era.toString()}`, v));
|
|
25
|
+
return values;
|
|
26
|
+
}
|
|
27
|
+
export function filterCachedEras(eras, cached, query) {
|
|
28
|
+
return eras
|
|
29
|
+
.map((e) => cached.find(({ era }) => e.eq(era)) ||
|
|
30
|
+
query.find(({ era }) => e.eq(era)))
|
|
31
|
+
.filter((e) => !!e);
|
|
32
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Observable } from 'rxjs';
|
|
2
|
+
import type { PezpalletStakingEraRewardPoints } from '@pezkuwi/types/lookup';
|
|
3
|
+
import type { DeriveApi } from '../types.js';
|
|
4
|
+
/**
|
|
5
|
+
* @name currentPoints
|
|
6
|
+
* @description Retrieve the staking overview, including elected and points earned.
|
|
7
|
+
* @example
|
|
8
|
+
* ```javascript
|
|
9
|
+
* const currentPoints = await api.derive.staking.currentPoints();
|
|
10
|
+
* console.log(currentPoints.toHuman());
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
export declare function currentPoints(instanceId: string, api: DeriveApi): () => Observable<PezpalletStakingEraRewardPoints>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { switchMap } from 'rxjs';
|
|
2
|
+
import { memo } from '../util/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* @name currentPoints
|
|
5
|
+
* @description Retrieve the staking overview, including elected and points earned.
|
|
6
|
+
* @example
|
|
7
|
+
* ```javascript
|
|
8
|
+
* const currentPoints = await api.derive.staking.currentPoints();
|
|
9
|
+
* console.log(currentPoints.toHuman());
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
export function currentPoints(instanceId, api) {
|
|
13
|
+
return memo(instanceId, () => api.derive.session.indexes().pipe(switchMap(({ activeEra }) => api.query.staking.erasRewardPoints(activeEra))));
|
|
14
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Observable } from 'rxjs';
|
|
2
|
+
import type { DeriveApi, DeriveStakingElected, StakingQueryFlags } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* @name electedInfo
|
|
5
|
+
* @param {StakingQueryFlags} flags? (Optional) Query flags to filter the staking data.
|
|
6
|
+
* @param {number} page? (Optional) The page index for paginated results.
|
|
7
|
+
* @description Retrieves detailed staking information about the next elected validators and their associated staking data.
|
|
8
|
+
* @example
|
|
9
|
+
* ```javascript
|
|
10
|
+
* const { nextElected, validators, info } =
|
|
11
|
+
* await api.derive.staking.electedInfo();
|
|
12
|
+
* console.log(
|
|
13
|
+
* "Next Elected Validators:",
|
|
14
|
+
* nextElected.map((acc) => acc.toString())
|
|
15
|
+
* );
|
|
16
|
+
* console.log(
|
|
17
|
+
* "Current Validators:",
|
|
18
|
+
* validators.map((acc) => acc.toString())
|
|
19
|
+
* );
|
|
20
|
+
* console.log("Validator Staking Info:", info);
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export declare function electedInfo(instanceId: string, api: DeriveApi): (flags?: StakingQueryFlags, page?: number) => Observable<DeriveStakingElected>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { map, switchMap } from 'rxjs';
|
|
2
|
+
import { arrayFlatten } from '@pezkuwi/util';
|
|
3
|
+
import { memo } from '../util/index.js';
|
|
4
|
+
const DEFAULT_FLAGS = { withController: true, withExposure: true, withPrefs: true };
|
|
5
|
+
function combineAccounts(nextElected, validators) {
|
|
6
|
+
return arrayFlatten([nextElected, validators.filter((v) => !nextElected.find((n) => n.eq(v)))]);
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* @name electedInfo
|
|
10
|
+
* @param {StakingQueryFlags} flags? (Optional) Query flags to filter the staking data.
|
|
11
|
+
* @param {number} page? (Optional) The page index for paginated results.
|
|
12
|
+
* @description Retrieves detailed staking information about the next elected validators and their associated staking data.
|
|
13
|
+
* @example
|
|
14
|
+
* ```javascript
|
|
15
|
+
* const { nextElected, validators, info } =
|
|
16
|
+
* await api.derive.staking.electedInfo();
|
|
17
|
+
* console.log(
|
|
18
|
+
* "Next Elected Validators:",
|
|
19
|
+
* nextElected.map((acc) => acc.toString())
|
|
20
|
+
* );
|
|
21
|
+
* console.log(
|
|
22
|
+
* "Current Validators:",
|
|
23
|
+
* validators.map((acc) => acc.toString())
|
|
24
|
+
* );
|
|
25
|
+
* console.log("Validator Staking Info:", info);
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export function electedInfo(instanceId, api) {
|
|
29
|
+
return memo(instanceId, (flags = DEFAULT_FLAGS, page = 0) => api.derive.staking.validators().pipe(switchMap(({ nextElected, validators }) => api.derive.staking.queryMulti(combineAccounts(nextElected, validators), flags, page).pipe(map((info) => ({
|
|
30
|
+
info,
|
|
31
|
+
nextElected,
|
|
32
|
+
validators
|
|
33
|
+
}))))));
|
|
34
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { Observable } from 'rxjs';
|
|
2
|
+
import type { EraIndex } from '@pezkuwi/types/interfaces';
|
|
3
|
+
import type { DeriveApi, DeriveEraExposurePaged } from '../types.js';
|
|
4
|
+
/**
|
|
5
|
+
* erasStakersClipped will be deprecated and replaced with erasStakersPaged. Therefore support is given for both
|
|
6
|
+
* storage queries until erasStakersClipped has been completely out of use.
|
|
7
|
+
*/
|
|
8
|
+
export declare function _eraExposure(instanceId: string, api: DeriveApi): (era: EraIndex, withActive?: boolean) => Observable<DeriveEraExposurePaged>;
|
|
9
|
+
/**
|
|
10
|
+
* @name eraExposure
|
|
11
|
+
* @description Retrieves the staking exposure (nominators and total stake) for a specific era.
|
|
12
|
+
* @param {EraIndex} eras The staking era to query.
|
|
13
|
+
* @example
|
|
14
|
+
* ```javascript
|
|
15
|
+
* const era = api.createType("EraIndex", 1000);
|
|
16
|
+
* const exposure = await api.derive.staking.eraExposure(era);
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare const eraExposure: (instanceId: string, api: DeriveApi) => (era: EraIndex) => Observable<DeriveEraExposurePaged>;
|
|
20
|
+
export declare const _erasExposure: (instanceId: string, api: DeriveApi) => (eras: EraIndex[], withActive: boolean) => Observable<DeriveEraExposurePaged[]>;
|
|
21
|
+
/**
|
|
22
|
+
* @name erasExposure
|
|
23
|
+
* @description Retrieves staking exposure details for multiple past eras.
|
|
24
|
+
* @param {boolean} withActive? (Optional) Whether to include the active era in the result.
|
|
25
|
+
* @example
|
|
26
|
+
* ```javascript
|
|
27
|
+
* const exposure = await api.derive.staking.erasExposure(true);
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare const erasExposure: (instanceId: string, api: DeriveApi) => (withActive?: boolean) => Observable<DeriveEraExposurePaged[]>;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { map, of } from 'rxjs';
|
|
2
|
+
import { memo } from '../util/index.js';
|
|
3
|
+
import { getEraCache, setEraCache } from './cache.js';
|
|
4
|
+
import { combineEras, erasHistoricApply, singleEra } from './util.js';
|
|
5
|
+
const CACHE_KEY = 'eraExposure';
|
|
6
|
+
function mapStakersClipped(era, stakers) {
|
|
7
|
+
const nominators = {};
|
|
8
|
+
const validators = {};
|
|
9
|
+
stakers.forEach(([key, exposure]) => {
|
|
10
|
+
const validatorId = key.args[1].toString();
|
|
11
|
+
validators[validatorId] = exposure;
|
|
12
|
+
exposure.others.forEach(({ who }, validatorIndex) => {
|
|
13
|
+
const nominatorId = who.toString();
|
|
14
|
+
nominators[nominatorId] = nominators[nominatorId] || [];
|
|
15
|
+
nominators[nominatorId].push({ validatorId, validatorIndex });
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
return { era, nominators, validators };
|
|
19
|
+
}
|
|
20
|
+
function mapStakersPaged(era, stakers) {
|
|
21
|
+
const nominators = {};
|
|
22
|
+
const validators = {};
|
|
23
|
+
stakers.forEach(([key, exposureOpt]) => {
|
|
24
|
+
if (exposureOpt.isSome) {
|
|
25
|
+
const validatorId = key.args[1].toString();
|
|
26
|
+
const exposure = exposureOpt.unwrap();
|
|
27
|
+
validators[validatorId] = exposure;
|
|
28
|
+
exposure.others.forEach(({ who }, validatorIndex) => {
|
|
29
|
+
const nominatorId = who.toString();
|
|
30
|
+
nominators[nominatorId] = nominators[nominatorId] || [];
|
|
31
|
+
nominators[nominatorId].push({ validatorId, validatorIndex });
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
return { era, nominators, validators };
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* erasStakersClipped will be deprecated and replaced with erasStakersPaged. Therefore support is given for both
|
|
39
|
+
* storage queries until erasStakersClipped has been completely out of use.
|
|
40
|
+
*/
|
|
41
|
+
export function _eraExposure(instanceId, api) {
|
|
42
|
+
return memo(instanceId, (era, withActive = false) => {
|
|
43
|
+
const [cacheKey, cached] = getEraCache(CACHE_KEY, era, withActive);
|
|
44
|
+
return cached
|
|
45
|
+
? of(cached)
|
|
46
|
+
: api.query.staking.erasStakersPaged
|
|
47
|
+
? api.query.staking.erasStakersPaged.entries(era).pipe(map((r) => setEraCache(cacheKey, withActive, mapStakersPaged(era, r))))
|
|
48
|
+
: api.query.staking.erasStakersClipped.entries(era).pipe(map((r) => setEraCache(cacheKey, withActive, mapStakersClipped(era, r))));
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* @name eraExposure
|
|
53
|
+
* @description Retrieves the staking exposure (nominators and total stake) for a specific era.
|
|
54
|
+
* @param {EraIndex} eras The staking era to query.
|
|
55
|
+
* @example
|
|
56
|
+
* ```javascript
|
|
57
|
+
* const era = api.createType("EraIndex", 1000);
|
|
58
|
+
* const exposure = await api.derive.staking.eraExposure(era);
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export const eraExposure = /*#__PURE__*/ singleEra('_eraExposure');
|
|
62
|
+
export const _erasExposure = /*#__PURE__*/ combineEras('_eraExposure');
|
|
63
|
+
/**
|
|
64
|
+
* @name erasExposure
|
|
65
|
+
* @description Retrieves staking exposure details for multiple past eras.
|
|
66
|
+
* @param {boolean} withActive? (Optional) Whether to include the active era in the result.
|
|
67
|
+
* @example
|
|
68
|
+
* ```javascript
|
|
69
|
+
* const exposure = await api.derive.staking.erasExposure(true);
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
export const erasExposure = /*#__PURE__*/ erasHistoricApply('_erasExposure');
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Observable } from 'rxjs';
|
|
2
|
+
import type { EraIndex } from '@pezkuwi/types/interfaces';
|
|
3
|
+
import type { DeriveApi } from '../types.js';
|
|
4
|
+
/**
|
|
5
|
+
* @name erasHistoric
|
|
6
|
+
* @param {boolean} withActive? (Optional) Whether to include the active era in the result.
|
|
7
|
+
*/
|
|
8
|
+
export declare function erasHistoric(instanceId: string, api: DeriveApi): (withActive?: boolean) => Observable<EraIndex[]>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { combineLatest, map, of } from 'rxjs';
|
|
2
|
+
import { BN_ONE, BN_ZERO } from '@pezkuwi/util';
|
|
3
|
+
import { memo } from '../util/index.js';
|
|
4
|
+
/**
|
|
5
|
+
* @name erasHistoric
|
|
6
|
+
* @param {boolean} withActive? (Optional) Whether to include the active era in the result.
|
|
7
|
+
*/
|
|
8
|
+
export function erasHistoric(instanceId, api) {
|
|
9
|
+
return memo(instanceId, (withActive) => combineLatest([
|
|
10
|
+
api.query.staking.activeEra(),
|
|
11
|
+
api.consts.staking.historyDepth
|
|
12
|
+
? of(api.consts.staking.historyDepth)
|
|
13
|
+
: api.query.staking['historyDepth']()
|
|
14
|
+
]).pipe(map(([activeEraOpt, historyDepth]) => {
|
|
15
|
+
const result = [];
|
|
16
|
+
const max = historyDepth.toNumber();
|
|
17
|
+
const activeEra = activeEraOpt.unwrapOrDefault().index;
|
|
18
|
+
let lastEra = activeEra;
|
|
19
|
+
while (lastEra.gte(BN_ZERO) && (result.length < max)) {
|
|
20
|
+
if ((lastEra !== activeEra) || (withActive === true)) {
|
|
21
|
+
result.push(api.registry.createType('EraIndex', lastEra));
|
|
22
|
+
}
|
|
23
|
+
lastEra = lastEra.sub(BN_ONE);
|
|
24
|
+
}
|
|
25
|
+
// go from oldest to newest
|
|
26
|
+
return result.reverse();
|
|
27
|
+
})));
|
|
28
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Observable } from 'rxjs';
|
|
2
|
+
import type { EraIndex } from '@pezkuwi/types/interfaces';
|
|
3
|
+
import type { DeriveApi, DeriveEraPoints } from '../types.js';
|
|
4
|
+
export declare function _erasPoints(instanceId: string, api: DeriveApi): (eras: EraIndex[], withActive: boolean) => Observable<DeriveEraPoints[]>;
|
|
5
|
+
/**
|
|
6
|
+
* @name erasPoints
|
|
7
|
+
* @description Retrieves historical era points with its validators.
|
|
8
|
+
* @param {boolean} withActive? (Optional) Whether to include the active era in the result.
|
|
9
|
+
* @example
|
|
10
|
+
* ```javascript
|
|
11
|
+
* const points = await api.derive.staking.erasPoints(true);
|
|
12
|
+
* console.log(
|
|
13
|
+
* "Validator points:",
|
|
14
|
+
* points.map(({ era, eraPoints }) => `Era: ${era}, points ${eraPoints}`)
|
|
15
|
+
* );
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare const erasPoints: (instanceId: string, api: DeriveApi) => (withActive?: boolean) => Observable<DeriveEraPoints[]>;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { map, of } from 'rxjs';
|
|
2
|
+
import { BN_ZERO } from '@pezkuwi/util';
|
|
3
|
+
import { memo } from '../util/index.js';
|
|
4
|
+
import { filterCachedEras, getEraMultiCache, setEraMultiCache } from './cache.js';
|
|
5
|
+
import { erasHistoricApply, filterEras } from './util.js';
|
|
6
|
+
const CACHE_KEY = 'eraPoints';
|
|
7
|
+
function mapValidators({ individual }) {
|
|
8
|
+
return [...individual.entries()]
|
|
9
|
+
.filter(([, points]) => points.gt(BN_ZERO))
|
|
10
|
+
.reduce((result, [validatorId, points]) => {
|
|
11
|
+
result[validatorId.toString()] = points;
|
|
12
|
+
return result;
|
|
13
|
+
}, {});
|
|
14
|
+
}
|
|
15
|
+
function mapPoints(eras, points) {
|
|
16
|
+
return eras.map((era, index) => ({
|
|
17
|
+
era,
|
|
18
|
+
eraPoints: points[index].total,
|
|
19
|
+
validators: mapValidators(points[index])
|
|
20
|
+
}));
|
|
21
|
+
}
|
|
22
|
+
export function _erasPoints(instanceId, api) {
|
|
23
|
+
return memo(instanceId, (eras, withActive) => {
|
|
24
|
+
if (!eras.length) {
|
|
25
|
+
return of([]);
|
|
26
|
+
}
|
|
27
|
+
const cached = getEraMultiCache(CACHE_KEY, eras, withActive);
|
|
28
|
+
const remaining = filterEras(eras, cached);
|
|
29
|
+
return !remaining.length
|
|
30
|
+
? of(cached)
|
|
31
|
+
: api.query.staking.erasRewardPoints.multi(remaining).pipe(map((p) => filterCachedEras(eras, cached, setEraMultiCache(CACHE_KEY, withActive, mapPoints(remaining, p)))));
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* @name erasPoints
|
|
36
|
+
* @description Retrieves historical era points with its validators.
|
|
37
|
+
* @param {boolean} withActive? (Optional) Whether to include the active era in the result.
|
|
38
|
+
* @example
|
|
39
|
+
* ```javascript
|
|
40
|
+
* const points = await api.derive.staking.erasPoints(true);
|
|
41
|
+
* console.log(
|
|
42
|
+
* "Validator points:",
|
|
43
|
+
* points.map(({ era, eraPoints }) => `Era: ${era}, points ${eraPoints}`)
|
|
44
|
+
* );
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export const erasPoints = /*#__PURE__*/ erasHistoricApply('_erasPoints');
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Observable } from 'rxjs';
|
|
2
|
+
import type { EraIndex } from '@pezkuwi/types/interfaces';
|
|
3
|
+
import type { DeriveApi, DeriveEraPrefs } from '../types.js';
|
|
4
|
+
export declare function _eraPrefs(instanceId: string, api: DeriveApi): (era: EraIndex, withActive: boolean) => Observable<DeriveEraPrefs>;
|
|
5
|
+
/**
|
|
6
|
+
* @name eraPrefs
|
|
7
|
+
* @description Retrieves the validators commission preferences for a given staking era.
|
|
8
|
+
* @param {EraIndex} era The staking era to query.
|
|
9
|
+
* @example
|
|
10
|
+
* ```javascript
|
|
11
|
+
* const era = api.createType("EraIndex", 1000);
|
|
12
|
+
* const prefs = await api.derive.staking.eraPrefs(era);
|
|
13
|
+
* console.log(JSON.stringify(prefs));
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export declare const eraPrefs: (instanceId: string, api: DeriveApi) => (era: EraIndex) => Observable<DeriveEraPrefs>;
|
|
17
|
+
export declare const _erasPrefs: (instanceId: string, api: DeriveApi) => (eras: EraIndex[], withActive: boolean) => Observable<DeriveEraPrefs[]>;
|
|
18
|
+
/**
|
|
19
|
+
* @name erasPrefs
|
|
20
|
+
* @description Retrieves validators commission preferences for multiple past staking eras
|
|
21
|
+
* @param {boolean} withActive? (Optional) Whether to include the active era in the result.
|
|
22
|
+
* @example
|
|
23
|
+
* ```javascript
|
|
24
|
+
* const prefs = await api.derive.staking.erasPrefs(true);
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare const erasPrefs: (instanceId: string, api: DeriveApi) => (withActive?: boolean) => Observable<DeriveEraPrefs[]>;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { map, of } from 'rxjs';
|
|
2
|
+
import { memo } from '../util/index.js';
|
|
3
|
+
import { getEraCache, setEraCache } from './cache.js';
|
|
4
|
+
import { combineEras, erasHistoricApply, singleEra } from './util.js';
|
|
5
|
+
const CACHE_KEY = 'eraPrefs';
|
|
6
|
+
function mapPrefs(era, all) {
|
|
7
|
+
const validators = {};
|
|
8
|
+
all.forEach(([key, prefs]) => {
|
|
9
|
+
validators[key.args[1].toString()] = prefs;
|
|
10
|
+
});
|
|
11
|
+
return { era, validators };
|
|
12
|
+
}
|
|
13
|
+
export function _eraPrefs(instanceId, api) {
|
|
14
|
+
return memo(instanceId, (era, withActive) => {
|
|
15
|
+
const [cacheKey, cached] = getEraCache(CACHE_KEY, era, withActive);
|
|
16
|
+
return cached
|
|
17
|
+
? of(cached)
|
|
18
|
+
: api.query.staking.erasValidatorPrefs.entries(era).pipe(map((r) => setEraCache(cacheKey, withActive, mapPrefs(era, r))));
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* @name eraPrefs
|
|
23
|
+
* @description Retrieves the validators commission preferences for a given staking era.
|
|
24
|
+
* @param {EraIndex} era The staking era to query.
|
|
25
|
+
* @example
|
|
26
|
+
* ```javascript
|
|
27
|
+
* const era = api.createType("EraIndex", 1000);
|
|
28
|
+
* const prefs = await api.derive.staking.eraPrefs(era);
|
|
29
|
+
* console.log(JSON.stringify(prefs));
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export const eraPrefs = /*#__PURE__*/ singleEra('_eraPrefs');
|
|
33
|
+
export const _erasPrefs = /*#__PURE__*/ combineEras('_eraPrefs');
|
|
34
|
+
/**
|
|
35
|
+
* @name erasPrefs
|
|
36
|
+
* @description Retrieves validators commission preferences for multiple past staking eras
|
|
37
|
+
* @param {boolean} withActive? (Optional) Whether to include the active era in the result.
|
|
38
|
+
* @example
|
|
39
|
+
* ```javascript
|
|
40
|
+
* const prefs = await api.derive.staking.erasPrefs(true);
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export const erasPrefs = /*#__PURE__*/ erasHistoricApply('_erasPrefs');
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Observable } from 'rxjs';
|
|
2
|
+
import type { EraIndex } from '@pezkuwi/types/interfaces';
|
|
3
|
+
import type { DeriveApi, DeriveEraRewards } from '../types.js';
|
|
4
|
+
export declare function _erasRewards(instanceId: string, api: DeriveApi): (eras: EraIndex[], withActive: boolean) => Observable<DeriveEraRewards[]>;
|
|
5
|
+
/**
|
|
6
|
+
* @name erasRewards
|
|
7
|
+
* @description Retrieves rewards for historical eras.
|
|
8
|
+
* @param {boolean} withActive? (Optional) Whether to include the active era in the result.
|
|
9
|
+
* @example
|
|
10
|
+
* ```javascript
|
|
11
|
+
* const rewards = await api.derive.staking.erasRewards(true);
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export declare const erasRewards: (instanceId: string, api: DeriveApi) => (withActive?: boolean) => Observable<DeriveEraRewards[]>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { map, of } from 'rxjs';
|
|
2
|
+
import { memo } from '../util/index.js';
|
|
3
|
+
import { filterCachedEras, getEraMultiCache, setEraMultiCache } from './cache.js';
|
|
4
|
+
import { erasHistoricApply, filterEras } from './util.js';
|
|
5
|
+
const CACHE_KEY = 'eraRewards';
|
|
6
|
+
function mapRewards(eras, optRewards) {
|
|
7
|
+
return eras.map((era, index) => ({
|
|
8
|
+
era,
|
|
9
|
+
eraReward: optRewards[index].unwrapOrDefault()
|
|
10
|
+
}));
|
|
11
|
+
}
|
|
12
|
+
export function _erasRewards(instanceId, api) {
|
|
13
|
+
return memo(instanceId, (eras, withActive) => {
|
|
14
|
+
if (!eras.length) {
|
|
15
|
+
return of([]);
|
|
16
|
+
}
|
|
17
|
+
const cached = getEraMultiCache(CACHE_KEY, eras, withActive);
|
|
18
|
+
const remaining = filterEras(eras, cached);
|
|
19
|
+
if (!remaining.length) {
|
|
20
|
+
return of(cached);
|
|
21
|
+
}
|
|
22
|
+
return api.query.staking.erasValidatorReward.multi(remaining).pipe(map((r) => filterCachedEras(eras, cached, setEraMultiCache(CACHE_KEY, withActive, mapRewards(remaining, r)))));
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* @name erasRewards
|
|
27
|
+
* @description Retrieves rewards for historical eras.
|
|
28
|
+
* @param {boolean} withActive? (Optional) Whether to include the active era in the result.
|
|
29
|
+
* @example
|
|
30
|
+
* ```javascript
|
|
31
|
+
* const rewards = await api.derive.staking.erasRewards(true);
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export const erasRewards = /*#__PURE__*/ erasHistoricApply('_erasRewards');
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Observable } from 'rxjs';
|
|
2
|
+
import type { EraIndex } from '@pezkuwi/types/interfaces';
|
|
3
|
+
import type { DeriveApi, DeriveEraSlashes } from '../types.js';
|
|
4
|
+
export declare function _eraSlashes(instanceId: string, api: DeriveApi): (era: EraIndex, withActive: boolean) => Observable<DeriveEraSlashes>;
|
|
5
|
+
/**
|
|
6
|
+
* @name eraSlashes
|
|
7
|
+
* @description Retrieves the slashes for a specific staking era.
|
|
8
|
+
* @param {EraIndex} eras The staking era to query.
|
|
9
|
+
* @example
|
|
10
|
+
* ```javascript
|
|
11
|
+
* const era = api.createType("EraIndex", 1000);
|
|
12
|
+
* const slashes = await api.derive.staking.eraSlashes(era);
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export declare const eraSlashes: (instanceId: string, api: DeriveApi) => (era: EraIndex) => Observable<DeriveEraSlashes>;
|
|
16
|
+
export declare const _erasSlashes: (instanceId: string, api: DeriveApi) => (eras: EraIndex[], withActive: boolean) => Observable<DeriveEraSlashes[]>;
|
|
17
|
+
/**
|
|
18
|
+
* @name erasSlashes
|
|
19
|
+
* @description Retrieves slashes for historical eras.
|
|
20
|
+
* @param {boolean} withActive? (Optional) Whether to include the active era in the result.
|
|
21
|
+
* @example
|
|
22
|
+
* ```javascript
|
|
23
|
+
* const slashes = await api.derive.staking.erasSlashes(true);
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare const erasSlashes: (instanceId: string, api: DeriveApi) => (withActive?: boolean) => Observable<DeriveEraSlashes[]>;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { combineLatest, map, of } from 'rxjs';
|
|
2
|
+
import { memo } from '../util/index.js';
|
|
3
|
+
import { getEraCache, setEraCache } from './cache.js';
|
|
4
|
+
import { combineEras, erasHistoricApply, singleEra } from './util.js';
|
|
5
|
+
const CACHE_KEY = 'eraSlashes';
|
|
6
|
+
function mapSlashes(era, noms, vals) {
|
|
7
|
+
const nominators = {};
|
|
8
|
+
const validators = {};
|
|
9
|
+
noms.forEach(([key, optBalance]) => {
|
|
10
|
+
nominators[key.args[1].toString()] = optBalance.unwrap();
|
|
11
|
+
});
|
|
12
|
+
vals.forEach(([key, optRes]) => {
|
|
13
|
+
validators[key.args[1].toString()] = optRes.unwrapOrDefault()[1];
|
|
14
|
+
});
|
|
15
|
+
return { era, nominators, validators };
|
|
16
|
+
}
|
|
17
|
+
export function _eraSlashes(instanceId, api) {
|
|
18
|
+
return memo(instanceId, (era, withActive) => {
|
|
19
|
+
const [cacheKey, cached] = getEraCache(CACHE_KEY, era, withActive);
|
|
20
|
+
return cached
|
|
21
|
+
? of(cached)
|
|
22
|
+
: combineLatest([
|
|
23
|
+
api.query.staking.nominatorSlashInEra.entries(era),
|
|
24
|
+
api.query.staking.validatorSlashInEra.entries(era)
|
|
25
|
+
]).pipe(map(([n, v]) => setEraCache(cacheKey, withActive, mapSlashes(era, n, v))));
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* @name eraSlashes
|
|
30
|
+
* @description Retrieves the slashes for a specific staking era.
|
|
31
|
+
* @param {EraIndex} eras The staking era to query.
|
|
32
|
+
* @example
|
|
33
|
+
* ```javascript
|
|
34
|
+
* const era = api.createType("EraIndex", 1000);
|
|
35
|
+
* const slashes = await api.derive.staking.eraSlashes(era);
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export const eraSlashes = /*#__PURE__*/ singleEra('_eraSlashes');
|
|
39
|
+
export const _erasSlashes = /*#__PURE__*/ combineEras('_eraSlashes');
|
|
40
|
+
/**
|
|
41
|
+
* @name erasSlashes
|
|
42
|
+
* @description Retrieves slashes for historical eras.
|
|
43
|
+
* @param {boolean} withActive? (Optional) Whether to include the active era in the result.
|
|
44
|
+
* @example
|
|
45
|
+
* ```javascript
|
|
46
|
+
* const slashes = await api.derive.staking.erasSlashes(true);
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export const erasSlashes = /*#__PURE__*/ erasHistoricApply('_erasSlashes');
|
package/staking/index.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export * from './account.js';
|
|
2
|
+
export * from './currentPoints.js';
|
|
3
|
+
export * from './electedInfo.js';
|
|
4
|
+
export * from './erasExposure.js';
|
|
5
|
+
export * from './erasHistoric.js';
|
|
6
|
+
export * from './erasPoints.js';
|
|
7
|
+
export * from './erasPrefs.js';
|
|
8
|
+
export * from './erasRewards.js';
|
|
9
|
+
export * from './erasSlashes.js';
|
|
10
|
+
export * from './keys.js';
|
|
11
|
+
export * from './overview.js';
|
|
12
|
+
export * from './ownExposure.js';
|
|
13
|
+
export * from './ownSlashes.js';
|
|
14
|
+
export * from './query.js';
|
|
15
|
+
export * from './stakerExposure.js';
|
|
16
|
+
export * from './stakerPoints.js';
|
|
17
|
+
export * from './stakerPrefs.js';
|
|
18
|
+
export * from './stakerRewards.js';
|
|
19
|
+
export * from './stakerSlashes.js';
|
|
20
|
+
export * from './stashes.js';
|
|
21
|
+
export * from './validators.js';
|
|
22
|
+
export * from './waitingInfo.js';
|