@substrate/api-sidecar 12.4.3 → 13.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/README.md +2 -2
- package/build/package.json +5 -5
- package/build/src/SidecarConfig.js +1 -1
- package/build/src/SidecarConfig.js.map +1 -1
- package/build/src/Specs.js +3 -3
- package/build/src/Specs.js.map +1 -1
- package/build/src/chains-config/acalaControllers.js +3 -2
- package/build/src/chains-config/acalaControllers.js.map +1 -1
- package/build/src/chains-config/astarControllers.js +3 -2
- package/build/src/chains-config/astarControllers.js.map +1 -1
- package/build/src/chains-config/bifrostControllers.js +3 -2
- package/build/src/chains-config/bifrostControllers.js.map +1 -1
- package/build/src/chains-config/bifrostPolkadotControllers.d.ts +5 -0
- package/build/src/chains-config/bifrostPolkadotControllers.js +49 -0
- package/build/src/chains-config/bifrostPolkadotControllers.js.map +1 -0
- package/build/src/chains-config/cache/QueryFeeDetailsCache.d.ts +55 -0
- package/build/src/chains-config/cache/QueryFeeDetailsCache.js +80 -0
- package/build/src/chains-config/cache/QueryFeeDetailsCache.js.map +1 -0
- package/build/src/chains-config/cache/QueryFeeDetailsCache.spec.d.ts +1 -0
- package/build/src/chains-config/cache/QueryFeeDetailsCache.spec.js +47 -0
- package/build/src/chains-config/cache/QueryFeeDetailsCache.spec.js.map +1 -0
- package/build/src/chains-config/cache/index.d.ts +2 -0
- package/build/src/chains-config/cache/index.js +19 -0
- package/build/src/chains-config/cache/index.js.map +1 -0
- package/build/src/chains-config/calamariControllers.js +3 -2
- package/build/src/chains-config/calamariControllers.js.map +1 -1
- package/build/src/chains-config/crustControllers.js +3 -2
- package/build/src/chains-config/crustControllers.js.map +1 -1
- package/build/src/chains-config/defaultControllers.js +3 -2
- package/build/src/chains-config/defaultControllers.js.map +1 -1
- package/build/src/chains-config/dockMainnetControllers.js +3 -2
- package/build/src/chains-config/dockMainnetControllers.js.map +1 -1
- package/build/src/chains-config/dockPoSMainnetControllers.js +3 -2
- package/build/src/chains-config/dockPoSMainnetControllers.js.map +1 -1
- package/build/src/chains-config/dockPoSTestnetControllers.js +3 -2
- package/build/src/chains-config/dockPoSTestnetControllers.js.map +1 -1
- package/build/src/chains-config/heikoControllers.js +3 -2
- package/build/src/chains-config/heikoControllers.js.map +1 -1
- package/build/src/chains-config/index.js +2 -0
- package/build/src/chains-config/index.js.map +1 -1
- package/build/src/chains-config/karuraControllers.js +3 -2
- package/build/src/chains-config/karuraControllers.js.map +1 -1
- package/build/src/chains-config/kiltControllers.js +3 -2
- package/build/src/chains-config/kiltControllers.js.map +1 -1
- package/build/src/chains-config/kulupuControllers.js +3 -2
- package/build/src/chains-config/kulupuControllers.js.map +1 -1
- package/build/src/chains-config/kusamaControllers.js +3 -2
- package/build/src/chains-config/kusamaControllers.js.map +1 -1
- package/build/src/chains-config/mandalaControllers.js +3 -2
- package/build/src/chains-config/mandalaControllers.js.map +1 -1
- package/build/src/chains-config/mantaControllers.js +3 -2
- package/build/src/chains-config/mantaControllers.js.map +1 -1
- package/build/src/chains-config/parallelControllers.js +3 -2
- package/build/src/chains-config/parallelControllers.js.map +1 -1
- package/build/src/chains-config/polkadotControllers.js +3 -2
- package/build/src/chains-config/polkadotControllers.js.map +1 -1
- package/build/src/chains-config/polymeshControllers.js +3 -2
- package/build/src/chains-config/polymeshControllers.js.map +1 -1
- package/build/src/chains-config/shidenControllers.js +3 -2
- package/build/src/chains-config/shidenControllers.js.map +1 -1
- package/build/src/chains-config/soraControllers.js +3 -2
- package/build/src/chains-config/soraControllers.js.map +1 -1
- package/build/src/chains-config/statemineControllers.js +3 -2
- package/build/src/chains-config/statemineControllers.js.map +1 -1
- package/build/src/chains-config/statemintControllers.js +3 -2
- package/build/src/chains-config/statemintControllers.js.map +1 -1
- package/build/src/chains-config/westendControllers.js +3 -2
- package/build/src/chains-config/westendControllers.js.map +1 -1
- package/build/src/controllers/blocks/BlocksController.d.ts +1 -8
- package/build/src/controllers/blocks/BlocksController.js +4 -10
- package/build/src/controllers/blocks/BlocksController.js.map +1 -1
- package/build/src/controllers/blocks/BlocksExtrinsicsController.d.ts +1 -7
- package/build/src/controllers/blocks/BlocksExtrinsicsController.js +2 -4
- package/build/src/controllers/blocks/BlocksExtrinsicsController.js.map +1 -1
- package/build/src/main.js +10 -9
- package/build/src/main.js.map +1 -1
- package/build/src/services/blocks/BlocksService.d.ts +29 -50
- package/build/src/services/blocks/BlocksService.js +81 -153
- package/build/src/services/blocks/BlocksService.js.map +1 -1
- package/build/src/services/blocks/BlocksService.spec.js +17 -81
- package/build/src/services/blocks/BlocksService.spec.js.map +1 -1
- package/build/src/services/paras/ParasService.js +1 -1
- package/build/src/services/paras/ParasService.js.map +1 -1
- package/build/src/types/chains-config/ControllerConfig.d.ts +20 -8
- package/build/src/types/sidecar-config/CONFIG.d.ts +1 -1
- package/build/src/types/sidecar-config/CONFIG.js +1 -1
- package/build/src/types/sidecar-config/CONFIG.js.map +1 -1
- package/build/src/types/sidecar-config/SidecarConfig.d.ts +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlocksExtrinsicsController.js","sourceRoot":"","sources":["../../../../src/controllers/blocks/BlocksExtrinsicsController.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;;;;;
|
|
1
|
+
{"version":3,"file":"BlocksExtrinsicsController.js","sourceRoot":"","sources":["../../../../src/controllers/blocks/BlocksExtrinsicsController.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,8CAA8C;AAC9C,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,oEAAoE;AACpE,sCAAsC;AACtC,EAAE;AACF,kEAAkE;AAClE,iEAAiE;AACjE,gEAAgE;AAChE,+CAA+C;AAC/C,EAAE;AACF,oEAAoE;AACpE,wEAAwE;;;;;AAKxE,6CAA+C;AAG/C,+EAAuD;AAEvD,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,cAAc,CACtB,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"}
|
package/build/src/main.js
CHANGED
|
@@ -64,7 +64,9 @@ async function main() {
|
|
|
64
64
|
const { TYPES_BUNDLE, TYPES_SPEC, TYPES_CHAIN, TYPES } = config.SUBSTRATE;
|
|
65
65
|
// Instantiate a web socket connection to the node and load types
|
|
66
66
|
const api = await api_1.ApiPromise.create({
|
|
67
|
-
provider:
|
|
67
|
+
provider: config.SUBSTRATE.URL.startsWith('http')
|
|
68
|
+
? new rpc_provider_1.HttpProvider(config.SUBSTRATE.URL)
|
|
69
|
+
: new rpc_provider_1.WsProvider(config.SUBSTRATE.URL),
|
|
68
70
|
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
69
71
|
typesBundle: TYPES_BUNDLE
|
|
70
72
|
? require(TYPES_BUNDLE)
|
|
@@ -83,7 +85,7 @@ async function main() {
|
|
|
83
85
|
api.rpc.system.chain(),
|
|
84
86
|
api.rpc.state.getRuntimeVersion(),
|
|
85
87
|
]);
|
|
86
|
-
startUpPrompt(config.SUBSTRATE.
|
|
88
|
+
startUpPrompt(config.SUBSTRATE.URL, chainName.toString(), implName.toString());
|
|
87
89
|
// Create our App
|
|
88
90
|
const app = new App_1.default({
|
|
89
91
|
preMiddleware: [(0, express_1.json)(), middleware.httpLoggerCreate(logger)],
|
|
@@ -105,22 +107,21 @@ async function main() {
|
|
|
105
107
|
* Prompt the user with some basic info about the node and the network they have
|
|
106
108
|
* connected Sidecar to.
|
|
107
109
|
*
|
|
108
|
-
* @param
|
|
110
|
+
* @param url Url of the node Sidecar is connected to, can be a websocket or http address
|
|
109
111
|
* @param chainName chain name of the network Sidecar is connected to
|
|
110
112
|
* @param implName implementation name of the node Sidecar is connected to
|
|
111
113
|
*/
|
|
112
|
-
function startUpPrompt(
|
|
114
|
+
function startUpPrompt(url, chainName, implName) {
|
|
113
115
|
const { logger } = Log_1.Log;
|
|
114
|
-
|
|
115
|
-
logger.info(`Connected to chain ${chainName} on the ${implName} client at ${config.SUBSTRATE.WS_URL}`);
|
|
116
|
+
logger.info(`Connected to chain ${chainName} on the ${implName} client at ${url}`);
|
|
116
117
|
// Split the Url to check for 2 things. Secure connection, and if its a local IP.
|
|
117
|
-
const splitUrl =
|
|
118
|
+
const splitUrl = url.split(':');
|
|
118
119
|
// If its 'ws' its not a secure connection.
|
|
119
|
-
const isSecure = splitUrl[0] === 'wss';
|
|
120
|
+
const isSecure = splitUrl[0] === 'wss' || splitUrl[0] === 'https';
|
|
120
121
|
// Check if its a local IP.
|
|
121
122
|
const isLocal = splitUrl[1] === '//127.0.0.1' || splitUrl[1] === '//localhost';
|
|
122
123
|
if (!isSecure && !isLocal) {
|
|
123
|
-
logger.warn(`Using unencrypted connection to a public node (${
|
|
124
|
+
logger.warn(`Using unencrypted connection to a public node (${url}); All traffic is sent over the internet in cleartext.`);
|
|
124
125
|
}
|
|
125
126
|
}
|
|
126
127
|
process.on('SIGINT', function () {
|
package/build/src/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":";;AAEA,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,yCAAyC;AACzC,iCAA+B;AAE/B,uCAA2C;AAC3C,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { ApiPromise } from '@polkadot/api';
|
|
|
2
2
|
import { ApiDecoration } from '@polkadot/api/types';
|
|
3
3
|
import { BlockHash, Header } from '@polkadot/types/interfaces';
|
|
4
4
|
import LRU from 'lru-cache';
|
|
5
|
+
import { QueryFeeDetailsCache } from '../../chains-config/cache';
|
|
5
6
|
import { IBlock, IExtrinsicIndex } from '../../types/responses';
|
|
6
7
|
import { IOption } from '../../types/util';
|
|
7
8
|
import { AbstractService } from '../AbstractService';
|
|
@@ -19,19 +20,44 @@ interface FetchBlockOptions {
|
|
|
19
20
|
checkFinalized: boolean;
|
|
20
21
|
queryFinalizedHead: boolean;
|
|
21
22
|
omitFinalizedTag: boolean;
|
|
22
|
-
getFeeByEvent: boolean;
|
|
23
23
|
}
|
|
24
24
|
export declare class BlocksService extends AbstractService {
|
|
25
25
|
private minCalcFeeRuntime;
|
|
26
26
|
private blockStore;
|
|
27
|
-
|
|
27
|
+
private hasQueryFeeApi;
|
|
28
|
+
constructor(api: ApiPromise, minCalcFeeRuntime: IOption<number>, blockStore: LRU<string, IBlock>, hasQueryFeeApi: QueryFeeDetailsCache);
|
|
28
29
|
/**
|
|
29
30
|
* Fetch a block augmented with derived values.
|
|
30
31
|
*
|
|
31
32
|
* @param hash `BlockHash` of the block to fetch.
|
|
32
33
|
* @param FetchBlockOptions options for additonal information.
|
|
33
34
|
*/
|
|
34
|
-
fetchBlock(hash: BlockHash, historicApi: ApiDecoration<'promise'>, { eventDocs, extrinsicDocs, checkFinalized, queryFinalizedHead, omitFinalizedTag,
|
|
35
|
+
fetchBlock(hash: BlockHash, historicApi: ApiDecoration<'promise'>, { eventDocs, extrinsicDocs, checkFinalized, queryFinalizedHead, omitFinalizedTag, }: FetchBlockOptions): Promise<IBlock>;
|
|
36
|
+
/**
|
|
37
|
+
* Fetch `payment_queryFeeDetails`.
|
|
38
|
+
*
|
|
39
|
+
* @param extHex
|
|
40
|
+
* @param previousBlockHash
|
|
41
|
+
* @param extrinsicSuccessWeight
|
|
42
|
+
* @param estWeight
|
|
43
|
+
*/
|
|
44
|
+
private fetchQueryFeeDetails;
|
|
45
|
+
/**
|
|
46
|
+
* Retrieve the blockHash for the previous block to the one getting queried.
|
|
47
|
+
* If the block is the geneisis hash it will return the same blockHash.
|
|
48
|
+
*
|
|
49
|
+
* @param blockNumber The blockId being queried
|
|
50
|
+
*/
|
|
51
|
+
private fetchPreviousBlockHash;
|
|
52
|
+
/**
|
|
53
|
+
* Calculate the partialFee for an extrinsic. This uses `calc_partial_fee` from `@substrate/calc`.
|
|
54
|
+
* Please reference the rust code in `@substrate/calc` too see docs on the algorithm.
|
|
55
|
+
*
|
|
56
|
+
* @param extrinsicSuccessWeight
|
|
57
|
+
* @param estWeight
|
|
58
|
+
* @param inclusionFee
|
|
59
|
+
*/
|
|
60
|
+
private calcPartialFee;
|
|
35
61
|
/**
|
|
36
62
|
* Return the header of a block
|
|
37
63
|
*
|
|
@@ -68,53 +94,6 @@ export declare class BlocksService extends AbstractService {
|
|
|
68
94
|
* @param historicApi ApiDecoration to use for the query
|
|
69
95
|
*/
|
|
70
96
|
private fetchEvents;
|
|
71
|
-
/**
|
|
72
|
-
* This will check whether we should query the fee by `payment::queryInfo`
|
|
73
|
-
* or by an extrinsics events.
|
|
74
|
-
*
|
|
75
|
-
* @param events The events to search through for a partialFee
|
|
76
|
-
* @param extrinsicHex Hex of the given extrinsic
|
|
77
|
-
* @param hash Blockhash we are querying
|
|
78
|
-
* @param getFeeByEvent `FeeByEvent` query parameter
|
|
79
|
-
*/
|
|
80
|
-
private getPartialFeeInfo;
|
|
81
|
-
/**
|
|
82
|
-
* This searches through an extrinsics given events to see if there is a partialFee
|
|
83
|
-
* within the data. If the estimated partialFee is within a given difference of the
|
|
84
|
-
* found fee within the data than we return that result.
|
|
85
|
-
*
|
|
86
|
-
* The order of the events we search through are:
|
|
87
|
-
* 1.Balances::Event::Withdraw
|
|
88
|
-
* 2.Treasury::Event::Deposit
|
|
89
|
-
* 3.Balances::Event::Deposit
|
|
90
|
-
*
|
|
91
|
-
* @param events The events to search through for a partialFee
|
|
92
|
-
* @param partialFee Estimated partialFee given by `payment::queryInfo`
|
|
93
|
-
*/
|
|
94
|
-
private getPartialFeeByEvents;
|
|
95
|
-
/**
|
|
96
|
-
* Find the corresponding events relevant to the passed in pallet, and method name.
|
|
97
|
-
*
|
|
98
|
-
* @param events The events to search through for a partialFee
|
|
99
|
-
* @param palletName Pallet to search for
|
|
100
|
-
* @param methodName Method to search for
|
|
101
|
-
*/
|
|
102
|
-
private findEvent;
|
|
103
|
-
/**
|
|
104
|
-
* Sanitize a given fee
|
|
105
|
-
*
|
|
106
|
-
* @param fee
|
|
107
|
-
*/
|
|
108
|
-
private sanitizeFee;
|
|
109
|
-
/**
|
|
110
|
-
* Checks to see if the value in an event is within 00.00001% accuracy of
|
|
111
|
-
* the queried `partialFee` from `rpc::payment::queryInfo`.
|
|
112
|
-
*
|
|
113
|
-
* @param eventBalance Balance returned in the data of an event
|
|
114
|
-
* @param partialFee Fee queried from `rpc::payment::queryInfo`
|
|
115
|
-
* @param diff difference between the
|
|
116
|
-
*/
|
|
117
|
-
private areFeesSimilar;
|
|
118
97
|
/**
|
|
119
98
|
* Checks to see if the current chain has the session module, then retrieve all
|
|
120
99
|
* validators.
|
|
@@ -23,11 +23,11 @@ const util_1 = require("@polkadot/api-derive/type/util");
|
|
|
23
23
|
const types_1 = require("@polkadot/types");
|
|
24
24
|
const util_2 = require("@polkadot/util");
|
|
25
25
|
const util_crypto_1 = require("@polkadot/util-crypto");
|
|
26
|
+
const calc_1 = require("@substrate/calc");
|
|
26
27
|
const bn_js_1 = __importDefault(require("bn.js"));
|
|
27
28
|
const http_errors_1 = require("http-errors");
|
|
28
29
|
const responses_1 = require("../../types/responses");
|
|
29
30
|
const util_3 = require("../../types/util");
|
|
30
|
-
const compare_1 = require("../../util/integers/compare");
|
|
31
31
|
const AbstractService_1 = require("../AbstractService");
|
|
32
32
|
/**
|
|
33
33
|
* Event methods that we check for.
|
|
@@ -36,14 +36,13 @@ var Event;
|
|
|
36
36
|
(function (Event) {
|
|
37
37
|
Event["success"] = "ExtrinsicSuccess";
|
|
38
38
|
Event["failure"] = "ExtrinsicFailed";
|
|
39
|
-
Event["withdraw"] = "Withdraw";
|
|
40
|
-
Event["deposit"] = "Deposit";
|
|
41
39
|
})(Event || (Event = {}));
|
|
42
40
|
class BlocksService extends AbstractService_1.AbstractService {
|
|
43
|
-
constructor(api, minCalcFeeRuntime, blockStore) {
|
|
41
|
+
constructor(api, minCalcFeeRuntime, blockStore, hasQueryFeeApi) {
|
|
44
42
|
super(api);
|
|
45
43
|
this.minCalcFeeRuntime = minCalcFeeRuntime;
|
|
46
44
|
this.blockStore = blockStore;
|
|
45
|
+
this.hasQueryFeeApi = hasQueryFeeApi;
|
|
47
46
|
}
|
|
48
47
|
/**
|
|
49
48
|
* Fetch a block augmented with derived values.
|
|
@@ -51,7 +50,7 @@ class BlocksService extends AbstractService_1.AbstractService {
|
|
|
51
50
|
* @param hash `BlockHash` of the block to fetch.
|
|
52
51
|
* @param FetchBlockOptions options for additonal information.
|
|
53
52
|
*/
|
|
54
|
-
async fetchBlock(hash, historicApi, { eventDocs, extrinsicDocs, checkFinalized, queryFinalizedHead, omitFinalizedTag,
|
|
53
|
+
async fetchBlock(hash, historicApi, { eventDocs, extrinsicDocs, checkFinalized, queryFinalizedHead, omitFinalizedTag, }) {
|
|
55
54
|
const { api } = this;
|
|
56
55
|
// Before making any api calls check the cache if the queried block exists
|
|
57
56
|
const isBlockCached = this.blockStore.get(hash.toString());
|
|
@@ -98,6 +97,7 @@ class BlocksService extends AbstractService_1.AbstractService {
|
|
|
98
97
|
finalized,
|
|
99
98
|
};
|
|
100
99
|
}
|
|
100
|
+
const previousBlockHash = await this.fetchPreviousBlockHash(number);
|
|
101
101
|
for (let idx = 0; idx < block.extrinsics.length; ++idx) {
|
|
102
102
|
if (!extrinsics[idx].paysFee || !block.extrinsics[idx].isSigned) {
|
|
103
103
|
continue;
|
|
@@ -130,7 +130,7 @@ class BlocksService extends AbstractService_1.AbstractService {
|
|
|
130
130
|
};
|
|
131
131
|
continue;
|
|
132
132
|
}
|
|
133
|
-
//
|
|
133
|
+
// Both ExtrinsicSuccess and ExtrinsicFailed events have DispatchInfo
|
|
134
134
|
// types as their final arg
|
|
135
135
|
const weightInfo = completedData[completedData.length - 1];
|
|
136
136
|
if (!weightInfo.weight) {
|
|
@@ -145,18 +145,39 @@ class BlocksService extends AbstractService_1.AbstractService {
|
|
|
145
145
|
};
|
|
146
146
|
continue;
|
|
147
147
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
148
|
+
/**
|
|
149
|
+
* Grab the initial partialFee, and information required for calculating a partialFee
|
|
150
|
+
* if queryFeeDetails is available in the runtime.
|
|
151
|
+
*/
|
|
152
|
+
const { class: dispatchClass, partialFee, weight, } = await api.rpc.payment.queryInfo(block.extrinsics[idx].toHex(), previousBlockHash);
|
|
153
|
+
const doesQueryFeeDetailsExist = this.hasQueryFeeApi.hasQueryFeeDetails(specVersion.toNumber());
|
|
154
|
+
let finalPartialFee = partialFee.toString(), dispatchFeeType = 'preDispatch';
|
|
155
|
+
/**
|
|
156
|
+
* Call queryFeeDetails. It may not be available in the runtime and will
|
|
157
|
+
* error automatically when we try to call it. We cache the runtimes it will error so we
|
|
158
|
+
* don't try to call it again given a specVersion.
|
|
159
|
+
*/
|
|
160
|
+
if (doesQueryFeeDetailsExist === 'available') {
|
|
161
|
+
finalPartialFee = await this.fetchQueryFeeDetails(block.extrinsics[idx].toHex(), previousBlockHash, weightInfo.weight, weight);
|
|
162
|
+
dispatchFeeType = 'postDispatch';
|
|
163
|
+
}
|
|
164
|
+
else if (doesQueryFeeDetailsExist === 'unknown') {
|
|
165
|
+
try {
|
|
166
|
+
finalPartialFee = await this.fetchQueryFeeDetails(block.extrinsics[idx].toHex(), previousBlockHash, weightInfo.weight, weight);
|
|
167
|
+
dispatchFeeType = 'postDispatch';
|
|
168
|
+
this.hasQueryFeeApi.setRegisterWithCall(specVersion.toNumber());
|
|
169
|
+
}
|
|
170
|
+
catch {
|
|
171
|
+
this.hasQueryFeeApi.setRegisterWithoutCall(specVersion.toNumber());
|
|
172
|
+
console.warn('The error above is automatically emitted from polkadot-js, and can be ignored.');
|
|
173
|
+
}
|
|
154
174
|
}
|
|
155
|
-
extrinsics[idx].info =
|
|
175
|
+
extrinsics[idx].info = {
|
|
156
176
|
weight: weightInfo.weight,
|
|
157
177
|
class: dispatchClass,
|
|
158
|
-
partialFee:
|
|
159
|
-
|
|
178
|
+
partialFee: api.registry.createType('Balance', finalPartialFee),
|
|
179
|
+
kind: dispatchFeeType,
|
|
180
|
+
};
|
|
160
181
|
}
|
|
161
182
|
const response = {
|
|
162
183
|
number,
|
|
@@ -175,6 +196,51 @@ class BlocksService extends AbstractService_1.AbstractService {
|
|
|
175
196
|
this.blockStore.set(hash.toString(), response);
|
|
176
197
|
return response;
|
|
177
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* Fetch `payment_queryFeeDetails`.
|
|
201
|
+
*
|
|
202
|
+
* @param extHex
|
|
203
|
+
* @param previousBlockHash
|
|
204
|
+
* @param extrinsicSuccessWeight
|
|
205
|
+
* @param estWeight
|
|
206
|
+
*/
|
|
207
|
+
async fetchQueryFeeDetails(extHex, previousBlockHash, extrinsicSuccessWeight, estWeight) {
|
|
208
|
+
const { api } = this;
|
|
209
|
+
const { inclusionFee } = await api.rpc.payment.queryFeeDetails(extHex, previousBlockHash);
|
|
210
|
+
const finalPartialFee = this.calcPartialFee(extrinsicSuccessWeight, estWeight, inclusionFee);
|
|
211
|
+
return finalPartialFee;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Retrieve the blockHash for the previous block to the one getting queried.
|
|
215
|
+
* If the block is the geneisis hash it will return the same blockHash.
|
|
216
|
+
*
|
|
217
|
+
* @param blockNumber The blockId being queried
|
|
218
|
+
*/
|
|
219
|
+
async fetchPreviousBlockHash(blockNumber) {
|
|
220
|
+
const { api } = this;
|
|
221
|
+
const num = blockNumber.toBn();
|
|
222
|
+
return num.isZero()
|
|
223
|
+
? await api.rpc.chain.getBlockHash(num)
|
|
224
|
+
: await api.rpc.chain.getBlockHash(num.sub(new bn_js_1.default(1)));
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Calculate the partialFee for an extrinsic. This uses `calc_partial_fee` from `@substrate/calc`.
|
|
228
|
+
* Please reference the rust code in `@substrate/calc` too see docs on the algorithm.
|
|
229
|
+
*
|
|
230
|
+
* @param extrinsicSuccessWeight
|
|
231
|
+
* @param estWeight
|
|
232
|
+
* @param inclusionFee
|
|
233
|
+
*/
|
|
234
|
+
calcPartialFee(extrinsicSuccessWeight, estWeight, inclusionFee) {
|
|
235
|
+
if (inclusionFee.isSome) {
|
|
236
|
+
const { baseFee, lenFee, adjustedWeightFee } = inclusionFee.unwrap();
|
|
237
|
+
return (0, calc_1.calc_partial_fee)(baseFee.toString(), lenFee.toString(), adjustedWeightFee.toString(), estWeight.toString(), extrinsicSuccessWeight.toString());
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
// When the inclusion fee isNone we are dealing with a unsigned extrinsic.
|
|
241
|
+
return '0';
|
|
242
|
+
}
|
|
243
|
+
}
|
|
178
244
|
/**
|
|
179
245
|
* Return the header of a block
|
|
180
246
|
*
|
|
@@ -314,144 +380,6 @@ class BlocksService extends AbstractService_1.AbstractService {
|
|
|
314
380
|
return 'Unable to fetch Events, cannot confirm extrinsic status. Check pruning settings on the node.';
|
|
315
381
|
}
|
|
316
382
|
}
|
|
317
|
-
/**
|
|
318
|
-
* This will check whether we should query the fee by `payment::queryInfo`
|
|
319
|
-
* or by an extrinsics events.
|
|
320
|
-
*
|
|
321
|
-
* @param events The events to search through for a partialFee
|
|
322
|
-
* @param extrinsicHex Hex of the given extrinsic
|
|
323
|
-
* @param hash Blockhash we are querying
|
|
324
|
-
* @param getFeeByEvent `FeeByEvent` query parameter
|
|
325
|
-
*/
|
|
326
|
-
async getPartialFeeInfo(events, extrinsicHex, hash, getFeeByEvent, tip) {
|
|
327
|
-
const { api } = this;
|
|
328
|
-
const { class: dispatchClass, partialFee } = await api.rpc.payment.queryInfo(extrinsicHex, hash);
|
|
329
|
-
/**
|
|
330
|
-
* Check if we should retrieve the partial_fee from the Events
|
|
331
|
-
*/
|
|
332
|
-
let fee = partialFee;
|
|
333
|
-
let error;
|
|
334
|
-
if (getFeeByEvent) {
|
|
335
|
-
const feeInfo = this.getPartialFeeByEvents(events, partialFee, tip);
|
|
336
|
-
fee = feeInfo.partialFee;
|
|
337
|
-
error = feeInfo.error;
|
|
338
|
-
}
|
|
339
|
-
return {
|
|
340
|
-
partialFee: fee,
|
|
341
|
-
dispatchClass,
|
|
342
|
-
error,
|
|
343
|
-
};
|
|
344
|
-
}
|
|
345
|
-
/**
|
|
346
|
-
* This searches through an extrinsics given events to see if there is a partialFee
|
|
347
|
-
* within the data. If the estimated partialFee is within a given difference of the
|
|
348
|
-
* found fee within the data than we return that result.
|
|
349
|
-
*
|
|
350
|
-
* The order of the events we search through are:
|
|
351
|
-
* 1.Balances::Event::Withdraw
|
|
352
|
-
* 2.Treasury::Event::Deposit
|
|
353
|
-
* 3.Balances::Event::Deposit
|
|
354
|
-
*
|
|
355
|
-
* @param events The events to search through for a partialFee
|
|
356
|
-
* @param partialFee Estimated partialFee given by `payment::queryInfo`
|
|
357
|
-
*/
|
|
358
|
-
getPartialFeeByEvents(events, partialFee, tip) {
|
|
359
|
-
// Check Event:Withdraw event for the balances pallet
|
|
360
|
-
const withdrawEvent = this.findEvent(events, 'balances', Event.withdraw);
|
|
361
|
-
if (withdrawEvent.length > 0 && withdrawEvent[0].data) {
|
|
362
|
-
const dataArr = withdrawEvent[0].data.toJSON();
|
|
363
|
-
if (Array.isArray(dataArr)) {
|
|
364
|
-
const fee = this.sanitizeFee(dataArr[dataArr.length - 1]);
|
|
365
|
-
const adjustedPartialFee = tip
|
|
366
|
-
? tip.toBn().add(partialFee)
|
|
367
|
-
: partialFee;
|
|
368
|
-
// The difference between values is 00.00001% or less so they are alike.
|
|
369
|
-
if (this.areFeesSimilar(new bn_js_1.default(fee), adjustedPartialFee)) {
|
|
370
|
-
return {
|
|
371
|
-
partialFee: tip
|
|
372
|
-
? new bn_js_1.default(fee).sub(tip.toBn()).toString()
|
|
373
|
-
: fee.toString(),
|
|
374
|
-
};
|
|
375
|
-
}
|
|
376
|
-
}
|
|
377
|
-
}
|
|
378
|
-
// Check the Event::Deposit for the treasury pallet
|
|
379
|
-
const treasuryEvent = this.findEvent(events, 'treasury', Event.deposit);
|
|
380
|
-
if (treasuryEvent.length > 0 && treasuryEvent[0].data) {
|
|
381
|
-
const dataArr = treasuryEvent[0].data.toJSON();
|
|
382
|
-
if (Array.isArray(dataArr)) {
|
|
383
|
-
const fee = this.sanitizeFee(dataArr[0]);
|
|
384
|
-
const adjustedPartialFee = tip
|
|
385
|
-
? tip.toBn().add(partialFee)
|
|
386
|
-
: partialFee;
|
|
387
|
-
// The difference between values is 00.00001% or less so they are alike.
|
|
388
|
-
if (this.areFeesSimilar(new bn_js_1.default(fee), adjustedPartialFee)) {
|
|
389
|
-
return {
|
|
390
|
-
partialFee: tip
|
|
391
|
-
? new bn_js_1.default(fee).sub(tip.toBn()).toString()
|
|
392
|
-
: fee.toString(),
|
|
393
|
-
};
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
|
-
}
|
|
397
|
-
// Check Event::Deposit events for the balances pallet.
|
|
398
|
-
const depositEvents = this.findEvent(events, 'balances', Event.deposit);
|
|
399
|
-
if (depositEvents.length > 0) {
|
|
400
|
-
let sumOfFees = new bn_js_1.default(0);
|
|
401
|
-
depositEvents.forEach(({ data }) => (sumOfFees = sumOfFees.add(new bn_js_1.default(this.sanitizeFee(data[data.length - 1].toString())))));
|
|
402
|
-
const adjustedPartialFee = tip ? tip.toBn().add(partialFee) : partialFee;
|
|
403
|
-
// The difference between values is 00.00001% or less so they are alike.
|
|
404
|
-
if (this.areFeesSimilar(sumOfFees, adjustedPartialFee)) {
|
|
405
|
-
return {
|
|
406
|
-
partialFee: tip
|
|
407
|
-
? new bn_js_1.default(sumOfFees).sub(tip.toBn()).toString()
|
|
408
|
-
: sumOfFees.toString(),
|
|
409
|
-
};
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
return {
|
|
413
|
-
partialFee: partialFee.toString(),
|
|
414
|
-
error: 'Could not find a reliable fee within the events data.',
|
|
415
|
-
};
|
|
416
|
-
}
|
|
417
|
-
/**
|
|
418
|
-
* Find the corresponding events relevant to the passed in pallet, and method name.
|
|
419
|
-
*
|
|
420
|
-
* @param events The events to search through for a partialFee
|
|
421
|
-
* @param palletName Pallet to search for
|
|
422
|
-
* @param methodName Method to search for
|
|
423
|
-
*/
|
|
424
|
-
findEvent(events, palletName, methodName) {
|
|
425
|
-
return events.filter(({ method, data }) => (0, responses_1.isFrameMethod)(method) &&
|
|
426
|
-
method.method === methodName &&
|
|
427
|
-
method.pallet === palletName &&
|
|
428
|
-
data);
|
|
429
|
-
}
|
|
430
|
-
/**
|
|
431
|
-
* Sanitize a given fee
|
|
432
|
-
*
|
|
433
|
-
* @param fee
|
|
434
|
-
*/
|
|
435
|
-
sanitizeFee(fee) {
|
|
436
|
-
if ((0, util_2.isHex)(fee)) {
|
|
437
|
-
const feeType = this.api.registry.createType('Balance', fee);
|
|
438
|
-
return feeType.toString(10);
|
|
439
|
-
}
|
|
440
|
-
return fee;
|
|
441
|
-
}
|
|
442
|
-
/**
|
|
443
|
-
* Checks to see if the value in an event is within 00.00001% accuracy of
|
|
444
|
-
* the queried `partialFee` from `rpc::payment::queryInfo`.
|
|
445
|
-
*
|
|
446
|
-
* @param eventBalance Balance returned in the data of an event
|
|
447
|
-
* @param partialFee Fee queried from `rpc::payment::queryInfo`
|
|
448
|
-
* @param diff difference between the
|
|
449
|
-
*/
|
|
450
|
-
areFeesSimilar(eventBalance, partialFee) {
|
|
451
|
-
const diff = (0, compare_1.subIntegers)(eventBalance, partialFee);
|
|
452
|
-
return (eventBalance.toString().length - diff.toString().length > 5 &&
|
|
453
|
-
eventBalance.toString().length === partialFee.toString().length);
|
|
454
|
-
}
|
|
455
383
|
/**
|
|
456
384
|
* Checks to see if the current chain has the session module, then retrieve all
|
|
457
385
|
* validators.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlocksService.js","sourceRoot":"","sources":["../../../../src/services/blocks/BlocksService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BlocksService.js","sourceRoot":"","sources":["../../../../src/services/blocks/BlocksService.ts"],"names":[],"mappings":"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"}
|