@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.
Files changed (42) hide show
  1. package/README.md +25 -6
  2. package/build/package.json +9 -9
  3. package/build/src/chains-config/defaultControllers.js +2 -1
  4. package/build/src/chains-config/defaultControllers.js.map +1 -1
  5. package/build/src/chains-config/kusamaControllers.js +2 -1
  6. package/build/src/chains-config/kusamaControllers.js.map +1 -1
  7. package/build/src/chains-config/polkadotControllers.js +2 -1
  8. package/build/src/chains-config/polkadotControllers.js.map +1 -1
  9. package/build/src/controllers/index.d.ts +2 -1
  10. package/build/src/controllers/index.js +2 -1
  11. package/build/src/controllers/index.js.map +1 -1
  12. package/build/src/controllers/pallets/PalletsOnGoingReferendaController.d.ts +14 -0
  13. package/build/src/controllers/pallets/PalletsOnGoingReferendaController.js +43 -0
  14. package/build/src/controllers/pallets/PalletsOnGoingReferendaController.js.map +1 -0
  15. package/build/src/controllers/pallets/index.d.ts +1 -0
  16. package/build/src/controllers/pallets/index.js +4 -2
  17. package/build/src/controllers/pallets/index.js.map +1 -1
  18. package/build/src/main.js +13 -10
  19. package/build/src/main.js.map +1 -1
  20. package/build/src/middleware/error/httpErrorMiddleware.js +0 -6
  21. package/build/src/middleware/error/httpErrorMiddleware.js.map +1 -1
  22. package/build/src/parseArgs.js +4 -0
  23. package/build/src/parseArgs.js.map +1 -1
  24. package/build/src/services/pallets/PalletsOnGoingReferendaService.d.ts +12 -0
  25. package/build/src/services/pallets/PalletsOnGoingReferendaService.js +53 -0
  26. package/build/src/services/pallets/PalletsOnGoingReferendaService.js.map +1 -0
  27. package/build/src/services/pallets/PalletsOnGoingReferendaService.spec.d.ts +1 -0
  28. package/build/src/services/pallets/PalletsOnGoingReferendaService.spec.js +77 -0
  29. package/build/src/services/pallets/PalletsOnGoingReferendaService.spec.js.map +1 -0
  30. package/build/src/services/pallets/index.d.ts +1 -0
  31. package/build/src/services/pallets/index.js +2 -1
  32. package/build/src/services/pallets/index.js.map +1 -1
  33. package/build/src/types/responses/PalletOnGoingReferenda.d.ts +14 -0
  34. package/build/src/types/responses/PalletOnGoingReferenda.js +18 -0
  35. package/build/src/types/responses/PalletOnGoingReferenda.js.map +1 -0
  36. package/build/src/types/responses/index.d.ts +1 -0
  37. package/build/src/types/responses/index.js +2 -1
  38. package/build/src/types/responses/index.js.map +1 -1
  39. package/build/src/util/metrics.d.ts +21 -6
  40. package/build/src/util/metrics.js +261 -16
  41. package/build/src/util/metrics.js.map +1 -1
  42. 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
- That way you will have access to the default prometheus metrics and one extra custom metric called `sas_http_errors` (of type counter). This counter is increased by 1 every time an http error has occured in sidecar.
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
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "19.0.2",
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.0.1",
54
- "@polkadot/api-contract": "^12.0.1",
55
- "@polkadot/util-crypto": "^12.6.2",
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.10",
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.2.2",
63
- "prom-client": "^15.1.2",
62
+ "lru-cache": "^10.4.3",
63
+ "prom-client": "^15.1.3",
64
64
  "rxjs": "^7.8.1",
65
- "winston": "^3.13.0"
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.1",
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-2022 Parity Technologies (UK) Ltd.
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-2022 Parity Technologies (UK) Ltd.
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-2022 Parity Technologies (UK) Ltd.
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-2023 Parity Technologies (UK) Ltd.
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,uCAamB;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,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"}
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-2023 Parity Technologies (UK) Ltd.
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: [(0, express_1.json)(), middleware.httpLoggerCreate(logger)],
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
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}
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,+CAA4C;AAC5C,gDAAsD;AACtD;;;;;;;;;;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,IAAA,qBAAS,GAAE,CAAC;IACzB,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;IACF,IAAI,IAAI,CAAC,UAAU,EAAE;QACpB,0BAAgB,CAAC,GAAG,EAAE,CAAC;KACvB;IACD,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;AAlBW,QAAA,mBAAmB,uBAkB9B"}
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"}
@@ -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;AAlBW,QAAA,SAAS,aAkBpB"}
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,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-2023 Parity Technologies (UK) Ltd.
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-2023 Parity Technologies (UK) Ltd.
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 client from 'prom-client';
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
- * Mount the metrics endpoint.
18
- */
19
- private metricsEndpoint;
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
- exports.httpErrorCounter = new prom_client_1.default.Counter({
12
- name: 'sas_http_errors',
13
- help: 'Number of HTTP Errors',
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.metricsEndpoint();
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
- * Mount the metrics endpoint.
34
- */
35
- metricsEndpoint() {
36
- const register = new prom_client_1.default.Registry();
37
- register.registerMetric(exports.httpErrorCounter);
38
- prom_client_1.default.collectDefaultMetrics({ register, prefix: 'sas_' });
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', register.contentType);
43
- res.send(await register.metrics());
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",
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.0.1",
54
- "@polkadot/api-contract": "^12.0.1",
55
- "@polkadot/util-crypto": "^12.6.2",
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.10",
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.2.2",
63
- "prom-client": "^15.1.2",
62
+ "lru-cache": "^10.4.3",
63
+ "prom-client": "^15.1.3",
64
64
  "rxjs": "^7.8.1",
65
- "winston": "^3.13.0"
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.1",
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",