@openocean.finance/widget 1.0.52 → 1.0.53
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.
- package/dist/esm/AppProvider.js +2 -1
- package/dist/esm/AppProvider.js.map +1 -1
- package/dist/esm/components/BaseTransactionButton/BaseTransactionButton.js +21 -0
- package/dist/esm/components/BaseTransactionButton/BaseTransactionButton.js.map +1 -1
- package/dist/esm/components/TokenList/VirtualizedTokenList.js +1 -1
- package/dist/esm/components/TokenList/VirtualizedTokenList.js.map +1 -1
- package/dist/esm/components/TransactionDetails.js +6 -0
- package/dist/esm/components/TransactionDetails.js.map +1 -1
- package/dist/esm/config/version.d.ts +1 -1
- package/dist/esm/config/version.js +1 -1
- package/dist/esm/cross/adapters/NearIntentsAdapter.js +94 -25
- package/dist/esm/cross/adapters/NearIntentsAdapter.js.map +1 -1
- package/dist/esm/cross/crossChainQuote.d.ts +3 -2
- package/dist/esm/cross/crossChainQuote.js +2 -2
- package/dist/esm/cross/crossChainQuote.js.map +1 -1
- package/dist/esm/hooks/useGasPrice.js +2 -2
- package/dist/esm/hooks/useGasPrice.js.map +1 -1
- package/dist/esm/hooks/useGasRecommendation.d.ts +1 -1
- package/dist/esm/hooks/useGasRecommendation.js +7 -1
- package/dist/esm/hooks/useGasRecommendation.js.map +1 -1
- package/dist/esm/hooks/useRouteExecution.js +5 -0
- package/dist/esm/hooks/useRouteExecution.js.map +1 -1
- package/dist/esm/hooks/useRoutes.js +1 -1
- package/dist/esm/hooks/useRoutes.js.map +1 -1
- package/dist/esm/hooks/useToken.js.map +1 -1
- package/dist/esm/providers/WalletProvider/NearProvider.d.ts +3 -0
- package/dist/esm/providers/WalletProvider/NearProvider.js +95 -0
- package/dist/esm/providers/WalletProvider/NearProvider.js.map +1 -0
- package/dist/esm/providers/WalletProvider/SDKProviders.js +4 -1
- package/dist/esm/providers/WalletProvider/SDKProviders.js.map +1 -1
- package/dist/esm/providers/WalletProvider/useExternalWalletProvider.js +1 -1
- package/dist/esm/providers/WalletProvider/useExternalWalletProvider.js.map +1 -1
- package/dist/esm/services/ExecuteRoute.d.ts +1 -0
- package/dist/esm/services/ExecuteRoute.js +121 -0
- package/dist/esm/services/ExecuteRoute.js.map +1 -1
- package/dist/esm/services/OpenOceanService.d.ts +5 -1
- package/dist/esm/services/OpenOceanService.js +121 -6
- package/dist/esm/services/OpenOceanService.js.map +1 -1
- package/package.json +9 -5
- package/src/AppProvider.tsx +8 -5
- package/src/components/BaseTransactionButton/BaseTransactionButton.tsx +20 -0
- package/src/components/TokenList/VirtualizedTokenList.tsx +1 -1
- package/src/components/TransactionDetails.tsx +17 -11
- package/src/config/version.ts +1 -1
- package/src/cross/adapters/NearIntentsAdapter.ts +100 -28
- package/src/cross/crossChainQuote.ts +6 -2
- package/src/hooks/useGasPrice.ts +2 -2
- package/src/hooks/useGasRecommendation.ts +8 -1
- package/src/hooks/useRouteExecution.ts +5 -0
- package/src/hooks/useRoutes.ts +1 -1
- package/src/hooks/useToken.ts +0 -1
- package/src/providers/WalletProvider/NearProvider.tsx +110 -0
- package/src/providers/WalletProvider/SDKProviders.tsx +5 -0
- package/src/providers/WalletProvider/useExternalWalletProvider.ts +1 -1
- package/src/services/ExecuteRoute.ts +134 -1
- package/src/services/OpenOceanService.ts +135 -7
|
@@ -18,6 +18,9 @@ export declare class OpenOceanService {
|
|
|
18
18
|
disabledDexIds?: string;
|
|
19
19
|
enabledDexIds?: string;
|
|
20
20
|
referrer?: string;
|
|
21
|
+
account?: string;
|
|
22
|
+
inTokenDecimals?: number;
|
|
23
|
+
outTokenDecimals?: number;
|
|
21
24
|
}): Promise<any>;
|
|
22
25
|
static getSwapQuote(params: {
|
|
23
26
|
chain: string;
|
|
@@ -34,6 +37,7 @@ export declare class OpenOceanService {
|
|
|
34
37
|
referrer?: string;
|
|
35
38
|
referrerFee?: string;
|
|
36
39
|
referrerFeeShare?: string;
|
|
40
|
+
inTokenDecimals?: number;
|
|
37
41
|
}): Promise<any>;
|
|
38
42
|
static getTokenList(chain: string): Promise<any>;
|
|
39
43
|
static getDexList(chain: string): Promise<any>;
|
|
@@ -57,5 +61,5 @@ export declare class OpenOceanService {
|
|
|
57
61
|
* @returns Promise<Record<string, string>> returns an object where key is token address and value is price
|
|
58
62
|
*/
|
|
59
63
|
static getTokensPrice(chain: string, tokenAddresses: string[]): Promise<Record<string, string>>;
|
|
60
|
-
static getRpcUrl(): Promise<
|
|
64
|
+
static getRpcUrl(): Promise<string>;
|
|
61
65
|
}
|
|
@@ -21,14 +21,60 @@ export class OpenOceanService {
|
|
|
21
21
|
return tokenAddress;
|
|
22
22
|
}
|
|
23
23
|
static async getQuote(params) {
|
|
24
|
+
const isNearChain = params.chain === '20000000000006' || params.chain === 'near';
|
|
25
|
+
// Near 链使用特殊的 API 端点和参数格式
|
|
26
|
+
if (isNearChain) {
|
|
27
|
+
const nearApiUrl = 'https://ethapi.openocean.finance/v1/near';
|
|
28
|
+
// 计算 amountAll(格式化后的金额,用于显示)
|
|
29
|
+
let amountAll = '';
|
|
30
|
+
if (params.inTokenDecimals !== undefined) {
|
|
31
|
+
const amountBigInt = BigInt(params.amount);
|
|
32
|
+
const decimals = BigInt(10 ** params.inTokenDecimals);
|
|
33
|
+
const wholePart = amountBigInt / decimals;
|
|
34
|
+
const fractionalPart = amountBigInt % decimals;
|
|
35
|
+
if (fractionalPart === 0n) {
|
|
36
|
+
amountAll = wholePart.toString();
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
const fractionalStr = fractionalPart.toString().padStart(params.inTokenDecimals, '0');
|
|
40
|
+
// 移除尾部的 0,但保留至少一位小数
|
|
41
|
+
const trimmedFractional = fractionalStr.replace(/0+$/, '') || '0';
|
|
42
|
+
amountAll = `${wholePart}.${trimmedFractional}`;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
// 转换 slippage:从 0.01 (1%) 转为 100 (百分比格式)
|
|
46
|
+
const slippagePercent = params.slippage
|
|
47
|
+
? Math.floor(Number(params.slippage) * 100).toString()
|
|
48
|
+
: '100'; // 默认 1%
|
|
49
|
+
const queryParams = new URLSearchParams({
|
|
50
|
+
quoteType: 'swap',
|
|
51
|
+
inTokenSymbol: params.inTokenSymbol,
|
|
52
|
+
inTokenAddress: params.inTokenAddress,
|
|
53
|
+
outTokenSymbol: params.outTokenSymbol,
|
|
54
|
+
outTokenAddress: params.outTokenAddress,
|
|
55
|
+
amount: params.amount,
|
|
56
|
+
...(amountAll && { amountAll }),
|
|
57
|
+
slippage: slippagePercent,
|
|
58
|
+
gasPrice: params.gasPrice || '5000000000',
|
|
59
|
+
referrer: params.referrer || '0x3487ef9f9b36547e43268b8f0e2349a226c70b53',
|
|
60
|
+
disabledDexIds: params.disabledDexIds || '',
|
|
61
|
+
disableRfq: '', // Near API 特有参数
|
|
62
|
+
...(params.account && { account: params.account }),
|
|
63
|
+
});
|
|
64
|
+
const response = await fetch(`${nearApiUrl}/quote?${queryParams.toString()}`);
|
|
65
|
+
return {
|
|
66
|
+
data: await response.json(),
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
// 其他链使用原有逻辑
|
|
24
70
|
const apiUrl = this.getApiUrl(params.chain);
|
|
25
71
|
const slippage = (Number(params.slippage || 0.01)).toString();
|
|
26
72
|
const queryParams = new URLSearchParams({
|
|
27
73
|
quoteType: 'quote',
|
|
28
74
|
inTokenSymbol: params.inTokenSymbol,
|
|
29
|
-
inTokenAddress: params.inTokenAddress,
|
|
75
|
+
inTokenAddress: this.getSolanaAddress(params.chain, params.inTokenAddress),
|
|
30
76
|
outTokenSymbol: params.outTokenSymbol,
|
|
31
|
-
outTokenAddress: params.outTokenAddress,
|
|
77
|
+
outTokenAddress: this.getSolanaAddress(params.chain, params.outTokenAddress),
|
|
32
78
|
amountDecimals: params.amount,
|
|
33
79
|
slippage,
|
|
34
80
|
gasPriceDecimals: params.gasPrice || '',
|
|
@@ -40,6 +86,58 @@ export class OpenOceanService {
|
|
|
40
86
|
return response.json();
|
|
41
87
|
}
|
|
42
88
|
static async getSwapQuote(params) {
|
|
89
|
+
const isNearChain = params.chain === '20000000000006' || params.chain === 'near';
|
|
90
|
+
// Near 链使用特殊的 API 端点和参数格式
|
|
91
|
+
if (isNearChain) {
|
|
92
|
+
const nearApiUrl = 'https://ethapi.openocean.finance/v1/near';
|
|
93
|
+
// 计算 amountAll(格式化后的金额,用于显示)
|
|
94
|
+
let amountAll = '';
|
|
95
|
+
if (params.inTokenDecimals !== undefined) {
|
|
96
|
+
const amountBigInt = BigInt(params.amount);
|
|
97
|
+
const decimals = BigInt(10 ** params.inTokenDecimals);
|
|
98
|
+
const wholePart = amountBigInt / decimals;
|
|
99
|
+
const fractionalPart = amountBigInt % decimals;
|
|
100
|
+
if (fractionalPart === 0n) {
|
|
101
|
+
amountAll = wholePart.toString();
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
const fractionalStr = fractionalPart.toString().padStart(params.inTokenDecimals, '0');
|
|
105
|
+
// 移除尾部的 0,但保留至少一位小数
|
|
106
|
+
const trimmedFractional = fractionalStr.replace(/0+$/, '') || '0';
|
|
107
|
+
amountAll = `${wholePart}.${trimmedFractional}`;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// 转换 slippage:从 0.01 (1%) 转为 100 (百分比格式)
|
|
111
|
+
const slippagePercent = params.slippage
|
|
112
|
+
? Math.floor(Number(params.slippage) * 100).toString()
|
|
113
|
+
: '100'; // 默认 1%
|
|
114
|
+
const queryParams = new URLSearchParams({
|
|
115
|
+
quoteType: 'swap',
|
|
116
|
+
inTokenSymbol: params.inTokenSymbol,
|
|
117
|
+
inTokenAddress: params.inTokenAddress,
|
|
118
|
+
outTokenSymbol: params.outTokenSymbol,
|
|
119
|
+
outTokenAddress: params.outTokenAddress,
|
|
120
|
+
amount: params.amount,
|
|
121
|
+
...(amountAll && { amountAll }),
|
|
122
|
+
gasPrice: params.gasPrice || '5000000000',
|
|
123
|
+
disabledDexIds: params.disabledDexIds || '',
|
|
124
|
+
slippage: slippagePercent,
|
|
125
|
+
account: params.account,
|
|
126
|
+
referrer: params.referrer || '0x3487ef9f9b36547e43268b8f0e2349a226c70b53',
|
|
127
|
+
flags: '0', // Near API 特有参数
|
|
128
|
+
disableRfq: '', // Near API 特有参数
|
|
129
|
+
});
|
|
130
|
+
const response = await fetch(`${nearApiUrl}/swap-quote?${queryParams.toString()}`);
|
|
131
|
+
const data = await response.json();
|
|
132
|
+
return {
|
|
133
|
+
data: {
|
|
134
|
+
...data,
|
|
135
|
+
data: data.transaction,
|
|
136
|
+
price_impact: 0
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
// 其他链使用原有逻辑
|
|
43
141
|
const apiUrl = this.getApiUrl(params.chain);
|
|
44
142
|
const slippage = (Number(params.slippage || 0.01)).toString();
|
|
45
143
|
const referrer = {
|
|
@@ -120,7 +218,7 @@ export class OpenOceanService {
|
|
|
120
218
|
return response.json();
|
|
121
219
|
}
|
|
122
220
|
static async getGasPrice(chain) {
|
|
123
|
-
if (!chain || chain === '1151111081099710' || chain === '20000000000001') {
|
|
221
|
+
if (!chain || chain === '1151111081099710' || chain === '20000000000001' || chain === '20000000000006') {
|
|
124
222
|
return {
|
|
125
223
|
data: {
|
|
126
224
|
gasPrice: '1000000000000000000',
|
|
@@ -130,6 +228,13 @@ export class OpenOceanService {
|
|
|
130
228
|
// const apiUrl = this.getApiUrl(chain)
|
|
131
229
|
const response = await fetch(`${this.API_V4_URL}/${chain}/gasPrice`);
|
|
132
230
|
const { data } = await response.json();
|
|
231
|
+
if (chain == '1') {
|
|
232
|
+
return {
|
|
233
|
+
standard: data?.standard?.maxFeePerGas || '101021713',
|
|
234
|
+
instant: data?.instant?.maxFeePerGas || '101021713',
|
|
235
|
+
fast: data?.fast?.maxFeePerGas || '101021713',
|
|
236
|
+
};
|
|
237
|
+
}
|
|
133
238
|
return data;
|
|
134
239
|
}
|
|
135
240
|
static async getTokenInfo(chain, tokenAddress) {
|
|
@@ -194,9 +299,19 @@ export class OpenOceanService {
|
|
|
194
299
|
let url = `${this.API_V3_URL}/solana/getRpc`;
|
|
195
300
|
const response = await fetch(url);
|
|
196
301
|
const data = await response.json();
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
302
|
+
if (data.data?.openapi_v1) {
|
|
303
|
+
let rpcUrl = data.data?.openapi_v1?.[0] || '';
|
|
304
|
+
this.solanaRpcUrl = rpcUrl;
|
|
305
|
+
}
|
|
306
|
+
if (data.data?.openapi_v2) {
|
|
307
|
+
let rpcUrl = data.data?.openapi_v2?.[0] || '';
|
|
308
|
+
this.solanaRpcUrl = rpcUrl;
|
|
309
|
+
}
|
|
310
|
+
if (data.data?.openapi_v3) {
|
|
311
|
+
let rpcUrl = data.data?.openapi_v3?.[0] || '';
|
|
312
|
+
this.solanaRpcUrl = rpcUrl;
|
|
313
|
+
}
|
|
314
|
+
return this.solanaRpcUrl;
|
|
200
315
|
}
|
|
201
316
|
}
|
|
202
317
|
// private static readonly API_V1_URL = 'https://ethapi.openocean.finance/v1'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenOceanService.js","sourceRoot":"","sources":["../../../src/services/OpenOceanService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OpenOceanService.js","sourceRoot":"","sources":["../../../src/services/OpenOceanService.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.53",
|
|
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",
|
|
@@ -51,9 +51,8 @@
|
|
|
51
51
|
"@mui/icons-material": "6.0.2",
|
|
52
52
|
"@mui/material": "^6.4.8",
|
|
53
53
|
"@mui/system": "^6.4.8",
|
|
54
|
-
"@
|
|
55
|
-
"@openocean.finance/
|
|
56
|
-
"@openocean.finance/widget-sdk": "^1.0.15",
|
|
54
|
+
"@openocean.finance/wallet-management": "^1.0.16",
|
|
55
|
+
"@openocean.finance/widget-sdk": "^1.0.16",
|
|
57
56
|
"@relayprotocol/relay-bitcoin-wallet-adapter": "^11.0.1",
|
|
58
57
|
"@reservoir0x/relay-sdk": "^2.4.0",
|
|
59
58
|
"@relayprotocol/relay-sdk": "^5.1.0",
|
|
@@ -71,7 +70,12 @@
|
|
|
71
70
|
"react-intersection-observer": "^9.16.0",
|
|
72
71
|
"react-router-dom": "^6.30.0",
|
|
73
72
|
"viem": "^2.40.3",
|
|
74
|
-
"zustand": "^5.0.3"
|
|
73
|
+
"zustand": "^5.0.3",
|
|
74
|
+
"@near-wallet-selector/react-hook": "^9.0.0",
|
|
75
|
+
"@near-wallet-selector/core": "^9.0.0",
|
|
76
|
+
"@near-wallet-selector/meteor-wallet": "^9.0.0",
|
|
77
|
+
"@near-wallet-selector/sender": "^9.0.0",
|
|
78
|
+
"@near-wallet-selector/modal-ui": "^9.0.0"
|
|
75
79
|
},
|
|
76
80
|
"devDependencies": {
|
|
77
81
|
"cpy-cli": "^5.0.0",
|
package/src/AppProvider.tsx
CHANGED
|
@@ -11,6 +11,7 @@ import { queryClient } from './config/queryClient.js'
|
|
|
11
11
|
import { I18nProvider } from './providers/I18nProvider/I18nProvider.js'
|
|
12
12
|
import { ThemeProvider } from './providers/ThemeProvider/ThemeProvider.js'
|
|
13
13
|
import { WalletProvider } from './providers/WalletProvider/WalletProvider.js'
|
|
14
|
+
import { NearProvider } from './providers/WalletProvider/NearProvider.js'
|
|
14
15
|
import {
|
|
15
16
|
WidgetProvider,
|
|
16
17
|
useWidgetConfig,
|
|
@@ -29,11 +30,13 @@ export const AppProvider: React.FC<PropsWithChildren<WidgetConfigProps>> = ({
|
|
|
29
30
|
<WidgetProvider config={config}>
|
|
30
31
|
<I18nProvider>
|
|
31
32
|
<ThemeProvider>
|
|
32
|
-
<
|
|
33
|
-
<
|
|
34
|
-
<
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
<NearProvider>
|
|
34
|
+
<WalletProvider>
|
|
35
|
+
<StoreProvider config={config} formRef={formRef}>
|
|
36
|
+
<AppRouter>{children}</AppRouter>
|
|
37
|
+
</StoreProvider>
|
|
38
|
+
</WalletProvider>
|
|
39
|
+
</NearProvider>
|
|
37
40
|
</ThemeProvider>
|
|
38
41
|
</I18nProvider>
|
|
39
42
|
</WidgetProvider>
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { Button } from '@mui/material'
|
|
2
2
|
import { useAccount, useWalletMenu } from '@openocean.finance/wallet-management'
|
|
3
|
+
import { ChainType } from '@openocean.finance/widget-sdk'
|
|
3
4
|
import { useTranslation } from 'react-i18next'
|
|
4
5
|
import { useChain } from '../../hooks/useChain.js'
|
|
5
6
|
import { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'
|
|
6
7
|
import { useFieldValues } from '../../stores/form/useFieldValues.js'
|
|
7
8
|
import type { BaseTransactionButtonProps } from './types.js'
|
|
9
|
+
import { useWalletSelector } from '@near-wallet-selector/react-hook'
|
|
8
10
|
|
|
9
11
|
export const BaseTransactionButton: React.FC<BaseTransactionButtonProps> = ({
|
|
10
12
|
onClick,
|
|
@@ -18,9 +20,27 @@ export const BaseTransactionButton: React.FC<BaseTransactionButtonProps> = ({
|
|
|
18
20
|
const [fromChainId] = useFieldValues('fromChain')
|
|
19
21
|
const { chain } = useChain(fromChainId)
|
|
20
22
|
const { account } = useAccount({ chainType: chain?.chainType })
|
|
23
|
+
const nearWallet = useWalletSelector() as any
|
|
24
|
+
const isNearChain = chain?.chainType === ChainType.NVM
|
|
21
25
|
const handleClick = async () => {
|
|
22
26
|
if (account.isConnected) {
|
|
23
27
|
onClick?.()
|
|
28
|
+
} else if (isNearChain && nearWallet) {
|
|
29
|
+
// Near 链:不打开内部钱包菜单,直接调用 Near wallet-selector 的登录流程,
|
|
30
|
+
// 只展示 Near 自己的 UI(用户在其中选择 Meteor / Sender 等钱包)。
|
|
31
|
+
await nearWallet.signIn?.({
|
|
32
|
+
contractId: '',
|
|
33
|
+
methodNames: [],
|
|
34
|
+
})
|
|
35
|
+
// 修改 .modal-left-title 下的 h2 标签文本为英文"Connect Wallet"
|
|
36
|
+
const interval = setInterval(() => {
|
|
37
|
+
const h2 = document.querySelector('.modal-left-title h2');
|
|
38
|
+
if (h2 && h2.textContent !== 'Connect Wallet') {
|
|
39
|
+
h2.textContent = 'Connect Wallet';
|
|
40
|
+
clearInterval(interval);
|
|
41
|
+
}
|
|
42
|
+
}, 50);
|
|
43
|
+
setTimeout(() => clearInterval(interval), 3000); // 最长执行3秒
|
|
24
44
|
} else if (walletConfig?.onConnect) {
|
|
25
45
|
walletConfig.onConnect()
|
|
26
46
|
} else {
|
|
@@ -73,7 +73,7 @@ export const VirtualizedTokenList: FC<VirtualizedTokenListProps> = ({
|
|
|
73
73
|
</List>
|
|
74
74
|
)
|
|
75
75
|
}
|
|
76
|
-
console.log(getVirtualItems().length)
|
|
76
|
+
// console.log(getVirtualItems().length)
|
|
77
77
|
return (
|
|
78
78
|
<List style={{ height: getTotalSize() }} disablePadding>
|
|
79
79
|
{getVirtualItems().map((item) => {
|
|
@@ -36,7 +36,6 @@ export const TransactionDetails: React.FC<TransactionDetailsProps> = ({
|
|
|
36
36
|
const isBradge = route ? fromChainId !== toChainId : state === 'bridge'
|
|
37
37
|
const { token } = useToken(fromChainId, chain?.nativeToken?.address)
|
|
38
38
|
const { gasPrice } = useGasPrice(fromChainId?.toString() || '')
|
|
39
|
-
|
|
40
39
|
if (!route) {
|
|
41
40
|
route = {
|
|
42
41
|
fromAmount: '0',
|
|
@@ -60,6 +59,7 @@ export const TransactionDetails: React.FC<TransactionDetailsProps> = ({
|
|
|
60
59
|
priceImpact: '0',
|
|
61
60
|
fromAmountMin: 0,
|
|
62
61
|
estimatedGas: 0,
|
|
62
|
+
gas: 0,
|
|
63
63
|
steps: [],
|
|
64
64
|
} as unknown as RouteExtended
|
|
65
65
|
}
|
|
@@ -68,17 +68,23 @@ export const TransactionDetails: React.FC<TransactionDetailsProps> = ({
|
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
let gasCostUSD = 0
|
|
71
|
-
const feeCosts:any = []
|
|
71
|
+
const feeCosts: any = []
|
|
72
72
|
const combinedFeesUSD =
|
|
73
|
-
gasCostUSD + feeCosts.reduce((sum:number, fee:any) => sum + fee.costUSD, 0)
|
|
74
|
-
const feeCostUSD = feeCosts.reduce((sum:number, fee:any) => sum + fee.costUSD, 0)
|
|
73
|
+
gasCostUSD + feeCosts.reduce((sum: number, fee: any) => sum + fee.costUSD, 0)
|
|
74
|
+
const feeCostUSD = feeCosts.reduce((sum: number, fee: any) => sum + fee.costUSD, 0)
|
|
75
75
|
const estimatedGas =
|
|
76
76
|
(route as any)?.estimatedGas || (route as any)?.data?.estimatedGas
|
|
77
|
+
const gasCost = (route as any)?.gas || 0
|
|
78
|
+
|
|
77
79
|
if (token && gasPrice && estimatedGas) {
|
|
78
80
|
const d = 10 ** token.decimals
|
|
79
81
|
gasCostUSD =
|
|
80
82
|
Number(token.priceUSD) * ((Number(gasPrice) * Number(estimatedGas)) / d)
|
|
81
83
|
}
|
|
84
|
+
if (token && gasCost) {
|
|
85
|
+
gasCostUSD =
|
|
86
|
+
Number(token.priceUSD) * Number(gasCost)
|
|
87
|
+
}
|
|
82
88
|
if (isBradge) {
|
|
83
89
|
gasCostUSD = (route as any).feeCosts?.[0]?.amountUSD || 0
|
|
84
90
|
}
|
|
@@ -87,8 +93,8 @@ export const TransactionDetails: React.FC<TransactionDetailsProps> = ({
|
|
|
87
93
|
|
|
88
94
|
const feeCollectionStep = route.steps[0]
|
|
89
95
|
? route.steps[0].includedSteps.find(
|
|
90
|
-
|
|
91
|
-
|
|
96
|
+
(includedStep) => includedStep.tool === 'feeCollection'
|
|
97
|
+
)
|
|
92
98
|
: 0
|
|
93
99
|
|
|
94
100
|
let feeAmountUSD = 0
|
|
@@ -110,7 +116,7 @@ export const TransactionDetails: React.FC<TransactionDetailsProps> = ({
|
|
|
110
116
|
const showIntegratorFeeCollectionDetails =
|
|
111
117
|
(feeAmountUSD || Number.isFinite(feeConfig?.fee)) && !hasGaslessSupport
|
|
112
118
|
|
|
113
|
-
if(!Number(route.toAmount)){
|
|
119
|
+
if (!Number(route.toAmount)) {
|
|
114
120
|
return null
|
|
115
121
|
}
|
|
116
122
|
|
|
@@ -213,8 +219,8 @@ export const TransactionDetails: React.FC<TransactionDetailsProps> = ({
|
|
|
213
219
|
<Typography variant="body2" sx={{ fontWeight: 600 }}>
|
|
214
220
|
{gasCostUSD
|
|
215
221
|
? t('format.currency', {
|
|
216
|
-
|
|
217
|
-
|
|
222
|
+
value: gasCostUSD,
|
|
223
|
+
})
|
|
218
224
|
: '--'}
|
|
219
225
|
</Typography>
|
|
220
226
|
</Box>
|
|
@@ -232,8 +238,8 @@ export const TransactionDetails: React.FC<TransactionDetailsProps> = ({
|
|
|
232
238
|
</Typography>
|
|
233
239
|
{feeCostUSD
|
|
234
240
|
? t('format.currency', {
|
|
235
|
-
|
|
236
|
-
|
|
241
|
+
value: feeCostUSD,
|
|
242
|
+
})
|
|
237
243
|
: '--'}
|
|
238
244
|
</Box>
|
|
239
245
|
) : null}
|
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.53'
|
|
@@ -209,6 +209,7 @@ export class NearIntentsAdapter extends BaseSwapAdapter {
|
|
|
209
209
|
deadline.setSeconds(deadline.getSeconds() + (params.fromChain === NonEvmChain.Bitcoin ? 60 * 60 : 60 * 20))
|
|
210
210
|
if (this.nearTokens.length === 0) {
|
|
211
211
|
await this.getAllSupportedTokens()
|
|
212
|
+
await new Promise(resolve => setTimeout(resolve, 3000))
|
|
212
213
|
}
|
|
213
214
|
|
|
214
215
|
let fromAssetId: any = ''
|
|
@@ -576,75 +577,146 @@ export class NearIntentsAdapter extends BaseSwapAdapter {
|
|
|
576
577
|
reject('Not connected')
|
|
577
578
|
return
|
|
578
579
|
}
|
|
579
|
-
const isNative = (quote.quoteParams.fromToken as any).assetId === 'near'
|
|
580
580
|
|
|
581
|
-
const
|
|
582
|
-
|
|
581
|
+
const fromToken = quote.quoteParams.fromToken as any
|
|
582
|
+
const isNative = fromToken.address === 'near.near'
|
|
583
|
+
const rawAmount = quote.quoteParams.amount || '0'
|
|
584
|
+
const amount = String(rawAmount) // yoctoNEAR 字符串
|
|
585
|
+
|
|
586
|
+
const transactions: {
|
|
587
|
+
signerId: string
|
|
588
|
+
receiverId: string
|
|
589
|
+
actions: any[]
|
|
590
|
+
}[] = []
|
|
591
|
+
|
|
592
|
+
// wNEAR 合约地址(标准 wrap.near)
|
|
593
|
+
const WRAP_CONTRACT_ID = 'wrap.near'
|
|
594
|
+
|
|
595
|
+
const tokenContract = fromToken.address as string | undefined
|
|
596
|
+
|
|
597
|
+
if (isNative) {
|
|
598
|
+
// 原生 NEAR:先在 wNEAR 合约上给桥地址做 storage_deposit,再 near_deposit 包成 wNEAR,然后 ft_transfer 给桥地址
|
|
583
599
|
transactions.push({
|
|
584
600
|
signerId: nearWallet.signedAccountId,
|
|
585
|
-
receiverId:
|
|
601
|
+
receiverId: WRAP_CONTRACT_ID,
|
|
586
602
|
actions: [
|
|
587
603
|
{
|
|
604
|
+
// 1) storage_deposit,确保桥地址在 wNEAR 上已注册
|
|
588
605
|
type: 'FunctionCall',
|
|
589
606
|
params: {
|
|
590
607
|
methodName: 'storage_deposit',
|
|
591
|
-
args: {
|
|
608
|
+
args: {
|
|
609
|
+
account_id: depositAddress,
|
|
610
|
+
registration_only: true,
|
|
611
|
+
},
|
|
592
612
|
gas: '30000000000000',
|
|
593
613
|
deposit: '1250000000000000000000', // 0.00125 NEAR
|
|
594
614
|
},
|
|
595
615
|
},
|
|
616
|
+
{
|
|
617
|
+
// 2) near_deposit:把原生 NEAR 包成 wNEAR
|
|
618
|
+
type: 'FunctionCall',
|
|
619
|
+
params: {
|
|
620
|
+
methodName: 'near_deposit',
|
|
621
|
+
args: {},
|
|
622
|
+
gas: '30000000000000',
|
|
623
|
+
deposit: amount, // 使用原始 NEAR 数量(yoctoNEAR)
|
|
624
|
+
},
|
|
625
|
+
},
|
|
626
|
+
{
|
|
627
|
+
// 3) ft_transfer:将 wNEAR 发送到桥地址
|
|
628
|
+
type: 'FunctionCall',
|
|
629
|
+
params: {
|
|
630
|
+
methodName: 'ft_transfer',
|
|
631
|
+
args: {
|
|
632
|
+
receiver_id: depositAddress,
|
|
633
|
+
amount,
|
|
634
|
+
},
|
|
635
|
+
gas: '30000000000000',
|
|
636
|
+
deposit: '1', // NEP-141 规范要求 1 yoctoNEAR
|
|
637
|
+
},
|
|
638
|
+
},
|
|
596
639
|
],
|
|
597
640
|
})
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
type: '
|
|
641
|
+
} else if (tokenContract) {
|
|
642
|
+
// 非原生 NEP-141 token:先在 token 合约上给桥地址做 storage_deposit,再 ft_transfer
|
|
643
|
+
transactions.push({
|
|
644
|
+
signerId: nearWallet.signedAccountId,
|
|
645
|
+
receiverId: tokenContract,
|
|
646
|
+
actions: [
|
|
647
|
+
{
|
|
648
|
+
type: 'FunctionCall',
|
|
606
649
|
params: {
|
|
607
|
-
|
|
650
|
+
methodName: 'storage_deposit',
|
|
651
|
+
args: {
|
|
652
|
+
account_id: depositAddress,
|
|
653
|
+
registration_only: true,
|
|
654
|
+
},
|
|
655
|
+
gas: '30000000000000',
|
|
656
|
+
deposit: '1250000000000000000000', // 0.00125 NEAR
|
|
608
657
|
},
|
|
609
|
-
}
|
|
610
|
-
|
|
658
|
+
},
|
|
659
|
+
{
|
|
611
660
|
type: 'FunctionCall',
|
|
612
661
|
params: {
|
|
613
662
|
methodName: 'ft_transfer',
|
|
614
663
|
args: {
|
|
615
664
|
receiver_id: depositAddress,
|
|
616
|
-
amount
|
|
665
|
+
amount,
|
|
617
666
|
},
|
|
618
667
|
gas: '30000000000000',
|
|
619
668
|
deposit: '1',
|
|
620
669
|
},
|
|
621
670
|
},
|
|
622
|
-
|
|
623
|
-
|
|
671
|
+
],
|
|
672
|
+
})
|
|
673
|
+
} else {
|
|
674
|
+
reject('Invalid NEAR token contract')
|
|
675
|
+
return
|
|
676
|
+
}
|
|
624
677
|
|
|
625
|
-
//
|
|
626
|
-
if (nearWallet?.wallet?.id === 'my-near-wallet')
|
|
678
|
+
// MyNearWallet 会跳转到网页,需要在本地记录一次
|
|
679
|
+
if (nearWallet?.wallet?.id === 'my-near-wallet') {
|
|
627
680
|
localStorage.setItem(
|
|
628
681
|
'cross-chain-swap-my-near-wallet-tx',
|
|
629
682
|
JSON.stringify({
|
|
630
683
|
...params,
|
|
631
684
|
sourceTxHash: depositAddress,
|
|
632
|
-
})
|
|
685
|
+
})
|
|
633
686
|
)
|
|
687
|
+
}
|
|
634
688
|
|
|
635
|
-
await nearWallet
|
|
636
|
-
.signAndSendTransactions({
|
|
637
|
-
|
|
638
|
-
})
|
|
639
|
-
.catch(e => {
|
|
689
|
+
const txResult = await nearWallet
|
|
690
|
+
.signAndSendTransactions({ transactions })
|
|
691
|
+
.catch((e: any) => {
|
|
640
692
|
console.log('NearIntents signAndSendTransactions failed', e)
|
|
641
693
|
if (nearWallet?.wallet?.id === 'my-near-wallet') reject()
|
|
642
694
|
else reject(e)
|
|
643
695
|
})
|
|
696
|
+
let transaction: any = { hash: "" };
|
|
697
|
+
if (txResult && txResult.length === 1) {
|
|
698
|
+
transaction = txResult[txResult.length - 1].transaction || {};
|
|
699
|
+
} else if (txResult && txResult.length > 1) {
|
|
700
|
+
transaction = txResult.filter((item: any) => {
|
|
701
|
+
const { actions = [] } = item && item.transaction || {};
|
|
702
|
+
const _actions = actions.filter((fc: any) => {
|
|
703
|
+
const { FunctionCall = {} } = fc;
|
|
704
|
+
const { method_name } = FunctionCall;
|
|
705
|
+
return method_name === 'ft_transfer_call';
|
|
706
|
+
});
|
|
707
|
+
return _actions && _actions.length > 0;
|
|
708
|
+
});
|
|
709
|
+
if (transaction && transaction.length) {
|
|
710
|
+
transaction = transaction[0].transaction;
|
|
711
|
+
} else {
|
|
712
|
+
transaction = txResult[txResult.length - 1].transaction || {};
|
|
713
|
+
}
|
|
714
|
+
}
|
|
715
|
+
const { hash } = transaction;
|
|
644
716
|
|
|
645
717
|
resolve({
|
|
646
718
|
...params,
|
|
647
|
-
sourceTxHash:
|
|
719
|
+
sourceTxHash: hash,
|
|
648
720
|
})
|
|
649
721
|
})
|
|
650
722
|
}
|
|
@@ -213,19 +213,23 @@ export async function getCrossChainQuote({
|
|
|
213
213
|
export const bridgeExecuteSwap = async ({
|
|
214
214
|
quoteData,
|
|
215
215
|
walletClient,
|
|
216
|
+
nearWallet,
|
|
216
217
|
}: {
|
|
217
218
|
quoteData: any
|
|
218
219
|
walletClient: WalletClient
|
|
220
|
+
// Near Intents adapter 需要的 Near wallet-selector 实例,其它适配器会忽略
|
|
221
|
+
nearWallet?: any
|
|
219
222
|
}) => {
|
|
220
223
|
const adapterName = quoteData.quoteAdapterKey
|
|
221
224
|
const adapter = CrossChainSwapFactory.getAdapterByName(adapterName)
|
|
222
225
|
if (adapter) {
|
|
223
|
-
const result = await adapter?.executeSwap(
|
|
226
|
+
const result = await (adapter as any)?.executeSwap(
|
|
224
227
|
{
|
|
225
228
|
adapter,
|
|
226
229
|
quote: quoteData.quoteRawData as any,
|
|
227
230
|
},
|
|
228
|
-
walletClient
|
|
231
|
+
walletClient,
|
|
232
|
+
nearWallet
|
|
229
233
|
)
|
|
230
234
|
return result
|
|
231
235
|
}
|
package/src/hooks/useGasPrice.ts
CHANGED
|
@@ -13,9 +13,9 @@ export const useGasPrice = (chainName: string) => {
|
|
|
13
13
|
queryKey: ['gasPrice'],
|
|
14
14
|
queryFn: () => OpenOceanService.getGasPrice(chainName.toLowerCase()),
|
|
15
15
|
})
|
|
16
|
-
const _gasPrice = data?.[gasKey[gasPrice || '
|
|
16
|
+
const _gasPrice = data?.[gasKey[gasPrice || 'normal']]
|
|
17
17
|
return {
|
|
18
|
-
gasPrice: _gasPrice
|
|
18
|
+
gasPrice: _gasPrice || _gasPrice?.maxFeePerGas || data?.gasPrice || 50000000,
|
|
19
19
|
isLoading,
|
|
20
20
|
}
|
|
21
21
|
}
|