@lifi/widget 3.13.1 → 3.14.0-beta.0
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/CHANGELOG.md +7 -0
- package/README.md +10 -5
- package/dist/esm/AppDrawer.style.d.ts +1 -3
- package/dist/esm/AppRoutes.d.ts +1 -1
- package/dist/esm/components/ActiveTransactions/ActiveTransactionItem.js +1 -0
- package/dist/esm/components/ActiveTransactions/ActiveTransactionItem.js.map +1 -1
- package/dist/esm/components/ActiveTransactions/ActiveTransactions.style.d.ts +3 -9
- package/dist/esm/components/AlertMessage/AlertMessage.style.d.ts +2 -6
- package/dist/esm/components/AmountInput/AmountInput.style.d.ts +2 -6
- package/dist/esm/components/AmountInput/AmountInputAdornment.style.d.ts +2 -6
- package/dist/esm/components/AppContainer.d.ts +3 -9
- package/dist/esm/components/Avatar/Avatar.style.d.ts +6 -18
- package/dist/esm/components/Avatar/SmallAvatar.d.ts +1 -3
- package/dist/esm/components/BaseTransactionButton/BaseTransactionButton.js +2 -2
- package/dist/esm/components/BaseTransactionButton/BaseTransactionButton.js.map +1 -1
- package/dist/esm/components/ButtonTertiary.d.ts +1 -3
- package/dist/esm/components/ButtonTertiary.js +4 -5
- package/dist/esm/components/ButtonTertiary.js.map +1 -1
- package/dist/esm/components/Card/Card.d.ts +1 -3
- package/dist/esm/components/Card/CardButton.style.d.ts +4 -12
- package/dist/esm/components/Card/CardHeader.d.ts +1 -3
- package/dist/esm/components/Card/CardIconButton.d.ts +1 -3
- package/dist/esm/components/Card/CardLabel.d.ts +2 -6
- package/dist/esm/components/Card/CardLabel.js +0 -1
- package/dist/esm/components/Card/CardLabel.js.map +1 -1
- package/dist/esm/components/Card/CardTitle.d.ts +1 -3
- package/dist/esm/components/Card/InputCard.d.ts +1 -3
- package/dist/esm/components/ChainSelect/ChainSelect.style.d.ts +2 -6
- package/dist/esm/components/ContractComponent/NFT/NFT.style.d.ts +1 -3
- package/dist/esm/components/Header/Header.style.d.ts +6 -18
- package/dist/esm/components/Header/SettingsButton.style.d.ts +2 -6
- package/dist/esm/components/IconTypography.d.ts +1 -3
- package/dist/esm/components/ListItem/ListItem.d.ts +1 -3
- package/dist/esm/components/ListItem/ListItemButton.d.ts +1 -3
- package/dist/esm/components/ListItemButton.d.ts +1 -3
- package/dist/esm/components/PageContainer.d.ts +1 -3
- package/dist/esm/components/PoweredBy/PoweredBy.style.d.ts +1 -3
- package/dist/esm/components/ReverseTokensButton/ReverseTokensButton.style.d.ts +3 -9
- package/dist/esm/components/RouteCard/RouteCard.js +13 -4
- package/dist/esm/components/RouteCard/RouteCard.js.map +1 -1
- package/dist/esm/components/RouteCard/RouteCard.style.d.ts +1 -3
- package/dist/esm/components/RouteCard/getMatchingLabels.d.ts +3 -0
- package/dist/esm/components/RouteCard/getMatchingLabels.js +34 -0
- package/dist/esm/components/RouteCard/getMatchingLabels.js.map +1 -0
- package/dist/esm/components/Routes/RoutesExpanded.js +1 -1
- package/dist/esm/components/Routes/RoutesExpanded.js.map +1 -1
- package/dist/esm/components/Routes/RoutesExpanded.style.d.ts +4 -12
- package/dist/esm/components/Search/SearchInput.style.d.ts +2 -6
- package/dist/esm/components/Search/SearchNotFound.style.d.ts +3 -9
- package/dist/esm/components/SelectTokenButton/SelectTokenButton.style.d.ts +3 -9
- package/dist/esm/components/SendToWallet/SendToWallet.style.d.ts +1 -3
- package/dist/esm/components/SettingsListItemButton.d.ts +1 -3
- package/dist/esm/components/Skeleton/WidgetSkeleton.style.d.ts +11 -33
- package/dist/esm/components/Step/CircularProgress.js +2 -1
- package/dist/esm/components/Step/CircularProgress.js.map +1 -1
- package/dist/esm/components/Step/CircularProgress.style.d.ts +1 -3
- package/dist/esm/components/Step/CircularProgress.style.js +13 -2
- package/dist/esm/components/Step/CircularProgress.style.js.map +1 -1
- package/dist/esm/components/Step/Step.js +17 -8
- package/dist/esm/components/Step/Step.js.map +1 -1
- package/dist/esm/components/Step/StepProcess.js +2 -1
- package/dist/esm/components/Step/StepProcess.js.map +1 -1
- package/dist/esm/components/Step/StepTimer.js +2 -1
- package/dist/esm/components/Step/StepTimer.js.map +1 -1
- package/dist/esm/components/StepActions/StepActions.style.d.ts +3 -9
- package/dist/esm/components/StepDivider/StepDivider.style.d.ts +1 -3
- package/dist/esm/components/Tabs/Tabs.style.d.ts +3 -9
- package/dist/esm/components/Token/Token.style.d.ts +3 -9
- package/dist/esm/components/TokenList/TokenList.style.d.ts +3 -9
- package/dist/esm/components/TokenList/TokenListItem.js +1 -1
- package/dist/esm/components/TokenList/TokenListItem.js.map +1 -1
- package/dist/esm/components/TokenRate/TokenRate.style.d.ts +1 -3
- package/dist/esm/config/version.d.ts +1 -1
- package/dist/esm/config/version.js +1 -1
- package/dist/esm/config/version.js.map +1 -1
- package/dist/esm/hooks/timer/useInterval.js +1 -1
- package/dist/esm/hooks/timer/useInterval.js.map +1 -1
- package/dist/esm/hooks/useDebouncedWatch.js +1 -1
- package/dist/esm/hooks/useDebouncedWatch.js.map +1 -1
- package/dist/esm/hooks/useProcessMessage.js +18 -6
- package/dist/esm/hooks/useProcessMessage.js.map +1 -1
- package/dist/esm/hooks/useRoutes.d.ts +2 -2
- package/dist/esm/hooks/useRoutes.js +99 -58
- package/dist/esm/hooks/useRoutes.js.map +1 -1
- package/dist/esm/hooks/useSetContentHeight.d.ts +1 -1
- package/dist/esm/hooks/useSetContentHeight.js.map +1 -1
- package/dist/esm/i18n/bn.json +5 -1
- package/dist/esm/i18n/de.json +5 -1
- package/dist/esm/i18n/en.json +14 -10
- package/dist/esm/i18n/es.json +5 -1
- package/dist/esm/i18n/fr.json +5 -1
- package/dist/esm/i18n/hi.json +5 -1
- package/dist/esm/i18n/id.json +5 -1
- package/dist/esm/i18n/it.json +5 -1
- package/dist/esm/i18n/ja.json +5 -1
- package/dist/esm/i18n/ko.json +5 -1
- package/dist/esm/i18n/pt.json +5 -1
- package/dist/esm/i18n/th.json +5 -1
- package/dist/esm/i18n/tr.json +5 -1
- package/dist/esm/i18n/uk.json +5 -1
- package/dist/esm/i18n/vi.json +5 -1
- package/dist/esm/i18n/zh.json +5 -1
- package/dist/esm/pages/MainPage/MainPage.style.d.ts +1 -3
- package/dist/esm/pages/RoutesPage/RoutesPage.style.d.ts +1 -3
- package/dist/esm/pages/SendToWallet/BookmarkAddressSheet.js +1 -2
- package/dist/esm/pages/SendToWallet/BookmarkAddressSheet.js.map +1 -1
- package/dist/esm/pages/SendToWallet/BookmarksPage.js.map +1 -1
- package/dist/esm/pages/SendToWallet/SendToWalletPage.style.d.ts +15 -45
- package/dist/esm/pages/SettingsPage/ResetSettingsButton.style.d.ts +1 -3
- package/dist/esm/pages/SettingsPage/SettingsCard/SettingCard.style.d.ts +2 -6
- package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.style.d.ts +3 -9
- package/dist/esm/pages/TransactionPage/ExchangeRateBottomSheet.js +2 -2
- package/dist/esm/pages/TransactionPage/ExchangeRateBottomSheet.js.map +1 -1
- package/dist/esm/pages/TransactionPage/StatusBottomSheet.js +1 -1
- package/dist/esm/pages/TransactionPage/StatusBottomSheet.js.map +1 -1
- package/dist/esm/pages/TransactionPage/StatusBottomSheet.style.d.ts +3 -9
- package/dist/esm/pages/TransactionPage/TokenValueBottomSheet.js +1 -1
- package/dist/esm/pages/TransactionPage/TokenValueBottomSheet.js.map +1 -1
- package/dist/esm/providers/WalletProvider/EVMBaseProvider.js +1 -1
- package/dist/esm/providers/WalletProvider/EVMBaseProvider.js.map +1 -1
- package/dist/esm/providers/WalletProvider/SDKProviders.js +2 -15
- package/dist/esm/providers/WalletProvider/SDKProviders.js.map +1 -1
- package/dist/esm/providers/WalletProvider/UTXOBaseProvider.js +1 -1
- package/dist/esm/providers/WalletProvider/UTXOBaseProvider.js.map +1 -1
- package/dist/esm/stores/bookmarks/BookmarkStore.js +1 -1
- package/dist/esm/stores/bookmarks/BookmarkStore.js.map +1 -1
- package/dist/esm/stores/chains/ChainOrderStore.js +1 -1
- package/dist/esm/stores/chains/ChainOrderStore.js.map +1 -1
- package/dist/esm/stores/form/FormStore.js +1 -1
- package/dist/esm/stores/form/FormStore.js.map +1 -1
- package/dist/esm/stores/header/useHeaderStore.js +1 -1
- package/dist/esm/stores/header/useHeaderStore.js.map +1 -1
- package/dist/esm/stores/routes/RouteExecutionStore.js +1 -1
- package/dist/esm/stores/routes/RouteExecutionStore.js.map +1 -1
- package/dist/esm/stores/routes/useExecutingRoutesIds.js +2 -2
- package/dist/esm/stores/routes/useExecutingRoutesIds.js.map +1 -1
- package/dist/esm/stores/settings/useSplitSubvariantStore.js +1 -1
- package/dist/esm/stores/settings/useSplitSubvariantStore.js.map +1 -1
- package/dist/esm/themes/createTheme.js +4 -5
- package/dist/esm/themes/createTheme.js.map +1 -1
- package/dist/esm/types/widget.d.ts +19 -1
- package/dist/esm/types/widget.js.map +1 -1
- package/package.json +13 -16
- package/src/components/ActiveTransactions/ActiveTransactionItem.tsx +1 -0
- package/src/components/BaseTransactionButton/BaseTransactionButton.tsx +3 -3
- package/src/components/ButtonTertiary.tsx +4 -5
- package/src/components/Card/CardLabel.tsx +0 -1
- package/src/components/RouteCard/RouteCard.tsx +19 -6
- package/src/components/RouteCard/getMatchingLabels.ts +53 -0
- package/src/components/Routes/RoutesExpanded.tsx +3 -3
- package/src/components/Step/CircularProgress.style.tsx +13 -2
- package/src/components/Step/CircularProgress.tsx +2 -1
- package/src/components/Step/Step.tsx +23 -12
- package/src/components/Step/StepProcess.tsx +2 -1
- package/src/components/Step/StepTimer.tsx +3 -1
- package/src/components/TokenList/TokenListItem.tsx +1 -1
- package/src/config/version.ts +1 -1
- package/src/hooks/timer/useInterval.ts +1 -1
- package/src/hooks/useDebouncedWatch.ts +1 -1
- package/src/hooks/useProcessMessage.ts +24 -5
- package/src/hooks/useRoutes.ts +127 -66
- package/src/hooks/useSetContentHeight.ts +1 -1
- package/src/i18n/bn.json +5 -1
- package/src/i18n/de.json +5 -1
- package/src/i18n/en.json +14 -10
- package/src/i18n/es.json +5 -1
- package/src/i18n/fr.json +5 -1
- package/src/i18n/hi.json +5 -1
- package/src/i18n/id.json +5 -1
- package/src/i18n/it.json +5 -1
- package/src/i18n/ja.json +5 -1
- package/src/i18n/ko.json +5 -1
- package/src/i18n/pt.json +5 -1
- package/src/i18n/th.json +5 -1
- package/src/i18n/tr.json +5 -1
- package/src/i18n/uk.json +5 -1
- package/src/i18n/vi.json +5 -1
- package/src/i18n/zh.json +5 -1
- package/src/pages/SendToWallet/BookmarkAddressSheet.tsx +2 -3
- package/src/pages/SendToWallet/BookmarksPage.tsx +0 -1
- package/src/pages/TransactionPage/ExchangeRateBottomSheet.tsx +2 -2
- package/src/pages/TransactionPage/StatusBottomSheet.tsx +1 -1
- package/src/pages/TransactionPage/TokenValueBottomSheet.tsx +1 -1
- package/src/providers/WalletProvider/EVMBaseProvider.tsx +1 -1
- package/src/providers/WalletProvider/SDKProviders.tsx +2 -16
- package/src/providers/WalletProvider/UTXOBaseProvider.tsx +1 -1
- package/src/stores/bookmarks/BookmarkStore.tsx +1 -1
- package/src/stores/chains/ChainOrderStore.tsx +1 -1
- package/src/stores/form/FormStore.tsx +1 -1
- package/src/stores/header/useHeaderStore.tsx +1 -1
- package/src/stores/routes/RouteExecutionStore.tsx +1 -1
- package/src/stores/routes/useExecutingRoutesIds.ts +2 -2
- package/src/stores/settings/useSplitSubvariantStore.tsx +1 -1
- package/src/themes/createTheme.ts +6 -8
- package/src/themes/types.ts +0 -1
- package/src/types/widget.ts +23 -0
- package/dist/esm/providers/WalletProvider/getSafeMultisigConfig.d.ts +0 -8
- package/dist/esm/providers/WalletProvider/getSafeMultisigConfig.js +0 -95
- package/dist/esm/providers/WalletProvider/getSafeMultisigConfig.js.map +0 -1
- package/src/providers/WalletProvider/getSafeMultisigConfig.ts +0 -144
package/src/hooks/useRoutes.ts
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
|
-
import type { Route,
|
|
2
|
-
import {
|
|
1
|
+
import type { Route, Token } from '@lifi/sdk'
|
|
2
|
+
import {
|
|
3
|
+
LiFiErrorCode,
|
|
4
|
+
convertQuoteToRoute,
|
|
5
|
+
getContractCallsQuote,
|
|
6
|
+
getRelayerQuote,
|
|
7
|
+
getRoutes,
|
|
8
|
+
isEVMPermitStep,
|
|
9
|
+
} from '@lifi/sdk'
|
|
3
10
|
import { useAccount } from '@lifi/wallet-management'
|
|
4
11
|
import { useQuery, useQueryClient } from '@tanstack/react-query'
|
|
5
12
|
import { parseUnits } from 'viem'
|
|
@@ -32,6 +39,7 @@ export const useRoutes = ({ observableRoute }: RoutesProps = {}) => {
|
|
|
32
39
|
exchanges,
|
|
33
40
|
fee,
|
|
34
41
|
feeConfig,
|
|
42
|
+
useRelayerRoutes,
|
|
35
43
|
} = useWidgetConfig()
|
|
36
44
|
const setExecutableRoute = useSetExecutableRoute()
|
|
37
45
|
const queryClient = useQueryClient()
|
|
@@ -258,27 +266,9 @@ export const useRoutes = ({ observableRoute }: RoutesProps = {}) => {
|
|
|
258
266
|
contractCallQuote.toolDetails = toolDetails
|
|
259
267
|
}
|
|
260
268
|
|
|
261
|
-
const route: Route =
|
|
262
|
-
id: crypto.randomUUID(),
|
|
263
|
-
fromChainId: contractCallQuote.action.fromChainId,
|
|
264
|
-
fromAmountUSD: contractCallQuote.estimate.fromAmountUSD || '',
|
|
265
|
-
fromAmount: contractCallQuote.action.fromAmount,
|
|
266
|
-
fromToken: contractCallQuote.action.fromToken,
|
|
267
|
-
fromAddress: contractCallQuote.action.fromAddress,
|
|
268
|
-
toChainId: contractCallQuote.action.toChainId,
|
|
269
|
-
toAmountUSD: contractCallQuote.estimate.toAmountUSD || '',
|
|
270
|
-
toAmount: contractCallQuote.estimate.toAmount,
|
|
271
|
-
toAmountMin: contractCallQuote.estimate.toAmountMin,
|
|
272
|
-
toToken: toToken!,
|
|
273
|
-
toAddress:
|
|
274
|
-
contractCallQuote.action.toAddress ||
|
|
275
|
-
contractCallQuote.action.fromAddress,
|
|
276
|
-
gasCostUSD: contractCallQuote.estimate.gasCosts?.[0].amountUSD,
|
|
277
|
-
steps: [contractCallQuote],
|
|
278
|
-
insurance: { state: 'NOT_INSURABLE', feeAmountUsd: '0' },
|
|
279
|
-
}
|
|
269
|
+
const route: Route = convertQuoteToRoute(contractCallQuote)
|
|
280
270
|
|
|
281
|
-
return
|
|
271
|
+
return [route]
|
|
282
272
|
}
|
|
283
273
|
|
|
284
274
|
// Prevent sending a request for the same chain token combinations.
|
|
@@ -286,50 +276,110 @@ export const useRoutes = ({ observableRoute }: RoutesProps = {}) => {
|
|
|
286
276
|
return
|
|
287
277
|
}
|
|
288
278
|
|
|
289
|
-
const
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
279
|
+
const isObservableRelayerRoute =
|
|
280
|
+
observableRoute?.steps?.some(isEVMPermitStep)
|
|
281
|
+
|
|
282
|
+
const shouldUseMainRoutes =
|
|
283
|
+
!observableRoute || !isObservableRelayerRoute
|
|
284
|
+
const shouldUseRelayerQuote =
|
|
285
|
+
fromAddress &&
|
|
286
|
+
useRelayerRoutes &&
|
|
287
|
+
(!observableRoute || isObservableRelayerRoute)
|
|
288
|
+
|
|
289
|
+
const [routesResult, relayerRouteResult] = await Promise.all([
|
|
290
|
+
shouldUseMainRoutes
|
|
291
|
+
? getRoutes(
|
|
292
|
+
{
|
|
293
|
+
fromAddress,
|
|
294
|
+
fromAmount: fromAmount.toString(),
|
|
295
|
+
fromChainId,
|
|
296
|
+
fromTokenAddress,
|
|
297
|
+
toAddress,
|
|
298
|
+
toChainId,
|
|
299
|
+
toTokenAddress,
|
|
300
|
+
fromAmountForGas:
|
|
301
|
+
enabledRefuel && gasRecommendationFromAmount
|
|
302
|
+
? gasRecommendationFromAmount
|
|
303
|
+
: undefined,
|
|
304
|
+
options: {
|
|
305
|
+
allowSwitchChain:
|
|
306
|
+
subvariant === 'refuel' ? false : allowSwitchChain,
|
|
307
|
+
bridges:
|
|
308
|
+
allowBridges?.length || disabledBridges.length
|
|
309
|
+
? {
|
|
310
|
+
allow: allowBridges,
|
|
311
|
+
deny: disabledBridges.length
|
|
312
|
+
? disabledBridges
|
|
313
|
+
: undefined,
|
|
314
|
+
}
|
|
311
315
|
: undefined,
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
316
|
+
exchanges:
|
|
317
|
+
allowExchanges?.length || disabledExchanges.length
|
|
318
|
+
? {
|
|
319
|
+
allow: allowExchanges,
|
|
320
|
+
deny: disabledExchanges.length
|
|
321
|
+
? disabledExchanges
|
|
322
|
+
: undefined,
|
|
323
|
+
}
|
|
320
324
|
: undefined,
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
325
|
+
order: routePriority,
|
|
326
|
+
slippage: formattedSlippage,
|
|
327
|
+
fee: calculatedFee || fee,
|
|
328
|
+
},
|
|
329
|
+
},
|
|
330
|
+
{ signal }
|
|
331
|
+
)
|
|
332
|
+
: Promise.resolve(null),
|
|
333
|
+
shouldUseRelayerQuote
|
|
334
|
+
? getRelayerQuote(
|
|
335
|
+
{
|
|
336
|
+
fromAddress,
|
|
337
|
+
fromAmount: fromAmount.toString(),
|
|
338
|
+
fromChain: fromChainId,
|
|
339
|
+
fromToken: fromTokenAddress,
|
|
340
|
+
toAddress,
|
|
341
|
+
toChain: toChainId,
|
|
342
|
+
toToken: toTokenAddress,
|
|
343
|
+
fromAmountForGas:
|
|
344
|
+
enabledRefuel && gasRecommendationFromAmount
|
|
345
|
+
? gasRecommendationFromAmount
|
|
346
|
+
: undefined,
|
|
347
|
+
order: routePriority,
|
|
348
|
+
slippage: formattedSlippage,
|
|
349
|
+
fee: calculatedFee || fee,
|
|
350
|
+
...(allowBridges?.length || disabledBridges.length
|
|
351
|
+
? {
|
|
352
|
+
allowBridges: allowBridges,
|
|
353
|
+
denyBridges: disabledBridges.length
|
|
354
|
+
? disabledBridges
|
|
355
|
+
: undefined,
|
|
356
|
+
}
|
|
357
|
+
: undefined),
|
|
358
|
+
...(allowExchanges?.length || disabledExchanges.length
|
|
359
|
+
? {
|
|
360
|
+
allowExchanges: allowExchanges,
|
|
361
|
+
denyExchanges: disabledExchanges.length
|
|
362
|
+
? disabledExchanges
|
|
363
|
+
: undefined,
|
|
364
|
+
}
|
|
365
|
+
: undefined),
|
|
366
|
+
},
|
|
367
|
+
{ signal }
|
|
368
|
+
)
|
|
369
|
+
.then((response) => {
|
|
370
|
+
const quote = {
|
|
371
|
+
...response.data.quote.step,
|
|
372
|
+
...response.data.quote,
|
|
373
|
+
}
|
|
374
|
+
return convertQuoteToRoute(quote)
|
|
375
|
+
})
|
|
376
|
+
.catch(() => null)
|
|
377
|
+
: Promise.resolve(null),
|
|
378
|
+
])
|
|
379
|
+
|
|
380
|
+
if (routesResult?.routes[0] && fromAddress) {
|
|
331
381
|
// Update local tokens cache to keep priceUSD in sync
|
|
332
|
-
const { fromToken, toToken } =
|
|
382
|
+
const { fromToken, toToken } = routesResult.routes[0]
|
|
333
383
|
;[fromToken, toToken].forEach((token) => {
|
|
334
384
|
queryClient.setQueriesData<Token[]>(
|
|
335
385
|
{ queryKey: ['token-balances', fromAddress, token.chainId] },
|
|
@@ -349,8 +399,16 @@ export const useRoutes = ({ observableRoute }: RoutesProps = {}) => {
|
|
|
349
399
|
)
|
|
350
400
|
})
|
|
351
401
|
}
|
|
352
|
-
|
|
353
|
-
|
|
402
|
+
|
|
403
|
+
const routes = routesResult?.routes ?? []
|
|
404
|
+
|
|
405
|
+
// Add relayer route if available
|
|
406
|
+
if (relayerRouteResult) {
|
|
407
|
+
routes.splice(1, 0, relayerRouteResult)
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
emitter.emit(WidgetEvent.AvailableRoutes, routes)
|
|
411
|
+
return routes
|
|
354
412
|
},
|
|
355
413
|
enabled: isEnabled,
|
|
356
414
|
staleTime: refetchTime,
|
|
@@ -361,6 +419,9 @@ export const useRoutes = ({ observableRoute }: RoutesProps = {}) => {
|
|
|
361
419
|
)
|
|
362
420
|
},
|
|
363
421
|
retry(failureCount, error: any) {
|
|
422
|
+
if (process.env.NODE_ENV === 'development') {
|
|
423
|
+
console.warn('Route query failed:', { failureCount, error })
|
|
424
|
+
}
|
|
364
425
|
if (failureCount >= 5) {
|
|
365
426
|
return false
|
|
366
427
|
}
|
|
@@ -382,7 +443,7 @@ export const useRoutes = ({ observableRoute }: RoutesProps = {}) => {
|
|
|
382
443
|
}
|
|
383
444
|
|
|
384
445
|
return {
|
|
385
|
-
routes: data
|
|
446
|
+
routes: data,
|
|
386
447
|
isLoading: isEnabled && isLoading,
|
|
387
448
|
isFetching,
|
|
388
449
|
isFetched,
|
|
@@ -8,7 +8,7 @@ import { useDefaultElementId } from './useDefaultElementId.js'
|
|
|
8
8
|
// CSS changes in those components can have implications for the functionality in this hook
|
|
9
9
|
|
|
10
10
|
export const useSetContentHeight = (
|
|
11
|
-
ref: MutableRefObject<HTMLElement |
|
|
11
|
+
ref: MutableRefObject<HTMLElement | null>
|
|
12
12
|
) => {
|
|
13
13
|
const elementId = useDefaultElementId()
|
|
14
14
|
useLayoutEffect(() => {
|
package/src/i18n/bn.json
CHANGED
|
@@ -52,12 +52,14 @@
|
|
|
52
52
|
},
|
|
53
53
|
"header": {
|
|
54
54
|
"activeTransactions": "",
|
|
55
|
+
"amount": "",
|
|
55
56
|
"bookmarkedWallets": "",
|
|
56
57
|
"bridge": "",
|
|
57
58
|
"checkout": "চেকআউট",
|
|
58
59
|
"checkoutDetails": "",
|
|
59
60
|
"deposit": "",
|
|
60
61
|
"depositDetails": "",
|
|
62
|
+
"depositTo": "",
|
|
61
63
|
"exchange": "",
|
|
62
64
|
"from": "থেকে সোওয়াপ করুন",
|
|
63
65
|
"gas": "গ্যাস",
|
|
@@ -265,13 +267,15 @@
|
|
|
265
267
|
"stepBridge": "ব্রিজ",
|
|
266
268
|
"stepBridgeAndBuy": "",
|
|
267
269
|
"stepBridgeAndDeposit": "",
|
|
270
|
+
"stepBuy": "",
|
|
271
|
+
"stepDeposit": "",
|
|
268
272
|
"stepDetails": "লি.ফাই এর মাধ্যমে {{tool}}",
|
|
269
273
|
"stepSwap": "সোওয়াপ",
|
|
270
274
|
"stepSwapAndBridge": "সোওয়াপ এবং ব্রিজ",
|
|
271
275
|
"stepSwapAndBuy": "",
|
|
272
276
|
"stepSwapAndDeposit": "",
|
|
273
|
-
"transferId": "",
|
|
274
277
|
"swapStepDetails": "{{tool}} এর মাধ্যমে {{chain}} এ সোওয়াপ করুন",
|
|
278
|
+
"transferId": "",
|
|
275
279
|
"tags": {
|
|
276
280
|
"cheapest": "",
|
|
277
281
|
"fastest": ""
|
package/src/i18n/de.json
CHANGED
|
@@ -52,12 +52,14 @@
|
|
|
52
52
|
},
|
|
53
53
|
"header": {
|
|
54
54
|
"activeTransactions": "Aktive Transaktion",
|
|
55
|
+
"amount": "",
|
|
55
56
|
"bookmarkedWallets": "",
|
|
56
57
|
"bridge": "Bridge",
|
|
57
58
|
"checkout": "Zur Kasse",
|
|
58
59
|
"checkoutDetails": "",
|
|
59
60
|
"deposit": "",
|
|
60
61
|
"depositDetails": "",
|
|
62
|
+
"depositTo": "",
|
|
61
63
|
"exchange": "Exchange",
|
|
62
64
|
"from": "Swap von",
|
|
63
65
|
"gas": "Gas",
|
|
@@ -265,13 +267,15 @@
|
|
|
265
267
|
"stepBridge": "Bridge",
|
|
266
268
|
"stepBridgeAndBuy": "Bridge und Kauf",
|
|
267
269
|
"stepBridgeAndDeposit": "",
|
|
270
|
+
"stepBuy": "Buy",
|
|
271
|
+
"stepDeposit": "",
|
|
268
272
|
"stepDetails": "{{tool}} via LI.FI",
|
|
269
273
|
"stepSwap": "Swap",
|
|
270
274
|
"stepSwapAndBridge": "Tauschen und überbrücken",
|
|
271
275
|
"stepSwapAndBuy": "Tauschen und kaufen",
|
|
272
276
|
"stepSwapAndDeposit": "",
|
|
273
|
-
"transferId": "",
|
|
274
277
|
"swapStepDetails": "Tausche auf {{chain}} über {{tool}}",
|
|
278
|
+
"transferId": "",
|
|
275
279
|
"tags": {
|
|
276
280
|
"cheapest": "",
|
|
277
281
|
"fastest": ""
|
package/src/i18n/en.json
CHANGED
|
@@ -220,9 +220,10 @@
|
|
|
220
220
|
"priceImpact": "Price impact",
|
|
221
221
|
"process": {
|
|
222
222
|
"bridge": {
|
|
223
|
-
"
|
|
223
|
+
"permitRequired": "Sign permit for {{tokenSymbol}}",
|
|
224
|
+
"actionRequired": "Sign bridge transaction",
|
|
224
225
|
"done": "Bridge transaction confirmed",
|
|
225
|
-
"pending": "
|
|
226
|
+
"pending": "Bridge transaction pending",
|
|
226
227
|
"started": "Preparing bridge transaction"
|
|
227
228
|
},
|
|
228
229
|
"checkout": {
|
|
@@ -238,19 +239,21 @@
|
|
|
238
239
|
"refunded": "Bridge transaction refunded"
|
|
239
240
|
},
|
|
240
241
|
"swap": {
|
|
241
|
-
"
|
|
242
|
+
"permitRequired": "Sign permit for {{tokenSymbol}}",
|
|
243
|
+
"actionRequired": "Sign swap transaction",
|
|
242
244
|
"done": "Swap completed",
|
|
243
|
-
"pending": "
|
|
245
|
+
"pending": "Swap transaction pending",
|
|
244
246
|
"started": "Preparing swap transaction"
|
|
245
247
|
},
|
|
246
248
|
"switchChain": {
|
|
247
|
-
"actionRequired": "
|
|
248
|
-
"done": "Chain switched
|
|
249
|
+
"actionRequired": "Confirm chain switch",
|
|
250
|
+
"done": "Chain switched"
|
|
249
251
|
},
|
|
250
252
|
"tokenAllowance": {
|
|
251
|
-
"
|
|
252
|
-
"
|
|
253
|
-
"
|
|
253
|
+
"actionRequired": "Approve {{tokenSymbol}} spending",
|
|
254
|
+
"done": "{{tokenSymbol}} spending approved",
|
|
255
|
+
"pending": "{{tokenSymbol}} approval pending",
|
|
256
|
+
"started": "Preparing approval transaction"
|
|
254
257
|
}
|
|
255
258
|
},
|
|
256
259
|
"quotedAmount": "Quoted amount",
|
|
@@ -278,7 +281,8 @@
|
|
|
278
281
|
"transferId": "Transfer ID",
|
|
279
282
|
"tags": {
|
|
280
283
|
"cheapest": "Best Return",
|
|
281
|
-
"fastest": "Fastest"
|
|
284
|
+
"fastest": "Fastest",
|
|
285
|
+
"gasless": "Gasless"
|
|
282
286
|
},
|
|
283
287
|
"to": "To",
|
|
284
288
|
"tokenOnChain": "{{tokenSymbol}} on {{chainName}}",
|
package/src/i18n/es.json
CHANGED
|
@@ -52,12 +52,14 @@
|
|
|
52
52
|
},
|
|
53
53
|
"header": {
|
|
54
54
|
"activeTransactions": "Transacciones activas",
|
|
55
|
+
"amount": "",
|
|
55
56
|
"bookmarkedWallets": "Billeteras preferidas",
|
|
56
57
|
"bridge": "Puente",
|
|
57
58
|
"checkout": "Checkout",
|
|
58
59
|
"checkoutDetails": "",
|
|
59
60
|
"deposit": "",
|
|
60
61
|
"depositDetails": "",
|
|
62
|
+
"depositTo": "",
|
|
61
63
|
"exchange": "Intercambio",
|
|
62
64
|
"from": "Intercambiar de",
|
|
63
65
|
"gas": "Gas",
|
|
@@ -265,13 +267,15 @@
|
|
|
265
267
|
"stepBridge": "Cruzar",
|
|
266
268
|
"stepBridgeAndBuy": "Puente y compra",
|
|
267
269
|
"stepBridgeAndDeposit": "",
|
|
270
|
+
"stepBuy": "Comprar",
|
|
271
|
+
"stepDeposit": "",
|
|
268
272
|
"stepDetails": "{{tool}} a través de LI.FI",
|
|
269
273
|
"stepSwap": "Swap",
|
|
270
274
|
"stepSwapAndBridge": "Swap y cruzar",
|
|
271
275
|
"stepSwapAndBuy": "Intercambiar y comprar",
|
|
272
276
|
"stepSwapAndDeposit": "",
|
|
273
|
-
"transferId": "",
|
|
274
277
|
"swapStepDetails": "Intercambiar en {{chain}} a través de {{tool}}",
|
|
278
|
+
"transferId": "",
|
|
275
279
|
"tags": {
|
|
276
280
|
"cheapest": "Mejor retorno",
|
|
277
281
|
"fastest": "Más rápido"
|
package/src/i18n/fr.json
CHANGED
|
@@ -52,12 +52,14 @@
|
|
|
52
52
|
},
|
|
53
53
|
"header": {
|
|
54
54
|
"activeTransactions": "Transactions actives",
|
|
55
|
+
"amount": "",
|
|
55
56
|
"bookmarkedWallets": "Portefeuilles favoris",
|
|
56
57
|
"bridge": "Bridge",
|
|
57
58
|
"checkout": "Paiement",
|
|
58
59
|
"checkoutDetails": "",
|
|
59
60
|
"deposit": "",
|
|
60
61
|
"depositDetails": "",
|
|
62
|
+
"depositTo": "",
|
|
61
63
|
"exchange": "Échanger",
|
|
62
64
|
"from": "Échanger de",
|
|
63
65
|
"gas": "Gaz",
|
|
@@ -265,13 +267,15 @@
|
|
|
265
267
|
"stepBridge": "Bridge",
|
|
266
268
|
"stepBridgeAndBuy": "Bridge et acheter",
|
|
267
269
|
"stepBridgeAndDeposit": "",
|
|
270
|
+
"stepBuy": "Acheter",
|
|
271
|
+
"stepDeposit": "",
|
|
268
272
|
"stepDetails": "{{tool}} via LI.FI",
|
|
269
273
|
"stepSwap": "Échanger",
|
|
270
274
|
"stepSwapAndBridge": "Échange et Bridge",
|
|
271
275
|
"stepSwapAndBuy": "Échanger et acheter",
|
|
272
276
|
"stepSwapAndDeposit": "",
|
|
273
|
-
"transferId": "",
|
|
274
277
|
"swapStepDetails": "Échanger sur {{chain}} via {{tool}}",
|
|
278
|
+
"transferId": "",
|
|
275
279
|
"tags": {
|
|
276
280
|
"cheapest": "Meilleur Retour",
|
|
277
281
|
"fastest": "Le plus rapide"
|
package/src/i18n/hi.json
CHANGED
|
@@ -52,12 +52,14 @@
|
|
|
52
52
|
},
|
|
53
53
|
"header": {
|
|
54
54
|
"activeTransactions": "",
|
|
55
|
+
"amount": "",
|
|
55
56
|
"bookmarkedWallets": "",
|
|
56
57
|
"bridge": "",
|
|
57
58
|
"checkout": "",
|
|
58
59
|
"checkoutDetails": "",
|
|
59
60
|
"deposit": "",
|
|
60
61
|
"depositDetails": "",
|
|
62
|
+
"depositTo": "",
|
|
61
63
|
"exchange": "",
|
|
62
64
|
"from": "",
|
|
63
65
|
"gas": "गैस",
|
|
@@ -265,13 +267,15 @@
|
|
|
265
267
|
"stepBridge": "",
|
|
266
268
|
"stepBridgeAndBuy": "",
|
|
267
269
|
"stepBridgeAndDeposit": "",
|
|
270
|
+
"stepBuy": "",
|
|
271
|
+
"stepDeposit": "",
|
|
268
272
|
"stepDetails": "",
|
|
269
273
|
"stepSwap": "",
|
|
270
274
|
"stepSwapAndBridge": "",
|
|
271
275
|
"stepSwapAndBuy": "",
|
|
272
276
|
"stepSwapAndDeposit": "",
|
|
273
|
-
"transferId": "",
|
|
274
277
|
"swapStepDetails": "",
|
|
278
|
+
"transferId": "",
|
|
275
279
|
"tags": {
|
|
276
280
|
"cheapest": "",
|
|
277
281
|
"fastest": ""
|
package/src/i18n/id.json
CHANGED
|
@@ -52,12 +52,14 @@
|
|
|
52
52
|
},
|
|
53
53
|
"header": {
|
|
54
54
|
"activeTransactions": "Transaksi aktif",
|
|
55
|
+
"amount": "",
|
|
55
56
|
"bookmarkedWallets": "Dompet yang ditandai",
|
|
56
57
|
"bridge": "Bridge",
|
|
57
58
|
"checkout": "Checkout",
|
|
58
59
|
"checkoutDetails": "",
|
|
59
60
|
"deposit": "",
|
|
60
61
|
"depositDetails": "",
|
|
62
|
+
"depositTo": "",
|
|
61
63
|
"exchange": "Pertukaran",
|
|
62
64
|
"from": "Swap dari",
|
|
63
65
|
"gas": "Gas",
|
|
@@ -265,13 +267,15 @@
|
|
|
265
267
|
"stepBridge": "Bridge",
|
|
266
268
|
"stepBridgeAndBuy": "Bridge dan beli",
|
|
267
269
|
"stepBridgeAndDeposit": "",
|
|
270
|
+
"stepBuy": "Beli",
|
|
271
|
+
"stepDeposit": "",
|
|
268
272
|
"stepDetails": "{{tool}} melalui LI.FI",
|
|
269
273
|
"stepSwap": "Swap",
|
|
270
274
|
"stepSwapAndBridge": "Swap dan bridge",
|
|
271
275
|
"stepSwapAndBuy": "Swap dan beli",
|
|
272
276
|
"stepSwapAndDeposit": "",
|
|
273
|
-
"transferId": "",
|
|
274
277
|
"swapStepDetails": "Swap di {{chain}} melalui {{tool}}",
|
|
278
|
+
"transferId": "",
|
|
275
279
|
"tags": {
|
|
276
280
|
"cheapest": "Pengembalian terbaik",
|
|
277
281
|
"fastest": "Tercepat"
|
package/src/i18n/it.json
CHANGED
|
@@ -52,12 +52,14 @@
|
|
|
52
52
|
},
|
|
53
53
|
"header": {
|
|
54
54
|
"activeTransactions": "Transazioni attive",
|
|
55
|
+
"amount": "",
|
|
55
56
|
"bookmarkedWallets": "",
|
|
56
57
|
"bridge": "Bridge",
|
|
57
58
|
"checkout": "Checkout",
|
|
58
59
|
"checkoutDetails": "",
|
|
59
60
|
"deposit": "",
|
|
60
61
|
"depositDetails": "",
|
|
62
|
+
"depositTo": "",
|
|
61
63
|
"exchange": "Exchange",
|
|
62
64
|
"from": "Scambia da",
|
|
63
65
|
"gas": "Gas",
|
|
@@ -265,13 +267,15 @@
|
|
|
265
267
|
"stepBridge": "Bridge",
|
|
266
268
|
"stepBridgeAndBuy": "Trasferisci e acquista",
|
|
267
269
|
"stepBridgeAndDeposit": "",
|
|
270
|
+
"stepBuy": "Acquista",
|
|
271
|
+
"stepDeposit": "",
|
|
268
272
|
"stepDetails": "{{tool}} tramite LI.FI",
|
|
269
273
|
"stepSwap": "Scambio",
|
|
270
274
|
"stepSwapAndBridge": "Scambia e bridge",
|
|
271
275
|
"stepSwapAndBuy": "Scambia e acquista",
|
|
272
276
|
"stepSwapAndDeposit": "",
|
|
273
|
-
"transferId": "",
|
|
274
277
|
"swapStepDetails": "Scambio su {{chain}} tramite {{tool}}.",
|
|
278
|
+
"transferId": "",
|
|
275
279
|
"tags": {
|
|
276
280
|
"cheapest": "",
|
|
277
281
|
"fastest": ""
|
package/src/i18n/ja.json
CHANGED
|
@@ -52,12 +52,14 @@
|
|
|
52
52
|
},
|
|
53
53
|
"header": {
|
|
54
54
|
"activeTransactions": "アクティブなトランザクション",
|
|
55
|
+
"amount": "",
|
|
55
56
|
"bookmarkedWallets": "ブックマークされたウォレット",
|
|
56
57
|
"bridge": "ブリッジ",
|
|
57
58
|
"checkout": "支払い",
|
|
58
59
|
"checkoutDetails": "",
|
|
59
60
|
"deposit": "",
|
|
60
61
|
"depositDetails": "",
|
|
62
|
+
"depositTo": "",
|
|
61
63
|
"exchange": "スワップ",
|
|
62
64
|
"from": "交換元",
|
|
63
65
|
"gas": "ガス",
|
|
@@ -265,13 +267,15 @@
|
|
|
265
267
|
"stepBridge": "ブリッジ",
|
|
266
268
|
"stepBridgeAndBuy": "ブリッジと購入",
|
|
267
269
|
"stepBridgeAndDeposit": "",
|
|
270
|
+
"stepBuy": "購入",
|
|
271
|
+
"stepDeposit": "",
|
|
268
272
|
"stepDetails": "LI.FI経由の{{tool}}",
|
|
269
273
|
"stepSwap": "スワップ",
|
|
270
274
|
"stepSwapAndBridge": "スワップとブリッジ",
|
|
271
275
|
"stepSwapAndBuy": "スワップと購入",
|
|
272
276
|
"stepSwapAndDeposit": "",
|
|
273
|
-
"transferId": "",
|
|
274
277
|
"swapStepDetails": "{{chain}} で {{tool}} 経由のスワップ",
|
|
278
|
+
"transferId": "",
|
|
275
279
|
"tags": {
|
|
276
280
|
"cheapest": "最良",
|
|
277
281
|
"fastest": "最速"
|
package/src/i18n/ko.json
CHANGED
|
@@ -52,12 +52,14 @@
|
|
|
52
52
|
},
|
|
53
53
|
"header": {
|
|
54
54
|
"activeTransactions": "활성화된 거래",
|
|
55
|
+
"amount": "",
|
|
55
56
|
"bookmarkedWallets": "",
|
|
56
57
|
"bridge": "브릿지",
|
|
57
58
|
"checkout": "주문",
|
|
58
59
|
"checkoutDetails": "",
|
|
59
60
|
"deposit": "",
|
|
60
61
|
"depositDetails": "",
|
|
62
|
+
"depositTo": "",
|
|
61
63
|
"exchange": "교환",
|
|
62
64
|
"from": "다음에서 스왑",
|
|
63
65
|
"gas": "가스",
|
|
@@ -265,13 +267,15 @@
|
|
|
265
267
|
"stepBridge": "브릿지",
|
|
266
268
|
"stepBridgeAndBuy": "브릿지 그리고 매수",
|
|
267
269
|
"stepBridgeAndDeposit": "",
|
|
270
|
+
"stepBuy": "매수",
|
|
271
|
+
"stepDeposit": "",
|
|
268
272
|
"stepDetails": "LI.FI 를 통한 {{tool}}",
|
|
269
273
|
"stepSwap": "스왑",
|
|
270
274
|
"stepSwapAndBridge": "스왑 그리고 브릿지",
|
|
271
275
|
"stepSwapAndBuy": "스왑 그리고 매수",
|
|
272
276
|
"stepSwapAndDeposit": "",
|
|
273
|
-
"transferId": "",
|
|
274
277
|
"swapStepDetails": "{{tool}}로 {{chain}}에서 스왑",
|
|
278
|
+
"transferId": "",
|
|
275
279
|
"tags": {
|
|
276
280
|
"cheapest": "",
|
|
277
281
|
"fastest": ""
|
package/src/i18n/pt.json
CHANGED
|
@@ -52,12 +52,14 @@
|
|
|
52
52
|
},
|
|
53
53
|
"header": {
|
|
54
54
|
"activeTransactions": "Transações ativas",
|
|
55
|
+
"amount": "",
|
|
55
56
|
"bookmarkedWallets": "Carteiras favoritas",
|
|
56
57
|
"bridge": "Ponte",
|
|
57
58
|
"checkout": "Finalizar",
|
|
58
59
|
"checkoutDetails": "Detalhes de pagamento",
|
|
59
60
|
"deposit": "Depósito",
|
|
60
61
|
"depositDetails": "Detalhes do depósito",
|
|
62
|
+
"depositTo": "",
|
|
61
63
|
"exchange": "Conversão",
|
|
62
64
|
"from": "Converter a partir de",
|
|
63
65
|
"gas": "Gás",
|
|
@@ -265,13 +267,15 @@
|
|
|
265
267
|
"stepBridge": "Ponte",
|
|
266
268
|
"stepBridgeAndBuy": "Transfira e compre",
|
|
267
269
|
"stepBridgeAndDeposit": "Ponte e depósito",
|
|
270
|
+
"stepBuy": "Comprar",
|
|
271
|
+
"stepDeposit": "Depósito",
|
|
268
272
|
"stepDetails": "{{tool}} via LI.FI",
|
|
269
273
|
"stepSwap": "Conversão",
|
|
270
274
|
"stepSwapAndBridge": "Converter e enviar pela ponte",
|
|
271
275
|
"stepSwapAndBuy": "Converta e compre",
|
|
272
276
|
"stepSwapAndDeposit": "Converter e depositar",
|
|
273
|
-
"transferId": "ID de transferência",
|
|
274
277
|
"swapStepDetails": "Converter na {{chain}} via {{tool}}",
|
|
278
|
+
"transferId": "ID de transferência",
|
|
275
279
|
"tags": {
|
|
276
280
|
"cheapest": "Melhor retorno",
|
|
277
281
|
"fastest": "Mais rápido"
|
package/src/i18n/th.json
CHANGED
|
@@ -52,12 +52,14 @@
|
|
|
52
52
|
},
|
|
53
53
|
"header": {
|
|
54
54
|
"activeTransactions": "ธุรกรรมมีผล",
|
|
55
|
+
"amount": "",
|
|
55
56
|
"bookmarkedWallets": "กระเป๋าเงินที่ Bokkmark ไว้แล้ว",
|
|
56
57
|
"bridge": "บริดจ์",
|
|
57
58
|
"checkout": "เช็คเอาท์",
|
|
58
59
|
"checkoutDetails": "",
|
|
59
60
|
"deposit": "",
|
|
60
61
|
"depositDetails": "",
|
|
62
|
+
"depositTo": "",
|
|
61
63
|
"exchange": "แลกเปลี่ยน",
|
|
62
64
|
"from": "แลกเปลี่ยนจาก",
|
|
63
65
|
"gas": "แก็ส",
|
|
@@ -265,13 +267,15 @@
|
|
|
265
267
|
"stepBridge": "บริดจ์",
|
|
266
268
|
"stepBridgeAndBuy": "บริดจ์และซื้อ",
|
|
267
269
|
"stepBridgeAndDeposit": "",
|
|
270
|
+
"stepBuy": "ซื้อ",
|
|
271
|
+
"stepDeposit": "",
|
|
268
272
|
"stepDetails": "{{tool}} โดย LI.FI",
|
|
269
273
|
"stepSwap": "แลกเปลี่ยน",
|
|
270
274
|
"stepSwapAndBridge": "แลกเปลี่ยนและบริดจ์",
|
|
271
275
|
"stepSwapAndBuy": "แลกเปลี่ยน และ ซื้อ",
|
|
272
276
|
"stepSwapAndDeposit": "",
|
|
273
|
-
"transferId": "",
|
|
274
277
|
"swapStepDetails": "แลกเปลี่ยนบน {{chain}} ผ่าน {{tool}}",
|
|
278
|
+
"transferId": "",
|
|
275
279
|
"tags": {
|
|
276
280
|
"cheapest": "ผลตอบแทนที่ดีที่สุด",
|
|
277
281
|
"fastest": "รวดเร็วที่สุด"
|