@substrate/api-sidecar 14.4.0 → 14.5.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/README.md +1 -2
- package/build/package.json +5 -4
- package/build/src/App.d.ts +3 -1
- package/build/src/App.js +1 -1
- package/build/src/App.js.map +1 -1
- package/build/src/SidecarConfig.js +1 -0
- package/build/src/SidecarConfig.js.map +1 -1
- package/build/src/Specs.js +5 -0
- package/build/src/Specs.js.map +1 -1
- package/build/src/chains-config/defaultControllers.js +2 -0
- package/build/src/chains-config/defaultControllers.js.map +1 -1
- package/build/src/chains-config/kusamaControllers.js +2 -0
- package/build/src/chains-config/kusamaControllers.js.map +1 -1
- package/build/src/chains-config/polkadotControllers.js +2 -0
- package/build/src/chains-config/polkadotControllers.js.map +1 -1
- package/build/src/chains-config/statemineControllers.js +1 -0
- package/build/src/chains-config/statemineControllers.js.map +1 -1
- package/build/src/chains-config/statemintControllers.js +2 -0
- package/build/src/chains-config/statemintControllers.js.map +1 -1
- package/build/src/chains-config/westendControllers.js +2 -0
- package/build/src/chains-config/westendControllers.js.map +1 -1
- package/build/src/controllers/index.d.ts +3 -1
- package/build/src/controllers/index.js +2 -0
- package/build/src/controllers/index.js.map +1 -1
- package/build/src/controllers/pallets/PalletsConstsController.d.ts +20 -0
- package/build/src/controllers/pallets/PalletsConstsController.js +70 -0
- package/build/src/controllers/pallets/PalletsConstsController.js.map +1 -0
- package/build/src/controllers/pallets/PalletsDispatchablesController.d.ts +28 -0
- package/build/src/controllers/pallets/PalletsDispatchablesController.js +80 -0
- package/build/src/controllers/pallets/PalletsDispatchablesController.js.map +1 -0
- package/build/src/controllers/pallets/index.d.ts +2 -0
- package/build/src/controllers/pallets/index.js +5 -1
- package/build/src/controllers/pallets/index.js.map +1 -1
- package/build/src/main.js +3 -1
- package/build/src/main.js.map +1 -1
- package/build/src/services/AbstractPalletsService.d.ts +5 -3
- package/build/src/services/AbstractPalletsService.js +40 -5
- package/build/src/services/AbstractPalletsService.js.map +1 -1
- package/build/src/services/pallets/PalletsConstantsService.d.ts +19 -0
- package/build/src/services/pallets/PalletsConstantsService.js +72 -0
- package/build/src/services/pallets/PalletsConstantsService.js.map +1 -0
- package/build/src/services/pallets/PalletsConstantsService.spec.d.ts +1 -0
- package/build/src/services/pallets/PalletsConstantsService.spec.js +93 -0
- package/build/src/services/pallets/PalletsConstantsService.spec.js.map +1 -0
- package/build/src/services/pallets/PalletsDispatchablesService.d.ts +19 -0
- package/build/src/services/pallets/PalletsDispatchablesService.js +74 -0
- package/build/src/services/pallets/PalletsDispatchablesService.js.map +1 -0
- package/build/src/services/pallets/PalletsDispatchablesService.spec.d.ts +1 -0
- package/build/src/services/pallets/PalletsDispatchablesService.spec.js +93 -0
- package/build/src/services/pallets/PalletsDispatchablesService.spec.js.map +1 -0
- package/build/src/services/pallets/PalletsErrorsService.spec.js +2 -2
- package/build/src/services/pallets/index.d.ts +2 -0
- package/build/src/services/pallets/index.js +2 -0
- package/build/src/services/pallets/index.js.map +1 -1
- package/build/src/services/transaction/TransactionSubmitService.spec.js +1 -0
- package/build/src/services/transaction/TransactionSubmitService.spec.js.map +1 -1
- package/build/src/types/requests.d.ts +8 -0
- package/build/src/types/responses/PalletConstants.d.ts +10 -0
- package/build/src/types/responses/PalletConstants.js +18 -0
- package/build/src/types/responses/PalletConstants.js.map +1 -0
- package/build/src/types/responses/PalletConstantsItem.d.ts +6 -0
- package/build/src/types/responses/PalletConstantsItem.js +18 -0
- package/build/src/types/responses/PalletConstantsItem.js.map +1 -0
- package/build/src/types/responses/PalletDispatchables.d.ts +10 -0
- package/build/src/types/responses/PalletDispatchables.js +18 -0
- package/build/src/types/responses/PalletDispatchables.js.map +1 -0
- package/build/src/types/responses/PalletDispatchablesItem.d.ts +6 -0
- package/build/src/types/responses/PalletDispatchablesItem.js +18 -0
- package/build/src/types/responses/PalletDispatchablesItem.js.map +1 -0
- package/build/src/types/responses/index.d.ts +4 -0
- package/build/src/types/responses/index.js +4 -0
- package/build/src/types/responses/index.js.map +1 -1
- package/build/src/types/sidecar-config/CONFIG.d.ts +1 -0
- package/build/src/types/sidecar-config/CONFIG.js +1 -0
- package/build/src/types/sidecar-config/CONFIG.js.map +1 -1
- package/build/src/types/sidecar-config/SidecarConfig.d.ts +1 -0
- package/package.json +5 -4
|
@@ -45,12 +45,12 @@ class AbstractPalletsService extends AbstractService_1.AbstractService {
|
|
|
45
45
|
if (metadataType.includes('MetadataV13')) {
|
|
46
46
|
pallets = adjustedMetadata['modules'];
|
|
47
47
|
const palletMetaType = this.getPalletMetadataType(pallets[0], metadataFieldType);
|
|
48
|
-
filtered = pallets.filter((mod) => mod[metadataFieldType].
|
|
48
|
+
filtered = pallets.filter((mod) => !mod[metadataFieldType].isEmpty);
|
|
49
49
|
}
|
|
50
50
|
else {
|
|
51
51
|
pallets = adjustedMetadata['pallets'];
|
|
52
52
|
const palletMetaType = this.getPalletMetadataType(pallets[0], metadataFieldType);
|
|
53
|
-
filtered = pallets.filter((mod) => mod[metadataFieldType].
|
|
53
|
+
filtered = pallets.filter((mod) => !mod[metadataFieldType].isEmpty);
|
|
54
54
|
}
|
|
55
55
|
const { isValidPalletName, isValidPalletIndex, parsedPalletId } = this.validPalletId(pallets, palletId);
|
|
56
56
|
let palletMeta;
|
|
@@ -141,24 +141,58 @@ class AbstractPalletsService extends AbstractService_1.AbstractService {
|
|
|
141
141
|
else if (metadataFieldType === 'errors') {
|
|
142
142
|
[palletItemIdx, palletItemMeta] = this.getErrorItemMeta(historicApi, palletMeta, palletItemIdx, palletItemId);
|
|
143
143
|
}
|
|
144
|
-
else {
|
|
144
|
+
else if (metadataFieldType === 'events') {
|
|
145
145
|
[palletItemIdx, palletItemMeta] = this.getEventItemMeta(historicApi, palletMeta, palletItemIdx, palletItemId);
|
|
146
146
|
}
|
|
147
|
+
else if (metadataFieldType === 'calls') {
|
|
148
|
+
[palletItemIdx, palletItemMeta] = this.getDispatchablesItemMeta(palletMeta, palletItemIdx, palletItemId);
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
[palletItemIdx, palletItemMeta] = this.getConstItemMeta(palletMeta, palletItemIdx, palletItemId);
|
|
152
|
+
}
|
|
147
153
|
if (palletItemIdx === -1) {
|
|
148
154
|
throw new http_errors_2.InternalServerError(`Could not find ${metadataFieldType} item ("${palletItemId}") in metadata. ${metadataFieldType} item names are expected to be in camel case, e.g. 'storageItemId'`);
|
|
149
155
|
}
|
|
150
156
|
return palletItemMeta;
|
|
151
157
|
}
|
|
158
|
+
getDispatchablesItemMeta(palletMeta, dispatchableItemMetaIdx, dispatchableItemId) {
|
|
159
|
+
const palletName = (0, util_1.stringCamelCase)(palletMeta.name);
|
|
160
|
+
const dispatchables = this.api.tx[palletName];
|
|
161
|
+
if (palletMeta.calls.isEmpty) {
|
|
162
|
+
throw new http_errors_2.InternalServerError(`No dispatchable items found in ${palletMeta.name.toString()}'s metadata`);
|
|
163
|
+
}
|
|
164
|
+
for (const [, val] of Object.entries(dispatchables)) {
|
|
165
|
+
const item = val.meta;
|
|
166
|
+
if ((0, util_1.stringCamelCase)(item.name).toLowerCase() ===
|
|
167
|
+
dispatchableItemId.toLowerCase()) {
|
|
168
|
+
dispatchableItemMetaIdx = val.meta.index.toNumber();
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return [
|
|
173
|
+
dispatchableItemMetaIdx,
|
|
174
|
+
Object.entries(dispatchables)[dispatchableItemMetaIdx],
|
|
175
|
+
];
|
|
176
|
+
}
|
|
177
|
+
getConstItemMeta(palletMeta, constItemMetaIdx, constItemId) {
|
|
178
|
+
if (palletMeta.constants.isEmpty) {
|
|
179
|
+
throw new http_errors_2.InternalServerError(`No const items found in ${palletMeta.name.toString()}'s metadata`);
|
|
180
|
+
}
|
|
181
|
+
const palletMetaConsts = palletMeta.constants;
|
|
182
|
+
constItemMetaIdx = palletMetaConsts.findIndex((item) => item.name.toLowerCase() === constItemId.toLowerCase());
|
|
183
|
+
return [constItemMetaIdx, palletMetaConsts[constItemMetaIdx]];
|
|
184
|
+
}
|
|
152
185
|
getErrorItemMeta(historicApi, palletMeta, errorItemMetaIdx, errorItemId) {
|
|
153
186
|
const palletName = (0, util_1.stringCamelCase)(palletMeta.name);
|
|
154
187
|
const errors = historicApi.errors[palletName];
|
|
155
188
|
if (palletMeta.errors.isEmpty) {
|
|
156
|
-
throw new http_errors_2.InternalServerError(`No error items found in ${palletMeta.name.toString()}'s
|
|
189
|
+
throw new http_errors_2.InternalServerError(`No error items found in ${palletMeta.name.toString()}'s metadata`);
|
|
157
190
|
}
|
|
158
191
|
for (const [, val] of Object.entries(errors)) {
|
|
159
192
|
const item = val.meta;
|
|
160
193
|
if (item.name.toLowerCase() === errorItemId.toLowerCase()) {
|
|
161
194
|
errorItemMetaIdx = val.meta.index.toNumber();
|
|
195
|
+
break;
|
|
162
196
|
}
|
|
163
197
|
}
|
|
164
198
|
return [
|
|
@@ -170,12 +204,13 @@ class AbstractPalletsService extends AbstractService_1.AbstractService {
|
|
|
170
204
|
const palletName = (0, util_1.stringCamelCase)(palletMeta.name);
|
|
171
205
|
const events = historicApi.events[palletName];
|
|
172
206
|
if (palletMeta.events.isEmpty) {
|
|
173
|
-
throw new http_errors_2.InternalServerError(`No event items found in ${palletMeta.name.toString()}'s
|
|
207
|
+
throw new http_errors_2.InternalServerError(`No event items found in ${palletMeta.name.toString()}'s metadata`);
|
|
174
208
|
}
|
|
175
209
|
for (const [, val] of Object.entries(events)) {
|
|
176
210
|
const item = val.meta;
|
|
177
211
|
if (item.name.toLowerCase() === eventItemId.toLowerCase()) {
|
|
178
212
|
eventItemMetaIdx = val.meta.index.toNumber();
|
|
213
|
+
break;
|
|
179
214
|
}
|
|
180
215
|
}
|
|
181
216
|
return [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractPalletsService.js","sourceRoot":"","sources":["../../../src/services/AbstractPalletsService.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":"AbstractPalletsService.js","sourceRoot":"","sources":["../../../src/services/AbstractPalletsService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ApiDecoration } from '@polkadot/api/types';
|
|
2
|
+
import { BlockHash } from '@polkadot/types/interfaces';
|
|
3
|
+
import { IPalletConstants, IPalletConstantsItem } from 'src/types/responses';
|
|
4
|
+
import { AbstractPalletsService } from '../AbstractPalletsService';
|
|
5
|
+
interface IFetchPalletArgs {
|
|
6
|
+
hash: BlockHash;
|
|
7
|
+
palletId: string;
|
|
8
|
+
}
|
|
9
|
+
interface IFetchConstantItemArgs extends IFetchPalletArgs {
|
|
10
|
+
constantItemId: string;
|
|
11
|
+
metadata: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare class PalletsConstantsService extends AbstractPalletsService {
|
|
14
|
+
fetchConstantItem(historicApi: ApiDecoration<'promise'>, { hash, palletId, constantItemId, metadata }: IFetchConstantItemArgs): Promise<IPalletConstantsItem>;
|
|
15
|
+
fetchConstants(historicApi: ApiDecoration<'promise'>, { hash, palletId, onlyIds }: IFetchPalletArgs & {
|
|
16
|
+
onlyIds: boolean;
|
|
17
|
+
}): Promise<IPalletConstants>;
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright 2017-2022 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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.PalletsConstantsService = void 0;
|
|
19
|
+
const util_1 = require("@polkadot/util");
|
|
20
|
+
const AbstractPalletsService_1 = require("../AbstractPalletsService");
|
|
21
|
+
class PalletsConstantsService extends AbstractPalletsService_1.AbstractPalletsService {
|
|
22
|
+
async fetchConstantItem(historicApi, { hash, palletId, constantItemId, metadata }) {
|
|
23
|
+
const metadataFieldType = 'constants';
|
|
24
|
+
const palletMetadata = historicApi.registry.metadata;
|
|
25
|
+
const [palletMeta, palletMetaIdx] = this.findPalletMeta(palletMetadata, palletId, metadataFieldType);
|
|
26
|
+
// Even if `constantItemMeta` is not used, we call this function to ensure it exists. The side effects
|
|
27
|
+
// of the constant item not existing are that `findConstantItemMeta` will throw.
|
|
28
|
+
const constantItemMetadata = this.findPalletFieldItemMeta(historicApi, palletMeta, constantItemId, metadataFieldType);
|
|
29
|
+
let palletConstantMetadata;
|
|
30
|
+
if (metadata) {
|
|
31
|
+
palletConstantMetadata = constantItemMetadata;
|
|
32
|
+
}
|
|
33
|
+
const { number } = await this.api.rpc.chain.getHeader(hash);
|
|
34
|
+
return {
|
|
35
|
+
at: {
|
|
36
|
+
hash: hash,
|
|
37
|
+
height: number.unwrap().toString(10),
|
|
38
|
+
},
|
|
39
|
+
pallet: (0, util_1.stringCamelCase)(palletMeta.name),
|
|
40
|
+
palletIndex: palletMetaIdx,
|
|
41
|
+
constantsItem: constantItemId,
|
|
42
|
+
metadata: palletConstantMetadata,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
async fetchConstants(historicApi, { hash, palletId, onlyIds }) {
|
|
46
|
+
const metadataFieldType = 'constants';
|
|
47
|
+
const metadata = historicApi.registry.metadata;
|
|
48
|
+
const [palletMeta, palletMetaIdx] = this.findPalletMeta(metadata, palletId, metadataFieldType);
|
|
49
|
+
const { number } = await this.api.rpc.chain.getHeader(hash);
|
|
50
|
+
let items;
|
|
51
|
+
if (palletMeta.constants.isEmpty) {
|
|
52
|
+
items = [];
|
|
53
|
+
}
|
|
54
|
+
else if (onlyIds) {
|
|
55
|
+
items = palletMeta.constants.map((itemMeta) => itemMeta.name);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
items = palletMeta.constants.map((itemMeta) => itemMeta);
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
at: {
|
|
62
|
+
hash: hash,
|
|
63
|
+
height: number.unwrap().toString(10),
|
|
64
|
+
},
|
|
65
|
+
pallet: (0, util_1.stringCamelCase)(palletMeta.name),
|
|
66
|
+
palletIndex: palletMetaIdx,
|
|
67
|
+
items,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.PalletsConstantsService = PalletsConstantsService;
|
|
72
|
+
//# sourceMappingURL=PalletsConstantsService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PalletsConstantsService.js","sourceRoot":"","sources":["../../../../src/services/pallets/PalletsConstantsService.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;;;AAQxE,yCAAiD;AAGjD,sEAAmE;AAYnE,MAAa,uBAAwB,SAAQ,+CAAsB;IAClE,KAAK,CAAC,iBAAiB,CACtB,WAAqC,EACrC,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAA0B;QAEpE,MAAM,iBAAiB,GAAG,WAAW,CAAC;QACtC,MAAM,cAAc,GAAG,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAErD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAI,CAAC,cAAc,CACtD,cAAc,EACd,QAAQ,EACR,iBAAiB,CACjB,CAAC;QAEF,sGAAsG;QACtG,gFAAgF;QAChF,MAAM,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,CACxD,WAAW,EACX,UAAU,EACV,cAAc,EACd,iBAAiB,CACe,CAAC;QAElC,IAAI,sBAAgE,CAAC;QACrE,IAAI,QAAQ,EAAE;YACb,sBAAsB,GAAG,oBAAoB,CAAC;SAC9C;QAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAE5D,OAAO;YACN,EAAE,EAAE;gBACH,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;aACpC;YACD,MAAM,EAAE,IAAA,sBAAe,EAAC,UAAU,CAAC,IAAI,CAAC;YACxC,WAAW,EAAE,aAAa;YAC1B,aAAa,EAAE,cAAc;YAC7B,QAAQ,EAAE,sBAAsB;SAChC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CACnB,WAAqC,EACrC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAA2C;QAEpE,MAAM,iBAAiB,GAAG,WAAW,CAAC;QACtC,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC/C,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAI,CAAC,cAAc,CACtD,QAAQ,EACR,QAAQ,EACR,iBAAiB,CACjB,CAAC;QAEF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAE5D,IAAI,KAAmD,CAAC;QACxD,IAAI,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE;YACjC,KAAK,GAAG,EAAE,CAAC;SACX;aAAM,IAAI,OAAO,EAAE;YACnB,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAC9D;aAAM;YACN,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,CAC/B,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAwC,CACtD,CAAC;SACF;QAED,OAAO;YACN,EAAE,EAAE;gBACH,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;aACpC;YACD,MAAM,EAAE,IAAA,sBAAe,EAAC,UAAU,CAAC,IAAI,CAAC;YACxC,WAAW,EAAE,aAAa;YAC1B,KAAK;SACL,CAAC;IACH,CAAC;CACD;AA7ED,0DA6EC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright 2017-2022 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 sanitize_1 = require("../../sanitize");
|
|
22
|
+
const registries_1 = require("../../test-helpers/registries");
|
|
23
|
+
const mock_1 = require("../test-helpers/mock");
|
|
24
|
+
const fetchConstantsOnlyIdsRes_json_1 = __importDefault(require("../test-helpers/responses/pallets/fetchConstantsOnlyIdsRes.json"));
|
|
25
|
+
const fetchConstantsRes_json_1 = __importDefault(require("../test-helpers/responses/pallets/fetchConstantsRes.json"));
|
|
26
|
+
const fetchEnactmentPeriodConstsItem789629_json_1 = __importDefault(require("../test-helpers/responses/pallets/fetchEnactmentPeriodConstsItem789629.json"));
|
|
27
|
+
const fetchLaunchPeriodConstsItem789629_json_1 = __importDefault(require("../test-helpers/responses/pallets/fetchLaunchPeriodConstsItem789629.json"));
|
|
28
|
+
const fetchVotingPeriodConstsItem789629_json_1 = __importDefault(require("../test-helpers/responses/pallets/fetchVotingPeriodConstsItem789629.json"));
|
|
29
|
+
const PalletsConstantsService_1 = require("./PalletsConstantsService");
|
|
30
|
+
const referendumInfoOfAt = () => Promise.resolve().then(() => {
|
|
31
|
+
registries_1.polkadotRegistryV9300.createType('ReferendumInfo');
|
|
32
|
+
});
|
|
33
|
+
const mockHistoricApi = {
|
|
34
|
+
registry: registries_1.polkadotRegistryV9300,
|
|
35
|
+
query: {
|
|
36
|
+
democracy: {
|
|
37
|
+
referendumInfoOf: referendumInfoOfAt,
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
const mockApi = {
|
|
42
|
+
...mock_1.defaultMockApi,
|
|
43
|
+
at: (_hash) => mockHistoricApi,
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Mock PalletsConstantsService instance.
|
|
47
|
+
*/
|
|
48
|
+
const palletsConstantsService = new PalletsConstantsService_1.PalletsConstantsService(mockApi);
|
|
49
|
+
describe('PalletConstantsService', () => {
|
|
50
|
+
describe('fetchConstantItem', () => {
|
|
51
|
+
it('works with a query to a single constant item id', async () => {
|
|
52
|
+
expect((0, sanitize_1.sanitizeNumbers)(await palletsConstantsService.fetchConstantItem(mockHistoricApi, {
|
|
53
|
+
hash: mock_1.blockHash13641102,
|
|
54
|
+
palletId: 'democracy',
|
|
55
|
+
constantItemId: 'EnactmentPeriod',
|
|
56
|
+
metadata: false,
|
|
57
|
+
}))).toMatchObject(fetchEnactmentPeriodConstsItem789629_json_1.default);
|
|
58
|
+
});
|
|
59
|
+
it('works with an index identifier', async () => {
|
|
60
|
+
expect((0, sanitize_1.sanitizeNumbers)(await palletsConstantsService.fetchConstantItem(mockHistoricApi, {
|
|
61
|
+
hash: mock_1.blockHash13641102,
|
|
62
|
+
palletId: '14',
|
|
63
|
+
constantItemId: 'LaunchPeriod',
|
|
64
|
+
metadata: false,
|
|
65
|
+
}))).toMatchObject(fetchLaunchPeriodConstsItem789629_json_1.default);
|
|
66
|
+
});
|
|
67
|
+
it('appropriately uses metadata params', async () => {
|
|
68
|
+
expect((0, sanitize_1.sanitizeNumbers)(await palletsConstantsService.fetchConstantItem(mockHistoricApi, {
|
|
69
|
+
hash: mock_1.blockHash13641102,
|
|
70
|
+
palletId: 'democracy',
|
|
71
|
+
constantItemId: 'VotingPeriod',
|
|
72
|
+
metadata: true,
|
|
73
|
+
}))).toMatchObject(fetchVotingPeriodConstsItem789629_json_1.default);
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
describe('fetchConstants', () => {
|
|
77
|
+
it('works with an index identifier', async () => {
|
|
78
|
+
expect((0, sanitize_1.sanitizeNumbers)(await palletsConstantsService.fetchConstants(mockHistoricApi, {
|
|
79
|
+
hash: mock_1.blockHash13641102,
|
|
80
|
+
palletId: '14',
|
|
81
|
+
onlyIds: false,
|
|
82
|
+
}))).toStrictEqual(fetchConstantsRes_json_1.default);
|
|
83
|
+
});
|
|
84
|
+
it('only lists constant item ids when onlyIds is true', async () => {
|
|
85
|
+
expect((0, sanitize_1.sanitizeNumbers)(await palletsConstantsService.fetchConstants(mockHistoricApi, {
|
|
86
|
+
hash: mock_1.blockHash13641102,
|
|
87
|
+
palletId: 'democracy',
|
|
88
|
+
onlyIds: true,
|
|
89
|
+
}))).toStrictEqual(fetchConstantsOnlyIdsRes_json_1.default);
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
//# sourceMappingURL=PalletsConstantsService.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PalletsConstantsService.spec.js","sourceRoot":"","sources":["../../../../src/services/pallets/PalletsConstantsService.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ApiDecoration } from '@polkadot/api/types';
|
|
2
|
+
import { BlockHash } from '@polkadot/types/interfaces';
|
|
3
|
+
import { IPalletDispatchableItem, IPalletDispatchables } from 'src/types/responses';
|
|
4
|
+
import { AbstractPalletsService } from '../AbstractPalletsService';
|
|
5
|
+
interface IFetchPalletArgs {
|
|
6
|
+
hash: BlockHash;
|
|
7
|
+
palletId: string;
|
|
8
|
+
}
|
|
9
|
+
interface IFetchDispatchableItemArgs extends IFetchPalletArgs {
|
|
10
|
+
dispatchableItemId: string;
|
|
11
|
+
metadata: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare class PalletsDispatchablesService extends AbstractPalletsService {
|
|
14
|
+
fetchDispatchableItem(historicApi: ApiDecoration<'promise'>, { hash, palletId, dispatchableItemId, metadata }: IFetchDispatchableItemArgs): Promise<IPalletDispatchableItem>;
|
|
15
|
+
fetchDispatchables(historicApi: ApiDecoration<'promise'>, { hash, palletId, onlyIds }: IFetchPalletArgs & {
|
|
16
|
+
onlyIds: boolean;
|
|
17
|
+
}): Promise<IPalletDispatchables>;
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright 2017-2022 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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.PalletsDispatchablesService = void 0;
|
|
19
|
+
const util_1 = require("@polkadot/util");
|
|
20
|
+
const AbstractPalletsService_1 = require("../AbstractPalletsService");
|
|
21
|
+
class PalletsDispatchablesService extends AbstractPalletsService_1.AbstractPalletsService {
|
|
22
|
+
async fetchDispatchableItem(historicApi, { hash, palletId, dispatchableItemId, metadata }) {
|
|
23
|
+
const metadataFieldType = 'calls';
|
|
24
|
+
const palletMetadata = historicApi.registry.metadata;
|
|
25
|
+
const [palletMeta, palletMetaIdx] = this.findPalletMeta(palletMetadata, palletId, metadataFieldType);
|
|
26
|
+
// Even if `dispatchableItemMeta` is not used, we call this function to ensure it exists. The side effects
|
|
27
|
+
// of the dispatchable item not existing are that `findPalletFieldItemMeta` will throw.
|
|
28
|
+
const dispatchableItemMetadata = this.findPalletFieldItemMeta(historicApi, palletMeta, dispatchableItemId, metadataFieldType);
|
|
29
|
+
let palletDispatchableMetadata;
|
|
30
|
+
if (metadata) {
|
|
31
|
+
palletDispatchableMetadata = dispatchableItemMetadata[1].meta;
|
|
32
|
+
}
|
|
33
|
+
const { number } = await this.api.rpc.chain.getHeader(hash);
|
|
34
|
+
return {
|
|
35
|
+
at: {
|
|
36
|
+
hash: hash,
|
|
37
|
+
height: number.unwrap().toString(10),
|
|
38
|
+
},
|
|
39
|
+
pallet: (0, util_1.stringCamelCase)(palletMeta.name),
|
|
40
|
+
palletIndex: palletMetaIdx,
|
|
41
|
+
dispatchableItem: dispatchableItemId,
|
|
42
|
+
metadata: palletDispatchableMetadata,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
async fetchDispatchables(historicApi, { hash, palletId, onlyIds }) {
|
|
46
|
+
const metadataFieldType = 'calls';
|
|
47
|
+
const metadata = historicApi.registry.metadata;
|
|
48
|
+
const [palletMeta, palletMetaIdx] = this.findPalletMeta(metadata, palletId, metadataFieldType);
|
|
49
|
+
const { number } = await this.api.rpc.chain.getHeader(hash);
|
|
50
|
+
const parsedPalletName = (0, util_1.stringCamelCase)(palletMeta.name.toString());
|
|
51
|
+
const dispatchables = this.api.tx[parsedPalletName];
|
|
52
|
+
let items;
|
|
53
|
+
if (Object.entries(dispatchables).length === 0) {
|
|
54
|
+
items = [];
|
|
55
|
+
}
|
|
56
|
+
else if (onlyIds) {
|
|
57
|
+
items = Object.entries(dispatchables).map((txItem) => txItem[0]);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
items = Object.entries(dispatchables).map((disaptchableItem) => disaptchableItem[1].meta);
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
at: {
|
|
64
|
+
hash: hash,
|
|
65
|
+
height: number.unwrap().toString(10),
|
|
66
|
+
},
|
|
67
|
+
pallet: (0, util_1.stringCamelCase)(palletMeta.name),
|
|
68
|
+
palletIndex: palletMetaIdx,
|
|
69
|
+
items,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
exports.PalletsDispatchablesService = PalletsDispatchablesService;
|
|
74
|
+
//# sourceMappingURL=PalletsDispatchablesService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PalletsDispatchablesService.js","sourceRoot":"","sources":["../../../../src/services/pallets/PalletsDispatchablesService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright 2017-2022 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 sanitize_1 = require("../../sanitize");
|
|
22
|
+
const registries_1 = require("../../test-helpers/registries");
|
|
23
|
+
const mock_1 = require("../test-helpers/mock");
|
|
24
|
+
const fetchDispatchablesOnlyIdsRes_json_1 = __importDefault(require("../test-helpers/responses/pallets/fetchDispatchablesOnlyIdsRes.json"));
|
|
25
|
+
const fetchDispatchablesRes_json_1 = __importDefault(require("../test-helpers/responses/pallets/fetchDispatchablesRes.json"));
|
|
26
|
+
const fetchProposeDispatchableItem789629_json_1 = __importDefault(require("../test-helpers/responses/pallets/fetchProposeDispatchableItem789629.json"));
|
|
27
|
+
const fetchSecondDispatchableItem789629_json_1 = __importDefault(require("../test-helpers/responses/pallets/fetchSecondDispatchableItem789629.json"));
|
|
28
|
+
const fetchVoteDispatchableItem789629_json_1 = __importDefault(require("../test-helpers/responses/pallets/fetchVoteDispatchableItem789629.json"));
|
|
29
|
+
const PalletsDispatchablesService_1 = require("./PalletsDispatchablesService");
|
|
30
|
+
const referendumInfoOfAt = () => Promise.resolve().then(() => {
|
|
31
|
+
registries_1.polkadotRegistryV9300.createType('ReferendumInfo');
|
|
32
|
+
});
|
|
33
|
+
const mockHistoricApi = {
|
|
34
|
+
registry: registries_1.polkadotRegistryV9300,
|
|
35
|
+
query: {
|
|
36
|
+
democracy: {
|
|
37
|
+
referendumInfoOf: referendumInfoOfAt,
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
const mockApi = {
|
|
42
|
+
...mock_1.defaultMockApi,
|
|
43
|
+
at: (_hash) => mockHistoricApi,
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Mock PalletsDispatchablesService instance.
|
|
47
|
+
*/
|
|
48
|
+
const palletsDispatchablesService = new PalletsDispatchablesService_1.PalletsDispatchablesService(mockApi);
|
|
49
|
+
describe('PalletDispatchablesService', () => {
|
|
50
|
+
describe('fetchDispatchableItem', () => {
|
|
51
|
+
it('works with a query to a single dispatchable item id', async () => {
|
|
52
|
+
expect((0, sanitize_1.sanitizeNumbers)(await palletsDispatchablesService.fetchDispatchableItem(mockHistoricApi, {
|
|
53
|
+
hash: mock_1.blockHash13641102,
|
|
54
|
+
palletId: 'democracy',
|
|
55
|
+
dispatchableItemId: 'propose',
|
|
56
|
+
metadata: false,
|
|
57
|
+
}))).toMatchObject(fetchProposeDispatchableItem789629_json_1.default);
|
|
58
|
+
});
|
|
59
|
+
it('works with an index identifier', async () => {
|
|
60
|
+
expect((0, sanitize_1.sanitizeNumbers)(await palletsDispatchablesService.fetchDispatchableItem(mockHistoricApi, {
|
|
61
|
+
hash: mock_1.blockHash13641102,
|
|
62
|
+
palletId: '14',
|
|
63
|
+
dispatchableItemId: 'second',
|
|
64
|
+
metadata: false,
|
|
65
|
+
}))).toMatchObject(fetchSecondDispatchableItem789629_json_1.default);
|
|
66
|
+
});
|
|
67
|
+
it('appropriately uses metadata params', async () => {
|
|
68
|
+
expect((0, sanitize_1.sanitizeNumbers)(await palletsDispatchablesService.fetchDispatchableItem(mockHistoricApi, {
|
|
69
|
+
hash: mock_1.blockHash13641102,
|
|
70
|
+
palletId: 'democracy',
|
|
71
|
+
dispatchableItemId: 'vote',
|
|
72
|
+
metadata: true,
|
|
73
|
+
}))).toMatchObject(fetchVoteDispatchableItem789629_json_1.default);
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
describe('fetchDispatchables', () => {
|
|
77
|
+
it('work with a index identifier', async () => {
|
|
78
|
+
expect((0, sanitize_1.sanitizeNumbers)(await palletsDispatchablesService.fetchDispatchables(mockHistoricApi, {
|
|
79
|
+
hash: mock_1.blockHash13641102,
|
|
80
|
+
palletId: '14',
|
|
81
|
+
onlyIds: false,
|
|
82
|
+
}))).toStrictEqual(fetchDispatchablesRes_json_1.default);
|
|
83
|
+
});
|
|
84
|
+
it('only list dispatchable item ids when onlyIds is true', async () => {
|
|
85
|
+
expect((0, sanitize_1.sanitizeNumbers)(await palletsDispatchablesService.fetchDispatchables(mockHistoricApi, {
|
|
86
|
+
hash: mock_1.blockHash13641102,
|
|
87
|
+
palletId: 'democracy',
|
|
88
|
+
onlyIds: true,
|
|
89
|
+
}))).toStrictEqual(fetchDispatchablesOnlyIdsRes_json_1.default);
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
//# sourceMappingURL=PalletsDispatchablesService.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PalletsDispatchablesService.spec.js","sourceRoot":"","sources":["../../../../src/services/pallets/PalletsDispatchablesService.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ const mock_1 = require("../test-helpers/mock");
|
|
|
24
24
|
const mockPalletErrorsData_1 = require("../test-helpers/mock/data/mockPalletErrorsData");
|
|
25
25
|
const fetchErrorsOnlyIdsRes_json_1 = __importDefault(require("../test-helpers/responses/pallets/fetchErrorsOnlyIdsRes.json"));
|
|
26
26
|
const fetchErrorsRes_json_1 = __importDefault(require("../test-helpers/responses/pallets/fetchErrorsRes.json"));
|
|
27
|
-
const
|
|
27
|
+
const fetchInsufficientFundsErrorItem13641102_json_1 = __importDefault(require("../test-helpers/responses/pallets/fetchInsufficientFundsErrorItem13641102.json"));
|
|
28
28
|
const fetchProposalMissingErrorItem13641102_json_1 = __importDefault(require("../test-helpers/responses/pallets/fetchProposalMissingErrorItem13641102.json"));
|
|
29
29
|
const fetchValueLowErrorItem13641102_json_1 = __importDefault(require("../test-helpers/responses/pallets/fetchValueLowErrorItem13641102.json"));
|
|
30
30
|
const PalletsErrorsService_1 = require("./PalletsErrorsService");
|
|
@@ -64,7 +64,7 @@ describe('PalletErrorService', () => {
|
|
|
64
64
|
palletId: '14',
|
|
65
65
|
errorItemId: 'InsufficientFunds',
|
|
66
66
|
metadata: false,
|
|
67
|
-
}))).toMatchObject(
|
|
67
|
+
}))).toMatchObject(fetchInsufficientFundsErrorItem13641102_json_1.default);
|
|
68
68
|
});
|
|
69
69
|
it('appropriately uses metadata params', async () => {
|
|
70
70
|
expect((0, sanitize_1.sanitizeNumbers)(await palletsErrorsService.fetchErrorItem(mockHistoricApi, {
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export * from '././PalletsErrorsService';
|
|
2
2
|
export * from '././PalletsEventsService';
|
|
3
3
|
export * from './PalletsAssetsService';
|
|
4
|
+
export * from './PalletsConstantsService';
|
|
5
|
+
export * from './PalletsDispatchablesService';
|
|
4
6
|
export * from './PalletsNominationPoolsService';
|
|
5
7
|
export * from './PalletsStakingProgressService';
|
|
6
8
|
export * from './PalletsStakingValidatorsService';
|
|
@@ -32,6 +32,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
32
32
|
__exportStar(require("././PalletsErrorsService"), exports);
|
|
33
33
|
__exportStar(require("././PalletsEventsService"), exports);
|
|
34
34
|
__exportStar(require("./PalletsAssetsService"), exports);
|
|
35
|
+
__exportStar(require("./PalletsConstantsService"), exports);
|
|
36
|
+
__exportStar(require("./PalletsDispatchablesService"), exports);
|
|
35
37
|
__exportStar(require("./PalletsNominationPoolsService"), exports);
|
|
36
38
|
__exportStar(require("./PalletsStakingProgressService"), exports);
|
|
37
39
|
__exportStar(require("./PalletsStakingValidatorsService"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/pallets/index.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,2DAAyC;AACzC,2DAAyC;AACzC,yDAAuC;AACvC,kEAAgD;AAChD,kEAAgD;AAChD,oEAAkD;AAClD,0DAAwC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/pallets/index.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,2DAAyC;AACzC,2DAAyC;AACzC,yDAAuC;AACvC,4DAA0C;AAC1C,gEAA8C;AAC9C,kEAAgD;AAChD,kEAAgD;AAChD,oEAAkD;AAClD,0DAAwC"}
|
|
@@ -25,6 +25,7 @@ const submitNodeReject_json_1 = __importDefault(require("../test-helpers/respons
|
|
|
25
25
|
const TransactionSubmitService_1 = require("./TransactionSubmitService");
|
|
26
26
|
const mockApi = {
|
|
27
27
|
...mock_1.defaultMockApi,
|
|
28
|
+
tx: mock_1.tx,
|
|
28
29
|
};
|
|
29
30
|
const transactionSubmitService = new TransactionSubmitService_1.TransactionSubmitService(mockApi);
|
|
30
31
|
describe('TransactionSubmitService', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionSubmitService.spec.js","sourceRoot":"","sources":["../../../../src/services/transaction/TransactionSubmitService.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,8DAAiE;AACjE,+CAM8B;AAC9B,sHAA2F;AAC3F,wHAA6F;AAC7F,yEAAsE;AAEtE,MAAM,OAAO,GAAG;IACf,GAAG,qBAAc;
|
|
1
|
+
{"version":3,"file":"TransactionSubmitService.spec.js","sourceRoot":"","sources":["../../../../src/services/transaction/TransactionSubmitService.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,8DAAiE;AACjE,+CAM8B;AAC9B,sHAA2F;AAC3F,wHAA6F;AAC7F,yEAAsE;AAEtE,MAAM,OAAO,GAAG;IACf,GAAG,qBAAc;IACjB,EAAE,EAAE,SAAE;CACmB,CAAC;AAE3B,MAAM,wBAAwB,GAAG,IAAI,mDAAwB,CAAC,OAAO,CAAC,CAAC;AAEvE,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACzC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YACjD,OAAO,MAAM,CACZ,wBAAwB,CAAC,iBAAiB,CAAC,4BAAqB,CAAC,CACjE,CAAC,QAAQ,CAAC,aAAa,CAAC;gBACxB,IAAI,EAAE,6BAAgB,CAAC,UAAU,CAAC,MAAM,CAAC;aACzC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;YACpF,MAAM,GAAG,GAAG,IAAI,KAAK;YACpB,6CAA6C;YAC7C,sMAAsM,CACtM,CAAC;YACF,GAAG,CAAC,KAAK;gBACR,8EAA8E,CAAC;YAE/E,OAAe,CAAC,EAAE,GAAG,GAAG,EAAE;gBAC1B,MAAM,GAAG,CAAC;YACX,CAAC,CAAC;YAEF,MAAM,MAAM,CACX,wBAAwB,CAAC,iBAAiB,CAAC,8BAAuB,CAAC,CACnE,CAAC,OAAO,CAAC,aAAa,CAAC,8BAAiB,CAAC,CAAC;YAE1C,OAAe,CAAC,EAAE,GAAG,SAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kFAAkF,EAAE,KAAK,IAAI,EAAE;YACjG,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;YACjE,GAAG,CAAC,KAAK;gBACR,6EAA6E,CAAC;YAE9E,OAAO,CAAC,GAAG,CAAC,MAAc,CAAC,eAAe,GAAG,GAAG,EAAE,CAClD,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC3B,MAAM,GAAG,CAAC;YACX,CAAC,CAAC,CAAC;YAEJ,MAAM,MAAM,CACX,wBAAwB,CAAC,iBAAiB,CAAC,4BAAqB,CAAC,CACjE,CAAC,OAAO,CAAC,aAAa,CAAC,+BAAkB,CAAC,CAAC;YAE3C,OAAO,CAAC,GAAG,CAAC,MAAc,CAAC,eAAe,GAAG,sBAAe,CAAC;QAC/D,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -29,12 +29,20 @@ export interface IParaIdParam extends ParamsDictionary {
|
|
|
29
29
|
export interface IRangeQueryParam extends Query {
|
|
30
30
|
range: string;
|
|
31
31
|
}
|
|
32
|
+
export interface IPalletsDispatchablesParam extends ParamsDictionary {
|
|
33
|
+
palletId: string;
|
|
34
|
+
dispatchableItemId: string;
|
|
35
|
+
}
|
|
32
36
|
export interface IContractQueryParam extends Query {
|
|
33
37
|
method: string;
|
|
34
38
|
args: string[];
|
|
35
39
|
gasLimit: string;
|
|
36
40
|
storageDepositLimit: string;
|
|
37
41
|
}
|
|
42
|
+
export interface IPalletsConstantsParam extends ParamsDictionary {
|
|
43
|
+
palletId: string;
|
|
44
|
+
constantItemId: string;
|
|
45
|
+
}
|
|
38
46
|
export interface IPalletsErrorsParam extends ParamsDictionary {
|
|
39
47
|
palletId: string;
|
|
40
48
|
errorItemId: string;
|