@substrate/api-sidecar 9.2.0 → 10.0.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 +11 -11
- package/build/src/chains-config/metadata-consts/kusamaConsts.js +1 -1
- package/build/src/chains-config/metadata-consts/kusamaConsts.js.map +1 -1
- package/build/src/chains-config/metadata-consts/polkadotConsts.js +1 -0
- package/build/src/chains-config/metadata-consts/polkadotConsts.js.map +1 -1
- package/build/src/chains-config/metadata-consts/westendConsts.js +1 -0
- package/build/src/chains-config/metadata-consts/westendConsts.js.map +1 -1
- package/build/src/controllers/blocks/BlocksController.js +5 -2
- package/build/src/controllers/blocks/BlocksController.js.map +1 -1
- package/build/src/controllers/blocks/BlocksExtrinsicsController.js +2 -1
- package/build/src/controllers/blocks/BlocksExtrinsicsController.js.map +1 -1
- package/build/src/controllers/pallets/PalletsStorageController.js +12 -6
- package/build/src/controllers/pallets/PalletsStorageController.js.map +1 -1
- package/build/src/services/accounts/AccountsAssetsService.spec.js +107 -1
- package/build/src/services/accounts/AccountsAssetsService.spec.js.map +1 -1
- package/build/src/services/accounts/AccountsBalanceInfoService.spec.js +80 -45
- package/build/src/services/accounts/AccountsBalanceInfoService.spec.js.map +1 -1
- package/build/src/services/accounts/AccountsStakingInfoService.spec.d.ts +4 -1
- package/build/src/services/accounts/AccountsStakingInfoService.spec.js +23 -7
- package/build/src/services/accounts/AccountsStakingInfoService.spec.js.map +1 -1
- package/build/src/services/accounts/AccountsVestingInfoService.spec.js +11 -1
- package/build/src/services/accounts/AccountsVestingInfoService.spec.js.map +1 -1
- package/build/src/services/blocks/BlocksService.d.ts +2 -1
- package/build/src/services/blocks/BlocksService.js +29 -26
- package/build/src/services/blocks/BlocksService.js.map +1 -1
- package/build/src/services/blocks/BlocksService.spec.js +77 -43
- package/build/src/services/blocks/BlocksService.spec.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/services/node/NodeNetworkService.spec.js +1 -1
- package/build/src/services/node/NodeNetworkService.spec.js.map +1 -1
- package/build/src/services/node/NodeTransactionPoolService.spec.js +5 -5
- package/build/src/services/node/NodeTransactionPoolService.spec.js.map +1 -1
- package/build/src/services/node/NodeVersionService.spec.js +1 -1
- package/build/src/services/node/NodeVersionService.spec.js.map +1 -1
- package/build/src/services/pallets/PalletsAssetsService.spec.js +113 -1
- package/build/src/services/pallets/PalletsAssetsService.spec.js.map +1 -1
- package/build/src/services/pallets/PalletsStakingProgressService.spec.js +48 -7
- package/build/src/services/pallets/PalletsStakingProgressService.spec.js.map +1 -1
- package/build/src/services/pallets/PalletsStorageService.d.ts +14 -2
- package/build/src/services/pallets/PalletsStorageService.js +56 -11
- package/build/src/services/pallets/PalletsStorageService.js.map +1 -1
- package/build/src/services/pallets/PalletsStorageService.spec.js +29 -7
- package/build/src/services/pallets/PalletsStorageService.spec.js.map +1 -1
- package/build/src/services/paras/ParasService.spec.d.ts +10 -1
- package/build/src/services/paras/ParasService.spec.js +201 -8
- package/build/src/services/paras/ParasService.spec.js.map +1 -1
- package/build/src/services/runtime/RuntimeCodeService.spec.js +1 -1
- package/build/src/services/runtime/RuntimeCodeService.spec.js.map +1 -1
- package/build/src/services/runtime/RuntimeMetadataService.spec.js +1 -1
- package/build/src/services/runtime/RuntimeMetadataService.spec.js.map +1 -1
- package/build/src/services/runtime/RuntimeSpecService.spec.js +1 -1
- package/build/src/services/runtime/RuntimeSpecService.spec.js.map +1 -1
- package/build/src/services/test-helpers/mock/mockApi.d.ts +4 -13
- package/build/src/services/test-helpers/mock/mockApi.js +3 -378
- package/build/src/services/test-helpers/mock/mockApi.js.map +1 -1
- package/build/src/services/transaction/TransactionFeeEstimateService.spec.js +6 -3
- package/build/src/services/transaction/TransactionFeeEstimateService.spec.js.map +1 -1
- package/build/src/services/transaction/TransactionMaterialService.spec.js +1 -1
- package/build/src/services/transaction/TransactionMaterialService.spec.js.map +1 -1
- package/build/src/services/transaction/TransactionSubmitService.spec.js +8 -7
- package/build/src/services/transaction/TransactionSubmitService.spec.js.map +1 -1
- package/build/src/test-helpers/metadata/polkadotV9110Metadata.d.ts +1 -0
- package/build/src/test-helpers/metadata/polkadotV9110Metadata.js +5 -0
- package/build/src/test-helpers/metadata/polkadotV9110Metadata.js.map +1 -0
- package/build/src/test-helpers/registries/polkadotRegistry.d.ts +4 -0
- package/build/src/test-helpers/registries/polkadotRegistry.js +6 -1
- package/build/src/test-helpers/registries/polkadotRegistry.js.map +1 -1
- package/package.json +11 -11
package/build/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "
|
|
2
|
+
"version": "10.0.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,8 +51,8 @@
|
|
|
51
51
|
"test:test-release": "yarn start:test-release"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@polkadot/api": "
|
|
55
|
-
"@polkadot/apps-config": "0.96.2-
|
|
54
|
+
"@polkadot/api": "6.3.1",
|
|
55
|
+
"@polkadot/apps-config": "0.96.2-65",
|
|
56
56
|
"@polkadot/util-crypto": "^7.4.1",
|
|
57
57
|
"@polkadot/x-rxjs": "^6.11.1",
|
|
58
58
|
"@substrate/calc": "^0.2.3",
|
|
@@ -77,14 +77,14 @@
|
|
|
77
77
|
"tsc-watch": "^4.4.0"
|
|
78
78
|
},
|
|
79
79
|
"resolutions": {
|
|
80
|
-
"@polkadot/api": "
|
|
81
|
-
"@polkadot/keyring": "
|
|
82
|
-
"@polkadot/networks": "
|
|
83
|
-
"@polkadot/types": "
|
|
84
|
-
"@polkadot/types-known": "
|
|
85
|
-
"@polkadot/util": "
|
|
86
|
-
"@polkadot/util-crypto": "
|
|
87
|
-
"@polkadot/wasm-crypto": "
|
|
80
|
+
"@polkadot/api": "6.3.1",
|
|
81
|
+
"@polkadot/keyring": "7.4.1",
|
|
82
|
+
"@polkadot/networks": "7.4.1",
|
|
83
|
+
"@polkadot/types": "6.3.1",
|
|
84
|
+
"@polkadot/types-known": "6.3.1",
|
|
85
|
+
"@polkadot/util": "7.4.1",
|
|
86
|
+
"@polkadot/util-crypto": "7.4.1",
|
|
87
|
+
"@polkadot/wasm-crypto": "4.2.1",
|
|
88
88
|
"node-forge": ">=0.10.0",
|
|
89
89
|
"node-fetch": ">=2.6.1",
|
|
90
90
|
"prismjs": ">=1.23.0"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kusamaConsts.js","sourceRoot":"","sources":["../../../../src/chains-config/metadata-consts/kusamaConsts.ts"],"names":[],"mappings":";;;AACA,uDAAkE;AAErD,QAAA,iBAAiB,GAAqB;IAClD;QACC,eAAe,EAAE;YAChB,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI;SACV;QACD,mBAAmB,EAAnB,qCAAmB;KACnB;IACD;QACC,eAAe,EAAE;YAChB,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI;
|
|
1
|
+
{"version":3,"file":"kusamaConsts.js","sourceRoot":"","sources":["../../../../src/chains-config/metadata-consts/kusamaConsts.ts"],"names":[],"mappings":";;;AACA,uDAAkE;AAErD,QAAA,iBAAiB,GAAqB;IAClD;QACC,eAAe,EAAE;YAChB,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI;SACV;QACD,mBAAmB,EAAnB,qCAAmB;KACnB;IACD;QACC,eAAe,EAAE;YAChB,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI;SACV;QACD,QAAQ,EAAR,0BAAQ;KACR;CACD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polkadotConsts.js","sourceRoot":"","sources":["../../../../src/chains-config/metadata-consts/polkadotConsts.ts"],"names":[],"mappings":";;;AACA,uDAAkE;AAErD,QAAA,mBAAmB,GAAqB;IACpD;QACC,eAAe,EAAE;YAChB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;SACvE;QACD,mBAAmB,EAAnB,qCAAmB;KACnB;IACD;QACC,eAAe,EAAE;YAChB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"polkadotConsts.js","sourceRoot":"","sources":["../../../../src/chains-config/metadata-consts/polkadotConsts.ts"],"names":[],"mappings":";;;AACA,uDAAkE;AAErD,QAAA,mBAAmB,GAAqB;IACpD;QACC,eAAe,EAAE;YAChB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;SACvE;QACD,mBAAmB,EAAnB,qCAAmB;KACnB;IACD;QACC,eAAe,EAAE;YAChB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACpE,IAAI;SACJ;QACD,QAAQ,EAAR,0BAAQ;KACR;CACD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"westendConsts.js","sourceRoot":"","sources":["../../../../src/chains-config/metadata-consts/westendConsts.ts"],"names":[],"mappings":";;;AACA,uDAAkE;AAErD,QAAA,kBAAkB,GAAqB;IACnD;QACC,eAAe,EAAE;YAChB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;SAC3D;QACD,mBAAmB,EAAnB,qCAAmB;KACnB;IACD;QACC,eAAe,EAAE;YAChB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"westendConsts.js","sourceRoot":"","sources":["../../../../src/chains-config/metadata-consts/westendConsts.ts"],"names":[],"mappings":";;;AACA,uDAAkE;AAErD,QAAA,kBAAkB,GAAqB;IACnD;QACC,eAAe,EAAE;YAChB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;SAC3D;QACD,mBAAmB,EAAnB,qCAAmB;KACnB;IACD;QACC,eAAe,EAAE;YAChB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACpE,IAAI,EAAE,IAAI;SACV;QACD,QAAQ,EAAR,0BAAQ;KACR;CACD,CAAC"}
|
|
@@ -105,7 +105,8 @@ class BlocksController extends AbstractController_1.default {
|
|
|
105
105
|
queryFinalizedHead,
|
|
106
106
|
omitFinalizedTag,
|
|
107
107
|
};
|
|
108
|
-
|
|
108
|
+
const historicApi = await this.api.at(hash);
|
|
109
|
+
BlocksController.sanitizedSend(res, await this.service.fetchBlock(hash, historicApi, options));
|
|
109
110
|
};
|
|
110
111
|
/**
|
|
111
112
|
* Get a block by its hash or number identifier.
|
|
@@ -127,8 +128,10 @@ class BlocksController extends AbstractController_1.default {
|
|
|
127
128
|
queryFinalizedHead,
|
|
128
129
|
omitFinalizedTag,
|
|
129
130
|
};
|
|
131
|
+
// HistoricApi to fetch any historic information that doesnt include the current runtime
|
|
132
|
+
const historicApi = await this.api.at(hash);
|
|
130
133
|
// We set the last param to true because we haven't queried the finalizedHead
|
|
131
|
-
BlocksController.sanitizedSend(res, await this.service.fetchBlock(hash, options));
|
|
134
|
+
BlocksController.sanitizedSend(res, await this.service.fetchBlock(hash, historicApi, options));
|
|
132
135
|
};
|
|
133
136
|
/**
|
|
134
137
|
* Return the Header of the identified block.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlocksController.js","sourceRoot":"","sources":["../../../../src/controllers/blocks/BlocksController.ts"],"names":[],"mappings":";;;;;AACA,yCAAuC;AAIvC,6CAA+C;AAG/C,+EAAuD;AASvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,MAAqB,gBAAiB,SAAQ,4BAAiC;IAC9E,YAAY,GAAe,EAAmB,OAA0B;QACvE,KAAK,CACJ,GAAG,EACH,SAAS,EACT,IAAI,wBAAa,CAChB,GAAG,EACH,OAAO,CAAC,iBAAiB,EACzB,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,gBAAgB,CACxB,CACD,CAAC;QAV2C,YAAO,GAAP,OAAO,CAAmB;QAuBxE;;;;;WAKG;QACK,mBAAc,GAAmB,KAAK,EAC7C,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAClD,GAAG,EACF,EAAE;YACH,MAAM,YAAY,GAAG,SAAS,KAAK,MAAM,CAAC;YAC1C,MAAM,gBAAgB,GAAG,aAAa,KAAK,MAAM,CAAC;YAElD,IAAI,IAAI,EAAE,kBAAkB,EAAE,gBAAgB,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;gBAC5B,8EAA8E;gBAC9E,gBAAgB,GAAG,IAAI,CAAC;gBACxB,kBAAkB,GAAG,KAAK,CAAC;gBAC3B,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC;aACnD;iBAAM,IAAI,SAAS,KAAK,OAAO,EAAE;gBACjC,uEAAuE;gBACvE,uEAAuE;gBACvE,+BAA+B;gBAC/B,gBAAgB,GAAG,KAAK,CAAC;gBACzB,kBAAkB,GAAG,IAAI,CAAC;gBAC1B,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC;aACnD;iBAAM;gBACN,gBAAgB,GAAG,KAAK,CAAC;gBACzB,kBAAkB,GAAG,KAAK,CAAC;gBAC3B,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;aACnD;YAED,MAAM,OAAO,GAAG;gBACf,SAAS,EAAE,YAAY;gBACvB,aAAa,EAAE,gBAAgB;gBAC/B,cAAc,EAAE,KAAK;gBACrB,kBAAkB;gBAClB,gBAAgB;aAChB,CAAC;YAEF,gBAAgB,CAAC,aAAa,CAC7B,GAAG,EACH,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"BlocksController.js","sourceRoot":"","sources":["../../../../src/controllers/blocks/BlocksController.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,8 @@ class BlocksExtrinsicsController extends AbstractController_1.default {
|
|
|
24
24
|
queryFinalizedHead: false,
|
|
25
25
|
omitFinalizedTag: true,
|
|
26
26
|
};
|
|
27
|
-
const
|
|
27
|
+
const historicApi = await this.api.at(hash);
|
|
28
|
+
const block = await this.service.fetchBlock(hash, historicApi, options);
|
|
28
29
|
/**
|
|
29
30
|
* Verify our param `extrinsicIndex` is an integer represented as a string
|
|
30
31
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlocksExtrinsicsController.js","sourceRoot":"","sources":["../../../../src/controllers/blocks/BlocksExtrinsicsController.ts"],"names":[],"mappings":";;;;;AAMA,6CAA+C;AAE/C,+EAAuD;AAQvD,MAAqB,0BAA2B,SAAQ,4BAAiC;IACxF,YAAY,GAAe,EAAE,OAA0B;QACtD,KAAK,CACJ,GAAG,EACH,6BAA6B,EAC7B,IAAI,wBAAa,CAChB,GAAG,EACH,OAAO,CAAC,iBAAiB,EACzB,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,gBAAgB,CACxB,CACD,CAAC;QAUH;;;;WAIG;QACK,4BAAuB,GAAiC,KAAK,EACpE,EACC,MAAM,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,EACnC,KAAK,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,GACnC,EACD,GAAG,EACa,EAAE;YAClB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAEjD,MAAM,YAAY,GAAG,SAAS,KAAK,MAAM,CAAC;YAC1C,MAAM,gBAAgB,GAAG,aAAa,KAAK,MAAM,CAAC;YAElD,MAAM,OAAO,GAAG;gBACf,SAAS,EAAE,YAAY;gBACvB,aAAa,EAAE,gBAAgB;gBAC/B,cAAc,EAAE,IAAI;gBACpB,kBAAkB,EAAE,KAAK;gBACzB,gBAAgB,EAAE,IAAI;aACtB,CAAC;YAEF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"BlocksExtrinsicsController.js","sourceRoot":"","sources":["../../../../src/controllers/blocks/BlocksExtrinsicsController.ts"],"names":[],"mappings":";;;;;AAMA,6CAA+C;AAE/C,+EAAuD;AAQvD,MAAqB,0BAA2B,SAAQ,4BAAiC;IACxF,YAAY,GAAe,EAAE,OAA0B;QACtD,KAAK,CACJ,GAAG,EACH,6BAA6B,EAC7B,IAAI,wBAAa,CAChB,GAAG,EACH,OAAO,CAAC,iBAAiB,EACzB,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,gBAAgB,CACxB,CACD,CAAC;QAUH;;;;WAIG;QACK,4BAAuB,GAAiC,KAAK,EACpE,EACC,MAAM,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,EACnC,KAAK,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,GACnC,EACD,GAAG,EACa,EAAE;YAClB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAEjD,MAAM,YAAY,GAAG,SAAS,KAAK,MAAM,CAAC;YAC1C,MAAM,gBAAgB,GAAG,aAAa,KAAK,MAAM,CAAC;YAElD,MAAM,OAAO,GAAG;gBACf,SAAS,EAAE,YAAY;gBACvB,aAAa,EAAE,gBAAgB;gBAC/B,cAAc,EAAE,IAAI;gBACpB,kBAAkB,EAAE,KAAK;gBACzB,gBAAgB,EAAE,IAAI;aACtB,CAAC;YAEF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAE5C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;YAExE;;eAEG;YACH,IAAI,CAAC,kBAAkB,CACtB,cAAc,EACd,8CAA8C,CAC9C,CAAC;YAEF;;;eAGG;YACH,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YAE3C,0BAA0B,CAAC,aAAa,CACvC,GAAG,EACH,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,CAChD,CAAC;QACH,CAAC,CAAC;QAxDD,IAAI,CAAC,UAAU,EAAE,CAAC;IACnB,CAAC;IAES,UAAU;QACnB,IAAI,CAAC,yBAAyB,CAAC;YAC9B,CAAC,kBAAkB,EAAE,IAAI,CAAC,uBAAuB,CAAC;SAClD,CAAC,CAAC;IACJ,CAAC;CAkDD;AArED,6CAqEC"}
|
|
@@ -22,12 +22,14 @@ const AbstractController_1 = __importDefault(require("../AbstractController"));
|
|
|
22
22
|
class PalletsStorageController extends AbstractController_1.default {
|
|
23
23
|
constructor(api) {
|
|
24
24
|
super(api, '/pallets/:palletId/storage', new services_1.PalletsStorageService(api));
|
|
25
|
-
this.getStorageItem = async ({ query: { at, key1, key2, metadata }, params: { palletId, storageItemId }, }, res) => {
|
|
25
|
+
this.getStorageItem = async ({ query: { at, key1, key2, metadata, adjustMetadataV13 }, params: { palletId, storageItemId }, }, res) => {
|
|
26
26
|
const key1Arg = typeof key1 === 'string' ? key1 : undefined;
|
|
27
27
|
const key2Arg = typeof key2 === 'string' ? key2 : undefined;
|
|
28
|
-
const metadataArg = metadata === 'true'
|
|
28
|
+
const metadataArg = metadata === 'true';
|
|
29
|
+
const adjustMetadataV13Arg = adjustMetadataV13 === 'true';
|
|
29
30
|
const hash = await this.getHashFromAt(at);
|
|
30
|
-
|
|
31
|
+
const historicApi = await this.api.at(hash);
|
|
32
|
+
PalletsStorageController.sanitizedSend(res, await this.service.fetchStorageItem(historicApi, {
|
|
31
33
|
hash,
|
|
32
34
|
// stringCamelCase ensures we don't have snake case or kebab case
|
|
33
35
|
palletId: (0, util_1.stringCamelCase)(palletId),
|
|
@@ -35,15 +37,19 @@ class PalletsStorageController extends AbstractController_1.default {
|
|
|
35
37
|
key1: key1Arg,
|
|
36
38
|
key2: key2Arg,
|
|
37
39
|
metadata: metadataArg,
|
|
40
|
+
adjustMetadataV13Arg,
|
|
38
41
|
}));
|
|
39
42
|
};
|
|
40
|
-
this.getStorage = async ({ params: { palletId }, query: { at, onlyIds } }, res) => {
|
|
41
|
-
const onlyIdsArg = onlyIds === 'true'
|
|
43
|
+
this.getStorage = async ({ params: { palletId }, query: { at, onlyIds, adjustMetadataV13 } }, res) => {
|
|
44
|
+
const onlyIdsArg = onlyIds === 'true';
|
|
45
|
+
const adjustMetadataV13Arg = adjustMetadataV13 === 'true';
|
|
42
46
|
const hash = await this.getHashFromAt(at);
|
|
43
|
-
|
|
47
|
+
const historicApi = await this.api.at(hash);
|
|
48
|
+
PalletsStorageController.sanitizedSend(res, await this.service.fetchStorage(historicApi, {
|
|
44
49
|
hash,
|
|
45
50
|
palletId: (0, util_1.stringCamelCase)(palletId),
|
|
46
51
|
onlyIds: onlyIdsArg,
|
|
52
|
+
adjustMetadataV13Arg,
|
|
47
53
|
}));
|
|
48
54
|
};
|
|
49
55
|
this.initRoutes();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PalletsStorageController.js","sourceRoot":"","sources":["../../../../src/controllers/pallets/PalletsStorageController.ts"],"names":[],"mappings":";;;;;AACA,yCAAiD;AAGjD,6CAAuD;AACvD,+EAAuD;AAEvD;;;;;;;;;;;;GAYG;AACH,MAAqB,wBAAyB,SAAQ,4BAAyC;IAC9F,YAAY,GAAe;QAC1B,KAAK,CAAC,GAAG,EAAE,4BAA4B,EAAE,IAAI,gCAAqB,CAAC,GAAG,CAAC,CAAC,CAAC;QAalE,mBAAc,GAAmB,KAAK,EAC7C,EACC,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"PalletsStorageController.js","sourceRoot":"","sources":["../../../../src/controllers/pallets/PalletsStorageController.ts"],"names":[],"mappings":";;;;;AACA,yCAAiD;AAGjD,6CAAuD;AACvD,+EAAuD;AAEvD;;;;;;;;;;;;GAYG;AACH,MAAqB,wBAAyB,SAAQ,4BAAyC;IAC9F,YAAY,GAAe;QAC1B,KAAK,CAAC,GAAG,EAAE,4BAA4B,EAAE,IAAI,gCAAqB,CAAC,GAAG,CAAC,CAAC,CAAC;QAalE,mBAAc,GAAmB,KAAK,EAC7C,EACC,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,EACtD,MAAM,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,GACnC,EACD,GAAG,EACa,EAAE;YAClB,MAAM,OAAO,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5D,MAAM,OAAO,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5D,MAAM,WAAW,GAAG,QAAQ,KAAK,MAAM,CAAC;YACxC,MAAM,oBAAoB,GAAG,iBAAiB,KAAK,MAAM,CAAC;YAE1D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAC1C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAE5C,wBAAwB,CAAC,aAAa,CACrC,GAAG,EACH,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE;gBAChD,IAAI;gBACJ,iEAAiE;gBACjE,QAAQ,EAAE,IAAA,sBAAe,EAAC,QAAQ,CAAC;gBACnC,aAAa,EAAE,IAAA,sBAAe,EAAC,aAAa,CAAC;gBAC7C,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,WAAW;gBACrB,oBAAoB;aACpB,CAAC,CACF,CAAC;QACH,CAAC,CAAC;QAEM,eAAU,GAAmB,KAAK,EACzC,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE,EACnE,GAAG,EACa,EAAE;YAClB,MAAM,UAAU,GAAG,OAAO,KAAK,MAAM,CAAC;YACtC,MAAM,oBAAoB,GAAG,iBAAiB,KAAK,MAAM,CAAC;YAE1D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAC1C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAE5C,wBAAwB,CAAC,aAAa,CACrC,GAAG,EACH,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE;gBAC5C,IAAI;gBACJ,QAAQ,EAAE,IAAA,sBAAe,EAAC,QAAQ,CAAC;gBACnC,OAAO,EAAE,UAAU;gBACnB,oBAAoB;aACpB,CAAC,CACF,CAAC;QACH,CAAC,CAAC;QA5DD,IAAI,CAAC,UAAU,EAAE,CAAC;IACnB,CAAC;IAES,UAAU;QACnB,sHAAsH;QACtH,IAAI,CAAC,yBAAyB,CAAC;YAC9B,CAAC,iBAAiB,EAAE,IAAI,CAAC,cAAc,CAAC;YACxC,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC;SACtB,CAAC,CAAC;IACJ,CAAC;CAoDD;AAjED,2CAiEC"}
|
|
@@ -1,9 +1,115 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const sanitizeNumbers_1 = require("../../sanitize/sanitizeNumbers");
|
|
4
|
+
const statemintMetadata_1 = require("../../test-helpers/metadata/statemintMetadata");
|
|
5
|
+
const registries_1 = require("../../test-helpers/registries");
|
|
6
|
+
const typeFactory_1 = require("../../test-helpers/typeFactory");
|
|
7
|
+
const typeFactory_2 = require("../../test-helpers/typeFactory");
|
|
4
8
|
const mock_1 = require("../test-helpers/mock");
|
|
5
9
|
const AccountsAssetsService_1 = require("./AccountsAssetsService");
|
|
6
|
-
const
|
|
10
|
+
const statemintApiV1 = (0, typeFactory_1.createApiWithAugmentations)(statemintMetadata_1.statemintV1);
|
|
11
|
+
const statemintTypeFactory = new typeFactory_2.TypeFactory(statemintApiV1);
|
|
12
|
+
const falseBool = registries_1.rococoRegistry.createType('bool', false);
|
|
13
|
+
const trueBool = registries_1.rococoRegistry.createType('bool', true);
|
|
14
|
+
const assetTBalanceOne = registries_1.rococoRegistry.createType('u64', 10000000);
|
|
15
|
+
const assetTBalanceTwo = registries_1.rococoRegistry.createType('u64', 20000000);
|
|
16
|
+
const accountIdOne = registries_1.rococoRegistry.createType('AccountId', '1TYrFCWxwHA5bhiXf6uLvPfG6eEvrzzL7uiPK3Yc6yHLUqc');
|
|
17
|
+
const accountIdTwo = registries_1.rococoRegistry.createType('AccountId', '13NXiLYYzVEjXxU3eaZNcrjEX9vPyVDNNpURCzK8Bj9BiCWH');
|
|
18
|
+
const balanceOfTwo = registries_1.rococoRegistry.createType('BalanceOf', 2000000);
|
|
19
|
+
const assetsInfo = () => Promise.resolve().then(() => {
|
|
20
|
+
const responseObj = {
|
|
21
|
+
owner: accountIdOne,
|
|
22
|
+
issue: accountIdTwo,
|
|
23
|
+
admin: accountIdTwo,
|
|
24
|
+
freezer: accountIdTwo,
|
|
25
|
+
supply: assetTBalanceOne,
|
|
26
|
+
deposit: balanceOfTwo,
|
|
27
|
+
minBalance: registries_1.rococoRegistry.createType('u64', 10000),
|
|
28
|
+
isSufficient: trueBool,
|
|
29
|
+
accounts: registries_1.rococoRegistry.createType('u32', 10),
|
|
30
|
+
sufficients: registries_1.rococoRegistry.createType('u32', 15),
|
|
31
|
+
approvals: registries_1.rococoRegistry.createType('u32', 20),
|
|
32
|
+
isFrozen: falseBool,
|
|
33
|
+
};
|
|
34
|
+
return registries_1.rococoRegistry.createType('AssetDetails', responseObj);
|
|
35
|
+
});
|
|
36
|
+
const assetsMetadata = () => Promise.resolve().then(() => {
|
|
37
|
+
const responseObj = {
|
|
38
|
+
deposit: balanceOfTwo,
|
|
39
|
+
name: registries_1.rococoRegistry.createType('Bytes', 'statemint'),
|
|
40
|
+
symbol: registries_1.rococoRegistry.createType('Bytes', 'DOT'),
|
|
41
|
+
decimals: registries_1.rococoRegistry.createType('u8', 10),
|
|
42
|
+
isFrozen: falseBool,
|
|
43
|
+
};
|
|
44
|
+
return registries_1.rococoRegistry.createType('AssetMetadata', responseObj);
|
|
45
|
+
});
|
|
46
|
+
const assetBalanceObjOne = {
|
|
47
|
+
balance: assetTBalanceOne,
|
|
48
|
+
isFrozen: falseBool,
|
|
49
|
+
sufficient: trueBool,
|
|
50
|
+
};
|
|
51
|
+
const assetBalanceObjTwo = {
|
|
52
|
+
balance: assetTBalanceTwo,
|
|
53
|
+
isFrozen: trueBool,
|
|
54
|
+
sufficient: trueBool,
|
|
55
|
+
};
|
|
56
|
+
const assetBalanceObjThree = {
|
|
57
|
+
balance: assetTBalanceTwo,
|
|
58
|
+
isFrozen: falseBool,
|
|
59
|
+
sufficient: falseBool,
|
|
60
|
+
};
|
|
61
|
+
const assetBalanceFactory = {
|
|
62
|
+
'10': assetBalanceObjOne,
|
|
63
|
+
'20': assetBalanceObjTwo,
|
|
64
|
+
'30': assetBalanceObjThree,
|
|
65
|
+
};
|
|
66
|
+
const assetStorageKeyOne = statemintTypeFactory.storageKey(10, 'AssetId', statemintApiV1.query.assets.asset);
|
|
67
|
+
const assetStorageKeyTwo = statemintTypeFactory.storageKey(20, 'AssetId', statemintApiV1.query.assets.asset);
|
|
68
|
+
const assetStorageKeyThree = statemintTypeFactory.storageKey(30, 'AssetId', statemintApiV1.query.assets.asset);
|
|
69
|
+
const assetsAccountKeysAt = () => Promise.resolve().then(() => {
|
|
70
|
+
return [assetStorageKeyOne, assetStorageKeyTwo, assetStorageKeyThree];
|
|
71
|
+
});
|
|
72
|
+
/**
|
|
73
|
+
* Attach `keysAt` to mockApi.query.assets.asset
|
|
74
|
+
*/
|
|
75
|
+
Object.assign(assetsInfo, {
|
|
76
|
+
keysAt: assetsAccountKeysAt,
|
|
77
|
+
});
|
|
78
|
+
/**
|
|
79
|
+
* @param assetId options are 10, 20, 30
|
|
80
|
+
*/
|
|
81
|
+
const assetsAccount = (assetId, _address) => {
|
|
82
|
+
const id = typeof assetId === 'number' ? assetId : assetId.toNumber();
|
|
83
|
+
switch (id) {
|
|
84
|
+
case 10:
|
|
85
|
+
return assetBalanceFactory[10];
|
|
86
|
+
case 20:
|
|
87
|
+
return assetBalanceFactory[20];
|
|
88
|
+
case 30:
|
|
89
|
+
return assetBalanceFactory[30];
|
|
90
|
+
default:
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
const assetApprovals = () => Promise.resolve().then(() => {
|
|
95
|
+
const assetObj = {
|
|
96
|
+
amount: assetTBalanceOne,
|
|
97
|
+
deposit: balanceOfTwo,
|
|
98
|
+
};
|
|
99
|
+
return registries_1.rococoRegistry.createType('Option<AssetApproval>', assetObj);
|
|
100
|
+
});
|
|
101
|
+
const mockApi = {
|
|
102
|
+
...mock_1.defaultMockApi,
|
|
103
|
+
query: {
|
|
104
|
+
assets: {
|
|
105
|
+
account: assetsAccount,
|
|
106
|
+
approvals: assetApprovals,
|
|
107
|
+
asset: assetsInfo,
|
|
108
|
+
metadata: assetsMetadata,
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
};
|
|
112
|
+
const accountsAssetsService = new AccountsAssetsService_1.AccountsAssetsService(mockApi);
|
|
7
113
|
describe('AccountsAssetsService', () => {
|
|
8
114
|
const at = {
|
|
9
115
|
hash: '0x7b713de604a99857f6c25eacc115a4f28d2611a23d9ddff99ab0e4f1c17a8578',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountsAssetsService.spec.js","sourceRoot":"","sources":["../../../../src/services/accounts/AccountsAssetsService.spec.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"AccountsAssetsService.spec.js","sourceRoot":"","sources":["../../../../src/services/accounts/AccountsAssetsService.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,52 +4,107 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const sanitizeNumbers_1 = require("../../sanitize/sanitizeNumbers");
|
|
7
|
-
const metadata_1 = require("../../test-helpers/metadata/metadata");
|
|
8
7
|
const registries_1 = require("../../test-helpers/registries");
|
|
9
|
-
const typeFactory_1 = require("../../test-helpers/typeFactory");
|
|
10
8
|
const mock_1 = require("../test-helpers/mock");
|
|
9
|
+
const events789629Hex_1 = require("../test-helpers/mock/data/events789629Hex");
|
|
11
10
|
const balanceInfo789629_json_1 = __importDefault(require("../test-helpers/responses/accounts/balanceInfo789629.json"));
|
|
12
11
|
const AccountsBalanceInfoService_1 = require("./AccountsBalanceInfoService");
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const
|
|
12
|
+
const eventsAt = (_hash) => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('Vec<EventRecord>', events789629Hex_1.events789629));
|
|
13
|
+
const locksAt = (_hash, _address) => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('Vec<BalanceLock>', '0x047374616b696e672000e8764817000000000000000000000002'));
|
|
14
|
+
const accountAt = (_hash, _address) => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('AccountInfo', '0x0600000003dbb656ab7400000000000000000000000000000000000000000000000000000000e8764817000000000000000000000000e87648170000000000000000000000'));
|
|
15
|
+
const freeBalance = async () => registries_1.polkadotRegistry.createType('Balance', 123456789);
|
|
16
|
+
const mockHistoricApi = {
|
|
18
17
|
query: {
|
|
19
18
|
balances: {
|
|
20
|
-
freeBalance
|
|
19
|
+
freeBalance,
|
|
21
20
|
reservedBalance: async () => registries_1.polkadotRegistry.createType('Balance', 1),
|
|
22
|
-
locks: async () => registries_1.polkadotRegistry.createType('Vec<BalanceLock>',
|
|
21
|
+
locks: async () => registries_1.polkadotRegistry.createType('Vec<BalanceLock>', '0x047374616b696e672000e8764817000000000000000000000002'),
|
|
23
22
|
},
|
|
24
23
|
system: {
|
|
25
24
|
accountNonce: async () => registries_1.polkadotRegistry.createType('Index', 1),
|
|
25
|
+
account: accountAt,
|
|
26
26
|
},
|
|
27
27
|
},
|
|
28
28
|
};
|
|
29
|
+
const queryMockApi = {
|
|
30
|
+
query: {
|
|
31
|
+
system: {
|
|
32
|
+
events: eventsAt,
|
|
33
|
+
account: { at: accountAt },
|
|
34
|
+
},
|
|
35
|
+
balances: {
|
|
36
|
+
locks: { at: locksAt },
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
const mockApi = {
|
|
41
|
+
...mock_1.defaultMockApi,
|
|
42
|
+
...queryMockApi,
|
|
43
|
+
at: (_hash) => mockHistoricApi,
|
|
44
|
+
};
|
|
45
|
+
const accountsBalanceInfoService = new AccountsBalanceInfoService_1.AccountsBalanceInfoService(mockApi);
|
|
29
46
|
describe('AccountsBalanceInfoService', () => {
|
|
30
47
|
describe('fetchAccountBalanceInfo', () => {
|
|
31
48
|
it('works when ApiPromise works (block 789629)', async () => {
|
|
32
|
-
|
|
49
|
+
const tempHistoricApi = { ...mockHistoricApi };
|
|
50
|
+
tempHistoricApi.query.balances.freeBalance = undefined;
|
|
51
|
+
const tempMockApi = {
|
|
52
|
+
...mock_1.defaultMockApi,
|
|
53
|
+
...queryMockApi,
|
|
54
|
+
at: (_hash) => tempHistoricApi,
|
|
55
|
+
};
|
|
56
|
+
const tempAccountsBalanceInfoService = new AccountsBalanceInfoService_1.AccountsBalanceInfoService(tempMockApi);
|
|
57
|
+
expect((0, sanitizeNumbers_1.sanitizeNumbers)(await tempAccountsBalanceInfoService.fetchAccountBalanceInfo(mock_1.blockHash789629, mock_1.testAddress, 'DOT'))).toStrictEqual(balanceInfo789629_json_1.default);
|
|
58
|
+
});
|
|
59
|
+
it('Correctly queries historical blocks', async () => {
|
|
60
|
+
const result = await accountsBalanceInfoService.fetchAccountBalanceInfo(mock_1.blockHash789629, mock_1.testAddress, 'DOT');
|
|
61
|
+
const expectedResponse = {
|
|
62
|
+
at: {
|
|
63
|
+
hash: '0x7b713de604a99857f6c25eacc115a4f28d2611a23d9ddff99ab0e4f1c17a8578',
|
|
64
|
+
height: '789629',
|
|
65
|
+
},
|
|
66
|
+
feeFrozen: '100000000000',
|
|
67
|
+
free: '501090793179',
|
|
68
|
+
locks: [
|
|
69
|
+
{
|
|
70
|
+
amount: '100000000000',
|
|
71
|
+
id: '0x7374616b696e6720',
|
|
72
|
+
reasons: 'All',
|
|
73
|
+
},
|
|
74
|
+
],
|
|
75
|
+
miscFrozen: '100000000000',
|
|
76
|
+
nonce: '6',
|
|
77
|
+
reserved: '0',
|
|
78
|
+
tokenSymbol: 'DOT',
|
|
79
|
+
};
|
|
80
|
+
expect((0, sanitizeNumbers_1.sanitizeNumbers)(result)).toStrictEqual(expectedResponse);
|
|
33
81
|
});
|
|
34
82
|
describe('token recognition', () => {
|
|
83
|
+
const tokenHistoricApi = { ...mockHistoricApi };
|
|
84
|
+
tokenHistoricApi.query.system.account = { at: true };
|
|
85
|
+
tokenHistoricApi.query.balances.freeBalance = undefined;
|
|
86
|
+
const tokenMockApi = {
|
|
87
|
+
...mock_1.defaultMockApi,
|
|
88
|
+
...queryMockApi,
|
|
89
|
+
at: (_hash) => tokenHistoricApi,
|
|
90
|
+
};
|
|
91
|
+
const tokenAccountsBalanceInfoService = new AccountsBalanceInfoService_1.AccountsBalanceInfoService(tokenMockApi);
|
|
35
92
|
let tempQueryTokens, tempQueryBalance, mockTokensLocksAt, mockTokenAccountAt, mockBalancesLocksAt;
|
|
36
93
|
beforeAll(() => {
|
|
37
94
|
// Important: these temp values should never be reassinged. They are used so we can assign
|
|
38
95
|
// the mockApi properties back to their original values after this sub-section of tests run.
|
|
39
|
-
tempQueryTokens =
|
|
40
|
-
tempQueryBalance =
|
|
41
|
-
const tokensAccountAt = async (hash, address) => (await
|
|
96
|
+
tempQueryTokens = tokenMockApi.query.tokens;
|
|
97
|
+
tempQueryBalance = tokenMockApi.query.balances;
|
|
98
|
+
const tokensAccountAt = async (hash, address) => (await tokenMockApi.query.system.account.at(hash, address)).data;
|
|
42
99
|
// Wrap our functions in a jest mock so we can collect data on how they are called
|
|
43
|
-
mockTokensLocksAt = jest.fn(
|
|
100
|
+
mockTokensLocksAt = jest.fn(tokenMockApi.query.balances.locks.at);
|
|
44
101
|
mockTokenAccountAt = jest.fn(tokensAccountAt);
|
|
45
|
-
|
|
102
|
+
tokenMockApi.query.tokens = {
|
|
46
103
|
locks: { at: mockTokensLocksAt },
|
|
47
104
|
accounts: { at: mockTokenAccountAt },
|
|
48
105
|
};
|
|
49
|
-
mockBalancesLocksAt = jest.fn(
|
|
50
|
-
|
|
51
|
-
locks: { at: mockBalancesLocksAt },
|
|
52
|
-
};
|
|
106
|
+
mockBalancesLocksAt = jest.fn(tokenMockApi.query.balances.locks.at);
|
|
107
|
+
tokenMockApi.query.balances.locks.at = mockBalancesLocksAt;
|
|
53
108
|
});
|
|
54
109
|
afterEach(() => {
|
|
55
110
|
// Clear data about how the mocks where called after each `it` test.
|
|
@@ -58,45 +113,25 @@ describe('AccountsBalanceInfoService', () => {
|
|
|
58
113
|
mockBalancesLocksAt.mockClear();
|
|
59
114
|
});
|
|
60
115
|
afterAll(() => {
|
|
61
|
-
|
|
62
|
-
|
|
116
|
+
mockApi.query.tokens = tempQueryTokens;
|
|
117
|
+
mockApi.query.balances = tempQueryBalance;
|
|
63
118
|
});
|
|
64
119
|
it('only has `["DOT"]` (all uppercase chars) for the mockApi registry', () => {
|
|
65
|
-
expect(
|
|
66
|
-
expect(
|
|
120
|
+
expect(mockApi.registry.chainTokens).toStrictEqual(['DOT']);
|
|
121
|
+
expect(mockApi.registry.chainDecimals).toStrictEqual([12]);
|
|
67
122
|
});
|
|
68
123
|
it('querrys tokens pallet storage with a non-native token', async () => {
|
|
69
|
-
expect((0, sanitizeNumbers_1.sanitizeNumbers)(await
|
|
124
|
+
expect((0, sanitizeNumbers_1.sanitizeNumbers)(await tokenAccountsBalanceInfoService.fetchAccountBalanceInfo(mock_1.blockHash789629, mock_1.testAddress, 'fOoToKeN')).tokenSymbol).toEqual('fOoToKeN');
|
|
70
125
|
expect(mockTokensLocksAt).toBeCalled();
|
|
71
126
|
expect(mockTokenAccountAt).toBeCalled();
|
|
72
127
|
expect(mockBalancesLocksAt).not.toBeCalled();
|
|
73
128
|
});
|
|
74
129
|
it('does not query tokens pallet storage with the native token', async () => {
|
|
75
|
-
expect((0, sanitizeNumbers_1.sanitizeNumbers)(await
|
|
130
|
+
expect((0, sanitizeNumbers_1.sanitizeNumbers)(await tokenAccountsBalanceInfoService.fetchAccountBalanceInfo(mock_1.blockHash789629, mock_1.testAddress, 'doT')).tokenSymbol).toEqual('doT');
|
|
76
131
|
expect(mockTokensLocksAt).not.toBeCalled();
|
|
77
132
|
expect(mockTokenAccountAt).not.toBeCalled();
|
|
78
133
|
expect(mockBalancesLocksAt).toBeCalled();
|
|
79
134
|
});
|
|
80
|
-
it('Correctly queries historical blocks', async () => {
|
|
81
|
-
// Set the at to a historical runtime, before the storage key format changed
|
|
82
|
-
mock_1.mockApi.at = () => Promise.resolve().then(() => historicalMockApi);
|
|
83
|
-
const result = await accountsBalanceInfoService.fetchAccountBalanceInfo(mock_1.blockHash789629, mock_1.testAddress, 'DOT');
|
|
84
|
-
const expectedResponse = {
|
|
85
|
-
at: {
|
|
86
|
-
hash: '0x7b713de604a99857f6c25eacc115a4f28d2611a23d9ddff99ab0e4f1c17a8578',
|
|
87
|
-
height: '789629',
|
|
88
|
-
},
|
|
89
|
-
feeFrozen: '0',
|
|
90
|
-
free: '123456789',
|
|
91
|
-
locks: [],
|
|
92
|
-
miscFrozen: '0',
|
|
93
|
-
nonce: '1',
|
|
94
|
-
reserved: '1',
|
|
95
|
-
tokenSymbol: 'DOT',
|
|
96
|
-
};
|
|
97
|
-
expect((0, sanitizeNumbers_1.sanitizeNumbers)(result)).toStrictEqual(expectedResponse);
|
|
98
|
-
mock_1.mockApi.at = async () => (0, typeFactory_1.createApiWithAugmentations)(metadata_1.polkadotMetadata.toHex());
|
|
99
|
-
});
|
|
100
135
|
});
|
|
101
136
|
});
|
|
102
137
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountsBalanceInfoService.spec.js","sourceRoot":"","sources":["../../../../src/services/accounts/AccountsBalanceInfoService.spec.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"AccountsBalanceInfoService.spec.js","sourceRoot":"","sources":["../../../../src/services/accounts/AccountsBalanceInfoService.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { Option } from '@polkadot/types';
|
|
2
|
+
import { AccountId, Hash, StakingLedger } from '@polkadot/types/interfaces';
|
|
3
|
+
export declare const bondedAt: (_hash: Hash, _address: string) => Promise<Option<AccountId>>;
|
|
4
|
+
export declare const ledgerAt: (_hash: Hash, _address: string) => Promise<Option<StakingLedger>>;
|
|
@@ -3,29 +3,45 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
|
|
7
|
-
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
6
|
+
exports.ledgerAt = exports.bondedAt = void 0;
|
|
8
7
|
const http_errors_1 = require("http-errors");
|
|
9
8
|
const sanitizeNumbers_1 = require("../../sanitize/sanitizeNumbers");
|
|
10
9
|
const registries_1 = require("../../test-helpers/registries");
|
|
11
10
|
const mock_1 = require("../test-helpers/mock");
|
|
12
11
|
const stakingInfo789629_json_1 = __importDefault(require("../test-helpers/responses/accounts/stakingInfo789629.json"));
|
|
13
12
|
const AccountsStakingInfoService_1 = require("./AccountsStakingInfoService");
|
|
14
|
-
const
|
|
13
|
+
const bondedAt = (_hash, _address) => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('Option<AccountId>', mock_1.testAddressController));
|
|
14
|
+
exports.bondedAt = bondedAt;
|
|
15
|
+
const ledgerAt = (_hash, _address) => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('Option<StakingLedger>', '0x2c2a55b5e0d28cc772b47bb9b25981cbb69eca73f7c3388fb6464e7d24be470e0700e87648170700e8764817008c000000000100000002000000030000000400000005000000060000000700000008000000090000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000'));
|
|
16
|
+
exports.ledgerAt = ledgerAt;
|
|
17
|
+
const payeeAt = (_hash, _address) => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('RewardDestination', 'Controller'));
|
|
18
|
+
const slashingSpansAt = (_hash, _address) => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('SlashingSpans'));
|
|
19
|
+
const mockApi = {
|
|
20
|
+
...mock_1.defaultMockApi,
|
|
21
|
+
query: {
|
|
22
|
+
staking: {
|
|
23
|
+
bonded: { at: exports.bondedAt },
|
|
24
|
+
ledger: { at: exports.ledgerAt },
|
|
25
|
+
payee: { at: payeeAt },
|
|
26
|
+
slashingSpans: { at: slashingSpansAt },
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
const accountStakingInfoService = new AccountsStakingInfoService_1.AccountsStakingInfoService(mockApi);
|
|
15
31
|
describe('AccountsStakingInfoService', () => {
|
|
16
32
|
describe('fetchAccountStakingInfo', () => {
|
|
17
33
|
it('works with a valid stash address (block 789629)', async () => {
|
|
18
34
|
expect((0, sanitizeNumbers_1.sanitizeNumbers)(await accountStakingInfoService.fetchAccountStakingInfo(mock_1.blockHash789629, mock_1.testAddress))).toStrictEqual(stakingInfo789629_json_1.default);
|
|
19
35
|
});
|
|
20
36
|
it('throws a 400 when the given address is not a stash', async () => {
|
|
21
|
-
|
|
37
|
+
mockApi.query.staking.bonded.at = () => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('Option<AccountId>', null));
|
|
22
38
|
await expect(accountStakingInfoService.fetchAccountStakingInfo(mock_1.blockHash789629, 'NotStash')).rejects.toStrictEqual(new http_errors_1.BadRequest('The address NotStash is not a stash address.'));
|
|
23
|
-
|
|
39
|
+
mockApi.query.staking.bonded.at = exports.bondedAt;
|
|
24
40
|
});
|
|
25
41
|
it('throws a 404 when the staking ledger cannot be found', async () => {
|
|
26
|
-
|
|
42
|
+
mockApi.query.staking.ledger.at = () => Promise.resolve().then(() => registries_1.polkadotRegistry.createType('Option<StakingLedger>', null));
|
|
27
43
|
await expect(accountStakingInfoService.fetchAccountStakingInfo(mock_1.blockHash789629, mock_1.testAddress)).rejects.toStrictEqual(new http_errors_1.InternalServerError(`Staking ledger could not be found for controller address "${mock_1.testAddressController.toString()}"`));
|
|
28
|
-
|
|
44
|
+
mockApi.query.staking.ledger.at = exports.ledgerAt;
|
|
29
45
|
});
|
|
30
46
|
});
|
|
31
47
|
});
|