@substrate/api-sidecar 20.7.2 → 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.
- package/build/package.json +8 -8
- package/build/src/chains-config/assetHubKusamaControllers.js +1 -0
- package/build/src/chains-config/assetHubKusamaControllers.js.map +1 -1
- package/build/src/chains-config/assetHubNextWestendControllers.js +1 -0
- package/build/src/chains-config/assetHubNextWestendControllers.js.map +1 -1
- package/build/src/chains-config/assetHubPolkadotControllers.js +1 -0
- package/build/src/chains-config/assetHubPolkadotControllers.js.map +1 -1
- package/build/src/chains-config/assetHubWestendControllers.js +1 -0
- package/build/src/chains-config/assetHubWestendControllers.js.map +1 -1
- package/build/src/controllers/index.d.ts +2 -1
- package/build/src/controllers/index.js +1 -0
- package/build/src/controllers/index.js.map +1 -1
- package/build/src/controllers/paras/ParasInclusionController.d.ts +16 -0
- package/build/src/controllers/paras/ParasInclusionController.js +71 -0
- package/build/src/controllers/paras/ParasInclusionController.js.map +1 -0
- package/build/src/controllers/paras/index.d.ts +1 -0
- package/build/src/controllers/paras/index.js +3 -1
- package/build/src/controllers/paras/index.js.map +1 -1
- package/build/src/services/paras/ParasInclusionService.d.ts +24 -0
- package/build/src/services/paras/ParasInclusionService.js +110 -0
- package/build/src/services/paras/ParasInclusionService.js.map +1 -0
- package/build/src/services/paras/index.d.ts +1 -0
- package/build/src/services/paras/index.js +1 -0
- package/build/src/services/paras/index.js.map +1 -1
- package/build/src/types/responses/ParachainInclusion.d.ts +8 -0
- package/build/src/types/responses/ParachainInclusion.js +18 -0
- package/build/src/types/responses/ParachainInclusion.js.map +1 -0
- package/build/src/types/responses/index.d.ts +1 -0
- package/build/src/types/responses/index.js +1 -0
- package/build/src/types/responses/index.js.map +1 -1
- package/package.json +8 -8
package/build/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "20.
|
|
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",
|
|
@@ -51,13 +51,13 @@
|
|
|
51
51
|
"test:test-release": "yarn build:scripts && node scripts/build/runYarnPack.js"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@polkadot/api": "^16.
|
|
55
|
-
"@polkadot/api-augment": "^16.
|
|
56
|
-
"@polkadot/api-contract": "^16.
|
|
57
|
-
"@polkadot/types": "^16.
|
|
58
|
-
"@polkadot/types-codec": "^16.
|
|
59
|
-
"@polkadot/util": "^13.5.
|
|
60
|
-
"@polkadot/util-crypto": "^13.5.
|
|
54
|
+
"@polkadot/api": "^16.4.7",
|
|
55
|
+
"@polkadot/api-augment": "^16.4.7",
|
|
56
|
+
"@polkadot/api-contract": "^16.4.7",
|
|
57
|
+
"@polkadot/types": "^16.4.7",
|
|
58
|
+
"@polkadot/types-codec": "^16.4.7",
|
|
59
|
+
"@polkadot/util": "^13.5.6",
|
|
60
|
+
"@polkadot/util-crypto": "^13.5.6",
|
|
61
61
|
"@substrate/calc": "0.3.1",
|
|
62
62
|
"argparse": "^2.0.1",
|
|
63
63
|
"confmgr": "^1.1.0",
|
|
@@ -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"}
|
|
@@ -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"}
|
|
@@ -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"}
|
|
@@ -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,
|
|
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"}
|
|
@@ -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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"}
|
|
@@ -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,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.
|
|
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",
|
|
@@ -51,13 +51,13 @@
|
|
|
51
51
|
"test:test-release": "yarn build:scripts && node scripts/build/runYarnPack.js"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@polkadot/api": "^16.
|
|
55
|
-
"@polkadot/api-augment": "^16.
|
|
56
|
-
"@polkadot/api-contract": "^16.
|
|
57
|
-
"@polkadot/types": "^16.
|
|
58
|
-
"@polkadot/types-codec": "^16.
|
|
59
|
-
"@polkadot/util": "^13.5.
|
|
60
|
-
"@polkadot/util-crypto": "^13.5.
|
|
54
|
+
"@polkadot/api": "^16.4.7",
|
|
55
|
+
"@polkadot/api-augment": "^16.4.7",
|
|
56
|
+
"@polkadot/api-contract": "^16.4.7",
|
|
57
|
+
"@polkadot/types": "^16.4.7",
|
|
58
|
+
"@polkadot/types-codec": "^16.4.7",
|
|
59
|
+
"@polkadot/util": "^13.5.6",
|
|
60
|
+
"@polkadot/util-crypto": "^13.5.6",
|
|
61
61
|
"@substrate/calc": "0.3.1",
|
|
62
62
|
"argparse": "^2.0.1",
|
|
63
63
|
"confmgr": "^1.1.0",
|