@subwallet/extension-base 1.1.40-1 → 1.1.42-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/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 +42 -10
- package/cjs/packageInfo.js +1 -1
- package/cjs/page/SubWalleEvmProvider.js +5 -9
- 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 +88 -79
- package/cjs/services/chain-service/utils.js +11 -6
- package/cjs/services/earning-service/constants/chains.js +10 -5
- 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 +144 -45
- 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/databases/MigrateAssetSetting.js +50 -0
- package/cjs/services/migration-service/scripts/index.js +6 -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/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 +33 -2
- package/package.json +36 -6
- package/packageInfo.js +1 -1
- package/page/SubWalleEvmProvider.d.ts +0 -1
- package/page/SubWalleEvmProvider.js +5 -9
- 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 +8 -4
- package/services/chain-service/index.js +74 -67
- 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.d.ts +3 -0
- package/services/earning-service/constants/chains.js +7 -4
- 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 +144 -45
- 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/databases/MigrateAssetSetting.d.ts +4 -0
- package/services/migration-service/scripts/databases/MigrateAssetSetting.js +42 -0
- package/services/migration-service/scripts/index.js +5 -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
|
@@ -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;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.reportError = void 0;
|
|
8
|
+
var _environment = require("@subwallet/extension-base/utils/environment");
|
|
9
|
+
var _crossFetch = _interopRequireDefault(require("cross-fetch"));
|
|
10
|
+
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
11
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
12
|
+
|
|
13
|
+
const EXTENSION_REPORT_ERROR_URL = 'https://extension-feedback.subwallet.app/gelf';
|
|
14
|
+
const WEBAPP_REPORT_ERROR_URL = 'https://web-feedback.subwallet.app/gelf';
|
|
15
|
+
const reportError = async (e, pathName) => {
|
|
16
|
+
const errorContent = JSON.stringify(e.stack);
|
|
17
|
+
const errorShortMessage = e.message;
|
|
18
|
+
const body = {
|
|
19
|
+
content: errorContent,
|
|
20
|
+
short_message: errorShortMessage,
|
|
21
|
+
platform: _environment.TARGET_ENV,
|
|
22
|
+
device_version: '',
|
|
23
|
+
app_version: JSON.stringify(process.env.PKG_VERSION),
|
|
24
|
+
current_routes: pathName
|
|
25
|
+
};
|
|
26
|
+
await (0, _crossFetch.default)(_environment.TARGET_ENV === 'extension' ? EXTENSION_REPORT_ERROR_URL : WEBAPP_REPORT_ERROR_URL, {
|
|
27
|
+
method: 'POST',
|
|
28
|
+
body: JSON.stringify(body)
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
exports.reportError = reportError;
|
package/constants/index.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export declare const CRON_REFRESH_STAKING_REWARD_INTERVAL = 900000;
|
|
|
11
11
|
export declare const CRON_REFRESH_STAKING_REWARD_FAST_INTERVAL = 90000;
|
|
12
12
|
export declare const CRON_REFRESH_HISTORY_INTERVAL = 900000;
|
|
13
13
|
export declare const CRON_GET_API_MAP_STATUS = 10000;
|
|
14
|
-
export declare const CRON_REFRESH_CHAIN_STAKING_METADATA =
|
|
14
|
+
export declare const CRON_REFRESH_CHAIN_STAKING_METADATA = 90000;
|
|
15
15
|
export declare const CRON_REFRESH_CHAIN_NOMINATOR_METADATA = 1800000;
|
|
16
16
|
export declare const CRON_RECOVER_HISTORY_INTERVAL = 30000;
|
|
17
17
|
export declare const CRON_SYNC_MANTA_PAY = 300000;
|
package/constants/index.js
CHANGED
|
@@ -14,7 +14,7 @@ export const CRON_REFRESH_STAKING_REWARD_INTERVAL = 900000;
|
|
|
14
14
|
export const CRON_REFRESH_STAKING_REWARD_FAST_INTERVAL = 90000;
|
|
15
15
|
export const CRON_REFRESH_HISTORY_INTERVAL = 900000;
|
|
16
16
|
export const CRON_GET_API_MAP_STATUS = 10000;
|
|
17
|
-
export const CRON_REFRESH_CHAIN_STAKING_METADATA =
|
|
17
|
+
export const CRON_REFRESH_CHAIN_STAKING_METADATA = 90000;
|
|
18
18
|
export const CRON_REFRESH_CHAIN_NOMINATOR_METADATA = 1800000;
|
|
19
19
|
export const CRON_RECOVER_HISTORY_INTERVAL = 30000;
|
|
20
20
|
export const CRON_SYNC_MANTA_PAY = 300000;
|
|
@@ -181,7 +181,7 @@ export const createTransferExtrinsic = async ({
|
|
|
181
181
|
} else if (_TRANSFER_CHAIN_GROUP.sora_substrate.includes(networkKey) && isTxAssetsSupported) {
|
|
182
182
|
transfer = api.tx.assets.transfer(_getTokenOnChainAssetId(tokenInfo), to, value);
|
|
183
183
|
} else if (isTxBalancesSupported && _isNativeToken(tokenInfo)) {
|
|
184
|
-
if (networkKey
|
|
184
|
+
if (_TRANSFER_CHAIN_GROUP.disable_transfer.includes(networkKey)) {
|
|
185
185
|
return [null, transferAmount || value];
|
|
186
186
|
}
|
|
187
187
|
if (transferAll) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright 2019-2022 @subwallet/extension-base
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
|
-
import { BIT_COUNTRY_IPFS_SERVER, BIT_COUNTRY_LAND_ESTATE_METADATA_API } from '@subwallet/extension-base/koni/api/nft/config';
|
|
4
|
+
import { BIT_AVATAR_API, BIT_COUNTRY_IPFS_SERVER, BIT_COUNTRY_LAND_ESTATE_METADATA_API } from '@subwallet/extension-base/koni/api/nft/config';
|
|
5
5
|
import { BaseNftApi } from '@subwallet/extension-base/koni/api/nft/nft';
|
|
6
6
|
import { isUrl } from '@subwallet/extension-base/utils';
|
|
7
7
|
import fetch from 'cross-fetch';
|
|
@@ -53,6 +53,8 @@ export class BitCountryNftApi extends BaseNftApi {
|
|
|
53
53
|
// check if NFT is Land/Estate
|
|
54
54
|
if (onChainMeta.data.attributes['MetaverseId:']) {
|
|
55
55
|
return await fetch(`${BIT_COUNTRY_LAND_ESTATE_METADATA_API}/${assetId.classId}/${assetId.tokenId}/metadata.json`).then(resp => resp.json());
|
|
56
|
+
} else if (onChainMeta.metadata.startsWith('/avatar/')) {
|
|
57
|
+
return await fetch(BIT_AVATAR_API + onChainMeta.metadata).then(resp => resp.json());
|
|
56
58
|
} else {
|
|
57
59
|
return await fetch(BIT_COUNTRY_IPFS_SERVER + onChainMeta.metadata).then(resp => resp.json());
|
|
58
60
|
}
|
package/koni/api/nft/config.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export declare const SINGULAR_V2_COLLECTION_ENDPOINT = "https://singular.app/api
|
|
|
7
7
|
export declare const KANARIA_EXTERNAL_SERVER = "https://kanaria.rmrk.app/catalogue/";
|
|
8
8
|
export declare const CLOUDFLARE_PINATA_SERVER = "https://cloudflare-ipfs.com/ipfs/";
|
|
9
9
|
export declare const BIT_COUNTRY_IPFS_SERVER = "https://ipfs-cdn.bit.country/";
|
|
10
|
+
export declare const BIT_AVATAR_API = "https://api.bitavatar.io/v1";
|
|
10
11
|
export declare const BIT_COUNTRY_LAND_ESTATE_METADATA_API = "https://pioneer-api.bit.country/metadata/landTokenUriPioneer";
|
|
11
12
|
export declare const BIT_COUNTRY_THUMBNAIL_RESOLVER = "https://res.cloudinary.com/ddftctzph/image/upload/c_scale,q_100,w_250/production-ipfs/asset/";
|
|
12
13
|
export declare const CF_IPFS_GATEWAY = "https://cf-ipfs.com/ipfs/";
|
package/koni/api/nft/config.js
CHANGED
|
@@ -13,6 +13,7 @@ export const SINGULAR_V2_COLLECTION_ENDPOINT = 'https://singular.app/api/rmrk2/c
|
|
|
13
13
|
export const KANARIA_EXTERNAL_SERVER = 'https://kanaria.rmrk.app/catalogue/';
|
|
14
14
|
export const CLOUDFLARE_PINATA_SERVER = 'https://cloudflare-ipfs.com/ipfs/';
|
|
15
15
|
export const BIT_COUNTRY_IPFS_SERVER = 'https://ipfs-cdn.bit.country/';
|
|
16
|
+
export const BIT_AVATAR_API = 'https://api.bitavatar.io/v1';
|
|
16
17
|
export const BIT_COUNTRY_LAND_ESTATE_METADATA_API = 'https://pioneer-api.bit.country/metadata/landTokenUriPioneer';
|
|
17
18
|
export const BIT_COUNTRY_THUMBNAIL_RESOLVER = 'https://res.cloudinary.com/ddftctzph/image/upload/c_scale,q_100,w_250/production-ipfs/asset/';
|
|
18
19
|
|
|
@@ -5,7 +5,7 @@ import { ExternalRequestPromiseStatus } from '@subwallet/extension-base/backgrou
|
|
|
5
5
|
import { getERC20Contract } from '@subwallet/extension-base/koni/api/tokens/evm/web3';
|
|
6
6
|
import { _BALANCE_PARSING_CHAIN_GROUP, EVM_REFORMAT_DECIMALS } from '@subwallet/extension-base/services/chain-service/constants';
|
|
7
7
|
import { _ERC721_ABI } from '@subwallet/extension-base/services/chain-service/helper';
|
|
8
|
-
import { calculateGasFeeParams } from '@subwallet/extension-base/utils
|
|
8
|
+
import { calculateGasFeeParams } from '@subwallet/extension-base/services/fee-service/utils';
|
|
9
9
|
import BigN from 'bignumber.js';
|
|
10
10
|
import { hexToBn } from '@polkadot/util';
|
|
11
11
|
export const handleTransferBalanceResult = ({
|
|
@@ -185,6 +185,7 @@ export default class KoniExtension {
|
|
|
185
185
|
private getListDeriveAccounts;
|
|
186
186
|
private subscribeChainInfoMap;
|
|
187
187
|
private subscribeChainStateMap;
|
|
188
|
+
private subscribeChainStatusMap;
|
|
188
189
|
private subscribeAssetRegistry;
|
|
189
190
|
private subscribeMultiChainAssetMap;
|
|
190
191
|
private subscribeXcmRefMap;
|
|
@@ -26,14 +26,14 @@ import { YIELD_EXTRINSIC_TYPES } from '@subwallet/extension-base/koni/api/yield/
|
|
|
26
26
|
import { _API_OPTIONS_CHAIN_GROUP, _DEFAULT_MANTA_ZK_CHAIN, _MANTA_ZK_CHAIN_GROUP, _ZK_ASSET_PREFIX } from '@subwallet/extension-base/services/chain-service/constants';
|
|
27
27
|
import { _ChainConnectionStatus } from '@subwallet/extension-base/services/chain-service/types';
|
|
28
28
|
import { _getChainNativeTokenBasicInfo, _getContractAddressOfToken, _getEvmChainId, _getSubstrateGenesisHash, _getTokenMinAmount, _isAssetSmartContractNft, _isChainEvmCompatible, _isCustomAsset, _isLocalToken, _isMantaZkAsset, _isNativeToken, _isTokenEvmSmartContract, _isTokenTransferredByEvm } from '@subwallet/extension-base/services/chain-service/utils';
|
|
29
|
+
import { calculateGasFeeParams } from '@subwallet/extension-base/services/fee-service/utils';
|
|
29
30
|
import { EXTENSION_REQUEST_URL } from '@subwallet/extension-base/services/request-service/constants';
|
|
30
31
|
import { DEFAULT_AUTO_LOCK_TIME } from '@subwallet/extension-base/services/setting-service/constants';
|
|
31
32
|
import { WALLET_CONNECT_EIP155_NAMESPACE } from '@subwallet/extension-base/services/wallet-connect-service/constants';
|
|
32
33
|
import { isProposalExpired, isSupportWalletConnectChain, isSupportWalletConnectNamespace } from '@subwallet/extension-base/services/wallet-connect-service/helpers';
|
|
33
34
|
import { AccountsStore } from '@subwallet/extension-base/stores';
|
|
34
35
|
import { YieldPoolType } from '@subwallet/extension-base/types';
|
|
35
|
-
import { convertSubjectInfoToAddresses, isSameAddress, reformatAddress, uniqueStringArray } from '@subwallet/extension-base/utils';
|
|
36
|
-
import { calculateGasFeeParams, createTransactionFromRLP, signatureToHex } from '@subwallet/extension-base/utils/eth';
|
|
36
|
+
import { convertSubjectInfoToAddresses, createTransactionFromRLP, isSameAddress, reformatAddress, signatureToHex, uniqueStringArray } from '@subwallet/extension-base/utils';
|
|
37
37
|
import { parseContractInput, parseEvmRlp } from '@subwallet/extension-base/utils/eth/parseTransaction';
|
|
38
38
|
import { balanceFormatter, formatNumber } from '@subwallet/extension-base/utils/number';
|
|
39
39
|
import { createPair } from '@subwallet/keyring';
|
|
@@ -3169,6 +3169,19 @@ export default class KoniExtension {
|
|
|
3169
3169
|
});
|
|
3170
3170
|
return this.#koniState.getChainStateMap();
|
|
3171
3171
|
}
|
|
3172
|
+
subscribeChainStatusMap(id, port) {
|
|
3173
|
+
const cb = createSubscription(id, port);
|
|
3174
|
+
const chainStateMapSubscription = this.#koniState.chainService.subscribeChainStatusMap().subscribe({
|
|
3175
|
+
next: rs => {
|
|
3176
|
+
cb(rs);
|
|
3177
|
+
}
|
|
3178
|
+
});
|
|
3179
|
+
this.createUnsubscriptionHandle(id, chainStateMapSubscription.unsubscribe);
|
|
3180
|
+
port.onDisconnect.addListener(() => {
|
|
3181
|
+
this.cancelSubscription(id);
|
|
3182
|
+
});
|
|
3183
|
+
return this.#koniState.chainService.getChainStatusMap();
|
|
3184
|
+
}
|
|
3172
3185
|
async subscribeAssetRegistry(id, port) {
|
|
3173
3186
|
const cb = createSubscription(id, port);
|
|
3174
3187
|
let ready = false;
|
|
@@ -3458,7 +3471,7 @@ export default class KoniExtension {
|
|
|
3458
3471
|
});
|
|
3459
3472
|
const {
|
|
3460
3473
|
connectionStatus
|
|
3461
|
-
} = this.#koniState.chainService.
|
|
3474
|
+
} = this.#koniState.chainService.getChainStatusByKey(_DEFAULT_MANTA_ZK_CHAIN);
|
|
3462
3475
|
if (connectionStatus !== _ChainConnectionStatus.CONNECTED) {
|
|
3463
3476
|
// TODO: do better
|
|
3464
3477
|
await timeout();
|
|
@@ -4194,6 +4207,8 @@ export default class KoniExtension {
|
|
|
4194
4207
|
return this.subscribeChainInfoMap(id, port);
|
|
4195
4208
|
case 'pri(chainService.subscribeChainStateMap)':
|
|
4196
4209
|
return this.subscribeChainStateMap(id, port);
|
|
4210
|
+
case 'pri(chainService.subscribeChainStatusMap)':
|
|
4211
|
+
return this.subscribeChainStatusMap(id, port);
|
|
4197
4212
|
case 'pri(chainService.subscribeXcmRefMap)':
|
|
4198
4213
|
return this.subscribeXcmRefMap(id, port);
|
|
4199
4214
|
case 'pri(chainService.getSupportedContractTypes)':
|
|
@@ -9,6 +9,7 @@ import { ChainService } from '@subwallet/extension-base/services/chain-service';
|
|
|
9
9
|
import { _ChainState, _NetworkUpsertParams, _ValidateCustomAssetRequest } from '@subwallet/extension-base/services/chain-service/types';
|
|
10
10
|
import EarningService from '@subwallet/extension-base/services/earning-service/service';
|
|
11
11
|
import { EventService } from '@subwallet/extension-base/services/event-service';
|
|
12
|
+
import FeeService from '@subwallet/extension-base/services/fee-service/service';
|
|
12
13
|
import { HistoryService } from '@subwallet/extension-base/services/history-service';
|
|
13
14
|
import { KeyringService } from '@subwallet/extension-base/services/keyring-service';
|
|
14
15
|
import MigrationService from '@subwallet/extension-base/services/migration-service';
|
|
@@ -22,7 +23,7 @@ import DatabaseService from '@subwallet/extension-base/services/storage-service/
|
|
|
22
23
|
import { SubscanService } from '@subwallet/extension-base/services/subscan-service';
|
|
23
24
|
import TransactionService from '@subwallet/extension-base/services/transaction-service';
|
|
24
25
|
import WalletConnectService from '@subwallet/extension-base/services/wallet-connect-service';
|
|
25
|
-
import { BalanceItem, BalanceJson, BalanceMap } from '@subwallet/extension-base/types';
|
|
26
|
+
import { BalanceItem, BalanceJson, BalanceMap, EvmFeeInfo } from '@subwallet/extension-base/types';
|
|
26
27
|
import { MetadataDef, ProviderMeta } from '@subwallet/extension-inject/types';
|
|
27
28
|
import SimpleKeyring from 'eth-simple-keyring';
|
|
28
29
|
import { BehaviorSubject, Subject } from 'rxjs';
|
|
@@ -70,6 +71,7 @@ export default class KoniState {
|
|
|
70
71
|
readonly campaignService: CampaignService;
|
|
71
72
|
readonly buyService: BuyService;
|
|
72
73
|
readonly earningService: EarningService;
|
|
74
|
+
readonly feeService: FeeService;
|
|
73
75
|
private generalStatus;
|
|
74
76
|
private waitSleeping;
|
|
75
77
|
private waitStarting;
|
|
@@ -223,6 +225,7 @@ export default class KoniState {
|
|
|
223
225
|
checkPublicAndSecretKey({ publicKey, secretKey }: RequestCheckPublicAndSecretKey): ResponseCheckPublicAndSecretKey;
|
|
224
226
|
getEthKeyring(address: string, password: string): Promise<SimpleKeyring>;
|
|
225
227
|
evmSign(id: string, url: string, method: string, params: any, allowedAccounts: string[]): Promise<string | undefined>;
|
|
228
|
+
calculateAllGasFeeOnChain(activeEvmChains: string[], timeout?: number): Promise<Record<string, EvmFeeInfo | null>>;
|
|
226
229
|
evmSendTransaction(id: string, url: string, networkKey: string, allowedAccounts: string[], transactionParams: EvmSendTransactionParams): Promise<string | undefined>;
|
|
227
230
|
getConfirmationsQueueSubject(): BehaviorSubject<ConfirmationsQueue>;
|
|
228
231
|
completeConfirmation(request: RequestConfirmationComplete): Promise<boolean>;
|