@lifi/widget 3.4.3 → 3.5.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.
Files changed (127) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +1 -1
  3. package/_esm/components/AppContainer.js +11 -3
  4. package/_esm/components/AppContainer.js.map +1 -1
  5. package/_esm/components/Card/CardIconButton.d.ts +1 -1
  6. package/_esm/components/Header/WalletMenu.js +5 -1
  7. package/_esm/components/Header/WalletMenu.js.map +1 -1
  8. package/_esm/components/Step/Step.js +16 -8
  9. package/_esm/components/Step/Step.js.map +1 -1
  10. package/_esm/components/Step/StepProcess.js +3 -1
  11. package/_esm/components/Step/StepProcess.js.map +1 -1
  12. package/_esm/components/Tabs/Tabs.style.d.ts +1 -1
  13. package/_esm/components/Token/Token.js +8 -12
  14. package/_esm/components/Token/Token.js.map +1 -1
  15. package/_esm/components/TokenList/TokenList.js +4 -1
  16. package/_esm/components/TokenList/TokenList.js.map +1 -1
  17. package/_esm/components/TokenList/TokenList.style.d.ts +2 -2
  18. package/_esm/components/TokenList/TokenListItem.js +3 -1
  19. package/_esm/components/TokenList/TokenListItem.js.map +1 -1
  20. package/_esm/components/TransactionDetails.js +5 -11
  21. package/_esm/components/TransactionDetails.js.map +1 -1
  22. package/_esm/config/constants.d.ts +2 -1
  23. package/_esm/config/constants.js +2 -1
  24. package/_esm/config/constants.js.map +1 -1
  25. package/_esm/config/version.d.ts +1 -1
  26. package/_esm/config/version.js +1 -1
  27. package/_esm/hooks/useExplorer.d.ts +5 -0
  28. package/_esm/hooks/useExplorer.js +40 -0
  29. package/_esm/hooks/useExplorer.js.map +1 -0
  30. package/_esm/hooks/useProcessMessage.js +3 -7
  31. package/_esm/hooks/useProcessMessage.js.map +1 -1
  32. package/_esm/hooks/useRoutes.d.ts +1 -1
  33. package/_esm/hooks/useRoutes.js +4 -0
  34. package/_esm/hooks/useRoutes.js.map +1 -1
  35. package/_esm/i18n/bn.json +42 -33
  36. package/_esm/i18n/de.json +43 -34
  37. package/_esm/i18n/en.json +16 -11
  38. package/_esm/i18n/es.json +113 -104
  39. package/_esm/i18n/fr.json +45 -36
  40. package/_esm/i18n/hi.json +38 -29
  41. package/_esm/i18n/id.json +42 -33
  42. package/_esm/i18n/it.json +43 -34
  43. package/_esm/i18n/ja.json +45 -36
  44. package/_esm/i18n/ko.json +43 -34
  45. package/_esm/i18n/pt.json +45 -36
  46. package/_esm/i18n/th.json +45 -36
  47. package/_esm/i18n/tr.json +44 -35
  48. package/_esm/i18n/uk.json +45 -36
  49. package/_esm/i18n/vi.json +45 -36
  50. package/_esm/i18n/zh.json +45 -36
  51. package/_esm/pages/MainPage/ReviewButton.js +8 -6
  52. package/_esm/pages/MainPage/ReviewButton.js.map +1 -1
  53. package/_esm/pages/SelectTokenPage/useTokenListHeight.js +2 -0
  54. package/_esm/pages/SelectTokenPage/useTokenListHeight.js.map +1 -1
  55. package/_esm/pages/SendToWallet/BookmarksPage.js +3 -4
  56. package/_esm/pages/SendToWallet/BookmarksPage.js.map +1 -1
  57. package/_esm/pages/SendToWallet/ConnectedWalletsPage.js +5 -4
  58. package/_esm/pages/SendToWallet/ConnectedWalletsPage.js.map +1 -1
  59. package/_esm/pages/SendToWallet/RecentWalletsPage.js +3 -4
  60. package/_esm/pages/SendToWallet/RecentWalletsPage.js.map +1 -1
  61. package/_esm/pages/SendToWallet/SendToConfiguredWalletPage.js +3 -4
  62. package/_esm/pages/SendToWallet/SendToConfiguredWalletPage.js.map +1 -1
  63. package/_esm/pages/SendToWallet/SendToWalletPage.style.js +3 -1
  64. package/_esm/pages/SendToWallet/SendToWalletPage.style.js.map +1 -1
  65. package/_esm/pages/TransactionDetailsPage/TransactionDetailsPage.js +4 -13
  66. package/_esm/pages/TransactionDetailsPage/TransactionDetailsPage.js.map +1 -1
  67. package/_esm/pages/TransactionDetailsPage/TransferIdCard.d.ts +5 -0
  68. package/_esm/pages/TransactionDetailsPage/TransferIdCard.js +32 -0
  69. package/_esm/pages/TransactionDetailsPage/TransferIdCard.js.map +1 -0
  70. package/_esm/pages/TransactionPage/StatusBottomSheet.js +2 -2
  71. package/_esm/pages/TransactionPage/StatusBottomSheet.js.map +1 -1
  72. package/_esm/pages/TransactionPage/TransactionPage.js +8 -6
  73. package/_esm/pages/TransactionPage/TransactionPage.js.map +1 -1
  74. package/_esm/providers/I18nProvider/I18nProvider.js +2 -0
  75. package/_esm/providers/I18nProvider/I18nProvider.js.map +1 -1
  76. package/_esm/providers/I18nProvider/percentFormatter.d.ts +7 -0
  77. package/_esm/providers/I18nProvider/percentFormatter.js +19 -0
  78. package/_esm/providers/I18nProvider/percentFormatter.js.map +1 -0
  79. package/_esm/types/widget.d.ts +1 -0
  80. package/_esm/utils/elements.d.ts +2 -1
  81. package/_esm/utils/elements.js +1 -0
  82. package/_esm/utils/elements.js.map +1 -1
  83. package/components/AppContainer.tsx +31 -18
  84. package/components/Header/WalletMenu.tsx +7 -1
  85. package/components/Step/Step.tsx +16 -11
  86. package/components/Step/StepProcess.tsx +5 -2
  87. package/components/Token/Token.tsx +15 -18
  88. package/components/TokenList/TokenList.tsx +8 -1
  89. package/components/TokenList/TokenListItem.tsx +4 -1
  90. package/components/TransactionDetails.tsx +8 -17
  91. package/config/constants.ts +3 -1
  92. package/config/version.ts +1 -1
  93. package/hooks/useExplorer.ts +51 -0
  94. package/hooks/useProcessMessage.ts +3 -7
  95. package/hooks/useRoutes.ts +5 -0
  96. package/i18n/bn.json +42 -33
  97. package/i18n/de.json +43 -34
  98. package/i18n/en.json +16 -11
  99. package/i18n/es.json +113 -104
  100. package/i18n/fr.json +45 -36
  101. package/i18n/hi.json +38 -29
  102. package/i18n/id.json +42 -33
  103. package/i18n/it.json +43 -34
  104. package/i18n/ja.json +45 -36
  105. package/i18n/ko.json +43 -34
  106. package/i18n/pt.json +45 -36
  107. package/i18n/th.json +45 -36
  108. package/i18n/tr.json +44 -35
  109. package/i18n/uk.json +45 -36
  110. package/i18n/vi.json +45 -36
  111. package/i18n/zh.json +45 -36
  112. package/package.json +12 -12
  113. package/pages/MainPage/ReviewButton.tsx +8 -6
  114. package/pages/SelectTokenPage/useTokenListHeight.ts +3 -0
  115. package/pages/SendToWallet/BookmarksPage.tsx +6 -4
  116. package/pages/SendToWallet/ConnectedWalletsPage.tsx +8 -7
  117. package/pages/SendToWallet/RecentWalletsPage.tsx +6 -6
  118. package/pages/SendToWallet/SendToConfiguredWalletPage.tsx +6 -6
  119. package/pages/SendToWallet/SendToWalletPage.style.tsx +3 -0
  120. package/pages/TransactionDetailsPage/TransactionDetailsPage.tsx +5 -34
  121. package/pages/TransactionDetailsPage/TransferIdCard.tsx +67 -0
  122. package/pages/TransactionPage/StatusBottomSheet.tsx +9 -3
  123. package/pages/TransactionPage/TransactionPage.tsx +9 -7
  124. package/providers/I18nProvider/I18nProvider.tsx +2 -0
  125. package/providers/I18nProvider/percentFormatter.ts +18 -0
  126. package/types/widget.ts +1 -1
  127. package/utils/elements.ts +1 -0
@@ -5,9 +5,11 @@ import { useChain } from '../../hooks/useChain.js';
5
5
  import { useDebouncedWatch } from '../../hooks/useDebouncedWatch.js';
6
6
  import { useTokenBalances } from '../../hooks/useTokenBalances.js';
7
7
  import { useTokenSearch } from '../../hooks/useTokenSearch.js';
8
+ import { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js';
8
9
  import { FormKeyHelper } from '../../stores/form/types.js';
9
10
  import { useFieldValues } from '../../stores/form/useFieldValues.js';
10
11
  import type { TokenAmount } from '../../types/token.js';
12
+ import { createElementId, ElementId } from '../../utils/elements.js';
11
13
  import { TokenNotFound } from './TokenNotFound.js';
12
14
  import { VirtualizedTokenList } from './VirtualizedTokenList.js';
13
15
  import type { TokenListProps } from './types.js';
@@ -25,6 +27,7 @@ export const TokenList: FC<TokenListProps> = ({
25
27
  320,
26
28
  'tokenSearchFilter',
27
29
  );
30
+ const { elementId } = useWidgetConfig();
28
31
 
29
32
  const { chain, isLoading: isChainLoading } = useChain(selectedChainId);
30
33
  const { account } = useAccount({ chainType: chain?.chainType });
@@ -81,7 +84,11 @@ export const TokenList: FC<TokenListProps> = ({
81
84
  !tokenSearchFilter;
82
85
 
83
86
  return (
84
- <Box ref={parentRef} style={{ height, overflow: 'auto' }}>
87
+ <Box
88
+ ref={parentRef}
89
+ style={{ height, overflow: 'auto' }}
90
+ id={createElementId(ElementId.TokenList, elementId)}
91
+ >
85
92
  {!tokens.length && !isLoading ? (
86
93
  <TokenNotFound formType={formType} />
87
94
  ) : null}
@@ -13,6 +13,7 @@ import type { MouseEventHandler } from 'react';
13
13
  import { useRef, useState } from 'react';
14
14
  import { useTranslation } from 'react-i18next';
15
15
  import { formatUnits } from 'viem';
16
+ import { useExplorer } from '../../hooks/useExplorer.js';
16
17
  import { formatTokenAmount, formatTokenPrice } from '../../utils/format.js';
17
18
  import { shortenAddress } from '../../utils/wallet.js';
18
19
  import { ListItemButton } from '../ListItem/ListItemButton.js';
@@ -62,6 +63,8 @@ export const TokenListItemButton: React.FC<TokenListItemButtonProps> = ({
62
63
  isBalanceLoading,
63
64
  }) => {
64
65
  const { t } = useTranslation();
66
+ const { getAddressLink } = useExplorer();
67
+
65
68
  const tokenPrice = token.amount
66
69
  ? formatTokenPrice(
67
70
  formatUnits(token.amount, token.decimals),
@@ -130,7 +133,7 @@ export const TokenListItemButton: React.FC<TokenListItemButtonProps> = ({
130
133
  <IconButton
131
134
  size="small"
132
135
  LinkComponent={Link}
133
- href={`${chain?.metamask.blockExplorerUrls[0]}address/${token.address}`}
136
+ href={getAddressLink(token.address, chain)}
134
137
  target="_blank"
135
138
  rel="nofollow noreferrer"
136
139
  onClick={(e) => e.stopPropagation()}
@@ -12,11 +12,7 @@ import { formatUnits } from 'viem';
12
12
  import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js';
13
13
  import { isRouteDone } from '../stores/routes/utils.js';
14
14
  import { getAccumulatedFeeCostsBreakdown } from '../utils/fees.js';
15
- import {
16
- convertToSubscriptFormat,
17
- formatTokenAmount,
18
- formatTokenPrice,
19
- } from '../utils/format.js';
15
+ import { formatTokenAmount, formatTokenPrice } from '../utils/format.js';
20
16
  import { Card } from './Card/Card.js';
21
17
  import { CardIconButton } from './Card/CardIconButton.js';
22
18
  import { FeeBreakdownTooltip } from './FeeBreakdownTooltip.js';
@@ -56,16 +52,7 @@ export const TransactionDetails: React.FC<TransactionDetailsProps> = ({
56
52
  const toTokenPrice =
57
53
  formatTokenPrice(toTokenAmount, route.toToken.priceUSD) || 0.01;
58
54
 
59
- const impact = (toTokenPrice / fromTokenPrice - 1) * 100;
60
-
61
- const priceImpact = convertToSubscriptFormat(impact, {
62
- notation: 'standard',
63
- roundingPriority: 'morePrecision',
64
- maximumSignificantDigits: 2,
65
- maximumFractionDigits: 2,
66
- useGrouping: false,
67
- roundingMode: 'trunc',
68
- });
55
+ const priceImpact = toTokenPrice / fromTokenPrice - 1;
69
56
 
70
57
  const feeCollectionStep = route.steps[0].includedSteps.find(
71
58
  (includedStep) => includedStep.tool === 'feeCollection',
@@ -181,7 +168,9 @@ export const TransactionDetails: React.FC<TransactionDetailsProps> = ({
181
168
  <Box display="flex" justifyContent="space-between" mb={0.5}>
182
169
  <Typography variant="body2">{t('main.priceImpact')}</Typography>
183
170
  <Tooltip title={t('tooltip.priceImpact')} sx={{ cursor: 'help' }}>
184
- <Typography variant="body2">{priceImpact}%</Typography>
171
+ <Typography variant="body2">
172
+ {t('format.percent', { value: priceImpact })}
173
+ </Typography>
185
174
  </Tooltip>
186
175
  </Box>
187
176
  {!isRouteDone(route) ? (
@@ -190,7 +179,9 @@ export const TransactionDetails: React.FC<TransactionDetailsProps> = ({
190
179
  <Typography variant="body2">{t('main.maxSlippage')}</Typography>
191
180
  <Tooltip title={t('tooltip.slippage')} sx={{ cursor: 'help' }}>
192
181
  <Typography variant="body2">
193
- {route.steps[0].action.slippage * 100}%
182
+ {t('format.percent', {
183
+ value: route.steps[0].action.slippage,
184
+ })}
194
185
  </Typography>
195
186
  </Tooltip>
196
187
  </Box>
@@ -1 +1,3 @@
1
- export const defaultMaxHeight = 682;
1
+ export const defaultMaxHeight = 686;
2
+
3
+ export const lifiExplorerUrl = 'https://scan.li.fi';
package/config/version.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  export const name = '@lifi/widget';
2
- export const version = '3.4.3';
2
+ export const version = '3.5.0';
@@ -0,0 +1,51 @@
1
+ import type { Chain } from '@lifi/sdk';
2
+ import { lifiExplorerUrl } from '../config/constants.js';
3
+ import { useAvailableChains } from '../hooks/useAvailableChains.js';
4
+ import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js';
5
+
6
+ const sanitiseBaseUrl = (baseUrl: string) => baseUrl.trim().replace(/\/+$/, '');
7
+
8
+ export const useExplorer = () => {
9
+ const { explorerUrls } = useWidgetConfig();
10
+ const { getChainById } = useAvailableChains();
11
+
12
+ const getBaseUrl = (chain: Chain) => {
13
+ const baseUrl = explorerUrls?.[chain.id]
14
+ ? explorerUrls[chain.id][0]
15
+ : chain.metamask.blockExplorerUrls[0];
16
+
17
+ return sanitiseBaseUrl(baseUrl);
18
+ };
19
+
20
+ const resolveChain = (chain: Chain | number) =>
21
+ Number.isFinite(chain) ? getChainById(chain as number) : (chain as Chain);
22
+
23
+ const getTransactionLink = (txHash: string, chain?: Chain | number) => {
24
+ if (!chain) {
25
+ const baseUrl = explorerUrls?.internal?.[0]
26
+ ? sanitiseBaseUrl(explorerUrls?.internal[0])
27
+ : lifiExplorerUrl;
28
+ return `${baseUrl}/tx/${txHash}`;
29
+ }
30
+
31
+ const resolvedChain = resolveChain(chain);
32
+ return `${resolvedChain ? getBaseUrl(resolvedChain) : lifiExplorerUrl}/tx/${txHash}`;
33
+ };
34
+
35
+ const getAddressLink = (address: string, chain?: Chain | number) => {
36
+ if (!chain) {
37
+ const baseUrl = explorerUrls?.internal?.[0]
38
+ ? sanitiseBaseUrl(explorerUrls?.internal[0])
39
+ : lifiExplorerUrl;
40
+ return `${baseUrl}/address/${address}`;
41
+ }
42
+
43
+ const resolvedChain = resolveChain(chain);
44
+ return `${resolvedChain ? getBaseUrl(resolvedChain) : lifiExplorerUrl}/address/${address}`;
45
+ };
46
+
47
+ return {
48
+ getTransactionLink,
49
+ getAddressLink,
50
+ };
51
+ };
@@ -61,9 +61,7 @@ const processStatusMessages: Record<
61
61
  PENDING: (t) => t(`main.process.swap.pending`),
62
62
  DONE: (t, subvariant, subvariantOptions) =>
63
63
  subvariant === 'custom'
64
- ? subvariantOptions?.custom
65
- ? t(`main.process.${subvariantOptions?.custom}.done`)
66
- : t(`main.process.checkout.done`)
64
+ ? t(`main.process.${subvariantOptions?.custom ?? 'checkout'}.done`)
67
65
  : t(`main.process.swap.done`),
68
66
  },
69
67
  CROSS_CHAIN: {
@@ -76,9 +74,7 @@ const processStatusMessages: Record<
76
74
  PENDING: (t) => t(`main.process.receivingChain.pending`),
77
75
  DONE: (t, subvariant, subvariantOptions) =>
78
76
  subvariant === 'custom'
79
- ? subvariantOptions?.custom
80
- ? t(`main.process.${subvariantOptions?.custom}.done`)
81
- : t(`main.process.checkout.done`)
77
+ ? t(`main.process.${subvariantOptions?.custom ?? 'checkout'}.done`)
82
78
  : t(`main.process.receivingChain.done`),
83
79
  },
84
80
  TRANSACTION: {},
@@ -215,7 +211,7 @@ export function getProcessMessage(
215
211
  case LiFiErrorCode.ProviderUnavailable:
216
212
  default:
217
213
  title = t(`error.title.unknown`);
218
- if (process.txLink) {
214
+ if (process.txHash) {
219
215
  message = t(`error.message.transactionFailed`);
220
216
  } else {
221
217
  message = process.error.message || t(`error.message.unknown`);
@@ -282,6 +282,11 @@ export const useRoutes = ({ observableRoute }: RoutesProps = {}) => {
282
282
  return { routes: [route] } as RoutesResponse;
283
283
  }
284
284
 
285
+ // Prevent sending a request for the same chain token combinations.
286
+ if (fromChainId === toChainId && fromTokenAddress === toTokenAddress) {
287
+ return;
288
+ }
289
+
285
290
  const data = await getRoutes(
286
291
  {
287
292
  fromAddress,
package/i18n/bn.json CHANGED
@@ -4,18 +4,20 @@
4
4
  "title": "ভাষা"
5
5
  },
6
6
  "format": {
7
- "currency": "{{value, currency(currency: USD)}}",
8
- "number": "{{value, number(maximumFractionDigits: 9)}}"
7
+ "currency": "",
8
+ "number": "{{value, number(maximumFractionDigits: 9)}}",
9
+ "percent": ""
9
10
  },
10
11
  "button": {
11
12
  "auto": "স্বয়ংক্রিয়",
12
13
  "bookmark": "",
13
14
  "bookmarks": "",
14
15
  "bridge": "",
16
+ "bridgeReview": "",
15
17
  "buy": "",
16
- "buyNow": "",
17
18
  "cancel": "বাতিল করুন",
18
19
  "changeWallet": "",
20
+ "checkoutReview": "",
19
21
  "close": "",
20
22
  "confirm": "",
21
23
  "connectWallet": "ওয়ালেট সংযুক্ত করুন",
@@ -24,6 +26,8 @@
24
26
  "copyAddress": "ঠিকানা কপি করুন",
25
27
  "dark": "অন্ধকার",
26
28
  "delete": "মুছে ফেলুন",
29
+ "deposit": "",
30
+ "depositReview": "",
27
31
  "disconnect": "সংযোগ বিচ্ছিন্ন করুন",
28
32
  "done": "সম্পন্ন হয়েছে",
29
33
  "exchange": "",
@@ -36,14 +40,12 @@
36
40
  "removeTransaction": "",
37
41
  "reset": "পুনরায় সেট করুন",
38
42
  "resetSettings": "সেটিংস রিসেট করুন",
39
- "reviewBridge": "",
40
- "reviewPurchase": "",
41
- "reviewSwap": "সোওয়াপ পর্যালোচনা করুন",
42
43
  "seeDetails": "বিস্তারিত দেখুন",
43
44
  "showAll": "সবগুলো দেখুন",
44
45
  "startBridging": "",
45
46
  "startSwapping": "",
46
47
  "swap": "সোওয়াপ",
48
+ "swapReview": "",
47
49
  "tryAgain": "আবার চেষ্টা করুন",
48
50
  "viewCoverage": "কভারেজ দেখুন",
49
51
  "viewOnExplorer": "এক্সপ্লোরারে দেখুন"
@@ -53,15 +55,18 @@
53
55
  "bookmarkedWallets": "",
54
56
  "bridge": "",
55
57
  "checkout": "চেকআউট",
58
+ "checkoutDetails": "",
59
+ "deposit": "",
60
+ "depositDetails": "",
56
61
  "exchange": "",
57
62
  "from": "থেকে সোওয়াপ করুন",
58
63
  "gas": "গ্যাস",
59
64
  "payWith": "",
60
- "purchase": "",
61
- "purchaseDetails": "",
65
+ "receive": "",
62
66
  "recentWallets": "",
63
67
  "selectChain": "চেইন নির্বাচন করুন",
64
68
  "selectWallet": "আপনার ওয়ালেট নির্বাচন করুন",
69
+ "send": "",
65
70
  "sendToWallet": "",
66
71
  "settings": "সেটিংস",
67
72
  "swap": "সোওয়াপ",
@@ -69,7 +74,8 @@
69
74
  "transactionDetails": "",
70
75
  "transactionHistory": "",
71
76
  "walletConnected": "ওয়ালেট সংযুক্ত",
72
- "youGet": ""
77
+ "youGet": "",
78
+ "youPay": ""
73
79
  },
74
80
  "info": {
75
81
  "message": {
@@ -82,7 +88,7 @@
82
88
  "routeNotFound": ""
83
89
  },
84
90
  "title": {
85
- "autoRefuel": "গ্যাস পান",
91
+ "autoRefuel": "",
86
92
  "emptyActiveTransactions": "",
87
93
  "emptyTransactionHistory": "",
88
94
  "routeNotFound": "কোন রুট উপলব্ধ"
@@ -92,12 +98,13 @@
92
98
  "message": {
93
99
  "exchangePartiallySuccessful": "",
94
100
  "exchangeSuccessful": "",
95
- "purchaseSuccessful": ""
101
+ "checkoutSuccessful": ""
96
102
  },
97
103
  "title": {
98
104
  "bridgePartiallySuccessful": "",
99
105
  "bridgeSuccessful": "",
100
- "purchaseSuccessful": "",
106
+ "depositSuccessful": "",
107
+ "checkoutSuccessful": "",
101
108
  "refundIssued": "রিফান্ড জারি করা হয়েছে",
102
109
  "swapPartiallySuccessful": "সোওয়াপ আংশিকভাবে সফল",
103
110
  "swapSuccessful": "সোওয়াপ সফল"
@@ -132,8 +139,10 @@
132
139
  "signatureRejected": "",
133
140
  "slippageThreshold": "স্লিপেজ সংজ্ঞায়িত থ্রেশহোল্ডের চেয়ে বড়। একটি নতুন উদ্ধৃতি পেতে একটি নতুন রুট অনুরোধ করুন।",
134
141
  "transactionCanceled": "",
142
+ "transactionExpired": "",
135
143
  "transactionFailed": "আরও তথ্যের জন্য ব্লক এক্সপ্লোরার চেক করুন।",
136
144
  "transactionNotSent": "",
145
+ "transactionSimulationFailed": "",
137
146
  "unknown": "অনুগ্রহ করে আবার চেষ্টা করুন বা সাপোর্ট এর সাথে যোগাযোগ করুন।",
138
147
  "walletChangedDuringExecution": ""
139
148
  },
@@ -149,7 +158,9 @@
149
158
  "signatureRejected": "",
150
159
  "slippageNotMet": "স্লিপেজ শর্ত পূরণ করা হয়নি",
151
160
  "transactionCanceled": "লেনদেন বাতিল করা হয়েছে",
161
+ "transactionExpired": "",
152
162
  "transactionFailed": "লেনদেন ব্যর্থ হয়েছে",
163
+ "transactionSimulationFailed": "",
153
164
  "transactionUnderpriced": "লেনদেনের দাম কম",
154
165
  "transactionUnprepared": "লেনদেন প্রস্তুত করতে অক্ষম",
155
166
  "unknown": "কিছু ভুল হয়েছে",
@@ -161,16 +172,20 @@
161
172
  }
162
173
  },
163
174
  "tooltip": {
164
- "estimatedTime": "মিনিটের মধ্যে আনুমানিক সোওয়াপ কার্যকর করার সময়।",
175
+ "deselectAll": "",
176
+ "estimatedTime": "",
177
+ "feeCollection": "",
178
+ "minReceived": "",
165
179
  "notFound": {
166
180
  "text": "আমরা এই পৃষ্ঠাটি খুঁজে পাইনি।",
167
181
  "title": "৪০৪"
168
182
  },
169
- "numberOfSteps": "সোওয়াপ পদক্ষেপ একটি সংখ্যা. প্রতিটি ধাপে ১-২ টি লেনদেন থাকতে পারে যার জন্য একটি স্বাক্ষর প্রয়োজন।",
183
+ "numberOfSteps": "",
184
+ "priceImpact": "",
170
185
  "progressToNextUpdate": "প্রদর্শিত ডেটা {{value}} সেকেন্ড পরে স্বয়ংক্রিয়ভাবে রিফ্রেশ হবে। ম্যানুয়ালি আপডেট করতে এখানে ক্লিক করুন।",
171
- "settingsModified": "সেটিংস (পরিবর্তিত)",
172
186
  "selectAll": "",
173
- "deselectAll": ""
187
+ "settingsModified": "সেটিংস (পরিবর্তিত)",
188
+ "slippage": ""
174
189
  },
175
190
  "main": {
176
191
  "allTokens": "",
@@ -180,21 +195,22 @@
180
195
  "depositStepDetails": "",
181
196
  "featuredTokens": "বৈশিষ্ট্যযুক্ত টোকেন",
182
197
  "fees": {
198
+ "defaultIntegrator": "",
183
199
  "estimated": "",
184
- "networkEstimated": "",
185
- "networkPaid": "",
200
+ "integrator": "",
201
+ "network": "",
186
202
  "paid": "",
187
- "providerEstimated": "",
188
- "providerPaid": ""
203
+ "provider": ""
189
204
  },
190
205
  "from": "থেকে",
191
- "fromAmount": "আপনি টাকা পাঠান",
192
- "gasCost": "গ্যাস খরচ",
193
206
  "inProgress": "প্রক্রিয়াধীন",
207
+ "maxSlippage": "",
208
+ "minReceived": "",
194
209
  "myTokens": "",
195
210
  "onChain": "{{chainName}} -এ",
196
211
  "ownedBy": "মালিক",
197
212
  "popularTokens": "",
213
+ "priceImpact": "",
198
214
  "process": {
199
215
  "bridge": {
200
216
  "actionRequired": "",
@@ -243,18 +259,17 @@
243
259
  "sentToAddress": "{{address}} এ পাঠানো হয়েছে",
244
260
  "stepBridge": "ব্রিজ",
245
261
  "stepBridgeAndBuy": "",
262
+ "stepBridgeAndDeposit": "",
246
263
  "stepDetails": "লি.ফাই এর মাধ্যমে {{tool}}",
247
264
  "stepSwap": "সোওয়াপ",
248
265
  "stepSwapAndBridge": "সোওয়াপ এবং ব্রিজ",
249
266
  "stepSwapAndBuy": "",
267
+ "stepSwapAndDeposit": "",
250
268
  "supportId": "সাপোর্ট আইডি",
251
269
  "swapStepDetails": "{{tool}} এর মাধ্যমে {{chain}} এ সোওয়াপ করুন",
252
270
  "tags": {
253
271
  "cheapest": "",
254
- "fastest": "",
255
- "insurable": "বীমাযোগ্য",
256
- "insurance": "বীমা",
257
- "insured": "বীমাকৃত"
272
+ "fastest": ""
258
273
  },
259
274
  "to": "প্রতি",
260
275
  "tokenOnChain": "{{chainName}} -এ {{tokenSymbol}}",
@@ -262,12 +277,6 @@
262
277
  "tokenSearch": "আপনার টোকেন অনুসন্ধান করুন",
263
278
  "valueLoss": "মান ক্ষতি"
264
279
  },
265
- "insurance": {
266
- "bridgeExploits": "ব্রিজের ত্রুটি, হ্যাক বা শোষণ",
267
- "insure": "ট্রানজিটে টোকেনের ১০০% বীমা করুন।",
268
- "insured": "আপনি ট্রানজিটের ১০০% টোকেন বীমা করেছেন:",
269
- "slippageError": "প্রাপ্ত টোকেনগুলির জন্য স্লিপেজে ত্রুটি।"
270
- },
271
280
  "settings": {
272
281
  "theme": "",
273
282
  "enabledBridges": "",
@@ -279,7 +288,7 @@
279
288
  "title": "গ্যাসের দাম"
280
289
  },
281
290
  "routePriority": "রুট অগ্রাধিকার",
282
- "slippage": "স্লিপেজ",
291
+ "slippage": "",
283
292
  "custom": "",
284
293
  "resetSettings": ""
285
294
  },
package/i18n/de.json CHANGED
@@ -4,18 +4,20 @@
4
4
  "title": "Sprache"
5
5
  },
6
6
  "format": {
7
- "currency": "{{value, currency(currency: USD)}}",
8
- "number": "{{value, number(maximumFractionDigits: 4)}}"
7
+ "currency": "",
8
+ "number": "{{value, number(maximumFractionDigits: 4)}}",
9
+ "percent": ""
9
10
  },
10
11
  "button": {
11
12
  "auto": "Auto",
12
13
  "bookmark": "",
13
14
  "bookmarks": "",
14
15
  "bridge": "Bridge",
16
+ "bridgeReview": "",
15
17
  "buy": "Buy",
16
- "buyNow": "Jetzt kaufen",
17
18
  "cancel": "Abbrechen",
18
19
  "changeWallet": "",
20
+ "checkoutReview": "",
19
21
  "close": "",
20
22
  "confirm": "",
21
23
  "connectWallet": "Wallet verbinden",
@@ -24,6 +26,8 @@
24
26
  "copyAddress": "Adresse kopieren",
25
27
  "dark": "Dunkel",
26
28
  "delete": "Löschen",
29
+ "deposit": "",
30
+ "depositReview": "",
27
31
  "disconnect": "Trennen",
28
32
  "done": "Fertig",
29
33
  "exchange": "Exchange",
@@ -36,14 +40,12 @@
36
40
  "removeTransaction": "Transaktion entfernen",
37
41
  "reset": "Zurücksetzen",
38
42
  "resetSettings": "Einstellungen zurücksetzen",
39
- "reviewBridge": "Bridge überprüfen",
40
- "reviewPurchase": "Kauf ansehen",
41
- "reviewSwap": "Swap überprüfen",
42
43
  "seeDetails": "Siehe Einzelheiten",
43
44
  "showAll": "Alles anzeigen",
44
45
  "startBridging": "Starte Bridge Protokoll",
45
46
  "startSwapping": "Swap starten",
46
47
  "swap": "Swap",
48
+ "swapReview": "",
47
49
  "tryAgain": "Erneut versuchen",
48
50
  "viewCoverage": "Deckung anzeigen",
49
51
  "viewOnExplorer": "Im Explorer anzeigen"
@@ -53,15 +55,18 @@
53
55
  "bookmarkedWallets": "",
54
56
  "bridge": "Bridge",
55
57
  "checkout": "Zur Kasse",
58
+ "checkoutDetails": "",
59
+ "deposit": "",
60
+ "depositDetails": "",
56
61
  "exchange": "Exchange",
57
62
  "from": "Swap von",
58
63
  "gas": "Gas",
59
64
  "payWith": "Zahle mit",
60
- "purchase": "Kauf",
61
- "purchaseDetails": "Kaufdetails",
65
+ "receive": "",
62
66
  "recentWallets": "",
63
67
  "selectChain": "Chain auswählen",
64
68
  "selectWallet": "Wallet wählen",
69
+ "send": "",
65
70
  "sendToWallet": "",
66
71
  "settings": "Einstellungen",
67
72
  "swap": "Swap",
@@ -69,7 +74,8 @@
69
74
  "transactionDetails": "Transaktionsdetails",
70
75
  "transactionHistory": "Transaktionshistorie\u2028",
71
76
  "walletConnected": "Wallet verbunden",
72
- "youGet": "Sie erhalten"
77
+ "youGet": "Sie erhalten",
78
+ "youPay": ""
73
79
  },
74
80
  "info": {
75
81
  "message": {
@@ -82,7 +88,7 @@
82
88
  "routeNotFound": "Gründe dafür könnten lauten: geringe Liquidität, gewählter Betrag ist zu niedrig, die Gaskosten sind zu hoch oder es gibt keine Routen für die ausgewählte Kombination."
83
89
  },
84
90
  "title": {
85
- "autoRefuel": "Gas erhalten",
91
+ "autoRefuel": "",
86
92
  "emptyActiveTransactions": "Keine aktiven Transaktionen",
87
93
  "emptyTransactionHistory": "Keine neuen Transaktionen",
88
94
  "routeNotFound": "Keine Routen verfügbar"
@@ -90,14 +96,15 @@
90
96
  },
91
97
  "success": {
92
98
  "message": {
93
- "exchangePartiallySuccessful": "Wir haben versucht, den Swap abzuschließen, aber {{tool}} hat keine Liquidität für {{tokenSymbol}} Token.",
99
+ "exchangePartiallySuccessful": "",
94
100
  "exchangeSuccessful": "Es sind jetzt {{amount, number(maximumFractionDigits: 9)}} {{tokenSymbol}} in der Wallet {{walletAddress}} auf der {{chainName}}-Chain.",
95
- "purchaseSuccessful": "Sie besitzen jetzt {{assetName}} in der Wallet {{walletAddress}} auf der {{chainName}}-Chain."
101
+ "checkoutSuccessful": ""
96
102
  },
97
103
  "title": {
98
104
  "bridgePartiallySuccessful": "Bridge teilweise erfolgreich",
99
105
  "bridgeSuccessful": "Bridge erfolgreich",
100
- "purchaseSuccessful": "Kauf abgeschlossen",
106
+ "depositSuccessful": "",
107
+ "checkoutSuccessful": "",
101
108
  "refundIssued": "Rückerstattung gewährt",
102
109
  "swapPartiallySuccessful": "Swap teilweise erfolgreich",
103
110
  "swapSuccessful": "Swap erfolgreich"
@@ -132,8 +139,10 @@
132
139
  "signatureRejected": "",
133
140
  "slippageThreshold": "Die Slippage ist größer als der definierte Schwellenwert. Bitte fordern Sie eine neue Route an, um ein neues Angebot zu erhalten.",
134
141
  "transactionCanceled": "",
142
+ "transactionExpired": "",
135
143
  "transactionFailed": "Weitere Informationen finden Sie im Block-Explorer.",
136
144
  "transactionNotSent": "",
145
+ "transactionSimulationFailed": "",
137
146
  "unknown": "Bitte versuchen Sie es später noch einmal oder kontaktieren Sie den Support.",
138
147
  "walletChangedDuringExecution": ""
139
148
  },
@@ -149,7 +158,9 @@
149
158
  "signatureRejected": "",
150
159
  "slippageNotMet": "Slippagebedingungen nicht erfüllt",
151
160
  "transactionCanceled": "Transaktion abgebrochen",
161
+ "transactionExpired": "",
152
162
  "transactionFailed": "Transaktion ist fehlgeschlagen.",
163
+ "transactionSimulationFailed": "",
153
164
  "transactionUnderpriced": "Transaktion ist unterbewertet.",
154
165
  "transactionUnprepared": "Transaktion kann nicht vorbereitet werden.",
155
166
  "unknown": "Etwas ist schief gelaufen.",
@@ -161,16 +172,20 @@
161
172
  }
162
173
  },
163
174
  "tooltip": {
164
- "estimatedTime": "Geschätzte Swap-Ausführungszeit in Minuten.",
175
+ "deselectAll": "",
176
+ "estimatedTime": "",
177
+ "feeCollection": "",
178
+ "minReceived": "",
165
179
  "notFound": {
166
180
  "text": "Wir konnten diese Seite nicht finden.",
167
181
  "title": "404"
168
182
  },
169
- "numberOfSteps": "Eine Anzahl von Swap-Schritten. Jeder Schritt kann 2 Transaktionen enthalten, die eine Unterschrift erfordern.",
183
+ "numberOfSteps": "",
184
+ "priceImpact": "",
170
185
  "progressToNextUpdate": "Angezeigte Daten werden nach {{value}} Sekunden automatisch aktualisiert. Klicken Sie hier, um manuell zu aktualisieren.",
171
- "settingsModified": "Einstellungen (geändert)",
172
186
  "selectAll": "",
173
- "deselectAll": ""
187
+ "settingsModified": "Einstellungen (geändert)",
188
+ "slippage": ""
174
189
  },
175
190
  "main": {
176
191
  "allTokens": "",
@@ -180,21 +195,22 @@
180
195
  "depositStepDetails": "",
181
196
  "featuredTokens": "Ausgewählte Token",
182
197
  "fees": {
198
+ "defaultIntegrator": "",
183
199
  "estimated": "",
184
- "networkEstimated": "",
185
- "networkPaid": "",
200
+ "integrator": "",
201
+ "network": "",
186
202
  "paid": "",
187
- "providerEstimated": "",
188
- "providerPaid": ""
203
+ "provider": ""
189
204
  },
190
205
  "from": "Von",
191
- "fromAmount": "Sie bezahlen",
192
- "gasCost": "Gaskosten",
193
206
  "inProgress": "wird ausgeführt",
207
+ "maxSlippage": "",
208
+ "minReceived": "",
194
209
  "myTokens": "",
195
210
  "onChain": "auf {{chainName}}",
196
211
  "ownedBy": "In Besitz von",
197
212
  "popularTokens": "",
213
+ "priceImpact": "",
198
214
  "process": {
199
215
  "bridge": {
200
216
  "actionRequired": "",
@@ -243,18 +259,17 @@
243
259
  "sentToAddress": "Gesendet an {{address}}",
244
260
  "stepBridge": "Bridge",
245
261
  "stepBridgeAndBuy": "Bridge und Kauf",
262
+ "stepBridgeAndDeposit": "",
246
263
  "stepDetails": "{{tool}} via LI.FI",
247
264
  "stepSwap": "Swap",
248
265
  "stepSwapAndBridge": "Tauschen und überbrücken",
249
266
  "stepSwapAndBuy": "Tauschen und kaufen",
267
+ "stepSwapAndDeposit": "",
250
268
  "supportId": "Support-ID",
251
269
  "swapStepDetails": "Tausche auf {{chain}} über {{tool}}",
252
270
  "tags": {
253
271
  "cheapest": "",
254
- "fastest": "",
255
- "insurable": "Versicherbar",
256
- "insurance": "Versicherung",
257
- "insured": "Versichert"
272
+ "fastest": ""
258
273
  },
259
274
  "to": "Zu",
260
275
  "tokenOnChain": "{{tokenSymbol}} auf {{chainName}}",
@@ -262,12 +277,6 @@
262
277
  "tokenSearch": "Suchen Sie Ihren Token",
263
278
  "valueLoss": "Wertverlust"
264
279
  },
265
- "insurance": {
266
- "bridgeExploits": "Bridge-Fehlfunktionen, Hacks oder Exploits",
267
- "insure": "Versichere <0>{{amount, number(maximumFractionDigits: 9)}} {{tokenSymbol}}</0> während der Übertragung.",
268
- "insured": "Du hast <0>{{amount, number(maximumFractionDigits: 9)}} {{tokenSymbol}}</0> während der Übertragung versichert:",
269
- "slippageError": "Fehler in Slippage für empfangene Token"
270
- },
271
280
  "settings": {
272
281
  "theme": "",
273
282
  "enabledBridges": "",
@@ -279,7 +288,7 @@
279
288
  "title": "Gaspreis"
280
289
  },
281
290
  "routePriority": "Routenpriorität",
282
- "slippage": "Slippage",
291
+ "slippage": "",
283
292
  "custom": "",
284
293
  "resetSettings": ""
285
294
  },