@subwallet/extension-base 1.3.70-2 → 1.3.72-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 +13 -2
- package/background/KoniTypes.js +68 -9
- package/cjs/background/KoniTypes.js +68 -9
- package/cjs/constants/blocked-actions.js +3 -0
- package/cjs/core/logic-validation/recipientAddress.js +1 -1
- package/cjs/core/logic-validation/swap.js +0 -3
- package/cjs/core/logic-validation/transfer.js +33 -10
- package/cjs/core/substrate/system-pallet.js +0 -2
- package/cjs/core/types.js +1 -0
- package/cjs/koni/api/nft/wasm_nft/index.js +0 -1
- package/cjs/koni/api/staking/bonding/astar.js +0 -2
- package/cjs/koni/api/staking/bonding/paraChain.js +0 -3
- package/cjs/koni/api/staking/bonding/relayChain.js +2 -4
- package/cjs/koni/api/staking/bonding/utils.js +0 -4
- package/cjs/koni/background/cron.js +0 -1
- package/cjs/koni/background/handlers/Extension.js +235 -166
- package/cjs/koni/background/handlers/State.js +56 -52
- package/cjs/koni/background/handlers/Tabs.js +39 -34
- package/cjs/packageInfo.js +1 -1
- package/cjs/page/index.js +7 -0
- package/cjs/page/substrate/PostMessageProvider.js +3 -0
- package/cjs/services/balance-service/helpers/subscribe/cardano/utils.js +0 -1
- package/cjs/services/balance-service/helpers/subscribe/substrate/gear.js +0 -2
- package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +48 -5
- package/cjs/services/balance-service/helpers/subscribe/ton/utils.js +0 -3
- package/cjs/services/balance-service/index.js +103 -7
- package/cjs/services/balance-service/transfer/bitcoin-transfer.js +0 -1
- package/cjs/services/balance-service/transfer/cardano-transfer.js +1 -2
- package/cjs/services/balance-service/transfer/smart-contract.js +0 -1
- package/cjs/services/balance-service/transfer/token.js +13 -37
- package/cjs/services/balance-service/transfer/ton-transfer.js +0 -1
- package/cjs/services/balance-service/transfer/xcm/index.js +3 -8
- package/cjs/services/balance-service/transfer/xcm/snowBridge.js +0 -1
- package/cjs/services/balance-service/transfer/xcm/utils.js +1 -1
- package/cjs/services/chain-service/constants.js +6 -5
- package/cjs/services/chain-service/handler/CardanoApi.js +3 -1
- package/cjs/services/chain-service/handler/SubstrateApi.js +0 -2
- package/cjs/services/chain-service/handler/light-client/index.js +1 -2
- package/cjs/services/chain-service/health-check/index.js +0 -1
- package/cjs/services/chain-service/health-check/utils/new-utils/chain-asset-validate.js +0 -1
- package/cjs/services/chain-service/index.js +19 -26
- package/cjs/services/chain-service/utils/index.js +21 -25
- package/cjs/services/chain-service/utils/patch.js +1 -1
- package/cjs/services/earning-service/handlers/base.js +32 -0
- package/cjs/services/earning-service/handlers/lending/base.js +0 -2
- package/cjs/services/earning-service/handlers/liquid-staking/acala.js +0 -1
- package/cjs/services/earning-service/handlers/liquid-staking/base.js +0 -2
- package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +0 -2
- package/cjs/services/earning-service/handlers/liquid-staking/parallel.js +0 -1
- package/cjs/services/earning-service/handlers/native-staking/astar.js +0 -2
- package/cjs/services/earning-service/handlers/native-staking/dtao.js +43 -2
- package/cjs/services/earning-service/handlers/native-staking/energy.js +0 -1
- package/cjs/services/earning-service/handlers/native-staking/mythos.js +0 -2
- package/cjs/services/earning-service/handlers/native-staking/para-chain.js +0 -2
- package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +8 -9
- package/cjs/services/earning-service/handlers/special.js +7 -0
- package/cjs/services/history-service/subsquid-multi-chain-history.js +0 -1
- package/cjs/services/keyring-service/context/handlers/Derive.js +1 -1
- package/cjs/services/keyring-service/context/handlers/Migration.js +11 -9
- package/cjs/services/keyring-service/context/handlers/Mnemonic.js +18 -13
- package/cjs/services/keyring-service/context/state.js +21 -3
- package/cjs/services/keyring-service/utils.js +12 -2
- package/cjs/services/migration-service/index.js +1 -2
- package/cjs/services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251223.js +55 -0
- package/cjs/services/migration-service/scripts/databases/MigrateAssetSetting20251223.js +41 -0
- package/cjs/services/migration-service/scripts/index.js +17 -13
- package/cjs/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +0 -1
- package/cjs/services/nft-service/index.js +5 -0
- package/cjs/services/open-gov/handler.js +0 -2
- package/cjs/services/open-gov/interface.js +4 -1
- package/cjs/services/request-service/handler/BitcoinRequestHandler.js +1 -2
- package/cjs/services/request-service/handler/CardanoRequestHandler.js +0 -1
- package/cjs/services/request-service/handler/EvmRequestHandler.js +0 -1
- package/cjs/services/request-service/handler/TonRequestHandler.js +0 -1
- package/cjs/services/request-service/helper/index.js +1 -2
- package/cjs/services/storage-service/DatabaseService.js +0 -2
- package/cjs/services/storage-service/databases/index.js +2 -0
- package/cjs/services/substrate-proxy-service/constant.js +26 -0
- package/cjs/services/substrate-proxy-service/index.js +170 -0
- package/cjs/services/swap-service/handler/asset-hub/handler.js +0 -1
- package/cjs/services/swap-service/handler/asset-hub/router.js +0 -1
- package/cjs/services/swap-service/handler/chainflip-handler.js +1 -4
- package/cjs/services/swap-service/handler/hydradx-handler.js +0 -1
- package/cjs/services/swap-service/handler/kyber-handler.js +0 -1
- package/cjs/services/swap-service/handler/optimex-handler.js +1 -2
- package/cjs/services/swap-service/handler/simpleswap-handler.js +1 -3
- package/cjs/services/swap-service/handler/uniswap-handler.js +0 -3
- package/cjs/services/transaction-service/event-parser/index.js +6 -6
- package/cjs/services/transaction-service/index.js +105 -37
- package/cjs/services/transaction-service/utils.js +8 -5
- package/cjs/services/wallet-connect-service/index.js +21 -18
- package/cjs/services/wallet-connect-service/types.js +1 -1
- package/cjs/types/account/info/keyring.js +9 -1
- package/cjs/types/balance/index.js +5 -1
- package/cjs/types/index.js +11 -0
- package/cjs/types/substrateProxyAccount/actions/index.js +1 -0
- package/cjs/types/substrateProxyAccount/index.js +16 -0
- package/cjs/types/swap/index.js +2 -1
- package/cjs/types/transaction/process.js +2 -0
- package/cjs/types/yield/actions/join/step.js +17 -1
- package/cjs/utils/account/common.js +0 -26
- package/cjs/utils/account/derive/info/solo.js +7 -4
- package/cjs/utils/account/derive/validate.js +1 -1
- package/cjs/utils/account/transform.js +10 -5
- package/cjs/utils/auth.js +1 -1
- package/cjs/utils/bitcoin/utxo-management.js +0 -1
- package/cjs/utils/environment.js +2 -1
- package/cjs/utils/fee/transfer.js +5 -4
- package/cjs/utils/index.js +1 -2
- package/constants/blocked-actions.js +3 -0
- package/core/logic-validation/recipientAddress.js +1 -1
- package/core/logic-validation/swap.js +0 -3
- package/core/logic-validation/transfer.d.ts +3 -3
- package/core/logic-validation/transfer.js +34 -11
- package/core/substrate/system-pallet.js +0 -2
- package/core/types.d.ts +2 -1
- package/core/types.js +1 -0
- package/koni/api/nft/wasm_nft/index.js +0 -1
- package/koni/api/staking/bonding/astar.js +0 -2
- package/koni/api/staking/bonding/paraChain.js +0 -3
- package/koni/api/staking/bonding/relayChain.js +2 -4
- package/koni/api/staking/bonding/utils.js +0 -4
- package/koni/background/cron.js +0 -1
- package/koni/background/handlers/Extension.d.ts +3 -0
- package/koni/background/handlers/Extension.js +89 -19
- package/koni/background/handlers/State.d.ts +2 -0
- package/koni/background/handlers/State.js +43 -38
- package/koni/background/handlers/Tabs.js +9 -3
- package/package.json +50 -21
- package/packageInfo.js +1 -1
- package/page/substrate/PostMessageProvider.js +3 -0
- package/services/balance-service/helpers/subscribe/cardano/utils.js +0 -1
- package/services/balance-service/helpers/subscribe/substrate/gear.js +0 -2
- package/services/balance-service/helpers/subscribe/substrate/index.js +47 -4
- package/services/balance-service/helpers/subscribe/ton/utils.js +0 -3
- package/services/balance-service/index.d.ts +8 -0
- package/services/balance-service/index.js +105 -9
- package/services/balance-service/transfer/bitcoin-transfer.js +0 -1
- package/services/balance-service/transfer/smart-contract.js +0 -1
- package/services/balance-service/transfer/token.d.ts +0 -4
- package/services/balance-service/transfer/token.js +12 -35
- package/services/balance-service/transfer/ton-transfer.js +0 -1
- package/services/balance-service/transfer/xcm/index.js +3 -8
- package/services/balance-service/transfer/xcm/snowBridge.js +0 -1
- package/services/balance-service/transfer/xcm/utils.d.ts +0 -2
- package/services/balance-service/transfer/xcm/utils.js +1 -1
- package/services/chain-service/constants.d.ts +1 -1
- package/services/chain-service/constants.js +4 -4
- package/services/chain-service/handler/CardanoApi.js +3 -1
- package/services/chain-service/handler/SubstrateApi.js +0 -2
- package/services/chain-service/health-check/index.js +0 -1
- package/services/chain-service/health-check/utils/new-utils/chain-asset-validate.js +0 -1
- package/services/chain-service/index.d.ts +0 -1
- package/services/chain-service/index.js +16 -23
- package/services/chain-service/utils/index.js +22 -26
- package/services/chain-service/utils/patch.d.ts +1 -1
- package/services/chain-service/utils/patch.js +1 -1
- package/services/earning-service/handlers/base.js +32 -0
- package/services/earning-service/handlers/lending/base.js +0 -2
- package/services/earning-service/handlers/liquid-staking/acala.js +0 -1
- package/services/earning-service/handlers/liquid-staking/base.js +0 -2
- package/services/earning-service/handlers/liquid-staking/bifrost.js +0 -2
- package/services/earning-service/handlers/liquid-staking/parallel.js +0 -1
- package/services/earning-service/handlers/native-staking/astar.js +0 -2
- package/services/earning-service/handlers/native-staking/dtao.js +43 -0
- package/services/earning-service/handlers/native-staking/energy.js +0 -1
- package/services/earning-service/handlers/native-staking/mythos.js +0 -2
- package/services/earning-service/handlers/native-staking/para-chain.js +0 -2
- package/services/earning-service/handlers/native-staking/relay-chain.js +8 -9
- package/services/earning-service/handlers/special.js +7 -0
- package/services/history-service/subsquid-multi-chain-history.js +0 -1
- package/services/keyring-service/context/handlers/Derive.js +2 -2
- package/services/keyring-service/context/handlers/Migration.js +3 -1
- package/services/keyring-service/context/handlers/Mnemonic.d.ts +1 -1
- package/services/keyring-service/context/handlers/Mnemonic.js +16 -10
- package/services/keyring-service/context/state.d.ts +3 -0
- package/services/keyring-service/context/state.js +21 -3
- package/services/keyring-service/utils.d.ts +1 -0
- package/services/keyring-service/utils.js +9 -0
- package/services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251223.d.ts +4 -0
- package/services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251223.js +46 -0
- package/services/migration-service/scripts/databases/MigrateAssetSetting20251223.d.ts +4 -0
- package/services/migration-service/scripts/databases/MigrateAssetSetting20251223.js +33 -0
- package/services/migration-service/scripts/index.js +8 -4
- package/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +0 -1
- package/services/nft-service/index.js +6 -0
- package/services/open-gov/handler.js +0 -2
- package/services/open-gov/interface.d.ts +4 -3
- package/services/open-gov/interface.js +4 -1
- package/services/request-service/handler/CardanoRequestHandler.js +0 -1
- package/services/request-service/handler/EvmRequestHandler.js +0 -1
- package/services/request-service/handler/TonRequestHandler.js +0 -1
- package/services/setting-service/constants.js +0 -1
- package/services/storage-service/DatabaseService.js +0 -2
- package/services/storage-service/databases/index.js +3 -0
- package/services/substrate-proxy-service/constant.d.ts +3 -0
- package/services/substrate-proxy-service/constant.js +19 -0
- package/services/substrate-proxy-service/index.d.ts +13 -0
- package/services/substrate-proxy-service/index.js +159 -0
- package/services/swap-service/handler/asset-hub/handler.js +0 -1
- package/services/swap-service/handler/asset-hub/router.js +0 -1
- package/services/swap-service/handler/chainflip-handler.js +0 -2
- package/services/swap-service/handler/hydradx-handler.js +0 -1
- package/services/swap-service/handler/kyber-handler.js +0 -1
- package/services/swap-service/handler/simpleswap-handler.js +0 -1
- package/services/swap-service/handler/uniswap-handler.js +0 -3
- package/services/transaction-service/event-parser/index.js +6 -6
- package/services/transaction-service/index.js +79 -11
- package/services/transaction-service/types.d.ts +2 -2
- package/services/transaction-service/utils.js +8 -5
- package/services/wallet-connect-service/index.js +21 -18
- package/services/wallet-connect-service/types.js +1 -1
- package/types/account/action/add/mnemonic.d.ts +3 -2
- package/types/account/info/keyring.js +9 -1
- package/types/balance/index.js +5 -1
- package/types/balance/transfer.d.ts +1 -0
- package/types/index.d.ts +1 -0
- package/types/index.js +1 -0
- package/types/substrateProxyAccount/actions/index.d.ts +17 -0
- package/types/substrateProxyAccount/actions/index.js +1 -0
- package/types/substrateProxyAccount/index.d.ts +23 -0
- package/types/substrateProxyAccount/index.js +8 -0
- package/types/swap/index.js +2 -1
- package/types/transaction/process.js +3 -1
- package/types/transaction/request.d.ts +1 -0
- package/types/yield/actions/join/step.js +17 -1
- package/types/yield/actions/join/submit.d.ts +1 -1
- package/utils/account/common.d.ts +0 -3
- package/utils/account/common.js +0 -24
- package/utils/account/derive/info/solo.js +8 -5
- package/utils/account/derive/validate.d.ts +2 -2
- package/utils/account/derive/validate.js +1 -1
- package/utils/account/transform.js +10 -5
- package/utils/auth.js +2 -2
- package/utils/bitcoin/utxo-management.js +0 -1
- package/utils/fee/transfer.js +4 -2
- package/utils/index.js +2 -5
|
@@ -356,7 +356,6 @@ const subscribePSP22Balance = _ref4 => {
|
|
|
356
356
|
}
|
|
357
357
|
});
|
|
358
358
|
};
|
|
359
|
-
|
|
360
359
|
getTokenBalances();
|
|
361
360
|
const interval = setInterval(getTokenBalances, _constants.SUB_TOKEN_REFRESH_BALANCE_INTERVAL);
|
|
362
361
|
return () => {
|
|
@@ -438,16 +437,27 @@ const subscribeAssetsAccountPallet = async _ref7 => {
|
|
|
438
437
|
}
|
|
439
438
|
});
|
|
440
439
|
const unsubList = await Promise.all(Object.values(tokenMap).map(tokenInfo => {
|
|
440
|
+
if (tokenInfo.slug === 'energy_web_x-LOCAL-stEWT') {
|
|
441
|
+
return (0, _rxjs.timer)(0, _constants.CRON_REFRESH_PRICE_INTERVAL).subscribe(() => {
|
|
442
|
+
const getEwtFrozenBalance = async () => {
|
|
443
|
+
const ewtTokenBalances = await queryEwtFrozenBalance(substrateApi, addresses, assetMap[tokenInfo.slug], extrinsicType);
|
|
444
|
+
callback(ewtTokenBalances);
|
|
445
|
+
};
|
|
446
|
+
getEwtFrozenBalance().catch(console.error);
|
|
447
|
+
});
|
|
448
|
+
}
|
|
441
449
|
try {
|
|
442
450
|
const assetIndex = (0, _utils2._getTokenOnChainAssetId)(tokenInfo);
|
|
443
|
-
if (assetIndex === '-1') {
|
|
451
|
+
if (assetIndex === '-1' && !_constants2.USE_MULTILOCATION_INDEX.includes(chainInfo.slug)) {
|
|
444
452
|
return undefined;
|
|
445
453
|
}
|
|
454
|
+
const version = ['statemint', 'statemine', 'westend_assethub'].includes(chainInfo.slug) ? 4 : 3;
|
|
455
|
+
const index = _constants2.USE_MULTILOCATION_INDEX.includes(chainInfo.slug) ? (0, _xcmParser._adaptX1Interior)((0, _utils2._getXcmAssetMultilocation)(tokenInfo), version) : assetIndex;
|
|
446
456
|
const params = [{
|
|
447
457
|
section: 'query',
|
|
448
458
|
module: assetsAccountKey.split('_')[1],
|
|
449
459
|
method: assetsAccountKey.split('_')[2],
|
|
450
|
-
args: addresses.map(address => [
|
|
460
|
+
args: addresses.map(address => [index, address])
|
|
451
461
|
}];
|
|
452
462
|
|
|
453
463
|
// Get Token Balance
|
|
@@ -572,8 +582,8 @@ const subscribeSubnetAlphaPallet = async _ref9 => {
|
|
|
572
582
|
}
|
|
573
583
|
for (const chainAsset of Object.values(tokenMap)) {
|
|
574
584
|
const netuid = (0, _utils2._getAssetNetuid)(chainAsset);
|
|
575
|
-
const items = Object.entries(converted).map(
|
|
576
|
-
let [address, stakeMap] =
|
|
585
|
+
const items = Object.entries(converted).map(_ref0 => {
|
|
586
|
+
let [address, stakeMap] = _ref0;
|
|
577
587
|
const value = stakeMap[netuid] || (0, _bignumber.default)(0);
|
|
578
588
|
return {
|
|
579
589
|
address: address,
|
|
@@ -611,4 +621,37 @@ async function queryGigaTokenBalance(substrateApi, addresses, tokenInfo, extrins
|
|
|
611
621
|
locked: totalLockedFromTransfer.toString()
|
|
612
622
|
};
|
|
613
623
|
}));
|
|
624
|
+
}
|
|
625
|
+
async function queryEwtFrozenBalance(substrateApi, addresses, tokenInfo, extrinsicType) {
|
|
626
|
+
const multilocation = (0, _utils2._getXcmAssetMultilocation)(tokenInfo);
|
|
627
|
+
return await Promise.all(addresses.map(async address => {
|
|
628
|
+
const [_frozenBalance, _balanceInfo] = await Promise.all([substrateApi.api.query.assetsFreezer.frozenBalances(multilocation, address), substrateApi.api.query.assets.account(multilocation, address)]);
|
|
629
|
+
const balanceInfo = _balanceInfo.toPrimitive();
|
|
630
|
+
if (!balanceInfo) {
|
|
631
|
+
// no balance info response
|
|
632
|
+
return {
|
|
633
|
+
address: address,
|
|
634
|
+
tokenSlug: tokenInfo.slug,
|
|
635
|
+
free: '0',
|
|
636
|
+
locked: '0',
|
|
637
|
+
state: _KoniTypes.APIItemState.READY
|
|
638
|
+
};
|
|
639
|
+
}
|
|
640
|
+
const transferableBalance = (0, _assetsPallet._getAssetsPalletTransferable)(balanceInfo, (0, _utils2._getAssetExistentialDeposit)(tokenInfo), extrinsicType);
|
|
641
|
+
const totalLockedFromTransfer = (0, _assetsPallet._getAssetsPalletLocked)(balanceInfo);
|
|
642
|
+
let freeBalance = transferableBalance;
|
|
643
|
+
let lockedBalance = totalLockedFromTransfer;
|
|
644
|
+
const frozenBalance = _frozenBalance.toPrimitive();
|
|
645
|
+
if (frozenBalance) {
|
|
646
|
+
freeBalance = transferableBalance - BigInt(frozenBalance);
|
|
647
|
+
lockedBalance = totalLockedFromTransfer + BigInt(frozenBalance);
|
|
648
|
+
}
|
|
649
|
+
return {
|
|
650
|
+
address: address,
|
|
651
|
+
tokenSlug: tokenInfo.slug,
|
|
652
|
+
free: freeBalance.toString(),
|
|
653
|
+
locked: lockedBalance.toString(),
|
|
654
|
+
state: _KoniTypes.APIItemState.READY
|
|
655
|
+
};
|
|
656
|
+
}));
|
|
614
657
|
}
|
|
@@ -57,10 +57,8 @@ async function retryTonTxStatus(fn, options) {
|
|
|
57
57
|
await new Promise(resolve => setTimeout(resolve, options.delay)); // wait for delay period, then recall the fn()
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
-
|
|
61
60
|
throw lastError; // throw only last error, in case no successful result from fn()
|
|
62
61
|
}
|
|
63
|
-
|
|
64
62
|
function getMessageTxStatus(txByMsgInfo) {
|
|
65
63
|
var _txDetailInfo$descrip, _txDetailInfo$descrip2, _txDetailInfo$descrip3, _txDetailInfo$descrip4, _txDetailInfo$descrip5, _txDetailInfo$descrip6, _txDetailInfo$out_msg, _txDetailInfo$out_msg2;
|
|
66
64
|
const txDetailInfo = txByMsgInfo.transactions[0];
|
|
@@ -86,7 +84,6 @@ async function getJettonTxStatus(tonApi, jettonTransferMsgHash) {
|
|
|
86
84
|
const jettonInternalTransferTxInfoRaw = await tonApi.getTxByInMsg(jettonInternalTransferHash);
|
|
87
85
|
return getMessageTxStatus(jettonInternalTransferTxInfoRaw); // Jetton Internal Transfer success -> Receiver successfully receiver fund!
|
|
88
86
|
}
|
|
89
|
-
|
|
90
87
|
return false;
|
|
91
88
|
}
|
|
92
89
|
async function estimateTonTxFee(tonApi, messages, walletContract, _seqno) {
|
|
@@ -472,7 +472,7 @@ class BalanceService {
|
|
|
472
472
|
const assetMap = this.state.chainService.getAssetRegistry();
|
|
473
473
|
const promiseList = addresses.map(address => {
|
|
474
474
|
const type = (0, _keyring.getKeypairTypeByAddress)(address);
|
|
475
|
-
const typeValid = [..._types3.
|
|
475
|
+
const typeValid = [..._types3.AllSubstrateKeypairTypes, ..._types3.EthereumKeypairTypes].includes(type);
|
|
476
476
|
if (typeValid) {
|
|
477
477
|
return this.state.subscanService.getMultiChainBalance(address).catch(e => {
|
|
478
478
|
console.error(e);
|
|
@@ -553,12 +553,10 @@ class BalanceService {
|
|
|
553
553
|
var _currentAssetSettings2;
|
|
554
554
|
const chainSlug = tokenSlug.split('-')[0];
|
|
555
555
|
const chainState = this.state.chainService.getChainStateByKey(chainSlug);
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
// Cancel if chain is turned off by user
|
|
559
|
-
if (chainState && chainState.manualTurnOff) {
|
|
556
|
+
if (chainState !== null && chainState !== void 0 && chainState.manualTurnOff) {
|
|
560
557
|
continue;
|
|
561
558
|
}
|
|
559
|
+
const existedKey = Object.keys(assetMap).find(v => v.toLowerCase() === tokenSlug.toLowerCase());
|
|
562
560
|
if (existedKey && !((_currentAssetSettings2 = currentAssetSettings[existedKey]) !== null && _currentAssetSettings2 !== void 0 && _currentAssetSettings2.visible)) {
|
|
563
561
|
needEnableChains.push(chainSlug);
|
|
564
562
|
needActiveTokens.push(existedKey);
|
|
@@ -774,7 +772,7 @@ class BalanceService {
|
|
|
774
772
|
const assetMap = this.state.chainService.getAssetRegistry();
|
|
775
773
|
const addresses = _uiKeyring.default.getPairs().map(account => account.address);
|
|
776
774
|
const evmAddresses = addresses.filter(address => [..._types3.EthereumKeypairTypes].includes((0, _keyring.getKeypairTypeByAddress)(address)));
|
|
777
|
-
const substrateAddresses = addresses.filter(address => [..._types3.
|
|
775
|
+
const substrateAddresses = addresses.filter(address => [..._types3.AllSubstrateKeypairTypes].includes((0, _keyring.getKeypairTypeByAddress)(address)));
|
|
778
776
|
const [nonZeroBalanceEvmToken, nonZeroBalanceSubstrateToken] = await Promise.all([this.evmDetectBalanceToken(evmAddresses), this.substrateDetectBalanceToken(substrateAddresses)]);
|
|
779
777
|
const substrateDetectChain = this.substrateDetectBalanceChain();
|
|
780
778
|
const evmDetectChain = await this.evmDetectBalanceChain();
|
|
@@ -803,6 +801,104 @@ class BalanceService {
|
|
|
803
801
|
}
|
|
804
802
|
}
|
|
805
803
|
|
|
806
|
-
/**
|
|
804
|
+
/** Return token slugs with balance in evm chain - only work with evm addresses & pure evm chains **/
|
|
805
|
+
async getEvmTokensBalanceByChain(address, chainSlug) {
|
|
806
|
+
const tokenBalanceSlugs = await _subwalletServicesSdk.default.balanceDetectionApi.getSwEvmTokenBalanceByChain(address, chainSlug);
|
|
807
|
+
return tokenBalanceSlugs;
|
|
808
|
+
}
|
|
809
|
+
|
|
810
|
+
/** Return token slugs with balance in substrate chain - only work with substrate chains that have subscanSlug **/
|
|
811
|
+
async getSubstrateTokensBalanceByChain(address, chainSlug, assetsByChain) {
|
|
812
|
+
const tokenBalanceSlugs = [];
|
|
813
|
+
const balanceData = await this.state.subscanService.getMultiChainBalance(address);
|
|
814
|
+
if (!balanceData) {
|
|
815
|
+
return [];
|
|
816
|
+
}
|
|
817
|
+
for (const datum of balanceData) {
|
|
818
|
+
const {
|
|
819
|
+
balance,
|
|
820
|
+
bonded,
|
|
821
|
+
category,
|
|
822
|
+
locked,
|
|
823
|
+
network,
|
|
824
|
+
symbol
|
|
825
|
+
} = datum;
|
|
826
|
+
const chain = this.state.chainService.detectBalanceChainSlugMap[network];
|
|
827
|
+
if (chain !== chainSlug) {
|
|
828
|
+
continue;
|
|
829
|
+
}
|
|
830
|
+
const isBalanceEmpty = (!balance || balance === '0') && (!locked || locked === '0') && (!bonded || bonded === '0');
|
|
831
|
+
if (isBalanceEmpty) {
|
|
832
|
+
continue;
|
|
833
|
+
}
|
|
834
|
+
const tokenKey = `${chain}-${category === 'native' ? 'NATIVE' : 'LOCAL'}-${symbol.toUpperCase()}`;
|
|
835
|
+
const existedKey = Object.keys(assetsByChain).find(v => v.toLowerCase() === tokenKey.toLowerCase());
|
|
836
|
+
if (existedKey) {
|
|
837
|
+
tokenBalanceSlugs.push(existedKey);
|
|
838
|
+
}
|
|
839
|
+
}
|
|
840
|
+
return tokenBalanceSlugs;
|
|
841
|
+
}
|
|
842
|
+
getCurrentAccountAddressByChain(chainInfo) {
|
|
843
|
+
const proxyId = this.state.keyringService.context.currentAccount.proxyId;
|
|
844
|
+
const addresses = this.state.keyringService.context.addressesByProxyId(proxyId);
|
|
845
|
+
if ((0, _utils._isPureEvmChain)(chainInfo)) {
|
|
846
|
+
const evmAddress = addresses.find(address => {
|
|
847
|
+
const type = (0, _keyring.getKeypairTypeByAddress)(address);
|
|
848
|
+
return [..._types3.EthereumKeypairTypes].includes(type);
|
|
849
|
+
});
|
|
850
|
+
if (evmAddress) {
|
|
851
|
+
return evmAddress;
|
|
852
|
+
}
|
|
853
|
+
}
|
|
854
|
+
if ((0, _utils._isChainSubstrateCompatible)(chainInfo)) {
|
|
855
|
+
const substrateAddress = addresses.find(address => {
|
|
856
|
+
const type = (0, _keyring.getKeypairTypeByAddress)(address);
|
|
857
|
+
return [..._types3.AllSubstrateKeypairTypes, ..._types3.EthereumKeypairTypes].includes(type);
|
|
858
|
+
});
|
|
859
|
+
if (substrateAddress) {
|
|
860
|
+
return substrateAddress;
|
|
861
|
+
}
|
|
862
|
+
}
|
|
863
|
+
return undefined;
|
|
864
|
+
}
|
|
865
|
+
|
|
866
|
+
/** re-detect balance & enable custom, priority tokens when enabling chain again **/
|
|
867
|
+
async updatePriorityAssetsByChain(chainSlug, visible) {
|
|
868
|
+
const currentAssetSettings = await this.state.chainService.getAssetSettings();
|
|
869
|
+
const assetsByChain = this.state.chainService.getFungibleTokensByChain(chainSlug);
|
|
870
|
+
const priorityTokensMap = this.state.chainService.value.priorityTokens || {};
|
|
871
|
+
const chainInfo = this.state.chainService.getChainInfoByKey(chainSlug);
|
|
872
|
+
const address = this.getCurrentAccountAddressByChain(chainInfo);
|
|
873
|
+
const tokenSlugsWithBalance = [];
|
|
874
|
+
if (address && !(0, _utils._isCustomChain)(chainInfo.slug)) {
|
|
875
|
+
if ((0, _utils._isPureEvmChain)(chainInfo)) {
|
|
876
|
+
tokenSlugsWithBalance.push(...(await this.getEvmTokensBalanceByChain(address, chainSlug)));
|
|
877
|
+
} else if ((0, _utils._isChainSubstrateCompatible)(chainInfo)) {
|
|
878
|
+
tokenSlugsWithBalance.push(...(await this.getSubstrateTokensBalanceByChain(address, chainSlug, assetsByChain)));
|
|
879
|
+
}
|
|
880
|
+
}
|
|
881
|
+
tokenSlugsWithBalance.forEach(tokenSlug => {
|
|
882
|
+
currentAssetSettings[tokenSlug] = {
|
|
883
|
+
visible: true
|
|
884
|
+
};
|
|
885
|
+
});
|
|
886
|
+
const priorityTokensList = priorityTokensMap.token && typeof priorityTokensMap.token === 'object' ? Object.keys(priorityTokensMap.token) : [];
|
|
887
|
+
for (const asset of Object.values(assetsByChain)) {
|
|
888
|
+
if (visible) {
|
|
889
|
+
const isPriorityToken = priorityTokensList.includes(asset.slug) || (0, _utils._isCustomAsset)(asset.slug);
|
|
890
|
+
if (isPriorityToken || (0, _utils._isNativeToken)(asset)) {
|
|
891
|
+
currentAssetSettings[asset.slug] = {
|
|
892
|
+
visible: true
|
|
893
|
+
};
|
|
894
|
+
}
|
|
895
|
+
} else {
|
|
896
|
+
currentAssetSettings[asset.slug] = {
|
|
897
|
+
visible: false
|
|
898
|
+
};
|
|
899
|
+
}
|
|
900
|
+
}
|
|
901
|
+
this.state.chainService.setAssetSettings(currentAssetSettings);
|
|
902
|
+
}
|
|
807
903
|
}
|
|
808
904
|
exports.BalanceService = BalanceService;
|
|
@@ -10,8 +10,7 @@ var _types = require("@subwallet/chain-list/types");
|
|
|
10
10
|
var _utils = require("@subwallet/extension-base/services/balance-service/helpers/subscribe/cardano/utils");
|
|
11
11
|
var _utils2 = require("@subwallet/extension-base/utils");
|
|
12
12
|
var _subwalletServicesSdk = _interopRequireDefault(require("@subwallet-monorepos/subwallet-services-sdk"));
|
|
13
|
-
function
|
|
14
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
13
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
15
14
|
// Copyright 2019-2022 @subwallet/extension-base
|
|
16
15
|
// SPDX-License-Identifier: Apache-2.0
|
|
17
16
|
var POPULAR_CARDANO_ERROR_PHRASE;
|
|
@@ -4,9 +4,10 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.getTransferMockTxFee = exports.
|
|
7
|
+
exports.getTransferMockTxFee = exports.createSubstrateExtrinsic = void 0;
|
|
8
8
|
var _api = require("@gear-js/api");
|
|
9
9
|
var _types = require("@subwallet/chain-list/types");
|
|
10
|
+
var _xcmParser = require("@subwallet/extension-base/core/substrate/xcm-parser");
|
|
10
11
|
var _wasm = require("@subwallet/extension-base/koni/api/contract-handler/wasm");
|
|
11
12
|
var _utils = require("@subwallet/extension-base/koni/api/contract-handler/wasm/utils");
|
|
12
13
|
var _utils2 = require("@subwallet/extension-base/services/balance-service/helpers/subscribe/ton/utils");
|
|
@@ -24,7 +25,7 @@ var _utilCrypto = require("@polkadot/util-crypto");
|
|
|
24
25
|
// SPDX-License-Identifier: Apache-2.0
|
|
25
26
|
|
|
26
27
|
const createSubstrateExtrinsic = async _ref => {
|
|
27
|
-
var _tokenInfo$metadata
|
|
28
|
+
var _tokenInfo$metadata;
|
|
28
29
|
let {
|
|
29
30
|
from,
|
|
30
31
|
networkKey,
|
|
@@ -102,7 +103,15 @@ const createSubstrateExtrinsic = async _ref => {
|
|
|
102
103
|
} else if (_constants._TRANSFER_CHAIN_GROUP.bitcountry.includes(networkKey) && !(0, _utils3._isNativeToken)(tokenInfo)) {
|
|
103
104
|
transfer = api.tx.currencies.transfer(to, (0, _utils3._getTokenOnChainInfo)(tokenInfo), value);
|
|
104
105
|
} else if (_constants._TRANSFER_CHAIN_GROUP.statemine.includes(networkKey) && !(0, _utils3._isNativeToken)(tokenInfo)) {
|
|
105
|
-
|
|
106
|
+
if (_constants.USE_MULTILOCATION_INDEX.includes(networkKey)) {
|
|
107
|
+
const version = ['statemint', 'statemine', 'westend_assethub'].includes(networkKey) ? 4 : 3;
|
|
108
|
+
const multilocationIndex = (0, _xcmParser._adaptX1Interior)((0, _utils3._getXcmAssetMultilocation)(tokenInfo), version);
|
|
109
|
+
|
|
110
|
+
// @ts-ignore
|
|
111
|
+
transfer = api.tx.assets.transfer(multilocationIndex, to, value);
|
|
112
|
+
} else {
|
|
113
|
+
transfer = api.tx.assets.transfer((0, _utils3._getTokenOnChainAssetId)(tokenInfo), to, value);
|
|
114
|
+
}
|
|
106
115
|
} else if (_constants._TRANSFER_CHAIN_GROUP.sora_substrate.includes(networkKey) && isTxAssetsSupported) {
|
|
107
116
|
transfer = api.tx.assets.transfer((0, _utils3._getTokenOnChainAssetId)(tokenInfo), to, value);
|
|
108
117
|
} else if (isTxBalancesSupported && (0, _utils3._isNativeToken)(tokenInfo)) {
|
|
@@ -120,18 +129,6 @@ const createSubstrateExtrinsic = async _ref => {
|
|
|
120
129
|
}
|
|
121
130
|
} else if (_constants._TRANSFER_CHAIN_GROUP.truth.includes(networkKey)) {
|
|
122
131
|
transfer = api.tx.assetManager.transfer(to, (0, _utils3._getTokenOnChainInfo)(tokenInfo), value);
|
|
123
|
-
} else if (_constants._TRANSFER_CHAIN_GROUP.bittensor.includes(networkKey) && (_tokenInfo$metadata2 = tokenInfo.metadata) !== null && _tokenInfo$metadata2 !== void 0 && _tokenInfo$metadata2.netuid) {
|
|
124
|
-
var _tokenInfo$metadata3;
|
|
125
|
-
const {
|
|
126
|
-
accountHotKey,
|
|
127
|
-
isEnableTransferSubnet
|
|
128
|
-
} = await getAccountNetuidTokenInfo(from, tokenInfo, substrateApi);
|
|
129
|
-
const tokenNetuid = (_tokenInfo$metadata3 = tokenInfo.metadata) === null || _tokenInfo$metadata3 === void 0 ? void 0 : _tokenInfo$metadata3.netuid;
|
|
130
|
-
if (isEnableTransferSubnet && accountHotKey) {
|
|
131
|
-
transfer = api.tx.subtensorModule.transferStake(from, accountHotKey, tokenNetuid, tokenNetuid, value);
|
|
132
|
-
} else {
|
|
133
|
-
return [null, value];
|
|
134
|
-
}
|
|
135
132
|
}
|
|
136
133
|
return [transfer, transferAmount || value];
|
|
137
134
|
};
|
|
@@ -167,7 +164,6 @@ const getTransferMockTxFee = async (address, chainInfo, tokenInfo, api) => {
|
|
|
167
164
|
// estimate value
|
|
168
165
|
bounce: false // anyMode
|
|
169
166
|
});
|
|
170
|
-
|
|
171
167
|
estimatedFee = new _bignumber.default((await (0, _utils2.estimateTonTxFee)(tonApi, [mockMessage], mockWalletContract)).toString());
|
|
172
168
|
} else {
|
|
173
169
|
var _paymentInfo$partialF;
|
|
@@ -185,30 +181,10 @@ const getTransferMockTxFee = async (address, chainInfo, tokenInfo, api) => {
|
|
|
185
181
|
const paymentInfo = await (mockTx === null || mockTx === void 0 ? void 0 : mockTx.paymentInfo(address));
|
|
186
182
|
estimatedFee = new _bignumber.default((paymentInfo === null || paymentInfo === void 0 ? void 0 : (_paymentInfo$partialF = paymentInfo.partialFee) === null || _paymentInfo$partialF === void 0 ? void 0 : _paymentInfo$partialF.toString()) || '0'); // todo: should handle error case instead of setting fee to 0
|
|
187
183
|
}
|
|
188
|
-
|
|
189
184
|
return estimatedFee;
|
|
190
185
|
} catch (e) {
|
|
191
186
|
console.error('error mocking tx fee', e);
|
|
192
187
|
return new _bignumber.default(0);
|
|
193
188
|
}
|
|
194
189
|
};
|
|
195
|
-
exports.getTransferMockTxFee = getTransferMockTxFee;
|
|
196
|
-
const getAccountNetuidTokenInfo = async (address, tokenInfo, substrateApi) => {
|
|
197
|
-
var _tokenInfo$metadata4;
|
|
198
|
-
const tokenNetuid = (_tokenInfo$metadata4 = tokenInfo.metadata) === null || _tokenInfo$metadata4 === void 0 ? void 0 : _tokenInfo$metadata4.netuid;
|
|
199
|
-
if (!tokenNetuid) {
|
|
200
|
-
return {
|
|
201
|
-
isEnableTransferSubnet: false,
|
|
202
|
-
accountHotKey: undefined
|
|
203
|
-
};
|
|
204
|
-
}
|
|
205
|
-
const [isTransferToggle, rawStakeInfoForColdKey] = await Promise.all([substrateApi.api.query.subtensorModule.transferToggle(tokenNetuid), substrateApi.api.call.stakeInfoRuntimeApi.getStakeInfoForColdkey(address)]);
|
|
206
|
-
const isEnableTransferSubnet = isTransferToggle.toPrimitive();
|
|
207
|
-
const taoStakeInfos = rawStakeInfoForColdKey.toPrimitive();
|
|
208
|
-
const accountHotKey = taoStakeInfos.find(value => value.netuid === tokenNetuid);
|
|
209
|
-
return {
|
|
210
|
-
isEnableTransferSubnet,
|
|
211
|
-
accountHotKey: accountHotKey === null || accountHotKey === void 0 ? void 0 : accountHotKey.hotkey
|
|
212
|
-
};
|
|
213
|
-
};
|
|
214
|
-
exports.getAccountNetuidTokenInfo = getAccountNetuidTokenInfo;
|
|
190
|
+
exports.getTransferMockTxFee = getTransferMockTxFee;
|
|
@@ -64,7 +64,6 @@ async function createTonNativeTransaction(_ref2) {
|
|
|
64
64
|
value: (0, _core.fromNano)(value),
|
|
65
65
|
bounce: false // todo: check and update the send bounced logic
|
|
66
66
|
});
|
|
67
|
-
|
|
68
67
|
const messagePayload = (0, _utils.cellToBase64Str)((0, _utils.messageRelaxedToCell)(messages));
|
|
69
68
|
const estimateExternalFee = await (0, _utils.estimateTonTxFee)(tonApi, [messages], walletContract);
|
|
70
69
|
const transactionObject = {
|
|
@@ -119,8 +119,6 @@ const dryRunXcmExtrinsicV2 = async function (request) {
|
|
|
119
119
|
const originDryRunRs = dryRunResult.origin;
|
|
120
120
|
if (originDryRunRs.success) {
|
|
121
121
|
const {
|
|
122
|
-
assetHub,
|
|
123
|
-
bridgeHub,
|
|
124
122
|
destination,
|
|
125
123
|
hops
|
|
126
124
|
} = dryRunResult;
|
|
@@ -129,12 +127,9 @@ const dryRunXcmExtrinsicV2 = async function (request) {
|
|
|
129
127
|
return false;
|
|
130
128
|
}
|
|
131
129
|
}
|
|
132
|
-
if ((
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
return (0, _utils.isChainNotSupportDryRun)(destination.failureReason) || (0, _utils.isChainNotSupportPolkadotApi)(destination.failureReason);
|
|
136
|
-
}
|
|
137
|
-
return false;
|
|
130
|
+
if ((destination === null || destination === void 0 ? void 0 : destination.success) === false) {
|
|
131
|
+
// pass dry-run in these cases
|
|
132
|
+
return (0, _utils.isChainNotSupportDryRun)(destination.failureReason) || (0, _utils.isChainNotSupportPolkadotApi)(destination.failureReason);
|
|
138
133
|
}
|
|
139
134
|
return true;
|
|
140
135
|
}
|
|
@@ -18,7 +18,7 @@ var _util = require("@polkadot/util");
|
|
|
18
18
|
// Copyright 2019-2022 @subwallet/extension-base
|
|
19
19
|
// SPDX-License-Identifier: Apache-2.0
|
|
20
20
|
|
|
21
|
-
const version = '/
|
|
21
|
+
const version = '/v5';
|
|
22
22
|
const paraSpellApi = {
|
|
23
23
|
buildXcm: `${version}/x-transfer`,
|
|
24
24
|
feeXcm: `${version}/xcm-fee`,
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports._ZK_ASSET_PREFIX = exports._TRANSFER_CHAIN_GROUP = exports._SUBSTRATE_DEFAULT_INFLATION_PARAMS = exports._STAKING_ERA_LENGTH_MAP = exports._PURE_EVM_CHAINS = exports._PREDEFINED_SINGLE_MODES = exports._PARACHAIN_INFLATION_DISTRIBUTION = exports._NFT_CHAIN_GROUP = exports._MANTA_ZK_CHAIN_GROUP = exports._KNOWN_CHAIN_INFLATION_PARAMS = exports._GOVERNANCE_CHAIN_GROUP = exports._EXPECTED_BLOCK_TIME = exports._DEFAULT_MANTA_ZK_CHAIN = exports._DEFAULT_ACTIVE_CHAINS = exports._BTC_SERVICE_TOKEN = exports._BITCOIN_TESTNET_NAME = exports._BITCOIN_TESTNET_CHAIN_SLUG = exports._BITCOIN_NAME = exports._BITCOIN_CHAIN_SLUG = exports._BALANCE_LOCKED_ID_GROUP = exports._BALANCE_CHAIN_GROUP = exports._API_OPTIONS_CHAIN_GROUP = exports.LATEST_CHAIN_DATA_FETCHING_INTERVAL = exports.EVM_REFORMAT_DECIMALS = exports.EVM_PASS_CONNECT_STATUS = exports.API_CONNECT_TIMEOUT = exports.API_AUTO_CONNECT_MS = void 0;
|
|
6
|
+
exports._ZK_ASSET_PREFIX = exports._TRANSFER_CHAIN_GROUP = exports._SUBSTRATE_DEFAULT_INFLATION_PARAMS = exports._STAKING_ERA_LENGTH_MAP = exports._PURE_EVM_CHAINS = exports._PREDEFINED_SINGLE_MODES = exports._PARACHAIN_INFLATION_DISTRIBUTION = exports._NFT_CHAIN_GROUP = exports._MANTA_ZK_CHAIN_GROUP = exports._KNOWN_CHAIN_INFLATION_PARAMS = exports._GOVERNANCE_CHAIN_GROUP = exports._EXPECTED_BLOCK_TIME = exports._DEFAULT_MANTA_ZK_CHAIN = exports._DEFAULT_ACTIVE_CHAINS = exports._BTC_SERVICE_TOKEN = exports._BITCOIN_TESTNET_NAME = exports._BITCOIN_TESTNET_CHAIN_SLUG = exports._BITCOIN_NAME = exports._BITCOIN_CHAIN_SLUG = exports._BALANCE_LOCKED_ID_GROUP = exports._BALANCE_CHAIN_GROUP = exports._API_OPTIONS_CHAIN_GROUP = exports.USE_MULTILOCATION_INDEX = exports.LATEST_CHAIN_DATA_FETCHING_INTERVAL = exports.EVM_REFORMAT_DECIMALS = exports.EVM_PASS_CONNECT_STATUS = exports.API_CONNECT_TIMEOUT = exports.API_AUTO_CONNECT_MS = void 0;
|
|
7
7
|
var _chainList = require("@subwallet/chain-list");
|
|
8
8
|
var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
|
|
9
9
|
// Copyright 2019-2022 @subwallet/extension-base
|
|
@@ -47,7 +47,7 @@ const _BALANCE_CHAIN_GROUP = {
|
|
|
47
47
|
genshiro: ['genshiro_testnet', 'genshiro'],
|
|
48
48
|
equilibrium_parachain: ['equilibrium_parachain'],
|
|
49
49
|
bifrost: ['bifrost', 'acala', 'karura', 'acala_testnet', 'pioneer', 'bitcountry', 'bifrost_dot', 'hydradx_main', 'hydradx_rococo', 'pendulum', 'amplitude', 'continuum_network', 'truth_network', 'jamton', 'hydradx_hollarnet'],
|
|
50
|
-
statemine: ['statemine', 'astar', 'shiden', 'statemint', 'crabParachain', 'darwinia2', 'parallel', 'calamari', 'manta_network', 'rococo_assethub', 'liberlandTest', 'liberland', 'dentnet', 'pangolin', 'crust', 'phala', 'shibuya', 'dbcchain', 'westend_assethub', 'chainflip_assethub', 'origintrail', 'xode', 'paseo_assethub'],
|
|
50
|
+
statemine: ['statemine', 'astar', 'shiden', 'statemint', 'crabParachain', 'darwinia2', 'parallel', 'calamari', 'manta_network', 'rococo_assethub', 'liberlandTest', 'liberland', 'dentnet', 'pangolin', 'crust', 'phala', 'shibuya', 'dbcchain', 'westend_assethub', 'chainflip_assethub', 'origintrail', 'xode', 'paseo_assethub', 'energy_web_x'],
|
|
51
51
|
kusama: ['kusama', 'kintsugi', 'kintsugi_test', 'interlay', 'acala', 'statemint', 'karura', 'bifrost'],
|
|
52
52
|
// perhaps there are some runtime updates
|
|
53
53
|
centrifuge: ['centrifuge'],
|
|
@@ -306,17 +306,18 @@ const _TRANSFER_CHAIN_GROUP = {
|
|
|
306
306
|
kintsugi: ['kintsugi', 'kintsugi_test', 'interlay', 'mangatax_para'],
|
|
307
307
|
genshiro: ['genshiro_testnet', 'genshiro', 'equilibrium_parachain'],
|
|
308
308
|
bitcountry: ['pioneer', 'bitcountry'],
|
|
309
|
-
statemine: ['statemint', 'statemine', 'darwinia2', 'astar', 'shiden', 'shibuya', 'parallel', 'liberland', 'liberlandTest', 'dentnet', 'dbcchain', 'westend_assethub', 'chainflip_assethub', 'origintrail', 'xode', 'paseo_assethub'],
|
|
309
|
+
statemine: ['statemint', 'statemine', 'darwinia2', 'astar', 'shiden', 'shibuya', 'parallel', 'liberland', 'liberlandTest', 'dentnet', 'dbcchain', 'westend_assethub', 'chainflip_assethub', 'origintrail', 'xode', 'paseo_assethub', 'energy_web_x'],
|
|
310
310
|
riochain: ['riochain'],
|
|
311
311
|
sora_substrate: ['sora_substrate'],
|
|
312
312
|
avail: ['kate', 'goldberg_testnet'],
|
|
313
313
|
pendulum: ['pendulum', 'amplitude', 'amplitude_test', 'hydradx_main', 'bifrost', 'bifrost_dot', 'jamton', 'hydradx_hollarnet'],
|
|
314
314
|
centrifuge: ['centrifuge'],
|
|
315
315
|
disable_transfer: ['crab', 'pangolin'],
|
|
316
|
-
truth: ['truth_network']
|
|
317
|
-
bittensor: ['bittensor']
|
|
316
|
+
truth: ['truth_network']
|
|
318
317
|
};
|
|
319
318
|
exports._TRANSFER_CHAIN_GROUP = _TRANSFER_CHAIN_GROUP;
|
|
319
|
+
const USE_MULTILOCATION_INDEX = ['energy_web_x'];
|
|
320
|
+
exports.USE_MULTILOCATION_INDEX = USE_MULTILOCATION_INDEX;
|
|
320
321
|
const _MANTA_ZK_CHAIN_GROUP = ['calamari'];
|
|
321
322
|
exports._MANTA_ZK_CHAIN_GROUP = _MANTA_ZK_CHAIN_GROUP;
|
|
322
323
|
const _ZK_ASSET_PREFIX = 'zk';
|
|
@@ -26,6 +26,9 @@ class CardanoApi {
|
|
|
26
26
|
connectionStatusSubject = new _rxjs.BehaviorSubject(_types._ChainConnectionStatus.DISCONNECTED);
|
|
27
27
|
isApiReady = false;
|
|
28
28
|
isApiReadyOnce = false;
|
|
29
|
+
|
|
30
|
+
// todo: add api with interface BlockFrostAPI to remove isTestnet check
|
|
31
|
+
|
|
29
32
|
constructor(chainSlug, apiUrl, _ref) {
|
|
30
33
|
let {
|
|
31
34
|
isTestnet,
|
|
@@ -68,7 +71,6 @@ class CardanoApi {
|
|
|
68
71
|
this.apiUrl = apiUrl;
|
|
69
72
|
// this.api = this.createProvider();
|
|
70
73
|
}
|
|
71
|
-
|
|
72
74
|
async recoverConnect() {
|
|
73
75
|
await this.disconnect();
|
|
74
76
|
this.connect();
|
|
@@ -288,7 +288,6 @@ class SubstrateApi {
|
|
|
288
288
|
// this.apiDefaultTx = api.tx[defaultSection][defaultMethod];
|
|
289
289
|
// this.apiDefaultTxSudo = (api.tx.system && api.tx.system.setCode) || this.apiDefaultTx;
|
|
290
290
|
}
|
|
291
|
-
|
|
292
291
|
async makeRpcQuery(_ref) {
|
|
293
292
|
let {
|
|
294
293
|
args,
|
|
@@ -330,7 +329,6 @@ class SubstrateApi {
|
|
|
330
329
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
|
|
331
330
|
return (await this.api[section][module][method]()).toPrimitive(); // todo: improve this
|
|
332
331
|
}
|
|
333
|
-
|
|
334
332
|
if (isStateQuery) {
|
|
335
333
|
if (!this.api[section][module]) {
|
|
336
334
|
return undefined;
|
|
@@ -7,8 +7,7 @@ exports.getSubstrateConnectProvider = getSubstrateConnectProvider;
|
|
|
7
7
|
exports.relayChainSpecs = exports.paraChainSpecs = void 0;
|
|
8
8
|
var Sc = _interopRequireWildcard(require("@substrate/connect"));
|
|
9
9
|
var _rpcProvider = require("@polkadot/rpc-provider");
|
|
10
|
-
function
|
|
11
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
10
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
12
11
|
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
13
12
|
// SPDX-License-Identifier: Apache-2.0
|
|
14
13
|
|
|
@@ -30,7 +30,6 @@ async function checkSubstrateEndpoint(endpoint, timeout) {
|
|
|
30
30
|
await wsProvider.disconnect(); // disconnect from the endpoint after the health check is complete
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
-
|
|
34
33
|
async function checkEvmEndpoint(endpoint, timeout) {
|
|
35
34
|
try {
|
|
36
35
|
const web3 = new _web.default(endpoint);
|
|
@@ -20,7 +20,6 @@ function validateTokenHasValueByChain(chainAsset) {
|
|
|
20
20
|
}
|
|
21
21
|
return isTestnet !== chainAsset.hasValue; // todo: also check multichainAsset hasValue if has.
|
|
22
22
|
}
|
|
23
|
-
|
|
24
23
|
function validateNativeInfoByChain(chainAsset) {
|
|
25
24
|
var _chainInfo$evmInfo, _chainInfo$substrateI, _chainInfo$bitcoinInf, _chainInfo$evmInfo2, _chainInfo$substrateI2, _chainInfo$bitcoinInf2, _chainInfo$evmInfo3, _chainInfo$substrateI3, _chainInfo$bitcoinInf3;
|
|
26
25
|
const chainInfo = _chainList.ChainInfoMap[chainAsset.originChain];
|
|
@@ -55,6 +55,9 @@ class ChainService {
|
|
|
55
55
|
assetRegistry: {},
|
|
56
56
|
assetRefMap: {}
|
|
57
57
|
};
|
|
58
|
+
|
|
59
|
+
// to save chain, token settings from user
|
|
60
|
+
|
|
58
61
|
lockChainInfoMap = false; // prevent unwanted changes (edit, enable, disable) to chainInfoMap
|
|
59
62
|
|
|
60
63
|
get mantaPay() {
|
|
@@ -730,7 +733,6 @@ class ChainService {
|
|
|
730
733
|
.catch(e => console.error('Error enabling popular tokens:', e)); // Log error if enabling fails
|
|
731
734
|
}
|
|
732
735
|
}
|
|
733
|
-
|
|
734
736
|
handleLatestSufficientChains(latestSufficientChains) {
|
|
735
737
|
this.sufficientChainsSubject.next(latestSufficientChains);
|
|
736
738
|
this.logger.log('Finished updating latest supported sufficient chains');
|
|
@@ -1234,8 +1236,8 @@ class ChainService {
|
|
|
1234
1236
|
}
|
|
1235
1237
|
|
|
1236
1238
|
// Fill in the missing chainState and storageData (new chains never before seen)
|
|
1237
|
-
Object.entries(mergedChainInfoMap).forEach(
|
|
1238
|
-
let [slug, chainInfo] =
|
|
1239
|
+
Object.entries(mergedChainInfoMap).forEach(_ref0 => {
|
|
1240
|
+
let [slug, chainInfo] = _ref0;
|
|
1239
1241
|
if (!(slug in this.dataMap.chainStateMap)) {
|
|
1240
1242
|
this.dataMap.chainStateMap[slug] = {
|
|
1241
1243
|
currentProvider: Object.keys(chainInfo.providers)[0],
|
|
@@ -1346,8 +1348,8 @@ class ChainService {
|
|
|
1346
1348
|
// Fill out zk assets from finalAssetRegistry if not supported
|
|
1347
1349
|
if (!_utils2.MODULE_SUPPORT.MANTA_ZK) {
|
|
1348
1350
|
const zkAssets = [];
|
|
1349
|
-
Object.entries(finalAssetRegistry).forEach(
|
|
1350
|
-
let [slug, assets] =
|
|
1351
|
+
Object.entries(finalAssetRegistry).forEach(_ref1 => {
|
|
1352
|
+
let [slug, assets] = _ref1;
|
|
1351
1353
|
if ((0, _utils._isMantaZkAsset)(assets)) {
|
|
1352
1354
|
zkAssets.push(slug);
|
|
1353
1355
|
delete finalAssetRegistry[slug];
|
|
@@ -1380,7 +1382,18 @@ class ChainService {
|
|
|
1380
1382
|
|
|
1381
1383
|
// Enable chain if not before
|
|
1382
1384
|
if (!targetChainState.active) {
|
|
1385
|
+
var _currentAssetSettings;
|
|
1383
1386
|
targetChainState.active = true;
|
|
1387
|
+
|
|
1388
|
+
// enable native token
|
|
1389
|
+
const nativeAsset = this.getNativeTokenInfo(chainSlug);
|
|
1390
|
+
const currentAssetSettings = await this.getAssetSettings();
|
|
1391
|
+
if (!((_currentAssetSettings = currentAssetSettings[nativeAsset.slug]) !== null && _currentAssetSettings !== void 0 && _currentAssetSettings.visible)) {
|
|
1392
|
+
currentAssetSettings[nativeAsset.slug] = {
|
|
1393
|
+
visible: true
|
|
1394
|
+
};
|
|
1395
|
+
this.setAssetSettings(currentAssetSettings);
|
|
1396
|
+
}
|
|
1384
1397
|
}
|
|
1385
1398
|
|
|
1386
1399
|
// It auto detects the change of api url to create new instance or reuse existed one
|
|
@@ -1436,6 +1449,7 @@ class ChainService {
|
|
|
1436
1449
|
relaySlug: null,
|
|
1437
1450
|
hasNativeNft: false,
|
|
1438
1451
|
supportStaking: params.chainSpec.paraId === null,
|
|
1452
|
+
supportProxy: false,
|
|
1439
1453
|
supportSmartContract: null
|
|
1440
1454
|
};
|
|
1441
1455
|
} else if (params.chainSpec.evmChainId !== null) {
|
|
@@ -1884,27 +1898,6 @@ class ChainService {
|
|
|
1884
1898
|
});
|
|
1885
1899
|
this.setAssetSettings(assetSettings);
|
|
1886
1900
|
}
|
|
1887
|
-
async updatePriorityAssetsByChain(chainSlug, visible) {
|
|
1888
|
-
const currentAssetSettings = await this.getAssetSettings();
|
|
1889
|
-
const assetsByChain = this.getFungibleTokensByChain(chainSlug);
|
|
1890
|
-
const priorityTokensMap = this.priorityTokensSubject.value || {};
|
|
1891
|
-
const priorityTokensList = priorityTokensMap.token && typeof priorityTokensMap.token === 'object' ? Object.keys(priorityTokensMap.token) : [];
|
|
1892
|
-
for (const asset of Object.values(assetsByChain)) {
|
|
1893
|
-
if (visible) {
|
|
1894
|
-
const isPriorityToken = priorityTokensList.includes(asset.slug);
|
|
1895
|
-
if (isPriorityToken || (0, _utils._isNativeToken)(asset)) {
|
|
1896
|
-
currentAssetSettings[asset.slug] = {
|
|
1897
|
-
visible: true
|
|
1898
|
-
};
|
|
1899
|
-
}
|
|
1900
|
-
} else {
|
|
1901
|
-
currentAssetSettings[asset.slug] = {
|
|
1902
|
-
visible: false
|
|
1903
|
-
};
|
|
1904
|
-
}
|
|
1905
|
-
}
|
|
1906
|
-
this.setAssetSettings(currentAssetSettings);
|
|
1907
|
-
}
|
|
1908
1901
|
subscribeAssetSettings() {
|
|
1909
1902
|
return this.assetSettingSubject;
|
|
1910
1903
|
}
|