@substrate/api-sidecar 11.1.1 → 11.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 (82) hide show
  1. package/README.md +10 -17
  2. package/build/package.json +22 -22
  3. package/build/src/chains-config/acalaControllers.d.ts +5 -0
  4. package/build/src/chains-config/acalaControllers.js +35 -0
  5. package/build/src/chains-config/acalaControllers.js.map +1 -0
  6. package/build/src/chains-config/calamariControllers.d.ts +5 -0
  7. package/build/src/chains-config/calamariControllers.js +39 -0
  8. package/build/src/chains-config/calamariControllers.js.map +1 -0
  9. package/build/src/chains-config/index.js +8 -0
  10. package/build/src/chains-config/index.js.map +1 -1
  11. package/build/src/chains-config/karuraControllers.d.ts +5 -0
  12. package/build/src/chains-config/karuraControllers.js +35 -0
  13. package/build/src/chains-config/karuraControllers.js.map +1 -0
  14. package/build/src/chains-config/mantaControllers.d.ts +5 -0
  15. package/build/src/chains-config/mantaControllers.js +39 -0
  16. package/build/src/chains-config/mantaControllers.js.map +1 -0
  17. package/build/src/chains-config/metadata-consts/acalaConsts.d.ts +2 -0
  18. package/build/src/chains-config/metadata-consts/acalaConsts.js +11 -0
  19. package/build/src/chains-config/metadata-consts/acalaConsts.js.map +1 -0
  20. package/build/src/chains-config/metadata-consts/calamariConsts.d.ts +2 -0
  21. package/build/src/chains-config/metadata-consts/calamariConsts.js +11 -0
  22. package/build/src/chains-config/metadata-consts/calamariConsts.js.map +1 -0
  23. package/build/src/chains-config/metadata-consts/index.js +12 -0
  24. package/build/src/chains-config/metadata-consts/index.js.map +1 -1
  25. package/build/src/chains-config/metadata-consts/karuraConsts.d.ts +2 -0
  26. package/build/src/chains-config/metadata-consts/karuraConsts.js +14 -0
  27. package/build/src/chains-config/metadata-consts/karuraConsts.js.map +1 -0
  28. package/build/src/chains-config/metadata-consts/mantaConsts.d.ts +2 -0
  29. package/build/src/chains-config/metadata-consts/mantaConsts.js +11 -0
  30. package/build/src/chains-config/metadata-consts/mantaConsts.js.map +1 -0
  31. package/build/src/chains-config/metadata-consts/polkadotConsts.js +1 -1
  32. package/build/src/chains-config/metadata-consts/polkadotConsts.js.map +1 -1
  33. package/build/src/controllers/paras/ParasController.js +13 -7
  34. package/build/src/controllers/paras/ParasController.js.map +1 -1
  35. package/build/src/controllers/transaction/TransactionMaterialController.d.ts +8 -0
  36. package/build/src/controllers/transaction/TransactionMaterialController.js +38 -3
  37. package/build/src/controllers/transaction/TransactionMaterialController.js.map +1 -1
  38. package/build/src/services/accounts/AccountsStakingPayoutsService.d.ts +11 -5
  39. package/build/src/services/accounts/AccountsStakingPayoutsService.js +16 -15
  40. package/build/src/services/accounts/AccountsStakingPayoutsService.js.map +1 -1
  41. package/build/src/services/accounts/AccountsStakingPayoutsService.spec.d.ts +1 -0
  42. package/build/src/services/accounts/AccountsStakingPayoutsService.spec.js +152 -0
  43. package/build/src/services/accounts/AccountsStakingPayoutsService.spec.js.map +1 -0
  44. package/build/src/services/pallets/PalletsStakingProgressService.js +22 -21
  45. package/build/src/services/pallets/PalletsStakingProgressService.js.map +1 -1
  46. package/build/src/services/pallets/PalletsStakingProgressService.spec.js +29 -26
  47. package/build/src/services/pallets/PalletsStakingProgressService.spec.js.map +1 -1
  48. package/build/src/services/paras/ParasService.d.ts +12 -2
  49. package/build/src/services/paras/ParasService.js +76 -39
  50. package/build/src/services/paras/ParasService.js.map +1 -1
  51. package/build/src/services/paras/ParasService.spec.js +37 -35
  52. package/build/src/services/paras/ParasService.spec.js.map +1 -1
  53. package/build/src/services/test-helpers/mock/accounts/deriveNominators.d.ts +10 -0
  54. package/build/src/services/test-helpers/mock/accounts/deriveNominators.js +70 -0
  55. package/build/src/services/test-helpers/mock/accounts/deriveNominators.js.map +1 -0
  56. package/build/src/services/test-helpers/mock/accounts/deriveValidators.d.ts +18 -0
  57. package/build/src/services/test-helpers/mock/accounts/deriveValidators.js +28 -0
  58. package/build/src/services/test-helpers/mock/accounts/deriveValidators.js.map +1 -0
  59. package/build/src/services/test-helpers/mock/accounts/eraRewardPoints.d.ts +6 -0
  60. package/build/src/services/test-helpers/mock/accounts/eraRewardPoints.js +17 -0
  61. package/build/src/services/test-helpers/mock/accounts/eraRewardPoints.js.map +1 -0
  62. package/build/src/services/test-helpers/mock/accounts/index.d.ts +4 -0
  63. package/build/src/services/test-helpers/mock/accounts/index.js +17 -0
  64. package/build/src/services/test-helpers/mock/accounts/index.js.map +1 -0
  65. package/build/src/services/test-helpers/mock/accounts/ledger.d.ts +8 -0
  66. package/build/src/services/test-helpers/mock/accounts/ledger.js +19 -0
  67. package/build/src/services/test-helpers/mock/accounts/ledger.js.map +1 -0
  68. package/build/src/services/test-helpers/responses/accounts/stakingPayout.json +33 -0
  69. package/build/src/services/transaction/TransactionMaterialService.d.ts +2 -1
  70. package/build/src/services/transaction/TransactionMaterialService.js +4 -3
  71. package/build/src/services/transaction/TransactionMaterialService.js.map +1 -1
  72. package/build/src/services/transaction/TransactionMaterialService.spec.js +22 -2
  73. package/build/src/services/transaction/TransactionMaterialService.spec.js.map +1 -1
  74. package/build/src/test-helpers/metadata/polkadotV9122Metadata.d.ts +1 -0
  75. package/build/src/test-helpers/metadata/polkadotV9122Metadata.js +5 -0
  76. package/build/src/test-helpers/metadata/polkadotV9122Metadata.js.map +1 -0
  77. package/build/src/test-helpers/registries/polkadotRegistry.d.ts +4 -0
  78. package/build/src/test-helpers/registries/polkadotRegistry.js +6 -1
  79. package/build/src/test-helpers/registries/polkadotRegistry.js.map +1 -1
  80. package/build/src/types/responses/Paras.d.ts +9 -6
  81. package/build/src/types/responses/TransactionMaterial.d.ts +2 -1
  82. package/package.json +22 -22
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const Log_1 = require("../../logging/Log");
6
7
  const services_1 = require("../../services");
7
8
  const AbstractController_1 = __importDefault(require("../AbstractController"));
8
9
  /**
@@ -44,16 +45,50 @@ class TransactionMaterialController extends AbstractController_1.default {
44
45
  * @param _req Express Request
45
46
  * @param res Express Response
46
47
  */
47
- this.getTransactionMaterial = async ({ query: { noMeta, at } }, res) => {
48
+ this.getTransactionMaterial = async ({ query: { noMeta, at, metadata } }, res) => {
48
49
  const hash = await this.getHashFromAt(at);
49
- const noMetaArg = noMeta === 'true';
50
- TransactionMaterialController.sanitizedSend(res, await this.service.fetchTransactionMaterial(hash, noMetaArg));
50
+ const metadataArg = this.parseMetadataArgs(noMeta, metadata);
51
+ TransactionMaterialController.sanitizedSend(res, await this.service.fetchTransactionMaterial(hash, metadataArg));
51
52
  };
52
53
  this.initRoutes();
53
54
  }
54
55
  initRoutes() {
55
56
  this.safeMountAsyncGetHandlers([['', this.getTransactionMaterial]]);
56
57
  }
58
+ /**
59
+ * The metadata args have two options. `json`, and `scale`.
60
+ *
61
+ * @param noMeta
62
+ * @param metadata
63
+ */
64
+ parseMetadataArgs(noMeta, metadata) {
65
+ /**
66
+ * Checks to see if the `metadata` query param is inputted, if it isnt,
67
+ * it will default to the old behavior. This is to be removed once after
68
+ * the `noMeta` query param is fully deprecated.
69
+ */
70
+ if (metadata) {
71
+ switch (metadata) {
72
+ case 'json':
73
+ return 'json';
74
+ case 'scale':
75
+ return 'scale';
76
+ default:
77
+ throw new Error('Invalid inputted value for the `metadata` query param.');
78
+ }
79
+ }
80
+ if (noMeta) {
81
+ Log_1.Log.logger.warn('`noMeta` query param will be deprecated in sidecar v13, and replaced with `metadata` please migrate');
82
+ switch (noMeta) {
83
+ case 'true':
84
+ return false;
85
+ case 'false':
86
+ return 'scale';
87
+ }
88
+ }
89
+ // default behavior until `noMeta` is deprecated, then false will be default
90
+ return 'scale';
91
+ }
57
92
  }
58
93
  exports.default = TransactionMaterialController;
59
94
  //# sourceMappingURL=TransactionMaterialController.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransactionMaterialController.js","sourceRoot":"","sources":["../../../../src/controllers/transaction/TransactionMaterialController.ts"],"names":[],"mappings":";;;;;AAGA,6CAA4D;AAC5D,+EAAuD;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAqB,6BAA8B,SAAQ,4BAA8C;IACxG,YAAY,GAAe;QAC1B,KAAK,CAAC,GAAG,EAAE,uBAAuB,EAAE,IAAI,qCAA0B,CAAC,GAAG,CAAC,CAAC,CAAC;QAQ1E;;;;;WAKG;QACK,2BAAsB,GAAmB,KAAK,EACrD,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EACzB,GAAG,EACa,EAAE;YAClB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAE1C,MAAM,SAAS,GAAG,MAAM,KAAK,MAAM,CAAC;YAEpC,6BAA6B,CAAC,aAAa,CAC1C,GAAG,EACH,MAAM,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,IAAI,EAAE,SAAS,CAAC,CAC5D,CAAC;QACH,CAAC,CAAC;QAzBD,IAAI,CAAC,UAAU,EAAE,CAAC;IACnB,CAAC;IAES,UAAU;QACnB,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;CAqBD;AA7BD,gDA6BC"}
1
+ {"version":3,"file":"TransactionMaterialController.js","sourceRoot":"","sources":["../../../../src/controllers/transaction/TransactionMaterialController.ts"],"names":[],"mappings":";;;;;AAGA,2CAAwC;AACxC,6CAA4D;AAC5D,+EAAuD;AAIvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAqB,6BAA8B,SAAQ,4BAA8C;IACxG,YAAY,GAAe;QAC1B,KAAK,CAAC,GAAG,EAAE,uBAAuB,EAAE,IAAI,qCAA0B,CAAC,GAAG,CAAC,CAAC,CAAC;QAQ1E;;;;;WAKG;QACK,2BAAsB,GAAmB,KAAK,EACrD,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EACnC,GAAG,EACa,EAAE;YAClB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAE1C,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAE7D,6BAA6B,CAAC,aAAa,CAC1C,GAAG,EACH,MAAM,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,IAAI,EAAE,WAAW,CAAC,CAC9D,CAAC;QACH,CAAC,CAAC;QAzBD,IAAI,CAAC,UAAU,EAAE,CAAC;IACnB,CAAC;IAES,UAAU;QACnB,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IAsBD;;;;;OAKG;IACK,iBAAiB,CACxB,MAAe,EACf,QAAiB;QAEjB;;;;WAIG;QACH,IAAI,QAAQ,EAAE;YACb,QAAQ,QAAQ,EAAE;gBACjB,KAAK,MAAM;oBACV,OAAO,MAAM,CAAC;gBACf,KAAK,OAAO;oBACX,OAAO,OAAO,CAAC;gBAChB;oBACC,MAAM,IAAI,KAAK,CACd,wDAAwD,CACxD,CAAC;aACH;SACD;QAED,IAAI,MAAM,EAAE;YACX,SAAG,CAAC,MAAM,CAAC,IAAI,CACd,qGAAqG,CACrG,CAAC;YACF,QAAQ,MAAM,EAAE;gBACf,KAAK,MAAM;oBACV,OAAO,KAAK,CAAC;gBACd,KAAK,OAAO;oBACX,OAAO,OAAO,CAAC;aAChB;SACD;QAED,4EAA4E;QAC5E,OAAO,OAAO,CAAC;IAChB,CAAC;CACD;AAzED,gDAyEC"}
@@ -1,14 +1,20 @@
1
1
  import { ApiPromise } from '@polkadot/api';
2
+ import { ApiDecoration } from '@polkadot/api/types';
2
3
  import { DeriveEraExposure, DeriveEraExposureNominating } from '@polkadot/api-derive/staking/types';
3
4
  import { Option } from '@polkadot/types';
4
- import { BalanceOf, BlockHash, EraIndex, EraRewardPoints, Perbill, StakingLedger } from '@polkadot/types/interfaces';
5
+ import { BalanceOf, BlockHash, EraIndex, Perbill, StakingLedger } from '@polkadot/types/interfaces';
6
+ import { PalletStakingEraRewardPoints } from '@polkadot/types/lookup';
5
7
  import { IAccountStakingPayouts, IEraPayouts } from '../../types/responses';
6
8
  import { AbstractService } from '../AbstractService';
7
9
  /**
8
10
  * General information about an era, in tuple form because we initially get it
9
11
  * by destructuring a Promise.all(...)
10
12
  */
11
- declare type IErasGeneral = [DeriveEraExposure, EraRewardPoints, Option<BalanceOf>];
13
+ declare type IErasGeneral = [
14
+ DeriveEraExposure,
15
+ PalletStakingEraRewardPoints,
16
+ Option<BalanceOf>
17
+ ];
12
18
  /**
13
19
  * Commission and staking ledger of a validator
14
20
  */
@@ -21,7 +27,7 @@ interface ICommissionAndLedger {
21
27
  */
22
28
  interface IEraData {
23
29
  deriveEraExposure: DeriveEraExposure;
24
- eraRewardPoints: EraRewardPoints;
30
+ eraRewardPoints: PalletStakingEraRewardPoints;
25
31
  erasValidatorRewardOption: Option<BalanceOf>;
26
32
  exposuresWithCommission?: (ICommissionAndLedger & {
27
33
  validatorId: string;
@@ -47,7 +53,7 @@ export declare class AccountsStakingPayoutsService extends AbstractService {
47
53
  * @param startEra first era to get data for
48
54
  * @param era the last era to get data for
49
55
  */
50
- fetchAllErasGeneral(api: ApiPromise, hash: BlockHash, startEra: number, era: number): Promise<IErasGeneral[]>;
56
+ fetchAllErasGeneral(api: ApiPromise, historicApi: ApiDecoration<'promise'>, startEra: number, era: number): Promise<IErasGeneral[]>;
51
57
  /**
52
58
  * Fetch the commission & staking ledger for each `validatorId` in `deriveErasExposures`.
53
59
  *
@@ -57,7 +63,7 @@ export declare class AccountsStakingPayoutsService extends AbstractService {
57
63
  * @param startEra first era to get data for
58
64
  * @param deriveErasExposures exposures per era for `address`
59
65
  */
60
- fetchAllErasCommissions(api: ApiPromise, hash: BlockHash, address: string, startEra: number, deriveErasExposures: DeriveEraExposure[]): Promise<ICommissionAndLedger[][]>;
66
+ fetchAllErasCommissions(historicApi: ApiDecoration<'promise'>, address: string, startEra: number, deriveErasExposures: DeriveEraExposure[]): Promise<ICommissionAndLedger[][]>;
61
67
  /**
62
68
  * Derive all the payouts for `address` at `era`.
63
69
  *
@@ -16,9 +16,10 @@ class AccountsStakingPayoutsService extends AbstractService_1.AbstractService {
16
16
  */
17
17
  async fetchAccountStakingPayout(hash, address, depth, era, unclaimedOnly, currentEra) {
18
18
  const { api } = this;
19
+ const historicApi = await api.at(hash);
19
20
  const [{ number }, historyDepth] = await Promise.all([
20
21
  api.rpc.chain.getHeader(hash),
21
- api.query.staking.historyDepth.at(hash),
22
+ historicApi.query.staking.historyDepth(),
22
23
  ]);
23
24
  // Information is kept for eras in `[current_era - history_depth; current_era]`
24
25
  if (depth > historyDepth.toNumber()) {
@@ -37,9 +38,9 @@ class AccountsStakingPayoutsService extends AbstractService_1.AbstractService {
37
38
  // User friendly - we don't error if the user specified era & depth combo <= 0, instead just start at 0
38
39
  const startEra = Math.max(0, era - (depth - 1));
39
40
  // Fetch general data about the era
40
- const allErasGeneral = await this.fetchAllErasGeneral(api, hash, startEra, era);
41
+ const allErasGeneral = await this.fetchAllErasGeneral(api, historicApi, startEra, era);
41
42
  // With the general data, we can now fetch the commission of each validator `address` nominates
42
- const allErasCommissions = await this.fetchAllErasCommissions(api, hash, address, startEra,
43
+ const allErasCommissions = await this.fetchAllErasCommissions(historicApi, address, startEra,
43
44
  // Create an array of `DeriveEraExposure`
44
45
  allErasGeneral.map((eraGeneral) => eraGeneral[0]));
45
46
  // Group together data by Era so we can easily associate parts that are used congruently downstream
@@ -59,7 +60,7 @@ class AccountsStakingPayoutsService extends AbstractService_1.AbstractService {
59
60
  eraRewardPoints,
60
61
  erasValidatorRewardOption,
61
62
  exposuresWithCommission,
62
- eraIndex: api.createType('EraIndex', idx + startEra),
63
+ eraIndex: historicApi.registry.createType('EraIndex', idx + startEra),
63
64
  };
64
65
  });
65
66
  return {
@@ -75,14 +76,14 @@ class AccountsStakingPayoutsService extends AbstractService_1.AbstractService {
75
76
  * @param startEra first era to get data for
76
77
  * @param era the last era to get data for
77
78
  */
78
- async fetchAllErasGeneral(api, hash, startEra, era) {
79
+ async fetchAllErasGeneral(api, historicApi, startEra, era) {
79
80
  const allDeriveQuerys = [];
80
81
  for (let e = startEra; e <= era; e += 1) {
81
- const eraIndex = api.createType('EraIndex', e);
82
+ const eraIndex = historicApi.registry.createType('EraIndex', e);
82
83
  const eraGeneralTuple = Promise.all([
83
84
  api.derive.staking.eraExposure(eraIndex),
84
- api.query.staking.erasRewardPoints.at(hash, eraIndex),
85
- api.query.staking.erasValidatorReward.at(hash, eraIndex),
85
+ historicApi.query.staking.erasRewardPoints(eraIndex),
86
+ historicApi.query.staking.erasValidatorReward(eraIndex),
86
87
  ]);
87
88
  allDeriveQuerys.push(eraGeneralTuple);
88
89
  }
@@ -97,7 +98,7 @@ class AccountsStakingPayoutsService extends AbstractService_1.AbstractService {
97
98
  * @param startEra first era to get data for
98
99
  * @param deriveErasExposures exposures per era for `address`
99
100
  */
100
- fetchAllErasCommissions(api, hash, address, startEra, deriveErasExposures) {
101
+ fetchAllErasCommissions(historicApi, address, startEra, deriveErasExposures) {
101
102
  // Cache StakingLedger to reduce redundant queries to node
102
103
  const validatorLedgerCache = {};
103
104
  const allErasCommissions = deriveErasExposures.map((deriveEraExposure, idx) => {
@@ -106,7 +107,7 @@ class AccountsStakingPayoutsService extends AbstractService_1.AbstractService {
106
107
  if (!nominatedExposures) {
107
108
  return [];
108
109
  }
109
- const singleEraCommissions = nominatedExposures.map(({ validatorId }) => this.fetchCommissionAndLedger(api, validatorId, currEra, hash, validatorLedgerCache));
110
+ const singleEraCommissions = nominatedExposures.map(({ validatorId }) => this.fetchCommissionAndLedger(historicApi, validatorId, currEra, validatorLedgerCache));
110
111
  return Promise.all(singleEraCommissions);
111
112
  });
112
113
  return Promise.all(allErasCommissions);
@@ -181,18 +182,18 @@ class AccountsStakingPayoutsService extends AbstractService_1.AbstractService {
181
182
  * @param hash `BlockHash` to make call at
182
183
  * @param validatorLedgerCache object mapping validatorId => StakingLedger to limit redundant queries
183
184
  */
184
- async fetchCommissionAndLedger(api, validatorId, era, hash, validatorLedgerCache) {
185
+ async fetchCommissionAndLedger(historicApi, validatorId, era, validatorLedgerCache) {
185
186
  let commission;
186
187
  let validatorLedger;
187
188
  if (validatorId in validatorLedgerCache) {
188
189
  validatorLedger = validatorLedgerCache[validatorId];
189
- const prefs = await api.query.staking.erasValidatorPrefs(era, validatorId);
190
+ const prefs = await historicApi.query.staking.erasValidatorPrefs(era, validatorId);
190
191
  commission = prefs.commission.unwrap();
191
192
  }
192
193
  else {
193
194
  const [prefs, validatorControllerOption] = await Promise.all([
194
- api.query.staking.erasValidatorPrefs.at(hash, era, validatorId),
195
- api.query.staking.bonded.at(hash, validatorId),
195
+ historicApi.query.staking.erasValidatorPrefs(era, validatorId),
196
+ historicApi.query.staking.bonded(validatorId),
196
197
  ]);
197
198
  commission = prefs.commission.unwrap();
198
199
  if (validatorControllerOption.isNone) {
@@ -200,7 +201,7 @@ class AccountsStakingPayoutsService extends AbstractService_1.AbstractService {
200
201
  commission,
201
202
  };
202
203
  }
203
- const validatorLedgerOption = await api.query.staking.ledger.at(hash, validatorControllerOption.unwrap());
204
+ const validatorLedgerOption = await historicApi.query.staking.ledger(validatorControllerOption.unwrap());
204
205
  if (validatorLedgerOption.isNone) {
205
206
  return {
206
207
  commission,
@@ -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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"}
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const http_errors_1 = require("http-errors");
7
+ const sanitizeNumbers_1 = require("../../sanitize/sanitizeNumbers");
8
+ const registries_1 = require("../../test-helpers/registries");
9
+ const mock_1 = require("../test-helpers/mock");
10
+ const accounts_1 = require("../test-helpers/mock/accounts");
11
+ const stakingPayout_json_1 = __importDefault(require("../test-helpers/responses/accounts/stakingPayout.json"));
12
+ const AccountsStakingPayoutsService_1 = require("./AccountsStakingPayoutsService");
13
+ /**
14
+ * Addresses and data below were taken from era 533 around block ~7,760,000,
15
+ * on runtime v9122 Polkadot.
16
+ *
17
+ * The real world data has been reduced to fit the unit tests and act as mock data.
18
+ * This test suite also uses polkadotRegistryV9122
19
+ */
20
+ /**
21
+ * Acts as a placeholder variable for some tests where the era isn't an instrumental
22
+ * factor to the test logic.
23
+ */
24
+ const era = registries_1.polkadotRegistryV9122.createType('EraIndex', 532);
25
+ const historyDepthAt = () => Promise.resolve().then(() => {
26
+ return registries_1.polkadotRegistryV9122.createType('u32', 84);
27
+ });
28
+ const erasRewardPointsAt = (_eraIndex) => Promise.resolve().then(() => {
29
+ return registries_1.polkadotRegistryV9122.createType('PalletStakingEraRewardPoints', accounts_1.mockEraRewardPoints);
30
+ });
31
+ const erasValidatorRewardAt = (_eraIndex) => Promise.resolve().then(() => {
32
+ return registries_1.polkadotRegistryV9122.createType('Option<BalanceOf>', 2426740332127971);
33
+ });
34
+ const erasValidatorPrefsAt = (_era, _validatorId) => Promise.resolve().then(() => {
35
+ return registries_1.polkadotRegistryV9122.createType('PalletStakingValidatorPrefs', {
36
+ commission: 10000000,
37
+ blocked: false,
38
+ });
39
+ });
40
+ const bondedAt = (_validatorId) => Promise.resolve().then(() => {
41
+ return registries_1.polkadotRegistryV9122.createType('Option<AccountId32>', '1ZMbuCR3QiatxRsQdNnJYgydn3CWV4PELcTzpH4TNoNjxno');
42
+ });
43
+ const ledgerAt = (_validatorId) => Promise.resolve().then(() => {
44
+ return registries_1.polkadotRegistryV9122.createType('Option<PalletStakingStakingLedger>', accounts_1.mockLedger);
45
+ });
46
+ const deriveEraExposure = (_eraIndex) => Promise.resolve().then(() => {
47
+ return {
48
+ era,
49
+ nominators: accounts_1.mockDeriveNominatedExposure,
50
+ validators: accounts_1.mockDeriveValidatorExposure,
51
+ };
52
+ });
53
+ const mockHistoricApi = {
54
+ registry: registries_1.polkadotRegistryV9122,
55
+ query: {
56
+ staking: {
57
+ ledger: ledgerAt,
58
+ erasRewardPoints: erasRewardPointsAt,
59
+ erasValidatorReward: erasValidatorRewardAt,
60
+ historyDepth: historyDepthAt,
61
+ erasValidatorPrefs: erasValidatorPrefsAt,
62
+ bonded: bondedAt,
63
+ },
64
+ },
65
+ };
66
+ const mockApi = {
67
+ ...mock_1.defaultMockApi,
68
+ derive: {
69
+ staking: {
70
+ eraExposure: deriveEraExposure,
71
+ },
72
+ },
73
+ at: (_hash) => mockHistoricApi,
74
+ };
75
+ const stakingPayoutsService = new AccountsStakingPayoutsService_1.AccountsStakingPayoutsService(mockApi);
76
+ describe('AccountsStakingPayoutsService', () => {
77
+ /**
78
+ * These are the two addresses we test the validator and nominator cases on.
79
+ */
80
+ const nominator = '15j4dg5GzsL1bw2U2AWgeyAk6QTxq43V7ZPbXdAmbVLjvDCK';
81
+ const validator = '12JZr1HgK8w6zsbBj6oAEVRkvisn8j3MrkXugqtvc4E8uwLo';
82
+ const blockHash = registries_1.polkadotRegistryV9122.createType('BlockHash', '0x7b713de604a99857f6c25eacc115a4f28d2611a23d9ddff99ab0e4f1c17a8578');
83
+ let derivedExposure;
84
+ beforeAll(async () => {
85
+ derivedExposure = await deriveEraExposure(era);
86
+ });
87
+ describe('Correct succesfull responses', () => {
88
+ it('Should work when ApiPromise works', async () => {
89
+ const res = await stakingPayoutsService.fetchAccountStakingPayout(blockHash, nominator, 1, 533, true, 534);
90
+ expect((0, sanitizeNumbers_1.sanitizeNumbers)(res)).toStrictEqual(stakingPayout_json_1.default);
91
+ });
92
+ it('Should work when unclaimed is false', async () => {
93
+ const res = await stakingPayoutsService.fetchAccountStakingPayout(blockHash, nominator, 1, 533, false, 534);
94
+ expect((0, sanitizeNumbers_1.sanitizeNumbers)(res)).toStrictEqual(stakingPayout_json_1.default);
95
+ });
96
+ it('Should return the correct era rewards for `extractTotalValidatorRewardPoints`', async () => {
97
+ const rewards = await erasRewardPointsAt(era);
98
+ const res = stakingPayoutsService['extractTotalValidatorRewardPoints'](rewards, validator);
99
+ expect((0, sanitizeNumbers_1.sanitizeNumbers)(res)).toBe('3360');
100
+ });
101
+ it('`extractExposure` should return the correct value when the address is a nominator', () => {
102
+ const res = stakingPayoutsService['extractExposure'](nominator, validator, derivedExposure);
103
+ expect((0, sanitizeNumbers_1.sanitizeNumbers)(res)).toStrictEqual({
104
+ nominatorExposure: '33223051661066608',
105
+ totalExposure: '33223251661066608',
106
+ });
107
+ });
108
+ it('`extractExposure` should return the correct value when the address is a validator', () => {
109
+ const res = stakingPayoutsService['extractExposure'](validator, validator, derivedExposure);
110
+ expect((0, sanitizeNumbers_1.sanitizeNumbers)(res)).toStrictEqual({
111
+ nominatorExposure: '200000000000',
112
+ totalExposure: '33223251661066608',
113
+ });
114
+ });
115
+ it('`deriveNominatedExposures` should return the correct value when address is a validator', () => {
116
+ const res = stakingPayoutsService['deriveNominatedExposures']('12JZr1HgK8w6zsbBj6oAEVRkvisn8j3MrkXugqtvc4E8uwLo', derivedExposure);
117
+ const expectedResult = [
118
+ {
119
+ validatorId: '1HDgY7vpDjafR5NM8dbwm1b3Rrs4zATuSCHHbe7YgpKUKFw',
120
+ validatorIndex: '0',
121
+ },
122
+ {
123
+ validatorId: '12JZr1HgK8w6zsbBj6oAEVRkvisn8j3MrkXugqtvc4E8uwLo',
124
+ validatorIndex: '9999',
125
+ },
126
+ ];
127
+ expect((0, sanitizeNumbers_1.sanitizeNumbers)(res)).toStrictEqual(expectedResult);
128
+ });
129
+ it('`deriveNominatedExposures` should return the correct value when the address is a nominator', () => {
130
+ const res = stakingPayoutsService['deriveNominatedExposures'](nominator, derivedExposure);
131
+ expect((0, sanitizeNumbers_1.sanitizeNumbers)(res)).toStrictEqual(accounts_1.mockDeriveNominatedExposure[nominator]);
132
+ });
133
+ });
134
+ describe('Correct errors', () => {
135
+ it('Should throw an error when the depth is greater than the historyDepth', () => {
136
+ const serviceCall = async () => {
137
+ await stakingPayoutsService.fetchAccountStakingPayout(blockHash, nominator, 85, 533, true, 534);
138
+ };
139
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
140
+ expect(serviceCall()).rejects.toThrow(new http_errors_1.BadRequest('Must specify a depth less than history_depth'));
141
+ });
142
+ it('Should throw an error inputted era and historydepth is invalid', () => {
143
+ const serviceCall = async () => {
144
+ await stakingPayoutsService.fetchAccountStakingPayout(blockHash, nominator, 1, 400, true, 534);
145
+ };
146
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
147
+ expect(serviceCall()).rejects.toThrow(new http_errors_1.BadRequest('Must specify era and depth such that era - (depth - 1) is less ' +
148
+ 'than or equal to current_era - history_depth.'));
149
+ });
150
+ });
151
+ });
152
+ //# sourceMappingURL=AccountsStakingPayoutsService.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountsStakingPayoutsService.spec.js","sourceRoot":"","sources":["../../../../src/services/accounts/AccountsStakingPayoutsService.spec.ts"],"names":[],"mappings":"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"}
@@ -16,10 +16,11 @@ class PalletsStakingProgressService extends AbstractService_1.AbstractService {
16
16
  async derivePalletStakingProgress(hash) {
17
17
  var _a, _b;
18
18
  const { api } = this;
19
+ const historicApi = await api.at(hash);
19
20
  const [validatorCount, forceEra, validators, { number }] = await Promise.all([
20
- api.query.staking.validatorCount.at(hash),
21
- api.query.staking.forceEra.at(hash),
22
- api.query.session.validators.at(hash),
21
+ historicApi.query.staking.validatorCount(),
22
+ historicApi.query.staking.forceEra(),
23
+ historicApi.query.session.validators(),
23
24
  api.rpc.chain.getHeader(hash),
24
25
  ]);
25
26
  let eraElectionStatus;
@@ -29,11 +30,11 @@ class PalletsStakingProgressService extends AbstractService_1.AbstractService {
29
30
  * runtime less than v0.8.30 it will return a successful result. If it doesn't
30
31
  * we do nothing and let `eraElectionStatus` stay undefined.
31
32
  */
32
- if (api.query.staking.eraElectionStatus) {
33
- eraElectionStatus = await api.query.staking.eraElectionStatus.at(hash);
33
+ if (historicApi.query.staking.eraElectionStatus) {
34
+ eraElectionStatus = await historicApi.query.staking.eraElectionStatus();
34
35
  }
35
- const { eraLength, eraProgress, sessionLength, sessionProgress, activeEra, } = await this.deriveSessionAndEraProgress(api, hash);
36
- const unappliedSlashesAtActiveEra = await api.query.staking.unappliedSlashes.at(hash, activeEra);
36
+ const { eraLength, eraProgress, sessionLength, sessionProgress, activeEra, } = await this.deriveSessionAndEraProgress(historicApi);
37
+ const unappliedSlashesAtActiveEra = await historicApi.query.staking.unappliedSlashes(activeEra);
37
38
  const currentBlockNumber = number.toBn();
38
39
  const nextSession = sessionLength
39
40
  .sub(sessionProgress)
@@ -58,7 +59,7 @@ class PalletsStakingProgressService extends AbstractService_1.AbstractService {
58
59
  const nextActiveEra = forceEra.isForceAlways
59
60
  ? nextSession // there is a new era every session
60
61
  : eraLength.sub(eraProgress).add(currentBlockNumber); // the nextActiveEra is at the end of this era
61
- const electionLookAhead = await this.deriveElectionLookAhead(api, hash);
62
+ const electionLookAhead = await this.deriveElectionLookAhead(api, historicApi, hash);
62
63
  const nextCurrentEra = nextActiveEra
63
64
  .sub(currentBlockNumber)
64
65
  .sub(sessionLength)
@@ -97,26 +98,26 @@ class PalletsStakingProgressService extends AbstractService_1.AbstractService {
97
98
  * @param api ApiPromise with ensured metadata
98
99
  * @param hash `BlockHash` to make call at
99
100
  */
100
- async deriveSessionAndEraProgress(api, hash) {
101
+ async deriveSessionAndEraProgress(historicApi) {
101
102
  const [currentSlot, epochIndex, genesisSlot, currentIndex, activeEraOption,] = await Promise.all([
102
- api.query.babe.currentSlot.at(hash),
103
- api.query.babe.epochIndex.at(hash),
104
- api.query.babe.genesisSlot.at(hash),
105
- api.query.session.currentIndex.at(hash),
106
- api.query.staking.activeEra.at(hash),
103
+ historicApi.query.babe.currentSlot(),
104
+ historicApi.query.babe.epochIndex(),
105
+ historicApi.query.babe.genesisSlot(),
106
+ historicApi.query.session.currentIndex(),
107
+ historicApi.query.staking.activeEra(),
107
108
  ]);
108
109
  if (activeEraOption.isNone) {
109
110
  // TODO refactor to newer error type
110
111
  throw new http_errors_1.InternalServerError('ActiveEra is None when Some was expected.');
111
112
  }
112
113
  const { index: activeEra } = activeEraOption.unwrap();
113
- const activeEraStartSessionIndexOption = await api.query.staking.erasStartSessionIndex.at(hash, activeEra);
114
+ const activeEraStartSessionIndexOption = await historicApi.query.staking.erasStartSessionIndex(activeEra);
114
115
  if (activeEraStartSessionIndexOption.isNone) {
115
116
  throw new http_errors_1.InternalServerError('EraStartSessionIndex is None when Some was expected.');
116
117
  }
117
118
  const activeEraStartSessionIndex = activeEraStartSessionIndexOption.unwrap();
118
- const { epochDuration: sessionLength } = api.consts.babe;
119
- const eraLength = api.consts.staking.sessionsPerEra.mul(sessionLength);
119
+ const { epochDuration: sessionLength } = historicApi.consts.babe;
120
+ const eraLength = historicApi.consts.staking.sessionsPerEra.mul(sessionLength);
120
121
  const epochStartSlot = epochIndex.mul(sessionLength).add(genesisSlot);
121
122
  const sessionProgress = currentSlot.sub(epochStartSlot);
122
123
  const eraProgress = currentIndex
@@ -141,12 +142,12 @@ class PalletsStakingProgressService extends AbstractService_1.AbstractService {
141
142
  * @param api ApiPromise with ensured metadata
142
143
  * @param hash `BlockHash` to make call at
143
144
  */
144
- async deriveElectionLookAhead(api, hash) {
145
- if (api.consts.staking.electionLookahead) {
146
- return api.consts.staking.electionLookahead;
145
+ async deriveElectionLookAhead(api, historicApi, hash) {
146
+ if (historicApi.consts.staking.electionLookahead) {
147
+ return historicApi.consts.staking.electionLookahead;
147
148
  }
148
149
  const { specName } = await api.rpc.state.getRuntimeVersion(hash);
149
- const { epochDuration } = api.consts.babe;
150
+ const { epochDuration } = historicApi.consts.babe;
150
151
  // TODO - create a configurable epochDivisor env for a more generic solution
151
152
  const epochDurationDivisor = specName.toString() === 'polkadot'
152
153
  ? 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":"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"}
1
+ {"version":3,"file":"PalletsStakingProgressService.js","sourceRoot":"","sources":["../../../../src/services/pallets/PalletsStakingProgressService.ts"],"names":[],"mappings":"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"}