@substrate/api-sidecar 17.5.1 → 18.0.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 (42) hide show
  1. package/build/package.json +14 -14
  2. package/build/src/chains-config/cache/lruCache.d.ts +2 -2
  3. package/build/src/chains-config/cache/lruCache.js +3 -6
  4. package/build/src/chains-config/cache/lruCache.js.map +1 -1
  5. package/build/src/controllers/accounts/AccountsStakingPayoutsController.js +54 -12
  6. package/build/src/controllers/accounts/AccountsStakingPayoutsController.js.map +1 -1
  7. package/build/src/services/accounts/AccountsStakingPayoutsService.d.ts +46 -18
  8. package/build/src/services/accounts/AccountsStakingPayoutsService.js +164 -49
  9. package/build/src/services/accounts/AccountsStakingPayoutsService.js.map +1 -1
  10. package/build/src/services/accounts/kusamaEarlyErasBlockInfo.json +2082 -0
  11. package/build/src/services/blocks/BlocksService.d.ts +2 -2
  12. package/build/src/services/blocks/BlocksService.js.map +1 -1
  13. package/build/src/services/blocks/BlocksService.spec.js +70 -3
  14. package/build/src/services/blocks/BlocksService.spec.js.map +1 -1
  15. package/build/src/services/blocks/XCMDecoder.d.ts +1 -1
  16. package/build/src/services/blocks/XCMDecoder.js +61 -46
  17. package/build/src/services/blocks/XCMDecoder.js.map +1 -1
  18. package/build/src/services/pallets/PalletsAssetConversionService.spec.js +1 -1
  19. package/build/src/services/pallets/PalletsAssetConversionService.spec.js.map +1 -1
  20. package/build/src/services/pallets/PalletsForeignAssetsService.js +2 -3
  21. package/build/src/services/pallets/PalletsForeignAssetsService.js.map +1 -1
  22. package/build/src/services/pallets/PalletsForeignAssetsService.spec.js +4 -4
  23. package/build/src/services/pallets/PalletsForeignAssetsService.spec.js.map +1 -1
  24. package/build/src/services/paras/ParasService.js +1 -1
  25. package/build/src/types/chains-config/ControllerConfig.d.ts +2 -2
  26. package/build/src/types/chains-config/ControllerConfig.js +1 -1
  27. package/build/src/types/responses/AccountStakingInfo.d.ts +3 -3
  28. package/build/src/types/responses/AccountStakingInfo.js +1 -1
  29. package/build/src/types/responses/BlockXCMMessages.d.ts +9 -4
  30. package/build/src/types/responses/BlockXCMMessages.js +1 -1
  31. package/build/src/types/responses/PalletAssetConversion.d.ts +3 -3
  32. package/build/src/types/responses/PalletAssetConversion.js +1 -1
  33. package/build/src/types/responses/SanitizedBackedCandidatesCommitments.d.ts +2 -1
  34. package/build/src/types/responses/SanitizedBackedCandidatesHorizontalMessage.d.ts +4 -0
  35. package/build/src/types/responses/SanitizedBackedCandidatesHorizontalMessage.js +18 -0
  36. package/build/src/types/responses/SanitizedBackedCandidatesHorizontalMessage.js.map +1 -0
  37. package/build/src/types/responses/SanitizedParachainInherentData.d.ts +3 -2
  38. package/build/src/types/responses/SanitizedParachainInherentData.js +1 -1
  39. package/build/src/types/responses/SanitizedParachainInherentDataHorizontalMessage.d.ts +4 -0
  40. package/build/src/types/responses/SanitizedParachainInherentDataHorizontalMessage.js +18 -0
  41. package/build/src/types/responses/SanitizedParachainInherentDataHorizontalMessage.js.map +1 -0
  42. package/package.json +14 -14
@@ -14,11 +14,15 @@
14
14
  //
15
15
  // You should have received a copy of the GNU General Public License
16
16
  // along with this program. If not, see <http://www.gnu.org/licenses/>.
17
+ var __importDefault = (this && this.__importDefault) || function (mod) {
18
+ return (mod && mod.__esModule) ? mod : { "default": mod };
19
+ };
17
20
  Object.defineProperty(exports, "__esModule", { value: true });
18
21
  exports.AccountsStakingPayoutsService = void 0;
19
22
  const calc_1 = require("@substrate/calc");
20
23
  const http_errors_1 = require("http-errors");
21
24
  const AbstractService_1 = require("../AbstractService");
25
+ const kusamaEarlyErasBlockInfo_json_1 = __importDefault(require("./kusamaEarlyErasBlockInfo.json"));
22
26
  class AccountsStakingPayoutsService extends AbstractService_1.AbstractService {
23
27
  /**
24
28
  * Fetch and derive payouts for `address`.
@@ -34,41 +38,47 @@ class AccountsStakingPayoutsService extends AbstractService_1.AbstractService {
34
38
  async fetchAccountStakingPayout(hash, address, depth, era, unclaimedOnly, currentEra, historicApi) {
35
39
  const { api } = this;
36
40
  const { number } = await api.rpc.chain.getHeader(hash);
41
+ const sanitizedEra = era < 0 ? 0 : era;
42
+ const at = {
43
+ height: number.unwrap().toString(10),
44
+ hash,
45
+ };
46
+ // User friendly - we don't error if the user specified era & depth combo <= 0, instead just start at 0
47
+ const startEra = Math.max(0, sanitizedEra - (depth - 1));
48
+ const runtimeInfo = await this.api.rpc.state.getRuntimeVersion(at.hash);
49
+ const isKusama = runtimeInfo.specName.toString().toLowerCase() === 'kusama';
37
50
  /**
38
51
  * Given https://github.com/polkadot-js/api/issues/5232,
39
52
  * polkadot-js, and substrate treats historyDepth as a consts. In order
40
53
  * to maintain historical integrity we need to make a check to cover both the
41
54
  * storage query and the consts.
42
55
  */
43
- let historyDepth;
56
+ let historyDepth = api.registry.createType('u32', 84);
44
57
  if (historicApi.consts.staking.historyDepth) {
45
58
  historyDepth = historicApi.consts.staking.historyDepth;
46
59
  }
47
- else {
60
+ else if (historicApi.query.staking.historyDepth) {
48
61
  historyDepth = await historicApi.query.staking.historyDepth();
49
62
  }
63
+ else if (currentEra < 518 && isKusama) {
64
+ historyDepth = api.registry.createType('u32', 0);
65
+ }
50
66
  // Information is kept for eras in `[current_era - history_depth; current_era]`
51
- if (depth > historyDepth.toNumber()) {
67
+ if (historyDepth.toNumber() !== 0 && depth > historyDepth.toNumber()) {
52
68
  throw new http_errors_1.BadRequest('Must specify a depth less than history_depth');
53
69
  }
54
- if (era - (depth - 1) < currentEra - historyDepth.toNumber()) {
70
+ if (era - (depth - 1) < currentEra - historyDepth.toNumber() && historyDepth.toNumber() !== 0) {
55
71
  // In scenarios where depth is not > historyDepth, but the user specifies an era
56
72
  // and historyDepth combo that would lead to querying eras older than history depth
57
73
  throw new http_errors_1.BadRequest('Must specify era and depth such that era - (depth - 1) is less ' +
58
74
  'than or equal to current_era - history_depth.');
59
75
  }
60
- const at = {
61
- height: number.unwrap().toString(10),
62
- hash,
63
- };
64
- // User friendly - we don't error if the user specified era & depth combo <= 0, instead just start at 0
65
- const startEra = Math.max(0, era - (depth - 1));
66
76
  // Fetch general data about the era
67
- const allErasGeneral = await this.fetchAllErasGeneral(historicApi, startEra, era);
77
+ const allErasGeneral = await this.fetchAllErasGeneral(historicApi, startEra, sanitizedEra, at, isKusama);
68
78
  // With the general data, we can now fetch the commission of each validator `address` nominates
69
79
  const allErasCommissions = await this.fetchAllErasCommissions(historicApi, address, startEra,
70
80
  // Create an array of `DeriveEraExposure`
71
- allErasGeneral.map((eraGeneral) => eraGeneral[0])).catch((err) => {
81
+ allErasGeneral.map((eraGeneral) => eraGeneral[0]), isKusama).catch((err) => {
72
82
  throw this.createHttpErrorForAddr(address, err);
73
83
  });
74
84
  // Group together data by Era so we can easily associate parts that are used congruently downstream
@@ -93,40 +103,88 @@ class AccountsStakingPayoutsService extends AbstractService_1.AbstractService {
93
103
  });
94
104
  return {
95
105
  at,
96
- erasPayouts: allEraData.map((eraData) => this.deriveEraPayouts(address, unclaimedOnly, eraData)),
106
+ erasPayouts: allEraData.map((eraData) => this.deriveEraPayouts(address, unclaimedOnly, eraData, isKusama)),
97
107
  };
98
108
  }
99
109
  /**
100
110
  * Fetch general info about eras in the inclusive range `startEra` .. `era`.
101
111
  *
102
- * @param api `ApiPromise`
103
- * @param hash `BlockHash` to make call at
112
+ * @param historicApi Historic api for querying past blocks
104
113
  * @param startEra first era to get data for
105
114
  * @param era the last era to get data for
115
+ * @param blockNumber block information to ensure compatibility with older eras
106
116
  */
107
- async fetchAllErasGeneral(historicApi, startEra, era) {
117
+ async fetchAllErasGeneral(historicApi, startEra, era, blockNumber, isKusama) {
108
118
  const allDeriveQuerys = [];
119
+ let nextEraStartBlock = Number(blockNumber.height);
120
+ let eraDurationInBlocks = 0;
121
+ const earlyErasBlockInfo = kusamaEarlyErasBlockInfo_json_1.default;
109
122
  for (let e = startEra; e <= era; e += 1) {
110
123
  const eraIndex = historicApi.registry.createType('EraIndex', e);
111
- const eraGeneralTuple = Promise.all([
112
- this.deriveEraExposure(historicApi, eraIndex),
113
- historicApi.query.staking.erasRewardPoints(eraIndex),
114
- historicApi.query.staking.erasValidatorReward(eraIndex),
115
- ]);
116
- allDeriveQuerys.push(eraGeneralTuple);
124
+ if (historicApi.query.staking.erasRewardPoints) {
125
+ const eraGeneralTuple = Promise.all([
126
+ this.deriveEraExposure(historicApi, eraIndex),
127
+ historicApi.query.staking.erasRewardPoints(eraIndex),
128
+ historicApi.query.staking.erasValidatorReward(eraIndex),
129
+ ]);
130
+ allDeriveQuerys.push(eraGeneralTuple);
131
+ }
132
+ else {
133
+ // We check if we are in the Kusama chain since currently we have
134
+ // the block info for the early eras only for Kusama.
135
+ if (isKusama) {
136
+ // Retrieve the first block of the era following the given era in order
137
+ // to fetch the `Rewards` event at that block.
138
+ nextEraStartBlock = era === 0 ? earlyErasBlockInfo[era + 1].start : earlyErasBlockInfo[era].start;
139
+ }
140
+ else {
141
+ const sessionDuration = historicApi.consts.staking.sessionsPerEra.toNumber();
142
+ const epochDuration = historicApi.consts.babe.epochDuration.toNumber();
143
+ eraDurationInBlocks = sessionDuration * epochDuration;
144
+ }
145
+ const nextEraStartBlockHash = await this.api.rpc.chain.getBlockHash(nextEraStartBlock);
146
+ const currentEraEndBlockHash = era === 0
147
+ ? await this.api.rpc.chain.getBlockHash(earlyErasBlockInfo[0].end)
148
+ : await this.api.rpc.chain.getBlockHash(earlyErasBlockInfo[era - 1].end);
149
+ let reward = historicApi.registry.createType('Option<u128>');
150
+ const blockInfo = await this.api.rpc.chain.getBlock(nextEraStartBlockHash);
151
+ const allRecords = await historicApi.query.system.events();
152
+ blockInfo.block.extrinsics.forEach((index) => {
153
+ allRecords
154
+ .filter(({ phase }) => phase.isApplyExtrinsic && phase.asApplyExtrinsic.eq(index))
155
+ .forEach(({ event }) => {
156
+ if (event.method.toString() === 'Reward') {
157
+ const [dispatchInfo] = event.data;
158
+ reward = historicApi.registry.createType('Option<u128>', dispatchInfo.toString());
159
+ }
160
+ });
161
+ });
162
+ const points = this.fetchHistoricRewardPoints(currentEraEndBlockHash);
163
+ const rewardPromise = new Promise((resolve) => {
164
+ resolve(reward);
165
+ });
166
+ if (!isKusama) {
167
+ nextEraStartBlock = nextEraStartBlock - eraDurationInBlocks;
168
+ }
169
+ const eraGeneralTuple = Promise.all([this.deriveEraExposure(historicApi, eraIndex), points, rewardPromise]);
170
+ allDeriveQuerys.push(eraGeneralTuple);
171
+ }
117
172
  }
118
173
  return Promise.all(allDeriveQuerys);
119
174
  }
175
+ async fetchHistoricRewardPoints(hash) {
176
+ const historicApi = await this.api.at(hash);
177
+ return historicApi.query.staking.currentEraPointsEarned();
178
+ }
120
179
  /**
121
180
  * Fetch the commission & staking ledger for each `validatorId` in `deriveErasExposures`.
122
181
  *
123
- * @param api `ApiPromise`
124
- * @param hash `BlockHash` to make call at
182
+ * @param historicApi Historic api for querying past blocks
125
183
  * @param address address of the _Stash_ account to get the payouts of
126
184
  * @param startEra first era to get data for
127
185
  * @param deriveErasExposures exposures per era for `address`
128
186
  */
129
- fetchAllErasCommissions(historicApi, address, startEra, deriveErasExposures) {
187
+ fetchAllErasCommissions(historicApi, address, startEra, deriveErasExposures, isKusama) {
130
188
  // Cache StakingLedger to reduce redundant queries to node
131
189
  const validatorLedgerCache = {};
132
190
  const allErasCommissions = deriveErasExposures.map((deriveEraExposure, idx) => {
@@ -135,7 +193,7 @@ class AccountsStakingPayoutsService extends AbstractService_1.AbstractService {
135
193
  if (!nominatedExposures) {
136
194
  return [];
137
195
  }
138
- const singleEraCommissions = nominatedExposures.map(({ validatorId }) => this.fetchCommissionAndLedger(historicApi, validatorId, currEra, validatorLedgerCache));
196
+ const singleEraCommissions = nominatedExposures.map(({ validatorId }) => this.fetchCommissionAndLedger(historicApi, validatorId, currEra, validatorLedgerCache, isKusama));
139
197
  return Promise.all(singleEraCommissions);
140
198
  });
141
199
  return Promise.all(allErasCommissions);
@@ -147,24 +205,27 @@ class AccountsStakingPayoutsService extends AbstractService_1.AbstractService {
147
205
  * @param era the era to query
148
206
  * @param eraData data about the address and era we are calculating payouts for
149
207
  */
150
- deriveEraPayouts(address, unclaimedOnly, { deriveEraExposure, eraRewardPoints, erasValidatorRewardOption, exposuresWithCommission, eraIndex }) {
208
+ deriveEraPayouts(address, unclaimedOnly, { deriveEraExposure, eraRewardPoints, erasValidatorRewardOption, exposuresWithCommission, eraIndex }, isKusama) {
151
209
  if (!exposuresWithCommission) {
152
210
  return {
153
211
  message: `${address} has no nominations for the era ${eraIndex.toString()}`,
154
212
  };
155
213
  }
156
- if (erasValidatorRewardOption.isNone) {
214
+ if (erasValidatorRewardOption.isNone && eraIndex.toNumber() !== 0) {
215
+ const event = eraIndex.toNumber() > 517 ? 'ErasValidatorReward' : 'Reward';
157
216
  return {
158
- message: `No ErasValidatorReward for the era ${eraIndex.toString()}`,
217
+ message: `No ${event} for the era ${eraIndex.toString()}`,
159
218
  };
160
219
  }
161
220
  const totalEraRewardPoints = eraRewardPoints.total;
162
- const totalEraPayout = erasValidatorRewardOption.unwrap();
221
+ const totalEraPayout = eraIndex.toNumber() !== 0 ? erasValidatorRewardOption.unwrap() : this.api.registry.createType('BalanceOf', 0);
163
222
  const calcPayout = calc_1.CalcPayout.from_params(totalEraRewardPoints.toNumber(), totalEraPayout.toString(10));
164
223
  // Iterate through validators that this nominator backs and calculate payouts for the era
165
224
  const payouts = [];
166
225
  for (const { validatorId, commission: validatorCommission, validatorLedger } of exposuresWithCommission) {
167
- const totalValidatorRewardPoints = this.extractTotalValidatorRewardPoints(eraRewardPoints, validatorId);
226
+ const totalValidatorRewardPoints = deriveEraExposure.validatorIndex
227
+ ? this.extractTotalValidatorRewardPoints(eraRewardPoints, validatorId, deriveEraExposure.validatorIndex)
228
+ : this.extractTotalValidatorRewardPoints(eraRewardPoints, validatorId);
168
229
  if (!totalValidatorRewardPoints || (totalValidatorRewardPoints === null || totalValidatorRewardPoints === void 0 ? void 0 : totalValidatorRewardPoints.toNumber()) === 0) {
169
230
  // Nothing to do if there are no reward points for the validator
170
231
  continue;
@@ -200,6 +261,9 @@ class AccountsStakingPayoutsService extends AbstractService_1.AbstractService {
200
261
  continue;
201
262
  }
202
263
  }
264
+ else if (eraIndex.toNumber() < 518 && isKusama) {
265
+ indexOfEra = eraIndex.toNumber();
266
+ }
203
267
  else {
204
268
  continue;
205
269
  }
@@ -228,26 +292,41 @@ class AccountsStakingPayoutsService extends AbstractService_1.AbstractService {
228
292
  /**
229
293
  * Fetch the `commission` and `StakingLedger` of `validatorId`.
230
294
  *
231
- * @param api
295
+ * @param historicApi Historic api for querying past blocks
232
296
  * @param validatorId accountId of a validator's _Stash_ account
233
297
  * @param era the era to query
234
- * @param hash `BlockHash` to make call at
235
298
  * @param validatorLedgerCache object mapping validatorId => StakingLedger to limit redundant queries
236
299
  */
237
- async fetchCommissionAndLedger(historicApi, validatorId, era, validatorLedgerCache) {
300
+ async fetchCommissionAndLedger(historicApi, validatorId, era, validatorLedgerCache, isKusama) {
238
301
  let commission;
239
302
  let validatorLedger;
303
+ let commissionPromise;
304
+ const ancient = era < 518;
240
305
  if (validatorId in validatorLedgerCache) {
241
306
  validatorLedger = validatorLedgerCache[validatorId];
242
- const prefs = await historicApi.query.staking.erasValidatorPrefs(era, validatorId);
243
- commission = prefs.commission.unwrap();
307
+ let prefs;
308
+ if (!ancient) {
309
+ prefs = await historicApi.query.staking.erasValidatorPrefs(era, validatorId);
310
+ commission = prefs.commission.unwrap();
311
+ }
312
+ else {
313
+ prefs = (await historicApi.query.staking.validators(validatorId));
314
+ commission = prefs[0].commission.unwrap();
315
+ }
244
316
  }
245
317
  else {
318
+ commissionPromise =
319
+ ancient && isKusama
320
+ ? historicApi.query.staking.validators(validatorId)
321
+ : historicApi.query.staking.erasValidatorPrefs(era, validatorId);
246
322
  const [prefs, validatorControllerOption] = await Promise.all([
247
- historicApi.query.staking.erasValidatorPrefs(era, validatorId),
323
+ commissionPromise,
248
324
  historicApi.query.staking.bonded(validatorId),
249
325
  ]);
250
- commission = prefs.commission.unwrap();
326
+ commission =
327
+ ancient && isKusama
328
+ ? prefs[0].commission.unwrap()
329
+ : prefs.commission.unwrap();
251
330
  if (validatorControllerOption.isNone) {
252
331
  return {
253
332
  commission,
@@ -271,11 +350,11 @@ class AccountsStakingPayoutsService extends AbstractService_1.AbstractService {
271
350
  * The original version uses the base ApiDerive implementation which does not include the ApiDecoration implementation.
272
351
  * It is required in this version to query older blocks for their historic data.
273
352
  *
274
- * @param historicApi
275
- * @param eraIndex
353
+ * @param historicApi Historic api for querying past blocks
354
+ * @param eraIndex index of the era to query
276
355
  */
277
356
  async deriveEraExposure(historicApi, eraIndex) {
278
- function mapStakers(era, stakers) {
357
+ function mapStakers(era, stakers, validatorIndex) {
279
358
  const nominators = {};
280
359
  const validators = {};
281
360
  stakers.forEach(([key, exposure]) => {
@@ -287,22 +366,58 @@ class AccountsStakingPayoutsService extends AbstractService_1.AbstractService {
287
366
  nominators[nominatorId].push({ validatorId, validatorIndex });
288
367
  });
289
368
  });
290
- return { era, nominators, validators };
369
+ if (Object.keys(validatorIndex).length > 0) {
370
+ return { era, nominators, validators, validatorIndex };
371
+ }
372
+ else {
373
+ return { era, nominators, validators };
374
+ }
375
+ }
376
+ let storageKeys = [];
377
+ const validatorIndex = {};
378
+ if (historicApi.query.staking.erasStakersClipped) {
379
+ storageKeys = await historicApi.query.staking.erasStakersClipped.entries(eraIndex);
380
+ }
381
+ else {
382
+ const validators = (await historicApi.query.staking.currentElected());
383
+ const validatorId = [];
384
+ validators.map((validator, index) => {
385
+ validatorIndex[validator.toString()] = index;
386
+ validatorId.push(validator);
387
+ });
388
+ let eraExposure = {};
389
+ for (const validator of validatorId) {
390
+ const storageKey = {
391
+ args: [eraIndex, validator],
392
+ };
393
+ eraExposure = (await historicApi.query.staking.stakers(validator));
394
+ storageKeys.push([storageKey, eraExposure]);
395
+ }
291
396
  }
292
- const eraExposure = await historicApi.query.staking.erasStakersClipped.entries(eraIndex);
293
- return mapStakers(eraIndex, eraExposure);
397
+ return mapStakers(eraIndex, storageKeys, validatorIndex);
294
398
  }
295
399
  /**
296
400
  * Extract the reward points of `validatorId` from `EraRewardPoints`.
297
401
  *
298
402
  * @param eraRewardPoints
299
403
  * @param validatorId accountId of a validator's _Stash_ account
404
+ * @param validatorIndex index of the validator in relation to the `EraPoints`
405
+ * array
300
406
  * */
301
- extractTotalValidatorRewardPoints(eraRewardPoints, validatorId) {
407
+ extractTotalValidatorRewardPoints(eraRewardPoints, validatorId, validatorIndex) {
302
408
  // Ideally we would just use the map's `get`, but that does not seem to be working here
303
- for (const [id, points] of eraRewardPoints.individual.entries()) {
304
- if (id.toString() === validatorId) {
305
- return points;
409
+ if (validatorIndex === undefined) {
410
+ for (const [id, points] of eraRewardPoints.individual.entries()) {
411
+ if (id.toString() === validatorId) {
412
+ return points;
413
+ }
414
+ }
415
+ }
416
+ else {
417
+ for (const [id, points] of eraRewardPoints.individual.entries()) {
418
+ if (id.toString() === validatorIndex[validatorId.toString()].toString()) {
419
+ return points;
420
+ }
306
421
  }
307
422
  }
308
423
  return;
@@ -313,7 +428,7 @@ class AccountsStakingPayoutsService extends AbstractService_1.AbstractService {
313
428
  *
314
429
  * @param address address of the _Stash_ account to get the exposure of behind `validatorId`
315
430
  * @param validatorId accountId of a validator's _Stash_ account
316
- * @param deriveEraExposure
431
+ * @param deriveEraExposure result of deriveEraExposure
317
432
  */
318
433
  extractExposure(address, validatorId, deriveEraExposure) {
319
434
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"AccountsStakingPayoutsService.js","sourceRoot":"","sources":["../../../../src/services/accounts/AccountsStakingPayoutsService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AccountsStakingPayoutsService.js","sourceRoot":"","sources":["../../../../src/services/accounts/AccountsStakingPayoutsService.ts"],"names":[],"mappings":"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"}