@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.
Files changed (719) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +2 -2
  3. package/accounts/accountId.js +29 -0
  4. package/{build/accounts → accounts}/flags.d.ts +2 -2
  5. package/accounts/flags.js +55 -0
  6. package/accounts/idAndIndex.js +34 -0
  7. package/accounts/idToIndex.js +17 -0
  8. package/{build/accounts → accounts}/identity.d.ts +3 -3
  9. package/accounts/identity.js +153 -0
  10. package/{src/accounts/index.ts → accounts/index.js} +0 -3
  11. package/accounts/indexToId.js +18 -0
  12. package/accounts/indexes.js +34 -0
  13. package/accounts/info.js +33 -0
  14. package/{src/alliance/index.ts → alliance/index.js} +0 -5
  15. package/augment.js +1 -0
  16. package/bagsList/get.js +42 -0
  17. package/bagsList/getExpanded.js +19 -0
  18. package/bagsList/index.js +3 -0
  19. package/bagsList/listNodes.d.ts +9 -0
  20. package/bagsList/listNodes.js +26 -0
  21. package/{build/bagsList → bagsList}/types.d.ts +3 -3
  22. package/bagsList/types.js +1 -0
  23. package/bagsList/util.js +8 -0
  24. package/balances/account.js +149 -0
  25. package/balances/all.js +167 -0
  26. package/{src/balances/index.ts → balances/index.js} +0 -6
  27. package/{build/balances → balances}/types.d.ts +7 -7
  28. package/balances/types.js +1 -0
  29. package/balances/votingBalances.js +18 -0
  30. package/bounties/bounties.js +50 -0
  31. package/bounties/helpers/filterBountyProposals.js +5 -0
  32. package/bounties/index.js +1 -0
  33. package/bundle.js +107 -0
  34. package/{src/chain/bestNumber.ts → chain/bestNumber.js} +1 -10
  35. package/{src/chain/bestNumberFinalized.ts → chain/bestNumberFinalized.js} +1 -10
  36. package/chain/bestNumberLag.js +19 -0
  37. package/chain/getBlock.js +25 -0
  38. package/chain/getBlockByNumber.js +16 -0
  39. package/chain/getHeader.js +19 -0
  40. package/{src/chain/index.ts → chain/index.js} +0 -3
  41. package/chain/subscribeFinalizedBlocks.js +15 -0
  42. package/chain/subscribeFinalizedHeads.js +37 -0
  43. package/chain/subscribeNewBlocks.js +15 -0
  44. package/chain/subscribeNewHeads.js +21 -0
  45. package/chain/util.js +57 -0
  46. package/cjs/accounts/accountId.d.ts +17 -0
  47. package/cjs/accounts/accountId.js +32 -0
  48. package/cjs/accounts/flags.d.ts +29 -0
  49. package/cjs/accounts/flags.js +59 -0
  50. package/cjs/accounts/idAndIndex.d.ts +15 -0
  51. package/cjs/accounts/idAndIndex.js +37 -0
  52. package/cjs/accounts/idToIndex.d.ts +16 -0
  53. package/cjs/accounts/idToIndex.js +20 -0
  54. package/cjs/accounts/identity.d.ts +48 -0
  55. package/cjs/accounts/identity.js +159 -0
  56. package/cjs/accounts/index.d.ts +8 -0
  57. package/cjs/accounts/index.js +11 -0
  58. package/cjs/accounts/indexToId.d.ts +15 -0
  59. package/cjs/accounts/indexToId.js +21 -0
  60. package/cjs/accounts/indexes.d.ts +16 -0
  61. package/cjs/accounts/indexes.js +37 -0
  62. package/cjs/accounts/info.d.ts +18 -0
  63. package/cjs/accounts/info.js +36 -0
  64. package/cjs/accounts/types.d.ts +39 -0
  65. package/cjs/accounts/types.js +2 -0
  66. package/cjs/alliance/index.d.ts +70 -0
  67. package/cjs/alliance/index.js +74 -0
  68. package/cjs/augment.d.ts +1 -0
  69. package/cjs/augment.js +3 -0
  70. package/cjs/bagsList/get.d.ts +12 -0
  71. package/cjs/bagsList/get.js +47 -0
  72. package/cjs/bagsList/getExpanded.d.ts +16 -0
  73. package/cjs/bagsList/getExpanded.js +23 -0
  74. package/cjs/bagsList/index.d.ts +3 -0
  75. package/cjs/bagsList/index.js +6 -0
  76. package/cjs/bagsList/listNodes.d.ts +9 -0
  77. package/cjs/bagsList/listNodes.js +29 -0
  78. package/cjs/bagsList/types.d.ts +13 -0
  79. package/cjs/bagsList/types.js +2 -0
  80. package/cjs/bagsList/util.d.ts +2 -0
  81. package/cjs/bagsList/util.js +11 -0
  82. package/cjs/balances/account.d.ts +17 -0
  83. package/cjs/balances/account.js +152 -0
  84. package/cjs/balances/all.d.ts +20 -0
  85. package/cjs/balances/all.js +170 -0
  86. package/cjs/balances/index.d.ts +20 -0
  87. package/cjs/balances/index.js +25 -0
  88. package/cjs/balances/types.d.ts +69 -0
  89. package/cjs/balances/types.js +2 -0
  90. package/cjs/balances/votingBalances.d.ts +15 -0
  91. package/cjs/balances/votingBalances.js +21 -0
  92. package/cjs/bounties/bounties.d.ts +12 -0
  93. package/cjs/bounties/bounties.js +53 -0
  94. package/cjs/bounties/helpers/filterBountyProposals.d.ts +2 -0
  95. package/cjs/bounties/helpers/filterBountyProposals.js +8 -0
  96. package/cjs/bounties/index.d.ts +1 -0
  97. package/cjs/bounties/index.js +4 -0
  98. package/cjs/bundle.d.ts +9 -0
  99. package/cjs/bundle.js +112 -0
  100. package/cjs/chain/bestNumber.d.ts +11 -0
  101. package/cjs/chain/bestNumber.js +15 -0
  102. package/cjs/chain/bestNumberFinalized.d.ts +12 -0
  103. package/cjs/chain/bestNumberFinalized.js +16 -0
  104. package/cjs/chain/bestNumberLag.d.ts +15 -0
  105. package/cjs/chain/bestNumberLag.js +22 -0
  106. package/cjs/chain/getBlock.d.ts +15 -0
  107. package/cjs/chain/getBlock.js +28 -0
  108. package/{src/chain/getBlockByNumber.ts → cjs/chain/getBlockByNumber.d.ts} +1 -15
  109. package/cjs/chain/getBlockByNumber.js +19 -0
  110. package/cjs/chain/getHeader.d.ts +16 -0
  111. package/cjs/chain/getHeader.js +22 -0
  112. package/cjs/chain/index.d.ts +10 -0
  113. package/cjs/chain/index.js +13 -0
  114. package/cjs/chain/subscribeFinalizedBlocks.d.ts +14 -0
  115. package/cjs/chain/subscribeFinalizedBlocks.js +18 -0
  116. package/cjs/chain/subscribeFinalizedHeads.d.ts +22 -0
  117. package/cjs/chain/subscribeFinalizedHeads.js +41 -0
  118. package/cjs/chain/subscribeNewBlocks.d.ts +14 -0
  119. package/cjs/chain/subscribeNewBlocks.js +18 -0
  120. package/cjs/chain/subscribeNewHeads.d.ts +15 -0
  121. package/cjs/chain/subscribeNewHeads.js +24 -0
  122. package/cjs/chain/util.d.ts +9 -0
  123. package/cjs/chain/util.js +61 -0
  124. package/cjs/collective/helpers.js +23 -0
  125. package/cjs/collective/index.js +6 -0
  126. package/cjs/collective/members.js +5 -0
  127. package/cjs/collective/prime.js +11 -0
  128. package/cjs/collective/proposals.js +44 -0
  129. package/cjs/collective/types.js +2 -0
  130. package/{build → cjs}/contracts/fees.d.ts +1 -1
  131. package/cjs/contracts/fees.js +48 -0
  132. package/cjs/contracts/index.js +4 -0
  133. package/cjs/council/index.js +77 -0
  134. package/cjs/council/types.js +2 -0
  135. package/cjs/council/votes.js +59 -0
  136. package/cjs/council/votesOf.js +21 -0
  137. package/{build → cjs}/crowdloan/childKey.d.ts +2 -2
  138. package/cjs/crowdloan/childKey.js +26 -0
  139. package/{build → cjs}/crowdloan/contributions.d.ts +2 -2
  140. package/cjs/crowdloan/contributions.js +83 -0
  141. package/cjs/crowdloan/index.js +6 -0
  142. package/{build → cjs}/crowdloan/ownContributions.d.ts +2 -2
  143. package/cjs/crowdloan/ownContributions.js +48 -0
  144. package/cjs/crowdloan/types.js +2 -0
  145. package/{build → cjs}/crowdloan/util.d.ts +2 -2
  146. package/cjs/crowdloan/util.js +20 -0
  147. package/cjs/democracy/dispatchQueue.js +90 -0
  148. package/cjs/democracy/index.js +14 -0
  149. package/cjs/democracy/locks.js +65 -0
  150. package/cjs/democracy/nextExternal.js +31 -0
  151. package/{build → cjs}/democracy/preimages.d.ts +5 -5
  152. package/cjs/democracy/preimages.js +117 -0
  153. package/cjs/democracy/proposals.js +46 -0
  154. package/cjs/democracy/referendumIds.js +24 -0
  155. package/cjs/democracy/referendums.js +22 -0
  156. package/cjs/democracy/referendumsActive.js +19 -0
  157. package/{build → cjs}/democracy/referendumsFinished.d.ts +2 -2
  158. package/cjs/democracy/referendumsFinished.js +20 -0
  159. package/{build → cjs}/democracy/referendumsInfo.d.ts +2 -2
  160. package/cjs/democracy/referendumsInfo.js +114 -0
  161. package/cjs/democracy/sqrtElectorate.js +18 -0
  162. package/{build → cjs}/democracy/types.d.ts +3 -3
  163. package/cjs/democracy/types.js +2 -0
  164. package/{build → cjs}/democracy/util.d.ts +5 -5
  165. package/cjs/democracy/util.js +137 -0
  166. package/{build → cjs}/derive.d.ts +2 -2
  167. package/cjs/derive.js +25 -0
  168. package/cjs/elections/index.js +4 -0
  169. package/cjs/elections/info.js +93 -0
  170. package/cjs/elections/types.js +2 -0
  171. package/cjs/imOnline/index.js +4 -0
  172. package/cjs/imOnline/receivedHeartbeats.js +42 -0
  173. package/cjs/index.js +5 -0
  174. package/cjs/membership/index.js +74 -0
  175. package/cjs/package.json +3 -0
  176. package/cjs/packageDetect.d.ts +1 -0
  177. package/cjs/packageDetect.js +5 -0
  178. package/cjs/packageInfo.js +4 -0
  179. package/cjs/session/index.js +6 -0
  180. package/cjs/session/indexes.js +68 -0
  181. package/cjs/session/info.js +28 -0
  182. package/cjs/session/progress.js +93 -0
  183. package/cjs/session/types.js +2 -0
  184. package/cjs/society/candidates.js +42 -0
  185. package/cjs/society/index.js +7 -0
  186. package/cjs/society/info.js +36 -0
  187. package/cjs/society/member.js +18 -0
  188. package/cjs/society/members.js +70 -0
  189. package/{build → cjs}/society/types.d.ts +5 -5
  190. package/cjs/society/types.js +2 -0
  191. package/{build → cjs}/staking/account.d.ts +1 -1
  192. package/cjs/staking/account.js +80 -0
  193. package/cjs/staking/cache.js +39 -0
  194. package/{build → cjs}/staking/currentPoints.d.ts +2 -2
  195. package/cjs/staking/currentPoints.js +17 -0
  196. package/cjs/staking/electedInfo.js +37 -0
  197. package/cjs/staking/erasExposure.js +76 -0
  198. package/cjs/staking/erasHistoric.js +31 -0
  199. package/cjs/staking/erasPoints.js +51 -0
  200. package/cjs/staking/erasPrefs.js +47 -0
  201. package/cjs/staking/erasRewards.js +38 -0
  202. package/cjs/staking/erasSlashes.js +53 -0
  203. package/cjs/staking/index.js +25 -0
  204. package/{build → cjs}/staking/keys.d.ts +1 -1
  205. package/cjs/staking/keys.js +61 -0
  206. package/cjs/staking/overview.js +31 -0
  207. package/{build → cjs}/staking/ownExposure.d.ts +1 -1
  208. package/cjs/staking/ownExposure.js +64 -0
  209. package/{build → cjs}/staking/ownSlashes.d.ts +1 -1
  210. package/cjs/staking/ownSlashes.js +51 -0
  211. package/{build → cjs}/staking/query.d.ts +1 -1
  212. package/cjs/staking/query.js +176 -0
  213. package/{build → cjs}/staking/stakerExposure.d.ts +1 -1
  214. package/cjs/staking/stakerExposure.js +56 -0
  215. package/cjs/staking/stakerPoints.js +35 -0
  216. package/cjs/staking/stakerPrefs.js +33 -0
  217. package/{build → cjs}/staking/stakerRewards.d.ts +1 -1
  218. package/cjs/staking/stakerRewards.js +222 -0
  219. package/cjs/staking/stakerSlashes.js +34 -0
  220. package/cjs/staking/stashes.js +38 -0
  221. package/{build → cjs}/staking/types.d.ts +15 -15
  222. package/cjs/staking/types.js +2 -0
  223. package/cjs/staking/util.js +53 -0
  224. package/cjs/staking/validators.js +71 -0
  225. package/cjs/staking/waitingInfo.js +32 -0
  226. package/cjs/technicalCommittee/index.js +74 -0
  227. package/cjs/teyrchains/index.js +5 -0
  228. package/{build/parachains → cjs/teyrchains}/info.d.ts +7 -7
  229. package/cjs/teyrchains/info.js +75 -0
  230. package/cjs/teyrchains/overview.d.ts +15 -0
  231. package/cjs/teyrchains/overview.js +39 -0
  232. package/{build/parachains → cjs/teyrchains}/types.d.ts +6 -6
  233. package/cjs/teyrchains/types.js +2 -0
  234. package/cjs/teyrchains/util.js +8 -0
  235. package/cjs/treasury/index.js +4 -0
  236. package/cjs/treasury/proposals.js +71 -0
  237. package/cjs/tx/constants.js +8 -0
  238. package/cjs/tx/events.js +24 -0
  239. package/cjs/tx/extrinsicInfo.js +87 -0
  240. package/cjs/tx/index.js +6 -0
  241. package/cjs/tx/signingInfo.js +81 -0
  242. package/cjs/type/HeaderExtended.js +23 -0
  243. package/cjs/type/SignedBlockExtended.js +60 -0
  244. package/cjs/type/index.js +7 -0
  245. package/cjs/type/types.js +2 -0
  246. package/cjs/type/util.js +36 -0
  247. package/{build → cjs}/types.d.ts +4 -4
  248. package/cjs/types.js +15 -0
  249. package/cjs/util/approvalFlagsToBools.js +19 -0
  250. package/cjs/util/blockNumber.js +9 -0
  251. package/cjs/util/cache.js +45 -0
  252. package/cjs/util/cacheImpl.js +26 -0
  253. package/cjs/util/first.js +12 -0
  254. package/cjs/util/index.js +13 -0
  255. package/cjs/util/lazy.js +7 -0
  256. package/cjs/util/types.js +2 -0
  257. package/collective/helpers.d.ts +6 -0
  258. package/collective/helpers.js +18 -0
  259. package/collective/index.d.ts +3 -0
  260. package/collective/index.js +3 -0
  261. package/collective/members.d.ts +2 -0
  262. package/collective/members.js +2 -0
  263. package/collective/prime.d.ts +2 -0
  264. package/collective/prime.js +8 -0
  265. package/collective/proposals.d.ts +6 -0
  266. package/collective/proposals.js +38 -0
  267. package/{src/collective/types.ts → collective/types.d.ts} +0 -11
  268. package/collective/types.js +1 -0
  269. package/contracts/fees.d.ts +14 -0
  270. package/contracts/fees.js +45 -0
  271. package/contracts/index.d.ts +1 -0
  272. package/contracts/index.js +1 -0
  273. package/council/index.d.ts +72 -0
  274. package/{src/council/index.ts → council/index.js} +0 -6
  275. package/{src/council/types.ts → council/types.d.ts} +2 -7
  276. package/council/types.js +1 -0
  277. package/council/votes.d.ts +11 -0
  278. package/council/votes.js +56 -0
  279. package/council/votesOf.d.ts +16 -0
  280. package/council/votesOf.js +18 -0
  281. package/crowdloan/childKey.d.ts +15 -0
  282. package/crowdloan/childKey.js +23 -0
  283. package/crowdloan/contributions.d.ts +14 -0
  284. package/crowdloan/contributions.js +80 -0
  285. package/crowdloan/index.d.ts +3 -0
  286. package/crowdloan/index.js +3 -0
  287. package/crowdloan/ownContributions.d.ts +15 -0
  288. package/crowdloan/ownContributions.js +45 -0
  289. package/{src/crowdloan/types.ts → crowdloan/types.d.ts} +2 -7
  290. package/crowdloan/types.js +1 -0
  291. package/crowdloan/util.d.ts +10 -0
  292. package/crowdloan/util.js +17 -0
  293. package/democracy/dispatchQueue.d.ts +12 -0
  294. package/democracy/dispatchQueue.js +87 -0
  295. package/{src/democracy/index.ts → democracy/index.d.ts} +0 -3
  296. package/democracy/index.js +11 -0
  297. package/democracy/locks.d.ts +14 -0
  298. package/democracy/locks.js +62 -0
  299. package/democracy/nextExternal.d.ts +12 -0
  300. package/democracy/nextExternal.js +28 -0
  301. package/democracy/preimages.d.ts +24 -0
  302. package/democracy/preimages.js +113 -0
  303. package/democracy/proposals.d.ts +12 -0
  304. package/democracy/proposals.js +43 -0
  305. package/democracy/referendumIds.d.ts +12 -0
  306. package/democracy/referendumIds.js +21 -0
  307. package/democracy/referendums.d.ts +11 -0
  308. package/democracy/referendums.js +19 -0
  309. package/democracy/referendumsActive.d.ts +12 -0
  310. package/democracy/referendumsActive.js +16 -0
  311. package/democracy/referendumsFinished.d.ts +15 -0
  312. package/democracy/referendumsFinished.js +17 -0
  313. package/democracy/referendumsInfo.d.ts +23 -0
  314. package/democracy/referendumsInfo.js +108 -0
  315. package/democracy/sqrtElectorate.d.ts +13 -0
  316. package/democracy/sqrtElectorate.js +15 -0
  317. package/democracy/types.d.ts +70 -0
  318. package/democracy/types.js +1 -0
  319. package/democracy/util.d.ts +18 -0
  320. package/democracy/util.js +129 -0
  321. package/derive.d.ts +52 -0
  322. package/{src/derive.ts → derive.js} +2 -22
  323. package/elections/index.d.ts +1 -0
  324. package/elections/index.js +1 -0
  325. package/elections/info.d.ts +14 -0
  326. package/elections/info.js +90 -0
  327. package/elections/types.d.ts +18 -0
  328. package/elections/types.js +1 -0
  329. package/imOnline/index.d.ts +1 -0
  330. package/imOnline/index.js +1 -0
  331. package/imOnline/receivedHeartbeats.d.ts +13 -0
  332. package/imOnline/receivedHeartbeats.js +39 -0
  333. package/index.d.ts +2 -0
  334. package/index.js +2 -0
  335. package/membership/index.d.ts +70 -0
  336. package/{src/membership/index.ts → membership/index.js} +0 -5
  337. package/package.json +2066 -19
  338. package/packageDetect.d.ts +1 -0
  339. package/packageDetect.js +3 -0
  340. package/packageInfo.d.ts +6 -0
  341. package/packageInfo.js +1 -0
  342. package/session/index.d.ts +3 -0
  343. package/session/index.js +3 -0
  344. package/session/indexes.d.ts +15 -0
  345. package/session/indexes.js +65 -0
  346. package/session/info.d.ts +13 -0
  347. package/{src/session/info.ts → session/info.js} +7 -21
  348. package/session/progress.d.ts +47 -0
  349. package/session/progress.js +89 -0
  350. package/session/types.d.ts +19 -0
  351. package/session/types.js +1 -0
  352. package/society/candidates.d.ts +12 -0
  353. package/society/candidates.js +39 -0
  354. package/{src/society/index.ts → society/index.d.ts} +0 -3
  355. package/society/index.js +4 -0
  356. package/society/info.d.ts +12 -0
  357. package/society/info.js +33 -0
  358. package/society/member.d.ts +14 -0
  359. package/society/member.js +15 -0
  360. package/society/members.d.ts +14 -0
  361. package/society/members.js +66 -0
  362. package/society/types.d.ts +27 -0
  363. package/society/types.js +1 -0
  364. package/staking/account.d.ts +31 -0
  365. package/staking/account.js +76 -0
  366. package/staking/cache.d.ts +12 -0
  367. package/staking/cache.js +32 -0
  368. package/staking/currentPoints.d.ts +13 -0
  369. package/staking/currentPoints.js +14 -0
  370. package/staking/electedInfo.d.ts +23 -0
  371. package/staking/electedInfo.js +34 -0
  372. package/staking/erasExposure.d.ts +30 -0
  373. package/staking/erasExposure.js +72 -0
  374. package/staking/erasHistoric.d.ts +8 -0
  375. package/staking/erasHistoric.js +28 -0
  376. package/staking/erasPoints.d.ts +18 -0
  377. package/staking/erasPoints.js +47 -0
  378. package/staking/erasPrefs.d.ts +27 -0
  379. package/staking/erasPrefs.js +43 -0
  380. package/staking/erasRewards.d.ts +14 -0
  381. package/staking/erasRewards.js +34 -0
  382. package/staking/erasSlashes.d.ts +26 -0
  383. package/staking/erasSlashes.js +49 -0
  384. package/{src/staking/index.ts → staking/index.d.ts} +0 -3
  385. package/staking/index.js +22 -0
  386. package/staking/keys.d.ts +35 -0
  387. package/staking/keys.js +57 -0
  388. package/staking/overview.d.ts +19 -0
  389. package/staking/overview.js +28 -0
  390. package/staking/ownExposure.d.ts +37 -0
  391. package/staking/ownExposure.js +60 -0
  392. package/staking/ownSlashes.d.ts +35 -0
  393. package/staking/ownSlashes.js +47 -0
  394. package/staking/query.d.ts +31 -0
  395. package/staking/query.js +172 -0
  396. package/staking/stakerExposure.d.ts +33 -0
  397. package/staking/stakerExposure.js +51 -0
  398. package/staking/stakerPoints.d.ts +22 -0
  399. package/staking/stakerPoints.js +31 -0
  400. package/staking/stakerPrefs.d.ts +24 -0
  401. package/staking/stakerPrefs.js +29 -0
  402. package/staking/stakerRewards.d.ts +49 -0
  403. package/staking/stakerRewards.js +215 -0
  404. package/staking/stakerSlashes.d.ts +22 -0
  405. package/staking/stakerSlashes.js +30 -0
  406. package/staking/stashes.d.ts +16 -0
  407. package/staking/stashes.js +35 -0
  408. package/staking/types.d.ts +139 -0
  409. package/staking/types.js +1 -0
  410. package/staking/util.d.ts +14 -0
  411. package/staking/util.js +46 -0
  412. package/staking/validators.d.ts +33 -0
  413. package/{src/staking/validators.ts → staking/validators.js} +25 -40
  414. package/staking/waitingInfo.d.ts +16 -0
  415. package/{src/staking/waitingInfo.ts → staking/waitingInfo.js} +8 -24
  416. package/technicalCommittee/index.d.ts +70 -0
  417. package/{src/technicalCommittee/index.ts → technicalCommittee/index.js} +0 -5
  418. package/teyrchains/index.d.ts +2 -0
  419. package/teyrchains/index.js +2 -0
  420. package/teyrchains/info.d.ts +19 -0
  421. package/teyrchains/info.js +72 -0
  422. package/teyrchains/overview.d.ts +15 -0
  423. package/teyrchains/overview.js +36 -0
  424. package/teyrchains/types.d.ts +38 -0
  425. package/teyrchains/types.js +1 -0
  426. package/teyrchains/util.d.ts +3 -0
  427. package/teyrchains/util.js +5 -0
  428. package/treasury/index.d.ts +1 -0
  429. package/treasury/index.js +1 -0
  430. package/treasury/proposals.d.ts +12 -0
  431. package/treasury/proposals.js +68 -0
  432. package/tx/constants.d.ts +5 -0
  433. package/{src/tx/constants.ts → tx/constants.js} +0 -8
  434. package/tx/events.d.ts +22 -0
  435. package/tx/events.js +21 -0
  436. package/tx/extrinsicInfo.d.ts +61 -0
  437. package/tx/extrinsicInfo.js +83 -0
  438. package/tx/index.d.ts +3 -0
  439. package/tx/index.js +3 -0
  440. package/tx/signingInfo.d.ts +25 -0
  441. package/tx/signingInfo.js +78 -0
  442. package/type/HeaderExtended.d.ts +4 -0
  443. package/type/HeaderExtended.js +20 -0
  444. package/type/SignedBlockExtended.d.ts +4 -0
  445. package/type/SignedBlockExtended.js +57 -0
  446. package/{src/type/index.ts → type/index.d.ts} +0 -3
  447. package/type/index.js +2 -0
  448. package/type/types.d.ts +15 -0
  449. package/type/types.js +1 -0
  450. package/type/util.d.ts +2 -0
  451. package/type/util.js +33 -0
  452. package/{src/types.ts → types.d.ts} +39 -57
  453. package/types.js +12 -0
  454. package/util/approvalFlagsToBools.d.ts +4 -0
  455. package/util/approvalFlagsToBools.js +16 -0
  456. package/util/blockNumber.d.ts +7 -0
  457. package/util/blockNumber.js +6 -0
  458. package/util/cache.d.ts +4 -0
  459. package/util/cache.js +42 -0
  460. package/util/cacheImpl.d.ts +3 -0
  461. package/util/cacheImpl.js +23 -0
  462. package/util/first.d.ts +4 -0
  463. package/util/first.js +8 -0
  464. package/{src/util/index.ts → util/index.d.ts} +0 -6
  465. package/util/index.js +7 -0
  466. package/util/lazy.d.ts +4 -0
  467. package/util/lazy.js +4 -0
  468. package/util/types.d.ts +6 -0
  469. package/util/types.js +1 -0
  470. package/build/bagsList/listNodes.d.ts +0 -9
  471. package/build/parachains/overview.d.ts +0 -15
  472. package/src/accounts/accountId.ts +0 -44
  473. package/src/accounts/flags.ts +0 -90
  474. package/src/accounts/idAndIndex.ts +0 -51
  475. package/src/accounts/idToIndex.ts +0 -31
  476. package/src/accounts/identity.ts +0 -235
  477. package/src/accounts/indexToId.ts +0 -33
  478. package/src/accounts/indexes.ts +0 -56
  479. package/src/accounts/info.ts +0 -58
  480. package/src/accounts/types.ts +0 -48
  481. package/src/augment.ts +0 -4
  482. package/src/bagsList/get.ts +0 -79
  483. package/src/bagsList/getExpanded.ts +0 -41
  484. package/src/bagsList/index.ts +0 -6
  485. package/src/bagsList/listNodes.ts +0 -50
  486. package/src/bagsList/types.ts +0 -18
  487. package/src/bagsList/util.ts +0 -14
  488. package/src/balances/account.ts +0 -210
  489. package/src/balances/all.ts +0 -246
  490. package/src/balances/types.ts +0 -79
  491. package/src/balances/votingBalances.ts +0 -33
  492. package/src/bounties/bounties.spec.ts +0 -162
  493. package/src/bounties/bounties.ts +0 -76
  494. package/src/bounties/helpers/filterBountyProposals.ts +0 -13
  495. package/src/bounties/index.ts +0 -4
  496. package/src/bundle.ts +0 -140
  497. package/src/chain/bestNumberLag.ts +0 -33
  498. package/src/chain/getBlock.ts +0 -43
  499. package/src/chain/getHeader.ts +0 -37
  500. package/src/chain/subscribeFinalizedBlocks.ts +0 -30
  501. package/src/chain/subscribeFinalizedHeads.ts +0 -62
  502. package/src/chain/subscribeNewBlocks.ts +0 -30
  503. package/src/chain/subscribeNewHeads.ts +0 -38
  504. package/src/chain/util.ts +0 -112
  505. package/src/checkTypes.manual.ts +0 -8
  506. package/src/collective/helpers.ts +0 -36
  507. package/src/collective/index.ts +0 -6
  508. package/src/collective/members.ts +0 -8
  509. package/src/collective/prime.ts +0 -25
  510. package/src/collective/proposals.ts +0 -73
  511. package/src/contracts/fees.ts +0 -61
  512. package/src/contracts/index.ts +0 -4
  513. package/src/council/votes.ts +0 -97
  514. package/src/council/votesOf.ts +0 -35
  515. package/src/crowdloan/childKey.ts +0 -57
  516. package/src/crowdloan/contributions.ts +0 -142
  517. package/src/crowdloan/index.ts +0 -6
  518. package/src/crowdloan/ownContributions.ts +0 -81
  519. package/src/crowdloan/util.ts +0 -33
  520. package/src/democracy/dispatchQueue.ts +0 -158
  521. package/src/democracy/locks.ts +0 -114
  522. package/src/democracy/nextExternal.ts +0 -49
  523. package/src/democracy/preimages.ts +0 -171
  524. package/src/democracy/proposals.ts +0 -81
  525. package/src/democracy/referendumIds.ts +0 -37
  526. package/src/democracy/referendums.ts +0 -39
  527. package/src/democracy/referendumsActive.ts +0 -30
  528. package/src/democracy/referendumsFinished.ts +0 -37
  529. package/src/democracy/referendumsInfo.ts +0 -181
  530. package/src/democracy/sqrtElectorate.ts +0 -29
  531. package/src/democracy/types.ts +0 -84
  532. package/src/democracy/util.ts +0 -166
  533. package/src/elections/index.ts +0 -4
  534. package/src/elections/info.ts +0 -126
  535. package/src/elections/types.ts +0 -22
  536. package/src/imOnline/index.ts +0 -4
  537. package/src/imOnline/receivedHeartbeats.ts +0 -65
  538. package/src/index.spec.ts +0 -103
  539. package/src/index.ts +0 -6
  540. package/src/mod.ts +0 -4
  541. package/src/packageDetect.ts +0 -11
  542. package/src/packageInfo.ts +0 -6
  543. package/src/parachains/index.ts +0 -5
  544. package/src/parachains/info.ts +0 -111
  545. package/src/parachains/overview.ts +0 -63
  546. package/src/parachains/types.ts +0 -46
  547. package/src/parachains/util.ts +0 -11
  548. package/src/session/index.ts +0 -6
  549. package/src/session/indexes.ts +0 -90
  550. package/src/session/progress.ts +0 -130
  551. package/src/session/types.ts +0 -25
  552. package/src/society/candidates.ts +0 -71
  553. package/src/society/info.ts +0 -50
  554. package/src/society/member.ts +0 -28
  555. package/src/society/members.ts +0 -107
  556. package/src/society/types.ts +0 -33
  557. package/src/staking/account.ts +0 -112
  558. package/src/staking/cache.ts +0 -48
  559. package/src/staking/currentPoints.ts +0 -28
  560. package/src/staking/electedInfo.ts +0 -54
  561. package/src/staking/erasExposure.ts +0 -105
  562. package/src/staking/erasHistoric.ts +0 -47
  563. package/src/staking/erasPoints.ts +0 -67
  564. package/src/staking/erasPrefs.ts +0 -63
  565. package/src/staking/erasRewards.ts +0 -52
  566. package/src/staking/erasSlashes.ts +0 -69
  567. package/src/staking/keys.ts +0 -86
  568. package/src/staking/overview.ts +0 -42
  569. package/src/staking/ownExposure.ts +0 -83
  570. package/src/staking/ownSlashes.ts +0 -68
  571. package/src/staking/query.ts +0 -230
  572. package/src/staking/stakerExposure.ts +0 -78
  573. package/src/staking/stakerPoints.ts +0 -46
  574. package/src/staking/stakerPrefs.ts +0 -45
  575. package/src/staking/stakerRewards.ts +0 -298
  576. package/src/staking/stakerSlashes.ts +0 -45
  577. package/src/staking/stashes.ts +0 -55
  578. package/src/staking/types.ts +0 -174
  579. package/src/staking/util.ts +0 -94
  580. package/src/test/bountyFactory.ts +0 -39
  581. package/src/test/bytesFactory.ts +0 -15
  582. package/src/test/helpers.ts +0 -23
  583. package/src/test/proposalFactory.ts +0 -25
  584. package/src/treasury/index.ts +0 -4
  585. package/src/treasury/proposals.ts +0 -109
  586. package/src/tx/events.ts +0 -43
  587. package/src/tx/extrinsicInfo.ts +0 -123
  588. package/src/tx/index.ts +0 -6
  589. package/src/tx/signingInfo.ts +0 -129
  590. package/src/type/HeaderExtended.ts +0 -33
  591. package/src/type/SignedBlockExtended.ts +0 -75
  592. package/src/type/types.ts +0 -21
  593. package/src/type/util.ts +0 -45
  594. package/src/util/approvalFlagToBools.spec.ts +0 -37
  595. package/src/util/approvalFlagsToBools.ts +0 -26
  596. package/src/util/blockNumber.ts +0 -15
  597. package/src/util/cache.ts +0 -65
  598. package/src/util/cacheImpl.ts +0 -30
  599. package/src/util/first.ts +0 -20
  600. package/src/util/lazy.ts +0 -16
  601. package/src/util/types.ts +0 -9
  602. package/tsconfig.build.json +0 -21
  603. package/tsconfig.build.tsbuildinfo +0 -1
  604. package/tsconfig.spec.json +0 -27
  605. /package/{build/accounts → accounts}/accountId.d.ts +0 -0
  606. /package/{build/accounts → accounts}/idAndIndex.d.ts +0 -0
  607. /package/{build/accounts → accounts}/idToIndex.d.ts +0 -0
  608. /package/{build/accounts → accounts}/index.d.ts +0 -0
  609. /package/{build/accounts → accounts}/indexToId.d.ts +0 -0
  610. /package/{build/accounts → accounts}/indexes.d.ts +0 -0
  611. /package/{build/accounts → accounts}/info.d.ts +0 -0
  612. /package/{build/accounts → accounts}/types.d.ts +0 -0
  613. /package/{build/packageDetect.d.ts → accounts/types.js} +0 -0
  614. /package/{build/alliance → alliance}/index.d.ts +0 -0
  615. /package/{build/augment.d.ts → augment.d.ts} +0 -0
  616. /package/{build/bagsList → bagsList}/get.d.ts +0 -0
  617. /package/{build/bagsList → bagsList}/getExpanded.d.ts +0 -0
  618. /package/{build/bagsList → bagsList}/index.d.ts +0 -0
  619. /package/{build/bagsList → bagsList}/util.d.ts +0 -0
  620. /package/{build/balances → balances}/account.d.ts +0 -0
  621. /package/{build/balances → balances}/all.d.ts +0 -0
  622. /package/{build/balances → balances}/index.d.ts +0 -0
  623. /package/{build/balances → balances}/votingBalances.d.ts +0 -0
  624. /package/{build/bounties → bounties}/bounties.d.ts +0 -0
  625. /package/{build/bounties → bounties}/helpers/filterBountyProposals.d.ts +0 -0
  626. /package/{build/bounties → bounties}/index.d.ts +0 -0
  627. /package/{build/bundle.d.ts → bundle.d.ts} +0 -0
  628. /package/{build/chain → chain}/bestNumber.d.ts +0 -0
  629. /package/{build/chain → chain}/bestNumberFinalized.d.ts +0 -0
  630. /package/{build/chain → chain}/bestNumberLag.d.ts +0 -0
  631. /package/{build/chain → chain}/getBlock.d.ts +0 -0
  632. /package/{build/chain → chain}/getBlockByNumber.d.ts +0 -0
  633. /package/{build/chain → chain}/getHeader.d.ts +0 -0
  634. /package/{build/chain → chain}/index.d.ts +0 -0
  635. /package/{build/chain → chain}/subscribeFinalizedBlocks.d.ts +0 -0
  636. /package/{build/chain → chain}/subscribeFinalizedHeads.d.ts +0 -0
  637. /package/{build/chain → chain}/subscribeNewBlocks.d.ts +0 -0
  638. /package/{build/chain → chain}/subscribeNewHeads.d.ts +0 -0
  639. /package/{build/chain → chain}/util.d.ts +0 -0
  640. /package/{build → cjs}/collective/helpers.d.ts +0 -0
  641. /package/{build → cjs}/collective/index.d.ts +0 -0
  642. /package/{build → cjs}/collective/members.d.ts +0 -0
  643. /package/{build → cjs}/collective/prime.d.ts +0 -0
  644. /package/{build → cjs}/collective/proposals.d.ts +0 -0
  645. /package/{build → cjs}/collective/types.d.ts +0 -0
  646. /package/{build → cjs}/contracts/index.d.ts +0 -0
  647. /package/{build → cjs}/council/index.d.ts +0 -0
  648. /package/{build → cjs}/council/types.d.ts +0 -0
  649. /package/{build → cjs}/council/votes.d.ts +0 -0
  650. /package/{build → cjs}/council/votesOf.d.ts +0 -0
  651. /package/{build → cjs}/crowdloan/index.d.ts +0 -0
  652. /package/{build → cjs}/crowdloan/types.d.ts +0 -0
  653. /package/{build → cjs}/democracy/dispatchQueue.d.ts +0 -0
  654. /package/{build → cjs}/democracy/index.d.ts +0 -0
  655. /package/{build → cjs}/democracy/locks.d.ts +0 -0
  656. /package/{build → cjs}/democracy/nextExternal.d.ts +0 -0
  657. /package/{build → cjs}/democracy/proposals.d.ts +0 -0
  658. /package/{build → cjs}/democracy/referendumIds.d.ts +0 -0
  659. /package/{build → cjs}/democracy/referendums.d.ts +0 -0
  660. /package/{build → cjs}/democracy/referendumsActive.d.ts +0 -0
  661. /package/{build → cjs}/democracy/sqrtElectorate.d.ts +0 -0
  662. /package/{build → cjs}/elections/index.d.ts +0 -0
  663. /package/{build → cjs}/elections/info.d.ts +0 -0
  664. /package/{build → cjs}/elections/types.d.ts +0 -0
  665. /package/{build → cjs}/imOnline/index.d.ts +0 -0
  666. /package/{build → cjs}/imOnline/receivedHeartbeats.d.ts +0 -0
  667. /package/{build → cjs}/index.d.ts +0 -0
  668. /package/{build → cjs}/membership/index.d.ts +0 -0
  669. /package/{build → cjs}/packageInfo.d.ts +0 -0
  670. /package/{build → cjs}/session/index.d.ts +0 -0
  671. /package/{build → cjs}/session/indexes.d.ts +0 -0
  672. /package/{build → cjs}/session/info.d.ts +0 -0
  673. /package/{build → cjs}/session/progress.d.ts +0 -0
  674. /package/{build → cjs}/session/types.d.ts +0 -0
  675. /package/{build → cjs}/society/candidates.d.ts +0 -0
  676. /package/{build → cjs}/society/index.d.ts +0 -0
  677. /package/{build → cjs}/society/info.d.ts +0 -0
  678. /package/{build → cjs}/society/member.d.ts +0 -0
  679. /package/{build → cjs}/society/members.d.ts +0 -0
  680. /package/{build → cjs}/staking/cache.d.ts +0 -0
  681. /package/{build → cjs}/staking/electedInfo.d.ts +0 -0
  682. /package/{build → cjs}/staking/erasExposure.d.ts +0 -0
  683. /package/{build → cjs}/staking/erasHistoric.d.ts +0 -0
  684. /package/{build → cjs}/staking/erasPoints.d.ts +0 -0
  685. /package/{build → cjs}/staking/erasPrefs.d.ts +0 -0
  686. /package/{build → cjs}/staking/erasRewards.d.ts +0 -0
  687. /package/{build → cjs}/staking/erasSlashes.d.ts +0 -0
  688. /package/{build → cjs}/staking/index.d.ts +0 -0
  689. /package/{build → cjs}/staking/overview.d.ts +0 -0
  690. /package/{build → cjs}/staking/stakerPoints.d.ts +0 -0
  691. /package/{build → cjs}/staking/stakerPrefs.d.ts +0 -0
  692. /package/{build → cjs}/staking/stakerSlashes.d.ts +0 -0
  693. /package/{build → cjs}/staking/stashes.d.ts +0 -0
  694. /package/{build → cjs}/staking/util.d.ts +0 -0
  695. /package/{build → cjs}/staking/validators.d.ts +0 -0
  696. /package/{build → cjs}/staking/waitingInfo.d.ts +0 -0
  697. /package/{build → cjs}/technicalCommittee/index.d.ts +0 -0
  698. /package/{build/parachains → cjs/teyrchains}/index.d.ts +0 -0
  699. /package/{build/parachains → cjs/teyrchains}/util.d.ts +0 -0
  700. /package/{build → cjs}/treasury/index.d.ts +0 -0
  701. /package/{build → cjs}/treasury/proposals.d.ts +0 -0
  702. /package/{build → cjs}/tx/constants.d.ts +0 -0
  703. /package/{build → cjs}/tx/events.d.ts +0 -0
  704. /package/{build → cjs}/tx/extrinsicInfo.d.ts +0 -0
  705. /package/{build → cjs}/tx/index.d.ts +0 -0
  706. /package/{build → cjs}/tx/signingInfo.d.ts +0 -0
  707. /package/{build → cjs}/type/HeaderExtended.d.ts +0 -0
  708. /package/{build → cjs}/type/SignedBlockExtended.d.ts +0 -0
  709. /package/{build → cjs}/type/index.d.ts +0 -0
  710. /package/{build → cjs}/type/types.d.ts +0 -0
  711. /package/{build → cjs}/type/util.d.ts +0 -0
  712. /package/{build → cjs}/util/approvalFlagsToBools.d.ts +0 -0
  713. /package/{build → cjs}/util/blockNumber.d.ts +0 -0
  714. /package/{build → cjs}/util/cache.d.ts +0 -0
  715. /package/{build → cjs}/util/cacheImpl.d.ts +0 -0
  716. /package/{build → cjs}/util/first.d.ts +0 -0
  717. /package/{build → cjs}/util/index.d.ts +0 -0
  718. /package/{build → cjs}/util/lazy.d.ts +0 -0
  719. /package/{build → cjs}/util/types.d.ts +0 -0
@@ -0,0 +1,24 @@
1
+ import type { Observable } from 'rxjs';
2
+ import type { EraIndex } from '@pezkuwi/types/interfaces';
3
+ import type { DeriveApi, DeriveStakerPrefs } from '../types.js';
4
+ export declare function _stakerPrefs(instanceId: string, api: DeriveApi): (accountId: Uint8Array | string, eras: EraIndex[], withActive: boolean) => Observable<DeriveStakerPrefs[]>;
5
+ /**
6
+ * @name stakerPrefs
7
+ * @param { Uint8Array | string } accountId The stakers AccountId.
8
+ * @param { boolean } withActive Whether to include the active era.
9
+ * @description Retrieves the validator preferences for a given staker across historical eras.
10
+ * @example
11
+ * ```javascript
12
+ * const prefs = await api.derive.staking.stakerPrefs(
13
+ * ALICE, //Alice accountId
14
+ * false
15
+ * );
16
+ * console.log(
17
+ * 'Validator Preferences:',
18
+ * prefs.map(
19
+ * ({ era, validatorPrefs }) => `Era ${era}: Commission ${validatorPrefs.commission.toString()}`
20
+ * )
21
+ * );
22
+ * ```
23
+ */
24
+ export declare const stakerPrefs: (instanceId: string, api: DeriveApi) => (accountId: string | Uint8Array, withActive?: boolean) => Observable<DeriveStakerPrefs[]>;
@@ -0,0 +1,29 @@
1
+ import { map } from 'rxjs';
2
+ import { memo } from '../util/index.js';
3
+ import { erasHistoricApplyAccount } from './util.js';
4
+ export function _stakerPrefs(instanceId, api) {
5
+ return memo(instanceId, (accountId, eras, _withActive) => api.query.staking.erasValidatorPrefs.multi(eras.map((e) => [e, accountId])).pipe(map((all) => all.map((validatorPrefs, index) => ({
6
+ era: eras[index],
7
+ validatorPrefs
8
+ })))));
9
+ }
10
+ /**
11
+ * @name stakerPrefs
12
+ * @param { Uint8Array | string } accountId The stakers AccountId.
13
+ * @param { boolean } withActive Whether to include the active era.
14
+ * @description Retrieves the validator preferences for a given staker across historical eras.
15
+ * @example
16
+ * ```javascript
17
+ * const prefs = await api.derive.staking.stakerPrefs(
18
+ * ALICE, //Alice accountId
19
+ * false
20
+ * );
21
+ * console.log(
22
+ * 'Validator Preferences:',
23
+ * prefs.map(
24
+ * ({ era, validatorPrefs }) => `Era ${era}: Commission ${validatorPrefs.commission.toString()}`
25
+ * )
26
+ * );
27
+ * ```
28
+ */
29
+ export const stakerPrefs = /*#__PURE__*/ erasHistoricApplyAccount('_stakerPrefs');
@@ -0,0 +1,49 @@
1
+ import type { Observable } from 'rxjs';
2
+ import type { EraIndex } from '@pezkuwi/types/interfaces';
3
+ import type { DeriveApi, DeriveEraPoints, DeriveEraPrefs, DeriveEraRewards, DeriveStakerReward } from '../types.js';
4
+ type ErasResult = [DeriveEraPoints[], DeriveEraPrefs[], DeriveEraRewards[]];
5
+ export declare function _stakerRewardsEras(instanceId: string, api: DeriveApi): (eras: EraIndex[], withActive?: boolean) => Observable<ErasResult>;
6
+ export declare function _stakerRewards(instanceId: string, api: DeriveApi): (accountIds: (Uint8Array | string)[], eras: EraIndex[], withActive?: boolean) => Observable<DeriveStakerReward[][]>;
7
+ /**
8
+ * @name stakerRewards
9
+ * @description Staking rewards history for a given staker.
10
+ * @param { Uint8Array | string } accountId The stakers AccountId.
11
+ * @param { boolean } withActive Whether to include the active era.
12
+ * @example
13
+ * ```javascript
14
+ * const rewards = await api.derive.staking.stakerRewards(
15
+ * ALICE, //Alice accountId
16
+ * false
17
+ * );
18
+ * ```
19
+ */
20
+ export declare const stakerRewards: (instanceId: string, api: DeriveApi) => (accountId: string | Uint8Array, withActive?: boolean | undefined) => Observable<DeriveStakerReward[]>;
21
+ /**
22
+ * @name stakerRewardsMultiEras
23
+ * @description Staking rewards for multiple stakers over specific eras.
24
+ * @param { Uint8Array | string } accountIds List of stakers identified by their AccountId.
25
+ * @param { EraIndex[] } eras Eras for which to retrieve the data.
26
+ * @example
27
+ * ```javascript
28
+ * const rewards = await api.derive.staking.stakerRewardsMultiEras(
29
+ * [ALICE, BOB, CHARLIER], //accountIds
30
+ * [100,101] //eras
31
+ * );
32
+ * ```
33
+ */
34
+ export declare function stakerRewardsMultiEras(instanceId: string, api: DeriveApi): (accountIds: (Uint8Array | string)[], eras: EraIndex[]) => Observable<DeriveStakerReward[][]>;
35
+ /**
36
+ * @name stakerRewardsMulti
37
+ * @description Staking rewards for multiple stakers.
38
+ * @param { Uint8Array | string } accountIds List of stakers identified by their AccountId.
39
+ * @param { boolean } withActive Whether to include the active era.
40
+ * @example
41
+ * ```javascript
42
+ * const rewards = await api.derive.staking.stakerRewardsMulti(
43
+ * [ALICE, BOB, CHARLIER], //accountIds
44
+ * true
45
+ * );
46
+ * ```
47
+ */
48
+ export declare function stakerRewardsMulti(instanceId: string, api: DeriveApi): (accountIds: (Uint8Array | string)[], withActive?: boolean) => Observable<DeriveStakerReward[][]>;
49
+ export {};
@@ -0,0 +1,215 @@
1
+ import { combineLatest, map, of, switchMap } from 'rxjs';
2
+ import { BN_BILLION, BN_ZERO, objectSpread } from '@pezkuwi/util';
3
+ import { firstMemo, memo } from '../util/index.js';
4
+ function extractCompatRewards(claimedRewardsEras, ledger) {
5
+ const l = ledger
6
+ ? (ledger.legacyClaimedRewards ||
7
+ ledger.claimedRewards)?.toArray()
8
+ : [];
9
+ return (claimedRewardsEras.toArray() || []).concat(l);
10
+ }
11
+ function parseRewards(api, stashId, [erasPoints, erasPrefs, erasRewards], exposures, claimedRewardsEras) {
12
+ return exposures.map(({ era, isEmpty, isValidator, nominating, validators: eraValidators }) => {
13
+ const { eraPoints, validators: allValPoints } = erasPoints.find((p) => p.era.eq(era)) || { eraPoints: BN_ZERO, validators: {} };
14
+ const { eraReward } = erasRewards.find((r) => r.era.eq(era)) || { eraReward: api.registry.createType('Balance') };
15
+ const { validators: allValPrefs } = erasPrefs.find((p) => p.era.eq(era)) || { validators: {} };
16
+ const validators = {};
17
+ const stakerId = stashId.toString();
18
+ Object.entries(eraValidators).forEach(([validatorId, exposure]) => {
19
+ const valPoints = allValPoints[validatorId] || BN_ZERO;
20
+ const valComm = allValPrefs[validatorId]?.commission.unwrap() || BN_ZERO;
21
+ const expTotal = exposure.total
22
+ ? exposure.total?.unwrap()
23
+ : exposure.pageTotal
24
+ ? exposure.pageTotal?.unwrap()
25
+ : BN_ZERO;
26
+ let avail = BN_ZERO;
27
+ let value;
28
+ if (!(expTotal.isZero() || valPoints.isZero() || eraPoints.isZero())) {
29
+ avail = eraReward.mul(valPoints).div(eraPoints);
30
+ const valCut = valComm.mul(avail).div(BN_BILLION);
31
+ let staked;
32
+ if (validatorId === stakerId) {
33
+ if (exposure.own) {
34
+ staked = exposure.own.unwrap();
35
+ }
36
+ else {
37
+ const expAccount = exposure.others.find(({ who }) => who.eq(validatorId));
38
+ staked = expAccount
39
+ ? expAccount.value.unwrap()
40
+ : BN_ZERO;
41
+ }
42
+ }
43
+ else {
44
+ const stakerExp = exposure.others.find(({ who }) => who.eq(stakerId));
45
+ staked = stakerExp
46
+ ? stakerExp.value.unwrap()
47
+ : BN_ZERO;
48
+ }
49
+ value = avail.sub(valCut).imul(staked).div(expTotal).iadd(validatorId === stakerId ? valCut : BN_ZERO);
50
+ }
51
+ validators[validatorId] = {
52
+ total: api.registry.createType('Balance', avail),
53
+ value: api.registry.createType('Balance', value)
54
+ };
55
+ });
56
+ return {
57
+ era,
58
+ eraReward,
59
+ // This might not always be accurate as you need validator account information in order to see if the rewards have been claimed.
60
+ // This is possibly adjusted in `filterRewards` when need be.
61
+ isClaimed: claimedRewardsEras.some((c) => c.eq(era)),
62
+ isEmpty,
63
+ isValidator,
64
+ nominating,
65
+ validators
66
+ };
67
+ });
68
+ }
69
+ function allUniqValidators(rewards) {
70
+ return rewards.reduce(([all, perStash], rewards) => {
71
+ const uniq = [];
72
+ perStash.push(uniq);
73
+ rewards.forEach(({ validators }) => Object.keys(validators).forEach((validatorId) => {
74
+ if (!uniq.includes(validatorId)) {
75
+ uniq.push(validatorId);
76
+ if (!all.includes(validatorId)) {
77
+ all.push(validatorId);
78
+ }
79
+ }
80
+ }));
81
+ return [all, perStash];
82
+ }, [[], []]);
83
+ }
84
+ function removeClaimed(validators, queryValidators, reward, claimedRewardsEras) {
85
+ const rm = [];
86
+ Object.keys(reward.validators).forEach((validatorId) => {
87
+ const index = validators.indexOf(validatorId);
88
+ if (index !== -1) {
89
+ const valLedger = queryValidators[index].stakingLedger;
90
+ if (extractCompatRewards(claimedRewardsEras, valLedger).some((e) => reward.era?.eq(e))) {
91
+ rm.push(validatorId);
92
+ }
93
+ }
94
+ });
95
+ rm.forEach((validatorId) => {
96
+ delete reward.validators[validatorId];
97
+ });
98
+ }
99
+ function filterRewards(eras, valInfo, { claimedRewardsEras, rewards, stakingLedger }) {
100
+ const filter = eras.filter((e) => !extractCompatRewards(claimedRewardsEras, stakingLedger).some((s) => s?.eq(e)));
101
+ const validators = valInfo.map(([v]) => v);
102
+ const queryValidators = valInfo.map(([, q]) => q);
103
+ return rewards
104
+ .filter(({ isEmpty }) => !isEmpty)
105
+ .filter((reward) => {
106
+ if (!filter.some((e) => reward.era.eq(e))) {
107
+ return false;
108
+ }
109
+ removeClaimed(validators, queryValidators, reward, claimedRewardsEras);
110
+ return true;
111
+ })
112
+ .filter(({ validators }) => Object.keys(validators).length !== 0)
113
+ .map((reward) => {
114
+ let isClaimed = reward.isClaimed;
115
+ const valKeys = Object.keys(reward.validators);
116
+ if (!reward.isClaimed && valKeys.length) {
117
+ for (const key of valKeys) {
118
+ const info = queryValidators.find((i) => i.accountId.toString() === key);
119
+ if (info) {
120
+ isClaimed = info.claimedRewardsEras?.toArray().some((era) => era.eq(reward.era));
121
+ break;
122
+ }
123
+ }
124
+ }
125
+ return objectSpread({}, reward, {
126
+ isClaimed,
127
+ nominators: reward.nominating.filter((n) => reward.validators[n.validatorId])
128
+ });
129
+ });
130
+ }
131
+ export function _stakerRewardsEras(instanceId, api) {
132
+ return memo(instanceId, (eras, withActive = false) => combineLatest([
133
+ api.derive.staking._erasPoints(eras, withActive),
134
+ api.derive.staking._erasPrefs(eras, withActive),
135
+ api.derive.staking._erasRewards(eras, withActive)
136
+ ]));
137
+ }
138
+ export function _stakerRewards(instanceId, api) {
139
+ return memo(instanceId, (accountIds, eras, withActive = false) => {
140
+ // Ensures that when number or string types are passed in they are sanitized
141
+ // Ref: https://github.com/pezkuwichain/pezkuwi-api/issues/5910
142
+ const sanitizedEras = eras.map((e) => typeof e === 'number' || typeof e === 'string' ? api.registry.createType('u32', e) : e);
143
+ return combineLatest([
144
+ api.derive.staking.queryMulti(accountIds, { withClaimedRewardsEras: true, withLedger: true }),
145
+ api.derive.staking._stakerExposures(accountIds, sanitizedEras, withActive),
146
+ api.derive.staking._stakerRewardsEras(sanitizedEras, withActive)
147
+ ]).pipe(switchMap(([queries, exposures, erasResult]) => {
148
+ const allRewards = queries.map(({ claimedRewardsEras, stakingLedger, stashId }, index) => (!stashId || (!stakingLedger && !claimedRewardsEras))
149
+ ? []
150
+ : parseRewards(api, stashId, erasResult, exposures[index], claimedRewardsEras));
151
+ if (withActive) {
152
+ return of(allRewards);
153
+ }
154
+ const [allValidators, stashValidators] = allUniqValidators(allRewards);
155
+ return api.derive.staking.queryMulti(allValidators, { withClaimedRewardsEras: true, withLedger: true }).pipe(map((queriedVals) => queries.map(({ claimedRewardsEras, stakingLedger }, index) => filterRewards(eras, stashValidators[index]
156
+ .map((validatorId) => [
157
+ validatorId,
158
+ queriedVals.find((q) => q.accountId.eq(validatorId))
159
+ ])
160
+ .filter((v) => !!v[1]), {
161
+ claimedRewardsEras,
162
+ rewards: allRewards[index],
163
+ stakingLedger
164
+ }))));
165
+ }));
166
+ });
167
+ }
168
+ /**
169
+ * @name stakerRewards
170
+ * @description Staking rewards history for a given staker.
171
+ * @param { Uint8Array | string } accountId The stakers AccountId.
172
+ * @param { boolean } withActive Whether to include the active era.
173
+ * @example
174
+ * ```javascript
175
+ * const rewards = await api.derive.staking.stakerRewards(
176
+ * ALICE, //Alice accountId
177
+ * false
178
+ * );
179
+ * ```
180
+ */
181
+ export const stakerRewards = /*#__PURE__*/ firstMemo((api, accountId, withActive) => api.derive.staking.erasHistoric(withActive).pipe(switchMap((eras) => api.derive.staking._stakerRewards([accountId], eras, withActive))));
182
+ /**
183
+ * @name stakerRewardsMultiEras
184
+ * @description Staking rewards for multiple stakers over specific eras.
185
+ * @param { Uint8Array | string } accountIds List of stakers identified by their AccountId.
186
+ * @param { EraIndex[] } eras Eras for which to retrieve the data.
187
+ * @example
188
+ * ```javascript
189
+ * const rewards = await api.derive.staking.stakerRewardsMultiEras(
190
+ * [ALICE, BOB, CHARLIER], //accountIds
191
+ * [100,101] //eras
192
+ * );
193
+ * ```
194
+ */
195
+ export function stakerRewardsMultiEras(instanceId, api) {
196
+ return memo(instanceId, (accountIds, eras) => accountIds.length && eras.length
197
+ ? api.derive.staking._stakerRewards(accountIds, eras, false)
198
+ : of([]));
199
+ }
200
+ /**
201
+ * @name stakerRewardsMulti
202
+ * @description Staking rewards for multiple stakers.
203
+ * @param { Uint8Array | string } accountIds List of stakers identified by their AccountId.
204
+ * @param { boolean } withActive Whether to include the active era.
205
+ * @example
206
+ * ```javascript
207
+ * const rewards = await api.derive.staking.stakerRewardsMulti(
208
+ * [ALICE, BOB, CHARLIER], //accountIds
209
+ * true
210
+ * );
211
+ * ```
212
+ */
213
+ export function stakerRewardsMulti(instanceId, api) {
214
+ return memo(instanceId, (accountIds, withActive = false) => api.derive.staking.erasHistoric(withActive).pipe(switchMap((eras) => api.derive.staking.stakerRewardsMultiEras(accountIds, eras))));
215
+ }
@@ -0,0 +1,22 @@
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 _stakerSlashes(instanceId: string, api: DeriveApi): (accountId: Uint8Array | string, eras: EraIndex[], withActive: boolean) => Observable<DeriveStakerSlashes[]>;
5
+ /**
6
+ * @name stakerSlashes
7
+ * @param { Uint8Array | string } accountId The stakers AccountId.
8
+ * @param { boolean } withActive Whether to include the active era.
9
+ * @description Retrieve the historical slashes (penalties) for a given staker.
10
+ * @example
11
+ * ```javascript
12
+ * const stakerSlashes = await api.derive.staking.stakerSlashes(
13
+ * ALICE, //Alice accountId
14
+ * true
15
+ * );
16
+ * console.log(
17
+ * 'Staker Slashes:',
18
+ * stakerSlashes.map(({ era, total }) => `Era ${era}: Slashed ${total.toString()}`)
19
+ * );
20
+ * ```
21
+ */
22
+ export declare const stakerSlashes: (instanceId: string, api: DeriveApi) => (accountId: string | Uint8Array, withActive?: boolean) => Observable<DeriveStakerSlashes[]>;
@@ -0,0 +1,30 @@
1
+ import { map } from 'rxjs';
2
+ import { memo } from '../util/index.js';
3
+ import { erasHistoricApplyAccount } from './util.js';
4
+ export function _stakerSlashes(instanceId, api) {
5
+ return memo(instanceId, (accountId, eras, withActive) => {
6
+ const stakerId = api.registry.createType('AccountId', accountId).toString();
7
+ return api.derive.staking._erasSlashes(eras, withActive).pipe(map((slashes) => slashes.map(({ era, nominators, validators }) => ({
8
+ era,
9
+ total: nominators[stakerId] || validators[stakerId] || api.registry.createType('Balance')
10
+ }))));
11
+ });
12
+ }
13
+ /**
14
+ * @name stakerSlashes
15
+ * @param { Uint8Array | string } accountId The stakers AccountId.
16
+ * @param { boolean } withActive Whether to include the active era.
17
+ * @description Retrieve the historical slashes (penalties) for a given staker.
18
+ * @example
19
+ * ```javascript
20
+ * const stakerSlashes = await api.derive.staking.stakerSlashes(
21
+ * ALICE, //Alice accountId
22
+ * true
23
+ * );
24
+ * console.log(
25
+ * 'Staker Slashes:',
26
+ * stakerSlashes.map(({ era, total }) => `Era ${era}: Slashed ${total.toString()}`)
27
+ * );
28
+ * ```
29
+ */
30
+ export const stakerSlashes = /*#__PURE__*/ erasHistoricApplyAccount('_stakerSlashes');
@@ -0,0 +1,16 @@
1
+ import type { Observable } from 'rxjs';
2
+ import type { AccountId } from '@pezkuwi/types/interfaces';
3
+ import type { DeriveApi } from '../types.js';
4
+ /**
5
+ * @name stashes
6
+ * @description Retrieve the list of all validator stashes.
7
+ * @example
8
+ * ```javascript
9
+ * const stashes = await api.derive.staking.stashes();
10
+ * console.log(
11
+ * "Validator Stashes:",
12
+ * stashes.map((s) => s.toString())
13
+ * );
14
+ * ```
15
+ */
16
+ export declare function stashes(instanceId: string, api: DeriveApi): () => Observable<AccountId[]>;
@@ -0,0 +1,35 @@
1
+ import { map, startWith, switchMap } from 'rxjs';
2
+ import { drr, memo } from '../util/index.js';
3
+ function onBondedEvent(api) {
4
+ let current = Date.now();
5
+ return api.query.system.events().pipe(map((events) => {
6
+ current = events.filter(({ event, phase }) => {
7
+ try {
8
+ return phase.isApplyExtrinsic &&
9
+ event.section === 'staking' &&
10
+ event.method === 'Bonded';
11
+ }
12
+ catch {
13
+ return false;
14
+ }
15
+ })
16
+ ? Date.now()
17
+ : current;
18
+ return current;
19
+ }), startWith(current), drr({ skipTimeout: true }));
20
+ }
21
+ /**
22
+ * @name stashes
23
+ * @description Retrieve the list of all validator stashes.
24
+ * @example
25
+ * ```javascript
26
+ * const stashes = await api.derive.staking.stashes();
27
+ * console.log(
28
+ * "Validator Stashes:",
29
+ * stashes.map((s) => s.toString())
30
+ * );
31
+ * ```
32
+ */
33
+ export function stashes(instanceId, api) {
34
+ return memo(instanceId, () => onBondedEvent(api).pipe(switchMap(() => api.query.staking.validators.keys()), map((keys) => keys.map(({ args: [v] }) => v).filter((a) => a))));
35
+ }
@@ -0,0 +1,139 @@
1
+ import type { Option, u32, Vec } from '@pezkuwi/types';
2
+ import type { AccountId, Balance, EraIndex, RewardPoint } from '@pezkuwi/types/interfaces';
3
+ import type { PezpalletStakingRewardDestination, PezpalletStakingStakingLedger, PezpalletStakingValidatorPrefs, PezspStakingExposure, PezspStakingExposurePage, PezspStakingPagedExposureMetadata } from '@pezkuwi/types/lookup';
4
+ import type { BN } from '@pezkuwi/util';
5
+ import type { DeriveSessionIndexes } from '../session/types.js';
6
+ export type DeriveEraValPoints = Record<string, RewardPoint>;
7
+ export type DeriveEraValPrefs = Record<string, PezpalletStakingValidatorPrefs>;
8
+ export type DeriveEraValSlash = Record<string, Balance>;
9
+ export interface DeriveEraPoints {
10
+ era: EraIndex;
11
+ eraPoints: RewardPoint;
12
+ validators: DeriveEraValPoints;
13
+ }
14
+ export interface DeriveEraPrefs {
15
+ era: EraIndex;
16
+ validators: DeriveEraValPrefs;
17
+ }
18
+ export interface DeriveEraRewards {
19
+ era: EraIndex;
20
+ eraReward: Balance;
21
+ }
22
+ export interface DeriveEraSlashes {
23
+ era: EraIndex;
24
+ nominators: DeriveEraValSlash;
25
+ validators: DeriveEraValSlash;
26
+ }
27
+ export interface DeriveStakerPoints {
28
+ era: EraIndex;
29
+ eraPoints: RewardPoint;
30
+ points: RewardPoint;
31
+ }
32
+ export interface DeriveOwnExposure {
33
+ clipped: PezspStakingExposure;
34
+ exposurePaged: Option<PezspStakingExposurePage>;
35
+ era: EraIndex;
36
+ exposure: PezspStakingExposure;
37
+ exposureMeta: Option<PezspStakingPagedExposureMetadata>;
38
+ }
39
+ export interface DeriveEraExposureNominating {
40
+ validatorId: string;
41
+ validatorIndex: number;
42
+ }
43
+ export type DeriveEraNominatorExposure = Record<string, DeriveEraExposureNominating[]>;
44
+ export type DeriveEraValidatorExposure = Record<string, PezspStakingExposure>;
45
+ export type DeriveEraValidatorExposurePaged = Record<string, PezspStakingExposurePage | PezspStakingExposure>;
46
+ export interface DeriveEraExposure {
47
+ era: EraIndex;
48
+ nominators: DeriveEraNominatorExposure;
49
+ validators: DeriveEraValidatorExposure;
50
+ }
51
+ export interface DeriveEraExposurePaged {
52
+ era: EraIndex;
53
+ nominators: DeriveEraNominatorExposure;
54
+ validators: DeriveEraValidatorExposurePaged;
55
+ }
56
+ export interface DeriveStakerExposure {
57
+ era: EraIndex;
58
+ isEmpty: boolean;
59
+ isValidator: boolean;
60
+ nominating: DeriveEraExposureNominating[];
61
+ validators: DeriveEraValidatorExposurePaged;
62
+ }
63
+ export interface DeriveStakerPrefs {
64
+ era: EraIndex;
65
+ validatorPrefs: PezpalletStakingValidatorPrefs;
66
+ }
67
+ export interface DeriveStakerRewardValidator {
68
+ total: Balance;
69
+ value: Balance;
70
+ }
71
+ export interface DeriveStakerReward {
72
+ era: EraIndex;
73
+ eraReward: Balance;
74
+ isClaimed: boolean;
75
+ isEmpty: boolean;
76
+ isValidator: boolean;
77
+ nominating: DeriveEraExposureNominating[];
78
+ validators: Record<string, DeriveStakerRewardValidator>;
79
+ }
80
+ export interface DeriveStakerSlashes {
81
+ era: EraIndex;
82
+ total: Balance;
83
+ }
84
+ export type DeriveOwnSlashes = DeriveStakerSlashes;
85
+ export interface DeriveStakingKeys {
86
+ nextSessionIds: AccountId[];
87
+ sessionIds: AccountId[];
88
+ }
89
+ export interface DeriveStakingValidators {
90
+ nextElected: AccountId[];
91
+ validators: AccountId[];
92
+ }
93
+ export interface DeriveStakingStash {
94
+ controllerId: AccountId | null;
95
+ exposureEraStakers: PezspStakingExposure;
96
+ exposurePaged: Option<PezspStakingExposurePage>;
97
+ exposureMeta: Option<PezspStakingPagedExposureMetadata>;
98
+ nominators: AccountId[];
99
+ rewardDestination: PezpalletStakingRewardDestination | null;
100
+ stashId: AccountId;
101
+ validatorPrefs: PezpalletStakingValidatorPrefs;
102
+ claimedRewardsEras: Vec<u32>;
103
+ }
104
+ export interface DeriveStakingQuery extends DeriveStakingStash {
105
+ accountId: AccountId;
106
+ stakingLedger: PezpalletStakingStakingLedger;
107
+ }
108
+ export interface DeriveStakingElected {
109
+ info: DeriveStakingQuery[];
110
+ nextElected: AccountId[];
111
+ validators: AccountId[];
112
+ }
113
+ export interface DeriveStakingWaiting {
114
+ info: DeriveStakingQuery[];
115
+ waiting: AccountId[];
116
+ }
117
+ export interface DeriveUnlocking {
118
+ remainingEras: BN;
119
+ value: Balance;
120
+ }
121
+ export interface DeriveStakingAccount extends DeriveStakingQuery, DeriveStakingKeys {
122
+ redeemable?: Balance;
123
+ unlocking?: DeriveUnlocking[];
124
+ }
125
+ export interface DeriveStakingOverview extends DeriveSessionIndexes {
126
+ nextElected: AccountId[];
127
+ validators: AccountId[];
128
+ }
129
+ export interface StakingQueryFlags {
130
+ withController?: boolean;
131
+ withDestination?: boolean;
132
+ withExposure?: boolean;
133
+ withExposureErasStakersLegacy?: boolean;
134
+ withLedger?: boolean;
135
+ withNominations?: boolean;
136
+ withPrefs?: boolean;
137
+ withExposureMeta?: boolean;
138
+ withClaimedRewardsEras?: boolean;
139
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,14 @@
1
+ import type { Observable } from 'rxjs';
2
+ import type { ObsInnerType } from '@pezkuwi/api-base/types';
3
+ import type { EraIndex } from '@pezkuwi/types/interfaces';
4
+ import type { ExactDerive } from '../derive.js';
5
+ import type { DeriveApi } from '../types.js';
6
+ type ApplyReturn<T extends keyof ExactDerive['staking']> = ReturnType<ExactDerive['staking'][T]>;
7
+ export declare function filterEras<T extends {
8
+ era: EraIndex;
9
+ }>(eras: EraIndex[], list: T[]): EraIndex[];
10
+ export declare function erasHistoricApply<F extends '_erasExposure' | '_erasPoints' | '_erasPrefs' | '_erasRewards' | '_erasSlashes'>(fn: F): (instanceId: string, api: DeriveApi) => (withActive?: boolean) => ApplyReturn<F>;
11
+ export declare function erasHistoricApplyAccount<F extends '_ownExposures' | '_ownSlashes' | '_stakerPoints' | '_stakerPrefs' | '_stakerSlashes'>(fn: F): (instanceId: string, api: DeriveApi) => (accountId: string | Uint8Array, withActive?: boolean) => ApplyReturn<F>;
12
+ export declare function singleEra<F extends '_eraExposure' | '_eraPrefs' | '_eraSlashes'>(fn: F): (instanceId: string, api: DeriveApi) => (era: EraIndex) => ApplyReturn<F>;
13
+ export declare function combineEras<F extends '_eraExposure' | '_eraPrefs' | '_eraSlashes'>(fn: F): (instanceId: string, api: DeriveApi) => (eras: EraIndex[], withActive: boolean) => Observable<ObsInnerType<ApplyReturn<F>>[]>;
14
+ export {};
@@ -0,0 +1,46 @@
1
+ import { BehaviorSubject, combineLatest, map, of, switchMap, tap, toArray } from 'rxjs';
2
+ import { arrayChunk, arrayFlatten, nextTick } from '@pezkuwi/util';
3
+ import { memo } from '../util/index.js';
4
+ const ERA_CHUNK_SIZE = 14;
5
+ function chunkEras(eras, fn) {
6
+ const chunked = arrayChunk(eras, ERA_CHUNK_SIZE);
7
+ let index = 0;
8
+ const subject = new BehaviorSubject(chunked[index]);
9
+ return subject.pipe(switchMap(fn), tap(() => {
10
+ nextTick(() => {
11
+ index++;
12
+ index === chunked.length
13
+ ? subject.complete()
14
+ : subject.next(chunked[index]);
15
+ });
16
+ }), toArray(), map(arrayFlatten));
17
+ }
18
+ export function filterEras(eras, list) {
19
+ return eras.filter((e) => !list.some(({ era }) => e.eq(era)));
20
+ }
21
+ export function erasHistoricApply(fn) {
22
+ return (instanceId, api) =>
23
+ // Cannot quite get the typing right, but it is right in the code
24
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
25
+ memo(instanceId, (withActive = false) => api.derive.staking.erasHistoric(withActive).pipe(switchMap((e) => api.derive.staking[fn](e, withActive))));
26
+ }
27
+ export function erasHistoricApplyAccount(fn) {
28
+ return (instanceId, api) =>
29
+ // Cannot quite get the typing right, but it is right in the code
30
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
31
+ memo(instanceId, (accountId, withActive = false, page) => api.derive.staking.erasHistoric(withActive).pipe(switchMap((e) => api.derive.staking[fn](accountId, e, withActive, page || 0))));
32
+ }
33
+ export function singleEra(fn) {
34
+ return (instanceId, api) =>
35
+ // Cannot quite get the typing right, but it is right in the code
36
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
37
+ memo(instanceId, (era) => api.derive.staking[fn](era, true));
38
+ }
39
+ export function combineEras(fn) {
40
+ return (instanceId, api) =>
41
+ // Cannot quite get the typing right, but it is right in the code
42
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
43
+ memo(instanceId, (eras, withActive) => !eras.length
44
+ ? of([])
45
+ : chunkEras(eras, (eras) => combineLatest(eras.map((e) => api.derive.staking[fn](e, withActive)))));
46
+ }
@@ -0,0 +1,33 @@
1
+ import type { Observable } from 'rxjs';
2
+ import type { AccountId } from '@pezkuwi/types/interfaces';
3
+ import type { DeriveApi, DeriveStakingValidators } from '../types.js';
4
+ /**
5
+ * @name nextElected
6
+ * @description Retrieves the list of accounts that are set to be the next elected validators in the staking system. It provides a preview of who will be validators in the next staking era.
7
+ * @example
8
+ * ```javascript
9
+ * const nextElected = await api.derive.staking.nextElected();
10
+ * console.log(
11
+ * "Next Elected Validators:",
12
+ * nextElected.map((acc) => acc.toString())
13
+ * );
14
+ * ```
15
+ */
16
+ export declare function nextElected(instanceId: string, api: DeriveApi): () => Observable<AccountId[]>;
17
+ /**
18
+ * @name validators
19
+ * @description Retrieve latest list of validators.
20
+ * @example
21
+ * ```javascript
22
+ * const { validators, nextElected } = await api.derive.staking.validators();
23
+ * console.log(
24
+ * "Current Validators:",
25
+ * validators.map((v) => v.toString())
26
+ * );
27
+ * console.log(
28
+ * "Next Elected Validators:",
29
+ * nextElected.map((v) => v.toString())
30
+ * );
31
+ * ```
32
+ */
33
+ export declare function validators(instanceId: string, api: DeriveApi): () => Observable<DeriveStakingValidators>;