@subwallet/extension-base 1.1.53-beta.0 → 1.1.54-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 (96) hide show
  1. package/background/KoniTypes.d.ts +1 -9
  2. package/background/KoniTypes.js +0 -1
  3. package/background/errors/TransactionError.js +0 -9
  4. package/cjs/background/KoniTypes.js +0 -1
  5. package/cjs/background/errors/TransactionError.js +0 -9
  6. package/cjs/koni/api/staking/bonding/utils.js +6 -35
  7. package/cjs/koni/background/handlers/Extension.js +0 -85
  8. package/cjs/koni/background/handlers/State.js +5 -25
  9. package/cjs/packageInfo.js +1 -1
  10. package/cjs/services/balance-service/index.js +3 -6
  11. package/cjs/services/chain-service/constants.js +1 -1
  12. package/cjs/services/chain-service/index.js +18 -43
  13. package/cjs/services/chain-service/utils/index.js +2 -7
  14. package/cjs/services/chain-service/utils/patch.js +1 -1
  15. package/cjs/services/earning-service/constants/chains.js +2 -4
  16. package/cjs/services/earning-service/handlers/native-staking/astar.js +3 -4
  17. package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +3 -22
  18. package/cjs/services/transaction-service/index.js +0 -20
  19. package/cjs/services/transaction-service/utils.js +0 -6
  20. package/cjs/types/fee/index.js +1 -27
  21. package/cjs/utils/index.js +0 -12
  22. package/koni/api/staking/bonding/utils.d.ts +1 -3
  23. package/koni/api/staking/bonding/utils.js +6 -32
  24. package/koni/background/handlers/Extension.d.ts +0 -5
  25. package/koni/background/handlers/Extension.js +0 -85
  26. package/koni/background/handlers/State.d.ts +0 -2
  27. package/koni/background/handlers/State.js +6 -26
  28. package/package.json +7 -64
  29. package/packageInfo.js +1 -1
  30. package/services/balance-service/index.js +3 -6
  31. package/services/base/types.d.ts +0 -4
  32. package/services/chain-service/constants.js +1 -1
  33. package/services/chain-service/index.d.ts +0 -4
  34. package/services/chain-service/index.js +0 -24
  35. package/services/chain-service/utils/index.d.ts +5 -6
  36. package/services/chain-service/utils/index.js +2 -5
  37. package/services/chain-service/utils/patch.js +1 -1
  38. package/services/earning-service/constants/chains.d.ts +0 -1
  39. package/services/earning-service/constants/chains.js +0 -1
  40. package/services/earning-service/handlers/native-staking/astar.js +3 -4
  41. package/services/earning-service/handlers/native-staking/relay-chain.js +5 -24
  42. package/services/event-service/types.d.ts +0 -1
  43. package/services/transaction-service/index.js +0 -20
  44. package/services/transaction-service/utils.d.ts +0 -2
  45. package/services/transaction-service/utils.js +2 -6
  46. package/types/fee/index.d.ts +49 -2
  47. package/types/fee/index.js +1 -5
  48. package/types/yield/info/chain/target.d.ts +0 -2
  49. package/types/yield/info/pallet.d.ts +0 -4
  50. package/utils/index.d.ts +0 -1
  51. package/utils/index.js +1 -2
  52. package/background/errors/SwapError.d.ts +0 -6
  53. package/background/errors/SwapError.js +0 -57
  54. package/cjs/background/errors/SwapError.js +0 -64
  55. package/cjs/koni/api/dotsama/balance.js +0 -464
  56. package/cjs/koni/api/nft/ordinal_nft/utils.js +0 -41
  57. package/cjs/services/balance-service/helpers/subscribe/balance.js +0 -140
  58. package/cjs/services/chain-service/utils.js +0 -506
  59. package/cjs/services/migration-service/scripts/MigrateEthProvider.js +0 -17
  60. package/cjs/services/migration-service/scripts/MigratePioneerProvider.js +0 -17
  61. package/cjs/services/migration-service/scripts/MigrateProvider.js +0 -29
  62. package/cjs/services/storage-service/index.js +0 -241
  63. package/cjs/services/swap-service/handler/base-handler.js +0 -171
  64. package/cjs/services/swap-service/handler/chainflip-handler.js +0 -407
  65. package/cjs/services/swap-service/handler/hydradx-handler.js +0 -444
  66. package/cjs/services/swap-service/index.js +0 -249
  67. package/cjs/services/swap-service/utils.js +0 -126
  68. package/cjs/types/balance.js +0 -1
  69. package/cjs/types/fee/evm.js +0 -1
  70. package/cjs/types/fee/fee.js +0 -70
  71. package/cjs/types/service-base.js +0 -1
  72. package/cjs/types/swap/index.js +0 -50
  73. package/cjs/types.js +0 -1
  74. package/cjs/utils/address.js +0 -34
  75. package/cjs/utils/keyring.js +0 -57
  76. package/cjs/utils/swap.js +0 -78
  77. package/services/swap-service/handler/base-handler.d.ts +0 -38
  78. package/services/swap-service/handler/base-handler.js +0 -162
  79. package/services/swap-service/handler/chainflip-handler.d.ts +0 -30
  80. package/services/swap-service/handler/chainflip-handler.js +0 -399
  81. package/services/swap-service/handler/hydradx-handler.d.ts +0 -36
  82. package/services/swap-service/handler/hydradx-handler.js +0 -435
  83. package/services/swap-service/index.d.ts +0 -32
  84. package/services/swap-service/index.js +0 -240
  85. package/services/swap-service/utils.d.ts +0 -18
  86. package/services/swap-service/utils.js +0 -105
  87. package/types/fee/evm.d.ts +0 -49
  88. package/types/fee/evm.js +0 -1
  89. package/types/fee/fee.d.ts +0 -32
  90. package/types/fee/fee.js +0 -63
  91. package/types/service-base.d.ts +0 -10
  92. package/types/service-base.js +0 -1
  93. package/types/swap/index.d.ts +0 -166
  94. package/types/swap/index.js +0 -41
  95. package/utils/swap.d.ts +0 -3
  96. package/utils/swap.js +0 -70
@@ -1,407 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.ChainflipSwapHandler = void 0;
8
- var _swap = require("@chainflip/sdk/swap");
9
- var _chainList = require("@subwallet/chain-list");
10
- var _SwapError = require("@subwallet/extension-base/background/errors/SwapError");
11
- var _TransactionError = require("@subwallet/extension-base/background/errors/TransactionError");
12
- var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
13
- var _transfer = require("@subwallet/extension-base/koni/api/dotsama/transfer");
14
- var _transfer2 = require("@subwallet/extension-base/koni/api/tokens/evm/transfer");
15
- var _utils = require("@subwallet/extension-base/services/chain-service/utils");
16
- var _baseHandler = require("@subwallet/extension-base/services/swap-service/handler/base-handler");
17
- var _utils2 = require("@subwallet/extension-base/services/swap-service/utils");
18
- var _swap2 = require("@subwallet/extension-base/types/swap");
19
- var _bignumber = _interopRequireDefault(require("bignumber.js"));
20
- // Copyright 2019-2022 @subwallet/extension-base
21
- // SPDX-License-Identifier: Apache-2.0
22
- var ChainflipFeeType;
23
- (function (ChainflipFeeType) {
24
- ChainflipFeeType["INGRESS"] = "INGRESS";
25
- ChainflipFeeType["NETWORK"] = "NETWORK";
26
- ChainflipFeeType["EGRESS"] = "EGRESS";
27
- ChainflipFeeType["LIQUIDITY"] = "LIQUIDITY";
28
- })(ChainflipFeeType || (ChainflipFeeType = {}));
29
- const INTERMEDIARY_MAINNET_ASSET_SLUG = _chainList.COMMON_ASSETS.USDC_ETHEREUM;
30
- const INTERMEDIARY_TESTNET_ASSET_SLUG = _chainList.COMMON_ASSETS.USDC_SEPOLIA;
31
- var CHAINFLIP_QUOTE_ERROR;
32
- (function (CHAINFLIP_QUOTE_ERROR) {
33
- CHAINFLIP_QUOTE_ERROR["InsufficientLiquidity"] = "InsufficientLiquidity";
34
- CHAINFLIP_QUOTE_ERROR["InsufficientEgress"] = "is lower than minimum egress amount";
35
- CHAINFLIP_QUOTE_ERROR["InsufficientIngress"] = "amount is lower than estimated ingress fee";
36
- })(CHAINFLIP_QUOTE_ERROR || (CHAINFLIP_QUOTE_ERROR = {}));
37
- class ChainflipSwapHandler {
38
- constructor(chainService, balanceService) {
39
- let isTestnet = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
40
- this.swapBaseHandler = new _baseHandler.SwapBaseHandler({
41
- chainService,
42
- balanceService,
43
- providerName: isTestnet ? 'Chainflip Testnet' : 'Chainflip',
44
- providerSlug: isTestnet ? _swap2.SwapProviderId.CHAIN_FLIP_TESTNET : _swap2.SwapProviderId.CHAIN_FLIP_MAINNET
45
- });
46
- this.isTestnet = isTestnet;
47
- this.swapSdk = new _swap.SwapSDK({
48
- network: isTestnet ? 'perseverance' : 'mainnet'
49
- });
50
- }
51
- get chainService() {
52
- return this.swapBaseHandler.chainService;
53
- }
54
- get balanceService() {
55
- return this.swapBaseHandler.balanceService;
56
- }
57
- get providerInfo() {
58
- return this.swapBaseHandler.providerInfo;
59
- }
60
- get name() {
61
- return this.swapBaseHandler.name;
62
- }
63
- get slug() {
64
- return this.swapBaseHandler.slug;
65
- }
66
- get assetMapping() {
67
- if (this.isTestnet) {
68
- return _utils2.CHAIN_FLIP_SUPPORTED_TESTNET_ASSET_MAPPING;
69
- } else {
70
- return _utils2.CHAIN_FLIP_SUPPORTED_MAINNET_ASSET_MAPPING;
71
- }
72
- }
73
- get chainMapping() {
74
- if (this.isTestnet) {
75
- return _utils2.CHAIN_FLIP_SUPPORTED_TESTNET_MAPPING;
76
- } else {
77
- return _utils2.CHAIN_FLIP_SUPPORTED_MAINNET_MAPPING;
78
- }
79
- }
80
- get intermediaryAssetSlug() {
81
- if (this.isTestnet) {
82
- return INTERMEDIARY_TESTNET_ASSET_SLUG;
83
- } else {
84
- return INTERMEDIARY_MAINNET_ASSET_SLUG;
85
- }
86
- }
87
- async validateSwapRequest(request) {
88
- try {
89
- // todo: risk of matching wrong chain, asset can lead to loss of funds
90
-
91
- const fromAsset = this.chainService.getAssetBySlug(request.pair.from);
92
- const toAsset = this.chainService.getAssetBySlug(request.pair.to);
93
- const srcChain = fromAsset.originChain;
94
- const destChain = toAsset.originChain;
95
- const srcChainInfo = this.chainService.getChainInfoByKey(srcChain);
96
- const srcChainId = this.chainMapping[srcChain];
97
- const destChainId = this.chainMapping[destChain];
98
- const fromAssetId = this.assetMapping[fromAsset.slug];
99
- const toAssetId = this.assetMapping[toAsset.slug];
100
- if (!srcChainId || !destChainId || !fromAssetId || !toAssetId) {
101
- return {
102
- error: _swap2.SwapErrorType.ASSET_NOT_SUPPORTED
103
- };
104
- }
105
- const [supportedDestChains, srcAssets, destAssets] = await Promise.all([this.swapSdk.getChains(srcChainId), this.swapSdk.getAssets(srcChainId), this.swapSdk.getAssets(destChainId)]);
106
- const supportedDestChainId = supportedDestChains.find(c => c.chain === destChainId);
107
- const srcAssetData = srcAssets.find(a => a.asset === fromAssetId);
108
- const destAssetData = destAssets.find(a => a.asset === toAssetId);
109
- if (!destAssetData || !srcAssetData || !supportedDestChainId) {
110
- return {
111
- error: _swap2.SwapErrorType.UNKNOWN
112
- };
113
- }
114
- const bnAmount = new _bignumber.default(request.fromAmount);
115
- const bnMinSwap = new _bignumber.default(srcAssetData.minimumSwapAmount);
116
- if (srcAssetData.maximumSwapAmount) {
117
- const bnMaxProtocolSwap = new _bignumber.default(srcAssetData.maximumSwapAmount);
118
- if (bnMinSwap.gte(bnMaxProtocolSwap)) {
119
- return {
120
- error: _swap2.SwapErrorType.UNKNOWN
121
- };
122
- }
123
- if (bnAmount.gte(bnMaxProtocolSwap)) {
124
- return {
125
- error: _swap2.SwapErrorType.SWAP_EXCEED_ALLOWANCE,
126
- metadata: {
127
- minSwap: {
128
- value: srcAssetData.minimumSwapAmount,
129
- decimals: (0, _utils._getAssetDecimals)(fromAsset),
130
- symbol: fromAsset.symbol
131
- },
132
- maxSwap: {
133
- value: bnMaxProtocolSwap.toString(),
134
- decimals: (0, _utils._getAssetDecimals)(fromAsset),
135
- symbol: fromAsset.symbol
136
- },
137
- chain: srcChainInfo
138
- }
139
- };
140
- }
141
- }
142
- if (bnAmount.lt(bnMinSwap)) {
143
- // might miss case when minSwap is 0
144
- return {
145
- error: _swap2.SwapErrorType.NOT_MEET_MIN_SWAP,
146
- metadata: {
147
- minSwap: {
148
- value: srcAssetData.minimumSwapAmount,
149
- decimals: (0, _utils._getAssetDecimals)(fromAsset),
150
- symbol: fromAsset.symbol
151
- },
152
- maxSwap: {
153
- value: srcAssetData.maximumSwapAmount,
154
- decimals: (0, _utils._getAssetDecimals)(fromAsset),
155
- symbol: fromAsset.symbol
156
- },
157
- chain: srcChainInfo
158
- }
159
- };
160
- }
161
- return {
162
- metadata: {
163
- minSwap: {
164
- value: srcAssetData.minimumSwapAmount,
165
- decimals: (0, _utils._getAssetDecimals)(fromAsset),
166
- symbol: fromAsset.symbol
167
- },
168
- maxSwap: {
169
- value: srcAssetData.maximumSwapAmount,
170
- decimals: (0, _utils._getAssetDecimals)(fromAsset),
171
- symbol: fromAsset.symbol
172
- },
173
- chain: srcChainInfo
174
- }
175
- };
176
- } catch (e) {
177
- return {
178
- error: _swap2.SwapErrorType.UNKNOWN
179
- };
180
- }
181
- }
182
- parseSwapPath(fromAsset, toAsset) {
183
- if (toAsset.slug !== this.intermediaryAssetSlug && fromAsset.slug !== this.intermediaryAssetSlug) {
184
- // Chainflip always use USDC as intermediary
185
- return [fromAsset.slug, this.intermediaryAssetSlug, toAsset.slug]; // todo: generalize this
186
- }
187
-
188
- return [fromAsset.slug, toAsset.slug];
189
- }
190
- async getSwapQuote(request) {
191
- const fromAsset = this.chainService.getAssetBySlug(request.pair.from);
192
- const toAsset = this.chainService.getAssetBySlug(request.pair.to);
193
- const fromChain = this.chainService.getChainInfoByKey(fromAsset.originChain);
194
- const fromChainNativeTokenSlug = (0, _utils._getChainNativeTokenSlug)(fromChain);
195
- if (!fromAsset || !toAsset) {
196
- return new _SwapError.SwapError(_swap2.SwapErrorType.UNKNOWN);
197
- }
198
- const earlyValidation = await this.validateSwapRequest(request);
199
- const metadata = earlyValidation.metadata;
200
- if (earlyValidation.error) {
201
- return (0, _utils2.getChainflipEarlyValidationError)(earlyValidation.error, metadata);
202
- }
203
- const srcChainId = this.chainMapping[fromAsset.originChain];
204
- const destChainId = this.chainMapping[toAsset.originChain];
205
- const fromAssetId = this.assetMapping[fromAsset.slug];
206
- const toAssetId = this.assetMapping[toAsset.slug];
207
- try {
208
- var _metadata$maxSwap;
209
- const quoteResponse = await this.swapSdk.getQuote({
210
- srcChain: srcChainId,
211
- destChain: destChainId,
212
- srcAsset: fromAssetId,
213
- destAsset: toAssetId,
214
- amount: request.fromAmount
215
- });
216
- const feeComponent = [];
217
- quoteResponse.quote.includedFees.forEach(fee => {
218
- switch (fee.type) {
219
- case ChainflipFeeType.INGRESS:
220
-
221
- // eslint-disable-next-line no-fallthrough
222
- case ChainflipFeeType.EGRESS:
223
- {
224
- const tokenSlug = Object.keys(this.assetMapping).find(assetSlug => this.assetMapping[assetSlug] === fee.asset);
225
- feeComponent.push({
226
- tokenSlug,
227
- amount: fee.amount,
228
- feeType: _swap2.SwapFeeType.NETWORK_FEE
229
- });
230
- break;
231
- }
232
- case ChainflipFeeType.NETWORK:
233
-
234
- // eslint-disable-next-line no-fallthrough
235
- case ChainflipFeeType.LIQUIDITY:
236
- {
237
- const tokenSlug = Object.keys(this.assetMapping).find(assetSlug => this.assetMapping[assetSlug] === fee.asset);
238
- feeComponent.push({
239
- tokenSlug,
240
- amount: fee.amount,
241
- feeType: _swap2.SwapFeeType.PLATFORM_FEE
242
- });
243
- break;
244
- }
245
- }
246
- });
247
- const defaultFeeToken = (0, _utils._isNativeToken)(fromAsset) ? fromAsset.slug : fromChainNativeTokenSlug;
248
- return {
249
- pair: request.pair,
250
- fromAmount: request.fromAmount,
251
- toAmount: quoteResponse.quote.egressAmount.toString(),
252
- rate: (0, _utils2.calculateSwapRate)(request.fromAmount, quoteResponse.quote.egressAmount.toString(), fromAsset, toAsset),
253
- provider: this.providerInfo,
254
- aliveUntil: +Date.now() + (_utils2.SWAP_QUOTE_TIMEOUT_MAP[this.slug] || _utils2.SWAP_QUOTE_TIMEOUT_MAP.default),
255
- minSwap: metadata.minSwap.value,
256
- maxSwap: (_metadata$maxSwap = metadata.maxSwap) === null || _metadata$maxSwap === void 0 ? void 0 : _metadata$maxSwap.value,
257
- estimatedArrivalTime: quoteResponse.quote.estimatedDurationSeconds,
258
- // in seconds
259
- isLowLiquidity: quoteResponse.quote.lowLiquidityWarning,
260
- feeInfo: {
261
- feeComponent: feeComponent,
262
- defaultFeeToken,
263
- feeOptions: [defaultFeeToken]
264
- },
265
- route: {
266
- path: this.parseSwapPath(fromAsset, toAsset)
267
- }
268
- };
269
- } catch (e) {
270
- var _error$response;
271
- const error = e;
272
- const errorObj = error === null || error === void 0 ? void 0 : (_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.data;
273
- if (errorObj && errorObj.error && errorObj.error.includes(CHAINFLIP_QUOTE_ERROR.InsufficientLiquidity)) {
274
- // todo: Chainflip will improve this
275
- return new _SwapError.SwapError(_swap2.SwapErrorType.NOT_ENOUGH_LIQUIDITY);
276
- }
277
- if (errorObj && errorObj.message && errorObj.message.includes(CHAINFLIP_QUOTE_ERROR.InsufficientLiquidity)) {
278
- return new _SwapError.SwapError(_swap2.SwapErrorType.NOT_ENOUGH_LIQUIDITY);
279
- }
280
- return new _SwapError.SwapError(_swap2.SwapErrorType.ERROR_FETCHING_QUOTE);
281
- }
282
- }
283
- async validateSwapProcess(params) {
284
- const amount = params.selectedQuote.fromAmount;
285
- const bnAmount = new _bignumber.default(amount);
286
- if (bnAmount.lte(0)) {
287
- return [new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.INVALID_PARAMS, 'Amount must be greater than 0')];
288
- }
289
- let isXcmOk = false;
290
- for (const [index, step] of params.process.steps.entries()) {
291
- const getErrors = async () => {
292
- switch (step.type) {
293
- case _swap2.SwapStepType.DEFAULT:
294
- return Promise.resolve([]);
295
- case _swap2.SwapStepType.TOKEN_APPROVAL:
296
- return Promise.reject(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.UNSUPPORTED));
297
- default:
298
- return this.swapBaseHandler.validateSwapStep(params, isXcmOk, index);
299
- }
300
- };
301
- const errors = await getErrors();
302
- if (errors.length) {
303
- return errors;
304
- } else if (step.type === _swap2.SwapStepType.XCM) {
305
- isXcmOk = true;
306
- }
307
- }
308
- return [];
309
- }
310
- async handleSubmitStep(params) {
311
- const {
312
- address,
313
- quote,
314
- recipient
315
- } = params;
316
- const pair = quote.pair;
317
- const fromAsset = this.chainService.getAssetBySlug(pair.from);
318
- const toAsset = this.chainService.getAssetBySlug(pair.to);
319
- const chainInfo = this.chainService.getChainInfoByKey(fromAsset.originChain);
320
- const chainType = (0, _utils._isSubstrateChain)(chainInfo) ? _KoniTypes.ChainType.SUBSTRATE : _KoniTypes.ChainType.EVM;
321
- const receiver = recipient !== null && recipient !== void 0 ? recipient : address;
322
- const srcChainId = this.chainMapping[fromAsset.originChain];
323
- const destChainId = this.chainMapping[toAsset.originChain];
324
- const fromAssetId = this.assetMapping[fromAsset.slug];
325
- const toAssetId = this.assetMapping[toAsset.slug];
326
- const depositAddressResponse = await this.swapSdk.requestDepositAddress({
327
- srcChain: srcChainId,
328
- destChain: destChainId,
329
- srcAsset: fromAssetId,
330
- destAsset: toAssetId,
331
- destAddress: receiver,
332
- amount: quote.fromAmount
333
- });
334
- const txData = {
335
- address,
336
- provider: this.providerInfo,
337
- quote: params.quote,
338
- slippage: params.slippage,
339
- recipient,
340
- depositChannelId: depositAddressResponse.depositChannelId,
341
- depositAddress: depositAddressResponse.depositAddress,
342
- process: params.process
343
- };
344
- let extrinsic;
345
- if (chainType === _KoniTypes.ChainType.SUBSTRATE) {
346
- const chainApi = this.chainService.getSubstrateApi(chainInfo.slug);
347
- const substrateApi = await chainApi.isReady;
348
- const [submittableExtrinsic] = await (0, _transfer.createTransferExtrinsic)({
349
- from: address,
350
- networkKey: chainInfo.slug,
351
- substrateApi,
352
- to: depositAddressResponse.depositAddress,
353
- tokenInfo: fromAsset,
354
- transferAll: false,
355
- // always false, because we do not allow swapping all the balance
356
- value: quote.fromAmount
357
- });
358
- extrinsic = submittableExtrinsic;
359
- } else {
360
- if ((0, _utils._isNativeToken)(fromAsset)) {
361
- const [transactionConfig] = await (0, _transfer2.getEVMTransactionObject)(chainInfo, address, depositAddressResponse.depositAddress, quote.fromAmount, false, this.chainService.getEvmApi(chainInfo.slug));
362
- extrinsic = transactionConfig;
363
- } else {
364
- const [transactionConfig] = await (0, _transfer2.getERC20TransactionObject)((0, _utils._getContractAddressOfToken)(fromAsset), chainInfo, address, depositAddressResponse.depositAddress, quote.fromAmount, false, this.chainService.getEvmApi(chainInfo.slug));
365
- extrinsic = transactionConfig;
366
- }
367
- }
368
- return {
369
- txChain: fromAsset.originChain,
370
- txData,
371
- extrinsic,
372
- transferNativeAmount: (0, _utils._isNativeToken)(fromAsset) ? quote.fromAmount : '0',
373
- // todo
374
- extrinsicType: _KoniTypes.ExtrinsicType.SWAP,
375
- chainType
376
- };
377
- }
378
- async handleSwapProcess(params) {
379
- const {
380
- currentStep,
381
- process
382
- } = params;
383
- const type = process.steps[currentStep].type;
384
- switch (type) {
385
- case _swap2.SwapStepType.DEFAULT:
386
- return Promise.reject(new _TransactionError.TransactionError(_KoniTypes.BasicTxErrorType.UNSUPPORTED));
387
- case _swap2.SwapStepType.SWAP:
388
- return this.handleSubmitStep(params);
389
- default:
390
- return this.handleSubmitStep(params);
391
- }
392
- }
393
- async getSubmitStep(params) {
394
- if (params.selectedQuote) {
395
- const submitStep = {
396
- name: 'Swap',
397
- type: _swap2.SwapStepType.SWAP
398
- };
399
- return Promise.resolve([submitStep, params.selectedQuote.feeInfo]);
400
- }
401
- return Promise.resolve(undefined);
402
- }
403
- generateOptimalProcess(params) {
404
- return this.swapBaseHandler.generateOptimalProcess(params, [this.getSubmitStep]);
405
- }
406
- }
407
- exports.ChainflipSwapHandler = ChainflipSwapHandler;