@lifi/widget 3.0.0 → 3.0.2
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 +7 -0
- package/README.md +29 -8
- package/_esm/config/version.d.ts +1 -1
- package/_esm/config/version.js +1 -1
- package/_esm/hooks/useRoutes.js +24 -13
- package/_esm/hooks/useRoutes.js.map +1 -1
- package/_esm/pages/SelectEnabledToolsPage.js +1 -1
- package/_esm/pages/SelectEnabledToolsPage.js.map +1 -1
- package/_esm/stores/settings/types.d.ts +4 -2
- package/_esm/stores/settings/useSettingsStore.js +23 -14
- package/_esm/stores/settings/useSettingsStore.js.map +1 -1
- package/config/version.ts +1 -1
- package/hooks/useRoutes.ts +30 -11
- package/package.json +1 -1
- package/pages/SelectEnabledToolsPage.tsx +1 -1
- package/stores/settings/types.ts +4 -2
- package/stores/settings/useSettingsStore.ts +44 -20
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [3.0.2](https://github.com/lifinance/widget/compare/v3.0.0...v3.0.2) (2024-07-08)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* allowed bridges option doesn't applied correctly ([1e00fb4](https://github.com/lifinance/widget/commit/1e00fb4da805c6001369d8b1806949c52632b0ce))
|
|
11
|
+
|
|
5
12
|
## [3.0.0](https://github.com/lifinance/widget/compare/v3.0.0-beta.4...v3.0.0) (2024-06-26)
|
|
6
13
|
|
|
7
14
|
## [2.8.0](https://github.com/lifinance/widget/compare/v2.7.1...v2.8.0) (2023-10-30)
|
package/README.md
CHANGED
|
@@ -10,11 +10,22 @@
|
|
|
10
10
|
|
|
11
11
|
<h1 align="center">LI.FI Widget</h1>
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+

|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
[**LI.FI Widget**](https://docs.li.fi/integrate-li.fi-widget/li.fi-widget-overview) is a set of prebuilt UI components that will help you integrate a secure cross-chain bridging and swapping experience that can be styled to match your web app design perfectly and helps drive your multi-chain strategy and attract new users from everywhere.
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
[**LI.FI Widget**](https://docs.li.fi/integrate-li.fi-widget/li.fi-widget-overview) features include:
|
|
18
|
+
|
|
19
|
+
- All ecosystems, chains, bridges, exchanges, and solvers that [LI.FI](https://docs.li.fi/list-chains-bridges-dexs-solvers) supports
|
|
20
|
+
- Embeddable variants - compact, wide, and drawer
|
|
21
|
+
- Options to allow or deny certain chains, tokens, bridges, and exchanges
|
|
22
|
+
- Pre-configured themes and lots of customization options with dark mode support so you can match the look and feel of your web app
|
|
23
|
+
- Wallet management UI with the option to opt-out and use your own ([Wagmi](https://wagmi.sh/) and [Solana Wallet Standard](https://github.com/anza-xyz/wallet-standard) support)
|
|
24
|
+
- View of transactions in progress and transaction history
|
|
25
|
+
- Curated wallet lists and wallet bookmarks
|
|
26
|
+
- Route settings for advanced users (stored locally)
|
|
27
|
+
- Complete UI translations to match your customer’s preferred language
|
|
28
|
+
- Compatibility tested with React, Next.js, Vue, Nuxt.js, Svelte, Remix, Gatsby, Vite, CRA, RainbowKit
|
|
18
29
|
|
|
19
30
|
## Installation
|
|
20
31
|
|
|
@@ -58,9 +69,11 @@ Here is an example of a basic app using LI.FI Widget:
|
|
|
58
69
|
import { LiFiWidget, WidgetConfig } from '@lifi/widget';
|
|
59
70
|
|
|
60
71
|
const widgetConfig: WidgetConfig = {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
72
|
+
theme: {
|
|
73
|
+
container: {
|
|
74
|
+
border: '1px solid rgb(234, 234, 234)',
|
|
75
|
+
borderRadius: '16px',
|
|
76
|
+
},
|
|
64
77
|
},
|
|
65
78
|
};
|
|
66
79
|
|
|
@@ -73,11 +86,19 @@ export const WidgetPage = () => {
|
|
|
73
86
|
|
|
74
87
|
## Examples
|
|
75
88
|
|
|
76
|
-
Visit our [playground](https://playground.li.fi) to see how you can customize your [LI.FI Widget](https://www.npmjs.com/package/@lifi/widget) experience.
|
|
89
|
+
Visit our [playground](https://playground.li.fi) to see how you can customize your [LI.FI Widget](https://www.npmjs.com/package/@lifi/widget) experience. Additionaly, see [examples](/examples) folder in this repository.
|
|
77
90
|
|
|
78
91
|
## Documentation
|
|
79
92
|
|
|
80
|
-
[LI.FI Widget Documentation](https://docs.li.fi/integrate-li.fi-widget/li.fi-widget-overview)
|
|
93
|
+
Please visit [LI.FI Widget Documentation](https://docs.li.fi/integrate-li.fi-widget/li.fi-widget-overview).
|
|
94
|
+
|
|
95
|
+
## Contributing Translations
|
|
96
|
+
|
|
97
|
+
We appreciate your interest in helping translate our project!
|
|
98
|
+
|
|
99
|
+
If you'd like to contribute translations, please visit our Crowdin project page at [Crowdin LI.FI Widget](https://crowdin.com/project/lifi-widget). Register on Crowdin and you can start translating the project into your preferred language. Your contributions will help make our project accessible to a wider audience around the world.
|
|
100
|
+
|
|
101
|
+
Thank you for your support!
|
|
81
102
|
|
|
82
103
|
## Changelog
|
|
83
104
|
|
package/_esm/config/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare const name = "@lifi/widget";
|
|
2
|
-
export declare const version = "3.0.
|
|
2
|
+
export declare const version = "3.0.2";
|
package/_esm/config/version.js
CHANGED
package/_esm/hooks/useRoutes.js
CHANGED
|
@@ -17,13 +17,15 @@ import { useToken } from './useToken.js';
|
|
|
17
17
|
import { useWidgetEvents } from './useWidgetEvents.js';
|
|
18
18
|
const refetchTime = 60000;
|
|
19
19
|
export const useRoutes = ({ insurableRoute } = {}) => {
|
|
20
|
-
const { subvariant, sdkConfig, insurance, contractTool } = useWidgetConfig();
|
|
20
|
+
const { subvariant, sdkConfig, insurance, contractTool, bridges, exchanges } = useWidgetConfig();
|
|
21
21
|
const queryClient = useQueryClient();
|
|
22
22
|
const emitter = useWidgetEvents();
|
|
23
23
|
const swapOnly = useSwapOnly();
|
|
24
|
-
const { disabledBridges, disabledExchanges, enabledAutoRefuel, routePriority, slippage, } = useSettings([
|
|
24
|
+
const { disabledBridges, disabledExchanges, enabledBridges, enabledExchanges, enabledAutoRefuel, routePriority, slippage, } = useSettings([
|
|
25
25
|
'disabledBridges',
|
|
26
26
|
'disabledExchanges',
|
|
27
|
+
'enabledBridges',
|
|
28
|
+
'enabledExchanges',
|
|
27
29
|
'enabledAutoRefuel',
|
|
28
30
|
'routePriority',
|
|
29
31
|
'slippage',
|
|
@@ -49,6 +51,13 @@ export const useRoutes = ({ insurableRoute } = {}) => {
|
|
|
49
51
|
: true;
|
|
50
52
|
// toAddress might be an empty string, but we need to pass undefined if there is no value
|
|
51
53
|
const toWalletAddress = toAddress || undefined;
|
|
54
|
+
// We need to send the full allowed tools array if custom tool settings are applied
|
|
55
|
+
const allowedBridges = bridges?.allow?.length || bridges?.deny?.length
|
|
56
|
+
? enabledBridges
|
|
57
|
+
: undefined;
|
|
58
|
+
const allowedExchanges = exchanges?.allow?.length || exchanges?.deny?.length
|
|
59
|
+
? enabledExchanges
|
|
60
|
+
: undefined;
|
|
52
61
|
const isEnabled = Boolean(Number(fromChainId)) &&
|
|
53
62
|
Boolean(Number(toChainId)) &&
|
|
54
63
|
Boolean(fromToken?.address) &&
|
|
@@ -73,6 +82,8 @@ export const useRoutes = ({ insurableRoute } = {}) => {
|
|
|
73
82
|
swapOnly,
|
|
74
83
|
disabledBridges,
|
|
75
84
|
disabledExchanges,
|
|
85
|
+
allowedBridges,
|
|
86
|
+
allowedExchanges,
|
|
76
87
|
routePriority,
|
|
77
88
|
subvariant,
|
|
78
89
|
sdkConfig?.routeOptions?.allowSwitchChain,
|
|
@@ -83,10 +94,10 @@ export const useRoutes = ({ insurableRoute } = {}) => {
|
|
|
83
94
|
];
|
|
84
95
|
const { data, isLoading, isFetching, isFetched, dataUpdatedAt, refetch } = useQuery({
|
|
85
96
|
queryKey,
|
|
86
|
-
queryFn: async ({ queryKey: [_, fromAddress, fromChainId, fromTokenAddress, fromTokenAmount, toAddress, toChainId, toTokenAddress, toTokenAmount, contractCalls, slippage = defaultSlippage, swapOnly, disabledBridges, disabledExchanges, routePriority, subvariant, allowSwitchChain, enabledRefuel, gasRecommendationFromAmount, insurance, insurableRouteId,], signal, }) => {
|
|
97
|
+
queryFn: async ({ queryKey: [_, fromAddress, fromChainId, fromTokenAddress, fromTokenAmount, toAddress, toChainId, toTokenAddress, toTokenAmount, contractCalls, slippage = defaultSlippage, swapOnly, disabledBridges, disabledExchanges, allowedBridges, allowedExchanges, routePriority, subvariant, allowSwitchChain, enabledRefuel, gasRecommendationFromAmount, insurance, insurableRouteId,], signal, }) => {
|
|
87
98
|
const fromAmount = parseUnits(fromTokenAmount, fromToken.decimals).toString();
|
|
88
99
|
const formattedSlippage = parseFloat(slippage) / 100;
|
|
89
|
-
const
|
|
100
|
+
const allowBridges = swapOnly
|
|
90
101
|
? []
|
|
91
102
|
: insurableRoute
|
|
92
103
|
? insurableRoute.steps.flatMap((step) => step.includedSteps.reduce((toolKeys, includedStep) => {
|
|
@@ -95,15 +106,15 @@ export const useRoutes = ({ insurableRoute } = {}) => {
|
|
|
95
106
|
}
|
|
96
107
|
return toolKeys;
|
|
97
108
|
}, []))
|
|
98
|
-
:
|
|
99
|
-
const
|
|
109
|
+
: allowedBridges;
|
|
110
|
+
const allowExchanges = insurableRoute
|
|
100
111
|
? insurableRoute.steps.flatMap((step) => step.includedSteps.reduce((toolKeys, includedStep) => {
|
|
101
112
|
if (includedStep.type === 'swap') {
|
|
102
113
|
toolKeys.push(includedStep.toolDetails.key);
|
|
103
114
|
}
|
|
104
115
|
return toolKeys;
|
|
105
116
|
}, []))
|
|
106
|
-
:
|
|
117
|
+
: allowedExchanges;
|
|
107
118
|
if (subvariant === 'custom' && contractCalls && toTokenAmount) {
|
|
108
119
|
const contractCallQuote = await getContractCallsQuote({
|
|
109
120
|
// Contract calls are enabled only when fromAddress is set
|
|
@@ -118,8 +129,8 @@ export const useRoutes = ({ insurableRoute } = {}) => {
|
|
|
118
129
|
denyExchanges: disabledExchanges.length
|
|
119
130
|
? disabledExchanges
|
|
120
131
|
: undefined,
|
|
121
|
-
allowBridges
|
|
122
|
-
allowExchanges
|
|
132
|
+
allowBridges,
|
|
133
|
+
allowExchanges,
|
|
123
134
|
toFallbackAddress: toAddress,
|
|
124
135
|
slippage: formattedSlippage,
|
|
125
136
|
}, { signal });
|
|
@@ -169,17 +180,17 @@ export const useRoutes = ({ insurableRoute } = {}) => {
|
|
|
169
180
|
: undefined,
|
|
170
181
|
options: {
|
|
171
182
|
allowSwitchChain: subvariant === 'refuel' ? false : allowSwitchChain,
|
|
172
|
-
bridges:
|
|
183
|
+
bridges: allowBridges?.length || disabledBridges.length
|
|
173
184
|
? {
|
|
174
|
-
allow:
|
|
185
|
+
allow: allowBridges,
|
|
175
186
|
deny: disabledBridges.length
|
|
176
187
|
? disabledBridges
|
|
177
188
|
: undefined,
|
|
178
189
|
}
|
|
179
190
|
: undefined,
|
|
180
|
-
exchanges:
|
|
191
|
+
exchanges: allowExchanges?.length || disabledExchanges.length
|
|
181
192
|
? {
|
|
182
|
-
allow:
|
|
193
|
+
allow: allowExchanges,
|
|
183
194
|
deny: disabledExchanges.length
|
|
184
195
|
? disabledExchanges
|
|
185
196
|
: undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRoutes.js","sourceRoot":"","sources":["../../hooks/useRoutes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,WAAW,GAAG,KAAM,CAAC;AAM3B,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAE,cAAc,KAAkB,EAAE,EAAE,EAAE;IAChE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"useRoutes.js","sourceRoot":"","sources":["../../hooks/useRoutes.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@ export const SelectEnabledToolsPage = ({ type }) => {
|
|
|
22
22
|
const typeKey = type.toLowerCase();
|
|
23
23
|
const { tools } = useTools();
|
|
24
24
|
const [enabledTools, disabledTools, setToolValue, toggleTools] = useSettingsStore((state) => [
|
|
25
|
-
state[`
|
|
25
|
+
state[`_enabled${type}`],
|
|
26
26
|
state[`disabled${type}`],
|
|
27
27
|
state.setToolValue,
|
|
28
28
|
state.toggleTools,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectEnabledToolsPage.js","sourceRoot":"","sources":["../../pages/SelectEnabledToolsPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,KAAK,EACL,4BAA4B,EAC5B,gBAAgB,EAChB,6BAA6B,GAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,MAAM,EACN,UAAU,EACV,IAAI,EACJ,cAAc,EACd,OAAO,EACP,QAAQ,GACT,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAQ1E,MAAM,iBAAiB,GAAqC,CAAC,EAC3D,qBAAqB,EACrB,qBAAqB,EACrB,OAAO,GACR,EAAE,EAAE;IACH,MAAM,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,YAAY,GAAG,qBAAqB;QACxC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC;QAC1B,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAE3B,OAAO,CACL,KAAC,OAAO,IAAC,KAAK,EAAE,YAAY,EAAE,KAAK,kBACjC,KAAC,UAAU,IACT,IAAI,EAAC,QAAQ,EACb,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAC7C,OAAO,EAAE,OAAO,YAEf,qBAAqB,CAAC,CAAC,CAAC,CACvB,KAAC,gBAAgB,KAAG,CACrB,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAC1B,KAAC,6BAA6B,KAAG,CAClC,CAAC,CAAC,CAAC,CACF,KAAC,4BAA4B,KAAG,CACjC,GACU,GACL,CACX,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAE9B,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAChB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAA6B,CAAC;IAC9D,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC7B,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,CAAC,GAC5D,gBAAgB,CACd,CAAC,KAAK,EAAE,EAAE,CAAC;QACT,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"SelectEnabledToolsPage.js","sourceRoot":"","sources":["../../pages/SelectEnabledToolsPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -15,9 +15,11 @@ export interface SettingsProps {
|
|
|
15
15
|
enabledAutoRefuel: boolean;
|
|
16
16
|
slippage?: string;
|
|
17
17
|
disabledBridges: string[];
|
|
18
|
-
enabledBridges:
|
|
18
|
+
enabledBridges: string[];
|
|
19
|
+
_enabledBridges: Record<string, boolean>;
|
|
19
20
|
disabledExchanges: string[];
|
|
20
|
-
enabledExchanges:
|
|
21
|
+
enabledExchanges: string[];
|
|
22
|
+
_enabledExchanges: Record<string, boolean>;
|
|
21
23
|
}
|
|
22
24
|
export interface SettingsState extends SettingsProps {
|
|
23
25
|
setValue: ValueSetter<SettingsProps>;
|
|
@@ -13,8 +13,10 @@ export const defaultSettings = {
|
|
|
13
13
|
enabledAutoRefuel: true,
|
|
14
14
|
disabledBridges: [],
|
|
15
15
|
disabledExchanges: [],
|
|
16
|
-
enabledBridges:
|
|
17
|
-
enabledExchanges:
|
|
16
|
+
enabledBridges: [],
|
|
17
|
+
enabledExchanges: [],
|
|
18
|
+
_enabledBridges: {},
|
|
19
|
+
_enabledExchanges: {},
|
|
18
20
|
};
|
|
19
21
|
export const useSettingsStore = createWithEqualityFn(persist((set, get) => ({
|
|
20
22
|
...defaultSettings,
|
|
@@ -39,40 +41,45 @@ export const useSettingsStore = createWithEqualityFn(persist((set, get) => ({
|
|
|
39
41
|
if (!reset) {
|
|
40
42
|
// Add new tools
|
|
41
43
|
tools.forEach((tool) => {
|
|
42
|
-
if (!Object.hasOwn(updatedState[`
|
|
43
|
-
updatedState[`
|
|
44
|
+
if (!Object.hasOwn(updatedState[`_enabled${toolType}`], tool)) {
|
|
45
|
+
updatedState[`_enabled${toolType}`][tool] = true;
|
|
44
46
|
}
|
|
45
47
|
});
|
|
46
48
|
// Filter tools we no longer have
|
|
47
|
-
updatedState[`
|
|
49
|
+
updatedState[`_enabled${toolType}`] = Object.fromEntries(Object.entries(updatedState[`_enabled${toolType}`]).filter(([key]) => tools.includes(key)));
|
|
48
50
|
}
|
|
49
51
|
else {
|
|
50
52
|
tools.forEach((tool) => {
|
|
51
|
-
updatedState[`
|
|
53
|
+
updatedState[`_enabled${toolType}`][tool] = true;
|
|
52
54
|
});
|
|
53
55
|
}
|
|
54
|
-
|
|
56
|
+
const enabledToolKeys = Object.keys(updatedState[`_enabled${toolType}`]);
|
|
57
|
+
updatedState[`enabled${toolType}`] = enabledToolKeys.filter((key) => updatedState[`_enabled${toolType}`][key]);
|
|
58
|
+
updatedState[`disabled${toolType}`] = enabledToolKeys.filter((key) => !updatedState[`_enabled${toolType}`][key]);
|
|
55
59
|
return updatedState;
|
|
56
60
|
});
|
|
57
61
|
},
|
|
58
62
|
setToolValue: (toolType, tool, value) => set((state) => {
|
|
59
63
|
const enabledTools = {
|
|
60
|
-
...state[`
|
|
64
|
+
...state[`_enabled${toolType}`],
|
|
61
65
|
[tool]: value,
|
|
62
66
|
};
|
|
67
|
+
const enabledToolKeys = Object.keys(enabledTools);
|
|
63
68
|
return {
|
|
64
|
-
[`
|
|
65
|
-
[`
|
|
69
|
+
[`_enabled${toolType}`]: enabledTools,
|
|
70
|
+
[`enabled${toolType}`]: enabledToolKeys.filter((key) => enabledTools[key]),
|
|
71
|
+
[`disabled${toolType}`]: enabledToolKeys.filter((key) => !enabledTools[key]),
|
|
66
72
|
};
|
|
67
73
|
}),
|
|
68
74
|
toggleTools: (toolType) => set((state) => {
|
|
69
|
-
const enabledTools = { ...state[`
|
|
75
|
+
const enabledTools = { ...state[`_enabled${toolType}`] };
|
|
70
76
|
const enableAll = Boolean(state[`disabled${toolType}`].length);
|
|
71
77
|
for (const toolKey in enabledTools) {
|
|
72
78
|
enabledTools[toolKey] = enableAll;
|
|
73
79
|
}
|
|
74
80
|
return {
|
|
75
|
-
[`
|
|
81
|
+
[`_enabled${toolType}`]: enabledTools,
|
|
82
|
+
[`enabled${toolType}`]: enableAll ? Object.keys(enabledTools) : [],
|
|
76
83
|
[`disabled${toolType}`]: enableAll ? [] : Object.keys(enabledTools),
|
|
77
84
|
};
|
|
78
85
|
}),
|
|
@@ -89,13 +96,15 @@ export const useSettingsStore = createWithEqualityFn(persist((set, get) => ({
|
|
|
89
96
|
name: `li.fi-widget-settings`,
|
|
90
97
|
version: 4,
|
|
91
98
|
partialize: (state) => {
|
|
92
|
-
const { disabledBridges, disabledExchanges, ...partializedState } = state;
|
|
99
|
+
const { disabledBridges, disabledExchanges, enabledBridges, enabledExchanges, ...partializedState } = state;
|
|
93
100
|
return partializedState;
|
|
94
101
|
},
|
|
95
102
|
merge: (persistedState, currentState) => {
|
|
96
103
|
const state = { ...currentState, ...persistedState };
|
|
97
104
|
SettingsToolTypes.forEach((toolType) => {
|
|
98
|
-
|
|
105
|
+
const enabledToolKeys = Object.keys(persistedState[`_enabled${toolType}`]);
|
|
106
|
+
state[`enabled${toolType}`] = enabledToolKeys.filter((key) => persistedState[`_enabled${toolType}`][key]);
|
|
107
|
+
state[`disabled${toolType}`] = enabledToolKeys.filter((key) => !persistedState[`_enabled${toolType}`][key]);
|
|
99
108
|
});
|
|
100
109
|
return state;
|
|
101
110
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSettingsStore.js","sourceRoot":"","sources":["../../../stores/settings/useSettingsStore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAG3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AAErC,MAAM,CAAC,MAAM,2BAA2B,GAGpC;IACF,aAAa,EAAE,UAAU;IACzB,QAAQ,EAAE,eAAe;IACzB,QAAQ,EAAE,QAAQ;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAkB;IAC5C,UAAU,EAAE,MAAM;IAClB,QAAQ,EAAE,QAAQ;IAClB,iBAAiB,EAAE,IAAI;IACvB,eAAe,EAAE,EAAE;IACnB,iBAAiB,EAAE,EAAE;IACrB,cAAc,EAAE,EAAE;IAClB,gBAAgB,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"useSettingsStore.js","sourceRoot":"","sources":["../../../stores/settings/useSettingsStore.ts"],"names":[],"mappings":"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"}
|
package/config/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const name = '@lifi/widget';
|
|
2
|
-
export const version = '3.0.
|
|
2
|
+
export const version = '3.0.2';
|
package/hooks/useRoutes.ts
CHANGED
|
@@ -24,19 +24,24 @@ interface RoutesProps {
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
export const useRoutes = ({ insurableRoute }: RoutesProps = {}) => {
|
|
27
|
-
const { subvariant, sdkConfig, insurance, contractTool } =
|
|
27
|
+
const { subvariant, sdkConfig, insurance, contractTool, bridges, exchanges } =
|
|
28
|
+
useWidgetConfig();
|
|
28
29
|
const queryClient = useQueryClient();
|
|
29
30
|
const emitter = useWidgetEvents();
|
|
30
31
|
const swapOnly = useSwapOnly();
|
|
31
32
|
const {
|
|
32
33
|
disabledBridges,
|
|
33
34
|
disabledExchanges,
|
|
35
|
+
enabledBridges,
|
|
36
|
+
enabledExchanges,
|
|
34
37
|
enabledAutoRefuel,
|
|
35
38
|
routePriority,
|
|
36
39
|
slippage,
|
|
37
40
|
} = useSettings([
|
|
38
41
|
'disabledBridges',
|
|
39
42
|
'disabledExchanges',
|
|
43
|
+
'enabledBridges',
|
|
44
|
+
'enabledExchanges',
|
|
40
45
|
'enabledAutoRefuel',
|
|
41
46
|
'routePriority',
|
|
42
47
|
'slippage',
|
|
@@ -87,6 +92,16 @@ export const useRoutes = ({ insurableRoute }: RoutesProps = {}) => {
|
|
|
87
92
|
// toAddress might be an empty string, but we need to pass undefined if there is no value
|
|
88
93
|
const toWalletAddress = toAddress || undefined;
|
|
89
94
|
|
|
95
|
+
// We need to send the full allowed tools array if custom tool settings are applied
|
|
96
|
+
const allowedBridges =
|
|
97
|
+
bridges?.allow?.length || bridges?.deny?.length
|
|
98
|
+
? enabledBridges
|
|
99
|
+
: undefined;
|
|
100
|
+
const allowedExchanges =
|
|
101
|
+
exchanges?.allow?.length || exchanges?.deny?.length
|
|
102
|
+
? enabledExchanges
|
|
103
|
+
: undefined;
|
|
104
|
+
|
|
90
105
|
const isEnabled =
|
|
91
106
|
Boolean(Number(fromChainId)) &&
|
|
92
107
|
Boolean(Number(toChainId)) &&
|
|
@@ -113,6 +128,8 @@ export const useRoutes = ({ insurableRoute }: RoutesProps = {}) => {
|
|
|
113
128
|
swapOnly,
|
|
114
129
|
disabledBridges,
|
|
115
130
|
disabledExchanges,
|
|
131
|
+
allowedBridges,
|
|
132
|
+
allowedExchanges,
|
|
116
133
|
routePriority,
|
|
117
134
|
subvariant,
|
|
118
135
|
sdkConfig?.routeOptions?.allowSwitchChain,
|
|
@@ -141,6 +158,8 @@ export const useRoutes = ({ insurableRoute }: RoutesProps = {}) => {
|
|
|
141
158
|
swapOnly,
|
|
142
159
|
disabledBridges,
|
|
143
160
|
disabledExchanges,
|
|
161
|
+
allowedBridges,
|
|
162
|
+
allowedExchanges,
|
|
144
163
|
routePriority,
|
|
145
164
|
subvariant,
|
|
146
165
|
allowSwitchChain,
|
|
@@ -157,7 +176,7 @@ export const useRoutes = ({ insurableRoute }: RoutesProps = {}) => {
|
|
|
157
176
|
).toString();
|
|
158
177
|
const formattedSlippage = parseFloat(slippage) / 100;
|
|
159
178
|
|
|
160
|
-
const
|
|
179
|
+
const allowBridges = swapOnly
|
|
161
180
|
? []
|
|
162
181
|
: insurableRoute
|
|
163
182
|
? insurableRoute.steps.flatMap((step) =>
|
|
@@ -168,9 +187,9 @@ export const useRoutes = ({ insurableRoute }: RoutesProps = {}) => {
|
|
|
168
187
|
return toolKeys;
|
|
169
188
|
}, [] as string[]),
|
|
170
189
|
)
|
|
171
|
-
:
|
|
190
|
+
: allowedBridges;
|
|
172
191
|
|
|
173
|
-
const
|
|
192
|
+
const allowExchanges = insurableRoute
|
|
174
193
|
? insurableRoute.steps.flatMap((step) =>
|
|
175
194
|
step.includedSteps.reduce((toolKeys, includedStep) => {
|
|
176
195
|
if (includedStep.type === 'swap') {
|
|
@@ -179,7 +198,7 @@ export const useRoutes = ({ insurableRoute }: RoutesProps = {}) => {
|
|
|
179
198
|
return toolKeys;
|
|
180
199
|
}, [] as string[]),
|
|
181
200
|
)
|
|
182
|
-
:
|
|
201
|
+
: allowedExchanges;
|
|
183
202
|
|
|
184
203
|
if (subvariant === 'custom' && contractCalls && toTokenAmount) {
|
|
185
204
|
const contractCallQuote = await getContractCallsQuote(
|
|
@@ -196,8 +215,8 @@ export const useRoutes = ({ insurableRoute }: RoutesProps = {}) => {
|
|
|
196
215
|
denyExchanges: disabledExchanges.length
|
|
197
216
|
? disabledExchanges
|
|
198
217
|
: undefined,
|
|
199
|
-
allowBridges
|
|
200
|
-
allowExchanges
|
|
218
|
+
allowBridges,
|
|
219
|
+
allowExchanges,
|
|
201
220
|
toFallbackAddress: toAddress,
|
|
202
221
|
slippage: formattedSlippage,
|
|
203
222
|
},
|
|
@@ -263,18 +282,18 @@ export const useRoutes = ({ insurableRoute }: RoutesProps = {}) => {
|
|
|
263
282
|
allowSwitchChain:
|
|
264
283
|
subvariant === 'refuel' ? false : allowSwitchChain,
|
|
265
284
|
bridges:
|
|
266
|
-
|
|
285
|
+
allowBridges?.length || disabledBridges.length
|
|
267
286
|
? {
|
|
268
|
-
allow:
|
|
287
|
+
allow: allowBridges,
|
|
269
288
|
deny: disabledBridges.length
|
|
270
289
|
? disabledBridges
|
|
271
290
|
: undefined,
|
|
272
291
|
}
|
|
273
292
|
: undefined,
|
|
274
293
|
exchanges:
|
|
275
|
-
|
|
294
|
+
allowExchanges?.length || disabledExchanges.length
|
|
276
295
|
? {
|
|
277
|
-
allow:
|
|
296
|
+
allow: allowExchanges,
|
|
278
297
|
deny: disabledExchanges.length
|
|
279
298
|
? disabledExchanges
|
|
280
299
|
: undefined,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lifi/widget",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.2",
|
|
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": "./_esm/index.js",
|
|
@@ -67,7 +67,7 @@ export const SelectEnabledToolsPage: React.FC<{
|
|
|
67
67
|
const [enabledTools, disabledTools, setToolValue, toggleTools] =
|
|
68
68
|
useSettingsStore(
|
|
69
69
|
(state) => [
|
|
70
|
-
state[`
|
|
70
|
+
state[`_enabled${type}`],
|
|
71
71
|
state[`disabled${type}`],
|
|
72
72
|
state.setToolValue,
|
|
73
73
|
state.toggleTools,
|
package/stores/settings/types.ts
CHANGED
|
@@ -24,9 +24,11 @@ export interface SettingsProps {
|
|
|
24
24
|
enabledAutoRefuel: boolean;
|
|
25
25
|
slippage?: string;
|
|
26
26
|
disabledBridges: string[];
|
|
27
|
-
enabledBridges:
|
|
27
|
+
enabledBridges: string[];
|
|
28
|
+
_enabledBridges: Record<string, boolean>;
|
|
28
29
|
disabledExchanges: string[];
|
|
29
|
-
enabledExchanges:
|
|
30
|
+
enabledExchanges: string[];
|
|
31
|
+
_enabledExchanges: Record<string, boolean>;
|
|
30
32
|
}
|
|
31
33
|
|
|
32
34
|
export interface SettingsState extends SettingsProps {
|
|
@@ -22,8 +22,10 @@ export const defaultSettings: SettingsProps = {
|
|
|
22
22
|
enabledAutoRefuel: true,
|
|
23
23
|
disabledBridges: [],
|
|
24
24
|
disabledExchanges: [],
|
|
25
|
-
enabledBridges:
|
|
26
|
-
enabledExchanges:
|
|
25
|
+
enabledBridges: [],
|
|
26
|
+
enabledExchanges: [],
|
|
27
|
+
_enabledBridges: {},
|
|
28
|
+
_enabledExchanges: {},
|
|
27
29
|
};
|
|
28
30
|
|
|
29
31
|
export const useSettingsStore = createWithEqualityFn<SettingsState>(
|
|
@@ -53,49 +55,60 @@ export const useSettingsStore = createWithEqualityFn<SettingsState>(
|
|
|
53
55
|
if (!reset) {
|
|
54
56
|
// Add new tools
|
|
55
57
|
tools.forEach((tool) => {
|
|
56
|
-
if (!Object.hasOwn(updatedState[`
|
|
57
|
-
updatedState[`
|
|
58
|
+
if (!Object.hasOwn(updatedState[`_enabled${toolType}`], tool)) {
|
|
59
|
+
updatedState[`_enabled${toolType}`][tool] = true;
|
|
58
60
|
}
|
|
59
61
|
});
|
|
60
62
|
// Filter tools we no longer have
|
|
61
|
-
updatedState[`
|
|
62
|
-
Object.entries(updatedState[`
|
|
63
|
+
updatedState[`_enabled${toolType}`] = Object.fromEntries(
|
|
64
|
+
Object.entries(updatedState[`_enabled${toolType}`]).filter(
|
|
63
65
|
([key]) => tools.includes(key),
|
|
64
66
|
),
|
|
65
67
|
);
|
|
66
68
|
} else {
|
|
67
69
|
tools.forEach((tool) => {
|
|
68
|
-
updatedState[`
|
|
70
|
+
updatedState[`_enabled${toolType}`][tool] = true;
|
|
69
71
|
});
|
|
70
72
|
}
|
|
71
|
-
|
|
72
|
-
updatedState[`
|
|
73
|
-
)
|
|
73
|
+
const enabledToolKeys = Object.keys(
|
|
74
|
+
updatedState[`_enabled${toolType}`],
|
|
75
|
+
);
|
|
76
|
+
updatedState[`enabled${toolType}`] = enabledToolKeys.filter(
|
|
77
|
+
(key) => updatedState[`_enabled${toolType}`][key],
|
|
78
|
+
);
|
|
79
|
+
updatedState[`disabled${toolType}`] = enabledToolKeys.filter(
|
|
80
|
+
(key) => !updatedState[`_enabled${toolType}`][key],
|
|
81
|
+
);
|
|
74
82
|
return updatedState;
|
|
75
83
|
});
|
|
76
84
|
},
|
|
77
85
|
setToolValue: (toolType, tool, value) =>
|
|
78
86
|
set((state) => {
|
|
79
87
|
const enabledTools = {
|
|
80
|
-
...state[`
|
|
88
|
+
...state[`_enabled${toolType}`],
|
|
81
89
|
[tool]: value,
|
|
82
90
|
};
|
|
91
|
+
const enabledToolKeys = Object.keys(enabledTools);
|
|
83
92
|
return {
|
|
84
|
-
[`
|
|
85
|
-
[`
|
|
93
|
+
[`_enabled${toolType}`]: enabledTools,
|
|
94
|
+
[`enabled${toolType}`]: enabledToolKeys.filter(
|
|
95
|
+
(key) => enabledTools[key],
|
|
96
|
+
),
|
|
97
|
+
[`disabled${toolType}`]: enabledToolKeys.filter(
|
|
86
98
|
(key) => !enabledTools[key],
|
|
87
99
|
),
|
|
88
100
|
};
|
|
89
101
|
}),
|
|
90
102
|
toggleTools: (toolType) =>
|
|
91
103
|
set((state) => {
|
|
92
|
-
const enabledTools = { ...state[`
|
|
104
|
+
const enabledTools = { ...state[`_enabled${toolType}`] };
|
|
93
105
|
const enableAll = Boolean(state[`disabled${toolType}`].length);
|
|
94
106
|
for (const toolKey in enabledTools) {
|
|
95
107
|
enabledTools[toolKey] = enableAll;
|
|
96
108
|
}
|
|
97
109
|
return {
|
|
98
|
-
[`
|
|
110
|
+
[`_enabled${toolType}`]: enabledTools,
|
|
111
|
+
[`enabled${toolType}`]: enableAll ? Object.keys(enabledTools) : [],
|
|
99
112
|
[`disabled${toolType}`]: enableAll ? [] : Object.keys(enabledTools),
|
|
100
113
|
};
|
|
101
114
|
}),
|
|
@@ -113,16 +126,27 @@ export const useSettingsStore = createWithEqualityFn<SettingsState>(
|
|
|
113
126
|
name: `li.fi-widget-settings`,
|
|
114
127
|
version: 4,
|
|
115
128
|
partialize: (state) => {
|
|
116
|
-
const {
|
|
117
|
-
|
|
129
|
+
const {
|
|
130
|
+
disabledBridges,
|
|
131
|
+
disabledExchanges,
|
|
132
|
+
enabledBridges,
|
|
133
|
+
enabledExchanges,
|
|
134
|
+
...partializedState
|
|
135
|
+
} = state;
|
|
118
136
|
return partializedState;
|
|
119
137
|
},
|
|
120
138
|
merge: (persistedState: any, currentState: SettingsState) => {
|
|
121
139
|
const state = { ...currentState, ...persistedState };
|
|
122
140
|
SettingsToolTypes.forEach((toolType) => {
|
|
123
|
-
|
|
124
|
-
persistedState[`
|
|
125
|
-
)
|
|
141
|
+
const enabledToolKeys = Object.keys(
|
|
142
|
+
persistedState[`_enabled${toolType}`],
|
|
143
|
+
);
|
|
144
|
+
state[`enabled${toolType}`] = enabledToolKeys.filter(
|
|
145
|
+
(key) => persistedState[`_enabled${toolType}`][key],
|
|
146
|
+
);
|
|
147
|
+
state[`disabled${toolType}`] = enabledToolKeys.filter(
|
|
148
|
+
(key) => !persistedState[`_enabled${toolType}`][key],
|
|
149
|
+
);
|
|
126
150
|
});
|
|
127
151
|
return state;
|
|
128
152
|
},
|