@lifi/widget 3.24.0 → 3.24.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 +14 -0
- package/dist/esm/config/version.d.ts +1 -1
- package/dist/esm/config/version.js +1 -1
- package/dist/esm/hooks/useTokenSearch.js +4 -2
- package/dist/esm/hooks/useTokenSearch.js.map +1 -1
- package/dist/esm/hooks/useTokens.js +4 -2
- package/dist/esm/hooks/useTokens.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/utils/item.d.ts +9 -0
- package/dist/esm/utils/item.js +18 -0
- package/dist/esm/utils/item.js.map +1 -1
- package/package.json +1 -1
- package/package.json.tmp +1 -1
- package/src/config/version.ts +1 -1
- package/src/hooks/useTokenSearch.ts +9 -2
- package/src/hooks/useTokens.ts +9 -2
- package/src/index.ts +1 -0
- package/src/utils/item.ts +26 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
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.24.2](https://github.com/lifinance/widget/compare/v3.24.1...v3.24.2) (2025-07-03)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* allow-deny - do not filter out tokens from unspecified chains ([#449](https://github.com/lifinance/widget/issues/449)) ([ced6cf6](https://github.com/lifinance/widget/commit/ced6cf68f329e31af0338b31fe18c5feed8417fb))
|
|
11
|
+
|
|
12
|
+
### [3.24.1](https://github.com/lifinance/widget/compare/v3.24.0...v3.24.1) (2025-07-02)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* export createTheme function ([121372b](https://github.com/lifinance/widget/commit/121372b3a8efc2ef27e0155de80bb819204ad4e6))
|
|
18
|
+
|
|
5
19
|
## [3.24.0](https://github.com/lifinance/widget/compare/v3.23.0...v3.24.0) (2025-07-02)
|
|
6
20
|
|
|
7
21
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare const name = "@lifi/widget";
|
|
2
|
-
export declare const version = "3.24.
|
|
2
|
+
export declare const version = "3.24.2";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getToken } from '@lifi/sdk';
|
|
2
2
|
import { useQuery, useQueryClient } from '@tanstack/react-query';
|
|
3
3
|
import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js';
|
|
4
|
-
import { isTokenAllowed } from '../utils/item.js';
|
|
4
|
+
import { filterConfigTokensByChain, isTokenAllowed } from '../utils/item.js';
|
|
5
5
|
import { getQueryKey } from '../utils/queries.js';
|
|
6
6
|
export const useTokenSearch = (chainId, tokenQuery, enabled, formType) => {
|
|
7
7
|
const queryClient = useQueryClient();
|
|
@@ -13,8 +13,10 @@ export const useTokenSearch = (chainId, tokenQuery, enabled, formType) => {
|
|
|
13
13
|
signal,
|
|
14
14
|
});
|
|
15
15
|
if (token) {
|
|
16
|
+
// Filter config tokens by chain before checking if token is allowed
|
|
17
|
+
const filteredConfigTokens = filterConfigTokensByChain(configTokens, formType, token.chainId);
|
|
16
18
|
// Return undefined if the token is denied
|
|
17
|
-
if (!isTokenAllowed(token,
|
|
19
|
+
if (!isTokenAllowed(token, filteredConfigTokens, formType)) {
|
|
18
20
|
return undefined;
|
|
19
21
|
}
|
|
20
22
|
queryClient.setQueriesData({ queryKey: [getQueryKey('tokens', keyPrefix)] }, (data) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTokenSearch.js","sourceRoot":"","sources":["../../../src/hooks/useTokenSearch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,QAAQ,EAAE,MAAM,WAAW,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAA;AAG/E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"useTokenSearch.js","sourceRoot":"","sources":["../../../src/hooks/useTokenSearch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,QAAQ,EAAE,MAAM,WAAW,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAA;AAG/E,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEjD,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,OAAgB,EAChB,UAAmB,EACnB,OAAiB,EACjB,QAAmB,EACnB,EAAE;IACF,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IACpC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,eAAe,EAAE,CAAA;IAE7D,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC;QACnC,QAAQ,EAAE,CAAC,WAAW,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC;QACvE,OAAO,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;YAC/D,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,OAAkB,EAAE,UAAoB,EAAE;gBACrE,MAAM;aACP,CAAC,CAAA;YAEF,IAAI,KAAK,EAAE,CAAC;gBACV,oEAAoE;gBACpE,MAAM,oBAAoB,GAAG,yBAAyB,CACpD,YAAY,EACZ,QAAQ,EACR,KAAK,CAAC,OAAO,CACd,CAAA;gBAED,0CAA0C;gBAC1C,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,oBAAoB,EAAE,QAAQ,CAAC,EAAE,CAAC;oBAC3D,OAAO,SAAS,CAAA;gBAClB,CAAC;gBAED,WAAW,CAAC,cAAc,CACxB,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,EAAE,EAChD,CAAC,IAAI,EAAE,EAAE;oBACP,IACE,IAAI;wBACJ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAiB,CAAC,EAAE,IAAI,CACnC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CACnC,EACD,CAAC;wBACD,MAAM,UAAU,GAAG,EAAE,GAAG,IAAI,EAAE,CAAA;wBAC9B,UAAU,CAAC,MAAM,CAAC,OAAiB,CAAC,EAAE,IAAI,CAAC,KAAoB,CAAC,CAAA;wBAChE,OAAO,UAAU,CAAA;oBACnB,CAAC;gBACH,CAAC,CACF,CAAA;YACH,CAAC;YACD,OAAO,KAAoB,CAAA;QAC7B,CAAC;QAED,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,UAAU,IAAI,OAAO,CAAC;QAClD,KAAK,EAAE,KAAK;KACb,CAAC,CAAA;IACF,OAAO;QACL,KAAK,EAAE,IAAI;QACX,SAAS;KACV,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -2,7 +2,7 @@ import { ChainType, getTokens } from '@lifi/sdk';
|
|
|
2
2
|
import { useQuery } from '@tanstack/react-query';
|
|
3
3
|
import { useMemo } from 'react';
|
|
4
4
|
import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js';
|
|
5
|
-
import { isTokenAllowed } from '../utils/item.js';
|
|
5
|
+
import { filterConfigTokensByChain, isTokenAllowed } from '../utils/item.js';
|
|
6
6
|
import { getQueryKey } from '../utils/queries.js';
|
|
7
7
|
import { useChains } from './useChains.js';
|
|
8
8
|
export const useTokens = (selectedChainId, formType) => {
|
|
@@ -35,9 +35,11 @@ export const useTokens = (selectedChainId, formType) => {
|
|
|
35
35
|
if (includedTokens?.length) {
|
|
36
36
|
filteredTokens = [...includedTokens, ...filteredTokens];
|
|
37
37
|
}
|
|
38
|
+
// Filter config tokens by chain before checking if token is allowed
|
|
39
|
+
const filteredConfigTokens = filterConfigTokensByChain(configTokens, formType, selectedChainId);
|
|
38
40
|
// Get the appropriate allow/deny lists based on formType
|
|
39
41
|
filteredTokens = filteredTokens.filter((token) => token.chainId === selectedChainId &&
|
|
40
|
-
isTokenAllowed(token,
|
|
42
|
+
isTokenAllowed(token, filteredConfigTokens, formType));
|
|
41
43
|
const filteredTokensMap = new Map(filteredTokens.map((token) => [token.address, token]));
|
|
42
44
|
const [popularTokens, featuredTokens] = ['popular', 'featured'].map((tokenType) => {
|
|
43
45
|
const typedConfigTokens = configTokens?.[tokenType]?.filter((token) => token.chainId === selectedChainId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTokens.js","sourceRoot":"","sources":["../../../src/hooks/useTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAA;AAG/E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"useTokens.js","sourceRoot":"","sources":["../../../src/hooks/useTokens.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -21,6 +21,7 @@ export { watermelonLightTheme } from './themes/watermelonLight.js';
|
|
|
21
21
|
export { windows95Theme } from './themes/windows95.js';
|
|
22
22
|
export * from './themes/palettes.js';
|
|
23
23
|
export * from './themes/types.js';
|
|
24
|
+
export { createTheme } from './themes/createTheme.js';
|
|
24
25
|
export * from './types/events.js';
|
|
25
26
|
export type { TokenAmount } from './types/token.js';
|
|
26
27
|
export * from './types/widget.js';
|
package/dist/esm/index.js
CHANGED
|
@@ -19,6 +19,7 @@ export { watermelonLightTheme } from './themes/watermelonLight.js';
|
|
|
19
19
|
export { windows95Theme } from './themes/windows95.js';
|
|
20
20
|
export * from './themes/palettes.js';
|
|
21
21
|
export * from './themes/types.js';
|
|
22
|
+
export { createTheme } from './themes/createTheme.js';
|
|
22
23
|
export * from './types/events.js';
|
|
23
24
|
export * from './types/widget.js';
|
|
24
25
|
export { getPriceImpact } from './utils/getPriceImpact.js';
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACvD,OAAO,EAAE,GAAG,IAAI,UAAU,EAAE,MAAM,UAAU,CAAA;AAE5C,cAAc,6CAA6C,CAAA;AAC3D,cAAc,2CAA2C,CAAA;AACzD,cAAc,+CAA+C,CAAA;AAC7D,cAAc,6CAA6C,CAAA;AAC3D,cAAc,yCAAyC,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,cAAc,qBAAqB,CAAA;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC1E,cAAc,wBAAwB,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,cAAc,6BAA6B,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AAEjC,cAAc,mBAAmB,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,cAAc,mBAAmB,CAAA;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACvD,OAAO,EAAE,GAAG,IAAI,UAAU,EAAE,MAAM,UAAU,CAAA;AAE5C,cAAc,6CAA6C,CAAA;AAC3D,cAAc,2CAA2C,CAAA;AACzD,cAAc,+CAA+C,CAAA;AAC7D,cAAc,6CAA6C,CAAA;AAC3D,cAAc,yCAAyC,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,cAAc,qBAAqB,CAAA;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC1E,cAAc,wBAAwB,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,cAAc,6BAA6B,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,cAAc,mBAAmB,CAAA;AAEjC,cAAc,mBAAmB,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,cAAc,mBAAmB,CAAA;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA"}
|
package/dist/esm/utils/item.d.ts
CHANGED
|
@@ -4,4 +4,13 @@ import type { AllowDeny, WidgetTokens } from '../types/widget.js';
|
|
|
4
4
|
type IncludesFn<T> = (list: T[], item: T) => boolean;
|
|
5
5
|
export declare const isItemAllowed: <T>(item: T, items?: AllowDeny<T>, includes?: IncludesFn<T>) => boolean;
|
|
6
6
|
export declare const isTokenAllowed: (token: BaseToken, configTokens: WidgetTokens | undefined, formType: FormType | undefined) => boolean;
|
|
7
|
+
export declare const filterConfigTokensByChain: (configTokens: WidgetTokens | undefined, formType: FormType | undefined, chainId: number) => {
|
|
8
|
+
allow: BaseToken[];
|
|
9
|
+
deny: BaseToken[];
|
|
10
|
+
featured?: import("@lifi/sdk").StaticToken[];
|
|
11
|
+
include?: import("@lifi/sdk").Token[];
|
|
12
|
+
popular?: import("@lifi/sdk").StaticToken[];
|
|
13
|
+
from?: AllowDeny<BaseToken>;
|
|
14
|
+
to?: AllowDeny<BaseToken>;
|
|
15
|
+
} | undefined;
|
|
7
16
|
export {};
|
package/dist/esm/utils/item.js
CHANGED
|
@@ -11,4 +11,22 @@ export const isTokenAllowed = (token, configTokens, formType) => {
|
|
|
11
11
|
? isItemAllowed(token, configTokens?.[formType], tokenIncludes)
|
|
12
12
|
: true));
|
|
13
13
|
};
|
|
14
|
+
export const filterConfigTokensByChain = (configTokens, formType, chainId) => {
|
|
15
|
+
if (!configTokens) {
|
|
16
|
+
return configTokens;
|
|
17
|
+
}
|
|
18
|
+
return {
|
|
19
|
+
...configTokens,
|
|
20
|
+
allow: configTokens.allow?.filter((t) => t.chainId === chainId) ?? [],
|
|
21
|
+
deny: configTokens.deny?.filter((t) => t.chainId === chainId) ?? [],
|
|
22
|
+
...(formType && {
|
|
23
|
+
[formType]: {
|
|
24
|
+
allow: configTokens[formType]?.allow?.filter((t) => t.chainId === chainId) ??
|
|
25
|
+
[],
|
|
26
|
+
deny: configTokens[formType]?.deny?.filter((t) => t.chainId === chainId) ??
|
|
27
|
+
[],
|
|
28
|
+
},
|
|
29
|
+
}),
|
|
30
|
+
};
|
|
31
|
+
};
|
|
14
32
|
//# sourceMappingURL=item.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"item.js","sourceRoot":"","sources":["../../../src/utils/item.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,IAAO,EACP,KAAoB,EACpB,WAA0B,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAClD,EAAE;IACX,IAAI,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACpC,CAAC;IAED,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,CAAA;AAC3C,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,CAAC,IAAiB,EAAE,IAAe,EAAE,EAAE,CAC3D,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;AAE5E,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,KAAgB,EAChB,YAAsC,EACtC,QAA8B,EAC9B,EAAE;IACF,OAAO,CACL,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,aAAa,CAAC;QACjD,CAAC,QAAQ;YACP,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;YAC/D,CAAC,CAAC,IAAI,CAAC,CACV,CAAA;AACH,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"item.js","sourceRoot":"","sources":["../../../src/utils/item.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,IAAO,EACP,KAAoB,EACpB,WAA0B,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAClD,EAAE;IACX,IAAI,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACpC,CAAC;IAED,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,CAAA;AAC3C,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,CAAC,IAAiB,EAAE,IAAe,EAAE,EAAE,CAC3D,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;AAE5E,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,KAAgB,EAChB,YAAsC,EACtC,QAA8B,EAC9B,EAAE;IACF,OAAO,CACL,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,aAAa,CAAC;QACjD,CAAC,QAAQ;YACP,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;YAC/D,CAAC,CAAC,IAAI,CAAC,CACV,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,YAAsC,EACtC,QAA8B,EAC9B,OAAe,EACf,EAAE;IACF,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,OAAO;QACL,GAAG,YAAY;QACf,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,EAAE;QACrE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,EAAE;QACnE,GAAG,CAAC,QAAQ,IAAI;YACd,CAAC,QAAQ,CAAC,EAAE;gBACV,KAAK,EACH,YAAY,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC;oBACnE,EAAE;gBACJ,IAAI,EACF,YAAY,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC;oBAClE,EAAE;aACL;SACF,CAAC;KACH,CAAA;AACH,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lifi/widget",
|
|
3
|
-
"version": "3.24.
|
|
3
|
+
"version": "3.24.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": "./dist/esm/index.js",
|
package/package.json.tmp
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lifi/widget",
|
|
3
|
-
"version": "3.24.
|
|
3
|
+
"version": "3.24.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": "./src/index.ts",
|
package/src/config/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const name = '@lifi/widget'
|
|
2
|
-
export const version = '3.24.
|
|
2
|
+
export const version = '3.24.2'
|
|
@@ -3,7 +3,7 @@ import { useQuery, useQueryClient } from '@tanstack/react-query'
|
|
|
3
3
|
import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js'
|
|
4
4
|
import type { FormType } from '../stores/form/types.js'
|
|
5
5
|
import type { TokenAmount } from '../types/token.js'
|
|
6
|
-
import { isTokenAllowed } from '../utils/item.js'
|
|
6
|
+
import { filterConfigTokensByChain, isTokenAllowed } from '../utils/item.js'
|
|
7
7
|
import { getQueryKey } from '../utils/queries.js'
|
|
8
8
|
|
|
9
9
|
export const useTokenSearch = (
|
|
@@ -23,8 +23,15 @@ export const useTokenSearch = (
|
|
|
23
23
|
})
|
|
24
24
|
|
|
25
25
|
if (token) {
|
|
26
|
+
// Filter config tokens by chain before checking if token is allowed
|
|
27
|
+
const filteredConfigTokens = filterConfigTokensByChain(
|
|
28
|
+
configTokens,
|
|
29
|
+
formType,
|
|
30
|
+
token.chainId
|
|
31
|
+
)
|
|
32
|
+
|
|
26
33
|
// Return undefined if the token is denied
|
|
27
|
-
if (!isTokenAllowed(token,
|
|
34
|
+
if (!isTokenAllowed(token, filteredConfigTokens, formType)) {
|
|
28
35
|
return undefined
|
|
29
36
|
}
|
|
30
37
|
|
package/src/hooks/useTokens.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { useMemo } from 'react'
|
|
|
4
4
|
import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js'
|
|
5
5
|
import type { FormType } from '../stores/form/types.js'
|
|
6
6
|
import type { TokenAmount } from '../types/token.js'
|
|
7
|
-
import { isTokenAllowed } from '../utils/item.js'
|
|
7
|
+
import { filterConfigTokensByChain, isTokenAllowed } from '../utils/item.js'
|
|
8
8
|
import { getQueryKey } from '../utils/queries.js'
|
|
9
9
|
import { useChains } from './useChains.js'
|
|
10
10
|
|
|
@@ -47,11 +47,18 @@ export const useTokens = (selectedChainId?: number, formType?: FormType) => {
|
|
|
47
47
|
filteredTokens = [...includedTokens, ...filteredTokens]
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
+
// Filter config tokens by chain before checking if token is allowed
|
|
51
|
+
const filteredConfigTokens = filterConfigTokensByChain(
|
|
52
|
+
configTokens,
|
|
53
|
+
formType,
|
|
54
|
+
selectedChainId
|
|
55
|
+
)
|
|
56
|
+
|
|
50
57
|
// Get the appropriate allow/deny lists based on formType
|
|
51
58
|
filteredTokens = filteredTokens.filter(
|
|
52
59
|
(token) =>
|
|
53
60
|
token.chainId === selectedChainId &&
|
|
54
|
-
isTokenAllowed(token,
|
|
61
|
+
isTokenAllowed(token, filteredConfigTokens, formType)
|
|
55
62
|
)
|
|
56
63
|
|
|
57
64
|
const filteredTokensMap = new Map(
|
package/src/index.ts
CHANGED
|
@@ -21,6 +21,7 @@ export { watermelonLightTheme } from './themes/watermelonLight.js'
|
|
|
21
21
|
export { windows95Theme } from './themes/windows95.js'
|
|
22
22
|
export * from './themes/palettes.js'
|
|
23
23
|
export * from './themes/types.js'
|
|
24
|
+
export { createTheme } from './themes/createTheme.js'
|
|
24
25
|
export * from './types/events.js'
|
|
25
26
|
export type { TokenAmount } from './types/token.js'
|
|
26
27
|
export * from './types/widget.js'
|
package/src/utils/item.ts
CHANGED
|
@@ -31,3 +31,29 @@ export const isTokenAllowed = (
|
|
|
31
31
|
: true)
|
|
32
32
|
)
|
|
33
33
|
}
|
|
34
|
+
|
|
35
|
+
export const filterConfigTokensByChain = (
|
|
36
|
+
configTokens: WidgetTokens | undefined,
|
|
37
|
+
formType: FormType | undefined,
|
|
38
|
+
chainId: number
|
|
39
|
+
) => {
|
|
40
|
+
if (!configTokens) {
|
|
41
|
+
return configTokens
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return {
|
|
45
|
+
...configTokens,
|
|
46
|
+
allow: configTokens.allow?.filter((t) => t.chainId === chainId) ?? [],
|
|
47
|
+
deny: configTokens.deny?.filter((t) => t.chainId === chainId) ?? [],
|
|
48
|
+
...(formType && {
|
|
49
|
+
[formType]: {
|
|
50
|
+
allow:
|
|
51
|
+
configTokens[formType]?.allow?.filter((t) => t.chainId === chainId) ??
|
|
52
|
+
[],
|
|
53
|
+
deny:
|
|
54
|
+
configTokens[formType]?.deny?.filter((t) => t.chainId === chainId) ??
|
|
55
|
+
[],
|
|
56
|
+
},
|
|
57
|
+
}),
|
|
58
|
+
}
|
|
59
|
+
}
|