@lifi/widget 3.25.0 → 3.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/dist/esm/components/AmountInput/AmountInput.js +75 -17
- package/dist/esm/components/AmountInput/AmountInput.js.map +1 -1
- package/dist/esm/components/AmountInput/AmountInput.style.d.ts +4 -0
- package/dist/esm/components/AmountInput/AmountInput.style.js +11 -0
- package/dist/esm/components/AmountInput/AmountInput.style.js.map +1 -1
- package/dist/esm/components/AmountInput/AmountInputAdornment.style.d.ts +1 -0
- package/dist/esm/components/AmountInput/AmountInputAdornment.style.js +64 -5
- package/dist/esm/components/AmountInput/AmountInputAdornment.style.js.map +1 -1
- package/dist/esm/components/AmountInput/AmountInputEndAdornment.js +20 -7
- package/dist/esm/components/AmountInput/AmountInputEndAdornment.js.map +1 -1
- package/dist/esm/components/AmountInput/PriceFormHelperText.js +41 -15
- package/dist/esm/components/AmountInput/PriceFormHelperText.js.map +1 -1
- package/dist/esm/components/AmountInput/PriceFormHelperText.style.d.ts +1 -0
- package/dist/esm/components/AmountInput/PriceFormHelperText.style.js +29 -0
- package/dist/esm/components/AmountInput/PriceFormHelperText.style.js.map +1 -0
- package/dist/esm/components/AppContainer.js +1 -0
- package/dist/esm/components/AppContainer.js.map +1 -1
- package/dist/esm/components/ChainSelect/useChainSelect.js +2 -4
- package/dist/esm/components/ChainSelect/useChainSelect.js.map +1 -1
- package/dist/esm/components/Chains/VirtualizedChainList.js +5 -3
- package/dist/esm/components/Chains/VirtualizedChainList.js.map +1 -1
- package/dist/esm/components/Header/NavigationHeader.js +5 -1
- package/dist/esm/components/Header/NavigationHeader.js.map +1 -1
- package/dist/esm/components/Routes/RoutesContent.js +3 -2
- package/dist/esm/components/Routes/RoutesContent.js.map +1 -1
- package/dist/esm/components/Routes/RoutesExpanded.style.js +3 -2
- package/dist/esm/components/Routes/RoutesExpanded.style.js.map +1 -1
- package/dist/esm/components/SendToWallet/SendToWalletButton.js +1 -1
- package/dist/esm/components/SendToWallet/SendToWalletButton.js.map +1 -1
- package/dist/esm/components/SendToWallet/SendToWalletExpandButton.js +3 -3
- package/dist/esm/components/SendToWallet/SendToWalletExpandButton.js.map +1 -1
- package/dist/esm/components/Step/StepProcess.js +3 -8
- package/dist/esm/components/Step/StepProcess.js.map +1 -1
- package/dist/esm/components/TokenList/TokenDetailsSheetContent.js +1 -2
- package/dist/esm/components/TokenList/TokenDetailsSheetContent.js.map +1 -1
- package/dist/esm/components/TokenList/useTokenSelect.js +2 -4
- package/dist/esm/components/TokenList/useTokenSelect.js.map +1 -1
- package/dist/esm/config/version.d.ts +1 -1
- package/dist/esm/config/version.js +1 -1
- package/dist/esm/hooks/useFromAmountThreshold.js +2 -2
- package/dist/esm/hooks/useFromAmountThreshold.js.map +1 -1
- package/dist/esm/hooks/useGasSufficiency.js +3 -3
- package/dist/esm/hooks/useGasSufficiency.js.map +1 -1
- package/dist/esm/hooks/useNavigateBack.d.ts +1 -1
- package/dist/esm/hooks/useNavigateBack.js +8 -2
- package/dist/esm/hooks/useNavigateBack.js.map +1 -1
- package/dist/esm/hooks/useRouteExecution.js +1 -2
- package/dist/esm/hooks/useRouteExecution.js.map +1 -1
- package/dist/esm/hooks/useRoutes.js +19 -4
- package/dist/esm/hooks/useRoutes.js.map +1 -1
- package/dist/esm/hooks/useSettingMonitor.js +1 -2
- package/dist/esm/hooks/useSettingMonitor.js.map +1 -1
- package/dist/esm/hooks/useTokenAddressBalance.js +4 -1
- package/dist/esm/hooks/useTokenAddressBalance.js.map +1 -1
- package/dist/esm/hooks/useTokenSearch.js +5 -2
- package/dist/esm/hooks/useTokenSearch.js.map +1 -1
- package/dist/esm/hooks/useTokens.js +2 -2
- package/dist/esm/hooks/useTokens.js.map +1 -1
- package/dist/esm/hooks/useTools.js +2 -2
- package/dist/esm/hooks/useTools.js.map +1 -1
- package/dist/esm/i18n/bn.json +1 -1
- package/dist/esm/i18n/de.json +1 -1
- package/dist/esm/i18n/en.json +1 -1
- package/dist/esm/i18n/es.json +1 -1
- package/dist/esm/i18n/fr.json +1 -1
- package/dist/esm/i18n/hi.json +1 -1
- package/dist/esm/i18n/id.json +1 -1
- package/dist/esm/i18n/it.json +1 -1
- package/dist/esm/i18n/ja.json +1 -1
- package/dist/esm/i18n/ko.json +1 -1
- package/dist/esm/i18n/pt.json +1 -1
- package/dist/esm/i18n/th.json +1 -1
- package/dist/esm/i18n/tr.json +1 -1
- package/dist/esm/i18n/uk.json +1 -1
- package/dist/esm/i18n/vi.json +1 -1
- package/dist/esm/i18n/zh.json +1 -1
- package/dist/esm/pages/SelectEnabledToolsPage.js +4 -2
- package/dist/esm/pages/SelectEnabledToolsPage.js.map +1 -1
- package/dist/esm/pages/SelectTokenPage/SearchTokenInput.js +14 -7
- package/dist/esm/pages/SelectTokenPage/SearchTokenInput.js.map +1 -1
- package/dist/esm/pages/SettingsPage/BridgeAndExchangeSettings.js +1 -2
- package/dist/esm/pages/SettingsPage/BridgeAndExchangeSettings.js.map +1 -1
- package/dist/esm/pages/TransactionPage/TransactionPage.js +5 -3
- package/dist/esm/pages/TransactionPage/TransactionPage.js.map +1 -1
- package/dist/esm/stores/bookmarks/BookmarkStore.d.ts +1 -2
- package/dist/esm/stores/bookmarks/BookmarkStore.js +3 -3
- package/dist/esm/stores/bookmarks/BookmarkStore.js.map +1 -1
- package/dist/esm/stores/bookmarks/useBookmarkActions.js +1 -2
- package/dist/esm/stores/bookmarks/useBookmarkActions.js.map +1 -1
- package/dist/esm/stores/bookmarks/useBookmarks.js +1 -2
- package/dist/esm/stores/bookmarks/useBookmarks.js.map +1 -1
- package/dist/esm/stores/chains/ChainOrderStore.d.ts +1 -1
- package/dist/esm/stores/chains/ChainOrderStore.js +3 -2
- package/dist/esm/stores/chains/ChainOrderStore.js.map +1 -1
- package/dist/esm/stores/chains/useChainOrder.js +1 -2
- package/dist/esm/stores/chains/useChainOrder.js.map +1 -1
- package/dist/esm/stores/form/useFieldActions.js +1 -2
- package/dist/esm/stores/form/useFieldActions.js.map +1 -1
- package/dist/esm/stores/form/useFieldValues.js +1 -2
- package/dist/esm/stores/form/useFieldValues.js.map +1 -1
- package/dist/esm/stores/form/useFormStore.d.ts +1 -2
- package/dist/esm/stores/form/useFormStore.js +3 -3
- package/dist/esm/stores/form/useFormStore.js.map +1 -1
- package/dist/esm/stores/form/useTouchedFields.js +1 -2
- package/dist/esm/stores/form/useTouchedFields.js.map +1 -1
- package/dist/esm/stores/form/useValidation.js +5 -2
- package/dist/esm/stores/form/useValidation.js.map +1 -1
- package/dist/esm/stores/form/useValidationActions.js +1 -2
- package/dist/esm/stores/form/useValidationActions.js.map +1 -1
- package/dist/esm/stores/header/useHeaderStore.d.ts +1 -1
- package/dist/esm/stores/header/useHeaderStore.js +3 -2
- package/dist/esm/stores/header/useHeaderStore.js.map +1 -1
- package/dist/esm/stores/inputMode/useInputModeStore.d.ts +9 -0
- package/dist/esm/stores/inputMode/useInputModeStore.js +19 -0
- package/dist/esm/stores/inputMode/useInputModeStore.js.map +1 -0
- package/dist/esm/stores/routes/RouteExecutionStore.d.ts +1 -1
- package/dist/esm/stores/routes/RouteExecutionStore.js +3 -2
- package/dist/esm/stores/routes/RouteExecutionStore.js.map +1 -1
- package/dist/esm/stores/routes/useExecutingRoutesIds.js +1 -2
- package/dist/esm/stores/routes/useExecutingRoutesIds.js.map +1 -1
- package/dist/esm/stores/settings/useSendToWalletStore.d.ts +2 -1
- package/dist/esm/stores/settings/useSendToWalletStore.js +6 -3
- package/dist/esm/stores/settings/useSendToWalletStore.js.map +1 -1
- package/dist/esm/stores/settings/useSettings.js +1 -2
- package/dist/esm/stores/settings/useSettings.js.map +1 -1
- package/dist/esm/stores/settings/useSettingsActions.js +1 -2
- package/dist/esm/stores/settings/useSettingsActions.js.map +1 -1
- package/dist/esm/stores/settings/useSettingsStore.d.ts +2 -1
- package/dist/esm/stores/settings/useSettingsStore.js +5 -1
- package/dist/esm/stores/settings/useSettingsStore.js.map +1 -1
- package/dist/esm/stores/settings/useSplitSubvariantStore.js +2 -1
- package/dist/esm/stores/settings/useSplitSubvariantStore.js.map +1 -1
- package/dist/esm/themes/createTheme.js +5 -1
- package/dist/esm/themes/createTheme.js.map +1 -1
- package/dist/esm/types/widget.d.ts +2 -1
- package/dist/esm/types/widget.js +1 -0
- package/dist/esm/types/widget.js.map +1 -1
- package/dist/esm/utils/format.d.ts +4 -0
- package/dist/esm/utils/format.js +26 -0
- package/dist/esm/utils/format.js.map +1 -1
- package/dist/esm/utils/getPriceImpact.d.ts +2 -2
- package/dist/esm/utils/getPriceImpact.js.map +1 -1
- package/package.json +12 -12
- package/package.json.tmp +14 -14
- package/src/components/AmountInput/AmountInput.style.tsx +13 -0
- package/src/components/AmountInput/AmountInput.tsx +91 -18
- package/src/components/AmountInput/AmountInputAdornment.style.tsx +66 -5
- package/src/components/AmountInput/AmountInputEndAdornment.tsx +40 -10
- package/src/components/AmountInput/PriceFormHelperText.style.tsx +29 -0
- package/src/components/AmountInput/PriceFormHelperText.tsx +63 -19
- package/src/components/AppContainer.tsx +1 -0
- package/src/components/ChainSelect/useChainSelect.ts +2 -4
- package/src/components/Chains/VirtualizedChainList.tsx +5 -6
- package/src/components/Header/NavigationHeader.tsx +10 -1
- package/src/components/Routes/RoutesContent.tsx +6 -2
- package/src/components/Routes/RoutesExpanded.style.ts +3 -2
- package/src/components/SendToWallet/SendToWalletButton.tsx +1 -1
- package/src/components/SendToWallet/SendToWalletExpandButton.tsx +8 -3
- package/src/components/Step/StepProcess.tsx +3 -8
- package/src/components/TokenList/TokenDetailsSheetContent.tsx +1 -2
- package/src/components/TokenList/useTokenSelect.ts +2 -4
- package/src/config/version.ts +1 -1
- package/src/hooks/useFromAmountThreshold.ts +6 -2
- package/src/hooks/useGasSufficiency.ts +4 -4
- package/src/hooks/useNavigateBack.ts +26 -17
- package/src/hooks/useRouteExecution.ts +1 -3
- package/src/hooks/useRoutes.ts +24 -4
- package/src/hooks/useSettingMonitor.ts +7 -11
- package/src/hooks/useTokenAddressBalance.ts +6 -1
- package/src/hooks/useTokenSearch.ts +5 -2
- package/src/hooks/useTokens.ts +2 -2
- package/src/hooks/useTools.ts +2 -2
- package/src/i18n/bn.json +1 -1
- package/src/i18n/de.json +1 -1
- package/src/i18n/en.json +1 -1
- package/src/i18n/es.json +1 -1
- package/src/i18n/fr.json +1 -1
- package/src/i18n/hi.json +1 -1
- package/src/i18n/id.json +1 -1
- package/src/i18n/it.json +1 -1
- package/src/i18n/ja.json +1 -1
- package/src/i18n/ko.json +1 -1
- package/src/i18n/pt.json +1 -1
- package/src/i18n/th.json +1 -1
- package/src/i18n/tr.json +1 -1
- package/src/i18n/uk.json +1 -1
- package/src/i18n/vi.json +1 -1
- package/src/i18n/zh.json +1 -1
- package/src/pages/SelectEnabledToolsPage.tsx +4 -5
- package/src/pages/SelectTokenPage/SearchTokenInput.tsx +19 -7
- package/src/pages/SettingsPage/BridgeAndExchangeSettings.tsx +1 -2
- package/src/pages/TransactionPage/TransactionPage.tsx +17 -9
- package/src/stores/bookmarks/BookmarkStore.tsx +3 -6
- package/src/stores/bookmarks/useBookmarkActions.ts +9 -13
- package/src/stores/bookmarks/useBookmarks.ts +1 -3
- package/src/stores/chains/ChainOrderStore.tsx +3 -3
- package/src/stores/chains/useChainOrder.ts +1 -5
- package/src/stores/form/useFieldActions.ts +10 -14
- package/src/stores/form/useFieldValues.ts +1 -3
- package/src/stores/form/useFormStore.ts +3 -6
- package/src/stores/form/useTouchedFields.ts +1 -2
- package/src/stores/form/useValidation.ts +5 -5
- package/src/stores/form/useValidationActions.ts +5 -9
- package/src/stores/header/useHeaderStore.tsx +3 -5
- package/src/stores/inputMode/useInputModeStore.ts +29 -0
- package/src/stores/routes/RouteExecutionStore.tsx +3 -3
- package/src/stores/routes/useExecutingRoutesIds.ts +14 -17
- package/src/stores/settings/useSendToWalletStore.ts +11 -8
- package/src/stores/settings/useSettings.ts +8 -11
- package/src/stores/settings/useSettingsActions.ts +8 -12
- package/src/stores/settings/useSettingsStore.ts +8 -1
- package/src/stores/settings/useSplitSubvariantStore.tsx +2 -1
- package/src/themes/createTheme.ts +5 -1
- package/src/types/widget.ts +1 -0
- package/src/utils/format.ts +33 -0
- package/src/utils/getPriceImpact.ts +2 -2
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { useAccount } from '@lifi/wallet-management'
|
|
2
|
-
import { shallow } from 'zustand/shallow'
|
|
3
2
|
import { useRouteExecutionStore } from './RouteExecutionStore.js'
|
|
4
3
|
import type { RouteExecution } from './types.js'
|
|
5
4
|
import { RouteExecutionStatus } from './types.js'
|
|
@@ -7,21 +6,19 @@ import { RouteExecutionStatus } from './types.js'
|
|
|
7
6
|
export const useExecutingRoutesIds = () => {
|
|
8
7
|
const { accounts } = useAccount()
|
|
9
8
|
const accountAddresses = accounts.map((account) => account.address)
|
|
10
|
-
return useRouteExecutionStore(
|
|
11
|
-
(state)
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
(item)
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
(
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
.map(({ route }) => route.id),
|
|
25
|
-
shallow
|
|
9
|
+
return useRouteExecutionStore((state) =>
|
|
10
|
+
(Object.values(state.routes) as RouteExecution[])
|
|
11
|
+
.filter(
|
|
12
|
+
(item) =>
|
|
13
|
+
accountAddresses.includes(item.route.fromAddress) &&
|
|
14
|
+
(item.status === RouteExecutionStatus.Pending ||
|
|
15
|
+
item.status === RouteExecutionStatus.Failed)
|
|
16
|
+
)
|
|
17
|
+
.sort(
|
|
18
|
+
(a, b) =>
|
|
19
|
+
(b?.route.steps[0].execution?.process[0]?.startedAt ?? 0) -
|
|
20
|
+
(a?.route.steps[0].execution?.process[0]?.startedAt ?? 0)
|
|
21
|
+
)
|
|
22
|
+
.map(({ route }) => route.id)
|
|
26
23
|
)
|
|
27
24
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useShallow } from 'zustand/shallow'
|
|
2
2
|
import { createWithEqualityFn } from 'zustand/traditional'
|
|
3
3
|
import type { SendToWalletStore } from './types.js'
|
|
4
4
|
|
|
5
|
-
export const
|
|
5
|
+
export const sendToWalletStore = createWithEqualityFn<SendToWalletStore>(
|
|
6
6
|
(set) => ({
|
|
7
7
|
showSendToWallet: false,
|
|
8
8
|
setSendToWallet: (value) =>
|
|
@@ -13,13 +13,16 @@ export const useSendToWalletStore = createWithEqualityFn<SendToWalletStore>(
|
|
|
13
13
|
Object.is
|
|
14
14
|
)
|
|
15
15
|
|
|
16
|
+
export const useSendToWalletStore = <T>(
|
|
17
|
+
selector: (state: SendToWalletStore) => T
|
|
18
|
+
): T => {
|
|
19
|
+
return sendToWalletStore(useShallow(selector))
|
|
20
|
+
}
|
|
21
|
+
|
|
16
22
|
export const useSendToWalletActions = () => {
|
|
17
|
-
const actions = useSendToWalletStore(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}),
|
|
21
|
-
shallow
|
|
22
|
-
)
|
|
23
|
+
const actions = useSendToWalletStore((store) => ({
|
|
24
|
+
setSendToWallet: store.setSendToWallet,
|
|
25
|
+
}))
|
|
23
26
|
|
|
24
27
|
return actions
|
|
25
28
|
}
|
|
@@ -1,19 +1,16 @@
|
|
|
1
|
-
import { shallow } from 'zustand/shallow'
|
|
2
1
|
import type { SettingsState } from './types.js'
|
|
3
2
|
import { useSettingsStore } from './useSettingsStore.js'
|
|
4
3
|
|
|
5
4
|
export const useSettings = <K extends keyof SettingsState>(
|
|
6
5
|
keys: Array<K>
|
|
7
6
|
): Pick<SettingsState, (typeof keys)[number]> => {
|
|
8
|
-
return useSettingsStore(
|
|
9
|
-
(
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
),
|
|
17
|
-
shallow
|
|
7
|
+
return useSettingsStore((state) =>
|
|
8
|
+
keys.reduce(
|
|
9
|
+
(values, key) => {
|
|
10
|
+
values[key] = state[key]
|
|
11
|
+
return values
|
|
12
|
+
},
|
|
13
|
+
{} as Pick<SettingsState, (typeof keys)[number]>
|
|
14
|
+
)
|
|
18
15
|
)
|
|
19
16
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { useCallback } from 'react'
|
|
2
|
-
import { shallow } from 'zustand/shallow'
|
|
3
2
|
import type { widgetEvents } from '../../hooks/useWidgetEvents.js'
|
|
4
3
|
import { useWidgetEvents } from '../../hooks/useWidgetEvents.js'
|
|
5
4
|
import { WidgetEvent } from '../../types/events.js'
|
|
@@ -47,17 +46,14 @@ const emitEventOnChange = <T extends (...args: any[]) => any>(
|
|
|
47
46
|
|
|
48
47
|
export const useSettingsActions = () => {
|
|
49
48
|
const emitter = useWidgetEvents()
|
|
50
|
-
const actions = useSettingsStore(
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}),
|
|
59
|
-
shallow
|
|
60
|
-
)
|
|
49
|
+
const actions = useSettingsStore((state) => ({
|
|
50
|
+
setValue: state.setValue,
|
|
51
|
+
getValue: state.getValue,
|
|
52
|
+
getSettings: state.getSettings,
|
|
53
|
+
reset: state.reset,
|
|
54
|
+
setToolValue: state.setToolValue,
|
|
55
|
+
toggleToolKeys: state.toggleToolKeys,
|
|
56
|
+
}))
|
|
61
57
|
|
|
62
58
|
const setValueWithEmittedEvent = useCallback<ValueSetter<SettingsProps>>(
|
|
63
59
|
(value, newValue) => {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/** biome-ignore-all lint/correctness/noUnusedVariables: allowed in this store */
|
|
2
2
|
import type { StateCreator } from 'zustand'
|
|
3
3
|
import { persist } from 'zustand/middleware'
|
|
4
|
+
import { useShallow } from 'zustand/shallow'
|
|
4
5
|
import { createWithEqualityFn } from 'zustand/traditional'
|
|
5
6
|
import type { SettingsProps, SettingsState } from './types.js'
|
|
6
7
|
import { SettingsToolTypes } from './types.js'
|
|
@@ -28,7 +29,7 @@ export const defaultSettings: SettingsProps = {
|
|
|
28
29
|
_enabledExchanges: {},
|
|
29
30
|
}
|
|
30
31
|
|
|
31
|
-
export const
|
|
32
|
+
export const settingsStore = createWithEqualityFn<SettingsState>(
|
|
32
33
|
persist(
|
|
33
34
|
(set, get) => ({
|
|
34
35
|
...defaultSettings,
|
|
@@ -176,3 +177,9 @@ export const useSettingsStore = createWithEqualityFn<SettingsState>(
|
|
|
176
177
|
) as StateCreator<SettingsState, [], [], SettingsState>,
|
|
177
178
|
Object.is
|
|
178
179
|
)
|
|
180
|
+
|
|
181
|
+
export const useSettingsStore = <T>(
|
|
182
|
+
selector: (state: SettingsState) => T
|
|
183
|
+
): T => {
|
|
184
|
+
return settingsStore(useShallow(selector))
|
|
185
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { createContext, useContext, useRef } from 'react'
|
|
2
|
+
import { useShallow } from 'zustand/shallow'
|
|
2
3
|
import { createWithEqualityFn } from 'zustand/traditional'
|
|
3
4
|
import type {
|
|
4
5
|
SplitSubvariantProps,
|
|
@@ -47,7 +48,7 @@ export function useSplitSubvariantStore<T>(
|
|
|
47
48
|
selector: (state: SplitSubvariantState) => T
|
|
48
49
|
): T {
|
|
49
50
|
const useStore = useSplitSubvariantStoreContext()
|
|
50
|
-
return useStore(selector)
|
|
51
|
+
return useStore(useShallow(selector))
|
|
51
52
|
}
|
|
52
53
|
|
|
53
54
|
export const createSplitSubvariantStore = ({ state }: SplitSubvariantProps) =>
|
|
@@ -76,7 +76,11 @@ export const createTheme = (widgetTheme: WidgetTheme = {}) => {
|
|
|
76
76
|
: darken(secondaryMainColorDark, 0.2)
|
|
77
77
|
|
|
78
78
|
const theme = createMuiTheme({
|
|
79
|
-
cssVariables: {
|
|
79
|
+
cssVariables: {
|
|
80
|
+
cssVarPrefix: 'lifi',
|
|
81
|
+
colorSchemeSelector: 'class',
|
|
82
|
+
nativeColor: true,
|
|
83
|
+
},
|
|
80
84
|
colorSchemes: {
|
|
81
85
|
light: {
|
|
82
86
|
palette: {
|
package/src/types/widget.ts
CHANGED
|
@@ -112,6 +112,7 @@ export enum HiddenUI {
|
|
|
112
112
|
ChainSelect = 'chainSelect',
|
|
113
113
|
BridgesSettings = 'bridgesSettings',
|
|
114
114
|
AddressBookConnectedWallets = 'addressBookConnectedWallets',
|
|
115
|
+
LowAddressActivityConfirmation = 'lowAddressActivityConfirmation',
|
|
115
116
|
}
|
|
116
117
|
export type HiddenUIType = `${HiddenUI}`
|
|
117
118
|
|
package/src/utils/format.ts
CHANGED
|
@@ -96,6 +96,39 @@ export function formatTokenPrice(
|
|
|
96
96
|
return Number.parseFloat(formattedAmount) * Number.parseFloat(price)
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
+
/**
|
|
100
|
+
* Formatter for price value to token amount
|
|
101
|
+
*/
|
|
102
|
+
const formatter = new Intl.NumberFormat('en', {
|
|
103
|
+
notation: 'standard',
|
|
104
|
+
roundingPriority: 'morePrecision',
|
|
105
|
+
maximumSignificantDigits: 21,
|
|
106
|
+
maximumFractionDigits: 21,
|
|
107
|
+
useGrouping: false,
|
|
108
|
+
})
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Convert price value to token amount
|
|
112
|
+
*/
|
|
113
|
+
export function priceToTokenAmount(priceValue: string, priceUSD?: string) {
|
|
114
|
+
if (!priceValue || !priceUSD) {
|
|
115
|
+
return '0'
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
const numericPriceValue = Number.parseFloat(priceValue)
|
|
119
|
+
const numericPrice = Number.parseFloat(priceUSD)
|
|
120
|
+
|
|
121
|
+
if (
|
|
122
|
+
Number.isNaN(numericPriceValue) ||
|
|
123
|
+
Number.isNaN(numericPrice) ||
|
|
124
|
+
!numericPrice
|
|
125
|
+
) {
|
|
126
|
+
return '0'
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
return formatter.format(numericPriceValue / numericPrice)
|
|
130
|
+
}
|
|
131
|
+
|
|
99
132
|
const units = [
|
|
100
133
|
['day', 86400],
|
|
101
134
|
['hour', 3600],
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Token } from '@lifi/sdk'
|
|
2
2
|
import { formatTokenPrice } from './format.js'
|
|
3
3
|
|
|
4
|
-
interface
|
|
4
|
+
interface GetPriceImpactProps {
|
|
5
5
|
fromToken: Token
|
|
6
6
|
toToken: Token
|
|
7
7
|
fromAmount?: bigint
|
|
@@ -13,7 +13,7 @@ export const getPriceImpact = ({
|
|
|
13
13
|
toToken,
|
|
14
14
|
fromAmount,
|
|
15
15
|
toAmount,
|
|
16
|
-
}:
|
|
16
|
+
}: GetPriceImpactProps) => {
|
|
17
17
|
const fromTokenPrice = formatTokenPrice(
|
|
18
18
|
fromAmount,
|
|
19
19
|
fromToken.priceUSD,
|