@openocean.finance/widget 1.0.28 → 1.0.30
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/components/AmountInput/AmountInputEndAdornment.js +46 -39
- package/dist/esm/components/AmountInput/AmountInputEndAdornment.js.map +1 -1
- package/dist/esm/components/Messages/WarningMessages.js +2 -2
- package/dist/esm/components/Messages/WarningMessages.js.map +1 -1
- package/dist/esm/components/Step/Step.js +37 -29
- package/dist/esm/components/Step/Step.js.map +1 -1
- package/dist/esm/components/TransactionDetails.js +3 -6
- 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/AcrossAdapter.d.ts +15 -0
- package/dist/esm/cross/adapters/AcrossAdapter.js +166 -0
- package/dist/esm/cross/adapters/AcrossAdapter.js.map +1 -0
- package/dist/esm/cross/adapters/BaseSwapAdapter.d.ts +107 -0
- package/dist/esm/cross/adapters/BaseSwapAdapter.js +44 -0
- package/dist/esm/cross/adapters/BaseSwapAdapter.js.map +1 -0
- package/dist/esm/cross/adapters/DebridgeAdapter.d.ts +20 -0
- package/dist/esm/cross/adapters/DebridgeAdapter.js +264 -0
- package/dist/esm/cross/adapters/DebridgeAdapter.js.map +1 -0
- package/dist/esm/cross/adapters/LifiAdapter.d.ts +19 -0
- package/dist/esm/cross/adapters/LifiAdapter.js +169 -0
- package/dist/esm/cross/adapters/LifiAdapter.js.map +1 -0
- package/dist/esm/cross/adapters/MayanAdapter.d.ts +14 -0
- package/dist/esm/cross/adapters/MayanAdapter.js +119 -0
- package/dist/esm/cross/adapters/MayanAdapter.js.map +1 -0
- package/dist/esm/cross/adapters/NearIntentsAdapter.d.ts +21 -0
- package/dist/esm/cross/adapters/NearIntentsAdapter.js +425 -0
- package/dist/esm/cross/adapters/NearIntentsAdapter.js.map +1 -0
- package/dist/esm/cross/adapters/OptimexAdapter.d.ts +19 -0
- package/dist/esm/cross/adapters/OptimexAdapter.js +216 -0
- package/dist/esm/cross/adapters/OptimexAdapter.js.map +1 -0
- package/dist/esm/cross/adapters/OrbiterAdapter.d.ts +20 -0
- package/dist/esm/cross/adapters/OrbiterAdapter.js +213 -0
- package/dist/esm/cross/adapters/OrbiterAdapter.js.map +1 -0
- package/dist/esm/cross/adapters/RelayAdapter.d.ts +14 -0
- package/dist/esm/cross/adapters/RelayAdapter.js +171 -0
- package/dist/esm/cross/adapters/RelayAdapter.js.map +1 -0
- package/dist/esm/cross/adapters/SymbiosisAdapter.d.ts +14 -0
- package/dist/esm/cross/adapters/SymbiosisAdapter.js +120 -0
- package/dist/esm/cross/adapters/SymbiosisAdapter.js.map +1 -0
- package/dist/esm/cross/adapters/XYFinanceAdapter.d.ts +14 -0
- package/dist/esm/cross/adapters/XYFinanceAdapter.js +177 -0
- package/dist/esm/cross/adapters/XYFinanceAdapter.js.map +1 -0
- package/dist/esm/cross/adapters/index.d.ts +2 -0
- package/dist/esm/cross/adapters/index.js +10 -0
- package/dist/esm/cross/adapters/index.js.map +1 -0
- package/dist/esm/cross/constants/index.d.ts +202 -0
- package/dist/esm/cross/constants/index.js +183 -0
- package/dist/esm/cross/constants/index.js.map +1 -0
- package/dist/esm/cross/crossChainQuote.d.ts +25 -0
- package/dist/esm/cross/crossChainQuote.js +127 -0
- package/dist/esm/cross/crossChainQuote.js.map +1 -0
- package/dist/esm/cross/factory.d.ts +9 -0
- package/dist/esm/cross/factory.js +125 -0
- package/dist/esm/cross/factory.js.map +1 -0
- package/dist/esm/cross/registry.d.ts +12 -0
- package/dist/esm/cross/registry.js +52 -0
- package/dist/esm/cross/registry.js.map +1 -0
- package/dist/esm/hooks/useChain.d.ts +1 -1
- package/dist/esm/hooks/useGasRefuel.d.ts +1 -1
- package/dist/esm/hooks/useGasSufficiencyBridge.js +1 -2
- package/dist/esm/hooks/useGasSufficiencyBridge.js.map +1 -1
- package/dist/esm/hooks/useRouteExecution.js +2 -1
- package/dist/esm/hooks/useRouteExecution.js.map +1 -1
- package/dist/esm/hooks/useRoutes.js +49 -33
- package/dist/esm/hooks/useRoutes.js.map +1 -1
- package/dist/esm/hooks/useSettingMonitor.js.map +1 -1
- package/dist/esm/hooks/useTokenAddressBalance.d.ts +1 -1
- package/dist/esm/hooks/useTokenPrice.js +4 -2
- package/dist/esm/hooks/useTokenPrice.js.map +1 -1
- package/dist/esm/hooks/useTokens.d.ts +1 -1
- package/dist/esm/services/ExecuteRoute.js +142 -124
- package/dist/esm/services/ExecuteRoute.js.map +1 -1
- package/dist/esm/stores/form/useFieldController.d.ts +1 -1
- package/dist/esm/stores/routes/createRouteExecutionStore.js +6 -3
- package/dist/esm/stores/routes/createRouteExecutionStore.js.map +1 -1
- package/dist/esm/stores/routes/useSetExecutableRoute.d.ts +1 -1
- package/dist/esm/types/widget.d.ts +3 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +14 -4
- package/src/components/AmountInput/AmountInputEndAdornment.tsx +46 -46
- package/src/components/Messages/WarningMessages.tsx +7 -2
- package/src/components/Step/Step.tsx +37 -31
- package/src/components/TransactionDetails.tsx +11 -12
- package/src/config/version.ts +1 -1
- package/src/cross/adapters/AcrossAdapter.ts +193 -0
- package/src/cross/adapters/BaseSwapAdapter.ts +173 -0
- package/src/cross/adapters/DebridgeAdapter.ts +375 -0
- package/src/cross/adapters/LifiAdapter.ts +213 -0
- package/src/cross/adapters/MayanAdapter.ts +179 -0
- package/src/cross/adapters/NearIntentsAdapter.ts +539 -0
- package/src/cross/adapters/OptimexAdapter.ts +273 -0
- package/src/cross/adapters/OrbiterAdapter.ts +270 -0
- package/src/cross/adapters/RelayAdapter.ts +248 -0
- package/src/cross/adapters/SymbiosisAdapter.ts +144 -0
- package/src/cross/adapters/XYFinanceAdapter.ts +213 -0
- package/src/cross/adapters/index.ts +9 -0
- package/src/cross/constants/index.ts +223 -0
- package/src/cross/crossChainQuote.ts +181 -0
- package/src/cross/factory.ts +145 -0
- package/src/cross/registry.ts +65 -0
- package/src/hooks/useGasSufficiencyBridge.ts +1 -3
- package/src/hooks/useRouteExecution.ts +2 -1
- package/src/hooks/useRoutes.ts +63 -44
- package/src/hooks/useSettingMonitor.ts +0 -1
- package/src/hooks/useTokenPrice.ts +5 -3
- package/src/services/ExecuteRoute.ts +184 -171
- package/src/stores/routes/createRouteExecutionStore.ts +13 -4
- package/src/types/widget.ts +3 -0
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import { ChainId } from '@openocean.finance/widget-sdk';
|
|
2
|
+
export declare const CROSS_CHAIN_FEE_RECEIVER = "0x922164BBBd36Acf9E854AcBbF32faCC949fCAEef";
|
|
3
|
+
export declare const CROSS_CHAIN_FEE_RECEIVER_SOLANA = "yEVG5DpokLuVRAqoWeKJANBY2wynzgTSXUbGz7aDKBq";
|
|
4
|
+
export declare const ZERO_ADDRESS = "0x0000000000000000000000000000000000000000";
|
|
5
|
+
export declare const BTC_DEFAULT_RECEIVER = "";
|
|
6
|
+
export declare const SOLANA_NATIVE = "11111111111111111111111111111111";
|
|
7
|
+
export declare const ETHER_ADDRESS = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
|
|
8
|
+
export declare const TOKEN_API_URL = "https://token-api.kyberengineering.io/api";
|
|
9
|
+
export declare const NativeCurrencies: {
|
|
10
|
+
1: {
|
|
11
|
+
name: string;
|
|
12
|
+
symbol: string;
|
|
13
|
+
decimals: number;
|
|
14
|
+
address: string;
|
|
15
|
+
wrapped: {
|
|
16
|
+
name: string;
|
|
17
|
+
symbol: string;
|
|
18
|
+
decimals: number;
|
|
19
|
+
address: string;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
56: {
|
|
23
|
+
name: string;
|
|
24
|
+
symbol: string;
|
|
25
|
+
decimals: number;
|
|
26
|
+
address: string;
|
|
27
|
+
wrapped: {
|
|
28
|
+
name: string;
|
|
29
|
+
symbol: string;
|
|
30
|
+
decimals: number;
|
|
31
|
+
address: string;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
43114: {
|
|
35
|
+
name: string;
|
|
36
|
+
symbol: string;
|
|
37
|
+
decimals: number;
|
|
38
|
+
address: string;
|
|
39
|
+
wrapped: {
|
|
40
|
+
name: string;
|
|
41
|
+
symbol: string;
|
|
42
|
+
decimals: number;
|
|
43
|
+
address: string;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
137: {
|
|
47
|
+
name: string;
|
|
48
|
+
symbol: string;
|
|
49
|
+
decimals: number;
|
|
50
|
+
address: string;
|
|
51
|
+
wrapped: {
|
|
52
|
+
name: string;
|
|
53
|
+
symbol: string;
|
|
54
|
+
decimals: number;
|
|
55
|
+
address: string;
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
42161: {
|
|
59
|
+
name: string;
|
|
60
|
+
symbol: string;
|
|
61
|
+
decimals: number;
|
|
62
|
+
address: string;
|
|
63
|
+
wrapped: {
|
|
64
|
+
name: string;
|
|
65
|
+
symbol: string;
|
|
66
|
+
decimals: number;
|
|
67
|
+
address: string;
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
10: {
|
|
71
|
+
name: string;
|
|
72
|
+
symbol: string;
|
|
73
|
+
decimals: number;
|
|
74
|
+
address: string;
|
|
75
|
+
wrapped: {
|
|
76
|
+
name: string;
|
|
77
|
+
symbol: string;
|
|
78
|
+
decimals: number;
|
|
79
|
+
address: string;
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
250: {
|
|
83
|
+
name: string;
|
|
84
|
+
symbol: string;
|
|
85
|
+
decimals: number;
|
|
86
|
+
address: string;
|
|
87
|
+
wrapped: {
|
|
88
|
+
name: string;
|
|
89
|
+
symbol: string;
|
|
90
|
+
decimals: number;
|
|
91
|
+
address: string;
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
8453: {
|
|
95
|
+
name: string;
|
|
96
|
+
symbol: string;
|
|
97
|
+
decimals: number;
|
|
98
|
+
address: string;
|
|
99
|
+
wrapped: {
|
|
100
|
+
name: string;
|
|
101
|
+
symbol: string;
|
|
102
|
+
decimals: number;
|
|
103
|
+
address: string;
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
534352: {
|
|
107
|
+
name: string;
|
|
108
|
+
symbol: string;
|
|
109
|
+
decimals: number;
|
|
110
|
+
address: string;
|
|
111
|
+
wrapped: {
|
|
112
|
+
name: string;
|
|
113
|
+
symbol: string;
|
|
114
|
+
decimals: number;
|
|
115
|
+
address: string;
|
|
116
|
+
};
|
|
117
|
+
};
|
|
118
|
+
81457: {
|
|
119
|
+
name: string;
|
|
120
|
+
symbol: string;
|
|
121
|
+
decimals: number;
|
|
122
|
+
address: string;
|
|
123
|
+
wrapped: {
|
|
124
|
+
name: string;
|
|
125
|
+
symbol: string;
|
|
126
|
+
decimals: number;
|
|
127
|
+
address: string;
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
5000: {
|
|
131
|
+
name: string;
|
|
132
|
+
symbol: string;
|
|
133
|
+
decimals: number;
|
|
134
|
+
address: string;
|
|
135
|
+
wrapped: {
|
|
136
|
+
name: string;
|
|
137
|
+
symbol: string;
|
|
138
|
+
decimals: number;
|
|
139
|
+
address: string;
|
|
140
|
+
};
|
|
141
|
+
};
|
|
142
|
+
146: {
|
|
143
|
+
name: string;
|
|
144
|
+
symbol: string;
|
|
145
|
+
decimals: number;
|
|
146
|
+
address: string;
|
|
147
|
+
wrapped: {
|
|
148
|
+
name: string;
|
|
149
|
+
symbol: string;
|
|
150
|
+
decimals: number;
|
|
151
|
+
address: string;
|
|
152
|
+
};
|
|
153
|
+
};
|
|
154
|
+
130: {
|
|
155
|
+
name: string;
|
|
156
|
+
symbol: string;
|
|
157
|
+
decimals: number;
|
|
158
|
+
address: string;
|
|
159
|
+
wrapped: {
|
|
160
|
+
name: string;
|
|
161
|
+
symbol: string;
|
|
162
|
+
decimals: number;
|
|
163
|
+
address: string;
|
|
164
|
+
};
|
|
165
|
+
};
|
|
166
|
+
};
|
|
167
|
+
export declare const MAINNET_NETWORKS: readonly [ChainId.ETH, ChainId.BSC, ChainId.AVA, ChainId.BAS, ChainId.POL, ChainId.ARB, ChainId.OPT, ChainId.MNT, ChainId.SON, ChainId.UNI, ChainId.BLS, ChainId.SCL];
|
|
168
|
+
export interface Currency {
|
|
169
|
+
id: string;
|
|
170
|
+
name: string;
|
|
171
|
+
symbol: string;
|
|
172
|
+
address: string;
|
|
173
|
+
icon: string;
|
|
174
|
+
logo: string;
|
|
175
|
+
decimals: number;
|
|
176
|
+
isNative: boolean;
|
|
177
|
+
wrapped: {
|
|
178
|
+
name: string;
|
|
179
|
+
symbol: string;
|
|
180
|
+
decimals: number;
|
|
181
|
+
address: string;
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
export interface NearToken {
|
|
185
|
+
assetId: string;
|
|
186
|
+
decimals: number;
|
|
187
|
+
blockchain: string;
|
|
188
|
+
symbol: string;
|
|
189
|
+
price: number;
|
|
190
|
+
priceUpdatedAt: number;
|
|
191
|
+
contractAddress: string;
|
|
192
|
+
logo: string;
|
|
193
|
+
}
|
|
194
|
+
export interface SolanaToken {
|
|
195
|
+
id: string;
|
|
196
|
+
name: string;
|
|
197
|
+
symbol: string;
|
|
198
|
+
icon: string;
|
|
199
|
+
logo: string;
|
|
200
|
+
decimals: number;
|
|
201
|
+
tokenProgram: string;
|
|
202
|
+
}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { ChainId } from '@openocean.finance/widget-sdk';
|
|
2
|
+
export const CROSS_CHAIN_FEE_RECEIVER = '0x922164BBBd36Acf9E854AcBbF32faCC949fCAEef';
|
|
3
|
+
export const CROSS_CHAIN_FEE_RECEIVER_SOLANA = 'yEVG5DpokLuVRAqoWeKJANBY2wynzgTSXUbGz7aDKBq';
|
|
4
|
+
export const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000';
|
|
5
|
+
export const BTC_DEFAULT_RECEIVER = '';
|
|
6
|
+
export const SOLANA_NATIVE = '11111111111111111111111111111111';
|
|
7
|
+
export const ETHER_ADDRESS = '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE';
|
|
8
|
+
export const TOKEN_API_URL = 'https://token-api.kyberengineering.io/api';
|
|
9
|
+
export const NativeCurrencies = {
|
|
10
|
+
[ChainId.ETH]: {
|
|
11
|
+
name: 'Ether',
|
|
12
|
+
symbol: 'ETH',
|
|
13
|
+
decimals: 18,
|
|
14
|
+
address: '0x0000000000000000000000000000000000000000',
|
|
15
|
+
wrapped: {
|
|
16
|
+
name: 'Wrapped Ether',
|
|
17
|
+
symbol: 'WETH',
|
|
18
|
+
decimals: 18,
|
|
19
|
+
address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
[ChainId.BSC]: {
|
|
23
|
+
name: 'Binance Coin',
|
|
24
|
+
symbol: 'BNB',
|
|
25
|
+
decimals: 18,
|
|
26
|
+
address: '0x0000000000000000000000000000000000000000',
|
|
27
|
+
wrapped: {
|
|
28
|
+
name: 'Wrapped BNB',
|
|
29
|
+
symbol: 'WBNB',
|
|
30
|
+
decimals: 18,
|
|
31
|
+
address: '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c',
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
[ChainId.AVA]: {
|
|
35
|
+
name: 'Avalanche',
|
|
36
|
+
symbol: 'AVAX',
|
|
37
|
+
decimals: 18,
|
|
38
|
+
address: '0x0000000000000000000000000000000000000000',
|
|
39
|
+
wrapped: {
|
|
40
|
+
name: 'Wrapped AVAX',
|
|
41
|
+
symbol: 'WAVAX',
|
|
42
|
+
decimals: 18,
|
|
43
|
+
address: '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7',
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
[ChainId.POL]: {
|
|
47
|
+
name: 'Polygon',
|
|
48
|
+
symbol: 'MATIC',
|
|
49
|
+
decimals: 18,
|
|
50
|
+
address: '0x0000000000000000000000000000000000000000',
|
|
51
|
+
wrapped: {
|
|
52
|
+
name: 'Wrapped MATIC',
|
|
53
|
+
symbol: 'WMATIC',
|
|
54
|
+
decimals: 18,
|
|
55
|
+
address: '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270',
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
[ChainId.ARB]: {
|
|
59
|
+
name: 'ETH',
|
|
60
|
+
symbol: 'ETH',
|
|
61
|
+
decimals: 18,
|
|
62
|
+
address: '0x0000000000000000000000000000000000000000',
|
|
63
|
+
wrapped: {
|
|
64
|
+
name: 'Wrapped ETH',
|
|
65
|
+
symbol: 'WEHT',
|
|
66
|
+
decimals: 18,
|
|
67
|
+
address: '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
[ChainId.OPT]: {
|
|
71
|
+
name: 'Optimism',
|
|
72
|
+
symbol: 'ETH',
|
|
73
|
+
decimals: 18,
|
|
74
|
+
address: '0x0000000000000000000000000000000000000000',
|
|
75
|
+
wrapped: {
|
|
76
|
+
name: 'Wrapped ETH',
|
|
77
|
+
symbol: 'WETH',
|
|
78
|
+
decimals: 18,
|
|
79
|
+
address: '0x4200000000000000000000000000000000000006',
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
[ChainId.FTM]: {
|
|
83
|
+
name: 'Fantom',
|
|
84
|
+
symbol: 'FTM',
|
|
85
|
+
decimals: 18,
|
|
86
|
+
address: '0x0000000000000000000000000000000000000000',
|
|
87
|
+
wrapped: {
|
|
88
|
+
name: 'Wrapped FTM',
|
|
89
|
+
symbol: 'WFTM',
|
|
90
|
+
decimals: 18,
|
|
91
|
+
address: '0x21be370D5312f44cB42ce377BC9b8a0cEF1A4C83',
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
[ChainId.BAS]: {
|
|
95
|
+
name: 'Base',
|
|
96
|
+
symbol: 'ETH',
|
|
97
|
+
decimals: 18,
|
|
98
|
+
address: '0x0000000000000000000000000000000000000000',
|
|
99
|
+
wrapped: {
|
|
100
|
+
name: 'Wrapped ETH',
|
|
101
|
+
symbol: 'WEHT',
|
|
102
|
+
decimals: 18,
|
|
103
|
+
address: '0x4200000000000000000000000000000000000006',
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
[ChainId.SCL]: {
|
|
107
|
+
name: 'Scroll',
|
|
108
|
+
symbol: 'ETH',
|
|
109
|
+
decimals: 18,
|
|
110
|
+
address: '0x0000000000000000000000000000000000000000',
|
|
111
|
+
wrapped: {
|
|
112
|
+
name: 'Wrapped ETH',
|
|
113
|
+
symbol: 'WEHT',
|
|
114
|
+
decimals: 18,
|
|
115
|
+
address: '0x5300000000000000000000000000000000000004',
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
[ChainId.BLS]: {
|
|
119
|
+
name: 'Blast',
|
|
120
|
+
symbol: 'ETH',
|
|
121
|
+
decimals: 18,
|
|
122
|
+
address: '0x0000000000000000000000000000000000000000',
|
|
123
|
+
wrapped: {
|
|
124
|
+
name: 'Wrapped ETH',
|
|
125
|
+
symbol: 'WEHT',
|
|
126
|
+
decimals: 18,
|
|
127
|
+
address: '0x4300000000000000000000000000000000000004',
|
|
128
|
+
},
|
|
129
|
+
},
|
|
130
|
+
[ChainId.MNT]: {
|
|
131
|
+
name: 'Mantle',
|
|
132
|
+
symbol: 'ETH',
|
|
133
|
+
decimals: 18,
|
|
134
|
+
address: '0x0000000000000000000000000000000000000000',
|
|
135
|
+
wrapped: {
|
|
136
|
+
name: 'Wrapped MNT',
|
|
137
|
+
symbol: 'WMNT',
|
|
138
|
+
decimals: 18,
|
|
139
|
+
address: '0x78c1b0C915c4FAA5FffA6CAbf0219DA63d7f4cb8',
|
|
140
|
+
},
|
|
141
|
+
},
|
|
142
|
+
[ChainId.SON]: {
|
|
143
|
+
name: 'Son',
|
|
144
|
+
symbol: 'S',
|
|
145
|
+
decimals: 18,
|
|
146
|
+
address: '0x0000000000000000000000000000000000000000',
|
|
147
|
+
wrapped: {
|
|
148
|
+
name: 'Wrapped S',
|
|
149
|
+
symbol: 'WS',
|
|
150
|
+
decimals: 18,
|
|
151
|
+
address: '0x039e2fB66102314Ce7b64Ce5Ce3E5183bc94aD38',
|
|
152
|
+
},
|
|
153
|
+
},
|
|
154
|
+
[ChainId.UNI]: {
|
|
155
|
+
name: 'UniChain',
|
|
156
|
+
symbol: 'ETH',
|
|
157
|
+
decimals: 18,
|
|
158
|
+
address: '0x0000000000000000000000000000000000000000',
|
|
159
|
+
wrapped: {
|
|
160
|
+
name: 'Wrapped ETH',
|
|
161
|
+
symbol: 'WEHT',
|
|
162
|
+
decimals: 18,
|
|
163
|
+
address: '0x4200000000000000000000000000000000000006',
|
|
164
|
+
},
|
|
165
|
+
},
|
|
166
|
+
};
|
|
167
|
+
export const MAINNET_NETWORKS = [
|
|
168
|
+
ChainId.ETH,
|
|
169
|
+
ChainId.BSC,
|
|
170
|
+
ChainId.AVA,
|
|
171
|
+
ChainId.BAS,
|
|
172
|
+
ChainId.POL,
|
|
173
|
+
ChainId.ARB,
|
|
174
|
+
ChainId.OPT,
|
|
175
|
+
// ChainId.FTM,
|
|
176
|
+
// ChainId.MAM,
|
|
177
|
+
ChainId.MNT,
|
|
178
|
+
ChainId.SON,
|
|
179
|
+
ChainId.UNI,
|
|
180
|
+
ChainId.BLS,
|
|
181
|
+
ChainId.SCL,
|
|
182
|
+
];
|
|
183
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cross/constants/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { WalletClient } from 'viem';
|
|
2
|
+
/**
|
|
3
|
+
* Get cross-chain aggregated quotes (supports multiple adapter comparison)
|
|
4
|
+
* @param params - Cross-chain quote parameters
|
|
5
|
+
* @returns Best quote result, compatible with useRoutes.ts requirements
|
|
6
|
+
*/
|
|
7
|
+
export declare function getCrossChainQuote({ fromMsg, toMsg, inAmount, slippage_tolerance, account, receiver, tokenInUsd, tokenOutUsd, feeBps, walletClient, publicKey, nearTokens, }: {
|
|
8
|
+
fromMsg: any;
|
|
9
|
+
toMsg: any;
|
|
10
|
+
inAmount: string;
|
|
11
|
+
slippage_tolerance: string | number;
|
|
12
|
+
account: string;
|
|
13
|
+
receiver?: string;
|
|
14
|
+
tokenInUsd?: number;
|
|
15
|
+
tokenOutUsd?: number;
|
|
16
|
+
feeBps?: number;
|
|
17
|
+
walletClient?: any;
|
|
18
|
+
publicKey?: string;
|
|
19
|
+
nearTokens?: any[];
|
|
20
|
+
}): Promise<any | null>;
|
|
21
|
+
export declare const bridgeExecuteSwap: ({ quoteData, walletClient, }: {
|
|
22
|
+
quoteData: any;
|
|
23
|
+
walletClient: WalletClient;
|
|
24
|
+
}) => Promise<any>;
|
|
25
|
+
export declare const ADAPTER_LOGIN_URLS: Record<string, string>;
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { CrossChainSwapFactory } from './factory.js';
|
|
2
|
+
import { CrossChainSwapAdapterRegistry } from './registry.js';
|
|
3
|
+
/**
|
|
4
|
+
* Get cross-chain aggregated quotes (supports multiple adapter comparison)
|
|
5
|
+
* @param params - Cross-chain quote parameters
|
|
6
|
+
* @returns Best quote result, compatible with useRoutes.ts requirements
|
|
7
|
+
*/
|
|
8
|
+
export async function getCrossChainQuote({ fromMsg, toMsg, inAmount, slippage_tolerance, account, receiver, tokenInUsd = 0, tokenOutUsd = 0, feeBps = 10, walletClient, publicKey, nearTokens = [], }) {
|
|
9
|
+
try {
|
|
10
|
+
// 1. Register all Adapters
|
|
11
|
+
const registry = new CrossChainSwapAdapterRegistry();
|
|
12
|
+
CrossChainSwapFactory.getAllAdapters().forEach((adapter) => {
|
|
13
|
+
registry.registerAdapter(adapter);
|
|
14
|
+
});
|
|
15
|
+
// 2. Construct QuoteParams
|
|
16
|
+
const params = {
|
|
17
|
+
feeBps,
|
|
18
|
+
fromChain: fromMsg.chainId,
|
|
19
|
+
toChain: toMsg.chainId,
|
|
20
|
+
fromToken: fromMsg,
|
|
21
|
+
toToken: toMsg,
|
|
22
|
+
amount: inAmount,
|
|
23
|
+
slippage: typeof slippage_tolerance === 'string'
|
|
24
|
+
? Number.parseFloat(slippage_tolerance)
|
|
25
|
+
: slippage_tolerance,
|
|
26
|
+
walletClient,
|
|
27
|
+
tokenInUsd,
|
|
28
|
+
tokenOutUsd,
|
|
29
|
+
sender: account,
|
|
30
|
+
recipient: receiver || account,
|
|
31
|
+
publicKey,
|
|
32
|
+
};
|
|
33
|
+
if (fromMsg.chainId === 'near' || toMsg.chainId === 'near') {
|
|
34
|
+
;
|
|
35
|
+
params.nearTokens = nearTokens;
|
|
36
|
+
}
|
|
37
|
+
// 3. Get all quotes
|
|
38
|
+
const adapters = registry
|
|
39
|
+
.getAllAdapters()
|
|
40
|
+
.filter((adapter) => adapter.getSupportedChains().includes(params.fromChain) &&
|
|
41
|
+
adapter.getSupportedChains().includes(params.toChain));
|
|
42
|
+
if (adapters.length === 0) {
|
|
43
|
+
console.warn('No supported adapters found for the specified chains');
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
const quoteResults = [];
|
|
47
|
+
// Get quotes from all adapters in parallel
|
|
48
|
+
const quotePromises = adapters.map(async (adapter) => {
|
|
49
|
+
try {
|
|
50
|
+
const quote = await adapter.getQuote(params);
|
|
51
|
+
if (quote) {
|
|
52
|
+
quoteResults.push({ adapter, quote });
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
// Ignore individual adapter errors, continue getting quotes from other adapters
|
|
57
|
+
console.warn(`Failed to get quote from ${adapter.getName()}:`, error);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
await Promise.all(quotePromises);
|
|
61
|
+
if (quoteResults.length === 0) {
|
|
62
|
+
console.warn('No valid quotes found from any adapter');
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
// 4. Select best quote (highest outputAmount)
|
|
66
|
+
quoteResults.sort((a, b) => a.quote.outputAmount < b.quote.outputAmount ? 1 : -1);
|
|
67
|
+
const best = quoteResults[0];
|
|
68
|
+
// 5. Construct return structure compatible with useRoutes.ts
|
|
69
|
+
return {
|
|
70
|
+
data: {
|
|
71
|
+
minOutAmount: best.quote.outputAmount || '0',
|
|
72
|
+
outAmount: best.quote.outputAmount || '0',
|
|
73
|
+
fromTokenUSD: best.quote.inputUsd?.toString() || '0',
|
|
74
|
+
toTokenUSD: best.quote.outputUsd?.toString() || '0',
|
|
75
|
+
quoteAdapterName: best.adapter.getName(),
|
|
76
|
+
quoteAdapterKey: best.adapter.getName().toLowerCase(),
|
|
77
|
+
chainId: fromMsg.chainId,
|
|
78
|
+
from: account,
|
|
79
|
+
to: best.quote.contractAddress || '0x0',
|
|
80
|
+
value: best.quote.rawQuote.tx?.value || '0x0',
|
|
81
|
+
data: best.quote.rawQuote.tx?.data || '0x',
|
|
82
|
+
// gasLimit: best.quote.rawQuote.tx?.gasLimit || '0',
|
|
83
|
+
// gas: best.quote.rawQuote.tx?.gas || '0',
|
|
84
|
+
// nonce: best.quote.rawQuote.tx?.nonce || '0',
|
|
85
|
+
approveContract: best.quote.contractAddress || '0x0',
|
|
86
|
+
executionDuration: best.quote.timeEstimate || 300,
|
|
87
|
+
// Fee information
|
|
88
|
+
feeCosts: [
|
|
89
|
+
{
|
|
90
|
+
name: `${best.adapter.getName()} Fee`,
|
|
91
|
+
description: 'Protocol fee',
|
|
92
|
+
token: fromMsg,
|
|
93
|
+
amount: '0',
|
|
94
|
+
amountUSD: best.quote.protocolFee,
|
|
95
|
+
percentage: '0',
|
|
96
|
+
included: false,
|
|
97
|
+
},
|
|
98
|
+
],
|
|
99
|
+
// Original quote data
|
|
100
|
+
quoteRawData: best.quote,
|
|
101
|
+
},
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
console.error('Error getting cross-chain quote:', error);
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
export const bridgeExecuteSwap = async ({ quoteData, walletClient, }) => {
|
|
110
|
+
const adapterName = quoteData.quoteAdapterKey;
|
|
111
|
+
const adapter = CrossChainSwapFactory.getAdapterByName(adapterName);
|
|
112
|
+
const result = await adapter.executeSwap({
|
|
113
|
+
quote: quoteData.quoteRawData,
|
|
114
|
+
}, walletClient);
|
|
115
|
+
return result;
|
|
116
|
+
};
|
|
117
|
+
// Login URL mapping for each adapter
|
|
118
|
+
export const ADAPTER_LOGIN_URLS = {
|
|
119
|
+
debridge: 'https://app.debridge.finance/',
|
|
120
|
+
across: 'https://across.to/',
|
|
121
|
+
lifi: 'https://jumper.exchange/',
|
|
122
|
+
mayan: 'https://swap.mayan.finance/',
|
|
123
|
+
relay: 'https://app.relay.link/',
|
|
124
|
+
xyfinance: 'https://xy.finance/',
|
|
125
|
+
kyberswap: 'https://kyberswap.com/',
|
|
126
|
+
};
|
|
127
|
+
//# sourceMappingURL=crossChainQuote.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crossChainQuote.js","sourceRoot":"","sources":["../../../src/cross/crossChainQuote.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { MayanAdapter, RelayAdapter } from './adapters/index.js';
|
|
2
|
+
export declare class CrossChainSwapFactory {
|
|
3
|
+
private static relayInstance;
|
|
4
|
+
private static mayanInstance;
|
|
5
|
+
static getRelayAdapter(): RelayAdapter;
|
|
6
|
+
static getMayanAdapter(): MayanAdapter;
|
|
7
|
+
static getAllAdapters(): SwapProvider[];
|
|
8
|
+
static getAdapterByName(name: string): SwapProvider | undefined;
|
|
9
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
// import { NearIntentsAdapter } from './adapters/NearIntentsAdapter.js'
|
|
2
|
+
// import { OptimexAdapter } from './adapters/OptimexAdapter.js'
|
|
3
|
+
// import { OrbiterAdapter } from './adapters/OrbiterAdapter.js'
|
|
4
|
+
import {
|
|
5
|
+
// AcrossAdapter,
|
|
6
|
+
// DeBridgeAdapter,
|
|
7
|
+
// LifiAdapter,
|
|
8
|
+
MayanAdapter, RelayAdapter,
|
|
9
|
+
// SwapProvider,
|
|
10
|
+
// SymbiosisAdapter,
|
|
11
|
+
// XYFinanceAdapter,
|
|
12
|
+
} from './adapters/index.js';
|
|
13
|
+
// Factory for creating swap provider instances
|
|
14
|
+
export class CrossChainSwapFactory {
|
|
15
|
+
// private static symbiosisInstance: SymbiosisAdapter
|
|
16
|
+
// private static debridgeInstance: DeBridgeAdapter
|
|
17
|
+
// private static lifiInstance: LifiAdapter
|
|
18
|
+
// private static optimexInstance: OptimexAdapter
|
|
19
|
+
// private static orbiterInstance: OrbiterAdapter
|
|
20
|
+
// // Get or create Across adapter
|
|
21
|
+
// static getAcrossAdapter(): AcrossAdapter {
|
|
22
|
+
// if (!CrossChainSwapFactory.acrossInstance) {
|
|
23
|
+
// CrossChainSwapFactory.acrossInstance = new AcrossAdapter()
|
|
24
|
+
// }
|
|
25
|
+
// return CrossChainSwapFactory.acrossInstance
|
|
26
|
+
// }
|
|
27
|
+
// // Get or create Relay adapter
|
|
28
|
+
static getRelayAdapter() {
|
|
29
|
+
if (!CrossChainSwapFactory.relayInstance) {
|
|
30
|
+
CrossChainSwapFactory.relayInstance = new RelayAdapter();
|
|
31
|
+
}
|
|
32
|
+
return CrossChainSwapFactory.relayInstance;
|
|
33
|
+
}
|
|
34
|
+
// static getXyFinanceAdapter(): XYFinanceAdapter {
|
|
35
|
+
// if (!CrossChainSwapFactory.xyFinanceInstance) {
|
|
36
|
+
// CrossChainSwapFactory.xyFinanceInstance = new XYFinanceAdapter()
|
|
37
|
+
// }
|
|
38
|
+
// return CrossChainSwapFactory.xyFinanceInstance
|
|
39
|
+
// }
|
|
40
|
+
// static getNearIntentsAdapter(): NearIntentsAdapter {
|
|
41
|
+
// if (!CrossChainSwapFactory.nearIntentsInstance) {
|
|
42
|
+
// CrossChainSwapFactory.nearIntentsInstance = new NearIntentsAdapter()
|
|
43
|
+
// }
|
|
44
|
+
// return CrossChainSwapFactory.nearIntentsInstance
|
|
45
|
+
// }
|
|
46
|
+
static getMayanAdapter() {
|
|
47
|
+
if (!CrossChainSwapFactory.mayanInstance) {
|
|
48
|
+
CrossChainSwapFactory.mayanInstance = new MayanAdapter();
|
|
49
|
+
}
|
|
50
|
+
return CrossChainSwapFactory.mayanInstance;
|
|
51
|
+
}
|
|
52
|
+
// static getSymbiosisAdapter(): SymbiosisAdapter {
|
|
53
|
+
// if (!CrossChainSwapFactory.symbiosisInstance) {
|
|
54
|
+
// CrossChainSwapFactory.symbiosisInstance = new SymbiosisAdapter()
|
|
55
|
+
// }
|
|
56
|
+
// return CrossChainSwapFactory.symbiosisInstance
|
|
57
|
+
// }
|
|
58
|
+
// static getDebridgeInstance(): DeBridgeAdapter {
|
|
59
|
+
// if (!CrossChainSwapFactory.debridgeInstance) {
|
|
60
|
+
// CrossChainSwapFactory.debridgeInstance = new DeBridgeAdapter()
|
|
61
|
+
// }
|
|
62
|
+
// return CrossChainSwapFactory.debridgeInstance
|
|
63
|
+
// }
|
|
64
|
+
// static getLifiInstance(): LifiAdapter {
|
|
65
|
+
// if (!CrossChainSwapFactory.lifiInstance) {
|
|
66
|
+
// CrossChainSwapFactory.lifiInstance = new LifiAdapter()
|
|
67
|
+
// }
|
|
68
|
+
// return CrossChainSwapFactory.lifiInstance
|
|
69
|
+
// }
|
|
70
|
+
// static getOptimexAdapter(): OptimexAdapter {
|
|
71
|
+
// if (!CrossChainSwapFactory.optimexInstance) {
|
|
72
|
+
// CrossChainSwapFactory.optimexInstance = new OptimexAdapter()
|
|
73
|
+
// }
|
|
74
|
+
// return CrossChainSwapFactory.optimexInstance
|
|
75
|
+
// }
|
|
76
|
+
// static getOrbiterAdapter(): OrbiterAdapter {
|
|
77
|
+
// if (!CrossChainSwapFactory.orbiterInstance) {
|
|
78
|
+
// CrossChainSwapFactory.orbiterInstance = new OrbiterAdapter()
|
|
79
|
+
// }
|
|
80
|
+
// return CrossChainSwapFactory.orbiterInstance
|
|
81
|
+
// }
|
|
82
|
+
// Get all registered adapters
|
|
83
|
+
static getAllAdapters() {
|
|
84
|
+
return [
|
|
85
|
+
// CrossChainSwapFactory.getMayanAdapter(),
|
|
86
|
+
CrossChainSwapFactory.getRelayAdapter(),
|
|
87
|
+
// CrossChainSwapFactory.getAcrossAdapter(),
|
|
88
|
+
// CrossChainSwapFactory.getXyFinanceAdapter(),
|
|
89
|
+
// CrossChainSwapFactory.getNearIntentsAdapter(),
|
|
90
|
+
// CrossChainSwapFactory.getSymbiosisAdapter(),
|
|
91
|
+
// CrossChainSwapFactory.getDebridgeInstance(),
|
|
92
|
+
// CrossChainSwapFactory.getLifiInstance(),
|
|
93
|
+
// CrossChainSwapFactory.getOptimexAdapter(),
|
|
94
|
+
// CrossChainSwapFactory.getOrbiterAdapter(),
|
|
95
|
+
];
|
|
96
|
+
}
|
|
97
|
+
// Get adapter by name
|
|
98
|
+
static getAdapterByName(name) {
|
|
99
|
+
switch (name.toLowerCase()) {
|
|
100
|
+
// case 'across':
|
|
101
|
+
// return CrossChainSwapFactory.getAcrossAdapter()
|
|
102
|
+
case 'relay':
|
|
103
|
+
return CrossChainSwapFactory.getRelayAdapter();
|
|
104
|
+
// case 'xyfinance':
|
|
105
|
+
// return CrossChainSwapFactory.getXyFinanceAdapter()
|
|
106
|
+
// case 'near intents':
|
|
107
|
+
// return CrossChainSwapFactory.getNearIntentsAdapter()
|
|
108
|
+
case 'mayan':
|
|
109
|
+
return CrossChainSwapFactory.getMayanAdapter();
|
|
110
|
+
// case 'symbiosis':
|
|
111
|
+
// return CrossChainSwapFactory.getSymbiosisAdapter()
|
|
112
|
+
// case 'debridge':
|
|
113
|
+
// return CrossChainSwapFactory.getDebridgeInstance()
|
|
114
|
+
// case 'lifi':
|
|
115
|
+
// return CrossChainSwapFactory.getLifiInstance()
|
|
116
|
+
// case 'optimex':
|
|
117
|
+
// return CrossChainSwapFactory.getOptimexAdapter()
|
|
118
|
+
// case 'orbiter':
|
|
119
|
+
// return CrossChainSwapFactory.getOrbiterAdapter()
|
|
120
|
+
default:
|
|
121
|
+
return undefined;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=factory.js.map
|