@openocean.finance/widget 1.0.27 → 1.0.28

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.
@@ -1,2 +1,2 @@
1
1
  export declare const name = "@openocean.finance/widget";
2
- export declare const version = "1.0.27";
2
+ export declare const version = "1.0.28";
@@ -1,3 +1,3 @@
1
1
  export const name = '@openocean.finance/widget';
2
- export const version = '1.0.27';
2
+ export const version = '1.0.28';
3
3
  //# sourceMappingURL=version.js.map
@@ -1,112 +1,112 @@
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
4
  import { useSettingsStore } from '../stores/settings/useSettingsStore.js';
5
- import { ethers } from 'ethers';
5
+ import { sendAndConfirmSolanaTransaction } from './SendAndConfirmSolanaTransaction.js';
6
6
  const OpenOceanABI = [
7
7
  {
8
- "inputs": [
8
+ inputs: [
9
9
  {
10
- "internalType": "contract IOpenOceanCaller",
11
- "name": "caller",
12
- "type": "address"
10
+ internalType: 'contract IOpenOceanCaller',
11
+ name: 'caller',
12
+ type: 'address',
13
13
  },
14
14
  {
15
- "components": [
15
+ components: [
16
16
  {
17
- "internalType": "contract IERC20",
18
- "name": "srcToken",
19
- "type": "address"
17
+ internalType: 'contract IERC20',
18
+ name: 'srcToken',
19
+ type: 'address',
20
20
  },
21
21
  {
22
- "internalType": "contract IERC20",
23
- "name": "dstToken",
24
- "type": "address"
22
+ internalType: 'contract IERC20',
23
+ name: 'dstToken',
24
+ type: 'address',
25
25
  },
26
26
  {
27
- "internalType": "address",
28
- "name": "srcReceiver",
29
- "type": "address"
27
+ internalType: 'address',
28
+ name: 'srcReceiver',
29
+ type: 'address',
30
30
  },
31
31
  {
32
- "internalType": "address",
33
- "name": "dstReceiver",
34
- "type": "address"
32
+ internalType: 'address',
33
+ name: 'dstReceiver',
34
+ type: 'address',
35
35
  },
36
36
  {
37
- "internalType": "uint256",
38
- "name": "amount",
39
- "type": "uint256"
37
+ internalType: 'uint256',
38
+ name: 'amount',
39
+ type: 'uint256',
40
40
  },
41
41
  {
42
- "internalType": "uint256",
43
- "name": "minReturnAmount",
44
- "type": "uint256"
42
+ internalType: 'uint256',
43
+ name: 'minReturnAmount',
44
+ type: 'uint256',
45
45
  },
46
46
  {
47
- "internalType": "uint256",
48
- "name": "guaranteedAmount",
49
- "type": "uint256"
47
+ internalType: 'uint256',
48
+ name: 'guaranteedAmount',
49
+ type: 'uint256',
50
50
  },
51
51
  {
52
- "internalType": "uint256",
53
- "name": "flags",
54
- "type": "uint256"
52
+ internalType: 'uint256',
53
+ name: 'flags',
54
+ type: 'uint256',
55
55
  },
56
56
  {
57
- "internalType": "address",
58
- "name": "referrer",
59
- "type": "address"
57
+ internalType: 'address',
58
+ name: 'referrer',
59
+ type: 'address',
60
60
  },
61
61
  {
62
- "internalType": "bytes",
63
- "name": "permit",
64
- "type": "bytes"
65
- }
62
+ internalType: 'bytes',
63
+ name: 'permit',
64
+ type: 'bytes',
65
+ },
66
66
  ],
67
- "internalType": "struct OpenOceanExchange.SwapDescription",
68
- "name": "desc",
69
- "type": "tuple"
67
+ internalType: 'struct OpenOceanExchange.SwapDescription',
68
+ name: 'desc',
69
+ type: 'tuple',
70
70
  },
71
71
  {
72
- "components": [
72
+ components: [
73
73
  {
74
- "internalType": "uint256",
75
- "name": "target",
76
- "type": "uint256"
74
+ internalType: 'uint256',
75
+ name: 'target',
76
+ type: 'uint256',
77
77
  },
78
78
  {
79
- "internalType": "uint256",
80
- "name": "gasLimit",
81
- "type": "uint256"
79
+ internalType: 'uint256',
80
+ name: 'gasLimit',
81
+ type: 'uint256',
82
82
  },
83
83
  {
84
- "internalType": "uint256",
85
- "name": "value",
86
- "type": "uint256"
84
+ internalType: 'uint256',
85
+ name: 'value',
86
+ type: 'uint256',
87
87
  },
88
88
  {
89
- "internalType": "bytes",
90
- "name": "data",
91
- "type": "bytes"
92
- }
89
+ internalType: 'bytes',
90
+ name: 'data',
91
+ type: 'bytes',
92
+ },
93
93
  ],
94
- "internalType": "struct IOpenOceanCaller.CallDescription[]",
95
- "name": "calls",
96
- "type": "tuple[]"
97
- }
94
+ internalType: 'struct IOpenOceanCaller.CallDescription[]',
95
+ name: 'calls',
96
+ type: 'tuple[]',
97
+ },
98
98
  ],
99
- "name": "swap",
100
- "outputs": [
99
+ name: 'swap',
100
+ outputs: [
101
101
  {
102
- "internalType": "uint256",
103
- "name": "returnAmount",
104
- "type": "uint256"
105
- }
102
+ internalType: 'uint256',
103
+ name: 'returnAmount',
104
+ type: 'uint256',
105
+ },
106
106
  ],
107
- "stateMutability": "payable",
108
- "type": "function"
109
- }
107
+ stateMutability: 'payable',
108
+ type: 'function',
109
+ },
110
110
  ];
111
111
  // Add helper function for handling hexadecimal conversion
112
112
  function hexToUint8Array(hexString) {
@@ -217,7 +217,7 @@ async function executeEvmSwap(step, options, process, route) {
217
217
  // Try to switch to target chain
218
218
  await walletClient.switchChain({ id: targetChainId });
219
219
  // Get updated walletClient after chain switch
220
- walletClient = await getWalletClient(options.wagmiConfig);
220
+ walletClient = (await getWalletClient(options.wagmiConfig));
221
221
  if (!walletClient || walletClient.chain.id !== targetChainId) {
222
222
  throw new Error('Failed to switch chain');
223
223
  }
@@ -245,7 +245,10 @@ async function executeEvmSwap(step, options, process, route) {
245
245
  console.log('Owner Address:', walletClient.account.address);
246
246
  console.log('Spender Address:', step.estimate.approvalAddress);
247
247
  // Check token approval
248
- if (['0x0000000000000000000000000000000000000000', '0x0000000000000000000000000000000000001010'].indexOf(step.action.fromToken.address) === -1) {
248
+ if ([
249
+ '0x0000000000000000000000000000000000000000',
250
+ '0x0000000000000000000000000000000000001010',
251
+ ].indexOf(step.action.fromToken.address) === -1) {
249
252
  let allowance = 0n;
250
253
  try {
251
254
  allowance = (await publicClient.readContract({
@@ -279,7 +282,9 @@ async function executeEvmSwap(step, options, process, route) {
279
282
  // throw new Error(`Failed to read allowance for token ${step.action.fromToken.address}: ${error instanceof Error ? error.message : String(error)}`);
280
283
  }
281
284
  const amount = BigInt(step.action.fromAmount) +
282
- BigInt(route?.data?.prependedOperatingExpenseCost || '0');
285
+ BigInt(route?.prependedOperatingExpenseCost ||
286
+ route?.data?.prependedOperatingExpenseCost ||
287
+ '0');
283
288
  if (allowance < BigInt(amount)) {
284
289
  const approvalAmount = options.infiniteApproval
285
290
  ? BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff')
@@ -328,7 +333,7 @@ async function executeEvmSwap(step, options, process, route) {
328
333
  data: transactionRequest?.data,
329
334
  from: walletClient.account.address,
330
335
  to: transactionRequest?.to,
331
- value: transactionRequest?.value || '0'
336
+ value: transactionRequest?.value || '0',
332
337
  };
333
338
  // 调用 swap_quote_mev 获取调整后的交易数据
334
339
  const adjustedResponse = await swapQuoteMEV(response, { publicClient });
@@ -415,24 +420,24 @@ async function swapQuoteMEV(response, options) {
415
420
  return response;
416
421
  }
417
422
  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) {
423
+ const OPENOCEAN_CONTRACT = new ethers.Contract('0x6352a56caadC4F1E25CD6c75970Fa768A3304e64', OpenOceanABI);
424
+ if (ethers.hexlify(ethers.getBytes(response?.data || '0x').slice(0, 4)) !==
425
+ OPENOCEAN_CONTRACT.interface.getFunction('swap').selector) {
421
426
  return response;
422
427
  }
423
- let oldCallData = OPENOCEAN_CONTRACT.interface.decodeFunctionData("swap", response?.data);
424
- let callData = [...oldCallData];
428
+ const oldCallData = OPENOCEAN_CONTRACT.interface.decodeFunctionData('swap', response?.data);
429
+ const callData = [...oldCallData];
425
430
  callData[1] = [...oldCallData[1]];
426
431
  const minOutAmount = BigInt(callData[1][5] || 0);
427
432
  const outAmount = BigInt(callData[1][6] || 0);
428
433
  const slippageAmount = outAmount - minOutAmount;
429
- let minOutAmounts = await Promise.all([1, 2, 3].map(async (i) => {
434
+ const minOutAmounts = await Promise.all([1, 2, 3].map(async (i) => {
430
435
  const mockMinOutAmount = minOutAmount + (slippageAmount / 4n) * BigInt(i);
431
436
  callData[1][5] = mockMinOutAmount;
432
437
  const params = {
433
438
  from: response?.from,
434
439
  to: response?.to,
435
- data: OPENOCEAN_CONTRACT.interface.encodeFunctionData("swap", callData),
440
+ data: OPENOCEAN_CONTRACT.interface.encodeFunctionData('swap', callData),
436
441
  value: BigInt(response?.value || '0'),
437
442
  };
438
443
  try {
@@ -452,13 +457,12 @@ async function swapQuoteMEV(response, options) {
452
457
  min2 = min2 ?? minOutAmount;
453
458
  const randomFactor = BigInt(Math.floor(Math.random() * 10000));
454
459
  const minOutAmountDiff = BigInt(min1 || 0) - BigInt(min2 || 0);
455
- const finalMinOutAmount = BigInt(min2 || 0) +
456
- (minOutAmountDiff * randomFactor / BigInt(10000));
460
+ const finalMinOutAmount = BigInt(min2 || 0) + (minOutAmountDiff * randomFactor) / BigInt(10000);
457
461
  if (finalMinOutAmount < minOutAmount) {
458
462
  return response;
459
463
  }
460
464
  callData[1][5] = finalMinOutAmount;
461
- const finalCallData = OPENOCEAN_CONTRACT.interface.encodeFunctionData("swap", callData);
465
+ const finalCallData = OPENOCEAN_CONTRACT.interface.encodeFunctionData('swap', callData);
462
466
  response.minOutAmount = finalMinOutAmount.toString();
463
467
  response.data = finalCallData;
464
468
  return response;
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openocean.finance/widget",
3
- "version": "1.0.27",
3
+ "version": "1.0.28",
4
4
  "description": "Openocean Widget for cross-chain bridging and swapping. It will drive your multi-chain strategy and attract new users from everywhere.",
5
5
  "type": "module",
6
6
  "main": "./dist/esm/index.js",
@@ -1,2 +1,2 @@
1
1
  export const name = '@openocean.finance/widget'
2
- export const version = '1.0.27'
2
+ export const version = '1.0.28'
@@ -6,116 +6,115 @@ import type {
6
6
  Route,
7
7
  } from '@openocean.finance/widget-sdk'
8
8
  import { Connection, Transaction, VersionedTransaction } from '@solana/web3.js'
9
- import type { Config } from 'wagmi'
9
+ import { ethers } from 'ethers'
10
10
  import { getPublicClient, getWalletClient } from 'wagmi/actions'
11
- import { sendAndConfirmSolanaTransaction } from './SendAndConfirmSolanaTransaction.js'
12
11
  import { useSettingsStore } from '../stores/settings/useSettingsStore.js'
13
- import { ethers } from 'ethers'
12
+ import { sendAndConfirmSolanaTransaction } from './SendAndConfirmSolanaTransaction.js'
14
13
 
15
14
  const OpenOceanABI = [
16
15
  {
17
- "inputs": [
16
+ inputs: [
17
+ {
18
+ internalType: 'contract IOpenOceanCaller',
19
+ name: 'caller',
20
+ type: 'address',
21
+ },
22
+ {
23
+ components: [
18
24
  {
19
- "internalType": "contract IOpenOceanCaller",
20
- "name": "caller",
21
- "type": "address"
25
+ internalType: 'contract IERC20',
26
+ name: 'srcToken',
27
+ type: 'address',
22
28
  },
23
29
  {
24
- "components": [
25
- {
26
- "internalType": "contract IERC20",
27
- "name": "srcToken",
28
- "type": "address"
29
- },
30
- {
31
- "internalType": "contract IERC20",
32
- "name": "dstToken",
33
- "type": "address"
34
- },
35
- {
36
- "internalType": "address",
37
- "name": "srcReceiver",
38
- "type": "address"
39
- },
40
- {
41
- "internalType": "address",
42
- "name": "dstReceiver",
43
- "type": "address"
44
- },
45
- {
46
- "internalType": "uint256",
47
- "name": "amount",
48
- "type": "uint256"
49
- },
50
- {
51
- "internalType": "uint256",
52
- "name": "minReturnAmount",
53
- "type": "uint256"
54
- },
55
- {
56
- "internalType": "uint256",
57
- "name": "guaranteedAmount",
58
- "type": "uint256"
59
- },
60
- {
61
- "internalType": "uint256",
62
- "name": "flags",
63
- "type": "uint256"
64
- },
65
- {
66
- "internalType": "address",
67
- "name": "referrer",
68
- "type": "address"
69
- },
70
- {
71
- "internalType": "bytes",
72
- "name": "permit",
73
- "type": "bytes"
74
- }
75
- ],
76
- "internalType": "struct OpenOceanExchange.SwapDescription",
77
- "name": "desc",
78
- "type": "tuple"
30
+ internalType: 'contract IERC20',
31
+ name: 'dstToken',
32
+ type: 'address',
79
33
  },
80
34
  {
81
- "components": [
82
- {
83
- "internalType": "uint256",
84
- "name": "target",
85
- "type": "uint256"
86
- },
87
- {
88
- "internalType": "uint256",
89
- "name": "gasLimit",
90
- "type": "uint256"
91
- },
92
- {
93
- "internalType": "uint256",
94
- "name": "value",
95
- "type": "uint256"
96
- },
97
- {
98
- "internalType": "bytes",
99
- "name": "data",
100
- "type": "bytes"
101
- }
102
- ],
103
- "internalType": "struct IOpenOceanCaller.CallDescription[]",
104
- "name": "calls",
105
- "type": "tuple[]"
106
- }
107
- ],
108
- "name": "swap",
109
- "outputs": [
35
+ internalType: 'address',
36
+ name: 'srcReceiver',
37
+ type: 'address',
38
+ },
110
39
  {
111
- "internalType": "uint256",
112
- "name": "returnAmount",
113
- "type": "uint256"
114
- }
115
- ],
116
- "stateMutability": "payable",
117
- "type": "function"
118
- }
40
+ internalType: 'address',
41
+ name: 'dstReceiver',
42
+ type: 'address',
43
+ },
44
+ {
45
+ internalType: 'uint256',
46
+ name: 'amount',
47
+ type: 'uint256',
48
+ },
49
+ {
50
+ internalType: 'uint256',
51
+ name: 'minReturnAmount',
52
+ type: 'uint256',
53
+ },
54
+ {
55
+ internalType: 'uint256',
56
+ name: 'guaranteedAmount',
57
+ type: 'uint256',
58
+ },
59
+ {
60
+ internalType: 'uint256',
61
+ name: 'flags',
62
+ type: 'uint256',
63
+ },
64
+ {
65
+ internalType: 'address',
66
+ name: 'referrer',
67
+ type: 'address',
68
+ },
69
+ {
70
+ internalType: 'bytes',
71
+ name: 'permit',
72
+ type: 'bytes',
73
+ },
74
+ ],
75
+ internalType: 'struct OpenOceanExchange.SwapDescription',
76
+ name: 'desc',
77
+ type: 'tuple',
78
+ },
79
+ {
80
+ components: [
81
+ {
82
+ internalType: 'uint256',
83
+ name: 'target',
84
+ type: 'uint256',
85
+ },
86
+ {
87
+ internalType: 'uint256',
88
+ name: 'gasLimit',
89
+ type: 'uint256',
90
+ },
91
+ {
92
+ internalType: 'uint256',
93
+ name: 'value',
94
+ type: 'uint256',
95
+ },
96
+ {
97
+ internalType: 'bytes',
98
+ name: 'data',
99
+ type: 'bytes',
100
+ },
101
+ ],
102
+ internalType: 'struct IOpenOceanCaller.CallDescription[]',
103
+ name: 'calls',
104
+ type: 'tuple[]',
105
+ },
106
+ ],
107
+ name: 'swap',
108
+ outputs: [
109
+ {
110
+ internalType: 'uint256',
111
+ name: 'returnAmount',
112
+ type: 'uint256',
113
+ },
114
+ ],
115
+ stateMutability: 'payable',
116
+ type: 'function',
117
+ },
119
118
  ]
120
119
 
121
120
  // Add helper function for handling hexadecimal conversion
@@ -147,8 +146,9 @@ interface ExtendedOpenOceanStep extends OpenOceanStep {
147
146
 
148
147
  interface ExtendedRoute extends Route {
149
148
  steps: ExtendedOpenOceanStep[]
150
- data: {
151
- prependedOperatingExpenseCost: string
149
+ prependedOperatingExpenseCost?: string
150
+ data?: {
151
+ prependedOperatingExpenseCost?: string
152
152
  }
153
153
  }
154
154
 
@@ -178,10 +178,12 @@ async function executeSolanaSwap(
178
178
  transaction = Transaction.from(hexToUint8Array(txData))
179
179
  }
180
180
  } else {
181
- transaction = VersionedTransaction.deserialize(hexToUint8Array(txData.slice(2)))
181
+ transaction = VersionedTransaction.deserialize(
182
+ hexToUint8Array(txData.slice(2))
183
+ )
182
184
 
183
- const { blockhash } = await connection.getLatestBlockhash();
184
- transaction.message.recentBlockhash = blockhash;
185
+ const { blockhash } = await connection.getLatestBlockhash()
186
+ transaction.message.recentBlockhash = blockhash
185
187
  }
186
188
 
187
189
  // Check signTransaction method exists
@@ -254,7 +256,7 @@ async function executeEvmSwap(
254
256
  ): Promise<void> {
255
257
  try {
256
258
  let walletClient = await getWalletClient(options.wagmiConfig)
257
-
259
+
258
260
  // Check if wallet is connected
259
261
  if (!walletClient) {
260
262
  if (options.account?.connector && options.onDisconnect) {
@@ -265,18 +267,18 @@ async function executeEvmSwap(
265
267
  }
266
268
  throw new Error('Please connect wallet first')
267
269
  }
268
-
270
+
269
271
  // Check if current chain matches target chain
270
272
  const currentChainId = walletClient.chain.id
271
273
  const targetChainId = step.action.fromChainId
272
-
274
+
273
275
  if (currentChainId !== targetChainId) {
274
276
  try {
275
277
  // Try to switch to target chain
276
278
  await walletClient.switchChain({ id: targetChainId })
277
-
279
+
278
280
  // Get updated walletClient after chain switch
279
- walletClient = await getWalletClient(options.wagmiConfig) as any
281
+ walletClient = (await getWalletClient(options.wagmiConfig)) as any
280
282
  if (!walletClient || walletClient.chain.id !== targetChainId) {
281
283
  throw new Error('Failed to switch chain')
282
284
  }
@@ -311,7 +313,10 @@ async function executeEvmSwap(
311
313
 
312
314
  // Check token approval
313
315
  if (
314
- ['0x0000000000000000000000000000000000000000', '0x0000000000000000000000000000000000001010'].indexOf(step.action.fromToken.address) === -1
316
+ [
317
+ '0x0000000000000000000000000000000000000000',
318
+ '0x0000000000000000000000000000000000001010',
319
+ ].indexOf(step.action.fromToken.address) === -1
315
320
  ) {
316
321
  let allowance = 0n
317
322
  try {
@@ -347,7 +352,11 @@ async function executeEvmSwap(
347
352
 
348
353
  const amount =
349
354
  BigInt(step.action.fromAmount) +
350
- BigInt(route?.data?.prependedOperatingExpenseCost || '0')
355
+ BigInt(
356
+ route?.prependedOperatingExpenseCost ||
357
+ route?.data?.prependedOperatingExpenseCost ||
358
+ '0'
359
+ )
351
360
  if (allowance < BigInt(amount)) {
352
361
  const approvalAmount = options.infiniteApproval
353
362
  ? BigInt(
@@ -402,20 +411,20 @@ async function executeEvmSwap(
402
411
  data: transactionRequest?.data,
403
412
  from: walletClient.account.address,
404
413
  to: transactionRequest?.to,
405
- value: transactionRequest?.value || '0'
406
- };
407
-
414
+ value: transactionRequest?.value || '0',
415
+ }
416
+
408
417
  // 调用 swap_quote_mev 获取调整后的交易数据
409
- const adjustedResponse = await swapQuoteMEV(response, { publicClient });
410
-
418
+ const adjustedResponse = await swapQuoteMEV(response, { publicClient })
419
+
411
420
  // 如果 swap_quote_mev 返回了修改后的数据,更新交易请求
412
421
  if (adjustedResponse && adjustedResponse.data !== response.data) {
413
- txRequest.data = adjustedResponse.data as `0x${string}`;
414
- txRequest.value = BigInt(adjustedResponse.value || '0');
415
- console.log('Applied MEV protection with dynamic slippage');
422
+ txRequest.data = adjustedResponse.data as `0x${string}`
423
+ txRequest.value = BigInt(adjustedResponse.value || '0')
424
+ console.log('Applied MEV protection with dynamic slippage')
416
425
  }
417
426
  } catch (error) {
418
- console.error('Failed to apply MEV protection:', error);
427
+ console.error('Failed to apply MEV protection:', error)
419
428
  // 错误时继续使用原始交易请求
420
429
  }
421
430
  }
@@ -483,110 +492,111 @@ async function executeEvmSwap(
483
492
  * @returns 实际金额
484
493
  */
485
494
  function decimals2Amount(amount: string | number, decimals = 18): number {
486
- return Number(amount) / Math.pow(10, decimals);
495
+ return Number(amount) / Math.pow(10, decimals)
487
496
  }
488
497
 
489
498
  /**
490
499
  * 交易响应类型
491
500
  */
492
501
  interface SwapResponse {
493
- inAmount?: string;
502
+ inAmount?: string
494
503
  inToken?: {
495
- decimals?: number;
496
- price?: string | number;
497
- priceUSD?: string | number;
498
- address?: string;
499
- };
500
- data?: string;
501
- from?: string;
502
- to?: string;
503
- value?: string;
504
- minOutAmount?: string;
504
+ decimals?: number
505
+ price?: string | number
506
+ priceUSD?: string | number
507
+ address?: string
508
+ }
509
+ data?: string
510
+ from?: string
511
+ to?: string
512
+ value?: string
513
+ minOutAmount?: string
505
514
  }
506
515
 
507
516
  /**
508
517
  * 根据动态滑点调整交易参数,提供 MEV 保护
509
518
  */
510
519
  async function swapQuoteMEV(
511
- response: SwapResponse,
520
+ response: SwapResponse,
512
521
  options?: { publicClient?: any }
513
522
  ): Promise<SwapResponse> {
514
523
  try {
515
- const inAmount = response?.inAmount;
516
- const inTokenDecimals = response?.inToken?.decimals || 18;
517
- const inTokenPrice = Number(response?.inToken?.priceUSD || 0);
518
- const amount = decimals2Amount(inAmount, inTokenDecimals) * inTokenPrice;
524
+ const inAmount = response?.inAmount
525
+ const inTokenDecimals = response?.inToken?.decimals || 18
526
+ const inTokenPrice = Number(response?.inToken?.priceUSD || 0)
527
+ const amount = decimals2Amount(inAmount, inTokenDecimals) * inTokenPrice
519
528
  if (amount < 1) {
520
- return response;
529
+ return response
521
530
  }
522
- const { publicClient } = options;
531
+ const { publicClient } = options
523
532
  const OPENOCEAN_CONTRACT = new ethers.Contract(
524
- "0x6352a56caadC4F1E25CD6c75970Fa768A3304e64",
533
+ '0x6352a56caadC4F1E25CD6c75970Fa768A3304e64',
525
534
  OpenOceanABI
526
- );
535
+ )
527
536
  if (
528
- ethers.hexlify(ethers.getBytes(response?.data || "0x").slice(0, 4)) !==
529
- OPENOCEAN_CONTRACT.interface.getFunction("swap").selector
537
+ ethers.hexlify(ethers.getBytes(response?.data || '0x').slice(0, 4)) !==
538
+ OPENOCEAN_CONTRACT.interface.getFunction('swap').selector
530
539
  ) {
531
- return response;
540
+ return response
532
541
  }
533
- let oldCallData = OPENOCEAN_CONTRACT.interface.decodeFunctionData(
534
- "swap",
542
+ const oldCallData = OPENOCEAN_CONTRACT.interface.decodeFunctionData(
543
+ 'swap',
535
544
  response?.data
536
- );
537
- let callData = [...oldCallData];
538
- callData[1] = [...oldCallData[1]];
539
- const minOutAmount = BigInt(callData[1][5] || 0);
540
- const outAmount = BigInt(callData[1][6] || 0);
541
- const slippageAmount = outAmount - minOutAmount;
542
-
543
- let minOutAmounts = await Promise.all(
545
+ )
546
+ const callData = [...oldCallData]
547
+ callData[1] = [...oldCallData[1]]
548
+ const minOutAmount = BigInt(callData[1][5] || 0)
549
+ const outAmount = BigInt(callData[1][6] || 0)
550
+ const slippageAmount = outAmount - minOutAmount
551
+
552
+ const minOutAmounts = await Promise.all(
544
553
  [1, 2, 3].map(async (i) => {
545
- const mockMinOutAmount = minOutAmount + (slippageAmount / 4n) * BigInt(i);
546
- callData[1][5] = mockMinOutAmount;
554
+ const mockMinOutAmount =
555
+ minOutAmount + (slippageAmount / 4n) * BigInt(i)
556
+ callData[1][5] = mockMinOutAmount
547
557
  const params = {
548
558
  from: response?.from as `0x${string}`,
549
559
  to: response?.to as `0x${string}`,
550
560
  data: OPENOCEAN_CONTRACT.interface.encodeFunctionData(
551
- "swap",
561
+ 'swap',
552
562
  callData
553
563
  ) as `0x${string}`,
554
564
  value: BigInt(response?.value || '0'),
555
- };
565
+ }
556
566
  try {
557
- await publicClient.estimateGas(params);
558
- return mockMinOutAmount;
567
+ await publicClient.estimateGas(params)
568
+ return mockMinOutAmount
559
569
  } catch (error) {
560
- console.error('Failed to estimate gas:', error);
561
- return undefined;
570
+ console.error('Failed to estimate gas:', error)
571
+ return undefined
562
572
  }
563
573
  })
564
- );
574
+ )
565
575
  let [min1, min2] = minOutAmounts
566
576
  .filter((value) => value !== undefined)
567
577
  .sort((a, b) => (BigInt(b || 0) > BigInt(a || 0) ? 1 : -1))
568
- .slice(0, 2);
569
- min1 = min1 ?? minOutAmount;
570
- min2 = min2 ?? minOutAmount;
571
-
572
- const randomFactor = BigInt(Math.floor(Math.random() * 10000));
573
- const minOutAmountDiff = BigInt(min1 || 0) - BigInt(min2 || 0);
574
- const finalMinOutAmount = BigInt(min2 || 0) +
575
- (minOutAmountDiff * randomFactor / BigInt(10000));
576
-
578
+ .slice(0, 2)
579
+ min1 = min1 ?? minOutAmount
580
+ min2 = min2 ?? minOutAmount
581
+
582
+ const randomFactor = BigInt(Math.floor(Math.random() * 10000))
583
+ const minOutAmountDiff = BigInt(min1 || 0) - BigInt(min2 || 0)
584
+ const finalMinOutAmount =
585
+ BigInt(min2 || 0) + (minOutAmountDiff * randomFactor) / BigInt(10000)
586
+
577
587
  if (finalMinOutAmount < minOutAmount) {
578
- return response;
588
+ return response
579
589
  }
580
- callData[1][5] = finalMinOutAmount;
590
+ callData[1][5] = finalMinOutAmount
581
591
  const finalCallData = OPENOCEAN_CONTRACT.interface.encodeFunctionData(
582
- "swap",
592
+ 'swap',
583
593
  callData
584
- );
585
- response.minOutAmount = finalMinOutAmount.toString();
586
- response.data = finalCallData;
587
- return response;
594
+ )
595
+ response.minOutAmount = finalMinOutAmount.toString()
596
+ response.data = finalCallData
597
+ return response
588
598
  } catch (error) {
589
- return response;
599
+ return response
590
600
  }
591
601
  }
592
602