@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,35 @@
|
|
|
1
|
+
import type { Observable } from 'rxjs';
|
|
2
|
+
import type { DeriveApi } from '../types.js';
|
|
3
|
+
import type { DeriveStakingKeys } from './types.js';
|
|
4
|
+
/**
|
|
5
|
+
* @name keys
|
|
6
|
+
* @param { Uint8Array | string } stashId The stash account ID whose session keys are to be retrieved.
|
|
7
|
+
* @description Retrieves the session keys associated with a given stash account.
|
|
8
|
+
* @example
|
|
9
|
+
* ```javascript
|
|
10
|
+
* const keys = await api.derive.staking.keys(
|
|
11
|
+
* ALICE
|
|
12
|
+
* );
|
|
13
|
+
* console.log(
|
|
14
|
+
* "Session keys:",
|
|
15
|
+
* keys.sessionIds.map((key) => `Key: ${key}`)
|
|
16
|
+
* );
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare const keys: (instanceId: string, api: DeriveApi) => (stashId: string | Uint8Array) => Observable<DeriveStakingKeys>;
|
|
20
|
+
/**
|
|
21
|
+
* @name keysMulti
|
|
22
|
+
* @description Retrieves session keys for multiple stash accounts.
|
|
23
|
+
* @param { (Uint8Array | string)[] } stashIds Array of stash account IDs.
|
|
24
|
+
* @example
|
|
25
|
+
* ```javascript
|
|
26
|
+
* const keysMulti = await api.derive.staking.keysMulti([ ALICE, BOB ]);
|
|
27
|
+
* keysMulti.forEach((keys) => {
|
|
28
|
+
* console.log(
|
|
29
|
+
* "Session keys:",
|
|
30
|
+
* keys.sessionIds.map((key) => `Key: ${key}`)
|
|
31
|
+
* );
|
|
32
|
+
* });
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare function keysMulti(instanceId: string, api: DeriveApi): (stashIds: (Uint8Array | string)[]) => Observable<DeriveStakingKeys[]>;
|
package/staking/keys.js
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { combineLatest, map, of, switchMap } from 'rxjs';
|
|
2
|
+
import { firstMemo, memo } from '../util/index.js';
|
|
3
|
+
function extractsIds(stashId, queuedKeys, nextKeys) {
|
|
4
|
+
const sessionIds = (queuedKeys.find(([currentId]) => currentId.eq(stashId)) || [undefined, []])[1];
|
|
5
|
+
const nextSessionIds = nextKeys.unwrapOr([]);
|
|
6
|
+
return {
|
|
7
|
+
nextSessionIds: Array.isArray(nextSessionIds)
|
|
8
|
+
? nextSessionIds
|
|
9
|
+
: [...nextSessionIds.values()],
|
|
10
|
+
sessionIds: Array.isArray(sessionIds)
|
|
11
|
+
? sessionIds
|
|
12
|
+
: [...sessionIds.values()]
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* @name keys
|
|
17
|
+
* @param { Uint8Array | string } stashId The stash account ID whose session keys are to be retrieved.
|
|
18
|
+
* @description Retrieves the session keys associated with a given stash account.
|
|
19
|
+
* @example
|
|
20
|
+
* ```javascript
|
|
21
|
+
* const keys = await api.derive.staking.keys(
|
|
22
|
+
* ALICE
|
|
23
|
+
* );
|
|
24
|
+
* console.log(
|
|
25
|
+
* "Session keys:",
|
|
26
|
+
* keys.sessionIds.map((key) => `Key: ${key}`)
|
|
27
|
+
* );
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export const keys = /*#__PURE__*/ firstMemo((api, stashId) => api.derive.staking.keysMulti([stashId]));
|
|
31
|
+
/**
|
|
32
|
+
* @name keysMulti
|
|
33
|
+
* @description Retrieves session keys for multiple stash accounts.
|
|
34
|
+
* @param { (Uint8Array | string)[] } stashIds Array of stash account IDs.
|
|
35
|
+
* @example
|
|
36
|
+
* ```javascript
|
|
37
|
+
* const keysMulti = await api.derive.staking.keysMulti([ ALICE, BOB ]);
|
|
38
|
+
* keysMulti.forEach((keys) => {
|
|
39
|
+
* console.log(
|
|
40
|
+
* "Session keys:",
|
|
41
|
+
* keys.sessionIds.map((key) => `Key: ${key}`)
|
|
42
|
+
* );
|
|
43
|
+
* });
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export function keysMulti(instanceId, api) {
|
|
47
|
+
return memo(instanceId, (stashIds) => stashIds.length
|
|
48
|
+
? api.query.session.queuedKeys().pipe(switchMap((queuedKeys) => combineLatest([
|
|
49
|
+
of(queuedKeys),
|
|
50
|
+
// eslint-disable-next-line @typescript-eslint/dot-notation
|
|
51
|
+
api.consts['session']?.['dedupKeyPrefix']
|
|
52
|
+
// eslint-disable-next-line @typescript-eslint/dot-notation
|
|
53
|
+
? api.query.session.nextKeys.multi(stashIds.map((s) => [api.consts['session']['dedupKeyPrefix'], s]))
|
|
54
|
+
: combineLatest(stashIds.map((s) => api.query.session.nextKeys(s)))
|
|
55
|
+
])), map(([queuedKeys, nextKeys]) => stashIds.map((stashId, index) => extractsIds(stashId, queuedKeys, nextKeys[index]))))
|
|
56
|
+
: of([]));
|
|
57
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Observable } from 'rxjs';
|
|
2
|
+
import type { DeriveApi, DeriveStakingOverview } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* @name overview
|
|
5
|
+
* @description Retrieve the staking overview, including elected validators and points earned.
|
|
6
|
+
* @example
|
|
7
|
+
* ```javascript
|
|
8
|
+
* const {
|
|
9
|
+
* activeEra,
|
|
10
|
+
* activeEraStart,
|
|
11
|
+
* currentEra,
|
|
12
|
+
* currentIndex,
|
|
13
|
+
* nextElected,
|
|
14
|
+
* validatorCount,
|
|
15
|
+
* validators,
|
|
16
|
+
* } = await api.derive.staking.overview();
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare function overview(instanceId: string, api: DeriveApi): () => Observable<DeriveStakingOverview>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { combineLatest, map } from 'rxjs';
|
|
2
|
+
import { objectSpread } from '@pezkuwi/util';
|
|
3
|
+
import { memo } from '../util/index.js';
|
|
4
|
+
/**
|
|
5
|
+
* @name overview
|
|
6
|
+
* @description Retrieve the staking overview, including elected validators and points earned.
|
|
7
|
+
* @example
|
|
8
|
+
* ```javascript
|
|
9
|
+
* const {
|
|
10
|
+
* activeEra,
|
|
11
|
+
* activeEraStart,
|
|
12
|
+
* currentEra,
|
|
13
|
+
* currentIndex,
|
|
14
|
+
* nextElected,
|
|
15
|
+
* validatorCount,
|
|
16
|
+
* validators,
|
|
17
|
+
* } = await api.derive.staking.overview();
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export function overview(instanceId, api) {
|
|
21
|
+
return memo(instanceId, () => combineLatest([
|
|
22
|
+
api.derive.session.indexes(),
|
|
23
|
+
api.derive.staking.validators()
|
|
24
|
+
]).pipe(map(([indexes, { nextElected, validators }]) => objectSpread({}, indexes, {
|
|
25
|
+
nextElected,
|
|
26
|
+
validators
|
|
27
|
+
}))));
|
|
28
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { Observable } from 'rxjs';
|
|
2
|
+
import type { u32 } from '@pezkuwi/types';
|
|
3
|
+
import type { EraIndex } from '@pezkuwi/types/interfaces';
|
|
4
|
+
import type { AnyNumber } from '@pezkuwi/types-codec/types';
|
|
5
|
+
import type { DeriveApi, DeriveOwnExposure } from '../types.js';
|
|
6
|
+
export declare function _ownExposures(instanceId: string, api: DeriveApi): (accountId: Uint8Array | string, eras: EraIndex[], withActive: boolean, page: u32 | AnyNumber) => Observable<DeriveOwnExposure[]>;
|
|
7
|
+
/**
|
|
8
|
+
* @name ownExposure
|
|
9
|
+
* @description Retrieves the staking exposure of a validator for a specific era, including their own stake.
|
|
10
|
+
* @param { Uint8Array | string } accountId The validator stash account.
|
|
11
|
+
* @param {EraIndex} era The staking era to query.
|
|
12
|
+
* @param { u32 | AnyNumber } page? (Optional) The pagination index.
|
|
13
|
+
* @example
|
|
14
|
+
* ```javascript
|
|
15
|
+
* const era = api.createType("EraIndex", 1000);
|
|
16
|
+
* const exposure = await api.derive.staking.ownExposure(
|
|
17
|
+
* "11VR4pF6c7kfBhfmuwwjWY3FodeYBKWx7ix2rsRCU2q6hqJ",
|
|
18
|
+
* era
|
|
19
|
+
* );
|
|
20
|
+
* console.log(JSON.stringify(exposure));
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export declare const ownExposure: (instanceId: string, api: DeriveApi) => (accountId: string | Uint8Array, era: EraIndex, page?: u32 | AnyNumber | undefined) => Observable<DeriveOwnExposure>;
|
|
24
|
+
/**
|
|
25
|
+
* @name ownExposures
|
|
26
|
+
* @description Retrieves staking exposures for a validator across multiple historical eras.
|
|
27
|
+
* @param { Uint8Array | string } accountId The validator stash account.
|
|
28
|
+
* @param { boolean } withActive Whether to include the active era.
|
|
29
|
+
* @example
|
|
30
|
+
* ```javascript
|
|
31
|
+
* const exposures = await api.derive.staking.ownExposures(
|
|
32
|
+
* ALICE,
|
|
33
|
+
* true
|
|
34
|
+
* );
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare const ownExposures: (instanceId: string, api: DeriveApi) => (accountId: string | Uint8Array, withActive?: boolean) => Observable<DeriveOwnExposure[]>;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { combineLatest, map, of } from 'rxjs';
|
|
2
|
+
import { firstMemo, memo } from '../util/index.js';
|
|
3
|
+
import { erasHistoricApplyAccount } from './util.js';
|
|
4
|
+
export function _ownExposures(instanceId, api) {
|
|
5
|
+
return memo(instanceId, (accountId, eras, _withActive, page) => {
|
|
6
|
+
const emptyStakingExposure = api.registry.createType('Exposure');
|
|
7
|
+
// The reason we don't explicitly make the actual types is for compatibility. If the chain doesn't have the noted type it will fail
|
|
8
|
+
// on construction. Therefore we just make an empty option.
|
|
9
|
+
const emptyOptionPage = api.registry.createType('Option<Null>');
|
|
10
|
+
const emptyOptionMeta = api.registry.createType('Option<Null>');
|
|
11
|
+
return eras.length
|
|
12
|
+
? combineLatest([
|
|
13
|
+
// Backwards and forward compat for historical integrity when using `erasHistoricApplyAccount`
|
|
14
|
+
api.query.staking.erasStakersClipped
|
|
15
|
+
? combineLatest(eras.map((e) => api.query.staking.erasStakersClipped(e, accountId)))
|
|
16
|
+
: of(eras.map((_) => emptyStakingExposure)),
|
|
17
|
+
api.query.staking.erasStakers
|
|
18
|
+
? combineLatest(eras.map((e) => api.query.staking.erasStakers(e, accountId)))
|
|
19
|
+
: of(eras.map((_) => emptyStakingExposure)),
|
|
20
|
+
api.query.staking.erasStakersPaged
|
|
21
|
+
? combineLatest(eras.map((e) => api.query.staking.erasStakersPaged(e, accountId, page)))
|
|
22
|
+
: of(eras.map((_) => emptyOptionPage)),
|
|
23
|
+
api.query.staking.erasStakersOverview
|
|
24
|
+
? combineLatest(eras.map((e) => api.query.staking.erasStakersOverview(e, accountId)))
|
|
25
|
+
: of(eras.map((_) => emptyOptionMeta))
|
|
26
|
+
]).pipe(map(([clp, exp, paged, expMeta]) => eras.map((era, index) => ({ clipped: clp[index], era, exposure: exp[index], exposureMeta: expMeta[index], exposurePaged: paged[index] }))))
|
|
27
|
+
: of([]);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* @name ownExposure
|
|
32
|
+
* @description Retrieves the staking exposure of a validator for a specific era, including their own stake.
|
|
33
|
+
* @param { Uint8Array | string } accountId The validator stash account.
|
|
34
|
+
* @param {EraIndex} era The staking era to query.
|
|
35
|
+
* @param { u32 | AnyNumber } page? (Optional) The pagination index.
|
|
36
|
+
* @example
|
|
37
|
+
* ```javascript
|
|
38
|
+
* const era = api.createType("EraIndex", 1000);
|
|
39
|
+
* const exposure = await api.derive.staking.ownExposure(
|
|
40
|
+
* "11VR4pF6c7kfBhfmuwwjWY3FodeYBKWx7ix2rsRCU2q6hqJ",
|
|
41
|
+
* era
|
|
42
|
+
* );
|
|
43
|
+
* console.log(JSON.stringify(exposure));
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export const ownExposure = /*#__PURE__*/ firstMemo((api, accountId, era, page) => api.derive.staking._ownExposures(accountId, [era], true, page || 0));
|
|
47
|
+
/**
|
|
48
|
+
* @name ownExposures
|
|
49
|
+
* @description Retrieves staking exposures for a validator across multiple historical eras.
|
|
50
|
+
* @param { Uint8Array | string } accountId The validator stash account.
|
|
51
|
+
* @param { boolean } withActive Whether to include the active era.
|
|
52
|
+
* @example
|
|
53
|
+
* ```javascript
|
|
54
|
+
* const exposures = await api.derive.staking.ownExposures(
|
|
55
|
+
* ALICE,
|
|
56
|
+
* true
|
|
57
|
+
* );
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
export const ownExposures = /*#__PURE__*/ erasHistoricApplyAccount('_ownExposures');
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Observable } from 'rxjs';
|
|
2
|
+
import type { EraIndex } from '@pezkuwi/types/interfaces';
|
|
3
|
+
import type { DeriveApi, DeriveStakerSlashes } from '../types.js';
|
|
4
|
+
export declare function _ownSlashes(instanceId: string, api: DeriveApi): (accountId: Uint8Array | string, eras: EraIndex[], withActive: boolean) => Observable<DeriveStakerSlashes[]>;
|
|
5
|
+
/**
|
|
6
|
+
* @name ownSlash
|
|
7
|
+
* @description Retrieves the slashes applied to a specific account in a given era.
|
|
8
|
+
* @param { Uint8Array | string } accountId The validator stash account.
|
|
9
|
+
* @param {EraIndex} era The staking era to query.
|
|
10
|
+
* @example
|
|
11
|
+
* ```javascript
|
|
12
|
+
* const era = api.createType("EraIndex", 1000);
|
|
13
|
+
* const slashedAmount = await api.derive.staking.ownSlash(
|
|
14
|
+
* ALICE,
|
|
15
|
+
* era
|
|
16
|
+
* );
|
|
17
|
+
* console.log(`Era: ${slashedAmount.era}, total ${slashedAmount.total}`);
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare const ownSlash: (instanceId: string, api: DeriveApi) => (accountId: string | Uint8Array, era: EraIndex) => Observable<DeriveStakerSlashes>;
|
|
21
|
+
/**
|
|
22
|
+
* @name ownSlashes
|
|
23
|
+
* @description Retrieves the slashes for a specific account across all historic eras.
|
|
24
|
+
* @param { Uint8Array | string } accountId The validator stash account.
|
|
25
|
+
* @param { boolean } withActive Whether to include the active era.
|
|
26
|
+
* @example
|
|
27
|
+
* ```javascript
|
|
28
|
+
* const slashes = await api.derive.staking.ownSlashes(
|
|
29
|
+
* ALICE,
|
|
30
|
+
* true
|
|
31
|
+
* );
|
|
32
|
+
* console.log(slashes);
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare const ownSlashes: (instanceId: string, api: DeriveApi) => (accountId: string | Uint8Array, withActive?: boolean) => Observable<DeriveStakerSlashes[]>;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { combineLatest, map, of } from 'rxjs';
|
|
2
|
+
import { firstMemo, memo } from '../util/index.js';
|
|
3
|
+
import { erasHistoricApplyAccount } from './util.js';
|
|
4
|
+
export function _ownSlashes(instanceId, api) {
|
|
5
|
+
return memo(instanceId, (accountId, eras, _withActive) => eras.length
|
|
6
|
+
? combineLatest([
|
|
7
|
+
combineLatest(eras.map((e) => api.query.staking.validatorSlashInEra(e, accountId))),
|
|
8
|
+
combineLatest(eras.map((e) => api.query.staking.nominatorSlashInEra(e, accountId)))
|
|
9
|
+
]).pipe(map(([vals, noms]) => eras.map((era, index) => ({
|
|
10
|
+
era,
|
|
11
|
+
total: vals[index].isSome
|
|
12
|
+
? vals[index].unwrap()[1]
|
|
13
|
+
: noms[index].unwrapOrDefault()
|
|
14
|
+
}))))
|
|
15
|
+
: of([]));
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* @name ownSlash
|
|
19
|
+
* @description Retrieves the slashes applied to a specific account in a given era.
|
|
20
|
+
* @param { Uint8Array | string } accountId The validator stash account.
|
|
21
|
+
* @param {EraIndex} era The staking era to query.
|
|
22
|
+
* @example
|
|
23
|
+
* ```javascript
|
|
24
|
+
* const era = api.createType("EraIndex", 1000);
|
|
25
|
+
* const slashedAmount = await api.derive.staking.ownSlash(
|
|
26
|
+
* ALICE,
|
|
27
|
+
* era
|
|
28
|
+
* );
|
|
29
|
+
* console.log(`Era: ${slashedAmount.era}, total ${slashedAmount.total}`);
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export const ownSlash = /*#__PURE__*/ firstMemo((api, accountId, era) => api.derive.staking._ownSlashes(accountId, [era], true));
|
|
33
|
+
/**
|
|
34
|
+
* @name ownSlashes
|
|
35
|
+
* @description Retrieves the slashes for a specific account across all historic eras.
|
|
36
|
+
* @param { Uint8Array | string } accountId The validator stash account.
|
|
37
|
+
* @param { boolean } withActive Whether to include the active era.
|
|
38
|
+
* @example
|
|
39
|
+
* ```javascript
|
|
40
|
+
* const slashes = await api.derive.staking.ownSlashes(
|
|
41
|
+
* ALICE,
|
|
42
|
+
* true
|
|
43
|
+
* );
|
|
44
|
+
* console.log(slashes);
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export const ownSlashes = /*#__PURE__*/ erasHistoricApplyAccount('_ownSlashes');
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { Observable } from 'rxjs';
|
|
2
|
+
import type { u32 } from '@pezkuwi/types';
|
|
3
|
+
import type { AnyNumber } from '@pezkuwi/types-codec/types';
|
|
4
|
+
import type { DeriveApi, DeriveStakingQuery, StakingQueryFlags } from '../types.js';
|
|
5
|
+
/**
|
|
6
|
+
* @name query
|
|
7
|
+
* @param { Uint8Array | string } accountId The stash account to query.
|
|
8
|
+
* @param { StakingQueryFlags } flags Flags to customize the query.
|
|
9
|
+
* @param { u32 } page (Optional) pagination parameter.
|
|
10
|
+
* @description Retrieves staking details for a given stash account.
|
|
11
|
+
* @example
|
|
12
|
+
* ```javascript
|
|
13
|
+
* const stakingInfo = await api.derive.staking.query(
|
|
14
|
+
* ALICE,
|
|
15
|
+
* {}
|
|
16
|
+
* );
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare const query: (instanceId: string, api: DeriveApi) => (accountId: string | Uint8Array, flags: StakingQueryFlags, page?: u32 | undefined) => Observable<DeriveStakingQuery>;
|
|
20
|
+
/**
|
|
21
|
+
* @name queryMulti
|
|
22
|
+
* @param { (Uint8Array | string)[] } accountIds List of stash accounts to query.
|
|
23
|
+
* @param { StakingQueryFlags } flags Flags to customize the query.
|
|
24
|
+
* @param { u32 } page (Optional) pagination parameter.
|
|
25
|
+
* @description Retrieves staking details for multiple stash accounts.
|
|
26
|
+
* @example
|
|
27
|
+
* ```javascript
|
|
28
|
+
* const stakingInfos = await api.derive.staking.queryMulti([stashId1, stashId2], {});
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare function queryMulti(instanceId: string, api: DeriveApi): (accountIds: (Uint8Array | string)[], flags: StakingQueryFlags, page?: u32 | AnyNumber) => Observable<DeriveStakingQuery[]>;
|
package/staking/query.js
ADDED
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { combineLatest, map, of, switchMap } from 'rxjs';
|
|
2
|
+
import { firstMemo, memo } from '../util/index.js';
|
|
3
|
+
function rewardDestinationCompat(rewardDestination) {
|
|
4
|
+
// We ensure the type is an Option by checking if isSome is a boolean. When isSome doesn't exist it will always return undefined.
|
|
5
|
+
return typeof rewardDestination.isSome === 'boolean'
|
|
6
|
+
? rewardDestination.unwrapOr(null)
|
|
7
|
+
: rewardDestination;
|
|
8
|
+
}
|
|
9
|
+
function filterClaimedRewards(api, cl) {
|
|
10
|
+
return api.registry.createType('Vec<u32>', cl.filter((c) => c !== -1));
|
|
11
|
+
}
|
|
12
|
+
function filterRewards(stashIds, eras, claimedRewards, stakersOverview) {
|
|
13
|
+
const claimedData = {};
|
|
14
|
+
const overviewData = {};
|
|
15
|
+
const ids = stashIds.map((i) => i.toString());
|
|
16
|
+
claimedRewards.forEach(([keys, rewards]) => {
|
|
17
|
+
const id = keys.args[1].toString();
|
|
18
|
+
const era = keys.args[0].toNumber();
|
|
19
|
+
if (ids.includes(id)) {
|
|
20
|
+
if (claimedData[id]) {
|
|
21
|
+
claimedData[id].set(era, rewards.toArray());
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
claimedData[id] = new Map();
|
|
25
|
+
claimedData[id].set(era, rewards.toArray());
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
stakersOverview.forEach(([keys, overview]) => {
|
|
30
|
+
const id = keys.args[1].toString();
|
|
31
|
+
const era = keys.args[0].toNumber();
|
|
32
|
+
if (ids.includes(id) && overview.isSome) {
|
|
33
|
+
if (overviewData[id]) {
|
|
34
|
+
overviewData[id].set(era, overview.unwrap().pageCount);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
overviewData[id] = new Map();
|
|
38
|
+
overviewData[id].set(era, overview.unwrap().pageCount);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
return stashIds.map((id) => {
|
|
43
|
+
const rewardsPerEra = claimedData[id.toString()];
|
|
44
|
+
const overviewPerEra = overviewData[id.toString()];
|
|
45
|
+
return eras.map((era) => {
|
|
46
|
+
if (rewardsPerEra && rewardsPerEra.has(era) && overviewPerEra && overviewPerEra.has(era)) {
|
|
47
|
+
const rewards = rewardsPerEra.get(era);
|
|
48
|
+
const pageCount = overviewPerEra.get(era);
|
|
49
|
+
return rewards.length === pageCount.toNumber()
|
|
50
|
+
? era
|
|
51
|
+
: -1;
|
|
52
|
+
}
|
|
53
|
+
return -1;
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
function parseDetails(api, stashId, controllerIdOpt, nominatorsOpt, rewardDestinationOpts, validatorPrefs, exposure, stakingLedgerOpt, exposureMeta, claimedRewards, exposureEraStakers) {
|
|
58
|
+
return {
|
|
59
|
+
accountId: stashId,
|
|
60
|
+
claimedRewardsEras: filterClaimedRewards(api, claimedRewards),
|
|
61
|
+
controllerId: controllerIdOpt?.unwrapOr(null) || null,
|
|
62
|
+
exposureEraStakers,
|
|
63
|
+
exposureMeta,
|
|
64
|
+
exposurePaged: exposure,
|
|
65
|
+
nominators: nominatorsOpt.isSome
|
|
66
|
+
? nominatorsOpt.unwrap().targets
|
|
67
|
+
: [],
|
|
68
|
+
rewardDestination: rewardDestinationCompat(rewardDestinationOpts),
|
|
69
|
+
stakingLedger: stakingLedgerOpt.unwrapOrDefault(),
|
|
70
|
+
stashId,
|
|
71
|
+
validatorPrefs
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
function getLedgers(api, optIds, { withLedger = false }) {
|
|
75
|
+
const ids = optIds
|
|
76
|
+
.filter((o) => withLedger && !!o && o.isSome)
|
|
77
|
+
.map((o) => o.unwrap());
|
|
78
|
+
const emptyLed = api.registry.createType('Option<StakingLedger>');
|
|
79
|
+
return (ids.length
|
|
80
|
+
? combineLatest(ids.map((s) => api.query.staking.ledger(s)))
|
|
81
|
+
: of([])).pipe(map((optLedgers) => {
|
|
82
|
+
let offset = -1;
|
|
83
|
+
return optIds.map((o) => o && o.isSome
|
|
84
|
+
? optLedgers[++offset] || emptyLed
|
|
85
|
+
: emptyLed);
|
|
86
|
+
}));
|
|
87
|
+
}
|
|
88
|
+
function getStashInfo(api, stashIds, activeEra, { withClaimedRewardsEras, withController, withDestination, withExposure, withExposureErasStakersLegacy, withExposureMeta, withLedger, withNominations, withPrefs }, page) {
|
|
89
|
+
const emptyNoms = api.registry.createType('Option<Nominations>');
|
|
90
|
+
const emptyRewa = api.registry.createType('RewardDestination');
|
|
91
|
+
const emptyExpoEraStakers = api.registry.createType('Exposure');
|
|
92
|
+
const emptyPrefs = api.registry.createType('ValidatorPrefs');
|
|
93
|
+
// The reason we don't explicitly make the actual types is for compatibility. If the chain doesn't have the noted type it will fail
|
|
94
|
+
// on construction. Therefore we just make an empty option.
|
|
95
|
+
const emptyExpo = api.registry.createType('Option<Null>');
|
|
96
|
+
const emptyExpoMeta = api.registry.createType('Option<Null>');
|
|
97
|
+
const emptyClaimedRewards = [-1];
|
|
98
|
+
const depth = Number(api.consts.staking.historyDepth.toNumber());
|
|
99
|
+
const eras = new Array(depth).fill(0).map((_, idx) => {
|
|
100
|
+
if (idx === 0) {
|
|
101
|
+
return activeEra.toNumber() - 1;
|
|
102
|
+
}
|
|
103
|
+
return activeEra.toNumber() - idx - 1;
|
|
104
|
+
});
|
|
105
|
+
return combineLatest([
|
|
106
|
+
withController || withLedger
|
|
107
|
+
? combineLatest(stashIds.map((s) => api.query.staking.bonded(s)))
|
|
108
|
+
: of(stashIds.map(() => null)),
|
|
109
|
+
withNominations
|
|
110
|
+
? combineLatest(stashIds.map((s) => api.query.staking.nominators(s)))
|
|
111
|
+
: of(stashIds.map(() => emptyNoms)),
|
|
112
|
+
withDestination
|
|
113
|
+
? combineLatest(stashIds.map((s) => api.query.staking.payee(s)))
|
|
114
|
+
: of(stashIds.map(() => emptyRewa)),
|
|
115
|
+
withPrefs
|
|
116
|
+
? combineLatest(stashIds.map((s) => api.query.staking.validators(s)))
|
|
117
|
+
: of(stashIds.map(() => emptyPrefs)),
|
|
118
|
+
withExposure && api.query.staking.erasStakersPaged
|
|
119
|
+
? combineLatest(stashIds.map((s) => api.query.staking.erasStakersPaged(activeEra, s, page)))
|
|
120
|
+
: of(stashIds.map(() => emptyExpo)),
|
|
121
|
+
withExposureMeta && api.query.staking.erasStakersOverview
|
|
122
|
+
? combineLatest(stashIds.map((s) => api.query.staking.erasStakersOverview(activeEra, s)))
|
|
123
|
+
: of(stashIds.map(() => emptyExpoMeta)),
|
|
124
|
+
withClaimedRewardsEras && api.query.staking.claimedRewards
|
|
125
|
+
? combineLatest([
|
|
126
|
+
api.query.staking.claimedRewards.entries(),
|
|
127
|
+
api.query.staking.erasStakersOverview.entries()
|
|
128
|
+
]).pipe(map(([rewardsStorageVec, overviewStorageVec]) => filterRewards(stashIds, eras, rewardsStorageVec, overviewStorageVec)))
|
|
129
|
+
: of(stashIds.map(() => emptyClaimedRewards)),
|
|
130
|
+
withExposureErasStakersLegacy && api.query.staking.erasStakers
|
|
131
|
+
? combineLatest(stashIds.map((s) => api.query.staking.erasStakers(activeEra, s)))
|
|
132
|
+
: of(stashIds.map(() => emptyExpoEraStakers))
|
|
133
|
+
]);
|
|
134
|
+
}
|
|
135
|
+
function getBatch(api, activeEra, stashIds, flags, page) {
|
|
136
|
+
return getStashInfo(api, stashIds, activeEra, flags, page).pipe(switchMap(([controllerIdOpt, nominatorsOpt, rewardDestination, validatorPrefs, exposure, exposureMeta, claimedRewardsEras, exposureEraStakers]) => getLedgers(api, controllerIdOpt, flags).pipe(map((stakingLedgerOpts) => stashIds.map((stashId, index) => parseDetails(api, stashId, controllerIdOpt[index], nominatorsOpt[index], rewardDestination[index], validatorPrefs[index], exposure[index], stakingLedgerOpts[index], exposureMeta[index], claimedRewardsEras[index], exposureEraStakers[index]))))));
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* @name query
|
|
140
|
+
* @param { Uint8Array | string } accountId The stash account to query.
|
|
141
|
+
* @param { StakingQueryFlags } flags Flags to customize the query.
|
|
142
|
+
* @param { u32 } page (Optional) pagination parameter.
|
|
143
|
+
* @description Retrieves staking details for a given stash account.
|
|
144
|
+
* @example
|
|
145
|
+
* ```javascript
|
|
146
|
+
* const stakingInfo = await api.derive.staking.query(
|
|
147
|
+
* ALICE,
|
|
148
|
+
* {}
|
|
149
|
+
* );
|
|
150
|
+
* ```
|
|
151
|
+
*/
|
|
152
|
+
export const query = /*#__PURE__*/ firstMemo((api, accountId, flags, page) => api.derive.staking.queryMulti([accountId], flags, page));
|
|
153
|
+
/**
|
|
154
|
+
* @name queryMulti
|
|
155
|
+
* @param { (Uint8Array | string)[] } accountIds List of stash accounts to query.
|
|
156
|
+
* @param { StakingQueryFlags } flags Flags to customize the query.
|
|
157
|
+
* @param { u32 } page (Optional) pagination parameter.
|
|
158
|
+
* @description Retrieves staking details for multiple stash accounts.
|
|
159
|
+
* @example
|
|
160
|
+
* ```javascript
|
|
161
|
+
* const stakingInfos = await api.derive.staking.queryMulti([stashId1, stashId2], {});
|
|
162
|
+
* ```
|
|
163
|
+
*/
|
|
164
|
+
export function queryMulti(instanceId, api) {
|
|
165
|
+
return memo(instanceId, (accountIds, flags, page) => api.derive.session.indexes().pipe(switchMap(({ activeEra }) => {
|
|
166
|
+
const stashIds = accountIds.map((a) => api.registry.createType('AccountId', a));
|
|
167
|
+
const p = page || 0;
|
|
168
|
+
return stashIds.length
|
|
169
|
+
? getBatch(api, activeEra, stashIds, flags, p)
|
|
170
|
+
: of([]);
|
|
171
|
+
})));
|
|
172
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Observable } from 'rxjs';
|
|
2
|
+
import type { EraIndex } from '@pezkuwi/types/interfaces';
|
|
3
|
+
import type { DeriveApi } from '../types.js';
|
|
4
|
+
import type { DeriveStakerExposure } from './types.js';
|
|
5
|
+
export declare function _stakerExposures(instanceId: string, api: DeriveApi): (accountIds: (Uint8Array | string)[], eras: EraIndex[], withActive?: boolean) => Observable<DeriveStakerExposure[][]>;
|
|
6
|
+
/**
|
|
7
|
+
* @name stakerExposures
|
|
8
|
+
* @param { (Uint8Array | string)[] } accountIds List of validator stash accounts.
|
|
9
|
+
* @param { boolean } withActive Whether to include the active era.
|
|
10
|
+
* @description Retrieves staking exposure for multiple accounts across historical eras.
|
|
11
|
+
* @example
|
|
12
|
+
* ```javascript
|
|
13
|
+
* const exposure = await api.derive.staking.stakerExposures(
|
|
14
|
+
* [ALICE, BOB],
|
|
15
|
+
* true
|
|
16
|
+
* );
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare function stakerExposures(instanceId: string, api: DeriveApi): (accountIds: (Uint8Array | string)[], withActive?: boolean) => Observable<DeriveStakerExposure[][]>;
|
|
20
|
+
/**
|
|
21
|
+
* @name stakerExposure
|
|
22
|
+
* @param { Uint8Array | string } accountId The validator stash account.
|
|
23
|
+
* @param { boolean } withActive Whether to include the active era.
|
|
24
|
+
* @description Retrieves staking exposure for a single account across historical eras. Exposure refers to the total stake associated with a validator.
|
|
25
|
+
* @example
|
|
26
|
+
* ```javascript
|
|
27
|
+
* const exposure = await api.derive.staking.stakerExposure(
|
|
28
|
+
* ALICE,
|
|
29
|
+
* true
|
|
30
|
+
* );
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare const stakerExposure: (instanceId: string, api: DeriveApi) => (accountId: string | Uint8Array, withActive?: boolean | undefined) => Observable<DeriveStakerExposure[]>;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { map, switchMap } from 'rxjs';
|
|
2
|
+
import { firstMemo, memo } from '../util/index.js';
|
|
3
|
+
export function _stakerExposures(instanceId, api) {
|
|
4
|
+
return memo(instanceId, (accountIds, eras, withActive = false) => {
|
|
5
|
+
const stakerIds = accountIds.map((a) => api.registry.createType('AccountId', a).toString());
|
|
6
|
+
return api.derive.staking._erasExposure(eras, withActive).pipe(map((exposures) => stakerIds.map((stakerId) => exposures.map(({ era, nominators: allNominators, validators: allValidators }) => {
|
|
7
|
+
const isValidator = !!allValidators[stakerId];
|
|
8
|
+
const validators = {};
|
|
9
|
+
const nominating = allNominators[stakerId] || [];
|
|
10
|
+
if (isValidator) {
|
|
11
|
+
validators[stakerId] = allValidators[stakerId];
|
|
12
|
+
}
|
|
13
|
+
else if (nominating) {
|
|
14
|
+
nominating.forEach(({ validatorId }) => {
|
|
15
|
+
validators[validatorId] = allValidators[validatorId];
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
return { era, isEmpty: !Object.keys(validators).length, isValidator, nominating, validators };
|
|
19
|
+
}))));
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* @name stakerExposures
|
|
24
|
+
* @param { (Uint8Array | string)[] } accountIds List of validator stash accounts.
|
|
25
|
+
* @param { boolean } withActive Whether to include the active era.
|
|
26
|
+
* @description Retrieves staking exposure for multiple accounts across historical eras.
|
|
27
|
+
* @example
|
|
28
|
+
* ```javascript
|
|
29
|
+
* const exposure = await api.derive.staking.stakerExposures(
|
|
30
|
+
* [ALICE, BOB],
|
|
31
|
+
* true
|
|
32
|
+
* );
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export function stakerExposures(instanceId, api) {
|
|
36
|
+
return memo(instanceId, (accountIds, withActive = false) => api.derive.staking.erasHistoric(withActive).pipe(switchMap((eras) => api.derive.staking._stakerExposures(accountIds, eras, withActive))));
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* @name stakerExposure
|
|
40
|
+
* @param { Uint8Array | string } accountId The validator stash account.
|
|
41
|
+
* @param { boolean } withActive Whether to include the active era.
|
|
42
|
+
* @description Retrieves staking exposure for a single account across historical eras. Exposure refers to the total stake associated with a validator.
|
|
43
|
+
* @example
|
|
44
|
+
* ```javascript
|
|
45
|
+
* const exposure = await api.derive.staking.stakerExposure(
|
|
46
|
+
* ALICE,
|
|
47
|
+
* true
|
|
48
|
+
* );
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export const stakerExposure = /*#__PURE__*/ firstMemo((api, accountId, withActive) => api.derive.staking.stakerExposures([accountId], withActive));
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Observable } from 'rxjs';
|
|
2
|
+
import type { EraIndex } from '@pezkuwi/types/interfaces';
|
|
3
|
+
import type { DeriveApi, DeriveStakerPoints } from '../types.js';
|
|
4
|
+
export declare function _stakerPoints(instanceId: string, api: DeriveApi): (accountId: Uint8Array | string, eras: EraIndex[], withActive: boolean) => Observable<DeriveStakerPoints[]>;
|
|
5
|
+
/**
|
|
6
|
+
* @name stakerPoints
|
|
7
|
+
* @param { Uint8Array | string } accountId The stakers AccountId.
|
|
8
|
+
* @param { boolean } withActive Whether to include the active era.
|
|
9
|
+
* @description Retrieves the era reward points earned by a given staker across all eras.
|
|
10
|
+
* @example
|
|
11
|
+
* ```javascript
|
|
12
|
+
* const points = await api.derive.staking.stakerPoints(
|
|
13
|
+
* ALICE, //Alice accountId
|
|
14
|
+
* false
|
|
15
|
+
* );
|
|
16
|
+
* console.log(
|
|
17
|
+
* 'Validator Era Points:',
|
|
18
|
+
* points.map(({ era, points }) => `Era ${era}: ${points.toString()} points`)
|
|
19
|
+
* );
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export declare const stakerPoints: (instanceId: string, api: DeriveApi) => (accountId: string | Uint8Array, withActive?: boolean) => Observable<DeriveStakerPoints[]>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { map } from 'rxjs';
|
|
2
|
+
import { memo } from '../util/index.js';
|
|
3
|
+
import { erasHistoricApplyAccount } from './util.js';
|
|
4
|
+
export function _stakerPoints(instanceId, api) {
|
|
5
|
+
return memo(instanceId, (accountId, eras, withActive) => {
|
|
6
|
+
const stakerId = api.registry.createType('AccountId', accountId).toString();
|
|
7
|
+
return api.derive.staking._erasPoints(eras, withActive).pipe(map((points) => points.map(({ era, eraPoints, validators }) => ({
|
|
8
|
+
era,
|
|
9
|
+
eraPoints,
|
|
10
|
+
points: validators[stakerId] || api.registry.createType('RewardPoint')
|
|
11
|
+
}))));
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* @name stakerPoints
|
|
16
|
+
* @param { Uint8Array | string } accountId The stakers AccountId.
|
|
17
|
+
* @param { boolean } withActive Whether to include the active era.
|
|
18
|
+
* @description Retrieves the era reward points earned by a given staker across all eras.
|
|
19
|
+
* @example
|
|
20
|
+
* ```javascript
|
|
21
|
+
* const points = await api.derive.staking.stakerPoints(
|
|
22
|
+
* ALICE, //Alice accountId
|
|
23
|
+
* false
|
|
24
|
+
* );
|
|
25
|
+
* console.log(
|
|
26
|
+
* 'Validator Era Points:',
|
|
27
|
+
* points.map(({ era, points }) => `Era ${era}: ${points.toString()} points`)
|
|
28
|
+
* );
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export const stakerPoints = /*#__PURE__*/ erasHistoricApplyAccount('_stakerPoints');
|