@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.
Files changed (88) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/esm/components/GasMessage/GasRefuelMessage.js +2 -2
  3. package/dist/esm/components/GasMessage/GasRefuelMessage.js.map +1 -1
  4. package/dist/esm/components/Token/Token.js +7 -3
  5. package/dist/esm/components/Token/Token.js.map +1 -1
  6. package/dist/esm/components/TransactionDetails.js +8 -6
  7. package/dist/esm/components/TransactionDetails.js.map +1 -1
  8. package/dist/esm/config/version.d.ts +1 -1
  9. package/dist/esm/config/version.js +1 -1
  10. package/dist/esm/config/version.js.map +1 -1
  11. package/dist/esm/hooks/useLanguages.js +2 -2
  12. package/dist/esm/hooks/useLanguages.js.map +1 -1
  13. package/dist/esm/hooks/useSettingMonitor.js +3 -2
  14. package/dist/esm/hooks/useSettingMonitor.js.map +1 -1
  15. package/dist/esm/index.d.ts +1 -0
  16. package/dist/esm/index.js +1 -0
  17. package/dist/esm/index.js.map +1 -1
  18. package/dist/esm/pages/SelectEnabledToolsPage.js +3 -6
  19. package/dist/esm/pages/SelectEnabledToolsPage.js.map +1 -1
  20. package/dist/esm/pages/SettingsPage/GasPriceSettings.js +2 -2
  21. package/dist/esm/pages/SettingsPage/GasPriceSettings.js.map +1 -1
  22. package/dist/esm/pages/SettingsPage/RoutePrioritySettings.js +2 -2
  23. package/dist/esm/pages/SettingsPage/RoutePrioritySettings.js.map +1 -1
  24. package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.js +16 -10
  25. package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.js.map +1 -1
  26. package/dist/esm/providers/WalletProvider/SDKProviders.js +2 -1
  27. package/dist/esm/providers/WalletProvider/SDKProviders.js.map +1 -1
  28. package/dist/esm/providers/WalletProvider/UTXOBaseProvider.js +2 -1
  29. package/dist/esm/providers/WalletProvider/UTXOBaseProvider.js.map +1 -1
  30. package/dist/esm/providers/WalletProvider/UTXOProvider.js +1 -1
  31. package/dist/esm/providers/WalletProvider/UTXOProvider.js.map +1 -1
  32. package/dist/esm/providers/WidgetProvider/WidgetProvider.js +3 -2
  33. package/dist/esm/providers/WidgetProvider/WidgetProvider.js.map +1 -1
  34. package/dist/esm/stores/form/types.d.ts +1 -1
  35. package/dist/esm/stores/form/useFieldActions.d.ts +10 -2
  36. package/dist/esm/stores/form/useFieldActions.js +39 -1
  37. package/dist/esm/stores/form/useFieldActions.js.map +1 -1
  38. package/dist/esm/stores/settings/types.d.ts +5 -2
  39. package/dist/esm/stores/settings/types.js.map +1 -1
  40. package/dist/esm/stores/settings/useAppearance.js +3 -2
  41. package/dist/esm/stores/settings/useAppearance.js.map +1 -1
  42. package/dist/esm/stores/settings/useSettingsActions.d.ts +9 -0
  43. package/dist/esm/stores/settings/useSettingsActions.js +77 -0
  44. package/dist/esm/stores/settings/useSettingsActions.js.map +1 -0
  45. package/dist/esm/stores/settings/useSettingsStore.d.ts +0 -2
  46. package/dist/esm/stores/settings/useSettingsStore.js +4 -26
  47. package/dist/esm/stores/settings/useSettingsStore.js.map +1 -1
  48. package/dist/esm/stores/settings/utils/getStateValues.d.ts +2 -0
  49. package/dist/esm/stores/settings/utils/getStateValues.js +15 -0
  50. package/dist/esm/stores/settings/utils/getStateValues.js.map +1 -0
  51. package/dist/esm/types/events.d.ts +21 -4
  52. package/dist/esm/types/events.js +2 -0
  53. package/dist/esm/types/events.js.map +1 -1
  54. package/dist/esm/utils/chainType.js +2 -1
  55. package/dist/esm/utils/chainType.js.map +1 -1
  56. package/dist/esm/utils/deepEqual.d.ts +2 -0
  57. package/dist/esm/utils/deepEqual.js +52 -0
  58. package/dist/esm/utils/deepEqual.js.map +1 -0
  59. package/dist/esm/utils/getPriceImpact.d.ts +9 -0
  60. package/dist/esm/utils/getPriceImpact.js +10 -0
  61. package/dist/esm/utils/getPriceImpact.js.map +1 -0
  62. package/package.json +10 -7
  63. package/src/components/GasMessage/GasRefuelMessage.tsx +3 -2
  64. package/src/components/Token/Token.tsx +7 -8
  65. package/src/components/TransactionDetails.tsx +8 -17
  66. package/src/config/version.ts +1 -1
  67. package/src/hooks/useLanguages.ts +2 -2
  68. package/src/hooks/useSettingMonitor.ts +2 -2
  69. package/src/index.ts +1 -0
  70. package/src/pages/SelectEnabledToolsPage.tsx +6 -10
  71. package/src/pages/SettingsPage/GasPriceSettings.tsx +2 -2
  72. package/src/pages/SettingsPage/RoutePrioritySettings.tsx +2 -2
  73. package/src/pages/SettingsPage/SlippageSettings/SlippageSettings.tsx +31 -21
  74. package/src/providers/WalletProvider/SDKProviders.tsx +2 -4
  75. package/src/providers/WalletProvider/UTXOBaseProvider.tsx +2 -5
  76. package/src/providers/WalletProvider/UTXOProvider.tsx +1 -1
  77. package/src/providers/WidgetProvider/WidgetProvider.tsx +5 -3
  78. package/src/stores/form/types.ts +1 -1
  79. package/src/stores/form/useFieldActions.ts +73 -2
  80. package/src/stores/settings/types.ts +7 -2
  81. package/src/stores/settings/useAppearance.ts +3 -5
  82. package/src/stores/settings/useSettingsActions.ts +152 -0
  83. package/src/stores/settings/useSettingsStore.ts +4 -34
  84. package/src/stores/settings/utils/getStateValues.ts +16 -0
  85. package/src/types/events.ts +24 -3
  86. package/src/utils/chainType.ts +2 -1
  87. package/src/utils/deepEqual.ts +62 -0
  88. 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
- return actions;
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;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,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,OAAO,OAAO,CAAA;AAChB,CAAC,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 SettingsState extends SettingsProps {
25
+ export interface SettingsActions {
25
26
  setValue: ValueSetter<SettingsProps>;
26
- setValues: ValuesSetter<SettingsProps>;
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":"AAeA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,SAAS,EAAE,WAAW,CAAU,CAAA"}
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 { shallow } from 'zustand/shallow';
1
+ import { useSettingsActions } from '../../stores/settings/useSettingsActions.js';
2
2
  import { useSettingsStore } from './useSettingsStore.js';
3
3
  export const useAppearance = () => {
4
- const [appearance, setValue] = useSettingsStore((state) => [state.appearance, state.setValue], shallow);
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,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAEzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,MAAM,CAAC,MAAM,aAAa,GAAG,GAG3B,EAAE;IACF,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,gBAAgB,CAC7C,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,EAC7C,OAAO,CACR,CAAA;IACD,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"}
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
- setValues: (values) => set((state) => {
27
- const updatedState = { ...state };
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":"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"}
1
+ {"version":3,"file":"useSettingsStore.js","sourceRoot":"","sources":["../../../../src/stores/settings/useSettingsStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { SettingsProps, SettingsState } from '../types.js';
2
+ export declare const getStateValues: (state: SettingsState) => SettingsProps;
@@ -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
+ };
@@ -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":"AAGA,MAAM,CAAN,IAAY,WAqBX;AArBD,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;AAC7B,CAAC,EArBW,WAAW,KAAX,WAAW,QAqBtB"}
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 { ChainId, ChainType, isSVMAddress, isUTXOAddress } from '@lifi/sdk';
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,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC3E,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"}
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,2 @@
1
+ /** Forked from https://github.com/epoberezkin/fast-deep-equal */
2
+ export declare function deepEqual(a: any, b: any): boolean;
@@ -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-beta.1",
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-beta.2",
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.3",
43
- "@tanstack/react-query": "^5.59.13",
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.25",
54
- "wagmi": "^2.12.16",
56
+ "viem": "^2.21.29",
57
+ "wagmi": "^2.12.19",
55
58
  "zustand": "^4.5.5",
56
- "@lifi/wallet-management": "^3.3.0-beta.14"
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 { useSettingsStore } from '../../stores/settings/useSettingsStore.js'
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
- const setValue = useSettingsStore((state) => state.setValue)
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
- const impactTokenAmount = formatTokenAmount(
82
- impactToken.amount,
83
- impactToken.decimals
84
- )
85
- const impactTokenPrice =
86
- formatTokenPrice(impactTokenAmount, impactToken.priceUSD) || 0.01
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