@substrate/api-sidecar 20.2.2 → 20.3.1

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 (260) hide show
  1. package/README.md +9 -0
  2. package/build/package.json +25 -13
  3. package/build/src/SidecarConfig.js +1 -0
  4. package/build/src/SidecarConfig.js.map +1 -1
  5. package/build/src/Specs.js +10 -0
  6. package/build/src/Specs.js.map +1 -1
  7. package/build/src/apiRegistry/index.d.ts +28 -0
  8. package/build/src/apiRegistry/index.js +133 -0
  9. package/build/src/apiRegistry/index.js.map +1 -0
  10. package/build/src/chains-config/assetHubWestendControllers.js +8 -1
  11. package/build/src/chains-config/assetHubWestendControllers.js.map +1 -1
  12. package/build/src/chains-config/index.d.ts +5 -5
  13. package/build/src/chains-config/index.js +18 -13
  14. package/build/src/chains-config/index.js.map +1 -1
  15. package/build/src/chains-config/polymeshControllers.js +10 -1
  16. package/build/src/chains-config/polymeshControllers.js.map +1 -1
  17. package/build/src/controllers/AbstractController.d.ts +6 -2
  18. package/build/src/controllers/AbstractController.js +16 -2
  19. package/build/src/controllers/AbstractController.js.map +1 -1
  20. package/build/src/controllers/AbstractControllers.spec.js +16 -5
  21. package/build/src/controllers/AbstractControllers.spec.js.map +1 -1
  22. package/build/src/controllers/accounts/AccountsAssetsController.d.ts +1 -2
  23. package/build/src/controllers/accounts/AccountsAssetsController.js.map +1 -1
  24. package/build/src/controllers/accounts/AccountsBalanceInfoController.d.ts +1 -2
  25. package/build/src/controllers/accounts/AccountsBalanceInfoController.js.map +1 -1
  26. package/build/src/controllers/accounts/AccountsCompareController.d.ts +1 -2
  27. package/build/src/controllers/accounts/AccountsCompareController.js.map +1 -1
  28. package/build/src/controllers/accounts/AccountsConvertController.d.ts +1 -2
  29. package/build/src/controllers/accounts/AccountsConvertController.js.map +1 -1
  30. package/build/src/controllers/accounts/AccountsPoolAssetsController.d.ts +1 -2
  31. package/build/src/controllers/accounts/AccountsPoolAssetsController.js.map +1 -1
  32. package/build/src/controllers/accounts/AccountsProxyInfoController.d.ts +1 -2
  33. package/build/src/controllers/accounts/AccountsProxyInfoController.js.map +1 -1
  34. package/build/src/controllers/accounts/AccountsStakingInfoController.d.ts +3 -2
  35. package/build/src/controllers/accounts/AccountsStakingInfoController.js +10 -2
  36. package/build/src/controllers/accounts/AccountsStakingInfoController.js.map +1 -1
  37. package/build/src/controllers/accounts/AccountsStakingPayoutsController.d.ts +4 -2
  38. package/build/src/controllers/accounts/AccountsStakingPayoutsController.js +55 -67
  39. package/build/src/controllers/accounts/AccountsStakingPayoutsController.js.map +1 -1
  40. package/build/src/controllers/accounts/AccountsValidateController.d.ts +1 -2
  41. package/build/src/controllers/accounts/AccountsValidateController.js.map +1 -1
  42. package/build/src/controllers/accounts/AccountsVestingInfoController.d.ts +1 -2
  43. package/build/src/controllers/accounts/AccountsVestingInfoController.js +6 -1
  44. package/build/src/controllers/accounts/AccountsVestingInfoController.js.map +1 -1
  45. package/build/src/controllers/blocks/BlocksController.d.ts +1 -2
  46. package/build/src/controllers/blocks/BlocksController.js.map +1 -1
  47. package/build/src/controllers/blocks/BlocksExtrinsicsController.d.ts +1 -2
  48. package/build/src/controllers/blocks/BlocksExtrinsicsController.js.map +1 -1
  49. package/build/src/controllers/blocks/BlocksRawExtrinsicsController.d.ts +1 -2
  50. package/build/src/controllers/blocks/BlocksRawExtrinsicsController.js.map +1 -1
  51. package/build/src/controllers/blocks/BlocksTraceController.d.ts +1 -2
  52. package/build/src/controllers/blocks/BlocksTraceController.js.map +1 -1
  53. package/build/src/controllers/contracts/ContractsInkController.d.ts +1 -2
  54. package/build/src/controllers/contracts/ContractsInkController.js +1 -2
  55. package/build/src/controllers/contracts/ContractsInkController.js.map +1 -1
  56. package/build/src/controllers/controllerInjection.spec.js +8 -6
  57. package/build/src/controllers/controllerInjection.spec.js.map +1 -1
  58. package/build/src/controllers/coretime/CoretimeChainController.d.ts +1 -2
  59. package/build/src/controllers/coretime/CoretimeChainController.js.map +1 -1
  60. package/build/src/controllers/coretime/CoretimeGenericController.d.ts +1 -2
  61. package/build/src/controllers/coretime/CoretimeGenericController.js.map +1 -1
  62. package/build/src/controllers/node/NodeNetworkController.d.ts +1 -2
  63. package/build/src/controllers/node/NodeNetworkController.js.map +1 -1
  64. package/build/src/controllers/node/NodeTransactionPoolController.d.ts +1 -2
  65. package/build/src/controllers/node/NodeTransactionPoolController.js.map +1 -1
  66. package/build/src/controllers/node/NodeVersionController.d.ts +1 -2
  67. package/build/src/controllers/node/NodeVersionController.js.map +1 -1
  68. package/build/src/controllers/pallets/PalletsAssetConversionController.d.ts +1 -2
  69. package/build/src/controllers/pallets/PalletsAssetConversionController.js.map +1 -1
  70. package/build/src/controllers/pallets/PalletsAssetsController.d.ts +1 -2
  71. package/build/src/controllers/pallets/PalletsAssetsController.js.map +1 -1
  72. package/build/src/controllers/pallets/PalletsConstsController.d.ts +1 -2
  73. package/build/src/controllers/pallets/PalletsConstsController.js.map +1 -1
  74. package/build/src/controllers/pallets/PalletsDispatchablesController.d.ts +1 -2
  75. package/build/src/controllers/pallets/PalletsDispatchablesController.js.map +1 -1
  76. package/build/src/controllers/pallets/PalletsErrorsController.d.ts +1 -2
  77. package/build/src/controllers/pallets/PalletsErrorsController.js.map +1 -1
  78. package/build/src/controllers/pallets/PalletsEventsController.d.ts +1 -2
  79. package/build/src/controllers/pallets/PalletsEventsController.js.map +1 -1
  80. package/build/src/controllers/pallets/PalletsForeignAssetsController.d.ts +1 -2
  81. package/build/src/controllers/pallets/PalletsForeignAssetsController.js.map +1 -1
  82. package/build/src/controllers/pallets/PalletsNominationPoolsController.d.ts +1 -2
  83. package/build/src/controllers/pallets/PalletsNominationPoolsController.js.map +1 -1
  84. package/build/src/controllers/pallets/PalletsOnGoingReferendaController.d.ts +1 -2
  85. package/build/src/controllers/pallets/PalletsOnGoingReferendaController.js.map +1 -1
  86. package/build/src/controllers/pallets/PalletsPoolAssetsController.d.ts +1 -2
  87. package/build/src/controllers/pallets/PalletsPoolAssetsController.js.map +1 -1
  88. package/build/src/controllers/pallets/PalletsStakingProgressController.d.ts +2 -3
  89. package/build/src/controllers/pallets/PalletsStakingProgressController.js +6 -1
  90. package/build/src/controllers/pallets/PalletsStakingProgressController.js.map +1 -1
  91. package/build/src/controllers/pallets/PalletsStakingValidatorsController.d.ts +1 -2
  92. package/build/src/controllers/pallets/PalletsStakingValidatorsController.js.map +1 -1
  93. package/build/src/controllers/pallets/PalletsStorageController.d.ts +1 -2
  94. package/build/src/controllers/pallets/PalletsStorageController.js.map +1 -1
  95. package/build/src/controllers/paras/ParasController.d.ts +1 -2
  96. package/build/src/controllers/paras/ParasController.js.map +1 -1
  97. package/build/src/controllers/runtime/RuntimeCodeController.d.ts +1 -2
  98. package/build/src/controllers/runtime/RuntimeCodeController.js.map +1 -1
  99. package/build/src/controllers/runtime/RuntimeMetadataController.d.ts +1 -2
  100. package/build/src/controllers/runtime/RuntimeMetadataController.js +2 -2
  101. package/build/src/controllers/runtime/RuntimeMetadataController.js.map +1 -1
  102. package/build/src/controllers/runtime/RuntimeSpecController.d.ts +1 -2
  103. package/build/src/controllers/runtime/RuntimeSpecController.js.map +1 -1
  104. package/build/src/controllers/transaction/TransactionDryRunController.d.ts +1 -2
  105. package/build/src/controllers/transaction/TransactionDryRunController.js +3 -3
  106. package/build/src/controllers/transaction/TransactionDryRunController.js.map +1 -1
  107. package/build/src/controllers/transaction/TransactionFeeEstimateController.d.ts +1 -2
  108. package/build/src/controllers/transaction/TransactionFeeEstimateController.js.map +1 -1
  109. package/build/src/controllers/transaction/TransactionMaterialController.d.ts +1 -2
  110. package/build/src/controllers/transaction/TransactionMaterialController.js.map +1 -1
  111. package/build/src/controllers/transaction/TransactionSubmitController.d.ts +1 -2
  112. package/build/src/controllers/transaction/TransactionSubmitController.js.map +1 -1
  113. package/build/src/main.js +62 -23
  114. package/build/src/main.js.map +1 -1
  115. package/build/src/services/AHM.spec.d.ts +0 -0
  116. package/build/src/services/AHM.spec.js +5 -0
  117. package/build/src/services/AHM.spec.js.map +1 -0
  118. package/build/src/services/AbstractPalletsService.d.ts +2 -2
  119. package/build/src/services/AbstractPalletsService.js.map +1 -1
  120. package/build/src/services/AbstractService.d.ts +6 -2
  121. package/build/src/services/AbstractService.js +16 -2
  122. package/build/src/services/AbstractService.js.map +1 -1
  123. package/build/src/services/AbstractService.spec.js +7 -1
  124. package/build/src/services/AbstractService.spec.js.map +1 -1
  125. package/build/src/services/accounts/AccountsAssetsService.spec.js +7 -1
  126. package/build/src/services/accounts/AccountsAssetsService.spec.js.map +1 -1
  127. package/build/src/services/accounts/AccountsBalanceInfoService.spec.js +19 -4
  128. package/build/src/services/accounts/AccountsBalanceInfoService.spec.js.map +1 -1
  129. package/build/src/services/accounts/AccountsCompareService.js +1 -1
  130. package/build/src/services/accounts/AccountsCompareService.js.map +1 -1
  131. package/build/src/services/accounts/AccountsCompareService.spec.js +7 -1
  132. package/build/src/services/accounts/AccountsCompareService.spec.js.map +1 -1
  133. package/build/src/services/accounts/AccountsConvertService.spec.js +5 -1
  134. package/build/src/services/accounts/AccountsConvertService.spec.js.map +1 -1
  135. package/build/src/services/accounts/AccountsPoolAssetsService.spec.js +5 -1
  136. package/build/src/services/accounts/AccountsPoolAssetsService.spec.js.map +1 -1
  137. package/build/src/services/accounts/AccountsProxyInfoService.spec.js +7 -1
  138. package/build/src/services/accounts/AccountsProxyInfoService.spec.js.map +1 -1
  139. package/build/src/services/accounts/AccountsStakingInfoService.d.ts +45 -2
  140. package/build/src/services/accounts/AccountsStakingInfoService.js +138 -3
  141. package/build/src/services/accounts/AccountsStakingInfoService.js.map +1 -1
  142. package/build/src/services/accounts/AccountsStakingInfoService.spec.js +339 -5
  143. package/build/src/services/accounts/AccountsStakingInfoService.spec.js.map +1 -1
  144. package/build/src/services/accounts/AccountsStakingPayoutsService.js +7 -4
  145. package/build/src/services/accounts/AccountsStakingPayoutsService.js.map +1 -1
  146. package/build/src/services/accounts/AccountsStakingPayoutsService.spec.js +339 -23
  147. package/build/src/services/accounts/AccountsStakingPayoutsService.spec.js.map +1 -1
  148. package/build/src/services/accounts/AccountsValidateService.spec.js +7 -1
  149. package/build/src/services/accounts/AccountsValidateService.spec.js.map +1 -1
  150. package/build/src/services/accounts/AccountsVestingInfoService.spec.js +7 -1
  151. package/build/src/services/accounts/AccountsVestingInfoService.spec.js.map +1 -1
  152. package/build/src/services/blocks/BlocksService.d.ts +1 -2
  153. package/build/src/services/blocks/BlocksService.js +1 -2
  154. package/build/src/services/blocks/BlocksService.js.map +1 -1
  155. package/build/src/services/blocks/BlocksService.spec.js +19 -6
  156. package/build/src/services/blocks/BlocksService.spec.js.map +1 -1
  157. package/build/src/services/blocks/BlocksTraceService.js +7 -5
  158. package/build/src/services/blocks/BlocksTraceService.js.map +1 -1
  159. package/build/src/services/blocks/BlocksTraceService.spec.js +3 -1
  160. package/build/src/services/blocks/BlocksTraceService.spec.js.map +1 -1
  161. package/build/src/services/contracts/ContractsInkService.spec.js +5 -1
  162. package/build/src/services/contracts/ContractsInkService.spec.js.map +1 -1
  163. package/build/src/services/coretime/CoretimeService.js.map +1 -1
  164. package/build/src/services/coretime/CoretimeService.spec.js +39 -2
  165. package/build/src/services/coretime/CoretimeService.spec.js.map +1 -1
  166. package/build/src/services/node/NodeNetworkService.js +6 -5
  167. package/build/src/services/node/NodeNetworkService.js.map +1 -1
  168. package/build/src/services/node/NodeNetworkService.spec.js +5 -1
  169. package/build/src/services/node/NodeNetworkService.spec.js.map +1 -1
  170. package/build/src/services/node/NodeTransactionPoolService.spec.js +5 -1
  171. package/build/src/services/node/NodeTransactionPoolService.spec.js.map +1 -1
  172. package/build/src/services/node/NodeVersionService.js +4 -3
  173. package/build/src/services/node/NodeVersionService.js.map +1 -1
  174. package/build/src/services/node/NodeVersionService.spec.js +3 -1
  175. package/build/src/services/node/NodeVersionService.spec.js.map +1 -1
  176. package/build/src/services/pallets/PalletsAssetConversionService.d.ts +1 -2
  177. package/build/src/services/pallets/PalletsAssetConversionService.js.map +1 -1
  178. package/build/src/services/pallets/PalletsAssetConversionService.spec.js +7 -1
  179. package/build/src/services/pallets/PalletsAssetConversionService.spec.js.map +1 -1
  180. package/build/src/services/pallets/PalletsAssetsService.d.ts +1 -2
  181. package/build/src/services/pallets/PalletsAssetsService.js.map +1 -1
  182. package/build/src/services/pallets/PalletsAssetsService.spec.js +5 -1
  183. package/build/src/services/pallets/PalletsAssetsService.spec.js.map +1 -1
  184. package/build/src/services/pallets/PalletsConstantsService.js +4 -2
  185. package/build/src/services/pallets/PalletsConstantsService.js.map +1 -1
  186. package/build/src/services/pallets/PalletsConstantsService.spec.js +5 -1
  187. package/build/src/services/pallets/PalletsConstantsService.spec.js.map +1 -1
  188. package/build/src/services/pallets/PalletsDispatchablesService.js +5 -3
  189. package/build/src/services/pallets/PalletsDispatchablesService.js.map +1 -1
  190. package/build/src/services/pallets/PalletsDispatchablesService.spec.js +5 -1
  191. package/build/src/services/pallets/PalletsDispatchablesService.spec.js.map +1 -1
  192. package/build/src/services/pallets/PalletsErrorsService.js +4 -2
  193. package/build/src/services/pallets/PalletsErrorsService.js.map +1 -1
  194. package/build/src/services/pallets/PalletsErrorsService.spec.js +5 -1
  195. package/build/src/services/pallets/PalletsErrorsService.spec.js.map +1 -1
  196. package/build/src/services/pallets/PalletsEventsService.js +4 -2
  197. package/build/src/services/pallets/PalletsEventsService.js.map +1 -1
  198. package/build/src/services/pallets/PalletsEventsService.spec.js +5 -1
  199. package/build/src/services/pallets/PalletsEventsService.spec.js.map +1 -1
  200. package/build/src/services/pallets/PalletsForeignAssetsService.d.ts +1 -2
  201. package/build/src/services/pallets/PalletsForeignAssetsService.js.map +1 -1
  202. package/build/src/services/pallets/PalletsForeignAssetsService.spec.js +5 -2
  203. package/build/src/services/pallets/PalletsForeignAssetsService.spec.js.map +1 -1
  204. package/build/src/services/pallets/PalletsNominationPoolsService.d.ts +1 -2
  205. package/build/src/services/pallets/PalletsNominationPoolsService.js.map +1 -1
  206. package/build/src/services/pallets/PalletsNominationPoolsService.spec.js +5 -1
  207. package/build/src/services/pallets/PalletsNominationPoolsService.spec.js.map +1 -1
  208. package/build/src/services/pallets/PalletsOnGoingReferendaService.spec.js +5 -2
  209. package/build/src/services/pallets/PalletsOnGoingReferendaService.spec.js.map +1 -1
  210. package/build/src/services/pallets/PalletsPoolAssetsService.d.ts +1 -2
  211. package/build/src/services/pallets/PalletsPoolAssetsService.js.map +1 -1
  212. package/build/src/services/pallets/PalletsPoolAssetsService.spec.js +5 -1
  213. package/build/src/services/pallets/PalletsPoolAssetsService.spec.js.map +1 -1
  214. package/build/src/services/pallets/PalletsStakingProgressService.js +51 -15
  215. package/build/src/services/pallets/PalletsStakingProgressService.js.map +1 -1
  216. package/build/src/services/pallets/PalletsStakingProgressService.spec.js +315 -10
  217. package/build/src/services/pallets/PalletsStakingProgressService.spec.js.map +1 -1
  218. package/build/src/services/pallets/PalletsStakingValidatorsService.d.ts +7 -0
  219. package/build/src/services/pallets/PalletsStakingValidatorsService.js +35 -6
  220. package/build/src/services/pallets/PalletsStakingValidatorsService.js.map +1 -1
  221. package/build/src/services/pallets/PalletsStakingValidatorsService.spec.js +96 -2
  222. package/build/src/services/pallets/PalletsStakingValidatorsService.spec.js.map +1 -1
  223. package/build/src/services/pallets/PalletsStorageService.js +4 -2
  224. package/build/src/services/pallets/PalletsStorageService.js.map +1 -1
  225. package/build/src/services/pallets/PalletsStorageService.spec.js +5 -1
  226. package/build/src/services/pallets/PalletsStorageService.spec.js.map +1 -1
  227. package/build/src/services/paras/ParasService.js +5 -5
  228. package/build/src/services/paras/ParasService.js.map +1 -1
  229. package/build/src/services/paras/ParasService.spec.js +7 -1
  230. package/build/src/services/paras/ParasService.spec.js.map +1 -1
  231. package/build/src/services/runtime/RuntimeCodeService.spec.js +5 -1
  232. package/build/src/services/runtime/RuntimeCodeService.spec.js.map +1 -1
  233. package/build/src/services/runtime/RuntimeMetadataService.js.map +1 -1
  234. package/build/src/services/runtime/RuntimeMetadataService.spec.js +5 -3
  235. package/build/src/services/runtime/RuntimeMetadataService.spec.js.map +1 -1
  236. package/build/src/services/runtime/RuntimeSpecService.js +5 -4
  237. package/build/src/services/runtime/RuntimeSpecService.js.map +1 -1
  238. package/build/src/services/runtime/RuntimeSpecService.spec.js +5 -1
  239. package/build/src/services/runtime/RuntimeSpecService.spec.js.map +1 -1
  240. package/build/src/services/transaction/TransactionDryRunService.d.ts +1 -1
  241. package/build/src/services/transaction/TransactionDryRunService.js +25 -2
  242. package/build/src/services/transaction/TransactionDryRunService.js.map +1 -1
  243. package/build/src/services/transaction/TransactionDryRunService.spec.js +59 -10
  244. package/build/src/services/transaction/TransactionDryRunService.spec.js.map +1 -1
  245. package/build/src/services/transaction/TransactionFeeEstimateService.spec.js +7 -2
  246. package/build/src/services/transaction/TransactionFeeEstimateService.spec.js.map +1 -1
  247. package/build/src/services/transaction/TransactionMaterialService.spec.js +9 -3
  248. package/build/src/services/transaction/TransactionMaterialService.spec.js.map +1 -1
  249. package/build/src/services/transaction/TransactionSubmitService.spec.js +7 -1
  250. package/build/src/services/transaction/TransactionSubmitService.spec.js.map +1 -1
  251. package/build/src/types/requests.d.ts +1 -0
  252. package/build/src/types/responses/PalletConstantsItem.d.ts +2 -2
  253. package/build/src/types/sidecar-config/CONFIG.d.ts +1 -0
  254. package/build/src/types/sidecar-config/CONFIG.js +1 -0
  255. package/build/src/types/sidecar-config/CONFIG.js.map +1 -1
  256. package/build/src/types/sidecar-config/SidecarConfig.d.ts +4 -0
  257. package/build/src/util/MultiKeyBiMap.d.ts +8 -0
  258. package/build/src/util/MultiKeyBiMap.js +42 -0
  259. package/build/src/util/MultiKeyBiMap.js.map +1 -0
  260. package/package.json +25 -13
@@ -21,6 +21,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
21
21
  exports.PalletsStakingProgressService = void 0;
22
22
  const bn_js_1 = __importDefault(require("bn.js"));
23
23
  const http_errors_1 = require("http-errors");
24
+ const apiRegistry_1 = require("../../../src/apiRegistry");
24
25
  const AbstractService_1 = require("../AbstractService");
25
26
  class PalletsStakingProgressService extends AbstractService_1.AbstractService {
26
27
  /**
@@ -31,11 +32,33 @@ class PalletsStakingProgressService extends AbstractService_1.AbstractService {
31
32
  async derivePalletStakingProgress(hash) {
32
33
  var _a;
33
34
  const { api } = this;
35
+ const blockHead = await api.rpc.chain.getFinalizedHead();
36
+ const isHead = blockHead.hash.toHex() === hash.hash.toHex();
37
+ // if at head and connected to RC, connect to AH, else continue
38
+ // specName will be the one of the main connection, compare to get the right API to use
39
+ // session is always on relay chain
40
+ // staking is on AH
41
+ if (this.assetHubInfo.isAssetHub && !isHead) {
42
+ throw new Error('At is currently unsupported for pallet staking validators connected to assethub');
43
+ }
44
+ const RCApiPromise = this.assetHubInfo.isAssetHub ? apiRegistry_1.ApiPromiseRegistry.getApiByType('relay') : null;
45
+ if (this.assetHubInfo.isAssetHub && !(RCApiPromise === null || RCApiPromise === void 0 ? void 0 : RCApiPromise.length)) {
46
+ throw new Error('Relay chain API not found');
47
+ }
34
48
  const historicApi = await api.at(hash);
49
+ if (historicApi.query.staking === undefined) {
50
+ throw new Error('Staking pallet not found for queried runtime');
51
+ }
52
+ const sessionValidators = this.assetHubInfo.isAssetHub
53
+ ? RCApiPromise[0].api.query.session.validators
54
+ : historicApi.query.session.validators;
55
+ if (!sessionValidators) {
56
+ throw new Error('Session pallet not found for queried runtime');
57
+ }
35
58
  const [validatorCount, forceEra, validators, { number }] = await Promise.all([
36
59
  historicApi.query.staking.validatorCount(),
37
60
  historicApi.query.staking.forceEra(),
38
- historicApi.query.session.validators(),
61
+ sessionValidators(),
39
62
  api.rpc.chain.getHeader(hash),
40
63
  ]);
41
64
  let eraElectionPromise;
@@ -48,7 +71,7 @@ class PalletsStakingProgressService extends AbstractService_1.AbstractService {
48
71
  if (historicApi.query.staking.eraElectionStatus) {
49
72
  eraElectionPromise = await historicApi.query.staking.eraElectionStatus();
50
73
  }
51
- const [eraElectionStatus, { eraLength, eraProgress, sessionLength, sessionProgress, activeEra }] = await Promise.all([eraElectionPromise, this.deriveSessionAndEraProgress(historicApi)]);
74
+ const [eraElectionStatus, { eraLength, eraProgress, sessionLength, sessionProgress, activeEra }] = await Promise.all([eraElectionPromise, this.deriveSessionAndEraProgress(historicApi, RCApiPromise === null || RCApiPromise === void 0 ? void 0 : RCApiPromise[0].api)]);
52
75
  const unappliedSlashesAtActiveEra = await historicApi.query.staking.unappliedSlashes.entries();
53
76
  const currentBlockNumber = number.toBn();
54
77
  const nextSession = sessionLength.sub(sessionProgress).add(currentBlockNumber);
@@ -74,7 +97,7 @@ class PalletsStakingProgressService extends AbstractService_1.AbstractService {
74
97
  const nextActiveEra = forceEra.isForceAlways
75
98
  ? nextSession // there is a new era every session
76
99
  : eraLength.sub(eraProgress).add(currentBlockNumber); // the nextActiveEra is at the end of this era
77
- const electionLookAhead = await this.deriveElectionLookAhead(api, historicApi, hash);
100
+ const electionLookAhead = await this.deriveElectionLookAhead(historicApi, RCApiPromise === null || RCApiPromise === void 0 ? void 0 : RCApiPromise[0].api);
78
101
  const nextCurrentEra = nextActiveEra.sub(currentBlockNumber).sub(sessionLength).gt(new bn_js_1.default(0))
79
102
  ? nextActiveEra.sub(sessionLength) // current era simply one session before active era
80
103
  : nextActiveEra.add(eraLength).sub(sessionLength); // we are in the last session of an active era
@@ -110,12 +133,17 @@ class PalletsStakingProgressService extends AbstractService_1.AbstractService {
110
133
  * @param api ApiPromise with ensured metadata
111
134
  * @param hash `BlockHash` to make call at
112
135
  */
113
- async deriveSessionAndEraProgress(historicApi) {
136
+ async deriveSessionAndEraProgress(historicApi, RCApi) {
137
+ const babe = RCApi ? RCApi.query.babe : historicApi.query.babe;
138
+ let session = historicApi.query.session;
139
+ if (RCApi) {
140
+ session = RCApi.query.session;
141
+ }
114
142
  const [currentSlot, epochIndex, genesisSlot, currentIndex, activeEraOption] = await Promise.all([
115
- historicApi.query.babe.currentSlot(),
116
- historicApi.query.babe.epochIndex(),
117
- historicApi.query.babe.genesisSlot(),
118
- historicApi.query.session.currentIndex(),
143
+ babe.currentSlot(),
144
+ babe.epochIndex(),
145
+ babe.genesisSlot(),
146
+ session.currentIndex(),
119
147
  historicApi.query.staking.activeEra(),
120
148
  ]);
121
149
  if (activeEraOption.isNone) {
@@ -123,12 +151,17 @@ class PalletsStakingProgressService extends AbstractService_1.AbstractService {
123
151
  throw new http_errors_1.InternalServerError('ActiveEra is None when Some was expected.');
124
152
  }
125
153
  const { index: activeEra } = activeEraOption.unwrap();
126
- const activeEraStartSessionIndexOption = await historicApi.query.staking.erasStartSessionIndex(activeEra);
127
- if (activeEraStartSessionIndexOption.isNone) {
154
+ const activeEraStartSessionIndexVec = await historicApi.query.staking.bondedEras();
155
+ let activeEraStartSessionIndex;
156
+ for (const [era, idx] of activeEraStartSessionIndexVec) {
157
+ if (era && era.eq(activeEra) && idx) {
158
+ activeEraStartSessionIndex = idx;
159
+ }
160
+ }
161
+ if (!activeEraStartSessionIndex) {
128
162
  throw new http_errors_1.InternalServerError('EraStartSessionIndex is None when Some was expected.');
129
163
  }
130
- const activeEraStartSessionIndex = activeEraStartSessionIndexOption.unwrap();
131
- const { epochDuration: sessionLength } = historicApi.consts.babe;
164
+ const { epochDuration: sessionLength } = RCApi ? RCApi.consts.babe : historicApi.consts.babe;
132
165
  const eraLength = historicApi.consts.staking.sessionsPerEra.mul(sessionLength);
133
166
  const epochStartSlot = epochIndex.mul(sessionLength).add(genesisSlot);
134
167
  const sessionProgress = currentSlot.sub(epochStartSlot);
@@ -151,12 +184,15 @@ class PalletsStakingProgressService extends AbstractService_1.AbstractService {
151
184
  * @param api ApiPromise with ensured metadata
152
185
  * @param hash `BlockHash` to make call at
153
186
  */
154
- async deriveElectionLookAhead(api, historicApi, hash) {
187
+ async deriveElectionLookAhead(historicApi, RCApi) {
155
188
  if (historicApi.consts.staking.electionLookahead) {
156
189
  return historicApi.consts.staking.electionLookahead;
157
190
  }
158
- const { specName } = await api.rpc.state.getRuntimeVersion(hash);
159
- const { epochDuration } = historicApi.consts.babe;
191
+ let specName = this.specName;
192
+ if (RCApi) {
193
+ specName = await RCApi.rpc.state.getRuntimeVersion().then(({ specName }) => specName.toString());
194
+ }
195
+ const { epochDuration } = RCApi ? RCApi.consts.babe : historicApi.consts.babe;
160
196
  // TODO - create a configurable epochDivisor env for a more generic solution
161
197
  const epochDurationDivisor = specName.toString() === 'polkadot'
162
198
  ? new bn_js_1.default(16) // polkadot electionLookAhead = epochDuration / 16
@@ -1 +1 @@
1
- {"version":3,"file":"PalletsStakingProgressService.js","sourceRoot":"","sources":["../../../../src/services/pallets/PalletsStakingProgressService.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,8CAA8C;AAC9C,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,kEAAkE;AAClE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,wEAAwE;;;;;;AAMxE,kDAAuB;AACvB,6CAAkD;AAGlD,wDAAqD;AAErD,MAAa,6BAA8B,SAAQ,iCAAe;IACjE;;;;OAIG;IACH,KAAK,CAAC,2BAA2B,CAAC,IAAe;;QAChD,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrB,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAEvC,MAAM,CAAC,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC5E,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE;YAC1C,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE;YACpC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE;YACtC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;SAC7B,CAAC,CAAC;QAEH,IAAI,kBAAkB,CAAC;QACvB;;;;;WAKG;QACH,IAAI,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;YACjD,kBAAkB,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC1E,CAAC;QACD,MAAM,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,GAC/F,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,kBAAkB,EAAE,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAExF,MAAM,2BAA2B,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAE/F,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAEzC,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAE/E,MAAM,YAAY,GAAG;YACpB,EAAE,EAAE;gBACH,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;gBACnB,MAAM,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;aACvC;YACD,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE;YAC3B,mBAAmB,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7C,gBAAgB,EAAE,2BAA2B,CAAC,QAAQ,EAAE;gBACvD,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClE,CAAC,CAAE,EAAgB;SACpB,CAAC;QAEF,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC1B,gEAAgE;YAChE,oEAAoE;YACpE,0EAA0E;YAC1E,0EAA0E;YAC1E,OAAO,YAAY,CAAC;QACrB,CAAC;QAED,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa;YAC3C,CAAC,CAAC,WAAW,CAAC,mCAAmC;YACjD,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,8CAA8C;QAErG,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QAErF,MAAM,cAAc,GAAG,aAAa,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,IAAI,eAAE,CAAC,CAAC,CAAC,CAAC;YAC5F,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,mDAAmD;YACtF,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,8CAA8C;QAElG,IAAI,MAAM,CAAC;QACX,IAAI,iBAAiB,CAAC,EAAE,CAAC,IAAI,eAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,iCAAiC;YACjC,MAAM,GAAG,IAAI,CAAC;QACf,CAAC;aAAM,IAAK,iBAA2C,aAA3C,iBAAiB,uBAAjB,iBAAiB,CAA4B,OAAO,EAAE,CAAC;YAClE,iCAAiC;YACjC,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACP,uDAAuD;YACvD,MAAM,GAAG,cAAc,CAAC;QACzB,CAAC;QAED,OAAO;YACN,GAAG,YAAY;YACf,qBAAqB,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjD,cAAc,EAAE,iBAAiB;gBAChC,CAAC,CAAC;oBACA,MAAM,EAAE,iBAAiB,CAAC,MAAM,EAAE;oBAClC,cAAc,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,CAAC,EAAE,CAAC,mCAAI,IAAI;iBAC5C;gBACF,CAAC,CAAC,sBAAsB;YACzB,mBAAmB,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChD,YAAY,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;SACjE,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,2BAA2B,CAAC,WAAqC;QAO9E,MAAM,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC/F,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE;YACpC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE;YACnC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE;YACpC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE;YACxC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE;SACrC,CAAC,CAAC;QAEH,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;YAC5B,oCAAoC;YACpC,MAAM,IAAI,iCAAmB,CAAC,2CAA2C,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC;QAEtD,MAAM,gCAAgC,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAC1G,IAAI,gCAAgC,CAAC,MAAM,EAAE,CAAC;YAC7C,MAAM,IAAI,iCAAmB,CAAC,sDAAsD,CAAC,CAAC;QACvF,CAAC;QACD,MAAM,0BAA0B,GAAG,gCAAgC,CAAC,MAAM,EAAE,CAAC;QAE7E,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;QACjE,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC/E,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtE,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAEzG,OAAO;YACN,SAAS;YACT,WAAW;YACX,aAAa;YACb,eAAe;YACf,SAAS;SACT,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACK,KAAK,CAAC,uBAAuB,CACpC,GAAe,EACf,WAAqC,EACrC,IAAe;QAEf,IAAI,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAClD,OAAO,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAkC,CAAC;QACtE,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,EAAE,aAAa,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;QAElD,4EAA4E;QAC5E,MAAM,oBAAoB,GACzB,QAAQ,CAAC,QAAQ,EAAE,KAAK,UAAU;YACjC,CAAC,CAAC,IAAI,eAAE,CAAC,EAAE,CAAC,CAAC,kDAAkD;YAC/D,CAAC,CAAC,IAAI,eAAE,CAAC,CAAC,CAAC,CAAC,CAAC,8EAA8E;QAE7F,OAAO,aAAa,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAChD,CAAC;CACD;AA3KD,sEA2KC"}
1
+ {"version":3,"file":"PalletsStakingProgressService.js","sourceRoot":"","sources":["../../../../src/services/pallets/PalletsStakingProgressService.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,8CAA8C;AAC9C,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,kEAAkE;AAClE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,wEAAwE;;;;;;AAOxE,kDAAuB;AACvB,6CAAkD;AAGlD,0DAA8D;AAC9D,wDAAqD;AAErD,MAAa,6BAA8B,SAAQ,iCAAe;IACjE;;;;OAIG;IACH,KAAK,CAAC,2BAA2B,CAAC,IAAe;;QAChD,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrB,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5D,+DAA+D;QAC/D,uFAAuF;QACvF,mCAAmC;QACnC,mBAAmB;QAEnB,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC;QACpG,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,gCAAkB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEpG,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,IAAI,CAAC,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,CAAA,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAEvC,IAAI,WAAW,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU;YACrD,CAAC,CAAC,YAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU;YAC/C,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;QAExC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,CAAC,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC5E,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE;YAC1C,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE;YACpC,iBAAiB,EAAE;YACnB,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;SAC7B,CAAC,CAAC;QAEH,IAAI,kBAAkB,CAAC;QACvB;;;;;WAKG;QACH,IAAI,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;YACjD,kBAAkB,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC1E,CAAC;QAED,MAAM,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,GAC/F,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,kBAAkB,EAAE,IAAI,CAAC,2BAA2B,CAAC,WAAW,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAE/G,MAAM,2BAA2B,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAE/F,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAEzC,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAE/E,MAAM,YAAY,GAAG;YACpB,EAAE,EAAE;gBACH,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;gBACnB,MAAM,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;aACvC;YACD,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE;YAC3B,mBAAmB,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7C,gBAAgB,EAAE,2BAA2B,CAAC,QAAQ,EAAE;gBACvD,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClE,CAAC,CAAE,EAAgB;SACpB,CAAC;QAEF,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC1B,gEAAgE;YAChE,oEAAoE;YACpE,0EAA0E;YAC1E,0EAA0E;YAC1E,OAAO,YAAY,CAAC;QACrB,CAAC;QAED,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa;YAC3C,CAAC,CAAC,WAAW,CAAC,mCAAmC;YACjD,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,8CAA8C;QAErG,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QAEjG,MAAM,cAAc,GAAG,aAAa,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,IAAI,eAAE,CAAC,CAAC,CAAC,CAAC;YAC5F,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,mDAAmD;YACtF,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,8CAA8C;QAElG,IAAI,MAAM,CAAC;QACX,IAAI,iBAAiB,CAAC,EAAE,CAAC,IAAI,eAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,iCAAiC;YACjC,MAAM,GAAG,IAAI,CAAC;QACf,CAAC;aAAM,IAAK,iBAA2C,aAA3C,iBAAiB,uBAAjB,iBAAiB,CAA4B,OAAO,EAAE,CAAC;YAClE,iCAAiC;YACjC,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACP,uDAAuD;YACvD,MAAM,GAAG,cAAc,CAAC;QACzB,CAAC;QAED,OAAO;YACN,GAAG,YAAY;YACf,qBAAqB,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjD,cAAc,EAAE,iBAAiB;gBAChC,CAAC,CAAC;oBACA,MAAM,EAAE,iBAAiB,CAAC,MAAM,EAAE;oBAClC,cAAc,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,CAAC,EAAE,CAAC,mCAAI,IAAI;iBAC5C;gBACF,CAAC,CAAC,sBAAsB;YACzB,mBAAmB,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChD,YAAY,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;SACjE,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,2BAA2B,CACxC,WAAqC,EACrC,KAAgC;QAQhC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC;QAC/D,IAAI,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC;QACxC,IAAI,KAAK,EAAE,CAAC;YACX,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;QAC/B,CAAC;QAED,MAAM,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC/F,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,WAAW,EAAE;YAClB,OAAO,CAAC,YAAY,EAAE;YACtB,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE;SACrC,CAAC,CAAC;QAEH,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;YAC5B,oCAAoC;YACpC,MAAM,IAAI,iCAAmB,CAAC,2CAA2C,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC;QAEtD,MAAM,6BAA6B,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAA2B,CAAC;QAE5G,IAAI,0BAA0B,CAAC;QAC/B,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,6BAA6B,EAAE,CAAC;YACxD,IAAI,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,EAAE,CAAC;gBACrC,0BAA0B,GAAG,GAAG,CAAC;YAClC,CAAC;QACF,CAAC;QAED,IAAI,CAAC,0BAA0B,EAAE,CAAC;YACjC,MAAM,IAAI,iCAAmB,CAAC,sDAAsD,CAAC,CAAC;QACvF,CAAC;QAED,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;QAC7F,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC/E,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtE,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAEzG,OAAO;YACN,SAAS;YACT,WAAW;YACX,aAAa;YACb,eAAe;YACf,SAAS;SACT,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACK,KAAK,CAAC,uBAAuB,CAAC,WAAqC,EAAE,KAAkB;QAC9F,IAAI,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAClD,OAAO,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAkC,CAAC;QACtE,CAAC;QACD,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE7B,IAAI,KAAK,EAAE,CAAC;YACX,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClG,CAAC;QAED,MAAM,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;QAE9E,4EAA4E;QAC5E,MAAM,oBAAoB,GACzB,QAAQ,CAAC,QAAQ,EAAE,KAAK,UAAU;YACjC,CAAC,CAAC,IAAI,eAAE,CAAC,EAAE,CAAC,CAAC,kDAAkD;YAC/D,CAAC,CAAC,IAAI,eAAE,CAAC,CAAC,CAAC,CAAC,CAAC,8EAA8E;QAE7F,OAAO,aAAa,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAChD,CAAC;CACD;AAtND,sEAsNC"}
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ /* eslint-disable @typescript-eslint/require-await */
2
3
  // Copyright 2017-2025 Parity Technologies (UK) Ltd.
3
4
  // This file is part of Substrate API Sidecar.
4
5
  //
@@ -19,6 +20,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
19
20
  };
20
21
  Object.defineProperty(exports, "__esModule", { value: true });
21
22
  const http_errors_1 = require("http-errors");
23
+ const apiRegistry_1 = require("../../apiRegistry");
22
24
  const sanitizeNumbers_1 = require("../../sanitize/sanitizeNumbers");
23
25
  const registries_1 = require("../../test-helpers/registries");
24
26
  const mock_1 = require("../test-helpers/mock");
@@ -38,6 +40,7 @@ const unappliedSlashesEntries = () => {
38
40
  };
39
41
  const validatorCountAt = () => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('u32', 197));
40
42
  const mockHistoricApi = {
43
+ ...mock_1.defaultMockApi,
41
44
  consts: {
42
45
  babe: {
43
46
  epochDuration: registries_1.polkadotRegistry.createType('u64', 2400),
@@ -62,6 +65,18 @@ const mockHistoricApi = {
62
65
  eraElectionStatus: eraElectionStatusAt,
63
66
  erasStartSessionIndex: mock_1.erasStartSessionIndexAt,
64
67
  forceEra: forceEraAt,
68
+ bondedEras: () => Promise.resolve([
69
+ [40, 276],
70
+ [41, 282],
71
+ [42, 288],
72
+ [43, 294],
73
+ [44, 300],
74
+ [45, 306],
75
+ [46, 312],
76
+ [47, 318],
77
+ [48, 324],
78
+ [49, 330],
79
+ ].map((el) => [registries_1.polkadotRegistry.createType('u32', el[0]), registries_1.polkadotRegistry.createType('u32', el[1])])),
65
80
  unappliedSlashes: {
66
81
  entries: unappliedSlashesEntries,
67
82
  },
@@ -73,10 +88,6 @@ const mockApi = {
73
88
  ...mock_1.defaultMockApi,
74
89
  at: (_hash) => mockHistoricApi,
75
90
  };
76
- /**
77
- * Mock PalletStakingProgressService instance.
78
- */
79
- const palletStakingProgressService = new PalletsStakingProgressService_1.PalletsStakingProgressService(mockApi);
80
91
  const unappliedSlashes = [
81
92
  {
82
93
  validator: '5CD2Q2EnKaKvjWza3ufMxaXizBTTDgm9kPB3DCZ4VA9j7Ud6',
@@ -99,6 +110,7 @@ const unappliedSlashesEntriesUnappliedSlashes = () => {
99
110
  return Promise.resolve([['5640', unappliedSlashes]]);
100
111
  };
101
112
  const mockHistoricApiUnappliedSlashes = {
113
+ ...mock_1.defaultMockApi,
102
114
  consts: {
103
115
  babe: {
104
116
  epochDuration: registries_1.polkadotRegistry.createType('u64', 2400),
@@ -123,6 +135,18 @@ const mockHistoricApiUnappliedSlashes = {
123
135
  eraElectionStatus: eraElectionStatusAt,
124
136
  erasStartSessionIndex: mock_1.erasStartSessionIndexAt,
125
137
  forceEra: forceEraAt,
138
+ bondedEras: () => Promise.resolve([
139
+ [40, 276],
140
+ [41, 282],
141
+ [42, 288],
142
+ [43, 294],
143
+ [44, 300],
144
+ [45, 306],
145
+ [46, 312],
146
+ [47, 318],
147
+ [48, 324],
148
+ [49, 330],
149
+ ].map((el) => [registries_1.polkadotRegistry.createType('u32', el[0]), registries_1.polkadotRegistry.createType('u32', el[1])])),
126
150
  unappliedSlashes: {
127
151
  entries: unappliedSlashesEntriesUnappliedSlashes,
128
152
  },
@@ -131,31 +155,312 @@ const mockHistoricApiUnappliedSlashes = {
131
155
  },
132
156
  };
133
157
  const mockApiUnappliedSlashes = {
158
+ ...{
159
+ ...mockHistoricApiUnappliedSlashes,
160
+ query: {
161
+ ...mockHistoricApiUnappliedSlashes.query,
162
+ staking: {
163
+ ...mockHistoricApiUnappliedSlashes.query.staking,
164
+ unappliedSlashes: {
165
+ entries: unappliedSlashesEntriesUnappliedSlashes,
166
+ },
167
+ },
168
+ },
169
+ },
170
+ at: (_hash) => ({
171
+ ...mockHistoricApiUnappliedSlashes,
172
+ query: {
173
+ ...mockHistoricApiUnappliedSlashes.query,
174
+ staking: {
175
+ ...mockHistoricApiUnappliedSlashes.query.staking,
176
+ unappliedSlashes: {
177
+ entries: unappliedSlashesEntriesUnappliedSlashes,
178
+ },
179
+ },
180
+ },
181
+ }),
182
+ };
183
+ const mockRCNextApi = {
184
+ ...mock_1.defaultMockApi,
185
+ consts: {
186
+ ...mock_1.defaultMockApi.consts,
187
+ babe: {
188
+ epochDuration: registries_1.polkadotRegistry.createType('u64', 2400),
189
+ },
190
+ },
191
+ query: {
192
+ ...mock_1.defaultMockApi.query,
193
+ babe: {
194
+ currentSlot: currentSlotAt,
195
+ epochIndex: epochIndexAt,
196
+ genesisSlot: genesisSlotAt,
197
+ },
198
+ staking: undefined,
199
+ session: {
200
+ currentIndex: currentIndexAt,
201
+ validators: validatorsAt,
202
+ },
203
+ },
204
+ at: (_hash) => ({
205
+ ...mockHistoricApi,
206
+ consts: {
207
+ ...mockHistoricApi.consts,
208
+ babe: {
209
+ epochDuration: registries_1.polkadotRegistry.createType('u64', 2400),
210
+ },
211
+ },
212
+ query: {
213
+ ...mockHistoricApi.query,
214
+ babe: {
215
+ currentSlot: currentSlotAt,
216
+ epochIndex: epochIndexAt,
217
+ genesisSlot: genesisSlotAt,
218
+ },
219
+ staking: undefined,
220
+ session: {
221
+ currentIndex: currentIndexAt,
222
+ validators: validatorsAt,
223
+ },
224
+ },
225
+ }),
226
+ };
227
+ const mockAHHistoricApi = {
228
+ ...mockHistoricApi,
229
+ consts: {
230
+ ...mockHistoricApi.consts,
231
+ babe: null,
232
+ staking: {
233
+ electionLookAhead: registries_1.polkadotRegistry.createType('BlockNumber'),
234
+ sessionsPerEra: registries_1.polkadotRegistry.createType('SessionIndex', 6),
235
+ },
236
+ },
237
+ query: {
238
+ ...mockHistoricApi.query,
239
+ session: null,
240
+ staking: {
241
+ activeEra: mock_1.activeEraAt,
242
+ eraElectionStatus: eraElectionStatusAt,
243
+ erasStartSessionIndex: mock_1.erasStartSessionIndexAt,
244
+ forceEra: forceEraAt,
245
+ bondedEras: () => Promise.resolve([
246
+ [40, 276],
247
+ [41, 282],
248
+ [42, 288],
249
+ [43, 294],
250
+ [44, 300],
251
+ [45, 306],
252
+ [46, 312],
253
+ [47, 318],
254
+ [48, 324],
255
+ [49, 330],
256
+ ].map((el) => [registries_1.polkadotRegistry.createType('u32', el[0]), registries_1.polkadotRegistry.createType('u32', el[1])])),
257
+ unappliedSlashes: {
258
+ entries: unappliedSlashesEntries,
259
+ },
260
+ validatorCount: validatorCountAt,
261
+ },
262
+ },
263
+ };
264
+ const mockAHNextApi = {
134
265
  ...mock_1.defaultMockApi,
135
- at: (_hash) => mockHistoricApiUnappliedSlashes,
266
+ consts: {
267
+ ...mockHistoricApi.consts,
268
+ babe: null,
269
+ },
270
+ query: {
271
+ ...mock_1.defaultMockApi.query,
272
+ session: null,
273
+ staking: {
274
+ activeEra: mock_1.activeEraAt,
275
+ eraElectionStatus: eraElectionStatusAt,
276
+ erasStartSessionIndex: mock_1.erasStartSessionIndexAt,
277
+ forceEra: forceEraAt,
278
+ unappliedSlashes: {
279
+ entries: unappliedSlashesEntries,
280
+ },
281
+ validatorCount: validatorCountAt,
282
+ },
283
+ },
284
+ at: (_hash) => mockAHHistoricApi,
136
285
  };
137
- /**
138
- * Mock PalletStakingProgressService instance.
139
- */
140
- const palletStakingProgressServiceUnappliedSlashes = new PalletsStakingProgressService_1.PalletsStakingProgressService(mockApiUnappliedSlashes);
141
286
  describe('PalletStakingProgressService', () => {
142
- describe('derivePalletStakingProgress', () => {
287
+ beforeAll(() => {
288
+ jest.spyOn(apiRegistry_1.ApiPromiseRegistry, 'getApi').mockImplementation(() => mockApi);
289
+ });
290
+ describe('derivePalletStakingProgress before AHM', () => {
143
291
  mockHistoricApi.query.session.validators = validatorsAt;
144
292
  it('works when ApiPromise works (block 789629)', async () => {
293
+ /**
294
+ * Mock PalletStakingProgressService instance.
295
+ */
296
+ const palletStakingProgressService = new PalletsStakingProgressService_1.PalletsStakingProgressService('polkadot');
145
297
  expect((0, sanitizeNumbers_1.sanitizeNumbers)(await palletStakingProgressService.derivePalletStakingProgress(mock_1.blockHash789629))).toStrictEqual(stakingProgress789629_json_1.default);
146
298
  });
147
299
  it('throws when ErasStartSessionIndex.isNone', async () => {
300
+ mockHistoricApi.query.staking.bondedEras = () => Promise.resolve([]);
148
301
  mockHistoricApi.query.staking.erasStartSessionIndex = () => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('Option<SessionIndex>', null));
302
+ /**
303
+ * Mock PalletStakingProgressService instance.
304
+ */
305
+ const palletStakingProgressService = new PalletsStakingProgressService_1.PalletsStakingProgressService('polkadot');
149
306
  await expect(palletStakingProgressService.derivePalletStakingProgress(mock_1.blockHash789629)).rejects.toStrictEqual(new http_errors_1.InternalServerError('EraStartSessionIndex is None when Some was expected.'));
150
307
  mockHistoricApi.query.staking.erasStartSessionIndex = mock_1.erasStartSessionIndexAt;
151
308
  });
152
309
  it('throws when activeEra.isNone', async () => {
153
310
  mockHistoricApi.query.staking.activeEra = () => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('Option<ActiveEraInfo>', null));
311
+ /**
312
+ * Mock PalletStakingProgressService instance.
313
+ */
314
+ const palletStakingProgressService = new PalletsStakingProgressService_1.PalletsStakingProgressService('polkadot');
154
315
  await expect(palletStakingProgressService.derivePalletStakingProgress(mock_1.blockHash789629)).rejects.toStrictEqual(new http_errors_1.InternalServerError('ActiveEra is None when Some was expected.'));
155
316
  mockHistoricApi.query.staking.activeEra = mock_1.activeEraAt;
156
317
  mockHistoricApi.query.session.validators = validatorsAt;
157
318
  });
158
319
  it('works with entries in unappliedSlashes', async () => {
320
+ /**
321
+ * Mock PalletStakingProgressService instance.
322
+ */
323
+ const palletStakingProgressServiceUnappliedSlashes = new PalletsStakingProgressService_1.PalletsStakingProgressService('polkadot');
324
+ jest.spyOn(apiRegistry_1.ApiPromiseRegistry, 'getApi').mockImplementation(() => mockApiUnappliedSlashes);
325
+ expect((0, sanitizeNumbers_1.sanitizeNumbers)(await palletStakingProgressServiceUnappliedSlashes.derivePalletStakingProgress(mock_1.blockHash789629))).toStrictEqual(stakingProgressUnappliedSlashes_json_1.default);
326
+ });
327
+ });
328
+ describe('derivePalletStakingProgress after AHM', () => {
329
+ it('it throws if historicApi does not have staking', async () => {
330
+ apiRegistry_1.ApiPromiseRegistry.assetHubInfo = {
331
+ isAssetHub: true,
332
+ isAssetHubMigrated: true,
333
+ };
334
+ const PalletStakingProgressService = new PalletsStakingProgressService_1.PalletsStakingProgressService('polkadot');
335
+ jest.spyOn(apiRegistry_1.ApiPromiseRegistry, 'getApi').mockImplementation(() => mockRCNextApi);
336
+ jest.spyOn(apiRegistry_1.ApiPromiseRegistry, 'getAllAvailableSpecNames').mockReturnValue(['polkadot', 'statemine']);
337
+ jest.spyOn(apiRegistry_1.ApiPromiseRegistry, 'getApiByType').mockImplementation(() => {
338
+ return [
339
+ {
340
+ specName: 'polkadot',
341
+ api: mockRCNextApi,
342
+ },
343
+ ];
344
+ });
345
+ await expect(PalletStakingProgressService.derivePalletStakingProgress(mock_1.blockHash789629)).rejects.toThrow('Staking pallet not found for queried runtime');
346
+ });
347
+ it('it throws if sidecar is connected to AH and querying historical block', async () => {
348
+ apiRegistry_1.ApiPromiseRegistry.assetHubInfo = {
349
+ isAssetHub: true,
350
+ isAssetHubMigrated: true,
351
+ };
352
+ const PalletStakingProgressService = new PalletsStakingProgressService_1.PalletsStakingProgressService('statemine');
353
+ jest.spyOn(apiRegistry_1.ApiPromiseRegistry, 'getApi').mockImplementation(() => mockAHNextApi);
354
+ jest.spyOn(apiRegistry_1.ApiPromiseRegistry, 'getAllAvailableSpecNames').mockReturnValue(['polkadot', 'statemine']);
355
+ jest.spyOn(apiRegistry_1.ApiPromiseRegistry, 'getApiByType').mockImplementation(() => {
356
+ return [
357
+ {
358
+ specName: 'polkadot',
359
+ api: mockRCNextApi,
360
+ },
361
+ ];
362
+ });
363
+ await expect(PalletStakingProgressService.derivePalletStakingProgress(mock_1.blockHash100000)).rejects.toThrow('At is currently unsupported for pallet staking validators connected to assethub');
364
+ });
365
+ it('it throws if sidecar is connected to AH but no RC connection is available', async () => {
366
+ apiRegistry_1.ApiPromiseRegistry.assetHubInfo = {
367
+ isAssetHub: true,
368
+ isAssetHubMigrated: true,
369
+ };
370
+ const PalletStakingProgressService = new PalletsStakingProgressService_1.PalletsStakingProgressService('statemine');
371
+ jest.spyOn(apiRegistry_1.ApiPromiseRegistry, 'getApi').mockImplementation(() => mockAHNextApi);
372
+ jest.spyOn(apiRegistry_1.ApiPromiseRegistry, 'getAllAvailableSpecNames').mockReturnValue(['polkadot', 'statemine']);
373
+ jest.spyOn(apiRegistry_1.ApiPromiseRegistry, 'getApiByType').mockImplementation(() => {
374
+ return [];
375
+ });
376
+ await expect(PalletStakingProgressService.derivePalletStakingProgress(mock_1.blockHash789629)).rejects.toThrow('Relay chain API not found');
377
+ });
378
+ it('works when ApiPromise works (block 789629)', async () => {
379
+ apiRegistry_1.ApiPromiseRegistry.assetHubInfo = {
380
+ isAssetHub: true,
381
+ isAssetHubMigrated: true,
382
+ };
383
+ const palletStakingProgressService = new PalletsStakingProgressService_1.PalletsStakingProgressService('statemine');
384
+ // needs both RC and AH connection
385
+ jest.spyOn(apiRegistry_1.ApiPromiseRegistry, 'getApi').mockImplementation(() => mockAHNextApi);
386
+ jest.spyOn(apiRegistry_1.ApiPromiseRegistry, 'getAllAvailableSpecNames').mockReturnValue(['polkadot', 'statemine']);
387
+ jest.spyOn(apiRegistry_1.ApiPromiseRegistry, 'getApiByType').mockImplementation(() => {
388
+ return [
389
+ {
390
+ specName: 'polkadot',
391
+ api: mockRCNextApi,
392
+ },
393
+ ];
394
+ });
395
+ expect((0, sanitizeNumbers_1.sanitizeNumbers)(await palletStakingProgressService.derivePalletStakingProgress(mock_1.blockHash789629))).toStrictEqual(stakingProgress789629_json_1.default);
396
+ });
397
+ it('throws when ErasStartSessionIndex.isNone', async () => {
398
+ apiRegistry_1.ApiPromiseRegistry.assetHubInfo = {
399
+ isAssetHub: true,
400
+ isAssetHubMigrated: true,
401
+ };
402
+ mockAHHistoricApi.query.staking.bondedEras = () => Promise.resolve().then(() => []);
403
+ mockAHHistoricApi.query.staking.erasStartSessionIndex = () => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('Option<SessionIndex>', undefined));
404
+ jest.spyOn(apiRegistry_1.ApiPromiseRegistry, 'getApi').mockImplementation(() => mockAHNextApi);
405
+ jest.spyOn(apiRegistry_1.ApiPromiseRegistry, 'getAllAvailableSpecNames').mockReturnValue(['polkadot', 'statemine']);
406
+ jest.spyOn(apiRegistry_1.ApiPromiseRegistry, 'getApiByType').mockImplementation(() => {
407
+ return [
408
+ {
409
+ specName: 'polkadot',
410
+ api: mockRCNextApi,
411
+ },
412
+ ];
413
+ });
414
+ /**
415
+ * Mock PalletStakingProgressService instance.
416
+ */
417
+ const palletStakingProgressService = new PalletsStakingProgressService_1.PalletsStakingProgressService('statemine');
418
+ await expect(palletStakingProgressService.derivePalletStakingProgress(mock_1.blockHash789629)).rejects.toStrictEqual(new http_errors_1.InternalServerError('EraStartSessionIndex is None when Some was expected.'));
419
+ });
420
+ it('throws when activeEra.isNone', async () => {
421
+ apiRegistry_1.ApiPromiseRegistry.assetHubInfo = {
422
+ isAssetHub: true,
423
+ isAssetHubMigrated: true,
424
+ };
425
+ jest.spyOn(apiRegistry_1.ApiPromiseRegistry, 'getApi').mockImplementation(() => mockAHNextApi);
426
+ jest.spyOn(apiRegistry_1.ApiPromiseRegistry, 'getAllAvailableSpecNames').mockReturnValue(['polkadot', 'statemine']);
427
+ jest.spyOn(apiRegistry_1.ApiPromiseRegistry, 'getApiByType').mockImplementation(() => {
428
+ return [
429
+ {
430
+ specName: 'polkadot',
431
+ api: mockRCNextApi,
432
+ },
433
+ ];
434
+ });
435
+ mockAHHistoricApi.query.staking.activeEra = () => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('Option<ActiveEraInfo>', null));
436
+ /**
437
+ * Mock PalletStakingProgressService instance.
438
+ */
439
+ const palletStakingProgressService = new PalletsStakingProgressService_1.PalletsStakingProgressService('statemine');
440
+ await expect(palletStakingProgressService.derivePalletStakingProgress(mock_1.blockHash789629)).rejects.toStrictEqual(new http_errors_1.InternalServerError('ActiveEra is None when Some was expected.'));
441
+ });
442
+ it('works with entries in unappliedSlashes', async () => {
443
+ apiRegistry_1.ApiPromiseRegistry.assetHubInfo = {
444
+ isAssetHub: true,
445
+ isAssetHubMigrated: true,
446
+ };
447
+ /**
448
+ * Mock PalletStakingProgressService instance.
449
+ */
450
+ jest.spyOn(apiRegistry_1.ApiPromiseRegistry, 'getApi').mockImplementation(() => mockApiUnappliedSlashes);
451
+ jest.spyOn(apiRegistry_1.ApiPromiseRegistry, 'getAllAvailableSpecNames').mockReturnValue(['polkadot', 'statemine']);
452
+ jest.spyOn(apiRegistry_1.ApiPromiseRegistry, 'getApiByType').mockImplementation(() => {
453
+ return [
454
+ {
455
+ specName: 'polkadot',
456
+ api: mockRCNextApi,
457
+ },
458
+ ];
459
+ });
460
+ mockApiUnappliedSlashes.query.staking.unappliedSlashes.entries = () => Promise.resolve([['5640', unappliedSlashes]]);
461
+ mockApiUnappliedSlashes.query.session = null;
462
+ mockApiUnappliedSlashes.consts.session = null;
463
+ const palletStakingProgressServiceUnappliedSlashes = new PalletsStakingProgressService_1.PalletsStakingProgressService('statemine');
159
464
  expect((0, sanitizeNumbers_1.sanitizeNumbers)(await palletStakingProgressServiceUnappliedSlashes.derivePalletStakingProgress(mock_1.blockHash789629))).toStrictEqual(stakingProgressUnappliedSlashes_json_1.default);
160
465
  });
161
466
  });
@@ -1 +1 @@
1
- {"version":3,"file":"PalletsStakingProgressService.spec.js","sourceRoot":"","sources":["../../../../src/services/pallets/PalletsStakingProgressService.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PalletsStakingProgressService.spec.js","sourceRoot":"","sources":["../../../../src/services/pallets/PalletsStakingProgressService.spec.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { ApiDecoration } from '@polkadot/api/types';
1
2
  import { BlockHash } from '@polkadot/types/interfaces';
2
3
  import { IPalletStakingValidator } from '../../types/responses';
3
4
  import { AbstractService } from '../AbstractService';
@@ -11,4 +12,10 @@ export declare class PalletsStakingValidatorsService extends AbstractService {
11
12
  * @param hash `BlockHash` to make call at
12
13
  */
13
14
  derivePalletStakingValidators(hash: BlockHash): Promise<IPalletStakingValidator>;
15
+ /**
16
+ * Get the active validators given an era.
17
+ *
18
+ * @param historicApi
19
+ */
20
+ getActiveValidators(historicApi: ApiDecoration<'promise'>): Promise<Set<string>>;
14
21
  }