@substrate/api-sidecar 19.0.2 → 19.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 +41 -15
- package/build/package.json +11 -10
- package/build/src/SidecarConfig.js +9 -1
- package/build/src/SidecarConfig.js.map +1 -1
- package/build/src/Specs.d.ts +1 -0
- package/build/src/Specs.js +34 -1
- package/build/src/Specs.js.map +1 -1
- 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/AbstractController.js.map +1 -1
- package/build/src/controllers/blocks/BlocksController.d.ts +2 -0
- package/build/src/controllers/blocks/BlocksController.js +87 -8
- package/build/src/controllers/blocks/BlocksController.js.map +1 -1
- package/build/src/controllers/blocks/BlocksExtrinsicsController.d.ts +1 -0
- package/build/src/controllers/blocks/BlocksExtrinsicsController.js +13 -2
- package/build/src/controllers/blocks/BlocksExtrinsicsController.js.map +1 -1
- package/build/src/controllers/blocks/BlocksRawExtrinsicsController.js +12 -3
- package/build/src/controllers/blocks/BlocksRawExtrinsicsController.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/logging/Log.js +11 -0
- package/build/src/logging/Log.js.map +1 -1
- package/build/src/main.js +14 -11
- package/build/src/main.js.map +1 -1
- package/build/src/metrics/Metrics.d.ts +31 -0
- package/build/src/metrics/Metrics.js +175 -0
- package/build/src/metrics/Metrics.js.map +1 -0
- package/build/src/metrics/config.d.ts +2 -0
- package/build/src/metrics/config.js +71 -0
- package/build/src/metrics/config.js.map +1 -0
- package/build/src/metrics/index.d.ts +2 -0
- package/build/src/metrics/index.js +33 -0
- package/build/src/metrics/index.js.map +1 -0
- package/build/src/middleware/error/httpErrorMiddleware.js +0 -6
- package/build/src/middleware/error/httpErrorMiddleware.js.map +1 -1
- package/build/src/parseArgs.js +0 -9
- package/build/src/parseArgs.js.map +1 -1
- package/build/src/services/accounts/AccountsAssetsService.js +1 -2
- package/build/src/services/accounts/AccountsAssetsService.js.map +1 -1
- package/build/src/services/accounts/AccountsPoolAssetsService.js +1 -2
- package/build/src/services/accounts/AccountsPoolAssetsService.js.map +1 -1
- package/build/src/services/accounts/AccountsStakingPayoutsService.js +4 -2
- package/build/src/services/accounts/AccountsStakingPayoutsService.js.map +1 -1
- package/build/src/services/blocks/BlocksService.d.ts +1 -3
- package/build/src/services/blocks/BlocksService.js +16 -26
- package/build/src/services/blocks/BlocksService.js.map +1 -1
- package/build/src/services/blocks/BlocksService.spec.js +6 -67
- package/build/src/services/blocks/BlocksService.spec.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/PalletsStakingProgressService.js +3 -3
- package/build/src/services/pallets/PalletsStakingProgressService.js.map +1 -1
- 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/metrics/index.d.ts +13 -0
- package/build/src/types/metrics/index.js +3 -0
- package/build/src/types/metrics/index.js.map +1 -0
- package/build/src/types/requests.d.ts +17 -0
- 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/types/sidecar-config/CONFIG.d.ts +7 -1
- package/build/src/types/sidecar-config/CONFIG.js +6 -0
- package/build/src/types/sidecar-config/CONFIG.js.map +1 -1
- package/build/src/types/sidecar-config/MODULES.d.ts +2 -1
- package/build/src/types/sidecar-config/MODULES.js +1 -0
- package/build/src/types/sidecar-config/MODULES.js.map +1 -1
- package/build/src/types/sidecar-config/SidecarConfig.d.ts +9 -0
- package/package.json +11 -10
- package/build/src/util/metrics.d.ts +0 -21
- package/build/src/util/metrics.js +0 -49
- package/build/src/util/metrics.js.map +0 -1
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
|
|
@@ -175,6 +170,14 @@ For more information on our configuration manager visit its readme [here](https:
|
|
|
175
170
|
- `SAS_SUBSTRATE_URL`: URL to which the RPC proxy will attempt to connect to, defaults to
|
|
176
171
|
`ws://127.0.0.1:9944`. Accepts both a websocket, and http URL.
|
|
177
172
|
|
|
173
|
+
### Metrics Server
|
|
174
|
+
|
|
175
|
+
- `SAS_METRICS_ENABLED`: Boolean to enable the metrics server instance with Prometheus (server metrics) and Loki (logging) connections. Defaults to false.
|
|
176
|
+
- `SAS_METRICS_PROM_HOST`: The host of the prometheus server used to listen to metrics emitted, defaults to `127.0.0.1`.
|
|
177
|
+
- `SAS_METRICS_PROM_PORT`: The port of the prometheus server, defaults to `9100`.
|
|
178
|
+
- `SAS_METRICS_LOKI_HOST`: The host of the loki server used to pull the logs, defaults to `127.0.0.1`.
|
|
179
|
+
- `SAS_METRICS_LOKI_PORT`: The port of the loki server, defaults to `3100`
|
|
180
|
+
|
|
178
181
|
#### Custom substrate types
|
|
179
182
|
|
|
180
183
|
Some chains require custom type definitions in order for Sidecar to know how to decode the data
|
|
@@ -244,24 +247,44 @@ file you can `symlink` it with `.env.test`. For example you could run
|
|
|
244
247
|
commands `ln` and `unlink` for more info.)
|
|
245
248
|
|
|
246
249
|
### Prometheus server
|
|
247
|
-
Prometheus metrics can be enabled by running sidecar with the following flag :
|
|
248
|
-
|
|
249
|
-
```bash
|
|
250
|
-
yarn start --prometheus
|
|
251
|
-
```
|
|
252
250
|
|
|
253
|
-
|
|
251
|
+
Prometheus metrics can be enabled by running sidecar with the following env configuration: `SAS_METRICS_ENABLED`=true
|
|
254
252
|
|
|
255
|
-
|
|
256
|
-
yarn start --prometheus --prometheus-port=<YOUR_CUSTOM_PORT>
|
|
257
|
-
```
|
|
253
|
+
You can also expand the metrics tracking capabilities to include query params by adding to the env configuration: `SAS_METRICS_INCLUDE_QUERYPARAMS`=true
|
|
258
254
|
|
|
259
255
|
The metrics endpoint can then be accessed :
|
|
260
256
|
- on the default port : `http://127.0.0.1:9100/metrics` or
|
|
261
257
|
- on your custom port if you defined one : `http://127.0.0.1:<YOUR_CUSTOM_PORT>/metrics`
|
|
262
258
|
|
|
263
|
-
|
|
259
|
+
A JSON format response is available at `http://127.0.0.1:9100/metrics.json`.
|
|
260
|
+
|
|
261
|
+
That way you will have access to the default prometheus node instance metrics and the following metrics will be emitted for each route:
|
|
264
262
|
|
|
263
|
+
- `sas_http_request_error`: type counter and tracks http errors occuring in sidecar
|
|
264
|
+
- `sas_http_request_success`: type counter and tracks successfull http requests
|
|
265
|
+
- `sas_http_requests`: type counter and tracks all http requests
|
|
266
|
+
- `sas_request_duration_seconds`: type histogram and tracks the latency of the requests
|
|
267
|
+
- `sas_response_size_bytes_seconds`: type histogram and tracks the response size of the requests
|
|
268
|
+
- `sas_response_size_latency_ratio_seconds`: type histogram and tracks the response bytes per second of the requests
|
|
269
|
+
|
|
270
|
+
The blocks controller also includes the following route-specific metrics:
|
|
271
|
+
|
|
272
|
+
- `sas_extrinsics_in_request`: type histogram and tracks the number of extrinsics returned in the request when a range of blocks is queried
|
|
273
|
+
- `sas_extrinsics_per_second`: type histogram and tracks the returned extrinics per second
|
|
274
|
+
- `sas_extrinsics_per_block`: type histogram and tracks the returned extrinsics per block
|
|
275
|
+
- `sas_seconds_per_block`: type histogram and tracks the request time per block
|
|
276
|
+
|
|
277
|
+
The metrics registry is injected in the Response object when the `SAS_METRICS_ENABLED` flag is set to `true` in the `.env` file, allowing to extend the controller based metrics to any given controller from within the controller functions.
|
|
278
|
+
|
|
279
|
+
To successfully run and access the metrics and logs in Grafana (for example) the following are required:
|
|
280
|
+
|
|
281
|
+
- prometheus server (info [here](https://prometheus.io/docs/prometheus/latest/getting_started/))
|
|
282
|
+
- loki server and promtail (info [here](https://grafana.com/docs/loki/latest/setup/install/))
|
|
283
|
+
|
|
284
|
+
For mac users using homebrew:
|
|
285
|
+
```bash
|
|
286
|
+
brew install prometheus loki promtail
|
|
287
|
+
```
|
|
265
288
|
|
|
266
289
|
## Debugging fee and staking payout calculations
|
|
267
290
|
|
|
@@ -352,6 +375,9 @@ All the commits in this repo follow the [Conventional Commits spec](https://www.
|
|
|
352
375
|
|
|
353
376
|
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
377
|
|
|
378
|
+
### Maintenance Guide
|
|
379
|
+
A more complete list of the maintainer's tasks can be found in the [MAINTENANCE.md](./guides/MAINTENANCE.md) guide.
|
|
380
|
+
|
|
355
381
|
## Hardware requirements
|
|
356
382
|
|
|
357
383
|
### Disk Space
|
package/build/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "19.0
|
|
2
|
+
"version": "19.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",
|
|
@@ -50,25 +50,26 @@
|
|
|
50
50
|
"test:test-release": "yarn build:scripts && node scripts/build/runYarnPack.js"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@polkadot/api": "^
|
|
54
|
-
"@polkadot/api-contract": "^
|
|
55
|
-
"@polkadot/util-crypto": "^
|
|
53
|
+
"@polkadot/api": "^13.2.1",
|
|
54
|
+
"@polkadot/api-contract": "^13.2.1",
|
|
55
|
+
"@polkadot/util-crypto": "^13.1.1",
|
|
56
56
|
"@substrate/calc": "^0.3.1",
|
|
57
57
|
"argparse": "^2.0.1",
|
|
58
|
-
"confmgr": "^1.0
|
|
59
|
-
"express": "^4.
|
|
58
|
+
"confmgr": "^1.1.0",
|
|
59
|
+
"express": "^4.21.0",
|
|
60
60
|
"express-winston": "^4.2.0",
|
|
61
61
|
"http-errors": "^2.0.0",
|
|
62
|
-
"lru-cache": "^
|
|
63
|
-
"prom-client": "^15.1.
|
|
62
|
+
"lru-cache": "^11.0.1",
|
|
63
|
+
"prom-client": "^15.1.3",
|
|
64
64
|
"rxjs": "^7.8.1",
|
|
65
|
-
"winston": "^3.
|
|
65
|
+
"winston": "^3.14.2",
|
|
66
|
+
"winston-loki": "^6.1.2"
|
|
66
67
|
},
|
|
67
68
|
"devDependencies": {
|
|
68
69
|
"@substrate/dev": "^0.7.1",
|
|
69
70
|
"@types/argparse": "2.0.16",
|
|
70
71
|
"@types/express": "^4.17.21",
|
|
71
|
-
"@types/express-serve-static-core": "^4.19.
|
|
72
|
+
"@types/express-serve-static-core": "^4.19.5",
|
|
72
73
|
"@types/http-errors": "2.0.4",
|
|
73
74
|
"@types/lru-cache": "^7.10.10",
|
|
74
75
|
"@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
|
|
@@ -69,6 +69,14 @@ class SidecarConfig {
|
|
|
69
69
|
WRITE_MAX_FILE_SIZE: config.Get(sidecar_config_1.MODULES.LOG, sidecar_config_1.CONFIG.WRITE_MAX_FILE_SIZE),
|
|
70
70
|
WRITE_MAX_FILES: config.Get(sidecar_config_1.MODULES.LOG, sidecar_config_1.CONFIG.WRITE_MAX_FILES),
|
|
71
71
|
},
|
|
72
|
+
METRICS: {
|
|
73
|
+
ENABLED: config.Get(sidecar_config_1.MODULES.METRICS, sidecar_config_1.CONFIG.ENABLED),
|
|
74
|
+
PROM_HOST: config.Get(sidecar_config_1.MODULES.METRICS, sidecar_config_1.CONFIG.PROM_HOST),
|
|
75
|
+
PROM_PORT: config.Get(sidecar_config_1.MODULES.METRICS, sidecar_config_1.CONFIG.PROM_PORT),
|
|
76
|
+
LOKI_HOST: config.Get(sidecar_config_1.MODULES.METRICS, sidecar_config_1.CONFIG.LOKI_HOST),
|
|
77
|
+
LOKI_PORT: config.Get(sidecar_config_1.MODULES.METRICS, sidecar_config_1.CONFIG.LOKI_PORT),
|
|
78
|
+
INCLUDE_QUERYPARAMS: config.Get(sidecar_config_1.MODULES.METRICS, sidecar_config_1.CONFIG.INCLUDE_QUERYPARAMS),
|
|
79
|
+
},
|
|
72
80
|
};
|
|
73
81
|
return this._config;
|
|
74
82
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SidecarConfig.js","sourceRoot":"","sources":["../../src/SidecarConfig.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SidecarConfig.js","sourceRoot":"","sources":["../../src/SidecarConfig.ts"],"names":[],"mappings":"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"}
|
package/build/src/Specs.d.ts
CHANGED
package/build/src/Specs.js
CHANGED
|
@@ -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
|
|
@@ -29,6 +29,7 @@ class Specs {
|
|
|
29
29
|
this.appendLogSpecs();
|
|
30
30
|
this.appendSubstrateSpecs();
|
|
31
31
|
this.appendExpressSpecs();
|
|
32
|
+
this.appendMetricsSpecs();
|
|
32
33
|
return this._specs;
|
|
33
34
|
}
|
|
34
35
|
/**
|
|
@@ -152,6 +153,38 @@ class Specs {
|
|
|
152
153
|
mandatory: false,
|
|
153
154
|
}));
|
|
154
155
|
}
|
|
156
|
+
static appendMetricsSpecs() {
|
|
157
|
+
if (!this._specs) {
|
|
158
|
+
throw APPEND_SPEC_ERROR;
|
|
159
|
+
}
|
|
160
|
+
this._specs.appendSpec(sidecar_config_1.MODULES.METRICS, this._specs.getSpec(sidecar_config_1.CONFIG.ENABLED, 'Whether or not to enable metrics', {
|
|
161
|
+
default: 'false',
|
|
162
|
+
type: 'boolean',
|
|
163
|
+
regexp: /^true|false$/,
|
|
164
|
+
}));
|
|
165
|
+
this._specs.appendSpec(sidecar_config_1.MODULES.METRICS, this._specs.getSpec(sidecar_config_1.CONFIG.PROM_HOST, 'Prometheus host', {
|
|
166
|
+
default: '127.0.0.1',
|
|
167
|
+
type: 'string',
|
|
168
|
+
}));
|
|
169
|
+
this._specs.appendSpec(sidecar_config_1.MODULES.METRICS, this._specs.getSpec(sidecar_config_1.CONFIG.PROM_PORT, 'Prometheus port', {
|
|
170
|
+
default: 9100,
|
|
171
|
+
type: 'number',
|
|
172
|
+
regexp: /^\d{2,6}$/,
|
|
173
|
+
}));
|
|
174
|
+
this._specs.appendSpec(sidecar_config_1.MODULES.METRICS, this._specs.getSpec(sidecar_config_1.CONFIG.LOKI_HOST, 'Loki host', {
|
|
175
|
+
default: '127.0.0.1',
|
|
176
|
+
type: 'string',
|
|
177
|
+
}));
|
|
178
|
+
this._specs.appendSpec(sidecar_config_1.MODULES.METRICS, this._specs.getSpec(sidecar_config_1.CONFIG.LOKI_PORT, 'Loki port', {
|
|
179
|
+
default: 3100,
|
|
180
|
+
type: 'number',
|
|
181
|
+
}));
|
|
182
|
+
this._specs.appendSpec(sidecar_config_1.MODULES.METRICS, this._specs.getSpec(sidecar_config_1.CONFIG.INCLUDE_QUERYPARAMS, 'Include query params in the labels of the metrics', {
|
|
183
|
+
default: 'false',
|
|
184
|
+
type: 'boolean',
|
|
185
|
+
regexp: /^true|false$/,
|
|
186
|
+
}));
|
|
187
|
+
}
|
|
155
188
|
}
|
|
156
189
|
exports.Specs = Specs;
|
|
157
190
|
//# sourceMappingURL=Specs.js.map
|
package/build/src/Specs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Specs.js","sourceRoot":"","sources":["../../src/Specs.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Specs.js","sourceRoot":"","sources":["../../src/Specs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright 2017-
|
|
2
|
+
// Copyright 2017-2024 Parity Technologies (UK) Ltd.
|
|
3
3
|
// This file is part of Substrate API Sidecar.
|
|
4
4
|
//
|
|
5
5
|
// Substrate API Sidecar is free software: you can redistribute it and/or modify
|
|
@@ -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"}
|
|
@@ -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;AAYzE,0CAA8C;AAC9C,4CAAqD;AAErD,0DAA2E;AAW3E;;GAEG;AACH,MAA8B,kBAAkB;
|
|
1
|
+
{"version":3,"file":"AbstractController.js","sourceRoot":"","sources":["../../../src/controllers/AbstractController.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,8 +71,10 @@ import AbstractController from '../AbstractController';
|
|
|
71
71
|
*/
|
|
72
72
|
export default class BlocksController extends AbstractController<BlocksService> {
|
|
73
73
|
private readonly options;
|
|
74
|
+
private blockStore;
|
|
74
75
|
constructor(api: ApiPromise, options: ControllerOptions);
|
|
75
76
|
protected initRoutes(): void;
|
|
77
|
+
private emitExtrinsicMetrics;
|
|
76
78
|
/**
|
|
77
79
|
* Get the latest block.
|
|
78
80
|
*
|
|
@@ -93,15 +93,40 @@ const AbstractController_1 = __importDefault(require("../AbstractController"));
|
|
|
93
93
|
*/
|
|
94
94
|
class BlocksController extends AbstractController_1.default {
|
|
95
95
|
constructor(api, options) {
|
|
96
|
-
super(api, '/blocks', new services_1.BlocksService(api, options.minCalcFeeRuntime, options.
|
|
96
|
+
super(api, '/blocks', new services_1.BlocksService(api, options.minCalcFeeRuntime, options.hasQueryFeeApi));
|
|
97
97
|
this.options = options;
|
|
98
|
+
this.emitExtrinsicMetrics = (totExtrinsics, totBlocks, method, path, res) => {
|
|
99
|
+
if (res.locals.metrics) {
|
|
100
|
+
const seconds = res.locals.metrics.timer();
|
|
101
|
+
const extrinsics_in_request = res.locals.metrics.registry['sas_extrinsics_in_request'];
|
|
102
|
+
extrinsics_in_request.labels({ method: method, route: path, status_code: res.statusCode }).observe(totExtrinsics);
|
|
103
|
+
const extrinsics_per_second = res.locals.metrics.registry['sas_extrinsics_per_second'];
|
|
104
|
+
extrinsics_per_second
|
|
105
|
+
.labels({ method: method, route: path, status_code: res.statusCode })
|
|
106
|
+
.observe(totExtrinsics / seconds);
|
|
107
|
+
const extrinsicsPerBlockMetrics = res.locals.metrics.registry['sas_extrinsics_per_block'];
|
|
108
|
+
extrinsicsPerBlockMetrics
|
|
109
|
+
.labels({ method: 'GET', route: path, status_code: res.statusCode })
|
|
110
|
+
.observe(totExtrinsics / totBlocks);
|
|
111
|
+
const seconds_per_block = res.locals.metrics.registry['sas_seconds_per_block'];
|
|
112
|
+
seconds_per_block
|
|
113
|
+
.labels({ method: method, route: path, status_code: res.statusCode })
|
|
114
|
+
.observe(seconds / totBlocks);
|
|
115
|
+
if (totBlocks > 1) {
|
|
116
|
+
const seconds_per_block = res.locals.metrics.registry['sas_seconds_per_block'];
|
|
117
|
+
seconds_per_block
|
|
118
|
+
.labels({ method: method, route: path, status_code: res.statusCode })
|
|
119
|
+
.observe(seconds / totBlocks);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
};
|
|
98
123
|
/**
|
|
99
124
|
* Get the latest block.
|
|
100
125
|
*
|
|
101
126
|
* @param _req Express Request
|
|
102
127
|
* @param res Express Response
|
|
103
128
|
*/
|
|
104
|
-
this.getLatestBlock = async ({ query: { eventDocs, extrinsicDocs, finalized, noFees, decodedXcmMsgs, paraId } }, res) => {
|
|
129
|
+
this.getLatestBlock = async ({ query: { eventDocs, extrinsicDocs, finalized, noFees, decodedXcmMsgs, paraId }, method, route }, res) => {
|
|
105
130
|
const eventDocsArg = eventDocs === 'true';
|
|
106
131
|
const extrinsicDocsArg = extrinsicDocs === 'true';
|
|
107
132
|
let hash, queryFinalizedHead, omitFinalizedTag;
|
|
@@ -126,7 +151,7 @@ class BlocksController extends AbstractController_1.default {
|
|
|
126
151
|
}
|
|
127
152
|
const noFeesArg = noFees === 'true';
|
|
128
153
|
const decodedXcmMsgsArg = decodedXcmMsgs === 'true';
|
|
129
|
-
const paraIdArg = paraId
|
|
154
|
+
const paraIdArg = paraId ? this.parseNumberOrThrow(paraId, 'paraId must be an integer') : undefined;
|
|
130
155
|
const options = {
|
|
131
156
|
eventDocs: eventDocsArg,
|
|
132
157
|
extrinsicDocs: extrinsicDocsArg,
|
|
@@ -137,8 +162,28 @@ class BlocksController extends AbstractController_1.default {
|
|
|
137
162
|
checkDecodedXcm: decodedXcmMsgsArg,
|
|
138
163
|
paraId: paraIdArg,
|
|
139
164
|
};
|
|
165
|
+
// Create a key for the cache that is a concatenation of the block hash and all the query params included in the request
|
|
166
|
+
const cacheKey = hash.toString() +
|
|
167
|
+
Number(options.eventDocs) +
|
|
168
|
+
Number(options.extrinsicDocs) +
|
|
169
|
+
Number(options.checkFinalized) +
|
|
170
|
+
Number(options.noFees) +
|
|
171
|
+
Number(options.checkDecodedXcm) +
|
|
172
|
+
Number(options.paraId);
|
|
173
|
+
const isBlockCached = this.blockStore.get(cacheKey);
|
|
174
|
+
if (isBlockCached) {
|
|
175
|
+
BlocksController.sanitizedSend(res, isBlockCached);
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
140
178
|
const historicApi = await this.api.at(hash);
|
|
141
|
-
|
|
179
|
+
const block = await this.service.fetchBlock(hash, historicApi, options);
|
|
180
|
+
this.blockStore.set(cacheKey, block);
|
|
181
|
+
BlocksController.sanitizedSend(res, block);
|
|
182
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
183
|
+
const path = route.path;
|
|
184
|
+
if (res.locals.metrics) {
|
|
185
|
+
this.emitExtrinsicMetrics(block.extrinsics.length, 1, method, path, res);
|
|
186
|
+
}
|
|
142
187
|
};
|
|
143
188
|
/**
|
|
144
189
|
* Get a block by its hash or number identifier.
|
|
@@ -146,7 +191,7 @@ class BlocksController extends AbstractController_1.default {
|
|
|
146
191
|
* @param req Express Request
|
|
147
192
|
* @param res Express Response
|
|
148
193
|
*/
|
|
149
|
-
this.getBlockById = async ({ params: { number }, query: { eventDocs, extrinsicDocs, noFees, finalizedKey, decodedXcmMsgs, paraId } }, res) => {
|
|
194
|
+
this.getBlockById = async ({ params: { number }, query: { eventDocs, extrinsicDocs, noFees, finalizedKey, decodedXcmMsgs, paraId }, method, route, }, res) => {
|
|
150
195
|
const checkFinalized = (0, util_1.isHex)(number);
|
|
151
196
|
const hash = await this.getHashForBlock(number);
|
|
152
197
|
const eventDocsArg = eventDocs === 'true';
|
|
@@ -159,7 +204,7 @@ class BlocksController extends AbstractController_1.default {
|
|
|
159
204
|
omitFinalizedTag = true;
|
|
160
205
|
}
|
|
161
206
|
const decodedXcmMsgsArg = decodedXcmMsgs === 'true';
|
|
162
|
-
const paraIdArg = paraId
|
|
207
|
+
const paraIdArg = paraId ? this.parseNumberOrThrow(paraId, 'paraId must be an integer') : undefined;
|
|
163
208
|
const options = {
|
|
164
209
|
eventDocs: eventDocsArg,
|
|
165
210
|
extrinsicDocs: extrinsicDocsArg,
|
|
@@ -170,10 +215,30 @@ class BlocksController extends AbstractController_1.default {
|
|
|
170
215
|
checkDecodedXcm: decodedXcmMsgsArg,
|
|
171
216
|
paraId: paraIdArg,
|
|
172
217
|
};
|
|
218
|
+
// Create a key for the cache that is a concatenation of the block hash and all the query params included in the request
|
|
219
|
+
const cacheKey = hash.toString() +
|
|
220
|
+
Number(options.eventDocs) +
|
|
221
|
+
Number(options.extrinsicDocs) +
|
|
222
|
+
Number(options.checkFinalized) +
|
|
223
|
+
Number(options.noFees) +
|
|
224
|
+
Number(options.checkDecodedXcm) +
|
|
225
|
+
Number(options.paraId);
|
|
226
|
+
const isBlockCached = this.blockStore.get(cacheKey);
|
|
227
|
+
if (isBlockCached) {
|
|
228
|
+
BlocksController.sanitizedSend(res, isBlockCached);
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
173
231
|
// HistoricApi to fetch any historic information that doesnt include the current runtime
|
|
174
232
|
const historicApi = await this.api.at(hash);
|
|
233
|
+
const block = await this.service.fetchBlock(hash, historicApi, options);
|
|
234
|
+
this.blockStore.set(cacheKey, block);
|
|
175
235
|
// We set the last param to true because we haven't queried the finalizedHead
|
|
176
|
-
BlocksController.sanitizedSend(res,
|
|
236
|
+
BlocksController.sanitizedSend(res, block);
|
|
237
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
238
|
+
const path = route.path;
|
|
239
|
+
if (res.locals.metrics) {
|
|
240
|
+
this.emitExtrinsicMetrics(block.extrinsics.length, 1, method, path, res);
|
|
241
|
+
}
|
|
177
242
|
};
|
|
178
243
|
/**
|
|
179
244
|
* Return the Header of the identified block.
|
|
@@ -202,7 +267,7 @@ class BlocksController extends AbstractController_1.default {
|
|
|
202
267
|
* @param req Express Request
|
|
203
268
|
* @param res Express Response
|
|
204
269
|
*/
|
|
205
|
-
this.getBlocks = async ({ query: { range, eventDocs, extrinsicDocs, noFees } }, res) => {
|
|
270
|
+
this.getBlocks = async ({ query: { range, eventDocs, extrinsicDocs, noFees }, method, route }, res) => {
|
|
206
271
|
if (!range)
|
|
207
272
|
throw new http_errors_1.BadRequest('range query parameter must be inputted.');
|
|
208
273
|
// We set a max range to 500 blocks.
|
|
@@ -236,13 +301,27 @@ class BlocksController extends AbstractController_1.default {
|
|
|
236
301
|
blocksPromise.push(result);
|
|
237
302
|
}
|
|
238
303
|
const blocks = (await Promise.all(blocksPromise));
|
|
304
|
+
blocksPromise.length = 0;
|
|
239
305
|
/**
|
|
240
306
|
* Sort blocks from least to greatest.
|
|
241
307
|
*/
|
|
242
308
|
blocks.sort((a, b) => a.number.toNumber() - b.number.toNumber());
|
|
243
309
|
BlocksController.sanitizedSend(res, blocks);
|
|
310
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
311
|
+
const path = route.path;
|
|
312
|
+
if (res.locals.metrics) {
|
|
313
|
+
const totExtrinsics = blocks.reduce((current, block) => {
|
|
314
|
+
const extrinsics = block.extrinsics;
|
|
315
|
+
if (Array.isArray(extrinsics)) {
|
|
316
|
+
return current + extrinsics.length;
|
|
317
|
+
}
|
|
318
|
+
return current;
|
|
319
|
+
}, 0);
|
|
320
|
+
this.emitExtrinsicMetrics(totExtrinsics, blocks.length, method, path, res);
|
|
321
|
+
}
|
|
244
322
|
};
|
|
245
323
|
this.initRoutes();
|
|
324
|
+
this.blockStore = options.blockStore;
|
|
246
325
|
}
|
|
247
326
|
initRoutes() {
|
|
248
327
|
this.router.use(this.path, (0, validate_1.validateBoolean)(['eventDocs', 'extrinsicDocs', 'finalized']));
|
|
@@ -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;AAEvC,6CAAyC;
|
|
1
|
+
{"version":3,"file":"BlocksController.js","sourceRoot":"","sources":["../../../../src/controllers/blocks/BlocksController.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { BlocksService } from '../../services';
|
|
|
3
3
|
import type { ControllerOptions } from '../../types/chains-config';
|
|
4
4
|
import AbstractController from '../AbstractController';
|
|
5
5
|
export default class BlocksExtrinsicsController extends AbstractController<BlocksService> {
|
|
6
|
+
private blockStore;
|
|
6
7
|
constructor(api: ApiPromise, options: ControllerOptions);
|
|
7
8
|
protected initRoutes(): void;
|
|
8
9
|
/**
|
|
@@ -22,7 +22,7 @@ const services_1 = require("../../services");
|
|
|
22
22
|
const AbstractController_1 = __importDefault(require("../AbstractController"));
|
|
23
23
|
class BlocksExtrinsicsController extends AbstractController_1.default {
|
|
24
24
|
constructor(api, options) {
|
|
25
|
-
super(api, '/blocks/:blockId/extrinsics', new services_1.BlocksService(api, options.minCalcFeeRuntime, options.
|
|
25
|
+
super(api, '/blocks/:blockId/extrinsics', new services_1.BlocksService(api, options.minCalcFeeRuntime, options.hasQueryFeeApi));
|
|
26
26
|
/**
|
|
27
27
|
*
|
|
28
28
|
* @param _req Express Request
|
|
@@ -43,8 +43,18 @@ class BlocksExtrinsicsController extends AbstractController_1.default {
|
|
|
43
43
|
checkDecodedXcm: false,
|
|
44
44
|
paraId: undefined,
|
|
45
45
|
};
|
|
46
|
+
const cacheKey = hash.toString() +
|
|
47
|
+
Number(options.eventDocs) +
|
|
48
|
+
Number(options.extrinsicDocs) +
|
|
49
|
+
Number(options.checkFinalized) +
|
|
50
|
+
Number(options.noFees) +
|
|
51
|
+
Number(options.checkDecodedXcm);
|
|
52
|
+
const isBlockCached = this.blockStore.get(cacheKey);
|
|
46
53
|
const historicApi = await this.api.at(hash);
|
|
47
|
-
const block = await this.service.fetchBlock(hash, historicApi, options);
|
|
54
|
+
const block = isBlockCached ? isBlockCached : await this.service.fetchBlock(hash, historicApi, options);
|
|
55
|
+
if (!isBlockCached) {
|
|
56
|
+
this.blockStore.set(cacheKey, block);
|
|
57
|
+
}
|
|
48
58
|
/**
|
|
49
59
|
* Verify our param `extrinsicIndex` is an integer represented as a string
|
|
50
60
|
*/
|
|
@@ -57,6 +67,7 @@ class BlocksExtrinsicsController extends AbstractController_1.default {
|
|
|
57
67
|
BlocksExtrinsicsController.sanitizedSend(res, this.service.fetchExtrinsicByIndex(block, index));
|
|
58
68
|
};
|
|
59
69
|
this.initRoutes();
|
|
70
|
+
this.blockStore = options.blockStore;
|
|
60
71
|
}
|
|
61
72
|
initRoutes() {
|
|
62
73
|
this.safeMountAsyncGetHandlers([['/:extrinsicIndex', this.getExtrinsicByTimepoint]]);
|