@substrate/api-sidecar 12.0.1 → 12.2.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 +20 -10
- package/build/package.json +6 -6
- package/build/src/chains-config/kusamaControllers.js +1 -1
- package/build/src/controllers/AbstractController.d.ts +6 -2
- package/build/src/controllers/AbstractController.js +26 -1
- package/build/src/controllers/AbstractController.js.map +1 -1
- package/build/src/controllers/AbstractControllers.spec.js +19 -0
- package/build/src/controllers/AbstractControllers.spec.js.map +1 -1
- package/build/src/controllers/blocks/BlocksController.d.ts +7 -0
- package/build/src/controllers/blocks/BlocksController.js +45 -0
- package/build/src/controllers/blocks/BlocksController.js.map +1 -1
- package/build/src/controllers/node/NodeTransactionPoolController.d.ts +6 -2
- package/build/src/controllers/node/NodeTransactionPoolController.js +9 -4
- package/build/src/controllers/node/NodeTransactionPoolController.js.map +1 -1
- package/build/src/logging/transports/consoleTransport.js +1 -1
- package/build/src/logging/transports/consoleTransport.js.map +1 -1
- package/build/src/middleware/error/errorMiddleware.spec.js +4 -0
- package/build/src/middleware/error/errorMiddleware.spec.js.map +1 -1
- package/build/src/middleware/error/httpErrorMiddleware.spec.js +4 -0
- package/build/src/middleware/error/httpErrorMiddleware.spec.js.map +1 -1
- package/build/src/middleware/error/internalErrorMiddleware.spec.js +4 -0
- package/build/src/middleware/error/internalErrorMiddleware.spec.js.map +1 -1
- package/build/src/middleware/error/legacyErrorMiddleware.spec.js +4 -0
- package/build/src/middleware/error/legacyErrorMiddleware.spec.js.map +1 -1
- package/build/src/middleware/error/txErrorMiddleware.spec.js +4 -0
- package/build/src/middleware/error/txErrorMiddleware.spec.js.map +1 -1
- package/build/src/services/node/NodeTransactionPoolService.d.ts +43 -1
- package/build/src/services/node/NodeTransactionPoolService.js +129 -6
- package/build/src/services/node/NodeTransactionPoolService.js.map +1 -1
- package/build/src/services/node/NodeTransactionPoolService.spec.js +31 -4
- package/build/src/services/node/NodeTransactionPoolService.spec.js.map +1 -1
- package/build/src/types/requests.d.ts +3 -0
- package/build/src/types/responses/NodeTransactionPool.d.ts +20 -0
- package/build/src/types/responses/SanitizedEvent.d.ts +4 -2
- package/build/src/util/PromiseQueue.d.ts +15 -0
- package/build/src/util/PromiseQueue.js +111 -0
- package/build/src/util/PromiseQueue.js.map +1 -0
- package/build/src/util/integers/verifyInt.d.ts +10 -0
- package/build/src/util/integers/verifyInt.js +20 -0
- package/build/src/util/integers/verifyInt.js.map +1 -0
- package/build/src/util/integers/verifyInt.spec.d.ts +1 -0
- package/build/src/util/integers/verifyInt.spec.js +20 -0
- package/build/src/util/integers/verifyInt.spec.js.map +1 -0
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -36,9 +36,9 @@ Compatibility:
|
|
|
36
36
|
| v14.x.x | Stable |
|
|
37
37
|
| v16.x.x | Stable |
|
|
38
38
|
| v17.x.x | Not Stable |
|
|
39
|
-
| v18.x.x | Pending |
|
|
39
|
+
| v18.x.x | Pending |
|
|
40
40
|
|
|
41
|
-
NOTE: Node LTS (`long term support`) versions start with an even number, and odd number versions are subject to a 6 month testing period with active support before they are unsupported. It is recommended to use sidecar with a stable actively maintained version of node.js.
|
|
41
|
+
NOTE: Node LTS (`long term support`) versions start with an even number, and odd number versions are subject to a 6 month testing period with active support before they are unsupported. It is recommended to use sidecar with a stable actively maintained version of node.js.
|
|
42
42
|
|
|
43
43
|
## Table of contents
|
|
44
44
|
|
|
@@ -94,7 +94,7 @@ node_modules/.bin/substrate-api-sidecar
|
|
|
94
94
|
|
|
95
95
|
[Click here for full endpoint docs.](https://paritytech.github.io/substrate-api-sidecar/dist/)
|
|
96
96
|
|
|
97
|
-
In the full endpoints doc, you will also find the following `trace` related endpoints :
|
|
97
|
+
In the full endpoints doc, you will also find the following `trace` related endpoints :
|
|
98
98
|
- `/experimental/blocks/{blockId}/traces/operations?actions=false`
|
|
99
99
|
- `/experimental/blocks/head/traces/operations?actions=false`
|
|
100
100
|
- `/experimental/blocks/{blockId}/traces`
|
|
@@ -299,8 +299,8 @@ All the commits in this repo follow the [Conventional Commits spec](https://www.
|
|
|
299
299
|
|
|
300
300
|
### Updating polkadot-js dependencies
|
|
301
301
|
|
|
302
|
-
1. Every Monday the polkadot-js ecosystem will usually come out with a new release. It's important that we keep up,
|
|
303
|
-
and read the release notes for any breaking changes or high priority updates. In order to update all the dependencies and resolutions run `yarn update-pjs-deps`.
|
|
302
|
+
1. Every Monday the polkadot-js ecosystem will usually come out with a new release. It's important that we keep up,
|
|
303
|
+
and read the release notes for any breaking changes or high priority updates. In order to update all the dependencies and resolutions run `yarn update-pjs-deps`.
|
|
304
304
|
|
|
305
305
|
- @polkadot/api [release notes](https://github.com/polkadot-js/api/releases)
|
|
306
306
|
- @polkadot/apps-config [release notes](https://github.com/polkadot-js/apps/releases)
|
|
@@ -308,9 +308,19 @@ and read the release notes for any breaking changes or high priority updates. In
|
|
|
308
308
|
- @polkadot/util-crypto [release notes](https://github.com/polkadot-js/common/releases)
|
|
309
309
|
- @substrate/calc [npm release page](https://www.npmjs.com/package/@substrate/calc)
|
|
310
310
|
|
|
311
|
-
1. Ensure everything is working by running the following
|
|
311
|
+
1. Ensure everything is up to date and working by running the following:
|
|
312
|
+
```
|
|
313
|
+
yarn
|
|
314
|
+
yarn dedupe
|
|
315
|
+
yarn build
|
|
316
|
+
yarn lint
|
|
317
|
+
yarn test
|
|
318
|
+
yarn test:init-e2e-tests
|
|
319
|
+
```
|
|
312
320
|
|
|
313
|
-
1.
|
|
321
|
+
1. Commit the dependency updates with a name like `fix(deps): update pjs api` (title depending on what got updated, see commit history for other examples of this), and wait to get it merged.
|
|
322
|
+
|
|
323
|
+
1. Follow [RELEASE.md](./RELEASE.md) next if you're working through a full sidecar release. This will involve creating a separate PR where the changelog and versions are bumped.
|
|
314
324
|
|
|
315
325
|
## Hardware requirements
|
|
316
326
|
|
|
@@ -321,18 +331,18 @@ Sidecar is a stateless program and thus should not use any disk space.
|
|
|
321
331
|
The requirements follow the default of node.js processes which is an upper bound in HEAP memory of a little less than 2GB thus 4GB of memory should be sufficient.
|
|
322
332
|
|
|
323
333
|
### Running sidecar and a node
|
|
324
|
-
Please note that if you run sidecar next to a substrate node in a single machine then your system specifications should improve significantly.
|
|
334
|
+
Please note that if you run sidecar next to a substrate node in a single machine then your system specifications should improve significantly.
|
|
325
335
|
- Our official specifications related to validator nodes can be found in the polkadot wiki [page](https://wiki.polkadot.network/docs/maintain-guides-how-to-validate-polkadot#standard-hardware).
|
|
326
336
|
- Regarding archive nodes :
|
|
327
337
|
- again as mentioned in the polkadot wiki [page](https://wiki.polkadot.network/docs/maintain-sync#types-of-nodes), the space needed from an archive node depends on which block we are currently on (of the specific chain we are referring to).
|
|
328
338
|
- there are no other hardware requirements for an archive node since it is not time critical (archive nodes do not participate in the consensus).
|
|
329
339
|
|
|
330
340
|
### Benchmarks
|
|
331
|
-
During the benchmarks we performed, we concluded that sidecar would use a max of 1.1GB of RSS memory.
|
|
341
|
+
During the benchmarks we performed, we concluded that sidecar would use a max of 1.1GB of RSS memory.
|
|
332
342
|
|
|
333
343
|
The benchmarks were:
|
|
334
344
|
- using 4 threads over 12 open http connections and
|
|
335
|
-
- were overloading the cache with every runtime possible on polkadot.
|
|
345
|
+
- were overloading the cache with every runtime possible on polkadot.
|
|
336
346
|
|
|
337
347
|
Hardware specs in which the benchmarks were performed:
|
|
338
348
|
```
|
package/build/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "12.0
|
|
2
|
+
"version": "12.2.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",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"start:log-rpc": "yarn run build && NODE_ENV=test yarn run main ",
|
|
36
36
|
"dev": "tsc-watch --onSuccess \"yarn run main\"",
|
|
37
37
|
"test": "NODE_ENV=test substrate-exec-jest --detectOpenHandles",
|
|
38
|
-
"test:watch": "substrate-exec-jest --watch",
|
|
38
|
+
"test:watch": "NODE_ENV=test substrate-exec-jest --watch",
|
|
39
39
|
"test:cov": "NODE_ENV=test substrate-exec-jest --detectOpenHandles --coverage",
|
|
40
40
|
"lint:e2e-tests": "cd e2e-tests && substrate-dev-run-lint",
|
|
41
41
|
"build:e2e-tests": "substrate-exec-tsc --project e2e-tests/tsconfig.json",
|
|
@@ -54,8 +54,8 @@
|
|
|
54
54
|
"update-pjs-deps": "substrate-update-pjs-deps && yarn"
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
|
-
"@polkadot/api": "8.
|
|
58
|
-
"@polkadot/util-crypto": "9.
|
|
57
|
+
"@polkadot/api": "^8.9.1",
|
|
58
|
+
"@polkadot/util-crypto": "^9.5.1",
|
|
59
59
|
"@substrate/calc": "^0.2.8",
|
|
60
60
|
"argparse": "^2.0.1",
|
|
61
61
|
"confmgr": "1.0.7",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"winston": "^3.3.3"
|
|
68
68
|
},
|
|
69
69
|
"devDependencies": {
|
|
70
|
-
"@substrate/dev": "^0.6.
|
|
70
|
+
"@substrate/dev": "^0.6.2",
|
|
71
71
|
"@types/argparse": "2.0.10",
|
|
72
72
|
"@types/express": "4.17.13",
|
|
73
73
|
"@types/express-serve-static-core": "4.17.25",
|
|
@@ -89,5 +89,5 @@
|
|
|
89
89
|
"polkadot",
|
|
90
90
|
"kusama"
|
|
91
91
|
],
|
|
92
|
-
"packageManager": "yarn@3.2.
|
|
92
|
+
"packageManager": "yarn@3.2.1"
|
|
93
93
|
}
|
|
@@ -3,9 +3,9 @@ import { BlockHash } from '@polkadot/types/interfaces';
|
|
|
3
3
|
import { RequestHandler, Response, Router } from 'express';
|
|
4
4
|
import { AbstractService } from 'src/services/AbstractService';
|
|
5
5
|
import { AnyJson } from 'src/types/polkadot-js';
|
|
6
|
-
import { IAddressNumberParams, IAddressParam, INumberParam, IParaIdParam } from 'src/types/requests';
|
|
6
|
+
import { IAddressNumberParams, IAddressParam, INumberParam, IParaIdParam, IRangeQueryParam } from 'src/types/requests';
|
|
7
7
|
import { ISanitizeOptions } from '../types/sanitize';
|
|
8
|
-
declare type SidecarRequestHandler = RequestHandler<IAddressParam> | RequestHandler<IAddressNumberParams> | RequestHandler<INumberParam> | RequestHandler<IParaIdParam> | RequestHandler;
|
|
8
|
+
declare type SidecarRequestHandler = RequestHandler<unknown, unknown, unknown, IRangeQueryParam> | RequestHandler<IAddressParam> | RequestHandler<IAddressNumberParams> | RequestHandler<INumberParam> | RequestHandler<IParaIdParam> | RequestHandler;
|
|
9
9
|
/**
|
|
10
10
|
* Abstract base class for creating controller classes.
|
|
11
11
|
*/
|
|
@@ -48,6 +48,10 @@ export default abstract class AbstractController<T extends AbstractService> {
|
|
|
48
48
|
*/
|
|
49
49
|
protected getHashForBlock(blockId: string): Promise<BlockHash>;
|
|
50
50
|
protected parseNumberOrThrow(n: string, errorMessage: string): number;
|
|
51
|
+
/**
|
|
52
|
+
* Expected format ie: 0-999
|
|
53
|
+
*/
|
|
54
|
+
protected parseRangeOfNumbersOrThrow(n: string, maxRange: number): number[];
|
|
51
55
|
protected parseQueryParamArrayOrThrow(n: string[]): number[];
|
|
52
56
|
protected verifyAndCastOr(name: string, str: unknown, or: number | undefined): number | undefined;
|
|
53
57
|
/**
|
|
@@ -40,6 +40,7 @@ const express = __importStar(require("express"));
|
|
|
40
40
|
const http_errors_1 = require("http-errors");
|
|
41
41
|
const sanitize_1 = require("../sanitize");
|
|
42
42
|
const errors_1 = require("../types/errors");
|
|
43
|
+
const verifyInt_1 = require("../util/integers/verifyInt");
|
|
43
44
|
/**
|
|
44
45
|
* Abstract base class for creating controller classes.
|
|
45
46
|
*/
|
|
@@ -131,11 +132,35 @@ class AbstractController {
|
|
|
131
132
|
}
|
|
132
133
|
parseNumberOrThrow(n, errorMessage) {
|
|
133
134
|
const num = Number(n);
|
|
134
|
-
if (!
|
|
135
|
+
if (!(0, verifyInt_1.verifyUInt)(num)) {
|
|
135
136
|
throw new http_errors_1.BadRequest(errorMessage);
|
|
136
137
|
}
|
|
137
138
|
return num;
|
|
138
139
|
}
|
|
140
|
+
/**
|
|
141
|
+
* Expected format ie: 0-999
|
|
142
|
+
*/
|
|
143
|
+
parseRangeOfNumbersOrThrow(n, maxRange) {
|
|
144
|
+
const splitRange = n.split('-');
|
|
145
|
+
if (splitRange.length !== 2) {
|
|
146
|
+
throw new http_errors_1.BadRequest('Incorrect range format. Expected example: 0-999');
|
|
147
|
+
}
|
|
148
|
+
const min = Number(splitRange[0]);
|
|
149
|
+
const max = Number(splitRange[1]);
|
|
150
|
+
if (!(0, verifyInt_1.verifyUInt)(min)) {
|
|
151
|
+
throw new http_errors_1.BadRequest('Inputted min value for range must be an unsigned integer.');
|
|
152
|
+
}
|
|
153
|
+
if (!(0, verifyInt_1.verifyNonZeroUInt)(max)) {
|
|
154
|
+
throw new http_errors_1.BadRequest('Inputted max value for range must be an unsigned non zero integer.');
|
|
155
|
+
}
|
|
156
|
+
if (min >= max) {
|
|
157
|
+
throw new http_errors_1.BadRequest('Inputted min value cannot be greater than or equal to the max value.');
|
|
158
|
+
}
|
|
159
|
+
if (max - min > maxRange) {
|
|
160
|
+
throw new http_errors_1.BadRequest(`Inputted range is greater than the ${maxRange} range limit.`);
|
|
161
|
+
}
|
|
162
|
+
return [...Array(max - min + 1).keys()].map((i) => i + min);
|
|
163
|
+
}
|
|
139
164
|
parseQueryParamArrayOrThrow(n) {
|
|
140
165
|
return n.map((str) => this.parseNumberOrThrow(str, `Incorrect AssetId format: ${str} is not a positive integer.`));
|
|
141
166
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractController.js","sourceRoot":"","sources":["../../../src/controllers/AbstractController.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,yCAAuC;AAEvC,iDAAmC;AACnC,6CAAyE;
|
|
1
|
+
{"version":3,"file":"AbstractController.js","sourceRoot":"","sources":["../../../src/controllers/AbstractController.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,yCAAuC;AAEvC,iDAAmC;AACnC,6CAAyE;AAWzE,0CAA8C;AAC9C,4CAAqD;AAErD,0DAA2E;AAU3E;;GAEG;AACH,MAA8B,kBAAkB;IAE/C,YACW,GAAe,EACjB,KAAa,EACX,OAAU;QAFV,QAAG,GAAH,GAAG,CAAY;QACjB,UAAK,GAAL,KAAK,CAAQ;QACX,YAAO,GAAP,OAAO,CAAG;QAJb,YAAO,GAAW,OAAO,CAAC,MAAM,EAAE,CAAC;IAKxC,CAAC;IAEJ,IAAI,IAAI;QACP,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAED,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAUD;;;;;;;OAOG;IACO,yBAAyB,CAClC,gBAAmD;QAEnD,KAAK,MAAM,cAAc,IAAI,gBAAgB,EAAE;YAC9C,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,cAAc,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,GAAG,CACd,GAAG,IAAI,CAAC,IAAI,GAAG,UAAU,EAAE,EAC3B,kBAAkB,CAAC,SAAS,CAAC,OAAyB,CAAC,CACvD,CAAC;SACF;IACF,CAAC;IAmBD;;;;;OAKG;IACO,KAAK,CAAC,eAAe,CAAC,OAAe;QAC9C,IAAI,WAAW,CAAC;QAEhB,0EAA0E;QAC1E,8EAA8E;QAC9E,iFAAiF;QACjF,iEAAiE;QACjE,SAAS,SAAS,CAAC,KAAc;YAChC,OAAO,IAAA,YAAK,EAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QAED,IAAI;YACH,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;YACpC,IAAI,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE;gBACtC,uBAAuB;gBACvB,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;aACjD;iBAAM,IAAI,QAAQ,EAAE;gBACpB,MAAM,IAAI,wBAAU,CACnB,6BAA6B,OAAO,IAAI;oBACvC,kEAAkE,CACnE,CAAC;aACF;iBAAM,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;gBACxC,MAAM,IAAI,wBAAU,CACnB,6BAA6B,OAAO,IAAI;oBACvC,kDAAkD;oBAClD,iDAAiD,CAClD,CAAC;aACF;YAED,2CAA2C;YAC3C,IAAI;gBACH,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;aACvE;YAAC,OAAO,GAAG,EAAE;gBACb,MAAM,IAAI,wBAAU,CACnB,6BAA6B,OAAO,IAAI;oBACvC,gFAAgF,CACjF,CAAC;aACF;YAED,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;SAC1D;QAAC,OAAO,GAAG,EAAE;YACb,IAAI,GAAG,YAAY,uBAAS,EAAE;gBAC7B,iDAAiD;gBACjD,MAAM,GAAG,CAAC;aACV;YAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;gBAClE,MAAM,IAAI,iCAAmB,CAC5B,+CAA+C,CAC/C,CAAC;YACH,CAAC,CAAC,CAAC;YACH,IAAI,WAAW,IAAI,MAAM,CAAC,QAAQ,EAAE,GAAG,WAAW,EAAE;gBACnD,MAAM,IAAI,wBAAU,CACnB,mEAAmE;oBAClE,qCAAqC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAC1D,CAAC;aACF;YAED,mDAAmD;YACnD,IAAI,IAAA,2BAAkB,EAAC,GAAG,CAAC,EAAE;gBAC5B,MAAM,GAAG,CAAC;aACV;YAED,MAAM,IAAI,iCAAmB,CAAC,6BAA6B,OAAO,GAAG,CAAC,CAAC;SACvE;IACF,CAAC;IAES,kBAAkB,CAAC,CAAS,EAAE,YAAoB;QAC3D,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAEtB,IAAI,CAAC,IAAA,sBAAU,EAAC,GAAG,CAAC,EAAE;YACrB,MAAM,IAAI,wBAAU,CAAC,YAAY,CAAC,CAAC;SACnC;QAED,OAAO,GAAG,CAAC;IACZ,CAAC;IAED;;OAEG;IACO,0BAA0B,CAAC,CAAS,EAAE,QAAgB;QAC/D,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,MAAM,IAAI,wBAAU,CAAC,iDAAiD,CAAC,CAAC;SACxE;QAED,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAElC,IAAI,CAAC,IAAA,sBAAU,EAAC,GAAG,CAAC,EAAE;YACrB,MAAM,IAAI,wBAAU,CACnB,2DAA2D,CAC3D,CAAC;SACF;QAED,IAAI,CAAC,IAAA,6BAAiB,EAAC,GAAG,CAAC,EAAE;YAC5B,MAAM,IAAI,wBAAU,CACnB,oEAAoE,CACpE,CAAC;SACF;QAED,IAAI,GAAG,IAAI,GAAG,EAAE;YACf,MAAM,IAAI,wBAAU,CACnB,sEAAsE,CACtE,CAAC;SACF;QAED,IAAI,GAAG,GAAG,GAAG,GAAG,QAAQ,EAAE;YACzB,MAAM,IAAI,wBAAU,CACnB,sCAAsC,QAAQ,eAAe,CAC7D,CAAC;SACF;QAED,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAC7D,CAAC;IAES,2BAA2B,CAAC,CAAW;QAChD,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACpB,IAAI,CAAC,kBAAkB,CACtB,GAAG,EACH,6BAA6B,GAAG,6BAA6B,CAC7D,CACD,CAAC;IACH,CAAC;IAES,eAAe,CACxB,IAAY,EACZ,GAAY,EACZ,EAAsB;QAEtB,IAAI,CAAC,GAAG,EAAE;YACT,OAAO,EAAE,CAAC;SACV;QAED,IAAI,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,EAAE;YAC/B,MAAM,IAAI,wBAAU,CACnB,qDAAqD,IAAI,cAAc,CACvE,CAAC;SACF;QAED,OAAO,IAAI,CAAC,kBAAkB,CAC7B,GAAG,EACH,GAAG,IAAI,mCAAmC,CAC1C,CAAC;IACH,CAAC;IAED;;;;OAIG;IACO,KAAK,CAAC,aAAa,CAAC,EAAW;QACxC,OAAO,OAAO,EAAE,KAAK,QAAQ;YAC5B,CAAC,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;YAChC,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;IAChD,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,aAAa,CACnB,GAAsB,EACtB,IAAO,EACP,UAA4B,EAAE;QAE9B,GAAG,CAAC,IAAI,CAAC,IAAA,0BAAe,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1C,CAAC;;AA7OF,qCA8OC;;AAlMA;;;;;GAKG;AACc,4BAAS,GACzB,CAAC,EAAkB,EAAkB,EAAE,CACvC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAiB,EAAE;IACvC,IAAI;QACH,6DAA6D;QAC7D,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;KACzB;IAAC,OAAO,GAAG,EAAE;QACb,IAAI,CAAC,GAAG,CAAC,CAAC;KACV;AACF,CAAE,CAAA"}
|
|
@@ -196,5 +196,24 @@ describe('AbstractController', () => {
|
|
|
196
196
|
api.createType = registries_1.kusamaRegistry.createType.bind(registries_1.kusamaRegistry);
|
|
197
197
|
});
|
|
198
198
|
});
|
|
199
|
+
describe('parseRangeOfNumbersOrThrow', () => {
|
|
200
|
+
it('Should return the correct array given a range', () => {
|
|
201
|
+
const res = controller['parseRangeOfNumbersOrThrow']('100-103', 500);
|
|
202
|
+
expect(res).toStrictEqual([100, 101, 102, 103]);
|
|
203
|
+
});
|
|
204
|
+
it('Should throw an error when the inputted format is wrong', () => {
|
|
205
|
+
const badFormatRequest = new http_errors_1.BadRequest('Incorrect range format. Expected example: 0-999');
|
|
206
|
+
const badMinRequest = new http_errors_1.BadRequest('Inputted min value for range must be an unsigned integer.');
|
|
207
|
+
const badMaxRequest = new http_errors_1.BadRequest('Inputted max value for range must be an unsigned non zero integer.');
|
|
208
|
+
const badMaxMinRequest = new http_errors_1.BadRequest('Inputted min value cannot be greater than or equal to the max value.');
|
|
209
|
+
const badMaxRangeRequest = new http_errors_1.BadRequest('Inputted range is greater than the 500 range limit.');
|
|
210
|
+
expect(() => controller['parseRangeOfNumbersOrThrow']('100', 500)).toThrow(badFormatRequest);
|
|
211
|
+
expect(() => controller['parseRangeOfNumbersOrThrow']('h-100', 500)).toThrow(badMinRequest);
|
|
212
|
+
expect(() => controller['parseRangeOfNumbersOrThrow']('100-h', 500)).toThrow(badMaxRequest);
|
|
213
|
+
expect(() => controller['parseRangeOfNumbersOrThrow']('100-1', 500)).toThrow(badMaxMinRequest);
|
|
214
|
+
expect(() => controller['parseRangeOfNumbersOrThrow']('1-1', 500)).toThrow(badMaxMinRequest);
|
|
215
|
+
expect(() => controller['parseRangeOfNumbersOrThrow']('2-503', 500)).toThrow(badMaxRangeRequest);
|
|
216
|
+
});
|
|
217
|
+
});
|
|
199
218
|
});
|
|
200
219
|
//# sourceMappingURL=AbstractControllers.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractControllers.spec.js","sourceRoot":"","sources":["../../../src/controllers/AbstractControllers.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AbstractControllers.spec.js","sourceRoot":"","sources":["../../../src/controllers/AbstractControllers.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -99,5 +99,12 @@ export default class BlocksController extends AbstractController<BlocksService>
|
|
|
99
99
|
* @param res Express Response
|
|
100
100
|
*/
|
|
101
101
|
private getLatestBlockHeader;
|
|
102
|
+
/**
|
|
103
|
+
* Return a collection of blocks, given a range.
|
|
104
|
+
*
|
|
105
|
+
* @param req Express Request
|
|
106
|
+
* @param res Express Response
|
|
107
|
+
*/
|
|
108
|
+
private getBlocks;
|
|
102
109
|
}
|
|
103
110
|
export {};
|
|
@@ -19,7 +19,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
19
19
|
};
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
21
|
const util_1 = require("@polkadot/util");
|
|
22
|
+
const http_errors_1 = require("http-errors");
|
|
22
23
|
const services_1 = require("../../services");
|
|
24
|
+
const PromiseQueue_1 = require("../../util/PromiseQueue");
|
|
23
25
|
const AbstractController_1 = __importDefault(require("../AbstractController"));
|
|
24
26
|
/**
|
|
25
27
|
* GET a block.
|
|
@@ -171,10 +173,53 @@ class BlocksController extends AbstractController_1.default {
|
|
|
171
173
|
: undefined;
|
|
172
174
|
BlocksController.sanitizedSend(res, await this.service.fetchBlockHeader(hash));
|
|
173
175
|
};
|
|
176
|
+
/**
|
|
177
|
+
* Return a collection of blocks, given a range.
|
|
178
|
+
*
|
|
179
|
+
* @param req Express Request
|
|
180
|
+
* @param res Express Response
|
|
181
|
+
*/
|
|
182
|
+
this.getBlocks = async ({ query: { range, eventDocs, extrinsicDocs } }, res) => {
|
|
183
|
+
if (!range)
|
|
184
|
+
throw new http_errors_1.BadRequest('range query parameter must be inputted.');
|
|
185
|
+
// We set a max range to 500 blocks.
|
|
186
|
+
const rangeOfNums = this.parseRangeOfNumbersOrThrow(range, 500);
|
|
187
|
+
const eventDocsArg = eventDocs === 'true';
|
|
188
|
+
const extrinsicDocsArg = extrinsicDocs === 'true';
|
|
189
|
+
const queryFinalizedHead = !this.options.finalizes ? false : true;
|
|
190
|
+
const omitFinalizedTag = !this.options.finalizes ? true : false;
|
|
191
|
+
const options = {
|
|
192
|
+
eventDocs: eventDocsArg,
|
|
193
|
+
extrinsicDocs: extrinsicDocsArg,
|
|
194
|
+
checkFinalized: false,
|
|
195
|
+
queryFinalizedHead,
|
|
196
|
+
omitFinalizedTag,
|
|
197
|
+
};
|
|
198
|
+
const pQueue = new PromiseQueue_1.PromiseQueue(4);
|
|
199
|
+
const blocksPromise = [];
|
|
200
|
+
for (let i = 0; i < rangeOfNums.length; i++) {
|
|
201
|
+
const result = pQueue.run(async () => {
|
|
202
|
+
// Get block hash:
|
|
203
|
+
const hash = await this.getHashForBlock(rangeOfNums[i].toString());
|
|
204
|
+
// Get API at that hash:
|
|
205
|
+
const historicApi = await this.api.at(hash);
|
|
206
|
+
// Get block details using this API/hash:
|
|
207
|
+
return await this.service.fetchBlock(hash, historicApi, options);
|
|
208
|
+
});
|
|
209
|
+
blocksPromise.push(result);
|
|
210
|
+
}
|
|
211
|
+
const blocks = (await Promise.all(blocksPromise));
|
|
212
|
+
/**
|
|
213
|
+
* Sort blocks from least to greatest.
|
|
214
|
+
*/
|
|
215
|
+
blocks.sort((a, b) => a.number.toNumber() - b.number.toNumber());
|
|
216
|
+
BlocksController.sanitizedSend(res, blocks);
|
|
217
|
+
};
|
|
174
218
|
this.initRoutes();
|
|
175
219
|
}
|
|
176
220
|
initRoutes() {
|
|
177
221
|
this.safeMountAsyncGetHandlers([
|
|
222
|
+
['/', this.getBlocks],
|
|
178
223
|
['/head', this.getLatestBlock],
|
|
179
224
|
['/:number', this.getBlockById],
|
|
180
225
|
['/head/header', this.getLatestBlockHeader],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlocksController.js","sourceRoot":"","sources":["../../../../src/controllers/blocks/BlocksController.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;;;;;AAGxE,yCAAuC;
|
|
1
|
+
{"version":3,"file":"BlocksController.js","sourceRoot":"","sources":["../../../../src/controllers/blocks/BlocksController.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,14 +8,18 @@ import AbstractController from '../AbstractController';
|
|
|
8
8
|
* - `pool`: array of
|
|
9
9
|
* - `hash`: H256 hash of the extrinsic.
|
|
10
10
|
* - `encodedExtrinsic`: Scale encoded extrinsic.
|
|
11
|
+
* - `tip`: Tip included into the extrinsic. Available when the `includeFee` query param is set to true.
|
|
12
|
+
* - `priority`: Priority of the transaction. Calculated by tip * (max_block_{weight|length} / bounded_{weight|length}).
|
|
13
|
+
* Available when the `includeFee` query param is set to true.
|
|
14
|
+
* - `partialFee`: PartialFee for a transaction. Available when the `includeFee` query param is set to true.
|
|
11
15
|
*/
|
|
12
16
|
export default class NodeTransactionPoolController extends AbstractController<NodeTransactionPoolService> {
|
|
13
17
|
constructor(api: ApiPromise);
|
|
14
18
|
protected initRoutes(): void;
|
|
15
19
|
/**
|
|
16
|
-
|
|
20
|
+
* GET pending extrinsics from the Substrate node.
|
|
17
21
|
*
|
|
18
|
-
* @param
|
|
22
|
+
* @param req Express Request, accepts the query param `includeFee`
|
|
19
23
|
* @param res Express Response
|
|
20
24
|
*/
|
|
21
25
|
private getNodeTransactionPool;
|
|
@@ -27,18 +27,23 @@ const AbstractController_1 = __importDefault(require("../AbstractController"));
|
|
|
27
27
|
* - `pool`: array of
|
|
28
28
|
* - `hash`: H256 hash of the extrinsic.
|
|
29
29
|
* - `encodedExtrinsic`: Scale encoded extrinsic.
|
|
30
|
+
* - `tip`: Tip included into the extrinsic. Available when the `includeFee` query param is set to true.
|
|
31
|
+
* - `priority`: Priority of the transaction. Calculated by tip * (max_block_{weight|length} / bounded_{weight|length}).
|
|
32
|
+
* Available when the `includeFee` query param is set to true.
|
|
33
|
+
* - `partialFee`: PartialFee for a transaction. Available when the `includeFee` query param is set to true.
|
|
30
34
|
*/
|
|
31
35
|
class NodeTransactionPoolController extends AbstractController_1.default {
|
|
32
36
|
constructor(api) {
|
|
33
37
|
super(api, '/node/transaction-pool', new services_1.NodeTransactionPoolService(api));
|
|
34
38
|
/**
|
|
35
|
-
|
|
39
|
+
* GET pending extrinsics from the Substrate node.
|
|
36
40
|
*
|
|
37
|
-
* @param
|
|
41
|
+
* @param req Express Request, accepts the query param `includeFee`
|
|
38
42
|
* @param res Express Response
|
|
39
43
|
*/
|
|
40
|
-
this.getNodeTransactionPool = async (
|
|
41
|
-
|
|
44
|
+
this.getNodeTransactionPool = async ({ query: { includeFee } }, res) => {
|
|
45
|
+
const shouldIncludeFee = includeFee === 'true';
|
|
46
|
+
NodeTransactionPoolController.sanitizedSend(res, await this.service.fetchTransactionPool(shouldIncludeFee));
|
|
42
47
|
};
|
|
43
48
|
this.initRoutes();
|
|
44
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeTransactionPoolController.js","sourceRoot":"","sources":["../../../../src/controllers/node/NodeTransactionPoolController.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,6CAA4D;AAC5D,+EAAuD;AAEvD
|
|
1
|
+
{"version":3,"file":"NodeTransactionPoolController.js","sourceRoot":"","sources":["../../../../src/controllers/node/NodeTransactionPoolController.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,6CAA4D;AAC5D,+EAAuD;AAEvD;;;;;;;;;;;GAWG;AACH,MAAqB,6BAA8B,SAAQ,4BAA8C;IACxG,YAAY,GAAe;QAC1B,KAAK,CAAC,GAAG,EAAE,wBAAwB,EAAE,IAAI,qCAA0B,CAAC,GAAG,CAAC,CAAC,CAAC;QAQ3E;;;;;WAKG;QACK,2BAAsB,GAAmB,KAAK,EACrD,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EACzB,GAAG,EACa,EAAE;YAClB,MAAM,gBAAgB,GAAG,UAAU,KAAK,MAAM,CAAC;YAE/C,6BAA6B,CAAC,aAAa,CAC1C,GAAG,EACH,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CACzD,CAAC;QACH,CAAC,CAAC;QAvBD,IAAI,CAAC,UAAU,EAAE,CAAC;IACnB,CAAC;IAES,UAAU;QACnB,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;CAmBD;AA3BD,gDA2BC"}
|
|
@@ -52,7 +52,7 @@ function consoleTransport() {
|
|
|
52
52
|
handleExceptions: true,
|
|
53
53
|
format: winston_1.format.combine(...transformers),
|
|
54
54
|
// Silence using `jest --silent`
|
|
55
|
-
silent: process.
|
|
55
|
+
silent: process.env.NODE_ENV === 'test',
|
|
56
56
|
});
|
|
57
57
|
}
|
|
58
58
|
exports.consoleTransport = consoleTransport;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consoleTransport.js","sourceRoot":"","sources":["../../../../src/logging/transports/consoleTransport.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;;;AAGxE,qCAA6C;AAE7C,uDAAoD;AACpD,kDAMyB;AAEzB;;GAEG;AACH,SAAgB,gBAAgB;IAC/B,MAAM,EACL,MAAM,EAAE,EAAE,GAAG,EAAE,GACf,GAAG,6BAAa,CAAC;IAClB;;OAEG;IACH,MAAM,WAAW,GAAG,gBAAM,CAAC,MAAM,CAAC,CAAC,IAAuB,EAAE,EAAE;QAC7D,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,EAAE;YAChB,yEAAyE;YACzE,OAAO,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAmB,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,KACjD,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OACP,OAAO,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAe,EAAE,CAAC;SAC/B;QAED,OAAO,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAmB,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,KAAK,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,EAAE,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,CAAC,IAAA,6BAAc,GAAE,EAAE,IAAA,6BAAc,GAAE,EAAE,wBAAS,CAAC,CAAC;IAErE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;QACd,YAAY,CAAC,IAAI,CAAC,gBAAM,CAAC,QAAQ,EAAE,EAAE,WAAW,CAAC,CAAC;KAClD;SAAM;QACN,YAAY,CAAC,IAAI,CAAC,gBAAM,CAAC,WAAW,EAAE,CAAC,CAAC;KACxC;IAED,IAAI,GAAG,CAAC,UAAU,EAAE;QACnB,YAAY,CAAC,OAAO,CAAC,IAAA,wBAAS,GAAE,CAAC,CAAC;KAClC;IAED,IAAI,GAAG,CAAC,UAAU,EAAE;QACnB,YAAY,CAAC,OAAO,CAAC,IAAA,2BAAY,GAAE,CAAC,CAAC;KACrC;IAED,OAAO,IAAI,oBAAU,CAAC,OAAO,CAAC;QAC7B,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,MAAM;QAC1B,gBAAgB,EAAE,IAAI;QACtB,MAAM,EAAE,gBAAM,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;QACvC,gCAAgC;QAChC,MAAM,EAAE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"consoleTransport.js","sourceRoot":"","sources":["../../../../src/logging/transports/consoleTransport.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;;;AAGxE,qCAA6C;AAE7C,uDAAoD;AACpD,kDAMyB;AAEzB;;GAEG;AACH,SAAgB,gBAAgB;IAC/B,MAAM,EACL,MAAM,EAAE,EAAE,GAAG,EAAE,GACf,GAAG,6BAAa,CAAC;IAClB;;OAEG;IACH,MAAM,WAAW,GAAG,gBAAM,CAAC,MAAM,CAAC,CAAC,IAAuB,EAAE,EAAE;QAC7D,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,EAAE;YAChB,yEAAyE;YACzE,OAAO,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAmB,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,KACjD,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OACP,OAAO,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAe,EAAE,CAAC;SAC/B;QAED,OAAO,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAmB,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,KAAK,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,EAAE,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,CAAC,IAAA,6BAAc,GAAE,EAAE,IAAA,6BAAc,GAAE,EAAE,wBAAS,CAAC,CAAC;IAErE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;QACd,YAAY,CAAC,IAAI,CAAC,gBAAM,CAAC,QAAQ,EAAE,EAAE,WAAW,CAAC,CAAC;KAClD;SAAM;QACN,YAAY,CAAC,IAAI,CAAC,gBAAM,CAAC,WAAW,EAAE,CAAC,CAAC;KACxC;IAED,IAAI,GAAG,CAAC,UAAU,EAAE;QACnB,YAAY,CAAC,OAAO,CAAC,IAAA,wBAAS,GAAE,CAAC,CAAC;KAClC;IAED,IAAI,GAAG,CAAC,UAAU,EAAE;QACnB,YAAY,CAAC,OAAO,CAAC,IAAA,2BAAY,GAAE,CAAC,CAAC;KACrC;IAED,OAAO,IAAI,oBAAU,CAAC,OAAO,CAAC;QAC7B,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,MAAM;QAC1B,gBAAgB,EAAE,IAAI;QACtB,MAAM,EAAE,gBAAM,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;QACvC,gCAAgC;QAChC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM;KACvC,CAAC,CAAC;AACJ,CAAC;AAzCD,4CAyCC"}
|
|
@@ -21,6 +21,10 @@ const testTools_1 = require("./testTools");
|
|
|
21
21
|
const errorMiddlewareCallsNextWithErr = (0, testTools_1.callsNextWithErr)(errorMiddleware_1.errorMiddleware);
|
|
22
22
|
const errorMiddlewareCatchesErrWithStatus = (0, testTools_1.catchesErrWithStatus)(errorMiddleware_1.errorMiddleware);
|
|
23
23
|
describe('errorMiddleware', () => {
|
|
24
|
+
// Necessary since the consolveOverride is called after the getter for the logger is launced
|
|
25
|
+
beforeAll(() => {
|
|
26
|
+
jest.spyOn(console, 'log').mockImplementation(() => ({}));
|
|
27
|
+
});
|
|
24
28
|
errorMiddlewareCallsNextWithErr('ILegacyError', {
|
|
25
29
|
error: 'legacy error',
|
|
26
30
|
statusCode: 500,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorMiddleware.spec.js","sourceRoot":"","sources":["../../../../src/middleware/error/errorMiddleware.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;;AAExE,6CAA8D;AAE9D,uDAAoD;AACpD,2CAIqB;AAErB,MAAM,+BAA+B,GAAG,IAAA,4BAAgB,EAAC,iCAAe,CAAC,CAAC;AAE1E,MAAM,mCAAmC,GACxC,IAAA,gCAAoB,EAAC,iCAAe,CAAC,CAAC;AAEvC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAChC,+BAA+B,CAAC,cAAc,EAAE;QAC/C,KAAK,EAAE,cAAc;QACrB,UAAU,EAAE,GAAG;KACf,CAAC,CAAC;IAEH,+BAA+B,CAAC,aAAa,EAAE;QAC9C,KAAK,EAAE,aAAa;KACpB,CAAC,CAAC;IAEH,+BAA+B,CAAC,gBAAgB,EAAE;QACjD,IAAI,EAAE,2BAA2B;QACjC,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,UAAU;KACjB,CAAC,CAAC;IAEH,+BAA+B,CAAC,iBAAiB,EAAE;QAClD,oBAAoB,EAAE,KAAK;KAC3B,CAAC,CAAC;IAEH,mCAAmC,CAClC,OAAO,EACP,IAAI,KAAK,CAAC,kBAAkB,CAAC,EAC7B,GAAG,CACH,CAAC;IAEF,mCAAmC,CAClC,wEAAwE,EACxE,IAAI,wBAAU,CAAC,aAAa,CAAC,EAC7B,GAAG,CACH,CAAC;IAEF,mCAAmC,CAClC,sDAAsD,EACtD,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,EACzC,GAAG,CACH,CAAC;IAEF,IAAA,oCAAwB,EAAC,iCAAe,EAAE,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAC1E,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"errorMiddleware.spec.js","sourceRoot":"","sources":["../../../../src/middleware/error/errorMiddleware.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;;AAExE,6CAA8D;AAE9D,uDAAoD;AACpD,2CAIqB;AAErB,MAAM,+BAA+B,GAAG,IAAA,4BAAgB,EAAC,iCAAe,CAAC,CAAC;AAE1E,MAAM,mCAAmC,GACxC,IAAA,gCAAoB,EAAC,iCAAe,CAAC,CAAC;AAEvC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAChC,4FAA4F;IAC5F,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,+BAA+B,CAAC,cAAc,EAAE;QAC/C,KAAK,EAAE,cAAc;QACrB,UAAU,EAAE,GAAG;KACf,CAAC,CAAC;IAEH,+BAA+B,CAAC,aAAa,EAAE;QAC9C,KAAK,EAAE,aAAa;KACpB,CAAC,CAAC;IAEH,+BAA+B,CAAC,gBAAgB,EAAE;QACjD,IAAI,EAAE,2BAA2B;QACjC,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,UAAU;KACjB,CAAC,CAAC;IAEH,+BAA+B,CAAC,iBAAiB,EAAE;QAClD,oBAAoB,EAAE,KAAK;KAC3B,CAAC,CAAC;IAEH,mCAAmC,CAClC,OAAO,EACP,IAAI,KAAK,CAAC,kBAAkB,CAAC,EAC7B,GAAG,CACH,CAAC;IAEF,mCAAmC,CAClC,wEAAwE,EACxE,IAAI,wBAAU,CAAC,aAAa,CAAC,EAC7B,GAAG,CACH,CAAC;IAEF,mCAAmC,CAClC,sDAAsD,EACtD,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,EACzC,GAAG,CACH,CAAC;IAEF,IAAA,oCAAwB,EAAC,iCAAe,EAAE,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAC1E,CAAC,CAAC,CAAC"}
|
|
@@ -25,6 +25,10 @@ const testTools_1 = require("./testTools");
|
|
|
25
25
|
const httpErrorMiddlewareCallsNextWithErr = (0, testTools_1.callsNextWithErr)(httpErrorMiddleware_1.httpErrorMiddleware);
|
|
26
26
|
const httpErrorMiddlewareCatchesErrWithStatus = (0, testTools_1.catchesErrWithStatus)(httpErrorMiddleware_1.httpErrorMiddleware);
|
|
27
27
|
describe('httpErrorMiddleware', () => {
|
|
28
|
+
// Necessary since the consolveOverride is called after the getter for the logger is launced
|
|
29
|
+
beforeAll(() => {
|
|
30
|
+
jest.spyOn(console, 'log').mockImplementation(() => ({}));
|
|
31
|
+
});
|
|
28
32
|
httpErrorMiddlewareCallsNextWithErr('Error', new Error('This is an error'));
|
|
29
33
|
httpErrorMiddlewareCallsNextWithErr('IBasicError', {
|
|
30
34
|
error: 'basic error',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpErrorMiddleware.spec.js","sourceRoot":"","sources":["../../../../src/middleware/error/httpErrorMiddleware.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;;;;;AAExE,8DAA+C;AAC/C,6CAA8D;AAE9D,+DAA4D;AAC5D,2CAIqB;AAErB,MAAM,mCAAmC,GACxC,IAAA,4BAAgB,EAAC,yCAAmB,CAAC,CAAC;AAEvC,MAAM,uCAAuC,GAC5C,IAAA,gCAAoB,EAAC,yCAAmB,CAAC,CAAC;AAE3C,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACpC,mCAAmC,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAE5E,mCAAmC,CAAC,aAAa,EAAE;QAClD,KAAK,EAAE,aAAa;KACpB,CAAC,CAAC;IAEH,mCAAmC,CAAC,cAAc,EAAE;QACnD,KAAK,EAAE,cAAc;QACrB,UAAU,EAAE,GAAG;KACf,CAAC,CAAC;IAEH,mCAAmC,CAAC,gBAAgB,EAAE;QACrD,IAAI,EAAE,2BAA2B;QACjC,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,UAAU;KACjB,CAAC,CAAC;IAEH,mCAAmC,CAAC,iBAAiB,EAAE;QACtD,oBAAoB,EAAE,KAAK;KAC3B,CAAC,CAAC;IAEH,uCAAuC,CACtC,0BAA0B,EAC1B,IAAA,qBAAoB,EAAC,GAAG,EAAE,aAAa,CAAC,EACxC,GAAG,CACH,CAAC;IAEF,uCAAuC,CACtC,YAAY,EACZ,IAAI,wBAAU,CAAC,aAAa,CAAC,EAC7B,GAAG,CACH,CAAC;IAEF,uCAAuC,CACtC,qBAAqB,EACrB,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,EACzC,GAAG,CACH,CAAC;IAEF,IAAA,oCAAwB,EACvB,yCAAmB,EACnB,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CACzC,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"httpErrorMiddleware.spec.js","sourceRoot":"","sources":["../../../../src/middleware/error/httpErrorMiddleware.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;;;;;AAExE,8DAA+C;AAC/C,6CAA8D;AAE9D,+DAA4D;AAC5D,2CAIqB;AAErB,MAAM,mCAAmC,GACxC,IAAA,4BAAgB,EAAC,yCAAmB,CAAC,CAAC;AAEvC,MAAM,uCAAuC,GAC5C,IAAA,gCAAoB,EAAC,yCAAmB,CAAC,CAAC;AAE3C,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACpC,4FAA4F;IAC5F,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,mCAAmC,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAE5E,mCAAmC,CAAC,aAAa,EAAE;QAClD,KAAK,EAAE,aAAa;KACpB,CAAC,CAAC;IAEH,mCAAmC,CAAC,cAAc,EAAE;QACnD,KAAK,EAAE,cAAc;QACrB,UAAU,EAAE,GAAG;KACf,CAAC,CAAC;IAEH,mCAAmC,CAAC,gBAAgB,EAAE;QACrD,IAAI,EAAE,2BAA2B;QACjC,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,UAAU;KACjB,CAAC,CAAC;IAEH,mCAAmC,CAAC,iBAAiB,EAAE;QACtD,oBAAoB,EAAE,KAAK;KAC3B,CAAC,CAAC;IAEH,uCAAuC,CACtC,0BAA0B,EAC1B,IAAA,qBAAoB,EAAC,GAAG,EAAE,aAAa,CAAC,EACxC,GAAG,CACH,CAAC;IAEF,uCAAuC,CACtC,YAAY,EACZ,IAAI,wBAAU,CAAC,aAAa,CAAC,EAC7B,GAAG,CACH,CAAC;IAEF,uCAAuC,CACtC,qBAAqB,EACrB,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,EACzC,GAAG,CACH,CAAC;IAEF,IAAA,oCAAwB,EACvB,yCAAmB,EACnB,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CACzC,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -24,6 +24,10 @@ const internalErrorMiddleware_1 = require("./internalErrorMiddleware");
|
|
|
24
24
|
const testTools_1 = require("./testTools");
|
|
25
25
|
const internalErrorMiddlewareCatchesErrWithResponse = (0, testTools_1.catchesErrWithResponse)(internalErrorMiddleware_1.internalErrorMiddleware);
|
|
26
26
|
describe('internalErrorMiddleware', () => {
|
|
27
|
+
// Necessary since the consolveOverride is called after the getter for the logger is launced
|
|
28
|
+
beforeAll(() => {
|
|
29
|
+
jest.spyOn(console, 'log').mockImplementation(() => ({}));
|
|
30
|
+
});
|
|
27
31
|
internalErrorMiddlewareCatchesErrWithResponse('ITxLegacyError', {
|
|
28
32
|
data: 'tx could not be processed',
|
|
29
33
|
cause: 'unknown',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internalErrorMiddleware.spec.js","sourceRoot":"","sources":["../../../../src/middleware/error/internalErrorMiddleware.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;;;;;AAExE,6CAA8D;AAC9D,8DAA+C;AAE/C,uEAAoE;AACpE,2CAA+E;AAE/E,MAAM,6CAA6C,GAAG,IAAA,kCAAsB,EAC3E,iDAAuB,CACvB,CAAC;AAEF,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACxC,6CAA6C,CAC5C,gBAAgB,EAChB;QACC,IAAI,EAAE,2BAA2B;QACjC,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,UAAU;KACjB,EACD,GAAG,EACH,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CACzC,CAAC;IAEF,6CAA6C,CAC5C,aAAa,EACb;QACC,KAAK,EAAE,aAAa;KACpB,EACD,GAAG,EACH,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CACzC,CAAC;IAEF,6CAA6C,CAC5C,cAAc,EACd;QACC,KAAK,EAAE,gCAAgC;QACvC,UAAU,EAAE,GAAG;KACf,EACD,GAAG,EACH,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CACzC,CAAC;IAEF,6CAA6C,CAC5C,OAAO,EACP,IAAI,KAAK,CAAC,kBAAkB,CAAC,EAC7B,GAAG,EACH,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CACzC,CAAC;IAEF,6CAA6C,CAC5C,YAAY,EACZ,IAAI,wBAAU,CAAC,aAAa,CAAC,EAC7B,GAAG,EACH,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CACzC,CAAC;IAEF,6CAA6C,CAC5C,qBAAqB,EACrB,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,EACzC,GAAG,EACH,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CACzC,CAAC;IAEF,6CAA6C,CAC5C,0BAA0B,EAC1B,IAAA,qBAAoB,EAAC,GAAG,EAAE,aAAa,CAAC,EACxC,GAAG,EACH,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CACzC,CAAC;IAEF,6CAA6C,CAC5C,QAAQ,EACR,OAAO,EACP,GAAG,EACH,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CACzC,CAAC;IAEF,6CAA6C,CAC5C,MAAM,EACN,IAAI,EACJ,GAAG,EACH,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CACzC,CAAC;IAEF,6CAA6C,CAC5C,WAAW,EACX,SAAS,EACT,GAAG,EACH,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CACzC,CAAC;IAEF,6CAA6C,CAC5C,IAAI,EACJ,CAAC,CAAC,EACF,GAAG,EACH,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CACzC,CAAC;IAEF,6CAA6C,CAC5C,eAAe,EACf,EAAE,OAAO,EAAE,uBAAuB,EAAE,EACpC,GAAG,EACH,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CACzC,CAAC;IAEF,IAAA,oCAAwB,EAAC,iDAAuB,EAAE;QACjD,EAAE,GAAG,EAAE,qBAAqB,EAAE;KAC9B,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"internalErrorMiddleware.spec.js","sourceRoot":"","sources":["../../../../src/middleware/error/internalErrorMiddleware.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;;;;;AAExE,6CAA8D;AAC9D,8DAA+C;AAE/C,uEAAoE;AACpE,2CAA+E;AAE/E,MAAM,6CAA6C,GAAG,IAAA,kCAAsB,EAC3E,iDAAuB,CACvB,CAAC;AAEF,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACxC,4FAA4F;IAC5F,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,6CAA6C,CAC5C,gBAAgB,EAChB;QACC,IAAI,EAAE,2BAA2B;QACjC,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,UAAU;KACjB,EACD,GAAG,EACH,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CACzC,CAAC;IAEF,6CAA6C,CAC5C,aAAa,EACb;QACC,KAAK,EAAE,aAAa;KACpB,EACD,GAAG,EACH,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CACzC,CAAC;IAEF,6CAA6C,CAC5C,cAAc,EACd;QACC,KAAK,EAAE,gCAAgC;QACvC,UAAU,EAAE,GAAG;KACf,EACD,GAAG,EACH,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CACzC,CAAC;IAEF,6CAA6C,CAC5C,OAAO,EACP,IAAI,KAAK,CAAC,kBAAkB,CAAC,EAC7B,GAAG,EACH,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CACzC,CAAC;IAEF,6CAA6C,CAC5C,YAAY,EACZ,IAAI,wBAAU,CAAC,aAAa,CAAC,EAC7B,GAAG,EACH,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CACzC,CAAC;IAEF,6CAA6C,CAC5C,qBAAqB,EACrB,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,EACzC,GAAG,EACH,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CACzC,CAAC;IAEF,6CAA6C,CAC5C,0BAA0B,EAC1B,IAAA,qBAAoB,EAAC,GAAG,EAAE,aAAa,CAAC,EACxC,GAAG,EACH,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CACzC,CAAC;IAEF,6CAA6C,CAC5C,QAAQ,EACR,OAAO,EACP,GAAG,EACH,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CACzC,CAAC;IAEF,6CAA6C,CAC5C,MAAM,EACN,IAAI,EACJ,GAAG,EACH,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CACzC,CAAC;IAEF,6CAA6C,CAC5C,WAAW,EACX,SAAS,EACT,GAAG,EACH,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CACzC,CAAC;IAEF,6CAA6C,CAC5C,IAAI,EACJ,CAAC,CAAC,EACF,GAAG,EACH,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CACzC,CAAC;IAEF,6CAA6C,CAC5C,eAAe,EACf,EAAE,OAAO,EAAE,uBAAuB,EAAE,EACpC,GAAG,EACH,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CACzC,CAAC;IAEF,IAAA,oCAAwB,EAAC,iDAAuB,EAAE;QACjD,EAAE,GAAG,EAAE,qBAAqB,EAAE;KAC9B,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -25,6 +25,10 @@ const testTools_1 = require("./testTools");
|
|
|
25
25
|
const legacyErrorMiddlewareCallsNextWithErr = (0, testTools_1.callsNextWithErr)(legacyErrorMiddleware_1.legacyErrorMiddleware);
|
|
26
26
|
const legacyErrorMiddlewareCatchesErrWithResponse = (0, testTools_1.catchesErrWithResponse)(legacyErrorMiddleware_1.legacyErrorMiddleware);
|
|
27
27
|
describe('legacyErrorMiddleware', () => {
|
|
28
|
+
// Necessary since the consolveOverride is called after the getter for the logger is launced
|
|
29
|
+
beforeAll(() => {
|
|
30
|
+
jest.spyOn(console, 'log').mockImplementation(() => ({}));
|
|
31
|
+
});
|
|
28
32
|
legacyErrorMiddlewareCallsNextWithErr('Error', new Error('This is an error'));
|
|
29
33
|
legacyErrorMiddlewareCallsNextWithErr('BadRequest', new http_errors_1.BadRequest('bad request'));
|
|
30
34
|
legacyErrorMiddlewareCallsNextWithErr('InternalServerError (http-error which extends Error)', new http_errors_1.InternalServerError('internal error'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legacyErrorMiddleware.spec.js","sourceRoot":"","sources":["../../../../src/middleware/error/legacyErrorMiddleware.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;;;;;AAExE,6CAA8D;AAC9D,8DAA+C;AAE/C,mEAAgE;AAChE,2CAIqB;AAErB,MAAM,qCAAqC,GAAG,IAAA,4BAAgB,EAC7D,6CAAqB,CACrB,CAAC;AAEF,MAAM,2CAA2C,GAAG,IAAA,kCAAsB,EACzE,6CAAqB,CACrB,CAAC;AAEF,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACtC,qCAAqC,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAE9E,qCAAqC,CACpC,YAAY,EACZ,IAAI,wBAAU,CAAC,aAAa,CAAC,CAC7B,CAAC;IAEF,qCAAqC,CACpC,sDAAsD,EACtD,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CACzC,CAAC;IAEF,qCAAqC,CAAC,iBAAiB,EAAE;QACxD,oBAAoB,EAAE,MAAM;KAC5B,CAAC,CAAC;IAEH,2CAA2C;IAC1C,sEAAsE;IACtE,6CAA6C;IAC7C,4CAA4C,EAC5C;QACC,IAAI,EAAE,2BAA2B;QACjC,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,UAAU;KACjB,EACD,GAAG,EACH,IAAI,iCAAmB,CAAC,UAAU,CAAC,CACnC,CAAC;IAEF,2CAA2C,CAC1C,aAAa,EACb;QACC,KAAK,EAAE,aAAa;KACpB,EACD,GAAG,EACH,IAAI,iCAAmB,CAAC,aAAa,CAAC,CACtC,CAAC;IAEF,2CAA2C,CAC1C,cAAc,EACd;QACC,KAAK,EAAE,gCAAgC;QACvC,UAAU,EAAE,GAAG;KACf,EACD,GAAG,EACH,IAAA,qBAAoB,EAAC,GAAG,EAAE,gCAAgC,CAAC,CAC3D,CAAC;IAEF,IAAA,oCAAwB,EAAC,6CAAqB,EAAE;QAC/C,KAAK,EAAE,gCAAgC;QACvC,UAAU,EAAE,GAAG;KACf,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"legacyErrorMiddleware.spec.js","sourceRoot":"","sources":["../../../../src/middleware/error/legacyErrorMiddleware.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;;;;;AAExE,6CAA8D;AAC9D,8DAA+C;AAE/C,mEAAgE;AAChE,2CAIqB;AAErB,MAAM,qCAAqC,GAAG,IAAA,4BAAgB,EAC7D,6CAAqB,CACrB,CAAC;AAEF,MAAM,2CAA2C,GAAG,IAAA,kCAAsB,EACzE,6CAAqB,CACrB,CAAC;AAEF,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACtC,4FAA4F;IAC5F,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,qCAAqC,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAE9E,qCAAqC,CACpC,YAAY,EACZ,IAAI,wBAAU,CAAC,aAAa,CAAC,CAC7B,CAAC;IAEF,qCAAqC,CACpC,sDAAsD,EACtD,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CACzC,CAAC;IAEF,qCAAqC,CAAC,iBAAiB,EAAE;QACxD,oBAAoB,EAAE,MAAM;KAC5B,CAAC,CAAC;IAEH,2CAA2C;IAC1C,sEAAsE;IACtE,6CAA6C;IAC7C,4CAA4C,EAC5C;QACC,IAAI,EAAE,2BAA2B;QACjC,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,UAAU;KACjB,EACD,GAAG,EACH,IAAI,iCAAmB,CAAC,UAAU,CAAC,CACnC,CAAC;IAEF,2CAA2C,CAC1C,aAAa,EACb;QACC,KAAK,EAAE,aAAa;KACpB,EACD,GAAG,EACH,IAAI,iCAAmB,CAAC,aAAa,CAAC,CACtC,CAAC;IAEF,2CAA2C,CAC1C,cAAc,EACd;QACC,KAAK,EAAE,gCAAgC;QACvC,UAAU,EAAE,GAAG;KACf,EACD,GAAG,EACH,IAAA,qBAAoB,EAAC,GAAG,EAAE,gCAAgC,CAAC,CAC3D,CAAC;IAEF,IAAA,oCAAwB,EAAC,6CAAqB,EAAE;QAC/C,KAAK,EAAE,gCAAgC;QACvC,UAAU,EAAE,GAAG;KACf,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -21,6 +21,10 @@ const txErrorMiddleware_1 = require("./txErrorMiddleware");
|
|
|
21
21
|
const txErrorMiddlewareCallsNextWithErr = (0, testTools_1.callsNextWithErr)(txErrorMiddleware_1.txErrorMiddleware);
|
|
22
22
|
const txErrorMiddlewareCatchesErrWithResponse = (0, testTools_1.catchesErrWithResponse)(txErrorMiddleware_1.txErrorMiddleware);
|
|
23
23
|
describe('txErrorMiddleware', () => {
|
|
24
|
+
// Necessary since the consolveOverride is called after the getter for the logger is launced
|
|
25
|
+
beforeAll(() => {
|
|
26
|
+
jest.spyOn(console, 'log').mockImplementation(() => ({}));
|
|
27
|
+
});
|
|
24
28
|
txErrorMiddlewareCallsNextWithErr('Error', new Error('This is an error'));
|
|
25
29
|
txErrorMiddlewareCallsNextWithErr('BadRequest', new http_errors_1.BadRequest('bad request'));
|
|
26
30
|
txErrorMiddlewareCallsNextWithErr('InternalServerError (http-error which extends Error)', new http_errors_1.InternalServerError('internal error'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"txErrorMiddleware.spec.js","sourceRoot":"","sources":["../../../../src/middleware/error/txErrorMiddleware.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;;AAExE,6CAA8D;AAE9D,2CAIqB;AACrB,2DAAwD;AAExD,MAAM,iCAAiC,GAAG,IAAA,4BAAgB,EAAC,qCAAiB,CAAC,CAAC;AAE9E,MAAM,uCAAuC,GAC5C,IAAA,kCAAsB,EAAC,qCAAiB,CAAC,CAAC;AAE3C,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAClC,iCAAiC,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAE1E,iCAAiC,CAChC,YAAY,EACZ,IAAI,wBAAU,CAAC,aAAa,CAAC,CAC7B,CAAC;IAEF,iCAAiC,CAChC,sDAAsD,EACtD,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CACzC,CAAC;IAEF,iCAAiC,CAAC,iBAAiB,EAAE;QACpD,GAAG,EAAE,UAAU;KACf,CAAC,CAAC;IAEH,iCAAiC,CAAC,cAAc,EAAE;QACjD,KAAK,EAAE,cAAc;QACrB,UAAU,EAAE,GAAG;KACf,CAAC,CAAC;IAEH,iCAAiC,CAAC,aAAa,EAAE;QAChD,KAAK,EAAE,aAAa;KACpB,CAAC,CAAC;IAEH,uCAAuC,CACtC,4BAA4B,EAC5B;QACC,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,WAAW;KAClB,EACD,GAAG,EACH;QACC,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,WAAW;KAClB,CACD,CAAC;IAEF,uCAAuC,CACtC,+BAA+B,EAC/B;QACC,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,WAAW;KAClB,EACD,GAAG,EACH;QACC,IAAI,EAAE,GAAG;QACT,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,WAAW;KAClB,CACD,CAAC;IAEF,IAAA,oCAAwB,EAAC,qCAAiB,EAAE;QAC3C,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,WAAW;KAClB,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"txErrorMiddleware.spec.js","sourceRoot":"","sources":["../../../../src/middleware/error/txErrorMiddleware.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;;AAExE,6CAA8D;AAE9D,2CAIqB;AACrB,2DAAwD;AAExD,MAAM,iCAAiC,GAAG,IAAA,4BAAgB,EAAC,qCAAiB,CAAC,CAAC;AAE9E,MAAM,uCAAuC,GAC5C,IAAA,kCAAsB,EAAC,qCAAiB,CAAC,CAAC;AAE3C,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAClC,4FAA4F;IAC5F,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,iCAAiC,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAE1E,iCAAiC,CAChC,YAAY,EACZ,IAAI,wBAAU,CAAC,aAAa,CAAC,CAC7B,CAAC;IAEF,iCAAiC,CAChC,sDAAsD,EACtD,IAAI,iCAAmB,CAAC,gBAAgB,CAAC,CACzC,CAAC;IAEF,iCAAiC,CAAC,iBAAiB,EAAE;QACpD,GAAG,EAAE,UAAU;KACf,CAAC,CAAC;IAEH,iCAAiC,CAAC,cAAc,EAAE;QACjD,KAAK,EAAE,cAAc;QACrB,UAAU,EAAE,GAAG;KACf,CAAC,CAAC;IAEH,iCAAiC,CAAC,aAAa,EAAE;QAChD,KAAK,EAAE,aAAa;KACpB,CAAC,CAAC;IAEH,uCAAuC,CACtC,4BAA4B,EAC5B;QACC,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,WAAW;KAClB,EACD,GAAG,EACH;QACC,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,WAAW;KAClB,CACD,CAAC;IAEF,uCAAuC,CACtC,+BAA+B,EAC/B;QACC,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,WAAW;KAClB,EACD,GAAG,EACH;QACC,IAAI,EAAE,GAAG;QACT,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,WAAW;KAClB,CACD,CAAC;IAEF,IAAA,oCAAwB,EAAC,qCAAiB,EAAE;QAC3C,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,WAAW;KAClB,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1,5 +1,47 @@
|
|
|
1
1
|
import { INodeTransactionPool } from '../../types/responses';
|
|
2
2
|
import { AbstractService } from '../AbstractService';
|
|
3
3
|
export declare class NodeTransactionPoolService extends AbstractService {
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Fetch the transaction pool, and provide relevant extrinsic information.
|
|
6
|
+
*
|
|
7
|
+
* @param includeFee Whether or not to include the fee's and priority of a extrinsic
|
|
8
|
+
* in the transaction pool.
|
|
9
|
+
*/
|
|
10
|
+
fetchTransactionPool(includeFee: boolean): Promise<INodeTransactionPool>;
|
|
11
|
+
/**
|
|
12
|
+
* Extract all information related to the extrinsic, and compute it's
|
|
13
|
+
* priority in the transaction pool.
|
|
14
|
+
*
|
|
15
|
+
* @param ext Extrinsic we want to provide all the information for.
|
|
16
|
+
*/
|
|
17
|
+
private extractExtrinsicInfo;
|
|
18
|
+
/**
|
|
19
|
+
* We calculate the priority of an extrinsic in the transaction pool depending
|
|
20
|
+
* on its dispatch class, ie. 'normal', 'operational', 'mandatory'.
|
|
21
|
+
*
|
|
22
|
+
* The following formula can summarize the below logic.
|
|
23
|
+
* tip * (max_block_{weight|length} / bounded_{weight|length})
|
|
24
|
+
*
|
|
25
|
+
* Please reference this link for more information
|
|
26
|
+
* ref: https://github.com/paritytech/substrate/blob/fe5bf49290d166b9552f65e751d46ec592173ebd/frame/transaction-payment/src/lib.rs#L610
|
|
27
|
+
*
|
|
28
|
+
* @param ext
|
|
29
|
+
* @param c
|
|
30
|
+
* @param weight
|
|
31
|
+
*/
|
|
32
|
+
private computeExtPriority;
|
|
33
|
+
/**
|
|
34
|
+
* Explicitly define the type of class an extrinsic is.
|
|
35
|
+
*
|
|
36
|
+
* @param c DispatchClass of an extrinsic
|
|
37
|
+
*/
|
|
38
|
+
private defineDispatchClassType;
|
|
39
|
+
/**
|
|
40
|
+
* Multiply a value (tip) by its maxTxPerBlock multiplier.
|
|
41
|
+
* ref: https://github.com/paritytech/substrate/blob/fe5bf49290d166b9552f65e751d46ec592173ebd/frame/transaction-payment/src/lib.rs#L633
|
|
42
|
+
*
|
|
43
|
+
* @param val Value to be multiplied by the maxTxPerBlock. Usually a tip.
|
|
44
|
+
* @param maxTxPerBlock The minimum value between maxTxPerBlockWeight and maxTxPerBlockLength
|
|
45
|
+
*/
|
|
46
|
+
private maxReward;
|
|
5
47
|
}
|
|
@@ -14,23 +14,146 @@
|
|
|
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
|
+
};
|
|
17
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
21
|
exports.NodeTransactionPoolService = void 0;
|
|
22
|
+
const bn_js_1 = __importDefault(require("bn.js"));
|
|
19
23
|
const AbstractService_1 = require("../AbstractService");
|
|
20
24
|
class NodeTransactionPoolService extends AbstractService_1.AbstractService {
|
|
21
|
-
|
|
25
|
+
/**
|
|
26
|
+
* Fetch the transaction pool, and provide relevant extrinsic information.
|
|
27
|
+
*
|
|
28
|
+
* @param includeFee Whether or not to include the fee's and priority of a extrinsic
|
|
29
|
+
* in the transaction pool.
|
|
30
|
+
*/
|
|
31
|
+
async fetchTransactionPool(includeFee) {
|
|
22
32
|
const { api } = this;
|
|
23
33
|
const extrinsics = await api.rpc.author.pendingExtrinsics();
|
|
24
|
-
|
|
34
|
+
if (includeFee) {
|
|
35
|
+
const pool = await Promise.all(extrinsics.map((ext) => this.extractExtrinsicInfo(ext)));
|
|
25
36
|
return {
|
|
26
|
-
|
|
27
|
-
encodedExtrinsic: ext.toHex(),
|
|
37
|
+
pool,
|
|
28
38
|
};
|
|
29
|
-
}
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
return {
|
|
42
|
+
pool: extrinsics.map((ext) => {
|
|
43
|
+
return {
|
|
44
|
+
hash: ext.hash.toHex(),
|
|
45
|
+
encodedExtrinsic: ext.toHex(),
|
|
46
|
+
};
|
|
47
|
+
}),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Extract all information related to the extrinsic, and compute it's
|
|
53
|
+
* priority in the transaction pool.
|
|
54
|
+
*
|
|
55
|
+
* @param ext Extrinsic we want to provide all the information for.
|
|
56
|
+
*/
|
|
57
|
+
async extractExtrinsicInfo(ext) {
|
|
58
|
+
const { api } = this;
|
|
59
|
+
const { hash, tip } = ext;
|
|
60
|
+
const { class: c, partialFee, weight, } = await api.rpc.payment.queryInfo(ext.toHex());
|
|
61
|
+
const priority = await this.computeExtPriority(ext, c, weight);
|
|
30
62
|
return {
|
|
31
|
-
|
|
63
|
+
hash: hash.toHex(),
|
|
64
|
+
encodedExtrinsic: ext.toHex(),
|
|
65
|
+
tip: tip.toString(),
|
|
66
|
+
priority: priority,
|
|
67
|
+
partialFee: partialFee,
|
|
32
68
|
};
|
|
33
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* We calculate the priority of an extrinsic in the transaction pool depending
|
|
72
|
+
* on its dispatch class, ie. 'normal', 'operational', 'mandatory'.
|
|
73
|
+
*
|
|
74
|
+
* The following formula can summarize the below logic.
|
|
75
|
+
* tip * (max_block_{weight|length} / bounded_{weight|length})
|
|
76
|
+
*
|
|
77
|
+
* Please reference this link for more information
|
|
78
|
+
* ref: https://github.com/paritytech/substrate/blob/fe5bf49290d166b9552f65e751d46ec592173ebd/frame/transaction-payment/src/lib.rs#L610
|
|
79
|
+
*
|
|
80
|
+
* @param ext
|
|
81
|
+
* @param c
|
|
82
|
+
* @param weight
|
|
83
|
+
*/
|
|
84
|
+
async computeExtPriority(ext, dispatchClass, weight) {
|
|
85
|
+
const { api } = this;
|
|
86
|
+
const { tip, encodedLength: len } = ext;
|
|
87
|
+
const BN_ONE = new bn_js_1.default(1);
|
|
88
|
+
const sanitizedClass = this.defineDispatchClassType(dispatchClass);
|
|
89
|
+
const maxBlockWeight = api.consts.system.blockWeights.maxBlock;
|
|
90
|
+
const maxLength = api.consts.system.blockLength.max[sanitizedClass];
|
|
91
|
+
const boundedWeight = bn_js_1.default.min(bn_js_1.default.max(weight.toBn(), BN_ONE), maxBlockWeight);
|
|
92
|
+
const boundedLength = bn_js_1.default.min(bn_js_1.default.max(new bn_js_1.default(len), BN_ONE), maxLength);
|
|
93
|
+
const maxTxPerBlockWeight = maxBlockWeight.div(boundedWeight);
|
|
94
|
+
const maxTxPerBlockLength = maxLength.div(boundedLength);
|
|
95
|
+
const maxTxPerBlock = bn_js_1.default.min(maxTxPerBlockWeight, maxTxPerBlockLength);
|
|
96
|
+
const saturatedTip = tip.toBn().add(BN_ONE);
|
|
97
|
+
const scaledTip = this.maxReward(saturatedTip, maxTxPerBlock);
|
|
98
|
+
let priority;
|
|
99
|
+
switch (sanitizedClass) {
|
|
100
|
+
case 'normal': {
|
|
101
|
+
priority = scaledTip.toString();
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
case 'mandatory': {
|
|
105
|
+
priority = scaledTip.toString();
|
|
106
|
+
break;
|
|
107
|
+
}
|
|
108
|
+
case 'operational': {
|
|
109
|
+
const { inclusionFee } = await api.rpc.payment.queryFeeDetails(ext.toHex());
|
|
110
|
+
const { operationalFeeMultiplier } = api.consts.transactionPayment;
|
|
111
|
+
if (inclusionFee.isNone) {
|
|
112
|
+
// This is an unsigned_extrinsic, and does not have priority
|
|
113
|
+
priority = '0';
|
|
114
|
+
break;
|
|
115
|
+
}
|
|
116
|
+
const { baseFee, lenFee, adjustedWeightFee } = inclusionFee.unwrap();
|
|
117
|
+
const computedInclusionFee = baseFee.add(lenFee).add(adjustedWeightFee);
|
|
118
|
+
const finalFee = computedInclusionFee.add(tip.toBn());
|
|
119
|
+
const virtualTip = finalFee.mul(operationalFeeMultiplier);
|
|
120
|
+
const scaledVirtualTip = this.maxReward(virtualTip, maxTxPerBlock);
|
|
121
|
+
priority = scaledTip.add(scaledVirtualTip).toString();
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
default: {
|
|
125
|
+
priority = '0';
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return priority;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Explicitly define the type of class an extrinsic is.
|
|
133
|
+
*
|
|
134
|
+
* @param c DispatchClass of an extrinsic
|
|
135
|
+
*/
|
|
136
|
+
defineDispatchClassType(c) {
|
|
137
|
+
const cString = c.type.toLowerCase();
|
|
138
|
+
if (cString === 'normal')
|
|
139
|
+
return 'normal';
|
|
140
|
+
if (cString === 'mandatory')
|
|
141
|
+
return 'mandatory';
|
|
142
|
+
if (cString === 'operational')
|
|
143
|
+
return 'operational';
|
|
144
|
+
// This will never be reached, but is here to satisfy the TS compiler.
|
|
145
|
+
return 'normal';
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Multiply a value (tip) by its maxTxPerBlock multiplier.
|
|
149
|
+
* ref: https://github.com/paritytech/substrate/blob/fe5bf49290d166b9552f65e751d46ec592173ebd/frame/transaction-payment/src/lib.rs#L633
|
|
150
|
+
*
|
|
151
|
+
* @param val Value to be multiplied by the maxTxPerBlock. Usually a tip.
|
|
152
|
+
* @param maxTxPerBlock The minimum value between maxTxPerBlockWeight and maxTxPerBlockLength
|
|
153
|
+
*/
|
|
154
|
+
maxReward(val, maxTxPerBlock) {
|
|
155
|
+
return val.mul(maxTxPerBlock);
|
|
156
|
+
}
|
|
34
157
|
}
|
|
35
158
|
exports.NodeTransactionPoolService = NodeTransactionPoolService;
|
|
36
159
|
//# sourceMappingURL=NodeTransactionPoolService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeTransactionPoolService.js","sourceRoot":"","sources":["../../../../src/services/node/NodeTransactionPoolService.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":"NodeTransactionPoolService.js","sourceRoot":"","sources":["../../../../src/services/node/NodeTransactionPoolService.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,24 +21,51 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
21
21
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
22
22
|
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
23
23
|
const sanitizeNumbers_1 = require("../../sanitize/sanitizeNumbers");
|
|
24
|
+
const registries_1 = require("../../test-helpers/registries");
|
|
24
25
|
const mock_1 = require("../test-helpers/mock");
|
|
25
26
|
const transactionPool_json_1 = __importDefault(require("../test-helpers/responses/node/transactionPool.json"));
|
|
27
|
+
const transactionPoolWithTip_json_1 = __importDefault(require("../test-helpers/responses/node/transactionPoolWithTip.json"));
|
|
28
|
+
const transactionPoolWithTipOperational_json_1 = __importDefault(require("../test-helpers/responses/node/transactionPoolWithTipOperational.json"));
|
|
26
29
|
const _1 = require(".");
|
|
27
30
|
const nodeTranstionPoolService = new _1.NodeTransactionPoolService(mock_1.defaultMockApi);
|
|
28
31
|
describe('NodeTransactionPoolService', () => {
|
|
29
32
|
describe('fetchTransactionPool', () => {
|
|
30
33
|
it('works when ApiPromiseWorks (no txs)', async () => {
|
|
31
|
-
expect((0, sanitizeNumbers_1.sanitizeNumbers)(await nodeTranstionPoolService
|
|
32
|
-
|
|
34
|
+
expect((0, sanitizeNumbers_1.sanitizeNumbers)(await nodeTranstionPoolService.fetchTransactionPool(
|
|
35
|
+
// blockHash789629
|
|
36
|
+
false))).toStrictEqual({ pool: [] });
|
|
33
37
|
});
|
|
34
38
|
it('works when ApiPromiseWorks (1 tx)', async () => {
|
|
35
39
|
const ext = mock_1.defaultMockApi.createType('Extrinsic', '0x4d0284d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d015c41b5e704d89787e5208b863fa815a146a19ade0cd95f2378815d72c52b2644c05f0dd6be3bf219b9963ac9ddeec8d379c0cd1d86d8f33f2c1d1a8006efc180050000001a00040500e659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e0f0040767b10c403');
|
|
36
40
|
const pool = mock_1.defaultMockApi.createType('Vec<Extrinsic>', [ext]);
|
|
37
41
|
mock_1.defaultMockApi.rpc.author.pendingExtrinsics = () => Promise.resolve().then(() => pool);
|
|
38
|
-
expect((0, sanitizeNumbers_1.sanitizeNumbers)(await nodeTranstionPoolService
|
|
39
|
-
|
|
42
|
+
expect((0, sanitizeNumbers_1.sanitizeNumbers)(await nodeTranstionPoolService.fetchTransactionPool(
|
|
43
|
+
// blockHash789629
|
|
44
|
+
false))).toStrictEqual(transactionPool_json_1.default);
|
|
40
45
|
mock_1.defaultMockApi.rpc.author.pendingExtrinsics = mock_1.pendingExtrinsics;
|
|
41
46
|
});
|
|
47
|
+
it('works when query param `includeFee` is set to true for normal extrinsics', async () => {
|
|
48
|
+
// This test does not use the same metadata in defaultMockApi. It changes it to v9190,
|
|
49
|
+
// and sets it back to the default value after.
|
|
50
|
+
const normalExt = registries_1.polkadotRegistryV9190.createType('Extrinsic', '0x4d028400d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d0196a6cd1652fc83c449884f67e8f444587b69c5874512f1d746ff6f062a097b2acedfe8d2e07915b4c93cc1c3b48a16ebccc1db8eb810146373ba53c9f42ab48e4500000284d717050300e281b7ec09fb8420ca7ba3fbd627fbe203ff04b2ba0777ae1d8a6942257af0230700e8764817');
|
|
51
|
+
const pool = registries_1.polkadotRegistryV9190.createType('Vec<Extrinsic>', [
|
|
52
|
+
normalExt,
|
|
53
|
+
]);
|
|
54
|
+
mock_1.defaultMockApi.rpc.author.pendingExtrinsics = () => Promise.resolve().then(() => pool);
|
|
55
|
+
expect((0, sanitizeNumbers_1.sanitizeNumbers)(await nodeTranstionPoolService.fetchTransactionPool(true))).toStrictEqual(transactionPoolWithTip_json_1.default);
|
|
56
|
+
mock_1.defaultMockApi.rpc.author.pendingExtrinsics = mock_1.pendingExtrinsics;
|
|
57
|
+
});
|
|
58
|
+
it('works when query param `includeFee` is set to true for operational extrinsics', async () => {
|
|
59
|
+
const operationalExt = registries_1.polkadotRegistryV9190.createType('Extrinsic', '0x350284004adf51a47b72795366d52285e329229c836ea7bbfe139dbe8fa0700c4f86fc5601fc44dcd1994c111671b3577b02e391be8aff10f7ccf766f3189859ea343db041779a67f9357cba0ba051f83d63e45e7a88b5e2ca642181592052acd9f4ccc8821501c107000f03f2af187bbc8a4a2b5a28c2a3c2d85bf7e5b1700cbf1207a8e4c1eb7d8e7e4037350301');
|
|
60
|
+
const pool = registries_1.polkadotRegistryV9190.createType('Vec<Extrinsic>', [
|
|
61
|
+
operationalExt,
|
|
62
|
+
]);
|
|
63
|
+
mock_1.defaultMockApi.rpc.author.pendingExtrinsics = () => Promise.resolve().then(() => pool);
|
|
64
|
+
mock_1.defaultMockApi.rpc.payment.queryInfo = mock_1.queryInfoCouncilVote;
|
|
65
|
+
expect((0, sanitizeNumbers_1.sanitizeNumbers)(await nodeTranstionPoolService.fetchTransactionPool(true))).toStrictEqual(transactionPoolWithTipOperational_json_1.default);
|
|
66
|
+
mock_1.defaultMockApi.rpc.author.pendingExtrinsics = mock_1.pendingExtrinsics;
|
|
67
|
+
mock_1.defaultMockApi.rpc.payment.queryInfo = mock_1.queryInfoBalancesTransfer;
|
|
68
|
+
});
|
|
42
69
|
});
|
|
43
70
|
});
|
|
44
71
|
//# sourceMappingURL=NodeTransactionPoolService.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeTransactionPoolService.spec.js","sourceRoot":"","sources":["../../../../src/services/node/NodeTransactionPoolService.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;;;;;AAExE,uDAAuD;AACvD,+DAA+D;AAC/D,oEAAiE;AACjE,+
|
|
1
|
+
{"version":3,"file":"NodeTransactionPoolService.spec.js","sourceRoot":"","sources":["../../../../src/services/node/NodeTransactionPoolService.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,26 @@
|
|
|
1
|
+
import { Balance } from '@polkadot/types/interfaces';
|
|
1
2
|
interface IPoolExtrinsic {
|
|
3
|
+
/**
|
|
4
|
+
* H256 hash of the extrinsic
|
|
5
|
+
*/
|
|
2
6
|
hash: string;
|
|
7
|
+
/**
|
|
8
|
+
* SCALE encoded extrinsic
|
|
9
|
+
*/
|
|
3
10
|
encodedExtrinsic: string;
|
|
11
|
+
/**
|
|
12
|
+
* The tip within an extrinsic. Available when the `tip` query parameter
|
|
13
|
+
* for `/node/transaction-pool` is set to true.
|
|
14
|
+
*/
|
|
15
|
+
tip?: string;
|
|
16
|
+
/**
|
|
17
|
+
* PartialFee for a transaction
|
|
18
|
+
*/
|
|
19
|
+
partialFee?: Balance;
|
|
20
|
+
/**
|
|
21
|
+
* Priority of the transaction. Calculated by tip * (max_block_{weight|length} / bounded_{weight|length})
|
|
22
|
+
*/
|
|
23
|
+
priority?: string;
|
|
4
24
|
}
|
|
5
25
|
export interface INodeTransactionPool {
|
|
6
26
|
pool: IPoolExtrinsic[];
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IEventData } from '@polkadot/types/types';
|
|
2
|
+
import { Codec } from '@polkadot/types-codec/types';
|
|
2
3
|
import { IFrameMethod } from '.';
|
|
3
4
|
export interface ISanitizedEvent {
|
|
4
5
|
method: string | IFrameMethod;
|
|
5
|
-
data:
|
|
6
|
+
data: Codec[] & IEventData;
|
|
7
|
+
docs?: string;
|
|
6
8
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A PromiseQueue, enforcing that no more than `maxTasks` number of tasks
|
|
3
|
+
* are running at a given time.
|
|
4
|
+
*/
|
|
5
|
+
export declare class PromiseQueue<T> {
|
|
6
|
+
#private;
|
|
7
|
+
constructor(maxTasks: number);
|
|
8
|
+
private tryRunNextTask;
|
|
9
|
+
private submitTaskToRun;
|
|
10
|
+
/**
|
|
11
|
+
* Push a new task onto the queue. It will run when there are fewer
|
|
12
|
+
* than `maxTasks` running.
|
|
13
|
+
*/
|
|
14
|
+
run(task: () => Promise<T>): Promise<T>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var _PromiseQueue_maxTasks, _PromiseQueue_runningTasks, _PromiseQueue_tasks, _LinkedList_first, _LinkedList_last;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.PromiseQueue = void 0;
|
|
16
|
+
/**
|
|
17
|
+
* A PromiseQueue, enforcing that no more than `maxTasks` number of tasks
|
|
18
|
+
* are running at a given time.
|
|
19
|
+
*/
|
|
20
|
+
class PromiseQueue {
|
|
21
|
+
constructor(maxTasks) {
|
|
22
|
+
// How many tasks are allowed to run concurrently?
|
|
23
|
+
_PromiseQueue_maxTasks.set(this, void 0);
|
|
24
|
+
// How many tasks are currently running concurrently?
|
|
25
|
+
_PromiseQueue_runningTasks.set(this, 0);
|
|
26
|
+
// The queued tasks waiting to run
|
|
27
|
+
_PromiseQueue_tasks.set(this, void 0);
|
|
28
|
+
__classPrivateFieldSet(this, _PromiseQueue_maxTasks, maxTasks, "f");
|
|
29
|
+
__classPrivateFieldSet(this, _PromiseQueue_tasks, new LinkedList(), "f");
|
|
30
|
+
}
|
|
31
|
+
// Try to run the next task in the queue.
|
|
32
|
+
tryRunNextTask() {
|
|
33
|
+
if (__classPrivateFieldGet(this, _PromiseQueue_runningTasks, "f") >= __classPrivateFieldGet(this, _PromiseQueue_maxTasks, "f")) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const nextTask = __classPrivateFieldGet(this, _PromiseQueue_tasks, "f").popFront();
|
|
37
|
+
if (nextTask) {
|
|
38
|
+
nextTask();
|
|
39
|
+
__classPrivateFieldSet(this, _PromiseQueue_runningTasks, __classPrivateFieldGet(this, _PromiseQueue_runningTasks, "f") + 1, "f");
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// Take a task and package it up to run, triggering
|
|
43
|
+
// the next task when it completes (or errors), and returning the
|
|
44
|
+
// result in the returned promise.
|
|
45
|
+
submitTaskToRun(task) {
|
|
46
|
+
return new Promise((resolve, reject) => {
|
|
47
|
+
const onFinish = () => {
|
|
48
|
+
__classPrivateFieldSet(this, _PromiseQueue_runningTasks, __classPrivateFieldGet(this, _PromiseQueue_runningTasks, "f") - 1, "f");
|
|
49
|
+
this.tryRunNextTask();
|
|
50
|
+
};
|
|
51
|
+
const taskToRun = () => {
|
|
52
|
+
task()
|
|
53
|
+
.then((item) => {
|
|
54
|
+
resolve(item);
|
|
55
|
+
onFinish();
|
|
56
|
+
})
|
|
57
|
+
.catch((err) => {
|
|
58
|
+
reject(err);
|
|
59
|
+
onFinish();
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
__classPrivateFieldGet(this, _PromiseQueue_tasks, "f").pushBack(taskToRun);
|
|
63
|
+
this.tryRunNextTask();
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Push a new task onto the queue. It will run when there are fewer
|
|
68
|
+
* than `maxTasks` running.
|
|
69
|
+
*/
|
|
70
|
+
run(task) {
|
|
71
|
+
return this.submitTaskToRun(task);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.PromiseQueue = PromiseQueue;
|
|
75
|
+
_PromiseQueue_maxTasks = new WeakMap(), _PromiseQueue_runningTasks = new WeakMap(), _PromiseQueue_tasks = new WeakMap();
|
|
76
|
+
/**
|
|
77
|
+
* A quick LinkedList queue implementation; we can add items to the back
|
|
78
|
+
* or remove them from the front.
|
|
79
|
+
*/
|
|
80
|
+
class LinkedList {
|
|
81
|
+
constructor() {
|
|
82
|
+
_LinkedList_first.set(this, null);
|
|
83
|
+
_LinkedList_last.set(this, null);
|
|
84
|
+
}
|
|
85
|
+
init(item) {
|
|
86
|
+
__classPrivateFieldSet(this, _LinkedList_first, __classPrivateFieldSet(this, _LinkedList_last, { item, next: null }, "f"), "f");
|
|
87
|
+
}
|
|
88
|
+
pushBack(item) {
|
|
89
|
+
if (!__classPrivateFieldGet(this, _LinkedList_first, "f"))
|
|
90
|
+
return this.init(item);
|
|
91
|
+
const entry = { item, next: null };
|
|
92
|
+
/* eslint-disable-next-line @typescript-eslint/no-non-null-assertion */
|
|
93
|
+
__classPrivateFieldGet(this, _LinkedList_last, "f").next = entry;
|
|
94
|
+
__classPrivateFieldSet(this, _LinkedList_last, entry, "f");
|
|
95
|
+
}
|
|
96
|
+
popFront() {
|
|
97
|
+
if (!__classPrivateFieldGet(this, _LinkedList_first, "f"))
|
|
98
|
+
return null;
|
|
99
|
+
const entry = __classPrivateFieldGet(this, _LinkedList_first, "f");
|
|
100
|
+
__classPrivateFieldSet(this, _LinkedList_first, __classPrivateFieldGet(this, _LinkedList_first, "f").next, "f");
|
|
101
|
+
return entry.item;
|
|
102
|
+
}
|
|
103
|
+
clear() {
|
|
104
|
+
__classPrivateFieldSet(this, _LinkedList_first, __classPrivateFieldSet(this, _LinkedList_last, null, "f"), "f");
|
|
105
|
+
}
|
|
106
|
+
empty() {
|
|
107
|
+
return __classPrivateFieldGet(this, _LinkedList_first, "f") === null;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
_LinkedList_first = new WeakMap(), _LinkedList_last = new WeakMap();
|
|
111
|
+
//# sourceMappingURL=PromiseQueue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PromiseQueue.js","sourceRoot":"","sources":["../../../src/util/PromiseQueue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Verify all integers including zeroes.
|
|
3
|
+
* @param num
|
|
4
|
+
*/
|
|
5
|
+
export declare const verifyUInt: (num: Number) => boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Verify all integers except for zero. Will return false when zero is inputted.
|
|
8
|
+
* @param num
|
|
9
|
+
*/
|
|
10
|
+
export declare const verifyNonZeroUInt: (num: Number) => boolean;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.verifyNonZeroUInt = exports.verifyUInt = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Verify all integers including zeroes.
|
|
6
|
+
* @param num
|
|
7
|
+
*/
|
|
8
|
+
const verifyUInt = (num) => {
|
|
9
|
+
return Number.isInteger(num) && num >= 0;
|
|
10
|
+
};
|
|
11
|
+
exports.verifyUInt = verifyUInt;
|
|
12
|
+
/**
|
|
13
|
+
* Verify all integers except for zero. Will return false when zero is inputted.
|
|
14
|
+
* @param num
|
|
15
|
+
*/
|
|
16
|
+
const verifyNonZeroUInt = (num) => {
|
|
17
|
+
return Number.isInteger(num) && num > 0;
|
|
18
|
+
};
|
|
19
|
+
exports.verifyNonZeroUInt = verifyNonZeroUInt;
|
|
20
|
+
//# sourceMappingURL=verifyInt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verifyInt.js","sourceRoot":"","sources":["../../../../src/util/integers/verifyInt.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACI,MAAM,UAAU,GAAG,CAAC,GAAW,EAAW,EAAE;IAClD,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;AAC1C,CAAC,CAAC;AAFW,QAAA,UAAU,cAErB;AAEF;;;GAGG;AACI,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAW,EAAE;IACzD,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;AACzC,CAAC,CAAC;AAFW,QAAA,iBAAiB,qBAE5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const verifyInt_1 = require("./verifyInt");
|
|
4
|
+
describe('Verify integers', () => {
|
|
5
|
+
describe('verifyUInt', () => {
|
|
6
|
+
it('Should correctly handle unsigned integers correctly', () => {
|
|
7
|
+
expect((0, verifyInt_1.verifyUInt)(0)).toBe(true);
|
|
8
|
+
expect((0, verifyInt_1.verifyUInt)(1)).toBe(true);
|
|
9
|
+
expect((0, verifyInt_1.verifyUInt)(-1)).toBe(false);
|
|
10
|
+
});
|
|
11
|
+
});
|
|
12
|
+
describe('verifyNonZeroUInt', () => {
|
|
13
|
+
it('Should correctly handle unsigned integers correctly', () => {
|
|
14
|
+
expect((0, verifyInt_1.verifyNonZeroUInt)(1)).toBe(true);
|
|
15
|
+
expect((0, verifyInt_1.verifyNonZeroUInt)(0)).toBe(false);
|
|
16
|
+
expect((0, verifyInt_1.verifyNonZeroUInt)(-1)).toBe(false);
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=verifyInt.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verifyInt.spec.js","sourceRoot":"","sources":["../../../../src/util/integers/verifyInt.spec.ts"],"names":[],"mappings":";;AAAA,2CAA4D;AAE5D,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAChC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC9D,MAAM,CAAC,IAAA,sBAAU,EAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,CAAC,IAAA,sBAAU,EAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,CAAC,IAAA,sBAAU,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC9D,MAAM,CAAC,IAAA,6BAAiB,EAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,CAAC,IAAA,6BAAiB,EAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzC,MAAM,CAAC,IAAA,6BAAiB,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "12.0
|
|
2
|
+
"version": "12.2.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",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"start:log-rpc": "yarn run build && NODE_ENV=test yarn run main ",
|
|
36
36
|
"dev": "tsc-watch --onSuccess \"yarn run main\"",
|
|
37
37
|
"test": "NODE_ENV=test substrate-exec-jest --detectOpenHandles",
|
|
38
|
-
"test:watch": "substrate-exec-jest --watch",
|
|
38
|
+
"test:watch": "NODE_ENV=test substrate-exec-jest --watch",
|
|
39
39
|
"test:cov": "NODE_ENV=test substrate-exec-jest --detectOpenHandles --coverage",
|
|
40
40
|
"lint:e2e-tests": "cd e2e-tests && substrate-dev-run-lint",
|
|
41
41
|
"build:e2e-tests": "substrate-exec-tsc --project e2e-tests/tsconfig.json",
|
|
@@ -54,8 +54,8 @@
|
|
|
54
54
|
"update-pjs-deps": "substrate-update-pjs-deps && yarn"
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
|
-
"@polkadot/api": "8.
|
|
58
|
-
"@polkadot/util-crypto": "9.
|
|
57
|
+
"@polkadot/api": "^8.9.1",
|
|
58
|
+
"@polkadot/util-crypto": "^9.5.1",
|
|
59
59
|
"@substrate/calc": "^0.2.8",
|
|
60
60
|
"argparse": "^2.0.1",
|
|
61
61
|
"confmgr": "1.0.7",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"winston": "^3.3.3"
|
|
68
68
|
},
|
|
69
69
|
"devDependencies": {
|
|
70
|
-
"@substrate/dev": "^0.6.
|
|
70
|
+
"@substrate/dev": "^0.6.2",
|
|
71
71
|
"@types/argparse": "2.0.10",
|
|
72
72
|
"@types/express": "4.17.13",
|
|
73
73
|
"@types/express-serve-static-core": "4.17.25",
|
|
@@ -89,5 +89,5 @@
|
|
|
89
89
|
"polkadot",
|
|
90
90
|
"kusama"
|
|
91
91
|
],
|
|
92
|
-
"packageManager": "yarn@3.2.
|
|
92
|
+
"packageManager": "yarn@3.2.1"
|
|
93
93
|
}
|