@substrate/api-sidecar 14.5.0 → 14.5.2
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 +4 -4
- package/build/src/services/pallets/PalletsStakingValidatorsService.js +12 -4
- package/build/src/services/pallets/PalletsStakingValidatorsService.js.map +1 -1
- package/build/src/services/pallets/PalletsStakingValidatorsService.spec.d.ts +1 -0
- package/build/src/services/pallets/PalletsStakingValidatorsService.spec.js +60 -0
- package/build/src/services/pallets/PalletsStakingValidatorsService.spec.js.map +1 -0
- package/package.json +4 -4
package/build/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "14.5.
|
|
2
|
+
"version": "14.5.2",
|
|
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",
|
|
@@ -50,9 +50,9 @@
|
|
|
50
50
|
"test:test-release": "yarn build:scripts && node scripts/build/runYarnPack.js"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@polkadot/api": "^10.
|
|
54
|
-
"@polkadot/api-contract": "^10.
|
|
55
|
-
"@polkadot/util-crypto": "^11.0.
|
|
53
|
+
"@polkadot/api": "^10.1.3",
|
|
54
|
+
"@polkadot/api-contract": "^10.1.3",
|
|
55
|
+
"@polkadot/util-crypto": "^11.0.2",
|
|
56
56
|
"@substrate/calc": "^0.3.1",
|
|
57
57
|
"argparse": "^2.0.1",
|
|
58
58
|
"confmgr": "^1.0.10",
|
|
@@ -40,12 +40,20 @@ class PalletsStakingValidatorsService extends AbstractService_1.AbstractService
|
|
|
40
40
|
const validators = [];
|
|
41
41
|
const validatorsEntries = await historicApi.query.staking.validators.entries();
|
|
42
42
|
validatorsEntries.map(([key]) => {
|
|
43
|
-
const address = key.args.map((k) => k.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
const address = key.args.map((k) => k.toString())[0];
|
|
44
|
+
let status;
|
|
45
|
+
if (validatorsActiveSet.has(address)) {
|
|
46
|
+
status = 'active';
|
|
47
|
+
validatorsActiveSet.delete(address);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
status = 'waiting';
|
|
51
|
+
}
|
|
47
52
|
validators.push({ address, status });
|
|
48
53
|
});
|
|
54
|
+
if (validatorsActiveSet.size > 0) {
|
|
55
|
+
validatorsActiveSet.forEach((address) => validators.push({ address, status: 'active' }));
|
|
56
|
+
}
|
|
49
57
|
return {
|
|
50
58
|
validators,
|
|
51
59
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PalletsStakingValidatorsService.js","sourceRoot":"","sources":["../../../../src/services/pallets/PalletsStakingValidatorsService.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,8CAA8C;AAC9C,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,kEAAkE;AAClE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,wEAAwE;;;AAKxE,wDAAqD;AAErD,MAAa,+BAAgC,SAAQ,iCAAe;IACnE;;;;;;;OAOG;IACH,KAAK,CAAC,6BAA6B,CAClC,IAAe;QAEf,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrB,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAEvC,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACtE,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC9C,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE;YACvC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC5C;QAED,mEAAmE;QACnE,oEAAoE;QACpE,mDAAmD;QACnD,MAAM,UAAU,GAAiB,EAAE,CAAC;QACpC,MAAM,iBAAiB,GACtB,MAAM,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"PalletsStakingValidatorsService.js","sourceRoot":"","sources":["../../../../src/services/pallets/PalletsStakingValidatorsService.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,8CAA8C;AAC9C,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,kEAAkE;AAClE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,wEAAwE;;;AAKxE,wDAAqD;AAErD,MAAa,+BAAgC,SAAQ,iCAAe;IACnE;;;;;;;OAOG;IACH,KAAK,CAAC,6BAA6B,CAClC,IAAe;QAEf,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrB,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAEvC,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACtE,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC9C,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE;YACvC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC5C;QAED,mEAAmE;QACnE,oEAAoE;QACpE,mDAAmD;QACnD,MAAM,UAAU,GAAiB,EAAE,CAAC;QACpC,MAAM,iBAAiB,GACtB,MAAM,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAEtD,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE;YAC/B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,IAAI,MAA4B,CAAC;YACjC,IAAI,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;gBACrC,MAAM,GAAG,QAAQ,CAAC;gBAClB,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;aACpC;iBAAM;gBACN,MAAM,GAAG,SAAS,CAAC;aACnB;YACD,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,IAAI,mBAAmB,CAAC,IAAI,GAAG,CAAC,EAAE;YACjC,mBAAmB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACvC,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAC9C,CAAC;SACF;QAED,OAAO;YACN,UAAU;SACV,CAAC;IACH,CAAC;CACD;AAlDD,0EAkDC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright 2017-2023 Parity Technologies (UK) Ltd.
|
|
3
|
+
// This file is part of Substrate API Sidecar.
|
|
4
|
+
//
|
|
5
|
+
// Substrate API Sidecar is free software: you can redistribute it and/or modify
|
|
6
|
+
// it under the terms of the GNU General Public License as published by
|
|
7
|
+
// the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
// (at your option) any later version.
|
|
9
|
+
//
|
|
10
|
+
// This program is distributed in the hope that it will be useful,
|
|
11
|
+
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
// GNU General Public License for more details.
|
|
14
|
+
//
|
|
15
|
+
// You should have received a copy of the GNU General Public License
|
|
16
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
const sanitizeNumbers_1 = require("../../sanitize/sanitizeNumbers");
|
|
22
|
+
const registries_1 = require("../../test-helpers/registries");
|
|
23
|
+
const mock_1 = require("../test-helpers/mock");
|
|
24
|
+
const validator14815152Entries_1 = require("../test-helpers/mock/data/validator14815152Entries");
|
|
25
|
+
const validators14815152Hex_1 = require("../test-helpers/mock/data/validators14815152Hex");
|
|
26
|
+
const fetchValidators14815152_json_1 = __importDefault(require("../test-helpers/responses/pallets/fetchValidators14815152.json"));
|
|
27
|
+
const PalletsStakingValidatorsService_1 = require("./PalletsStakingValidatorsService");
|
|
28
|
+
const validatorsAt = () => Promise.resolve().then(() => registries_1.polkadotRegistryV9370.createType('Vec<AccountId32>', validators14815152Hex_1.validators14815152Hex));
|
|
29
|
+
const validatorsEntriesAt = () => Promise.resolve().then(() => (0, validator14815152Entries_1.validatorsEntries)());
|
|
30
|
+
const mockHistoricApi = {
|
|
31
|
+
query: {
|
|
32
|
+
session: {
|
|
33
|
+
validators: validatorsAt,
|
|
34
|
+
},
|
|
35
|
+
staking: {
|
|
36
|
+
validators: {
|
|
37
|
+
entries: validatorsEntriesAt,
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
const mockApi = {
|
|
43
|
+
...mock_1.defaultMockApi,
|
|
44
|
+
at: (_hash) => mockHistoricApi,
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Mock PalletStakingProgressService instance.
|
|
48
|
+
*/
|
|
49
|
+
const palletsStakingValidatorsService = new PalletsStakingValidatorsService_1.PalletsStakingValidatorsService(mockApi);
|
|
50
|
+
describe('PalletsStakingValidatorsService', () => {
|
|
51
|
+
describe('derivePalletStakingValidators', () => {
|
|
52
|
+
it('Works for block 14815152', async () => {
|
|
53
|
+
expect((0, sanitizeNumbers_1.sanitizeNumbers)(
|
|
54
|
+
// The inputted blockHash does not change the tests since the mocked data is all based
|
|
55
|
+
// on block 14815152
|
|
56
|
+
await palletsStakingValidatorsService.derivePalletStakingValidators(mock_1.blockHash789629))).toStrictEqual(fetchValidators14815152_json_1.default);
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
//# sourceMappingURL=PalletsStakingValidatorsService.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PalletsStakingValidatorsService.spec.js","sourceRoot":"","sources":["../../../../src/services/pallets/PalletsStakingValidatorsService.spec.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,8CAA8C;AAC9C,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,kEAAkE;AAClE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,wEAAwE;;;;;AAMxE,oEAAiE;AACjE,8DAAsE;AACtE,+CAAuE;AACvE,iGAAuF;AACvF,2FAAwF;AACxF,kIAAqG;AACrG,uFAAoF;AAEpF,MAAM,YAAY,GAAG,GAAG,EAAE,CACzB,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAC3B,kCAAqB,CAAC,UAAU,CAAC,kBAAkB,EAAE,6CAAqB,CAAC,CAC3E,CAAC;AAEH,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAChC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAA,4CAAiB,GAAE,CAAC,CAAC;AAEnD,MAAM,eAAe,GAAG;IACvB,KAAK,EAAE;QACN,OAAO,EAAE;YACR,UAAU,EAAE,YAAY;SACxB;QACD,OAAO,EAAE;YACR,UAAU,EAAE;gBACX,OAAO,EAAE,mBAAmB;aAC5B;SACD;KACD;CACsC,CAAC;AAEzC,MAAM,OAAO,GAAG;IACf,GAAG,qBAAc;IACjB,EAAE,EAAE,CAAC,KAAW,EAAE,EAAE,CAAC,eAAe;CACX,CAAC;AAC3B;;GAEG;AACH,MAAM,+BAA+B,GAAG,IAAI,iEAA+B,CAC1E,OAAO,CACP,CAAC;AAEF,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAChD,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC9C,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;YACzC,MAAM,CACL,IAAA,iCAAe;YACd,sFAAsF;YACtF,oBAAoB;YACpB,MAAM,+BAA+B,CAAC,6BAA6B,CAClE,sBAAe,CACf,CACD,CACD,CAAC,aAAa,CAAC,sCAAuB,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "14.5.
|
|
2
|
+
"version": "14.5.2",
|
|
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",
|
|
@@ -50,9 +50,9 @@
|
|
|
50
50
|
"test:test-release": "yarn build:scripts && node scripts/build/runYarnPack.js"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@polkadot/api": "^10.
|
|
54
|
-
"@polkadot/api-contract": "^10.
|
|
55
|
-
"@polkadot/util-crypto": "^11.0.
|
|
53
|
+
"@polkadot/api": "^10.1.3",
|
|
54
|
+
"@polkadot/api-contract": "^10.1.3",
|
|
55
|
+
"@polkadot/util-crypto": "^11.0.2",
|
|
56
56
|
"@substrate/calc": "^0.3.1",
|
|
57
57
|
"argparse": "^2.0.1",
|
|
58
58
|
"confmgr": "^1.0.10",
|