@substrate/api-sidecar 10.0.0 → 11.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.
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "10.0.0",
2
+ "version": "11.0.0",
3
3
  "name": "@substrate/api-sidecar",
4
4
  "description": "REST service that makes it easy to interact with blockchain nodes built using Substrate's FRAME framework.",
5
5
  "homepage": "https://github.com/paritytech/substrate-api-sidecar#readme",
@@ -51,9 +51,9 @@
51
51
  "test:test-release": "yarn start:test-release"
52
52
  },
53
53
  "dependencies": {
54
- "@polkadot/api": "6.3.1",
55
- "@polkadot/apps-config": "0.96.2-65",
56
- "@polkadot/util-crypto": "^7.4.1",
54
+ "@polkadot/api": "6.4.1",
55
+ "@polkadot/apps-config": "0.97.2-0",
56
+ "@polkadot/util-crypto": "^7.5.1",
57
57
  "@polkadot/x-rxjs": "^6.11.1",
58
58
  "@substrate/calc": "^0.2.3",
59
59
  "argparse": "^2.0.1",
@@ -77,13 +77,13 @@
77
77
  "tsc-watch": "^4.4.0"
78
78
  },
79
79
  "resolutions": {
80
- "@polkadot/api": "6.3.1",
81
- "@polkadot/keyring": "7.4.1",
82
- "@polkadot/networks": "7.4.1",
83
- "@polkadot/types": "6.3.1",
84
- "@polkadot/types-known": "6.3.1",
85
- "@polkadot/util": "7.4.1",
86
- "@polkadot/util-crypto": "7.4.1",
80
+ "@polkadot/api": "6.4.1",
81
+ "@polkadot/keyring": "7.5.1",
82
+ "@polkadot/networks": "7.5.1",
83
+ "@polkadot/types": "6.4.1",
84
+ "@polkadot/types-known": "6.4.1",
85
+ "@polkadot/util": "7.5.1",
86
+ "@polkadot/util-crypto": "7.5.1",
87
87
  "@polkadot/wasm-crypto": "4.2.1",
88
88
  "node-forge": ">=0.10.0",
89
89
  "node-fetch": ">=2.6.1",
@@ -13,7 +13,7 @@ exports.kusamaDefinitions = [
13
13
  {
14
14
  runtimeVersions: [
15
15
  2027, 2028, 2029, 2030, 9000, 9010, 9030, 9040, 9050, 9070, 9080, 9090,
16
- 9100, 9110,
16
+ 9100, 9110, 9111,
17
17
  ],
18
18
  perClass: substrateConsts_1.perClass,
19
19
  },
@@ -1 +1 @@
1
- {"version":3,"file":"kusamaConsts.js","sourceRoot":"","sources":["../../../../src/chains-config/metadata-consts/kusamaConsts.ts"],"names":[],"mappings":";;;AACA,uDAAkE;AAErD,QAAA,iBAAiB,GAAqB;IAClD;QACC,eAAe,EAAE;YAChB,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI;SACV;QACD,mBAAmB,EAAnB,qCAAmB;KACnB;IACD;QACC,eAAe,EAAE;YAChB,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI;SACV;QACD,QAAQ,EAAR,0BAAQ;KACR;CACD,CAAC"}
1
+ {"version":3,"file":"kusamaConsts.js","sourceRoot":"","sources":["../../../../src/chains-config/metadata-consts/kusamaConsts.ts"],"names":[],"mappings":";;;AACA,uDAAkE;AAErD,QAAA,iBAAiB,GAAqB;IAClD;QACC,eAAe,EAAE;YAChB,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI;SACV;QACD,mBAAmB,EAAnB,qCAAmB;KACnB;IACD;QACC,eAAe,EAAE;YAChB,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI;SAChB;QACD,QAAQ,EAAR,0BAAQ;KACR;CACD,CAAC"}
@@ -54,7 +54,8 @@ class AccountsBalanceController extends AbstractController_1.default {
54
54
  : // We assume the first token is the native token
55
55
  this.api.registry.chainTokens[0].toUpperCase();
56
56
  const hash = await this.getHashFromAt(at);
57
- AccountsBalanceController.sanitizedSend(res, await this.service.fetchAccountBalanceInfo(hash, address, tokenArg));
57
+ const historicApi = await this.api.at(hash);
58
+ AccountsBalanceController.sanitizedSend(res, await this.service.fetchAccountBalanceInfo(hash, historicApi, address, tokenArg));
58
59
  };
59
60
  this.initRoutes();
60
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AccountsBalanceInfoController.js","sourceRoot":"","sources":["../../../../src/controllers/accounts/AccountsBalanceInfoController.ts"],"names":[],"mappings":";;;;;AAIA,iDAAmD;AACnD,6CAA4D;AAC5D,+EAAuD;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAqB,yBAA0B,SAAQ,4BAA8C;IACpG,YAAY,GAAe;QAC1B,KAAK,CACJ,GAAG,EACH,iCAAiC,EACjC,IAAI,qCAA0B,CAAC,GAAG,CAAC,CACnC,CAAC;QAUH;;;;;WAKG;QACK,0BAAqB,GAAkC,KAAK,EACnE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAC7C,GAAG,EACa,EAAE;YAClB,MAAM,QAAQ,GACb,OAAO,KAAK,KAAK,QAAQ;gBACxB,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE;gBACrB,CAAC,CAAC,gDAAgD;oBAChD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAEnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAE1C,yBAAyB,CAAC,aAAa,CACtC,GAAG,EACH,MAAM,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CACnE,CAAC;QACH,CAAC,CAAC;QA/BD,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;CAyBD;AAvCD,4CAuCC"}
1
+ {"version":3,"file":"AccountsBalanceInfoController.js","sourceRoot":"","sources":["../../../../src/controllers/accounts/AccountsBalanceInfoController.ts"],"names":[],"mappings":";;;;;AAIA,iDAAmD;AACnD,6CAA4D;AAC5D,+EAAuD;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAqB,yBAA0B,SAAQ,4BAA8C;IACpG,YAAY,GAAe;QAC1B,KAAK,CACJ,GAAG,EACH,iCAAiC,EACjC,IAAI,qCAA0B,CAAC,GAAG,CAAC,CACnC,CAAC;QAUH;;;;;WAKG;QACK,0BAAqB,GAAkC,KAAK,EACnE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAC7C,GAAG,EACa,EAAE;YAClB,MAAM,QAAQ,GACb,OAAO,KAAK,KAAK,QAAQ;gBACxB,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE;gBACrB,CAAC,CAAC,gDAAgD;oBAChD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAEnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAC1C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAE5C,yBAAyB,CAAC,aAAa,CACtC,GAAG,EACH,MAAM,IAAI,CAAC,OAAO,CAAC,uBAAuB,CACzC,IAAI,EACJ,WAAW,EACX,OAAO,EACP,QAAQ,CACR,CACD,CAAC;QACH,CAAC,CAAC;QArCD,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;CA+BD;AA7CD,4CA6CC"}
@@ -1,3 +1,4 @@
1
+ import { ApiDecoration } from '@polkadot/api/types';
1
2
  import { BlockHash } from '@polkadot/types/interfaces';
2
3
  import { IAccountBalanceInfo } from 'src/types/responses';
3
4
  import { AbstractService } from '../AbstractService';
@@ -10,5 +11,5 @@ export declare class AccountsBalanceInfoService extends AbstractService {
10
11
  * @param address Address of the account to get the balance info of.
11
12
  * @param token Token to get the balance info of.
12
13
  */
13
- fetchAccountBalanceInfo(hash: BlockHash, address: string, token: string): Promise<IAccountBalanceInfo>;
14
+ fetchAccountBalanceInfo(hash: BlockHash, historicApi: ApiDecoration<'promise'>, address: string, token: string): Promise<IAccountBalanceInfo>;
14
15
  }
@@ -12,27 +12,25 @@ class AccountsBalanceInfoService extends AbstractService_1.AbstractService {
12
12
  * @param address Address of the account to get the balance info of.
13
13
  * @param token Token to get the balance info of.
14
14
  */
15
- async fetchAccountBalanceInfo(hash, address, token) {
15
+ async fetchAccountBalanceInfo(hash, historicApi, address, token) {
16
16
  const { api } = this;
17
- // Retrieve the historic api for the given hash
18
- const historicalApi = await api.at(hash);
19
17
  /**
20
- * Check two different cases where a historicalApi is needed in order
18
+ * Check two different cases where a historicApi is needed in order
21
19
  * to have the correct runtime methods.
22
20
  *
23
21
  * a) Does the block use the oldest api where the free balance is found
24
- * using `historicalApi.query.balances.freeBalance`.
22
+ * using `historicApi.query.balances.freeBalance`.
25
23
  *
26
24
  * b) Does the block use an older api where the free balance is within the
27
25
  * AccountInfo type, but the storage does not yet have the `.at` method.
28
26
  */
29
- if (historicalApi.query.balances.freeBalance) {
27
+ if (historicApi.query.balances.freeBalance) {
30
28
  const [header, free, locks, reserved, nonce] = await Promise.all([
31
29
  api.rpc.chain.getHeader(hash),
32
- historicalApi.query.balances.freeBalance(address),
33
- historicalApi.query.balances.locks(address),
34
- historicalApi.query.balances.reservedBalance(address),
35
- historicalApi.query.system.accountNonce(address),
30
+ historicApi.query.balances.freeBalance(address),
31
+ historicApi.query.balances.locks(address),
32
+ historicApi.query.balances.reservedBalance(address),
33
+ historicApi.query.system.accountNonce(address),
36
34
  ]);
37
35
  // Values dont exist for these historic runtimes
38
36
  const miscFrozen = api.registry.createType('Balance', 0), feeFrozen = api.registry.createType('Balance', 0);
@@ -56,11 +54,11 @@ class AccountsBalanceInfoService extends AbstractService_1.AbstractService {
56
54
  throw new http_errors_1.BadRequest('Account not found');
57
55
  }
58
56
  }
59
- else if (!historicalApi.query.system.account.at) {
57
+ else if (!historicApi.query.system.account.at) {
60
58
  const [header, accountInfo, locks] = await Promise.all([
61
59
  api.rpc.chain.getHeader(hash),
62
- historicalApi.query.system.account(address),
63
- historicalApi.query.balances.locks(address),
60
+ historicApi.query.system.account(address),
61
+ historicApi.query.balances.locks(address),
64
62
  ]);
65
63
  const { data: { free, reserved, feeFrozen, miscFrozen }, nonce, } = accountInfo;
66
64
  const at = {
@@ -85,16 +83,16 @@ class AccountsBalanceInfoService extends AbstractService_1.AbstractService {
85
83
  }
86
84
  let locks, header, accountInfo, accountData;
87
85
  // We assume the first token is the native token
88
- if (token.toUpperCase() === api.registry.chainTokens[0].toUpperCase()) {
86
+ if (token.toUpperCase() === historicApi.registry.chainTokens[0].toUpperCase()) {
89
87
  [header, locks, accountInfo] = await Promise.all([
90
88
  api.rpc.chain.getHeader(hash),
91
- api.query.balances.locks.at(hash, address),
92
- api.query.system.account.at(hash, address),
89
+ historicApi.query.balances.locks(address),
90
+ historicApi.query.system.account(address),
93
91
  ]);
94
92
  accountData =
95
93
  accountInfo.data != null
96
94
  ? accountInfo.data
97
- : await api.query.balances.account.at(hash, address);
95
+ : await historicApi.query.balances.account(address);
98
96
  }
99
97
  else {
100
98
  // Assume we are using ORML token pallet
@@ -102,11 +100,11 @@ class AccountsBalanceInfoService extends AbstractService_1.AbstractService {
102
100
  try {
103
101
  [header, locksAny, accountDataAny, accountInfo] = await Promise.all([
104
102
  api.rpc.chain.getHeader(hash),
105
- api.query.tokens.locks.at(hash, address, { Token: token }),
106
- api.query.tokens.accounts.at(hash, address, {
103
+ historicApi.query.tokens.locks(address, { Token: token }),
104
+ historicApi.query.tokens.accounts(address, {
107
105
  Token: token,
108
106
  }),
109
- api.query.system.account.at(hash, address),
107
+ historicApi.query.system.account(address),
110
108
  ]);
111
109
  }
112
110
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"AccountsBalanceInfoService.js","sourceRoot":"","sources":["../../../../src/services/accounts/AccountsBalanceInfoService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AccountsBalanceInfoService.js","sourceRoot":"","sources":["../../../../src/services/accounts/AccountsBalanceInfoService.ts"],"names":[],"mappings":"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"}
@@ -6,19 +6,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const sanitizeNumbers_1 = require("../../sanitize/sanitizeNumbers");
7
7
  const registries_1 = require("../../test-helpers/registries");
8
8
  const mock_1 = require("../test-helpers/mock");
9
- const events789629Hex_1 = require("../test-helpers/mock/data/events789629Hex");
10
9
  const balanceInfo789629_json_1 = __importDefault(require("../test-helpers/responses/accounts/balanceInfo789629.json"));
11
10
  const AccountsBalanceInfoService_1 = require("./AccountsBalanceInfoService");
12
- const eventsAt = (_hash) => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('Vec<EventRecord>', events789629Hex_1.events789629));
13
- const locksAt = (_hash, _address) => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('Vec<BalanceLock>', '0x047374616b696e672000e8764817000000000000000000000002'));
14
- const accountAt = (_hash, _address) => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('AccountInfo', '0x0600000003dbb656ab7400000000000000000000000000000000000000000000000000000000e8764817000000000000000000000000e87648170000000000000000000000'));
15
- const freeBalance = async () => registries_1.polkadotRegistry.createType('Balance', 123456789);
11
+ const locksAt = (_address) => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('Vec<BalanceLock>', '0x047374616b696e672000e8764817000000000000000000000002'));
12
+ const accountAt = (_address) => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('AccountInfo', '0x0600000003dbb656ab7400000000000000000000000000000000000000000000000000000000e8764817000000000000000000000000e87648170000000000000000000000'));
13
+ const freeBalanceAt = () => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('Balance', 123456789));
16
14
  const mockHistoricApi = {
15
+ registry: registries_1.polkadotRegistry,
17
16
  query: {
18
17
  balances: {
19
- freeBalance,
18
+ freeBalance: freeBalanceAt,
20
19
  reservedBalance: async () => registries_1.polkadotRegistry.createType('Balance', 1),
21
- locks: async () => registries_1.polkadotRegistry.createType('Vec<BalanceLock>', '0x047374616b696e672000e8764817000000000000000000000002'),
20
+ locks: locksAt,
22
21
  },
23
22
  system: {
24
23
  accountNonce: async () => registries_1.polkadotRegistry.createType('Index', 1),
@@ -26,20 +25,8 @@ const mockHistoricApi = {
26
25
  },
27
26
  },
28
27
  };
29
- const queryMockApi = {
30
- query: {
31
- system: {
32
- events: eventsAt,
33
- account: { at: accountAt },
34
- },
35
- balances: {
36
- locks: { at: locksAt },
37
- },
38
- },
39
- };
40
28
  const mockApi = {
41
29
  ...mock_1.defaultMockApi,
42
- ...queryMockApi,
43
30
  at: (_hash) => mockHistoricApi,
44
31
  };
45
32
  const accountsBalanceInfoService = new AccountsBalanceInfoService_1.AccountsBalanceInfoService(mockApi);
@@ -50,14 +37,13 @@ describe('AccountsBalanceInfoService', () => {
50
37
  tempHistoricApi.query.balances.freeBalance = undefined;
51
38
  const tempMockApi = {
52
39
  ...mock_1.defaultMockApi,
53
- ...queryMockApi,
54
40
  at: (_hash) => tempHistoricApi,
55
41
  };
56
42
  const tempAccountsBalanceInfoService = new AccountsBalanceInfoService_1.AccountsBalanceInfoService(tempMockApi);
57
- expect((0, sanitizeNumbers_1.sanitizeNumbers)(await tempAccountsBalanceInfoService.fetchAccountBalanceInfo(mock_1.blockHash789629, mock_1.testAddress, 'DOT'))).toStrictEqual(balanceInfo789629_json_1.default);
43
+ expect((0, sanitizeNumbers_1.sanitizeNumbers)(await tempAccountsBalanceInfoService.fetchAccountBalanceInfo(mock_1.blockHash789629, mockHistoricApi, mock_1.testAddress, 'DOT'))).toStrictEqual(balanceInfo789629_json_1.default);
58
44
  });
59
45
  it('Correctly queries historical blocks', async () => {
60
- const result = await accountsBalanceInfoService.fetchAccountBalanceInfo(mock_1.blockHash789629, mock_1.testAddress, 'DOT');
46
+ const result = await accountsBalanceInfoService.fetchAccountBalanceInfo(mock_1.blockHash789629, mockHistoricApi, mock_1.testAddress, 'DOT');
61
47
  const expectedResponse = {
62
48
  at: {
63
49
  hash: '0x7b713de604a99857f6c25eacc115a4f28d2611a23d9ddff99ab0e4f1c17a8578',
@@ -81,11 +67,10 @@ describe('AccountsBalanceInfoService', () => {
81
67
  });
82
68
  describe('token recognition', () => {
83
69
  const tokenHistoricApi = { ...mockHistoricApi };
84
- tokenHistoricApi.query.system.account = { at: true };
70
+ Object.assign(tokenHistoricApi.query.system.account, { at: true });
85
71
  tokenHistoricApi.query.balances.freeBalance = undefined;
86
72
  const tokenMockApi = {
87
73
  ...mock_1.defaultMockApi,
88
- ...queryMockApi,
89
74
  at: (_hash) => tokenHistoricApi,
90
75
  };
91
76
  const tokenAccountsBalanceInfoService = new AccountsBalanceInfoService_1.AccountsBalanceInfoService(tokenMockApi);
@@ -93,18 +78,19 @@ describe('AccountsBalanceInfoService', () => {
93
78
  beforeAll(() => {
94
79
  // Important: these temp values should never be reassinged. They are used so we can assign
95
80
  // the mockApi properties back to their original values after this sub-section of tests run.
96
- tempQueryTokens = tokenMockApi.query.tokens;
97
- tempQueryBalance = tokenMockApi.query.balances;
98
- const tokensAccountAt = async (hash, address) => (await tokenMockApi.query.system.account.at(hash, address)).data;
81
+ tempQueryTokens = tokenHistoricApi.query.tokens;
82
+ tempQueryBalance = tokenHistoricApi.query.balances;
83
+ const tokensAccountAt = async (address) => (await tokenHistoricApi.query.system.account(address)).data;
99
84
  // Wrap our functions in a jest mock so we can collect data on how they are called
100
- mockTokensLocksAt = jest.fn(tokenMockApi.query.balances.locks.at);
85
+ mockTokensLocksAt = jest.fn(tokenHistoricApi.query.balances.locks);
101
86
  mockTokenAccountAt = jest.fn(tokensAccountAt);
102
- tokenMockApi.query.tokens = {
103
- locks: { at: mockTokensLocksAt },
104
- accounts: { at: mockTokenAccountAt },
87
+ tokenHistoricApi.query.tokens = {
88
+ locks: mockTokensLocksAt,
89
+ accounts: mockTokenAccountAt,
105
90
  };
106
- mockBalancesLocksAt = jest.fn(tokenMockApi.query.balances.locks.at);
107
- tokenMockApi.query.balances.locks.at = mockBalancesLocksAt;
91
+ mockBalancesLocksAt = jest.fn(tokenHistoricApi.query.balances.locks);
92
+ tokenHistoricApi.query.balances.locks =
93
+ mockBalancesLocksAt;
108
94
  });
109
95
  afterEach(() => {
110
96
  // Clear data about how the mocks where called after each `it` test.
@@ -113,21 +99,21 @@ describe('AccountsBalanceInfoService', () => {
113
99
  mockBalancesLocksAt.mockClear();
114
100
  });
115
101
  afterAll(() => {
116
- mockApi.query.tokens = tempQueryTokens;
117
- mockApi.query.balances = tempQueryBalance;
102
+ tokenHistoricApi.query.tokens = tempQueryTokens;
103
+ tokenHistoricApi.query.balances = tempQueryBalance;
118
104
  });
119
105
  it('only has `["DOT"]` (all uppercase chars) for the mockApi registry', () => {
120
- expect(mockApi.registry.chainTokens).toStrictEqual(['DOT']);
121
- expect(mockApi.registry.chainDecimals).toStrictEqual([12]);
106
+ expect(tokenHistoricApi.registry.chainTokens).toStrictEqual(['DOT']);
107
+ expect(tokenHistoricApi.registry.chainDecimals).toStrictEqual([12]);
122
108
  });
123
109
  it('querrys tokens pallet storage with a non-native token', async () => {
124
- expect((0, sanitizeNumbers_1.sanitizeNumbers)(await tokenAccountsBalanceInfoService.fetchAccountBalanceInfo(mock_1.blockHash789629, mock_1.testAddress, 'fOoToKeN')).tokenSymbol).toEqual('fOoToKeN');
110
+ expect((0, sanitizeNumbers_1.sanitizeNumbers)(await tokenAccountsBalanceInfoService.fetchAccountBalanceInfo(mock_1.blockHash789629, tokenHistoricApi, mock_1.testAddress, 'fOoToKeN')).tokenSymbol).toEqual('fOoToKeN');
125
111
  expect(mockTokensLocksAt).toBeCalled();
126
112
  expect(mockTokenAccountAt).toBeCalled();
127
113
  expect(mockBalancesLocksAt).not.toBeCalled();
128
114
  });
129
115
  it('does not query tokens pallet storage with the native token', async () => {
130
- expect((0, sanitizeNumbers_1.sanitizeNumbers)(await tokenAccountsBalanceInfoService.fetchAccountBalanceInfo(mock_1.blockHash789629, mock_1.testAddress, 'doT')).tokenSymbol).toEqual('doT');
116
+ expect((0, sanitizeNumbers_1.sanitizeNumbers)(await tokenAccountsBalanceInfoService.fetchAccountBalanceInfo(mock_1.blockHash789629, tokenHistoricApi, mock_1.testAddress, 'doT')).tokenSymbol).toEqual('doT');
131
117
  expect(mockTokensLocksAt).not.toBeCalled();
132
118
  expect(mockTokenAccountAt).not.toBeCalled();
133
119
  expect(mockBalancesLocksAt).toBeCalled();
@@ -1 +1 @@
1
- {"version":3,"file":"AccountsBalanceInfoService.spec.js","sourceRoot":"","sources":["../../../../src/services/accounts/AccountsBalanceInfoService.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AccountsBalanceInfoService.spec.js","sourceRoot":"","sources":["../../../../src/services/accounts/AccountsBalanceInfoService.spec.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AccountsVestingInfoService = void 0;
4
+ const http_errors_1 = require("http-errors");
4
5
  const AbstractService_1 = require("../AbstractService");
5
6
  class AccountsVestingInfoService extends AbstractService_1.AbstractService {
6
7
  /**
@@ -11,18 +12,31 @@ class AccountsVestingInfoService extends AbstractService_1.AbstractService {
11
12
  */
12
13
  async fetchAccountVestingInfo(hash, address) {
13
14
  const { api } = this;
15
+ const historicApi = await api.at(hash);
16
+ if (!historicApi.query.vesting) {
17
+ throw new http_errors_1.BadRequest(`Vesting pallet does not exist on the specified blocks runtime version`);
18
+ }
14
19
  const [{ number }, vesting] = await Promise.all([
15
20
  api.rpc.chain.getHeader(hash),
16
- api.query.vesting.vesting.at(hash, address),
21
+ historicApi.query.vesting.vesting(address),
17
22
  ]);
18
23
  const at = {
19
24
  hash,
20
25
  height: number.unwrap().toString(10),
21
26
  };
22
- return {
23
- at,
24
- vesting: vesting.isNone ? {} : vesting.unwrap(),
25
- };
27
+ if (vesting.isNone) {
28
+ return {
29
+ at,
30
+ vesting: [],
31
+ };
32
+ }
33
+ else {
34
+ const unwrapVesting = vesting.unwrap();
35
+ return {
36
+ at,
37
+ vesting: Array.isArray(unwrapVesting) ? unwrapVesting : [unwrapVesting],
38
+ };
39
+ }
26
40
  }
27
41
  }
28
42
  exports.AccountsVestingInfoService = AccountsVestingInfoService;
@@ -1 +1 @@
1
- {"version":3,"file":"AccountsVestingInfoService.js","sourceRoot":"","sources":["../../../../src/services/accounts/AccountsVestingInfoService.ts"],"names":[],"mappings":";;;AAGA,wDAAqD;AAErD,MAAa,0BAA2B,SAAQ,iCAAe;IAC9D;;;;;OAKG;IACH,KAAK,CAAC,uBAAuB,CAC5B,IAAe,EACf,OAAe;QAEf,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAErB,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC/C,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;YAC7B,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;SAC3C,CAAC,CAAC;QAEH,MAAM,EAAE,GAAG;YACV,IAAI;YACJ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;SACpC,CAAC;QAEF,OAAO;YACN,EAAE;YACF,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE;SAC/C,CAAC;IACH,CAAC;CACD;AA5BD,gEA4BC"}
1
+ {"version":3,"file":"AccountsVestingInfoService.js","sourceRoot":"","sources":["../../../../src/services/accounts/AccountsVestingInfoService.ts"],"names":[],"mappings":";;;AACA,6CAAyC;AAGzC,wDAAqD;AAErD,MAAa,0BAA2B,SAAQ,iCAAe;IAC9D;;;;;OAKG;IACH,KAAK,CAAC,uBAAuB,CAC5B,IAAe,EACf,OAAe;QAEf,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAErB,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAEvC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE;YAC/B,MAAM,IAAI,wBAAU,CACnB,uEAAuE,CACvE,CAAC;SACF;QAED,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC/C,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;YAC7B,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;SAC1C,CAAC,CAAC;QAEH,MAAM,EAAE,GAAG;YACV,IAAI;YACJ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;SACpC,CAAC;QAEF,IAAI,OAAO,CAAC,MAAM,EAAE;YACnB,OAAO;gBACN,EAAE;gBACF,OAAO,EAAE,EAAE;aACX,CAAC;SACF;aAAM;YACN,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAEvC,OAAO;gBACN,EAAE;gBACF,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;aACvE,CAAC;SACF;IACF,CAAC;CACD;AA7CD,gEA6CC"}
@@ -4,24 +4,59 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const sanitizeNumbers_1 = require("../../sanitize/sanitizeNumbers");
7
+ const polkadotV9110Metadata_1 = require("../../test-helpers/metadata/polkadotV9110Metadata");
7
8
  const registries_1 = require("../../test-helpers/registries");
9
+ const typeFactory_1 = require("../../test-helpers/typeFactory");
8
10
  const mock_1 = require("../test-helpers/mock");
9
11
  const vestingInfo789629_json_1 = __importDefault(require("../test-helpers/responses/accounts/vestingInfo789629.json"));
10
12
  const AccountsVestingInfoService_1 = require("./AccountsVestingInfoService");
11
- const vestingAt = (_hash, _address) => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('Option<VestingInfo>', null));
12
- const mockApi = {
13
- ...mock_1.defaultMockApi,
13
+ const typeFactorApiV9110 = (0, typeFactory_1.createApiWithAugmentations)(polkadotV9110Metadata_1.polkadotMetadataRpcV9110);
14
+ const factory = new typeFactory_1.TypeFactory(typeFactorApiV9110);
15
+ const vestingRes = {
16
+ locked: '1749990000000000',
17
+ perBlock: '166475460',
18
+ startingBlock: '4961000',
19
+ };
20
+ const vestingAt = (_address) => Promise.resolve().then(() => {
21
+ const vestingInfo = typeFactorApiV9110.createType('PalletVestingVestingInfo', vestingRes);
22
+ const vecVestingInfo = factory.vecOf([vestingInfo]);
23
+ return factory.optionOf(vecVestingInfo);
24
+ });
25
+ const historicVestingAt = (_address) => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('Option<VestingInfo>', vestingRes));
26
+ const mockHistoricApi = {
14
27
  query: {
15
28
  vesting: {
16
- vesting: { at: vestingAt },
29
+ vesting: vestingAt,
17
30
  },
18
31
  },
19
32
  };
33
+ const mockApi = {
34
+ ...mock_1.defaultMockApi,
35
+ at: (_hash) => mockHistoricApi,
36
+ };
20
37
  const accountsVestingInfoService = new AccountsVestingInfoService_1.AccountsVestingInfoService(mockApi);
21
38
  describe('AccountVestingInfoService', () => {
22
39
  describe('fetchAccountVestingInfo', () => {
23
- it('works when ApiPromise works (block 789629)', async () => {
40
+ it('works when ApiPromise works (block 789629) with V14 metadata', async () => {
41
+ expect((0, sanitizeNumbers_1.sanitizeNumbers)(await accountsVestingInfoService.fetchAccountVestingInfo(mock_1.blockHash789629, mock_1.testAddress))).toStrictEqual(vestingInfo789629_json_1.default);
42
+ });
43
+ it('Vesting should return an empty array for None responses', async () => {
44
+ const tempVest = () => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('Option<VestingInfo>', null));
45
+ mockHistoricApi.query.vesting.vesting = tempVest;
46
+ const expectedResponse = {
47
+ at: {
48
+ hash: '0x7b713de604a99857f6c25eacc115a4f28d2611a23d9ddff99ab0e4f1c17a8578',
49
+ height: '789629',
50
+ },
51
+ vesting: [],
52
+ };
53
+ expect((0, sanitizeNumbers_1.sanitizeNumbers)(await accountsVestingInfoService.fetchAccountVestingInfo(mock_1.blockHash789629, mock_1.testAddress))).toStrictEqual(expectedResponse);
54
+ mockHistoricApi.query.vesting.vesting = vestingAt;
55
+ });
56
+ it('Should correctly adjust `Option<VestingInfo>` for pre V14 blocks to return an array', async () => {
57
+ mockHistoricApi.query.vesting.vesting = historicVestingAt;
24
58
  expect((0, sanitizeNumbers_1.sanitizeNumbers)(await accountsVestingInfoService.fetchAccountVestingInfo(mock_1.blockHash789629, mock_1.testAddress))).toStrictEqual(vestingInfo789629_json_1.default);
59
+ mockHistoricApi.query.vesting.vesting = vestingAt;
25
60
  });
26
61
  });
27
62
  });
@@ -1 +1 @@
1
- {"version":3,"file":"AccountsVestingInfoService.spec.js","sourceRoot":"","sources":["../../../../src/services/accounts/AccountsVestingInfoService.spec.ts"],"names":[],"mappings":";;;;;AAGA,oEAAiE;AACjE,8DAAiE;AACjE,+CAI8B;AAC9B,uHAAuF;AACvF,6EAA0E;AAE1E,MAAM,SAAS,GAAG,CAAC,KAAW,EAAE,QAAgB,EAAE,EAAE,CACnD,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAC3B,6BAAgB,CAAC,UAAU,CAAC,qBAAqB,EAAE,IAAI,CAAC,CACxD,CAAC;AAEH,MAAM,OAAO,GAAG;IACf,GAAG,qBAAc;IACjB,KAAK,EAAE;QACN,OAAO,EAAE;YACR,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;SAC1B;KACD;CACwB,CAAC;AAE3B,MAAM,0BAA0B,GAAG,IAAI,uDAA0B,CAAC,OAAO,CAAC,CAAC;AAE3E,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IAC1C,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACxC,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,CACL,IAAA,iCAAe,EACd,MAAM,0BAA0B,CAAC,uBAAuB,CACvD,sBAAe,EACf,kBAAW,CACX,CACD,CACD,CAAC,aAAa,CAAC,gCAAc,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"AccountsVestingInfoService.spec.js","sourceRoot":"","sources":["../../../../src/services/accounts/AccountsVestingInfoService.spec.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,9 @@
3
3
  "hash": "0x7b713de604a99857f6c25eacc115a4f28d2611a23d9ddff99ab0e4f1c17a8578",
4
4
  "height": "789629"
5
5
  },
6
- "vesting": {}
6
+ "vesting": [{
7
+ "locked": "1749990000000000",
8
+ "perBlock": "166475460",
9
+ "startingBlock": "4961000"
10
+ }]
7
11
  }
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "10.0.0",
2
+ "version": "11.0.0",
3
3
  "name": "@substrate/api-sidecar",
4
4
  "description": "REST service that makes it easy to interact with blockchain nodes built using Substrate's FRAME framework.",
5
5
  "homepage": "https://github.com/paritytech/substrate-api-sidecar#readme",
@@ -51,9 +51,9 @@
51
51
  "test:test-release": "yarn start:test-release"
52
52
  },
53
53
  "dependencies": {
54
- "@polkadot/api": "6.3.1",
55
- "@polkadot/apps-config": "0.96.2-65",
56
- "@polkadot/util-crypto": "^7.4.1",
54
+ "@polkadot/api": "6.4.1",
55
+ "@polkadot/apps-config": "0.97.2-0",
56
+ "@polkadot/util-crypto": "^7.5.1",
57
57
  "@polkadot/x-rxjs": "^6.11.1",
58
58
  "@substrate/calc": "^0.2.3",
59
59
  "argparse": "^2.0.1",
@@ -77,13 +77,13 @@
77
77
  "tsc-watch": "^4.4.0"
78
78
  },
79
79
  "resolutions": {
80
- "@polkadot/api": "6.3.1",
81
- "@polkadot/keyring": "7.4.1",
82
- "@polkadot/networks": "7.4.1",
83
- "@polkadot/types": "6.3.1",
84
- "@polkadot/types-known": "6.3.1",
85
- "@polkadot/util": "7.4.1",
86
- "@polkadot/util-crypto": "7.4.1",
80
+ "@polkadot/api": "6.4.1",
81
+ "@polkadot/keyring": "7.5.1",
82
+ "@polkadot/networks": "7.5.1",
83
+ "@polkadot/types": "6.4.1",
84
+ "@polkadot/types-known": "6.4.1",
85
+ "@polkadot/util": "7.5.1",
86
+ "@polkadot/util-crypto": "7.5.1",
87
87
  "@polkadot/wasm-crypto": "4.2.1",
88
88
  "node-forge": ">=0.10.0",
89
89
  "node-fetch": ">=2.6.1",