@subwallet/extension-base 1.3.29-1 → 1.3.31-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 +16 -4
- package/background/errors/SwapError.js +1 -1
- package/cjs/background/errors/SwapError.js +1 -1
- package/cjs/constants/blocked-actions.js +2 -2
- package/cjs/constants/paraspell-chain-map.js +13 -0
- package/cjs/constants/remind-notification-time.js +3 -3
- package/cjs/core/logic-validation/swap.js +63 -4
- package/cjs/core/logic-validation/transfer.js +13 -1
- package/cjs/core/substrate/xcm-parser.js +5 -1
- package/cjs/core/utils.js +36 -15
- package/cjs/koni/background/handlers/Extension.js +141 -172
- package/cjs/koni/background/handlers/State.js +8 -1
- package/cjs/packageInfo.js +1 -1
- package/cjs/services/balance-service/helpers/process.js +27 -0
- package/cjs/services/balance-service/index.js +9 -0
- package/cjs/services/balance-service/transfer/xcm/acrossBridge/index.js +229 -0
- package/cjs/services/balance-service/transfer/xcm/availBridge.js +6 -6
- package/cjs/services/balance-service/transfer/xcm/index.js +96 -7
- package/cjs/services/balance-service/transfer/xcm/utils.js +213 -0
- package/cjs/services/chain-service/constants.js +2 -4
- package/cjs/services/chain-service/index.js +71 -17
- package/cjs/services/chain-service/utils/patch.js +1 -1
- package/cjs/services/earning-service/handlers/base.js +6 -3
- package/cjs/services/earning-service/handlers/native-staking/base.js +4 -1
- package/cjs/services/earning-service/handlers/native-staking/dtao.js +68 -50
- package/cjs/services/earning-service/handlers/native-staking/tao.js +12 -2
- package/cjs/services/earning-service/handlers/special.js +18 -9
- package/cjs/services/earning-service/service.js +2 -1
- package/cjs/services/fee-service/utils/index.js +16 -4
- package/cjs/services/inapp-notification-service/index.js +19 -13
- package/cjs/services/keyring-service/context/handlers/Ledger.js +1 -1
- package/cjs/services/keyring-service/context/state.js +3 -0
- package/cjs/services/migration-service/scripts/DisableZeroBalanceTokens.js +60 -0
- package/cjs/services/migration-service/scripts/EnableChain.js +1 -1
- package/cjs/services/migration-service/scripts/index.js +3 -2
- package/cjs/services/swap-service/handler/asset-hub/handler.js +61 -314
- package/cjs/services/swap-service/handler/base-handler.js +406 -231
- package/cjs/services/swap-service/handler/chainflip-handler.js +18 -40
- package/cjs/services/swap-service/handler/hydradx-handler.js +77 -269
- package/cjs/services/swap-service/handler/simpleswap-handler.js +27 -48
- package/cjs/services/swap-service/handler/uniswap-handler.js +33 -54
- package/cjs/services/swap-service/index.js +154 -143
- package/cjs/services/swap-service/utils.js +107 -17
- package/cjs/services/transaction-service/index.js +1 -1
- package/cjs/services/transaction-service/utils.js +38 -14
- package/cjs/types/swap/index.js +13 -1
- package/cjs/utils/fee/transfer.js +52 -28
- package/cjs/utils/staticData/index.js +7 -2
- package/cjs/utils/swap.js +5 -1
- package/constants/blocked-actions.d.ts +1 -1
- package/constants/blocked-actions.js +1 -1
- package/constants/paraspell-chain-map.d.ts +1 -0
- package/constants/paraspell-chain-map.js +7 -0
- package/constants/remind-notification-time.d.ts +1 -1
- package/constants/remind-notification-time.js +1 -1
- package/core/logic-validation/swap.d.ts +15 -0
- package/core/logic-validation/swap.js +60 -4
- package/core/logic-validation/transfer.d.ts +1 -0
- package/core/logic-validation/transfer.js +12 -1
- package/core/substrate/xcm-parser.d.ts +1 -0
- package/core/substrate/xcm-parser.js +4 -1
- package/core/utils.d.ts +2 -2
- package/core/utils.js +36 -15
- package/koni/background/handlers/Extension.d.ts +1 -1
- package/koni/background/handlers/Extension.js +66 -98
- package/koni/background/handlers/State.d.ts +1 -0
- package/koni/background/handlers/State.js +7 -1
- package/package.json +23 -13
- package/packageInfo.js +1 -1
- package/services/balance-service/helpers/process.d.ts +2 -1
- package/services/balance-service/helpers/process.js +26 -0
- package/services/balance-service/index.js +11 -2
- package/services/balance-service/transfer/xcm/acrossBridge/index.d.ts +15 -0
- package/services/balance-service/transfer/xcm/acrossBridge/index.js +216 -0
- package/services/balance-service/transfer/xcm/availBridge.js +6 -6
- package/services/balance-service/transfer/xcm/index.d.ts +5 -1
- package/services/balance-service/transfer/xcm/index.js +85 -1
- package/services/balance-service/transfer/xcm/utils.d.ts +11 -0
- package/services/balance-service/transfer/xcm/utils.js +208 -0
- package/services/base/types.d.ts +0 -4
- package/services/chain-service/constants.d.ts +0 -1
- package/services/chain-service/constants.js +1 -2
- package/services/chain-service/index.d.ts +9 -2
- package/services/chain-service/index.js +72 -18
- package/services/chain-service/utils/patch.js +1 -1
- package/services/earning-service/handlers/base.d.ts +4 -3
- package/services/earning-service/handlers/base.js +6 -4
- package/services/earning-service/handlers/native-staking/base.js +4 -1
- package/services/earning-service/handlers/native-staking/dtao.d.ts +9 -6
- package/services/earning-service/handlers/native-staking/dtao.js +69 -48
- package/services/earning-service/handlers/native-staking/tao.js +12 -2
- package/services/earning-service/handlers/special.js +19 -10
- package/services/earning-service/service.d.ts +2 -1
- package/services/earning-service/service.js +2 -1
- package/services/fee-service/utils/index.d.ts +1 -0
- package/services/fee-service/utils/index.js +14 -4
- package/services/inapp-notification-service/index.js +13 -7
- package/services/keyring-service/context/handlers/Ledger.js +1 -1
- package/services/keyring-service/context/state.d.ts +1 -0
- package/services/keyring-service/context/state.js +3 -0
- package/services/migration-service/scripts/DisableZeroBalanceTokens.d.ts +4 -0
- package/services/migration-service/scripts/DisableZeroBalanceTokens.js +51 -0
- package/services/migration-service/scripts/EnableChain.js +1 -1
- package/services/migration-service/scripts/index.js +3 -2
- package/services/swap-service/handler/asset-hub/handler.d.ts +2 -9
- package/services/swap-service/handler/asset-hub/handler.js +64 -317
- package/services/swap-service/handler/base-handler.d.ts +6 -9
- package/services/swap-service/handler/base-handler.js +405 -230
- package/services/swap-service/handler/chainflip-handler.d.ts +2 -4
- package/services/swap-service/handler/chainflip-handler.js +15 -37
- package/services/swap-service/handler/hydradx-handler.d.ts +3 -10
- package/services/swap-service/handler/hydradx-handler.js +78 -270
- package/services/swap-service/handler/simpleswap-handler.d.ts +2 -4
- package/services/swap-service/handler/simpleswap-handler.js +24 -45
- package/services/swap-service/handler/uniswap-handler.d.ts +4 -6
- package/services/swap-service/handler/uniswap-handler.js +25 -46
- package/services/swap-service/index.d.ts +8 -14
- package/services/swap-service/index.js +141 -129
- package/services/swap-service/utils.d.ts +11 -3
- package/services/swap-service/utils.js +96 -15
- package/services/transaction-service/index.js +2 -2
- package/services/transaction-service/types.d.ts +3 -2
- package/services/transaction-service/utils.d.ts +1 -0
- package/services/transaction-service/utils.js +38 -15
- package/types/balance/transfer.d.ts +1 -0
- package/types/service-base.d.ts +2 -3
- package/types/swap/index.d.ts +25 -9
- package/types/swap/index.js +10 -0
- package/types/transaction/process.d.ts +19 -0
- package/types/transaction/request.d.ts +7 -0
- package/types/yield/actions/join/submit.d.ts +4 -1
- package/types/yield/actions/others.d.ts +2 -0
- package/utils/fee/transfer.d.ts +1 -0
- package/utils/fee/transfer.js +54 -30
- package/utils/staticData/index.d.ts +4 -1
- package/utils/staticData/index.js +5 -1
- package/utils/staticData/paraSpellChainMap.json +1 -0
- package/utils/swap.d.ts +3 -0
- package/utils/swap.js +3 -0
- package/cjs/services/swap-service/interface.js +0 -14
- package/services/swap-service/interface.d.ts +0 -9
- package/services/swap-service/interface.js +0 -8
|
@@ -15,7 +15,7 @@ import { AuthUrls } from '@subwallet/extension-base/services/request-service/typ
|
|
|
15
15
|
import { CrowdloanContributionsResponse } from '@subwallet/extension-base/services/subscan-service/types';
|
|
16
16
|
import { SWTransactionResponse, SWTransactionResult } from '@subwallet/extension-base/services/transaction-service/types';
|
|
17
17
|
import { WalletConnectNotSupportRequest, WalletConnectSessionRequest } from '@subwallet/extension-base/services/wallet-connect-service/types';
|
|
18
|
-
import { AccountChainType, AccountJson, AccountsWithCurrentAddress, AddressJson, BalanceJson, BaseRequestSign, BuyServiceInfo, BuyTokenInfo,
|
|
18
|
+
import { AccountChainType, AccountJson, AccountsWithCurrentAddress, AddressJson, BalanceJson, BaseRequestSign, BuyServiceInfo, BuyTokenInfo, CommonOptimalTransferPath, CurrentAccountInfo, EarningRewardHistoryItem, EarningRewardJson, EarningStatus, HandleYieldStepParams, InternalRequestSign, LeavePoolAdditionalData, NominationPoolInfo, OptimalYieldPath, OptimalYieldPathParams, RequestAccountBatchExportV2, RequestAccountCreateSuriV2, RequestAccountNameValidate, RequestAccountProxyEdit, RequestAccountProxyForget, RequestBatchJsonGetAccountInfo, RequestBatchRestoreV2, RequestBounceableValidate, RequestChangeAllowOneSign, RequestChangeTonWalletContractVersion, RequestCheckCrossChainTransfer, RequestCheckPublicAndSecretKey, RequestCheckTransfer, RequestCrossChainTransfer, RequestDeriveCreateMultiple, RequestDeriveCreateV3, RequestDeriveValidateV2, RequestEarlyValidateYield, RequestEarningSlippage, RequestExportAccountProxyMnemonic, RequestGetAllTonWalletContractVersion, RequestGetAmountForPair, RequestGetDeriveAccounts, RequestGetDeriveSuggestion, RequestGetTokensCanPayFee, RequestGetYieldPoolTargets, RequestInputAccountSubscribe, RequestJsonGetAccountInfo, RequestJsonRestoreV2, RequestMetadataHash, RequestMnemonicCreateV2, RequestMnemonicValidateV2, RequestPrivateKeyValidateV2, RequestShortenMetadata, RequestStakeCancelWithdrawal, RequestStakeClaimReward, RequestSubmitProcessTransaction, RequestSubscribeProcessById, RequestTransfer, RequestUnlockDotCheckCanMint, RequestUnlockDotSubscribeMintedData, RequestYieldLeave, RequestYieldStepSubmit, RequestYieldWithdrawal, ResponseAccountBatchExportV2, ResponseAccountCreateSuriV2, ResponseAccountNameValidate, ResponseBatchJsonGetAccountInfo, ResponseCheckPublicAndSecretKey, ResponseDeriveValidateV2, ResponseEarlyValidateYield, ResponseExportAccountProxyMnemonic, ResponseGetAllTonWalletContractVersion, ResponseGetDeriveAccounts, ResponseGetDeriveSuggestion, ResponseGetYieldPoolTargets, ResponseInputAccountSubscribe, ResponseJsonGetAccountInfo, ResponseMetadataHash, ResponseMnemonicCreateV2, ResponseMnemonicValidateV2, ResponsePrivateKeyValidateV2, ResponseShortenMetadata, ResponseSubscribeProcessAlive, ResponseSubscribeProcessById, StorageDataInterface, SubmitYieldStepData, SubnetYieldPositionInfo, SwapPair, SwapQuoteResponse, SwapRequest, SwapRequestResult, SwapRequestV2, SwapSubmitParams, SwapTxData, TokenSpendingApprovalParams, UnlockDotTransactionNft, UnstakingStatus, ValidateSwapProcessParams, ValidateYieldProcessParams, YieldPoolInfo, YieldPoolType, YieldPositionInfo } from '@subwallet/extension-base/types';
|
|
19
19
|
import { RequestSubmitTransfer, RequestSubscribeTransfer, ResponseSubscribeTransfer } from '@subwallet/extension-base/types/balance/transfer';
|
|
20
20
|
import { RequestClaimBridge } from '@subwallet/extension-base/types/bridge';
|
|
21
21
|
import { GetNotificationParams, RequestIsClaimedPolygonBridge, RequestSwitchStatusParams } from '@subwallet/extension-base/types/notification';
|
|
@@ -31,6 +31,7 @@ import { JsonRpcPayload, JsonRpcResponse } from 'web3-core-helpers';
|
|
|
31
31
|
import { ExtDef } from '@polkadot/types/extrinsic/signedExtensions/types';
|
|
32
32
|
import { SignerResult } from '@polkadot/types/types/extrinsic';
|
|
33
33
|
import { HexString } from '@polkadot/util/types';
|
|
34
|
+
import { EarningSlippageResult } from '../services/earning-service/handlers/native-staking/dtao';
|
|
34
35
|
import { TransactionWarning } from './warnings/TransactionWarning';
|
|
35
36
|
export declare enum RuntimeEnvironment {
|
|
36
37
|
Web = "Web",
|
|
@@ -1354,6 +1355,12 @@ export interface TokenPriorityDetails {
|
|
|
1354
1355
|
tokenGroup: Record<string, number>;
|
|
1355
1356
|
token: Record<string, number>;
|
|
1356
1357
|
}
|
|
1358
|
+
export interface SufficientChainsDetails {
|
|
1359
|
+
assetHubPallet: string[];
|
|
1360
|
+
assetsPallet: string[];
|
|
1361
|
+
foreignAssetsPallet: string[];
|
|
1362
|
+
assetRegistryPallet: string[];
|
|
1363
|
+
}
|
|
1357
1364
|
export interface RequestConnectWalletConnect {
|
|
1358
1365
|
uri: string;
|
|
1359
1366
|
}
|
|
@@ -1528,6 +1535,11 @@ export interface ResponseMigrateSoloAccount {
|
|
|
1528
1535
|
export interface RequestPingSession {
|
|
1529
1536
|
sessionId: string;
|
|
1530
1537
|
}
|
|
1538
|
+
export interface ExtrinsicsDataResponse {
|
|
1539
|
+
extrinsics: {
|
|
1540
|
+
id: string;
|
|
1541
|
+
}[];
|
|
1542
|
+
}
|
|
1531
1543
|
export declare type _Address = string;
|
|
1532
1544
|
export declare type _BalanceMetadata = unknown;
|
|
1533
1545
|
export interface KoniRequestSignatures {
|
|
@@ -1552,6 +1564,7 @@ export interface KoniRequestSignatures {
|
|
|
1552
1564
|
'pri(chainService.upsertChain)': [_NetworkUpsertParams, boolean];
|
|
1553
1565
|
'pri(chainService.enableChains)': [EnableMultiChainParams, boolean];
|
|
1554
1566
|
'pri(chainService.enableChain)': [EnableChainParams, boolean];
|
|
1567
|
+
'pri(chainService.enableChainWithPriorityAssets)': [EnableChainParams, boolean];
|
|
1555
1568
|
'pri(chainService.reconnectChain)': [string, boolean];
|
|
1556
1569
|
'pri(chainService.disableChains)': [string[], boolean];
|
|
1557
1570
|
'pri(chainService.disableChain)': [string, boolean];
|
|
@@ -1692,7 +1705,7 @@ export interface KoniRequestSignatures {
|
|
|
1692
1705
|
'pri(yield.withdraw.submit)': [RequestYieldWithdrawal, SWTransactionResponse];
|
|
1693
1706
|
'pri(yield.cancelWithdrawal.submit)': [RequestStakeCancelWithdrawal, SWTransactionResponse];
|
|
1694
1707
|
'pri(yield.claimReward.submit)': [RequestStakeClaimReward, SWTransactionResponse];
|
|
1695
|
-
'pri(yield.getEarningSlippage)': [RequestEarningSlippage,
|
|
1708
|
+
'pri(yield.getEarningSlippage)': [RequestEarningSlippage, EarningSlippageResult];
|
|
1696
1709
|
'pri(transaction.history.getSubscription)': [null, TransactionHistoryItem[], TransactionHistoryItem[]];
|
|
1697
1710
|
'pri(transaction.history.subscribe)': [RequestSubscribeHistory, ResponseSubscribeHistory, TransactionHistoryItem[]];
|
|
1698
1711
|
'pri(transfer.getMaxTransferable)': [RequestMaxTransferable, AmountData];
|
|
@@ -1784,9 +1797,8 @@ export interface KoniRequestSignatures {
|
|
|
1784
1797
|
'pri(database.setLocalStorage)': [StorageDataInterface, boolean];
|
|
1785
1798
|
'pri(database.getLocalStorage)': [string, string | null];
|
|
1786
1799
|
'pri(swapService.subscribePairs)': [null, SwapPair[], SwapPair[]];
|
|
1787
|
-
'pri(swapService.getOptimalProcessOnSelectQuote)': [OptimalSwapPathParamsV2, CommonOptimalSwapPath];
|
|
1788
1800
|
'pri(swapService.handleSwapRequest)': [SwapRequest, SwapRequestResult];
|
|
1789
|
-
'pri(swapService.handleSwapRequestV2)': [
|
|
1801
|
+
'pri(swapService.handleSwapRequestV2)': [SwapRequestV2, SwapRequestResult];
|
|
1790
1802
|
'pri(swapService.handleSwapStep)': [SwapSubmitParams, SWTransactionResponse];
|
|
1791
1803
|
'pri(swapService.getLatestQuote)': [SwapRequest, SwapQuoteResponse];
|
|
1792
1804
|
'pri(swapService.validateSwapProcess)': [ValidateSwapProcessParams, TransactionError[]];
|
|
@@ -5,7 +5,7 @@ import { SWError } from '@subwallet/extension-base/background/errors/SWError';
|
|
|
5
5
|
import { detectTranslate } from '@subwallet/extension-base/utils';
|
|
6
6
|
const defaultErrorMap = {
|
|
7
7
|
ERROR_FETCHING_QUOTE: {
|
|
8
|
-
message: detectTranslate('No swap quote found.
|
|
8
|
+
message: detectTranslate('No swap quote found. Change your network endpoint or adjust amount and try again'),
|
|
9
9
|
code: undefined
|
|
10
10
|
},
|
|
11
11
|
NOT_MEET_MIN_SWAP: {
|
|
@@ -11,7 +11,7 @@ var _utils = require("@subwallet/extension-base/utils");
|
|
|
11
11
|
|
|
12
12
|
const defaultErrorMap = {
|
|
13
13
|
ERROR_FETCHING_QUOTE: {
|
|
14
|
-
message: (0, _utils.detectTranslate)('No swap quote found.
|
|
14
|
+
message: (0, _utils.detectTranslate)('No swap quote found. Change your network endpoint or adjust amount and try again'),
|
|
15
15
|
code: undefined
|
|
16
16
|
},
|
|
17
17
|
NOT_MEET_MIN_SWAP: {
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.APP_VER = exports.APP_ENV = void 0;
|
|
7
7
|
exports.fetchBlockedConfigObjects = fetchBlockedConfigObjects;
|
|
8
|
-
exports.
|
|
8
|
+
exports.fetchLatestBlockedActionsAndFeatures = fetchLatestBlockedActionsAndFeatures;
|
|
9
9
|
exports.getPassConfigId = getPassConfigId;
|
|
10
10
|
var _extensionBase = require("@subwallet/extension-base");
|
|
11
11
|
var _utils = require("@subwallet/extension-base/utils");
|
|
@@ -99,7 +99,7 @@ function isPassVersion(versionStr, versionCondition) {
|
|
|
99
99
|
const versionConditionStr = versionCondition.trim();
|
|
100
100
|
return versionStr === versionConditionStr;
|
|
101
101
|
}
|
|
102
|
-
async function
|
|
102
|
+
async function fetchLatestBlockedActionsAndFeatures(ids) {
|
|
103
103
|
if (ids.length === 0) {
|
|
104
104
|
return [_staticData.staticData[_staticData.StaticKey.BLOCKED_ACTIONS_FEATURES]];
|
|
105
105
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.fetchParaSpellChainMap = fetchParaSpellChainMap;
|
|
7
|
+
var _utils = require("@subwallet/extension-base/utils");
|
|
8
|
+
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
9
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
10
|
+
|
|
11
|
+
async function fetchParaSpellChainMap() {
|
|
12
|
+
return await (0, _utils.fetchStaticData)('paraspell-chain-map');
|
|
13
|
+
}
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.fetchLatestRemindNotificationTime = void 0;
|
|
7
7
|
var _utils = require("@subwallet/extension-base/utils");
|
|
8
8
|
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
9
9
|
// SPDX-License-Identifier: Apache-2.0
|
|
10
10
|
|
|
11
|
-
const
|
|
11
|
+
const fetchLatestRemindNotificationTime = async () => {
|
|
12
12
|
return await (0, _utils.fetchStaticData)('config/remind-notification-time');
|
|
13
13
|
};
|
|
14
|
-
exports.
|
|
14
|
+
exports.fetchLatestRemindNotificationTime = fetchLatestRemindNotificationTime;
|
|
@@ -10,7 +10,10 @@ exports._getEarlyHydradxValidationError = _getEarlyHydradxValidationError;
|
|
|
10
10
|
exports._getSimpleSwapEarlyValidationError = _getSimpleSwapEarlyValidationError;
|
|
11
11
|
exports._validateBalanceToSwap = _validateBalanceToSwap;
|
|
12
12
|
exports._validateBalanceToSwapOnAssetHub = _validateBalanceToSwapOnAssetHub;
|
|
13
|
+
exports._validateBalanceToSwapV2 = _validateBalanceToSwapV2;
|
|
14
|
+
exports._validateQuoteV2 = _validateQuoteV2;
|
|
13
15
|
exports._validateSwapRecipient = _validateSwapRecipient;
|
|
16
|
+
exports._validateSwapRecipientV2 = _validateSwapRecipientV2;
|
|
14
17
|
var _SwapError = require("@subwallet/extension-base/background/errors/SwapError");
|
|
15
18
|
var _TransactionError = require("@subwallet/extension-base/background/errors/TransactionError");
|
|
16
19
|
var _utils = require("@subwallet/extension-base/services/chain-service/utils");
|
|
@@ -113,7 +116,7 @@ function _getChainflipEarlyValidationError(error, metadata) {
|
|
|
113
116
|
case _swap.SwapErrorType.UNKNOWN:
|
|
114
117
|
return new _SwapError.SwapError(error, `Undefined error. Check your Internet and ${metadata.chain.slug} connection or contact support`);
|
|
115
118
|
case _swap.SwapErrorType.ERROR_FETCHING_QUOTE:
|
|
116
|
-
return new _SwapError.SwapError(error, 'No swap quote found.
|
|
119
|
+
return new _SwapError.SwapError(error, 'No swap quote found. Change your network endpoint or adjust amount and try again');
|
|
117
120
|
default:
|
|
118
121
|
return new _SwapError.SwapError(error);
|
|
119
122
|
}
|
|
@@ -129,7 +132,7 @@ function _getEarlyHydradxValidationError(error, metadata) {
|
|
|
129
132
|
case _swap.SwapErrorType.UNKNOWN:
|
|
130
133
|
return new _SwapError.SwapError(error, `Undefined error. Check your Internet and ${metadata.chain.slug} connection or contact support`);
|
|
131
134
|
case _swap.SwapErrorType.ERROR_FETCHING_QUOTE:
|
|
132
|
-
return new _SwapError.SwapError(error, 'No swap quote found.
|
|
135
|
+
return new _SwapError.SwapError(error, 'No swap quote found. Change your network endpoint or adjust amount and try again');
|
|
133
136
|
default:
|
|
134
137
|
return new _SwapError.SwapError(error);
|
|
135
138
|
}
|
|
@@ -143,7 +146,7 @@ function _getEarlyAssetHubValidationError(error, metadata) {
|
|
|
143
146
|
case _swap.SwapErrorType.UNKNOWN:
|
|
144
147
|
return new _SwapError.SwapError(error, `Undefined error. Check your Internet and ${metadata.chain.slug} connection or contact support`);
|
|
145
148
|
case _swap.SwapErrorType.ERROR_FETCHING_QUOTE:
|
|
146
|
-
return new _SwapError.SwapError(error, 'No swap quote found.
|
|
149
|
+
return new _SwapError.SwapError(error, 'No swap quote found. Change your network endpoint or adjust amount and try again');
|
|
147
150
|
case _swap.SwapErrorType.MAKE_POOL_NOT_ENOUGH_EXISTENTIAL_DEPOSIT:
|
|
148
151
|
return new _SwapError.SwapError(error, 'You swap too much. It make pool not enough existential deposit');
|
|
149
152
|
// TODO: i18n this
|
|
@@ -172,8 +175,64 @@ function _getSimpleSwapEarlyValidationError(error, metadata) {
|
|
|
172
175
|
case _swap.SwapErrorType.UNKNOWN:
|
|
173
176
|
return new _SwapError.SwapError(error, `Undefined error. Check your Internet and ${metadata.chain.slug} connection or contact support`);
|
|
174
177
|
case _swap.SwapErrorType.ERROR_FETCHING_QUOTE:
|
|
175
|
-
return new _SwapError.SwapError(error, 'No swap quote found.
|
|
178
|
+
return new _SwapError.SwapError(error, 'No swap quote found. Change your network endpoint or adjust amount and try again');
|
|
176
179
|
default:
|
|
177
180
|
return new _SwapError.SwapError(error);
|
|
178
181
|
}
|
|
182
|
+
}
|
|
183
|
+
function _validateQuoteV2(selectedQuote) {
|
|
184
|
+
if (!selectedQuote) {
|
|
185
|
+
return new _TransactionError.TransactionError(_types.BasicTxErrorType.INTERNAL_ERROR);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
// Check swapQuote alive
|
|
189
|
+
if (selectedQuote.aliveUntil <= +Date.now()) {
|
|
190
|
+
return new _TransactionError.TransactionError(_swap.SwapErrorType.QUOTE_TIMEOUT);
|
|
191
|
+
}
|
|
192
|
+
return undefined;
|
|
193
|
+
}
|
|
194
|
+
function _validateBalanceToSwapV2(request) {
|
|
195
|
+
const {
|
|
196
|
+
chainInfo,
|
|
197
|
+
feeAmount,
|
|
198
|
+
feeToken,
|
|
199
|
+
feeTokenBalance,
|
|
200
|
+
fromToken,
|
|
201
|
+
fromTokenBalance,
|
|
202
|
+
minSwapAmount,
|
|
203
|
+
swapAmount
|
|
204
|
+
} = request;
|
|
205
|
+
const bnFromTokenBalance = (0, _bignumber.default)(fromTokenBalance);
|
|
206
|
+
if (new _bignumber.default(feeTokenBalance).lte(feeAmount)) {
|
|
207
|
+
return new _TransactionError.TransactionError(_types.BasicTxErrorType.NOT_ENOUGH_BALANCE, `You don't have enough ${feeToken.symbol} (${chainInfo.name}) to pay transaction fee`);
|
|
208
|
+
}
|
|
209
|
+
if (fromToken.slug === feeToken.slug) {
|
|
210
|
+
// todo: need review and refactor
|
|
211
|
+
if (bnFromTokenBalance.lte((0, _bignumber.default)(feeAmount).plus(swapAmount))) {
|
|
212
|
+
return new _TransactionError.TransactionError(_types.BasicTxErrorType.NOT_ENOUGH_BALANCE, `Insufficient balance. Deposit ${fromToken.symbol} and try again.`);
|
|
213
|
+
}
|
|
214
|
+
} else {
|
|
215
|
+
if (bnFromTokenBalance.lt(swapAmount)) {
|
|
216
|
+
return new _TransactionError.TransactionError(_types.BasicTxErrorType.NOT_ENOUGH_BALANCE, `Insufficient balance. Deposit ${fromToken.symbol} and try again.`);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
if (minSwapAmount) {
|
|
220
|
+
if (bnFromTokenBalance.lte(minSwapAmount)) {
|
|
221
|
+
const parsedMinSwapValue = (0, _utils2.formatNumber)(minSwapAmount, (0, _utils._getAssetDecimals)(fromToken));
|
|
222
|
+
return new _TransactionError.TransactionError(_swap.SwapErrorType.SWAP_NOT_ENOUGH_BALANCE, `Insufficient balance. You need more than ${parsedMinSwapValue} ${fromToken.symbol} to start swapping. Deposit ${fromToken.symbol} and try again.`); // todo: min swap or amount?
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
return undefined;
|
|
227
|
+
}
|
|
228
|
+
function _validateSwapRecipientV2(destChainInfo, recipient) {
|
|
229
|
+
if (!recipient) {
|
|
230
|
+
return undefined;
|
|
231
|
+
}
|
|
232
|
+
const isEvmAddress = (0, _utilCrypto.isEthereumAddress)(recipient);
|
|
233
|
+
const isEvmDestChain = (0, _utils._isChainEvmCompatible)(destChainInfo);
|
|
234
|
+
if (isEvmAddress && !isEvmDestChain || !isEvmAddress && isEvmDestChain) {
|
|
235
|
+
return new _TransactionError.TransactionError(_swap.SwapErrorType.INVALID_RECIPIENT);
|
|
236
|
+
}
|
|
237
|
+
return undefined;
|
|
179
238
|
}
|
|
@@ -13,6 +13,7 @@ exports.checkSupportForTransaction = checkSupportForTransaction;
|
|
|
13
13
|
exports.checkTonAddressBounceableAndAccountNotActive = checkTonAddressBounceableAndAccountNotActive;
|
|
14
14
|
exports.estimateFeeForTransaction = estimateFeeForTransaction;
|
|
15
15
|
exports.validateTransferRequest = validateTransferRequest;
|
|
16
|
+
exports.validateXcmMinAmountToMythos = validateXcmMinAmountToMythos;
|
|
16
17
|
exports.validateXcmTransferRequest = validateXcmTransferRequest;
|
|
17
18
|
var _TransactionError = require("@subwallet/extension-base/background/errors/TransactionError");
|
|
18
19
|
var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
|
|
@@ -330,7 +331,8 @@ async function estimateFeeForTransaction(validationResponse, transaction, chainI
|
|
|
330
331
|
if (transaction) {
|
|
331
332
|
try {
|
|
332
333
|
if ((0, _helpers.isSubstrateTransaction)(transaction)) {
|
|
333
|
-
|
|
334
|
+
var _validationResponse$x;
|
|
335
|
+
estimateFee.value = (_validationResponse$x = validationResponse.xcmFeeDryRun) !== null && _validationResponse$x !== void 0 ? _validationResponse$x : (await transaction.paymentInfo(validationResponse.address)).partialFee.toString();
|
|
334
336
|
} else if ((0, _helpers.isTonTransaction)(transaction)) {
|
|
335
337
|
estimateFee.value = transaction.estimateFee; // todo: might need to update logic estimate fee inside for future actions excluding normal transfer Ton and Jetton
|
|
336
338
|
} else if ((0, _helpers.isCardanoTransaction)(transaction)) {
|
|
@@ -458,4 +460,14 @@ function isTonAddressBounceable(address) {
|
|
|
458
460
|
async function isAccountActive(tonApi, address) {
|
|
459
461
|
const state = await tonApi.getAccountState(address);
|
|
460
462
|
return state === 'active';
|
|
463
|
+
}
|
|
464
|
+
function validateXcmMinAmountToMythos(destChain, destToken, amount) {
|
|
465
|
+
const MYTHOS_DESTINATION_FEE = '2500000000000000000';
|
|
466
|
+
const errorMsg = 'Enter an amount higher than 2.5 MYTH to pay cross-chain fee and avoid your MYTH being lost after the transaction';
|
|
467
|
+
if (destChain === 'mythos' && destToken === 'mythos-NATIVE-MYTH') {
|
|
468
|
+
if ((0, _bignumber.default)(amount).lte(MYTHOS_DESTINATION_FEE)) {
|
|
469
|
+
return new _TransactionError.TransactionError(_types.TransferTxErrorType.NOT_ENOUGH_VALUE, (0, _i18next.t)(errorMsg));
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
return undefined;
|
|
461
473
|
}
|
|
@@ -9,6 +9,7 @@ exports._getXcmDestWeight = _getXcmDestWeight;
|
|
|
9
9
|
exports._getXcmMultiAssets = _getXcmMultiAssets;
|
|
10
10
|
exports._getXcmMultiLocation = _getXcmMultiLocation;
|
|
11
11
|
exports._getXcmUnstableWarning = _getXcmUnstableWarning;
|
|
12
|
+
exports._isAcrossBridgeXcm = _isAcrossBridgeXcm;
|
|
12
13
|
exports._isAvailBridgeXcm = _isAvailBridgeXcm;
|
|
13
14
|
exports._isMythosFromHydrationToMythos = _isMythosFromHydrationToMythos;
|
|
14
15
|
exports._isPolygonBridgeXcm = _isPolygonBridgeXcm;
|
|
@@ -17,6 +18,7 @@ exports._isSnowBridgeXcm = _isSnowBridgeXcm;
|
|
|
17
18
|
exports._isXcmTransferUnstable = _isXcmTransferUnstable;
|
|
18
19
|
exports._isXcmWithinSameConsensus = _isXcmWithinSameConsensus;
|
|
19
20
|
var _chainList = require("@subwallet/chain-list");
|
|
21
|
+
var _acrossBridge = require("@subwallet/extension-base/services/balance-service/transfer/xcm/acrossBridge");
|
|
20
22
|
var _availBridge = require("@subwallet/extension-base/services/balance-service/transfer/xcm/availBridge");
|
|
21
23
|
var _polygonBridge = require("@subwallet/extension-base/services/balance-service/transfer/xcm/polygonBridge");
|
|
22
24
|
var _posBridge = require("@subwallet/extension-base/services/balance-service/transfer/xcm/posBridge");
|
|
@@ -145,7 +147,9 @@ function _isPolygonBridgeXcm(originChainInfo, destChainInfo) {
|
|
|
145
147
|
function _isPosBridgeXcm(originChainInfo, destChainInfo) {
|
|
146
148
|
return (0, _posBridge._isPosChainBridge)(originChainInfo.slug, destChainInfo.slug);
|
|
147
149
|
}
|
|
148
|
-
|
|
150
|
+
function _isAcrossBridgeXcm(originChainInfo, destChainInfo) {
|
|
151
|
+
return (0, _acrossBridge._isAcrossChainBridge)(originChainInfo.slug, destChainInfo.slug);
|
|
152
|
+
}
|
|
149
153
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
150
154
|
|
|
151
155
|
function _getMultiLocationParent(originChainInfo, isWithinSameConsensus) {
|
package/cjs/core/utils.js
CHANGED
|
@@ -20,7 +20,6 @@ var _types = require("@subwallet/chain-list/types");
|
|
|
20
20
|
var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
|
|
21
21
|
var _types2 = require("@subwallet/extension-base/core/substrate/types");
|
|
22
22
|
var _utils = require("@subwallet/extension-base/services/balance-service/helpers/subscribe/ton/utils");
|
|
23
|
-
var _constants = require("@subwallet/extension-base/services/chain-service/constants");
|
|
24
23
|
var _utils2 = require("@subwallet/extension-base/services/chain-service/utils");
|
|
25
24
|
var _utils3 = require("@subwallet/extension-base/utils");
|
|
26
25
|
var _keyring = require("@subwallet/keyring");
|
|
@@ -150,28 +149,50 @@ function _isSupportLedgerAccount(validateRecipientParams) {
|
|
|
150
149
|
}
|
|
151
150
|
return '';
|
|
152
151
|
}
|
|
153
|
-
const _isSufficientToken = async (tokenInfo, substrateApi) => {
|
|
154
|
-
|
|
155
|
-
if (
|
|
152
|
+
const _isSufficientToken = async (tokenInfo, substrateApi, sufficientChain) => {
|
|
153
|
+
var _tokenInfo$metadata;
|
|
154
|
+
if (tokenInfo.assetType !== _types._AssetType.NATIVE) {
|
|
156
155
|
const assetId = (0, _utils2._isBridgedToken)(tokenInfo) ? (0, _utils2._getXcmAssetMultilocation)(tokenInfo) : (0, _utils2._getTokenOnChainAssetId)(tokenInfo);
|
|
156
|
+
const chainSlug = tokenInfo.originChain;
|
|
157
157
|
const queryParams = {
|
|
158
158
|
section: 'query',
|
|
159
|
-
module: 'foreignAssets',
|
|
160
|
-
method: 'asset',
|
|
161
159
|
args: [assetId]
|
|
162
160
|
};
|
|
163
|
-
if (
|
|
161
|
+
if (sufficientChain.assetHubPallet.includes(chainSlug)) {
|
|
162
|
+
if (!(0, _utils2._isBridgedToken)(tokenInfo)) {
|
|
163
|
+
queryParams.module = 'assets';
|
|
164
|
+
} else {
|
|
165
|
+
queryParams.module = 'foreignAssets';
|
|
166
|
+
}
|
|
167
|
+
queryParams.method = 'asset';
|
|
168
|
+
}
|
|
169
|
+
if (sufficientChain.assetRegistryPallet.includes(chainSlug)) {
|
|
170
|
+
queryParams.module = 'assetRegistry';
|
|
171
|
+
queryParams.method = 'assets';
|
|
172
|
+
}
|
|
173
|
+
if (sufficientChain.assetsPallet.includes(chainSlug)) {
|
|
164
174
|
queryParams.module = 'assets';
|
|
175
|
+
queryParams.method = 'asset';
|
|
176
|
+
}
|
|
177
|
+
if (sufficientChain.foreignAssetsPallet.includes(chainSlug)) {
|
|
178
|
+
queryParams.module = 'foreignAsset';
|
|
179
|
+
queryParams.method = 'asset';
|
|
180
|
+
}
|
|
181
|
+
try {
|
|
182
|
+
if (queryParams.method && queryParams.module) {
|
|
183
|
+
const metadata = await substrateApi.makeRpcQuery(queryParams);
|
|
184
|
+
if ((metadata === null || metadata === void 0 ? void 0 : metadata.isSufficient) !== undefined) {
|
|
185
|
+
return metadata === null || metadata === void 0 ? void 0 : metadata.isSufficient;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
} catch (e) {
|
|
189
|
+
console.error(e);
|
|
165
190
|
}
|
|
166
|
-
const metadata = await substrateApi.makeRpcQuery(queryParams);
|
|
167
|
-
return metadata.isSufficient;
|
|
168
191
|
}
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
// }
|
|
174
|
-
|
|
192
|
+
if ((_tokenInfo$metadata = tokenInfo.metadata) !== null && _tokenInfo$metadata !== void 0 && _tokenInfo$metadata.isSufficient) {
|
|
193
|
+
var _tokenInfo$metadata2;
|
|
194
|
+
return (_tokenInfo$metadata2 = tokenInfo.metadata) === null || _tokenInfo$metadata2 === void 0 ? void 0 : _tokenInfo$metadata2.isSufficient;
|
|
195
|
+
}
|
|
175
196
|
return false;
|
|
176
197
|
};
|
|
177
198
|
exports._isSufficientToken = _isSufficientToken;
|