@subwallet/extension-base 1.3.64-0 → 1.3.66-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/cjs/koni/background/handlers/State.js +1 -0
- package/cjs/packageInfo.js +1 -1
- package/cjs/services/balance-service/index.js +158 -16
- package/cjs/services/balance-service/transfer/xcm/acrossBridge/index.js +50 -4
- package/cjs/services/balance-service/transfer/xcm/index.js +7 -2
- package/cjs/services/chain-online-service/index.js +0 -3
- package/cjs/services/chain-service/index.js +6 -1
- package/cjs/services/chain-service/utils/patch.js +1 -1
- package/cjs/services/earning-service/constants/chains.js +0 -2
- package/cjs/services/earning-service/handlers/lending/interlay.js +1 -0
- package/cjs/services/earning-service/handlers/liquid-staking/acala.js +1 -1
- package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +1 -1
- package/cjs/services/earning-service/handlers/liquid-staking/parallel.js +1 -0
- package/cjs/services/earning-service/handlers/native-staking/tanssi.js +65 -9
- package/cjs/services/migration-service/scripts/DeleteEarningData20251105.js +21 -0
- package/cjs/services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251107.js +51 -0
- package/cjs/services/migration-service/scripts/OptimizeEnableToken.js +19 -0
- package/cjs/services/migration-service/scripts/databases/MigrateAssetSetting20251107.js +37 -0
- package/cjs/services/migration-service/scripts/index.js +16 -8
- package/cjs/services/request-service/handler/EvmRequestHandler.js +1 -1
- package/cjs/services/transaction-service/index.js +1 -1
- package/cjs/utils/eth.js +2 -1
- package/cjs/utils/fee/transfer.js +1 -5
- package/koni/background/handlers/State.js +1 -0
- package/package.json +28 -8
- package/packageInfo.js +1 -1
- package/services/balance-service/index.d.ts +8 -0
- package/services/balance-service/index.js +158 -17
- package/services/balance-service/transfer/xcm/acrossBridge/index.d.ts +2 -0
- package/services/balance-service/transfer/xcm/acrossBridge/index.js +47 -2
- package/services/balance-service/transfer/xcm/index.js +7 -2
- package/services/chain-online-service/index.js +0 -3
- package/services/chain-service/index.d.ts +1 -0
- package/services/chain-service/index.js +6 -1
- package/services/chain-service/utils/patch.d.ts +1 -1
- package/services/chain-service/utils/patch.js +1 -1
- package/services/earning-service/constants/chains.js +0 -2
- package/services/earning-service/handlers/lending/interlay.js +2 -0
- package/services/earning-service/handlers/liquid-staking/acala.js +1 -1
- package/services/earning-service/handlers/liquid-staking/bifrost.js +1 -1
- package/services/earning-service/handlers/liquid-staking/parallel.js +2 -0
- package/services/earning-service/handlers/native-staking/tanssi.js +62 -6
- package/services/migration-service/scripts/DeleteEarningData20251105.d.ts +4 -0
- package/services/migration-service/scripts/DeleteEarningData20251105.js +13 -0
- package/services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251107.d.ts +4 -0
- package/services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251107.js +42 -0
- package/services/migration-service/scripts/OptimizeEnableToken.d.ts +4 -0
- package/services/migration-service/scripts/OptimizeEnableToken.js +11 -0
- package/services/migration-service/scripts/databases/MigrateAssetSetting20251107.d.ts +4 -0
- package/services/migration-service/scripts/databases/MigrateAssetSetting20251107.js +29 -0
- package/services/migration-service/scripts/index.js +9 -1
- package/services/request-service/handler/EvmRequestHandler.js +1 -1
- package/services/transaction-service/index.js +1 -1
- package/types/transaction/data.d.ts +1 -1
- package/utils/eth.js +2 -1
- package/utils/fee/transfer.js +2 -6
- package/utils/staticData/buyTokenConfigs.json +0 -46
|
@@ -0,0 +1,19 @@
|
|
|
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 OptimizeEnableToken extends _Base.default {
|
|
13
|
+
async run() {
|
|
14
|
+
// Reset the hasOptimizedTokens flag to allow re-optimize tokens
|
|
15
|
+
this.state.balanceService.enableOptimizeTokenPromise();
|
|
16
|
+
return Promise.resolve();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.default = OptimizeEnableToken;
|
|
@@ -0,0 +1,37 @@
|
|
|
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 MigrateAssetSetting20251107 extends _Base.default {
|
|
13
|
+
async run() {
|
|
14
|
+
try {
|
|
15
|
+
const changeSlugsMap = {
|
|
16
|
+
'bittensor-LOCAL-ف': 'bittensor-LOCAL-ㄴ'
|
|
17
|
+
};
|
|
18
|
+
const assetSetting = await this.state.chainService.getAssetSettings();
|
|
19
|
+
const migratedAssetSetting = {};
|
|
20
|
+
for (const [oldSlug, newSlug] of Object.entries(changeSlugsMap)) {
|
|
21
|
+
if (Object.keys(assetSetting).includes(oldSlug)) {
|
|
22
|
+
const isVisible = assetSetting[oldSlug].visible;
|
|
23
|
+
migratedAssetSetting[newSlug] = {
|
|
24
|
+
visible: isVisible
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
this.state.chainService.setAssetSettings({
|
|
29
|
+
...assetSetting,
|
|
30
|
+
...migratedAssetSetting
|
|
31
|
+
});
|
|
32
|
+
} catch (e) {
|
|
33
|
+
console.error(e);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.default = MigrateAssetSetting20251107;
|
|
@@ -5,11 +5,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = exports.MYTHOS_MIGRATION_KEY = exports.EVERYTIME = void 0;
|
|
8
|
+
var _MigrateAssetSetting = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/scripts/databases/MigrateAssetSetting20251107"));
|
|
8
9
|
var _MigrateChainPatrol = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/scripts/MigrateChainPatrol"));
|
|
10
|
+
var _MigrateTransactionHistoryBySymbol = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251107"));
|
|
9
11
|
var _ClearMetadataDatabase = _interopRequireDefault(require("./databases/ClearMetadataDatabase"));
|
|
10
12
|
var _ClearMetadataForMythos = _interopRequireDefault(require("./databases/ClearMetadataForMythos"));
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
+
var _MigrateAssetSetting2 = _interopRequireDefault(require("./databases/MigrateAssetSetting"));
|
|
14
|
+
var _MigrateAssetSetting3 = _interopRequireDefault(require("./databases/MigrateAssetSetting20251027"));
|
|
13
15
|
var _MigrateEarningVersion = _interopRequireDefault(require("./databases/MigrateEarningVersion"));
|
|
14
16
|
var _ReloadMetadata = _interopRequireDefault(require("./databases/ReloadMetadata"));
|
|
15
17
|
var _MigrateLedgerAccount = _interopRequireDefault(require("./keyring/MigrateLedgerAccount"));
|
|
@@ -24,6 +26,7 @@ var _DeleteChain = _interopRequireDefault(require("./DeleteChain"));
|
|
|
24
26
|
var _DeleteChainStaking = _interopRequireDefault(require("./DeleteChainStaking"));
|
|
25
27
|
var _DeleteEarningData = _interopRequireDefault(require("./DeleteEarningData"));
|
|
26
28
|
var _DeleteEarningData2 = _interopRequireDefault(require("./DeleteEarningData20251010"));
|
|
29
|
+
var _DeleteEarningData3 = _interopRequireDefault(require("./DeleteEarningData20251105"));
|
|
27
30
|
var _DisableZeroBalanceTokens = _interopRequireDefault(require("./DisableZeroBalanceTokens"));
|
|
28
31
|
var _EnableVaraChain = _interopRequireDefault(require("./EnableVaraChain"));
|
|
29
32
|
var _MigrateAuthUrls = _interopRequireDefault(require("./MigrateAuthUrls"));
|
|
@@ -33,9 +36,10 @@ var _MigrateNewUnifiedAccount = _interopRequireDefault(require("./MigrateNewUnif
|
|
|
33
36
|
var _MigrateTokenDecimals = _interopRequireDefault(require("./MigrateTokenDecimals"));
|
|
34
37
|
var _MigrateTransactionHistory = _interopRequireDefault(require("./MigrateTransactionHistory"));
|
|
35
38
|
var _MigrateTransactionHistoryBridge = _interopRequireDefault(require("./MigrateTransactionHistoryBridge"));
|
|
36
|
-
var
|
|
37
|
-
var
|
|
39
|
+
var _MigrateTransactionHistoryBySymbol2 = _interopRequireDefault(require("./MigrateTransactionHistoryBySymbol"));
|
|
40
|
+
var _MigrateTransactionHistoryBySymbol3 = _interopRequireDefault(require("./MigrateTransactionHistoryBySymbol20251027"));
|
|
38
41
|
var _MigrateWalletReference = _interopRequireDefault(require("./MigrateWalletReference"));
|
|
42
|
+
var _OptimizeEnableToken = _interopRequireDefault(require("./OptimizeEnableToken"));
|
|
39
43
|
// Copyright 2019-2022 @subwallet/extension-koni authors & contributors
|
|
40
44
|
// SPDX-License-Identifier: Apache-2.0
|
|
41
45
|
|
|
@@ -67,8 +71,8 @@ var _default = {
|
|
|
67
71
|
'1.1.33-01': _MigrateLedgerAccountV.default,
|
|
68
72
|
'1.1.41-01': _DeleteChainStaking.default,
|
|
69
73
|
// '1.1.46-01': AutoEnableSomeTokens,
|
|
70
|
-
'1.3.55-01':
|
|
71
|
-
'1.3.55-02':
|
|
74
|
+
'1.3.55-01': _MigrateAssetSetting2.default,
|
|
75
|
+
'1.3.55-02': _MigrateTransactionHistoryBySymbol2.default,
|
|
72
76
|
'1.2.69-01': _MigrateRemoveGenesisHash.default,
|
|
73
77
|
'1.2.13-01': _ReloadMetadata.default,
|
|
74
78
|
'1.2.32-01': _MigratePairData.default,
|
|
@@ -81,7 +85,11 @@ var _default = {
|
|
|
81
85
|
'1.3.42-01': _MigrateNewUnifiedAccount.default,
|
|
82
86
|
'1.3.54-01': _MigrateChainPatrol.default,
|
|
83
87
|
'1.3.62-01': _DeleteEarningData2.default,
|
|
84
|
-
'1.3.
|
|
85
|
-
'1.3.64-
|
|
88
|
+
'1.3.58-01': _OptimizeEnableToken.default,
|
|
89
|
+
'1.3.64-01': _MigrateAssetSetting3.default,
|
|
90
|
+
'1.3.64-02': _MigrateTransactionHistoryBySymbol3.default,
|
|
91
|
+
'1.3.65-01': _DeleteEarningData3.default,
|
|
92
|
+
'1.3.66-01': _MigrateAssetSetting.default,
|
|
93
|
+
'1.3.66-02': _MigrateTransactionHistoryBySymbol.default
|
|
86
94
|
};
|
|
87
95
|
exports.default = _default;
|
|
@@ -205,7 +205,7 @@ class EvmRequestHandler {
|
|
|
205
205
|
const params = {
|
|
206
206
|
...transaction,
|
|
207
207
|
gas: (0, _eth.anyNumberToBN)(gas).toNumber(),
|
|
208
|
-
value: (0, _eth.anyNumberToBN)(value).
|
|
208
|
+
value: (0, _eth.anyNumberToBN)(value).toFixed(),
|
|
209
209
|
gasPrice: (0, _eth.anyNumberToBN)(gasPrice).toNumber(),
|
|
210
210
|
gasLimit: (0, _eth.anyNumberToBN)(estimateGas).toNumber(),
|
|
211
211
|
maxFeePerGas: (0, _eth.anyNumberToBN)(maxFeePerGas).toNumber(),
|
|
@@ -1430,7 +1430,7 @@ class TransactionService {
|
|
|
1430
1430
|
maxPriorityFeePerGas: (0, _utils4.anyNumberToBN)(payload.maxPriorityFeePerGas).toNumber(),
|
|
1431
1431
|
gasLimit: (0, _utils4.anyNumberToBN)(payload.gas).toNumber(),
|
|
1432
1432
|
to: payload.to,
|
|
1433
|
-
value: (0, _utils4.anyNumberToBN)(payload.value).
|
|
1433
|
+
value: (0, _utils4.anyNumberToBN)(payload.value).toFixed(),
|
|
1434
1434
|
data: payload.data,
|
|
1435
1435
|
chainId: payload.chainId
|
|
1436
1436
|
};
|
package/cjs/utils/eth.js
CHANGED
|
@@ -33,12 +33,13 @@ class Transaction {
|
|
|
33
33
|
}
|
|
34
34
|
exports.Transaction = Transaction;
|
|
35
35
|
const anyNumberToBN = value => {
|
|
36
|
+
// TODO: Be careful when using .toNumber() outside this function. It may not round exactly for very large numbers.
|
|
36
37
|
if (typeof value === 'string' || typeof value === 'number') {
|
|
37
38
|
return new _bignumber.default(value);
|
|
38
39
|
} else if (typeof value === 'undefined') {
|
|
39
40
|
return new _bignumber.default(0);
|
|
40
41
|
} else {
|
|
41
|
-
return new _bignumber.default(value.
|
|
42
|
+
return new _bignumber.default(value.toString());
|
|
42
43
|
}
|
|
43
44
|
};
|
|
44
45
|
exports.anyNumberToBN = anyNumberToBN;
|
|
@@ -387,11 +387,7 @@ const calculateXcmMaxTransferable = async (id, request, freeBalance, fee) => {
|
|
|
387
387
|
funcCreateExtrinsic = _xcm.createPolygonBridgeExtrinsic;
|
|
388
388
|
} else if (isAcrossBridgeTransfer) {
|
|
389
389
|
funcCreateExtrinsic = _xcm.createAcrossBridgeExtrinsic;
|
|
390
|
-
|
|
391
|
-
params.sendingValue = (0, _bignumber.default)(0.0037).shiftedBy((0, _utils2._getAssetDecimals)(srcToken)).toFixed(0, 1);
|
|
392
|
-
} else {
|
|
393
|
-
params.sendingValue = (0, _bignumber.default)(1).shiftedBy((0, _utils2._getAssetDecimals)(srcToken)).toFixed(0, 1);
|
|
394
|
-
}
|
|
390
|
+
params.sendingValue = await (0, _acrossBridge.getAcrossSendingValue)(srcChain, srcToken, destChain, (0, _acrossBridge._isAcrossTestnetBridge)(srcChain.slug));
|
|
395
391
|
} else if (isSnowBridgeEvmTransfer) {
|
|
396
392
|
funcCreateExtrinsic = _xcm.createSnowBridgeExtrinsic;
|
|
397
393
|
} else if (isAvailBridgeFromEvm) {
|
|
@@ -1804,6 +1804,7 @@ export default class KoniState {
|
|
|
1804
1804
|
await this.priceService.setPriceCurrency(DEFAULT_CURRENCY);
|
|
1805
1805
|
this.settingService.resetWallet();
|
|
1806
1806
|
await this.priceService.setPriceCurrency(DEFAULT_CURRENCY);
|
|
1807
|
+
this.chainService.resetPopularTokenList();
|
|
1807
1808
|
}
|
|
1808
1809
|
this.chainService.resetWallet(resetAll);
|
|
1809
1810
|
await this.walletConnectService.resetWallet(resetAll);
|
package/package.json
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"./cjs/detectPackage.js"
|
|
18
18
|
],
|
|
19
19
|
"type": "module",
|
|
20
|
-
"version": "1.3.
|
|
20
|
+
"version": "1.3.66-0",
|
|
21
21
|
"main": "./cjs/index.js",
|
|
22
22
|
"module": "./index.js",
|
|
23
23
|
"types": "./index.d.ts",
|
|
@@ -1491,6 +1491,11 @@
|
|
|
1491
1491
|
"require": "./cjs/services/migration-service/scripts/databases/MigrateAssetSetting20251027.js",
|
|
1492
1492
|
"default": "./services/migration-service/scripts/databases/MigrateAssetSetting20251027.js"
|
|
1493
1493
|
},
|
|
1494
|
+
"./services/migration-service/scripts/databases/MigrateAssetSetting20251107": {
|
|
1495
|
+
"types": "./services/migration-service/scripts/databases/MigrateAssetSetting20251107.d.ts",
|
|
1496
|
+
"require": "./cjs/services/migration-service/scripts/databases/MigrateAssetSetting20251107.js",
|
|
1497
|
+
"default": "./services/migration-service/scripts/databases/MigrateAssetSetting20251107.js"
|
|
1498
|
+
},
|
|
1494
1499
|
"./services/migration-service/scripts/databases/MigrateEarningHistory": {
|
|
1495
1500
|
"types": "./services/migration-service/scripts/databases/MigrateEarningHistory.d.ts",
|
|
1496
1501
|
"require": "./cjs/services/migration-service/scripts/databases/MigrateEarningHistory.js",
|
|
@@ -1526,6 +1531,11 @@
|
|
|
1526
1531
|
"require": "./cjs/services/migration-service/scripts/DeleteEarningData20251010.js",
|
|
1527
1532
|
"default": "./services/migration-service/scripts/DeleteEarningData20251010.js"
|
|
1528
1533
|
},
|
|
1534
|
+
"./services/migration-service/scripts/DeleteEarningData20251105": {
|
|
1535
|
+
"types": "./services/migration-service/scripts/DeleteEarningData20251105.d.ts",
|
|
1536
|
+
"require": "./cjs/services/migration-service/scripts/DeleteEarningData20251105.js",
|
|
1537
|
+
"default": "./services/migration-service/scripts/DeleteEarningData20251105.js"
|
|
1538
|
+
},
|
|
1529
1539
|
"./services/migration-service/scripts/DisableZeroBalanceTokens": {
|
|
1530
1540
|
"types": "./services/migration-service/scripts/DisableZeroBalanceTokens.d.ts",
|
|
1531
1541
|
"require": "./cjs/services/migration-service/scripts/DisableZeroBalanceTokens.js",
|
|
@@ -1626,11 +1636,21 @@
|
|
|
1626
1636
|
"require": "./cjs/services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251027.js",
|
|
1627
1637
|
"default": "./services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251027.js"
|
|
1628
1638
|
},
|
|
1639
|
+
"./services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251107": {
|
|
1640
|
+
"types": "./services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251107.d.ts",
|
|
1641
|
+
"require": "./cjs/services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251107.js",
|
|
1642
|
+
"default": "./services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251107.js"
|
|
1643
|
+
},
|
|
1629
1644
|
"./services/migration-service/scripts/MigrateWalletReference": {
|
|
1630
1645
|
"types": "./services/migration-service/scripts/MigrateWalletReference.d.ts",
|
|
1631
1646
|
"require": "./cjs/services/migration-service/scripts/MigrateWalletReference.js",
|
|
1632
1647
|
"default": "./services/migration-service/scripts/MigrateWalletReference.js"
|
|
1633
1648
|
},
|
|
1649
|
+
"./services/migration-service/scripts/OptimizeEnableToken": {
|
|
1650
|
+
"types": "./services/migration-service/scripts/OptimizeEnableToken.d.ts",
|
|
1651
|
+
"require": "./cjs/services/migration-service/scripts/OptimizeEnableToken.js",
|
|
1652
|
+
"default": "./services/migration-service/scripts/OptimizeEnableToken.js"
|
|
1653
|
+
},
|
|
1634
1654
|
"./services/migration-service/scripts/providers/MigrateEthProvider": {
|
|
1635
1655
|
"types": "./services/migration-service/scripts/providers/MigrateEthProvider.d.ts",
|
|
1636
1656
|
"require": "./cjs/services/migration-service/scripts/providers/MigrateEthProvider.js",
|
|
@@ -2898,16 +2918,16 @@
|
|
|
2898
2918
|
"@polkadot/util-crypto": "^13.5.3",
|
|
2899
2919
|
"@polkadot/x-global": "^13.5.3",
|
|
2900
2920
|
"@reduxjs/toolkit": "^1.9.1",
|
|
2901
|
-
"@snowbridge/api": "^0.2.
|
|
2921
|
+
"@snowbridge/api": "^0.2.13",
|
|
2902
2922
|
"@snowbridge/registry": "^0.2.0",
|
|
2903
2923
|
"@sora-substrate/type-definitions": "^1.17.7",
|
|
2904
2924
|
"@substrate/connect": "^0.8.9",
|
|
2905
|
-
"@subwallet-monorepos/subwallet-services-sdk": "
|
|
2906
|
-
"@subwallet/chain-list": "0.2.
|
|
2907
|
-
"@subwallet/extension-base": "^1.3.
|
|
2908
|
-
"@subwallet/extension-chains": "^1.3.
|
|
2909
|
-
"@subwallet/extension-dapp": "^1.3.
|
|
2910
|
-
"@subwallet/extension-inject": "^1.3.
|
|
2925
|
+
"@subwallet-monorepos/subwallet-services-sdk": "0.1.13",
|
|
2926
|
+
"@subwallet/chain-list": "0.2.121",
|
|
2927
|
+
"@subwallet/extension-base": "^1.3.66-0",
|
|
2928
|
+
"@subwallet/extension-chains": "^1.3.66-0",
|
|
2929
|
+
"@subwallet/extension-dapp": "^1.3.66-0",
|
|
2930
|
+
"@subwallet/extension-inject": "^1.3.66-0",
|
|
2911
2931
|
"@subwallet/keyring": "^0.1.13",
|
|
2912
2932
|
"@subwallet/ui-keyring": "^0.1.13",
|
|
2913
2933
|
"@ton/core": "^0.56.3",
|
package/packageInfo.js
CHANGED
|
@@ -7,5 +7,5 @@ export const packageInfo = {
|
|
|
7
7
|
name: '@subwallet/extension-base',
|
|
8
8
|
path: (import.meta && import.meta.url) ? new URL(import.meta.url).pathname.substring(0, new URL(import.meta.url).pathname.lastIndexOf('/') + 1) : 'auto',
|
|
9
9
|
type: 'esm',
|
|
10
|
-
version: '1.3.
|
|
10
|
+
version: '1.3.66-0'
|
|
11
11
|
};
|
|
@@ -18,6 +18,7 @@ export declare class BalanceService implements StoppableServiceInterface {
|
|
|
18
18
|
stopPromiseHandler: PromiseHandler<void>;
|
|
19
19
|
status: ServiceStatus;
|
|
20
20
|
private isReload;
|
|
21
|
+
private requireOptimizeTokenList;
|
|
21
22
|
get isStarted(): boolean;
|
|
22
23
|
private readonly detectAccountBalanceStore;
|
|
23
24
|
private readonly balanceDetectSubject;
|
|
@@ -101,4 +102,11 @@ export declare class BalanceService implements StoppableServiceInterface {
|
|
|
101
102
|
private startScanBalance;
|
|
102
103
|
private stopScanBalance;
|
|
103
104
|
getOptimalTransferProcess(params: RequestOptimalTransferProcess): Promise<CommonOptimalTransferPath>;
|
|
105
|
+
evmDetectBalanceToken(addresses: string[]): Promise<string[]>;
|
|
106
|
+
substrateDetectBalanceToken(addresses: string[]): Promise<string[]>;
|
|
107
|
+
evmDetectBalanceChain(): Promise<string[]>;
|
|
108
|
+
substrateDetectBalanceChain(): string[];
|
|
109
|
+
/** optimize token area **/
|
|
110
|
+
enableOptimizeTokenPromise(): void;
|
|
111
|
+
optimizeEnableTokens(): Promise<void>;
|
|
104
112
|
}
|
|
@@ -7,7 +7,7 @@ import { ALL_ACCOUNT_KEY } from '@subwallet/extension-base/constants';
|
|
|
7
7
|
import { _isXcmWithinSameConsensus } from '@subwallet/extension-base/core/substrate/xcm-parser';
|
|
8
8
|
import { getAcrossbridgeTransferProcessFromEvm, getDefaultTransferProcess, getSnowbridgeTransferProcessFromEvm } from '@subwallet/extension-base/services/balance-service/helpers/process';
|
|
9
9
|
import { ServiceStatus } from '@subwallet/extension-base/services/base/types';
|
|
10
|
-
import { _getChainNativeTokenSlug, _isNativeToken, _isPureEvmChain } from '@subwallet/extension-base/services/chain-service/utils';
|
|
10
|
+
import { _getChainNativeTokenSlug, _isCustomAsset, _isNativeToken, _isPureEvmChain } from '@subwallet/extension-base/services/chain-service/utils';
|
|
11
11
|
import DetectAccountBalanceStore from '@subwallet/extension-base/stores/DetectAccountBalance';
|
|
12
12
|
import { addLazy, createPromiseHandler, isAccountAll, waitTimeout } from '@subwallet/extension-base/utils';
|
|
13
13
|
import { getKeypairTypeByAddress } from '@subwallet/keyring';
|
|
@@ -32,13 +32,14 @@ export class BalanceService {
|
|
|
32
32
|
stopPromiseHandler = createPromiseHandler();
|
|
33
33
|
status = ServiceStatus.NOT_INITIALIZED;
|
|
34
34
|
isReload = false;
|
|
35
|
+
requireOptimizeTokenList = false;
|
|
35
36
|
get isStarted() {
|
|
36
37
|
return this.status === ServiceStatus.STARTED;
|
|
37
38
|
}
|
|
38
39
|
detectAccountBalanceStore = new DetectAccountBalanceStore();
|
|
39
40
|
balanceDetectSubject = new BehaviorSubject({});
|
|
40
|
-
intervalTime = 3 * 60 * 1000;
|
|
41
|
-
cacheTime = 15 * 60 * 1000;
|
|
41
|
+
intervalTime = 3 * 60 * 1000; // scan balance every 3 mins
|
|
42
|
+
cacheTime = 15 * 60 * 1000; // cache time 15 mins to run again
|
|
42
43
|
|
|
43
44
|
/**
|
|
44
45
|
* @constructor
|
|
@@ -90,6 +91,10 @@ export class BalanceService {
|
|
|
90
91
|
this.stopPromiseHandler = createPromiseHandler();
|
|
91
92
|
this.status = ServiceStatus.STARTED;
|
|
92
93
|
this.startPromiseHandler.resolve();
|
|
94
|
+
if (this.requireOptimizeTokenList) {
|
|
95
|
+
await this.optimizeEnableTokens();
|
|
96
|
+
this.requireOptimizeTokenList = false;
|
|
97
|
+
}
|
|
93
98
|
}
|
|
94
99
|
|
|
95
100
|
/** Stop service */
|
|
@@ -447,18 +452,12 @@ export class BalanceService {
|
|
|
447
452
|
const type = getKeypairTypeByAddress(address);
|
|
448
453
|
const typeValid = [...EthereumKeypairTypes].includes(type);
|
|
449
454
|
if (typeValid) {
|
|
450
|
-
return
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
});
|
|
454
|
-
const balanceDetectionApi = subwalletApiSdk.balanceDetectionApi || Promise.resolve([]);
|
|
455
|
-
Promise.race([timeOutPromise, balanceDetectionApi.getEvmTokenBalanceSlug(address)]).then(result => resolve(result)).catch(error => {
|
|
456
|
-
console.error(error);
|
|
457
|
-
resolve(null);
|
|
458
|
-
});
|
|
455
|
+
return subwalletApiSdk.balanceDetectionApi.getSubWalletTokenBalance(address).catch(e => {
|
|
456
|
+
console.error(e);
|
|
457
|
+
return null;
|
|
459
458
|
});
|
|
460
459
|
} else {
|
|
461
|
-
return
|
|
460
|
+
return null;
|
|
462
461
|
}
|
|
463
462
|
});
|
|
464
463
|
const needEnableChains = [];
|
|
@@ -516,13 +515,13 @@ export class BalanceService {
|
|
|
516
515
|
}
|
|
517
516
|
for (const balanceData of evmBalanceDataList) {
|
|
518
517
|
if (balanceData) {
|
|
519
|
-
for (const
|
|
518
|
+
for (const tokenSlug of balanceData) {
|
|
520
519
|
var _currentAssetSettings2;
|
|
521
|
-
const chainSlug =
|
|
520
|
+
const chainSlug = tokenSlug.split('-')[0];
|
|
522
521
|
const chainState = this.state.chainService.getChainStateByKey(chainSlug);
|
|
523
|
-
const existedKey = Object.keys(assetMap).find(v => v.toLowerCase() ===
|
|
522
|
+
const existedKey = Object.keys(assetMap).find(v => v.toLowerCase() === tokenSlug.toLowerCase());
|
|
524
523
|
|
|
525
|
-
// Cancel
|
|
524
|
+
// Cancel if chain is turned off by user
|
|
526
525
|
if (chainState && chainState.manualTurnOff) {
|
|
527
526
|
continue;
|
|
528
527
|
}
|
|
@@ -628,4 +627,146 @@ export class BalanceService {
|
|
|
628
627
|
}
|
|
629
628
|
return getDefaultTransferProcess();
|
|
630
629
|
}
|
|
630
|
+
|
|
631
|
+
// only evm addresses
|
|
632
|
+
async evmDetectBalanceToken(addresses) {
|
|
633
|
+
const assetMap = this.state.chainService.getAssetRegistry();
|
|
634
|
+
const evmPromiseList = addresses.map(address => {
|
|
635
|
+
return subwalletApiSdk.balanceDetectionApi.getSubWalletTokenBalance(address).catch(e => {
|
|
636
|
+
console.error(e);
|
|
637
|
+
return null;
|
|
638
|
+
});
|
|
639
|
+
});
|
|
640
|
+
const needActiveTokens = [];
|
|
641
|
+
const evmBalanceDataList = await Promise.all(evmPromiseList);
|
|
642
|
+
for (const balanceData of evmBalanceDataList) {
|
|
643
|
+
if (balanceData) {
|
|
644
|
+
for (const tokenSlug of balanceData) {
|
|
645
|
+
const chainSlug = tokenSlug.split('-')[0];
|
|
646
|
+
const chainState = this.state.chainService.getChainStateByKey(chainSlug);
|
|
647
|
+
const existedKey = Object.keys(assetMap).find(v => v.toLowerCase() === tokenSlug.toLowerCase());
|
|
648
|
+
|
|
649
|
+
// Cancel is chain is turned off by user
|
|
650
|
+
if (chainState && chainState.manualTurnOff) {
|
|
651
|
+
continue;
|
|
652
|
+
}
|
|
653
|
+
if (existedKey) {
|
|
654
|
+
needActiveTokens.push(existedKey);
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
return needActiveTokens;
|
|
660
|
+
}
|
|
661
|
+
|
|
662
|
+
// only for substrate addresses
|
|
663
|
+
async substrateDetectBalanceToken(addresses) {
|
|
664
|
+
const assetMap = this.state.chainService.getAssetRegistry();
|
|
665
|
+
const promiseList = addresses.map(address => {
|
|
666
|
+
return this.state.subscanService.getMultiChainBalance(address).catch(e => {
|
|
667
|
+
console.error(e);
|
|
668
|
+
return null;
|
|
669
|
+
});
|
|
670
|
+
});
|
|
671
|
+
const needActiveTokens = [];
|
|
672
|
+
const balanceDataList = await Promise.all(promiseList);
|
|
673
|
+
const chainInfoMap = this.state.chainService.getChainInfoMap();
|
|
674
|
+
const detectBalanceChainSlugMap = this.state.chainService.detectBalanceChainSlugMap;
|
|
675
|
+
for (const balanceData of balanceDataList) {
|
|
676
|
+
if (balanceData) {
|
|
677
|
+
for (const balanceDatum of balanceData) {
|
|
678
|
+
const {
|
|
679
|
+
balance,
|
|
680
|
+
bonded,
|
|
681
|
+
category,
|
|
682
|
+
locked,
|
|
683
|
+
network,
|
|
684
|
+
symbol
|
|
685
|
+
} = balanceDatum;
|
|
686
|
+
const chain = detectBalanceChainSlugMap[network];
|
|
687
|
+
const chainState = this.state.chainService.getChainStateByKey(chain);
|
|
688
|
+
const chainInfo = chain ? chainInfoMap[chain] : null;
|
|
689
|
+
const balanceIsEmpty = (!balance || balance === '0') && (!locked || locked === '0') && (!bonded || bonded === '0');
|
|
690
|
+
const tokenKey = `${chain}-${category === 'native' ? 'NATIVE' : 'LOCAL'}-${symbol.toUpperCase()}`;
|
|
691
|
+
const existedKey = Object.keys(assetMap).find(v => v.toLowerCase() === tokenKey.toLowerCase());
|
|
692
|
+
|
|
693
|
+
// Cancel if chain is not supported or is testnet
|
|
694
|
+
if (!chainInfo || chainInfo.isTestnet) {
|
|
695
|
+
continue;
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
// Cancel is balance is 0
|
|
699
|
+
if (balanceIsEmpty) {
|
|
700
|
+
continue;
|
|
701
|
+
}
|
|
702
|
+
|
|
703
|
+
// Cancel is chain is turned off by user
|
|
704
|
+
if (chainState && chainState.manualTurnOff) {
|
|
705
|
+
continue;
|
|
706
|
+
}
|
|
707
|
+
if (existedKey) {
|
|
708
|
+
needActiveTokens.push(existedKey);
|
|
709
|
+
}
|
|
710
|
+
}
|
|
711
|
+
}
|
|
712
|
+
}
|
|
713
|
+
return needActiveTokens;
|
|
714
|
+
}
|
|
715
|
+
async evmDetectBalanceChain() {
|
|
716
|
+
const blockscoutChain = await subwalletApiSdk.balanceDetectionApi.getBlockscoutChainData();
|
|
717
|
+
const blockscoutChainId = Object.keys(blockscoutChain);
|
|
718
|
+
const evmDetectChain = Object.values(this.state.chainService.getChainInfoMap()).filter(info => {
|
|
719
|
+
var _info$evmInfo, _info$evmInfo2;
|
|
720
|
+
return !!((_info$evmInfo = info.evmInfo) !== null && _info$evmInfo !== void 0 && _info$evmInfo.evmChainId) && blockscoutChainId.includes((_info$evmInfo2 = info.evmInfo) === null || _info$evmInfo2 === void 0 ? void 0 : _info$evmInfo2.evmChainId.toString());
|
|
721
|
+
}).map(chainInfo => chainInfo.slug);
|
|
722
|
+
return evmDetectChain;
|
|
723
|
+
}
|
|
724
|
+
substrateDetectBalanceChain() {
|
|
725
|
+
const substrateDetectChain = Object.values(this.state.chainService.getChainInfoMap()).filter(info => {
|
|
726
|
+
var _info$extraInfo;
|
|
727
|
+
return !!info.substrateInfo && !!((_info$extraInfo = info.extraInfo) !== null && _info$extraInfo !== void 0 && _info$extraInfo.chainBalanceSlug);
|
|
728
|
+
}).map(chainInfo => chainInfo.slug);
|
|
729
|
+
return substrateDetectChain;
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
/** optimize token area **/
|
|
733
|
+
|
|
734
|
+
enableOptimizeTokenPromise() {
|
|
735
|
+
this.requireOptimizeTokenList = true;
|
|
736
|
+
}
|
|
737
|
+
async optimizeEnableTokens() {
|
|
738
|
+
try {
|
|
739
|
+
const assetSettings = await this.state.chainService.getAssetSettings();
|
|
740
|
+
const assetMap = this.state.chainService.getAssetRegistry();
|
|
741
|
+
const addresses = keyring.getPairs().map(account => account.address);
|
|
742
|
+
const evmAddresses = addresses.filter(address => [...EthereumKeypairTypes].includes(getKeypairTypeByAddress(address)));
|
|
743
|
+
const substrateAddresses = addresses.filter(address => [...SubstrateKeypairTypes].includes(getKeypairTypeByAddress(address)));
|
|
744
|
+
const [nonZeroBalanceEvmToken, nonZeroBalanceSubstrateToken] = await Promise.all([this.evmDetectBalanceToken(evmAddresses), this.substrateDetectBalanceToken(substrateAddresses)]);
|
|
745
|
+
const substrateDetectChain = this.substrateDetectBalanceChain();
|
|
746
|
+
const evmDetectChain = await this.evmDetectBalanceChain();
|
|
747
|
+
const updatedSettings = structuredClone(assetSettings);
|
|
748
|
+
Object.entries(assetSettings).forEach(([tokenSlug, setting]) => {
|
|
749
|
+
const isNonZeroBalanceToken = nonZeroBalanceEvmToken.includes(tokenSlug) || nonZeroBalanceSubstrateToken.includes(tokenSlug);
|
|
750
|
+
const assetInfo = assetMap[tokenSlug];
|
|
751
|
+
const isEvmDetectChain = evmDetectChain.includes(assetInfo.originChain);
|
|
752
|
+
const isSubstrateDetectChain = substrateDetectChain.includes(assetInfo.originChain);
|
|
753
|
+
if (isNonZeroBalanceToken && !setting.visible) {
|
|
754
|
+
// enable non-zero balance tokens
|
|
755
|
+
updatedSettings[tokenSlug] = {
|
|
756
|
+
visible: true
|
|
757
|
+
};
|
|
758
|
+
} else if (!isNonZeroBalanceToken && setting.visible && !_isNativeToken(assetInfo) && !_isCustomAsset(tokenSlug) && (isEvmDetectChain || isSubstrateDetectChain)) {
|
|
759
|
+
// hide tokens with zero balance that aren't native or custom
|
|
760
|
+
updatedSettings[tokenSlug] = {
|
|
761
|
+
visible: false
|
|
762
|
+
};
|
|
763
|
+
}
|
|
764
|
+
});
|
|
765
|
+
this.state.chainService.setAssetSettings(updatedSettings);
|
|
766
|
+
} catch (e) {
|
|
767
|
+
console.error(e);
|
|
768
|
+
}
|
|
769
|
+
}
|
|
770
|
+
|
|
771
|
+
/** optimize token area **/
|
|
631
772
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { _ChainAsset, _ChainInfo } from '@subwallet/chain-list/types';
|
|
1
2
|
import { CreateXcmExtrinsicProps } from '..';
|
|
2
3
|
export declare function _isAcrossChainBridge(srcChain: string, destChain: string): boolean;
|
|
3
4
|
export declare function _isAcrossTestnetBridge(srcChain: string): boolean;
|
|
@@ -13,4 +14,5 @@ interface XcmApiResponse {
|
|
|
13
14
|
metadata?: any;
|
|
14
15
|
}
|
|
15
16
|
export declare const getAcrossQuote: ({ destinationChain, destinationTokenInfo, originChain, originTokenInfo, recipient, sender, sendingValue }: CreateXcmExtrinsicProps) => Promise<XcmApiResponse>;
|
|
17
|
+
export declare const getAcrossSendingValue: (originChain: _ChainInfo, originTokenInfo: _ChainAsset, destinationChain: _ChainInfo, isTestnet: boolean) => Promise<string>;
|
|
16
18
|
export {};
|
|
@@ -2,12 +2,16 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
4
|
import { COMMON_CHAIN_SLUGS } from '@subwallet/chain-list';
|
|
5
|
+
import { TransactionError } from '@subwallet/extension-base/background/errors/TransactionError';
|
|
5
6
|
import { _isAcrossBridgeXcm } from '@subwallet/extension-base/core/substrate/xcm-parser';
|
|
7
|
+
import { _getAssetDecimals, _getContractAddressOfToken, _getEvmChainId } from '@subwallet/extension-base/services/chain-service/utils';
|
|
8
|
+
import { BasicTxErrorType } from '@subwallet/extension-base/types';
|
|
6
9
|
import subwalletApiSdk from '@subwallet-monorepos/subwallet-services-sdk';
|
|
10
|
+
import BigN from 'bignumber.js';
|
|
7
11
|
// Across Bridge
|
|
8
12
|
const acrossPairsMap = new Map([[COMMON_CHAIN_SLUGS.ETHEREUM, new Set(['optimism', 'base_mainnet', 'arbitrum_one'])], ['optimism', new Set([COMMON_CHAIN_SLUGS.ETHEREUM, 'base_mainnet', 'arbitrum_one'])], ['base_mainnet', new Set([COMMON_CHAIN_SLUGS.ETHEREUM, 'optimism', 'arbitrum_one'])], ['arbitrum_one', new Set([COMMON_CHAIN_SLUGS.ETHEREUM, 'optimism', 'base_mainnet'])], [COMMON_CHAIN_SLUGS.ETHEREUM_SEPOLIA, new Set(['base_sepolia', 'arbitrum_sepolia'])],
|
|
9
13
|
// TESTNET START HERE
|
|
10
|
-
['base_sepolia', new Set([COMMON_CHAIN_SLUGS.ETHEREUM_SEPOLIA])], ['arbitrum_sepolia', new Set([COMMON_CHAIN_SLUGS.ETHEREUM_SEPOLIA])]]);
|
|
14
|
+
['base_sepolia', new Set([COMMON_CHAIN_SLUGS.ETHEREUM_SEPOLIA, 'arbitrum_sepolia'])], ['arbitrum_sepolia', new Set([COMMON_CHAIN_SLUGS.ETHEREUM_SEPOLIA, 'base_sepolia'])]]);
|
|
11
15
|
export function _isAcrossChainBridge(srcChain, destChain) {
|
|
12
16
|
var _acrossPairsMap$get$h, _acrossPairsMap$get;
|
|
13
17
|
return (_acrossPairsMap$get$h = (_acrossPairsMap$get = acrossPairsMap.get(srcChain)) === null || _acrossPairsMap$get === void 0 ? void 0 : _acrossPairsMap$get.has(destChain)) !== null && _acrossPairsMap$get$h !== void 0 ? _acrossPairsMap$get$h : false;
|
|
@@ -33,7 +37,7 @@ export const getAcrossQuote = async ({
|
|
|
33
37
|
throw new Error('Sender is required');
|
|
34
38
|
}
|
|
35
39
|
try {
|
|
36
|
-
const data = await subwalletApiSdk.
|
|
40
|
+
const data = await subwalletApiSdk.bridgeApi.fetchBridgeData({
|
|
37
41
|
address: sender,
|
|
38
42
|
from: originTokenInfo.slug,
|
|
39
43
|
to: destinationTokenInfo.slug,
|
|
@@ -50,4 +54,45 @@ export const getAcrossQuote = async ({
|
|
|
50
54
|
}
|
|
51
55
|
return Promise.reject(new Error((error === null || error === void 0 ? void 0 : error.message) || 'Unable to perform this transaction at the moment. Try again later'));
|
|
52
56
|
}
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
// TODO: update logic after add across metadata for chainlist
|
|
60
|
+
const acrossNativeTokenAddresses = {
|
|
61
|
+
mainnet: {
|
|
62
|
+
arbitrum_one: '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',
|
|
63
|
+
base_mainnet: '0x4200000000000000000000000000000000000006',
|
|
64
|
+
ethereum: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
|
|
65
|
+
optimism: '0x4200000000000000000000000000000000000006'
|
|
66
|
+
},
|
|
67
|
+
testnet: {
|
|
68
|
+
arbitrum_sepolia: '0x980B62Da83eFf3D4576C647993b0c1D7faf17c73',
|
|
69
|
+
base_sepolia: '0x4200000000000000000000000000000000000006',
|
|
70
|
+
sepolia_ethereum: '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14'
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
export const getAcrossSendingValue = async (originChain, originTokenInfo, destinationChain, isTestnet) => {
|
|
74
|
+
try {
|
|
75
|
+
const originChainId = _getEvmChainId(originChain);
|
|
76
|
+
const destinationChainId = _getEvmChainId(destinationChain);
|
|
77
|
+
if (!originChainId || !destinationChainId) {
|
|
78
|
+
return Promise.reject(new TransactionError(BasicTxErrorType.INVALID_PARAMS));
|
|
79
|
+
}
|
|
80
|
+
const contracts = isTestnet ? acrossNativeTokenAddresses.testnet : acrossNativeTokenAddresses.mainnet;
|
|
81
|
+
const fromContract = _getContractAddressOfToken(originTokenInfo) || contracts[originTokenInfo.originChain];
|
|
82
|
+
const acrossBridgeLimit = await subwalletApiSdk.bridgeApi.getAcrossBridgeLimit(originChainId, destinationChainId, fromContract, isTestnet);
|
|
83
|
+
if (!acrossBridgeLimit.minDeposit || !acrossBridgeLimit.maxDeposit) {
|
|
84
|
+
throw new Error('Invalid Across Bridge response');
|
|
85
|
+
}
|
|
86
|
+
const min = new BigN(acrossBridgeLimit.minDeposit);
|
|
87
|
+
const max = new BigN(acrossBridgeLimit.maxDeposit);
|
|
88
|
+
// Use the midpoint between minDeposit and maxDeposit as a balanced value used for estimating gas fee more accurately
|
|
89
|
+
const sendingValue = min.plus(max).div(2).toFixed(0);
|
|
90
|
+
return sendingValue;
|
|
91
|
+
} catch (error) {
|
|
92
|
+
console.error('Across Bridge error:', error);
|
|
93
|
+
|
|
94
|
+
// fallback in case fetch API fail
|
|
95
|
+
const defaultSendingAmount = isTestnet ? 0.0037 : 1;
|
|
96
|
+
return new BigN(defaultSendingAmount).shiftedBy(_getAssetDecimals(originTokenInfo)).toFixed(0, BigN.ROUND_FLOOR);
|
|
97
|
+
}
|
|
53
98
|
};
|
|
@@ -181,7 +181,7 @@ export const createAcrossBridgeExtrinsic = async ({
|
|
|
181
181
|
throw new Error('Sender is required');
|
|
182
182
|
}
|
|
183
183
|
try {
|
|
184
|
-
const data = await subwalletApiSdk.
|
|
184
|
+
const data = await subwalletApiSdk.bridgeApi.fetchBridgeData({
|
|
185
185
|
address: sender,
|
|
186
186
|
from: originTokenInfo.slug,
|
|
187
187
|
to: destinationTokenInfo.slug,
|
|
@@ -204,9 +204,14 @@ export const createAcrossBridgeExtrinsic = async ({
|
|
|
204
204
|
transactionConfig.gas = gasLimit.toString();
|
|
205
205
|
return transactionConfig;
|
|
206
206
|
} catch (error) {
|
|
207
|
+
var _message, _message$toLowerCase;
|
|
207
208
|
if (error instanceof SyntaxError) {
|
|
208
209
|
return Promise.reject(new Error('Unable to perform this transaction at the moment. Try again later'));
|
|
209
210
|
}
|
|
210
|
-
|
|
211
|
+
const message = (error === null || error === void 0 ? void 0 : (_message = error.message) === null || _message === void 0 ? void 0 : (_message$toLowerCase = _message.toLowerCase) === null || _message$toLowerCase === void 0 ? void 0 : _message$toLowerCase.call(_message)) || '';
|
|
212
|
+
if (!message.includes('amount')) {
|
|
213
|
+
return Promise.reject(new Error('Unable to perform this transaction at the moment. Try again later'));
|
|
214
|
+
}
|
|
215
|
+
return Promise.reject(new Error(error === null || error === void 0 ? void 0 : error.message));
|
|
211
216
|
}
|
|
212
217
|
};
|
|
@@ -268,9 +268,6 @@ export class ChainOnlineService {
|
|
|
268
268
|
this.chainService.subscribeChainInfoMap().next(chainInfoMap);
|
|
269
269
|
this.chainService.setAssetRegistry(assetRegistry);
|
|
270
270
|
this.chainService.subscribeAssetRegistry().next(assetRegistry);
|
|
271
|
-
this.chainService.autoEnableTokens().then(() => {
|
|
272
|
-
this.eventService.emit('asset.updateState', '');
|
|
273
|
-
}).catch(console.error);
|
|
274
271
|
this.chainService.setChainStateMap(currentChainStateMap);
|
|
275
272
|
this.chainService.subscribeChainStateMap().next(currentChainStateMap);
|
|
276
273
|
this.chainService.subscribeChainStatusMap().next(currentChainStatusMap);
|
|
@@ -121,6 +121,7 @@ export declare class ChainService {
|
|
|
121
121
|
stopCheckLatestChainData(): void;
|
|
122
122
|
handleLatestChainData(latestChainInfo: _ChainInfo[]): void;
|
|
123
123
|
autoEnableTokens(): Promise<void>;
|
|
124
|
+
resetPopularTokenList(): void;
|
|
124
125
|
enablePopularTokens(): Promise<void>;
|
|
125
126
|
handleLatestLedgerGenericAllowChains(latestledgerGenericAllowChains: string[]): void;
|
|
126
127
|
handleLatestPriorityTokens(latestPriorityTokens: TokenPriorityDetails): void;
|