@substrate/api-sidecar 19.4.0 → 20.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/package.json +9 -9
- package/build/src/chains-config/assetHubKusamaControllers.js +1 -0
- package/build/src/chains-config/assetHubKusamaControllers.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/chains-config/kusamaControllers.js +1 -0
- package/build/src/chains-config/kusamaControllers.js.map +1 -1
- package/build/src/chains-config/polkadotControllers.js +1 -0
- package/build/src/chains-config/polkadotControllers.js.map +1 -1
- package/build/src/chains-config/westendControllers.js +1 -0
- package/build/src/chains-config/westendControllers.js.map +1 -1
- package/build/src/controllers/accounts/AccountsCompareController.d.ts +8 -0
- package/build/src/controllers/accounts/AccountsCompareController.js +46 -0
- package/build/src/controllers/accounts/AccountsCompareController.js.map +1 -0
- package/build/src/controllers/accounts/AccountsStakingInfoController.d.ts +6 -0
- package/build/src/controllers/accounts/AccountsStakingInfoController.js +10 -3
- package/build/src/controllers/accounts/AccountsStakingInfoController.js.map +1 -1
- package/build/src/controllers/accounts/index.d.ts +1 -0
- package/build/src/controllers/accounts/index.js +3 -1
- package/build/src/controllers/accounts/index.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/middleware/validate/index.d.ts +1 -1
- package/build/src/middleware/validate/index.js +2 -1
- package/build/src/middleware/validate/index.js.map +1 -1
- package/build/src/middleware/validate/validateAddressMiddleware.d.ts +8 -0
- package/build/src/middleware/validate/validateAddressMiddleware.js +46 -1
- package/build/src/middleware/validate/validateAddressMiddleware.js.map +1 -1
- package/build/src/services/accounts/AccountsCompareService.d.ts +13 -0
- package/build/src/services/accounts/AccountsCompareService.js +54 -0
- package/build/src/services/accounts/AccountsCompareService.js.map +1 -0
- package/build/src/services/accounts/AccountsCompareService.spec.d.ts +1 -0
- package/build/src/services/accounts/AccountsCompareService.spec.js +85 -0
- package/build/src/services/accounts/AccountsCompareService.spec.js.map +1 -0
- package/build/src/services/accounts/AccountsStakingInfoService.d.ts +26 -1
- package/build/src/services/accounts/AccountsStakingInfoService.js +293 -13
- package/build/src/services/accounts/AccountsStakingInfoService.js.map +1 -1
- package/build/src/services/accounts/AccountsStakingInfoService.spec.d.ts +6 -0
- package/build/src/services/accounts/AccountsStakingInfoService.spec.js +106 -4
- package/build/src/services/accounts/AccountsStakingInfoService.spec.js.map +1 -1
- package/build/src/services/accounts/index.d.ts +1 -0
- package/build/src/services/accounts/index.js +1 -0
- package/build/src/services/accounts/index.js.map +1 -1
- package/build/src/services/blocks/BlocksTraceService.spec.js +1 -1
- package/build/src/services/blocks/BlocksTraceService.spec.js.map +1 -1
- package/build/src/types/requests.d.ts +3 -0
- package/build/src/types/responses/AccountCompare.d.ts +10 -0
- package/build/src/types/responses/AccountCompare.js +18 -0
- package/build/src/types/responses/AccountCompare.js.map +1 -0
- package/build/src/types/responses/AccountStakingInfo.d.ts +17 -3
- package/package.json +9 -9
package/build/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "
|
|
2
|
+
"version": "20.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,13 +50,13 @@
|
|
|
50
50
|
"test:test-release": "yarn build:scripts && node scripts/build/runYarnPack.js"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@polkadot/api": "^15.
|
|
54
|
-
"@polkadot/api-augment": "^15.
|
|
55
|
-
"@polkadot/api-contract": "^15.
|
|
56
|
-
"@polkadot/types": "^15.
|
|
57
|
-
"@polkadot/types-codec": "^15.
|
|
58
|
-
"@polkadot/util": "^13.3
|
|
59
|
-
"@polkadot/util-crypto": "^13.3
|
|
53
|
+
"@polkadot/api": "^15.6.1",
|
|
54
|
+
"@polkadot/api-augment": "^15.6.1",
|
|
55
|
+
"@polkadot/api-contract": "^15.6.1",
|
|
56
|
+
"@polkadot/types": "^15.6.1",
|
|
57
|
+
"@polkadot/types-codec": "^15.6.1",
|
|
58
|
+
"@polkadot/util": "^13.4.3",
|
|
59
|
+
"@polkadot/util-crypto": "^13.4.3",
|
|
60
60
|
"@substrate/calc": "^0.3.1",
|
|
61
61
|
"argparse": "^2.0.1",
|
|
62
62
|
"confmgr": "^1.1.0",
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"@substrate/dev": "^0.9.0",
|
|
74
74
|
"@types/argparse": "2.0.17",
|
|
75
75
|
"@types/express": "^5.0.0",
|
|
76
|
-
"@types/express-serve-static-core": "^5.0.
|
|
76
|
+
"@types/express-serve-static-core": "^5.0.6",
|
|
77
77
|
"@types/http-errors": "2.0.4",
|
|
78
78
|
"@types/lru-cache": "^7.10.10",
|
|
79
79
|
"@types/morgan": "1.9.9",
|
|
@@ -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,kBAAkB;QAClB,QAAQ;QACR,kBAAkB;QAClB,qBAAqB;QACrB,aAAa;QACb,qBAAqB;QACrB,aAAa;QACb,eAAe;QACf,wBAAwB;QACxB,eAAe;QACf,eAAe;QACf,eAAe;QACf,sBAAsB;QACtB,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,QAAQ;QACR,kBAAkB;QAClB,qBAAqB;QACrB,aAAa;QACb,qBAAqB;QACrB,aAAa;QACb,eAAe;QACf,wBAAwB;QACxB,eAAe;QACf,eAAe;QACf,eAAe;QACf,sBAAsB;QACtB,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":"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,mBAAmB;QACnB,kBAAkB;QAClB,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,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,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,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,mBAAmB;QACnB,oBAAoB;QACpB,kBAAkB;QAClB,QAAQ;QACR,kBAAkB;QAClB,qBAAqB;QACrB,aAAa;QACb,qBAAqB;QACrB,aAAa;QACb,eAAe;QACf,wBAAwB;QACxB,sBAAsB;QACtB,eAAe;QACf,eAAe;QACf,eAAe;QACf,mBAAmB;QACnB,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,iBAAiB;QACjB,mBAAmB;QACnB,oBAAoB;QACpB,kBAAkB;QAClB,QAAQ;QACR,kBAAkB;QAClB,qBAAqB;QACrB,aAAa;QACb,qBAAqB;QACrB,aAAa;QACb,eAAe;QACf,wBAAwB;QACxB,sBAAsB;QACtB,eAAe;QACf,eAAe;QACf,eAAe;QACf,mBAAmB;QACnB,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":"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;QACnB,iBAAiB;KACjB;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,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;QACnB,iBAAiB;KACjB;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 +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,yBAAyB;QACzB,wBAAwB;QACxB,0BAA0B;QAC1B,gBAAgB;QAChB,OAAO;QACP,aAAa;QACb,iBAAiB;QACjB,aAAa;QACb,mBAAmB;QACnB,wBAAwB;QACxB,qBAAqB;QACrB,mBAAmB;KACnB;IACD,OAAO,EAAE;QACR,SAAS,EAAE,IAAI;QACf,iBAAiB,EAAE,CAAC;QACpB,UAAU,EAAE,IAAA,oBAAY,GAAE;QAC1B,cAAc,EAAE,IAAI,4BAAoB,CAAC,EAAE,EAAE,EAAE,CAAC;KAChD;CACD,CAAC"}
|
|
1
|
+
{"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,iBAAiB;QACjB,mBAAmB;QACnB,qBAAqB;QACrB,wBAAwB;QACxB,kBAAkB;QAClB,qBAAqB;QACrB,QAAQ;QACR,kBAAkB;QAClB,aAAa;QACb,qBAAqB;QACrB,aAAa;QACb,qBAAqB;QACrB,aAAa;QACb,sBAAsB;QACtB,eAAe;QACf,eAAe;QACf,eAAe;QACf,wBAAwB;QACxB,yBAAyB;QACzB,wBAAwB;QACxB,0BAA0B;QAC1B,gBAAgB;QAChB,OAAO;QACP,aAAa;QACb,iBAAiB;QACjB,aAAa;QACb,mBAAmB;QACnB,wBAAwB;QACxB,qBAAqB;QACrB,mBAAmB;KACnB;IACD,OAAO,EAAE;QACR,SAAS,EAAE,IAAI;QACf,iBAAiB,EAAE,CAAC;QACpB,UAAU,EAAE,IAAA,oBAAY,GAAE;QAC1B,cAAc,EAAE,IAAI,4BAAoB,CAAC,EAAE,EAAE,EAAE,CAAC;KAChD;CACD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"westendControllers.js","sourceRoot":"","sources":["../../../src/chains-config/westendControllers.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,kBAAkB,GAAqB;IACnD,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;QACnB,iBAAiB;KACjB;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":"westendControllers.js","sourceRoot":"","sources":["../../../src/chains-config/westendControllers.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,kBAAkB,GAAqB;IACnD,WAAW,EAAE;QACZ,qBAAqB;QACrB,iBAAiB;QACjB,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;QACnB,iBAAiB;KACjB;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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ApiPromise } from '@polkadot/api';
|
|
2
|
+
import { AccountsCompareService } from '../../services/accounts';
|
|
3
|
+
import AbstractController from '../AbstractController';
|
|
4
|
+
export default class AccountsCompareController extends AbstractController<AccountsCompareService> {
|
|
5
|
+
constructor(api: ApiPromise);
|
|
6
|
+
protected initRoutes(): void;
|
|
7
|
+
private accountCompare;
|
|
8
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
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 http_errors_1 = require("http-errors");
|
|
22
|
+
const middleware_1 = require("../../middleware");
|
|
23
|
+
const accounts_1 = require("../../services/accounts");
|
|
24
|
+
const AbstractController_1 = __importDefault(require("../AbstractController"));
|
|
25
|
+
class AccountsCompareController extends AbstractController_1.default {
|
|
26
|
+
constructor(api) {
|
|
27
|
+
super(api, '/accounts/compare', new accounts_1.AccountsCompareService(api));
|
|
28
|
+
this.accountCompare = ({ query: { addresses } }, res) => {
|
|
29
|
+
const addressesArray = Array.isArray(addresses)
|
|
30
|
+
? addresses
|
|
31
|
+
: addresses.split(',');
|
|
32
|
+
// Check that the number of addresses is less than 30.
|
|
33
|
+
if (addressesArray.length > 30) {
|
|
34
|
+
throw new http_errors_1.BadRequest(`Please limit the amount of address parameters to 30.`);
|
|
35
|
+
}
|
|
36
|
+
AccountsCompareController.sanitizedSend(res, this.service.accountCompare(addressesArray));
|
|
37
|
+
};
|
|
38
|
+
this.initRoutes();
|
|
39
|
+
}
|
|
40
|
+
initRoutes() {
|
|
41
|
+
this.router.use(this.path, middleware_1.validateAddressQueryParam);
|
|
42
|
+
this.safeMountAsyncGetHandlers([['', this.accountCompare]]);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.default = AccountsCompareController;
|
|
46
|
+
//# sourceMappingURL=AccountsCompareController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccountsCompareController.js","sourceRoot":"","sources":["../../../../src/controllers/accounts/AccountsCompareController.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,8CAA8C;AAC9C,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,kEAAkE;AAClE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,wEAAwE;;;;;AAIxE,6CAAyC;AAEzC,iDAA6D;AAC7D,sDAAiE;AAEjE,+EAAuD;AAEvD,MAAqB,yBAA0B,SAAQ,4BAA0C;IAChG,YAAY,GAAe;QAC1B,KAAK,CAAC,GAAG,EAAE,mBAAmB,EAAE,IAAI,iCAAsB,CAAC,GAAG,CAAC,CAAC,CAAC;QAS1D,mBAAc,GAA0D,CAAC,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;YACjH,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;gBAC9C,CAAC,CAAE,SAA+B;gBAClC,CAAC,CAAE,SAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAEpC,sDAAsD;YACtD,IAAI,cAAc,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;gBAChC,MAAM,IAAI,wBAAU,CAAC,sDAAsD,CAAC,CAAC;YAC9E,CAAC;YAED,yBAAyB,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,cAA0B,CAAC,CAAC,CAAC;QACvG,CAAC,CAAC;QAnBD,IAAI,CAAC,UAAU,EAAE,CAAC;IACnB,CAAC;IAES,UAAU;QACnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,sCAAyB,CAAC,CAAC;QACtD,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;CAcD;AAvBD,4CAuBC"}
|
|
@@ -10,6 +10,12 @@ import AbstractController from '../AbstractController';
|
|
|
10
10
|
* Query:
|
|
11
11
|
* - (Optional)`at`: Block at which to retrieve runtime version information at. Block
|
|
12
12
|
* identifier, as the block height or block hash. Defaults to most recent block.
|
|
13
|
+
* - (Optional) `includeClaimedRewards`: Controls whether or not the `claimedRewards`
|
|
14
|
+
* field is included in the response. Defaults to `true`.
|
|
15
|
+
* If set to `false`:
|
|
16
|
+
* - the field `claimedRewards` will be omitted from the response and
|
|
17
|
+
* - all internal calculations for claimed rewards in `AccountsStakingInfoService`
|
|
18
|
+
* will be skipped, potentially speeding up the response time.
|
|
13
19
|
*
|
|
14
20
|
* Returns:
|
|
15
21
|
* - `at`: Block number and hash at which the call was made.
|
|
@@ -30,6 +30,12 @@ const AbstractController_1 = __importDefault(require("../AbstractController"));
|
|
|
30
30
|
* Query:
|
|
31
31
|
* - (Optional)`at`: Block at which to retrieve runtime version information at. Block
|
|
32
32
|
* identifier, as the block height or block hash. Defaults to most recent block.
|
|
33
|
+
* - (Optional) `includeClaimedRewards`: Controls whether or not the `claimedRewards`
|
|
34
|
+
* field is included in the response. Defaults to `true`.
|
|
35
|
+
* If set to `false`:
|
|
36
|
+
* - the field `claimedRewards` will be omitted from the response and
|
|
37
|
+
* - all internal calculations for claimed rewards in `AccountsStakingInfoService`
|
|
38
|
+
* will be skipped, potentially speeding up the response time.
|
|
33
39
|
*
|
|
34
40
|
* Returns:
|
|
35
41
|
* - `at`: Block number and hash at which the call was made.
|
|
@@ -71,14 +77,15 @@ class AccountsStakingInfoController extends AbstractController_1.default {
|
|
|
71
77
|
* @param req Express Request
|
|
72
78
|
* @param res Express Response
|
|
73
79
|
*/
|
|
74
|
-
this.getAccountStakingInfo = async ({ params: { address }, query: { at } }, res) => {
|
|
80
|
+
this.getAccountStakingInfo = async ({ params: { address }, query: { at, includeClaimedRewards } }, res) => {
|
|
75
81
|
const hash = await this.getHashFromAt(at);
|
|
76
|
-
|
|
82
|
+
const includeClaimedRewardsArg = includeClaimedRewards !== 'false';
|
|
83
|
+
AccountsStakingInfoController.sanitizedSend(res, await this.service.fetchAccountStakingInfo(hash, includeClaimedRewardsArg, address));
|
|
77
84
|
};
|
|
78
85
|
this.initRoutes();
|
|
79
86
|
}
|
|
80
87
|
initRoutes() {
|
|
81
|
-
this.router.use(this.path, middleware_1.validateAddress);
|
|
88
|
+
this.router.use(this.path, middleware_1.validateAddress, (0, middleware_1.validateBoolean)(['includeClaimedRewards']));
|
|
82
89
|
this.safeMountAsyncGetHandlers([['', this.getAccountStakingInfo]]);
|
|
83
90
|
}
|
|
84
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountsStakingInfoController.js","sourceRoot":"","sources":["../../../../src/controllers/accounts/AccountsStakingInfoController.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,
|
|
1
|
+
{"version":3,"file":"AccountsStakingInfoController.js","sourceRoot":"","sources":["../../../../src/controllers/accounts/AccountsStakingInfoController.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,iDAAoE;AACpE,6CAA4D;AAC5D,+EAAuD;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAqB,6BAA8B,SAAQ,4BAA8C;IACxG,YAAY,GAAe;QAC1B,KAAK,CAAC,GAAG,EAAE,iCAAiC,EAAE,IAAI,qCAA0B,CAAC,GAAG,CAAC,CAAC,CAAC;QAUpF;;;;;WAKG;QACK,0BAAqB,GAAkC,KAAK,EACnE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAC7D,GAAG,EACa,EAAE;YAClB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAC1C,MAAM,wBAAwB,GAAG,qBAAqB,KAAK,OAAO,CAAC;YACnE,6BAA6B,CAAC,aAAa,CAC1C,GAAG,EACH,MAAM,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAE,wBAAwB,EAAE,OAAO,CAAC,CACnF,CAAC;QACH,CAAC,CAAC;QAzBD,IAAI,CAAC,UAAU,EAAE,CAAC;IACnB,CAAC;IAES,UAAU;QACnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,4BAAe,EAAE,IAAA,4BAAe,EAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;QAExF,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;CAmBD;AA7BD,gDA6BC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { default as AccountsAssets } from './AccountsAssetsController';
|
|
2
2
|
export { default as AccountsBalanceInfo } from './AccountsBalanceInfoController';
|
|
3
|
+
export { default as AccountsCompare } from './AccountsCompareController';
|
|
3
4
|
export { default as AccountsConvert } from './AccountsConvertController';
|
|
4
5
|
export { default as AccountsPoolAssets } from './AccountsPoolAssetsController';
|
|
5
6
|
export { default as AccountsProxyInfo } from './AccountsProxyInfoController';
|
|
@@ -18,11 +18,13 @@ 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.AccountsVestingInfo = exports.AccountsValidate = exports.AccountsStakingPayouts = exports.AccountsStakingInfo = exports.AccountsProxyInfo = exports.AccountsPoolAssets = exports.AccountsConvert = exports.AccountsBalanceInfo = exports.AccountsAssets = void 0;
|
|
21
|
+
exports.AccountsVestingInfo = exports.AccountsValidate = exports.AccountsStakingPayouts = exports.AccountsStakingInfo = exports.AccountsProxyInfo = exports.AccountsPoolAssets = exports.AccountsConvert = exports.AccountsCompare = exports.AccountsBalanceInfo = exports.AccountsAssets = void 0;
|
|
22
22
|
var AccountsAssetsController_1 = require("./AccountsAssetsController");
|
|
23
23
|
Object.defineProperty(exports, "AccountsAssets", { enumerable: true, get: function () { return __importDefault(AccountsAssetsController_1).default; } });
|
|
24
24
|
var AccountsBalanceInfoController_1 = require("./AccountsBalanceInfoController");
|
|
25
25
|
Object.defineProperty(exports, "AccountsBalanceInfo", { enumerable: true, get: function () { return __importDefault(AccountsBalanceInfoController_1).default; } });
|
|
26
|
+
var AccountsCompareController_1 = require("./AccountsCompareController");
|
|
27
|
+
Object.defineProperty(exports, "AccountsCompare", { enumerable: true, get: function () { return __importDefault(AccountsCompareController_1).default; } });
|
|
26
28
|
var AccountsConvertController_1 = require("./AccountsConvertController");
|
|
27
29
|
Object.defineProperty(exports, "AccountsConvert", { enumerable: true, get: function () { return __importDefault(AccountsConvertController_1).default; } });
|
|
28
30
|
var AccountsPoolAssetsController_1 = require("./AccountsPoolAssetsController");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/controllers/accounts/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,uEAAuE;AAA9D,2IAAA,OAAO,OAAkB;AAClC,iFAAiF;AAAxE,qJAAA,OAAO,OAAuB;AACvC,yEAAyE;AAAhE,6IAAA,OAAO,OAAmB;AACnC,+EAA+E;AAAtE,mJAAA,OAAO,OAAsB;AACtC,6EAA6E;AAApE,iJAAA,OAAO,OAAqB;AACrC,iFAAiF;AAAxE,qJAAA,OAAO,OAAuB;AACvC,uFAAuF;AAA9E,2JAAA,OAAO,OAA0B;AAC1C,2EAA2E;AAAlE,+IAAA,OAAO,OAAoB;AACpC,iFAAiF;AAAxE,qJAAA,OAAO,OAAuB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/controllers/accounts/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,uEAAuE;AAA9D,2IAAA,OAAO,OAAkB;AAClC,iFAAiF;AAAxE,qJAAA,OAAO,OAAuB;AACvC,yEAAyE;AAAhE,6IAAA,OAAO,OAAmB;AACnC,yEAAyE;AAAhE,6IAAA,OAAO,OAAmB;AACnC,+EAA+E;AAAtE,mJAAA,OAAO,OAAsB;AACtC,6EAA6E;AAApE,iJAAA,OAAO,OAAqB;AACrC,iFAAiF;AAAxE,qJAAA,OAAO,OAAuB;AACvC,uFAAuF;AAA9E,2JAAA,OAAO,OAA0B;AAC1C,2EAA2E;AAAlE,+IAAA,OAAO,OAAoB;AACpC,iFAAiF;AAAxE,qJAAA,OAAO,OAAuB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AccountsAssets, AccountsBalanceInfo, AccountsConvert, AccountsPoolAssets, AccountsProxyInfo, AccountsStakingInfo, AccountsStakingPayouts, AccountsValidate, AccountsVestingInfo } from './accounts';
|
|
1
|
+
import { AccountsAssets, AccountsBalanceInfo, AccountsCompare, AccountsConvert, AccountsPoolAssets, AccountsProxyInfo, AccountsStakingInfo, AccountsStakingPayouts, AccountsValidate, AccountsVestingInfo } from './accounts';
|
|
2
2
|
import { Blocks, BlocksExtrinsics, BlocksRawExtrinsics, BlocksTrace } from './blocks';
|
|
3
3
|
import { ContractsInk } from './contracts';
|
|
4
4
|
import { CoretimeChain, CoretimeGeneric } from './coretime';
|
|
@@ -17,6 +17,7 @@ export declare const controllers: {
|
|
|
17
17
|
BlocksRawExtrinsics: typeof BlocksRawExtrinsics;
|
|
18
18
|
AccountsAssets: typeof AccountsAssets;
|
|
19
19
|
AccountsBalanceInfo: typeof AccountsBalanceInfo;
|
|
20
|
+
AccountsCompare: typeof AccountsCompare;
|
|
20
21
|
AccountsConvert: typeof AccountsConvert;
|
|
21
22
|
AccountsPoolAssets: typeof AccountsPoolAssets;
|
|
22
23
|
AccountsProxyInfo: typeof AccountsProxyInfo;
|
|
@@ -35,6 +35,7 @@ exports.controllers = {
|
|
|
35
35
|
BlocksRawExtrinsics: blocks_1.BlocksRawExtrinsics,
|
|
36
36
|
AccountsAssets: accounts_1.AccountsAssets,
|
|
37
37
|
AccountsBalanceInfo: accounts_1.AccountsBalanceInfo,
|
|
38
|
+
AccountsCompare: accounts_1.AccountsCompare,
|
|
38
39
|
AccountsConvert: accounts_1.AccountsConvert,
|
|
39
40
|
AccountsPoolAssets: accounts_1.AccountsPoolAssets,
|
|
40
41
|
AccountsProxyInfo: accounts_1.AccountsProxyInfo,
|
|
@@ -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,
|
|
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,qCAAsF;AACtF,2CAA2C;AAC3C,yCAA4D;AAC5D,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,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;IACL,eAAe,EAAf,0BAAe;IACf,aAAa,EAAb,wBAAa;CACb,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { validateAddressMiddleware as validateAddress } from './validateAddressMiddleware';
|
|
1
|
+
export { validateAddressMiddleware as validateAddress, validateAddressQueryParamMiddleware as validateAddressQueryParam, } from './validateAddressMiddleware';
|
|
2
2
|
export { validateBooleanMiddleware as validateBoolean } from './validateBooleanMiddleware';
|
|
@@ -15,9 +15,10 @@
|
|
|
15
15
|
// You should have received a copy of the GNU General Public License
|
|
16
16
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.validateBoolean = exports.validateAddress = void 0;
|
|
18
|
+
exports.validateBoolean = exports.validateAddressQueryParam = exports.validateAddress = void 0;
|
|
19
19
|
var validateAddressMiddleware_1 = require("./validateAddressMiddleware");
|
|
20
20
|
Object.defineProperty(exports, "validateAddress", { enumerable: true, get: function () { return validateAddressMiddleware_1.validateAddressMiddleware; } });
|
|
21
|
+
Object.defineProperty(exports, "validateAddressQueryParam", { enumerable: true, get: function () { return validateAddressMiddleware_1.validateAddressQueryParamMiddleware; } });
|
|
21
22
|
var validateBooleanMiddleware_1 = require("./validateBooleanMiddleware");
|
|
22
23
|
Object.defineProperty(exports, "validateBoolean", { enumerable: true, get: function () { return validateBooleanMiddleware_1.validateBooleanMiddleware; } });
|
|
23
24
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/middleware/validate/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,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/middleware/validate/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,yEAGqC;AAFpC,4HAAA,yBAAyB,OAAmB;AAC5C,sIAAA,mCAAmC,OAA6B;AAEjE,yEAA2F;AAAlF,4HAAA,yBAAyB,OAAmB"}
|
|
@@ -3,3 +3,11 @@ import { RequestHandler } from 'express';
|
|
|
3
3
|
* Express Middleware to validate that an `:address` param is properly formatted.
|
|
4
4
|
*/
|
|
5
5
|
export declare const validateAddressMiddleware: RequestHandler;
|
|
6
|
+
/**
|
|
7
|
+
* Express Middleware to validate that an `:address` given as a query parameter is properly formatted.
|
|
8
|
+
* It also does the following checks:
|
|
9
|
+
* - that the query parameter name is `addresses`.
|
|
10
|
+
* - that the query parameter is given as an array of addresses or a string of comma separated addresses.
|
|
11
|
+
* - validates all addresses found in the query parameter.
|
|
12
|
+
*/
|
|
13
|
+
export declare const validateAddressQueryParamMiddleware: RequestHandler;
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
// You should have received a copy of the GNU General Public License
|
|
16
16
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.validateAddressMiddleware = void 0;
|
|
18
|
+
exports.validateAddressQueryParamMiddleware = exports.validateAddressMiddleware = void 0;
|
|
19
19
|
const util_1 = require("@polkadot/util");
|
|
20
20
|
const util_crypto_1 = require("@polkadot/util-crypto");
|
|
21
21
|
const defaults_1 = require("@polkadot/util-crypto/address/defaults");
|
|
@@ -34,6 +34,51 @@ const validateAddressMiddleware = (req, _res, next) => {
|
|
|
34
34
|
return next();
|
|
35
35
|
};
|
|
36
36
|
exports.validateAddressMiddleware = validateAddressMiddleware;
|
|
37
|
+
/**
|
|
38
|
+
* Express Middleware to validate that an `:address` given as a query parameter is properly formatted.
|
|
39
|
+
* It also does the following checks:
|
|
40
|
+
* - that the query parameter name is `addresses`.
|
|
41
|
+
* - that the query parameter is given as an array of addresses or a string of comma separated addresses.
|
|
42
|
+
* - validates all addresses found in the query parameter.
|
|
43
|
+
*/
|
|
44
|
+
const validateAddressQueryParamMiddleware = (req, _res, next) => {
|
|
45
|
+
// Check that the query parameter name is `addresses`.
|
|
46
|
+
const queryParamKey = Object.keys(req.query);
|
|
47
|
+
const validParamKey = queryParamKey.filter((key) => /^addresses$/.test(key));
|
|
48
|
+
if (validParamKey.length != queryParamKey.length || validParamKey.length === 0) {
|
|
49
|
+
return next(new http_errors_1.BadRequest(`Please use the query parameter key 'addresses' to provide the addresses values.`));
|
|
50
|
+
}
|
|
51
|
+
// Check that the addresses are valid. Same check as in the `validateAddressMiddleware` but for query parameters.
|
|
52
|
+
for (const param of validParamKey) {
|
|
53
|
+
const addresses = req.query[param];
|
|
54
|
+
// Check if the address is a string of comma separated addresses or an array of addresses.
|
|
55
|
+
if (typeof addresses === 'string') {
|
|
56
|
+
const addressesArray = addresses.split(',');
|
|
57
|
+
if (addressesArray.length <= 1) {
|
|
58
|
+
return next(new http_errors_1.BadRequest(`At least two addresses are required for comparison.`));
|
|
59
|
+
}
|
|
60
|
+
for (const address of addressesArray) {
|
|
61
|
+
const [isValid, error] = checkAddress(address);
|
|
62
|
+
if (!isValid && error) {
|
|
63
|
+
return next(new http_errors_1.BadRequest(`Invalid ${param}: ${error}`));
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
else if (Array.isArray(addresses)) {
|
|
68
|
+
if (addresses.length <= 1) {
|
|
69
|
+
return next(new http_errors_1.BadRequest(`At least two addresses are required for comparison.`));
|
|
70
|
+
}
|
|
71
|
+
for (const address of addresses) {
|
|
72
|
+
const [isValid, error] = checkAddress(address);
|
|
73
|
+
if (!isValid && error) {
|
|
74
|
+
return next(new http_errors_1.BadRequest(`Invalid ${param}: ${error}`));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return next();
|
|
80
|
+
};
|
|
81
|
+
exports.validateAddressQueryParamMiddleware = validateAddressQueryParamMiddleware;
|
|
37
82
|
/**
|
|
38
83
|
* Verify that an address is a valid substrate address.
|
|
39
84
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateAddressMiddleware.js","sourceRoot":"","sources":["../../../../src/middleware/validate/validateAddressMiddleware.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,yCAAuC;AACvC,uDAA8F;AAC9F,qEAAkE;AAElE,6CAAyC;AAEzC;;GAEG;AACI,MAAM,yBAAyB,GAAmB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;IAC5E,IAAI,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,EAAE,CAAC;IACf,CAAC;IAED,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE1D,IAAI,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC,IAAI,wBAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,IAAI,EAAE,CAAC;AACf,CAAC,CAAC;AAZW,QAAA,yBAAyB,6BAYpC;AAEF;;;;;;;GAOG;AACH,SAAS,YAAY,CAAC,OAAe;IACpC,IAAI,SAAS,CAAC;IAEd,IAAI,IAAA,YAAK,EAAC,OAAO,CAAC,EAAE,CAAC;QACpB,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC;SAAM,CAAC;QACP,IAAI,CAAC;YACJ,SAAS,GAAG,IAAA,0BAAY,EAAC,OAAO,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;IACF,CAAC;IAED,IAAI,mBAAQ,CAAC,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/D,MAAM,CAAC,OAAO,CAAC,GAAG,IAAA,kCAAoB,EAAC,SAAS,CAAC,CAAC;QAElD,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,IAAA,+BAAiB,EAAC,OAAO,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;AAC1C,CAAC"}
|
|
1
|
+
{"version":3,"file":"validateAddressMiddleware.js","sourceRoot":"","sources":["../../../../src/middleware/validate/validateAddressMiddleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { IAccountCompare } from '../../types/responses/AccountCompare';
|
|
2
|
+
import { AbstractService } from '../AbstractService';
|
|
3
|
+
export declare class AccountsCompareService extends AbstractService {
|
|
4
|
+
private accountsValidateService;
|
|
5
|
+
/**
|
|
6
|
+
* Compares up to 30 SS58 addresses and returns if they are equal or not,
|
|
7
|
+
* along with details of each address. Equality is determined by comparing
|
|
8
|
+
* the accountId/publicKey of each address.
|
|
9
|
+
*
|
|
10
|
+
* @param addresses up to 30 SS58 addresses
|
|
11
|
+
*/
|
|
12
|
+
accountCompare(addresses: string[]): IAccountCompare;
|
|
13
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
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.AccountsCompareService = void 0;
|
|
19
|
+
const AbstractService_1 = require("../AbstractService");
|
|
20
|
+
const AccountsValidateService_1 = require("./AccountsValidateService");
|
|
21
|
+
class AccountsCompareService extends AbstractService_1.AbstractService {
|
|
22
|
+
constructor() {
|
|
23
|
+
super(...arguments);
|
|
24
|
+
this.accountsValidateService = new AccountsValidateService_1.AccountsValidateService(this.api);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Compares up to 30 SS58 addresses and returns if they are equal or not,
|
|
28
|
+
* along with details of each address. Equality is determined by comparing
|
|
29
|
+
* the accountId/publicKey of each address.
|
|
30
|
+
*
|
|
31
|
+
* @param addresses up to 30 SS58 addresses
|
|
32
|
+
*/
|
|
33
|
+
accountCompare(addresses) {
|
|
34
|
+
const addressDetailsArray = [];
|
|
35
|
+
for (let i = 0; i < addresses.length; i++) {
|
|
36
|
+
addressDetailsArray.push(this.accountsValidateService.validateAddress(addresses[i]));
|
|
37
|
+
}
|
|
38
|
+
const areEqual = addressDetailsArray.every((address) => address.accountId === addressDetailsArray[0].accountId);
|
|
39
|
+
return {
|
|
40
|
+
areEqual,
|
|
41
|
+
addresses: addresses.map((address, index) => {
|
|
42
|
+
const addressDetails = addressDetailsArray[index];
|
|
43
|
+
return {
|
|
44
|
+
ss58Format: address,
|
|
45
|
+
ss58Prefix: addressDetails.ss58Prefix,
|
|
46
|
+
network: addressDetails.network,
|
|
47
|
+
publicKey: addressDetails.accountId,
|
|
48
|
+
};
|
|
49
|
+
}),
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.AccountsCompareService = AccountsCompareService;
|
|
54
|
+
//# sourceMappingURL=AccountsCompareService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccountsCompareService.js","sourceRoot":"","sources":["../../../../src/services/accounts/AccountsCompareService.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,8CAA8C;AAC9C,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,kEAAkE;AAClE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,wEAAwE;;;AAIxE,wDAAqD;AACrD,uEAAoE;AAEpE,MAAa,sBAAuB,SAAQ,iCAAe;IAA3D;;QACS,4BAAuB,GAAG,IAAI,iDAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IA+BzE,CAAC;IA9BA;;;;;;OAMG;IACI,cAAc,CAAC,SAAmB;QACxC,MAAM,mBAAmB,GAA4B,EAAE,CAAC;QACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,CAAC;QAED,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CACzC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,KAAM,mBAAmB,CAAC,CAAC,CAAsC,CAAC,SAAS,CACzG,CAAC;QAEF,OAAO;YACN,QAAQ;YACR,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;gBAC3C,MAAM,cAAc,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBAClD,OAAO;oBACN,UAAU,EAAE,OAAO;oBACnB,UAAU,EAAE,cAAc,CAAC,UAAU;oBACrC,OAAO,EAAE,cAAc,CAAC,OAAO;oBAC/B,SAAS,EAAE,cAAc,CAAC,SAAS;iBACnC,CAAC;YACH,CAAC,CAAsB;SACvB,CAAC;IACH,CAAC;CACD;AAhCD,wDAgCC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,85 @@
|
|
|
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
|
+
const sanitize_1 = require("../../sanitize");
|
|
19
|
+
const mock_1 = require("../test-helpers/mock");
|
|
20
|
+
const AccountsCompareService_1 = require("./AccountsCompareService");
|
|
21
|
+
const mockApi = {
|
|
22
|
+
...mock_1.defaultMockApi,
|
|
23
|
+
};
|
|
24
|
+
const validateService = new AccountsCompareService_1.AccountsCompareService(mockApi);
|
|
25
|
+
describe('Compare two addresses', () => {
|
|
26
|
+
it('Should compare the two addresses and return that they are not equal, along with the details of each address.', () => {
|
|
27
|
+
const expectedResponse = {
|
|
28
|
+
areEqual: false,
|
|
29
|
+
addresses: [
|
|
30
|
+
{
|
|
31
|
+
ss58Format: '7P9y4pUmp5SJ4gKK3rFw6TvR24eqW7jVoyDs8LPunRYcHuzi',
|
|
32
|
+
ss58Prefix: '63',
|
|
33
|
+
network: 'hydradx',
|
|
34
|
+
publicKey: '0xf5e51345031c9ba63ae27605d028ad959ba7f4eba289fb16368ddfab2788936f',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
ss58Format: '1kFahMfeRf4XJbApbczHczTTioF9NzKBe9D8g5xFw9JAVdE',
|
|
38
|
+
ss58Prefix: '0',
|
|
39
|
+
network: 'polkadot',
|
|
40
|
+
publicKey: '0x20fca2e352c4906760cb18af6a36e42169e489246ed739307e01b4922a5d119f',
|
|
41
|
+
},
|
|
42
|
+
],
|
|
43
|
+
};
|
|
44
|
+
const address1 = '7P9y4pUmp5SJ4gKK3rFw6TvR24eqW7jVoyDs8LPunRYcHuzi';
|
|
45
|
+
const address2 = '1kFahMfeRf4XJbApbczHczTTioF9NzKBe9D8g5xFw9JAVdE';
|
|
46
|
+
expect((0, sanitize_1.sanitizeNumbers)(validateService.accountCompare([address1, address2]))).toStrictEqual(expectedResponse);
|
|
47
|
+
});
|
|
48
|
+
it('Should compare the four addresses and return that they are equal, along with the details of each address.', () => {
|
|
49
|
+
const expectedResponse = {
|
|
50
|
+
areEqual: true,
|
|
51
|
+
addresses: [
|
|
52
|
+
{
|
|
53
|
+
ss58Format: '1jeB5w8XyBADtgmVmwk2stWpTyfTVWEgLo85tF7gYVxnmSw',
|
|
54
|
+
ss58Prefix: '0',
|
|
55
|
+
network: 'polkadot',
|
|
56
|
+
publicKey: '0x20857206fde63ea508a317a77bc1ca2a795c978533b71fc7bc21d352d832637c',
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
ss58Format: 'DJxh51wJYvcY1VhJqhnngRN7SGFZrmH4DuPKFXicFgwMQCT',
|
|
60
|
+
ss58Prefix: '2',
|
|
61
|
+
network: 'kusama',
|
|
62
|
+
publicKey: '0x20857206fde63ea508a317a77bc1ca2a795c978533b71fc7bc21d352d832637c',
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
ss58Format: 'WfwU3e9TRYo1Bi62SLrvPDe3th8jQeqd3ZnAJTczpUQCNZ8',
|
|
66
|
+
ss58Prefix: '5',
|
|
67
|
+
network: 'astar',
|
|
68
|
+
publicKey: '0x20857206fde63ea508a317a77bc1ca2a795c978533b71fc7bc21d352d832637c',
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
ss58Format: 'cTbj3BYqiRXAF7YvyDtJHV4hNqRnbHMoz7umz6vTg4tUjCY',
|
|
72
|
+
ss58Prefix: '6',
|
|
73
|
+
network: 'bifrost',
|
|
74
|
+
publicKey: '0x20857206fde63ea508a317a77bc1ca2a795c978533b71fc7bc21d352d832637c',
|
|
75
|
+
},
|
|
76
|
+
],
|
|
77
|
+
};
|
|
78
|
+
const address1 = '1jeB5w8XyBADtgmVmwk2stWpTyfTVWEgLo85tF7gYVxnmSw';
|
|
79
|
+
const address2 = 'DJxh51wJYvcY1VhJqhnngRN7SGFZrmH4DuPKFXicFgwMQCT';
|
|
80
|
+
const address3 = 'WfwU3e9TRYo1Bi62SLrvPDe3th8jQeqd3ZnAJTczpUQCNZ8';
|
|
81
|
+
const address4 = 'cTbj3BYqiRXAF7YvyDtJHV4hNqRnbHMoz7umz6vTg4tUjCY';
|
|
82
|
+
expect((0, sanitize_1.sanitizeNumbers)(validateService.accountCompare([address1, address2, address3, address4]))).toStrictEqual(expectedResponse);
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
//# sourceMappingURL=AccountsCompareService.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccountsCompareService.spec.js","sourceRoot":"","sources":["../../../../src/services/accounts/AccountsCompareService.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;;AAIxE,6CAAiD;AACjD,+CAAsD;AACtD,qEAAkE;AAElE,MAAM,OAAO,GAAG;IACf,GAAG,qBAAc;CACQ,CAAC;AAC3B,MAAM,eAAe,GAAG,IAAI,+CAAsB,CAAC,OAAO,CAAC,CAAC;AAE5D,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,8GAA8G,EAAE,GAAG,EAAE;QACvH,MAAM,gBAAgB,GAAG;YACxB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE;gBACV;oBACC,UAAU,EAAE,kDAAkD;oBAC9D,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,SAAS;oBAClB,SAAS,EAAE,oEAAoE;iBAC/E;gBACD;oBACC,UAAU,EAAE,iDAAiD;oBAC7D,UAAU,EAAE,GAAG;oBACf,OAAO,EAAE,UAAU;oBACnB,SAAS,EAAE,oEAAoE;iBAC/E;aACD;SACD,CAAC;QACF,MAAM,QAAQ,GAAG,kDAAkD,CAAC;QACpE,MAAM,QAAQ,GAAG,iDAAiD,CAAC;QAEnE,MAAM,CAAC,IAAA,0BAAe,EAAC,eAAe,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC/G,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2GAA2G,EAAE,GAAG,EAAE;QACpH,MAAM,gBAAgB,GAAG;YACxB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE;gBACV;oBACC,UAAU,EAAE,iDAAiD;oBAC7D,UAAU,EAAE,GAAG;oBACf,OAAO,EAAE,UAAU;oBACnB,SAAS,EAAE,oEAAoE;iBAC/E;gBACD;oBACC,UAAU,EAAE,iDAAiD;oBAC7D,UAAU,EAAE,GAAG;oBACf,OAAO,EAAE,QAAQ;oBACjB,SAAS,EAAE,oEAAoE;iBAC/E;gBACD;oBACC,UAAU,EAAE,iDAAiD;oBAC7D,UAAU,EAAE,GAAG;oBACf,OAAO,EAAE,OAAO;oBAChB,SAAS,EAAE,oEAAoE;iBAC/E;gBACD;oBACC,UAAU,EAAE,iDAAiD;oBAC7D,UAAU,EAAE,GAAG;oBACf,OAAO,EAAE,SAAS;oBAClB,SAAS,EAAE,oEAAoE;iBAC/E;aACD;SACD,CAAC;QACF,MAAM,QAAQ,GAAG,iDAAiD,CAAC;QACnE,MAAM,QAAQ,GAAG,iDAAiD,CAAC;QACnE,MAAM,QAAQ,GAAG,iDAAiD,CAAC;QACnE,MAAM,QAAQ,GAAG,iDAAiD,CAAC;QAEnE,MAAM,CAAC,IAAA,0BAAe,EAAC,eAAe,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAC9G,gBAAgB,CAChB,CAAC;IACH,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|