@subwallet/extension-base 1.2.8-0 → 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.
Files changed (130) hide show
  1. package/background/KoniTypes.d.ts +7 -3
  2. package/background/KoniTypes.js +1 -1
  3. package/cjs/background/KoniTypes.js +1 -1
  4. package/cjs/core/logic-validation/transfer.js +22 -2
  5. package/cjs/core/substrate/foreign-asset-pallet.js +16 -0
  6. package/cjs/core/substrate/xcm-parser.js +26 -4
  7. package/cjs/koni/api/contract-handler/evm/web3.js +58 -0
  8. package/cjs/{services/chain-service/helper → koni/api/contract-handler/utils}/index.js +19 -2
  9. package/cjs/koni/api/contract-handler/wasm/index.js +49 -0
  10. package/cjs/koni/api/nft/evm_nft/index.js +6 -6
  11. package/cjs/koni/api/nft/wasm_nft/index.js +16 -16
  12. package/cjs/koni/api/yield/helper/utils.js +1 -22
  13. package/cjs/koni/background/handlers/Extension.js +128 -64
  14. package/cjs/packageInfo.js +1 -1
  15. package/cjs/services/balance-service/helpers/index.js +11 -0
  16. package/cjs/services/balance-service/helpers/process.js +50 -0
  17. package/cjs/services/balance-service/helpers/subscribe/evm.js +11 -3
  18. package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +10 -24
  19. package/cjs/services/balance-service/index.js +20 -0
  20. package/cjs/{koni/api/tokens/evm/transfer.js → services/balance-service/transfer/smart-contract.js} +33 -38
  21. package/cjs/{koni/api/dotsama/transfer.js → services/balance-service/transfer/token.js} +3 -3
  22. package/cjs/{koni/api → services/balance-service/transfer}/xcm/index.js +26 -6
  23. package/cjs/{koni/api → services/balance-service/transfer}/xcm/polkadotXcm.js +2 -2
  24. package/cjs/services/balance-service/transfer/xcm/snowBridge.js +60 -0
  25. package/cjs/{koni/api → services/balance-service/transfer}/xcm/xTokens.js +1 -1
  26. package/cjs/{koni/api → services/balance-service/transfer}/xcm/xcmPallet.js +1 -1
  27. package/cjs/services/chain-service/handler/EvmChainHandler.js +3 -3
  28. package/cjs/services/chain-service/handler/SubstrateChainHandler.js +4 -4
  29. package/cjs/services/chain-service/health-check/utils/asset-info.js +18 -18
  30. package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +16 -35
  31. package/cjs/services/earning-service/handlers/special.js +1 -1
  32. package/cjs/services/swap-service/handler/base-handler.js +3 -2
  33. package/cjs/services/swap-service/handler/chainflip-handler.js +10 -9
  34. package/cjs/services/swap-service/handler/hydradx-handler.js +12 -11
  35. package/cjs/services/swap-service/index.js +3 -2
  36. package/cjs/services/swap-service/utils.js +1 -13
  37. package/cjs/services/transaction-service/index.js +2 -2
  38. package/cjs/types/service-base.js +30 -1
  39. package/cjs/types/swap/index.js +0 -4
  40. package/cjs/utils/eth/parseTransaction/index.js +10 -10
  41. package/core/logic-validation/transfer.d.ts +1 -1
  42. package/core/logic-validation/transfer.js +22 -3
  43. package/core/substrate/foreign-asset-pallet.d.ts +8 -0
  44. package/core/substrate/foreign-asset-pallet.js +9 -0
  45. package/core/substrate/xcm-parser.d.ts +3 -1
  46. package/core/substrate/xcm-parser.js +25 -5
  47. package/koni/api/contract-handler/evm/web3.d.ts +8 -0
  48. package/koni/api/contract-handler/evm/web3.js +45 -0
  49. package/{services/chain-service/helper → koni/api/contract-handler/utils}/index.d.ts +4 -0
  50. package/{services/chain-service/helper → koni/api/contract-handler/utils}/index.js +15 -1
  51. package/koni/api/contract-handler/utils/snowbridge_gateway_abi.json +1122 -0
  52. package/koni/api/{tokens → contract-handler}/wasm/index.d.ts +0 -2
  53. package/koni/api/{tokens → contract-handler}/wasm/index.js +1 -25
  54. package/koni/api/nft/evm_nft/index.js +1 -1
  55. package/koni/api/nft/wasm_nft/index.js +2 -2
  56. package/koni/api/yield/helper/utils.d.ts +1 -5
  57. package/koni/api/yield/helper/utils.js +0 -16
  58. package/koni/background/handlers/Extension.d.ts +2 -0
  59. package/koni/background/handlers/Extension.js +82 -18
  60. package/package.json +85 -79
  61. package/packageInfo.js +1 -1
  62. package/services/balance-service/helpers/index.d.ts +1 -0
  63. package/services/balance-service/helpers/index.js +2 -1
  64. package/services/balance-service/helpers/process.d.ts +13 -0
  65. package/services/balance-service/helpers/process.js +43 -0
  66. package/services/balance-service/helpers/subscribe/evm.js +11 -3
  67. package/services/balance-service/helpers/subscribe/substrate/index.js +11 -25
  68. package/services/balance-service/index.d.ts +3 -0
  69. package/services/balance-service/index.js +21 -1
  70. package/services/balance-service/transfer/smart-contract.d.ts +7 -0
  71. package/{koni/api/tokens/evm/transfer.js → services/balance-service/transfer/smart-contract.js} +28 -31
  72. package/{koni/api/dotsama/transfer.js → services/balance-service/transfer/token.js} +4 -4
  73. package/{koni/api → services/balance-service/transfer}/xcm/index.d.ts +9 -3
  74. package/{koni/api → services/balance-service/transfer}/xcm/index.js +21 -3
  75. package/{koni/api → services/balance-service/transfer}/xcm/polkadotXcm.js +3 -3
  76. package/services/balance-service/transfer/xcm/snowBridge.d.ts +4 -0
  77. package/services/balance-service/transfer/xcm/snowBridge.js +54 -0
  78. package/{koni/api → services/balance-service/transfer}/xcm/xTokens.js +1 -1
  79. package/{koni/api → services/balance-service/transfer}/xcm/xcmPallet.js +1 -1
  80. package/services/chain-service/handler/EvmChainHandler.js +1 -1
  81. package/services/chain-service/handler/SubstrateChainHandler.js +2 -2
  82. package/services/chain-service/health-check/utils/asset-info.js +3 -3
  83. package/services/earning-service/handlers/liquid-staking/stella-swap.js +16 -35
  84. package/services/earning-service/handlers/special.js +1 -1
  85. package/services/swap-service/handler/base-handler.d.ts +5 -5
  86. package/services/swap-service/handler/base-handler.js +4 -3
  87. package/services/swap-service/handler/chainflip-handler.d.ts +4 -4
  88. package/services/swap-service/handler/chainflip-handler.js +7 -6
  89. package/services/swap-service/handler/hydradx-handler.d.ts +6 -6
  90. package/services/swap-service/handler/hydradx-handler.js +12 -11
  91. package/services/swap-service/index.d.ts +3 -2
  92. package/services/swap-service/index.js +4 -3
  93. package/services/swap-service/utils.d.ts +1 -3
  94. package/services/swap-service/utils.js +1 -11
  95. package/services/transaction-service/index.js +2 -2
  96. package/types/service-base.d.ts +31 -3
  97. package/types/service-base.js +23 -1
  98. package/types/swap/index.d.ts +8 -30
  99. package/types/swap/index.js +0 -4
  100. package/types/yield/actions/join/submit.d.ts +7 -4
  101. package/utils/eth/parseTransaction/index.js +1 -1
  102. package/cjs/koni/api/tokens/evm/balance.js +0 -18
  103. package/cjs/koni/api/tokens/evm/web3.js +0 -17
  104. package/cjs/koni/api/tokens/index.js +0 -17
  105. package/cjs/koni/api/tokens/wasm/index.js +0 -74
  106. package/koni/api/tokens/evm/balance.d.ts +0 -2
  107. package/koni/api/tokens/evm/balance.js +0 -12
  108. package/koni/api/tokens/evm/transfer.d.ts +0 -17
  109. package/koni/api/tokens/evm/web3.d.ts +0 -3
  110. package/koni/api/tokens/evm/web3.js +0 -9
  111. package/koni/api/tokens/index.d.ts +0 -1
  112. package/koni/api/tokens/index.js +0 -11
  113. /package/cjs/koni/api/{tokens → contract-handler}/wasm/utils.js +0 -0
  114. /package/cjs/{koni/api → services/balance-service/transfer}/xcm/utils.js +0 -0
  115. /package/{services/chain-service/helper → koni/api/contract-handler/utils}/azero_domain_registry_abi.json +0 -0
  116. /package/{services/chain-service/helper → koni/api/contract-handler/utils}/erc20_abi.json +0 -0
  117. /package/{services/chain-service/helper → koni/api/contract-handler/utils}/erc721_abi.json +0 -0
  118. /package/{services/chain-service/helper → koni/api/contract-handler/utils}/neuroguns_psp34_abi.json +0 -0
  119. /package/{services/chain-service/helper → koni/api/contract-handler/utils}/pink_psp34_abi.json +0 -0
  120. /package/{services/chain-service/helper → koni/api/contract-handler/utils}/psp22_abi.json +0 -0
  121. /package/{services/chain-service/helper → koni/api/contract-handler/utils}/psp34_abi.json +0 -0
  122. /package/{services/chain-service/helper → koni/api/contract-handler/utils}/test_erc721_abi.json +0 -0
  123. /package/koni/api/{tokens → contract-handler}/wasm/utils.d.ts +0 -0
  124. /package/koni/api/{tokens → contract-handler}/wasm/utils.js +0 -0
  125. /package/{koni/api/dotsama/transfer.d.ts → services/balance-service/transfer/token.d.ts} +0 -0
  126. /package/{koni/api → services/balance-service/transfer}/xcm/polkadotXcm.d.ts +0 -0
  127. /package/{koni/api → services/balance-service/transfer}/xcm/utils.d.ts +0 -0
  128. /package/{koni/api → services/balance-service/transfer}/xcm/utils.js +0 -0
  129. /package/{koni/api → services/balance-service/transfer}/xcm/xTokens.d.ts +0 -0
  130. /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;
@@ -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.handleTransferBalanceResult = void 0;
11
- var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
12
- var _web = require("@subwallet/extension-base/koni/api/tokens/evm/web3");
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 _helper = require("@subwallet/extension-base/services/chain-service/helper");
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, _utils.calculateGasFeeParams)(web3Api, networkKey);
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, _utils.calculateGasFeeParams)(evmApi, networkKey)]);
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(_helper._ERC721_ABI, contractAddress);
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, _utils.calculateGasFeeParams)(web3Api, chain)]);
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/tokens/wasm");
10
- var _utils = require("@subwallet/extension-base/koni/api/tokens/wasm/utils");
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 _polkadotXcm = require("@subwallet/extension-base/koni/api/xcm/polkadotXcm");
9
- var _xcmPallet = require("@subwallet/extension-base/koni/api/xcm/xcmPallet");
10
- var _xTokens = require("@subwallet/extension-base/koni/api/xcm/xTokens");
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 createXcmExtrinsic = async _ref => {
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
- } = _ref;
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/koni/api/xcm/utils");
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/koni/api/xcm/utils");
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/koni/api/xcm/utils");
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(_helper._ERC721_ABI, contractAddress);
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(_helper._ERC20_ABI, contractAddress);
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/tokens/wasm/utils");
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 _helper = require("../helper");
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, _helper._PSP22_ABI, contractAddress);
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, _helper._PSP34_ABI, contractAddress);
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/tokens/evm/web3");
9
- var _utils = require("@subwallet/extension-base/koni/api/tokens/wasm/utils");
10
- var _helper = require("@subwallet/extension-base/services/chain-service/helper");
11
- var _utils2 = require("@subwallet/extension-base/services/chain-service/utils");
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, _utils2._getTokenOnChainAssetId)(asset)], [api.query.assets.metadata, (0, _utils2._getTokenOnChainAssetId)(asset)]]);
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, _utils2._getTokenOnChainInfo)(asset);
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, _utils2._getTokenOnChainInfo)(asset);
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, _utils2._getTokenOnChainInfo)(asset);
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, _utils2._getTokenOnChainInfo)(asset);
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, _utils2._getTokenOnChainInfo)(asset);
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, _utils2._getTokenOnChainAssetId)(asset));
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, _utils2._getTokenOnChainAssetId)(asset)], [api.query.assetRegistry.assetMetadataMap, (0, _utils2._getTokenOnChainAssetId)(asset)]]);
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, _utils2._getContractAddressOfToken)(asset);
164
- const tokenContract = new _apiContract.ContractPromise(api, _helper._PSP22_ABI, contractAddress);
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, _utils.getDefaultWeightV2)(api)
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, _utils.getDefaultWeightV2)(api)
170
+ gasLimit: (0, _utils2.getDefaultWeightV2)(api)
171
171
  }), tokenContract.query['psp22Metadata::tokenDecimals'](contractAddress, {
172
- gasLimit: (0, _utils.getDefaultWeightV2)(api)
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, _utils2._getContractAddressOfToken)(asset);
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/tokens/evm/web3");
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 inputTokenContract = (0, _web.getERC20Contract)((0, _utils._getContractAddressOfToken)(inputTokenInfo), evmApi);
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
- inputTokenSlug: inputTokenSlug,
290
- spenderTokenSlug: this.derivativeAssets[0]
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.TOKEN_APPROVE,
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$maxFeePerGa2, _priority$maxPriority2;
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$maxFeePerGa2 = priority.maxFeePerGas) === null || _priority$maxFeePerGa2 === void 0 ? void 0 : _priority$maxFeePerGa2.toString(),
329
- maxPriorityFeePerGas: (_priority$maxPriority2 = priority.maxPriorityFeePerGas) === null || _priority$maxPriority2 === void 0 ? void 0 : _priority$maxPriority2.toString()
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$maxFeePerGa3, _priority$maxPriority3;
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$maxFeePerGa3 = priority.maxFeePerGas) === null || _priority$maxFeePerGa3 === void 0 ? void 0 : _priority$maxFeePerGa3.toString(),
372
- maxPriorityFeePerGas: (_priority$maxPriority3 = priority.maxPriorityFeePerGas) === null || _priority$maxPriority3 === void 0 ? void 0 : _priority$maxPriority3.toString()
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$maxFeePerGa4, _priority$maxPriority4;
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$maxFeePerGa4 = priority.maxFeePerGas) === null || _priority$maxFeePerGa4 === void 0 ? void 0 : _priority$maxFeePerGa4.toString(),
405
- maxPriorityFeePerGas: (_priority$maxPriority4 = priority.maxPriorityFeePerGas) === null || _priority$maxPriority4 === void 0 ? void 0 : _priority$maxPriority4.toString()
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");