@substrate/api-sidecar 9.2.0 → 10.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.
- package/build/package.json +11 -11
- package/build/src/chains-config/metadata-consts/kusamaConsts.js +1 -1
- package/build/src/chains-config/metadata-consts/kusamaConsts.js.map +1 -1
- package/build/src/chains-config/metadata-consts/polkadotConsts.js +1 -0
- package/build/src/chains-config/metadata-consts/polkadotConsts.js.map +1 -1
- package/build/src/chains-config/metadata-consts/westendConsts.js +1 -0
- package/build/src/chains-config/metadata-consts/westendConsts.js.map +1 -1
- package/build/src/controllers/blocks/BlocksController.js +5 -2
- package/build/src/controllers/blocks/BlocksController.js.map +1 -1
- package/build/src/controllers/blocks/BlocksExtrinsicsController.js +2 -1
- package/build/src/controllers/blocks/BlocksExtrinsicsController.js.map +1 -1
- package/build/src/controllers/pallets/PalletsStorageController.js +12 -6
- package/build/src/controllers/pallets/PalletsStorageController.js.map +1 -1
- package/build/src/services/accounts/AccountsAssetsService.spec.js +107 -1
- package/build/src/services/accounts/AccountsAssetsService.spec.js.map +1 -1
- package/build/src/services/accounts/AccountsBalanceInfoService.spec.js +80 -45
- package/build/src/services/accounts/AccountsBalanceInfoService.spec.js.map +1 -1
- package/build/src/services/accounts/AccountsStakingInfoService.spec.d.ts +4 -1
- package/build/src/services/accounts/AccountsStakingInfoService.spec.js +23 -7
- package/build/src/services/accounts/AccountsStakingInfoService.spec.js.map +1 -1
- package/build/src/services/accounts/AccountsVestingInfoService.spec.js +11 -1
- package/build/src/services/accounts/AccountsVestingInfoService.spec.js.map +1 -1
- package/build/src/services/blocks/BlocksService.d.ts +2 -1
- package/build/src/services/blocks/BlocksService.js +29 -26
- package/build/src/services/blocks/BlocksService.js.map +1 -1
- package/build/src/services/blocks/BlocksService.spec.js +77 -43
- package/build/src/services/blocks/BlocksService.spec.js.map +1 -1
- package/build/src/services/blocks/BlocksTraceService.spec.js +1 -1
- package/build/src/services/blocks/BlocksTraceService.spec.js.map +1 -1
- package/build/src/services/node/NodeNetworkService.spec.js +1 -1
- package/build/src/services/node/NodeNetworkService.spec.js.map +1 -1
- package/build/src/services/node/NodeTransactionPoolService.spec.js +5 -5
- package/build/src/services/node/NodeTransactionPoolService.spec.js.map +1 -1
- package/build/src/services/node/NodeVersionService.spec.js +1 -1
- package/build/src/services/node/NodeVersionService.spec.js.map +1 -1
- package/build/src/services/pallets/PalletsAssetsService.spec.js +113 -1
- package/build/src/services/pallets/PalletsAssetsService.spec.js.map +1 -1
- package/build/src/services/pallets/PalletsStakingProgressService.spec.js +48 -7
- package/build/src/services/pallets/PalletsStakingProgressService.spec.js.map +1 -1
- package/build/src/services/pallets/PalletsStorageService.d.ts +14 -2
- package/build/src/services/pallets/PalletsStorageService.js +56 -11
- package/build/src/services/pallets/PalletsStorageService.js.map +1 -1
- package/build/src/services/pallets/PalletsStorageService.spec.js +29 -7
- package/build/src/services/pallets/PalletsStorageService.spec.js.map +1 -1
- package/build/src/services/paras/ParasService.spec.d.ts +10 -1
- package/build/src/services/paras/ParasService.spec.js +201 -8
- package/build/src/services/paras/ParasService.spec.js.map +1 -1
- package/build/src/services/runtime/RuntimeCodeService.spec.js +1 -1
- package/build/src/services/runtime/RuntimeCodeService.spec.js.map +1 -1
- package/build/src/services/runtime/RuntimeMetadataService.spec.js +1 -1
- package/build/src/services/runtime/RuntimeMetadataService.spec.js.map +1 -1
- package/build/src/services/runtime/RuntimeSpecService.spec.js +1 -1
- package/build/src/services/runtime/RuntimeSpecService.spec.js.map +1 -1
- package/build/src/services/test-helpers/mock/mockApi.d.ts +4 -13
- package/build/src/services/test-helpers/mock/mockApi.js +3 -378
- package/build/src/services/test-helpers/mock/mockApi.js.map +1 -1
- package/build/src/services/transaction/TransactionFeeEstimateService.spec.js +6 -3
- package/build/src/services/transaction/TransactionFeeEstimateService.spec.js.map +1 -1
- package/build/src/services/transaction/TransactionMaterialService.spec.js +1 -1
- package/build/src/services/transaction/TransactionMaterialService.spec.js.map +1 -1
- package/build/src/services/transaction/TransactionSubmitService.spec.js +8 -7
- package/build/src/services/transaction/TransactionSubmitService.spec.js.map +1 -1
- package/build/src/test-helpers/metadata/polkadotV9110Metadata.d.ts +1 -0
- package/build/src/test-helpers/metadata/polkadotV9110Metadata.js +5 -0
- package/build/src/test-helpers/metadata/polkadotV9110Metadata.js.map +1 -0
- package/build/src/test-helpers/registries/polkadotRegistry.d.ts +4 -0
- package/build/src/test-helpers/registries/polkadotRegistry.js +6 -1
- package/build/src/test-helpers/registries/polkadotRegistry.js.map +1 -1
- package/package.json +11 -11
|
@@ -7,7 +7,7 @@ const sanitizeNumbers_1 = require("../../sanitize/sanitizeNumbers");
|
|
|
7
7
|
const mock_1 = require("../test-helpers/mock");
|
|
8
8
|
const network_json_1 = __importDefault(require("../test-helpers/responses/node/network.json"));
|
|
9
9
|
const _1 = require(".");
|
|
10
|
-
const nodeNetworkService = new _1.NodeNetworkService(mock_1.
|
|
10
|
+
const nodeNetworkService = new _1.NodeNetworkService(mock_1.defaultMockApi);
|
|
11
11
|
describe('NodeNetworkService', () => {
|
|
12
12
|
describe('fetchNetwork', () => {
|
|
13
13
|
it('works when ApiPromise works', async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeNetworkService.spec.js","sourceRoot":"","sources":["../../../../src/services/node/NodeNetworkService.spec.ts"],"names":[],"mappings":";;;;;AAAA,oEAAiE;AACjE,+
|
|
1
|
+
{"version":3,"file":"NodeNetworkService.spec.js","sourceRoot":"","sources":["../../../../src/services/node/NodeNetworkService.spec.ts"],"names":[],"mappings":";;;;;AAAA,oEAAiE;AACjE,+CAAsD;AACtD,+FAA8E;AAC9E,wBAAuC;AAEvC,MAAM,kBAAkB,GAAG,IAAI,qBAAkB,CAAC,qBAAc,CAAC,CAAC;AAElE,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IACnC,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;YAC5C,MAAM,CACL,IAAA,iCAAe,EAAC,MAAM,kBAAkB,CAAC,YAAY,EAAE,CAAC,CACxD,CAAC,aAAa,CAAC,sBAAmB,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -9,7 +9,7 @@ const sanitizeNumbers_1 = require("../../sanitize/sanitizeNumbers");
|
|
|
9
9
|
const mock_1 = require("../test-helpers/mock");
|
|
10
10
|
const transactionPool_json_1 = __importDefault(require("../test-helpers/responses/node/transactionPool.json"));
|
|
11
11
|
const _1 = require(".");
|
|
12
|
-
const nodeTranstionPoolService = new _1.NodeTransactionPoolService(mock_1.
|
|
12
|
+
const nodeTranstionPoolService = new _1.NodeTransactionPoolService(mock_1.defaultMockApi);
|
|
13
13
|
describe('NodeTransactionPoolService', () => {
|
|
14
14
|
describe('fetchTransactionPool', () => {
|
|
15
15
|
it('works when ApiPromiseWorks (no txs)', async () => {
|
|
@@ -17,12 +17,12 @@ describe('NodeTransactionPoolService', () => {
|
|
|
17
17
|
.fetchTransactionPool())).toStrictEqual({ pool: [] });
|
|
18
18
|
});
|
|
19
19
|
it('works when ApiPromiseWorks (1 tx)', async () => {
|
|
20
|
-
const ext = mock_1.
|
|
21
|
-
const pool = mock_1.
|
|
22
|
-
mock_1.
|
|
20
|
+
const ext = mock_1.defaultMockApi.createType('Extrinsic', '0x4d0284d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d015c41b5e704d89787e5208b863fa815a146a19ade0cd95f2378815d72c52b2644c05f0dd6be3bf219b9963ac9ddeec8d379c0cd1d86d8f33f2c1d1a8006efc180050000001a00040500e659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e0f0040767b10c403');
|
|
21
|
+
const pool = mock_1.defaultMockApi.createType('Vec<Extrinsic>', [ext]);
|
|
22
|
+
mock_1.defaultMockApi.rpc.author.pendingExtrinsics = () => Promise.resolve().then(() => pool);
|
|
23
23
|
expect((0, sanitizeNumbers_1.sanitizeNumbers)(await nodeTranstionPoolService
|
|
24
24
|
.fetchTransactionPool())).toStrictEqual(transactionPool_json_1.default);
|
|
25
|
-
mock_1.
|
|
25
|
+
mock_1.defaultMockApi.rpc.author.pendingExtrinsics = mock_1.pendingExtrinsics;
|
|
26
26
|
});
|
|
27
27
|
});
|
|
28
28
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeTransactionPoolService.spec.js","sourceRoot":"","sources":["../../../../src/services/node/NodeTransactionPoolService.spec.ts"],"names":[],"mappings":";;;;;AAAA,uDAAuD;AACvD,+DAA+D;AAC/D,oEAAiE;AACjE,+CAI8B;AAC9B,+GAA0F;AAC1F,wBAA+C;AAE/C,MAAM,wBAAwB,GAAG,IAAI,6BAA0B,CAAC,
|
|
1
|
+
{"version":3,"file":"NodeTransactionPoolService.spec.js","sourceRoot":"","sources":["../../../../src/services/node/NodeTransactionPoolService.spec.ts"],"names":[],"mappings":";;;;;AAAA,uDAAuD;AACvD,+DAA+D;AAC/D,oEAAiE;AACjE,+CAI8B;AAC9B,+GAA0F;AAC1F,wBAA+C;AAE/C,MAAM,wBAAwB,GAAG,IAAI,6BAA0B,CAAC,qBAAc,CAAC,CAAC;AAEhF,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC3C,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,CACL,IAAA,iCAAe,EACd,MAAM,wBAAwB;iBAC5B,oBAAoB,EAEnB,CACH,CACD,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YAClD,MAAM,GAAG,GAAG,qBAAc,CAAC,UAAU,CACpC,WAAW,EACX,8SAA8S,CAC9S,CAAC;YAEF,MAAM,IAAI,GAAG,qBAAc,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/D,qBAAc,CAAC,GAAG,CAAC,MAAc,CAAC,iBAAiB,GAAG,GAAG,EAAE,CAC3D,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YAEpC,MAAM,CACL,IAAA,iCAAe,EACd,MAAM,wBAAwB;iBAC5B,oBAAoB,EAEnB,CACH,CACD,CAAC,aAAa,CAAC,8BAAuB,CAAC,CAAC;YAExC,qBAAc,CAAC,GAAG,CAAC,MAAc,CAAC,iBAAiB,GAAG,wBAAiB,CAAC;QAC1E,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -7,7 +7,7 @@ const sanitizeNumbers_1 = require("../../sanitize/sanitizeNumbers");
|
|
|
7
7
|
const mock_1 = require("../test-helpers/mock");
|
|
8
8
|
const version_json_1 = __importDefault(require("../test-helpers/responses/node/version.json"));
|
|
9
9
|
const _1 = require(".");
|
|
10
|
-
const nodeVersionService = new _1.NodeVersionService(mock_1.
|
|
10
|
+
const nodeVersionService = new _1.NodeVersionService(mock_1.defaultMockApi);
|
|
11
11
|
describe('NodeVersionService', () => {
|
|
12
12
|
describe('fetchVersion', () => {
|
|
13
13
|
it('works when ApiPromise works', async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeVersionService.spec.js","sourceRoot":"","sources":["../../../../src/services/node/NodeVersionService.spec.ts"],"names":[],"mappings":";;;;;AAAA,oEAAiE;AACjE,+
|
|
1
|
+
{"version":3,"file":"NodeVersionService.spec.js","sourceRoot":"","sources":["../../../../src/services/node/NodeVersionService.spec.ts"],"names":[],"mappings":";;;;;AAAA,oEAAiE;AACjE,+CAAsD;AACtD,+FAA8E;AAC9E,wBAAuC;AAEvC,MAAM,kBAAkB,GAAG,IAAI,qBAAkB,CAAC,qBAAc,CAAC,CAAC;AAElE,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IACnC,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;YAC5C,MAAM,CACL,IAAA,iCAAe,EAAC,MAAM,kBAAkB,CAAC,YAAY,EAAE,CAAC,CACxD,CAAC,aAAa,CAAC,sBAAmB,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1,9 +1,121 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const sanitizeNumbers_1 = require("../../sanitize/sanitizeNumbers");
|
|
4
|
+
const statemintMetadata_1 = require("../../test-helpers/metadata/statemintMetadata");
|
|
5
|
+
const registries_1 = require("../../test-helpers/registries");
|
|
6
|
+
const typeFactory_1 = require("../../test-helpers/typeFactory");
|
|
7
|
+
const typeFactory_2 = require("../../test-helpers/typeFactory");
|
|
4
8
|
const mock_1 = require("../test-helpers/mock");
|
|
5
9
|
const PalletsAssetsService_1 = require("./PalletsAssetsService");
|
|
6
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Asset specific constants.
|
|
12
|
+
* Note: It borrows some variables used in the parachains constant section
|
|
13
|
+
*
|
|
14
|
+
* Used in `/assets` and `/accounts` endpoints
|
|
15
|
+
*/
|
|
16
|
+
const statemintApiV1 = (0, typeFactory_1.createApiWithAugmentations)(statemintMetadata_1.statemintV1);
|
|
17
|
+
const statemintTypeFactory = new typeFactory_2.TypeFactory(statemintApiV1);
|
|
18
|
+
const falseBool = registries_1.rococoRegistry.createType('bool', false);
|
|
19
|
+
const trueBool = registries_1.rococoRegistry.createType('bool', true);
|
|
20
|
+
const assetTBalanceOne = registries_1.rococoRegistry.createType('u64', 10000000);
|
|
21
|
+
const assetTBalanceTwo = registries_1.rococoRegistry.createType('u64', 20000000);
|
|
22
|
+
const accountIdOne = registries_1.rococoRegistry.createType('AccountId', '1TYrFCWxwHA5bhiXf6uLvPfG6eEvrzzL7uiPK3Yc6yHLUqc');
|
|
23
|
+
const accountIdTwo = registries_1.rococoRegistry.createType('AccountId', '13NXiLYYzVEjXxU3eaZNcrjEX9vPyVDNNpURCzK8Bj9BiCWH');
|
|
24
|
+
const balanceOfTwo = registries_1.rococoRegistry.createType('BalanceOf', 2000000);
|
|
25
|
+
const assetsInfo = () => Promise.resolve().then(() => {
|
|
26
|
+
const responseObj = {
|
|
27
|
+
owner: accountIdOne,
|
|
28
|
+
issue: accountIdTwo,
|
|
29
|
+
admin: accountIdTwo,
|
|
30
|
+
freezer: accountIdTwo,
|
|
31
|
+
supply: assetTBalanceOne,
|
|
32
|
+
deposit: balanceOfTwo,
|
|
33
|
+
minBalance: registries_1.rococoRegistry.createType('u64', 10000),
|
|
34
|
+
isSufficient: trueBool,
|
|
35
|
+
accounts: registries_1.rococoRegistry.createType('u32', 10),
|
|
36
|
+
sufficients: registries_1.rococoRegistry.createType('u32', 15),
|
|
37
|
+
approvals: registries_1.rococoRegistry.createType('u32', 20),
|
|
38
|
+
isFrozen: falseBool,
|
|
39
|
+
};
|
|
40
|
+
return registries_1.rococoRegistry.createType('AssetDetails', responseObj);
|
|
41
|
+
});
|
|
42
|
+
const assetsMetadata = () => Promise.resolve().then(() => {
|
|
43
|
+
const responseObj = {
|
|
44
|
+
deposit: balanceOfTwo,
|
|
45
|
+
name: registries_1.rococoRegistry.createType('Bytes', 'statemint'),
|
|
46
|
+
symbol: registries_1.rococoRegistry.createType('Bytes', 'DOT'),
|
|
47
|
+
decimals: registries_1.rococoRegistry.createType('u8', 10),
|
|
48
|
+
isFrozen: falseBool,
|
|
49
|
+
};
|
|
50
|
+
return registries_1.rococoRegistry.createType('AssetMetadata', responseObj);
|
|
51
|
+
});
|
|
52
|
+
const assetBalanceObjOne = {
|
|
53
|
+
balance: assetTBalanceOne,
|
|
54
|
+
isFrozen: falseBool,
|
|
55
|
+
sufficient: trueBool,
|
|
56
|
+
};
|
|
57
|
+
const assetBalanceObjTwo = {
|
|
58
|
+
balance: assetTBalanceTwo,
|
|
59
|
+
isFrozen: trueBool,
|
|
60
|
+
sufficient: trueBool,
|
|
61
|
+
};
|
|
62
|
+
const assetBalanceObjThree = {
|
|
63
|
+
balance: assetTBalanceTwo,
|
|
64
|
+
isFrozen: falseBool,
|
|
65
|
+
sufficient: falseBool,
|
|
66
|
+
};
|
|
67
|
+
const assetBalanceFactory = {
|
|
68
|
+
'10': assetBalanceObjOne,
|
|
69
|
+
'20': assetBalanceObjTwo,
|
|
70
|
+
'30': assetBalanceObjThree,
|
|
71
|
+
};
|
|
72
|
+
const assetStorageKeyOne = statemintTypeFactory.storageKey(10, 'AssetId', statemintApiV1.query.assets.asset);
|
|
73
|
+
const assetStorageKeyTwo = statemintTypeFactory.storageKey(20, 'AssetId', statemintApiV1.query.assets.asset);
|
|
74
|
+
const assetStorageKeyThree = statemintTypeFactory.storageKey(30, 'AssetId', statemintApiV1.query.assets.asset);
|
|
75
|
+
const assetsAccountKeysAt = () => Promise.resolve().then(() => {
|
|
76
|
+
return [assetStorageKeyOne, assetStorageKeyTwo, assetStorageKeyThree];
|
|
77
|
+
});
|
|
78
|
+
/**
|
|
79
|
+
* Attach `keysAt` to mockApi.query.assets.asset
|
|
80
|
+
*/
|
|
81
|
+
Object.assign(assetsInfo, {
|
|
82
|
+
keysAt: assetsAccountKeysAt,
|
|
83
|
+
});
|
|
84
|
+
/**
|
|
85
|
+
* @param assetId options are 10, 20, 30
|
|
86
|
+
*/
|
|
87
|
+
const assetsAccount = (assetId, _address) => {
|
|
88
|
+
const id = typeof assetId === 'number' ? assetId : assetId.toNumber();
|
|
89
|
+
switch (id) {
|
|
90
|
+
case 10:
|
|
91
|
+
return assetBalanceFactory[10];
|
|
92
|
+
case 20:
|
|
93
|
+
return assetBalanceFactory[20];
|
|
94
|
+
case 30:
|
|
95
|
+
return assetBalanceFactory[30];
|
|
96
|
+
default:
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
const assetApprovals = () => Promise.resolve().then(() => {
|
|
101
|
+
const assetObj = {
|
|
102
|
+
amount: assetTBalanceOne,
|
|
103
|
+
deposit: balanceOfTwo,
|
|
104
|
+
};
|
|
105
|
+
return registries_1.rococoRegistry.createType('Option<AssetApproval>', assetObj);
|
|
106
|
+
});
|
|
107
|
+
const mockApi = {
|
|
108
|
+
...mock_1.defaultMockApi,
|
|
109
|
+
query: {
|
|
110
|
+
assets: {
|
|
111
|
+
asset: assetsInfo,
|
|
112
|
+
approvals: assetApprovals,
|
|
113
|
+
account: assetsAccount,
|
|
114
|
+
metadata: assetsMetadata,
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
const palletsAssetsService = new PalletsAssetsService_1.PalletsAssetsService(mockApi);
|
|
7
119
|
describe('PalletsAssetsService', () => {
|
|
8
120
|
describe('PalletsAssetsService.fetchAssetById', () => {
|
|
9
121
|
it('Should return the correct response for an AssetId', async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PalletsAssetsService.spec.js","sourceRoot":"","sources":["../../../../src/services/pallets/PalletsAssetsService.spec.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"PalletsAssetsService.spec.js","sourceRoot":"","sources":["../../../../src/services/pallets/PalletsAssetsService.spec.ts"],"names":[],"mappings":";;AAIA,oEAAiE;AACjE,qFAA4E;AAC5E,8DAA+D;AAC/D,gEAA4E;AAC5E,gEAA6D;AAC7D,+CAAuE;AACvE,iEAA8D;AAE9D;;;;;GAKG;AACH,MAAM,cAAc,GAAG,IAAA,wCAA0B,EAAC,+BAAW,CAAC,CAAC;AAC/D,MAAM,oBAAoB,GAAG,IAAI,yBAAW,CAAC,cAAc,CAAC,CAAC;AAE7D,MAAM,SAAS,GAAG,2BAAc,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC3D,MAAM,QAAQ,GAAG,2BAAc,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACzD,MAAM,gBAAgB,GAAG,2BAAc,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACpE,MAAM,gBAAgB,GAAG,2BAAc,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAEpE,MAAM,YAAY,GAAG,2BAAc,CAAC,UAAU,CAC7C,WAAW,EACX,iDAAiD,CACjD,CAAC;AACF,MAAM,YAAY,GAAG,2BAAc,CAAC,UAAU,CAC7C,WAAW,EACX,kDAAkD,CAClD,CAAC;AACF,MAAM,YAAY,GAAG,2BAAc,CAAC,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAErE,MAAM,UAAU,GAAG,GAAG,EAAE,CACvB,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;IAC3B,MAAM,WAAW,GAAG;QACnB,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE,gBAAgB;QACxB,OAAO,EAAE,YAAY;QACrB,UAAU,EAAE,2BAAc,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC;QACnD,YAAY,EAAE,QAAQ;QACtB,QAAQ,EAAE,2BAAc,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;QAC9C,WAAW,EAAE,2BAAc,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;QACjD,SAAS,EAAE,2BAAc,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;QAC/C,QAAQ,EAAE,SAAS;KACnB,CAAC;IAEF,OAAO,2BAAc,CAAC,UAAU,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;AAC/D,CAAC,CAAC,CAAC;AAEJ,MAAM,cAAc,GAAG,GAAG,EAAE,CAC3B,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;IAC3B,MAAM,WAAW,GAAG;QACnB,OAAO,EAAE,YAAY;QACrB,IAAI,EAAE,2BAAc,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC;QACrD,MAAM,EAAE,2BAAc,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC;QACjD,QAAQ,EAAE,2BAAc,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7C,QAAQ,EAAE,SAAS;KACnB,CAAC;IAEF,OAAO,2BAAc,CAAC,UAAU,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;AAChE,CAAC,CAAC,CAAC;AAEJ,MAAM,kBAAkB,GAAG;IAC1B,OAAO,EAAE,gBAAgB;IACzB,QAAQ,EAAE,SAAS;IACnB,UAAU,EAAE,QAAQ;CACpB,CAAC;AAEF,MAAM,kBAAkB,GAAG;IAC1B,OAAO,EAAE,gBAAgB;IACzB,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,QAAQ;CACpB,CAAC;AAEF,MAAM,oBAAoB,GAAG;IAC5B,OAAO,EAAE,gBAAgB;IACzB,QAAQ,EAAE,SAAS;IACnB,UAAU,EAAE,SAAS;CACrB,CAAC;AAEF,MAAM,mBAAmB,GAAG;IAC3B,IAAI,EAAE,kBAA8C;IACpD,IAAI,EAAE,kBAA8C;IACpD,IAAI,EAAE,oBAAgD;CACtD,CAAC;AAEF,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,UAAU,CACzD,EAAE,EACF,SAAS,EACT,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CACjC,CAAC;AAEF,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,UAAU,CACzD,EAAE,EACF,SAAS,EACT,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CACjC,CAAC;AAEF,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,UAAU,CAC3D,EAAE,EACF,SAAS,EACT,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CACjC,CAAC;AAEF,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAChC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;IAC3B,OAAO,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,oBAAoB,CAAC,CAAC;AACvE,CAAC,CAAC,CAAC;AAEJ;;GAEG;AACH,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE;IACzB,MAAM,EAAE,mBAAmB;CAC3B,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,aAAa,GAAG,CAAC,OAAyB,EAAE,QAAgB,EAAE,EAAE;IACrE,MAAM,EAAE,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAEtE,QAAQ,EAAE,EAAE;QACX,KAAK,EAAE;YACN,OAAO,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAChC,KAAK,EAAE;YACN,OAAO,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAChC,KAAK,EAAE;YACN,OAAO,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAChC;YACC,OAAO;KACR;AACF,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,GAAG,EAAE,CAC3B,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;IAC3B,MAAM,QAAQ,GAAG;QAChB,MAAM,EAAE,gBAAgB;QACxB,OAAO,EAAE,YAAY;KACrB,CAAC;IACF,OAAO,2BAAc,CAAC,UAAU,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAC;AACrE,CAAC,CAAC,CAAC;AAEJ,MAAM,OAAO,GAAG;IACf,GAAG,qBAAc;IACjB,KAAK,EAAE;QACN,MAAM,EAAE;YACP,KAAK,EAAE,UAAU;YACjB,SAAS,EAAE,cAAc;YACzB,OAAO,EAAE,aAAa;YACtB,QAAQ,EAAE,cAAc;SACxB;KACD;CACwB,CAAC;AAE3B,MAAM,oBAAoB,GAAG,IAAI,2CAAoB,CAAC,OAAO,CAAC,CAAC;AAE/D,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACrC,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;QACpD,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,gBAAgB,GAAG;gBACxB,EAAE,EAAE;oBACH,IAAI,EAAE,oEAAoE;oBAC1E,MAAM,EAAE,QAAQ;iBAChB;gBACD,SAAS,EAAE;oBACV,KAAK,EAAE,kDAAkD;oBACzD,MAAM,EAAE,kDAAkD;oBAC1D,KAAK,EAAE,kDAAkD;oBACzD,OAAO,EAAE,kDAAkD;oBAC3D,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,SAAS;oBAClB,UAAU,EAAE,OAAO;oBACnB,YAAY,EAAE,IAAI;oBAClB,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,IAAI;oBACjB,SAAS,EAAE,IAAI;oBACf,QAAQ,EAAE,KAAK;iBACf;gBACD,aAAa,EAAE;oBACd,OAAO,EAAE,SAAS;oBAClB,IAAI,EAAE,sBAAsB;oBAC5B,MAAM,EAAE,UAAU;oBAClB,QAAQ,EAAE,IAAI;oBACd,QAAQ,EAAE,KAAK;iBACf;aACD,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,cAAc,CACzD,sBAAe,EACf,EAAE,CACF,CAAC;YAEF,MAAM,CAAC,IAAA,iCAAe,EAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -3,33 +3,74 @@ 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
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
7
|
-
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
8
6
|
const http_errors_1 = require("http-errors");
|
|
9
7
|
const sanitizeNumbers_1 = require("../../sanitize/sanitizeNumbers");
|
|
10
8
|
const registries_1 = require("../../test-helpers/registries");
|
|
11
9
|
const mock_1 = require("../test-helpers/mock");
|
|
10
|
+
const validators789629Hex_1 = require("../test-helpers/mock/data/validators789629Hex");
|
|
12
11
|
const stakingProgress789629_json_1 = __importDefault(require("../test-helpers/responses/pallets/stakingProgress789629.json"));
|
|
13
12
|
const PalletsStakingProgressService_1 = require("./PalletsStakingProgressService");
|
|
13
|
+
const epochIndexAt = (_hash) => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('u64', 330));
|
|
14
|
+
const genesisSlotAt = (_hash) => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('u64', 265084563));
|
|
15
|
+
const currentSlotAt = (_hash) => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('u64', 265876724));
|
|
16
|
+
const currentIndexAt = (_hash) => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('SessionIndex', 330));
|
|
17
|
+
const eraElectionStatusAt = (_hash) => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('ElectionStatus', { Close: null }));
|
|
18
|
+
const validatorsAt = () => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('Vec<ValidatorId>', validators789629Hex_1.validators789629Hex));
|
|
19
|
+
const forceEraAt = (_hash) => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('Forcing', 'NotForcing'));
|
|
20
|
+
const unappliedSlashesAt = (_hash, _activeEra) => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('Vec<UnappliedSlash>', []));
|
|
21
|
+
const validatorCountAt = (_hash) => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('u32', 197));
|
|
22
|
+
const mockApi = {
|
|
23
|
+
...mock_1.defaultMockApi,
|
|
24
|
+
consts: {
|
|
25
|
+
babe: {
|
|
26
|
+
epochDuration: registries_1.polkadotRegistry.createType('u64', 2400),
|
|
27
|
+
},
|
|
28
|
+
staking: {
|
|
29
|
+
electionLookAhead: registries_1.polkadotRegistry.createType('BlockNumber'),
|
|
30
|
+
sessionsPerEra: registries_1.polkadotRegistry.createType('SessionIndex', 6),
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
query: {
|
|
34
|
+
babe: {
|
|
35
|
+
currentSlot: { at: currentSlotAt },
|
|
36
|
+
epochIndex: { at: epochIndexAt },
|
|
37
|
+
genesisSlot: { at: genesisSlotAt },
|
|
38
|
+
},
|
|
39
|
+
session: {
|
|
40
|
+
currentIndex: { at: currentIndexAt },
|
|
41
|
+
validators: validatorsAt,
|
|
42
|
+
},
|
|
43
|
+
staking: {
|
|
44
|
+
activeEra: { at: mock_1.activeEraAt },
|
|
45
|
+
eraElectionStatus: { at: eraElectionStatusAt },
|
|
46
|
+
erasStartSessionIndex: { at: mock_1.erasStartSessionIndexAt },
|
|
47
|
+
forceEra: { at: forceEraAt },
|
|
48
|
+
unappliedSlashes: { at: unappliedSlashesAt },
|
|
49
|
+
validatorCount: { at: validatorCountAt },
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
};
|
|
14
53
|
/**
|
|
15
54
|
* Mock PalletStakingProgressService instance.
|
|
16
55
|
*/
|
|
17
|
-
const palletStakingProgressService = new PalletsStakingProgressService_1.PalletsStakingProgressService(
|
|
56
|
+
const palletStakingProgressService = new PalletsStakingProgressService_1.PalletsStakingProgressService(mockApi);
|
|
18
57
|
describe('PalletStakingProgressService', () => {
|
|
19
58
|
describe('derivePalletStakingProgress', () => {
|
|
59
|
+
mockApi.query.session.validators = { at: validatorsAt };
|
|
20
60
|
it('works when ApiPromise works (block 789629)', async () => {
|
|
21
61
|
expect((0, sanitizeNumbers_1.sanitizeNumbers)(await palletStakingProgressService.derivePalletStakingProgress(mock_1.blockHash789629))).toStrictEqual(stakingProgress789629_json_1.default);
|
|
22
62
|
});
|
|
23
63
|
it('throws when ErasStartSessionIndex.isNone', async () => {
|
|
24
|
-
|
|
64
|
+
mockApi.query.staking.erasStartSessionIndex.at = () => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('Option<SessionIndex>', null));
|
|
25
65
|
await expect(palletStakingProgressService.derivePalletStakingProgress(mock_1.blockHash789629)).rejects.toStrictEqual(new http_errors_1.InternalServerError('EraStartSessionIndex is None when Some was expected.'));
|
|
26
|
-
|
|
66
|
+
mockApi.query.staking.erasStartSessionIndex.at =
|
|
27
67
|
mock_1.erasStartSessionIndexAt;
|
|
28
68
|
});
|
|
29
69
|
it('throws when activeEra.isNone', async () => {
|
|
30
|
-
|
|
70
|
+
mockApi.query.staking.activeEra.at = () => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('Option<ActiveEraInfo>', null));
|
|
31
71
|
await expect(palletStakingProgressService.derivePalletStakingProgress(mock_1.blockHash789629)).rejects.toStrictEqual(new http_errors_1.InternalServerError('ActiveEra is None when Some was expected.'));
|
|
32
|
-
|
|
72
|
+
mockApi.query.staking.activeEra.at = mock_1.activeEraAt;
|
|
73
|
+
mockApi.query.session.validators = validatorsAt;
|
|
33
74
|
});
|
|
34
75
|
});
|
|
35
76
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PalletsStakingProgressService.spec.js","sourceRoot":"","sources":["../../../../src/services/pallets/PalletsStakingProgressService.spec.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"PalletsStakingProgressService.spec.js","sourceRoot":"","sources":["../../../../src/services/pallets/PalletsStakingProgressService.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,33 @@
|
|
|
1
|
+
import { ApiDecoration } from '@polkadot/api/types';
|
|
1
2
|
import { BlockHash } from '@polkadot/types/interfaces';
|
|
2
3
|
import { IPalletStorage, IPalletStorageItem } from 'src/types/responses';
|
|
3
4
|
import { AbstractService } from '../AbstractService';
|
|
4
5
|
interface IFetchPalletArgs {
|
|
5
6
|
hash: BlockHash;
|
|
6
7
|
palletId: string;
|
|
8
|
+
adjustMetadataV13Arg: boolean;
|
|
7
9
|
}
|
|
8
10
|
interface IFetchStorageItemArgs extends IFetchPalletArgs {
|
|
9
11
|
storageItemId: string;
|
|
10
12
|
key1?: string;
|
|
11
13
|
key2?: string;
|
|
12
14
|
metadata: boolean;
|
|
15
|
+
adjustMetadataV13Arg: boolean;
|
|
13
16
|
}
|
|
14
17
|
export declare class PalletsStorageService extends AbstractService {
|
|
15
|
-
fetchStorageItem({ hash, palletId, storageItemId, key1, key2, metadata, }: IFetchStorageItemArgs): Promise<IPalletStorageItem>;
|
|
16
|
-
fetchStorage({ hash, palletId, onlyIds, }: IFetchPalletArgs & {
|
|
18
|
+
fetchStorageItem(historicApi: ApiDecoration<'promise'>, { hash, palletId, storageItemId, key1, key2, metadata, adjustMetadataV13Arg, }: IFetchStorageItemArgs): Promise<IPalletStorageItem>;
|
|
19
|
+
fetchStorage(historicApi: ApiDecoration<'promise'>, { hash, palletId, onlyIds, adjustMetadataV13Arg, }: IFetchPalletArgs & {
|
|
17
20
|
onlyIds: boolean;
|
|
18
21
|
}): Promise<IPalletStorage>;
|
|
22
|
+
/**
|
|
23
|
+
* This will grab either V13 or V14 metadata for pallets. The reason being is v14 introduced
|
|
24
|
+
* `StorageEntryTypeV14` which is different from `StorageEntryTypeV13` when it comes
|
|
25
|
+
* to `asMap`. This will ultimately give different responses, and we want to make sure
|
|
26
|
+
* we preserve the integrity of older blocks.
|
|
27
|
+
*
|
|
28
|
+
* @param hash BlockHash to query
|
|
29
|
+
*/
|
|
30
|
+
private chooseMetadataVersion;
|
|
19
31
|
/**
|
|
20
32
|
* Normalize storage item metadata by running it through `sanitizeNumbers` and
|
|
21
33
|
* converting the docs section from an array of strings to a single string
|
|
@@ -5,9 +5,46 @@ const util_1 = require("@polkadot/util");
|
|
|
5
5
|
const http_errors_1 = require("http-errors");
|
|
6
6
|
const sanitizeNumbers_1 = require("../../sanitize/sanitizeNumbers");
|
|
7
7
|
const AbstractService_1 = require("../AbstractService");
|
|
8
|
+
/**
|
|
9
|
+
* This is where these networks switched to v9110 which introduces v14 Metadata.
|
|
10
|
+
*/
|
|
11
|
+
const upgradeBlocks = {
|
|
12
|
+
kusama: 9625129,
|
|
13
|
+
polkadot: 7229126,
|
|
14
|
+
westend: 7766392,
|
|
15
|
+
};
|
|
8
16
|
class PalletsStorageService extends AbstractService_1.AbstractService {
|
|
9
|
-
|
|
10
|
-
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
/**
|
|
20
|
+
* This will grab either V13 or V14 metadata for pallets. The reason being is v14 introduced
|
|
21
|
+
* `StorageEntryTypeV14` which is different from `StorageEntryTypeV13` when it comes
|
|
22
|
+
* to `asMap`. This will ultimately give different responses, and we want to make sure
|
|
23
|
+
* we preserve the integrity of older blocks.
|
|
24
|
+
*
|
|
25
|
+
* @param hash BlockHash to query
|
|
26
|
+
*/
|
|
27
|
+
this.chooseMetadataVersion = async (hash, adjustMetadataV13Arg) => {
|
|
28
|
+
const [historicMetadata, blockHeader, { specName }] = await Promise.all([
|
|
29
|
+
await this.api.rpc.state.getMetadata(hash),
|
|
30
|
+
await this.api.rpc.chain.getHeader(hash),
|
|
31
|
+
this.api.rpc.state.getRuntimeVersion(),
|
|
32
|
+
]);
|
|
33
|
+
const blockNumber = blockHeader.number.toNumber();
|
|
34
|
+
let chosenMetadata;
|
|
35
|
+
if (blockNumber < upgradeBlocks[specName.toString()] &&
|
|
36
|
+
adjustMetadataV13Arg) {
|
|
37
|
+
chosenMetadata = historicMetadata.asV13;
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
chosenMetadata = historicMetadata.asV14;
|
|
41
|
+
}
|
|
42
|
+
return chosenMetadata;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
async fetchStorageItem(historicApi, { hash, palletId, storageItemId, key1, key2, metadata, adjustMetadataV13Arg, }) {
|
|
46
|
+
const chosenMetadata = await this.chooseMetadataVersion(hash, adjustMetadataV13Arg);
|
|
47
|
+
const [palletMeta, palletMetaIdx] = this.findPalletMeta(chosenMetadata, historicApi, palletId);
|
|
11
48
|
const palletName = (0, util_1.stringCamelCase)(palletMeta.name);
|
|
12
49
|
// Even if `storageItemMeta` is not used, we call this function to ensure it exists. The side effects
|
|
13
50
|
// of the storage item not existing are that `findStorageItemMeta` will throw.
|
|
@@ -18,7 +55,7 @@ class PalletsStorageService extends AbstractService_1.AbstractService {
|
|
|
18
55
|
this.normalizeStorageItemMeta(storageItemMeta);
|
|
19
56
|
}
|
|
20
57
|
const [value, { number }] = await Promise.all([
|
|
21
|
-
|
|
58
|
+
historicApi.query[palletName][storageItemId](key1, key2),
|
|
22
59
|
this.api.rpc.chain.getHeader(hash),
|
|
23
60
|
]);
|
|
24
61
|
return {
|
|
@@ -35,8 +72,9 @@ class PalletsStorageService extends AbstractService_1.AbstractService {
|
|
|
35
72
|
metadata: normalizedStorageItemMeta,
|
|
36
73
|
};
|
|
37
74
|
}
|
|
38
|
-
async fetchStorage({ hash, palletId, onlyIds, }) {
|
|
39
|
-
const
|
|
75
|
+
async fetchStorage(historicApi, { hash, palletId, onlyIds, adjustMetadataV13Arg, }) {
|
|
76
|
+
const chosenMetadata = await this.chooseMetadataVersion(hash, adjustMetadataV13Arg);
|
|
77
|
+
const [palletMeta, palletMetaIdx] = this.findPalletMeta(chosenMetadata, historicApi, palletId);
|
|
40
78
|
let items;
|
|
41
79
|
if (palletMeta.storage.isNone) {
|
|
42
80
|
items = [];
|
|
@@ -96,10 +134,17 @@ class PalletsStorageService extends AbstractService_1.AbstractService {
|
|
|
96
134
|
*
|
|
97
135
|
* @param palletId identifier for a FRAME pallet as a pallet name or index.
|
|
98
136
|
*/
|
|
99
|
-
findPalletMeta(palletId) {
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
|
|
137
|
+
findPalletMeta(adjustedMetadata, historicApi, palletId) {
|
|
138
|
+
const metadataType = adjustedMetadata.toRawType();
|
|
139
|
+
let pallets;
|
|
140
|
+
if (metadataType.includes('MetadataV13')) {
|
|
141
|
+
pallets = adjustedMetadata['modules'];
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
pallets = adjustedMetadata['pallets'];
|
|
145
|
+
}
|
|
146
|
+
const { isValidPalletName, isValidPalletIndex, parsedPalletId } = this.validPalletId(historicApi, pallets, palletId);
|
|
147
|
+
const filtered = pallets.filter((mod) => mod.storage.isSome);
|
|
103
148
|
let palletMeta;
|
|
104
149
|
let palletIdx;
|
|
105
150
|
if (isValidPalletIndex) {
|
|
@@ -139,10 +184,10 @@ class PalletsStorageService extends AbstractService_1.AbstractService {
|
|
|
139
184
|
}
|
|
140
185
|
return [palletMeta, palletIdx];
|
|
141
186
|
}
|
|
142
|
-
validPalletId(modules, palletId) {
|
|
187
|
+
validPalletId(historicApi, modules, palletId) {
|
|
143
188
|
// Either a pallet name (string) or a pallet index (number)
|
|
144
189
|
const parsedPalletId = PalletsStorageService.palletIdxOrName(palletId);
|
|
145
|
-
const isValidPalletName = typeof parsedPalletId === 'string' && !!
|
|
190
|
+
const isValidPalletName = typeof parsedPalletId === 'string' && !!historicApi.query[palletId];
|
|
146
191
|
const isValidPalletIndex = typeof parsedPalletId === 'number' &&
|
|
147
192
|
modules.some((meta, idx) => meta.index.eqn(255)
|
|
148
193
|
? idx === parsedPalletId
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PalletsStorageService.js","sourceRoot":"","sources":["../../../../src/services/pallets/PalletsStorageService.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"PalletsStorageService.js","sourceRoot":"","sources":["../../../../src/services/pallets/PalletsStorageService.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,68 +4,90 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const sanitize_1 = require("../../sanitize");
|
|
7
|
+
const registries_1 = require("../../test-helpers/registries");
|
|
7
8
|
const mock_1 = require("../test-helpers/mock");
|
|
8
9
|
const fetchStorage789629_json_1 = __importDefault(require("../test-helpers/responses/pallets/fetchStorage789629.json"));
|
|
9
10
|
const fetchStorageIdsOnly789629_json_1 = __importDefault(require("../test-helpers/responses/pallets/fetchStorageIdsOnly789629.json"));
|
|
10
11
|
const fetchStorageItem789629_json_1 = __importDefault(require("../test-helpers/responses/pallets/fetchStorageItem789629.json"));
|
|
11
12
|
const PalletsStorageService_1 = require("./PalletsStorageService");
|
|
13
|
+
const referendumInfoOfAt = () => Promise.resolve().then(() => {
|
|
14
|
+
registries_1.polkadotRegistry.createType('ReferendumInfo');
|
|
15
|
+
});
|
|
16
|
+
const mockHistoricApi = {
|
|
17
|
+
registry: registries_1.polkadotRegistry,
|
|
18
|
+
query: {
|
|
19
|
+
democracy: {
|
|
20
|
+
referendumInfoOf: referendumInfoOfAt,
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
const mockApi = {
|
|
25
|
+
...mock_1.defaultMockApi,
|
|
26
|
+
at: (_hash) => mockHistoricApi,
|
|
27
|
+
};
|
|
12
28
|
/**
|
|
13
29
|
* Mock PalletsStorageService instance.
|
|
14
30
|
*/
|
|
15
|
-
const palletsStorageService = new PalletsStorageService_1.PalletsStorageService(
|
|
31
|
+
const palletsStorageService = new PalletsStorageService_1.PalletsStorageService(mockApi);
|
|
16
32
|
describe('PalletStorageService', () => {
|
|
17
33
|
describe('fetchStorageItem', () => {
|
|
18
34
|
it('works with a query to a single key storage map', async () => {
|
|
19
|
-
expect((0, sanitize_1.sanitizeNumbers)(await palletsStorageService.fetchStorageItem({
|
|
35
|
+
expect((0, sanitize_1.sanitizeNumbers)(await palletsStorageService.fetchStorageItem(mockHistoricApi, {
|
|
20
36
|
hash: mock_1.blockHash789629,
|
|
21
37
|
palletId: 'democracy',
|
|
22
38
|
storageItemId: 'referendumInfoOf',
|
|
23
39
|
key1: '0',
|
|
24
40
|
key2: undefined,
|
|
25
41
|
metadata: false,
|
|
42
|
+
adjustMetadataV13Arg: true,
|
|
26
43
|
}))).toMatchObject(fetchStorageItem789629_json_1.default);
|
|
27
44
|
});
|
|
28
45
|
it('works with a index identifier', async () => {
|
|
29
|
-
expect((0, sanitize_1.sanitizeNumbers)(await palletsStorageService.fetchStorageItem({
|
|
46
|
+
expect((0, sanitize_1.sanitizeNumbers)(await palletsStorageService.fetchStorageItem(mockHistoricApi, {
|
|
30
47
|
hash: mock_1.blockHash789629,
|
|
31
48
|
palletId: '15',
|
|
32
49
|
storageItemId: 'referendumInfoOf',
|
|
33
50
|
key1: '0',
|
|
34
51
|
key2: undefined,
|
|
35
52
|
metadata: false,
|
|
53
|
+
adjustMetadataV13Arg: true,
|
|
36
54
|
}))).toMatchObject(fetchStorageItem789629_json_1.default);
|
|
37
55
|
});
|
|
38
56
|
it('appropriately uses metadata params', async () => {
|
|
39
|
-
expect((0, sanitize_1.sanitizeNumbers)(await palletsStorageService.fetchStorageItem({
|
|
57
|
+
expect((0, sanitize_1.sanitizeNumbers)(await palletsStorageService.fetchStorageItem(mockHistoricApi, {
|
|
40
58
|
hash: mock_1.blockHash789629,
|
|
41
59
|
palletId: 'democracy',
|
|
42
60
|
storageItemId: 'referendumInfoOf',
|
|
43
61
|
key1: '0',
|
|
44
62
|
key2: undefined,
|
|
45
63
|
metadata: true,
|
|
64
|
+
adjustMetadataV13Arg: true,
|
|
46
65
|
}))).toMatchObject(fetchStorageItem789629_json_1.default);
|
|
47
66
|
});
|
|
48
67
|
});
|
|
49
68
|
describe('fetchStorage', () => {
|
|
50
69
|
it('works with no query params', async () => {
|
|
51
|
-
expect((0, sanitize_1.sanitizeNumbers)(await palletsStorageService.fetchStorage({
|
|
70
|
+
expect((0, sanitize_1.sanitizeNumbers)(await palletsStorageService.fetchStorage(mockHistoricApi, {
|
|
52
71
|
hash: mock_1.blockHash789629,
|
|
53
72
|
palletId: 'democracy',
|
|
54
73
|
onlyIds: false,
|
|
74
|
+
adjustMetadataV13Arg: true,
|
|
55
75
|
}))).toStrictEqual(fetchStorage789629_json_1.default);
|
|
56
76
|
});
|
|
57
77
|
it('work with a index identifier', async () => {
|
|
58
|
-
expect((0, sanitize_1.sanitizeNumbers)(await palletsStorageService.fetchStorage({
|
|
78
|
+
expect((0, sanitize_1.sanitizeNumbers)(await palletsStorageService.fetchStorage(mockHistoricApi, {
|
|
59
79
|
hash: mock_1.blockHash789629,
|
|
60
80
|
palletId: '15',
|
|
61
81
|
onlyIds: false,
|
|
82
|
+
adjustMetadataV13Arg: true,
|
|
62
83
|
}))).toStrictEqual(fetchStorage789629_json_1.default);
|
|
63
84
|
});
|
|
64
85
|
it('only list storage item ids when onlyIds is true', async () => {
|
|
65
|
-
expect((0, sanitize_1.sanitizeNumbers)(await palletsStorageService.fetchStorage({
|
|
86
|
+
expect((0, sanitize_1.sanitizeNumbers)(await palletsStorageService.fetchStorage(mockHistoricApi, {
|
|
66
87
|
hash: mock_1.blockHash789629,
|
|
67
88
|
palletId: 'democracy',
|
|
68
89
|
onlyIds: true,
|
|
90
|
+
adjustMetadataV13Arg: true,
|
|
69
91
|
}))).toStrictEqual(fetchStorageIdsOnly789629_json_1.default);
|
|
70
92
|
});
|
|
71
93
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PalletsStorageService.spec.js","sourceRoot":"","sources":["../../../../src/services/pallets/PalletsStorageService.spec.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"PalletsStorageService.spec.js","sourceRoot":"","sources":["../../../../src/services/pallets/PalletsStorageService.spec.ts"],"names":[],"mappings":";;;;;AAIA,6CAAiD;AACjD,8DAAiE;AACjE,+CAAuE;AACvE,wHAAwF;AACxF,sIAAsG;AACtG,gIAAgG;AAChG,mEAAgE;AAEhE,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAC/B,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;IAC3B,6BAAgB,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEJ,MAAM,eAAe,GAAG;IACvB,QAAQ,EAAE,6BAAgB;IAC1B,KAAK,EAAE;QACN,SAAS,EAAE;YACV,gBAAgB,EAAE,kBAAkB;SACpC;KACD;CACsC,CAAC;AAEzC,MAAM,OAAO,GAAG;IACf,GAAG,qBAAc;IACjB,EAAE,EAAE,CAAC,KAAW,EAAE,EAAE,CAAC,eAAe;CACX,CAAC;AAE3B;;GAEG;AACH,MAAM,qBAAqB,GAAG,IAAI,6CAAqB,CAAC,OAAO,CAAC,CAAC;AAEjE,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACrC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,CACL,IAAA,0BAAe,EACd,MAAM,qBAAqB,CAAC,gBAAgB,CAAC,eAAe,EAAE;gBAC7D,IAAI,EAAE,sBAAe;gBACrB,QAAQ,EAAE,WAAW;gBACrB,aAAa,EAAE,kBAAkB;gBACjC,IAAI,EAAE,GAAG;gBACT,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,KAAK;gBACf,oBAAoB,EAAE,IAAI;aAC1B,CAAC,CACF,CACD,CAAC,aAAa,CAAC,qCAAmB,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;YAC9C,MAAM,CACL,IAAA,0BAAe,EACd,MAAM,qBAAqB,CAAC,gBAAgB,CAAC,eAAe,EAAE;gBAC7D,IAAI,EAAE,sBAAe;gBACrB,QAAQ,EAAE,IAAI;gBACd,aAAa,EAAE,kBAAkB;gBACjC,IAAI,EAAE,GAAG;gBACT,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,KAAK;gBACf,oBAAoB,EAAE,IAAI;aAC1B,CAAC,CACF,CACD,CAAC,aAAa,CAAC,qCAAmB,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,CACL,IAAA,0BAAe,EACd,MAAM,qBAAqB,CAAC,gBAAgB,CAAC,eAAe,EAAE;gBAC7D,IAAI,EAAE,sBAAe;gBACrB,QAAQ,EAAE,WAAW;gBACrB,aAAa,EAAE,kBAAkB;gBACjC,IAAI,EAAE,GAAG;gBACT,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,IAAI;gBACd,oBAAoB,EAAE,IAAI;aAC1B,CAAC,CACF,CACD,CAAC,aAAa,CAAC,qCAAmB,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;YAC3C,MAAM,CACL,IAAA,0BAAe,EACd,MAAM,qBAAqB,CAAC,YAAY,CAAC,eAAe,EAAE;gBACzD,IAAI,EAAE,sBAAe;gBACrB,QAAQ,EAAE,WAAW;gBACrB,OAAO,EAAE,KAAK;gBACd,oBAAoB,EAAE,IAAI;aAC1B,CAAC,CACF,CACD,CAAC,aAAa,CAAC,iCAAe,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;YAC7C,MAAM,CACL,IAAA,0BAAe,EACd,MAAM,qBAAqB,CAAC,YAAY,CAAC,eAAe,EAAE;gBACzD,IAAI,EAAE,sBAAe;gBACrB,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,KAAK;gBACd,oBAAoB,EAAE,IAAI;aAC1B,CAAC,CACF,CACD,CAAC,aAAa,CAAC,iCAAe,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,CACL,IAAA,0BAAe,EACd,MAAM,qBAAqB,CAAC,YAAY,CAAC,eAAe,EAAE;gBACzD,IAAI,EAAE,sBAAe;gBACrB,QAAQ,EAAE,WAAW;gBACrB,OAAO,EAAE,IAAI;gBACb,oBAAoB,EAAE,IAAI;aAC1B,CAAC,CACF,CACD,CAAC,aAAa,CAAC,wCAAsB,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
import { Option, Tuple, Vec } from '@polkadot/types';
|
|
2
|
+
import { BlockNumber } from '@polkadot/types/interfaces';
|
|
3
|
+
import { Codec } from '@polkadot/types/types';
|
|
4
|
+
export declare const emptyVectorLeases: Vec<import("@polkadot/types").Raw>;
|
|
5
|
+
export declare const slotsLeasesAt: () => Promise<Vec<Option<Tuple>>>;
|
|
6
|
+
/**
|
|
7
|
+
* Used for parachain Auctions
|
|
8
|
+
*/
|
|
9
|
+
export declare const auctionsInfoAt: () => Promise<Option<Vec<BlockNumber>>>;
|
|
10
|
+
export declare const noneAuctionsInfoAt: () => Promise<Option<Codec>>;
|