@openocean.finance/widget 1.0.27 → 1.0.29

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 (110) hide show
  1. package/dist/esm/components/AmountInput/AmountInputEndAdornment.js +46 -39
  2. package/dist/esm/components/AmountInput/AmountInputEndAdornment.js.map +1 -1
  3. package/dist/esm/components/Messages/WarningMessages.js +2 -2
  4. package/dist/esm/components/Messages/WarningMessages.js.map +1 -1
  5. package/dist/esm/components/Step/Step.js +37 -29
  6. package/dist/esm/components/Step/Step.js.map +1 -1
  7. package/dist/esm/components/TransactionDetails.js +2 -5
  8. package/dist/esm/components/TransactionDetails.js.map +1 -1
  9. package/dist/esm/config/version.d.ts +1 -1
  10. package/dist/esm/config/version.js +1 -1
  11. package/dist/esm/cross/adapters/AcrossAdapter.d.ts +15 -0
  12. package/dist/esm/cross/adapters/AcrossAdapter.js +166 -0
  13. package/dist/esm/cross/adapters/AcrossAdapter.js.map +1 -0
  14. package/dist/esm/cross/adapters/BaseSwapAdapter.d.ts +107 -0
  15. package/dist/esm/cross/adapters/BaseSwapAdapter.js +44 -0
  16. package/dist/esm/cross/adapters/BaseSwapAdapter.js.map +1 -0
  17. package/dist/esm/cross/adapters/DebridgeAdapter.d.ts +20 -0
  18. package/dist/esm/cross/adapters/DebridgeAdapter.js +264 -0
  19. package/dist/esm/cross/adapters/DebridgeAdapter.js.map +1 -0
  20. package/dist/esm/cross/adapters/LifiAdapter.d.ts +19 -0
  21. package/dist/esm/cross/adapters/LifiAdapter.js +169 -0
  22. package/dist/esm/cross/adapters/LifiAdapter.js.map +1 -0
  23. package/dist/esm/cross/adapters/MayanAdapter.d.ts +14 -0
  24. package/dist/esm/cross/adapters/MayanAdapter.js +119 -0
  25. package/dist/esm/cross/adapters/MayanAdapter.js.map +1 -0
  26. package/dist/esm/cross/adapters/NearIntentsAdapter.d.ts +21 -0
  27. package/dist/esm/cross/adapters/NearIntentsAdapter.js +425 -0
  28. package/dist/esm/cross/adapters/NearIntentsAdapter.js.map +1 -0
  29. package/dist/esm/cross/adapters/OptimexAdapter.d.ts +19 -0
  30. package/dist/esm/cross/adapters/OptimexAdapter.js +216 -0
  31. package/dist/esm/cross/adapters/OptimexAdapter.js.map +1 -0
  32. package/dist/esm/cross/adapters/OrbiterAdapter.d.ts +20 -0
  33. package/dist/esm/cross/adapters/OrbiterAdapter.js +213 -0
  34. package/dist/esm/cross/adapters/OrbiterAdapter.js.map +1 -0
  35. package/dist/esm/cross/adapters/RelayAdapter.d.ts +14 -0
  36. package/dist/esm/cross/adapters/RelayAdapter.js +171 -0
  37. package/dist/esm/cross/adapters/RelayAdapter.js.map +1 -0
  38. package/dist/esm/cross/adapters/SymbiosisAdapter.d.ts +14 -0
  39. package/dist/esm/cross/adapters/SymbiosisAdapter.js +120 -0
  40. package/dist/esm/cross/adapters/SymbiosisAdapter.js.map +1 -0
  41. package/dist/esm/cross/adapters/XYFinanceAdapter.d.ts +14 -0
  42. package/dist/esm/cross/adapters/XYFinanceAdapter.js +177 -0
  43. package/dist/esm/cross/adapters/XYFinanceAdapter.js.map +1 -0
  44. package/dist/esm/cross/adapters/index.d.ts +2 -0
  45. package/dist/esm/cross/adapters/index.js +10 -0
  46. package/dist/esm/cross/adapters/index.js.map +1 -0
  47. package/dist/esm/cross/constants/index.d.ts +202 -0
  48. package/dist/esm/cross/constants/index.js +183 -0
  49. package/dist/esm/cross/constants/index.js.map +1 -0
  50. package/dist/esm/cross/crossChainQuote.d.ts +25 -0
  51. package/dist/esm/cross/crossChainQuote.js +127 -0
  52. package/dist/esm/cross/crossChainQuote.js.map +1 -0
  53. package/dist/esm/cross/factory.d.ts +9 -0
  54. package/dist/esm/cross/factory.js +125 -0
  55. package/dist/esm/cross/factory.js.map +1 -0
  56. package/dist/esm/cross/registry.d.ts +12 -0
  57. package/dist/esm/cross/registry.js +52 -0
  58. package/dist/esm/cross/registry.js.map +1 -0
  59. package/dist/esm/hooks/useChain.d.ts +1 -1
  60. package/dist/esm/hooks/useGasRefuel.d.ts +1 -1
  61. package/dist/esm/hooks/useGasSufficiencyBridge.js +1 -2
  62. package/dist/esm/hooks/useGasSufficiencyBridge.js.map +1 -1
  63. package/dist/esm/hooks/useRouteExecution.js +2 -1
  64. package/dist/esm/hooks/useRouteExecution.js.map +1 -1
  65. package/dist/esm/hooks/useRoutes.js +50 -32
  66. package/dist/esm/hooks/useRoutes.js.map +1 -1
  67. package/dist/esm/hooks/useSettingMonitor.js +1 -0
  68. package/dist/esm/hooks/useSettingMonitor.js.map +1 -1
  69. package/dist/esm/hooks/useTokenAddressBalance.d.ts +1 -1
  70. package/dist/esm/hooks/useTokenPrice.js +4 -2
  71. package/dist/esm/hooks/useTokenPrice.js.map +1 -1
  72. package/dist/esm/hooks/useTokens.d.ts +1 -1
  73. package/dist/esm/services/ExecuteRoute.js +217 -195
  74. package/dist/esm/services/ExecuteRoute.js.map +1 -1
  75. package/dist/esm/stores/form/useFieldController.d.ts +1 -1
  76. package/dist/esm/stores/routes/createRouteExecutionStore.js +6 -3
  77. package/dist/esm/stores/routes/createRouteExecutionStore.js.map +1 -1
  78. package/dist/esm/stores/routes/useSetExecutableRoute.d.ts +1 -1
  79. package/dist/esm/types/widget.d.ts +3 -0
  80. package/dist/tsconfig.tsbuildinfo +1 -0
  81. package/package.json +14 -4
  82. package/src/components/AmountInput/AmountInputEndAdornment.tsx +46 -46
  83. package/src/components/Messages/WarningMessages.tsx +7 -2
  84. package/src/components/Step/Step.tsx +37 -31
  85. package/src/components/TransactionDetails.tsx +10 -11
  86. package/src/config/version.ts +1 -1
  87. package/src/cross/adapters/AcrossAdapter.ts +193 -0
  88. package/src/cross/adapters/BaseSwapAdapter.ts +173 -0
  89. package/src/cross/adapters/DebridgeAdapter.ts +375 -0
  90. package/src/cross/adapters/LifiAdapter.ts +213 -0
  91. package/src/cross/adapters/MayanAdapter.ts +179 -0
  92. package/src/cross/adapters/NearIntentsAdapter.ts +539 -0
  93. package/src/cross/adapters/OptimexAdapter.ts +273 -0
  94. package/src/cross/adapters/OrbiterAdapter.ts +270 -0
  95. package/src/cross/adapters/RelayAdapter.ts +248 -0
  96. package/src/cross/adapters/SymbiosisAdapter.ts +144 -0
  97. package/src/cross/adapters/XYFinanceAdapter.ts +213 -0
  98. package/src/cross/adapters/index.ts +9 -0
  99. package/src/cross/constants/index.ts +223 -0
  100. package/src/cross/crossChainQuote.ts +181 -0
  101. package/src/cross/factory.ts +145 -0
  102. package/src/cross/registry.ts +65 -0
  103. package/src/hooks/useGasSufficiencyBridge.ts +1 -3
  104. package/src/hooks/useRouteExecution.ts +2 -1
  105. package/src/hooks/useRoutes.ts +64 -43
  106. package/src/hooks/useSettingMonitor.ts +1 -1
  107. package/src/hooks/useTokenPrice.ts +5 -3
  108. package/src/services/ExecuteRoute.ts +305 -282
  109. package/src/stores/routes/createRouteExecutionStore.ts +13 -4
  110. package/src/types/widget.ts +3 -0
@@ -1,118 +1,192 @@
1
1
  import { Connection, Transaction, VersionedTransaction } from '@solana/web3.js';
2
+ import { ethers } from 'ethers';
2
3
  import { getPublicClient, getWalletClient } from 'wagmi/actions';
3
- import { sendAndConfirmSolanaTransaction } from './SendAndConfirmSolanaTransaction.js';
4
+ import { bridgeExecuteSwap } from '../cross/crossChainQuote.js';
4
5
  import { useSettingsStore } from '../stores/settings/useSettingsStore.js';
5
- import { ethers } from 'ethers';
6
+ import { sendAndConfirmSolanaTransaction } from './SendAndConfirmSolanaTransaction.js';
6
7
  const OpenOceanABI = [
7
8
  {
8
- "inputs": [
9
+ inputs: [
9
10
  {
10
- "internalType": "contract IOpenOceanCaller",
11
- "name": "caller",
12
- "type": "address"
11
+ internalType: 'contract IOpenOceanCaller',
12
+ name: 'caller',
13
+ type: 'address',
13
14
  },
14
15
  {
15
- "components": [
16
+ components: [
16
17
  {
17
- "internalType": "contract IERC20",
18
- "name": "srcToken",
19
- "type": "address"
18
+ internalType: 'contract IERC20',
19
+ name: 'srcToken',
20
+ type: 'address',
20
21
  },
21
22
  {
22
- "internalType": "contract IERC20",
23
- "name": "dstToken",
24
- "type": "address"
23
+ internalType: 'contract IERC20',
24
+ name: 'dstToken',
25
+ type: 'address',
25
26
  },
26
27
  {
27
- "internalType": "address",
28
- "name": "srcReceiver",
29
- "type": "address"
28
+ internalType: 'address',
29
+ name: 'srcReceiver',
30
+ type: 'address',
30
31
  },
31
32
  {
32
- "internalType": "address",
33
- "name": "dstReceiver",
34
- "type": "address"
33
+ internalType: 'address',
34
+ name: 'dstReceiver',
35
+ type: 'address',
35
36
  },
36
37
  {
37
- "internalType": "uint256",
38
- "name": "amount",
39
- "type": "uint256"
38
+ internalType: 'uint256',
39
+ name: 'amount',
40
+ type: 'uint256',
40
41
  },
41
42
  {
42
- "internalType": "uint256",
43
- "name": "minReturnAmount",
44
- "type": "uint256"
43
+ internalType: 'uint256',
44
+ name: 'minReturnAmount',
45
+ type: 'uint256',
45
46
  },
46
47
  {
47
- "internalType": "uint256",
48
- "name": "guaranteedAmount",
49
- "type": "uint256"
48
+ internalType: 'uint256',
49
+ name: 'guaranteedAmount',
50
+ type: 'uint256',
50
51
  },
51
52
  {
52
- "internalType": "uint256",
53
- "name": "flags",
54
- "type": "uint256"
53
+ internalType: 'uint256',
54
+ name: 'flags',
55
+ type: 'uint256',
55
56
  },
56
57
  {
57
- "internalType": "address",
58
- "name": "referrer",
59
- "type": "address"
58
+ internalType: 'address',
59
+ name: 'referrer',
60
+ type: 'address',
60
61
  },
61
62
  {
62
- "internalType": "bytes",
63
- "name": "permit",
64
- "type": "bytes"
65
- }
63
+ internalType: 'bytes',
64
+ name: 'permit',
65
+ type: 'bytes',
66
+ },
66
67
  ],
67
- "internalType": "struct OpenOceanExchange.SwapDescription",
68
- "name": "desc",
69
- "type": "tuple"
68
+ internalType: 'struct OpenOceanExchange.SwapDescription',
69
+ name: 'desc',
70
+ type: 'tuple',
70
71
  },
71
72
  {
72
- "components": [
73
+ components: [
73
74
  {
74
- "internalType": "uint256",
75
- "name": "target",
76
- "type": "uint256"
75
+ internalType: 'uint256',
76
+ name: 'target',
77
+ type: 'uint256',
77
78
  },
78
79
  {
79
- "internalType": "uint256",
80
- "name": "gasLimit",
81
- "type": "uint256"
80
+ internalType: 'uint256',
81
+ name: 'gasLimit',
82
+ type: 'uint256',
82
83
  },
83
84
  {
84
- "internalType": "uint256",
85
- "name": "value",
86
- "type": "uint256"
85
+ internalType: 'uint256',
86
+ name: 'value',
87
+ type: 'uint256',
87
88
  },
88
89
  {
89
- "internalType": "bytes",
90
- "name": "data",
91
- "type": "bytes"
92
- }
90
+ internalType: 'bytes',
91
+ name: 'data',
92
+ type: 'bytes',
93
+ },
93
94
  ],
94
- "internalType": "struct IOpenOceanCaller.CallDescription[]",
95
- "name": "calls",
96
- "type": "tuple[]"
97
- }
95
+ internalType: 'struct IOpenOceanCaller.CallDescription[]',
96
+ name: 'calls',
97
+ type: 'tuple[]',
98
+ },
98
99
  ],
99
- "name": "swap",
100
- "outputs": [
100
+ name: 'swap',
101
+ outputs: [
101
102
  {
102
- "internalType": "uint256",
103
- "name": "returnAmount",
104
- "type": "uint256"
105
- }
103
+ internalType: 'uint256',
104
+ name: 'returnAmount',
105
+ type: 'uint256',
106
+ },
106
107
  ],
107
- "stateMutability": "payable",
108
- "type": "function"
109
- }
108
+ stateMutability: 'payable',
109
+ type: 'function',
110
+ },
110
111
  ];
111
112
  // Add helper function for handling hexadecimal conversion
112
113
  function hexToUint8Array(hexString) {
113
114
  const pairs = hexString.match(/[\dA-F]{2}/gi) || [];
114
115
  return new Uint8Array(pairs.map((s) => Number.parseInt(s, 16)));
115
116
  }
117
+ /**
118
+ * Convert amount with precision to actual amount
119
+ * @param amount Amount with precision
120
+ * @param decimals Precision
121
+ * @returns Actual amount
122
+ */
123
+ function decimals2Amount(amount, decimals = 18) {
124
+ return Number(amount) / 10 ** decimals;
125
+ }
126
+ /**
127
+ * Adjust transaction parameters based on dynamic slippage to provide MEV protection
128
+ */
129
+ async function swapQuoteMEV(response, options) {
130
+ try {
131
+ const inAmount = response?.inAmount;
132
+ const inTokenDecimals = response?.inToken?.decimals || 18;
133
+ const inTokenPrice = Number(response?.inToken?.priceUSD || 0);
134
+ const amount = decimals2Amount(inAmount, inTokenDecimals) * inTokenPrice;
135
+ if (amount < 1) {
136
+ return response;
137
+ }
138
+ const { publicClient } = options;
139
+ const OPENOCEAN_CONTRACT = new ethers.Contract('0x6352a56caadC4F1E25CD6c75970Fa768A3304e64', OpenOceanABI);
140
+ if (ethers.hexlify(ethers.getBytes(response?.data || '0x').slice(0, 4)) !==
141
+ OPENOCEAN_CONTRACT.interface.getFunction('swap').selector) {
142
+ return response;
143
+ }
144
+ const oldCallData = OPENOCEAN_CONTRACT.interface.decodeFunctionData('swap', response?.data);
145
+ const callData = [...oldCallData];
146
+ callData[1] = [...oldCallData[1]];
147
+ const minOutAmount = BigInt(callData[1][5] || 0);
148
+ const outAmount = BigInt(callData[1][6] || 0);
149
+ const slippageAmount = outAmount - minOutAmount;
150
+ const minOutAmounts = await Promise.all([1, 2, 3].map(async (i) => {
151
+ const mockMinOutAmount = minOutAmount + (slippageAmount / 4n) * BigInt(i);
152
+ callData[1][5] = mockMinOutAmount;
153
+ const params = {
154
+ from: response?.from,
155
+ to: response?.to,
156
+ data: OPENOCEAN_CONTRACT.interface.encodeFunctionData('swap', callData),
157
+ value: BigInt(response?.value || '0'),
158
+ };
159
+ try {
160
+ await publicClient.estimateGas(params);
161
+ return mockMinOutAmount;
162
+ }
163
+ catch (error) {
164
+ console.error('Failed to estimate gas:', error);
165
+ return undefined;
166
+ }
167
+ }));
168
+ let [min1, min2] = minOutAmounts
169
+ .filter((value) => value !== undefined)
170
+ .sort((a, b) => (BigInt(b || 0) > BigInt(a || 0) ? 1 : -1))
171
+ .slice(0, 2);
172
+ min1 = min1 ?? minOutAmount;
173
+ min2 = min2 ?? minOutAmount;
174
+ const randomFactor = BigInt(Math.floor(Math.random() * 10000));
175
+ const minOutAmountDiff = BigInt(min1 || 0) - BigInt(min2 || 0);
176
+ const finalMinOutAmount = BigInt(min2 || 0) + (minOutAmountDiff * randomFactor) / BigInt(10000);
177
+ if (finalMinOutAmount < minOutAmount) {
178
+ return response;
179
+ }
180
+ callData[1][5] = finalMinOutAmount;
181
+ const finalCallData = OPENOCEAN_CONTRACT.interface.encodeFunctionData('swap', callData);
182
+ response.minOutAmount = finalMinOutAmount.toString();
183
+ response.data = finalCallData;
184
+ return response;
185
+ }
186
+ catch {
187
+ return response;
188
+ }
189
+ }
116
190
  // Execute Solana transaction
117
191
  async function executeSolanaSwap(step, options, process, route) {
118
192
  try {
@@ -125,7 +199,7 @@ async function executeSolanaSwap(step, options, process, route) {
125
199
  const txData = step.transactionRequest?.data || '';
126
200
  const dexId = step.transactionRequest?.type || 0;
127
201
  if (step.action.fromChainId === step.action.toChainId) {
128
- if (dexId == 6 || dexId == 7 || dexId == 9) {
202
+ if (dexId === 6 || dexId === 7 || dexId === 9) {
129
203
  transaction = VersionedTransaction.deserialize(hexToUint8Array(txData));
130
204
  }
131
205
  else {
@@ -217,7 +291,7 @@ async function executeEvmSwap(step, options, process, route) {
217
291
  // Try to switch to target chain
218
292
  await walletClient.switchChain({ id: targetChainId });
219
293
  // Get updated walletClient after chain switch
220
- walletClient = await getWalletClient(options.wagmiConfig);
294
+ walletClient = (await getWalletClient(options.wagmiConfig));
221
295
  if (!walletClient || walletClient.chain.id !== targetChainId) {
222
296
  throw new Error('Failed to switch chain');
223
297
  }
@@ -239,13 +313,22 @@ async function executeEvmSwap(step, options, process, route) {
239
313
  }
240
314
  throw new Error('Public client not found');
241
315
  }
242
- console.log('Current Chain:', publicClient.chain?.id, publicClient.chain?.name);
243
- console.log('Token Address:', step.action.fromToken.address);
244
- console.log('Token Chain ID:', step.action.fromToken.chainId);
245
- console.log('Owner Address:', walletClient.account.address);
246
- console.log('Spender Address:', step.estimate.approvalAddress);
316
+ // console.log(
317
+ // 'Current Chain:',
318
+ // publicClient.chain?.id,
319
+ // publicClient.chain?.name
320
+ // )
321
+ // console.log('Token Address:', step.action.fromToken.address)
322
+ // console.log('Token Chain ID:', step.action.fromToken.chainId)
323
+ // console.log('Owner Address:', walletClient.account.address)
324
+ // console.log('Spender Address:', step.estimate.approvalAddress)
247
325
  // Check token approval
248
- if (['0x0000000000000000000000000000000000000000', '0x0000000000000000000000000000000000001010'].indexOf(step.action.fromToken.address) === -1) {
326
+ if ([
327
+ '0x0000000000000000000000000000000000000000',
328
+ '0x0000000000000000000000000000000000001010',
329
+ ].indexOf(step.action.fromToken.address) === -1 &&
330
+ step.estimate.approvalAddress !==
331
+ '0x0000000000000000000000000000000000000000') {
249
332
  let allowance = 0n;
250
333
  try {
251
334
  allowance = (await publicClient.readContract({
@@ -279,7 +362,9 @@ async function executeEvmSwap(step, options, process, route) {
279
362
  // throw new Error(`Failed to read allowance for token ${step.action.fromToken.address}: ${error instanceof Error ? error.message : String(error)}`);
280
363
  }
281
364
  const amount = BigInt(step.action.fromAmount) +
282
- BigInt(route?.data?.prependedOperatingExpenseCost || '0');
365
+ BigInt(route?.prependedOperatingExpenseCost ||
366
+ route?.data?.prependedOperatingExpenseCost ||
367
+ '0');
283
368
  if (allowance < BigInt(amount)) {
284
369
  const approvalAmount = options.infiniteApproval
285
370
  ? BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff')
@@ -309,53 +394,64 @@ async function executeEvmSwap(step, options, process, route) {
309
394
  await publicClient.waitForTransactionReceipt({ hash });
310
395
  }
311
396
  }
312
- const { transactionRequest } = step || {};
313
- const txRequest = {
314
- chain: publicClient.chain,
315
- to: transactionRequest?.to,
316
- data: transactionRequest?.data || '0x',
317
- value: BigInt(transactionRequest?.value || '0x0'),
318
- account: walletClient.account.address,
319
- };
320
- // 在这里根据useSettingsStore 中的 dynamicSlippage 参数来判断是否调用下面的函数 swap_quote_mev
321
- const { dynamicSlippage } = useSettingsStore.getState();
322
- if (dynamicSlippage) {
323
- try {
324
- // 构建 response 对象
325
- const response = {
326
- inAmount: step.action.fromAmount || '0',
327
- inToken: step.action.fromToken,
328
- data: transactionRequest?.data,
329
- from: walletClient.account.address,
330
- to: transactionRequest?.to,
331
- value: transactionRequest?.value || '0'
332
- };
333
- // 调用 swap_quote_mev 获取调整后的交易数据
334
- const adjustedResponse = await swapQuoteMEV(response, { publicClient });
335
- // 如果 swap_quote_mev 返回了修改后的数据,更新交易请求
336
- if (adjustedResponse && adjustedResponse.data !== response.data) {
337
- txRequest.data = adjustedResponse.data;
338
- txRequest.value = BigInt(adjustedResponse.value || '0');
339
- console.log('Applied MEV protection with dynamic slippage');
397
+ const { transactionRequest, type, quoteData } = step || {};
398
+ let hash = '';
399
+ if (type === 'bridge') {
400
+ const result = await bridgeExecuteSwap({
401
+ quoteData: quoteData,
402
+ walletClient: walletClient,
403
+ });
404
+ hash = result.sourceTxHash;
405
+ }
406
+ else {
407
+ const txRequest = {
408
+ chain: publicClient.chain,
409
+ to: transactionRequest?.to,
410
+ data: transactionRequest?.data || '0x',
411
+ value: BigInt(transactionRequest?.value || '0x0'),
412
+ account: walletClient.account.address,
413
+ };
414
+ // Check if dynamicSlippage is enabled in useSettingsStore to determine whether to call swap_quote_mev
415
+ const { dynamicSlippage } = useSettingsStore.getState();
416
+ if (dynamicSlippage) {
417
+ try {
418
+ // Build response object
419
+ const response = {
420
+ inAmount: step.action.fromAmount || '0',
421
+ inToken: step.action.fromToken,
422
+ data: transactionRequest?.data,
423
+ from: walletClient.account.address,
424
+ to: transactionRequest?.to,
425
+ value: transactionRequest?.value || '0',
426
+ };
427
+ // Call swap_quote_mev to get adjusted transaction data
428
+ const adjustedResponse = await swapQuoteMEV(response, {
429
+ publicClient,
430
+ });
431
+ // If swap_quote_mev returns modified data, update transaction request
432
+ if (adjustedResponse && adjustedResponse.data !== response.data) {
433
+ txRequest.data = adjustedResponse.data;
434
+ txRequest.value = BigInt(adjustedResponse.value || '0');
435
+ // Applied MEV protection with dynamic slippage
436
+ }
437
+ }
438
+ catch (error) {
439
+ console.error('Failed to apply MEV protection:', error);
440
+ // Continue with original transaction request on error
340
441
  }
341
442
  }
342
- catch (error) {
343
- console.error('Failed to apply MEV protection:', error);
344
- // 错误时继续使用原始交易请求
345
- }
443
+ // Estimate gas
444
+ const estimatedGas = await publicClient.estimateGas(txRequest);
445
+ // Add estimated gas to transaction request (using 2x the estimated value to ensure transaction success)
446
+ const finalTxRequest = {
447
+ ...txRequest,
448
+ gas: estimatedGas * 2n,
449
+ };
450
+ hash = await walletClient.sendTransaction({
451
+ ...finalTxRequest,
452
+ kzg: undefined,
453
+ });
346
454
  }
347
- // Estimate gas
348
- const estimatedGas = await publicClient.estimateGas(txRequest);
349
- console.log('estimatedGas', estimatedGas);
350
- // Add estimated gas to transaction request (using 2x the estimated value to ensure transaction success)
351
- const finalTxRequest = {
352
- ...txRequest,
353
- gas: estimatedGas * 2n,
354
- };
355
- const hash = await walletClient.sendTransaction({
356
- ...finalTxRequest,
357
- kzg: undefined,
358
- });
359
455
  process.status = 'PENDING';
360
456
  process.txHash = hash;
361
457
  process.message = 'Transaction pending';
@@ -393,80 +489,6 @@ async function executeEvmSwap(step, options, process, route) {
393
489
  throw error;
394
490
  }
395
491
  }
396
- /**
397
- * 将带精度的金额转换为实际金额
398
- * @param amount 带精度的金额
399
- * @param decimals 精度
400
- * @returns 实际金额
401
- */
402
- function decimals2Amount(amount, decimals = 18) {
403
- return Number(amount) / Math.pow(10, decimals);
404
- }
405
- /**
406
- * 根据动态滑点调整交易参数,提供 MEV 保护
407
- */
408
- async function swapQuoteMEV(response, options) {
409
- try {
410
- const inAmount = response?.inAmount;
411
- const inTokenDecimals = response?.inToken?.decimals || 18;
412
- const inTokenPrice = Number(response?.inToken?.priceUSD || 0);
413
- const amount = decimals2Amount(inAmount, inTokenDecimals) * inTokenPrice;
414
- if (amount < 1) {
415
- return response;
416
- }
417
- const { publicClient } = options;
418
- const OPENOCEAN_CONTRACT = new ethers.Contract("0x6352a56caadC4F1E25CD6c75970Fa768A3304e64", OpenOceanABI);
419
- if (ethers.hexlify(ethers.getBytes(response?.data || "0x").slice(0, 4)) !==
420
- OPENOCEAN_CONTRACT.interface.getFunction("swap").selector) {
421
- return response;
422
- }
423
- let oldCallData = OPENOCEAN_CONTRACT.interface.decodeFunctionData("swap", response?.data);
424
- let callData = [...oldCallData];
425
- callData[1] = [...oldCallData[1]];
426
- const minOutAmount = BigInt(callData[1][5] || 0);
427
- const outAmount = BigInt(callData[1][6] || 0);
428
- const slippageAmount = outAmount - minOutAmount;
429
- let minOutAmounts = await Promise.all([1, 2, 3].map(async (i) => {
430
- const mockMinOutAmount = minOutAmount + (slippageAmount / 4n) * BigInt(i);
431
- callData[1][5] = mockMinOutAmount;
432
- const params = {
433
- from: response?.from,
434
- to: response?.to,
435
- data: OPENOCEAN_CONTRACT.interface.encodeFunctionData("swap", callData),
436
- value: BigInt(response?.value || '0'),
437
- };
438
- try {
439
- await publicClient.estimateGas(params);
440
- return mockMinOutAmount;
441
- }
442
- catch (error) {
443
- console.error('Failed to estimate gas:', error);
444
- return undefined;
445
- }
446
- }));
447
- let [min1, min2] = minOutAmounts
448
- .filter((value) => value !== undefined)
449
- .sort((a, b) => (BigInt(b || 0) > BigInt(a || 0) ? 1 : -1))
450
- .slice(0, 2);
451
- min1 = min1 ?? minOutAmount;
452
- min2 = min2 ?? minOutAmount;
453
- const randomFactor = BigInt(Math.floor(Math.random() * 10000));
454
- const minOutAmountDiff = BigInt(min1 || 0) - BigInt(min2 || 0);
455
- const finalMinOutAmount = BigInt(min2 || 0) +
456
- (minOutAmountDiff * randomFactor / BigInt(10000));
457
- if (finalMinOutAmount < minOutAmount) {
458
- return response;
459
- }
460
- callData[1][5] = finalMinOutAmount;
461
- const finalCallData = OPENOCEAN_CONTRACT.interface.encodeFunctionData("swap", callData);
462
- response.minOutAmount = finalMinOutAmount.toString();
463
- response.data = finalCallData;
464
- return response;
465
- }
466
- catch (error) {
467
- return response;
468
- }
469
- }
470
492
  // Execute transaction
471
493
  async function executeSwap(route, options) {
472
494
  const updatedRoute = { ...route };
@@ -1 +1 @@
1
- {"version":3,"file":"ExecuteRoute.js","sourceRoot":"","sources":["../../../src/services/ExecuteRoute.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExecuteRoute.js","sourceRoot":"","sources":["../../../src/services/ExecuteRoute.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,6 @@ export declare const useFieldController: ({ name }: UseFieldControllerProps) =>
6
6
  onChange: (newValue: string | number | undefined) => void;
7
7
  onBlur: () => void;
8
8
  name: keyof import("./types.js").DefaultValues;
9
- value: string | number | import("@openocean.finance/widget-types").ContractCall[];
9
+ value: string | number | import("@openocean.finance/widget-sdk").ContractCall[];
10
10
  };
11
11
  export {};
@@ -3,7 +3,6 @@ import { createWithEqualityFn } from 'zustand/traditional';
3
3
  import { hasEnumFlag } from '../../utils/enum.js';
4
4
  import { RouteExecutionStatus } from './types.js';
5
5
  import { isRouteDone, isRouteFailed, isRoutePartiallyDone, isRouteRefunded, } from './utils.js';
6
- // 添加处理BigInt序列化的辅助函数
7
6
  const replaceBigInts = (obj) => {
8
7
  if (obj === null || obj === undefined) {
9
8
  return obj;
@@ -31,7 +30,7 @@ export const createRouteExecutionStore = ({ namePrefix }) => createWithEqualityF
31
30
  hasEnumFlag(routes[routeId].status, RouteExecutionStatus.Idle)) ||
32
31
  hasEnumFlag(routes[routeId].status, RouteExecutionStatus.Done))
33
32
  .forEach((routeId) => delete routes[routeId]);
34
- // 在存储route之前处理BigInt
33
+ // Process BigInt before storing route
35
34
  const processedRoute = replaceBigInts(route);
36
35
  routes[route.id] = {
37
36
  route: processedRoute,
@@ -45,11 +44,15 @@ export const createRouteExecutionStore = ({ namePrefix }) => createWithEqualityF
45
44
  },
46
45
  updateRoute: (route) => {
47
46
  if (get().routes[route.id]) {
47
+ const processedRoute = replaceBigInts(route);
48
48
  set((state) => {
49
49
  const updatedState = {
50
50
  routes: {
51
51
  ...state.routes,
52
- [route.id]: { ...state.routes[route.id], route },
52
+ [route.id]: {
53
+ ...state.routes[route.id],
54
+ route: processedRoute,
55
+ },
53
56
  },
54
57
  };
55
58
  const isFailed = isRouteFailed(route);