@substrate/api-sidecar 19.0.2 → 19.1.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 +25 -6
- package/build/package.json +9 -9
- package/build/src/chains-config/defaultControllers.js +2 -1
- package/build/src/chains-config/defaultControllers.js.map +1 -1
- package/build/src/chains-config/kusamaControllers.js +2 -1
- package/build/src/chains-config/kusamaControllers.js.map +1 -1
- package/build/src/chains-config/polkadotControllers.js +2 -1
- package/build/src/chains-config/polkadotControllers.js.map +1 -1
- package/build/src/controllers/index.d.ts +2 -1
- package/build/src/controllers/index.js +2 -1
- package/build/src/controllers/index.js.map +1 -1
- package/build/src/controllers/pallets/PalletsOnGoingReferendaController.d.ts +14 -0
- package/build/src/controllers/pallets/PalletsOnGoingReferendaController.js +43 -0
- package/build/src/controllers/pallets/PalletsOnGoingReferendaController.js.map +1 -0
- package/build/src/controllers/pallets/index.d.ts +1 -0
- package/build/src/controllers/pallets/index.js +4 -2
- package/build/src/controllers/pallets/index.js.map +1 -1
- package/build/src/main.js +13 -10
- package/build/src/main.js.map +1 -1
- package/build/src/middleware/error/httpErrorMiddleware.js +0 -6
- package/build/src/middleware/error/httpErrorMiddleware.js.map +1 -1
- package/build/src/parseArgs.js +4 -0
- package/build/src/parseArgs.js.map +1 -1
- package/build/src/services/pallets/PalletsOnGoingReferendaService.d.ts +12 -0
- package/build/src/services/pallets/PalletsOnGoingReferendaService.js +53 -0
- package/build/src/services/pallets/PalletsOnGoingReferendaService.js.map +1 -0
- package/build/src/services/pallets/PalletsOnGoingReferendaService.spec.d.ts +1 -0
- package/build/src/services/pallets/PalletsOnGoingReferendaService.spec.js +77 -0
- package/build/src/services/pallets/PalletsOnGoingReferendaService.spec.js.map +1 -0
- package/build/src/services/pallets/index.d.ts +1 -0
- package/build/src/services/pallets/index.js +2 -1
- package/build/src/services/pallets/index.js.map +1 -1
- package/build/src/types/responses/PalletOnGoingReferenda.d.ts +14 -0
- package/build/src/types/responses/PalletOnGoingReferenda.js +18 -0
- package/build/src/types/responses/PalletOnGoingReferenda.js.map +1 -0
- package/build/src/types/responses/index.d.ts +1 -0
- package/build/src/types/responses/index.js +2 -1
- package/build/src/types/responses/index.js.map +1 -1
- package/build/src/util/metrics.d.ts +21 -6
- package/build/src/util/metrics.js +261 -16
- package/build/src/util/metrics.js.map +1 -1
- package/package.json +9 -9
package/README.md
CHANGED
|
@@ -21,11 +21,6 @@
|
|
|
21
21
|
|
|
22
22
|
<br /><br />
|
|
23
23
|
|
|
24
|
-
## Note
|
|
25
|
-
|
|
26
|
-
v1.0.0 was released on 2020-10-23. This major release introduced several renamed endpoints as breaking changes. It is important that users complete the transition to the new endpoints ASAP so they are ready for any subsequent emergency updates. Please visit the [MIGRATION_GUIDE](./guides/MIGRATION_GUIDE.md) to
|
|
27
|
-
learn more.
|
|
28
|
-
|
|
29
24
|
## Prerequisites
|
|
30
25
|
|
|
31
26
|
### <= v15.0.0
|
|
@@ -256,12 +251,33 @@ You can also define a custom port by running :
|
|
|
256
251
|
yarn start --prometheus --prometheus-port=<YOUR_CUSTOM_PORT>
|
|
257
252
|
```
|
|
258
253
|
|
|
254
|
+
You can also expand the metrics tracking capabilities to include query params by running:
|
|
255
|
+
|
|
256
|
+
```bash
|
|
257
|
+
yarn start --prometheus --prometheus-queryparams
|
|
258
|
+
```
|
|
259
|
+
|
|
259
260
|
The metrics endpoint can then be accessed :
|
|
260
261
|
- on the default port : `http://127.0.0.1:9100/metrics` or
|
|
261
262
|
- on your custom port if you defined one : `http://127.0.0.1:<YOUR_CUSTOM_PORT>/metrics`
|
|
262
263
|
|
|
263
|
-
|
|
264
|
+
A JSON format response is available at `http://127.0.0.1:9100/metrics.json`.
|
|
265
|
+
|
|
266
|
+
That way you will have access to the default prometheus node instance metrics and the following metrics will be emitted for each route:
|
|
267
|
+
|
|
268
|
+
- `sas_request_errors_total`: type counter and tracks http errors occuring in sidecar
|
|
269
|
+
- `sas_request_success_total`: type counter and tracks successfull http requests
|
|
270
|
+
- `sas_requests_total`: type counter and tracks all http requests
|
|
271
|
+
- `sas_request_duration_seconds`: type histogram and tracks the latency of the requests
|
|
272
|
+
- `sas_response_size_bytes_seconds`: type histogram and tracks the response size of the requests
|
|
273
|
+
- `sas_response_size_latency_ratio_seconds`: type histogram and tracks the response bytes per second of the requests
|
|
264
274
|
|
|
275
|
+
The blocks controller also includes the following route-specific metrics:
|
|
276
|
+
|
|
277
|
+
- `sas_extrinsics_in_request_count`: type histogram and tracks the number of extrinsics returned in the request when a range of blocks is queried
|
|
278
|
+
- `sas_extrinsics_per_second_count`: type histogram and tracks the returned extrinics per second
|
|
279
|
+
- `sas_extrinsics_per_block_count`: type histogram and tracks the returned extrinsics per block
|
|
280
|
+
- `sas_seconds_per_block_count`: type histogram and tracks the request time per block
|
|
265
281
|
|
|
266
282
|
## Debugging fee and staking payout calculations
|
|
267
283
|
|
|
@@ -352,6 +368,9 @@ All the commits in this repo follow the [Conventional Commits spec](https://www.
|
|
|
352
368
|
|
|
353
369
|
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.
|
|
354
370
|
|
|
371
|
+
### Maintenance Guide
|
|
372
|
+
A more complete list of the maintainer's tasks can be found in the [MAINTENANCE.md](./guides/MAINTENANCE.md) guide.
|
|
373
|
+
|
|
355
374
|
## Hardware requirements
|
|
356
375
|
|
|
357
376
|
### Disk Space
|
package/build/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "19.0
|
|
2
|
+
"version": "19.1.0",
|
|
3
3
|
"name": "@substrate/api-sidecar",
|
|
4
4
|
"description": "REST service that makes it easy to interact with blockchain nodes built using Substrate's FRAME framework.",
|
|
5
5
|
"homepage": "https://github.com/paritytech/substrate-api-sidecar#readme",
|
|
@@ -50,25 +50,25 @@
|
|
|
50
50
|
"test:test-release": "yarn build:scripts && node scripts/build/runYarnPack.js"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@polkadot/api": "^12.
|
|
54
|
-
"@polkadot/api-contract": "^12.
|
|
55
|
-
"@polkadot/util-crypto": "^
|
|
53
|
+
"@polkadot/api": "^12.3.1",
|
|
54
|
+
"@polkadot/api-contract": "^12.3.1",
|
|
55
|
+
"@polkadot/util-crypto": "^13.0.2",
|
|
56
56
|
"@substrate/calc": "^0.3.1",
|
|
57
57
|
"argparse": "^2.0.1",
|
|
58
|
-
"confmgr": "^1.0
|
|
58
|
+
"confmgr": "^1.1.0",
|
|
59
59
|
"express": "^4.19.2",
|
|
60
60
|
"express-winston": "^4.2.0",
|
|
61
61
|
"http-errors": "^2.0.0",
|
|
62
|
-
"lru-cache": "^10.
|
|
63
|
-
"prom-client": "^15.1.
|
|
62
|
+
"lru-cache": "^10.4.3",
|
|
63
|
+
"prom-client": "^15.1.3",
|
|
64
64
|
"rxjs": "^7.8.1",
|
|
65
|
-
"winston": "^3.
|
|
65
|
+
"winston": "^3.14.1"
|
|
66
66
|
},
|
|
67
67
|
"devDependencies": {
|
|
68
68
|
"@substrate/dev": "^0.7.1",
|
|
69
69
|
"@types/argparse": "2.0.16",
|
|
70
70
|
"@types/express": "^4.17.21",
|
|
71
|
-
"@types/express-serve-static-core": "^4.19.
|
|
71
|
+
"@types/express-serve-static-core": "^4.19.5",
|
|
72
72
|
"@types/http-errors": "2.0.4",
|
|
73
73
|
"@types/lru-cache": "^7.10.10",
|
|
74
74
|
"@types/morgan": "1.9.9",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright 2017-
|
|
2
|
+
// Copyright 2017-2024 Parity Technologies (UK) Ltd.
|
|
3
3
|
// This file is part of Substrate API Sidecar.
|
|
4
4
|
//
|
|
5
5
|
// Substrate API Sidecar is free software: you can redistribute it and/or modify
|
|
@@ -43,6 +43,7 @@ exports.defaultControllers = {
|
|
|
43
43
|
'PalletsErrors',
|
|
44
44
|
'PalletsEvents',
|
|
45
45
|
'PalletsForeignAssets',
|
|
46
|
+
'PalletsOnGoingReferenda',
|
|
46
47
|
'PalletsStakingProgress',
|
|
47
48
|
'PalletsStorage',
|
|
48
49
|
'Paras',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultControllers.js","sourceRoot":"","sources":["../../../src/chains-config/defaultControllers.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,mCAA6D;AAE7D;;;GAGG;AACU,QAAA,kBAAkB,GAAqB;IACnD,WAAW,EAAE;QACZ,gBAAgB;QAChB,qBAAqB;QACrB,mBAAmB;QACnB,qBAAqB;QACrB,wBAAwB;QACxB,kBAAkB;QAClB,qBAAqB;QACrB,QAAQ;QACR,kBAAkB;QAClB,qBAAqB;QACrB,cAAc;QACd,aAAa;QACb,qBAAqB;QACrB,aAAa;QACb,eAAe;QACf,sBAAsB;QACtB,eAAe;QACf,eAAe;QACf,eAAe;QACf,sBAAsB;QACtB,wBAAwB;QACxB,gBAAgB;QAChB,OAAO;QACP,aAAa;QACb,iBAAiB;QACjB,aAAa;QACb,mBAAmB;QACnB,wBAAwB;QACxB,qBAAqB;QACrB,mBAAmB;KACnB;IACD,OAAO,EAAE;QACR,SAAS,EAAE,IAAI;QACf,iBAAiB,EAAE,IAAI;QACvB,UAAU,EAAE,IAAA,oBAAY,GAAE;QAC1B,cAAc,EAAE,IAAI,4BAAoB,CAAC,IAAI,EAAE,IAAI,CAAC;KACpD;CACD,CAAC"}
|
|
1
|
+
{"version":3,"file":"defaultControllers.js","sourceRoot":"","sources":["../../../src/chains-config/defaultControllers.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,mCAA6D;AAE7D;;;GAGG;AACU,QAAA,kBAAkB,GAAqB;IACnD,WAAW,EAAE;QACZ,gBAAgB;QAChB,qBAAqB;QACrB,mBAAmB;QACnB,qBAAqB;QACrB,wBAAwB;QACxB,kBAAkB;QAClB,qBAAqB;QACrB,QAAQ;QACR,kBAAkB;QAClB,qBAAqB;QACrB,cAAc;QACd,aAAa;QACb,qBAAqB;QACrB,aAAa;QACb,eAAe;QACf,sBAAsB;QACtB,eAAe;QACf,eAAe;QACf,eAAe;QACf,sBAAsB;QACtB,yBAAyB;QACzB,wBAAwB;QACxB,gBAAgB;QAChB,OAAO;QACP,aAAa;QACb,iBAAiB;QACjB,aAAa;QACb,mBAAmB;QACnB,wBAAwB;QACxB,qBAAqB;QACrB,mBAAmB;KACnB;IACD,OAAO,EAAE;QACR,SAAS,EAAE,IAAI;QACf,iBAAiB,EAAE,IAAI;QACvB,UAAU,EAAE,IAAA,oBAAY,GAAE;QAC1B,cAAc,EAAE,IAAI,4BAAoB,CAAC,IAAI,EAAE,IAAI,CAAC;KACpD;CACD,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright 2017-
|
|
2
|
+
// Copyright 2017-2024 Parity Technologies (UK) Ltd.
|
|
3
3
|
// This file is part of Substrate API Sidecar.
|
|
4
4
|
//
|
|
5
5
|
// Substrate API Sidecar is free software: you can redistribute it and/or modify
|
|
@@ -41,6 +41,7 @@ exports.kusamaControllers = {
|
|
|
41
41
|
'PalletsErrors',
|
|
42
42
|
'PalletsEvents',
|
|
43
43
|
'PalletsNominationPools',
|
|
44
|
+
'PalletsOnGoingReferenda',
|
|
44
45
|
'PalletsStakingProgress',
|
|
45
46
|
'PalletsStakingValidators',
|
|
46
47
|
'PalletsStorage',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kusamaControllers.js","sourceRoot":"","sources":["../../../src/chains-config/kusamaControllers.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,mCAA6D;AAE7D;;GAEG;AACU,QAAA,iBAAiB,GAAqB;IAClD,WAAW,EAAE;QACZ,qBAAqB;QACrB,iBAAiB;QACjB,mBAAmB;QACnB,qBAAqB;QACrB,wBAAwB;QACxB,kBAAkB;QAClB,qBAAqB;QACrB,QAAQ;QACR,kBAAkB;QAClB,aAAa;QACb,qBAAqB;QACrB,aAAa;QACb,qBAAqB;QACrB,aAAa;QACb,sBAAsB;QACtB,eAAe;QACf,eAAe;QACf,eAAe;QACf,wBAAwB;QACxB,wBAAwB;QACxB,0BAA0B;QAC1B,gBAAgB;QAChB,OAAO;QACP,aAAa;QACb,iBAAiB;QACjB,aAAa;QACb,mBAAmB;QACnB,wBAAwB;QACxB,qBAAqB;QACrB,mBAAmB;KACnB;IACD,OAAO,EAAE;QACR,SAAS,EAAE,IAAI;QACf,iBAAiB,EAAE,IAAI;QACvB,UAAU,EAAE,IAAA,oBAAY,GAAE;QAC1B,cAAc,EAAE,IAAI,4BAAoB,CAAC,IAAI,EAAE,IAAI,CAAC;KACpD;CACD,CAAC"}
|
|
1
|
+
{"version":3,"file":"kusamaControllers.js","sourceRoot":"","sources":["../../../src/chains-config/kusamaControllers.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,mCAA6D;AAE7D;;GAEG;AACU,QAAA,iBAAiB,GAAqB;IAClD,WAAW,EAAE;QACZ,qBAAqB;QACrB,iBAAiB;QACjB,mBAAmB;QACnB,qBAAqB;QACrB,wBAAwB;QACxB,kBAAkB;QAClB,qBAAqB;QACrB,QAAQ;QACR,kBAAkB;QAClB,aAAa;QACb,qBAAqB;QACrB,aAAa;QACb,qBAAqB;QACrB,aAAa;QACb,sBAAsB;QACtB,eAAe;QACf,eAAe;QACf,eAAe;QACf,wBAAwB;QACxB,yBAAyB;QACzB,wBAAwB;QACxB,0BAA0B;QAC1B,gBAAgB;QAChB,OAAO;QACP,aAAa;QACb,iBAAiB;QACjB,aAAa;QACb,mBAAmB;QACnB,wBAAwB;QACxB,qBAAqB;QACrB,mBAAmB;KACnB;IACD,OAAO,EAAE;QACR,SAAS,EAAE,IAAI;QACf,iBAAiB,EAAE,IAAI;QACvB,UAAU,EAAE,IAAA,oBAAY,GAAE;QAC1B,cAAc,EAAE,IAAI,4BAAoB,CAAC,IAAI,EAAE,IAAI,CAAC;KACpD;CACD,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright 2017-
|
|
2
|
+
// Copyright 2017-2024 Parity Technologies (UK) Ltd.
|
|
3
3
|
// This file is part of Substrate API Sidecar.
|
|
4
4
|
//
|
|
5
5
|
// Substrate API Sidecar is free software: you can redistribute it and/or modify
|
|
@@ -41,6 +41,7 @@ exports.polkadotControllers = {
|
|
|
41
41
|
'PalletsErrors',
|
|
42
42
|
'PalletsEvents',
|
|
43
43
|
'PalletsNominationPools',
|
|
44
|
+
'PalletsOnGoingReferenda',
|
|
44
45
|
'PalletsStakingProgress',
|
|
45
46
|
'PalletsStakingValidators',
|
|
46
47
|
'PalletsStorage',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polkadotControllers.js","sourceRoot":"","sources":["../../../src/chains-config/polkadotControllers.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,mCAA6D;AAE7D;;GAEG;AACU,QAAA,mBAAmB,GAAqB;IACpD,WAAW,EAAE;QACZ,qBAAqB;QACrB,iBAAiB;QACjB,mBAAmB;QACnB,qBAAqB;QACrB,wBAAwB;QACxB,kBAAkB;QAClB,qBAAqB;QACrB,QAAQ;QACR,kBAAkB;QAClB,aAAa;QACb,qBAAqB;QACrB,aAAa;QACb,qBAAqB;QACrB,aAAa;QACb,sBAAsB;QACtB,eAAe;QACf,eAAe;QACf,eAAe;QACf,wBAAwB;QACxB,wBAAwB;QACxB,0BAA0B;QAC1B,gBAAgB;QAChB,OAAO;QACP,aAAa;QACb,iBAAiB;QACjB,aAAa;QACb,mBAAmB;QACnB,wBAAwB;QACxB,qBAAqB;QACrB,mBAAmB;KACnB;IACD,OAAO,EAAE;QACR,SAAS,EAAE,IAAI;QACf,iBAAiB,EAAE,CAAC;QACpB,UAAU,EAAE,IAAA,oBAAY,GAAE;QAC1B,cAAc,EAAE,IAAI,4BAAoB,CAAC,EAAE,EAAE,EAAE,CAAC;KAChD;CACD,CAAC"}
|
|
1
|
+
{"version":3,"file":"polkadotControllers.js","sourceRoot":"","sources":["../../../src/chains-config/polkadotControllers.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,mCAA6D;AAE7D;;GAEG;AACU,QAAA,mBAAmB,GAAqB;IACpD,WAAW,EAAE;QACZ,qBAAqB;QACrB,iBAAiB;QACjB,mBAAmB;QACnB,qBAAqB;QACrB,wBAAwB;QACxB,kBAAkB;QAClB,qBAAqB;QACrB,QAAQ;QACR,kBAAkB;QAClB,aAAa;QACb,qBAAqB;QACrB,aAAa;QACb,qBAAqB;QACrB,aAAa;QACb,sBAAsB;QACtB,eAAe;QACf,eAAe;QACf,eAAe;QACf,wBAAwB;QACxB,yBAAyB;QACzB,wBAAwB;QACxB,0BAA0B;QAC1B,gBAAgB;QAChB,OAAO;QACP,aAAa;QACb,iBAAiB;QACjB,aAAa;QACb,mBAAmB;QACnB,wBAAwB;QACxB,qBAAqB;QACrB,mBAAmB;KACnB;IACD,OAAO,EAAE;QACR,SAAS,EAAE,IAAI;QACf,iBAAiB,EAAE,CAAC;QACpB,UAAU,EAAE,IAAA,oBAAY,GAAE;QAC1B,cAAc,EAAE,IAAI,4BAAoB,CAAC,EAAE,EAAE,EAAE,CAAC;KAChD;CACD,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { AccountsAssets, AccountsBalanceInfo, AccountsConvert, AccountsPoolAsset
|
|
|
2
2
|
import { Blocks, BlocksExtrinsics, BlocksRawExtrinsics, BlocksTrace } from './blocks';
|
|
3
3
|
import { ContractsInk } from './contracts';
|
|
4
4
|
import { NodeNetwork, NodeTransactionPool, NodeVersion } from './node';
|
|
5
|
-
import { PalletsAssetConversion, PalletsAssets, PalletsConsts, PalletsDispatchables, PalletsErrors, PalletsEvents, PalletsForeignAssets, PalletsNominationPools, PalletsPoolAssets, PalletsStakingProgress, PalletsStakingValidators, PalletsStorage } from './pallets';
|
|
5
|
+
import { PalletsAssetConversion, PalletsAssets, PalletsConsts, PalletsDispatchables, PalletsErrors, PalletsEvents, PalletsForeignAssets, PalletsNominationPools, PalletsOnGoingReferenda, PalletsPoolAssets, PalletsStakingProgress, PalletsStakingValidators, PalletsStorage } from './pallets';
|
|
6
6
|
import { Paras } from './paras';
|
|
7
7
|
import { RuntimeCode, RuntimeMetadata, RuntimeSpec } from './runtime';
|
|
8
8
|
import { TransactionDryRun, TransactionFeeEstimate, TransactionMaterial, TransactionSubmit } from './transaction';
|
|
@@ -32,6 +32,7 @@ export declare const controllers: {
|
|
|
32
32
|
PalletsEvents: typeof PalletsEvents;
|
|
33
33
|
PalletsForeignAssets: typeof PalletsForeignAssets;
|
|
34
34
|
PalletsNominationPools: typeof PalletsNominationPools;
|
|
35
|
+
PalletsOnGoingReferenda: typeof PalletsOnGoingReferenda;
|
|
35
36
|
PalletsPoolAssets: typeof PalletsPoolAssets;
|
|
36
37
|
PalletsStakingProgress: typeof PalletsStakingProgress;
|
|
37
38
|
PalletsStakingValidators: typeof PalletsStakingValidators;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright 2017-
|
|
2
|
+
// Copyright 2017-2024 Parity Technologies (UK) Ltd.
|
|
3
3
|
// This file is part of Substrate API Sidecar.
|
|
4
4
|
//
|
|
5
5
|
// Substrate API Sidecar is free software: you can redistribute it and/or modify
|
|
@@ -50,6 +50,7 @@ exports.controllers = {
|
|
|
50
50
|
PalletsEvents: pallets_1.PalletsEvents,
|
|
51
51
|
PalletsForeignAssets: pallets_1.PalletsForeignAssets,
|
|
52
52
|
PalletsNominationPools: pallets_1.PalletsNominationPools,
|
|
53
|
+
PalletsOnGoingReferenda: pallets_1.PalletsOnGoingReferenda,
|
|
53
54
|
PalletsPoolAssets: pallets_1.PalletsPoolAssets,
|
|
54
55
|
PalletsStakingProgress: pallets_1.PalletsStakingProgress,
|
|
55
56
|
PalletsStakingValidators: pallets_1.PalletsStakingValidators,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/controllers/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,yCAUoB;AACpB,qCAAsF;AACtF,2CAA2C;AAC3C,iCAAuE;AACvE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/controllers/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,yCAUoB;AACpB,qCAAsF;AACtF,2CAA2C;AAC3C,iCAAuE;AACvE,uCAcmB;AACnB,mCAAgC;AAChC,uCAAsE;AACtE,+CAAkH;AAElH;;GAEG;AACU,QAAA,WAAW,GAAG;IAC1B,MAAM,EAAN,eAAM;IACN,gBAAgB,EAAhB,yBAAgB;IAChB,WAAW,EAAX,oBAAW;IACX,mBAAmB,EAAnB,4BAAmB;IACnB,cAAc,EAAd,yBAAc;IACd,mBAAmB,EAAnB,8BAAmB;IACnB,eAAe,EAAf,0BAAe;IACf,kBAAkB,EAAlB,6BAAkB;IAClB,iBAAiB,EAAjB,4BAAiB;IACjB,mBAAmB,EAAnB,8BAAmB;IACnB,gBAAgB,EAAhB,2BAAgB;IAChB,mBAAmB,EAAnB,8BAAmB;IACnB,sBAAsB,EAAtB,iCAAsB;IACtB,YAAY,EAAZ,wBAAY;IACZ,aAAa,EAAb,uBAAa;IACb,sBAAsB,EAAtB,gCAAsB;IACtB,oBAAoB,EAApB,8BAAoB;IACpB,aAAa,EAAb,uBAAa;IACb,aAAa,EAAb,uBAAa;IACb,aAAa,EAAb,uBAAa;IACb,oBAAoB,EAApB,8BAAoB;IACpB,sBAAsB,EAAtB,gCAAsB;IACtB,uBAAuB,EAAvB,iCAAuB;IACvB,iBAAiB,EAAjB,2BAAiB;IACjB,sBAAsB,EAAtB,gCAAsB;IACtB,wBAAwB,EAAxB,kCAAwB;IACxB,cAAc,EAAd,wBAAc;IACd,WAAW,EAAX,kBAAW;IACX,mBAAmB,EAAnB,0BAAmB;IACnB,WAAW,EAAX,kBAAW;IACX,WAAW,EAAX,qBAAW;IACX,eAAe,EAAf,yBAAe;IACf,WAAW,EAAX,qBAAW;IACX,iBAAiB,EAAjB,+BAAiB;IACjB,sBAAsB,EAAtB,oCAAsB;IACtB,mBAAmB,EAAnB,iCAAmB;IACnB,iBAAiB,EAAjB,+BAAiB;IACjB,KAAK,EAAL,aAAK;CACL,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ApiPromise } from '@polkadot/api';
|
|
2
|
+
import { PalletsOnGoingReferendaService } from '../../services';
|
|
3
|
+
import AbstractController from '../AbstractController';
|
|
4
|
+
export default class PalletsOnGoingReferendaController extends AbstractController<PalletsOnGoingReferendaService> {
|
|
5
|
+
constructor(api: ApiPromise);
|
|
6
|
+
protected initRoutes(): void;
|
|
7
|
+
/**
|
|
8
|
+
* Get the on-going referenda.
|
|
9
|
+
*
|
|
10
|
+
* @param _req Express Request
|
|
11
|
+
* @param res Express Response
|
|
12
|
+
*/
|
|
13
|
+
private getPalletOnGoingReferenda;
|
|
14
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright 2017-2024 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 services_1 = require("../../services");
|
|
22
|
+
const AbstractController_1 = __importDefault(require("../AbstractController"));
|
|
23
|
+
class PalletsOnGoingReferendaController extends AbstractController_1.default {
|
|
24
|
+
constructor(api) {
|
|
25
|
+
super(api, '/pallets/on-going-referenda', new services_1.PalletsOnGoingReferendaService(api));
|
|
26
|
+
/**
|
|
27
|
+
* Get the on-going referenda.
|
|
28
|
+
*
|
|
29
|
+
* @param _req Express Request
|
|
30
|
+
* @param res Express Response
|
|
31
|
+
*/
|
|
32
|
+
this.getPalletOnGoingReferenda = async ({ query: { at } }, res) => {
|
|
33
|
+
const hash = await this.getHashFromAt(at);
|
|
34
|
+
PalletsOnGoingReferendaController.sanitizedSend(res, await this.service.derivePalletOnGoingReferenda(hash));
|
|
35
|
+
};
|
|
36
|
+
this.initRoutes();
|
|
37
|
+
}
|
|
38
|
+
initRoutes() {
|
|
39
|
+
this.safeMountAsyncGetHandlers([['', this.getPalletOnGoingReferenda]]);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.default = PalletsOnGoingReferendaController;
|
|
43
|
+
//# sourceMappingURL=PalletsOnGoingReferendaController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PalletsOnGoingReferendaController.js","sourceRoot":"","sources":["../../../../src/controllers/pallets/PalletsOnGoingReferendaController.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,6CAAgE;AAChE,+EAAuD;AAEvD,MAAqB,iCAAkC,SAAQ,4BAAkD;IAChH,YAAY,GAAe;QAC1B,KAAK,CAAC,GAAG,EAAE,6BAA6B,EAAE,IAAI,yCAA8B,CAAC,GAAG,CAAC,CAAC,CAAC;QAQpF;;;;;WAKG;QACK,8BAAyB,GAAmB,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAiB,EAAE;YACnG,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAE1C,iCAAiC,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7G,CAAC,CAAC;QAjBD,IAAI,CAAC,UAAU,EAAE,CAAC;IACnB,CAAC;IAES,UAAU;QACnB,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;CAaD;AArBD,oDAqBC"}
|
|
@@ -6,6 +6,7 @@ export { default as PalletsErrors } from './PalletsErrorsController';
|
|
|
6
6
|
export { default as PalletsEvents } from './PalletsEventsController';
|
|
7
7
|
export { default as PalletsForeignAssets } from './PalletsForeignAssetsController';
|
|
8
8
|
export { default as PalletsNominationPools } from './PalletsNominationPoolsController';
|
|
9
|
+
export { default as PalletsOnGoingReferenda } from './PalletsOnGoingReferendaController';
|
|
9
10
|
export { default as PalletsPoolAssets } from './PalletsPoolAssetsController';
|
|
10
11
|
export { default as PalletsStakingProgress } from './PalletsStakingProgressController';
|
|
11
12
|
export { default as PalletsStakingValidators } from './PalletsStakingValidatorsController';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright 2017-
|
|
2
|
+
// Copyright 2017-2024 Parity Technologies (UK) Ltd.
|
|
3
3
|
// This file is part of Substrate API Sidecar.
|
|
4
4
|
//
|
|
5
5
|
// Substrate API Sidecar is free software: you can redistribute it and/or modify
|
|
@@ -18,7 +18,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
18
18
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
19
|
};
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
exports.PalletsStorage = exports.PalletsStakingValidators = exports.PalletsStakingProgress = exports.PalletsPoolAssets = exports.PalletsNominationPools = exports.PalletsForeignAssets = exports.PalletsEvents = exports.PalletsErrors = exports.PalletsDispatchables = exports.PalletsConsts = exports.PalletsAssets = exports.PalletsAssetConversion = void 0;
|
|
21
|
+
exports.PalletsStorage = exports.PalletsStakingValidators = exports.PalletsStakingProgress = exports.PalletsPoolAssets = exports.PalletsOnGoingReferenda = exports.PalletsNominationPools = exports.PalletsForeignAssets = exports.PalletsEvents = exports.PalletsErrors = exports.PalletsDispatchables = exports.PalletsConsts = exports.PalletsAssets = exports.PalletsAssetConversion = void 0;
|
|
22
22
|
var PalletsAssetConversionController_1 = require("./PalletsAssetConversionController");
|
|
23
23
|
Object.defineProperty(exports, "PalletsAssetConversion", { enumerable: true, get: function () { return __importDefault(PalletsAssetConversionController_1).default; } });
|
|
24
24
|
var PalletsAssetsController_1 = require("./PalletsAssetsController");
|
|
@@ -35,6 +35,8 @@ var PalletsForeignAssetsController_1 = require("./PalletsForeignAssetsController
|
|
|
35
35
|
Object.defineProperty(exports, "PalletsForeignAssets", { enumerable: true, get: function () { return __importDefault(PalletsForeignAssetsController_1).default; } });
|
|
36
36
|
var PalletsNominationPoolsController_1 = require("./PalletsNominationPoolsController");
|
|
37
37
|
Object.defineProperty(exports, "PalletsNominationPools", { enumerable: true, get: function () { return __importDefault(PalletsNominationPoolsController_1).default; } });
|
|
38
|
+
var PalletsOnGoingReferendaController_1 = require("./PalletsOnGoingReferendaController");
|
|
39
|
+
Object.defineProperty(exports, "PalletsOnGoingReferenda", { enumerable: true, get: function () { return __importDefault(PalletsOnGoingReferendaController_1).default; } });
|
|
38
40
|
var PalletsPoolAssetsController_1 = require("./PalletsPoolAssetsController");
|
|
39
41
|
Object.defineProperty(exports, "PalletsPoolAssets", { enumerable: true, get: function () { return __importDefault(PalletsPoolAssetsController_1).default; } });
|
|
40
42
|
var PalletsStakingProgressController_1 = require("./PalletsStakingProgressController");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/controllers/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,uFAAuF;AAA9E,2JAAA,OAAO,OAA0B;AAC1C,qEAAqE;AAA5D,yIAAA,OAAO,OAAiB;AACjC,qEAAqE;AAA5D,yIAAA,OAAO,OAAiB;AACjC,mFAAmF;AAA1E,uJAAA,OAAO,OAAwB;AACxC,qEAAqE;AAA5D,yIAAA,OAAO,OAAiB;AACjC,qEAAqE;AAA5D,yIAAA,OAAO,OAAiB;AACjC,mFAAmF;AAA1E,uJAAA,OAAO,OAAwB;AACxC,uFAAuF;AAA9E,2JAAA,OAAO,OAA0B;AAC1C,6EAA6E;AAApE,iJAAA,OAAO,OAAqB;AACrC,uFAAuF;AAA9E,2JAAA,OAAO,OAA0B;AAC1C,2FAA2F;AAAlF,+JAAA,OAAO,OAA4B;AAC5C,uEAAuE;AAA9D,2IAAA,OAAO,OAAkB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/controllers/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,uFAAuF;AAA9E,2JAAA,OAAO,OAA0B;AAC1C,qEAAqE;AAA5D,yIAAA,OAAO,OAAiB;AACjC,qEAAqE;AAA5D,yIAAA,OAAO,OAAiB;AACjC,mFAAmF;AAA1E,uJAAA,OAAO,OAAwB;AACxC,qEAAqE;AAA5D,yIAAA,OAAO,OAAiB;AACjC,qEAAqE;AAA5D,yIAAA,OAAO,OAAiB;AACjC,mFAAmF;AAA1E,uJAAA,OAAO,OAAwB;AACxC,uFAAuF;AAA9E,2JAAA,OAAO,OAA0B;AAC1C,yFAAyF;AAAhF,6JAAA,OAAO,OAA2B;AAC3C,6EAA6E;AAApE,iJAAA,OAAO,OAAqB;AACrC,uFAAuF;AAA9E,2JAAA,OAAO,OAA0B;AAC1C,2FAA2F;AAAlF,+JAAA,OAAO,OAA4B;AAC5C,uEAAuE;AAA9D,2IAAA,OAAO,OAAkB"}
|
package/build/src/main.js
CHANGED
|
@@ -82,9 +82,21 @@ async function main() {
|
|
|
82
82
|
api.rpc.state.getRuntimeVersion(),
|
|
83
83
|
]);
|
|
84
84
|
startUpPrompt(config.SUBSTRATE.URL, chainName.toString(), implName.toString());
|
|
85
|
+
const preMiddlewares = [(0, express_1.json)(), middleware.httpLoggerCreate(logger)];
|
|
86
|
+
if (args.prometheus) {
|
|
87
|
+
// Create Metrics App
|
|
88
|
+
const metricsApp = new metrics_1.default({
|
|
89
|
+
port: 9100,
|
|
90
|
+
host: config.EXPRESS.HOST,
|
|
91
|
+
});
|
|
92
|
+
// Generate metrics middleware
|
|
93
|
+
preMiddlewares.push(metricsApp.preMiddleware());
|
|
94
|
+
// Start the Metrics server
|
|
95
|
+
metricsApp.listen();
|
|
96
|
+
}
|
|
85
97
|
// Create our App
|
|
86
98
|
const app = new App_1.default({
|
|
87
|
-
preMiddleware:
|
|
99
|
+
preMiddleware: preMiddlewares,
|
|
88
100
|
controllers: (0, chains_config_1.getControllersForSpec)(api, specName.toString()),
|
|
89
101
|
postMiddleware: [
|
|
90
102
|
middleware.txError,
|
|
@@ -100,15 +112,6 @@ async function main() {
|
|
|
100
112
|
const server = app.listen();
|
|
101
113
|
server.keepAliveTimeout = config.EXPRESS.KEEP_ALIVE_TIMEOUT;
|
|
102
114
|
server.headersTimeout = config.EXPRESS.KEEP_ALIVE_TIMEOUT + 5000;
|
|
103
|
-
if (args.prometheus) {
|
|
104
|
-
// Create Metrics App
|
|
105
|
-
const metricsApp = new metrics_1.default({
|
|
106
|
-
port: 9100,
|
|
107
|
-
host: config.EXPRESS.HOST,
|
|
108
|
-
});
|
|
109
|
-
// Start the Metrics server
|
|
110
|
-
metricsApp.listen();
|
|
111
|
-
}
|
|
112
115
|
}
|
|
113
116
|
/**
|
|
114
117
|
* Prompt the user with some basic info about the node and the network they have
|
package/build/src/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":";;AAEA,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,yCAAyC;AACzC,iCAA+B;AAE/B,uCAA2C;AAC3C,yDAAkE;AAElE,qCAA+B;AAE/B,mEAA0C;AAC1C,gDAAwB;AACxB,mDAAwD;AACxD,+DAA4D;AAC5D,uCAAoC;AACpC,yDAA2C;AAC3C,+EAA2D;AAC3D,2CAAwC;AACxC,mDAAgD;AAChD,6DAAyC;AAEzC,KAAK,UAAU,IAAI;IAClB,MAAM,EAAE,MAAM,EAAE,GAAG,6BAAa,CAAC;IACjC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAG,CAAC;IACvB,0CAA0C;IAC1C,IAAA,iCAAe,EAAC,MAAM,CAAC,CAAC;IAExB,MAAM,CAAC,IAAI,CAAC,YAAY,sBAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAE/C,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC;IAC1E,iEAAiE;IACjE,MAAM,GAAG,GAAG,MAAM,gBAAU,CAAC,MAAM,CAAC;QACnC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;YAChD,CAAC,CAAC,IAAI,2BAAY,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;YACxC,CAAC,CAAC,IAAI,yBAAU,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;QACvC,uDAAuD;QACvD,WAAW,EAAE,YAAY,CAAC,CAAC,CAAE,OAAO,CAAC,YAAY,CAAwB,CAAC,CAAC,CAAE,qBAAsC;QACnH,UAAU,EAAE,WAAW,CAAC,CAAC,CAAE,OAAO,CAAC,WAAW,CAAmC,CAAC,CAAC,CAAC,SAAS;QAC7F,SAAS,EAAE,UAAU,CAAC,CAAC,CAAE,OAAO,CAAC,UAAU,CAAmC,CAAC,CAAC,CAAC,SAAS;QAC1F,KAAK,EAAE,KAAK,CAAC,CAAC,CAAE,OAAO,CAAC,KAAK,CAAmB,CAAC,CAAC,CAAC,SAAS;QAC5D,sDAAsD;KACtD,CAAC,CAAC;IAEH,4EAA4E;IAC5E,MAAM,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC7D,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE;QACtB,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE;KACjC,CAAC,CAAC;IAEH,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE/E,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,8 +18,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
exports.httpErrorMiddleware = void 0;
|
|
19
19
|
const http_errors_1 = require("http-errors");
|
|
20
20
|
const Log_1 = require("../../logging/Log");
|
|
21
|
-
const parseArgs_1 = require("../../parseArgs");
|
|
22
|
-
const metrics_1 = require("../../util/metrics");
|
|
23
21
|
/**
|
|
24
22
|
* Handle HttpError instances.
|
|
25
23
|
*
|
|
@@ -35,16 +33,12 @@ const httpErrorMiddleware = (err, _req, res, next) => {
|
|
|
35
33
|
if (res.headersSent || !(err instanceof http_errors_1.HttpError)) {
|
|
36
34
|
return next(err);
|
|
37
35
|
}
|
|
38
|
-
const args = (0, parseArgs_1.parseArgs)();
|
|
39
36
|
const code = err.status;
|
|
40
37
|
const info = {
|
|
41
38
|
code,
|
|
42
39
|
message: err.message,
|
|
43
40
|
stack: err.stack,
|
|
44
41
|
};
|
|
45
|
-
if (args.prometheus) {
|
|
46
|
-
metrics_1.httpErrorCounter.inc();
|
|
47
|
-
}
|
|
48
42
|
Log_1.Log.logger.error(info);
|
|
49
43
|
res.status(code).send(info);
|
|
50
44
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpErrorMiddleware.js","sourceRoot":"","sources":["../../../../src/middleware/error/httpErrorMiddleware.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,6CAAwC;AAExC,2CAAwC;AACxC
|
|
1
|
+
{"version":3,"file":"httpErrorMiddleware.js","sourceRoot":"","sources":["../../../../src/middleware/error/httpErrorMiddleware.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,6CAAwC;AAExC,2CAAwC;AACxC;;;;;;;;;;GAUG;AACI,MAAM,mBAAmB,GAAwB,CAAC,GAAY,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAQ,EAAE;IAC/F,IAAI,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,YAAY,uBAAS,CAAC,EAAE;QACnD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;KACjB;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC;IAExB,MAAM,IAAI,GAAG;QACZ,IAAI;QACJ,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,KAAK,EAAE,GAAG,CAAC,KAAK;KAChB,CAAC;IAEF,SAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEvB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC,CAAC;AAfW,QAAA,mBAAmB,uBAe9B"}
|
package/build/src/parseArgs.js
CHANGED
|
@@ -32,6 +32,10 @@ const parseArgs = () => {
|
|
|
32
32
|
default: 9100,
|
|
33
33
|
help: 'specify the port number on which the prometheus metrics are exposed [default: 9100]',
|
|
34
34
|
});
|
|
35
|
+
parser.add_argument('-pq', '--prometheus-queryparams', {
|
|
36
|
+
action: 'store_true',
|
|
37
|
+
help: 'enambles query parameters in the prometheus metrics',
|
|
38
|
+
});
|
|
35
39
|
return parser.parse_args();
|
|
36
40
|
};
|
|
37
41
|
exports.parseArgs = parseArgs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseArgs.js","sourceRoot":"","sources":["../../src/parseArgs.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,uCAAqD;AAE9C,MAAM,SAAS,GAAG,GAAc,EAAE;IACxC,MAAM,MAAM,GAAG,IAAI,yBAAc,EAAE,CAAC;IAEpC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE;QACtC,MAAM,EAAE,YAAY;QACpB,IAAI,EAAE,qCAAqC;KAC3C,CAAC,CAAC;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE;QACzC,MAAM,EAAE,YAAY;QACpB,IAAI,EAAE,wCAAwC;KAC9C,CAAC,CAAC;IACH,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,mBAAmB,EAAE;QAC/C,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,qFAAqF;KAC3F,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,UAAU,EAAe,CAAC;AACzC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"parseArgs.js","sourceRoot":"","sources":["../../src/parseArgs.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,uCAAqD;AAE9C,MAAM,SAAS,GAAG,GAAc,EAAE;IACxC,MAAM,MAAM,GAAG,IAAI,yBAAc,EAAE,CAAC;IAEpC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE;QACtC,MAAM,EAAE,YAAY;QACpB,IAAI,EAAE,qCAAqC;KAC3C,CAAC,CAAC;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE;QACzC,MAAM,EAAE,YAAY;QACpB,IAAI,EAAE,wCAAwC;KAC9C,CAAC,CAAC;IACH,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,mBAAmB,EAAE;QAC/C,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,qFAAqF;KAC3F,CAAC,CAAC;IACH,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,0BAA0B,EAAE;QACtD,MAAM,EAAE,YAAY;QACpB,IAAI,EAAE,qDAAqD;KAC3D,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,UAAU,EAAe,CAAC;AACzC,CAAC,CAAC;AAtBW,QAAA,SAAS,aAsBpB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BlockHash } from '@polkadot/types/interfaces';
|
|
2
|
+
import { IPalletOnGoingReferenda } from '../../types/responses';
|
|
3
|
+
import { AbstractService } from '../AbstractService';
|
|
4
|
+
export declare class PalletsOnGoingReferendaService extends AbstractService {
|
|
5
|
+
/**
|
|
6
|
+
* Fetch all on-going referenda that have track: root (0) and whitelisted (1), along
|
|
7
|
+
* with their associated information.
|
|
8
|
+
*
|
|
9
|
+
* @param hash `BlockHash` to make call at
|
|
10
|
+
*/
|
|
11
|
+
derivePalletOnGoingReferenda(hash: BlockHash): Promise<IPalletOnGoingReferenda>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PalletsOnGoingReferendaService = void 0;
|
|
4
|
+
const AbstractService_1 = require("../AbstractService");
|
|
5
|
+
class PalletsOnGoingReferendaService extends AbstractService_1.AbstractService {
|
|
6
|
+
/**
|
|
7
|
+
* Fetch all on-going referenda that have track: root (0) and whitelisted (1), along
|
|
8
|
+
* with their associated information.
|
|
9
|
+
*
|
|
10
|
+
* @param hash `BlockHash` to make call at
|
|
11
|
+
*/
|
|
12
|
+
async derivePalletOnGoingReferenda(hash) {
|
|
13
|
+
const { api } = this;
|
|
14
|
+
const [historicApi, { number }] = await Promise.all([api.at(hash), api.rpc.chain.getHeader(hash)]);
|
|
15
|
+
const referenda = [];
|
|
16
|
+
if (historicApi.query.referenda) {
|
|
17
|
+
const referendaEntries = await historicApi.query.referenda.referendumInfoFor.entries();
|
|
18
|
+
for (const referendum of referendaEntries) {
|
|
19
|
+
const referendumInfo = referendum[1];
|
|
20
|
+
if (referendumInfo.isSome) {
|
|
21
|
+
const refUnwrapped = referendumInfo.unwrap();
|
|
22
|
+
const refId = referendum[0].toHuman();
|
|
23
|
+
if (refUnwrapped.type == 'Ongoing' &&
|
|
24
|
+
(refUnwrapped.asOngoing.track.toHuman() == '0' || refUnwrapped.asOngoing.track.toHuman() == '1')) {
|
|
25
|
+
const decisionDeposit = refUnwrapped.asOngoing.decisionDeposit.isSome
|
|
26
|
+
? refUnwrapped.asOngoing.decisionDeposit.unwrap()
|
|
27
|
+
: null;
|
|
28
|
+
const enactment = refUnwrapped.asOngoing.enactment;
|
|
29
|
+
const submitted = refUnwrapped.asOngoing.submitted;
|
|
30
|
+
const deciding = refUnwrapped.asOngoing.deciding.isSome ? refUnwrapped.asOngoing.deciding.unwrap() : null;
|
|
31
|
+
const refInfo = { id: refId[0], decisionDeposit, enactment, submitted, deciding };
|
|
32
|
+
referenda.push(refInfo);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
throw new Error(`The runtime does not include the module 'api.query.referenda' at this block height: ${number
|
|
39
|
+
.unwrap()
|
|
40
|
+
.toString(10)}`);
|
|
41
|
+
}
|
|
42
|
+
const at = {
|
|
43
|
+
hash,
|
|
44
|
+
height: number.unwrap().toString(10),
|
|
45
|
+
};
|
|
46
|
+
return {
|
|
47
|
+
at,
|
|
48
|
+
referenda,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.PalletsOnGoingReferendaService = PalletsOnGoingReferendaService;
|
|
53
|
+
//# sourceMappingURL=PalletsOnGoingReferendaService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PalletsOnGoingReferendaService.js","sourceRoot":"","sources":["../../../../src/services/pallets/PalletsOnGoingReferendaService.ts"],"names":[],"mappings":";;;AAkBA,wDAAqD;AAErD,MAAa,8BAA+B,SAAQ,iCAAe;IAClE;;;;;OAKG;IACH,KAAK,CAAC,4BAA4B,CAAC,IAAe;QACjD,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrB,MAAM,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnG,MAAM,SAAS,GAAqB,EAAE,CAAC;QACvC,IAAI,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE;YAChC,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;YACvF,KAAK,MAAM,UAAU,IAAI,gBAAgB,EAAE;gBAC1C,MAAM,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBACrC,IAAI,cAAc,CAAC,MAAM,EAAE;oBAC1B,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC;oBAC7C,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,EAAc,CAAC;oBAClD,IACC,YAAY,CAAC,IAAI,IAAI,SAAS;wBAC9B,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,EAC/F;wBACD,MAAM,eAAe,GAAG,YAAY,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM;4BACpE,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE;4BACjD,CAAC,CAAC,IAAI,CAAC;wBACR,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC;wBACnD,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC;wBACnD,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;wBAE1G,MAAM,OAAO,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;wBAClF,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;qBACxB;iBACD;aACD;SACD;aAAM;YACN,MAAM,IAAI,KAAK,CACd,uFAAuF,MAAM;iBAC3F,MAAM,EAAE;iBACR,QAAQ,CAAC,EAAE,CAAC,EAAE,CAChB,CAAC;SACF;QAED,MAAM,EAAE,GAAG;YACV,IAAI;YACJ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;SACpC,CAAC;QAEF,OAAO;YACN,EAAE;YACF,SAAS;SACT,CAAC;IACH,CAAC;CACD;AApDD,wEAoDC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright 2017-2024 Parity Technologies (UK) Ltd.
|
|
3
|
+
// This file is part of Substrate API Sidecar.
|
|
4
|
+
//
|
|
5
|
+
// Substrate API Sidecar is free software: you can redistribute it and/or modify
|
|
6
|
+
// it under the terms of the GNU General Public License as published by
|
|
7
|
+
// the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
// (at your option) any later version.
|
|
9
|
+
//
|
|
10
|
+
// This program is distributed in the hope that it will be useful,
|
|
11
|
+
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
// GNU General Public License for more details.
|
|
14
|
+
//
|
|
15
|
+
// You should have received a copy of the GNU General Public License
|
|
16
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
const sanitizeNumbers_1 = require("../../sanitize/sanitizeNumbers");
|
|
22
|
+
const registries_1 = require("../../test-helpers/registries");
|
|
23
|
+
const registries_2 = require("../../test-helpers/registries");
|
|
24
|
+
const mock_1 = require("../test-helpers/mock");
|
|
25
|
+
const referendaEntries_1 = require("../test-helpers/mock/data/referendaEntries");
|
|
26
|
+
const fetchOnGoingReferenda21275366_json_1 = __importDefault(require("../test-helpers/responses/pallets/fetchOnGoingReferenda21275366.json"));
|
|
27
|
+
const PalletsOnGoingReferendaService_1 = require("./PalletsOnGoingReferendaService");
|
|
28
|
+
// Mocking APIs for block #13641102
|
|
29
|
+
const getHeader13641102 = (_hash) => Promise.resolve().then(() => mock_1.mockBlock13641102.header);
|
|
30
|
+
const mockHistoricApi13641102 = {
|
|
31
|
+
query: {},
|
|
32
|
+
registry: registries_1.polkadotRegistryV9300,
|
|
33
|
+
};
|
|
34
|
+
const mockApi13641102 = {
|
|
35
|
+
rpc: {
|
|
36
|
+
chain: {
|
|
37
|
+
getHeader: getHeader13641102,
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
at: (_hash) => mockHistoricApi13641102,
|
|
41
|
+
};
|
|
42
|
+
// Mock PalletsOnGoingReferendaService instance for block #13641102
|
|
43
|
+
const palletsOnGoingReferendaService13641102 = new PalletsOnGoingReferendaService_1.PalletsOnGoingReferendaService(mockApi13641102);
|
|
44
|
+
// Mocking APIs for block #21275366
|
|
45
|
+
const getHeader21275366 = (_hash) => Promise.resolve().then(() => mock_1.mockBlock21275366.header);
|
|
46
|
+
const referendaEntriesAt21275366 = () => Promise.resolve().then(() => (0, referendaEntries_1.referendaEntries)());
|
|
47
|
+
const mockHistoricApi21275366 = {
|
|
48
|
+
registry: registries_2.polkadotRegistryV1000001,
|
|
49
|
+
query: {
|
|
50
|
+
referenda: {
|
|
51
|
+
referendumInfoFor: {
|
|
52
|
+
entries: referendaEntriesAt21275366,
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
const mockApi21275366 = {
|
|
58
|
+
rpc: {
|
|
59
|
+
chain: {
|
|
60
|
+
getHeader: getHeader21275366,
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
at: (_hash) => mockHistoricApi21275366,
|
|
64
|
+
};
|
|
65
|
+
// Mock PalletsOnGoingReferendaService instance for block #21275366
|
|
66
|
+
const palletsOnGoingReferendaService21275366 = new PalletsOnGoingReferendaService_1.PalletsOnGoingReferendaService(mockApi21275366);
|
|
67
|
+
describe('PalletOnGoingReferendaService', () => {
|
|
68
|
+
describe('derivePalletOnGoingReferenda', () => {
|
|
69
|
+
it('throws error for block 13641102', async () => {
|
|
70
|
+
await expect(palletsOnGoingReferendaService13641102.derivePalletOnGoingReferenda(mock_1.blockHash13641102)).rejects.toStrictEqual(new Error(`The runtime does not include the module 'api.query.referenda' at this block height: 13641102`));
|
|
71
|
+
});
|
|
72
|
+
it('works for block 21275366 (Polkadot) & returns 7 referendas, 2 of which are runtime upgrades', async () => {
|
|
73
|
+
expect((0, sanitizeNumbers_1.sanitizeNumbers)(await palletsOnGoingReferendaService21275366.derivePalletOnGoingReferenda(mock_1.blockHash21275366))).toStrictEqual(fetchOnGoingReferenda21275366_json_1.default);
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
//# sourceMappingURL=PalletsOnGoingReferendaService.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PalletsOnGoingReferendaService.spec.js","sourceRoot":"","sources":["../../../../src/services/pallets/PalletsOnGoingReferendaService.spec.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,8CAA8C;AAC9C,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,kEAAkE;AAClE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,wEAAwE;;;;;AAMxE,oEAAiE;AACjE,8DAAsE;AACtE,8DAAyE;AACzE,+CAAkH;AAClH,iFAA8E;AAC9E,8IAAyH;AACzH,qFAAkF;AAElF,mCAAmC;AACnC,MAAM,iBAAiB,GAAG,CAAC,KAAW,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,wBAAiB,CAAC,MAAM,CAAC,CAAC;AAElG,MAAM,uBAAuB,GAAG;IAC/B,KAAK,EAAE,EAAE;IACT,QAAQ,EAAE,kCAAqB;CACQ,CAAC;AAEzC,MAAM,eAAe,GAAG;IACvB,GAAG,EAAE;QACJ,KAAK,EAAE;YACN,SAAS,EAAE,iBAAiB;SAC5B;KACD;IACD,EAAE,EAAE,CAAC,KAAW,EAAE,EAAE,CAAC,uBAAuB;CACnB,CAAC;AAE3B,mEAAmE;AACnE,MAAM,sCAAsC,GAAG,IAAI,+DAA8B,CAAC,eAAe,CAAC,CAAC;AAEnG,mCAAmC;AACnC,MAAM,iBAAiB,GAAG,CAAC,KAAW,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,wBAAiB,CAAC,MAAM,CAAC,CAAC;AAClG,MAAM,0BAA0B,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAA,mCAAgB,GAAE,CAAC,CAAC;AAE1F,MAAM,uBAAuB,GAAG;IAC/B,QAAQ,EAAE,qCAAwB;IAClC,KAAK,EAAE;QACN,SAAS,EAAE;YACV,iBAAiB,EAAE;gBAClB,OAAO,EAAE,0BAA0B;aACnC;SACD;KACD;CACsC,CAAC;AAEzC,MAAM,eAAe,GAAG;IACvB,GAAG,EAAE;QACJ,KAAK,EAAE;YACN,SAAS,EAAE,iBAAiB;SAC5B;KACD;IACD,EAAE,EAAE,CAAC,KAAW,EAAE,EAAE,CAAC,uBAAuB;CACnB,CAAC;AAE3B,mEAAmE;AACnE,MAAM,sCAAsC,GAAG,IAAI,+DAA8B,CAAC,eAAe,CAAC,CAAC;AAEnG,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC9C,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;QAC7C,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;YAChD,MAAM,MAAM,CACX,sCAAsC,CAAC,4BAA4B,CAAC,wBAAiB,CAAC,CACtF,CAAC,OAAO,CAAC,aAAa,CACtB,IAAI,KAAK,CAAC,8FAA8F,CAAC,CACzG,CAAC;QACH,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,6FAA6F,EAAE,KAAK,IAAI,EAAE;YAC5G,MAAM,CACL,IAAA,iCAAe,EAAC,MAAM,sCAAsC,CAAC,4BAA4B,CAAC,wBAAiB,CAAC,CAAC,CAC7G,CAAC,aAAa,CAAC,4CAAqC,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -6,6 +6,7 @@ export * from './PalletsConstantsService';
|
|
|
6
6
|
export * from './PalletsDispatchablesService';
|
|
7
7
|
export * from './PalletsForeignAssetsService';
|
|
8
8
|
export * from './PalletsNominationPoolsService';
|
|
9
|
+
export * from './PalletsOnGoingReferendaService';
|
|
9
10
|
export * from './PalletsPoolAssetsService';
|
|
10
11
|
export * from './PalletsStakingProgressService';
|
|
11
12
|
export * from './PalletsStakingValidatorsService';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright 2017-
|
|
2
|
+
// Copyright 2017-2024 Parity Technologies (UK) Ltd.
|
|
3
3
|
// This file is part of Substrate API Sidecar.
|
|
4
4
|
//
|
|
5
5
|
// Substrate API Sidecar is free software: you can redistribute it and/or modify
|
|
@@ -37,6 +37,7 @@ __exportStar(require("./PalletsConstantsService"), exports);
|
|
|
37
37
|
__exportStar(require("./PalletsDispatchablesService"), exports);
|
|
38
38
|
__exportStar(require("./PalletsForeignAssetsService"), exports);
|
|
39
39
|
__exportStar(require("./PalletsNominationPoolsService"), exports);
|
|
40
|
+
__exportStar(require("./PalletsOnGoingReferendaService"), exports);
|
|
40
41
|
__exportStar(require("./PalletsPoolAssetsService"), exports);
|
|
41
42
|
__exportStar(require("./PalletsStakingProgressService"), exports);
|
|
42
43
|
__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,kEAAgD;AAChD,yDAAuC;AACvC,4DAA0C;AAC1C,gEAA8C;AAC9C,gEAA8C;AAC9C,kEAAgD;AAChD,6DAA2C;AAC3C,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,kEAAgD;AAChD,yDAAuC;AACvC,4DAA0C;AAC1C,gEAA8C;AAC9C,gEAA8C;AAC9C,kEAAgD;AAChD,mEAAiD;AACjD,6DAA2C;AAC3C,kEAAgD;AAChD,oEAAkD;AAClD,0DAAwC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { u32 } from '@polkadot/types';
|
|
2
|
+
import { FrameSupportScheduleDispatchTime, PalletReferendaDecidingStatus, PalletReferendaDeposit } from '@polkadot/types/lookup';
|
|
3
|
+
import { IAt } from './At';
|
|
4
|
+
export interface IReferendaInfo {
|
|
5
|
+
id: string;
|
|
6
|
+
decisionDeposit: PalletReferendaDeposit | null;
|
|
7
|
+
enactment: FrameSupportScheduleDispatchTime;
|
|
8
|
+
submitted: u32;
|
|
9
|
+
deciding: PalletReferendaDecidingStatus | null;
|
|
10
|
+
}
|
|
11
|
+
export interface IPalletOnGoingReferenda {
|
|
12
|
+
at: IAt;
|
|
13
|
+
referenda: IReferendaInfo[];
|
|
14
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright 2017-2024 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
|
+
//# sourceMappingURL=PalletOnGoingReferenda.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PalletOnGoingReferenda.js","sourceRoot":"","sources":["../../../../src/types/responses/PalletOnGoingReferenda.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"}
|
|
@@ -30,6 +30,7 @@ export * from './PalletErrorsItem';
|
|
|
30
30
|
export * from './PalletEvents';
|
|
31
31
|
export * from './PalletEventsItem';
|
|
32
32
|
export * from './PalletNominationPools';
|
|
33
|
+
export * from './PalletOnGoingReferenda';
|
|
33
34
|
export * from './PalletStakingProgress';
|
|
34
35
|
export * from './PalletStakingValidators';
|
|
35
36
|
export * from './PalletStorage';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright 2017-
|
|
2
|
+
// Copyright 2017-2024 Parity Technologies (UK) Ltd.
|
|
3
3
|
// This file is part of Substrate API Sidecar.
|
|
4
4
|
//
|
|
5
5
|
// Substrate API Sidecar is free software: you can redistribute it and/or modify
|
|
@@ -61,6 +61,7 @@ __exportStar(require("./PalletErrorsItem"), exports);
|
|
|
61
61
|
__exportStar(require("./PalletEvents"), exports);
|
|
62
62
|
__exportStar(require("./PalletEventsItem"), exports);
|
|
63
63
|
__exportStar(require("./PalletNominationPools"), exports);
|
|
64
|
+
__exportStar(require("./PalletOnGoingReferenda"), exports);
|
|
64
65
|
__exportStar(require("./PalletStakingProgress"), exports);
|
|
65
66
|
__exportStar(require("./PalletStakingValidators"), exports);
|
|
66
67
|
__exportStar(require("./PalletStorage"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/types/responses/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,kDAAgC;AAChC,uDAAqC;AACrC,mDAAiC;AACjC,sDAAoC;AACpC,qDAAmC;AACnC,uDAAqC;AACrC,0DAAwC;AACxC,uDAAqC;AACrC,2CAAyB;AACzB,uCAAqB;AACrB,0CAAwB;AACxB,6CAA2B;AAC3B,qDAAmC;AACnC,+CAA6B;AAC7B,8CAA4B;AAC5B,kDAAgC;AAChC,gDAA8B;AAC9B,iDAA+B;AAC/B,gDAA8B;AAC9B,wDAAsC;AACtC,gDAA8B;AAC9B,2CAAyB;AACzB,0DAAwC;AACxC,oDAAkC;AAClC,wDAAsC;AACtC,wDAAsC;AACtC,4DAA0C;AAC1C,iDAA+B;AAC/B,qDAAmC;AACnC,iDAA+B;AAC/B,qDAAmC;AACnC,0DAAwC;AACxC,0DAAwC;AACxC,4DAA0C;AAC1C,kDAAgC;AAChC,sDAAoC;AACpC,0CAAwB;AACxB,2CAAyB;AACzB,+CAA6B;AAC7B,gDAA8B;AAC9B,kDAAgC;AAChC,kDAAgC;AAChC,+DAA6C;AAC7C,mDAAiC;AACjC,+DAA6C;AAC7C,iEAA+C;AAC/C,sDAAoC;AACpC,wDAAsC;AACtC,oDAAkC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/types/responses/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,kDAAgC;AAChC,uDAAqC;AACrC,mDAAiC;AACjC,sDAAoC;AACpC,qDAAmC;AACnC,uDAAqC;AACrC,0DAAwC;AACxC,uDAAqC;AACrC,2CAAyB;AACzB,uCAAqB;AACrB,0CAAwB;AACxB,6CAA2B;AAC3B,qDAAmC;AACnC,+CAA6B;AAC7B,8CAA4B;AAC5B,kDAAgC;AAChC,gDAA8B;AAC9B,iDAA+B;AAC/B,gDAA8B;AAC9B,wDAAsC;AACtC,gDAA8B;AAC9B,2CAAyB;AACzB,0DAAwC;AACxC,oDAAkC;AAClC,wDAAsC;AACtC,wDAAsC;AACtC,4DAA0C;AAC1C,iDAA+B;AAC/B,qDAAmC;AACnC,iDAA+B;AAC/B,qDAAmC;AACnC,0DAAwC;AACxC,2DAAyC;AACzC,0DAAwC;AACxC,4DAA0C;AAC1C,kDAAgC;AAChC,sDAAoC;AACpC,0CAAwB;AACxB,2CAAyB;AACzB,+CAA6B;AAC7B,gDAA8B;AAC9B,kDAAgC;AAChC,kDAAgC;AAChC,+DAA6C;AAC7C,mDAAiC;AACjC,+DAA6C;AAC7C,iEAA+C;AAC/C,sDAAoC;AACpC,wDAAsC;AACtC,oDAAkC"}
|
|
@@ -1,11 +1,25 @@
|
|
|
1
|
-
import
|
|
2
|
-
export declare const httpErrorCounter: client.Counter<string>;
|
|
1
|
+
import { Request, Response } from 'express';
|
|
3
2
|
interface IAppConfiguration {
|
|
4
3
|
port: number;
|
|
5
4
|
host: string;
|
|
6
5
|
}
|
|
6
|
+
export declare const enum MetricType {
|
|
7
|
+
Counter = "counter",
|
|
8
|
+
Gauge = "gauge",
|
|
9
|
+
Histogram = "histogram",
|
|
10
|
+
Summary = "summary"
|
|
11
|
+
}
|
|
12
|
+
interface Query extends Request {
|
|
13
|
+
route: {
|
|
14
|
+
path: string;
|
|
15
|
+
[key: string]: unknown;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
7
18
|
export default class Metrics_App {
|
|
8
19
|
private app;
|
|
20
|
+
private registry;
|
|
21
|
+
private metrics;
|
|
22
|
+
private includeQueryParams;
|
|
9
23
|
private readonly port;
|
|
10
24
|
private readonly host;
|
|
11
25
|
/**
|
|
@@ -13,9 +27,10 @@ export default class Metrics_App {
|
|
|
13
27
|
*/
|
|
14
28
|
constructor({ host }: IAppConfiguration);
|
|
15
29
|
listen(): void;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
30
|
+
private createMetricByType;
|
|
31
|
+
private getRoute;
|
|
32
|
+
private blocksControllerMetrics;
|
|
33
|
+
preMiddleware(): (req: Query, res: Response, next: () => void) => void;
|
|
34
|
+
private init;
|
|
20
35
|
}
|
|
21
36
|
export {};
|
|
@@ -3,44 +3,289 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.httpErrorCounter = void 0;
|
|
7
6
|
const express_1 = __importDefault(require("express"));
|
|
8
7
|
const prom_client_1 = __importDefault(require("prom-client"));
|
|
9
8
|
const Log_1 = require("../logging/Log");
|
|
10
9
|
const parseArgs_1 = require("../parseArgs");
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
const metrics = [
|
|
11
|
+
{
|
|
12
|
+
name: 'request_errors_total',
|
|
13
|
+
help: 'Number of HTTP Errors',
|
|
14
|
+
type: "counter" /* MetricType.Counter */,
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
name: 'request_success_total',
|
|
18
|
+
help: 'Number of HTTP Success',
|
|
19
|
+
type: "counter" /* MetricType.Counter */,
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: 'requests_total',
|
|
23
|
+
help: 'Total number of HTTP Requests',
|
|
24
|
+
type: "counter" /* MetricType.Counter */,
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
name: 'request_duration_seconds',
|
|
28
|
+
help: 'Duration of HTTP requests in seconds',
|
|
29
|
+
labels: ['method', 'route', 'status_code'],
|
|
30
|
+
buckets: [0.1, 0.5, 1, 1.5, 2, 3, 4, 5],
|
|
31
|
+
type: "histogram" /* MetricType.Histogram */,
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'response_size_bytes_seconds',
|
|
35
|
+
help: 'Size of HTTP responses in bytes',
|
|
36
|
+
labels: ['method', 'route', 'status_code'],
|
|
37
|
+
buckets: [100, 500, 1000, 5000, 10000, 50000, 100000, 500000, 1000000, 5000000],
|
|
38
|
+
type: "histogram" /* MetricType.Histogram */,
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
name: 'response_size_latency_ratio_seconds',
|
|
42
|
+
help: 'Ratio of response size to latency',
|
|
43
|
+
labels: ['method', 'route', 'status_code'],
|
|
44
|
+
buckets: [64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144],
|
|
45
|
+
type: "histogram" /* MetricType.Histogram */,
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: 'extrinsics_in_request_count',
|
|
49
|
+
help: 'Number of extrinsics in a request',
|
|
50
|
+
type: "histogram" /* MetricType.Histogram */,
|
|
51
|
+
buckets: [5, 10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 20480],
|
|
52
|
+
labels: ['method', 'route', 'status_code'],
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
name: 'extrinsics_per_second_count',
|
|
56
|
+
help: 'Number of extrinsics per second',
|
|
57
|
+
type: "histogram" /* MetricType.Histogram */,
|
|
58
|
+
labels: ['method', 'route', 'status_code'],
|
|
59
|
+
buckets: [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024],
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: 'extrinsics_per_block_count',
|
|
63
|
+
help: 'Average number of extrinsics per block',
|
|
64
|
+
type: "histogram" /* MetricType.Histogram */,
|
|
65
|
+
labels: ['method', 'route', 'status_code'],
|
|
66
|
+
buckets: [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024],
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
name: 'seconds_per_block_count',
|
|
70
|
+
help: 'Average seconds per block',
|
|
71
|
+
type: "histogram" /* MetricType.Histogram */,
|
|
72
|
+
labels: ['method', 'route', 'status_code'],
|
|
73
|
+
buckets: [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024],
|
|
74
|
+
},
|
|
75
|
+
];
|
|
15
76
|
class Metrics_App {
|
|
16
77
|
/**
|
|
17
78
|
* @param appConfig configuration for app.
|
|
18
79
|
*/
|
|
19
80
|
constructor({ host }) {
|
|
20
81
|
const args = (0, parseArgs_1.parseArgs)();
|
|
82
|
+
this.includeQueryParams = !!args.prometheus_queryparams;
|
|
21
83
|
this.port = Number(args.prometheus_port);
|
|
22
84
|
this.app = (0, express_1.default)();
|
|
23
85
|
this.host = host;
|
|
24
|
-
this.
|
|
86
|
+
this.registry = new prom_client_1.default.Registry();
|
|
87
|
+
this.metrics = {};
|
|
88
|
+
this.init();
|
|
25
89
|
}
|
|
26
90
|
listen() {
|
|
27
91
|
const { logger } = Log_1.Log;
|
|
28
92
|
this.app.listen(this.port, this.host, () => {
|
|
29
|
-
logger.info(`Metrics Server started at http://${this.host}:${this.port}
|
|
93
|
+
logger.info(`Metrics Server started at http://${this.host}:${this.port}/metrics`);
|
|
30
94
|
});
|
|
31
95
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
96
|
+
createMetricByType(prefix = 'sas', metric) {
|
|
97
|
+
const prefixedName = prefix + '_' + metric.name;
|
|
98
|
+
if (prefixedName in this.metrics) {
|
|
99
|
+
return this.metrics[prefixedName];
|
|
100
|
+
}
|
|
101
|
+
switch (metric.type) {
|
|
102
|
+
case "counter" /* MetricType.Counter */: {
|
|
103
|
+
const counter = new prom_client_1.default.Counter({
|
|
104
|
+
name: prefixedName,
|
|
105
|
+
help: metric.help,
|
|
106
|
+
labelNames: metric.labels || [],
|
|
107
|
+
registers: [this.registry],
|
|
108
|
+
});
|
|
109
|
+
this.registry.registerMetric(counter);
|
|
110
|
+
this.metrics[prefixedName] = counter;
|
|
111
|
+
return counter;
|
|
112
|
+
}
|
|
113
|
+
case "histogram" /* MetricType.Histogram */: {
|
|
114
|
+
const histogram = new prom_client_1.default.Histogram({
|
|
115
|
+
name: prefixedName,
|
|
116
|
+
help: metric.help,
|
|
117
|
+
labelNames: metric.labels || [],
|
|
118
|
+
registers: [this.registry],
|
|
119
|
+
buckets: metric.buckets || [0.1, 0.5, 1, 1.5, 2, 3, 4, 5],
|
|
120
|
+
});
|
|
121
|
+
this.metrics[prefixedName] = histogram;
|
|
122
|
+
return histogram;
|
|
123
|
+
}
|
|
124
|
+
case "gauge" /* MetricType.Gauge */:
|
|
125
|
+
throw new Error('Gauge not implemented');
|
|
126
|
+
case "summary" /* MetricType.Summary */:
|
|
127
|
+
throw new Error('Summary not implemented');
|
|
128
|
+
default:
|
|
129
|
+
throw new Error('Unknown metric type');
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
getRoute(req) {
|
|
133
|
+
var _a, _b;
|
|
134
|
+
let route = req.baseUrl;
|
|
135
|
+
if (req.route) {
|
|
136
|
+
if (req.route.path !== '/') {
|
|
137
|
+
route = route ? route + ((_a = req.route) === null || _a === void 0 ? void 0 : _a.path) : (_b = req.route) === null || _b === void 0 ? void 0 : _b.path;
|
|
138
|
+
}
|
|
139
|
+
if (!route || route === '' || typeof route !== 'string') {
|
|
140
|
+
route = req.originalUrl.split('?')[0];
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
const splittedRoute = route.split('/');
|
|
144
|
+
const splittedUrl = req.originalUrl.split('?')[0].split('/');
|
|
145
|
+
const routeIndex = splittedUrl.length - splittedRoute.length + 1;
|
|
146
|
+
const baseUrl = splittedUrl.slice(0, routeIndex).join('/');
|
|
147
|
+
route = baseUrl + route;
|
|
148
|
+
}
|
|
149
|
+
if (this.includeQueryParams === true && Object.keys(req.query).length > 0) {
|
|
150
|
+
route = `${route}?${Object.keys(req.query)
|
|
151
|
+
.sort()
|
|
152
|
+
.map((queryParam) => `${queryParam}=<?>`)
|
|
153
|
+
.join('&')}`;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
if (typeof req.params === 'object') {
|
|
157
|
+
Object.keys(req.params).forEach((paramName) => {
|
|
158
|
+
route = route.replace(req.params[paramName], ':' + paramName);
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
if (!route || route === '') {
|
|
162
|
+
// if (!req.route && res && res.statusCode === 404) {
|
|
163
|
+
route = 'N/A';
|
|
164
|
+
}
|
|
165
|
+
return route;
|
|
166
|
+
}
|
|
167
|
+
blocksControllerMetrics(req, res, end) {
|
|
168
|
+
var _a, _b;
|
|
169
|
+
const body = res.locals.body;
|
|
170
|
+
if (((_a = req.params) === null || _a === void 0 ? void 0 : _a.number) && !Array.isArray(body)) {
|
|
171
|
+
const extrinscs = body.extrinsics ? body.extrinsics.length : 0;
|
|
172
|
+
const extrinsics_per_second = this.metrics['sas_extrinsics_per_second_count'];
|
|
173
|
+
const seconds = end();
|
|
174
|
+
extrinsics_per_second
|
|
175
|
+
.labels({ method: req.method, route: this.getRoute(req), status_code: res.statusCode })
|
|
176
|
+
.observe(extrinscs / seconds);
|
|
177
|
+
const extrinsics_per_block = this.metrics['sas_extrinsics_per_block_count'];
|
|
178
|
+
const blocks = 1;
|
|
179
|
+
extrinsics_per_block
|
|
180
|
+
.labels({ method: req.method, route: this.getRoute(req), status_code: res.statusCode })
|
|
181
|
+
.observe(extrinscs / blocks);
|
|
182
|
+
const seconds_per_block = this.metrics['sas_seconds_per_block_count'];
|
|
183
|
+
seconds_per_block
|
|
184
|
+
.labels({ method: req.method, route: this.getRoute(req), status_code: res.statusCode })
|
|
185
|
+
.observe(seconds / blocks);
|
|
186
|
+
}
|
|
187
|
+
if ((_b = req.query) === null || _b === void 0 ? void 0 : _b.range) {
|
|
188
|
+
let totExtrinsics = 0;
|
|
189
|
+
if (Array.isArray(body)) {
|
|
190
|
+
totExtrinsics = body.reduce((current, block) => {
|
|
191
|
+
const extrinsics = block['extrinsics'];
|
|
192
|
+
if (Array.isArray(extrinsics)) {
|
|
193
|
+
return current + extrinsics.length;
|
|
194
|
+
}
|
|
195
|
+
return current;
|
|
196
|
+
}, 0);
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
const extrinsics = body['extrinsics'];
|
|
200
|
+
if (Array.isArray(extrinsics)) {
|
|
201
|
+
totExtrinsics = extrinsics.length;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
const extrinsics_in_request = this.metrics['sas_extrinsics_in_request_count'];
|
|
205
|
+
extrinsics_in_request
|
|
206
|
+
.labels({ method: req.method, route: this.getRoute(req), status_code: res.statusCode })
|
|
207
|
+
.observe(totExtrinsics);
|
|
208
|
+
const extrinsics_per_second = this.metrics['sas_extrinsics_per_second_count'];
|
|
209
|
+
const seconds = end();
|
|
210
|
+
extrinsics_per_second
|
|
211
|
+
.labels({ method: req.method, route: this.getRoute(req), status_code: res.statusCode })
|
|
212
|
+
.observe(totExtrinsics / seconds);
|
|
213
|
+
const extrinsics_per_block = this.metrics['sas_extrinsics_per_block_count'];
|
|
214
|
+
const blocks = Array.isArray(body) ? body.length : 1;
|
|
215
|
+
extrinsics_per_block
|
|
216
|
+
.labels({ method: req.method, route: this.getRoute(req), status_code: res.statusCode })
|
|
217
|
+
.observe(totExtrinsics / blocks);
|
|
218
|
+
const seconds_per_block = this.metrics['sas_seconds_per_block_count'];
|
|
219
|
+
seconds_per_block
|
|
220
|
+
.labels({ method: req.method, route: this.getRoute(req), status_code: res.statusCode })
|
|
221
|
+
.observe(seconds / blocks);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
preMiddleware() {
|
|
225
|
+
return (req, res, next) => {
|
|
226
|
+
const tot_requests = this.metrics['sas_requests_total'];
|
|
227
|
+
// request count metrics
|
|
228
|
+
if (req.originalUrl != '/favicon.ico') {
|
|
229
|
+
tot_requests.inc();
|
|
230
|
+
}
|
|
231
|
+
const request_duration_seconds = this.metrics['sas_request_duration_seconds'];
|
|
232
|
+
const end = request_duration_seconds.startTimer();
|
|
233
|
+
const oldJson = res.json;
|
|
234
|
+
res.json = (body) => {
|
|
235
|
+
res.locals.body = body;
|
|
236
|
+
return oldJson.call(res, body);
|
|
237
|
+
};
|
|
238
|
+
res.once('finish', () => {
|
|
239
|
+
if (res.statusCode >= 400 && req.originalUrl != '/favicon.ico') {
|
|
240
|
+
const request_errors = this.metrics['sas_request_errors'];
|
|
241
|
+
request_errors.inc();
|
|
242
|
+
}
|
|
243
|
+
else if (res.statusCode < 400) {
|
|
244
|
+
const request_success = this.metrics['sas_request_errors_total'];
|
|
245
|
+
request_success.inc();
|
|
246
|
+
}
|
|
247
|
+
let resContentLength = '0';
|
|
248
|
+
if ('_contentLength' in res && res['_contentLength'] != null) {
|
|
249
|
+
resContentLength = res['_contentLength'];
|
|
250
|
+
}
|
|
251
|
+
else if (res.hasHeader('Content-Length')) {
|
|
252
|
+
resContentLength = res.getHeader('Content-Length');
|
|
253
|
+
}
|
|
254
|
+
// route specific metrics
|
|
255
|
+
if (this.getRoute(req).includes('blocks')) {
|
|
256
|
+
this.blocksControllerMetrics(req, res, end);
|
|
257
|
+
}
|
|
258
|
+
// response size metrics
|
|
259
|
+
const response_size_bytes = this.metrics['sas_response_size_bytes_seconds'];
|
|
260
|
+
response_size_bytes
|
|
261
|
+
.labels({ method: req.method, route: this.getRoute(req), status_code: res.statusCode })
|
|
262
|
+
.observe(parseFloat(resContentLength));
|
|
263
|
+
// latency metrics
|
|
264
|
+
const latency = end({ method: req.method, route: this.getRoute(req), status_code: res.statusCode });
|
|
265
|
+
// response size to latency ratio
|
|
266
|
+
const response_size_latency_ratio = this.metrics['sas_response_size_latency_ratio_seconds'];
|
|
267
|
+
response_size_latency_ratio
|
|
268
|
+
.labels({ method: req.method, route: this.getRoute(req), status_code: res.statusCode })
|
|
269
|
+
.observe(parseFloat(resContentLength) / latency);
|
|
270
|
+
});
|
|
271
|
+
next();
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
init() {
|
|
275
|
+
// Set up
|
|
276
|
+
metrics.forEach((metric) => this.createMetricByType('sas', metric));
|
|
277
|
+
prom_client_1.default.collectDefaultMetrics({ register: this.registry, prefix: 'sas_' });
|
|
39
278
|
// Set up the metrics endpoint
|
|
40
279
|
this.app.get('/metrics', (_req, res) => {
|
|
41
280
|
void (async () => {
|
|
42
|
-
res.set('Content-Type',
|
|
43
|
-
res.send(await
|
|
281
|
+
res.set('Content-Type', this.registry.contentType);
|
|
282
|
+
res.send(await this.registry.metrics());
|
|
283
|
+
})();
|
|
284
|
+
});
|
|
285
|
+
this.app.get('/metrics.json', (_req, res) => {
|
|
286
|
+
void (async () => {
|
|
287
|
+
res.set('Content-Type', this.registry.contentType);
|
|
288
|
+
res.send(await this.registry.getMetricsAsJSON());
|
|
44
289
|
})();
|
|
45
290
|
});
|
|
46
291
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/util/metrics.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA8B;AAE9B,8DAAiC;AAEjC,wCAAqC;AACrC,4CAAyC;AAE5B,QAAA,gBAAgB,GAAG,IAAI,qBAAM,CAAC,OAAO,CAAC;IAClD,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,uBAAuB;CAC7B,CAAC,CAAC;AAOH,MAAqB,WAAW;IAK/B;;OAEG;IACH,YAAY,EAAE,IAAI,EAAqB;QACtC,MAAM,IAAI,GAAG,IAAA,qBAAS,GAAE,CAAC;QAEzB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,IAAI,CAAC,eAAe,EAAE,CAAC;IACxB,CAAC;IAED,MAAM;QACL,MAAM,EAAE,MAAM,EAAE,GAAG,SAAG,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;YAC1C,MAAM,CAAC,IAAI,CAAC,oCAAoC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,eAAe;QACtB,MAAM,QAAQ,GAAG,IAAI,qBAAM,CAAC,QAAQ,EAAE,CAAC;QACvC,QAAQ,CAAC,cAAc,CAAC,wBAAgB,CAAC,CAAC;QAC1C,qBAAM,CAAC,qBAAqB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3D,8BAA8B;QAC9B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;YACzD,KAAK,CAAC,KAAK,IAAI,EAAE;gBAChB,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;gBAC9C,GAAG,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;YACpC,CAAC,CAAC,EAAE,CAAC;QACN,CAAC,CAAC,CAAC;IACJ,CAAC;CACD;AAxCD,8BAwCC"}
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/util/metrics.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "19.0
|
|
2
|
+
"version": "19.1.0",
|
|
3
3
|
"name": "@substrate/api-sidecar",
|
|
4
4
|
"description": "REST service that makes it easy to interact with blockchain nodes built using Substrate's FRAME framework.",
|
|
5
5
|
"homepage": "https://github.com/paritytech/substrate-api-sidecar#readme",
|
|
@@ -50,25 +50,25 @@
|
|
|
50
50
|
"test:test-release": "yarn build:scripts && node scripts/build/runYarnPack.js"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@polkadot/api": "^12.
|
|
54
|
-
"@polkadot/api-contract": "^12.
|
|
55
|
-
"@polkadot/util-crypto": "^
|
|
53
|
+
"@polkadot/api": "^12.3.1",
|
|
54
|
+
"@polkadot/api-contract": "^12.3.1",
|
|
55
|
+
"@polkadot/util-crypto": "^13.0.2",
|
|
56
56
|
"@substrate/calc": "^0.3.1",
|
|
57
57
|
"argparse": "^2.0.1",
|
|
58
|
-
"confmgr": "^1.0
|
|
58
|
+
"confmgr": "^1.1.0",
|
|
59
59
|
"express": "^4.19.2",
|
|
60
60
|
"express-winston": "^4.2.0",
|
|
61
61
|
"http-errors": "^2.0.0",
|
|
62
|
-
"lru-cache": "^10.
|
|
63
|
-
"prom-client": "^15.1.
|
|
62
|
+
"lru-cache": "^10.4.3",
|
|
63
|
+
"prom-client": "^15.1.3",
|
|
64
64
|
"rxjs": "^7.8.1",
|
|
65
|
-
"winston": "^3.
|
|
65
|
+
"winston": "^3.14.1"
|
|
66
66
|
},
|
|
67
67
|
"devDependencies": {
|
|
68
68
|
"@substrate/dev": "^0.7.1",
|
|
69
69
|
"@types/argparse": "2.0.16",
|
|
70
70
|
"@types/express": "^4.17.21",
|
|
71
|
-
"@types/express-serve-static-core": "^4.19.
|
|
71
|
+
"@types/express-serve-static-core": "^4.19.5",
|
|
72
72
|
"@types/http-errors": "2.0.4",
|
|
73
73
|
"@types/lru-cache": "^7.10.10",
|
|
74
74
|
"@types/morgan": "1.9.9",
|