@lifi/widget 3.8.0-beta.1 → 3.8.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 +16 -0
- package/dist/esm/components/GasMessage/GasRefuelMessage.js +2 -2
- package/dist/esm/components/GasMessage/GasRefuelMessage.js.map +1 -1
- package/dist/esm/components/Token/Token.js +7 -3
- package/dist/esm/components/Token/Token.js.map +1 -1
- package/dist/esm/components/TransactionDetails.js +8 -6
- package/dist/esm/components/TransactionDetails.js.map +1 -1
- package/dist/esm/config/version.d.ts +1 -1
- package/dist/esm/config/version.js +1 -1
- package/dist/esm/config/version.js.map +1 -1
- package/dist/esm/hooks/useLanguages.js +2 -2
- package/dist/esm/hooks/useLanguages.js.map +1 -1
- package/dist/esm/hooks/useSettingMonitor.js +3 -2
- package/dist/esm/hooks/useSettingMonitor.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/pages/SelectEnabledToolsPage.js +3 -6
- package/dist/esm/pages/SelectEnabledToolsPage.js.map +1 -1
- package/dist/esm/pages/SettingsPage/GasPriceSettings.js +2 -2
- package/dist/esm/pages/SettingsPage/GasPriceSettings.js.map +1 -1
- package/dist/esm/pages/SettingsPage/RoutePrioritySettings.js +2 -2
- package/dist/esm/pages/SettingsPage/RoutePrioritySettings.js.map +1 -1
- package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.js +16 -10
- package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.js.map +1 -1
- package/dist/esm/providers/WalletProvider/SDKProviders.js +2 -1
- package/dist/esm/providers/WalletProvider/SDKProviders.js.map +1 -1
- package/dist/esm/providers/WalletProvider/UTXOBaseProvider.js +2 -1
- package/dist/esm/providers/WalletProvider/UTXOBaseProvider.js.map +1 -1
- package/dist/esm/providers/WalletProvider/UTXOProvider.js +1 -1
- package/dist/esm/providers/WalletProvider/UTXOProvider.js.map +1 -1
- package/dist/esm/providers/WidgetProvider/WidgetProvider.js +3 -2
- package/dist/esm/providers/WidgetProvider/WidgetProvider.js.map +1 -1
- package/dist/esm/stores/form/types.d.ts +1 -1
- package/dist/esm/stores/form/useFieldActions.d.ts +10 -2
- package/dist/esm/stores/form/useFieldActions.js +39 -1
- package/dist/esm/stores/form/useFieldActions.js.map +1 -1
- package/dist/esm/stores/settings/types.d.ts +5 -2
- package/dist/esm/stores/settings/types.js.map +1 -1
- package/dist/esm/stores/settings/useAppearance.js +3 -2
- package/dist/esm/stores/settings/useAppearance.js.map +1 -1
- package/dist/esm/stores/settings/useSettingsActions.d.ts +9 -0
- package/dist/esm/stores/settings/useSettingsActions.js +77 -0
- package/dist/esm/stores/settings/useSettingsActions.js.map +1 -0
- package/dist/esm/stores/settings/useSettingsStore.d.ts +0 -2
- package/dist/esm/stores/settings/useSettingsStore.js +4 -26
- package/dist/esm/stores/settings/useSettingsStore.js.map +1 -1
- package/dist/esm/stores/settings/utils/getStateValues.d.ts +2 -0
- package/dist/esm/stores/settings/utils/getStateValues.js +15 -0
- package/dist/esm/stores/settings/utils/getStateValues.js.map +1 -0
- package/dist/esm/types/events.d.ts +21 -4
- package/dist/esm/types/events.js +2 -0
- package/dist/esm/types/events.js.map +1 -1
- package/dist/esm/utils/chainType.js +2 -1
- package/dist/esm/utils/chainType.js.map +1 -1
- package/dist/esm/utils/deepEqual.d.ts +2 -0
- package/dist/esm/utils/deepEqual.js +52 -0
- package/dist/esm/utils/deepEqual.js.map +1 -0
- package/dist/esm/utils/getPriceImpact.d.ts +9 -0
- package/dist/esm/utils/getPriceImpact.js +10 -0
- package/dist/esm/utils/getPriceImpact.js.map +1 -0
- package/package.json +10 -7
- package/src/components/GasMessage/GasRefuelMessage.tsx +3 -2
- package/src/components/Token/Token.tsx +7 -8
- package/src/components/TransactionDetails.tsx +8 -17
- package/src/config/version.ts +1 -1
- package/src/hooks/useLanguages.ts +2 -2
- package/src/hooks/useSettingMonitor.ts +2 -2
- package/src/index.ts +1 -0
- package/src/pages/SelectEnabledToolsPage.tsx +6 -10
- package/src/pages/SettingsPage/GasPriceSettings.tsx +2 -2
- package/src/pages/SettingsPage/RoutePrioritySettings.tsx +2 -2
- package/src/pages/SettingsPage/SlippageSettings/SlippageSettings.tsx +31 -21
- package/src/providers/WalletProvider/SDKProviders.tsx +2 -4
- package/src/providers/WalletProvider/UTXOBaseProvider.tsx +2 -5
- package/src/providers/WalletProvider/UTXOProvider.tsx +1 -1
- package/src/providers/WidgetProvider/WidgetProvider.tsx +5 -3
- package/src/stores/form/types.ts +1 -1
- package/src/stores/form/useFieldActions.ts +73 -2
- package/src/stores/settings/types.ts +7 -2
- package/src/stores/settings/useAppearance.ts +3 -5
- package/src/stores/settings/useSettingsActions.ts +152 -0
- package/src/stores/settings/useSettingsStore.ts +4 -34
- package/src/stores/settings/utils/getStateValues.ts +16 -0
- package/src/types/events.ts +24 -3
- package/src/utils/chainType.ts +2 -1
- package/src/utils/deepEqual.ts +62 -0
- package/src/utils/getPriceImpact.ts +26 -0
|
@@ -1,6 +1,10 @@
|
|
|
1
|
+
import { useCallback } from 'react';
|
|
1
2
|
import { shallow } from 'zustand/shallow';
|
|
3
|
+
import { useWidgetEvents } from '../../hooks/useWidgetEvents.js';
|
|
4
|
+
import { WidgetEvent } from '../../types/events.js';
|
|
2
5
|
import { useFormStore } from './useFormStore.js';
|
|
3
6
|
export const useFieldActions = () => {
|
|
7
|
+
const emitter = useWidgetEvents();
|
|
4
8
|
const actions = useFormStore((store) => ({
|
|
5
9
|
getFieldValues: store.getFieldValues,
|
|
6
10
|
isTouched: store.isTouched,
|
|
@@ -10,6 +14,40 @@ export const useFieldActions = () => {
|
|
|
10
14
|
setFieldValue: store.setFieldValue,
|
|
11
15
|
setUserAndDefaultValues: store.setUserAndDefaultValues,
|
|
12
16
|
}), shallow);
|
|
13
|
-
|
|
17
|
+
const setFieldValueWithEmittedEvents = useCallback((fieldName, newValue, options) => {
|
|
18
|
+
const oldValue = actions.getFieldValues(fieldName)[0];
|
|
19
|
+
actions.setFieldValue(fieldName, newValue, options);
|
|
20
|
+
if (newValue !== oldValue) {
|
|
21
|
+
emitter.emit(WidgetEvent.FormFieldChanged, {
|
|
22
|
+
fieldName,
|
|
23
|
+
newValue,
|
|
24
|
+
oldValue,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}, [actions, emitter]);
|
|
28
|
+
const setUserAndDefaultValuesWithEmittedEvents = useCallback((formValues) => {
|
|
29
|
+
const formValuesKeys = Object.keys(formValues);
|
|
30
|
+
const changedValues = formValuesKeys.reduce((accum, fieldName) => {
|
|
31
|
+
const oldValue = actions.getFieldValues(fieldName)[0];
|
|
32
|
+
const newValue = formValues[fieldName];
|
|
33
|
+
if (newValue !== oldValue) {
|
|
34
|
+
accum.push({ fieldName, newValue, oldValue });
|
|
35
|
+
}
|
|
36
|
+
return accum;
|
|
37
|
+
}, []);
|
|
38
|
+
actions.setUserAndDefaultValues(formValues);
|
|
39
|
+
changedValues.forEach(({ fieldName, newValue, oldValue }) => {
|
|
40
|
+
emitter.emit(WidgetEvent.FormFieldChanged, {
|
|
41
|
+
fieldName,
|
|
42
|
+
newValue,
|
|
43
|
+
oldValue,
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
}, [actions, emitter]);
|
|
47
|
+
return {
|
|
48
|
+
...actions,
|
|
49
|
+
setFieldValue: setFieldValueWithEmittedEvents,
|
|
50
|
+
setUserAndDefaultValues: setUserAndDefaultValuesWithEmittedEvents,
|
|
51
|
+
};
|
|
14
52
|
};
|
|
15
53
|
//# sourceMappingURL=useFieldActions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFieldActions.js","sourceRoot":"","sources":["../../../../src/stores/form/useFieldActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"useFieldActions.js","sourceRoot":"","sources":["../../../../src/stores/form/useFieldActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAQnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,MAAM,OAAO,GAAG,eAAe,EAAE,CAAA;IACjC,MAAM,OAAO,GAAG,YAAY,CAC1B,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACV,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,uBAAuB,EAAE,KAAK,CAAC,uBAAuB;KACvD,CAAC,EACF,OAAO,CACR,CAAA;IAED,MAAM,8BAA8B,GAAG,WAAW,CAChD,CACE,SAAyB,EACzB,QAA0B,EAC1B,OAAoB,EACpB,EAAE;QACF,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;QAErD,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;QAEnD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE;gBACzC,SAAS;gBACT,QAAQ;gBACR,QAAQ;aACW,CAAC,CAAA;QACxB,CAAC;IACH,CAAC,EACD,CAAC,OAAO,EAAE,OAAO,CAAC,CACnB,CAAA;IAED,MAAM,wCAAwC,GAAG,WAAW,CAC1D,CAAC,UAAkC,EAAE,EAAE;QACrC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAqB,CAAA;QAElE,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,CACzC,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;YACnB,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;YACrD,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,CAAA;YAEtC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;YAC/C,CAAC;YAED,OAAO,KAAK,CAAA;QACd,CAAC,EACD,EAIG,CACJ,CAAA;QAED,OAAO,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAA;QAE3C,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC1D,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE;gBACzC,SAAS;gBACT,QAAQ;gBACR,QAAQ;aACW,CAAC,CAAA;QACxB,CAAC,CAAC,CAAA;IACJ,CAAC,EACD,CAAC,OAAO,EAAE,OAAO,CAAC,CACnB,CAAA;IAED,OAAO;QACL,GAAG,OAAO;QACV,aAAa,EAAE,8BAA8B;QAC7C,uBAAuB,EAAE,wCAAwC;KAClE,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -4,6 +4,7 @@ import type { StoreApi } from 'zustand';
|
|
|
4
4
|
import type { UseBoundStoreWithEqualityFn } from 'zustand/traditional';
|
|
5
5
|
import type { Appearance, SplitSubvariant } from '../../types/widget.js';
|
|
6
6
|
export type ValueSetter<S> = <K extends keyof S>(key: K, value: S[Extract<K, string>]) => void;
|
|
7
|
+
export type ValueGetter<S> = <K extends keyof S>(key: K) => S[K];
|
|
7
8
|
export type ValuesSetter<S> = <K extends keyof S>(values: Record<K, S[Extract<K, string>]>) => void;
|
|
8
9
|
export declare const SettingsToolTypes: readonly ["Bridges", "Exchanges"];
|
|
9
10
|
export type SettingsToolType = (typeof SettingsToolTypes)[number];
|
|
@@ -21,14 +22,16 @@ export interface SettingsProps {
|
|
|
21
22
|
enabledExchanges: string[];
|
|
22
23
|
_enabledExchanges: Record<string, boolean>;
|
|
23
24
|
}
|
|
24
|
-
export interface
|
|
25
|
+
export interface SettingsActions {
|
|
25
26
|
setValue: ValueSetter<SettingsProps>;
|
|
26
|
-
|
|
27
|
+
getValue: ValueGetter<SettingsProps>;
|
|
28
|
+
getSettings: () => SettingsProps;
|
|
27
29
|
initializeTools(toolType: SettingsToolType, tools: string[], reset?: boolean): void;
|
|
28
30
|
setToolValue(toolType: SettingsToolType, tool: string, value: boolean): void;
|
|
29
31
|
toggleToolKeys(toolType: SettingsToolType, toolKeys: string[]): void;
|
|
30
32
|
reset(bridges: string[], exchanges: string[]): void;
|
|
31
33
|
}
|
|
34
|
+
export type SettingsState = SettingsProps & SettingsActions;
|
|
32
35
|
export interface SendToWalletState {
|
|
33
36
|
showSendToWallet: boolean;
|
|
34
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/stores/settings/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/stores/settings/types.ts"],"names":[],"mappings":"AAiBA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,SAAS,EAAE,WAAW,CAAU,CAAA"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useSettingsActions } from '../../stores/settings/useSettingsActions.js';
|
|
2
2
|
import { useSettingsStore } from './useSettingsStore.js';
|
|
3
3
|
export const useAppearance = () => {
|
|
4
|
-
const
|
|
4
|
+
const { setValue } = useSettingsActions();
|
|
5
|
+
const appearance = useSettingsStore((state) => state.appearance);
|
|
5
6
|
const setAppearance = (appearance) => {
|
|
6
7
|
setValue('appearance', appearance);
|
|
7
8
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAppearance.js","sourceRoot":"","sources":["../../../../src/stores/settings/useAppearance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"useAppearance.js","sourceRoot":"","sources":["../../../../src/stores/settings/useAppearance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAA;AAEhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,MAAM,CAAC,MAAM,aAAa,GAAG,GAG3B,EAAE;IACF,MAAM,EAAE,QAAQ,EAAE,GAAG,kBAAkB,EAAE,CAAA;IACzC,MAAM,UAAU,GAAG,gBAAgB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IAChE,MAAM,aAAa,GAAG,CAAC,UAAsB,EAAE,EAAE;QAC/C,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IACpC,CAAC,CAAA;IACD,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;AACpC,CAAC,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { WidgetConfig } from '../../types/widget.js';
|
|
2
|
+
import type { SettingsProps, SettingsToolType, ValueSetter } from './types.js';
|
|
3
|
+
export declare const useSettingsActions: () => {
|
|
4
|
+
setValue: ValueSetter<SettingsProps>;
|
|
5
|
+
setDefaultSettings: (config?: WidgetConfig) => void;
|
|
6
|
+
resetSettings: (bridges: string[], exchanges: string[]) => void;
|
|
7
|
+
setToolValue: (toolType: SettingsToolType, tool: string, value: boolean) => void;
|
|
8
|
+
toggleToolKeys: (toolType: SettingsToolType, toolKeys: string[]) => void;
|
|
9
|
+
};
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { useCallback } from 'react';
|
|
2
|
+
import { shallow } from 'zustand/shallow';
|
|
3
|
+
import { useWidgetEvents } from '../../hooks/useWidgetEvents.js';
|
|
4
|
+
import { WidgetEvent } from '../../types/events.js';
|
|
5
|
+
import { deepEqual } from '../../utils/deepEqual.js';
|
|
6
|
+
import { defaultConfigurableSettings, useSettingsStore, } from './useSettingsStore.js';
|
|
7
|
+
const emitEventOnChange = (emitter, actions, settingFunction, ...args) => {
|
|
8
|
+
const oldSettings = actions.getSettings();
|
|
9
|
+
settingFunction(...args);
|
|
10
|
+
const newSettings = actions.getSettings();
|
|
11
|
+
if (!deepEqual(oldSettings, newSettings)) {
|
|
12
|
+
;
|
|
13
|
+
Object.keys(oldSettings).forEach((toolKey) => {
|
|
14
|
+
if (!deepEqual(oldSettings[toolKey], newSettings[toolKey])) {
|
|
15
|
+
emitter.emit(WidgetEvent.SettingUpdated, {
|
|
16
|
+
setting: toolKey,
|
|
17
|
+
newValue: newSettings[toolKey],
|
|
18
|
+
oldValue: oldSettings[toolKey],
|
|
19
|
+
newSettings: newSettings,
|
|
20
|
+
oldSettings: oldSettings,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
export const useSettingsActions = () => {
|
|
27
|
+
const emitter = useWidgetEvents();
|
|
28
|
+
const actions = useSettingsStore((state) => ({
|
|
29
|
+
setValue: state.setValue,
|
|
30
|
+
getValue: state.getValue,
|
|
31
|
+
getSettings: state.getSettings,
|
|
32
|
+
reset: state.reset,
|
|
33
|
+
setToolValue: state.setToolValue,
|
|
34
|
+
toggleToolKeys: state.toggleToolKeys,
|
|
35
|
+
}), shallow);
|
|
36
|
+
const setValueWithEmittedEvent = useCallback((value, newValue) => {
|
|
37
|
+
const setting = value;
|
|
38
|
+
emitEventOnChange(emitter, actions, actions.setValue, setting, newValue);
|
|
39
|
+
}, [emitter, actions]);
|
|
40
|
+
const setDefaultSettingsWithEmittedEvents = useCallback((config) => {
|
|
41
|
+
const slippage = actions.getValue('slippage');
|
|
42
|
+
const routePriority = actions.getValue('routePriority');
|
|
43
|
+
const gasPrice = actions.getValue('gasPrice');
|
|
44
|
+
const defaultSlippage = (config?.slippage || config?.sdkConfig?.routeOptions?.slippage || 0) *
|
|
45
|
+
100;
|
|
46
|
+
const defaultRoutePriority = config?.routePriority || config?.sdkConfig?.routeOptions?.order;
|
|
47
|
+
defaultConfigurableSettings.slippage = (defaultSlippage || defaultConfigurableSettings.slippage)?.toString();
|
|
48
|
+
defaultConfigurableSettings.routePriority =
|
|
49
|
+
defaultRoutePriority || defaultConfigurableSettings.routePriority;
|
|
50
|
+
if (!slippage) {
|
|
51
|
+
setValueWithEmittedEvent('slippage', defaultConfigurableSettings.slippage);
|
|
52
|
+
}
|
|
53
|
+
if (!routePriority) {
|
|
54
|
+
setValueWithEmittedEvent('routePriority', defaultConfigurableSettings.routePriority);
|
|
55
|
+
}
|
|
56
|
+
if (!gasPrice) {
|
|
57
|
+
setValueWithEmittedEvent('gasPrice', defaultConfigurableSettings.gasPrice);
|
|
58
|
+
}
|
|
59
|
+
}, [actions, setValueWithEmittedEvent]);
|
|
60
|
+
const resetWithEmittedEvents = useCallback((bridges, exchanges) => {
|
|
61
|
+
emitEventOnChange(emitter, actions, actions.reset, bridges, exchanges);
|
|
62
|
+
}, [emitter, actions]);
|
|
63
|
+
const setToolValueWithEmittedEvents = useCallback((toolType, tool, value) => {
|
|
64
|
+
emitEventOnChange(emitter, actions, actions.setToolValue, toolType, tool, value);
|
|
65
|
+
}, [emitter, actions]);
|
|
66
|
+
const toggleToolKeysWithEmittedEvents = useCallback((toolType, toolKeys) => {
|
|
67
|
+
emitEventOnChange(emitter, actions, actions.toggleToolKeys, toolType, toolKeys);
|
|
68
|
+
}, [emitter, actions]);
|
|
69
|
+
return {
|
|
70
|
+
setValue: setValueWithEmittedEvent,
|
|
71
|
+
setDefaultSettings: setDefaultSettingsWithEmittedEvents,
|
|
72
|
+
resetSettings: resetWithEmittedEvents,
|
|
73
|
+
setToolValue: setToolValueWithEmittedEvents,
|
|
74
|
+
toggleToolKeys: toggleToolKeysWithEmittedEvents,
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
//# sourceMappingURL=useSettingsActions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSettingsActions.js","sourceRoot":"","sources":["../../../../src/stores/settings/useSettingsActions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import type { WidgetConfig } from '../../types/widget.js';
|
|
2
1
|
import type { SettingsProps, SettingsState } from './types.js';
|
|
3
2
|
export declare const defaultSlippage = "0.5";
|
|
4
3
|
export declare const defaultConfigurableSettings: Pick<SettingsState, 'routePriority' | 'slippage' | 'gasPrice'>;
|
|
5
4
|
export declare const defaultSettings: SettingsProps;
|
|
6
5
|
export declare const useSettingsStore: import("zustand/traditional").UseBoundStoreWithEqualityFn<import("zustand").StoreApi<SettingsState>>;
|
|
7
|
-
export declare const setDefaultSettings: (config?: WidgetConfig) => void;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { persist } from 'zustand/middleware';
|
|
2
2
|
import { createWithEqualityFn } from 'zustand/traditional';
|
|
3
3
|
import { SettingsToolTypes } from './types.js';
|
|
4
|
+
import { getStateValues } from './utils/getStateValues.js';
|
|
4
5
|
export const defaultSlippage = '0.5';
|
|
5
6
|
export const defaultConfigurableSettings = {
|
|
6
7
|
routePriority: 'CHEAPEST',
|
|
@@ -23,15 +24,8 @@ export const useSettingsStore = createWithEqualityFn(persist((set, get) => ({
|
|
|
23
24
|
setValue: (key, value) => set(() => ({
|
|
24
25
|
[key]: value,
|
|
25
26
|
})),
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
for (const key in values) {
|
|
29
|
-
if (Object.hasOwn(state, key)) {
|
|
30
|
-
updatedState[key] = values[key];
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
return updatedState;
|
|
34
|
-
}),
|
|
27
|
+
getSettings: () => getStateValues(get()),
|
|
28
|
+
getValue: (key) => get()[key],
|
|
35
29
|
initializeTools: (toolType, tools, reset) => {
|
|
36
30
|
if (!tools.length) {
|
|
37
31
|
return;
|
|
@@ -104,6 +98,7 @@ export const useSettingsStore = createWithEqualityFn(persist((set, get) => ({
|
|
|
104
98
|
}));
|
|
105
99
|
get().initializeTools('Bridges', bridges, true);
|
|
106
100
|
get().initializeTools('Exchanges', exchanges, true);
|
|
101
|
+
return { ...get() };
|
|
107
102
|
},
|
|
108
103
|
}), {
|
|
109
104
|
name: 'li.fi-widget-settings',
|
|
@@ -134,21 +129,4 @@ export const useSettingsStore = createWithEqualityFn(persist((set, get) => ({
|
|
|
134
129
|
return persistedState;
|
|
135
130
|
},
|
|
136
131
|
}), Object.is);
|
|
137
|
-
export const setDefaultSettings = (config) => {
|
|
138
|
-
const { slippage, routePriority, setValue, gasPrice } = useSettingsStore.getState();
|
|
139
|
-
const defaultSlippage = (config?.slippage || config?.sdkConfig?.routeOptions?.slippage || 0) * 100;
|
|
140
|
-
const defaultRoutePriority = config?.routePriority || config?.sdkConfig?.routeOptions?.order;
|
|
141
|
-
defaultConfigurableSettings.slippage = (defaultSlippage || defaultConfigurableSettings.slippage)?.toString();
|
|
142
|
-
defaultConfigurableSettings.routePriority =
|
|
143
|
-
defaultRoutePriority || defaultConfigurableSettings.routePriority;
|
|
144
|
-
if (!slippage) {
|
|
145
|
-
setValue('slippage', defaultConfigurableSettings.slippage);
|
|
146
|
-
}
|
|
147
|
-
if (!routePriority) {
|
|
148
|
-
setValue('routePriority', defaultConfigurableSettings.routePriority);
|
|
149
|
-
}
|
|
150
|
-
if (!gasPrice) {
|
|
151
|
-
setValue('gasPrice', defaultConfigurableSettings.gasPrice);
|
|
152
|
-
}
|
|
153
|
-
};
|
|
154
132
|
//# sourceMappingURL=useSettingsStore.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSettingsStore.js","sourceRoot":"","sources":["../../../../src/stores/settings/useSettingsStore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"useSettingsStore.js","sourceRoot":"","sources":["../../../../src/stores/settings/useSettingsStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export const getStateValues = (state) => ({
|
|
2
|
+
appearance: state.appearance,
|
|
3
|
+
gasPrice: state.gasPrice,
|
|
4
|
+
language: state.language,
|
|
5
|
+
routePriority: state.routePriority,
|
|
6
|
+
enabledAutoRefuel: state.enabledAutoRefuel,
|
|
7
|
+
slippage: state.slippage,
|
|
8
|
+
disabledBridges: [...state.disabledBridges],
|
|
9
|
+
enabledBridges: [...state.enabledBridges],
|
|
10
|
+
_enabledBridges: { ...state._enabledBridges },
|
|
11
|
+
disabledExchanges: [...state.disabledExchanges],
|
|
12
|
+
enabledExchanges: [...state.enabledExchanges],
|
|
13
|
+
_enabledExchanges: { ...state._enabledExchanges },
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=getStateValues.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getStateValues.js","sourceRoot":"","sources":["../../../../../src/stores/settings/utils/getStateValues.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAoB,EAAiB,EAAE,CAAC,CAAC;IACtE,UAAU,EAAE,KAAK,CAAC,UAAU;IAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;IACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;IACxB,aAAa,EAAE,KAAK,CAAC,aAAa;IAClC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;IAC1C,QAAQ,EAAE,KAAK,CAAC,QAAQ;IACxB,eAAe,EAAE,CAAC,GAAG,KAAK,CAAC,eAAe,CAAC;IAC3C,cAAc,EAAE,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC;IACzC,eAAe,EAAE,EAAE,GAAG,KAAK,CAAC,eAAe,EAAE;IAC7C,iBAAiB,EAAE,CAAC,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAC/C,gBAAgB,EAAE,CAAC,GAAG,KAAK,CAAC,gBAAgB,CAAC;IAC7C,iBAAiB,EAAE,EAAE,GAAG,KAAK,CAAC,iBAAiB,EAAE;CAClD,CAAC,CAAA"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { ChainId, ChainType, Process, Route } from '@lifi/sdk';
|
|
2
|
+
import type { DefaultValues } from '../stores/form/types.js';
|
|
3
|
+
import type { SettingsProps } from '../stores/settings/types.js';
|
|
2
4
|
import type { NavigationRouteType } from '../utils/navigationRoutes.js';
|
|
3
5
|
export declare enum WidgetEvent {
|
|
4
6
|
RouteExecutionStarted = "routeExecutionStarted",
|
|
@@ -20,7 +22,9 @@ export declare enum WidgetEvent {
|
|
|
20
22
|
*/
|
|
21
23
|
WalletConnected = "walletConnected",
|
|
22
24
|
WidgetExpanded = "widgetExpanded",
|
|
23
|
-
PageEntered = "pageEntered"
|
|
25
|
+
PageEntered = "pageEntered",
|
|
26
|
+
FormFieldChanged = "formFieldChanged",
|
|
27
|
+
SettingUpdated = "settingUpdated"
|
|
24
28
|
}
|
|
25
29
|
export type WidgetEvents = {
|
|
26
30
|
routeExecutionStarted: Route;
|
|
@@ -33,13 +37,12 @@ export type WidgetEvents = {
|
|
|
33
37
|
sourceChainTokenSelected: ChainTokenSelected;
|
|
34
38
|
destinationChainTokenSelected: ChainTokenSelected;
|
|
35
39
|
sendToWalletToggled: boolean;
|
|
40
|
+
formFieldChanged: FormFieldChanged;
|
|
36
41
|
reviewTransactionPageEntered?: Route;
|
|
37
|
-
/**
|
|
38
|
-
* @deprecated use useWalletManagementEvents hook.
|
|
39
|
-
*/
|
|
40
42
|
walletConnected: WalletConnected;
|
|
41
43
|
widgetExpanded: boolean;
|
|
42
44
|
pageEntered: NavigationRouteType;
|
|
45
|
+
settingUpdated: SettingUpdated;
|
|
43
46
|
};
|
|
44
47
|
export interface ContactSupport {
|
|
45
48
|
supportId?: string;
|
|
@@ -64,3 +67,17 @@ export interface WalletConnected {
|
|
|
64
67
|
chainId?: number;
|
|
65
68
|
chainType?: ChainType;
|
|
66
69
|
}
|
|
70
|
+
export type FormFieldChanged = {
|
|
71
|
+
[K in keyof DefaultValues]: {
|
|
72
|
+
fieldName: K;
|
|
73
|
+
newValue: DefaultValues[K];
|
|
74
|
+
oldValue: DefaultValues[K];
|
|
75
|
+
};
|
|
76
|
+
}[keyof DefaultValues];
|
|
77
|
+
export type SettingUpdated<K extends keyof SettingsProps = keyof SettingsProps> = {
|
|
78
|
+
setting: K;
|
|
79
|
+
newValue: SettingsProps[K];
|
|
80
|
+
oldValue: SettingsProps[K];
|
|
81
|
+
newSettings: SettingsProps;
|
|
82
|
+
oldSettings: SettingsProps;
|
|
83
|
+
};
|
package/dist/esm/types/events.js
CHANGED
|
@@ -20,5 +20,7 @@ export var WidgetEvent;
|
|
|
20
20
|
WidgetEvent["WalletConnected"] = "walletConnected";
|
|
21
21
|
WidgetEvent["WidgetExpanded"] = "widgetExpanded";
|
|
22
22
|
WidgetEvent["PageEntered"] = "pageEntered";
|
|
23
|
+
WidgetEvent["FormFieldChanged"] = "formFieldChanged";
|
|
24
|
+
WidgetEvent["SettingUpdated"] = "settingUpdated";
|
|
23
25
|
})(WidgetEvent || (WidgetEvent = {}));
|
|
24
26
|
//# sourceMappingURL=events.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/types/events.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/types/events.ts"],"names":[],"mappings":"AAKA,MAAM,CAAN,IAAY,WAuBX;AAvBD,WAAY,WAAW;IACrB,8DAA+C,CAAA;IAC/C,8DAA+C,CAAA;IAC/C,kEAAmD,CAAA;IACnD,4DAA6C,CAAA;IAC7C,wDAAyC,CAAA;IACzC,kDAAmC,CAAA;IACnC,gDAAiC,CAAA;IACjC,oEAAqD,CAAA;IACrD,8EAA+D,CAAA;IAC/D,0DAA2C,CAAA;IAC3C;;OAEG;IACH,4EAA6D,CAAA;IAC7D;;OAEG;IACH,kDAAmC,CAAA;IACnC,gDAAiC,CAAA;IACjC,0CAA2B,CAAA;IAC3B,oDAAqC,CAAA;IACrC,gDAAiC,CAAA;AACnC,CAAC,EAvBW,WAAW,KAAX,WAAW,QAuBtB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { isUTXOAddress } from '@bigmi/core';
|
|
2
|
+
import { ChainId, ChainType, isSVMAddress } from '@lifi/sdk';
|
|
2
3
|
import { isAddress as isEVMAddress } from 'viem';
|
|
3
4
|
const chainTypeAddressValidation = {
|
|
4
5
|
[ChainType.EVM]: isEVMAddress,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chainType.js","sourceRoot":"","sources":["../../../src/utils/chainType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"chainType.js","sourceRoot":"","sources":["../../../src/utils/chainType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAC5D,OAAO,EAAE,SAAS,IAAI,YAAY,EAAE,MAAM,MAAM,CAAA;AAEhD,MAAM,0BAA0B,GAAG;IACjC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,YAAY;IAC7B,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,YAAY;IAC7B,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,aAAa;CAChC,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,OAAe,EACQ,EAAE;IACzB,KAAK,MAAM,SAAS,IAAI,0BAA0B,EAAE,CAAC;QACnD,MAAM,WAAW,GACf,0BAA0B,CAAC,SAAsB,CAAC,CAAC,OAAO,CAAC,CAAA;QAC7D,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,SAAsB,CAAA;QAC/B,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG;IAC5B,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG;IAC5B,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,GAAG;CAC9B,CAAA"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/** Forked from https://github.com/epoberezkin/fast-deep-equal */
|
|
2
|
+
export function deepEqual(a, b) {
|
|
3
|
+
if (a === b) {
|
|
4
|
+
return true;
|
|
5
|
+
}
|
|
6
|
+
if (a && b && typeof a === 'object' && typeof b === 'object') {
|
|
7
|
+
if (a.constructor !== b.constructor) {
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
let length;
|
|
11
|
+
let i;
|
|
12
|
+
if (Array.isArray(a) && Array.isArray(b)) {
|
|
13
|
+
length = a.length;
|
|
14
|
+
if (length !== b.length) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
for (i = length; i-- !== 0;) {
|
|
18
|
+
if (!deepEqual(a[i], b[i])) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
if (a.valueOf !== Object.prototype.valueOf) {
|
|
25
|
+
return a.valueOf() === b.valueOf();
|
|
26
|
+
}
|
|
27
|
+
if (a.toString !== Object.prototype.toString) {
|
|
28
|
+
return a.toString() === b.toString();
|
|
29
|
+
}
|
|
30
|
+
const keys = Object.keys(a);
|
|
31
|
+
length = keys.length;
|
|
32
|
+
if (length !== Object.keys(b).length) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
for (i = length; i-- !== 0;) {
|
|
36
|
+
if (!Object.prototype.hasOwnProperty.call(b, keys[i])) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
for (i = length; i-- !== 0;) {
|
|
41
|
+
const key = keys[i];
|
|
42
|
+
if (key && !deepEqual(a[key], b[key])) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
// true if both NaN, false otherwise
|
|
49
|
+
// biome-ignore lint/suspicious/noSelfCompare: <explanation>
|
|
50
|
+
return a !== a && b !== b;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=deepEqual.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deepEqual.js","sourceRoot":"","sources":["../../../src/utils/deepEqual.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAEjE,MAAM,UAAU,SAAS,CAAC,CAAM,EAAE,CAAM;IACtC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACZ,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC7D,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YACpC,OAAO,KAAK,CAAA;QACd,CAAC;QAED,IAAI,MAAc,CAAA;QAClB,IAAI,CAAS,CAAA;QAEb,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAA;YACjB,IAAI,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;gBACxB,OAAO,KAAK,CAAA;YACd,CAAC;YACD,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,GAAI,CAAC;gBAC7B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3B,OAAO,KAAK,CAAA;gBACd,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAC3C,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAA;QACpC,CAAC;QACD,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YAC7C,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAA;QACtC,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC3B,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QACpB,IAAI,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YACrC,OAAO,KAAK,CAAA;QACd,CAAC;QAED,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,GAAI,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;gBACvD,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;QAED,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,GAAI,CAAC;YAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YAEnB,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACtC,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,oCAAoC;IACpC,4DAA4D;IAC5D,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC3B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Token } from '@lifi/sdk';
|
|
2
|
+
interface GetPriceImpractProps {
|
|
3
|
+
fromToken: Token;
|
|
4
|
+
toToken: Token;
|
|
5
|
+
fromAmount?: bigint;
|
|
6
|
+
toAmount?: bigint;
|
|
7
|
+
}
|
|
8
|
+
export declare const getPriceImpact: ({ fromToken, toToken, fromAmount, toAmount, }: GetPriceImpractProps) => number;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { formatTokenAmount, formatTokenPrice } from './format.js';
|
|
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;
|
|
7
|
+
const priceImpact = toTokenPrice / fromTokenPrice - 1;
|
|
8
|
+
return Number(priceImpact);
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=getPriceImpact.js.map
|
|
@@ -0,0 +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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lifi/widget",
|
|
3
|
-
"version": "3.8.0
|
|
3
|
+
"version": "3.8.0",
|
|
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",
|
|
@@ -30,17 +30,20 @@
|
|
|
30
30
|
"lifi"
|
|
31
31
|
],
|
|
32
32
|
"dependencies": {
|
|
33
|
+
"@bigmi/client": "^0.0.2",
|
|
34
|
+
"@bigmi/core": "^0.0.2",
|
|
35
|
+
"@bigmi/react": "^0.0.2",
|
|
33
36
|
"@emotion/react": "^11.13.3",
|
|
34
37
|
"@emotion/styled": "^11.13.0",
|
|
35
|
-
"@lifi/sdk": "^3.3.0
|
|
38
|
+
"@lifi/sdk": "^3.3.0",
|
|
36
39
|
"@mui/icons-material": "^5.16.7",
|
|
37
40
|
"@mui/lab": "^5.0.0-alpha.173",
|
|
38
41
|
"@mui/material": "^5.16.7",
|
|
39
42
|
"@mui/system": "^5.16.7",
|
|
40
43
|
"@solana/wallet-adapter-base": "^0.9.23",
|
|
41
44
|
"@solana/wallet-adapter-react": "^0.15.35",
|
|
42
|
-
"@solana/web3.js": "^1.95.
|
|
43
|
-
"@tanstack/react-query": "^5.59.
|
|
45
|
+
"@solana/web3.js": "^1.95.4",
|
|
46
|
+
"@tanstack/react-query": "^5.59.15",
|
|
44
47
|
"@tanstack/react-virtual": "^3.10.8",
|
|
45
48
|
"i18next": "^23.16.0",
|
|
46
49
|
"microdiff": "^1.4.0",
|
|
@@ -50,10 +53,10 @@
|
|
|
50
53
|
"react-i18next": "^15.0.3",
|
|
51
54
|
"react-intersection-observer": "^9.13.1",
|
|
52
55
|
"react-router-dom": "^6.27.0",
|
|
53
|
-
"viem": "^2.21.
|
|
54
|
-
"wagmi": "^2.12.
|
|
56
|
+
"viem": "^2.21.29",
|
|
57
|
+
"wagmi": "^2.12.19",
|
|
55
58
|
"zustand": "^4.5.5",
|
|
56
|
-
"@lifi/wallet-management": "^3.3.0
|
|
59
|
+
"@lifi/wallet-management": "^3.3.0"
|
|
57
60
|
},
|
|
58
61
|
"peerDependencies": {
|
|
59
62
|
"react": ">=18",
|
|
@@ -5,13 +5,14 @@ import type { ChangeEvent } from 'react'
|
|
|
5
5
|
import { useTranslation } from 'react-i18next'
|
|
6
6
|
import { useGasRefuel } from '../../hooks/useGasRefuel.js'
|
|
7
7
|
import { useSettings } from '../../stores/settings/useSettings.js'
|
|
8
|
-
import {
|
|
8
|
+
import { useSettingsActions } from '../../stores/settings/useSettingsActions.js'
|
|
9
9
|
import { AlertMessage } from '../AlertMessage/AlertMessage.js'
|
|
10
10
|
import { InfoMessageSwitch } from './GasMessage.style.js'
|
|
11
11
|
|
|
12
12
|
export const GasRefuelMessage: React.FC<BoxProps> = (props) => {
|
|
13
13
|
const { t } = useTranslation()
|
|
14
|
-
|
|
14
|
+
|
|
15
|
+
const { setValue } = useSettingsActions()
|
|
15
16
|
const { enabledAutoRefuel } = useSettings(['enabledAutoRefuel'])
|
|
16
17
|
|
|
17
18
|
const { enabled, chain, isLoading: isRefuelLoading } = useGasRefuel()
|
|
@@ -6,6 +6,7 @@ import { useTranslation } from 'react-i18next'
|
|
|
6
6
|
import { useChain } from '../../hooks/useChain.js'
|
|
7
7
|
import { useToken } from '../../hooks/useToken.js'
|
|
8
8
|
import { formatTokenAmount, formatTokenPrice } from '../../utils/format.js'
|
|
9
|
+
import { getPriceImpact } from '../../utils/getPriceImpact.js'
|
|
9
10
|
import { AvatarBadgedSkeleton } from '../Avatar/Avatar.js'
|
|
10
11
|
import { SmallAvatar } from '../Avatar/SmallAvatar.js'
|
|
11
12
|
import { TokenAvatar } from '../Avatar/TokenAvatar.js'
|
|
@@ -78,14 +79,12 @@ export const TokenBase: FC<TokenProps & BoxProps> = ({
|
|
|
78
79
|
let priceImpact: number | undefined = undefined
|
|
79
80
|
let priceImpactPercent: number | undefined = undefined
|
|
80
81
|
if (impactToken) {
|
|
81
|
-
|
|
82
|
-
impactToken
|
|
83
|
-
impactToken.
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
priceImpact = tokenPrice / impactTokenPrice - 1
|
|
82
|
+
priceImpact = getPriceImpact({
|
|
83
|
+
fromToken: impactToken,
|
|
84
|
+
fromAmount: impactToken.amount,
|
|
85
|
+
toToken: token,
|
|
86
|
+
toAmount: token.amount,
|
|
87
|
+
})
|
|
89
88
|
priceImpactPercent = priceImpact * 100
|
|
90
89
|
}
|
|
91
90
|
|