@substrate/api-sidecar 20.3.1 → 20.4.0

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 (184) hide show
  1. package/README.md +9 -0
  2. package/build/package.json +9 -19
  3. package/build/src/chains-config/assetHubKusamaControllers.js +17 -0
  4. package/build/src/chains-config/assetHubKusamaControllers.js.map +1 -1
  5. package/build/src/chains-config/assetHubNextWestendControllers.js +18 -0
  6. package/build/src/chains-config/assetHubNextWestendControllers.js.map +1 -1
  7. package/build/src/chains-config/assetHubPolkadotControllers.js +17 -0
  8. package/build/src/chains-config/assetHubPolkadotControllers.js.map +1 -1
  9. package/build/src/chains-config/assetHubWestendControllers.js +18 -0
  10. package/build/src/chains-config/assetHubWestendControllers.js.map +1 -1
  11. package/build/src/chains-config/index.d.ts +6 -0
  12. package/build/src/chains-config/index.js +24 -1
  13. package/build/src/chains-config/index.js.map +1 -1
  14. package/build/src/controllers/AbstractController.d.ts +13 -2
  15. package/build/src/controllers/AbstractController.js +73 -13
  16. package/build/src/controllers/AbstractController.js.map +1 -1
  17. package/build/src/controllers/accounts/AccountsAssetsController.d.ts +16 -0
  18. package/build/src/controllers/accounts/AccountsAssetsController.js +75 -8
  19. package/build/src/controllers/accounts/AccountsAssetsController.js.map +1 -1
  20. package/build/src/controllers/accounts/AccountsBalanceInfoController.d.ts +9 -0
  21. package/build/src/controllers/accounts/AccountsBalanceInfoController.js +50 -10
  22. package/build/src/controllers/accounts/AccountsBalanceInfoController.js.map +1 -1
  23. package/build/src/controllers/accounts/AccountsPoolAssetsController.d.ts +15 -0
  24. package/build/src/controllers/accounts/AccountsPoolAssetsController.js +74 -8
  25. package/build/src/controllers/accounts/AccountsPoolAssetsController.js.map +1 -1
  26. package/build/src/controllers/accounts/AccountsProxyInfoController.d.ts +1 -1
  27. package/build/src/controllers/accounts/AccountsProxyInfoController.js +30 -5
  28. package/build/src/controllers/accounts/AccountsProxyInfoController.js.map +1 -1
  29. package/build/src/controllers/accounts/AccountsStakingInfoController.d.ts +9 -0
  30. package/build/src/controllers/accounts/AccountsStakingInfoController.js +47 -6
  31. package/build/src/controllers/accounts/AccountsStakingInfoController.js.map +1 -1
  32. package/build/src/controllers/accounts/AccountsStakingPayoutsController.d.ts +9 -0
  33. package/build/src/controllers/accounts/AccountsStakingPayoutsController.js +71 -14
  34. package/build/src/controllers/accounts/AccountsStakingPayoutsController.js.map +1 -1
  35. package/build/src/controllers/accounts/AccountsVestingInfoController.d.ts +8 -0
  36. package/build/src/controllers/accounts/AccountsVestingInfoController.js +36 -8
  37. package/build/src/controllers/accounts/AccountsVestingInfoController.js.map +1 -1
  38. package/build/src/controllers/blocks/BlocksController.d.ts +10 -0
  39. package/build/src/controllers/blocks/BlocksController.js +244 -23
  40. package/build/src/controllers/blocks/BlocksController.js.map +1 -1
  41. package/build/src/controllers/blocks/BlocksExtrinsicsController.js +95 -36
  42. package/build/src/controllers/blocks/BlocksExtrinsicsController.js.map +1 -1
  43. package/build/src/controllers/blocks/BlocksRawExtrinsicsController.js +29 -4
  44. package/build/src/controllers/blocks/BlocksRawExtrinsicsController.js.map +1 -1
  45. package/build/src/controllers/controllerInjection.spec.js +5 -1
  46. package/build/src/controllers/controllerInjection.spec.js.map +1 -1
  47. package/build/src/controllers/index.d.ts +23 -0
  48. package/build/src/controllers/index.js +27 -4
  49. package/build/src/controllers/index.js.map +1 -1
  50. package/build/src/controllers/pallets/PalletsAssetConversionController.js +58 -6
  51. package/build/src/controllers/pallets/PalletsAssetConversionController.js.map +1 -1
  52. package/build/src/controllers/pallets/PalletsAssetsController.d.ts +8 -0
  53. package/build/src/controllers/pallets/PalletsAssetsController.js +38 -3
  54. package/build/src/controllers/pallets/PalletsAssetsController.js.map +1 -1
  55. package/build/src/controllers/pallets/PalletsConstsController.js +82 -18
  56. package/build/src/controllers/pallets/PalletsConstsController.js.map +1 -1
  57. package/build/src/controllers/pallets/PalletsDispatchablesController.d.ts +0 -8
  58. package/build/src/controllers/pallets/PalletsDispatchablesController.js +82 -28
  59. package/build/src/controllers/pallets/PalletsDispatchablesController.js.map +1 -1
  60. package/build/src/controllers/pallets/PalletsErrorsController.js +82 -18
  61. package/build/src/controllers/pallets/PalletsErrorsController.js.map +1 -1
  62. package/build/src/controllers/pallets/PalletsEventsController.js +82 -18
  63. package/build/src/controllers/pallets/PalletsEventsController.js.map +1 -1
  64. package/build/src/controllers/pallets/PalletsForeignAssetsController.d.ts +8 -0
  65. package/build/src/controllers/pallets/PalletsForeignAssetsController.js +38 -3
  66. package/build/src/controllers/pallets/PalletsForeignAssetsController.js.map +1 -1
  67. package/build/src/controllers/pallets/PalletsNominationPoolsController.js +58 -6
  68. package/build/src/controllers/pallets/PalletsNominationPoolsController.js.map +1 -1
  69. package/build/src/controllers/pallets/PalletsOnGoingReferendaController.js +30 -3
  70. package/build/src/controllers/pallets/PalletsOnGoingReferendaController.js.map +1 -1
  71. package/build/src/controllers/pallets/PalletsPoolAssetsController.js +30 -3
  72. package/build/src/controllers/pallets/PalletsPoolAssetsController.js.map +1 -1
  73. package/build/src/controllers/pallets/PalletsStakingProgressController.d.ts +1 -1
  74. package/build/src/controllers/pallets/PalletsStakingProgressController.js +30 -8
  75. package/build/src/controllers/pallets/PalletsStakingProgressController.js.map +1 -1
  76. package/build/src/controllers/pallets/PalletsStakingValidatorsController.js +30 -3
  77. package/build/src/controllers/pallets/PalletsStakingValidatorsController.js.map +1 -1
  78. package/build/src/controllers/pallets/PalletsStorageController.js +84 -19
  79. package/build/src/controllers/pallets/PalletsStorageController.js.map +1 -1
  80. package/build/src/controllers/rc/accounts/RcAccountsBalanceInfoController.d.ts +15 -0
  81. package/build/src/controllers/rc/accounts/RcAccountsBalanceInfoController.js +65 -0
  82. package/build/src/controllers/rc/accounts/RcAccountsBalanceInfoController.js.map +1 -0
  83. package/build/src/controllers/rc/accounts/RcAccountsProxyInfoController.d.ts +15 -0
  84. package/build/src/controllers/rc/accounts/RcAccountsProxyInfoController.js +59 -0
  85. package/build/src/controllers/rc/accounts/RcAccountsProxyInfoController.js.map +1 -0
  86. package/build/src/controllers/rc/accounts/index.d.ts +2 -0
  87. package/build/src/controllers/rc/accounts/index.js +26 -0
  88. package/build/src/controllers/rc/accounts/index.js.map +1 -0
  89. package/build/src/controllers/rc/blocks/RcBlocksController.d.ts +17 -0
  90. package/build/src/controllers/rc/blocks/RcBlocksController.js +263 -0
  91. package/build/src/controllers/rc/blocks/RcBlocksController.js.map +1 -0
  92. package/build/src/controllers/rc/blocks/RcBlocksExtrinsicsController.d.ts +11 -0
  93. package/build/src/controllers/rc/blocks/RcBlocksExtrinsicsController.js +80 -0
  94. package/build/src/controllers/rc/blocks/RcBlocksExtrinsicsController.js.map +1 -0
  95. package/build/src/controllers/rc/blocks/RcBlocksRawExtrinsicsController.d.ts +10 -0
  96. package/build/src/controllers/rc/blocks/RcBlocksRawExtrinsicsController.js +60 -0
  97. package/build/src/controllers/rc/blocks/RcBlocksRawExtrinsicsController.js.map +1 -0
  98. package/build/src/controllers/rc/blocks/RcBlocksTraceController.d.ts +12 -0
  99. package/build/src/controllers/rc/blocks/RcBlocksTraceController.js +89 -0
  100. package/build/src/controllers/rc/blocks/RcBlocksTraceController.js.map +1 -0
  101. package/build/src/controllers/rc/blocks/index.d.ts +4 -0
  102. package/build/src/controllers/rc/blocks/index.js +30 -0
  103. package/build/src/controllers/rc/blocks/index.js.map +1 -0
  104. package/build/src/controllers/rc/index.d.ts +4 -0
  105. package/build/src/controllers/rc/index.js +36 -0
  106. package/build/src/controllers/rc/index.js.map +1 -0
  107. package/build/src/controllers/rc/node/RcNodeNetworkController.d.ts +40 -0
  108. package/build/src/controllers/rc/node/RcNodeNetworkController.js +76 -0
  109. package/build/src/controllers/rc/node/RcNodeNetworkController.js.map +1 -0
  110. package/build/src/controllers/rc/node/RcNodeTransactionPoolController.d.ts +27 -0
  111. package/build/src/controllers/rc/node/RcNodeTransactionPoolController.js +66 -0
  112. package/build/src/controllers/rc/node/RcNodeTransactionPoolController.js.map +1 -0
  113. package/build/src/controllers/rc/node/RcNodeVersionController.d.ts +24 -0
  114. package/build/src/controllers/rc/node/RcNodeVersionController.js +59 -0
  115. package/build/src/controllers/rc/node/RcNodeVersionController.js.map +1 -0
  116. package/build/src/controllers/rc/node/index.d.ts +3 -0
  117. package/build/src/controllers/rc/node/index.js +13 -0
  118. package/build/src/controllers/rc/node/index.js.map +1 -0
  119. package/build/src/controllers/rc/pallets/RcPalletsConstsController.d.ts +10 -0
  120. package/build/src/controllers/rc/pallets/RcPalletsConstsController.js +79 -0
  121. package/build/src/controllers/rc/pallets/RcPalletsConstsController.js.map +1 -0
  122. package/build/src/controllers/rc/pallets/RcPalletsDispatchablesController.d.ts +10 -0
  123. package/build/src/controllers/rc/pallets/RcPalletsDispatchablesController.js +79 -0
  124. package/build/src/controllers/rc/pallets/RcPalletsDispatchablesController.js.map +1 -0
  125. package/build/src/controllers/rc/pallets/RcPalletsErrorsController.d.ts +10 -0
  126. package/build/src/controllers/rc/pallets/RcPalletsErrorsController.js +79 -0
  127. package/build/src/controllers/rc/pallets/RcPalletsErrorsController.js.map +1 -0
  128. package/build/src/controllers/rc/pallets/RcPalletsEventsController.d.ts +10 -0
  129. package/build/src/controllers/rc/pallets/RcPalletsEventsController.js +79 -0
  130. package/build/src/controllers/rc/pallets/RcPalletsEventsController.js.map +1 -0
  131. package/build/src/controllers/rc/pallets/RcPalletsOnGoingReferendaController.d.ts +9 -0
  132. package/build/src/controllers/rc/pallets/RcPalletsOnGoingReferendaController.js +52 -0
  133. package/build/src/controllers/rc/pallets/RcPalletsOnGoingReferendaController.js.map +1 -0
  134. package/build/src/controllers/rc/pallets/RcPalletsStorageController.d.ts +10 -0
  135. package/build/src/controllers/rc/pallets/RcPalletsStorageController.js +81 -0
  136. package/build/src/controllers/rc/pallets/RcPalletsStorageController.js.map +1 -0
  137. package/build/src/controllers/rc/pallets/index.d.ts +6 -0
  138. package/build/src/controllers/rc/pallets/index.js +34 -0
  139. package/build/src/controllers/rc/pallets/index.js.map +1 -0
  140. package/build/src/controllers/rc/runtime/RcRuntimeCodeController.d.ts +26 -0
  141. package/build/src/controllers/rc/runtime/RcRuntimeCodeController.js +68 -0
  142. package/build/src/controllers/rc/runtime/RcRuntimeCodeController.js.map +1 -0
  143. package/build/src/controllers/rc/runtime/RcRuntimeMetadataController.d.ts +47 -0
  144. package/build/src/controllers/rc/runtime/RcRuntimeMetadataController.js +140 -0
  145. package/build/src/controllers/rc/runtime/RcRuntimeMetadataController.js.map +1 -0
  146. package/build/src/controllers/rc/runtime/RcRuntimeSpecController.d.ts +34 -0
  147. package/build/src/controllers/rc/runtime/RcRuntimeSpecController.js +76 -0
  148. package/build/src/controllers/rc/runtime/RcRuntimeSpecController.js.map +1 -0
  149. package/build/src/controllers/rc/runtime/index.d.ts +3 -0
  150. package/build/src/controllers/rc/runtime/index.js +28 -0
  151. package/build/src/controllers/rc/runtime/index.js.map +1 -0
  152. package/build/src/logging/transformers/nodeUtilFormat.js +17 -7
  153. package/build/src/logging/transformers/nodeUtilFormat.js.map +1 -1
  154. package/build/src/main.js +21 -7
  155. package/build/src/main.js.map +1 -1
  156. package/build/src/metrics/index.js +17 -7
  157. package/build/src/metrics/index.js.map +1 -1
  158. package/build/src/middleware/logger/httpLogger.js +17 -7
  159. package/build/src/middleware/logger/httpLogger.js.map +1 -1
  160. package/build/src/middleware/validate/index.d.ts +1 -0
  161. package/build/src/middleware/validate/index.js +3 -1
  162. package/build/src/middleware/validate/index.js.map +1 -1
  163. package/build/src/middleware/validate/validateUseRcBlockMiddleware.d.ts +10 -0
  164. package/build/src/middleware/validate/validateUseRcBlockMiddleware.js +58 -0
  165. package/build/src/middleware/validate/validateUseRcBlockMiddleware.js.map +1 -0
  166. package/build/src/services/accounts/AccountsStakingInfoService.js +0 -1
  167. package/build/src/services/accounts/AccountsStakingInfoService.js.map +1 -1
  168. package/build/src/services/blocks/BlocksService.js +15 -1
  169. package/build/src/services/blocks/BlocksService.js.map +1 -1
  170. package/build/src/services/pallets/PalletsStakingProgressService.d.ts +56 -0
  171. package/build/src/services/pallets/PalletsStakingProgressService.js +140 -21
  172. package/build/src/services/pallets/PalletsStakingProgressService.js.map +1 -1
  173. package/build/src/services/pallets/PalletsStakingProgressService.spec.js +255 -43
  174. package/build/src/services/pallets/PalletsStakingProgressService.spec.js.map +1 -1
  175. package/build/src/types/requests.d.ts +1 -0
  176. package/build/src/types/responses/AccountAssets.d.ts +4 -0
  177. package/build/src/types/responses/AccountBalanceInfo.d.ts +2 -0
  178. package/build/src/types/responses/AccountPoolAssets.d.ts +6 -2
  179. package/build/src/types/responses/AccountProxyInfo.d.ts +2 -0
  180. package/build/src/types/responses/AccountStakingInfo.d.ts +2 -0
  181. package/build/src/types/responses/AccountStakingPayouts.d.ts +2 -0
  182. package/build/src/types/responses/AccountVestingInfo.d.ts +2 -0
  183. package/build/src/types/responses/PalletStakingProgress.d.ts +2 -0
  184. package/package.json +9 -19
@@ -31,6 +31,8 @@ const AbstractController_1 = __importDefault(require("../AbstractController"));
31
31
  * Query:
32
32
  * - (Optional)`at`: Block at which to retrieve runtime version information at. Block
33
33
  * identifier, as the block height or block hash. Defaults to most recent block.
34
+ * - (Optional) `useRcBlock`: When true, treats the `at` parameter as a relay chain block
35
+ * to find corresponding Asset Hub blocks. Only supported for Asset Hub endpoints.
34
36
  * - (Optional) `includeClaimedRewards`: Controls whether or not the `claimedRewards`
35
37
  * field is included in the response. Defaults to `true`.
36
38
  * If set to `false`:
@@ -39,6 +41,11 @@ const AbstractController_1 = __importDefault(require("../AbstractController"));
39
41
  * will be skipped, potentially speeding up the response time.
40
42
  *
41
43
  * Returns:
44
+ * - When using `useRcBlock=true`: An array of response objects, one for each Asset Hub block found
45
+ * in the specified relay chain block. Returns empty array `[]` if no Asset Hub blocks found.
46
+ * - When using `useRcBlock=false` or omitted: A single response object.
47
+ *
48
+ * Response object structure:
42
49
  * - `at`: Block number and hash at which the call was made.
43
50
  * - `rewardDestination`: The account to which rewards will be paid. Can be 'Staked' (Stash
44
51
  * account, adding to the amount at stake), 'Stash' (Stash address, not adding to the amount at
@@ -57,6 +64,8 @@ const AbstractController_1 = __importDefault(require("../AbstractController"));
57
64
  * with an `era` at which `value` will be unlocked.
58
65
  * - `claimedRewards`: Array of eras for which the stakers behind a validator have claimed
59
66
  * rewards. Only updated for _validators._
67
+ * - `rcBlockNumber`: The relay chain block number used for the query. Only present when `useRcBlock=true`.
68
+ * - `ahTimestamp`: The Asset Hub block timestamp. Only present when `useRcBlock=true`.
60
69
  *
61
70
  * Note: Runtime versions of Kusama less than 1062 will either have `lastReward` in place of
62
71
  * `claimedRewards`, or no field at all. This is related to changes in reward distribution. See:
@@ -78,22 +87,54 @@ class AccountsStakingInfoController extends AbstractController_1.default {
78
87
  * @param req Express Request
79
88
  * @param res Express Response
80
89
  */
81
- this.getAccountStakingInfo = async ({ params: { address }, query: { at, includeClaimedRewards } }, res) => {
90
+ this.getAccountStakingInfo = async ({ params: { address }, query: { at, useRcBlock, includeClaimedRewards } }, res) => {
82
91
  const { isAssetHubMigrated } = apiRegistry_1.ApiPromiseRegistry.assetHubInfo;
83
- const hash = await this.getHashFromAt(at);
84
92
  const includeClaimedRewardsArg = includeClaimedRewards !== 'false';
85
- if (isAssetHubMigrated) {
86
- AccountsStakingInfoController.sanitizedSend(res, await this.service.fetchAccountStakingInfoAssetHub(hash, includeClaimedRewardsArg, address));
93
+ if (useRcBlock === 'true') {
94
+ const rcAtResults = await this.getHashFromRcAt(at);
95
+ // Return empty array if no Asset Hub blocks found
96
+ if (rcAtResults.length === 0) {
97
+ AccountsStakingInfoController.sanitizedSend(res, []);
98
+ return;
99
+ }
100
+ // Process each Asset Hub block found
101
+ const results = [];
102
+ for (const { ahHash, rcBlockNumber } of rcAtResults) {
103
+ let result;
104
+ if (isAssetHubMigrated) {
105
+ result = await this.service.fetchAccountStakingInfoAssetHub(ahHash, includeClaimedRewardsArg, address);
106
+ }
107
+ else {
108
+ result = await this.service.fetchAccountStakingInfo(ahHash, includeClaimedRewardsArg, address);
109
+ }
110
+ const apiAt = await this.api.at(ahHash);
111
+ const ahTimestamp = await apiAt.query.timestamp.now();
112
+ const enhancedResult = {
113
+ ...result,
114
+ rcBlockNumber,
115
+ ahTimestamp: ahTimestamp.toString(),
116
+ };
117
+ results.push(enhancedResult);
118
+ }
119
+ AccountsStakingInfoController.sanitizedSend(res, results);
87
120
  }
88
121
  else {
89
- AccountsStakingInfoController.sanitizedSend(res, await this.service.fetchAccountStakingInfo(hash, includeClaimedRewardsArg, address));
122
+ const hash = await this.getHashFromAt(at);
123
+ let result;
124
+ if (isAssetHubMigrated) {
125
+ result = await this.service.fetchAccountStakingInfoAssetHub(hash, includeClaimedRewardsArg, address);
126
+ }
127
+ else {
128
+ result = await this.service.fetchAccountStakingInfo(hash, includeClaimedRewardsArg, address);
129
+ }
130
+ AccountsStakingInfoController.sanitizedSend(res, result);
90
131
  }
91
132
  };
92
133
  this.initRoutes();
93
134
  this.options = options;
94
135
  }
95
136
  initRoutes() {
96
- this.router.use(this.path, middleware_1.validateAddress, (0, middleware_1.validateBoolean)(['includeClaimedRewards']));
137
+ this.router.use(this.path, middleware_1.validateAddress, (0, middleware_1.validateBoolean)(['includeClaimedRewards']), middleware_1.validateUseRcBlock);
97
138
  this.safeMountAsyncGetHandlers([['', this.getAccountStakingInfo]]);
98
139
  }
99
140
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AccountsStakingInfoController.js","sourceRoot":"","sources":["../../../../src/controllers/accounts/AccountsStakingInfoController.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,mDAAuD;AACvD,iDAAoE;AACpE,6CAA4D;AAC5D,+EAAuD;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAqB,6BAA8B,SAAQ,4BAA8C;IAUxG,YAAY,GAAW,EAAE,OAA0B;QAClD,KAAK,CAAC,GAAG,EAAE,iCAAiC,EAAE,IAAI,qCAA0B,CAAC,GAAG,CAAC,CAAC,CAAC;QAWpF;;;;;WAKG;QACK,0BAAqB,GAAkC,KAAK,EACnE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAC7D,GAAG,EACa,EAAE;YAClB,MAAM,EAAE,kBAAkB,EAAE,GAAG,gCAAkB,CAAC,YAAY,CAAC;YAC/D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAC1C,MAAM,wBAAwB,GAAG,qBAAqB,KAAK,OAAO,CAAC;YAEnE,IAAI,kBAAkB,EAAE,CAAC;gBACxB,6BAA6B,CAAC,aAAa,CAC1C,GAAG,EACH,MAAM,IAAI,CAAC,OAAO,CAAC,+BAA+B,CAAC,IAAI,EAAE,wBAAwB,EAAE,OAAO,CAAC,CAC3F,CAAC;YACH,CAAC;iBAAM,CAAC;gBACP,6BAA6B,CAAC,aAAa,CAC1C,GAAG,EACH,MAAM,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAE,wBAAwB,EAAE,OAAO,CAAC,CACnF,CAAC;YACH,CAAC;QACF,CAAC,CAAC;QAnCD,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACxB,CAAC;IAES,UAAU;QACnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,4BAAe,EAAE,IAAA,4BAAe,EAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;QAExF,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;;AAjBM,4CAAc,GAAG,qBAAqB,AAAxB,CAAyB;AACvC,6CAAe,GAAG;IACxB,CAAC,SAAS,EAAE,QAAQ,CAAC;IACrB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;IACvC,CAAC,kBAAkB,EAAE,QAAQ,CAAC;IAC9B,CAAC,SAAS,EAAE,iBAAiB,CAAC;CAC9B,AALqB,CAKpB;kBATkB,6BAA6B"}
1
+ {"version":3,"file":"AccountsStakingInfoController.js","sourceRoot":"","sources":["../../../../src/controllers/accounts/AccountsStakingInfoController.ts"],"names":[],"mappings":"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"}
@@ -13,8 +13,15 @@ import AbstractController from '../AbstractController';
13
13
  * - (Optional) `era`: The era to query at. Max era payout info is available for
14
14
  * is the latest finished era: `active_era - 1`. Defaults to `active_era - 1`.
15
15
  * - (Optional) `unclaimedOnly`: Only return unclaimed rewards. Defaults to true.
16
+ * - (Optional) `useRcBlock`: When true, treats the `at` parameter as a relay chain block
17
+ * to find corresponding Asset Hub blocks. Only supported for Asset Hub endpoints.
16
18
  *
17
19
  * Returns:
20
+ * - When using `useRcBlock=true`: An array of response objects, one for each Asset Hub block found
21
+ * in the specified relay chain block. Returns empty array `[]` if no Asset Hub blocks found.
22
+ * - When using `useRcBlock=false` or omitted: A single response object.
23
+ *
24
+ * Response object structure:
18
25
  * - `at`:
19
26
  * - `hash`: The block's hash.
20
27
  * - `height`: The block's height.
@@ -33,6 +40,8 @@ import AbstractController from '../AbstractController';
33
40
  * takes as commission, expressed as a Perbill.
34
41
  * - `totalValidatorExposure`: The sum of the validator's and its nominators' stake.
35
42
  * - `nominatorExposure`: The amount of stake the nominator has behind the validator.
43
+ * - `rcBlockNumber`: The relay chain block number used for the query. Only present when `useRcBlock=true`.
44
+ * - `ahTimestamp`: The Asset Hub block timestamp. Only present when `useRcBlock=true`.
36
45
  *
37
46
  * Description:
38
47
  * Returns payout information for the last specified eras. If specifying both
@@ -38,8 +38,15 @@ const AbstractController_1 = __importDefault(require("../AbstractController"));
38
38
  * - (Optional) `era`: The era to query at. Max era payout info is available for
39
39
  * is the latest finished era: `active_era - 1`. Defaults to `active_era - 1`.
40
40
  * - (Optional) `unclaimedOnly`: Only return unclaimed rewards. Defaults to true.
41
+ * - (Optional) `useRcBlock`: When true, treats the `at` parameter as a relay chain block
42
+ * to find corresponding Asset Hub blocks. Only supported for Asset Hub endpoints.
41
43
  *
42
44
  * Returns:
45
+ * - When using `useRcBlock=true`: An array of response objects, one for each Asset Hub block found
46
+ * in the specified relay chain block. Returns empty array `[]` if no Asset Hub blocks found.
47
+ * - When using `useRcBlock=false` or omitted: A single response object.
48
+ *
49
+ * Response object structure:
43
50
  * - `at`:
44
51
  * - `hash`: The block's hash.
45
52
  * - `height`: The block's height.
@@ -58,6 +65,8 @@ const AbstractController_1 = __importDefault(require("../AbstractController"));
58
65
  * takes as commission, expressed as a Perbill.
59
66
  * - `totalValidatorExposure`: The sum of the validator's and its nominators' stake.
60
67
  * - `nominatorExposure`: The amount of stake the nominator has behind the validator.
68
+ * - `rcBlockNumber`: The relay chain block number used for the query. Only present when `useRcBlock=true`.
69
+ * - `ahTimestamp`: The Asset Hub block timestamp. Only present when `useRcBlock=true`.
61
70
  *
62
71
  * Description:
63
72
  * Returns payout information for the last specified eras. If specifying both
@@ -85,28 +94,76 @@ class AccountsStakingPayoutsController extends AbstractController_1.default {
85
94
  * @param req Express Request
86
95
  * @param res Express Response
87
96
  */
88
- this.getStakingPayoutsByAccountId = async ({ params: { address }, query: { depth, era, unclaimedOnly, at } }, res) => {
97
+ this.getStakingPayoutsByAccountId = async ({ params: { address }, query: { depth, era, unclaimedOnly, at, useRcBlock } }, res) => {
89
98
  const { specName } = this;
90
99
  const isKusama = specName.toString().toLowerCase() === 'kusama';
91
- let hash = await this.getHashFromAt(at);
92
- let apiAt = await this.api.at(hash);
93
- const { eraArg, currentEra } = await this.getEraAndHash(apiAt, this.verifyAndCastOr('era', era, undefined));
94
- const sanitizedDepth = this.sanitizeDepth({ isKusama, depth: depth === null || depth === void 0 ? void 0 : depth.toString(), era: era === null || era === void 0 ? void 0 : era.toString(), currentEra });
95
- if (isKusama && currentEra < 518) {
96
- const earlyErasBlockInfo = kusamaEarlyErasBlockInfo_json_1.default;
97
- const block = earlyErasBlockInfo[currentEra].start;
98
- hash = await this.getHashFromAt(block.toString());
99
- apiAt = await this.api.at(hash);
100
+ if (useRcBlock === 'true') {
101
+ const rcAtResults = await this.getHashFromRcAt(at);
102
+ // Return empty array if no Asset Hub blocks found
103
+ if (rcAtResults.length === 0) {
104
+ AccountsStakingPayoutsController.sanitizedSend(res, []);
105
+ return;
106
+ }
107
+ // Process each Asset Hub block found
108
+ const results = [];
109
+ for (const { ahHash, rcBlockNumber } of rcAtResults) {
110
+ let hash = ahHash;
111
+ let apiAt = await this.api.at(hash);
112
+ const { eraArg, currentEra } = await this.getEraAndHash(apiAt, this.verifyAndCastOr('era', era, undefined));
113
+ const sanitizedDepth = this.sanitizeDepth({
114
+ isKusama,
115
+ depth: depth === null || depth === void 0 ? void 0 : depth.toString(),
116
+ era: era === null || era === void 0 ? void 0 : era.toString(),
117
+ currentEra,
118
+ });
119
+ if (isKusama && currentEra < 518) {
120
+ const earlyErasBlockInfo = kusamaEarlyErasBlockInfo_json_1.default;
121
+ const block = earlyErasBlockInfo[currentEra].start;
122
+ hash = await this.getHashFromAt(block.toString());
123
+ apiAt = await this.api.at(hash);
124
+ }
125
+ if (!apiAt.query.staking) {
126
+ throw new http_errors_1.BadRequest('Staking pallet not found for queried runtime');
127
+ }
128
+ const result = await this.service.fetchAccountStakingPayout(hash, address, this.verifyAndCastOr('depth', sanitizedDepth, 1), eraArg, unclaimedOnly === 'false' ? false : true, currentEra, apiAt);
129
+ const finalApiAt = await this.api.at(hash);
130
+ const ahTimestamp = await finalApiAt.query.timestamp.now();
131
+ const enhancedResult = {
132
+ ...result,
133
+ rcBlockNumber,
134
+ ahTimestamp: ahTimestamp.toString(),
135
+ };
136
+ results.push(enhancedResult);
137
+ }
138
+ AccountsStakingPayoutsController.sanitizedSend(res, results);
100
139
  }
101
- if (!apiAt.query.staking) {
102
- throw new http_errors_1.BadRequest('Staking pallet not found for queried runtime');
140
+ else {
141
+ let hash = await this.getHashFromAt(at);
142
+ let apiAt = await this.api.at(hash);
143
+ const { eraArg, currentEra } = await this.getEraAndHash(apiAt, this.verifyAndCastOr('era', era, undefined));
144
+ const sanitizedDepth = this.sanitizeDepth({
145
+ isKusama,
146
+ depth: depth === null || depth === void 0 ? void 0 : depth.toString(),
147
+ era: era === null || era === void 0 ? void 0 : era.toString(),
148
+ currentEra,
149
+ });
150
+ if (isKusama && currentEra < 518) {
151
+ const earlyErasBlockInfo = kusamaEarlyErasBlockInfo_json_1.default;
152
+ const block = earlyErasBlockInfo[currentEra].start;
153
+ hash = await this.getHashFromAt(block.toString());
154
+ apiAt = await this.api.at(hash);
155
+ }
156
+ if (!apiAt.query.staking) {
157
+ throw new http_errors_1.BadRequest('Staking pallet not found for queried runtime');
158
+ }
159
+ const result = await this.service.fetchAccountStakingPayout(hash, address, this.verifyAndCastOr('depth', sanitizedDepth, 1), eraArg, unclaimedOnly === 'false' ? false : true, currentEra, apiAt);
160
+ AccountsStakingPayoutsController.sanitizedSend(res, result);
103
161
  }
104
- AccountsStakingPayoutsController.sanitizedSend(res, await this.service.fetchAccountStakingPayout(hash, address, this.verifyAndCastOr('depth', sanitizedDepth, 1), eraArg, unclaimedOnly === 'false' ? false : true, currentEra, apiAt));
105
162
  };
106
163
  this.initRoutes();
107
164
  }
108
165
  initRoutes() {
109
- this.router.use(this.path, middleware_1.validateAddress, (0, middleware_1.validateBoolean)(['unclaimedOnly']));
166
+ this.router.use(this.path, middleware_1.validateAddress, (0, middleware_1.validateBoolean)(['unclaimedOnly']), middleware_1.validateUseRcBlock);
110
167
  this.safeMountAsyncGetHandlers([['', this.getStakingPayoutsByAccountId]]);
111
168
  }
112
169
  sanitizeDepth({ isKusama, depth, era, currentEra, }) {
@@ -1 +1 @@
1
- {"version":3,"file":"AccountsStakingPayoutsController.js","sourceRoot":"","sources":["../../../../src/controllers/accounts/AccountsStakingPayoutsController.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;;;;;AAGxE,2CAA8C;AAC9C,kDAAuB;AAEvB,6CAA8D;AAE9D,iDAAoE;AACpE,6CAA+D;AAE/D,0HAA6F;AAE7F,+EAAuD;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,MAAqB,gCAAiC,SAAQ,4BAAiD;IAQ9G,YAAY,GAAW;QACtB,KAAK,CAAC,GAAG,EAAE,oCAAoC,EAAE,IAAI,wCAA6B,CAAC,GAAG,CAAC,CAAC,CAAC;QAU1F;;;;;WAKG;QACK,iCAA4B,GAAkC,KAAK,EAC1E,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,EACjE,GAAG,EACa,EAAE;YAClB,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;YAC1B,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC;YAEhE,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAEpC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;YAE5G,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;YAEpH,IAAI,QAAQ,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;gBAClC,MAAM,kBAAkB,GAAwB,uCAAwB,CAAC;gBACzE,MAAM,KAAK,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC;gBACnD,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAClD,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC1B,MAAM,IAAI,wBAAU,CAAC,8CAA8C,CAAC,CAAC;YACtE,CAAC;YAED,gCAAgC,CAAC,aAAa,CAC7C,GAAG,EACH,MAAM,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAC3C,IAAI,EACJ,OAAO,EACP,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,CAAW,EAC1D,MAAM,EACN,aAAa,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EACxC,UAAU,EACV,KAAK,CACL,CACD,CAAC;QACH,CAAC,CAAC;QApDD,IAAI,CAAC,UAAU,EAAE,CAAC;IACnB,CAAC;IAES,UAAU;QACnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,4BAAe,EAAE,IAAA,4BAAe,EAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAEhF,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;IA+CO,aAAa,CAAC,EACrB,QAAQ,EACR,KAAK,EACL,GAAG,EACH,UAAU,GAMV;QACA,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAE5B,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;YACvB,IAAI,KAAK,KAAK,SAAS;gBACtB,MAAM,IAAI,iCAAmB,CAAC,iEAAiE,CAAC,CAAC;YAClG,IAAI,GAAG,KAAK,SAAS;gBACpB,MAAM,IAAI,iCAAmB,CAAC,+DAA+D,CAAC,CAAC;YAChG,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC7D,CAAC;QAED,OAAO,SAAS,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,KAA+B,EAAE,GAAY;QACxE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC7D,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,wBAAU,CACnB,sBAAsB,GAAG,+DAA+D,SAAS,GAAG,CAAC,EAAE,CACvG,CAAC;QACH,CAAC;QAED,OAAO;YACN,MAAM,EAAE,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,SAAS,GAAG,CAAC;YAC5B,UAAU;SACV,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,KAA+B;QAC1D,MAAM,eAAe,GAAG,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,CAAsB,CAAC;QAEtF,IAAI,eAAe,YAAY,cAAM,EAAE,CAAC;YACvC,IAAI,eAAe,CAAC,MAAM;gBAAE,MAAM,IAAI,iCAAmB,CAAC,2CAA2C,CAAC,CAAC;YACvG,OAAO,eAAe,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC5C,CAAC;QAED,IAAK,eAA2B,YAAY,eAAE,EAAE,CAAC;YAChD,OAAQ,eAAsB,CAAC,QAAQ,EAAE,CAAC;QAC3C,CAAC;QAED,MAAM,IAAI,iCAAmB,CAAC,0DAA0D,CAAC,CAAC;IAC3F,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,KAA+B,EAAE,UAAkB;QAC7E,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACpC,MAAM,YAAY,GAAG,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC3E,OAAO,UAAU,GAAG,GAAG,IAAI,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC;QAC/E,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QAC9D,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;YAC5B,MAAM,iBAAiB,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YACjE,IAAI,iBAAiB,CAAC,MAAM;gBAAE,MAAM,IAAI,iCAAmB,CAAC,0CAA0C,CAAC,CAAC;YACxG,OAAO,iBAAiB,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC9C,CAAC;QAED,OAAO,eAAe,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAClD,CAAC;;AAvIM,+CAAc,GAAG,wBAAwB,AAA3B,CAA4B;AAC1C,gDAAe,GAAG;IACxB,CAAC,SAAS,EAAE,QAAQ,CAAC;IACrB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;IACvC,CAAC,kBAAkB,EAAE,QAAQ,CAAC;IAC9B,CAAC,SAAS,EAAE,iBAAiB,CAAC;CAC9B,AALqB,CAKpB;kBAPkB,gCAAgC"}
1
+ {"version":3,"file":"AccountsStakingPayoutsController.js","sourceRoot":"","sources":["../../../../src/controllers/accounts/AccountsStakingPayoutsController.ts"],"names":[],"mappings":"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"}
@@ -9,13 +9,21 @@ import AbstractController from '../AbstractController';
9
9
  * Query params:
10
10
  * - (Optional)`at`: Block at which to retrieve runtime version information at. Block
11
11
  * identifier, as the block height or block hash. Defaults to most recent block.
12
+ * - (Optional)`useRcBlock`: When set to 'true', uses the relay chain block specified in the 'at' parameter to determine corresponding Asset Hub block(s). Only supported for Asset Hub endpoints.
12
13
  *
13
14
  * Returns:
15
+ * - When using `useRcBlock` parameter: An array of response objects, one for each Asset Hub block found
16
+ * in the specified relay chain block. Returns empty array `[]` if no Asset Hub blocks found.
17
+ * - When using `at` parameter or no query params: A single response object.
18
+ *
19
+ * Response object structure:
14
20
  * - `at`: Block number and hash at which the call was made.
15
21
  * - `vesting`: Vesting schedule for an account.
16
22
  * - `locked`: Number of tokens locked at start.
17
23
  * - `perBlock`: Number of tokens that gets unlocked every block after `startingBlock`.
18
24
  * - `startingBlock`: Starting block for unlocking(vesting).
25
+ * - `rcBlockNumber`: The relay chain block number used for the query. Only present when `useRcBlock` parameter is used.
26
+ * - `ahTimestamp`: The Asset Hub block timestamp. Only present when `useRcBlock` parameter is used.
19
27
  *
20
28
  * Substrate Reference:
21
29
  * - Vesting Pallet: https://crates.parity.io/pallet_vesting/index.html
@@ -18,7 +18,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
18
18
  return (mod && mod.__esModule) ? mod : { "default": mod };
19
19
  };
20
20
  Object.defineProperty(exports, "__esModule", { value: true });
21
- const chains_config_1 = require("../../chains-config");
22
21
  const middleware_1 = require("../../middleware");
23
22
  const services_1 = require("../../services");
24
23
  const AbstractController_1 = __importDefault(require("../AbstractController"));
@@ -31,13 +30,21 @@ const AbstractController_1 = __importDefault(require("../AbstractController"));
31
30
  * Query params:
32
31
  * - (Optional)`at`: Block at which to retrieve runtime version information at. Block
33
32
  * identifier, as the block height or block hash. Defaults to most recent block.
33
+ * - (Optional)`useRcBlock`: When set to 'true', uses the relay chain block specified in the 'at' parameter to determine corresponding Asset Hub block(s). Only supported for Asset Hub endpoints.
34
34
  *
35
35
  * Returns:
36
+ * - When using `useRcBlock` parameter: An array of response objects, one for each Asset Hub block found
37
+ * in the specified relay chain block. Returns empty array `[]` if no Asset Hub blocks found.
38
+ * - When using `at` parameter or no query params: A single response object.
39
+ *
40
+ * Response object structure:
36
41
  * - `at`: Block number and hash at which the call was made.
37
42
  * - `vesting`: Vesting schedule for an account.
38
43
  * - `locked`: Number of tokens locked at start.
39
44
  * - `perBlock`: Number of tokens that gets unlocked every block after `startingBlock`.
40
45
  * - `startingBlock`: Starting block for unlocking(vesting).
46
+ * - `rcBlockNumber`: The relay chain block number used for the query. Only present when `useRcBlock` parameter is used.
47
+ * - `ahTimestamp`: The Asset Hub block timestamp. Only present when `useRcBlock` parameter is used.
41
48
  *
42
49
  * Substrate Reference:
43
50
  * - Vesting Pallet: https://crates.parity.io/pallet_vesting/index.html
@@ -52,18 +59,39 @@ class AccountsVestingInfoController extends AbstractController_1.default {
52
59
  * @param req Express Request
53
60
  * @param res Express Response
54
61
  */
55
- this.getAccountVestingInfo = async ({ params: { address }, query: { at } }, res) => {
56
- const [hash, { specName }] = await Promise.all([this.getHashFromAt(at), this.api.rpc.state.getRuntimeVersion()]);
57
- if (typeof at === 'string' && chains_config_1.assetHubSpecNames.has(specName.toString())) {
58
- // if a block is queried and connection is on asset hub, throw error with unsupported messaging
59
- throw Error(`Query Parameter 'at' is not supported for /accounts/:address/vesting-info when connected to assetHub.`);
62
+ this.getAccountVestingInfo = async ({ params: { address }, query: { at, useRcBlock } }, res) => {
63
+ if (useRcBlock === 'true') {
64
+ const rcAtResults = await this.getHashFromRcAt(at);
65
+ // Return empty array if no Asset Hub blocks found
66
+ if (rcAtResults.length === 0) {
67
+ AccountsVestingInfoController.sanitizedSend(res, []);
68
+ return;
69
+ }
70
+ // Process each Asset Hub block found
71
+ const results = [];
72
+ for (const { ahHash, rcBlockNumber } of rcAtResults) {
73
+ const result = await this.service.fetchAccountVestingInfo(ahHash, address);
74
+ const apiAt = await this.api.at(ahHash);
75
+ const ahTimestamp = await apiAt.query.timestamp.now();
76
+ const enhancedResult = {
77
+ ...result,
78
+ rcBlockNumber,
79
+ ahTimestamp: ahTimestamp.toString(),
80
+ };
81
+ results.push(enhancedResult);
82
+ }
83
+ AccountsVestingInfoController.sanitizedSend(res, results);
84
+ }
85
+ else {
86
+ const hash = await this.getHashFromAt(at);
87
+ const result = await this.service.fetchAccountVestingInfo(hash, address);
88
+ AccountsVestingInfoController.sanitizedSend(res, result);
60
89
  }
61
- AccountsVestingInfoController.sanitizedSend(res, await this.service.fetchAccountVestingInfo(hash, address));
62
90
  };
63
91
  this.initRoutes();
64
92
  }
65
93
  initRoutes() {
66
- this.router.use(this.path, middleware_1.validateAddress);
94
+ this.router.use(this.path, middleware_1.validateAddress, middleware_1.validateUseRcBlock);
67
95
  this.safeMountAsyncGetHandlers([['', this.getAccountVestingInfo]]);
68
96
  }
69
97
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AccountsVestingInfoController.js","sourceRoot":"","sources":["../../../../src/controllers/accounts/AccountsVestingInfoController.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;;;;;AAKxE,uDAAwD;AACxD,iDAAmD;AACnD,6CAA4D;AAC5D,+EAAuD;AAEvD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAqB,6BAA8B,SAAQ,4BAA8C;IAIxG,YAAY,GAAW;QACtB,KAAK,CAAC,GAAG,EAAE,iCAAiC,EAAE,IAAI,qCAA0B,CAAC,GAAG,CAAC,CAAC,CAAC;QAUpF;;;;;WAKG;QACK,0BAAqB,GAAkC,KAAK,EACnE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EACtC,GAAG,EACa,EAAE;YAClB,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;YAEjH,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,iCAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;gBAC1E,+FAA+F;gBAC/F,MAAM,KAAK,CACV,uGAAuG,CACvG,CAAC;YACH,CAAC;YAED,6BAA6B,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QAC7G,CAAC,CAAC;QA7BD,IAAI,CAAC,UAAU,EAAE,CAAC;IACnB,CAAC;IAES,UAAU;QACnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,4BAAe,CAAC,CAAC;QAE5C,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;;AAZM,4CAAc,GAAG,qBAAqB,AAAxB,CAAyB;AACvC,6CAAe,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,AAArC,CAAsC;kBAFxC,6BAA6B"}
1
+ {"version":3,"file":"AccountsVestingInfoController.js","sourceRoot":"","sources":["../../../../src/controllers/accounts/AccountsVestingInfoController.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;;;;;AAKxE,iDAAuE;AACvE,6CAA4D;AAC5D,+EAAuD;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAqB,6BAA8B,SAAQ,4BAA8C;IAIxG,YAAY,GAAW;QACtB,KAAK,CAAC,GAAG,EAAE,iCAAiC,EAAE,IAAI,qCAA0B,CAAC,GAAG,CAAC,CAAC,CAAC;QAUpF;;;;;WAKG;QACK,0BAAqB,GAAkC,KAAK,EACnE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAClD,GAAG,EACa,EAAE;YAClB,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;gBAC3B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;gBAEnD,kDAAkD;gBAClD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC9B,6BAA6B,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBACrD,OAAO;gBACR,CAAC;gBAED,qCAAqC;gBACrC,MAAM,OAAO,GAAG,EAAE,CAAC;gBACnB,KAAK,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,WAAW,EAAE,CAAC;oBACrD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBAE3E,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;oBACxC,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;oBAEtD,MAAM,cAAc,GAAG;wBACtB,GAAG,MAAM;wBACT,aAAa;wBACb,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;qBACnC,CAAC;oBAEF,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC9B,CAAC;gBAED,6BAA6B,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACP,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;gBAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACzE,6BAA6B,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC1D,CAAC;QACF,CAAC,CAAC;QAnDD,IAAI,CAAC,UAAU,EAAE,CAAC;IACnB,CAAC;IAES,UAAU;QACnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,4BAAe,EAAE,+BAAkB,CAAC,CAAC;QAEhE,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;;AAZM,4CAAc,GAAG,qBAAqB,AAAxB,CAAyB;AACvC,6CAAe,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,AAArC,CAAsC;kBAFxC,6BAA6B"}
@@ -23,9 +23,17 @@ import AbstractController from '../AbstractController';
23
23
  * - (Optional for `/blocks/{blockId}) `paraId`: When it is set, it will return only the decoded
24
24
  * XCM messages for the specified paraId/parachain Id. To activate this functionality, ensure
25
25
  * that the `decodedXcmMsgs` parameter is set to true.
26
+ * - (Optional for `/blocks/head`) `useRcBlock`: When set to `true`, it will use the latest
27
+ * relay chain block to determine the corresponding Asset Hub block. Only supported for
28
+ * Asset Hub endpoints with relay chain API available.
26
29
  *
27
30
  *
28
31
  * Returns:
32
+ * - When using `useRcBlock` parameter: An array of response objects, one for each Asset Hub block found
33
+ * corresponding to the relay chain block. Returns empty array `[]` if no Asset Hub blocks found.
34
+ * - When using standard block identifiers or no query params: A single response object.
35
+ *
36
+ * Response object structure:
29
37
  * - `number`: Block height.
30
38
  * - `hash`: The block's hash.
31
39
  * - `parentHash`: The hash of the parent block.
@@ -56,6 +64,8 @@ import AbstractController from '../AbstractController';
56
64
  * finalization with the `method` and `data` for each.
57
65
  * - `decodedXcmMsgs`: An array of the decoded XCM messages found within the extrinsics
58
66
  * of the requested block.
67
+ * - `rcBlockNumber`: The relay chain block number used for the query. Only present when `useRcBlock` parameter is used.
68
+ * - `ahTimestamp`: The Asset Hub block timestamp. Only present when `useRcBlock` parameter is used.
59
69
  *
60
70
  * Note: Block finalization does not correspond to consensus, i.e. whether the block is in the
61
71
  * canonical chain. It denotes the finalization of block _construction._