@substrate/api-sidecar 17.5.2 → 19.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 +9 -9
- package/build/src/chains-config/cache/lruCache.d.ts +2 -2
- package/build/src/chains-config/cache/lruCache.js +3 -6
- package/build/src/chains-config/cache/lruCache.js.map +1 -1
- package/build/src/controllers/accounts/AccountsStakingPayoutsController.js +10 -5
- package/build/src/controllers/accounts/AccountsStakingPayoutsController.js.map +1 -1
- package/build/src/controllers/paras/ParasController.js +4 -1
- package/build/src/controllers/paras/ParasController.js.map +1 -1
- package/build/src/controllers/runtime/RuntimeMetadataController.d.ts +18 -0
- package/build/src/controllers/runtime/RuntimeMetadataController.js +53 -2
- package/build/src/controllers/runtime/RuntimeMetadataController.js.map +1 -1
- package/build/src/controllers/transaction/TransactionMaterialController.d.ts +12 -0
- package/build/src/controllers/transaction/TransactionMaterialController.js +39 -2
- package/build/src/controllers/transaction/TransactionMaterialController.js.map +1 -1
- package/build/src/services/accounts/AccountsStakingPayoutsService.d.ts +12 -8
- package/build/src/services/accounts/AccountsStakingPayoutsService.js +91 -37
- package/build/src/services/accounts/AccountsStakingPayoutsService.js.map +1 -1
- package/build/src/services/blocks/BlocksService.d.ts +2 -2
- package/build/src/services/blocks/BlocksService.js.map +1 -1
- package/build/src/services/blocks/BlocksService.spec.js +70 -3
- package/build/src/services/blocks/BlocksService.spec.js.map +1 -1
- package/build/src/services/blocks/XCMDecoder.d.ts +1 -1
- package/build/src/services/blocks/XCMDecoder.js +61 -46
- package/build/src/services/blocks/XCMDecoder.js.map +1 -1
- package/build/src/services/node/NodeTransactionPoolService.spec.js +6 -10
- package/build/src/services/node/NodeTransactionPoolService.spec.js.map +1 -1
- package/build/src/services/pallets/PalletsAssetConversionService.spec.js +1 -1
- package/build/src/services/pallets/PalletsAssetConversionService.spec.js.map +1 -1
- package/build/src/services/pallets/PalletsForeignAssetsService.js +2 -3
- package/build/src/services/pallets/PalletsForeignAssetsService.js.map +1 -1
- package/build/src/services/pallets/PalletsForeignAssetsService.spec.js +4 -4
- package/build/src/services/pallets/PalletsForeignAssetsService.spec.js.map +1 -1
- package/build/src/services/paras/ParasService.d.ts +28 -0
- package/build/src/services/paras/ParasService.js +29 -1
- package/build/src/services/paras/ParasService.js.map +1 -1
- package/build/src/services/runtime/RuntimeMetadataService.d.ts +14 -1
- package/build/src/services/runtime/RuntimeMetadataService.js +36 -1
- package/build/src/services/runtime/RuntimeMetadataService.js.map +1 -1
- package/build/src/services/transaction/TransactionMaterialService.d.ts +8 -1
- package/build/src/services/transaction/TransactionMaterialService.js +45 -1
- package/build/src/services/transaction/TransactionMaterialService.js.map +1 -1
- package/build/src/types/chains-config/ControllerConfig.d.ts +2 -2
- package/build/src/types/chains-config/ControllerConfig.js +1 -1
- package/build/src/types/responses/AccountStakingInfo.d.ts +3 -3
- package/build/src/types/responses/AccountStakingInfo.js +1 -1
- package/build/src/types/responses/BlockXCMMessages.d.ts +9 -4
- package/build/src/types/responses/BlockXCMMessages.js +1 -1
- package/build/src/types/responses/PalletAssetConversion.d.ts +3 -3
- package/build/src/types/responses/PalletAssetConversion.js +1 -1
- package/build/src/types/responses/SanitizedBackedCandidatesCommitments.d.ts +2 -1
- package/build/src/types/responses/SanitizedBackedCandidatesHorizontalMessage.d.ts +4 -0
- package/build/src/types/responses/SanitizedBackedCandidatesHorizontalMessage.js +18 -0
- package/build/src/types/responses/SanitizedBackedCandidatesHorizontalMessage.js.map +1 -0
- package/build/src/types/responses/SanitizedParachainInherentData.d.ts +3 -2
- package/build/src/types/responses/SanitizedParachainInherentData.js +1 -1
- package/build/src/types/responses/SanitizedParachainInherentDataHorizontalMessage.d.ts +4 -0
- package/build/src/types/responses/SanitizedParachainInherentDataHorizontalMessage.js +18 -0
- package/build/src/types/responses/SanitizedParachainInherentDataHorizontalMessage.js.map +1 -0
- package/build/src/types/responses/TransactionMaterial.d.ts +3 -3
- package/build/src/types/responses/TransactionMaterial.js +1 -1
- package/package.json +9 -9
package/build/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "
|
|
2
|
+
"version": "19.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",
|
|
@@ -50,26 +50,26 @@
|
|
|
50
50
|
"test:test-release": "yarn build:scripts && node scripts/build/runYarnPack.js"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@polkadot/api": "^
|
|
54
|
-
"@polkadot/api-contract": "^
|
|
53
|
+
"@polkadot/api": "^11.0.2",
|
|
54
|
+
"@polkadot/api-contract": "^11.0.2",
|
|
55
55
|
"@polkadot/util-crypto": "^12.6.2",
|
|
56
56
|
"@substrate/calc": "^0.3.1",
|
|
57
57
|
"argparse": "^2.0.1",
|
|
58
58
|
"confmgr": "^1.0.10",
|
|
59
|
-
"express": "^4.18.
|
|
59
|
+
"express": "^4.18.3",
|
|
60
60
|
"express-winston": "^4.2.0",
|
|
61
61
|
"http-errors": "^2.0.0",
|
|
62
|
-
"lru-cache": "^
|
|
63
|
-
"prom-client": "^
|
|
62
|
+
"lru-cache": "^10.2.0",
|
|
63
|
+
"prom-client": "^15.1.0",
|
|
64
64
|
"rxjs": "^7.8.1",
|
|
65
|
-
"winston": "^3.
|
|
65
|
+
"winston": "^3.12.0"
|
|
66
66
|
},
|
|
67
67
|
"devDependencies": {
|
|
68
68
|
"@substrate/dev": "^0.7.1",
|
|
69
|
-
"@types/argparse": "2.0.
|
|
69
|
+
"@types/argparse": "2.0.15",
|
|
70
70
|
"@types/express": "^4.17.21",
|
|
71
71
|
"@types/express-serve-static-core": "^4.17.43",
|
|
72
|
-
"@types/http-errors": "
|
|
72
|
+
"@types/http-errors": "2.0.4",
|
|
73
73
|
"@types/lru-cache": "^7.10.10",
|
|
74
74
|
"@types/morgan": "1.9.9",
|
|
75
75
|
"@types/triple-beam": "^1.3.5",
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { LRUCache } from 'lru-cache';
|
|
2
2
|
import { IBlock } from '../../types/responses';
|
|
3
|
-
export declare const initLRUCache: () =>
|
|
3
|
+
export declare const initLRUCache: () => LRUCache<string, IBlock>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright 2017-
|
|
2
|
+
// Copyright 2017-2024 Parity Technologies (UK) Ltd.
|
|
3
3
|
// This file is part of Substrate API Sidecar.
|
|
4
4
|
//
|
|
5
5
|
// Substrate API Sidecar is free software: you can redistribute it and/or modify
|
|
@@ -14,16 +14,13 @@
|
|
|
14
14
|
//
|
|
15
15
|
// You should have received a copy of the GNU General Public License
|
|
16
16
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
|
-
};
|
|
20
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
18
|
exports.initLRUCache = void 0;
|
|
22
|
-
const lru_cache_1 =
|
|
19
|
+
const lru_cache_1 = require("lru-cache");
|
|
23
20
|
const initLRUCache = () => {
|
|
24
21
|
const config = { max: 2 };
|
|
25
22
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
|
|
26
|
-
const cache = new lru_cache_1.
|
|
23
|
+
const cache = new lru_cache_1.LRUCache(config);
|
|
27
24
|
return cache;
|
|
28
25
|
};
|
|
29
26
|
exports.initLRUCache = initLRUCache;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lruCache.js","sourceRoot":"","sources":["../../../../src/chains-config/cache/lruCache.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
|
|
1
|
+
{"version":3,"file":"lruCache.js","sourceRoot":"","sources":["../../../../src/chains-config/cache/lruCache.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;;;AAExE,yCAAqC;AAI9B,MAAM,YAAY,GAAG,GAA6B,EAAE;IAC1D,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IAC1B,4EAA4E;IAC5E,MAAM,KAAK,GAAG,IAAI,oBAAQ,CAAC,MAAM,CAA6B,CAAC;IAE/D,OAAO,KAAK,CAAC;AACd,CAAC,CAAC;AANW,QAAA,YAAY,gBAMvB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright 2017-
|
|
2
|
+
// Copyright 2017-2024 Parity Technologies (UK) Ltd.
|
|
3
3
|
// This file is part of Substrate API Sidecar.
|
|
4
4
|
//
|
|
5
5
|
// Substrate API Sidecar is free software: you can redistribute it and/or modify
|
|
@@ -89,18 +89,23 @@ class AccountsStakingPayoutsController extends AbstractController_1.default {
|
|
|
89
89
|
const earlyErasBlockInfo = kusamaEarlyErasBlockInfo_json_1.default;
|
|
90
90
|
let hash = await this.getHashFromAt(at);
|
|
91
91
|
let apiAt = await this.api.at(hash);
|
|
92
|
+
const runtimeInfo = await this.api.rpc.state.getRuntimeVersion(hash);
|
|
93
|
+
const isKusama = runtimeInfo.specName.toString().toLowerCase() === 'kusama';
|
|
92
94
|
const { eraArg, currentEra } = await this.getEraAndHash(apiAt, this.verifyAndCastOr('era', era, undefined));
|
|
93
|
-
if (currentEra <= 519 && depth !== undefined) {
|
|
95
|
+
if (currentEra <= 519 && depth !== undefined && isKusama) {
|
|
94
96
|
throw new http_errors_1.InternalServerError('The `depth` query parameter is disabled for eras less than 518.');
|
|
95
97
|
}
|
|
96
|
-
else if (currentEra <= 519 && era !== undefined) {
|
|
98
|
+
else if (currentEra <= 519 && era !== undefined && isKusama) {
|
|
97
99
|
throw new http_errors_1.InternalServerError('The `era` query parameter is disabled for eras less than 518.');
|
|
98
100
|
}
|
|
99
101
|
let sanitizedDepth;
|
|
100
|
-
if (depth) {
|
|
102
|
+
if (depth && isKusama) {
|
|
101
103
|
sanitizedDepth = Math.min(Number(depth), currentEra - 518).toString();
|
|
102
104
|
}
|
|
103
|
-
if (
|
|
105
|
+
else if (depth) {
|
|
106
|
+
sanitizedDepth = depth;
|
|
107
|
+
}
|
|
108
|
+
if (currentEra < 518 && isKusama) {
|
|
104
109
|
const eraStartBlock = earlyErasBlockInfo[currentEra].start;
|
|
105
110
|
hash = await this.getHashFromAt(eraStartBlock.toString());
|
|
106
111
|
apiAt = await this.api.at(hash);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountsStakingPayoutsController.js","sourceRoot":"","sources":["../../../../src/controllers/accounts/AccountsStakingPayoutsController.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;;;;;AAIxE,2CAA8C;AAC9C,kDAAuB;AAEvB,6CAA8D;AAE9D,iDAAoE;AACpE,6CAA+D;AAE/D,0HAA6F;AAE7F,+EAAuD;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,MAAqB,gCAAiC,SAAQ,4BAAiD;IAC9G,YAAY,GAAe;QAC1B,KAAK,CAAC,GAAG,EAAE,oCAAoC,EAAE,IAAI,wCAA6B,CAAC,GAAG,CAAC,CAAC,CAAC;QAU1F;;;;;WAKG;QACK,iCAA4B,GAAkC,KAAK,EAC1E,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,EACjE,GAAG,EACa,EAAE;YAClB,MAAM,kBAAkB,GAAwB,uCAAwB,CAAC;YACzE,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YACpC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;YAC5G,IAAI,UAAU,IAAI,GAAG,IAAI,KAAK,KAAK,SAAS,EAAE;
|
|
1
|
+
{"version":3,"file":"AccountsStakingPayoutsController.js","sourceRoot":"","sources":["../../../../src/controllers/accounts/AccountsStakingPayoutsController.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright 2017-
|
|
2
|
+
// Copyright 2017-2024 Parity Technologies (UK) Ltd.
|
|
3
3
|
// This file is part of Substrate API Sidecar.
|
|
4
4
|
//
|
|
5
5
|
// Substrate API Sidecar is free software: you can redistribute it and/or modify
|
|
@@ -72,6 +72,9 @@ class ParasController extends AbstractController_1.default {
|
|
|
72
72
|
};
|
|
73
73
|
this.initRoutes();
|
|
74
74
|
}
|
|
75
|
+
// ***************************************************************
|
|
76
|
+
// DEPRECATION NOTE: PHASED OUT CONTROLLERS IN FAVOR OF CORETIME
|
|
77
|
+
// ***************************************************************
|
|
75
78
|
initRoutes() {
|
|
76
79
|
this.router.use(this.path + '/paras/leases/current', (0, middleware_1.validateBoolean)(['currentLeaseHolders']));
|
|
77
80
|
this.safeMountAsyncGetHandlers([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParasController.js","sourceRoot":"","sources":["../../../../src/controllers/paras/ParasController.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,iDAAmD;AACnD,6CAA8C;AAE9C,+EAAuD;AAEvD,MAAqB,eAAgB,SAAQ,4BAAgC;IAC5E,YAAY,GAAe;QAC1B,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,uBAAY,CAAC,GAAG,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ParasController.js","sourceRoot":"","sources":["../../../../src/controllers/paras/ParasController.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,10 @@ import AbstractController from '../AbstractController';
|
|
|
4
4
|
/**
|
|
5
5
|
* GET the chain's metadata.
|
|
6
6
|
*
|
|
7
|
+
* Path params:
|
|
8
|
+
* - (Optional) `metadataVersion`: The specific version of the Metadata to query.
|
|
9
|
+
* The input must conform to the `vX` format, where `X` represents the version number (examples: 'v14', 'v15').
|
|
10
|
+
*
|
|
7
11
|
* Query:
|
|
8
12
|
* - (Optional) `at`: Block hash or height at which to query. If not provided, queries
|
|
9
13
|
* finalized head.
|
|
@@ -25,4 +29,18 @@ export default class RuntimeMetadataController extends AbstractController<Runtim
|
|
|
25
29
|
* @param res Express Response
|
|
26
30
|
*/
|
|
27
31
|
private getMetadata;
|
|
32
|
+
/**
|
|
33
|
+
* Get the chain's metadata at a specific version in a decoded, JSON format.
|
|
34
|
+
*
|
|
35
|
+
* @param _req Express Request
|
|
36
|
+
* @param res Express Response
|
|
37
|
+
*/
|
|
38
|
+
private getMetadataVersioned;
|
|
39
|
+
/**
|
|
40
|
+
* Get the available versions of chain's metadata.
|
|
41
|
+
*
|
|
42
|
+
* @param _req Express Request
|
|
43
|
+
* @param res Express Response
|
|
44
|
+
*/
|
|
45
|
+
private getMetadataAvailableVersions;
|
|
28
46
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright 2017-
|
|
2
|
+
// Copyright 2017-2024 Parity Technologies (UK) Ltd.
|
|
3
3
|
// This file is part of Substrate API Sidecar.
|
|
4
4
|
//
|
|
5
5
|
// Substrate API Sidecar is free software: you can redistribute it and/or modify
|
|
@@ -23,6 +23,10 @@ const AbstractController_1 = __importDefault(require("../AbstractController"));
|
|
|
23
23
|
/**
|
|
24
24
|
* GET the chain's metadata.
|
|
25
25
|
*
|
|
26
|
+
* Path params:
|
|
27
|
+
* - (Optional) `metadataVersion`: The specific version of the Metadata to query.
|
|
28
|
+
* The input must conform to the `vX` format, where `X` represents the version number (examples: 'v14', 'v15').
|
|
29
|
+
*
|
|
26
30
|
* Query:
|
|
27
31
|
* - (Optional) `at`: Block hash or height at which to query. If not provided, queries
|
|
28
32
|
* finalized head.
|
|
@@ -55,10 +59,57 @@ class RuntimeMetadataController extends AbstractController_1.default {
|
|
|
55
59
|
metadataOpts: { registry, version: metadata.version },
|
|
56
60
|
});
|
|
57
61
|
};
|
|
62
|
+
/**
|
|
63
|
+
* Get the chain's metadata at a specific version in a decoded, JSON format.
|
|
64
|
+
*
|
|
65
|
+
* @param _req Express Request
|
|
66
|
+
* @param res Express Response
|
|
67
|
+
*/
|
|
68
|
+
this.getMetadataVersioned = async ({ params: { metadataVersion }, query: { at } }, res) => {
|
|
69
|
+
const hash = await this.getHashFromAt(at);
|
|
70
|
+
const api = at ? await this.api.at(hash) : this.api;
|
|
71
|
+
// Validation of the `metadataVersion` path parameter.
|
|
72
|
+
const metadataV = metadataVersion.slice(1);
|
|
73
|
+
const version = this.parseNumberOrThrow(metadataV, `Version ${metadataV.toString()} of metadata provided is not a number.`);
|
|
74
|
+
const regExPattern = new RegExp('^[vV][0-9]+$');
|
|
75
|
+
if (!regExPattern.test(metadataVersion)) {
|
|
76
|
+
throw new Error(`${metadataVersion} input is not of the expected 'vX' format, where 'X' represents the version number (examples: 'v14', 'v15').`);
|
|
77
|
+
}
|
|
78
|
+
let availableVersions = [];
|
|
79
|
+
try {
|
|
80
|
+
availableVersions = (await api.call.metadata.metadataVersions()).toJSON();
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
throw new Error(`Function 'api.call.metadata.metadataVersions()' is not available at this block height.`);
|
|
84
|
+
}
|
|
85
|
+
if (version && !(availableVersions === null || availableVersions === void 0 ? void 0 : availableVersions.includes(version))) {
|
|
86
|
+
throw new Error(`Version ${version} of Metadata is not available.`);
|
|
87
|
+
}
|
|
88
|
+
const registry = api.registry;
|
|
89
|
+
const metadata = await this.service.fetchMetadataVersioned(api, version);
|
|
90
|
+
RuntimeMetadataController.sanitizedSend(res, metadata, {
|
|
91
|
+
metadataOpts: { registry, version },
|
|
92
|
+
});
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* Get the available versions of chain's metadata.
|
|
96
|
+
*
|
|
97
|
+
* @param _req Express Request
|
|
98
|
+
* @param res Express Response
|
|
99
|
+
*/
|
|
100
|
+
this.getMetadataAvailableVersions = async ({ query: { at } }, res) => {
|
|
101
|
+
const hash = await this.getHashFromAt(at);
|
|
102
|
+
const metadataVersions = await this.service.fetchMetadataVersions(hash);
|
|
103
|
+
RuntimeMetadataController.sanitizedSend(res, metadataVersions, {});
|
|
104
|
+
};
|
|
58
105
|
this.initRoutes();
|
|
59
106
|
}
|
|
60
107
|
initRoutes() {
|
|
61
|
-
this.safeMountAsyncGetHandlers([
|
|
108
|
+
this.safeMountAsyncGetHandlers([
|
|
109
|
+
['/', this.getMetadata],
|
|
110
|
+
['/versions', this.getMetadataAvailableVersions],
|
|
111
|
+
['/:metadataVersion', this.getMetadataVersioned],
|
|
112
|
+
]);
|
|
62
113
|
}
|
|
63
114
|
}
|
|
64
115
|
exports.default = RuntimeMetadataController;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuntimeMetadataController.js","sourceRoot":"","sources":["../../../../src/controllers/runtime/RuntimeMetadataController.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;;;;;
|
|
1
|
+
{"version":3,"file":"RuntimeMetadataController.js","sourceRoot":"","sources":["../../../../src/controllers/runtime/RuntimeMetadataController.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,10 @@ export type MetadataOpts = 'json' | 'scale';
|
|
|
5
5
|
/**
|
|
6
6
|
* GET all the network information needed to construct a transaction offline.
|
|
7
7
|
*
|
|
8
|
+
* Path params:
|
|
9
|
+
* - (Optional) `metadataVersion`: The specific version of the Metadata to query.
|
|
10
|
+
* The input must conform to the `vX` format, where `X` represents the version number (examples: 'v14', 'v15').
|
|
11
|
+
*
|
|
8
12
|
* Query
|
|
9
13
|
* - (Optional) `metadata`: It accepts `json`, or `scale` values. If it is not present,
|
|
10
14
|
* the metadata field will not be included.
|
|
@@ -48,4 +52,12 @@ export default class TransactionMaterialController extends AbstractController<Tr
|
|
|
48
52
|
* @param metadata
|
|
49
53
|
*/
|
|
50
54
|
private parseMetadataArgs;
|
|
55
|
+
/**
|
|
56
|
+
* Get the chain's metadata at the requested version in JSON or scale format
|
|
57
|
+
* depending on the `metadata` query param.
|
|
58
|
+
*
|
|
59
|
+
* @param _req Express Request
|
|
60
|
+
* @param res Express Response
|
|
61
|
+
*/
|
|
62
|
+
private getTransactionMaterialwithVersionedMetadata;
|
|
51
63
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright 2017-
|
|
2
|
+
// Copyright 2017-2024 Parity Technologies (UK) Ltd.
|
|
3
3
|
// This file is part of Substrate API Sidecar.
|
|
4
4
|
//
|
|
5
5
|
// Substrate API Sidecar is free software: you can redistribute it and/or modify
|
|
@@ -23,6 +23,10 @@ const AbstractController_1 = __importDefault(require("../AbstractController"));
|
|
|
23
23
|
/**
|
|
24
24
|
* GET all the network information needed to construct a transaction offline.
|
|
25
25
|
*
|
|
26
|
+
* Path params:
|
|
27
|
+
* - (Optional) `metadataVersion`: The specific version of the Metadata to query.
|
|
28
|
+
* The input must conform to the `vX` format, where `X` represents the version number (examples: 'v14', 'v15').
|
|
29
|
+
*
|
|
26
30
|
* Query
|
|
27
31
|
* - (Optional) `metadata`: It accepts `json`, or `scale` values. If it is not present,
|
|
28
32
|
* the metadata field will not be included.
|
|
@@ -64,10 +68,43 @@ class TransactionMaterialController extends AbstractController_1.default {
|
|
|
64
68
|
const metadataArg = this.parseMetadataArgs(metadata);
|
|
65
69
|
TransactionMaterialController.sanitizedSend(res, await this.service.fetchTransactionMaterial(hash, metadataArg));
|
|
66
70
|
};
|
|
71
|
+
/**
|
|
72
|
+
* Get the chain's metadata at the requested version in JSON or scale format
|
|
73
|
+
* depending on the `metadata` query param.
|
|
74
|
+
*
|
|
75
|
+
* @param _req Express Request
|
|
76
|
+
* @param res Express Response
|
|
77
|
+
*/
|
|
78
|
+
this.getTransactionMaterialwithVersionedMetadata = async ({ params: { metadataVersion }, query: { at, metadata } }, res) => {
|
|
79
|
+
const hash = await this.getHashFromAt(at);
|
|
80
|
+
const api = at ? await this.api.at(hash) : this.api;
|
|
81
|
+
// Validation of the `metadataVersion` path parameter.
|
|
82
|
+
const metadataV = metadataVersion.slice(1);
|
|
83
|
+
const version = this.parseNumberOrThrow(metadataV, `Version ${metadataV.toString()} of metadata provided is not a number.`);
|
|
84
|
+
const regExPattern = new RegExp('^[vV][0-9]+$');
|
|
85
|
+
if (!regExPattern.test(metadataVersion)) {
|
|
86
|
+
throw new Error(`${metadataVersion} input is not of the expected 'vX' format, where 'X' represents the version number (examples: 'v14', 'v15').`);
|
|
87
|
+
}
|
|
88
|
+
let availableVersions = [];
|
|
89
|
+
try {
|
|
90
|
+
availableVersions = (await api.call.metadata.metadataVersions()).toJSON();
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
throw new Error(`Function 'api.call.metadata.metadataVersions()' is not available at this block height.`);
|
|
94
|
+
}
|
|
95
|
+
if (version && !(availableVersions === null || availableVersions === void 0 ? void 0 : availableVersions.includes(version))) {
|
|
96
|
+
throw new Error(`Version ${version} of Metadata is not available.`);
|
|
97
|
+
}
|
|
98
|
+
const metadataArg = this.parseMetadataArgs(metadata);
|
|
99
|
+
TransactionMaterialController.sanitizedSend(res, await this.service.fetchTransactionMaterialwithVersionedMetadata(api, hash, metadataArg, version));
|
|
100
|
+
};
|
|
67
101
|
this.initRoutes();
|
|
68
102
|
}
|
|
69
103
|
initRoutes() {
|
|
70
|
-
this.safeMountAsyncGetHandlers([
|
|
104
|
+
this.safeMountAsyncGetHandlers([
|
|
105
|
+
['/', this.getTransactionMaterial],
|
|
106
|
+
['/:metadataVersion', this.getTransactionMaterialwithVersionedMetadata],
|
|
107
|
+
]);
|
|
71
108
|
}
|
|
72
109
|
/**
|
|
73
110
|
* The metadata args have two options. `json`, and `scale`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionMaterialController.js","sourceRoot":"","sources":["../../../../src/controllers/transaction/TransactionMaterialController.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;;;;;
|
|
1
|
+
{"version":3,"file":"TransactionMaterialController.js","sourceRoot":"","sources":["../../../../src/controllers/transaction/TransactionMaterialController.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import type { ApiDecoration } from '@polkadot/api/types';
|
|
|
2
2
|
import type { DeriveEraExposure, DeriveEraExposureNominating } from '@polkadot/api-derive/staking/types';
|
|
3
3
|
import { Option } from '@polkadot/types';
|
|
4
4
|
import type { BalanceOf, BlockHash, EraIndex, EraPoints, Perbill } from '@polkadot/types/interfaces';
|
|
5
|
-
import type { PalletStakingEraRewardPoints, PalletStakingStakingLedger } from '@polkadot/types/lookup';
|
|
5
|
+
import type { PalletStakingEraRewardPoints, PalletStakingStakingLedger, SpStakingPagedExposureMetadata } from '@polkadot/types/lookup';
|
|
6
6
|
import type { IAccountStakingPayouts, IEraPayouts } from '../../types/responses';
|
|
7
7
|
import { AbstractService } from '../AbstractService';
|
|
8
8
|
/**
|
|
@@ -11,17 +11,21 @@ import { AbstractService } from '../AbstractService';
|
|
|
11
11
|
*/
|
|
12
12
|
type IErasGeneral = [IAdjustedDeriveEraExposure, PalletStakingEraRewardPoints | EraPoints, Option<BalanceOf>];
|
|
13
13
|
/**
|
|
14
|
-
* Index of the validator for eras previous to 518
|
|
14
|
+
* Index of the validator for eras previous to 518 in Kusama chain.
|
|
15
15
|
*/
|
|
16
16
|
interface ValidatorIndex {
|
|
17
17
|
[x: string]: number;
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
|
-
* Adapted AdjustedDeriveEraExposure interface for compatibility
|
|
21
|
-
* previous to 518
|
|
20
|
+
* Adapted AdjustedDeriveEraExposure interface for compatibility:
|
|
21
|
+
* - with eras previous to 518 in Kusama chain (via `validatorIndex` property) and
|
|
22
|
+
* - with Staking changes (3 new calls including `ErasStakersOverview`) in
|
|
23
|
+
* Polkadot v1.2.0 runtime (via `validatorOverview` property). Relevant PR:
|
|
24
|
+
* https://github.com/paritytech/polkadot-sdk/pull/1189
|
|
22
25
|
*/
|
|
23
26
|
interface IAdjustedDeriveEraExposure extends DeriveEraExposure {
|
|
24
27
|
validatorIndex?: ValidatorIndex;
|
|
28
|
+
validatorsOverview?: Record<string, Option<SpStakingPagedExposureMetadata>>;
|
|
25
29
|
}
|
|
26
30
|
/**
|
|
27
31
|
* Commission and staking ledger of a validator
|
|
@@ -44,7 +48,7 @@ interface IEraData {
|
|
|
44
48
|
}
|
|
45
49
|
/**
|
|
46
50
|
* Block information relevant for compatibility with eras previous
|
|
47
|
-
* to 518
|
|
51
|
+
* to 518 in Kusama chain.
|
|
48
52
|
*/
|
|
49
53
|
interface IBlockInfo {
|
|
50
54
|
height: string;
|
|
@@ -77,7 +81,7 @@ export declare class AccountsStakingPayoutsService extends AbstractService {
|
|
|
77
81
|
* @param era the last era to get data for
|
|
78
82
|
* @param blockNumber block information to ensure compatibility with older eras
|
|
79
83
|
*/
|
|
80
|
-
fetchAllErasGeneral(historicApi: ApiDecoration<'promise'>, startEra: number, era: number, blockNumber: IBlockInfo): Promise<IErasGeneral[]>;
|
|
84
|
+
fetchAllErasGeneral(historicApi: ApiDecoration<'promise'>, startEra: number, era: number, blockNumber: IBlockInfo, isKusama: boolean): Promise<IErasGeneral[]>;
|
|
81
85
|
private fetchHistoricRewardPoints;
|
|
82
86
|
/**
|
|
83
87
|
* Fetch the commission & staking ledger for each `validatorId` in `deriveErasExposures`.
|
|
@@ -87,7 +91,7 @@ export declare class AccountsStakingPayoutsService extends AbstractService {
|
|
|
87
91
|
* @param startEra first era to get data for
|
|
88
92
|
* @param deriveErasExposures exposures per era for `address`
|
|
89
93
|
*/
|
|
90
|
-
fetchAllErasCommissions(historicApi: ApiDecoration<'promise'>, address: string, startEra: number, deriveErasExposures: IAdjustedDeriveEraExposure[]): Promise<ICommissionAndLedger[][]>;
|
|
94
|
+
fetchAllErasCommissions(historicApi: ApiDecoration<'promise'>, address: string, startEra: number, deriveErasExposures: IAdjustedDeriveEraExposure[], isKusama: boolean): Promise<ICommissionAndLedger[][]>;
|
|
91
95
|
/**
|
|
92
96
|
* Derive all the payouts for `address` at `era`.
|
|
93
97
|
*
|
|
@@ -95,7 +99,7 @@ export declare class AccountsStakingPayoutsService extends AbstractService {
|
|
|
95
99
|
* @param era the era to query
|
|
96
100
|
* @param eraData data about the address and era we are calculating payouts for
|
|
97
101
|
*/
|
|
98
|
-
deriveEraPayouts(address: string, unclaimedOnly: boolean, { deriveEraExposure, eraRewardPoints, erasValidatorRewardOption, exposuresWithCommission, eraIndex }: IEraData): IEraPayouts | {
|
|
102
|
+
deriveEraPayouts(address: string, unclaimedOnly: boolean, { deriveEraExposure, eraRewardPoints, erasValidatorRewardOption, exposuresWithCommission, eraIndex }: IEraData, isKusama: boolean): IEraPayouts | {
|
|
99
103
|
message: string;
|
|
100
104
|
};
|
|
101
105
|
/**
|