@subwallet/extension-base 1.2.8-1 → 1.2.9-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/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/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
|
@@ -8,6 +8,8 @@ exports.BalanceService = void 0;
|
|
|
8
8
|
var _BalanceError = require("@subwallet/extension-base/background/errors/BalanceError");
|
|
9
9
|
var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
|
|
10
10
|
var _constants = require("@subwallet/extension-base/constants");
|
|
11
|
+
var _xcmParser = require("@subwallet/extension-base/core/substrate/xcm-parser");
|
|
12
|
+
var _process = require("@subwallet/extension-base/services/balance-service/helpers/process");
|
|
11
13
|
var _types = require("@subwallet/extension-base/services/base/types");
|
|
12
14
|
var _utils = require("@subwallet/extension-base/services/chain-service/utils");
|
|
13
15
|
var _DetectAccountBalance = _interopRequireDefault(require("@subwallet/extension-base/stores/DetectAccountBalance"));
|
|
@@ -470,5 +472,23 @@ class BalanceService {
|
|
|
470
472
|
this._unsubscribeBalanceDetectCache = undefined;
|
|
471
473
|
this.startBalanceDetectCache = undefined;
|
|
472
474
|
}
|
|
475
|
+
|
|
476
|
+
// process
|
|
477
|
+
async getOptimalTransferProcess(params) {
|
|
478
|
+
const originChainInfo = this.state.chainService.getChainInfoByKey(params.originChain);
|
|
479
|
+
if (!params.destChain) {
|
|
480
|
+
// normal transfers
|
|
481
|
+
return (0, _process.getDefaultTransferProcess)();
|
|
482
|
+
}
|
|
483
|
+
const destChainInfo = this.state.chainService.getChainInfoByKey(params.destChain);
|
|
484
|
+
|
|
485
|
+
// xcm
|
|
486
|
+
if (!(0, _xcmParser._isXcmWithinSameConsensus)(originChainInfo, destChainInfo) && (0, _utils._isPureEvmChain)(originChainInfo)) {
|
|
487
|
+
const evmApi = this.state.chainService.getEvmApi(originChainInfo.slug);
|
|
488
|
+
const tokenInfo = this.state.chainService.getAssetBySlug(params.tokenSlug);
|
|
489
|
+
return (0, _process.getSnowbridgeTransferProcessFromEvm)(params.address, evmApi, tokenInfo, params.amount);
|
|
490
|
+
}
|
|
491
|
+
return (0, _process.getDefaultTransferProcess)();
|
|
492
|
+
}
|
|
473
493
|
}
|
|
474
494
|
exports.BalanceService = BalanceService;
|
package/cjs/{koni/api/tokens/evm/transfer.js → services/balance-service/transfer/smart-contract.js}
RENAMED
|
@@ -7,49 +7,21 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.getERC20TransactionObject = getERC20TransactionObject;
|
|
8
8
|
exports.getERC721Transaction = getERC721Transaction;
|
|
9
9
|
exports.getEVMTransactionObject = getEVMTransactionObject;
|
|
10
|
-
exports.
|
|
11
|
-
var
|
|
12
|
-
var
|
|
10
|
+
exports.getPSP34TransferExtrinsic = getPSP34TransferExtrinsic;
|
|
11
|
+
var _web = require("@subwallet/extension-base/koni/api/contract-handler/evm/web3");
|
|
12
|
+
var _utils = require("@subwallet/extension-base/koni/api/contract-handler/utils");
|
|
13
|
+
var _wasm = require("@subwallet/extension-base/koni/api/contract-handler/wasm");
|
|
14
|
+
var _utils2 = require("@subwallet/extension-base/koni/api/contract-handler/wasm/utils");
|
|
13
15
|
var _constants = require("@subwallet/extension-base/services/chain-service/constants");
|
|
14
|
-
var
|
|
15
|
-
var _utils = require("@subwallet/extension-base/services/fee-service/utils");
|
|
16
|
+
var _utils3 = require("@subwallet/extension-base/services/fee-service/utils");
|
|
16
17
|
var _bignumber = _interopRequireDefault(require("bignumber.js"));
|
|
17
|
-
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 handleTransferBalanceResult = _ref => {
|
|
22
|
-
let {
|
|
23
|
-
callback,
|
|
24
|
-
changeValue,
|
|
25
|
-
networkKey,
|
|
26
|
-
receipt,
|
|
27
|
-
response,
|
|
28
|
-
updateState
|
|
29
|
-
} = _ref;
|
|
30
|
-
response.status = true;
|
|
31
|
-
let fee;
|
|
32
|
-
if (_constants._BALANCE_PARSING_CHAIN_GROUP.bobabeam.indexOf(networkKey) > -1) {
|
|
33
|
-
// @ts-ignore
|
|
34
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
35
|
-
fee = (0, _util.hexToBn)(receipt.l1Fee || '0x0').add((0, _util.hexToBn)(receipt.l2BobaFee || '0x0')).toString();
|
|
36
|
-
} else {
|
|
37
|
-
fee = (receipt.gasUsed * receipt.effectiveGasPrice).toString();
|
|
38
|
-
}
|
|
39
|
-
response.txResult = {
|
|
40
|
-
change: changeValue || '0',
|
|
41
|
-
fee
|
|
42
|
-
};
|
|
43
|
-
updateState && updateState({
|
|
44
|
-
status: receipt.status ? _KoniTypes.ExternalRequestPromiseStatus.COMPLETED : _KoniTypes.ExternalRequestPromiseStatus.FAILED
|
|
45
|
-
});
|
|
46
|
-
callback(response);
|
|
47
|
-
};
|
|
48
|
-
exports.handleTransferBalanceResult = handleTransferBalanceResult;
|
|
49
21
|
async function getEVMTransactionObject(chainInfo, from, to, value, transferAll, web3Api) {
|
|
50
22
|
var _priority$maxFeePerGa, _priority$maxPriority;
|
|
51
23
|
const networkKey = chainInfo.slug;
|
|
52
|
-
const priority = await (0,
|
|
24
|
+
const priority = await (0, _utils3.calculateGasFeeParams)(web3Api, networkKey);
|
|
53
25
|
const transactionObject = {
|
|
54
26
|
to: to,
|
|
55
27
|
value: value,
|
|
@@ -95,7 +67,7 @@ async function getERC20TransactionObject(assetAddress, chainInfo, from, to, valu
|
|
|
95
67
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
|
|
96
68
|
erc20Contract.methods.transfer(to, transferValue).estimateGas({
|
|
97
69
|
from
|
|
98
|
-
}), (0,
|
|
70
|
+
}), (0, _utils3.calculateGasFeeParams)(evmApi, networkKey)]);
|
|
99
71
|
const transactionObject = {
|
|
100
72
|
gas: gasLimit,
|
|
101
73
|
from,
|
|
@@ -115,12 +87,12 @@ async function getERC20TransactionObject(assetAddress, chainInfo, from, to, valu
|
|
|
115
87
|
async function getERC721Transaction(web3Api, chain, contractAddress, senderAddress, recipientAddress, tokenId) {
|
|
116
88
|
var _priority$maxFeePerGa3, _priority$maxPriority3;
|
|
117
89
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
118
|
-
const contract = new web3Api.api.eth.Contract(
|
|
90
|
+
const contract = new web3Api.api.eth.Contract(_utils._ERC721_ABI, contractAddress);
|
|
119
91
|
const [gasLimit, priority] = await Promise.all([
|
|
120
92
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
|
|
121
93
|
contract.methods.safeTransferFrom(senderAddress, recipientAddress, tokenId).estimateGas({
|
|
122
94
|
from: senderAddress
|
|
123
|
-
}), (0,
|
|
95
|
+
}), (0, _utils3.calculateGasFeeParams)(web3Api, chain)]);
|
|
124
96
|
return {
|
|
125
97
|
from: senderAddress,
|
|
126
98
|
gasPrice: priority.gasPrice,
|
|
@@ -132,4 +104,27 @@ async function getERC721Transaction(web3Api, chain, contractAddress, senderAddre
|
|
|
132
104
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment
|
|
133
105
|
data: contract.methods.safeTransferFrom(senderAddress, recipientAddress, tokenId).encodeABI()
|
|
134
106
|
};
|
|
107
|
+
}
|
|
108
|
+
const mustFormatNumberReg = /^-?[0-9][0-9,.]+$/;
|
|
109
|
+
async function getPSP34TransferExtrinsic(substrateApi, senderAddress, recipientAddress, params) {
|
|
110
|
+
const contractAddress = params.contractAddress;
|
|
111
|
+
const onChainOption = params.onChainOption;
|
|
112
|
+
for (const [key, value] of Object.entries(onChainOption)) {
|
|
113
|
+
if (mustFormatNumberReg.test(value)) {
|
|
114
|
+
onChainOption[key] = value.replaceAll(',', '');
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
try {
|
|
118
|
+
const contractPromise = (0, _wasm.getPSP34ContractPromise)(substrateApi.api, contractAddress);
|
|
119
|
+
// @ts-ignore
|
|
120
|
+
const gasLimit = await (0, _utils2.getWasmContractGasLimit)(substrateApi.api, senderAddress, 'psp34::transfer', contractPromise, {}, [recipientAddress, onChainOption, {}]);
|
|
121
|
+
|
|
122
|
+
// @ts-ignore
|
|
123
|
+
return contractPromise.tx['psp34::transfer']({
|
|
124
|
+
gasLimit
|
|
125
|
+
}, recipientAddress, onChainOption, {});
|
|
126
|
+
} catch (e) {
|
|
127
|
+
console.debug(e);
|
|
128
|
+
return null;
|
|
129
|
+
}
|
|
135
130
|
}
|
|
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.getTransferMockTxFee = exports.createTransferExtrinsic = void 0;
|
|
8
8
|
var _api = require("@gear-js/api");
|
|
9
|
-
var _wasm = require("@subwallet/extension-base/koni/api/
|
|
10
|
-
var _utils = require("@subwallet/extension-base/koni/api/
|
|
9
|
+
var _wasm = require("@subwallet/extension-base/koni/api/contract-handler/wasm");
|
|
10
|
+
var _utils = require("@subwallet/extension-base/koni/api/contract-handler/wasm/utils");
|
|
11
11
|
var _constants = require("@subwallet/extension-base/services/chain-service/constants");
|
|
12
12
|
var _utils2 = require("@subwallet/extension-base/services/chain-service/utils");
|
|
13
13
|
var _utils3 = require("@subwallet/extension-base/services/fee-service/utils");
|
|
@@ -44,7 +44,7 @@ const createTransferExtrinsic = async _ref => {
|
|
|
44
44
|
let transferAmount; // for PSP-22 tokens, might be deprecated in the future
|
|
45
45
|
|
|
46
46
|
if ((0, _utils2._isBridgedToken)(tokenInfo) && api.tx.foreignAssets) {
|
|
47
|
-
const onChainInfo = (0, _utils2._getTokenOnChainInfo)(tokenInfo);
|
|
47
|
+
const onChainInfo = (0, _utils2._getTokenOnChainInfo)(tokenInfo) || (0, _utils2._getXcmAssetMultilocation)(tokenInfo);
|
|
48
48
|
if (transferAll) {
|
|
49
49
|
transfer = api.tx.foreignAssets.transfer(onChainInfo, to, value);
|
|
50
50
|
} else {
|
|
@@ -4,10 +4,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.getXcmMockTxFee = exports.createXcmExtrinsic = void 0;
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
7
|
+
exports.getXcmMockTxFee = exports.createXcmExtrinsic = exports.createSnowBridgeExtrinsic = void 0;
|
|
8
|
+
var _xcmParser = require("@subwallet/extension-base/core/substrate/xcm-parser");
|
|
9
|
+
var _polkadotXcm = require("@subwallet/extension-base/services/balance-service/transfer/xcm/polkadotXcm");
|
|
10
|
+
var _snowBridge = require("@subwallet/extension-base/services/balance-service/transfer/xcm/snowBridge");
|
|
11
|
+
var _xcmPallet = require("@subwallet/extension-base/services/balance-service/transfer/xcm/xcmPallet");
|
|
12
|
+
var _xTokens = require("@subwallet/extension-base/services/balance-service/transfer/xcm/xTokens");
|
|
11
13
|
var _constants = require("@subwallet/extension-base/services/chain-service/constants");
|
|
12
14
|
var _utils = require("@subwallet/extension-base/services/chain-service/utils");
|
|
13
15
|
var _bignumber = _interopRequireDefault(require("bignumber.js"));
|
|
@@ -16,7 +18,25 @@ var _utilCrypto = require("@polkadot/util-crypto");
|
|
|
16
18
|
// Copyright 2019-2022 @subwallet/extension-base
|
|
17
19
|
// SPDX-License-Identifier: Apache-2.0
|
|
18
20
|
|
|
19
|
-
const
|
|
21
|
+
const createSnowBridgeExtrinsic = async _ref => {
|
|
22
|
+
let {
|
|
23
|
+
chainInfoMap,
|
|
24
|
+
destinationTokenInfo,
|
|
25
|
+
evmApi,
|
|
26
|
+
originTokenInfo,
|
|
27
|
+
recipient,
|
|
28
|
+
sender,
|
|
29
|
+
sendingValue
|
|
30
|
+
} = _ref;
|
|
31
|
+
const originChainInfo = chainInfoMap[originTokenInfo.originChain];
|
|
32
|
+
const destinationChainInfo = chainInfoMap[destinationTokenInfo.originChain];
|
|
33
|
+
if (!(0, _xcmParser._isSnowBridgeXcm)(originChainInfo, destinationChainInfo)) {
|
|
34
|
+
throw new Error('This is not a valid SnowBridge transfer');
|
|
35
|
+
}
|
|
36
|
+
return (0, _snowBridge.getSnowBridgeEvmTransfer)(originTokenInfo, originChainInfo, destinationChainInfo, sender, recipient, sendingValue, evmApi);
|
|
37
|
+
};
|
|
38
|
+
exports.createSnowBridgeExtrinsic = createSnowBridgeExtrinsic;
|
|
39
|
+
const createXcmExtrinsic = async _ref2 => {
|
|
20
40
|
let {
|
|
21
41
|
chainInfoMap,
|
|
22
42
|
destinationTokenInfo,
|
|
@@ -24,7 +44,7 @@ const createXcmExtrinsic = async _ref => {
|
|
|
24
44
|
recipient,
|
|
25
45
|
sendingValue,
|
|
26
46
|
substrateApi
|
|
27
|
-
} =
|
|
47
|
+
} = _ref2;
|
|
28
48
|
const originChainInfo = chainInfoMap[originTokenInfo.originChain];
|
|
29
49
|
const destinationChainInfo = chainInfoMap[destinationTokenInfo.originChain];
|
|
30
50
|
const chainApi = await substrateApi.isReady;
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.getExtrinsicByPolkadotXcmPallet = getExtrinsicByPolkadotXcmPallet;
|
|
7
7
|
var _xcmParser = require("@subwallet/extension-base/core/substrate/xcm-parser");
|
|
8
|
-
var _utils = require("@subwallet/extension-base/
|
|
8
|
+
var _utils = require("@subwallet/extension-base/services/balance-service/transfer/xcm/utils");
|
|
9
9
|
var _utils2 = require("@subwallet/extension-base/services/chain-service/utils");
|
|
10
10
|
// Copyright 2019-2022 @subwallet/extension-base
|
|
11
11
|
// SPDX-License-Identifier: Apache-2.0
|
|
@@ -13,7 +13,7 @@ var _utils2 = require("@subwallet/extension-base/services/chain-service/utils");
|
|
|
13
13
|
function getExtrinsicByPolkadotXcmPallet(tokenInfo, originChainInfo, destinationChainInfo, recipientAddress, value, api) {
|
|
14
14
|
let version = _utils.STABLE_XCM_VERSION;
|
|
15
15
|
let method = 'limitedReserveTransferAssets';
|
|
16
|
-
if ((0, _utils2._isBridgedToken)(tokenInfo)) {
|
|
16
|
+
if ((0, _utils2._isBridgedToken)(tokenInfo) && !(0, _xcmParser._isXcmWithinSameConsensus)(originChainInfo, destinationChainInfo)) {
|
|
17
17
|
version = 4;
|
|
18
18
|
method = 'transferAssets';
|
|
19
19
|
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getSnowBridgeEvmTransfer = getSnowBridgeEvmTransfer;
|
|
7
|
+
var _web = require("@subwallet/extension-base/koni/api/contract-handler/evm/web3");
|
|
8
|
+
var _utils = require("@subwallet/extension-base/koni/api/contract-handler/utils");
|
|
9
|
+
var _utils2 = require("@subwallet/extension-base/services/chain-service/utils");
|
|
10
|
+
var _utils3 = require("@subwallet/extension-base/services/fee-service/utils");
|
|
11
|
+
var _util = require("@polkadot/util");
|
|
12
|
+
var _utilCrypto = require("@polkadot/util-crypto");
|
|
13
|
+
// Copyright 2019-2022 @subwallet/extension-base
|
|
14
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
15
|
+
|
|
16
|
+
async function getSendFeeToken(contract, tokenContract, destChainParaId, destinationFee) {
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment
|
|
18
|
+
const quoteSendTokenFee = contract.methods.quoteSendTokenFee(tokenContract, destChainParaId, destinationFee);
|
|
19
|
+
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
|
|
21
|
+
return await quoteSendTokenFee.call();
|
|
22
|
+
}
|
|
23
|
+
async function getSnowBridgeEvmTransfer(tokenInfo, originChainInfo, destinationChainInfo, sender, recipientAddress, value, evmApi) {
|
|
24
|
+
var _priority$maxFeePerGa, _priority$maxPriority;
|
|
25
|
+
const snowBridgeContractAddress = (0, _utils.getSnowBridgeGatewayContract)(originChainInfo.slug);
|
|
26
|
+
const snowBridgeContract = (0, _web.getWeb3Contract)(snowBridgeContractAddress, evmApi, _utils._SNOWBRIDGE_GATEWAY_ABI);
|
|
27
|
+
const tokenContract = (0, _utils2._getContractAddressOfToken)(tokenInfo);
|
|
28
|
+
const destinationChainParaId = (0, _utils2._getSubstrateParaId)(destinationChainInfo);
|
|
29
|
+
const recipient = {
|
|
30
|
+
kind: 1,
|
|
31
|
+
data: (0, _utils2._isChainEvmCompatible)(destinationChainInfo) ? recipientAddress : (0, _util.u8aToHex)((0, _utilCrypto.decodeAddress)(recipientAddress))
|
|
32
|
+
};
|
|
33
|
+
const destinationFee = '0';
|
|
34
|
+
|
|
35
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment
|
|
36
|
+
const transferCall = snowBridgeContract.methods.sendToken(tokenContract, destinationChainParaId, recipient, destinationFee, value);
|
|
37
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment
|
|
38
|
+
const transferEncodedCall = transferCall.encodeABI();
|
|
39
|
+
const [priority, sendTokenFee] = await Promise.all([(0, _utils3.calculateGasFeeParams)(evmApi, evmApi.chainSlug), getSendFeeToken(snowBridgeContract, tokenContract, destinationChainParaId, destinationFee)]);
|
|
40
|
+
let gasLimit;
|
|
41
|
+
try {
|
|
42
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
|
|
43
|
+
gasLimit = await transferCall.estimateGas({
|
|
44
|
+
from: sender
|
|
45
|
+
});
|
|
46
|
+
} catch (e) {
|
|
47
|
+
gasLimit = 200000; // todo: handle this better
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return {
|
|
51
|
+
from: sender,
|
|
52
|
+
to: snowBridgeContractAddress,
|
|
53
|
+
value: sendTokenFee,
|
|
54
|
+
data: transferEncodedCall,
|
|
55
|
+
gas: gasLimit,
|
|
56
|
+
gasPrice: priority.gasPrice,
|
|
57
|
+
maxFeePerGas: (_priority$maxFeePerGa = priority.maxFeePerGas) === null || _priority$maxFeePerGa === void 0 ? void 0 : _priority$maxFeePerGa.toString(),
|
|
58
|
+
maxPriorityFeePerGas: (_priority$maxPriority = priority.maxPriorityFeePerGas) === null || _priority$maxPriority === void 0 ? void 0 : _priority$maxPriority.toString()
|
|
59
|
+
};
|
|
60
|
+
}
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.getExtrinsicByXtokensPallet = getExtrinsicByXtokensPallet;
|
|
7
7
|
var _xcmParser = require("@subwallet/extension-base/core/substrate/xcm-parser");
|
|
8
|
-
var _utils = require("@subwallet/extension-base/
|
|
8
|
+
var _utils = require("@subwallet/extension-base/services/balance-service/transfer/xcm/utils");
|
|
9
9
|
var _utils2 = require("@subwallet/extension-base/services/chain-service/utils");
|
|
10
10
|
// Copyright 2019-2022 @subwallet/extension-base
|
|
11
11
|
// SPDX-License-Identifier: Apache-2.0
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.getExtrinsicByXcmPalletPallet = getExtrinsicByXcmPalletPallet;
|
|
7
7
|
var _xcmParser = require("@subwallet/extension-base/core/substrate/xcm-parser");
|
|
8
|
-
var _utils = require("@subwallet/extension-base/
|
|
8
|
+
var _utils = require("@subwallet/extension-base/services/balance-service/transfer/xcm/utils");
|
|
9
9
|
// Copyright 2019-2022 @subwallet/extension-base
|
|
10
10
|
// SPDX-License-Identifier: Apache-2.0
|
|
11
11
|
|
|
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.EvmChainHandler = void 0;
|
|
8
8
|
var _types = require("@subwallet/chain-list/types");
|
|
9
|
+
var _utils = require("@subwallet/extension-base/koni/api/contract-handler/utils");
|
|
9
10
|
var _AbstractChainHandler = require("@subwallet/extension-base/services/chain-service/handler/AbstractChainHandler");
|
|
10
11
|
var _EvmApi2 = require("@subwallet/extension-base/services/chain-service/handler/EvmApi");
|
|
11
|
-
var _helper = require("@subwallet/extension-base/services/chain-service/helper");
|
|
12
12
|
var _bignumber = _interopRequireDefault(require("bignumber.js"));
|
|
13
13
|
var _logger = require("@polkadot/util/logger");
|
|
14
14
|
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
@@ -119,7 +119,7 @@ class EvmChainHandler extends _AbstractChainHandler.AbstractChainHandler {
|
|
|
119
119
|
try {
|
|
120
120
|
if (tokenType === _types._AssetType.ERC721) {
|
|
121
121
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument,@typescript-eslint/no-unsafe-member-access
|
|
122
|
-
tokenContract = new evmApi.api.eth.Contract(
|
|
122
|
+
tokenContract = new evmApi.api.eth.Contract(_utils._ERC721_ABI, contractAddress);
|
|
123
123
|
const [_name, _symbol] = await Promise.all([
|
|
124
124
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
|
|
125
125
|
tokenContract.methods.name().call(),
|
|
@@ -129,7 +129,7 @@ class EvmChainHandler extends _AbstractChainHandler.AbstractChainHandler {
|
|
|
129
129
|
symbol = _symbol;
|
|
130
130
|
} else {
|
|
131
131
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument,@typescript-eslint/no-unsafe-member-access
|
|
132
|
-
tokenContract = new evmApi.api.eth.Contract(
|
|
132
|
+
tokenContract = new evmApi.api.eth.Contract(_utils._ERC20_ABI, contractAddress);
|
|
133
133
|
const [_decimals, _symbol, _name] = await Promise.all([
|
|
134
134
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
|
|
135
135
|
tokenContract.methods.decimals().call(),
|
|
@@ -6,14 +6,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.SubstrateChainHandler = exports.DEFAULT_AUX = void 0;
|
|
7
7
|
var _api = require("@gear-js/api");
|
|
8
8
|
var _types = require("@subwallet/chain-list/types");
|
|
9
|
-
var _utils = require("@subwallet/extension-base/koni/api/
|
|
9
|
+
var _utils = require("@subwallet/extension-base/koni/api/contract-handler/wasm/utils");
|
|
10
10
|
var _AbstractChainHandler = require("@subwallet/extension-base/services/chain-service/handler/AbstractChainHandler");
|
|
11
11
|
var _SubstrateApi2 = require("@subwallet/extension-base/services/chain-service/handler/SubstrateApi");
|
|
12
12
|
var _utils2 = require("@subwallet/extension-base/utils");
|
|
13
13
|
var _apiContract = require("@polkadot/api-contract");
|
|
14
14
|
var _util = require("@polkadot/util");
|
|
15
15
|
var _logger = require("@polkadot/util/logger");
|
|
16
|
-
var
|
|
16
|
+
var _utils3 = require("../../../koni/api/contract-handler/utils");
|
|
17
17
|
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
18
18
|
// SPDX-License-Identifier: Apache-2.0
|
|
19
19
|
|
|
@@ -96,7 +96,7 @@ class SubstrateChainHandler extends _AbstractChainHandler.AbstractChainHandler {
|
|
|
96
96
|
return result;
|
|
97
97
|
}
|
|
98
98
|
async getPsp22TokenInfo(apiPromise, contractAddress, contractCaller) {
|
|
99
|
-
const tokenContract = new _apiContract.ContractPromise(apiPromise,
|
|
99
|
+
const tokenContract = new _apiContract.ContractPromise(apiPromise, _utils3._PSP22_ABI, contractAddress);
|
|
100
100
|
const [nameResp, symbolResp, decimalsResp] = await Promise.all([tokenContract.query['psp22Metadata::tokenName'](contractCaller || contractAddress, {
|
|
101
101
|
gasLimit: (0, _utils.getDefaultWeightV2)(apiPromise)
|
|
102
102
|
}),
|
|
@@ -124,7 +124,7 @@ class SubstrateChainHandler extends _AbstractChainHandler.AbstractChainHandler {
|
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
126
|
async getPsp34TokenInfo(apiPromise, contractAddress, contractCaller) {
|
|
127
|
-
const tokenContract = new _apiContract.ContractPromise(apiPromise,
|
|
127
|
+
const tokenContract = new _apiContract.ContractPromise(apiPromise, _utils3._PSP34_ABI, contractAddress);
|
|
128
128
|
const collectionIdResp = await tokenContract.query['psp34::collectionId'](contractCaller || contractAddress, {
|
|
129
129
|
gasLimit: (0, _utils.getDefaultWeightV2)(apiPromise)
|
|
130
130
|
}); // read-only operation so no gas limit
|
|
@@ -5,10 +5,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.getSubstrateNativeInfo = exports.getPsp22AssetInfo = exports.getLocalAssetInfo = exports.getEvmNativeInfo = exports.getErc20AssetInfo = exports.compareAsset = void 0;
|
|
8
|
-
var _web = require("@subwallet/extension-base/koni/api/
|
|
9
|
-
var _utils = require("@subwallet/extension-base/koni/api/
|
|
10
|
-
var
|
|
11
|
-
var
|
|
8
|
+
var _web = require("@subwallet/extension-base/koni/api/contract-handler/evm/web3");
|
|
9
|
+
var _utils = require("@subwallet/extension-base/koni/api/contract-handler/utils");
|
|
10
|
+
var _utils2 = require("@subwallet/extension-base/koni/api/contract-handler/wasm/utils");
|
|
11
|
+
var _utils3 = require("@subwallet/extension-base/services/chain-service/utils");
|
|
12
12
|
var _bignumber = _interopRequireDefault(require("bignumber.js"));
|
|
13
13
|
var _apiContract = require("@polkadot/api-contract");
|
|
14
14
|
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
@@ -16,7 +16,7 @@ var _apiContract = require("@polkadot/api-contract");
|
|
|
16
16
|
|
|
17
17
|
const BN_TEN = new _bignumber.default(10);
|
|
18
18
|
const getByAssetPallet = async (asset, api) => {
|
|
19
|
-
const [_info, _metadata] = await api.queryMulti([[api.query.assets.asset, (0,
|
|
19
|
+
const [_info, _metadata] = await api.queryMulti([[api.query.assets.asset, (0, _utils3._getTokenOnChainAssetId)(asset)], [api.query.assets.metadata, (0, _utils3._getTokenOnChainAssetId)(asset)]]);
|
|
20
20
|
const info = _info.toPrimitive();
|
|
21
21
|
const metadata = _metadata.toPrimitive();
|
|
22
22
|
return {
|
|
@@ -26,7 +26,7 @@ const getByAssetPallet = async (asset, api) => {
|
|
|
26
26
|
};
|
|
27
27
|
};
|
|
28
28
|
const getByAssetRegistryWithChainInfoPallet = async (asset, api) => {
|
|
29
|
-
const raw = (0,
|
|
29
|
+
const raw = (0, _utils3._getTokenOnChainInfo)(asset);
|
|
30
30
|
let data;
|
|
31
31
|
if ('ForeignAsset' in raw) {
|
|
32
32
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
@@ -54,7 +54,7 @@ const getByAssetRegistryWithChainInfoPallet = async (asset, api) => {
|
|
|
54
54
|
};
|
|
55
55
|
};
|
|
56
56
|
const getByAssetRegistryWithChainInfoPalletV2 = async (asset, api) => {
|
|
57
|
-
const data = (0,
|
|
57
|
+
const data = (0, _utils3._getTokenOnChainInfo)(asset);
|
|
58
58
|
const _metadata = await api.query.assetRegistry.currencyMetadatas(data);
|
|
59
59
|
const metadata = _metadata.toPrimitive();
|
|
60
60
|
return {
|
|
@@ -64,7 +64,7 @@ const getByAssetRegistryWithChainInfoPalletV2 = async (asset, api) => {
|
|
|
64
64
|
};
|
|
65
65
|
};
|
|
66
66
|
const getByAssetRegistryWithChainInfoPalletV3 = async (asset, api) => {
|
|
67
|
-
const data = (0,
|
|
67
|
+
const data = (0, _utils3._getTokenOnChainInfo)(asset);
|
|
68
68
|
const _metadata = await api.query.assetRegistry.metadata(data);
|
|
69
69
|
const metadata = _metadata.toPrimitive();
|
|
70
70
|
return {
|
|
@@ -74,7 +74,7 @@ const getByAssetRegistryWithChainInfoPalletV3 = async (asset, api) => {
|
|
|
74
74
|
};
|
|
75
75
|
};
|
|
76
76
|
const getByOrmlAssetRegistryPallet = async (asset, api) => {
|
|
77
|
-
const data = (0,
|
|
77
|
+
const data = (0, _utils3._getTokenOnChainInfo)(asset);
|
|
78
78
|
const _metadata = await api.query.ormlAssetRegistry.metadata(data);
|
|
79
79
|
const metadata = _metadata.toPrimitive();
|
|
80
80
|
return {
|
|
@@ -84,7 +84,7 @@ const getByOrmlAssetRegistryPallet = async (asset, api) => {
|
|
|
84
84
|
};
|
|
85
85
|
};
|
|
86
86
|
const getByAssetManagerWithChainInfoPallet = async (asset, api) => {
|
|
87
|
-
const raw = (0,
|
|
87
|
+
const raw = (0, _utils3._getTokenOnChainInfo)(asset);
|
|
88
88
|
let data;
|
|
89
89
|
if ('ForeignAsset' in raw) {
|
|
90
90
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
@@ -107,7 +107,7 @@ const getByAssetManagerWithChainInfoPallet = async (asset, api) => {
|
|
|
107
107
|
};
|
|
108
108
|
};
|
|
109
109
|
const getByAssetManagerWithAssetIdPallet = async (asset, api) => {
|
|
110
|
-
const _metadata = await api.query.assetManager.assetIdMetadata((0,
|
|
110
|
+
const _metadata = await api.query.assetManager.assetIdMetadata((0, _utils3._getTokenOnChainAssetId)(asset));
|
|
111
111
|
const metadata = _metadata.toPrimitive();
|
|
112
112
|
return {
|
|
113
113
|
decimals: metadata.metadata.decimals,
|
|
@@ -116,7 +116,7 @@ const getByAssetManagerWithAssetIdPallet = async (asset, api) => {
|
|
|
116
116
|
};
|
|
117
117
|
};
|
|
118
118
|
const getByAssetRegistryWithAssetIdPallet = async (asset, api) => {
|
|
119
|
-
const [_info, _metadata] = await api.queryMulti([[api.query.assetRegistry.assets, (0,
|
|
119
|
+
const [_info, _metadata] = await api.queryMulti([[api.query.assetRegistry.assets, (0, _utils3._getTokenOnChainAssetId)(asset)], [api.query.assetRegistry.assetMetadataMap, (0, _utils3._getTokenOnChainAssetId)(asset)]]);
|
|
120
120
|
const info = _info.toPrimitive();
|
|
121
121
|
const metadata = _metadata.toPrimitive();
|
|
122
122
|
return {
|
|
@@ -160,16 +160,16 @@ const getSubstrateNativeInfo = async api => {
|
|
|
160
160
|
};
|
|
161
161
|
exports.getSubstrateNativeInfo = getSubstrateNativeInfo;
|
|
162
162
|
const getPsp22AssetInfo = async (asset, api) => {
|
|
163
|
-
const contractAddress = (0,
|
|
164
|
-
const tokenContract = new _apiContract.ContractPromise(api,
|
|
163
|
+
const contractAddress = (0, _utils3._getContractAddressOfToken)(asset);
|
|
164
|
+
const tokenContract = new _apiContract.ContractPromise(api, _utils._PSP22_ABI, contractAddress);
|
|
165
165
|
const [nameResp, symbolResp, decimalsResp] = await Promise.all([tokenContract.query['psp22Metadata::tokenName'](contractAddress, {
|
|
166
|
-
gasLimit: (0,
|
|
166
|
+
gasLimit: (0, _utils2.getDefaultWeightV2)(api)
|
|
167
167
|
}),
|
|
168
168
|
// read-only operation so no gas limit
|
|
169
169
|
tokenContract.query['psp22Metadata::tokenSymbol'](contractAddress, {
|
|
170
|
-
gasLimit: (0,
|
|
170
|
+
gasLimit: (0, _utils2.getDefaultWeightV2)(api)
|
|
171
171
|
}), tokenContract.query['psp22Metadata::tokenDecimals'](contractAddress, {
|
|
172
|
-
gasLimit: (0,
|
|
172
|
+
gasLimit: (0, _utils2.getDefaultWeightV2)(api)
|
|
173
173
|
})]);
|
|
174
174
|
if (!(nameResp.result.isOk && symbolResp.result.isOk && decimalsResp.result.isOk) || !nameResp.output || !decimalsResp.output || !symbolResp.output) {
|
|
175
175
|
return {
|
|
@@ -226,7 +226,7 @@ const getEvmNativeInfo = async api => {
|
|
|
226
226
|
};
|
|
227
227
|
exports.getEvmNativeInfo = getEvmNativeInfo;
|
|
228
228
|
const getErc20AssetInfo = async (asset, api) => {
|
|
229
|
-
const contractAddress = (0,
|
|
229
|
+
const contractAddress = (0, _utils3._getContractAddressOfToken)(asset);
|
|
230
230
|
const tokenContract = (0, _web.getERC20Contract)(contractAddress, api);
|
|
231
231
|
const [_decimals, _symbol, _name] = await Promise.all([
|
|
232
232
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
|
|
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.getStellaswapLiquidStakingContract = exports.default = void 0;
|
|
8
8
|
var _TransactionError = require("@subwallet/extension-base/background/errors/TransactionError");
|
|
9
9
|
var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
|
|
10
|
-
var _web = require("@subwallet/extension-base/koni/api/
|
|
10
|
+
var _web = require("@subwallet/extension-base/koni/api/contract-handler/evm/web3");
|
|
11
11
|
var _utils = require("@subwallet/extension-base/services/chain-service/utils");
|
|
12
12
|
var _utils2 = require("@subwallet/extension-base/services/fee-service/utils");
|
|
13
13
|
var _types = require("@subwallet/extension-base/types");
|
|
@@ -26,7 +26,6 @@ const getStellaswapLiquidStakingContract = function (networkKey, assetAddress, e
|
|
|
26
26
|
exports.getStellaswapLiquidStakingContract = getStellaswapLiquidStakingContract;
|
|
27
27
|
const APR_STATS_URL = 'https://apr-api.stellaswap.com/api/v1/stdot';
|
|
28
28
|
const SUBWALLET_REFERRAL = '0x7e6815f45E624768548d085231f2d453f16FD7DD';
|
|
29
|
-
const MAX_INT = '115792089237316195423570985008687907853269984665640564039457584007913129639935';
|
|
30
29
|
class StellaSwapLiquidStakingPoolHandler extends _base.default {
|
|
31
30
|
inputAsset = 'moonbeam-LOCAL-xcDOT';
|
|
32
31
|
altInputAsset = '';
|
|
@@ -256,7 +255,6 @@ class StellaSwapLiquidStakingPoolHandler extends _base.default {
|
|
|
256
255
|
return Promise.resolve([]);
|
|
257
256
|
}
|
|
258
257
|
async handleTokenApproveStep(data, path) {
|
|
259
|
-
var _priority$maxFeePerGa, _priority$maxPriority;
|
|
260
258
|
const {
|
|
261
259
|
address
|
|
262
260
|
} = data;
|
|
@@ -265,33 +263,16 @@ class StellaSwapLiquidStakingPoolHandler extends _base.default {
|
|
|
265
263
|
const derivativeTokenInfo = this.state.getAssetBySlug(this.derivativeAssets[0]);
|
|
266
264
|
const derivativeTokenContractAddress = (0, _utils._getContractAddressOfToken)(derivativeTokenInfo);
|
|
267
265
|
const evmApi = this.evmApi;
|
|
268
|
-
const
|
|
269
|
-
|
|
270
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment
|
|
271
|
-
const approveCall = inputTokenContract.methods.approve(derivativeTokenContractAddress, MAX_INT); // TODO: need test
|
|
272
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment
|
|
273
|
-
const approveEncodedCall = approveCall.encodeABI();
|
|
274
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
|
|
275
|
-
const gasLimit = await approveCall.estimateGas({
|
|
276
|
-
from: address
|
|
277
|
-
});
|
|
278
|
-
const priority = await (0, _utils2.calculateGasFeeParams)(evmApi, this.chain);
|
|
279
|
-
const transactionObject = {
|
|
280
|
-
from: address,
|
|
281
|
-
to: (0, _utils._getContractAddressOfToken)(inputTokenInfo),
|
|
282
|
-
data: approveEncodedCall,
|
|
283
|
-
gas: gasLimit,
|
|
284
|
-
gasPrice: priority.gasPrice,
|
|
285
|
-
maxFeePerGas: (_priority$maxFeePerGa = priority.maxFeePerGas) === null || _priority$maxFeePerGa === void 0 ? void 0 : _priority$maxFeePerGa.toString(),
|
|
286
|
-
maxPriorityFeePerGas: (_priority$maxPriority = priority.maxPriorityFeePerGas) === null || _priority$maxPriority === void 0 ? void 0 : _priority$maxPriority.toString()
|
|
287
|
-
};
|
|
266
|
+
const transactionObject = await (0, _web.getERC20SpendingApprovalTx)(derivativeTokenContractAddress, address, (0, _utils._getContractAddressOfToken)(inputTokenInfo), evmApi);
|
|
288
267
|
const _data = {
|
|
289
|
-
|
|
290
|
-
|
|
268
|
+
contractAddress: inputTokenSlug,
|
|
269
|
+
spenderAddress: this.derivativeAssets[0],
|
|
270
|
+
owner: address,
|
|
271
|
+
chain: this.chain
|
|
291
272
|
};
|
|
292
273
|
return Promise.resolve({
|
|
293
274
|
txChain: this.chain,
|
|
294
|
-
extrinsicType: _KoniTypes.ExtrinsicType.
|
|
275
|
+
extrinsicType: _KoniTypes.ExtrinsicType.TOKEN_SPENDING_APPROVAL,
|
|
295
276
|
extrinsic: transactionObject,
|
|
296
277
|
txData: _data,
|
|
297
278
|
transferNativeAmount: '0',
|
|
@@ -299,7 +280,7 @@ class StellaSwapLiquidStakingPoolHandler extends _base.default {
|
|
|
299
280
|
});
|
|
300
281
|
}
|
|
301
282
|
async handleSubmitStep(data, path) {
|
|
302
|
-
var _priority$
|
|
283
|
+
var _priority$maxFeePerGa, _priority$maxPriority;
|
|
303
284
|
const {
|
|
304
285
|
address,
|
|
305
286
|
amount
|
|
@@ -325,8 +306,8 @@ class StellaSwapLiquidStakingPoolHandler extends _base.default {
|
|
|
325
306
|
data: depositEncodedCall,
|
|
326
307
|
gas: gasLimit,
|
|
327
308
|
gasPrice: priority.gasPrice,
|
|
328
|
-
maxFeePerGas: (_priority$
|
|
329
|
-
maxPriorityFeePerGas: (_priority$
|
|
309
|
+
maxFeePerGas: (_priority$maxFeePerGa = priority.maxFeePerGas) === null || _priority$maxFeePerGa === void 0 ? void 0 : _priority$maxFeePerGa.toString(),
|
|
310
|
+
maxPriorityFeePerGas: (_priority$maxPriority = priority.maxPriorityFeePerGas) === null || _priority$maxPriority === void 0 ? void 0 : _priority$maxPriority.toString()
|
|
330
311
|
};
|
|
331
312
|
return {
|
|
332
313
|
txChain: this.chain,
|
|
@@ -346,7 +327,7 @@ class StellaSwapLiquidStakingPoolHandler extends _base.default {
|
|
|
346
327
|
return Promise.reject(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.UNSUPPORTED));
|
|
347
328
|
}
|
|
348
329
|
async handleYieldUnstake(amount, address, selectedTarget) {
|
|
349
|
-
var _priority$
|
|
330
|
+
var _priority$maxFeePerGa2, _priority$maxPriority2;
|
|
350
331
|
const evmApi = this.evmApi;
|
|
351
332
|
const derivativeTokenSlug = this.derivativeAssets[0];
|
|
352
333
|
const derivativeTokenInfo = this.state.getAssetBySlug(derivativeTokenSlug);
|
|
@@ -368,8 +349,8 @@ class StellaSwapLiquidStakingPoolHandler extends _base.default {
|
|
|
368
349
|
data: redeemEncodedCall,
|
|
369
350
|
gas: gasLimit,
|
|
370
351
|
gasPrice: priority.gasPrice,
|
|
371
|
-
maxFeePerGas: (_priority$
|
|
372
|
-
maxPriorityFeePerGas: (_priority$
|
|
352
|
+
maxFeePerGas: (_priority$maxFeePerGa2 = priority.maxFeePerGas) === null || _priority$maxFeePerGa2 === void 0 ? void 0 : _priority$maxFeePerGa2.toString(),
|
|
353
|
+
maxPriorityFeePerGas: (_priority$maxPriority2 = priority.maxPriorityFeePerGas) === null || _priority$maxPriority2 === void 0 ? void 0 : _priority$maxPriority2.toString()
|
|
373
354
|
};
|
|
374
355
|
return [_KoniTypes.ExtrinsicType.UNSTAKE_STDOT, transaction];
|
|
375
356
|
}
|
|
@@ -379,7 +360,7 @@ class StellaSwapLiquidStakingPoolHandler extends _base.default {
|
|
|
379
360
|
/* Other actions */
|
|
380
361
|
|
|
381
362
|
async handleYieldWithdraw(address, unstakingInfo) {
|
|
382
|
-
var _priority$
|
|
363
|
+
var _priority$maxFeePerGa3, _priority$maxPriority3;
|
|
383
364
|
const evmApi = this.evmApi;
|
|
384
365
|
const derivativeTokenSlug = this.derivativeAssets[0];
|
|
385
366
|
const derivativeTokenInfo = this.state.getAssetBySlug(derivativeTokenSlug);
|
|
@@ -401,8 +382,8 @@ class StellaSwapLiquidStakingPoolHandler extends _base.default {
|
|
|
401
382
|
data: withdrawEncodedCall,
|
|
402
383
|
gas: gasLimit,
|
|
403
384
|
gasPrice: priority.gasPrice,
|
|
404
|
-
maxFeePerGas: (_priority$
|
|
405
|
-
maxPriorityFeePerGas: (_priority$
|
|
385
|
+
maxFeePerGas: (_priority$maxFeePerGa3 = priority.maxFeePerGas) === null || _priority$maxFeePerGa3 === void 0 ? void 0 : _priority$maxFeePerGa3.toString(),
|
|
386
|
+
maxPriorityFeePerGas: (_priority$maxPriority3 = priority.maxPriorityFeePerGas) === null || _priority$maxPriority3 === void 0 ? void 0 : _priority$maxPriority3.toString()
|
|
406
387
|
}; // TODO: check tx history parsing
|
|
407
388
|
}
|
|
408
389
|
|
|
@@ -8,8 +8,8 @@ exports.default = void 0;
|
|
|
8
8
|
var _TransactionError = require("@subwallet/extension-base/background/errors/TransactionError");
|
|
9
9
|
var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
|
|
10
10
|
var _constants = require("@subwallet/extension-base/constants");
|
|
11
|
-
var _xcm = require("@subwallet/extension-base/koni/api/xcm");
|
|
12
11
|
var _utils = require("@subwallet/extension-base/koni/api/yield/helper/utils");
|
|
12
|
+
var _xcm = require("@subwallet/extension-base/services/balance-service/transfer/xcm");
|
|
13
13
|
var _utils2 = require("@subwallet/extension-base/services/chain-service/utils");
|
|
14
14
|
var _types = require("@subwallet/extension-base/types");
|
|
15
15
|
var _utils3 = require("@subwallet/extension-base/utils");
|