@substrate/api-sidecar 20.7.3 → 20.8.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 (31) hide show
  1. package/build/package.json +1 -1
  2. package/build/src/chains-config/assetHubKusamaControllers.js +1 -0
  3. package/build/src/chains-config/assetHubKusamaControllers.js.map +1 -1
  4. package/build/src/chains-config/assetHubNextWestendControllers.js +1 -0
  5. package/build/src/chains-config/assetHubNextWestendControllers.js.map +1 -1
  6. package/build/src/chains-config/assetHubPolkadotControllers.js +1 -0
  7. package/build/src/chains-config/assetHubPolkadotControllers.js.map +1 -1
  8. package/build/src/chains-config/assetHubWestendControllers.js +1 -0
  9. package/build/src/chains-config/assetHubWestendControllers.js.map +1 -1
  10. package/build/src/controllers/index.d.ts +2 -1
  11. package/build/src/controllers/index.js +1 -0
  12. package/build/src/controllers/index.js.map +1 -1
  13. package/build/src/controllers/paras/ParasInclusionController.d.ts +16 -0
  14. package/build/src/controllers/paras/ParasInclusionController.js +71 -0
  15. package/build/src/controllers/paras/ParasInclusionController.js.map +1 -0
  16. package/build/src/controllers/paras/index.d.ts +1 -0
  17. package/build/src/controllers/paras/index.js +3 -1
  18. package/build/src/controllers/paras/index.js.map +1 -1
  19. package/build/src/services/paras/ParasInclusionService.d.ts +24 -0
  20. package/build/src/services/paras/ParasInclusionService.js +110 -0
  21. package/build/src/services/paras/ParasInclusionService.js.map +1 -0
  22. package/build/src/services/paras/index.d.ts +1 -0
  23. package/build/src/services/paras/index.js +1 -0
  24. package/build/src/services/paras/index.js.map +1 -1
  25. package/build/src/types/responses/ParachainInclusion.d.ts +8 -0
  26. package/build/src/types/responses/ParachainInclusion.js +18 -0
  27. package/build/src/types/responses/ParachainInclusion.js.map +1 -0
  28. package/build/src/types/responses/index.d.ts +1 -0
  29. package/build/src/types/responses/index.js +1 -0
  30. package/build/src/types/responses/index.js.map +1 -1
  31. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "20.7.3",
2
+ "version": "20.8.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",
@@ -39,6 +39,7 @@ exports.assetHubKusamaControllers = {
39
39
  'PalletsErrors',
40
40
  'PalletsEvents',
41
41
  'PalletsForeignAssets',
42
+ 'ParasInclusion',
42
43
  'RcAccountsBalanceInfo',
43
44
  'RcAccountsProxyInfo',
44
45
  'RcAccountsStakingInfo',
@@ -1 +1 @@
1
- {"version":3,"file":"assetHubKusamaControllers.js","sourceRoot":"","sources":["../../../src/chains-config/assetHubKusamaControllers.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,yBAAyB,GAAqB;IAC1D,WAAW,EAAE;QACZ,gBAAgB;QAChB,qBAAqB;QACrB,iBAAiB;QACjB,kBAAkB;QAClB,SAAS;QACT,QAAQ;QACR,kBAAkB;QAClB,qBAAqB;QACrB,aAAa;QACb,qBAAqB;QACrB,aAAa;QACb,eAAe;QACf,wBAAwB;QACxB,eAAe;QACf,eAAe;QACf,eAAe;QACf,sBAAsB;QACtB,uBAAuB;QACvB,qBAAqB;QACrB,uBAAuB;QACvB,0BAA0B;QAC1B,uBAAuB;QACvB,UAAU;QACV,oBAAoB;QACpB,uBAAuB;QACvB,eAAe;QACf,iBAAiB;QACjB,wBAAwB;QACxB,iBAAiB;QACjB,iBAAiB;QACjB,0BAA0B;QAC1B,kBAAkB;QAClB,4BAA4B;QAC5B,eAAe;QACf,mBAAmB;QACnB,eAAe;QACf,eAAe;QACf,uBAAuB;QACvB,eAAe;QACf,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,IAAI,EAAE,IAAI,CAAC;KACpD;CACD,CAAC"}
1
+ {"version":3,"file":"assetHubKusamaControllers.js","sourceRoot":"","sources":["../../../src/chains-config/assetHubKusamaControllers.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,yBAAyB,GAAqB;IAC1D,WAAW,EAAE;QACZ,gBAAgB;QAChB,qBAAqB;QACrB,iBAAiB;QACjB,kBAAkB;QAClB,SAAS;QACT,QAAQ;QACR,kBAAkB;QAClB,qBAAqB;QACrB,aAAa;QACb,qBAAqB;QACrB,aAAa;QACb,eAAe;QACf,wBAAwB;QACxB,eAAe;QACf,eAAe;QACf,eAAe;QACf,sBAAsB;QACtB,gBAAgB;QAChB,uBAAuB;QACvB,qBAAqB;QACrB,uBAAuB;QACvB,0BAA0B;QAC1B,uBAAuB;QACvB,UAAU;QACV,oBAAoB;QACpB,uBAAuB;QACvB,eAAe;QACf,iBAAiB;QACjB,wBAAwB;QACxB,iBAAiB;QACjB,iBAAiB;QACjB,0BAA0B;QAC1B,kBAAkB;QAClB,4BAA4B;QAC5B,eAAe;QACf,mBAAmB;QACnB,eAAe;QACf,eAAe;QACf,uBAAuB;QACvB,eAAe;QACf,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,IAAI,EAAE,IAAI,CAAC;KACpD;CACD,CAAC"}
@@ -50,6 +50,7 @@ exports.assetHubNextWestendControllers = {
50
50
  'PalletsStakingValidators',
51
51
  'PalletsStorage',
52
52
  'PalletsPoolAssets',
53
+ 'ParasInclusion',
53
54
  'RcAccountsBalanceInfo',
54
55
  'RcAccountsProxyInfo',
55
56
  'RcAccountsStakingInfo',
@@ -1 +1 @@
1
- {"version":3,"file":"assetHubNextWestendControllers.js","sourceRoot":"","sources":["../../../src/chains-config/assetHubNextWestendControllers.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,8BAA8B,GAAqB;IAC/D,WAAW,EAAE;QACZ,gBAAgB;QAChB,qBAAqB;QACrB,oBAAoB;QACpB,mBAAmB;QACnB,qBAAqB;QACrB,wBAAwB;QACxB,kBAAkB;QAClB,qBAAqB;QACrB,SAAS;QACT,QAAQ;QACR,kBAAkB;QAClB,qBAAqB;QACrB,aAAa;QACb,qBAAqB;QACrB,aAAa;QACb,eAAe;QACf,wBAAwB;QACxB,eAAe;QACf,sBAAsB;QACtB,eAAe;QACf,eAAe;QACf,sBAAsB;QACtB,wBAAwB;QACxB,yBAAyB;QACzB,wBAAwB;QACxB,0BAA0B;QAC1B,gBAAgB;QAChB,mBAAmB;QACnB,uBAAuB;QACvB,qBAAqB;QACrB,uBAAuB;QACvB,0BAA0B;QAC1B,uBAAuB;QACvB,UAAU;QACV,oBAAoB;QACpB,uBAAuB;QACvB,eAAe;QACf,iBAAiB;QACjB,wBAAwB;QACxB,iBAAiB;QACjB,iBAAiB;QACjB,2BAA2B;QAC3B,0BAA0B;QAC1B,4BAA4B;QAC5B,kBAAkB;QAClB,eAAe;QACf,mBAAmB;QACnB,eAAe;QACf,eAAe;QACf,uBAAuB;QACvB,eAAe;QACf,aAAa;QACb,iBAAiB;QACjB,aAAa;QACb,mBAAmB;QACnB,wBAAwB;QACxB,qBAAqB;QACrB,mBAAmB;KACnB;IACD,OAAO,EAAE;QACR,SAAS,EAAE,IAAI;QACf,iBAAiB,EAAE,GAAG;QACtB,UAAU,EAAE,IAAA,oBAAY,GAAE;QAC1B,cAAc,EAAE,IAAI,4BAAoB,CAAC,IAAI,EAAE,IAAI,CAAC;KACpD;CACD,CAAC"}
1
+ {"version":3,"file":"assetHubNextWestendControllers.js","sourceRoot":"","sources":["../../../src/chains-config/assetHubNextWestendControllers.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,8BAA8B,GAAqB;IAC/D,WAAW,EAAE;QACZ,gBAAgB;QAChB,qBAAqB;QACrB,oBAAoB;QACpB,mBAAmB;QACnB,qBAAqB;QACrB,wBAAwB;QACxB,kBAAkB;QAClB,qBAAqB;QACrB,SAAS;QACT,QAAQ;QACR,kBAAkB;QAClB,qBAAqB;QACrB,aAAa;QACb,qBAAqB;QACrB,aAAa;QACb,eAAe;QACf,wBAAwB;QACxB,eAAe;QACf,sBAAsB;QACtB,eAAe;QACf,eAAe;QACf,sBAAsB;QACtB,wBAAwB;QACxB,yBAAyB;QACzB,wBAAwB;QACxB,0BAA0B;QAC1B,gBAAgB;QAChB,mBAAmB;QACnB,gBAAgB;QAChB,uBAAuB;QACvB,qBAAqB;QACrB,uBAAuB;QACvB,0BAA0B;QAC1B,uBAAuB;QACvB,UAAU;QACV,oBAAoB;QACpB,uBAAuB;QACvB,eAAe;QACf,iBAAiB;QACjB,wBAAwB;QACxB,iBAAiB;QACjB,iBAAiB;QACjB,2BAA2B;QAC3B,0BAA0B;QAC1B,4BAA4B;QAC5B,kBAAkB;QAClB,eAAe;QACf,mBAAmB;QACnB,eAAe;QACf,eAAe;QACf,uBAAuB;QACvB,eAAe;QACf,aAAa;QACb,iBAAiB;QACjB,aAAa;QACb,mBAAmB;QACnB,wBAAwB;QACxB,qBAAqB;QACrB,mBAAmB;KACnB;IACD,OAAO,EAAE;QACR,SAAS,EAAE,IAAI;QACf,iBAAiB,EAAE,GAAG;QACtB,UAAU,EAAE,IAAA,oBAAY,GAAE;QAC1B,cAAc,EAAE,IAAI,4BAAoB,CAAC,IAAI,EAAE,IAAI,CAAC;KACpD;CACD,CAAC"}
@@ -41,6 +41,7 @@ exports.assetHubPolkadotControllers = {
41
41
  'PalletsEvents',
42
42
  'PalletsErrors',
43
43
  'PalletsForeignAssets',
44
+ 'ParasInclusion',
44
45
  'RcAccountsBalanceInfo',
45
46
  'RcAccountsProxyInfo',
46
47
  'RcAccountsStakingInfo',
@@ -1 +1 @@
1
- {"version":3,"file":"assetHubPolkadotControllers.js","sourceRoot":"","sources":["../../../src/chains-config/assetHubPolkadotControllers.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,2BAA2B,GAAqB;IAC5D,WAAW,EAAE;QACZ,gBAAgB;QAChB,qBAAqB;QACrB,iBAAiB;QACjB,mBAAmB;QACnB,kBAAkB;QAClB,SAAS;QACT,QAAQ;QACR,kBAAkB;QAClB,qBAAqB;QACrB,aAAa;QACb,qBAAqB;QACrB,aAAa;QACb,eAAe;QACf,wBAAwB;QACxB,sBAAsB;QACtB,eAAe;QACf,eAAe;QACf,eAAe;QACf,sBAAsB;QACtB,uBAAuB;QACvB,qBAAqB;QACrB,uBAAuB;QACvB,0BAA0B;QAC1B,uBAAuB;QACvB,UAAU;QACV,oBAAoB;QACpB,uBAAuB;QACvB,eAAe;QACf,iBAAiB;QACjB,wBAAwB;QACxB,iBAAiB;QACjB,iBAAiB;QACjB,0BAA0B;QAC1B,4BAA4B;QAC5B,kBAAkB;QAClB,eAAe;QACf,mBAAmB;QACnB,eAAe;QACf,eAAe;QACf,uBAAuB;QACvB,eAAe;QACf,aAAa;QACb,iBAAiB;QACjB,aAAa;QACb,mBAAmB;QACnB,wBAAwB;QACxB,qBAAqB;QACrB,mBAAmB;KACnB;IACD,OAAO,EAAE;QACR,SAAS,EAAE,IAAI;QACf,iBAAiB,EAAE,GAAG;QACtB,UAAU,EAAE,IAAA,oBAAY,GAAE;QAC1B,cAAc,EAAE,IAAI,4BAAoB,CAAC,IAAI,EAAE,IAAI,CAAC;KACpD;CACD,CAAC"}
1
+ {"version":3,"file":"assetHubPolkadotControllers.js","sourceRoot":"","sources":["../../../src/chains-config/assetHubPolkadotControllers.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,2BAA2B,GAAqB;IAC5D,WAAW,EAAE;QACZ,gBAAgB;QAChB,qBAAqB;QACrB,iBAAiB;QACjB,mBAAmB;QACnB,kBAAkB;QAClB,SAAS;QACT,QAAQ;QACR,kBAAkB;QAClB,qBAAqB;QACrB,aAAa;QACb,qBAAqB;QACrB,aAAa;QACb,eAAe;QACf,wBAAwB;QACxB,sBAAsB;QACtB,eAAe;QACf,eAAe;QACf,eAAe;QACf,sBAAsB;QACtB,gBAAgB;QAChB,uBAAuB;QACvB,qBAAqB;QACrB,uBAAuB;QACvB,0BAA0B;QAC1B,uBAAuB;QACvB,UAAU;QACV,oBAAoB;QACpB,uBAAuB;QACvB,eAAe;QACf,iBAAiB;QACjB,wBAAwB;QACxB,iBAAiB;QACjB,iBAAiB;QACjB,0BAA0B;QAC1B,4BAA4B;QAC5B,kBAAkB;QAClB,eAAe;QACf,mBAAmB;QACnB,eAAe;QACf,eAAe;QACf,uBAAuB;QACvB,eAAe;QACf,aAAa;QACb,iBAAiB;QACjB,aAAa;QACb,mBAAmB;QACnB,wBAAwB;QACxB,qBAAqB;QACrB,mBAAmB;KACnB;IACD,OAAO,EAAE;QACR,SAAS,EAAE,IAAI;QACf,iBAAiB,EAAE,GAAG;QACtB,UAAU,EAAE,IAAA,oBAAY,GAAE;QAC1B,cAAc,EAAE,IAAI,4BAAoB,CAAC,IAAI,EAAE,IAAI,CAAC;KACpD;CACD,CAAC"}
@@ -50,6 +50,7 @@ exports.assetHubWestendControllers = {
50
50
  'RcPalletsStakingProgress',
51
51
  'PalletsStorage',
52
52
  'PalletsPoolAssets',
53
+ 'ParasInclusion',
53
54
  'RcAccountsBalanceInfo',
54
55
  'RcAccountsProxyInfo',
55
56
  'RcAccountsStakingInfo',
@@ -1 +1 @@
1
- {"version":3,"file":"assetHubWestendControllers.js","sourceRoot":"","sources":["../../../src/chains-config/assetHubWestendControllers.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,0BAA0B,GAAqB;IAC3D,WAAW,EAAE;QACZ,gBAAgB;QAChB,qBAAqB;QACrB,oBAAoB;QACpB,mBAAmB;QACnB,qBAAqB;QACrB,wBAAwB;QACxB,kBAAkB;QAClB,qBAAqB;QACrB,SAAS;QACT,QAAQ;QACR,kBAAkB;QAClB,qBAAqB;QACrB,aAAa;QACb,qBAAqB;QACrB,aAAa;QACb,eAAe;QACf,wBAAwB;QACxB,eAAe;QACf,sBAAsB;QACtB,eAAe;QACf,eAAe;QACf,sBAAsB;QACtB,wBAAwB;QACxB,yBAAyB;QACzB,wBAAwB;QACxB,0BAA0B;QAC1B,gBAAgB;QAChB,mBAAmB;QACnB,uBAAuB;QACvB,qBAAqB;QACrB,uBAAuB;QACvB,0BAA0B;QAC1B,uBAAuB;QACvB,UAAU;QACV,oBAAoB;QACpB,uBAAuB;QACvB,eAAe;QACf,iBAAiB;QACjB,wBAAwB;QACxB,iBAAiB;QACjB,iBAAiB;QACjB,2BAA2B;QAC3B,0BAA0B;QAC1B,4BAA4B;QAC5B,0BAA0B;QAC1B,kBAAkB;QAClB,eAAe;QACf,mBAAmB;QACnB,eAAe;QACf,eAAe;QACf,uBAAuB;QACvB,eAAe;QACf,aAAa;QACb,iBAAiB;QACjB,aAAa;QACb,mBAAmB;QACnB,wBAAwB;QACxB,qBAAqB;QACrB,mBAAmB;KACnB;IACD,OAAO,EAAE;QACR,SAAS,EAAE,IAAI;QACf,iBAAiB,EAAE,GAAG;QACtB,UAAU,EAAE,IAAA,oBAAY,GAAE;QAC1B,cAAc,EAAE,IAAI,4BAAoB,CAAC,IAAI,EAAE,IAAI,CAAC;KACpD;CACD,CAAC"}
1
+ {"version":3,"file":"assetHubWestendControllers.js","sourceRoot":"","sources":["../../../src/chains-config/assetHubWestendControllers.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,0BAA0B,GAAqB;IAC3D,WAAW,EAAE;QACZ,gBAAgB;QAChB,qBAAqB;QACrB,oBAAoB;QACpB,mBAAmB;QACnB,qBAAqB;QACrB,wBAAwB;QACxB,kBAAkB;QAClB,qBAAqB;QACrB,SAAS;QACT,QAAQ;QACR,kBAAkB;QAClB,qBAAqB;QACrB,aAAa;QACb,qBAAqB;QACrB,aAAa;QACb,eAAe;QACf,wBAAwB;QACxB,eAAe;QACf,sBAAsB;QACtB,eAAe;QACf,eAAe;QACf,sBAAsB;QACtB,wBAAwB;QACxB,yBAAyB;QACzB,wBAAwB;QACxB,0BAA0B;QAC1B,gBAAgB;QAChB,mBAAmB;QACnB,gBAAgB;QAChB,uBAAuB;QACvB,qBAAqB;QACrB,uBAAuB;QACvB,0BAA0B;QAC1B,uBAAuB;QACvB,UAAU;QACV,oBAAoB;QACpB,uBAAuB;QACvB,eAAe;QACf,iBAAiB;QACjB,wBAAwB;QACxB,iBAAiB;QACjB,iBAAiB;QACjB,2BAA2B;QAC3B,0BAA0B;QAC1B,4BAA4B;QAC5B,0BAA0B;QAC1B,kBAAkB;QAClB,eAAe;QACf,mBAAmB;QACnB,eAAe;QACf,eAAe;QACf,uBAAuB;QACvB,eAAe;QACf,aAAa;QACb,iBAAiB;QACjB,aAAa;QACb,mBAAmB;QACnB,wBAAwB;QACxB,qBAAqB;QACrB,mBAAmB;KACnB;IACD,OAAO,EAAE;QACR,SAAS,EAAE,IAAI;QACf,iBAAiB,EAAE,GAAG;QACtB,UAAU,EAAE,IAAA,oBAAY,GAAE;QAC1B,cAAc,EAAE,IAAI,4BAAoB,CAAC,IAAI,EAAE,IAAI,CAAC;KACpD;CACD,CAAC"}
@@ -5,7 +5,7 @@ import { ContractsInk } from './contracts';
5
5
  import { CoretimeChain, CoretimeGeneric } from './coretime';
6
6
  import { NodeNetwork, NodeTransactionPool, NodeVersion } from './node';
7
7
  import { PalletsAssetConversion, PalletsAssets, PalletsConsts, PalletsDispatchables, PalletsErrors, PalletsEvents, PalletsForeignAssets, PalletsNominationPools, PalletsOnGoingReferenda, PalletsPoolAssets, PalletsStakingProgress, PalletsStakingValidators, PalletsStorage } from './pallets';
8
- import { Paras } from './paras';
8
+ import { Paras, ParasInclusion } from './paras';
9
9
  import { RcAccountsBalanceInfo, RcAccountsProxyInfo, RcAccountsStakingInfo, RcAccountsStakingPayouts, RcAccountsVestingInfo } from './rc/accounts';
10
10
  import { RcBlocks, RcBlocksExtrinsics, RcBlocksRawExtrinsics, RcBlocksTrace } from './rc/blocks';
11
11
  import { RcNodeNetwork, RcNodeTransactionPool, RcNodeVersion } from './rc/node';
@@ -80,6 +80,7 @@ export declare const controllers: {
80
80
  TransactionMaterial: typeof TransactionMaterial;
81
81
  TransactionSubmit: typeof TransactionSubmit;
82
82
  Paras: typeof Paras;
83
+ ParasInclusion: typeof ParasInclusion;
83
84
  CoretimeGeneric: typeof CoretimeGeneric;
84
85
  CoretimeChain: typeof CoretimeChain;
85
86
  };
@@ -98,6 +98,7 @@ exports.controllers = {
98
98
  TransactionMaterial: transaction_1.TransactionMaterial,
99
99
  TransactionSubmit: transaction_1.TransactionSubmit,
100
100
  Paras: paras_1.Paras,
101
+ ParasInclusion: paras_1.ParasInclusion,
101
102
  CoretimeGeneric: coretime_1.CoretimeGeneric,
102
103
  CoretimeChain: coretime_1.CoretimeChain,
103
104
  };
@@ -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,yCAWoB;AACpB,+BAAgC;AAChC,qCAAsF;AACtF,2CAA2C;AAC3C,yCAA4D;AAC5D,iCAAuE;AACvE,uCAcmB;AACnB,mCAAgC;AAChC,4CAMuB;AACvB,wCAAiG;AACjG,oCAAgF;AAChF,0CASsB;AACtB,0CAA+E;AAC/E,uCAAsE;AACtE,+CAAkH;AAClH;;GAEG;AACU,QAAA,WAAW,GAAG;IAC1B,OAAO,EAAP,aAAO;IACP,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,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,qBAAqB,EAArB,gCAAqB;IACrB,mBAAmB,EAAnB,8BAAmB;IACnB,qBAAqB,EAArB,gCAAqB;IACrB,wBAAwB,EAAxB,mCAAwB;IACxB,qBAAqB,EAArB,gCAAqB;IACrB,QAAQ,EAAR,iBAAQ;IACR,kBAAkB,EAAlB,2BAAkB;IAClB,qBAAqB,EAArB,8BAAqB;IACrB,aAAa,EAAb,sBAAa;IACb,eAAe,EAAf,yBAAe;IACf,sBAAsB,EAAtB,gCAAsB;IACtB,eAAe,EAAf,yBAAe;IACf,eAAe,EAAf,yBAAe;IACf,yBAAyB,EAAzB,mCAAyB;IACzB,wBAAwB,EAAxB,kCAAwB;IACxB,0BAA0B,EAA1B,oCAA0B;IAC1B,gBAAgB,EAAhB,0BAAgB;IAChB,aAAa,EAAb,uBAAa;IACb,iBAAiB,EAAjB,2BAAiB;IACjB,aAAa,EAAb,uBAAa;IACb,aAAa,EAAb,oBAAa;IACb,qBAAqB,EAArB,4BAAqB;IACrB,aAAa,EAAb,oBAAa;IACb,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;IACL,eAAe,EAAf,0BAAe;IACf,aAAa,EAAb,wBAAa;CACb,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,yCAWoB;AACpB,+BAAgC;AAChC,qCAAsF;AACtF,2CAA2C;AAC3C,yCAA4D;AAC5D,iCAAuE;AACvE,uCAcmB;AACnB,mCAAgD;AAChD,4CAMuB;AACvB,wCAAiG;AACjG,oCAAgF;AAChF,0CASsB;AACtB,0CAA+E;AAC/E,uCAAsE;AACtE,+CAAkH;AAClH;;GAEG;AACU,QAAA,WAAW,GAAG;IAC1B,OAAO,EAAP,aAAO;IACP,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,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,qBAAqB,EAArB,gCAAqB;IACrB,mBAAmB,EAAnB,8BAAmB;IACnB,qBAAqB,EAArB,gCAAqB;IACrB,wBAAwB,EAAxB,mCAAwB;IACxB,qBAAqB,EAArB,gCAAqB;IACrB,QAAQ,EAAR,iBAAQ;IACR,kBAAkB,EAAlB,2BAAkB;IAClB,qBAAqB,EAArB,8BAAqB;IACrB,aAAa,EAAb,sBAAa;IACb,eAAe,EAAf,yBAAe;IACf,sBAAsB,EAAtB,gCAAsB;IACtB,eAAe,EAAf,yBAAe;IACf,eAAe,EAAf,yBAAe;IACf,yBAAyB,EAAzB,mCAAyB;IACzB,wBAAwB,EAAxB,kCAAwB;IACxB,0BAA0B,EAA1B,oCAA0B;IAC1B,gBAAgB,EAAhB,0BAAgB;IAChB,aAAa,EAAb,uBAAa;IACb,iBAAiB,EAAjB,2BAAiB;IACjB,aAAa,EAAb,uBAAa;IACb,aAAa,EAAb,oBAAa;IACb,qBAAqB,EAArB,4BAAqB;IACrB,aAAa,EAAb,oBAAa;IACb,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;IACL,cAAc,EAAd,sBAAc;IACd,eAAe,EAAf,0BAAe;IACf,aAAa,EAAb,wBAAa;CACb,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { ParasInclusionService } from '../../services';
2
+ import AbstractController from '../AbstractController';
3
+ export default class ParasInclusionController extends AbstractController<ParasInclusionService> {
4
+ static controllerName: string;
5
+ static requiredPallets: string[][];
6
+ constructor(api: string);
7
+ protected initRoutes(): void;
8
+ /**
9
+ * Get inclusion information for a specific parachain block.
10
+ *
11
+ * @param number - The parachain block number
12
+ * @param at - Optional relay chain block hash to search from
13
+ * @param depth - Optional search depth (must be divisible by 5, defaults to 10)
14
+ */
15
+ private getParachainInclusion;
16
+ }
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ // Copyright 2017-2025 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 ParasInclusionController extends AbstractController_1.default {
24
+ constructor(api) {
25
+ super(api, '', new services_1.ParasInclusionService(api));
26
+ /**
27
+ * Get inclusion information for a specific parachain block.
28
+ *
29
+ * @param number - The parachain block number
30
+ * @param at - Optional relay chain block hash to search from
31
+ * @param depth - Optional search depth (must be divisible by 5, defaults to 10)
32
+ */
33
+ this.getParachainInclusion = async ({ params: { number }, query: { depth } }, res) => {
34
+ const [hash, paraId] = await Promise.all([
35
+ this.getHashFromAt(number),
36
+ this.api.query.parachainInfo.parachainId(),
37
+ ]);
38
+ // Validate and parse depth parameter
39
+ let searchDepth = 10; // default
40
+ if (depth) {
41
+ const parsedDepth = parseInt(depth, 10);
42
+ if (isNaN(parsedDepth) || parsedDepth <= 0) {
43
+ ParasInclusionController.sanitizedSend(res, { error: 'Invalid depth parameter. Must be a positive integer.' });
44
+ return;
45
+ }
46
+ if (parsedDepth % 5 !== 0) {
47
+ ParasInclusionController.sanitizedSend(res, {
48
+ error: 'Depth parameter must be divisible by 5 for optimal performance.',
49
+ });
50
+ return;
51
+ }
52
+ if (parsedDepth > 100) {
53
+ ParasInclusionController.sanitizedSend(res, {
54
+ error: 'Depth parameter cannot exceed 100 to prevent excessive network requests.',
55
+ });
56
+ return;
57
+ }
58
+ searchDepth = parsedDepth;
59
+ }
60
+ ParasInclusionController.sanitizedSend(res, await this.service.getParachainInclusion(hash, paraId, number, searchDepth));
61
+ };
62
+ this.initRoutes();
63
+ }
64
+ initRoutes() {
65
+ this.safeMountAsyncGetHandlers([['/paras/:number/inclusion', this.getParachainInclusion]]);
66
+ }
67
+ }
68
+ ParasInclusionController.controllerName = 'ParasInclusion';
69
+ ParasInclusionController.requiredPallets = [['parachainInfo']];
70
+ exports.default = ParasInclusionController;
71
+ //# sourceMappingURL=ParasInclusionController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParasInclusionController.js","sourceRoot":"","sources":["../../../../src/controllers/paras/ParasInclusionController.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,6CAAuD;AAEvD,+EAAuD;AAEvD,MAAqB,wBAAyB,SAAQ,4BAAyC;IAI9F,YAAY,GAAW;QACtB,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,gCAAqB,CAAC,GAAG,CAAC,CAAC,CAAC;QAQhD;;;;;;WAMG;QACK,0BAAqB,GAAiC,KAAK,EAClE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EACxC,GAAG,EACa,EAAE;YAClB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACxC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;gBAC1B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,EAAO;aAC/C,CAAC,CAAC;YAEH,qCAAqC;YACrC,IAAI,WAAW,GAAG,EAAE,CAAC,CAAC,UAAU;YAChC,IAAI,KAAK,EAAE,CAAC;gBACX,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAe,EAAE,EAAE,CAAC,CAAC;gBAClD,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;oBAC5C,wBAAwB,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,sDAAsD,EAAE,CAAC,CAAC;oBAC/G,OAAO;gBACR,CAAC;gBACD,IAAI,WAAW,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC3B,wBAAwB,CAAC,aAAa,CAAC,GAAG,EAAE;wBAC3C,KAAK,EAAE,iEAAiE;qBACxE,CAAC,CAAC;oBACH,OAAO;gBACR,CAAC;gBACD,IAAI,WAAW,GAAG,GAAG,EAAE,CAAC;oBACvB,wBAAwB,CAAC,aAAa,CAAC,GAAG,EAAE;wBAC3C,KAAK,EAAE,0EAA0E;qBACjF,CAAC,CAAC;oBACH,OAAO;gBACR,CAAC;gBACD,WAAW,GAAG,WAAW,CAAC;YAC3B,CAAC;YAED,wBAAwB,CAAC,aAAa,CACrC,GAAG,EACH,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAC3E,CAAC;QACH,CAAC,CAAC;QAlDD,IAAI,CAAC,UAAU,EAAE,CAAC;IACnB,CAAC;IAES,UAAU;QACnB,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,0BAA0B,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC5F,CAAC;;AAVM,uCAAc,GAAG,gBAAgB,AAAnB,CAAoB;AAClC,wCAAe,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,AAAtB,CAAuB;kBAFzB,wBAAwB"}
@@ -1 +1,2 @@
1
1
  export { default as Paras } from './ParasController';
2
+ export { default as ParasInclusion } from './ParasInclusionController';
@@ -18,7 +18,9 @@ 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.Paras = void 0;
21
+ exports.ParasInclusion = exports.Paras = void 0;
22
22
  var ParasController_1 = require("./ParasController");
23
23
  Object.defineProperty(exports, "Paras", { enumerable: true, get: function () { return __importDefault(ParasController_1).default; } });
24
+ var ParasInclusionController_1 = require("./ParasInclusionController");
25
+ Object.defineProperty(exports, "ParasInclusion", { enumerable: true, get: function () { return __importDefault(ParasInclusionController_1).default; } });
24
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/controllers/paras/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,qDAAqD;AAA5C,yHAAA,OAAO,OAAS"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/controllers/paras/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,qDAAqD;AAA5C,yHAAA,OAAO,OAAS;AACzB,uEAAuE;AAA9D,2IAAA,OAAO,OAAkB"}
@@ -0,0 +1,24 @@
1
+ import { BlockHash } from '@polkadot/types/interfaces';
2
+ import { u32 } from '@polkadot/types-codec';
3
+ import { IParachainInclusion } from '../../types/responses';
4
+ import { AbstractService } from '../AbstractService';
5
+ export declare class ParasInclusionService extends AbstractService {
6
+ constructor(api: string);
7
+ /**
8
+ * Find the relay chain inclusion information for a specific parachain block.
9
+ *
10
+ * @param hash - The relay chain block hash to start searching from
11
+ * @param blockNumber - The parachain block number
12
+ * @param depth - Search depth (defaults to 10)
13
+ */
14
+ getParachainInclusion(hash: BlockHash, paraId: u32, number: string, depth?: number): Promise<IParachainInclusion>;
15
+ /**
16
+ * Search relay chain blocks for inclusion of a specific parachain block
17
+ * Uses optimized candidate_events runtime API when available, falls back to system events for historical support
18
+ */
19
+ private searchForInclusion;
20
+ /**
21
+ * Search using system events
22
+ */
23
+ private searchWithSystemEvents;
24
+ }
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ // Copyright 2017-2025 Parity Technologies (UK) Ltd.
3
+ // This file is part of Substrate API Sidecar.
4
+ //
5
+ // Substrate API Sidecar is free software: you can redistribute it and/or modify
6
+ // it under the terms of the GNU General Public License as published by
7
+ // the Free Software Foundation, either version 3 of the License, or
8
+ // (at your option) any later version.
9
+ //
10
+ // This program is distributed in the hope that it will be useful,
11
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ // GNU General Public License for more details.
14
+ //
15
+ // You should have received a copy of the GNU General Public License
16
+ // along with this program. If not, see <http://www.gnu.org/licenses/>.
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.ParasInclusionService = void 0;
19
+ const apiRegistry_1 = require("../../apiRegistry");
20
+ const AbstractService_1 = require("../AbstractService");
21
+ class ParasInclusionService extends AbstractService_1.AbstractService {
22
+ constructor(api) {
23
+ super(api);
24
+ }
25
+ /**
26
+ * Find the relay chain inclusion information for a specific parachain block.
27
+ *
28
+ * @param hash - The relay chain block hash to start searching from
29
+ * @param blockNumber - The parachain block number
30
+ * @param depth - Search depth (defaults to 10)
31
+ */
32
+ async getParachainInclusion(hash, paraId, number, depth = 10) {
33
+ var _a;
34
+ const { api } = this;
35
+ const rcApi = (_a = apiRegistry_1.ApiPromiseRegistry.getApiByType('relay')[0]) === null || _a === void 0 ? void 0 : _a.api;
36
+ if (!rcApi) {
37
+ throw new Error('Relay chain api must be available');
38
+ }
39
+ const [apiAt, { block }] = await Promise.all([api.at(hash), api.rpc.chain.getBlock(hash)]);
40
+ const setValidationData = block.extrinsics.find((ext) => {
41
+ return ext.method.method.toString() === 'setValidationData';
42
+ });
43
+ if (!setValidationData) {
44
+ throw new Error("Block contains no set validation data. Can't find relayParentNumber");
45
+ }
46
+ const callArgs = apiAt.registry.createType('Call', setValidationData.method);
47
+ const { relayParentNumber } = callArgs.toJSON().args.data.validationData;
48
+ // Search for inclusion starting from relay_parent_number + 1
49
+ const inclusionNumber = await this.searchForInclusion(rcApi, paraId.toNumber(), number, // parachain block number
50
+ relayParentNumber, depth);
51
+ // For now, return a placeholder response
52
+ return {
53
+ parachainBlock: parseInt(number, 10),
54
+ parachainBlockHash: hash.toString(),
55
+ parachainId: paraId.toNumber(),
56
+ relayParentNumber,
57
+ inclusionNumber: inclusionNumber || null,
58
+ found: inclusionNumber !== null,
59
+ };
60
+ }
61
+ /**
62
+ * Search relay chain blocks for inclusion of a specific parachain block
63
+ * Uses optimized candidate_events runtime API when available, falls back to system events for historical support
64
+ */
65
+ async searchForInclusion(rcApi, paraId, parachainBlockNumber, relayParentNumber, maxDepth) {
66
+ return this.searchWithSystemEvents(rcApi, paraId, parachainBlockNumber, relayParentNumber, maxDepth);
67
+ }
68
+ /**
69
+ * Search using system events
70
+ */
71
+ async searchWithSystemEvents(rcApi, paraId, parachainBlockNumber, relayParentNumber, maxDepth) {
72
+ // The number is 5 here since most searches are relative to 2-4 blocks from the `relayParentNumber`.
73
+ // Therefore we give 1 extra block for extra room, while also minimizing the amount of searches we do.
74
+ const BATCH_SIZE = 5;
75
+ // Search in batches of 5 for optimal performance
76
+ for (let offset = 0; offset < maxDepth; offset += BATCH_SIZE) {
77
+ const batchSize = Math.min(BATCH_SIZE, maxDepth - offset);
78
+ const searchBlocks = Array.from({ length: batchSize }, (_, i) => relayParentNumber + offset + i + 1);
79
+ const searchPromises = searchBlocks.map(async (blockNum) => {
80
+ try {
81
+ const relayBlockHash = await rcApi.rpc.chain.getBlockHash(blockNum);
82
+ const rcApiAt = await rcApi.at(relayBlockHash);
83
+ const events = await rcApiAt.query.system.events();
84
+ const foundInclusion = events.find((record) => {
85
+ if (record.event.section === 'paraInclusion' && record.event.method === 'CandidateIncluded') {
86
+ const eventData = record.event.data[0].toJSON();
87
+ if (eventData.descriptor.paraId === paraId) {
88
+ const header = rcApiAt.registry.createType('Header', record.event.data[1]);
89
+ return header.number.toString() === parachainBlockNumber;
90
+ }
91
+ }
92
+ return false;
93
+ });
94
+ return foundInclusion ? blockNum : null;
95
+ }
96
+ catch {
97
+ return null;
98
+ }
99
+ });
100
+ const results = await Promise.all(searchPromises);
101
+ const found = results.find((result) => result !== null);
102
+ if (found) {
103
+ return found; // Early termination when found in this batch
104
+ }
105
+ }
106
+ return null; // Not found within search depth
107
+ }
108
+ }
109
+ exports.ParasInclusionService = ParasInclusionService;
110
+ //# sourceMappingURL=ParasInclusionService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParasInclusionService.js","sourceRoot":"","sources":["../../../../src/services/paras/ParasInclusionService.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
+ export * from './ParasInclusionService';
1
2
  export * from './ParasService';
@@ -29,5 +29,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
29
29
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
30
30
  };
31
31
  Object.defineProperty(exports, "__esModule", { value: true });
32
+ __exportStar(require("./ParasInclusionService"), exports);
32
33
  __exportStar(require("./ParasService"), exports);
33
34
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/paras/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,iDAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/paras/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,0DAAwC;AACxC,iDAA+B"}
@@ -0,0 +1,8 @@
1
+ export interface IParachainInclusion {
2
+ parachainBlock: number;
3
+ parachainBlockHash: string;
4
+ parachainId: number;
5
+ relayParentNumber: number;
6
+ inclusionNumber: number | null;
7
+ found: boolean;
8
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ // Copyright 2017-2025 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=ParachainInclusion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParachainInclusion.js","sourceRoot":"","sources":["../../../../src/types/responses/ParachainInclusion.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"}
@@ -36,6 +36,7 @@ export * from './PalletStakingProgress';
36
36
  export * from './PalletStakingValidators';
37
37
  export * from './PalletStorage';
38
38
  export * from './PalletStorageItem';
39
+ export * from './ParachainInclusion';
39
40
  export * from './Paras';
40
41
  export * from './Payout';
41
42
  export * from './PoolAssets';
@@ -67,6 +67,7 @@ __exportStar(require("./PalletStakingProgress"), exports);
67
67
  __exportStar(require("./PalletStakingValidators"), exports);
68
68
  __exportStar(require("./PalletStorage"), exports);
69
69
  __exportStar(require("./PalletStorageItem"), exports);
70
+ __exportStar(require("./ParachainInclusion"), exports);
70
71
  __exportStar(require("./Paras"), exports);
71
72
  __exportStar(require("./Payout"), exports);
72
73
  __exportStar(require("./PoolAssets"), 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,6CAA2B;AAC3B,+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
+ {"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,6CAA2B;AAC3B,+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,uDAAqC;AACrC,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"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "20.7.3",
2
+ "version": "20.8.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",