@lifi/widget 3.30.10 → 3.30.12
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 +15 -0
- package/dist/esm/components/RouteCard/RouteCard.js +3 -3
- package/dist/esm/components/RouteCard/RouteCard.js.map +1 -1
- package/dist/esm/components/RouteCard/RouteCardEssentials.js +3 -5
- package/dist/esm/components/RouteCard/RouteCardEssentials.js.map +1 -1
- package/dist/esm/components/StepActions/StepActions.js +3 -3
- package/dist/esm/components/TokenList/TokenList.js +0 -1
- package/dist/esm/components/TokenList/TokenList.js.map +1 -1
- package/dist/esm/components/TransactionDetails.js +7 -7
- 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/hooks/useGasRecommendation.js +4 -2
- package/dist/esm/hooks/useGasRecommendation.js.map +1 -1
- package/dist/esm/hooks/useGasRefuel.js +6 -1
- package/dist/esm/hooks/useGasRefuel.js.map +1 -1
- package/dist/esm/hooks/useGasSufficiency.js +2 -3
- package/dist/esm/hooks/useGasSufficiency.js.map +1 -1
- package/dist/esm/hooks/useRoutes.js +2 -2
- package/dist/esm/hooks/useRoutes.js.map +1 -1
- package/dist/esm/i18n/bn.json +1 -0
- package/dist/esm/i18n/de.json +1 -0
- package/dist/esm/i18n/es.json +1 -0
- package/dist/esm/i18n/fr.json +1 -0
- package/dist/esm/i18n/hi.json +1 -0
- package/dist/esm/i18n/id.json +1 -0
- package/dist/esm/i18n/it.json +1 -0
- package/dist/esm/i18n/ja.json +1 -0
- package/dist/esm/i18n/ko.json +1 -0
- package/dist/esm/i18n/pl.json +1 -0
- package/dist/esm/i18n/pt.json +2 -1
- package/dist/esm/i18n/th.json +1 -0
- package/dist/esm/i18n/tr.json +1 -0
- package/dist/esm/i18n/uk.json +10 -9
- package/dist/esm/i18n/vi.json +1 -0
- package/dist/esm/i18n/zh.json +1 -0
- package/dist/esm/pages/TransactionPage/TokenValueBottomSheet.js +2 -4
- package/dist/esm/pages/TransactionPage/TokenValueBottomSheet.js.map +1 -1
- package/dist/esm/stores/chains/createChainOrderStore.js +9 -1
- package/dist/esm/stores/chains/createChainOrderStore.js.map +1 -1
- package/dist/esm/types/events.d.ts +34 -27
- package/dist/esm/types/events.js +13 -12
- package/dist/esm/types/events.js.map +1 -1
- package/package.json +4 -4
- package/package.json.tmp +3 -3
- package/src/components/RouteCard/RouteCard.tsx +3 -3
- package/src/components/RouteCard/RouteCardEssentials.tsx +4 -5
- package/src/components/StepActions/StepActions.tsx +3 -3
- package/src/components/TokenList/TokenList.tsx +0 -1
- package/src/components/TransactionDetails.tsx +8 -8
- package/src/config/version.ts +1 -1
- package/src/hooks/useGasRecommendation.ts +5 -2
- package/src/hooks/useGasRefuel.ts +6 -2
- package/src/hooks/useGasSufficiency.ts +1 -2
- package/src/hooks/useRoutes.ts +2 -3
- package/src/i18n/bn.json +1 -0
- package/src/i18n/de.json +1 -0
- package/src/i18n/es.json +1 -0
- package/src/i18n/fr.json +1 -0
- package/src/i18n/hi.json +1 -0
- package/src/i18n/id.json +1 -0
- package/src/i18n/it.json +1 -0
- package/src/i18n/ja.json +1 -0
- package/src/i18n/ko.json +1 -0
- package/src/i18n/pl.json +1 -0
- package/src/i18n/pt.json +2 -1
- package/src/i18n/th.json +1 -0
- package/src/i18n/tr.json +1 -0
- package/src/i18n/uk.json +10 -9
- package/src/i18n/vi.json +1 -0
- package/src/i18n/zh.json +1 -0
- package/src/pages/TransactionPage/TokenValueBottomSheet.tsx +2 -7
- package/src/stores/chains/createChainOrderStore.ts +9 -1
- package/src/types/events.ts +36 -27
package/dist/esm/i18n/th.json
CHANGED
|
@@ -174,6 +174,7 @@
|
|
|
174
174
|
"exchangeRateUpdateCanceled": "การอัปเดตอัตราแลกเปลี่ยนถูกยกเลิก",
|
|
175
175
|
"gasLimitIsTooLow": "แก๊สคงเหลือต่ำเกินไป",
|
|
176
176
|
"insufficientFunds": "ยอดคงเหลือไม่เพียงพอ",
|
|
177
|
+
"insufficientGas": "",
|
|
177
178
|
"rateLimitExceeded": "",
|
|
178
179
|
"signatureRejected": "ต้องมีลายเซ็น",
|
|
179
180
|
"slippageNotMet": "ความคลาดเคลื่อนของราคาไม่เป็นไปตามเงื่อนไข.",
|
package/dist/esm/i18n/tr.json
CHANGED
|
@@ -174,6 +174,7 @@
|
|
|
174
174
|
"exchangeRateUpdateCanceled": "Fiyat güncellemesi iptal edildi",
|
|
175
175
|
"gasLimitIsTooLow": "Gaz limiti çok düşük",
|
|
176
176
|
"insufficientFunds": "Yetersiz bakiye",
|
|
177
|
+
"insufficientGas": "",
|
|
177
178
|
"rateLimitExceeded": "",
|
|
178
179
|
"signatureRejected": "İmza gerekiyor",
|
|
179
180
|
"slippageNotMet": "Slipaj koşulları karşılanmadı",
|
package/dist/esm/i18n/uk.json
CHANGED
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"getGas": "Отримати газ",
|
|
37
37
|
"learnMore": "Докладніше",
|
|
38
38
|
"light": "Світла",
|
|
39
|
-
"max": "",
|
|
39
|
+
"max": "МАКС",
|
|
40
40
|
"ok": "Ок",
|
|
41
41
|
"options": "Опції",
|
|
42
42
|
"removeTransaction": "Видалити транзакцію",
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
"emptyBridgesList": "Ми не змогли знайти жодного моста, що відповідає вашому запиту",
|
|
93
93
|
"emptyChainList": "Ми не змогли знайти жодного чейна, що відповідає вашому запиту",
|
|
94
94
|
"emptyExchangesList": "Ми не змогли знайти жодного обмінника, що відповідає вашому запиту",
|
|
95
|
-
"emptyTokenListAllNetworks": "",
|
|
95
|
+
"emptyTokenListAllNetworks": "Не вдалося знайти жодного токена. Будь ласка, пошукайте за адресою токена або спробуйте вибрати інший чейн.",
|
|
96
96
|
"emptyTransactionHistory": "Історія транзакцій зберігається лише локально та буде видалена, якщо ви очистите дані браузера.",
|
|
97
97
|
"routeNotFound": "Причинами цього можуть бути: низька ліквідність, вибрана надто низька сума, занадто високі витрати на газ або відсутність маршрутів для вибраної комбінації.",
|
|
98
98
|
"toAddressIsRequired": "Для продовження переказу необхідно вказати адресу гаманця одержувача.",
|
|
@@ -129,7 +129,7 @@
|
|
|
129
129
|
"highValueLoss": "Вартість отриманих токенів значно нижча, ніж обмінені токени та вартість транзакції.",
|
|
130
130
|
"insufficientFunds": "У вас недостатньо коштів для здійснення свопу.",
|
|
131
131
|
"insufficientGas": "Для завершення свопа у вас недостатньо газу. Вам необхідно додати хоча б:",
|
|
132
|
-
"minFromAmountUSD": "",
|
|
132
|
+
"minFromAmountUSD": "Мінімальна сума {{amount, currencyExt(currency: USD)}}. Будь ласка, введіть більшу суму.",
|
|
133
133
|
"rateChanged": "Курс обміну змінився. Продовжуючи своп, ви приймете новий курс.",
|
|
134
134
|
"resetSettings": "Це скине пріоритет вашого маршруту, прослизання, ціну газу, увімкнені бриджі та обмінники.",
|
|
135
135
|
"slippageOutsideRecommendedLimits": "Високий допуск до прослизання може призвести до несприятливої торгівлі через фронт-біг.",
|
|
@@ -174,6 +174,7 @@
|
|
|
174
174
|
"exchangeRateUpdateCanceled": "Оновлення обмінного курсу скасовано",
|
|
175
175
|
"gasLimitIsTooLow": "Занадто низький ліміт газу",
|
|
176
176
|
"insufficientFunds": "Недостатньо коштів",
|
|
177
|
+
"insufficientGas": "Недостатня кількість газу",
|
|
177
178
|
"rateLimitExceeded": "Перевищено ліміт запитів",
|
|
178
179
|
"signatureRejected": "Підпис обов'язковий",
|
|
179
180
|
"slippageNotMet": "Не виконані умови прослизання",
|
|
@@ -212,7 +213,7 @@
|
|
|
212
213
|
"slippage": "Максимальна процентна різниця між очікуваною ціною і фактичною ціною з якою виконується трансфер. Ця величина може бути змінена в налаштуваннях."
|
|
213
214
|
},
|
|
214
215
|
"main": {
|
|
215
|
-
"allNetworks": "",
|
|
216
|
+
"allNetworks": "Всі мережі",
|
|
216
217
|
"allTokens": "Всі токени",
|
|
217
218
|
"bridgeStepDetails": "Бридж з {{from}} до {{to}} через {{tool}}",
|
|
218
219
|
"checkoutStepDetails": "Купівля через {{tool}}",
|
|
@@ -241,7 +242,7 @@
|
|
|
241
242
|
"process": {
|
|
242
243
|
"bridge": {
|
|
243
244
|
"actionRequired": "Підпишіть бридж транзакцію",
|
|
244
|
-
"messageRequired": "",
|
|
245
|
+
"messageRequired": "Підпишіть брідж повідомлення",
|
|
245
246
|
"done": "Бридж транзакцію схвалено",
|
|
246
247
|
"pending": "Очікування бридж операції",
|
|
247
248
|
"started": "Підготовка бридж транзакції"
|
|
@@ -260,7 +261,7 @@
|
|
|
260
261
|
},
|
|
261
262
|
"swap": {
|
|
262
263
|
"actionRequired": "Підпишіть своп транзакцію",
|
|
263
|
-
"messageRequired": "",
|
|
264
|
+
"messageRequired": "Підпишіть своп повідомлення",
|
|
264
265
|
"done": "Своп завершено",
|
|
265
266
|
"pending": "Очікування своп операції",
|
|
266
267
|
"started": "Підготовка своп транзакції"
|
|
@@ -313,7 +314,7 @@
|
|
|
313
314
|
"valueLoss": "Втрата вартості",
|
|
314
315
|
"searchBridges": "Пошук за назвою моста",
|
|
315
316
|
"searchExchanges": "Пошук за назвою обмінника",
|
|
316
|
-
"searchNetwork": ""
|
|
317
|
+
"searchNetwork": "Пошук мережі"
|
|
317
318
|
},
|
|
318
319
|
"settings": {
|
|
319
320
|
"appearance": "Вигляд",
|
|
@@ -345,7 +346,7 @@
|
|
|
345
346
|
"tokenMetric": {
|
|
346
347
|
"currentPrice": "Поточна ціна",
|
|
347
348
|
"contractAddress": "Адреса контракту",
|
|
348
|
-
"marketCap": "",
|
|
349
|
-
"volume24h": ""
|
|
349
|
+
"marketCap": "Ринкова капіталізація",
|
|
350
|
+
"volume24h": "Обсяг 24г"
|
|
350
351
|
}
|
|
351
352
|
}
|
package/dist/esm/i18n/vi.json
CHANGED
|
@@ -174,6 +174,7 @@
|
|
|
174
174
|
"exchangeRateUpdateCanceled": "Đã hủy cập nhật tỷ giá",
|
|
175
175
|
"gasLimitIsTooLow": "Giới hạn gas quá thấp",
|
|
176
176
|
"insufficientFunds": "Không đủ tài sản",
|
|
177
|
+
"insufficientGas": "",
|
|
177
178
|
"rateLimitExceeded": "",
|
|
178
179
|
"signatureRejected": "Yêu cầu chữ ký",
|
|
179
180
|
"slippageNotMet": "Điều kiện trượt giá không được đáp ứng",
|
package/dist/esm/i18n/zh.json
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { isRelayerStep } from '@lifi/sdk';
|
|
3
2
|
import WarningRounded from '@mui/icons-material/WarningRounded';
|
|
4
3
|
import { Box, Button, Typography } from '@mui/material';
|
|
5
4
|
import { forwardRef, useRef } from 'react';
|
|
@@ -25,7 +24,6 @@ const TokenValueBottomSheetContent = ({ route, onCancel, onContinue, }) => {
|
|
|
25
24
|
const { gasCosts, feeCosts, gasCostUSD, feeCostUSD } = getAccumulatedFeeCostsBreakdown(route);
|
|
26
25
|
const fromAmountUSD = Number.parseFloat(route.fromAmountUSD);
|
|
27
26
|
const toAmountUSD = Number.parseFloat(route.toAmountUSD);
|
|
28
|
-
const hasRelayerSupport = route.steps.every(isRelayerStep);
|
|
29
27
|
return (_jsxs(Box, { ref: ref, sx: {
|
|
30
28
|
p: 3,
|
|
31
29
|
}, children: [_jsxs(CenterContainer, { children: [_jsx(IconCircle, { status: "warning", mb: 1, children: _jsx(WarningRounded, { color: "warning" }) }), _jsx(Typography, { sx: {
|
|
@@ -44,9 +42,9 @@ const TokenValueBottomSheetContent = ({ route, onCancel, onContinue, }) => {
|
|
|
44
42
|
display: 'flex',
|
|
45
43
|
justifyContent: 'space-between',
|
|
46
44
|
mt: 0.25,
|
|
47
|
-
}, children: [_jsx(Typography, { children: t('main.fees.network') }), _jsx(FeeBreakdownTooltip, { gasCosts: gasCosts, relayerSupport:
|
|
45
|
+
}, children: [_jsx(Typography, { children: t('main.fees.network') }), _jsx(FeeBreakdownTooltip, { gasCosts: gasCosts, relayerSupport: !gasCostUSD, children: _jsx(Typography, { sx: {
|
|
48
46
|
fontWeight: 600,
|
|
49
|
-
}, children:
|
|
47
|
+
}, children: !gasCostUSD
|
|
50
48
|
? t('main.fees.free')
|
|
51
49
|
: t('format.currency', { value: gasCostUSD }) }) })] }), feeCostUSD ? (_jsxs(Box, { sx: {
|
|
52
50
|
display: 'flex',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenValueBottomSheet.js","sourceRoot":"","sources":["../../../../src/pages/TransactionPage/TokenValueBottomSheet.tsx"],"names":[],"mappings":";AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"TokenValueBottomSheet.js","sourceRoot":"","sources":["../../../../src/pages/TransactionPage/TokenValueBottomSheet.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { persist } from 'zustand/middleware';
|
|
2
2
|
import { createWithEqualityFn } from 'zustand/traditional';
|
|
3
|
+
import { widgetEvents } from '../../hooks/useWidgetEvents.js';
|
|
4
|
+
import { WidgetEvent } from '../../types/events.js';
|
|
3
5
|
// (10 tiles: 9 + 1 for "All chains")
|
|
4
6
|
export const maxGridItemsToShow = 10;
|
|
5
7
|
export const maxChainsToShow = maxGridItemsToShow - 1;
|
|
@@ -74,9 +76,11 @@ export const createChainOrderStore = ({ namePrefix }) => createWithEqualityFn(pe
|
|
|
74
76
|
set({ [`${formType}ShowAllNetworks`]: showAllNetworks });
|
|
75
77
|
},
|
|
76
78
|
setPinnedChain: (chainId) => {
|
|
79
|
+
const currentPinnedChains = get().pinnedChains;
|
|
80
|
+
const wasAlreadyPinned = currentPinnedChains.includes(chainId);
|
|
77
81
|
set((state) => {
|
|
78
82
|
const pinnedChains = [...state.pinnedChains];
|
|
79
|
-
if (
|
|
83
|
+
if (wasAlreadyPinned) {
|
|
80
84
|
return {
|
|
81
85
|
pinnedChains: pinnedChains.filter((id) => id !== chainId),
|
|
82
86
|
};
|
|
@@ -86,6 +90,10 @@ export const createChainOrderStore = ({ namePrefix }) => createWithEqualityFn(pe
|
|
|
86
90
|
pinnedChains,
|
|
87
91
|
};
|
|
88
92
|
});
|
|
93
|
+
widgetEvents.emit(WidgetEvent.ChainPinned, {
|
|
94
|
+
chainId,
|
|
95
|
+
pinned: !wasAlreadyPinned,
|
|
96
|
+
});
|
|
89
97
|
},
|
|
90
98
|
}), {
|
|
91
99
|
name: `${namePrefix || 'li.fi'}-widget-chains-order`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createChainOrderStore.js","sourceRoot":"","sources":["../../../../src/stores/chains/createChainOrderStore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"createChainOrderStore.js","sourceRoot":"","sources":["../../../../src/stores/chains/createChainOrderStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,51 +4,50 @@ import type { SettingsProps } from '../stores/settings/types.js';
|
|
|
4
4
|
import type { NavigationRouteType } from '../utils/navigationRoutes.js';
|
|
5
5
|
import type { TokenAmount } from './token.js';
|
|
6
6
|
export declare enum WidgetEvent {
|
|
7
|
-
RouteExecutionStarted = "routeExecutionStarted",
|
|
8
|
-
RouteExecutionUpdated = "routeExecutionUpdated",
|
|
9
|
-
RouteExecutionCompleted = "routeExecutionCompleted",
|
|
10
|
-
RouteExecutionFailed = "routeExecutionFailed",
|
|
11
|
-
RouteHighValueLoss = "routeHighValueLoss",
|
|
12
|
-
RouteSelected = "routeSelected",
|
|
13
7
|
AvailableRoutes = "availableRoutes",
|
|
8
|
+
ChainPinned = "chainPinned",
|
|
14
9
|
ContactSupport = "contactSupport",
|
|
15
|
-
SourceChainTokenSelected = "sourceChainTokenSelected",
|
|
16
10
|
DestinationChainTokenSelected = "destinationChainTokenSelected",
|
|
17
|
-
|
|
11
|
+
FormFieldChanged = "formFieldChanged",
|
|
12
|
+
LowAddressActivityConfirmed = "lowAddressActivityConfirmed",
|
|
13
|
+
PageEntered = "pageEntered",
|
|
18
14
|
/**
|
|
19
15
|
* @deprecated Use `PageEntered` event instead.
|
|
20
16
|
*/
|
|
21
17
|
ReviewTransactionPageEntered = "reviewTransactionPageEntered",
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
RouteExecutionCompleted = "routeExecutionCompleted",
|
|
19
|
+
RouteExecutionFailed = "routeExecutionFailed",
|
|
20
|
+
RouteExecutionStarted = "routeExecutionStarted",
|
|
21
|
+
RouteExecutionUpdated = "routeExecutionUpdated",
|
|
22
|
+
RouteHighValueLoss = "routeHighValueLoss",
|
|
23
|
+
RouteSelected = "routeSelected",
|
|
24
|
+
SendToWalletToggled = "sendToWalletToggled",
|
|
25
25
|
SettingUpdated = "settingUpdated",
|
|
26
|
+
SourceChainTokenSelected = "sourceChainTokenSelected",
|
|
26
27
|
TokenSearch = "tokenSearch",
|
|
27
|
-
|
|
28
|
+
WidgetExpanded = "widgetExpanded"
|
|
28
29
|
}
|
|
29
30
|
export type WidgetEvents = {
|
|
30
|
-
routeExecutionStarted: Route;
|
|
31
|
-
routeExecutionUpdated: RouteExecutionUpdate;
|
|
32
|
-
routeExecutionCompleted: Route;
|
|
33
|
-
routeExecutionFailed: RouteExecutionUpdate;
|
|
34
|
-
routeHighValueLoss: RouteHighValueLossUpdate;
|
|
35
|
-
routeSelected: RouteSelected;
|
|
36
31
|
availableRoutes: Route[];
|
|
32
|
+
chainPinned: ChainPinned;
|
|
37
33
|
contactSupport: ContactSupport;
|
|
38
|
-
sourceChainTokenSelected: ChainTokenSelected;
|
|
39
34
|
destinationChainTokenSelected: ChainTokenSelected;
|
|
40
|
-
sendToWalletToggled: boolean;
|
|
41
35
|
formFieldChanged: FormFieldChanged;
|
|
42
|
-
|
|
43
|
-
walletConnected: WalletConnected;
|
|
44
|
-
widgetExpanded: boolean;
|
|
36
|
+
lowAddressActivityConfirmed: LowAddressActivityConfirmed;
|
|
45
37
|
pageEntered: NavigationRouteType;
|
|
38
|
+
reviewTransactionPageEntered?: Route;
|
|
39
|
+
routeExecutionCompleted: Route;
|
|
40
|
+
routeExecutionFailed: RouteExecutionUpdate;
|
|
41
|
+
routeExecutionStarted: Route;
|
|
42
|
+
routeExecutionUpdated: RouteExecutionUpdate;
|
|
43
|
+
routeHighValueLoss: RouteHighValueLossUpdate;
|
|
44
|
+
routeSelected: RouteSelected;
|
|
45
|
+
sendToWalletToggled: boolean;
|
|
46
46
|
settingUpdated: SettingUpdated;
|
|
47
|
+
sourceChainTokenSelected: ChainTokenSelected;
|
|
47
48
|
tokenSearch: TokenSearch;
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
chainId: number;
|
|
51
|
-
};
|
|
49
|
+
walletConnected: WalletConnected;
|
|
50
|
+
widgetExpanded: boolean;
|
|
52
51
|
};
|
|
53
52
|
export type ContactSupport = {
|
|
54
53
|
supportId?: string;
|
|
@@ -95,3 +94,11 @@ export type SettingUpdated<K extends keyof SettingsProps = keyof SettingsProps>
|
|
|
95
94
|
newSettings: SettingsProps;
|
|
96
95
|
oldSettings: SettingsProps;
|
|
97
96
|
};
|
|
97
|
+
export type ChainPinned = {
|
|
98
|
+
chainId: number;
|
|
99
|
+
pinned: boolean;
|
|
100
|
+
};
|
|
101
|
+
export type LowAddressActivityConfirmed = {
|
|
102
|
+
address: string;
|
|
103
|
+
chainId: number;
|
|
104
|
+
};
|
package/dist/esm/types/events.js
CHANGED
|
@@ -1,25 +1,26 @@
|
|
|
1
1
|
export var WidgetEvent;
|
|
2
2
|
(function (WidgetEvent) {
|
|
3
|
-
WidgetEvent["RouteExecutionStarted"] = "routeExecutionStarted";
|
|
4
|
-
WidgetEvent["RouteExecutionUpdated"] = "routeExecutionUpdated";
|
|
5
|
-
WidgetEvent["RouteExecutionCompleted"] = "routeExecutionCompleted";
|
|
6
|
-
WidgetEvent["RouteExecutionFailed"] = "routeExecutionFailed";
|
|
7
|
-
WidgetEvent["RouteHighValueLoss"] = "routeHighValueLoss";
|
|
8
|
-
WidgetEvent["RouteSelected"] = "routeSelected";
|
|
9
3
|
WidgetEvent["AvailableRoutes"] = "availableRoutes";
|
|
4
|
+
WidgetEvent["ChainPinned"] = "chainPinned";
|
|
10
5
|
WidgetEvent["ContactSupport"] = "contactSupport";
|
|
11
|
-
WidgetEvent["SourceChainTokenSelected"] = "sourceChainTokenSelected";
|
|
12
6
|
WidgetEvent["DestinationChainTokenSelected"] = "destinationChainTokenSelected";
|
|
13
|
-
WidgetEvent["
|
|
7
|
+
WidgetEvent["FormFieldChanged"] = "formFieldChanged";
|
|
8
|
+
WidgetEvent["LowAddressActivityConfirmed"] = "lowAddressActivityConfirmed";
|
|
9
|
+
WidgetEvent["PageEntered"] = "pageEntered";
|
|
14
10
|
/**
|
|
15
11
|
* @deprecated Use `PageEntered` event instead.
|
|
16
12
|
*/
|
|
17
13
|
WidgetEvent["ReviewTransactionPageEntered"] = "reviewTransactionPageEntered";
|
|
18
|
-
WidgetEvent["
|
|
19
|
-
WidgetEvent["
|
|
20
|
-
WidgetEvent["
|
|
14
|
+
WidgetEvent["RouteExecutionCompleted"] = "routeExecutionCompleted";
|
|
15
|
+
WidgetEvent["RouteExecutionFailed"] = "routeExecutionFailed";
|
|
16
|
+
WidgetEvent["RouteExecutionStarted"] = "routeExecutionStarted";
|
|
17
|
+
WidgetEvent["RouteExecutionUpdated"] = "routeExecutionUpdated";
|
|
18
|
+
WidgetEvent["RouteHighValueLoss"] = "routeHighValueLoss";
|
|
19
|
+
WidgetEvent["RouteSelected"] = "routeSelected";
|
|
20
|
+
WidgetEvent["SendToWalletToggled"] = "sendToWalletToggled";
|
|
21
21
|
WidgetEvent["SettingUpdated"] = "settingUpdated";
|
|
22
|
+
WidgetEvent["SourceChainTokenSelected"] = "sourceChainTokenSelected";
|
|
22
23
|
WidgetEvent["TokenSearch"] = "tokenSearch";
|
|
23
|
-
WidgetEvent["
|
|
24
|
+
WidgetEvent["WidgetExpanded"] = "widgetExpanded";
|
|
24
25
|
})(WidgetEvent || (WidgetEvent = {}));
|
|
25
26
|
//# sourceMappingURL=events.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/types/events.ts"],"names":[],"mappings":"AAMA,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/types/events.ts"],"names":[],"mappings":"AAMA,MAAM,CAAN,IAAY,WAuBX;AAvBD,WAAY,WAAW;IACrB,kDAAmC,CAAA;IACnC,0CAA2B,CAAA;IAC3B,gDAAiC,CAAA;IACjC,8EAA+D,CAAA;IAC/D,oDAAqC,CAAA;IACrC,0EAA2D,CAAA;IAC3D,0CAA2B,CAAA;IAC3B;;OAEG;IACH,4EAA6D,CAAA;IAC7D,kEAAmD,CAAA;IACnD,4DAA6C,CAAA;IAC7C,8DAA+C,CAAA;IAC/C,8DAA+C,CAAA;IAC/C,wDAAyC,CAAA;IACzC,8CAA+B,CAAA;IAC/B,0DAA2C,CAAA;IAC3C,gDAAiC,CAAA;IACjC,oEAAqD,CAAA;IACrD,0CAA2B,CAAA;IAC3B,gDAAiC,CAAA;AACnC,CAAC,EAvBW,WAAW,KAAX,WAAW,QAuBtB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lifi/widget",
|
|
3
|
-
"version": "3.30.
|
|
3
|
+
"version": "3.30.12",
|
|
4
4
|
"description": "LI.FI 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",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"@bigmi/core": "^0.5.2",
|
|
35
35
|
"@emotion/react": "^11.14.0",
|
|
36
36
|
"@emotion/styled": "^11.14.1",
|
|
37
|
-
"@lifi/sdk": "^3.12.
|
|
37
|
+
"@lifi/sdk": "^3.12.8",
|
|
38
38
|
"@mui/icons-material": "^7.3.2",
|
|
39
39
|
"@mui/material": "^7.3.2",
|
|
40
40
|
"@mui/system": "^7.3.2",
|
|
@@ -50,9 +50,9 @@
|
|
|
50
50
|
"react-intersection-observer": "^9.16.0",
|
|
51
51
|
"react-router-dom": "^6.30.0",
|
|
52
52
|
"react-transition-group": "^4.4.5",
|
|
53
|
-
"viem": "^2.37.
|
|
53
|
+
"viem": "^2.37.6",
|
|
54
54
|
"zustand": "^5.0.8",
|
|
55
|
-
"@lifi/wallet-management": "^3.16.
|
|
55
|
+
"@lifi/wallet-management": "^3.16.6"
|
|
56
56
|
},
|
|
57
57
|
"peerDependencies": {
|
|
58
58
|
"@bigmi/react": ">=0.5.0",
|
package/package.json.tmp
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lifi/widget",
|
|
3
|
-
"version": "3.30.
|
|
3
|
+
"version": "3.30.12",
|
|
4
4
|
"description": "LI.FI 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": "./src/index.ts",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"@bigmi/core": "^0.5.2",
|
|
54
54
|
"@emotion/react": "^11.14.0",
|
|
55
55
|
"@emotion/styled": "^11.14.1",
|
|
56
|
-
"@lifi/sdk": "^3.12.
|
|
56
|
+
"@lifi/sdk": "^3.12.8",
|
|
57
57
|
"@lifi/wallet-management": "workspace:^",
|
|
58
58
|
"@mui/icons-material": "^7.3.2",
|
|
59
59
|
"@mui/material": "^7.3.2",
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"react-intersection-observer": "^9.16.0",
|
|
71
71
|
"react-router-dom": "^6.30.0",
|
|
72
72
|
"react-transition-group": "^4.4.5",
|
|
73
|
-
"viem": "^2.37.
|
|
73
|
+
"viem": "^2.37.6",
|
|
74
74
|
"zustand": "^5.0.8"
|
|
75
75
|
},
|
|
76
76
|
"devDependencies": {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { TokenAmount } from '@lifi/sdk'
|
|
2
|
-
import { isRelayerStep } from '@lifi/sdk'
|
|
3
2
|
import ExpandLess from '@mui/icons-material/ExpandLess'
|
|
4
3
|
import ExpandMore from '@mui/icons-material/ExpandMore'
|
|
5
4
|
import { Box, Collapse } from '@mui/material'
|
|
@@ -8,6 +7,7 @@ import { useState } from 'react'
|
|
|
8
7
|
import { useTranslation } from 'react-i18next'
|
|
9
8
|
import { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'
|
|
10
9
|
import { HiddenUI } from '../../types/widget.js'
|
|
10
|
+
import { getAccumulatedFeeCostsBreakdown } from '../../utils/fees.js'
|
|
11
11
|
import type { CardProps } from '../Card/Card.js'
|
|
12
12
|
import { Card } from '../Card/Card.js'
|
|
13
13
|
import { CardIconButton } from '../Card/CardIconButton.js'
|
|
@@ -53,8 +53,8 @@ export const RouteCard: React.FC<
|
|
|
53
53
|
(tag) => tag === 'CHEAPEST' || tag === 'FASTEST'
|
|
54
54
|
)
|
|
55
55
|
const tags: string[] = mainTag ? [mainTag] : []
|
|
56
|
-
const
|
|
57
|
-
if (
|
|
56
|
+
const { combinedFeesUSD } = getAccumulatedFeeCostsBreakdown(route)
|
|
57
|
+
if (!combinedFeesUSD) {
|
|
58
58
|
tags.push('GASLESS')
|
|
59
59
|
}
|
|
60
60
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { isRelayerStep } from '@lifi/sdk'
|
|
2
1
|
import AccessTimeFilled from '@mui/icons-material/AccessTimeFilled'
|
|
3
2
|
import LocalGasStationRounded from '@mui/icons-material/LocalGasStationRounded'
|
|
4
3
|
import { Box, Tooltip, Typography } from '@mui/material'
|
|
@@ -20,9 +19,9 @@ export const RouteCardEssentials: React.FC<RouteCardEssentialsProps> = ({
|
|
|
20
19
|
0
|
|
21
20
|
)
|
|
22
21
|
)
|
|
22
|
+
|
|
23
23
|
const { gasCosts, feeCosts, combinedFeesUSD } =
|
|
24
24
|
getAccumulatedFeeCostsBreakdown(route)
|
|
25
|
-
const hasRelayerSupport = route.steps.every(isRelayerStep)
|
|
26
25
|
return (
|
|
27
26
|
<Box
|
|
28
27
|
sx={{
|
|
@@ -43,7 +42,7 @@ export const RouteCardEssentials: React.FC<RouteCardEssentialsProps> = ({
|
|
|
43
42
|
<FeeBreakdownTooltip
|
|
44
43
|
gasCosts={gasCosts}
|
|
45
44
|
feeCosts={feeCosts}
|
|
46
|
-
relayerSupport={
|
|
45
|
+
relayerSupport={!combinedFeesUSD}
|
|
47
46
|
>
|
|
48
47
|
<Box
|
|
49
48
|
sx={{
|
|
@@ -56,7 +55,7 @@ export const RouteCardEssentials: React.FC<RouteCardEssentialsProps> = ({
|
|
|
56
55
|
<LocalGasStationRounded fontSize="inherit" />
|
|
57
56
|
</IconTypography>
|
|
58
57
|
<Typography
|
|
59
|
-
data-value={
|
|
58
|
+
data-value={combinedFeesUSD}
|
|
60
59
|
sx={{
|
|
61
60
|
fontSize: 14,
|
|
62
61
|
color: 'text.primary',
|
|
@@ -64,7 +63,7 @@ export const RouteCardEssentials: React.FC<RouteCardEssentialsProps> = ({
|
|
|
64
63
|
lineHeight: 1,
|
|
65
64
|
}}
|
|
66
65
|
>
|
|
67
|
-
{
|
|
66
|
+
{!combinedFeesUSD
|
|
68
67
|
? t('main.fees.free')
|
|
69
68
|
: t('format.currency', {
|
|
70
69
|
value: combinedFeesUSD,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { LiFiStep, StepExtended } from '@lifi/sdk'
|
|
2
|
-
import {
|
|
2
|
+
import { isGaslessStep } from '@lifi/sdk'
|
|
3
3
|
import ArrowForward from '@mui/icons-material/ArrowForward'
|
|
4
4
|
import ExpandLess from '@mui/icons-material/ExpandLess'
|
|
5
5
|
import ExpandMore from '@mui/icons-material/ExpandMore'
|
|
@@ -163,7 +163,7 @@ const IncludedSteps: React.FC<IncludedStepsProps> = ({ step }) => {
|
|
|
163
163
|
) : null
|
|
164
164
|
}
|
|
165
165
|
|
|
166
|
-
const
|
|
166
|
+
const hasGaslessSupport = isGaslessStep(step)
|
|
167
167
|
|
|
168
168
|
return (
|
|
169
169
|
<Box
|
|
@@ -195,7 +195,7 @@ const IncludedSteps: React.FC<IncludedStepsProps> = ({ step }) => {
|
|
|
195
195
|
<ProtocolStepDetailsLabel
|
|
196
196
|
step={step}
|
|
197
197
|
feeConfig={feeConfig}
|
|
198
|
-
relayerSupport={
|
|
198
|
+
relayerSupport={hasGaslessSupport}
|
|
199
199
|
/>
|
|
200
200
|
) : (
|
|
201
201
|
<SwapStepDetailsLabel step={step} />
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { RouteExtended } from '@lifi/sdk'
|
|
2
|
-
import {
|
|
2
|
+
import { isGaslessStep } from '@lifi/sdk'
|
|
3
3
|
import ExpandLess from '@mui/icons-material/ExpandLess'
|
|
4
4
|
import ExpandMore from '@mui/icons-material/ExpandMore'
|
|
5
5
|
import LocalGasStationRounded from '@mui/icons-material/LocalGasStationRounded'
|
|
@@ -71,10 +71,10 @@ export const TransactionDetails: React.FC<TransactionDetailsProps> = ({
|
|
|
71
71
|
) ?? 0
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
const
|
|
74
|
+
const hasGaslessSupport = route.steps.every((step) => isGaslessStep(step))
|
|
75
75
|
|
|
76
76
|
const showIntegratorFeeCollectionDetails =
|
|
77
|
-
(feeAmountUSD || Number.isFinite(feeConfig?.fee)) && !
|
|
77
|
+
(feeAmountUSD || Number.isFinite(feeConfig?.fee)) && !hasGaslessSupport
|
|
78
78
|
|
|
79
79
|
return (
|
|
80
80
|
<Card selectionColor="secondary" {...props}>
|
|
@@ -100,7 +100,7 @@ export const TransactionDetails: React.FC<TransactionDetailsProps> = ({
|
|
|
100
100
|
<FeeBreakdownTooltip
|
|
101
101
|
gasCosts={gasCosts}
|
|
102
102
|
feeCosts={feeCosts}
|
|
103
|
-
relayerSupport={
|
|
103
|
+
relayerSupport={hasGaslessSupport}
|
|
104
104
|
>
|
|
105
105
|
<Box
|
|
106
106
|
onClick={toggleCard}
|
|
@@ -116,7 +116,7 @@ export const TransactionDetails: React.FC<TransactionDetailsProps> = ({
|
|
|
116
116
|
<LocalGasStationRounded fontSize="inherit" />
|
|
117
117
|
</IconTypography>
|
|
118
118
|
<Typography
|
|
119
|
-
data-value={
|
|
119
|
+
data-value={combinedFeesUSD}
|
|
120
120
|
sx={{
|
|
121
121
|
fontSize: 14,
|
|
122
122
|
color: 'text.primary',
|
|
@@ -124,7 +124,7 @@ export const TransactionDetails: React.FC<TransactionDetailsProps> = ({
|
|
|
124
124
|
lineHeight: 1.429,
|
|
125
125
|
}}
|
|
126
126
|
>
|
|
127
|
-
{
|
|
127
|
+
{!combinedFeesUSD
|
|
128
128
|
? t('main.fees.free')
|
|
129
129
|
: t('format.currency', { value: combinedFeesUSD })}
|
|
130
130
|
</Typography>
|
|
@@ -156,13 +156,13 @@ export const TransactionDetails: React.FC<TransactionDetailsProps> = ({
|
|
|
156
156
|
<Typography variant="body2">{t('main.fees.network')}</Typography>
|
|
157
157
|
<FeeBreakdownTooltip
|
|
158
158
|
gasCosts={gasCosts}
|
|
159
|
-
relayerSupport={
|
|
159
|
+
relayerSupport={hasGaslessSupport}
|
|
160
160
|
>
|
|
161
161
|
<Typography
|
|
162
162
|
variant="body2"
|
|
163
163
|
sx={{ fontWeight: 600, cursor: 'help' }}
|
|
164
164
|
>
|
|
165
|
-
{
|
|
165
|
+
{!gasCostUSD
|
|
166
166
|
? t('main.fees.free')
|
|
167
167
|
: t('format.currency', {
|
|
168
168
|
value: gasCostUSD,
|
package/src/config/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const name = '@lifi/widget'
|
|
2
|
-
export const version = '3.30.
|
|
2
|
+
export const version = '3.30.12'
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type ChainId, getGasRecommendation } from '@lifi/sdk'
|
|
2
2
|
import { useQuery } from '@tanstack/react-query'
|
|
3
3
|
import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js'
|
|
4
|
+
import { HiddenUI } from '../types/widget.js'
|
|
4
5
|
import { getQueryKey } from '../utils/queries.js'
|
|
5
6
|
import { useAvailableChains } from './useAvailableChains.js'
|
|
6
7
|
|
|
@@ -12,7 +13,7 @@ export const useGasRecommendation = (
|
|
|
12
13
|
fromToken?: string
|
|
13
14
|
) => {
|
|
14
15
|
const { chains } = useAvailableChains()
|
|
15
|
-
const { keyPrefix } = useWidgetConfig()
|
|
16
|
+
const { keyPrefix, hiddenUI } = useWidgetConfig()
|
|
16
17
|
|
|
17
18
|
const checkRecommendationLiFuel =
|
|
18
19
|
Boolean(toChainId) &&
|
|
@@ -47,7 +48,9 @@ export const useGasRecommendation = (
|
|
|
47
48
|
)
|
|
48
49
|
return gasRecommendation
|
|
49
50
|
},
|
|
50
|
-
enabled:
|
|
51
|
+
enabled:
|
|
52
|
+
(checkRecommendationLiFuel || checkRecommendationMaxButton) &&
|
|
53
|
+
!hiddenUI?.includes(HiddenUI.GasRefuelMessage),
|
|
51
54
|
refetchInterval,
|
|
52
55
|
staleTime: refetchInterval,
|
|
53
56
|
})
|