@lifi/widget 3.24.1 → 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 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.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
+
5
12
  ### [3.24.1](https://github.com/lifinance/widget/compare/v3.24.0...v3.24.1) (2025-07-02)
6
13
 
7
14
 
@@ -1,2 +1,2 @@
1
1
  export declare const name = "@lifi/widget";
2
- export declare const version = "3.24.1";
2
+ export declare const version = "3.24.2";
@@ -1,3 +1,3 @@
1
1
  export const name = '@lifi/widget';
2
- export const version = '3.24.1';
2
+ export const version = '3.24.2';
3
3
  //# sourceMappingURL=version.js.map
@@ -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, configTokens, formType)) {
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;AACjD,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,0CAA0C;gBAC1C,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,CAAC;oBACnD,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"}
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, configTokens, formType));
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":"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"}
1
+ {"version":3,"file":"useTokens.js","sourceRoot":"","sources":["../../../src/hooks/useTokens.ts"],"names":[],"mappings":"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"}
@@ -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 {};
@@ -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.1",
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.1",
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",
@@ -1,2 +1,2 @@
1
1
  export const name = '@lifi/widget'
2
- export const version = '3.24.1'
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, configTokens, formType)) {
34
+ if (!isTokenAllowed(token, filteredConfigTokens, formType)) {
28
35
  return undefined
29
36
  }
30
37
 
@@ -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, configTokens, formType)
61
+ isTokenAllowed(token, filteredConfigTokens, formType)
55
62
  )
56
63
 
57
64
  const filteredTokensMap = new Map(
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
+ }