@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.
|
|
2
|
+
export declare const version = "1.0.28";
|
|
@@ -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 {
|
|
5
|
+
import { sendAndConfirmSolanaTransaction } from './SendAndConfirmSolanaTransaction.js';
|
|
6
6
|
const OpenOceanABI = [
|
|
7
7
|
{
|
|
8
|
-
|
|
8
|
+
inputs: [
|
|
9
9
|
{
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
internalType: 'contract IOpenOceanCaller',
|
|
11
|
+
name: 'caller',
|
|
12
|
+
type: 'address',
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
|
-
|
|
15
|
+
components: [
|
|
16
16
|
{
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
internalType: 'contract IERC20',
|
|
18
|
+
name: 'srcToken',
|
|
19
|
+
type: 'address',
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
internalType: 'contract IERC20',
|
|
23
|
+
name: 'dstToken',
|
|
24
|
+
type: 'address',
|
|
25
25
|
},
|
|
26
26
|
{
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
internalType: 'address',
|
|
28
|
+
name: 'srcReceiver',
|
|
29
|
+
type: 'address',
|
|
30
30
|
},
|
|
31
31
|
{
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
internalType: 'address',
|
|
33
|
+
name: 'dstReceiver',
|
|
34
|
+
type: 'address',
|
|
35
35
|
},
|
|
36
36
|
{
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
internalType: 'uint256',
|
|
38
|
+
name: 'amount',
|
|
39
|
+
type: 'uint256',
|
|
40
40
|
},
|
|
41
41
|
{
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
internalType: 'uint256',
|
|
43
|
+
name: 'minReturnAmount',
|
|
44
|
+
type: 'uint256',
|
|
45
45
|
},
|
|
46
46
|
{
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
internalType: 'uint256',
|
|
48
|
+
name: 'guaranteedAmount',
|
|
49
|
+
type: 'uint256',
|
|
50
50
|
},
|
|
51
51
|
{
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
internalType: 'uint256',
|
|
53
|
+
name: 'flags',
|
|
54
|
+
type: 'uint256',
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
57
|
+
internalType: 'address',
|
|
58
|
+
name: 'referrer',
|
|
59
|
+
type: 'address',
|
|
60
60
|
},
|
|
61
61
|
{
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
62
|
+
internalType: 'bytes',
|
|
63
|
+
name: 'permit',
|
|
64
|
+
type: 'bytes',
|
|
65
|
+
},
|
|
66
66
|
],
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
internalType: 'struct OpenOceanExchange.SwapDescription',
|
|
68
|
+
name: 'desc',
|
|
69
|
+
type: 'tuple',
|
|
70
70
|
},
|
|
71
71
|
{
|
|
72
|
-
|
|
72
|
+
components: [
|
|
73
73
|
{
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
internalType: 'uint256',
|
|
75
|
+
name: 'target',
|
|
76
|
+
type: 'uint256',
|
|
77
77
|
},
|
|
78
78
|
{
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
79
|
+
internalType: 'uint256',
|
|
80
|
+
name: 'gasLimit',
|
|
81
|
+
type: 'uint256',
|
|
82
82
|
},
|
|
83
83
|
{
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
84
|
+
internalType: 'uint256',
|
|
85
|
+
name: 'value',
|
|
86
|
+
type: 'uint256',
|
|
87
87
|
},
|
|
88
88
|
{
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
}
|
|
89
|
+
internalType: 'bytes',
|
|
90
|
+
name: 'data',
|
|
91
|
+
type: 'bytes',
|
|
92
|
+
},
|
|
93
93
|
],
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
}
|
|
94
|
+
internalType: 'struct IOpenOceanCaller.CallDescription[]',
|
|
95
|
+
name: 'calls',
|
|
96
|
+
type: 'tuple[]',
|
|
97
|
+
},
|
|
98
98
|
],
|
|
99
|
-
|
|
100
|
-
|
|
99
|
+
name: 'swap',
|
|
100
|
+
outputs: [
|
|
101
101
|
{
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
}
|
|
102
|
+
internalType: 'uint256',
|
|
103
|
+
name: 'returnAmount',
|
|
104
|
+
type: 'uint256',
|
|
105
|
+
},
|
|
106
106
|
],
|
|
107
|
-
|
|
108
|
-
|
|
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 ([
|
|
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?.
|
|
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(
|
|
419
|
-
if (ethers.hexlify(ethers.getBytes(response?.data ||
|
|
420
|
-
OPENOCEAN_CONTRACT.interface.getFunction(
|
|
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
|
-
|
|
424
|
-
|
|
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
|
-
|
|
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(
|
|
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(
|
|
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.
|
|
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",
|
package/src/config/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const name = '@openocean.finance/widget'
|
|
2
|
-
export const version = '1.0.
|
|
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
|
|
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 {
|
|
12
|
+
import { sendAndConfirmSolanaTransaction } from './SendAndConfirmSolanaTransaction.js'
|
|
14
13
|
|
|
15
14
|
const OpenOceanABI = [
|
|
16
15
|
{
|
|
17
|
-
|
|
16
|
+
inputs: [
|
|
17
|
+
{
|
|
18
|
+
internalType: 'contract IOpenOceanCaller',
|
|
19
|
+
name: 'caller',
|
|
20
|
+
type: 'address',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
components: [
|
|
18
24
|
{
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
25
|
+
internalType: 'contract IERC20',
|
|
26
|
+
name: 'srcToken',
|
|
27
|
+
type: 'address',
|
|
22
28
|
},
|
|
23
29
|
{
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
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
|
-
|
|
151
|
-
|
|
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(
|
|
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
|
-
[
|
|
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(
|
|
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
|
-
|
|
533
|
+
'0x6352a56caadC4F1E25CD6c75970Fa768A3304e64',
|
|
525
534
|
OpenOceanABI
|
|
526
|
-
)
|
|
535
|
+
)
|
|
527
536
|
if (
|
|
528
|
-
ethers.hexlify(ethers.getBytes(response?.data ||
|
|
529
|
-
OPENOCEAN_CONTRACT.interface.getFunction(
|
|
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
|
-
|
|
534
|
-
|
|
542
|
+
const oldCallData = OPENOCEAN_CONTRACT.interface.decodeFunctionData(
|
|
543
|
+
'swap',
|
|
535
544
|
response?.data
|
|
536
|
-
)
|
|
537
|
-
|
|
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
|
-
|
|
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 =
|
|
546
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
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
|
|