@lifi/widget 2.0.0 → 2.0.1

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.
Files changed (34) hide show
  1. package/cjs/components/Step/StepList.d.ts +2 -1
  2. package/cjs/components/Step/StepList.js +4 -2
  3. package/cjs/components/StepActions/StepActions.js +12 -3
  4. package/cjs/config/version.d.ts +1 -1
  5. package/cjs/config/version.js +1 -1
  6. package/cjs/hooks/useRoutes.js +2 -4
  7. package/cjs/i18n/id.json +61 -60
  8. package/cjs/i18n/it.json +61 -60
  9. package/cjs/i18n/pt.json +62 -61
  10. package/cjs/i18n/uk.json +50 -49
  11. package/cjs/pages/TransactionDetailsPage/TransactionDetailsPage.js +1 -1
  12. package/cjs/pages/TransactionPage/ExchangeRateBottomSheet.js +2 -1
  13. package/cjs/pages/TransactionPage/StatusBottomSheet.style.js +5 -1
  14. package/cjs/pages/TransactionPage/TransactionPage.js +5 -1
  15. package/cjs/stores/routes/utils.d.ts +1 -0
  16. package/cjs/stores/routes/utils.js +5 -1
  17. package/components/Step/StepList.d.ts +2 -1
  18. package/components/Step/StepList.js +4 -2
  19. package/components/StepActions/StepActions.js +12 -3
  20. package/config/version.d.ts +1 -1
  21. package/config/version.js +1 -1
  22. package/hooks/useRoutes.js +2 -4
  23. package/i18n/id.json +61 -60
  24. package/i18n/it.json +61 -60
  25. package/i18n/pt.json +62 -61
  26. package/i18n/uk.json +50 -49
  27. package/package.json +9 -23
  28. package/pages/TransactionDetailsPage/TransactionDetailsPage.js +1 -1
  29. package/pages/TransactionPage/ExchangeRateBottomSheet.js +2 -1
  30. package/pages/TransactionPage/StatusBottomSheet.style.js +5 -1
  31. package/pages/TransactionPage/TransactionPage.js +5 -1
  32. package/stores/routes/utils.d.ts +1 -0
  33. package/stores/routes/utils.js +3 -0
  34. package/tsconfig.cjs.tsbuildinfo +1 -1
package/i18n/pt.json CHANGED
@@ -1,6 +1,15 @@
1
1
  {
2
+ "language": {
3
+ "name": "Português",
4
+ "title": "Idioma"
5
+ },
6
+ "format": {
7
+ "currency": "{{value, currency(currency: USD)}}",
8
+ "number": "{{value, number(maximumFractionDigits: 9)}}"
9
+ },
2
10
  "button": {
3
11
  "auto": "Automático",
12
+ "bridge": "Ponte",
4
13
  "buy": "Comprar",
5
14
  "buyNow": "Comprar agora",
6
15
  "cancel": "Cancelar",
@@ -12,94 +21,74 @@
12
21
  "delete": "Apagar",
13
22
  "disconnect": "Desconectar",
14
23
  "done": "Concluído",
24
+ "exchange": "Conversão",
15
25
  "getGas": "Obter gás",
16
26
  "hide": "Ocultar",
17
27
  "learnMore": "Saiba mais",
18
- "lifiSwap": "Conversão LI.FI",
28
+ "lifiCheckout": "Finalizar Compra LI.FI",
29
+ "lifiExchange": "Conversão LI.FI",
19
30
  "light": "Claro",
20
31
  "max": "máximo",
21
32
  "ok": "Tudo certo",
22
- "okay": "Ok",
23
- "removeSwap": "Remover conversão",
33
+ "removeTransaction": "Remover transação",
24
34
  "reset": "Redefinir",
25
35
  "resetSettings": "Redefinir as configurações",
26
- "restartSwap": "Reiniciar a conversão",
27
- "reviewGasSwap": "Rever o gás de conversão",
36
+ "reviewBridge": "Revisar ponte",
28
37
  "reviewPurchase": "Revisar compra",
29
38
  "reviewSwap": "Rever conversão",
30
39
  "seeDetails": "Ver detalhes",
31
40
  "showAll": "Mostrar tudo",
32
- "startGasSwap": "Iniciar conversão de gás",
33
- "startSwap": "Iniciar conversão",
41
+ "startBridging": "Iniciar ponte",
42
+ "startSwapping": "Iniciar conversão",
34
43
  "swap": "Conversão",
35
44
  "tryAgain": "Tente novamente",
36
45
  "viewCoverage": "Ver cobertura",
37
46
  "viewOnExplorer": "Ver no explorador"
38
47
  },
39
- "format": {
40
- "currency": "{{value, currency(currency: USD)}}",
41
- "number": "{{value, number(maximumFractionDigits: 9)}}"
42
- },
43
48
  "header": {
44
- "activeSwaps": "Conversões ativas",
49
+ "activeTransactions": "Transações ativas",
45
50
  "bridge": "Ponte",
46
51
  "checkout": "Finalizar",
52
+ "exchange": "Conversão",
47
53
  "from": "Converter a partir de",
48
54
  "gas": "Gás",
49
- "gasSwap": "Conversão de gás",
50
55
  "payWith": "Pagar com",
51
56
  "purchase": "Compra",
52
57
  "purchaseDetails": "Detalhes da compra",
53
- "routes": "Você recebe",
54
58
  "selectChain": "Selecionar uma rede",
55
59
  "selectWallet": "Selecionar sua carteira",
56
60
  "settings": "Configurações",
57
61
  "swap": "Conversão",
58
- "swapDetails": "Detalhes da conversão",
59
- "swapHistory": "Histórico de conversões",
60
62
  "to": "Converter para",
61
- "walletConnected": "Carteira conectada"
62
- },
63
- "language": {
64
- "name": "Português",
65
- "title": "Idioma"
66
- },
67
- "settings": {
68
- "enabledBridges": "Pontes habilitadas",
69
- "enabledExchanges": "Corretoras habilitadas",
70
- "gasPrice": {
71
- "fast": "Rápido",
72
- "normal": "Normal",
73
- "slow": "Lento",
74
- "title": "Preço do gás"
75
- },
76
- "routePriority": "Prioridade de rota / caminho",
77
- "showDestinationWallet": "Mostrar carteira de destino",
78
- "slippage": "Derrapagem"
63
+ "transactionDetails": "Detalhes da transação",
64
+ "transactionHistory": "Histórico de transações",
65
+ "walletConnected": "Carteira conectada",
66
+ "youGet": "Você recebe"
79
67
  },
80
68
  "info": {
81
69
  "message": {
82
70
  "autoRefuel": "Você está com pouco gás na rede {{chainName}}. Ao continuar, você obterá gás suficiente para completar a conversão.",
83
- "emptyActiveSwaps": "Conversões em andamento aparecerão aqui. Uma vez concluídas, encontre-as no histórico de conversão.",
84
- "emptySwapHistory": "Histórico de conversão é armazenado apenas localmente e será excluído se você limpar os dados do seu navegador.",
71
+ "emptyActiveTransactions": "As transações em andamento aparecerão aqui. Uma vez concluídas, encontre-as no histórico de transações.",
85
72
  "emptyTokenList": "Não conseguimos encontrar tokens na rede {{chainName}} ou você não possui nenhum. Por favor, tente procurar novamente ou escolha outra rede.",
73
+ "emptyTransactionHistory": "O histórico de transações é armazenado apenas localmente e será excluído se você limpar os dados do seu navegador.",
86
74
  "routeNotFound": "Tente outra combinação de tokens."
87
75
  },
88
76
  "title": {
89
77
  "autoRefuel": "Obter gás",
90
- "emptyActiveSwaps": "Não conversões ativas",
91
- "emptySwapHistory": "Não conversões recentes",
78
+ "emptyActiveTransactions": "Nenhuma transação ativa",
79
+ "emptyTransactionHistory": "Nenhuma transação recente",
92
80
  "routeNotFound": "Nenhuma rota disponível"
93
81
  }
94
82
  },
95
83
  "success": {
96
84
  "message": {
97
- "swapPartiallySuccessful": "Tentamos completar a conversão, mas a {{tool}} ficou sem liquidez para o token {{tokenSymbol}}.",
98
- "purchaseSuccessful": "Agora você tem {{assetName}} na carteira {{walletAddress}} na cadeia {{chainName}}",
99
- "swapSuccessful": "Agora {{amount, number(maximumFractionDigits: 9)}} {{tokenSymbol}} na carteira {{walletAddress}} na rede {{chainName}}."
85
+ "exchangePartiallySuccessful": "Tentamos completar a transação, mas {{tool}} ficou sem liquidez com o token {{tokenSymbol}}.",
86
+ "exchangeSuccessful": "Agora {{amount, number(maximumFractionDigits: 9)}} {{tokenSymbol}} na carteira {{walletAddress}} na rede {{chainName}}.",
87
+ "purchaseSuccessful": "Agora você tem {{assetName}} na carteira {{walletAddress}} na cadeia {{chainName}}"
100
88
  },
101
89
  "title": {
102
- "gasSwapSuccessful": "Conversão de gás bem sucedida",
90
+ "bridgePartiallySuccessful": "Ponte parcialmente concluída",
91
+ "bridgeSuccessful": "Ponte bem sucedida",
103
92
  "purchaseSuccessful": "Compra efetuada com sucesso",
104
93
  "refundIssued": "Reembolso emitido",
105
94
  "swapPartiallySuccessful": "Conversão parcialmente bem sucedida",
@@ -108,8 +97,8 @@
108
97
  },
109
98
  "warning": {
110
99
  "message": {
111
- "deleteActiveSwaps": "As conversões ativas são armazenadas apenas localmente e não podem ser recuperadas se forem excluídas.",
112
- "deleteSwapHistory": "O histórico de conversões é armazenado apenas localmente e não pode ser recuperado caso seja excluído.",
100
+ "deleteActiveTransactions": "Transações ativas são armazenadas apenas localmente e não podem ser recuperadas se você excluí-las.",
101
+ "deleteTransactionHistory": "O histórico de conversões é armazenado apenas localmente e não pode ser recuperado caso seja excluído.",
113
102
  "highValueLoss": "A quantidade de tokens a serem recebidos é significativamente menor do que os tokens convertidos e os custos da transação.",
114
103
  "insufficientFunds": "Você não possui fundos suficientes para completar a conversão.",
115
104
  "insufficientGas": "Você não tem gás suficiente para completar a conversão. É necessário adicionar pelo menos:",
@@ -117,9 +106,9 @@
117
106
  "resetSettings": "Isto redefinirá sua prioridade de rota, tolerância a derrapagem, preço de gás, pontes e trocas ativadas."
118
107
  },
119
108
  "title": {
120
- "deleteActiveSwaps": "Excluir todas as conversões ativas?",
121
- "deleteSwap": "Excluir esta conversão?",
122
- "deleteSwapHistory": "Excluir o histórico de conversão?",
109
+ "deleteActiveTransactions": "Excluir todas as transações ativas?",
110
+ "deleteTransaction": "Excluir esta transação?",
111
+ "deleteTransactionHistory": "Excluir histórico de transação?",
123
112
  "highValueLoss": "Alta perda de valor",
124
113
  "insufficientGas": "Gás insuficiente",
125
114
  "rateChanged": "Taxa alterada",
@@ -140,7 +129,6 @@
140
129
  "allowanceRequired": "Permissão insuficiente",
141
130
  "balanceIsTooLow": "O saldo é muito baixo",
142
131
  "chainSwitch": "Necessário mudança de rede",
143
- "failed": "Conversão falhou",
144
132
  "gasLimitIsTooLow": "O limite de gás é muito baixo",
145
133
  "insufficientFunds": "Saldo insuficiente",
146
134
  "slippageNotMet": "Condições de tolerância a discrepâncias não foram atendidas",
@@ -155,10 +143,23 @@
155
143
  "walletEnsAddressInvalid": "O endereço da carteira é inválido ou a rede não suporta ENS."
156
144
  }
157
145
  },
146
+ "tooltip": {
147
+ "additionalProviderFee": "Pontes adicionais, DEXes e taxas de serviço.",
148
+ "estimatedNetworkFee": "Taxa de rede estimada.",
149
+ "estimatedTime": "Tempo de execução da conversão estimado em minutos.",
150
+ "notFound": {
151
+ "text": "Não conseguimos encontrar esta página.",
152
+ "title": "404"
153
+ },
154
+ "numberOfSteps": "Um número de passos para a conversão. Cada etapa pode conter 1-2 transações que requerem uma assinatura.",
155
+ "progressToNextUpdate": "Os dados exibidos serão atualizados automaticamente após {{value}} segundos. Clique aqui para atualizar manualmente.",
156
+ "recommended": "Uma rota econômica que equilibra complexidade e facilidade de uso.",
157
+ "settingsModified": "Configurações (modificado)"
158
+ },
158
159
  "main": {
159
160
  "crossStepDetails": "Ponte de {{from}} para {{to}} via {{tool}}",
160
161
  "currentAmount": "Quantidade atual",
161
- "estimatedTime": "{{value}}m",
162
+ "estimatedTime": "{{value}}min",
162
163
  "featuredTokens": "Tokens em destaque",
163
164
  "from": "De",
164
165
  "fromAmount": "Você paga",
@@ -211,6 +212,7 @@
211
212
  "selectToken": "Selecione o Token",
212
213
  "sendToAddress": "Enviar para",
213
214
  "sendToWallet": "Enviar para uma carteira diferente",
215
+ "sending": "Enviando",
214
216
  "sentToAddress": "Enviar para",
215
217
  "stepBridge": "Ponte",
216
218
  "stepBridgeAndBuy": "Transfira e compre",
@@ -220,7 +222,6 @@
220
222
  "stepSwapAndBuy": "Converta e compre",
221
223
  "supportId": "ID de suporte",
222
224
  "swapStepDetails": "Converter na {{chain}} via {{tool}}",
223
- "swapping": "Convertendo",
224
225
  "tags": {
225
226
  "cheapest": "Barato",
226
227
  "fastest": "Rápido",
@@ -243,18 +244,18 @@
243
244
  "insured": "Você contratou seguro para <0>{{amount, number(maximumFractionDigits: 9)}} {{tokenSymbol}}</0> em trânsito:",
244
245
  "slippageError": "Erro na discrepância para tokens recebidos"
245
246
  },
246
- "tooltip": {
247
- "additionalProviderFee": "Pontes adicionais, DEXes e taxas de serviço.",
248
- "estimatedNetworkFee": "Taxa de rede estimada.",
249
- "estimatedTime": "Tempo de execução da conversão estimado em minutos.",
250
- "notFound": {
251
- "text": "Não conseguimos encontrar esta página.",
252
- "title": "404"
247
+ "settings": {
248
+ "enabledBridges": "Pontes habilitadas",
249
+ "enabledExchanges": "Corretoras habilitadas",
250
+ "gasPrice": {
251
+ "fast": "Rápido",
252
+ "normal": "Normal",
253
+ "slow": "Lento",
254
+ "title": "Preço do gás"
253
255
  },
254
- "numberOfSteps": "Um número de passos para a conversão. Cada etapa pode conter 1-2 transações que requerem uma assinatura.",
255
- "progressToNextUpdate": "Os dados exibidos serão atualizados automaticamente após {{value}} segundos. Clique aqui para atualizar manualmente.",
256
- "recommended": "Uma rota econômica que equilibra complexidade e facilidade de uso.",
257
- "settingsModified": "Configurações (modificado)"
256
+ "routePriority": "Prioridade de rota / caminho",
257
+ "showDestinationWallet": "Mostrar carteira de destino",
258
+ "slippage": "Derrapagem"
258
259
  },
259
260
  "wallet": {
260
261
  "extensionNotFound": "Por favor, certifique-se de que apenas a extensão do navegador da {{name}} está ativa antes de escolher esta carteira."
package/i18n/uk.json CHANGED
@@ -1,6 +1,15 @@
1
1
  {
2
+ "language": {
3
+ "name": "Українська",
4
+ "title": "Мова"
5
+ },
6
+ "format": {
7
+ "currency": "{{value, currency(currency: USD)}}",
8
+ "number": "{{value, number(maximumFractionDigits: 9)}}"
9
+ },
2
10
  "button": {
3
11
  "auto": "Авто",
12
+ "bridge": "Бридж",
4
13
  "buy": "Придбати",
5
14
  "buyNow": "Придбати",
6
15
  "cancel": "Скасувати",
@@ -12,81 +21,74 @@
12
21
  "delete": "Видалити",
13
22
  "disconnect": "Від'єднатись",
14
23
  "done": "Готово",
24
+ "exchange": "Обмін",
15
25
  "getGas": "Отримати газ",
16
26
  "hide": "Сховати",
17
27
  "learnMore": "Докладніше",
18
- "lifiSwap": "LI.FI Swap",
28
+ "lifiCheckout": "LI.FI Checkout",
29
+ "lifiExchange": "LI.FI Обмін",
19
30
  "light": "Світла",
20
31
  "max": "макс",
21
32
  "ok": "Ок",
22
- "okay": "Добре",
23
- "removeSwap": "Видалити своп",
33
+ "removeTransaction": "Видалити транзакцію",
24
34
  "reset": "Скинути",
25
35
  "resetSettings": "Скинути налаштування",
26
- "restartSwap": "Перезапустити своп",
27
- "reviewGasSwap": "Переглянути своп газу",
36
+ "reviewBridge": "Переглянути бридж",
28
37
  "reviewPurchase": "Перегляд покупки",
29
38
  "reviewSwap": "Переглянути своп",
30
39
  "seeDetails": "Детальніше",
31
40
  "showAll": "Показати всі",
32
- "startGasSwap": "Почати своп газу",
33
- "startSwap": "Почати своп",
41
+ "startBridging": "Почати бридж",
42
+ "startSwapping": "Почати своп",
34
43
  "swap": "Своп",
35
44
  "tryAgain": "Спробувати ще раз",
36
45
  "viewCoverage": "Переглянути покриття",
37
46
  "viewOnExplorer": "Переглянути в оглядачі"
38
47
  },
39
- "format": {
40
- "currency": "{{value, currency(currency: USD)}}",
41
- "number": "{{value, number(maximumFractionDigits: 9)}}"
42
- },
43
48
  "header": {
44
- "activeSwaps": "Активні свопи",
49
+ "activeTransactions": "Активні транзакції",
45
50
  "bridge": "Бридж",
46
51
  "checkout": "Розрахунок",
52
+ "exchange": "Обмін",
47
53
  "from": "Своп з",
48
54
  "gas": "Газ",
49
- "gasSwap": "Своп газу",
50
55
  "payWith": "Сплатити за допомогою",
51
56
  "purchase": "Купівля",
52
57
  "purchaseDetails": "Деталі покупки",
53
- "routes": "Ви отримаєте",
54
58
  "selectChain": "Виберіть чейн",
55
59
  "selectWallet": "Виберіть свій гаманець",
56
60
  "settings": "Налаштування",
57
61
  "swap": "Своп",
58
- "swapDetails": "Деталі свопу",
59
- "swapHistory": "Історія свопів",
60
62
  "to": "Своп на",
61
- "walletConnected": "Гаманець підʼєднано"
62
- },
63
- "language": {
64
- "name": "Українська",
65
- "title": "Мова"
63
+ "transactionDetails": "Деталі транзакції",
64
+ "transactionHistory": "Історія транзакцій",
65
+ "walletConnected": "Гаманець підʼєднано",
66
+ "youGet": "Ви отримаєте"
66
67
  },
67
68
  "info": {
68
69
  "message": {
69
70
  "autoRefuel": "У вас замало {{chainName}} газу. Продовжуючи, ви отримаєте достатньо газу, щоб завершити обмін.",
70
- "emptyActiveSwaps": "Тут відображатимуться незавершені свопи. Після завершення ви можете знайти їх в історії свопів.",
71
- "emptySwapHistory": "Історія свопів зберігається лише локально та буде видалена, якщо ви очистите дані браузера.",
71
+ "emptyActiveTransactions": "Тут показуються незавершені транзакції. Після завершення ви можете знайти їх в історії транзакцій.",
72
72
  "emptyTokenList": "Нам не вдалося знайти токени на {{chainName}}, або у вас їх немає. Будь ласка, повторіть пошук або виберіть інший чейн.",
73
+ "emptyTransactionHistory": "Історія транзакцій зберігається лише локально та буде видалена, якщо ви очистите дані браузера.",
73
74
  "routeNotFound": "Спробуйте іншу комбінацію токенів."
74
75
  },
75
76
  "title": {
76
77
  "autoRefuel": "Отримати газ",
77
- "emptyActiveSwaps": "Немає активних свопів",
78
- "emptySwapHistory": "Немає останніх свопів",
78
+ "emptyActiveTransactions": "Немає активних транзакцій",
79
+ "emptyTransactionHistory": "Немає останніх транзакцій",
79
80
  "routeNotFound": "Немає доступних маршрутів"
80
81
  }
81
82
  },
82
83
  "success": {
83
84
  "message": {
84
- "swapPartiallySuccessful": "Ми намагалися завершити своп, але {{tool}} не вистачило ліквідності токену {{tokenSymbol}}.",
85
- "purchaseSuccessful": "Тепер ви маєте {{assetName}} в {{walletAddress}} гаманці на ланцюжку {{chainName}}.",
86
- "swapSuccessful": "Зараз є {{amount, number(maximumFractionDigits: 9)}} {{tokenSymbol}} у гаманці {{walletAddress}} на чейні {{chainName}}."
85
+ "exchangePartiallySuccessful": "Ми намагалися завершити транзакцію, але {{tool}} не вистачило ліквідності токену {{tokenSymbol}}.",
86
+ "exchangeSuccessful": "Зараз є {{amount, number(maximumFractionDigits: 9)}} {{tokenSymbol}} у гаманці {{walletAddress}} на чейні {{chainName}}.",
87
+ "purchaseSuccessful": "Тепер ви маєте {{assetName}} в {{walletAddress}} гаманці на ланцюжку {{chainName}}."
87
88
  },
88
89
  "title": {
89
- "gasSwapSuccessful": "Своп газу успішний",
90
+ "bridgePartiallySuccessful": "Бридж частково успішний",
91
+ "bridgeSuccessful": "Бридж успішний",
90
92
  "purchaseSuccessful": "Покупка успішна",
91
93
  "refundIssued": "Здійснено повернення коштів",
92
94
  "swapPartiallySuccessful": "Своп частково успішний",
@@ -95,8 +97,8 @@
95
97
  },
96
98
  "warning": {
97
99
  "message": {
98
- "deleteActiveSwaps": "Активні свопи зберігаються лише локально й не можуть бути відновлені, якщо ви їх видалите.",
99
- "deleteSwapHistory": "Історія свопів зберігається лише локально й не може бути відновлена, якщо ви їх видалите.",
100
+ "deleteActiveTransactions": "Активні транзакції зберігаються лише локально й не можуть бути відновлені, якщо ви їх видалите.",
101
+ "deleteTransactionHistory": "Історія транзакцій зберігається лише локально й не може бути відновлена, якщо ви їх видалите.",
100
102
  "highValueLoss": "Вартість отриманих токенів значно нижча, ніж обмінені токени та вартість транзакції.",
101
103
  "insufficientFunds": "У вас недостатньо коштів для здійснення свопу.",
102
104
  "insufficientGas": "Для завершення свопа у вас недостатньо газу. Вам необхідно додати хоча б:",
@@ -104,9 +106,9 @@
104
106
  "resetSettings": "Це скине пріоритет вашого маршруту, прослизання, ціну газу, увімкнені бриджі та обмінники."
105
107
  },
106
108
  "title": {
107
- "deleteActiveSwaps": "Видалити всі активні свопи?",
108
- "deleteSwap": "Видалити цей своп?",
109
- "deleteSwapHistory": "Видалити історію свопів?",
109
+ "deleteActiveTransactions": "Видалити всі активні транзакції?",
110
+ "deleteTransaction": "Видалити цю транзакцію?",
111
+ "deleteTransactionHistory": "Видалити історію транзакцій?",
110
112
  "highValueLoss": "Висока втрата вартості",
111
113
  "insufficientGas": "Недостатня кількість газу",
112
114
  "rateChanged": "Курс змінився",
@@ -127,7 +129,6 @@
127
129
  "allowanceRequired": "Недостатня дозволена кількість",
128
130
  "balanceIsTooLow": "Баланс занадто низький",
129
131
  "chainSwitch": "Потрібно переключити чейн.",
130
- "failed": "Помилка обміну.",
131
132
  "gasLimitIsTooLow": "Занадто низький ліміт газу",
132
133
  "insufficientFunds": "Недостатньо коштів",
133
134
  "slippageNotMet": "Не виконані умови прослизання",
@@ -142,6 +143,19 @@
142
143
  "walletEnsAddressInvalid": "Адреса гаманця недійсна або мережа не підтримує ENS."
143
144
  }
144
145
  },
146
+ "tooltip": {
147
+ "additionalProviderFee": "Додаткові комісії бриджів, обмінників та послуг.",
148
+ "estimatedNetworkFee": "Орієнтовна мережева плата.",
149
+ "estimatedTime": "Орієнтовний час виконання свопу в хвилинах.",
150
+ "notFound": {
151
+ "text": "Ми не змогли знайти цю сторінку.",
152
+ "title": "404"
153
+ },
154
+ "numberOfSteps": "Кількість кроків свопу. Кожен крок може містити 1-3 транзакції, які потребують підпису.",
155
+ "progressToNextUpdate": "Зображені дані автоматично оновляться через {{value}} секунд. Натисніть тут, щоб оновити вручну.",
156
+ "recommended": "Дешевий маршрут, який балансує складність і легкість використання.",
157
+ "settingsModified": "Налаштування (змінено)"
158
+ },
145
159
  "main": {
146
160
  "crossStepDetails": "Бридж з {{from}} до {{to}} через {{tool}}",
147
161
  "currentAmount": "Поточна сума",
@@ -198,6 +212,7 @@
198
212
  "selectToken": "Виберіть токен",
199
213
  "sendToAddress": "Відправити на {{address}}",
200
214
  "sendToWallet": "Надіслати на інший гаманець",
215
+ "sending": "Відправлення",
201
216
  "sentToAddress": "Відправлено на {{address}}",
202
217
  "stepBridge": "Бридж",
203
218
  "stepBridgeAndBuy": "Бридж та покупка",
@@ -207,7 +222,6 @@
207
222
  "stepSwapAndBuy": "Своп та покупка",
208
223
  "supportId": "Ідентифікатор підтримки",
209
224
  "swapStepDetails": "Своп на {{chain}} через {{tool}}",
210
- "swapping": "Обмін",
211
225
  "tags": {
212
226
  "cheapest": "Дешевий",
213
227
  "fastest": "Швидкий",
@@ -243,19 +257,6 @@
243
257
  "showDestinationWallet": "Показати цільовий гаманець",
244
258
  "slippage": "Прослизання"
245
259
  },
246
- "tooltip": {
247
- "additionalProviderFee": "Додаткові комісії бриджів, обмінників та послуг.",
248
- "estimatedNetworkFee": "Орієнтовна мережева плата.",
249
- "estimatedTime": "Орієнтовний час виконання свопу в хвилинах.",
250
- "notFound": {
251
- "text": "Ми не змогли знайти цю сторінку.",
252
- "title": "404"
253
- },
254
- "numberOfSteps": "Кількість кроків свопу. Кожен крок може містити 1-3 транзакції, які потребують підпису.",
255
- "progressToNextUpdate": "Зображені дані автоматично оновляться через {{value}} секунд. Натисніть тут, щоб оновити вручну.",
256
- "recommended": "Дешевий маршрут, який балансує складність і легкість використання.",
257
- "settingsModified": "Налаштування (змінено)"
258
- },
259
260
  "wallet": {
260
261
  "extensionNotFound": "Перш ніж вибрати цей гаманець, переконайтеся, що в браузері активне лише розширення {{name}}."
261
262
  }
package/package.json CHANGED
@@ -1,20 +1,10 @@
1
1
  {
2
2
  "name": "@lifi/widget",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
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
- "main": "./src/index.ts",
6
- "module": "./src/index.ts",
5
+ "main": "./cjs/index.js",
6
+ "module": "./index.js",
7
7
  "types": "./index.d.ts",
8
- "scripts": {
9
- "watch": "tsc -w -p ./tsconfig.json",
10
- "build": "tsc --build --clean && yarn build:version && tsc --build && tsc --build tsconfig.cjs.json && yarn build:copy-files",
11
- "build:copy-files": "node ../../scripts/copy-files.js && cpy 'src/**/*' '!src/**/*.ts*' build && cpy 'src/**/*' '!src/**/*.ts*' build/cjs",
12
- "build:version": "node ../../scripts/version.js",
13
- "pre-commit": "lint-staged",
14
- "lint": "eslint --ext .tsx --ext .ts ./src",
15
- "lint:fix": "eslint --ext .tsx --ext .ts ./src --fix",
16
- "prettier:fix": "prettier --write ./src/."
17
- },
18
8
  "lint-staged": {
19
9
  "src/**/*.{ts,tsx}": [
20
10
  "yarn run lint:fix",
@@ -53,15 +43,15 @@
53
43
  "@ethersproject/address": "^5.7.0",
54
44
  "@ethersproject/experimental": "^5.7.0",
55
45
  "@ethersproject/providers": "^5.7.2",
56
- "@lifi/sdk": "^2.0.0",
57
- "@lifi/wallet-management": "^2.0.0",
46
+ "@lifi/sdk": "^2.0.1",
47
+ "@lifi/wallet-management": "^2.0.1",
58
48
  "@mui/icons-material": "^5.11.16",
59
49
  "@mui/lab": "^5.0.0-alpha.134",
60
50
  "@mui/material": "^5.13.5",
61
- "@tanstack/react-query": "^4.29.13",
51
+ "@tanstack/react-query": "^4.29.14",
62
52
  "@tanstack/react-virtual": "^3.0.0-beta.54",
63
53
  "big.js": "^6.2.1",
64
- "i18next": "^23.0.1",
54
+ "i18next": "^23.0.2",
65
55
  "i18next-browser-languagedetector": "^7.0.2",
66
56
  "microdiff": "^1.3.2",
67
57
  "mitt": "^3.0.0",
@@ -75,10 +65,6 @@
75
65
  "uuid": "^9.0.0",
76
66
  "zustand": "^4.3.8"
77
67
  },
78
- "devDependencies": {
79
- "cpy-cli": "^4.2.0",
80
- "typescript": "^5.1.3"
81
- },
82
68
  "peerDependencies": {
83
69
  "@types/react": "^18.0.0",
84
70
  "react": "^18.0.0",
@@ -93,5 +79,5 @@
93
79
  "extends": "../../.eslintrc"
94
80
  },
95
81
  "sideEffects": false,
96
- "gitHead": "7f3e7af8a4541f595a3012bdde0501086c0ccd90"
97
- }
82
+ "private": false
83
+ }
@@ -54,7 +54,7 @@ export const TransactionDetailsPage = () => {
54
54
  justifyContent: 'space-between',
55
55
  }, pb: 1, children: [_jsx(Typography, { fontSize: 12, children: new Intl.DateTimeFormat(i18n.language, { dateStyle: 'long' }).format(startedAt) }), _jsx(Typography, { fontSize: 12, children: new Intl.DateTimeFormat(i18n.language, {
56
56
  timeStyle: 'short',
57
- }).format(startedAt) })] }), getStepList(routeExecution?.route), subvariant === 'nft' ? (_jsx(ContractComponent, { mt: 2, children: contractSecondaryComponent || contractComponent })) : null, routeExecution?.route?.insurance?.state === 'INSURED' ? (_jsx(Insurance, { mt: 2, status: routeExecution.status, feeAmountUsd: routeExecution.route.insurance.feeAmountUsd, insuredAmount: formatTokenAmount(routeExecution.route.toAmountMin, routeExecution.route.toToken.decimals), insuredTokenSymbol: routeExecution.route.toToken.symbol, insurableRouteId: routeExecution.route.id, insuranceCoverageId: insuranceCoverageId })) : null, _jsxs(Card, { mt: 2, children: [_jsxs(Box, { sx: {
57
+ }).format(startedAt) })] }), getStepList(routeExecution?.route, subvariant), subvariant === 'nft' ? (_jsx(ContractComponent, { mt: 2, children: contractSecondaryComponent || contractComponent })) : null, routeExecution?.route?.insurance?.state === 'INSURED' ? (_jsx(Insurance, { mt: 2, status: routeExecution.status, feeAmountUsd: routeExecution.route.insurance.feeAmountUsd, insuredAmount: formatTokenAmount(routeExecution.route.toAmountMin, routeExecution.route.toToken.decimals), insuredTokenSymbol: routeExecution.route.toToken.symbol, insurableRouteId: routeExecution.route.id, insuranceCoverageId: insuranceCoverageId })) : null, _jsxs(Card, { mt: 2, children: [_jsxs(Box, { sx: {
58
58
  display: 'flex',
59
59
  flex: 1,
60
60
  }, children: [_jsx(CardTitle, { flex: 1, children: t('main.supportId') }), _jsx(Box, { mr: 1, mt: 1, children: _jsx(IconButton, { size: "medium", onClick: copySupportId, children: _jsx(ContentCopyIcon, { fontSize: "small" }) }) })] }), _jsx(Typography, { variant: "body2", pt: 1, pb: 2, px: 2, sx: { wordBreak: 'break-all' }, children: supportId })] }), _jsx(Box, { mt: 2, children: _jsx(Button, { href: "https://discord.gg/lifi", target: "_blank", rel: "nofollow noreferrer", fullWidth: true, children: t('button.contactSupport') }) }), _jsxs(Dialog, { open: open, onClose: toggleDialog, children: [_jsx(DialogTitle, { children: t('warning.title.deleteTransaction') }), _jsx(DialogContent, { children: _jsx(DialogContentText, { children: t('warning.message.deleteTransactionHistory') }) }), _jsxs(DialogActions, { children: [_jsx(Button, { onClick: toggleDialog, children: t('button.cancel') }), _jsx(Button, { variant: "contained", onClick: handleDeleteRoute, autoFocus: true, children: t('button.delete') })] })] })] }));
@@ -44,12 +44,13 @@ const ExchangeRateBottomSheetContent = ({ data, onCancel, onContinue }) => {
44
44
  const { t } = useTranslation();
45
45
  const ref = useRef();
46
46
  useSetContentHeight(ref);
47
+ const oldAmount = Big(data?.oldToAmount || 1);
47
48
  return (_jsxs(Box, { p: 3, ref: ref, children: [_jsxs(CenterContainer, { children: [_jsx(IconCircle, { status: "warning", mb: 1, children: _jsx(WarningRoundedIcon, { color: "warning" }) }), _jsx(Typography, { py: 1, fontSize: 18, fontWeight: 700, children: t('warning.title.rateChanged') })] }), _jsx(Typography, { py: 1, children: t('warning.message.rateChanged') }), _jsxs(Box, { display: "flex", justifyContent: "space-between", mt: 1, children: [_jsx(Typography, { children: t('main.quotedAmount') }), _jsxs(Typography, { fontWeight: 600, children: [t('format.number', {
48
49
  value: formatTokenAmount(data?.oldToAmount, data?.toToken.decimals, 5),
49
50
  }), ' ', data?.toToken.symbol] })] }), _jsxs(Box, { display: "flex", justifyContent: "space-between", mt: 0.25, children: [_jsx(Typography, { children: t('main.currentAmount') }), _jsxs(Typography, { fontWeight: 600, children: [t('format.number', {
50
51
  value: formatTokenAmount(data?.newToAmount, data?.toToken.decimals, 5),
51
52
  }), ' ', data?.toToken.symbol] })] }), _jsxs(Box, { display: "flex", justifyContent: "space-between", mt: 0.25, children: [_jsx(Typography, { children: t('main.rateChange') }), _jsxs(Typography, { fontWeight: 600, children: [Big(data?.newToAmount || 0)
52
- .div(Big(data?.oldToAmount || 0))
53
+ .div(oldAmount.eq(0) ? Big(1) : oldAmount)
53
54
  .minus(1)
54
55
  .mul(100)
55
56
  .round(2, Big.roundUp)
@@ -10,7 +10,11 @@ const getStatusColor = (status, theme) => {
10
10
  case RouteExecutionStatus.Done | RouteExecutionStatus.Partial:
11
11
  case RouteExecutionStatus.Done | RouteExecutionStatus.Refunded:
12
12
  case 'warning':
13
- return { color: theme.palette.warning.main, alpha: 0.48, darken: 0.32 };
13
+ return {
14
+ color: theme.palette.warning.main,
15
+ alpha: 0.48,
16
+ darken: theme.palette.mode === 'light' ? 0.32 : 0,
17
+ };
14
18
  default:
15
19
  return { color: theme.palette.primary.main, alpha: 0.12, darken: 0 };
16
20
  }
@@ -65,6 +65,10 @@ export const TransactionPage = () => {
65
65
  tokenValueBottomSheetRef.current?.close();
66
66
  executeRoute();
67
67
  setValue(FormKey.FromAmount, '');
68
+ if (subvariant === 'nft') {
69
+ setValue(FormKey.FromToken, '');
70
+ setValue(FormKey.ToToken, '');
71
+ }
68
72
  };
69
73
  const handleStartClick = async () => {
70
74
  if (status === RouteExecutionStatus.Idle) {
@@ -113,7 +117,7 @@ export const TransactionPage = () => {
113
117
  const getInsuranceCoverageId = () => route.steps[0].execution?.process
114
118
  .filter((process) => process.type !== 'TOKEN_ALLOWANCE')
115
119
  .find((process) => process.txHash)?.txHash ?? route.fromAddress;
116
- return (_jsxs(Container, { children: [getStepList(route), subvariant === 'nft' ? (_jsx(ContractComponent, { mt: 2, children: contractSecondaryComponent || contractComponent })) : null, insuranceAvailable ? (_jsx(Insurance, { mt: 2, status: status, insurableRouteId: stateRouteId, feeAmountUsd: route.insurance.feeAmountUsd, insuredAmount: formatTokenAmount(route.toAmountMin, route.toToken.decimals), insuredTokenSymbol: route.toToken.symbol, insuranceCoverageId: getInsuranceCoverageId(), onChange: setRouteId })) : null, status === RouteExecutionStatus.Idle ||
120
+ return (_jsxs(Container, { children: [getStepList(route, subvariant), subvariant === 'nft' ? (_jsx(ContractComponent, { mt: 2, children: contractSecondaryComponent || contractComponent })) : null, insuranceAvailable ? (_jsx(Insurance, { mt: 2, status: status, insurableRouteId: stateRouteId, feeAmountUsd: route.insurance.feeAmountUsd, insuredAmount: formatTokenAmount(route.toAmountMin, route.toToken.decimals), insuredTokenSymbol: route.toToken.symbol, insuranceCoverageId: getInsuranceCoverageId(), onChange: setRouteId })) : null, status === RouteExecutionStatus.Idle ||
117
121
  status === RouteExecutionStatus.Failed ? (_jsxs(_Fragment, { children: [_jsx(GasMessage, { mt: 2, route: route }), _jsxs(Box, { mt: 2, display: "flex", children: [_jsx(StartButton, { text: getButtonText(), onClick: handleStartClick, route: route, insurableRouteId: stateRouteId }), status === RouteExecutionStatus.Failed ? (_jsx(Tooltip, { title: t('button.removeTransaction'), placement: "bottom-end", enterDelay: 400, arrow: true, children: _jsx(Button, { onClick: handleRemoveRoute, sx: {
118
122
  minWidth: 48,
119
123
  marginLeft: 1,
@@ -4,4 +4,5 @@ export declare const isRoutePartiallyDone: (route: Route) => boolean;
4
4
  export declare const isRouteRefunded: (route: Route) => boolean;
5
5
  export declare const isRouteFailed: (route: Route) => boolean;
6
6
  export declare const isRouteActive: (route?: Route) => boolean;
7
+ export declare const doesRouteHaveCustomTool: (route: Route) => boolean;
7
8
  export declare const getUpdatedProcess: (currentRoute: Route, updatedRoute: Route) => Process | undefined;
@@ -20,6 +20,9 @@ export const isRouteActive = (route) => {
20
20
  const alreadyStarted = route.steps.some((step) => step.execution);
21
21
  return !isDone && !isFailed && alreadyStarted;
22
22
  };
23
+ export const doesRouteHaveCustomTool = (route) => {
24
+ return route.steps.some((step) => step.tool === 'custom' || step.toolDetails.key === 'custom');
25
+ };
23
26
  export const getUpdatedProcess = (currentRoute, updatedRoute) => {
24
27
  const processDiff = microdiff(currentRoute, updatedRoute).find((diff) => diff.path.includes('process'));
25
28
  if (!processDiff) {