@lifi/widget 3.14.0-beta.0 → 3.14.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 (125) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/esm/components/ActiveTransactions/ActiveTransactionItem.js +0 -1
  3. package/dist/esm/components/ActiveTransactions/ActiveTransactionItem.js.map +1 -1
  4. package/dist/esm/components/AlertMessage/AlertMessage.d.ts +2 -2
  5. package/dist/esm/components/AlertMessage/AlertMessage.js +1 -1
  6. package/dist/esm/components/AlertMessage/AlertMessage.js.map +1 -1
  7. package/dist/esm/components/AmountInput/PriceFormHelperText.js +7 -4
  8. package/dist/esm/components/AmountInput/PriceFormHelperText.js.map +1 -1
  9. package/dist/esm/components/FeeBreakdownTooltip.js +3 -4
  10. package/dist/esm/components/FeeBreakdownTooltip.js.map +1 -1
  11. package/dist/esm/components/GasMessage/FundsSufficiencyMessage.js +1 -1
  12. package/dist/esm/components/GasMessage/FundsSufficiencyMessage.js.map +1 -1
  13. package/dist/esm/components/RouteCard/RouteCard.js +4 -8
  14. package/dist/esm/components/RouteCard/RouteCard.js.map +1 -1
  15. package/dist/esm/components/Step/CircularProgress.js +1 -2
  16. package/dist/esm/components/Step/CircularProgress.js.map +1 -1
  17. package/dist/esm/components/Step/CircularProgress.style.js +2 -13
  18. package/dist/esm/components/Step/CircularProgress.style.js.map +1 -1
  19. package/dist/esm/components/Step/StepProcess.js +1 -2
  20. package/dist/esm/components/Step/StepProcess.js.map +1 -1
  21. package/dist/esm/components/Step/StepTimer.js +1 -2
  22. package/dist/esm/components/Step/StepTimer.js.map +1 -1
  23. package/dist/esm/components/StepActions/StepActions.js +8 -8
  24. package/dist/esm/components/StepActions/StepActions.js.map +1 -1
  25. package/dist/esm/components/ToAddressRequiredMessage.js +1 -1
  26. package/dist/esm/components/ToAddressRequiredMessage.js.map +1 -1
  27. package/dist/esm/components/Token/Token.js +3 -3
  28. package/dist/esm/components/Token/Token.js.map +1 -1
  29. package/dist/esm/components/TokenList/TokenListItem.js +4 -6
  30. package/dist/esm/components/TokenList/TokenListItem.js.map +1 -1
  31. package/dist/esm/components/TokenRate/TokenRate.js +5 -7
  32. package/dist/esm/components/TokenRate/TokenRate.js.map +1 -1
  33. package/dist/esm/components/TransactionDetails.js +3 -7
  34. package/dist/esm/components/TransactionDetails.js.map +1 -1
  35. package/dist/esm/config/version.d.ts +1 -1
  36. package/dist/esm/config/version.js +1 -1
  37. package/dist/esm/config/version.js.map +1 -1
  38. package/dist/esm/hooks/useProcessMessage.js +6 -18
  39. package/dist/esm/hooks/useProcessMessage.js.map +1 -1
  40. package/dist/esm/hooks/useRoutes.d.ts +2 -2
  41. package/dist/esm/hooks/useRoutes.js +58 -99
  42. package/dist/esm/hooks/useRoutes.js.map +1 -1
  43. package/dist/esm/hooks/useSetContentHeight.d.ts +1 -1
  44. package/dist/esm/hooks/useSetContentHeight.js +3 -2
  45. package/dist/esm/hooks/useSetContentHeight.js.map +1 -1
  46. package/dist/esm/i18n/en.json +14 -16
  47. package/dist/esm/index.d.ts +3 -0
  48. package/dist/esm/index.js +3 -0
  49. package/dist/esm/index.js.map +1 -1
  50. package/dist/esm/pages/SendToWallet/ConfirmAddressSheet.d.ts +1 -0
  51. package/dist/esm/pages/SendToWallet/ConfirmAddressSheet.js +22 -14
  52. package/dist/esm/pages/SendToWallet/ConfirmAddressSheet.js.map +1 -1
  53. package/dist/esm/pages/SendToWallet/SendToWalletPage.js +5 -3
  54. package/dist/esm/pages/SendToWallet/SendToWalletPage.js.map +1 -1
  55. package/dist/esm/pages/TransactionPage/ExchangeRateBottomSheet.js +2 -2
  56. package/dist/esm/pages/TransactionPage/ExchangeRateBottomSheet.js.map +1 -1
  57. package/dist/esm/providers/I18nProvider/I18nProvider.js +4 -2
  58. package/dist/esm/providers/I18nProvider/I18nProvider.js.map +1 -1
  59. package/dist/esm/providers/WalletProvider/SDKProviders.js +15 -2
  60. package/dist/esm/providers/WalletProvider/SDKProviders.js.map +1 -1
  61. package/dist/esm/providers/WalletProvider/getSafeMultisigConfig.d.ts +8 -0
  62. package/dist/esm/providers/WalletProvider/getSafeMultisigConfig.js +95 -0
  63. package/dist/esm/providers/WalletProvider/getSafeMultisigConfig.js.map +1 -0
  64. package/dist/esm/types/widget.d.ts +0 -1
  65. package/dist/esm/utils/compactNumberFormatter.d.ts +10 -0
  66. package/dist/esm/utils/compactNumberFormatter.js +81 -0
  67. package/dist/esm/utils/compactNumberFormatter.js.map +1 -0
  68. package/dist/esm/utils/compactNumberFormatter.test.d.ts +1 -0
  69. package/dist/esm/utils/compactNumberFormatter.test.js +64 -0
  70. package/dist/esm/utils/compactNumberFormatter.test.js.map +1 -0
  71. package/dist/esm/utils/converters.js +2 -2
  72. package/dist/esm/utils/converters.js.map +1 -1
  73. package/dist/esm/utils/currencyExtendedFormatter.js.map +1 -0
  74. package/dist/esm/utils/fees.js +2 -3
  75. package/dist/esm/utils/fees.js.map +1 -1
  76. package/dist/esm/utils/format.d.ts +1 -10
  77. package/dist/esm/utils/format.js +8 -47
  78. package/dist/esm/utils/format.js.map +1 -1
  79. package/dist/esm/utils/getPriceImpact.js +7 -6
  80. package/dist/esm/utils/getPriceImpact.js.map +1 -1
  81. package/dist/esm/utils/percentFormatter.js.map +1 -0
  82. package/package.json +8 -8
  83. package/src/components/ActiveTransactions/ActiveTransactionItem.tsx +0 -1
  84. package/src/components/AlertMessage/AlertMessage.tsx +3 -3
  85. package/src/components/AmountInput/PriceFormHelperText.tsx +8 -4
  86. package/src/components/FeeBreakdownTooltip.tsx +3 -4
  87. package/src/components/GasMessage/FundsSufficiencyMessage.tsx +1 -1
  88. package/src/components/RouteCard/RouteCard.tsx +6 -9
  89. package/src/components/Step/CircularProgress.style.tsx +2 -13
  90. package/src/components/Step/CircularProgress.tsx +1 -2
  91. package/src/components/Step/StepProcess.tsx +1 -2
  92. package/src/components/Step/StepTimer.tsx +1 -3
  93. package/src/components/StepActions/StepActions.tsx +16 -13
  94. package/src/components/ToAddressRequiredMessage.tsx +1 -1
  95. package/src/components/Token/Token.tsx +7 -2
  96. package/src/components/TokenList/TokenListItem.tsx +9 -9
  97. package/src/components/TokenRate/TokenRate.tsx +5 -11
  98. package/src/components/TransactionDetails.tsx +4 -8
  99. package/src/config/version.ts +1 -1
  100. package/src/hooks/useProcessMessage.ts +5 -24
  101. package/src/hooks/useRoutes.ts +66 -127
  102. package/src/hooks/useSetContentHeight.ts +4 -2
  103. package/src/i18n/en.json +14 -16
  104. package/src/index.ts +3 -0
  105. package/src/pages/SendToWallet/ConfirmAddressSheet.tsx +81 -40
  106. package/src/pages/SendToWallet/SendToWalletPage.tsx +8 -2
  107. package/src/pages/TransactionPage/ExchangeRateBottomSheet.tsx +2 -2
  108. package/src/providers/I18nProvider/I18nProvider.tsx +4 -2
  109. package/src/providers/WalletProvider/SDKProviders.tsx +16 -2
  110. package/src/providers/WalletProvider/getSafeMultisigConfig.ts +144 -0
  111. package/src/types/widget.ts +0 -1
  112. package/src/utils/compactNumberFormatter.test.ts +67 -0
  113. package/src/utils/compactNumberFormatter.ts +91 -0
  114. package/src/utils/converters.ts +6 -4
  115. package/src/utils/fees.ts +6 -4
  116. package/src/utils/format.ts +14 -60
  117. package/src/utils/getPriceImpact.ts +15 -6
  118. package/dist/esm/providers/I18nProvider/currencyExtendedFormatter.js.map +0 -1
  119. package/dist/esm/providers/I18nProvider/percentFormatter.js.map +0 -1
  120. /package/dist/esm/{providers/I18nProvider → utils}/currencyExtendedFormatter.d.ts +0 -0
  121. /package/dist/esm/{providers/I18nProvider → utils}/currencyExtendedFormatter.js +0 -0
  122. /package/dist/esm/{providers/I18nProvider → utils}/percentFormatter.d.ts +0 -0
  123. /package/dist/esm/{providers/I18nProvider → utils}/percentFormatter.js +0 -0
  124. /package/src/{providers/I18nProvider → utils}/currencyExtendedFormatter.ts +0 -0
  125. /package/src/{providers/I18nProvider → utils}/percentFormatter.ts +0 -0
@@ -1,4 +1,4 @@
1
- import { formatUnits } from 'viem';
1
+ import { formatTokenPrice } from './format.js';
2
2
  const buildProcessFromTxHistory = (tx) => {
3
3
  const sending = tx.sending;
4
4
  const receiving = tx.receiving;
@@ -72,7 +72,7 @@ export const buildRouteFromTxHistory = (tx, tools) => {
72
72
  ? sendingValue - BigInt(sending.amount)
73
73
  : sendingValue;
74
74
  const sendingFeeAmountUsd = sending.gasToken.priceUSD && sendingFeeAmount
75
- ? Number.parseFloat(formatUnits(sendingFeeAmount, sending.gasToken.decimals)) * Number.parseFloat(sending.gasToken.priceUSD)
75
+ ? formatTokenPrice(sendingFeeAmount, sending.gasToken.priceUSD, sending.gasToken.decimals)
76
76
  : 0;
77
77
  const feeCosts = sendingFeeAmount
78
78
  ? [
@@ -1 +1 @@
1
- {"version":3,"file":"converters.js","sourceRoot":"","sources":["../../../src/utils/converters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"converters.js","sourceRoot":"","sources":["../../../src/utils/converters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"currencyExtendedFormatter.js","sourceRoot":"","sources":["../../../src/utils/currencyExtendedFormatter.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,GAAuB,EACvB,OAAY,EACZ,EAAE;IACF,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE;QAC3C,GAAG,OAAO;QACV,KAAK,EAAE,UAAU;KAClB,CAAC,CAAA;IACF,OAAO,CAAC,KAAU,EAAE,EAAE;QACpB,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC;YAC9B,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAA;QACrC,CAAC;QACD,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAChC,CAAC,CAAA;AACH,CAAC,CAAA"}
@@ -1,4 +1,4 @@
1
- import { formatUnits } from 'viem';
1
+ import { formatTokenPrice } from './format.js';
2
2
  export const getAccumulatedFeeCostsBreakdown = (route, included = false) => {
3
3
  const gasCosts = getGasCostsBreakdown(route);
4
4
  const feeCosts = getFeeCostsBreakdown(route, included);
@@ -68,8 +68,7 @@ export const getStepFeeCostsBreakdown = (feeCosts) => {
68
68
  const { token } = feeCosts[0];
69
69
  const { amount, amountUSD } = feeCosts.reduce((acc, feeCost) => {
70
70
  const feeAmount = BigInt(Number(feeCost.amount).toFixed(0) || 0);
71
- const amountUSD = Number.parseFloat(feeCost.token.priceUSD || '0') *
72
- Number.parseFloat(formatUnits(feeAmount, feeCost.token.decimals));
71
+ const amountUSD = formatTokenPrice(feeAmount, feeCost.token.priceUSD, feeCost.token.decimals);
73
72
  acc.amount += feeAmount;
74
73
  acc.amountUSD += amountUSD;
75
74
  return acc;
@@ -1 +1 @@
1
- {"version":3,"file":"fees.js","sourceRoot":"","sources":["../../../src/utils/fees.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fees.js","sourceRoot":"","sources":["../../../src/utils/fees.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- export declare const precisionFormatter: Intl.NumberFormat;
2
1
  /**
3
2
  * Format token amount to at least 6 decimals.
4
3
  * @param amount amount to format.
@@ -7,12 +6,4 @@ export declare const precisionFormatter: Intl.NumberFormat;
7
6
  export declare function formatTokenAmount(amount: bigint | undefined, decimals: number): string;
8
7
  export declare function formatSlippage(slippage?: string, defaultValue?: string, returnInitial?: boolean): string;
9
8
  export declare function formatInputAmount(amount: string, decimals?: number | null, returnInitial?: boolean): string;
10
- export declare function formatTokenPrice(amount?: string, price?: string): number;
11
- /**
12
- * Converts a number to a subscript format if it contains leading zeros in the fractional part.
13
- *
14
- * @param {number} value - The number to be converted.
15
- * @param {Intl.NumberFormatOptions} options An object that contains one or more properties that specify comparison options.
16
- * @returns {string} - The number formatted as a string, with subscripts for leading zeros if applicable.
17
- */
18
- export declare function convertToSubscriptFormat(value: number, options?: Intl.NumberFormatOptions): string;
9
+ export declare function formatTokenPrice(amount?: string | bigint, price?: string, decimals?: number): number;
@@ -1,12 +1,4 @@
1
1
  import { formatUnits } from 'viem';
2
- const subscriptMap = ['₀', '₁', '₂', '₃', '₄', '₅', '₆', '₇', '₈', '₉'];
3
- export const precisionFormatter = new Intl.NumberFormat('en', {
4
- notation: 'standard',
5
- roundingPriority: 'morePrecision',
6
- maximumSignificantDigits: 6,
7
- maximumFractionDigits: 6,
8
- useGrouping: false,
9
- });
10
2
  /**
11
3
  * Format token amount to at least 6 decimals.
12
4
  * @param amount amount to format.
@@ -15,10 +7,10 @@ export const precisionFormatter = new Intl.NumberFormat('en', {
15
7
  export function formatTokenAmount(amount, decimals) {
16
8
  const formattedAmount = amount ? formatUnits(amount, decimals) : '0';
17
9
  const parsedAmount = Number.parseFloat(formattedAmount);
18
- if (parsedAmount === 0 || Number.isNaN(Number(formattedAmount))) {
10
+ if (!parsedAmount || Number.isNaN(Number(formattedAmount))) {
19
11
  return '0';
20
12
  }
21
- return precisionFormatter.format(parsedAmount);
13
+ return formattedAmount;
22
14
  }
23
15
  export function formatSlippage(slippage = '', defaultValue = '', returnInitial = false) {
24
16
  if (!slippage) {
@@ -68,47 +60,16 @@ export function formatInputAmount(amount, decimals = null, returnInitial = false
68
60
  fraction = fraction.replace(/(0+)$/, '');
69
61
  return `${integer || (fraction ? '0' : '')}${fraction ? `.${fraction}` : ''}`;
70
62
  }
71
- export function formatTokenPrice(amount, price) {
63
+ export function formatTokenPrice(amount, price, decimals) {
72
64
  if (!amount || !price) {
73
65
  return 0;
74
66
  }
75
- if (Number.isNaN(Number(amount)) || Number.isNaN(Number(price))) {
67
+ const formattedAmount = typeof amount === 'bigint' && decimals !== undefined
68
+ ? formatUnits(amount, decimals)
69
+ : amount.toString();
70
+ if (Number.isNaN(Number(formattedAmount)) || Number.isNaN(Number(price))) {
76
71
  return 0;
77
72
  }
78
- return Number.parseFloat(amount) * Number.parseFloat(price);
79
- }
80
- /**
81
- * Converts a number to a subscript format if it contains leading zeros in the fractional part.
82
- *
83
- * @param {number} value - The number to be converted.
84
- * @param {Intl.NumberFormatOptions} options An object that contains one or more properties that specify comparison options.
85
- * @returns {string} - The number formatted as a string, with subscripts for leading zeros if applicable.
86
- */
87
- export function convertToSubscriptFormat(value, options) {
88
- let formattedValue;
89
- if (options) {
90
- formattedValue = value.toLocaleString('en', options);
91
- }
92
- else {
93
- formattedValue = precisionFormatter.format(value);
94
- }
95
- // Calculate the number of zeros after the decimal point
96
- const d = Math.ceil(Math.log10(Math.abs(value)));
97
- // If the value does not have significant leading zeros in the fractional part, return the formatted value as is
98
- if (d > -3 || !value) {
99
- return formattedValue;
100
- }
101
- // Calculate the number of leading zeros in the fractional part
102
- const leadingZeros = Math.abs(d);
103
- const fractionalPartExtractor = value > 0 ? 2 : 3;
104
- // Extract the fractional part of the formatted value, excluding the leading zeros and "0." or "-0."
105
- const fractionalPart = formattedValue.slice(leadingZeros + fractionalPartExtractor);
106
- // Convert the number of leading zeros to their corresponding Unicode subscript characters
107
- const subscript = leadingZeros
108
- .toString()
109
- .split('')
110
- .map((digit) => subscriptMap[digit])
111
- .join('');
112
- return `${value > 0 ? '' : '-'}0.0${subscript}${fractionalPart}`;
73
+ return Number.parseFloat(formattedAmount) * Number.parseFloat(price);
113
74
  }
114
75
  //# sourceMappingURL=format.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/utils/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAElC,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAEvE,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;IAC5D,QAAQ,EAAE,UAAU;IACpB,gBAAgB,EAAE,eAAe;IACjC,wBAAwB,EAAE,CAAC;IAC3B,qBAAqB,EAAE,CAAC;IACxB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAA0B,EAC1B,QAAgB;IAEhB,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IACpE,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAA;IACvD,IAAI,YAAY,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC;QAChE,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,OAAO,kBAAkB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,QAAQ,GAAG,EAAE,EACb,YAAY,GAAG,EAAE,EACjB,aAAa,GAAG,KAAK;IAErB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,QAAQ,CAAA;IACjB,CAAC;IACD,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;IAClD,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;QACpE,OAAO,cAAc,CAAC,QAAQ,EAAE,CAAA;IAClC,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;QACjC,OAAO,YAAY,CAAA;IACrB,CAAC;IACD,IAAI,cAAc,GAAG,GAAG,EAAE,CAAC;QACzB,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC5C,CAAC;IACD,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,QAAQ,CAAA;IACjB,CAAC;IACD,OAAO,cAAc,CAAC,QAAQ,EAAE,CAAA;AAClC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,MAAc,EACd,WAA0B,IAAI,EAC9B,aAAa,GAAG,KAAK;IAErB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,MAAM,CAAA;IACf,CAAC;IACD,IAAI,eAAe,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACxD,IAAI,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;IACzC,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAA;IACvD,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;QACzE,OAAO,YAAY,CAAC,QAAQ,EAAE,CAAA;IAChC,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,OAAO,EAAE,CAAA;IACX,CAAC;IACD,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,eAAe,CAAA;IACxB,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,QAAQ,GAAG,EAAE,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACzD,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;QACpD,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;IACxC,CAAC;IACD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IACtC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IACxC,OAAO,GAAG,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;AAC/E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAe,EAAE,KAAc;IAC9D,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO,CAAC,CAAA;IACV,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAChE,OAAO,CAAC,CAAA;IACV,CAAC;IACD,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;AAC7D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAAa,EACb,OAAkC;IAElC,IAAI,cAAsB,CAAA;IAC1B,IAAI,OAAO,EAAE,CAAC;QACZ,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACtD,CAAC;SAAM,CAAC;QACN,cAAc,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACnD,CAAC;IAED,wDAAwD;IACxD,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAEhD,gHAAgH;IAChH,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACrB,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,+DAA+D;IAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAEhC,MAAM,uBAAuB,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAEjD,oGAAoG;IACpG,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CACzC,YAAY,GAAG,uBAAuB,CACvC,CAAA;IAED,0FAA0F;IAC1F,MAAM,SAAS,GAAG,YAAY;SAC3B,QAAQ,EAAE;SACV,KAAK,CAAC,EAAE,CAAC;SACT,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAY,CAAC,CAAC;SAC1C,IAAI,CAAC,EAAE,CAAC,CAAA;IAEX,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,SAAS,GAAG,cAAc,EAAE,CAAA;AAClE,CAAC"}
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/utils/format.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
- import { formatTokenAmount, formatTokenPrice } from './format.js';
1
+ import { formatTokenPrice } from './format.js';
2
2
  export const getPriceImpact = ({ fromToken, toToken, fromAmount, toAmount, }) => {
3
- const fromTokenAmount = formatTokenAmount(fromAmount, fromToken.decimals);
4
- const fromTokenPrice = formatTokenPrice(fromTokenAmount, fromToken.priceUSD);
5
- const toTokenAmount = formatTokenAmount(toAmount, toToken.decimals);
6
- const toTokenPrice = formatTokenPrice(toTokenAmount, toToken.priceUSD) || 0.01;
3
+ const fromTokenPrice = formatTokenPrice(fromAmount, fromToken.priceUSD, fromToken.decimals);
4
+ const toTokenPrice = formatTokenPrice(toAmount, toToken.priceUSD, toToken.decimals);
5
+ if (!fromTokenPrice) {
6
+ return 0;
7
+ }
7
8
  const priceImpact = toTokenPrice / fromTokenPrice - 1;
8
- return Number(priceImpact);
9
+ return priceImpact;
9
10
  };
10
11
  //# sourceMappingURL=getPriceImpact.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getPriceImpact.js","sourceRoot":"","sources":["../../../src/utils/getPriceImpact.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AASjE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,SAAS,EACT,OAAO,EACP,UAAU,EACV,QAAQ,GACa,EAAE,EAAE;IACzB,MAAM,eAAe,GAAG,iBAAiB,CAAC,UAAU,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAA;IACzE,MAAM,cAAc,GAAG,gBAAgB,CAAC,eAAe,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAA;IAE5E,MAAM,aAAa,GAAG,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IACnE,MAAM,YAAY,GAAG,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAA;IAE9E,MAAM,WAAW,GAAG,YAAY,GAAG,cAAc,GAAG,CAAC,CAAA;IAErD,OAAO,MAAM,CAAC,WAAW,CAAC,CAAA;AAC5B,CAAC,CAAA"}
1
+ {"version":3,"file":"getPriceImpact.js","sourceRoot":"","sources":["../../../src/utils/getPriceImpact.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAS9C,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,SAAS,EACT,OAAO,EACP,UAAU,EACV,QAAQ,GACa,EAAE,EAAE;IACzB,MAAM,cAAc,GAAG,gBAAgB,CACrC,UAAU,EACV,SAAS,CAAC,QAAQ,EAClB,SAAS,CAAC,QAAQ,CACnB,CAAA;IACD,MAAM,YAAY,GAAG,gBAAgB,CACnC,QAAQ,EACR,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,QAAQ,CACjB,CAAA;IAED,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,CAAC,CAAA;IACV,CAAC;IAED,MAAM,WAAW,GAAG,YAAY,GAAG,cAAc,GAAG,CAAC,CAAA;IAErD,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"percentFormatter.js","sourceRoot":"","sources":["../../../src/utils/percentFormatter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAuB,EAAE,OAAY,EAAE,EAAE;IACxE,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE;QAC3C,GAAG,OAAO;QACV,KAAK,EAAE,SAAS;KACjB,CAAC,CAAA;IACF,OAAO,CAAC,KAAU,EAAE,EAAE;QACpB,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACpE,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAA;QACvC,CAAC;QACD,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAChC,CAAC,CAAA;AACH,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lifi/widget",
3
- "version": "3.14.0-beta.0",
3
+ "version": "3.14.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
5
  "type": "module",
6
6
  "main": "./dist/esm/index.js",
@@ -34,10 +34,10 @@
34
34
  "@bigmi/core": "^0.1.0",
35
35
  "@emotion/react": "^11.14.0",
36
36
  "@emotion/styled": "^11.14.0",
37
- "@lifi/sdk": "3.6.0-beta.3",
37
+ "@lifi/sdk": "^3.5.2",
38
38
  "@mui/icons-material": "6.0.2",
39
- "@mui/material": "^6.4.0",
40
- "@mui/system": "^6.4.0",
39
+ "@mui/material": "^6.4.1",
40
+ "@mui/system": "^6.4.1",
41
41
  "@solana/wallet-adapter-base": "^0.9.23",
42
42
  "@solana/web3.js": "^1.98.0",
43
43
  "@tanstack/react-virtual": "^3.11.2",
@@ -45,14 +45,14 @@
45
45
  "microdiff": "^1.5.0",
46
46
  "mitt": "^3.0.1",
47
47
  "react-i18next": "^15.4.0",
48
- "react-intersection-observer": "^9.15.0",
48
+ "react-intersection-observer": "^9.15.1",
49
49
  "react-router-dom": "^6.28.0",
50
- "viem": "^2.22.8",
50
+ "viem": "^2.22.11",
51
51
  "zustand": "^5.0.3",
52
- "@lifi/wallet-management": "^3.6.0-beta.0"
52
+ "@lifi/wallet-management": "^3.6.0"
53
53
  },
54
54
  "peerDependencies": {
55
- "@bigmi/react": ">=0.0.7",
55
+ "@bigmi/react": ">=0.1.0",
56
56
  "@solana/wallet-adapter-react": "^0.15.35",
57
57
  "@tanstack/react-query": "^5.62.0",
58
58
  "react": ">=18",
@@ -35,7 +35,6 @@ export const ActiveTransactionItem: React.FC<{
35
35
 
36
36
  const getStatusComponent = () => {
37
37
  switch (lastActiveProcess?.status) {
38
- case 'PERMIT_REQUIRED':
39
38
  case 'ACTION_REQUIRED':
40
39
  return <InfoRounded color="info" fontSize="small" />
41
40
  case 'FAILED':
@@ -9,7 +9,7 @@ import type { Severity } from './types.js'
9
9
  interface AlertMessageProps extends PropsWithChildren<Omit<BoxProps, 'title'>> {
10
10
  icon: ReactNode
11
11
  title: ReactNode
12
- multilineTitle?: boolean
12
+ multiline?: boolean
13
13
  severity?: Severity
14
14
  }
15
15
 
@@ -17,14 +17,14 @@ export const AlertMessage = ({
17
17
  title,
18
18
  icon,
19
19
  children,
20
- multilineTitle,
20
+ multiline,
21
21
  severity = 'info',
22
22
  ...rest
23
23
  }: AlertMessageProps) => (
24
24
  <AlertMessageCard severity={severity} {...rest}>
25
25
  <AlertMessageCardTitle
26
26
  severity={severity}
27
- alignItems={multilineTitle ? 'start' : 'center'}
27
+ alignItems={multiline ? 'start' : 'center'}
28
28
  >
29
29
  {icon}
30
30
  {title}
@@ -34,7 +34,10 @@ export const PriceFormHelperTextBase: React.FC<
34
34
  const { t } = useTranslation()
35
35
  const [amount] = useFieldValues(FormKeyHelper.getAmountKey(formType))
36
36
 
37
- const fromAmountTokenPrice = formatTokenPrice(amount, token?.priceUSD)
37
+ const tokenAmount = token
38
+ ? formatTokenAmount(token.amount, token.decimals)
39
+ : '0'
40
+ const tokenPrice = formatTokenPrice(amount, token?.priceUSD)
38
41
 
39
42
  return (
40
43
  <FormHelperText
@@ -59,7 +62,7 @@ export const PriceFormHelperTextBase: React.FC<
59
62
  }}
60
63
  >
61
64
  {t('format.currency', {
62
- value: fromAmountTokenPrice,
65
+ value: tokenPrice,
63
66
  })}
64
67
  </Typography>
65
68
  {isLoading && tokenAddress ? (
@@ -73,9 +76,10 @@ export const PriceFormHelperTextBase: React.FC<
73
76
  lineHeight: 1,
74
77
  pl: 0.25,
75
78
  }}
79
+ title={tokenAmount}
76
80
  >
77
- {`/ ${t('format.number', {
78
- value: formatTokenAmount(token.amount, token.decimals),
81
+ {`/ ${t('format.tokenAmount', {
82
+ value: tokenAmount,
79
83
  })}`}
80
84
  </Typography>
81
85
  ) : null}
@@ -2,8 +2,8 @@ import { Box, Tooltip, Typography } from '@mui/material'
2
2
  import type { TFunction } from 'i18next'
3
3
  import type { ReactElement } from 'react'
4
4
  import { useTranslation } from 'react-i18next'
5
- import { formatUnits } from 'viem'
6
5
  import type { FeesBreakdown } from '../utils/fees.js'
6
+ import { formatTokenAmount } from '../utils/format.js'
7
7
 
8
8
  export interface FeeBreakdownTooltipProps {
9
9
  gasCosts?: FeesBreakdown[]
@@ -60,9 +60,8 @@ export const getFeeBreakdownTypography = (
60
60
  }}
61
61
  >
62
62
  {t('format.currency', { value: fee.amountUSD })} (
63
- {t('format.number', {
64
- value: Number.parseFloat(formatUnits(fee.amount, fee.token.decimals)),
65
- maximumFractionDigits: Math.min(fee.token.decimals, 9),
63
+ {t('format.tokenAmount', {
64
+ value: formatTokenAmount(fee.amount, fee.token.decimals),
66
65
  })}{' '}
67
66
  {fee.token.symbol})
68
67
  </Typography>
@@ -20,7 +20,7 @@ export const FundsSufficiencyMessage = () => {
20
20
  {t('warning.message.insufficientFunds')}
21
21
  </Typography>
22
22
  }
23
- multilineTitle
23
+ multiline
24
24
  />
25
25
  )
26
26
  }
@@ -1,5 +1,4 @@
1
1
  import type { TokenAmount } from '@lifi/sdk'
2
- import { isEVMPermitStep } from '@lifi/sdk'
3
2
  import { ExpandLess, ExpandMore } from '@mui/icons-material'
4
3
  import { Box, Collapse } from '@mui/material'
5
4
  import type { MouseEventHandler } from 'react'
@@ -46,12 +45,9 @@ export const RouteCard: React.FC<
46
45
  : undefined
47
46
 
48
47
  const customLabels = getMatchingLabels(route, routeLabels)
49
- const tags: string[] =
50
- route.tags?.filter((tag) => tag === 'CHEAPEST' || tag === 'FASTEST') ?? []
51
- const hasRelayerSupport = route.steps.some((step) => isEVMPermitStep(step))
52
- if (hasRelayerSupport) {
53
- tags.push('GASLESS')
54
- }
48
+ const tags = route.tags?.filter(
49
+ (tag) => tag === 'CHEAPEST' || tag === 'FASTEST'
50
+ )
55
51
 
56
52
  const cardContent = (
57
53
  <Box
@@ -59,7 +55,8 @@ export const RouteCard: React.FC<
59
55
  flex: 1,
60
56
  }}
61
57
  >
62
- {subvariant !== 'refuel' && (tags.length || customLabels.length) ? (
58
+ {subvariant !== 'refuel' &&
59
+ (route.tags?.length || customLabels.length) ? (
63
60
  <Box
64
61
  sx={{
65
62
  display: 'flex',
@@ -69,7 +66,7 @@ export const RouteCard: React.FC<
69
66
  flexWrap: 'wrap',
70
67
  }}
71
68
  >
72
- {tags.length ? (
69
+ {tags?.length ? (
73
70
  <CardLabel type={active ? 'active' : undefined}>
74
71
  <CardLabelTypography>
75
72
  {t(`main.tags.${tags[0].toLowerCase()}` as any)}
@@ -15,7 +15,6 @@ const getStatusColor = (
15
15
  substatus?: Substatus
16
16
  ) => {
17
17
  switch (status) {
18
- case 'PERMIT_REQUIRED':
19
18
  case 'ACTION_REQUIRED':
20
19
  return alpha(theme.palette.info.main, 0.12)
21
20
  case 'DONE':
@@ -34,22 +33,12 @@ export const CircularIcon = styled(Box, {
34
33
  shouldForwardProp: (prop: string) => !['status', 'substatus'].includes(prop),
35
34
  })<{ status?: ProcessStatus; substatus?: Substatus }>(
36
35
  ({ theme, status, substatus }) => ({
37
- backgroundColor: [
38
- 'PERMIT_REQUIRED',
39
- 'ACTION_REQUIRED',
40
- 'DONE',
41
- 'FAILED',
42
- ].includes(status!)
36
+ backgroundColor: ['ACTION_REQUIRED', 'DONE', 'FAILED'].includes(status!)
43
37
  ? getStatusColor(theme, status, substatus)
44
38
  : theme.palette.background.paper,
45
39
  borderStyle: 'solid',
46
40
  borderColor: getStatusColor(theme, status, substatus),
47
- borderWidth: ![
48
- 'PERMIT_REQUIRED',
49
- 'ACTION_REQUIRED',
50
- 'DONE',
51
- 'FAILED',
52
- ].includes(status!)
41
+ borderWidth: !['ACTION_REQUIRED', 'DONE', 'FAILED'].includes(status!)
53
42
  ? 3
54
43
  : 0,
55
44
  display: 'grid',
@@ -17,8 +17,7 @@ export function CircularProgress({ process }: { process: Process }) {
17
17
  {process.status === 'STARTED' || process.status === 'PENDING' ? (
18
18
  <CircularProgressPending size={40} />
19
19
  ) : null}
20
- {process.status === 'PERMIT_REQUIRED' ||
21
- process.status === 'ACTION_REQUIRED' ? (
20
+ {process.status === 'ACTION_REQUIRED' ? (
22
21
  <InfoRounded
23
22
  color="info"
24
23
  sx={{
@@ -29,8 +29,7 @@ export const StepProcess: React.FC<{
29
29
  <CircularProgress process={process} />
30
30
  <Typography
31
31
  sx={{
32
- marginLeft: 2,
33
- marginRight: 0.5,
32
+ mx: 2,
34
33
  flex: 1,
35
34
  fontSize: 14,
36
35
  fontWeight: process.error ? 600 : 400,
@@ -44,9 +44,7 @@ export const StepTimer: React.FC<{
44
44
  return
45
45
  }
46
46
  const shouldRestart = executionProcess.status === 'FAILED'
47
- const shouldPause =
48
- executionProcess.status === 'PERMIT_REQUIRED' ||
49
- executionProcess.status === 'ACTION_REQUIRED'
47
+ const shouldPause = executionProcess.status === 'ACTION_REQUIRED'
50
48
  const shouldStart =
51
49
  executionProcess.status === 'STARTED' ||
52
50
  executionProcess.status === 'PENDING'
@@ -12,12 +12,11 @@ import {
12
12
  import type { MouseEventHandler } from 'react'
13
13
  import { useState } from 'react'
14
14
  import { useTranslation } from 'react-i18next'
15
- import { formatUnits } from 'viem'
16
15
  import { useAvailableChains } from '../../hooks/useAvailableChains.js'
17
16
  import { LiFiToolLogo } from '../../icons/lifi.js'
18
17
  import { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'
19
18
  import { HiddenUI } from '../../types/widget.js'
20
- import { formatTokenAmount } from '../../utils/format.js'
19
+ import { formatTokenAmount, formatTokenPrice } from '../../utils/format.js'
21
20
  import { SmallAvatar } from '../Avatar/SmallAvatar.js'
22
21
  import { CardIconButton } from '../Card/CardIconButton.js'
23
22
  import {
@@ -215,8 +214,8 @@ export const StepDetailsContent: React.FC<{
215
214
 
216
215
  fromAmount =
217
216
  estimatedFromAmount > 0n
218
- ? formatUnits(estimatedFromAmount, step.action.fromToken.decimals)
219
- : formatUnits(
217
+ ? formatTokenAmount(estimatedFromAmount, step.action.fromToken.decimals)
218
+ : formatTokenAmount(
220
219
  BigInt(step.estimate.fromAmount),
221
220
  step.action.fromToken.decimals
222
221
  )
@@ -243,22 +242,24 @@ export const StepDetailsContent: React.FC<{
243
242
  >
244
243
  {!showToAmount ? (
245
244
  <>
246
- {formatUnits(
247
- BigInt(step.estimate.fromAmount),
248
- step.action.fromToken.decimals
249
- )}{' '}
245
+ {t('format.tokenAmount', {
246
+ value: formatTokenAmount(
247
+ BigInt(step.estimate.fromAmount),
248
+ step.action.fromToken.decimals
249
+ ),
250
+ })}{' '}
250
251
  {step.action.fromToken.symbol}
251
252
  {' - '}
252
253
  </>
253
254
  ) : null}
254
- {t('format.number', {
255
+ {t('format.tokenAmount', {
255
256
  value: fromAmount,
256
257
  })}{' '}
257
258
  {step.action.fromToken.symbol}
258
259
  {showToAmount ? (
259
260
  <>
260
261
  <ArrowForward sx={{ fontSize: 18, paddingX: 0.5, height: 12 }} />
261
- {t('format.number', {
262
+ {t('format.tokenAmount', {
262
263
  value: formatTokenAmount(
263
264
  BigInt(step.execution?.toAmount ?? step.estimate.toAmount),
264
265
  step.execution?.toToken?.decimals ?? step.action.toToken.decimals
@@ -268,9 +269,11 @@ export const StepDetailsContent: React.FC<{
268
269
  </>
269
270
  ) : (
270
271
  ` (${t('format.currency', {
271
- value:
272
- Number.parseFloat(fromAmount) *
273
- Number.parseFloat(step.action.fromToken.priceUSD),
272
+ value: formatTokenPrice(
273
+ fromAmount,
274
+ step.action.fromToken.priceUSD,
275
+ step.action.fromToken.decimals
276
+ ),
274
277
  })})`
275
278
  )}
276
279
  </Typography>
@@ -36,7 +36,7 @@ export const ToAddressRequiredMessage: React.FC<
36
36
  </Typography>
37
37
  }
38
38
  icon={<Wallet />}
39
- multilineTitle
39
+ multiline
40
40
  />
41
41
  </Box>
42
42
  </Collapse>
@@ -74,7 +74,11 @@ export const TokenBase: FC<TokenProps & BoxProps> = ({
74
74
  }
75
75
 
76
76
  const tokenAmount = formatTokenAmount(token.amount, token.decimals)
77
- const tokenPrice = formatTokenPrice(tokenAmount, token.priceUSD)
77
+ const tokenPrice = formatTokenPrice(
78
+ token.amount,
79
+ token.priceUSD,
80
+ token.decimals
81
+ )
78
82
 
79
83
  let priceImpact: number | undefined = undefined
80
84
  let priceImpactPercent: number | undefined = undefined
@@ -127,6 +131,7 @@ export const TokenBase: FC<TokenProps & BoxProps> = ({
127
131
  display: 'flex',
128
132
  alignItems: 'center',
129
133
  }}
134
+ title={tokenAmount}
130
135
  >
131
136
  <TextFitter
132
137
  height={30}
@@ -134,7 +139,7 @@ export const TokenBase: FC<TokenProps & BoxProps> = ({
134
139
  fontWeight: 700,
135
140
  }}
136
141
  >
137
- {t('format.number', {
142
+ {t('format.tokenAmount', {
138
143
  value: tokenAmount,
139
144
  })}
140
145
  </TextFitter>