@subwallet/extension-base 1.2.8-1 → 1.2.10-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 +7 -3
- package/background/KoniTypes.js +1 -1
- package/cjs/background/KoniTypes.js +1 -1
- package/cjs/core/logic-validation/transfer.js +22 -2
- package/cjs/core/substrate/foreign-asset-pallet.js +16 -0
- package/cjs/core/substrate/xcm-parser.js +26 -4
- package/cjs/koni/api/contract-handler/evm/web3.js +58 -0
- package/cjs/{services/chain-service/helper → koni/api/contract-handler/utils}/index.js +19 -2
- package/cjs/koni/api/contract-handler/wasm/index.js +49 -0
- package/cjs/koni/api/nft/evm_nft/index.js +6 -6
- package/cjs/koni/api/nft/wasm_nft/index.js +16 -16
- package/cjs/koni/api/yield/helper/utils.js +1 -22
- package/cjs/koni/background/handlers/Extension.js +128 -64
- package/cjs/packageInfo.js +1 -1
- package/cjs/services/balance-service/helpers/index.js +11 -0
- package/cjs/services/balance-service/helpers/process.js +50 -0
- package/cjs/services/balance-service/helpers/subscribe/evm.js +11 -3
- package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +10 -24
- package/cjs/services/balance-service/index.js +20 -0
- package/cjs/{koni/api/tokens/evm/transfer.js → services/balance-service/transfer/smart-contract.js} +33 -38
- package/cjs/{koni/api/dotsama/transfer.js → services/balance-service/transfer/token.js} +3 -3
- package/cjs/{koni/api → services/balance-service/transfer}/xcm/index.js +26 -6
- package/cjs/{koni/api → services/balance-service/transfer}/xcm/polkadotXcm.js +2 -2
- package/cjs/services/balance-service/transfer/xcm/snowBridge.js +60 -0
- package/cjs/{koni/api → services/balance-service/transfer}/xcm/xTokens.js +1 -1
- package/cjs/{koni/api → services/balance-service/transfer}/xcm/xcmPallet.js +1 -1
- package/cjs/services/chain-service/handler/EvmChainHandler.js +3 -3
- package/cjs/services/chain-service/handler/SubstrateChainHandler.js +4 -4
- package/cjs/services/chain-service/health-check/utils/asset-info.js +18 -18
- package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +16 -35
- package/cjs/services/earning-service/handlers/special.js +1 -1
- package/cjs/services/history-service/subscan-history.js +1 -1
- package/cjs/services/swap-service/handler/base-handler.js +3 -2
- package/cjs/services/swap-service/handler/chainflip-handler.js +10 -9
- package/cjs/services/swap-service/handler/hydradx-handler.js +12 -11
- package/cjs/services/swap-service/index.js +3 -2
- package/cjs/services/swap-service/utils.js +1 -13
- package/cjs/services/transaction-service/index.js +2 -2
- package/cjs/types/service-base.js +30 -1
- package/cjs/types/swap/index.js +0 -4
- package/cjs/utils/eth/parseTransaction/index.js +10 -10
- package/core/logic-validation/transfer.d.ts +1 -1
- package/core/logic-validation/transfer.js +22 -3
- package/core/substrate/foreign-asset-pallet.d.ts +8 -0
- package/core/substrate/foreign-asset-pallet.js +9 -0
- package/core/substrate/xcm-parser.d.ts +3 -1
- package/core/substrate/xcm-parser.js +25 -5
- package/koni/api/contract-handler/evm/web3.d.ts +8 -0
- package/koni/api/contract-handler/evm/web3.js +45 -0
- package/{services/chain-service/helper → koni/api/contract-handler/utils}/index.d.ts +4 -0
- package/{services/chain-service/helper → koni/api/contract-handler/utils}/index.js +15 -1
- package/koni/api/contract-handler/utils/snowbridge_gateway_abi.json +1122 -0
- package/koni/api/{tokens → contract-handler}/wasm/index.d.ts +0 -2
- package/koni/api/{tokens → contract-handler}/wasm/index.js +1 -25
- package/koni/api/nft/evm_nft/index.js +1 -1
- package/koni/api/nft/wasm_nft/index.js +2 -2
- package/koni/api/yield/helper/utils.d.ts +1 -5
- package/koni/api/yield/helper/utils.js +0 -16
- package/koni/background/handlers/Extension.d.ts +2 -0
- package/koni/background/handlers/Extension.js +82 -18
- package/package.json +85 -79
- package/packageInfo.js +1 -1
- package/services/balance-service/helpers/index.d.ts +1 -0
- package/services/balance-service/helpers/index.js +2 -1
- package/services/balance-service/helpers/process.d.ts +13 -0
- package/services/balance-service/helpers/process.js +43 -0
- package/services/balance-service/helpers/subscribe/evm.js +11 -3
- package/services/balance-service/helpers/subscribe/substrate/index.js +11 -25
- package/services/balance-service/index.d.ts +3 -0
- package/services/balance-service/index.js +21 -1
- package/services/balance-service/transfer/smart-contract.d.ts +7 -0
- package/{koni/api/tokens/evm/transfer.js → services/balance-service/transfer/smart-contract.js} +28 -31
- package/{koni/api/dotsama/transfer.js → services/balance-service/transfer/token.js} +4 -4
- package/{koni/api → services/balance-service/transfer}/xcm/index.d.ts +9 -3
- package/{koni/api → services/balance-service/transfer}/xcm/index.js +21 -3
- package/{koni/api → services/balance-service/transfer}/xcm/polkadotXcm.js +3 -3
- package/services/balance-service/transfer/xcm/snowBridge.d.ts +4 -0
- package/services/balance-service/transfer/xcm/snowBridge.js +54 -0
- package/{koni/api → services/balance-service/transfer}/xcm/xTokens.js +1 -1
- package/{koni/api → services/balance-service/transfer}/xcm/xcmPallet.js +1 -1
- package/services/chain-service/handler/EvmChainHandler.js +1 -1
- package/services/chain-service/handler/SubstrateChainHandler.js +2 -2
- package/services/chain-service/health-check/utils/asset-info.js +3 -3
- package/services/earning-service/handlers/liquid-staking/stella-swap.js +16 -35
- package/services/earning-service/handlers/special.js +1 -1
- package/services/history-service/subscan-history.js +1 -1
- package/services/swap-service/handler/base-handler.d.ts +5 -5
- package/services/swap-service/handler/base-handler.js +4 -3
- package/services/swap-service/handler/chainflip-handler.d.ts +4 -4
- package/services/swap-service/handler/chainflip-handler.js +7 -6
- package/services/swap-service/handler/hydradx-handler.d.ts +6 -6
- package/services/swap-service/handler/hydradx-handler.js +12 -11
- package/services/swap-service/index.d.ts +3 -2
- package/services/swap-service/index.js +4 -3
- package/services/swap-service/utils.d.ts +1 -3
- package/services/swap-service/utils.js +1 -11
- package/services/transaction-service/index.js +2 -2
- package/types/service-base.d.ts +31 -3
- package/types/service-base.js +23 -1
- package/types/swap/index.d.ts +8 -30
- package/types/swap/index.js +0 -4
- package/types/yield/actions/join/submit.d.ts +7 -4
- package/utils/eth/parseTransaction/index.js +1 -1
- package/cjs/koni/api/tokens/evm/balance.js +0 -18
- package/cjs/koni/api/tokens/evm/web3.js +0 -17
- package/cjs/koni/api/tokens/index.js +0 -17
- package/cjs/koni/api/tokens/wasm/index.js +0 -74
- package/koni/api/tokens/evm/balance.d.ts +0 -2
- package/koni/api/tokens/evm/balance.js +0 -12
- package/koni/api/tokens/evm/transfer.d.ts +0 -17
- package/koni/api/tokens/evm/web3.d.ts +0 -3
- package/koni/api/tokens/evm/web3.js +0 -9
- package/koni/api/tokens/index.d.ts +0 -1
- package/koni/api/tokens/index.js +0 -11
- /package/cjs/koni/api/{tokens → contract-handler}/wasm/utils.js +0 -0
- /package/cjs/{koni/api → services/balance-service/transfer}/xcm/utils.js +0 -0
- /package/{services/chain-service/helper → koni/api/contract-handler/utils}/azero_domain_registry_abi.json +0 -0
- /package/{services/chain-service/helper → koni/api/contract-handler/utils}/erc20_abi.json +0 -0
- /package/{services/chain-service/helper → koni/api/contract-handler/utils}/erc721_abi.json +0 -0
- /package/{services/chain-service/helper → koni/api/contract-handler/utils}/neuroguns_psp34_abi.json +0 -0
- /package/{services/chain-service/helper → koni/api/contract-handler/utils}/pink_psp34_abi.json +0 -0
- /package/{services/chain-service/helper → koni/api/contract-handler/utils}/psp22_abi.json +0 -0
- /package/{services/chain-service/helper → koni/api/contract-handler/utils}/psp34_abi.json +0 -0
- /package/{services/chain-service/helper → koni/api/contract-handler/utils}/test_erc721_abi.json +0 -0
- /package/koni/api/{tokens → contract-handler}/wasm/utils.d.ts +0 -0
- /package/koni/api/{tokens → contract-handler}/wasm/utils.js +0 -0
- /package/{koni/api/dotsama/transfer.d.ts → services/balance-service/transfer/token.d.ts} +0 -0
- /package/{koni/api → services/balance-service/transfer}/xcm/polkadotXcm.d.ts +0 -0
- /package/{koni/api → services/balance-service/transfer}/xcm/utils.d.ts +0 -0
- /package/{koni/api → services/balance-service/transfer}/xcm/utils.js +0 -0
- /package/{koni/api → services/balance-service/transfer}/xcm/xTokens.d.ts +0 -0
- /package/{koni/api → services/balance-service/transfer}/xcm/xcmPallet.d.ts +0 -0
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { _SubstrateApi } from '@subwallet/extension-base/services/chain-service/types';
|
|
2
1
|
import { ApiPromise } from '@polkadot/api';
|
|
3
2
|
import { ContractPromise } from '@polkadot/api-contract';
|
|
4
3
|
export declare function getPSP22ContractPromise(apiPromise: ApiPromise, contractAddress: string): ContractPromise;
|
|
@@ -7,4 +6,3 @@ export declare function isNeurogunNft(contractAddress: string): boolean;
|
|
|
7
6
|
export declare function isAzeroDomainNft(contractAddress: string): boolean;
|
|
8
7
|
export declare function getPSP34ContractPromise(apiPromise: ApiPromise, contractAddress: string): ContractPromise;
|
|
9
8
|
export declare function getTokenUriMethod(contractAddress: string): string;
|
|
10
|
-
export declare function getPSP34TransferExtrinsic(networkKey: string, substrateApi: _SubstrateApi, senderAddress: string, recipientAddress: string, params: Record<string, any>): Promise<import("@polkadot/api-base/types").SubmittableExtrinsic<"promise", import("@polkadot/types/types").ISubmittableResult> | null>;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
// Copyright 2019-2022 @subwallet/extension-base
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
|
-
import {
|
|
5
|
-
import { _AZERO_DOMAIN_REGISTRY_ABI, _NEUROGUNS_PSP34_ABI, _PINK_PSP34_ABI, _PSP22_ABI, _PSP34_ABI } from '@subwallet/extension-base/services/chain-service/helper';
|
|
4
|
+
import { _AZERO_DOMAIN_REGISTRY_ABI, _NEUROGUNS_PSP34_ABI, _PINK_PSP34_ABI, _PSP22_ABI, _PSP34_ABI } from '@subwallet/extension-base/koni/api/contract-handler/utils';
|
|
6
5
|
import { ContractPromise } from '@polkadot/api-contract';
|
|
7
6
|
export function getPSP22ContractPromise(apiPromise, contractAddress) {
|
|
8
7
|
return new ContractPromise(apiPromise, _PSP22_ABI, contractAddress);
|
|
@@ -36,27 +35,4 @@ export function getTokenUriMethod(contractAddress) {
|
|
|
36
35
|
return 'tokenUri';
|
|
37
36
|
}
|
|
38
37
|
return 'psp34Traits::tokenUri';
|
|
39
|
-
}
|
|
40
|
-
const mustFormatNumberReg = /^-?[0-9][0-9,.]+$/;
|
|
41
|
-
export async function getPSP34TransferExtrinsic(networkKey, substrateApi, senderAddress, recipientAddress, params) {
|
|
42
|
-
const contractAddress = params.contractAddress;
|
|
43
|
-
const onChainOption = params.onChainOption;
|
|
44
|
-
for (const [key, value] of Object.entries(onChainOption)) {
|
|
45
|
-
if (mustFormatNumberReg.test(value)) {
|
|
46
|
-
onChainOption[key] = value.replaceAll(',', '');
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
try {
|
|
50
|
-
const contractPromise = getPSP34ContractPromise(substrateApi.api, contractAddress);
|
|
51
|
-
// @ts-ignore
|
|
52
|
-
const gasLimit = await getWasmContractGasLimit(substrateApi.api, senderAddress, 'psp34::transfer', contractPromise, {}, [recipientAddress, onChainOption, {}]);
|
|
53
|
-
|
|
54
|
-
// @ts-ignore
|
|
55
|
-
return contractPromise.tx['psp34::transfer']({
|
|
56
|
-
gasLimit
|
|
57
|
-
}, recipientAddress, onChainOption, {});
|
|
58
|
-
} catch (e) {
|
|
59
|
-
console.debug(e);
|
|
60
|
-
return null;
|
|
61
|
-
}
|
|
62
38
|
}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
4
|
import { _AssetType } from '@subwallet/chain-list/types';
|
|
5
|
+
import { _ERC721_ABI } from '@subwallet/extension-base/koni/api/contract-handler/utils';
|
|
5
6
|
import { getRandomIpfsGateway } from '@subwallet/extension-base/koni/api/nft/config';
|
|
6
7
|
import { BaseNftApi } from '@subwallet/extension-base/koni/api/nft/nft';
|
|
7
|
-
import { _ERC721_ABI } from '@subwallet/extension-base/services/chain-service/helper';
|
|
8
8
|
import { _getContractAddressOfToken } from '@subwallet/extension-base/services/chain-service/utils';
|
|
9
9
|
import { isUrl } from '@subwallet/extension-base/utils';
|
|
10
10
|
import { isEthereumAddress } from '@polkadot/util-crypto';
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
4
|
import { _AssetType } from '@subwallet/chain-list/types';
|
|
5
|
+
import { getPSP34ContractPromise, getTokenUriMethod, isAzeroDomainNft, isPinkRoboNft } from '@subwallet/extension-base/koni/api/contract-handler/wasm';
|
|
6
|
+
import { getDefaultWeightV2 } from '@subwallet/extension-base/koni/api/contract-handler/wasm/utils';
|
|
5
7
|
import { AZERO_DOMAIN_CONTRACTS } from '@subwallet/extension-base/koni/api/dotsama/domain';
|
|
6
8
|
import { BaseNftApi } from '@subwallet/extension-base/koni/api/nft/nft';
|
|
7
9
|
import { collectionApiFromArtZero, collectionDetailApiFromArtZero, externalUrlOnArtZero, ipfsApiFromArtZero, itemImageApiFromArtZero } from '@subwallet/extension-base/koni/api/nft/wasm_nft/utils';
|
|
8
|
-
import { getPSP34ContractPromise, getTokenUriMethod, isAzeroDomainNft, isPinkRoboNft } from '@subwallet/extension-base/koni/api/tokens/wasm';
|
|
9
|
-
import { getDefaultWeightV2 } from '@subwallet/extension-base/koni/api/tokens/wasm/utils';
|
|
10
10
|
import { _getContractAddressOfToken } from '@subwallet/extension-base/services/chain-service/utils';
|
|
11
11
|
import { isUrl } from '@subwallet/extension-base/utils';
|
|
12
12
|
import { isEthereumAddress } from '@polkadot/util-crypto';
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import { _ChainAsset } from '@subwallet/chain-list/types';
|
|
2
2
|
import { ExtrinsicType } from '@subwallet/extension-base/background/KoniTypes';
|
|
3
|
-
import {
|
|
4
|
-
export declare const syntheticSelectedValidators: string[];
|
|
5
|
-
export declare function calculateAlternativeFee(feeInfo: RuntimeDispatchInfo): number;
|
|
6
|
-
export declare const DEFAULT_YIELD_FIRST_STEP: YieldStepDetail;
|
|
3
|
+
import { SpecialYieldPoolInfo } from '@subwallet/extension-base/types';
|
|
7
4
|
export declare const YIELD_EXTRINSIC_TYPES: ExtrinsicType[];
|
|
8
5
|
export declare const YIELD_POOL_STAT_REFRESH_INTERVAL = 90000;
|
|
9
|
-
export declare const YIELD_POOL_MIN_AMOUNT_PERCENT: Record<string, number>;
|
|
10
6
|
export declare function convertDerivativeToOriginToken(amount: string, poolInfo: SpecialYieldPoolInfo, derivativeTokenInfo: _ChainAsset, originTokenInfo: _ChainAsset): string;
|
|
@@ -3,26 +3,10 @@
|
|
|
3
3
|
|
|
4
4
|
import { ExtrinsicType } from '@subwallet/extension-base/background/KoniTypes';
|
|
5
5
|
import { _getAssetDecimals } from '@subwallet/extension-base/services/chain-service/utils';
|
|
6
|
-
import { YieldStepType } from '@subwallet/extension-base/types';
|
|
7
6
|
import { BN_TEN } from '@subwallet/extension-base/utils';
|
|
8
7
|
import BigN from 'bignumber.js';
|
|
9
|
-
export const syntheticSelectedValidators = ['15MLn9YQaHZ4GMkhK3qXqR5iGGSdULyJ995ctjeBgFRseyi6', '1REAJ1k691g5Eqqg9gL7vvZCBG7FCCZ8zgQkZWd4va5ESih', '1yGJ3h7TQuJWLYSsUVPZbM8aR8UsQXCqMvrFx5Fn1ktiAmq', '16GDRhRYxk42paoK6TfHAqWej8PdDDUwdDazjv4bAn4KGNeb', '13Ybj8CPEArUee78DxUAP9yX3ABmFNVQME1ZH4w8HVncHGzc', '14yx4vPAACZRhoDQm1dyvXD3QdRQyCRRCe5tj1zPomhhS29a', '14Vh8S1DzzycngbAB9vqEgPFR9JpSvmF1ezihTUES1EaHAV', '153YD8ZHD9dRh82U419bSCB5SzWhbdAFzjj4NtA5pMazR2yC', '1LUckyocmz9YzeQZHVpBvYYRGXb3rnSm2tvfz79h3G3JDgP', '14oRE62MB1SWR6h5RTx3GY5HK2oZipi1Gp3zdiLwVYLfEyRZ', '1cFsLn7o74nmjbRyDtMAnMpQMc5ZLsjgCSz9Np2mcejUK83', '15ZvLonEseaWZNy8LDkXXj3Y8bmAjxCjwvpy4pXWSL4nGSBs', '1NebF2xZHb4TJJpiqZZ3reeTo8dZov6LZ49qZqcHHbsmHfo', '1HmAqbBRrWvsqbLkvpiVDkdA2PcctUE5JUe3qokEh1FN455', '15tfUt4iQNjMyhZiJGBf4EpETE2KqtW1nfJwbBT1MvWjvcK9', '12RXTLiaYh59PokjZVhQvKzcfBEB5CvDnjKKUmDUotzcTH3S'];
|
|
10
|
-
export function calculateAlternativeFee(feeInfo) {
|
|
11
|
-
return feeInfo.partialFee;
|
|
12
|
-
}
|
|
13
|
-
export const DEFAULT_YIELD_FIRST_STEP = {
|
|
14
|
-
id: 0,
|
|
15
|
-
name: 'Fill information',
|
|
16
|
-
type: YieldStepType.DEFAULT
|
|
17
|
-
};
|
|
18
8
|
export const YIELD_EXTRINSIC_TYPES = [ExtrinsicType.MINT_VDOT, ExtrinsicType.MINT_LDOT, ExtrinsicType.MINT_SDOT, ExtrinsicType.MINT_QDOT, ExtrinsicType.MINT_STDOT, ExtrinsicType.REDEEM_QDOT, ExtrinsicType.REDEEM_SDOT, ExtrinsicType.REDEEM_VDOT, ExtrinsicType.REDEEM_LDOT, ExtrinsicType.REDEEM_STDOT, ExtrinsicType.STAKING_JOIN_POOL, ExtrinsicType.STAKING_CLAIM_REWARD, ExtrinsicType.STAKING_LEAVE_POOL, ExtrinsicType.STAKING_POOL_WITHDRAW];
|
|
19
9
|
export const YIELD_POOL_STAT_REFRESH_INTERVAL = 90000;
|
|
20
|
-
export const YIELD_POOL_MIN_AMOUNT_PERCENT = {
|
|
21
|
-
DOT___acala_liquid_staking: 0.98,
|
|
22
|
-
DOT___bifrost_liquid_staking: 0.99,
|
|
23
|
-
DOT___parallel_liquid_staking: 0.97,
|
|
24
|
-
default: 0.98
|
|
25
|
-
};
|
|
26
10
|
export function convertDerivativeToOriginToken(amount, poolInfo, derivativeTokenInfo, originTokenInfo) {
|
|
27
11
|
var _poolInfo$statistic, _poolInfo$statistic$a;
|
|
28
12
|
const derivativeDecimals = _getAssetDecimals(derivativeTokenInfo);
|
|
@@ -124,6 +124,8 @@ export default class KoniExtension {
|
|
|
124
124
|
private subscribeStaking;
|
|
125
125
|
private subscribeHistory;
|
|
126
126
|
private subscribeHistoryByChainAndAddress;
|
|
127
|
+
private getOptimalTransferProcess;
|
|
128
|
+
private approveSpending;
|
|
127
129
|
private makeTransfer;
|
|
128
130
|
private makeCrossChainTransfer;
|
|
129
131
|
private evmNftSubmitTransaction;
|
|
@@ -9,21 +9,23 @@ import { createSubscription } from '@subwallet/extension-base/background/handler
|
|
|
9
9
|
import { AccountExternalErrorCode, BasicTxErrorType, CampaignDataType, ChainType, ExternalRequestPromiseStatus, ExtrinsicType, MantaPayEnableMessage, StakingTxErrorType, StakingType } from '@subwallet/extension-base/background/KoniTypes';
|
|
10
10
|
import { ALL_ACCOUNT_KEY, ALL_GENESIS_HASH, LATEST_SESSION, XCM_FEE_RATIO } from '@subwallet/extension-base/constants';
|
|
11
11
|
import { additionalValidateTransfer, additionalValidateXcmTransfer, validateTransferRequest, validateXcmTransferRequest } from '@subwallet/extension-base/core/logic-validation/transfer';
|
|
12
|
+
import { _isSnowBridgeXcm } from '@subwallet/extension-base/core/substrate/xcm-parser';
|
|
12
13
|
import { ALLOWED_PATH } from '@subwallet/extension-base/defaults';
|
|
14
|
+
import { getERC20SpendingApprovalTx } from '@subwallet/extension-base/koni/api/contract-handler/evm/web3';
|
|
15
|
+
import { isSnowBridgeGatewayContract } from '@subwallet/extension-base/koni/api/contract-handler/utils';
|
|
13
16
|
import { resolveAzeroAddressToDomain, resolveAzeroDomainToAddress } from '@subwallet/extension-base/koni/api/dotsama/domain';
|
|
14
17
|
import { parseSubstrateTransaction } from '@subwallet/extension-base/koni/api/dotsama/parseTransaction';
|
|
15
|
-
import { createTransferExtrinsic, getTransferMockTxFee } from '@subwallet/extension-base/koni/api/dotsama/transfer';
|
|
16
18
|
import { getNftTransferExtrinsic, isRecipientSelf } from '@subwallet/extension-base/koni/api/nft/transfer';
|
|
17
19
|
import { getBondingExtrinsic, getCancelWithdrawalExtrinsic, getClaimRewardExtrinsic, getNominationPoolsInfo, getUnbondingExtrinsic, getValidatorsInfo, validateBondingCondition, validateUnbondingCondition } from '@subwallet/extension-base/koni/api/staking/bonding';
|
|
18
20
|
import { getTuringCancelCompoundingExtrinsic, getTuringCompoundExtrinsic } from '@subwallet/extension-base/koni/api/staking/bonding/paraChain';
|
|
19
21
|
import { getPoolingBondingExtrinsic, getPoolingUnbondingExtrinsic, validatePoolBondingCondition, validateRelayUnbondingCondition } from '@subwallet/extension-base/koni/api/staking/bonding/relayChain';
|
|
20
|
-
import { getERC20TransactionObject, getERC721Transaction, getEVMTransactionObject } from '@subwallet/extension-base/koni/api/tokens/evm/transfer';
|
|
21
|
-
import { getPSP34TransferExtrinsic } from '@subwallet/extension-base/koni/api/tokens/wasm';
|
|
22
|
-
import { createXcmExtrinsic, getXcmMockTxFee } from '@subwallet/extension-base/koni/api/xcm';
|
|
23
22
|
import { YIELD_EXTRINSIC_TYPES } from '@subwallet/extension-base/koni/api/yield/helper/utils';
|
|
23
|
+
import { getERC20TransactionObject, getERC721Transaction, getEVMTransactionObject, getPSP34TransferExtrinsic } from '@subwallet/extension-base/services/balance-service/transfer/smart-contract';
|
|
24
|
+
import { createTransferExtrinsic, getTransferMockTxFee } from '@subwallet/extension-base/services/balance-service/transfer/token';
|
|
25
|
+
import { createSnowBridgeExtrinsic, createXcmExtrinsic, getXcmMockTxFee } from '@subwallet/extension-base/services/balance-service/transfer/xcm';
|
|
24
26
|
import { _API_OPTIONS_CHAIN_GROUP, _DEFAULT_MANTA_ZK_CHAIN, _MANTA_ZK_CHAIN_GROUP, _ZK_ASSET_PREFIX } from '@subwallet/extension-base/services/chain-service/constants';
|
|
25
27
|
import { _ChainConnectionStatus } from '@subwallet/extension-base/services/chain-service/types';
|
|
26
|
-
import { _getAssetDecimals, _getAssetSymbol, _getChainNativeTokenBasicInfo, _getContractAddressOfToken, _getEvmChainId, _getSubstrateGenesisHash, _isAssetSmartContractNft, _isChainEvmCompatible, _isCustomAsset, _isLocalToken, _isMantaZkAsset, _isNativeToken, _isTokenEvmSmartContract, _isTokenTransferredByEvm } from '@subwallet/extension-base/services/chain-service/utils';
|
|
28
|
+
import { _getAssetDecimals, _getAssetSymbol, _getChainNativeTokenBasicInfo, _getContractAddressOfToken, _getEvmChainId, _getSubstrateGenesisHash, _isAssetSmartContractNft, _isChainEvmCompatible, _isCustomAsset, _isLocalToken, _isMantaZkAsset, _isNativeToken, _isPureEvmChain, _isTokenEvmSmartContract, _isTokenTransferredByEvm } from '@subwallet/extension-base/services/chain-service/utils';
|
|
27
29
|
import { EXTENSION_REQUEST_URL } from '@subwallet/extension-base/services/request-service/constants';
|
|
28
30
|
import { DEFAULT_AUTO_LOCK_TIME } from '@subwallet/extension-base/services/setting-service/constants';
|
|
29
31
|
import { WALLET_CONNECT_EIP155_NAMESPACE } from '@subwallet/extension-base/services/wallet-connect-service/constants';
|
|
@@ -1541,6 +1543,38 @@ export default class KoniExtension {
|
|
|
1541
1543
|
items: subscribeHistoriesResponse.value
|
|
1542
1544
|
};
|
|
1543
1545
|
}
|
|
1546
|
+
async getOptimalTransferProcess(params) {
|
|
1547
|
+
return this.#koniState.balanceService.getOptimalTransferProcess(params);
|
|
1548
|
+
}
|
|
1549
|
+
async approveSpending(params) {
|
|
1550
|
+
const {
|
|
1551
|
+
amount,
|
|
1552
|
+
chain,
|
|
1553
|
+
contractAddress,
|
|
1554
|
+
owner,
|
|
1555
|
+
spenderAddress
|
|
1556
|
+
} = params;
|
|
1557
|
+
if (!isSnowBridgeGatewayContract(spenderAddress)) {
|
|
1558
|
+
throw new Error('Only SnowBridge is supported'); // todo: support all ERC20 spending approval
|
|
1559
|
+
}
|
|
1560
|
+
|
|
1561
|
+
const evmApi = this.#koniState.getEvmApi(chain);
|
|
1562
|
+
const transactionConfig = await getERC20SpendingApprovalTx(spenderAddress, owner, contractAddress, evmApi, amount);
|
|
1563
|
+
return this.#koniState.transactionService.handleTransaction({
|
|
1564
|
+
errors: [],
|
|
1565
|
+
warnings: [],
|
|
1566
|
+
address: owner,
|
|
1567
|
+
chain,
|
|
1568
|
+
chainType: ChainType.EVM,
|
|
1569
|
+
transferNativeAmount: '0',
|
|
1570
|
+
transaction: transactionConfig,
|
|
1571
|
+
data: params,
|
|
1572
|
+
resolveOnDone: true,
|
|
1573
|
+
// todo: double-check this for other transactions
|
|
1574
|
+
extrinsicType: ExtrinsicType.TOKEN_SPENDING_APPROVAL,
|
|
1575
|
+
isTransferAll: false
|
|
1576
|
+
});
|
|
1577
|
+
}
|
|
1544
1578
|
async makeTransfer(inputData) {
|
|
1545
1579
|
const {
|
|
1546
1580
|
from,
|
|
@@ -1667,19 +1701,33 @@ export default class KoniExtension {
|
|
|
1667
1701
|
if (errors.length > 0) {
|
|
1668
1702
|
return this.#koniState.transactionService.generateBeforeHandleResponseErrors(errors);
|
|
1669
1703
|
}
|
|
1704
|
+
const chainInfoMap = this.#koniState.getChainInfoMap();
|
|
1705
|
+
const isFromSnowBridgeXcm = _isPureEvmChain(chainInfoMap[originNetworkKey]) && _isSnowBridgeXcm(chainInfoMap[originNetworkKey], chainInfoMap[destinationNetworkKey]);
|
|
1670
1706
|
let additionalValidator;
|
|
1671
1707
|
let eventsHandler;
|
|
1672
1708
|
if (fromKeyPair && destinationTokenInfo) {
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1709
|
+
if (isFromSnowBridgeXcm) {
|
|
1710
|
+
const evmApi = this.#koniState.getEvmApi(originNetworkKey);
|
|
1711
|
+
extrinsic = await createSnowBridgeExtrinsic({
|
|
1712
|
+
destinationTokenInfo,
|
|
1713
|
+
originTokenInfo,
|
|
1714
|
+
sendingValue: value,
|
|
1715
|
+
sender: from,
|
|
1716
|
+
recipient: to,
|
|
1717
|
+
chainInfoMap,
|
|
1718
|
+
evmApi
|
|
1719
|
+
});
|
|
1720
|
+
} else {
|
|
1721
|
+
const substrateApi = this.#koniState.getSubstrateApi(originNetworkKey);
|
|
1722
|
+
extrinsic = await createXcmExtrinsic({
|
|
1723
|
+
destinationTokenInfo,
|
|
1724
|
+
originTokenInfo,
|
|
1725
|
+
sendingValue: value,
|
|
1726
|
+
recipient: to,
|
|
1727
|
+
chainInfoMap,
|
|
1728
|
+
substrateApi
|
|
1729
|
+
});
|
|
1730
|
+
}
|
|
1683
1731
|
additionalValidator = async inputTransaction => {
|
|
1684
1732
|
const {
|
|
1685
1733
|
value: senderTransferable
|
|
@@ -1688,7 +1736,19 @@ export default class KoniExtension {
|
|
|
1688
1736
|
networkKey: originNetworkKey,
|
|
1689
1737
|
token: originTokenInfo.slug
|
|
1690
1738
|
});
|
|
1691
|
-
const
|
|
1739
|
+
const isSnowBridge = _isSnowBridgeXcm(chainInfoMap[originNetworkKey], chainInfoMap[destinationNetworkKey]);
|
|
1740
|
+
let recipientNativeBalance = '0';
|
|
1741
|
+
if (isSnowBridge) {
|
|
1742
|
+
const {
|
|
1743
|
+
value
|
|
1744
|
+
} = await this.getAddressTransferableBalance({
|
|
1745
|
+
address: to,
|
|
1746
|
+
networkKey: destinationNetworkKey,
|
|
1747
|
+
extrinsicType: ExtrinsicType.TRANSFER_BALANCE
|
|
1748
|
+
});
|
|
1749
|
+
recipientNativeBalance = value;
|
|
1750
|
+
}
|
|
1751
|
+
const [warning, error] = additionalValidateXcmTransfer(originTokenInfo, destinationTokenInfo, value, senderTransferable, recipientNativeBalance, chainInfoMap[destinationNetworkKey], isSnowBridge);
|
|
1692
1752
|
error && inputTransaction.errors.push(error);
|
|
1693
1753
|
warning && inputTransaction.warnings.push(warning);
|
|
1694
1754
|
};
|
|
@@ -1716,7 +1776,7 @@ export default class KoniExtension {
|
|
|
1716
1776
|
transaction: extrinsic,
|
|
1717
1777
|
data: inputData,
|
|
1718
1778
|
extrinsicType: ExtrinsicType.TRANSFER_XCM,
|
|
1719
|
-
chainType: ChainType.SUBSTRATE,
|
|
1779
|
+
chainType: !isFromSnowBridgeXcm ? ChainType.SUBSTRATE : ChainType.EVM,
|
|
1720
1780
|
transferNativeAmount: _isNativeToken(originTokenInfo) ? value : '0',
|
|
1721
1781
|
ignoreWarnings: inputData.transferAll,
|
|
1722
1782
|
isTransferAll: inputData.transferAll,
|
|
@@ -1926,7 +1986,7 @@ export default class KoniExtension {
|
|
|
1926
1986
|
const isPSP34 = params === null || params === void 0 ? void 0 : params.isPsp34;
|
|
1927
1987
|
const networkKey = params === null || params === void 0 ? void 0 : params.networkKey;
|
|
1928
1988
|
const apiProps = this.#koniState.getSubstrateApi(networkKey);
|
|
1929
|
-
const extrinsic = !isPSP34 ? await getNftTransferExtrinsic(networkKey, apiProps, senderAddress, recipientAddress, params || {}) : await getPSP34TransferExtrinsic(
|
|
1989
|
+
const extrinsic = !isPSP34 ? await getNftTransferExtrinsic(networkKey, apiProps, senderAddress, recipientAddress, params || {}) : await getPSP34TransferExtrinsic(apiProps, senderAddress, recipientAddress, params || {});
|
|
1930
1990
|
|
|
1931
1991
|
// this.addContact(recipientAddress);
|
|
1932
1992
|
|
|
@@ -4324,6 +4384,10 @@ export default class KoniExtension {
|
|
|
4324
4384
|
return await this.makeTransfer(request);
|
|
4325
4385
|
case 'pri(accounts.crossChainTransfer)':
|
|
4326
4386
|
return await this.makeCrossChainTransfer(request);
|
|
4387
|
+
case 'pri(accounts.getOptimalTransferProcess)':
|
|
4388
|
+
return await this.getOptimalTransferProcess(request);
|
|
4389
|
+
case 'pri(accounts.approveSpending)':
|
|
4390
|
+
return await this.approveSpending(request);
|
|
4327
4391
|
|
|
4328
4392
|
/// Sign QR
|
|
4329
4393
|
case 'pri(qr.transaction.parse.substrate)':
|
package/package.json
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"./cjs/detectPackage.js"
|
|
18
18
|
],
|
|
19
19
|
"type": "module",
|
|
20
|
-
"version": "1.2.
|
|
20
|
+
"version": "1.2.10-0",
|
|
21
21
|
"main": "./cjs/index.js",
|
|
22
22
|
"module": "./index.js",
|
|
23
23
|
"types": "./index.d.ts",
|
|
@@ -144,6 +144,11 @@
|
|
|
144
144
|
"require": "./cjs/core/logic-validation/transfer.js",
|
|
145
145
|
"default": "./core/logic-validation/transfer.js"
|
|
146
146
|
},
|
|
147
|
+
"./core/substrate/foreign-asset-pallet": {
|
|
148
|
+
"types": "./core/substrate/foreign-asset-pallet.d.ts",
|
|
149
|
+
"require": "./cjs/core/substrate/foreign-asset-pallet.js",
|
|
150
|
+
"default": "./core/substrate/foreign-asset-pallet.js"
|
|
151
|
+
},
|
|
147
152
|
"./core/substrate/nominationpools-pallet": {
|
|
148
153
|
"types": "./core/substrate/nominationpools-pallet.d.ts",
|
|
149
154
|
"require": "./cjs/core/substrate/nominationpools-pallet.js",
|
|
@@ -179,6 +184,35 @@
|
|
|
179
184
|
"require": "./cjs/koni/api/coingecko.js",
|
|
180
185
|
"default": "./koni/api/coingecko.js"
|
|
181
186
|
},
|
|
187
|
+
"./koni/api/contract-handler/evm/web3": {
|
|
188
|
+
"types": "./koni/api/contract-handler/evm/web3.d.ts",
|
|
189
|
+
"require": "./cjs/koni/api/contract-handler/evm/web3.js",
|
|
190
|
+
"default": "./koni/api/contract-handler/evm/web3.js"
|
|
191
|
+
},
|
|
192
|
+
"./koni/api/contract-handler/utils": {
|
|
193
|
+
"types": "./koni/api/contract-handler/utils/index.d.ts",
|
|
194
|
+
"require": "./cjs/koni/api/contract-handler/utils/index.js",
|
|
195
|
+
"default": "./koni/api/contract-handler/utils/index.js"
|
|
196
|
+
},
|
|
197
|
+
"./koni/api/contract-handler/utils/azero_domain_registry_abi.json": "./koni/api/contract-handler/utils/azero_domain_registry_abi.json",
|
|
198
|
+
"./koni/api/contract-handler/utils/erc20_abi.json": "./koni/api/contract-handler/utils/erc20_abi.json",
|
|
199
|
+
"./koni/api/contract-handler/utils/erc721_abi.json": "./koni/api/contract-handler/utils/erc721_abi.json",
|
|
200
|
+
"./koni/api/contract-handler/utils/neuroguns_psp34_abi.json": "./koni/api/contract-handler/utils/neuroguns_psp34_abi.json",
|
|
201
|
+
"./koni/api/contract-handler/utils/pink_psp34_abi.json": "./koni/api/contract-handler/utils/pink_psp34_abi.json",
|
|
202
|
+
"./koni/api/contract-handler/utils/psp22_abi.json": "./koni/api/contract-handler/utils/psp22_abi.json",
|
|
203
|
+
"./koni/api/contract-handler/utils/psp34_abi.json": "./koni/api/contract-handler/utils/psp34_abi.json",
|
|
204
|
+
"./koni/api/contract-handler/utils/snowbridge_gateway_abi.json": "./koni/api/contract-handler/utils/snowbridge_gateway_abi.json",
|
|
205
|
+
"./koni/api/contract-handler/utils/test_erc721_abi.json": "./koni/api/contract-handler/utils/test_erc721_abi.json",
|
|
206
|
+
"./koni/api/contract-handler/wasm": {
|
|
207
|
+
"types": "./koni/api/contract-handler/wasm/index.d.ts",
|
|
208
|
+
"require": "./cjs/koni/api/contract-handler/wasm/index.js",
|
|
209
|
+
"default": "./koni/api/contract-handler/wasm/index.js"
|
|
210
|
+
},
|
|
211
|
+
"./koni/api/contract-handler/wasm/utils": {
|
|
212
|
+
"types": "./koni/api/contract-handler/wasm/utils.d.ts",
|
|
213
|
+
"require": "./cjs/koni/api/contract-handler/wasm/utils.js",
|
|
214
|
+
"default": "./koni/api/contract-handler/wasm/utils.js"
|
|
215
|
+
},
|
|
182
216
|
"./koni/api/donate": {
|
|
183
217
|
"types": "./koni/api/donate.d.ts",
|
|
184
218
|
"require": "./cjs/koni/api/donate.js",
|
|
@@ -199,11 +233,6 @@
|
|
|
199
233
|
"require": "./cjs/koni/api/dotsama/parseTransaction.js",
|
|
200
234
|
"default": "./koni/api/dotsama/parseTransaction.js"
|
|
201
235
|
},
|
|
202
|
-
"./koni/api/dotsama/transfer": {
|
|
203
|
-
"types": "./koni/api/dotsama/transfer.d.ts",
|
|
204
|
-
"require": "./cjs/koni/api/dotsama/transfer.js",
|
|
205
|
-
"default": "./koni/api/dotsama/transfer.js"
|
|
206
|
-
},
|
|
207
236
|
"./koni/api/dotsama/typeRegistry": {
|
|
208
237
|
"types": "./koni/api/dotsama/typeRegistry.d.ts",
|
|
209
238
|
"require": "./cjs/koni/api/dotsama/typeRegistry.js",
|
|
@@ -394,61 +423,6 @@
|
|
|
394
423
|
"require": "./cjs/koni/api/subquery/subquery.js",
|
|
395
424
|
"default": "./koni/api/subquery/subquery.js"
|
|
396
425
|
},
|
|
397
|
-
"./koni/api/tokens": {
|
|
398
|
-
"types": "./koni/api/tokens/index.d.ts",
|
|
399
|
-
"require": "./cjs/koni/api/tokens/index.js",
|
|
400
|
-
"default": "./koni/api/tokens/index.js"
|
|
401
|
-
},
|
|
402
|
-
"./koni/api/tokens/evm/balance": {
|
|
403
|
-
"types": "./koni/api/tokens/evm/balance.d.ts",
|
|
404
|
-
"require": "./cjs/koni/api/tokens/evm/balance.js",
|
|
405
|
-
"default": "./koni/api/tokens/evm/balance.js"
|
|
406
|
-
},
|
|
407
|
-
"./koni/api/tokens/evm/transfer": {
|
|
408
|
-
"types": "./koni/api/tokens/evm/transfer.d.ts",
|
|
409
|
-
"require": "./cjs/koni/api/tokens/evm/transfer.js",
|
|
410
|
-
"default": "./koni/api/tokens/evm/transfer.js"
|
|
411
|
-
},
|
|
412
|
-
"./koni/api/tokens/evm/web3": {
|
|
413
|
-
"types": "./koni/api/tokens/evm/web3.d.ts",
|
|
414
|
-
"require": "./cjs/koni/api/tokens/evm/web3.js",
|
|
415
|
-
"default": "./koni/api/tokens/evm/web3.js"
|
|
416
|
-
},
|
|
417
|
-
"./koni/api/tokens/wasm": {
|
|
418
|
-
"types": "./koni/api/tokens/wasm/index.d.ts",
|
|
419
|
-
"require": "./cjs/koni/api/tokens/wasm/index.js",
|
|
420
|
-
"default": "./koni/api/tokens/wasm/index.js"
|
|
421
|
-
},
|
|
422
|
-
"./koni/api/tokens/wasm/utils": {
|
|
423
|
-
"types": "./koni/api/tokens/wasm/utils.d.ts",
|
|
424
|
-
"require": "./cjs/koni/api/tokens/wasm/utils.js",
|
|
425
|
-
"default": "./koni/api/tokens/wasm/utils.js"
|
|
426
|
-
},
|
|
427
|
-
"./koni/api/xcm": {
|
|
428
|
-
"types": "./koni/api/xcm/index.d.ts",
|
|
429
|
-
"require": "./cjs/koni/api/xcm/index.js",
|
|
430
|
-
"default": "./koni/api/xcm/index.js"
|
|
431
|
-
},
|
|
432
|
-
"./koni/api/xcm/polkadotXcm": {
|
|
433
|
-
"types": "./koni/api/xcm/polkadotXcm.d.ts",
|
|
434
|
-
"require": "./cjs/koni/api/xcm/polkadotXcm.js",
|
|
435
|
-
"default": "./koni/api/xcm/polkadotXcm.js"
|
|
436
|
-
},
|
|
437
|
-
"./koni/api/xcm/utils": {
|
|
438
|
-
"types": "./koni/api/xcm/utils.d.ts",
|
|
439
|
-
"require": "./cjs/koni/api/xcm/utils.js",
|
|
440
|
-
"default": "./koni/api/xcm/utils.js"
|
|
441
|
-
},
|
|
442
|
-
"./koni/api/xcm/xcmPallet": {
|
|
443
|
-
"types": "./koni/api/xcm/xcmPallet.d.ts",
|
|
444
|
-
"require": "./cjs/koni/api/xcm/xcmPallet.js",
|
|
445
|
-
"default": "./koni/api/xcm/xcmPallet.js"
|
|
446
|
-
},
|
|
447
|
-
"./koni/api/xcm/xTokens": {
|
|
448
|
-
"types": "./koni/api/xcm/xTokens.d.ts",
|
|
449
|
-
"require": "./cjs/koni/api/xcm/xTokens.js",
|
|
450
|
-
"default": "./koni/api/xcm/xTokens.js"
|
|
451
|
-
},
|
|
452
426
|
"./koni/api/yield/helper/utils": {
|
|
453
427
|
"types": "./koni/api/yield/helper/utils.d.ts",
|
|
454
428
|
"require": "./cjs/koni/api/yield/helper/utils.js",
|
|
@@ -560,6 +534,11 @@
|
|
|
560
534
|
"require": "./cjs/services/balance-service/helpers/group.js",
|
|
561
535
|
"default": "./services/balance-service/helpers/group.js"
|
|
562
536
|
},
|
|
537
|
+
"./services/balance-service/helpers/process": {
|
|
538
|
+
"types": "./services/balance-service/helpers/process.d.ts",
|
|
539
|
+
"require": "./cjs/services/balance-service/helpers/process.js",
|
|
540
|
+
"default": "./services/balance-service/helpers/process.js"
|
|
541
|
+
},
|
|
563
542
|
"./services/balance-service/helpers/subscribe": {
|
|
564
543
|
"types": "./services/balance-service/helpers/subscribe/index.d.ts",
|
|
565
544
|
"require": "./cjs/services/balance-service/helpers/subscribe/index.js",
|
|
@@ -580,6 +559,46 @@
|
|
|
580
559
|
"require": "./cjs/services/balance-service/helpers/subscribe/substrate/equilibrium.js",
|
|
581
560
|
"default": "./services/balance-service/helpers/subscribe/substrate/equilibrium.js"
|
|
582
561
|
},
|
|
562
|
+
"./services/balance-service/transfer/smart-contract": {
|
|
563
|
+
"types": "./services/balance-service/transfer/smart-contract.d.ts",
|
|
564
|
+
"require": "./cjs/services/balance-service/transfer/smart-contract.js",
|
|
565
|
+
"default": "./services/balance-service/transfer/smart-contract.js"
|
|
566
|
+
},
|
|
567
|
+
"./services/balance-service/transfer/token": {
|
|
568
|
+
"types": "./services/balance-service/transfer/token.d.ts",
|
|
569
|
+
"require": "./cjs/services/balance-service/transfer/token.js",
|
|
570
|
+
"default": "./services/balance-service/transfer/token.js"
|
|
571
|
+
},
|
|
572
|
+
"./services/balance-service/transfer/xcm": {
|
|
573
|
+
"types": "./services/balance-service/transfer/xcm/index.d.ts",
|
|
574
|
+
"require": "./cjs/services/balance-service/transfer/xcm/index.js",
|
|
575
|
+
"default": "./services/balance-service/transfer/xcm/index.js"
|
|
576
|
+
},
|
|
577
|
+
"./services/balance-service/transfer/xcm/polkadotXcm": {
|
|
578
|
+
"types": "./services/balance-service/transfer/xcm/polkadotXcm.d.ts",
|
|
579
|
+
"require": "./cjs/services/balance-service/transfer/xcm/polkadotXcm.js",
|
|
580
|
+
"default": "./services/balance-service/transfer/xcm/polkadotXcm.js"
|
|
581
|
+
},
|
|
582
|
+
"./services/balance-service/transfer/xcm/snowBridge": {
|
|
583
|
+
"types": "./services/balance-service/transfer/xcm/snowBridge.d.ts",
|
|
584
|
+
"require": "./cjs/services/balance-service/transfer/xcm/snowBridge.js",
|
|
585
|
+
"default": "./services/balance-service/transfer/xcm/snowBridge.js"
|
|
586
|
+
},
|
|
587
|
+
"./services/balance-service/transfer/xcm/utils": {
|
|
588
|
+
"types": "./services/balance-service/transfer/xcm/utils.d.ts",
|
|
589
|
+
"require": "./cjs/services/balance-service/transfer/xcm/utils.js",
|
|
590
|
+
"default": "./services/balance-service/transfer/xcm/utils.js"
|
|
591
|
+
},
|
|
592
|
+
"./services/balance-service/transfer/xcm/xcmPallet": {
|
|
593
|
+
"types": "./services/balance-service/transfer/xcm/xcmPallet.d.ts",
|
|
594
|
+
"require": "./cjs/services/balance-service/transfer/xcm/xcmPallet.js",
|
|
595
|
+
"default": "./services/balance-service/transfer/xcm/xcmPallet.js"
|
|
596
|
+
},
|
|
597
|
+
"./services/balance-service/transfer/xcm/xTokens": {
|
|
598
|
+
"types": "./services/balance-service/transfer/xcm/xTokens.d.ts",
|
|
599
|
+
"require": "./cjs/services/balance-service/transfer/xcm/xTokens.js",
|
|
600
|
+
"default": "./services/balance-service/transfer/xcm/xTokens.js"
|
|
601
|
+
},
|
|
583
602
|
"./services/base/types": {
|
|
584
603
|
"types": "./services/base/types.d.ts",
|
|
585
604
|
"require": "./cjs/services/base/types.js",
|
|
@@ -705,24 +724,11 @@
|
|
|
705
724
|
"require": "./cjs/services/chain-service/health-check/utils/provider.js",
|
|
706
725
|
"default": "./services/chain-service/health-check/utils/provider.js"
|
|
707
726
|
},
|
|
708
|
-
"./services/chain-service/helper": {
|
|
709
|
-
"types": "./services/chain-service/helper/index.d.ts",
|
|
710
|
-
"require": "./cjs/services/chain-service/helper/index.js",
|
|
711
|
-
"default": "./services/chain-service/helper/index.js"
|
|
712
|
-
},
|
|
713
727
|
"./services/chain-service/helper/api-helper/spec/dataavail": {
|
|
714
728
|
"types": "./services/chain-service/helper/api-helper/spec/dataavail.d.ts",
|
|
715
729
|
"require": "./cjs/services/chain-service/helper/api-helper/spec/dataavail.js",
|
|
716
730
|
"default": "./services/chain-service/helper/api-helper/spec/dataavail.js"
|
|
717
731
|
},
|
|
718
|
-
"./services/chain-service/helper/azero_domain_registry_abi.json": "./services/chain-service/helper/azero_domain_registry_abi.json",
|
|
719
|
-
"./services/chain-service/helper/erc20_abi.json": "./services/chain-service/helper/erc20_abi.json",
|
|
720
|
-
"./services/chain-service/helper/erc721_abi.json": "./services/chain-service/helper/erc721_abi.json",
|
|
721
|
-
"./services/chain-service/helper/neuroguns_psp34_abi.json": "./services/chain-service/helper/neuroguns_psp34_abi.json",
|
|
722
|
-
"./services/chain-service/helper/pink_psp34_abi.json": "./services/chain-service/helper/pink_psp34_abi.json",
|
|
723
|
-
"./services/chain-service/helper/psp22_abi.json": "./services/chain-service/helper/psp22_abi.json",
|
|
724
|
-
"./services/chain-service/helper/psp34_abi.json": "./services/chain-service/helper/psp34_abi.json",
|
|
725
|
-
"./services/chain-service/helper/test_erc721_abi.json": "./services/chain-service/helper/test_erc721_abi.json",
|
|
726
732
|
"./services/chain-service/types": {
|
|
727
733
|
"types": "./services/chain-service/types.d.ts",
|
|
728
734
|
"require": "./cjs/services/chain-service/types.js",
|
|
@@ -1921,11 +1927,11 @@
|
|
|
1921
1927
|
"@reduxjs/toolkit": "^1.9.1",
|
|
1922
1928
|
"@sora-substrate/type-definitions": "^1.17.7",
|
|
1923
1929
|
"@substrate/connect": "^0.8.9",
|
|
1924
|
-
"@subwallet/chain-list": "0.2.
|
|
1925
|
-
"@subwallet/extension-base": "^1.2.
|
|
1926
|
-
"@subwallet/extension-chains": "^1.2.
|
|
1927
|
-
"@subwallet/extension-dapp": "^1.2.
|
|
1928
|
-
"@subwallet/extension-inject": "^1.2.
|
|
1930
|
+
"@subwallet/chain-list": "0.2.70",
|
|
1931
|
+
"@subwallet/extension-base": "^1.2.10-0",
|
|
1932
|
+
"@subwallet/extension-chains": "^1.2.10-0",
|
|
1933
|
+
"@subwallet/extension-dapp": "^1.2.10-0",
|
|
1934
|
+
"@subwallet/extension-inject": "^1.2.10-0",
|
|
1929
1935
|
"@subwallet/keyring": "^0.1.5",
|
|
1930
1936
|
"@subwallet/ui-keyring": "^0.1.5",
|
|
1931
1937
|
"@walletconnect/keyvaluestorage": "^1.1.1",
|
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.2.
|
|
10
|
+
version: '1.2.10-0'
|
|
11
11
|
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { _ChainAsset } from '@subwallet/chain-list/types';
|
|
2
|
+
import { _Address } from '@subwallet/extension-base/background/KoniTypes';
|
|
3
|
+
import { _EvmApi } from '@subwallet/extension-base/services/chain-service/types';
|
|
4
|
+
import { CommonOptimalPath } from '@subwallet/extension-base/types/service-base';
|
|
5
|
+
export interface RequestOptimalTransferProcess {
|
|
6
|
+
originChain: string;
|
|
7
|
+
destChain?: string;
|
|
8
|
+
tokenSlug: string;
|
|
9
|
+
address: _Address;
|
|
10
|
+
amount: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function getDefaultTransferProcess(): CommonOptimalPath;
|
|
13
|
+
export declare function getSnowbridgeTransferProcessFromEvm(address: string, evmApi: _EvmApi, tokenInfo: _ChainAsset, amount: string): Promise<CommonOptimalPath>;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// Copyright 2019-2022 @subwallet/extension-base
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import { COMMON_CHAIN_SLUGS } from '@subwallet/chain-list';
|
|
5
|
+
import { CommonStepType, DEFAULT_FIRST_STEP, MOCK_STEP_FEE } from '@subwallet/extension-base/types/service-base';
|
|
6
|
+
export function getDefaultTransferProcess() {
|
|
7
|
+
return {
|
|
8
|
+
totalFee: [MOCK_STEP_FEE, MOCK_STEP_FEE],
|
|
9
|
+
steps: [DEFAULT_FIRST_STEP, {
|
|
10
|
+
id: 1,
|
|
11
|
+
type: CommonStepType.TRANSFER,
|
|
12
|
+
name: 'Transfer'
|
|
13
|
+
}]
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export async function getSnowbridgeTransferProcessFromEvm(address, evmApi, tokenInfo, amount) {
|
|
17
|
+
if (![COMMON_CHAIN_SLUGS.ETHEREUM, COMMON_CHAIN_SLUGS.ETHEREUM_SEPOLIA].includes(tokenInfo.originChain)) {
|
|
18
|
+
throw new Error('Snowbridge only has support for Ethereum');
|
|
19
|
+
}
|
|
20
|
+
const result = {
|
|
21
|
+
totalFee: [MOCK_STEP_FEE],
|
|
22
|
+
steps: [DEFAULT_FIRST_STEP]
|
|
23
|
+
};
|
|
24
|
+
// const allowance = await getERC20Allowance(getSnowBridgeGatewayContract(evmApi.chainSlug), address, _getContractAddressOfToken(tokenInfo), evmApi);
|
|
25
|
+
|
|
26
|
+
result.steps.push({
|
|
27
|
+
// always approve spending because sometimes allowance check fails
|
|
28
|
+
id: result.steps.length,
|
|
29
|
+
type: CommonStepType.TOKEN_APPROVAL,
|
|
30
|
+
name: 'Approve spending'
|
|
31
|
+
});
|
|
32
|
+
result.totalFee.push(MOCK_STEP_FEE);
|
|
33
|
+
// if (!allowance || BigInt(allowance) < BigInt(amount)) {
|
|
34
|
+
// }
|
|
35
|
+
|
|
36
|
+
result.steps.push({
|
|
37
|
+
id: result.steps.length,
|
|
38
|
+
type: CommonStepType.TRANSFER,
|
|
39
|
+
name: 'Transfer'
|
|
40
|
+
});
|
|
41
|
+
result.totalFee.push(MOCK_STEP_FEE);
|
|
42
|
+
return Promise.resolve(result);
|
|
43
|
+
}
|