@subwallet/extension-base 1.1.40-0 → 1.1.41-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/background/KoniTypes.d.ts +3 -1
- package/cjs/constants/index.js +1 -1
- package/cjs/constants/staking.js +1 -1
- package/cjs/koni/api/dotsama/transfer.js +1 -1
- package/cjs/koni/api/nft/bit.country/index.js +2 -0
- package/cjs/koni/api/nft/config.js +3 -1
- package/cjs/koni/api/tokens/evm/transfer.js +4 -4
- package/cjs/koni/background/handlers/Extension.js +32 -17
- package/cjs/koni/background/handlers/State.js +41 -9
- package/cjs/packageInfo.js +1 -1
- package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +58 -0
- package/cjs/services/chain-service/constants.js +11 -7
- package/cjs/services/chain-service/handler/chain-spec/goldberg.js +75 -8
- package/cjs/services/chain-service/index.js +71 -59
- package/cjs/services/chain-service/utils.js +11 -6
- package/cjs/services/earning-service/constants/chains.js +2 -2
- package/cjs/services/earning-service/handlers/liquid-staking/acala.js +9 -3
- package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +8 -1
- package/cjs/services/earning-service/handlers/liquid-staking/parallel.js +6 -1
- package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +25 -17
- package/cjs/services/earning-service/handlers/native-staking/amplitude.js +4 -0
- package/cjs/services/earning-service/handlers/native-staking/astar.js +6 -2
- package/cjs/services/earning-service/handlers/native-staking/para-chain.js +5 -0
- package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +14 -16
- package/cjs/services/earning-service/handlers/nomination-pool/index.js +9 -11
- package/cjs/services/earning-service/handlers/special.js +2 -0
- package/cjs/services/earning-service/service.js +51 -18
- package/cjs/services/fee-service/service.js +70 -0
- package/cjs/services/fee-service/utils/index.js +209 -0
- package/cjs/services/migration-service/scripts/DeleteChainStaking.js +23 -0
- package/cjs/services/migration-service/scripts/index.js +3 -1
- package/cjs/services/transaction-service/index.js +37 -37
- package/cjs/types/fee/index.js +1 -0
- package/cjs/types/index.js +11 -0
- package/cjs/utils/eth.js +2 -105
- package/cjs/utils/index.js +12 -0
- package/cjs/utils/reportError.js +31 -0
- package/constants/index.d.ts +1 -1
- package/constants/index.js +1 -1
- package/constants/staking.js +1 -1
- package/koni/api/dotsama/transfer.js +1 -1
- package/koni/api/nft/bit.country/index.js +3 -1
- package/koni/api/nft/config.d.ts +1 -0
- package/koni/api/nft/config.js +1 -0
- package/koni/api/tokens/evm/transfer.js +1 -1
- package/koni/background/handlers/Extension.d.ts +1 -0
- package/koni/background/handlers/Extension.js +18 -3
- package/koni/background/handlers/State.d.ts +4 -1
- package/koni/background/handlers/State.js +32 -1
- package/package.json +32 -7
- package/packageInfo.js +1 -1
- package/services/balance-service/helpers/subscribe/substrate/index.js +59 -1
- package/services/chain-service/constants.d.ts +2 -0
- package/services/chain-service/constants.js +11 -7
- package/services/chain-service/handler/chain-spec/goldberg.d.ts +70 -1
- package/services/chain-service/handler/chain-spec/goldberg.js +75 -8
- package/services/chain-service/index.d.ts +7 -3
- package/services/chain-service/index.js +62 -51
- package/services/chain-service/types.d.ts +4 -0
- package/services/chain-service/utils.d.ts +1 -0
- package/services/chain-service/utils.js +10 -6
- package/services/earning-service/constants/chains.js +2 -2
- package/services/earning-service/handlers/liquid-staking/acala.js +9 -3
- package/services/earning-service/handlers/liquid-staking/bifrost.js +8 -1
- package/services/earning-service/handlers/liquid-staking/parallel.d.ts +1 -1
- package/services/earning-service/handlers/liquid-staking/parallel.js +6 -1
- package/services/earning-service/handlers/liquid-staking/stella-swap.js +25 -17
- package/services/earning-service/handlers/native-staking/amplitude.js +4 -0
- package/services/earning-service/handlers/native-staking/astar.js +6 -2
- package/services/earning-service/handlers/native-staking/para-chain.js +5 -0
- package/services/earning-service/handlers/native-staking/relay-chain.js +15 -17
- package/services/earning-service/handlers/nomination-pool/index.js +10 -12
- package/services/earning-service/handlers/special.d.ts +1 -0
- package/services/earning-service/handlers/special.js +2 -0
- package/services/earning-service/service.d.ts +4 -1
- package/services/earning-service/service.js +52 -19
- package/services/fee-service/service.d.ts +12 -0
- package/services/fee-service/service.js +63 -0
- package/services/fee-service/utils/index.d.ts +8 -0
- package/services/fee-service/utils/index.js +193 -0
- package/services/migration-service/scripts/DeleteChainStaking.d.ts +4 -0
- package/services/migration-service/scripts/DeleteChainStaking.js +15 -0
- package/services/migration-service/scripts/index.js +3 -1
- package/services/transaction-service/index.js +2 -2
- package/types/fee/index.d.ts +49 -0
- package/types/fee/index.js +1 -0
- package/types/index.d.ts +1 -0
- package/types/index.js +1 -0
- package/types/yield/info/account/unstake.d.ts +2 -0
- package/types/yield/info/pallet.d.ts +4 -0
- package/utils/eth.d.ts +0 -15
- package/utils/eth.js +0 -101
- package/utils/index.d.ts +1 -0
- package/utils/index.js +1 -0
- package/utils/reportError.d.ts +1 -0
- package/utils/reportError.js +23 -0
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.recalculateGasPrice = exports.parseInfuraFee = exports.fetchSubWalletFeeData = exports.fetchOnlineFeeData = exports.fetchInfuraFeeData = exports.calculateGasFeeParams = void 0;
|
|
8
|
+
var _constants = require("@subwallet/extension-base/constants");
|
|
9
|
+
var _utils = require("@subwallet/extension-base/utils");
|
|
10
|
+
var _bignumber = _interopRequireDefault(require("bignumber.js"));
|
|
11
|
+
// Copyright 2019-2022 @subwallet/extension-base
|
|
12
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
13
|
+
|
|
14
|
+
const INFURA_API_KEY = process.env.INFURA_API_KEY || '';
|
|
15
|
+
const INFURA_API_KEY_SECRET = process.env.INFURA_API_KEY_SECRET || '';
|
|
16
|
+
const INFURA_AUTH = 'Basic ' + Buffer.from(INFURA_API_KEY + ':' + INFURA_API_KEY_SECRET).toString('base64');
|
|
17
|
+
const parseInfuraFee = info => {
|
|
18
|
+
const base = new _bignumber.default(info.estimatedBaseFee).multipliedBy(_utils.BN_WEI);
|
|
19
|
+
const low = new _bignumber.default(info.low.suggestedMaxPriorityFeePerGas).multipliedBy(_utils.BN_WEI);
|
|
20
|
+
const busyNetwork = base.gt(_utils.BN_ZERO) ? low.dividedBy(base).gte(0.3) : false;
|
|
21
|
+
const data = !busyNetwork ? info.low : info.medium;
|
|
22
|
+
return {
|
|
23
|
+
busyNetwork,
|
|
24
|
+
gasPrice: undefined,
|
|
25
|
+
baseGasFee: base,
|
|
26
|
+
maxFeePerGas: new _bignumber.default(data.suggestedMaxFeePerGas).multipliedBy(_utils.BN_WEI).integerValue(_bignumber.default.ROUND_UP),
|
|
27
|
+
maxPriorityFeePerGas: new _bignumber.default(data.suggestedMaxPriorityFeePerGas).multipliedBy(_utils.BN_WEI).integerValue(_bignumber.default.ROUND_UP)
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
exports.parseInfuraFee = parseInfuraFee;
|
|
31
|
+
const fetchInfuraFeeData = async (chainId, infuraAuth) => {
|
|
32
|
+
return await new Promise(resolve => {
|
|
33
|
+
const baseUrl = 'https://gas.api.infura.io/networks/{{chainId}}/suggestedGasFees';
|
|
34
|
+
const url = baseUrl.replaceAll('{{chainId}}', chainId.toString());
|
|
35
|
+
fetch(url, {
|
|
36
|
+
method: 'GET',
|
|
37
|
+
headers: {
|
|
38
|
+
Authorization: infuraAuth || INFURA_AUTH
|
|
39
|
+
}
|
|
40
|
+
}).then(rs => {
|
|
41
|
+
return rs.json();
|
|
42
|
+
}).then(info => {
|
|
43
|
+
resolve(parseInfuraFee(info));
|
|
44
|
+
}).catch(e => {
|
|
45
|
+
console.warn(e);
|
|
46
|
+
resolve(null);
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
exports.fetchInfuraFeeData = fetchInfuraFeeData;
|
|
51
|
+
const fetchSubWalletFeeData = async (chainId, networkKey) => {
|
|
52
|
+
return await new Promise(resolve => {
|
|
53
|
+
const baseUrl = 'https://api-cache.subwallet.app/sw-evm-gas/{{chain}}';
|
|
54
|
+
const url = baseUrl.replaceAll('{{chain}}', networkKey);
|
|
55
|
+
fetch(url, {
|
|
56
|
+
method: 'GET'
|
|
57
|
+
}).then(rs => {
|
|
58
|
+
return rs.json();
|
|
59
|
+
}).then(info => {
|
|
60
|
+
if (info.gasPrice !== undefined) {
|
|
61
|
+
resolve(info);
|
|
62
|
+
} else {
|
|
63
|
+
resolve({
|
|
64
|
+
busyNetwork: info.busyNetwork,
|
|
65
|
+
gasPrice: info.gasPrice,
|
|
66
|
+
baseGasFee: new _bignumber.default(info.baseGasFee),
|
|
67
|
+
maxFeePerGas: new _bignumber.default(info.maxFeePerGas),
|
|
68
|
+
maxPriorityFeePerGas: new _bignumber.default(info.maxPriorityFeePerGas)
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}).catch(e => {
|
|
72
|
+
console.warn(e);
|
|
73
|
+
resolve(null);
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
exports.fetchSubWalletFeeData = fetchSubWalletFeeData;
|
|
78
|
+
const fetchOnlineFeeData = async function (chainId, networkKey) {
|
|
79
|
+
let useInfura = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
80
|
+
return await new Promise(resolve => {
|
|
81
|
+
const fetchFunction = useInfura ? fetchInfuraFeeData : fetchSubWalletFeeData;
|
|
82
|
+
fetchFunction(chainId, networkKey).then(info => {
|
|
83
|
+
resolve(info);
|
|
84
|
+
}).catch(e => {
|
|
85
|
+
console.warn(e);
|
|
86
|
+
resolve(null);
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
};
|
|
90
|
+
exports.fetchOnlineFeeData = fetchOnlineFeeData;
|
|
91
|
+
const recalculateGasPrice = (_price, chain) => {
|
|
92
|
+
const needMulti = _constants.NETWORK_MULTI_GAS_FEE.includes(chain) || _constants.NETWORK_MULTI_GAS_FEE.includes('*');
|
|
93
|
+
return needMulti ? new _bignumber.default(_price).multipliedBy(_constants.GAS_PRICE_RATIO).toFixed(0) : _price;
|
|
94
|
+
};
|
|
95
|
+
exports.recalculateGasPrice = recalculateGasPrice;
|
|
96
|
+
const calculateGasFeeParams = async function (web3, networkKey) {
|
|
97
|
+
let useOnline = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
98
|
+
let useInfura = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
99
|
+
if (useOnline) {
|
|
100
|
+
try {
|
|
101
|
+
const chainId = await web3.api.eth.getChainId();
|
|
102
|
+
const onlineData = await fetchOnlineFeeData(chainId, networkKey, useInfura);
|
|
103
|
+
if (onlineData) {
|
|
104
|
+
return onlineData;
|
|
105
|
+
}
|
|
106
|
+
} catch (e) {}
|
|
107
|
+
}
|
|
108
|
+
try {
|
|
109
|
+
const numBlock = 20;
|
|
110
|
+
const rewardPercent = [];
|
|
111
|
+
for (let i = 0; i <= 100; i = i + 5) {
|
|
112
|
+
rewardPercent.push(i);
|
|
113
|
+
}
|
|
114
|
+
const history = await web3.api.eth.getFeeHistory(numBlock, 'latest', rewardPercent);
|
|
115
|
+
const baseGasFee = new _bignumber.default(history.baseFeePerGas[history.baseFeePerGas.length - 1]); // Last element is latest
|
|
116
|
+
|
|
117
|
+
const blocksBusy = history.reward.reduce((previous, rewards, currentIndex) => {
|
|
118
|
+
const [firstPriority] = rewards;
|
|
119
|
+
const base = history.baseFeePerGas[currentIndex];
|
|
120
|
+
const priorityBN = new _bignumber.default(firstPriority);
|
|
121
|
+
const baseBN = new _bignumber.default(base);
|
|
122
|
+
|
|
123
|
+
/*
|
|
124
|
+
* True if priority >= 0.3 * base
|
|
125
|
+
* */
|
|
126
|
+
const blockIsBusy = baseBN.gt(_utils.BN_ZERO) ? priorityBN.dividedBy(baseBN).gte(0.3) ? 1 : 0 : 0; // Special for bsc, base fee = 0
|
|
127
|
+
|
|
128
|
+
return previous + blockIsBusy;
|
|
129
|
+
}, 0);
|
|
130
|
+
const busyNetwork = blocksBusy >= numBlock / 2; // True, if half of block is busy
|
|
131
|
+
|
|
132
|
+
const maxPriorityFeePerGas = history.reward.reduce((previous, rewards) => {
|
|
133
|
+
let firstBN = _utils.BN_ZERO;
|
|
134
|
+
let firstIndex = 0;
|
|
135
|
+
|
|
136
|
+
/* Get first priority which greater than 0 */
|
|
137
|
+
for (let i = 0; i < rewards.length; i++) {
|
|
138
|
+
firstIndex = i;
|
|
139
|
+
const current = rewards[i];
|
|
140
|
+
const currentBN = new _bignumber.default(current);
|
|
141
|
+
if (currentBN.gt(_utils.BN_ZERO)) {
|
|
142
|
+
firstBN = currentBN;
|
|
143
|
+
break;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
let secondBN = firstBN;
|
|
147
|
+
|
|
148
|
+
/* Get second priority which greater than first priority */
|
|
149
|
+
for (let i = firstIndex; i < rewards.length; i++) {
|
|
150
|
+
const current = rewards[i];
|
|
151
|
+
const currentBN = new _bignumber.default(current);
|
|
152
|
+
if (currentBN.gt(firstBN)) {
|
|
153
|
+
secondBN = currentBN;
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
let current;
|
|
158
|
+
if (busyNetwork) {
|
|
159
|
+
current = secondBN.dividedBy(2).gte(firstBN) ? firstBN : secondBN; // second too larger than first (> 2 times), use first else use second
|
|
160
|
+
} else {
|
|
161
|
+
current = firstBN;
|
|
162
|
+
}
|
|
163
|
+
if (busyNetwork) {
|
|
164
|
+
/* Get max value */
|
|
165
|
+
return current.gte(previous) ? current : previous; // get max priority
|
|
166
|
+
} else {
|
|
167
|
+
/* Get min value which greater than 0 */
|
|
168
|
+
if (previous.eq(_utils.BN_ZERO)) {
|
|
169
|
+
return current; // get min priority
|
|
170
|
+
} else if (current.eq(_utils.BN_ZERO)) {
|
|
171
|
+
return previous;
|
|
172
|
+
}
|
|
173
|
+
return current.lte(previous) ? current : previous; // get min priority
|
|
174
|
+
}
|
|
175
|
+
}, _utils.BN_ZERO);
|
|
176
|
+
if (maxPriorityFeePerGas.eq(_utils.BN_ZERO)) {
|
|
177
|
+
const _price = await web3.api.eth.getGasPrice();
|
|
178
|
+
const gasPrice = recalculateGasPrice(_price, networkKey);
|
|
179
|
+
return {
|
|
180
|
+
gasPrice,
|
|
181
|
+
maxFeePerGas: undefined,
|
|
182
|
+
maxPriorityFeePerGas: undefined,
|
|
183
|
+
baseGasFee: undefined,
|
|
184
|
+
busyNetwork: false
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/* Max gas = (base + priority) * 1.5 (if not busy or 2 when busy); */
|
|
189
|
+
const maxFeePerGas = baseGasFee.plus(maxPriorityFeePerGas).multipliedBy(busyNetwork ? 2 : 1.5).decimalPlaces(0);
|
|
190
|
+
return {
|
|
191
|
+
gasPrice: undefined,
|
|
192
|
+
maxFeePerGas,
|
|
193
|
+
maxPriorityFeePerGas,
|
|
194
|
+
baseGasFee,
|
|
195
|
+
busyNetwork
|
|
196
|
+
};
|
|
197
|
+
} catch (e) {
|
|
198
|
+
const _price = await web3.api.eth.getGasPrice();
|
|
199
|
+
const gasPrice = recalculateGasPrice(_price, networkKey);
|
|
200
|
+
return {
|
|
201
|
+
gasPrice,
|
|
202
|
+
maxFeePerGas: undefined,
|
|
203
|
+
maxPriorityFeePerGas: undefined,
|
|
204
|
+
baseGasFee: undefined,
|
|
205
|
+
busyNetwork: false
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
};
|
|
209
|
+
exports.calculateGasFeeParams = calculateGasFeeParams;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _Base = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/Base"));
|
|
9
|
+
// Copyright 2019-2022 @subwallet/extension-koni authors & contributors
|
|
10
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
11
|
+
|
|
12
|
+
class DeleteChainStaking extends _Base.default {
|
|
13
|
+
async run() {
|
|
14
|
+
try {
|
|
15
|
+
await this.state.dbService.stores.yieldPoolInfo.table.where({
|
|
16
|
+
slug: 'CAPS___native_staking___ternoa_alphanet'
|
|
17
|
+
}).delete();
|
|
18
|
+
} catch (e) {
|
|
19
|
+
console.error(e);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.default = DeleteChainStaking;
|
|
@@ -13,6 +13,7 @@ var _MigrateProvidersV1M1P = _interopRequireDefault(require("./providers/Migrate
|
|
|
13
13
|
var _MigratePolygonUSDCProvider = _interopRequireDefault(require("./tokens/MigratePolygonUSDCProvider"));
|
|
14
14
|
var _AutoEnableChainsTokens = _interopRequireDefault(require("./AutoEnableChainsTokens"));
|
|
15
15
|
var _DeleteChain = _interopRequireDefault(require("./DeleteChain"));
|
|
16
|
+
var _DeleteChainStaking = _interopRequireDefault(require("./DeleteChainStaking"));
|
|
16
17
|
var _EnableVaraChain = _interopRequireDefault(require("./EnableVaraChain"));
|
|
17
18
|
var _MigrateAuthUrls = _interopRequireDefault(require("./MigrateAuthUrls"));
|
|
18
19
|
var _MigrateAutoLock = _interopRequireDefault(require("./MigrateAutoLock"));
|
|
@@ -49,7 +50,8 @@ var _default = {
|
|
|
49
50
|
'1.1.17-03': _EnableVaraChain.default,
|
|
50
51
|
'1.1.24-01': _MigrateProvidersV1M1P.default,
|
|
51
52
|
'1.1.26-01': _MigratePolygonUSDCProvider.default,
|
|
52
|
-
'1.1.28-01': _MigrateEarningVersion.default
|
|
53
|
+
'1.1.28-01': _MigrateEarningVersion.default,
|
|
54
|
+
'1.1.41-01': _DeleteChainStaking.default
|
|
53
55
|
// [`${EVERYTIME}-1`]: AutoEnableChainsTokens
|
|
54
56
|
};
|
|
55
57
|
exports.default = _default;
|
|
@@ -11,15 +11,15 @@ var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
|
|
|
11
11
|
var _TransactionWarning = require("@subwallet/extension-base/background/warnings/TransactionWarning");
|
|
12
12
|
var _constants = require("@subwallet/extension-base/constants");
|
|
13
13
|
var _utils = require("@subwallet/extension-base/services/chain-service/utils");
|
|
14
|
+
var _utils2 = require("@subwallet/extension-base/services/fee-service/utils");
|
|
14
15
|
var _constants2 = require("@subwallet/extension-base/services/request-service/constants");
|
|
15
16
|
var _constants3 = require("@subwallet/extension-base/services/transaction-service/constants");
|
|
16
17
|
var _eventParser = require("@subwallet/extension-base/services/transaction-service/event-parser");
|
|
17
18
|
var _helpers = require("@subwallet/extension-base/services/transaction-service/helpers");
|
|
18
|
-
var
|
|
19
|
+
var _utils3 = require("@subwallet/extension-base/services/transaction-service/utils");
|
|
19
20
|
var _helpers2 = require("@subwallet/extension-base/services/wallet-connect-service/helpers");
|
|
20
21
|
var _types = require("@subwallet/extension-base/types");
|
|
21
|
-
var
|
|
22
|
-
var _eth = require("@subwallet/extension-base/utils/eth");
|
|
22
|
+
var _utils4 = require("@subwallet/extension-base/utils");
|
|
23
23
|
var _mergeTransactionAndSignature = require("@subwallet/extension-base/utils/eth/mergeTransactionAndSignature");
|
|
24
24
|
var _parseTransaction = require("@subwallet/extension-base/utils/eth/parseTransaction");
|
|
25
25
|
var _number = require("@subwallet/extension-base/utils/number");
|
|
@@ -124,7 +124,7 @@ class TransactionService {
|
|
|
124
124
|
validationResponse.errors.push(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.CHAIN_DISCONNECTED, undefined));
|
|
125
125
|
} else {
|
|
126
126
|
const gasLimit = await web3.api.eth.estimateGas(transaction);
|
|
127
|
-
const priority = await (0,
|
|
127
|
+
const priority = await (0, _utils2.calculateGasFeeParams)(web3, chainInfo.slug);
|
|
128
128
|
if (priority.baseGasFee) {
|
|
129
129
|
const maxFee = priority.maxFeePerGas; // TODO: Need review
|
|
130
130
|
|
|
@@ -341,13 +341,13 @@ class TransactionService {
|
|
|
341
341
|
getTransactionLink(id) {
|
|
342
342
|
const transaction = this.getTransaction(id);
|
|
343
343
|
const chainInfo = this.state.chainService.getChainInfoByKey(transaction.chain);
|
|
344
|
-
return (0,
|
|
344
|
+
return (0, _utils3.getExplorerLink)(chainInfo, transaction.extrinsicHash, 'tx');
|
|
345
345
|
}
|
|
346
346
|
transactionToHistories(id, startBlock, nonce, eventLogs) {
|
|
347
347
|
const transaction = this.getTransaction(id);
|
|
348
348
|
const extrinsicType = transaction.extrinsicType;
|
|
349
349
|
const chainInfo = this.state.chainService.getChainInfoByKey(transaction.chain);
|
|
350
|
-
const formattedTransactionAddress = (0,
|
|
350
|
+
const formattedTransactionAddress = (0, _utils4.reformatAddress)(transaction.address);
|
|
351
351
|
const historyItem = {
|
|
352
352
|
origin: 'app',
|
|
353
353
|
chain: transaction.chain,
|
|
@@ -380,7 +380,7 @@ class TransactionService {
|
|
|
380
380
|
switch (extrinsicType) {
|
|
381
381
|
case _KoniTypes.ExtrinsicType.TRANSFER_BALANCE:
|
|
382
382
|
{
|
|
383
|
-
const inputData = (0,
|
|
383
|
+
const inputData = (0, _utils3.parseTransactionData)(transaction.data);
|
|
384
384
|
historyItem.to = inputData.to;
|
|
385
385
|
const sendingTokenInfo = this.state.chainService.getAssetBySlug(inputData.tokenSlug);
|
|
386
386
|
historyItem.amount = {
|
|
@@ -393,7 +393,7 @@ class TransactionService {
|
|
|
393
393
|
break;
|
|
394
394
|
case _KoniTypes.ExtrinsicType.TRANSFER_TOKEN:
|
|
395
395
|
{
|
|
396
|
-
const inputData = (0,
|
|
396
|
+
const inputData = (0, _utils3.parseTransactionData)(transaction.data);
|
|
397
397
|
historyItem.to = inputData.to;
|
|
398
398
|
const sendingTokenInfo = this.state.chainService.getAssetBySlug(inputData.tokenSlug);
|
|
399
399
|
historyItem.amount = {
|
|
@@ -406,7 +406,7 @@ class TransactionService {
|
|
|
406
406
|
break;
|
|
407
407
|
case _KoniTypes.ExtrinsicType.TRANSFER_XCM:
|
|
408
408
|
{
|
|
409
|
-
const inputData = (0,
|
|
409
|
+
const inputData = (0, _utils3.parseTransactionData)(transaction.data);
|
|
410
410
|
historyItem.to = inputData.to;
|
|
411
411
|
const sendingTokenInfo = this.state.chainService.getAssetBySlug(inputData.tokenSlug);
|
|
412
412
|
historyItem.amount = {
|
|
@@ -426,7 +426,7 @@ class TransactionService {
|
|
|
426
426
|
break;
|
|
427
427
|
case _KoniTypes.ExtrinsicType.SEND_NFT:
|
|
428
428
|
{
|
|
429
|
-
const inputData = (0,
|
|
429
|
+
const inputData = (0, _utils3.parseTransactionData)(transaction.data);
|
|
430
430
|
historyItem.to = inputData.recipientAddress;
|
|
431
431
|
historyItem.amount = {
|
|
432
432
|
decimals: 0,
|
|
@@ -437,7 +437,7 @@ class TransactionService {
|
|
|
437
437
|
break;
|
|
438
438
|
case _KoniTypes.ExtrinsicType.STAKING_BOND:
|
|
439
439
|
{
|
|
440
|
-
const data = (0,
|
|
440
|
+
const data = (0, _utils3.parseTransactionData)(transaction.data);
|
|
441
441
|
historyItem.amount = {
|
|
442
442
|
...baseNativeAmount,
|
|
443
443
|
value: data.amount || '0'
|
|
@@ -446,7 +446,7 @@ class TransactionService {
|
|
|
446
446
|
break;
|
|
447
447
|
case _KoniTypes.ExtrinsicType.STAKING_JOIN_POOL:
|
|
448
448
|
{
|
|
449
|
-
const data = (0,
|
|
449
|
+
const data = (0, _utils3.parseTransactionData)(transaction.data);
|
|
450
450
|
historyItem.amount = {
|
|
451
451
|
...baseNativeAmount,
|
|
452
452
|
value: data.amount || '0'
|
|
@@ -456,7 +456,7 @@ class TransactionService {
|
|
|
456
456
|
break;
|
|
457
457
|
case _KoniTypes.ExtrinsicType.STAKING_UNBOND:
|
|
458
458
|
{
|
|
459
|
-
const data = (0,
|
|
459
|
+
const data = (0, _utils3.parseTransactionData)(transaction.data);
|
|
460
460
|
if (data.isLiquidStaking && data.derivativeTokenInfo && data.exchangeRate && data.inputTokenInfo) {
|
|
461
461
|
historyItem.amount = {
|
|
462
462
|
decimals: (0, _utils._getAssetDecimals)(data.derivativeTokenInfo),
|
|
@@ -478,7 +478,7 @@ class TransactionService {
|
|
|
478
478
|
break;
|
|
479
479
|
case _KoniTypes.ExtrinsicType.STAKING_LEAVE_POOL:
|
|
480
480
|
{
|
|
481
|
-
const data = (0,
|
|
481
|
+
const data = (0, _utils3.parseTransactionData)(transaction.data);
|
|
482
482
|
historyItem.to = data.address || '';
|
|
483
483
|
historyItem.amount = {
|
|
484
484
|
...baseNativeAmount,
|
|
@@ -488,7 +488,7 @@ class TransactionService {
|
|
|
488
488
|
break;
|
|
489
489
|
case _KoniTypes.ExtrinsicType.STAKING_CLAIM_REWARD:
|
|
490
490
|
{
|
|
491
|
-
const data = (0,
|
|
491
|
+
const data = (0, _utils3.parseTransactionData)(transaction.data);
|
|
492
492
|
historyItem.amount = {
|
|
493
493
|
...baseNativeAmount,
|
|
494
494
|
value: data.unclaimedReward || '0'
|
|
@@ -497,7 +497,7 @@ class TransactionService {
|
|
|
497
497
|
break;
|
|
498
498
|
case _KoniTypes.ExtrinsicType.STAKING_WITHDRAW:
|
|
499
499
|
{
|
|
500
|
-
const data = (0,
|
|
500
|
+
const data = (0, _utils3.parseTransactionData)(transaction.data);
|
|
501
501
|
const slug = data.slug;
|
|
502
502
|
const poolHandler = this.state.earningService.getPoolHandler(slug);
|
|
503
503
|
const amount = {
|
|
@@ -517,7 +517,7 @@ class TransactionService {
|
|
|
517
517
|
}
|
|
518
518
|
case _KoniTypes.ExtrinsicType.STAKING_CANCEL_UNSTAKE:
|
|
519
519
|
{
|
|
520
|
-
const data = (0,
|
|
520
|
+
const data = (0, _utils3.parseTransactionData)(transaction.data);
|
|
521
521
|
historyItem.amount = {
|
|
522
522
|
...baseNativeAmount,
|
|
523
523
|
value: data.selectedUnstaking.claimable || '0'
|
|
@@ -527,7 +527,7 @@ class TransactionService {
|
|
|
527
527
|
case _KoniTypes.ExtrinsicType.EVM_EXECUTE:
|
|
528
528
|
{
|
|
529
529
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
530
|
-
const data = (0,
|
|
530
|
+
const data = (0, _utils3.parseTransactionData)(transaction.data);
|
|
531
531
|
|
|
532
532
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access
|
|
533
533
|
historyItem.to = (data === null || data === void 0 ? void 0 : data.to) || '';
|
|
@@ -542,7 +542,7 @@ class TransactionService {
|
|
|
542
542
|
// eslint-disable-next-line no-fallthrough
|
|
543
543
|
case _KoniTypes.ExtrinsicType.MINT_VDOT:
|
|
544
544
|
{
|
|
545
|
-
const params = (0,
|
|
545
|
+
const params = (0, _utils3.parseTransactionData)(transaction.data);
|
|
546
546
|
const inputTokenInfo = this.state.chainService.getAssetBySlug(params.inputTokenSlug);
|
|
547
547
|
const isFeePaidWithInputAsset = params.feeTokenSlug === params.inputTokenSlug;
|
|
548
548
|
historyItem.amount = {
|
|
@@ -564,7 +564,7 @@ class TransactionService {
|
|
|
564
564
|
// eslint-disable-next-line no-fallthrough
|
|
565
565
|
case _KoniTypes.ExtrinsicType.REDEEM_QDOT:
|
|
566
566
|
{
|
|
567
|
-
const data = (0,
|
|
567
|
+
const data = (0, _utils3.parseTransactionData)(transaction.data);
|
|
568
568
|
const yieldPoolInfo = data.poolInfo;
|
|
569
569
|
if (yieldPoolInfo.metadata.derivativeAssets) {
|
|
570
570
|
const inputTokenSlug = yieldPoolInfo.metadata.inputAsset;
|
|
@@ -603,7 +603,7 @@ class TransactionService {
|
|
|
603
603
|
// eslint-disable-next-line no-fallthrough
|
|
604
604
|
case _KoniTypes.ExtrinsicType.REDEEM_VDOT:
|
|
605
605
|
{
|
|
606
|
-
const data = (0,
|
|
606
|
+
const data = (0, _utils3.parseTransactionData)(transaction.data);
|
|
607
607
|
const yieldPoolInfo = data.poolInfo;
|
|
608
608
|
const minAmountPercents = this.state.earningService.getMinAmountPercent();
|
|
609
609
|
if (yieldPoolInfo.metadata.derivativeAssets) {
|
|
@@ -637,7 +637,7 @@ class TransactionService {
|
|
|
637
637
|
}
|
|
638
638
|
case _KoniTypes.ExtrinsicType.TOKEN_APPROVE:
|
|
639
639
|
{
|
|
640
|
-
const data = (0,
|
|
640
|
+
const data = (0, _utils3.parseTransactionData)(transaction.data);
|
|
641
641
|
const inputAsset = this.state.chainService.getAssetBySlug(data.inputTokenSlug);
|
|
642
642
|
historyItem.amount = {
|
|
643
643
|
value: '0',
|
|
@@ -661,7 +661,7 @@ class TransactionService {
|
|
|
661
661
|
switch (extrinsicType) {
|
|
662
662
|
case _KoniTypes.ExtrinsicType.TRANSFER_XCM:
|
|
663
663
|
{
|
|
664
|
-
const inputData = (0,
|
|
664
|
+
const inputData = (0, _utils3.parseTransactionData)(transaction.data);
|
|
665
665
|
receiverHistory.chain = inputData.destinationNetworkKey;
|
|
666
666
|
break;
|
|
667
667
|
}
|
|
@@ -722,7 +722,7 @@ class TransactionService {
|
|
|
722
722
|
// must be done after success/failure to make sure the transaction is finalized
|
|
723
723
|
const transaction = this.getTransaction(id);
|
|
724
724
|
if (transaction.extrinsicType === _KoniTypes.ExtrinsicType.SEND_NFT) {
|
|
725
|
-
const inputData = (0,
|
|
725
|
+
const inputData = (0, _utils3.parseTransactionData)(transaction.data);
|
|
726
726
|
try {
|
|
727
727
|
const sender = _uiKeyring.default.getPair(inputData.senderAddress);
|
|
728
728
|
sender && this.state.dbService.handleNftTransfer(transaction.chain, [sender.address, _constants.ALL_ACCOUNT_KEY], inputData.nftItem).then(() => {
|
|
@@ -863,16 +863,16 @@ class TransactionService {
|
|
|
863
863
|
generateHashPayload(chain, transaction) {
|
|
864
864
|
const chainInfo = this.state.chainService.getChainInfoByKey(chain);
|
|
865
865
|
let txObject;
|
|
866
|
-
const max = (0,
|
|
866
|
+
const max = (0, _utils4.anyNumberToBN)(transaction.maxFeePerGas);
|
|
867
867
|
if (max.gt(_number.BN_ZERO)) {
|
|
868
868
|
var _transaction$nonce;
|
|
869
869
|
txObject = {
|
|
870
870
|
nonce: (_transaction$nonce = transaction.nonce) !== null && _transaction$nonce !== void 0 ? _transaction$nonce : 0,
|
|
871
|
-
maxFeePerGas: (0, _ethereumjsUtil.addHexPrefix)((0,
|
|
872
|
-
maxPriorityFeePerGas: (0, _ethereumjsUtil.addHexPrefix)((0,
|
|
873
|
-
gasLimit: (0, _ethereumjsUtil.addHexPrefix)((0,
|
|
871
|
+
maxFeePerGas: (0, _ethereumjsUtil.addHexPrefix)((0, _utils4.anyNumberToBN)(transaction.maxFeePerGas).toString(16)),
|
|
872
|
+
maxPriorityFeePerGas: (0, _ethereumjsUtil.addHexPrefix)((0, _utils4.anyNumberToBN)(transaction.maxPriorityFeePerGas).toString(16)),
|
|
873
|
+
gasLimit: (0, _ethereumjsUtil.addHexPrefix)((0, _utils4.anyNumberToBN)(transaction.gas).toString(16)),
|
|
874
874
|
to: transaction.to !== undefined ? transaction.to : '',
|
|
875
|
-
value: (0, _ethereumjsUtil.addHexPrefix)((0,
|
|
875
|
+
value: (0, _ethereumjsUtil.addHexPrefix)((0, _utils4.anyNumberToBN)(transaction.value).toString(16)),
|
|
876
876
|
data: transaction.data,
|
|
877
877
|
chainId: (0, _utils._getEvmChainId)(chainInfo),
|
|
878
878
|
type: 2
|
|
@@ -881,10 +881,10 @@ class TransactionService {
|
|
|
881
881
|
var _transaction$nonce2;
|
|
882
882
|
txObject = {
|
|
883
883
|
nonce: (_transaction$nonce2 = transaction.nonce) !== null && _transaction$nonce2 !== void 0 ? _transaction$nonce2 : 0,
|
|
884
|
-
gasPrice: (0, _ethereumjsUtil.addHexPrefix)((0,
|
|
885
|
-
gasLimit: (0, _ethereumjsUtil.addHexPrefix)((0,
|
|
884
|
+
gasPrice: (0, _ethereumjsUtil.addHexPrefix)((0, _utils4.anyNumberToBN)(transaction.gasPrice).toString(16)),
|
|
885
|
+
gasLimit: (0, _ethereumjsUtil.addHexPrefix)((0, _utils4.anyNumberToBN)(transaction.gas).toString(16)),
|
|
886
886
|
to: transaction.to !== undefined ? transaction.to : '',
|
|
887
|
-
value: (0, _ethereumjsUtil.addHexPrefix)((0,
|
|
887
|
+
value: (0, _ethereumjsUtil.addHexPrefix)((0, _utils4.anyNumberToBN)(transaction.value).toString(16)),
|
|
888
888
|
data: transaction.data,
|
|
889
889
|
chainId: (0, _utils._getEvmChainId)(chainInfo),
|
|
890
890
|
type: 0
|
|
@@ -954,12 +954,12 @@ class TransactionService {
|
|
|
954
954
|
const txObject = {
|
|
955
955
|
nonce: (_payload$nonce = payload.nonce) !== null && _payload$nonce !== void 0 ? _payload$nonce : 0,
|
|
956
956
|
from: payload.from,
|
|
957
|
-
gasPrice: (0,
|
|
958
|
-
maxFeePerGas: (0,
|
|
959
|
-
maxPriorityFeePerGas: (0,
|
|
960
|
-
gasLimit: (0,
|
|
957
|
+
gasPrice: (0, _utils4.anyNumberToBN)(payload.gasPrice).toNumber(),
|
|
958
|
+
maxFeePerGas: (0, _utils4.anyNumberToBN)(payload.maxFeePerGas).toNumber(),
|
|
959
|
+
maxPriorityFeePerGas: (0, _utils4.anyNumberToBN)(payload.maxPriorityFeePerGas).toNumber(),
|
|
960
|
+
gasLimit: (0, _utils4.anyNumberToBN)(payload.gas).toNumber(),
|
|
961
961
|
to: payload.to !== undefined ? payload.to : '',
|
|
962
|
-
value: (0,
|
|
962
|
+
value: (0, _utils4.anyNumberToBN)(payload.value).toNumber(),
|
|
963
963
|
data: payload.data,
|
|
964
964
|
chainId: payload.chainId
|
|
965
965
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
package/cjs/types/index.js
CHANGED
|
@@ -36,6 +36,17 @@ Object.keys(_campaigns).forEach(function (key) {
|
|
|
36
36
|
}
|
|
37
37
|
});
|
|
38
38
|
});
|
|
39
|
+
var _fee = require("./fee");
|
|
40
|
+
Object.keys(_fee).forEach(function (key) {
|
|
41
|
+
if (key === "default" || key === "__esModule") return;
|
|
42
|
+
if (key in exports && exports[key] === _fee[key]) return;
|
|
43
|
+
Object.defineProperty(exports, key, {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function () {
|
|
46
|
+
return _fee[key];
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
});
|
|
39
50
|
var _ordinal = require("./ordinal");
|
|
40
51
|
Object.keys(_ordinal).forEach(function (key) {
|
|
41
52
|
if (key === "default" || key === "__esModule") return;
|
package/cjs/utils/eth.js
CHANGED
|
@@ -4,12 +4,10 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.signatureToHex = exports.
|
|
8
|
-
var _constants = require("@subwallet/extension-base/constants");
|
|
7
|
+
exports.signatureToHex = exports.createTransactionFromRLP = exports.anyNumberToBN = exports.Transaction = void 0;
|
|
9
8
|
var _bignumber = _interopRequireDefault(require("bignumber.js"));
|
|
10
9
|
var _ethers = require("ethers");
|
|
11
10
|
var _util = require("@polkadot/util");
|
|
12
|
-
var _number = require("./number");
|
|
13
11
|
// Copyright 2019-2022 @subwallet/extension-base
|
|
14
12
|
// SPDX-License-Identifier: Apache-2.0
|
|
15
13
|
|
|
@@ -71,105 +69,4 @@ const signatureToHex = sig => {
|
|
|
71
69
|
const hexV = (0, _util.hexStripPrefix)((0, _util.numberToHex)(v));
|
|
72
70
|
return hexR + hexS + hexV;
|
|
73
71
|
};
|
|
74
|
-
exports.signatureToHex = signatureToHex;
|
|
75
|
-
const recalculateGasPrice = (_price, chain) => {
|
|
76
|
-
const needMulti = _constants.NETWORK_MULTI_GAS_FEE.includes(chain) || _constants.NETWORK_MULTI_GAS_FEE.includes('*');
|
|
77
|
-
return needMulti ? new _bignumber.default(_price).multipliedBy(_constants.GAS_PRICE_RATIO).toFixed(0) : _price;
|
|
78
|
-
};
|
|
79
|
-
exports.recalculateGasPrice = recalculateGasPrice;
|
|
80
|
-
const calculateGasFeeParams = async (web3, networkKey) => {
|
|
81
|
-
try {
|
|
82
|
-
const numBlock = 20;
|
|
83
|
-
const rewardPercent = [];
|
|
84
|
-
for (let i = 0; i <= 100; i = i + 5) {
|
|
85
|
-
rewardPercent.push(i);
|
|
86
|
-
}
|
|
87
|
-
const history = await web3.api.eth.getFeeHistory(numBlock, 'latest', rewardPercent);
|
|
88
|
-
const baseGasFee = new _bignumber.default(history.baseFeePerGas[history.baseFeePerGas.length - 1]); // Last element is latest
|
|
89
|
-
|
|
90
|
-
const blocksBusy = history.reward.reduce((previous, rewards, currentIndex) => {
|
|
91
|
-
const [firstPriority] = rewards;
|
|
92
|
-
const base = history.baseFeePerGas[currentIndex];
|
|
93
|
-
const priorityBN = new _bignumber.default(firstPriority);
|
|
94
|
-
const baseBN = new _bignumber.default(base);
|
|
95
|
-
|
|
96
|
-
/*
|
|
97
|
-
* True if priority >= 0.3 * base
|
|
98
|
-
* */
|
|
99
|
-
const blockIsBusy = baseBN.gt(_number.BN_ZERO) ? priorityBN.dividedBy(baseBN).gte(0.3) ? 1 : 0 : 0; // Special for bsc, base fee = 0
|
|
100
|
-
|
|
101
|
-
return previous + blockIsBusy;
|
|
102
|
-
}, 0);
|
|
103
|
-
const busyNetwork = blocksBusy >= numBlock / 2; // True, if half of block is busy
|
|
104
|
-
|
|
105
|
-
const maxPriorityFeePerGas = history.reward.reduce((previous, rewards) => {
|
|
106
|
-
let firstBN = _number.BN_ZERO;
|
|
107
|
-
let firstIndex = 0;
|
|
108
|
-
|
|
109
|
-
/* Get first priority which greater than 0 */
|
|
110
|
-
for (let i = 0; i < rewards.length; i++) {
|
|
111
|
-
firstIndex = i;
|
|
112
|
-
const current = rewards[i];
|
|
113
|
-
const currentBN = new _bignumber.default(current);
|
|
114
|
-
if (currentBN.gt(_number.BN_ZERO)) {
|
|
115
|
-
firstBN = currentBN;
|
|
116
|
-
break;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
let secondBN = firstBN;
|
|
120
|
-
|
|
121
|
-
/* Get second priority which greater than first priority */
|
|
122
|
-
for (let i = firstIndex; i < rewards.length; i++) {
|
|
123
|
-
const current = rewards[i];
|
|
124
|
-
const currentBN = new _bignumber.default(current);
|
|
125
|
-
if (currentBN.gt(firstBN)) {
|
|
126
|
-
secondBN = currentBN;
|
|
127
|
-
break;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
let current;
|
|
131
|
-
if (busyNetwork) {
|
|
132
|
-
current = secondBN.dividedBy(2).gte(firstBN) ? firstBN : secondBN; // second too larger than first (> 2 times), use first else use second
|
|
133
|
-
} else {
|
|
134
|
-
current = firstBN;
|
|
135
|
-
}
|
|
136
|
-
if (busyNetwork) {
|
|
137
|
-
/* Get max value */
|
|
138
|
-
return current.gte(previous) ? current : previous; // get max priority
|
|
139
|
-
} else {
|
|
140
|
-
/* Get min value which greater than 0 */
|
|
141
|
-
if (previous.eq(_number.BN_ZERO)) {
|
|
142
|
-
return current; // get min priority
|
|
143
|
-
} else if (current.eq(_number.BN_ZERO)) {
|
|
144
|
-
return previous;
|
|
145
|
-
}
|
|
146
|
-
return current.lte(previous) ? current : previous; // get min priority
|
|
147
|
-
}
|
|
148
|
-
}, _number.BN_ZERO);
|
|
149
|
-
if (maxPriorityFeePerGas.eq(_number.BN_ZERO)) {
|
|
150
|
-
const _price = await web3.api.eth.getGasPrice();
|
|
151
|
-
const gasPrice = recalculateGasPrice(_price, networkKey);
|
|
152
|
-
return {
|
|
153
|
-
gasPrice,
|
|
154
|
-
busyNetwork: false
|
|
155
|
-
};
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
/* Max gas = (base + priority) * 1.5 (if not busy or 2 when busy); */
|
|
159
|
-
const maxFeePerGas = baseGasFee.plus(maxPriorityFeePerGas).multipliedBy(busyNetwork ? 2 : 1.5).decimalPlaces(0);
|
|
160
|
-
return {
|
|
161
|
-
maxFeePerGas,
|
|
162
|
-
maxPriorityFeePerGas,
|
|
163
|
-
baseGasFee,
|
|
164
|
-
busyNetwork
|
|
165
|
-
};
|
|
166
|
-
} catch (e) {
|
|
167
|
-
const _price = await web3.api.eth.getGasPrice();
|
|
168
|
-
const gasPrice = recalculateGasPrice(_price, networkKey);
|
|
169
|
-
return {
|
|
170
|
-
gasPrice,
|
|
171
|
-
busyNetwork: false
|
|
172
|
-
};
|
|
173
|
-
}
|
|
174
|
-
};
|
|
175
|
-
exports.calculateGasFeeParams = calculateGasFeeParams;
|
|
72
|
+
exports.signatureToHex = signatureToHex;
|
package/cjs/utils/index.js
CHANGED
|
@@ -116,6 +116,18 @@ Object.keys(_environment).forEach(function (key) {
|
|
|
116
116
|
}
|
|
117
117
|
});
|
|
118
118
|
});
|
|
119
|
+
var _eth = require("./eth");
|
|
120
|
+
Object.keys(_eth).forEach(function (key) {
|
|
121
|
+
if (key === "default" || key === "__esModule") return;
|
|
122
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
123
|
+
if (key in exports && exports[key] === _eth[key]) return;
|
|
124
|
+
Object.defineProperty(exports, key, {
|
|
125
|
+
enumerable: true,
|
|
126
|
+
get: function () {
|
|
127
|
+
return _eth[key];
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
});
|
|
119
131
|
var _number = require("./number");
|
|
120
132
|
Object.keys(_number).forEach(function (key) {
|
|
121
133
|
if (key === "default" || key === "__esModule") return;
|