@lifi/widget 3.6.0-alpha.0 → 3.6.0-alpha.1

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.
@@ -1,6 +1,7 @@
1
1
  import { useChains } from '../../hooks/useChains.js';
2
2
  import { useSwapOnly } from '../../hooks/useSwapOnly.js';
3
3
  import { useToAddressReset } from '../../hooks/useToAddressReset.js';
4
+ import { useHasExternalWalletProvider } from '../../providers/WalletProvider/useHasExternalWalletProvider.js';
4
5
  import { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js';
5
6
  import { useChainOrder } from '../../stores/chains/useChainOrder.js';
6
7
  import { FormKeyHelper } from '../../stores/form/types.js';
@@ -11,7 +12,8 @@ export const useChainSelect = (formType) => {
11
12
  const chainKey = FormKeyHelper.getChainKey(formType);
12
13
  const { onChange } = useFieldController({ name: chainKey });
13
14
  const { setFieldValue, getFieldValues } = useFieldActions();
14
- const { chains, isLoading, getChainById } = useChains(formType);
15
+ const { availableChainTypes } = useHasExternalWalletProvider();
16
+ const { chains, isLoading, getChainById } = useChains(formType, formType === 'from' ? availableChainTypes : undefined);
15
17
  const [chainOrder, setChainOrder] = useChainOrder(formType);
16
18
  const swapOnly = useSwapOnly();
17
19
  const { tryResetToAddress } = useToAddressReset();
@@ -1 +1 @@
1
- {"version":3,"file":"useChainSelect.js","sourceRoot":"","sources":["../../../components/ChainSelect/useChainSelect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useChainSelect.js","sourceRoot":"","sources":["../../../components/ChainSelect/useChainSelect.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  export declare const name = "@lifi/widget";
2
- export declare const version = "3.6.0-alpha.0";
2
+ export declare const version = "3.6.0-alpha.1";
@@ -1,3 +1,3 @@
1
1
  export const name = '@lifi/widget';
2
- export const version = '3.6.0-alpha.0';
2
+ export const version = '3.6.0-alpha.1';
3
3
  //# sourceMappingURL=version.js.map
@@ -1,6 +1,7 @@
1
+ import type { ChainType } from '@lifi/sdk';
1
2
  import type { FormType } from '../stores/form/types.js';
2
- export declare const useChains: (type?: FormType) => {
3
- chains: import("@lifi/types").ExtendedChain[] | undefined;
4
- getChainById: (chainId?: number, chains?: import("@lifi/types").ExtendedChain[] | undefined) => import("@lifi/types").ExtendedChain | undefined;
3
+ export declare const useChains: (type?: FormType, chainTypes?: ChainType[]) => {
4
+ chains: import("@lifi/sdk").ExtendedChain[] | undefined;
5
+ getChainById: (chainId?: number, chains?: import("@lifi/sdk").ExtendedChain[] | undefined) => import("@lifi/sdk").ExtendedChain | undefined;
5
6
  isLoading: boolean;
6
7
  };
@@ -2,16 +2,18 @@ import { useMemo } from 'react';
2
2
  import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js';
3
3
  import { isItemAllowed } from '../utils/item.js';
4
4
  import { useAvailableChains } from './useAvailableChains.js';
5
- export const useChains = (type) => {
5
+ export const useChains = (type, chainTypes) => {
6
6
  const { chains } = useWidgetConfig();
7
7
  const { chains: availableChains, isLoading: isLoadingAvailableChains, getChainById, } = useAvailableChains();
8
8
  const filteredChains = useMemo(() => {
9
9
  const filteredChains = type
10
10
  ? availableChains?.filter((chain) => isItemAllowed(chain.id, chains) &&
11
- isItemAllowed(chain.id, chains?.[type]))
11
+ isItemAllowed(chain.id, chains?.[type]) &&
12
+ // Check against chain types if they are provided
13
+ (chainTypes?.includes(chain.chainType) ?? true))
12
14
  : availableChains?.filter((chain) => isItemAllowed(chain.id, chains));
13
15
  return filteredChains;
14
- }, [availableChains, chains, type]);
16
+ }, [availableChains, chainTypes, chains, type]);
15
17
  return {
16
18
  chains: filteredChains,
17
19
  getChainById,
@@ -1 +1 @@
1
- {"version":3,"file":"useChains.js","sourceRoot":"","sources":["../../hooks/useChains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;AAEhF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAe,EAAE,EAAE;IAC3C,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC;IACrC,MAAM,EACJ,MAAM,EAAE,eAAe,EACvB,SAAS,EAAE,wBAAwB,EACnC,YAAY,GACb,GAAG,kBAAkB,EAAE,CAAC;IAEzB,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE;QAClC,MAAM,cAAc,GAAG,IAAI;YACzB,CAAC,CAAC,eAAe,EAAE,MAAM,CACrB,CAAC,KAAK,EAAE,EAAE,CACR,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC;gBAC/B,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAC1C;YACH,CAAC,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;QACxE,OAAO,cAAc,CAAC;IACxB,CAAC,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAEpC,OAAO;QACL,MAAM,EAAE,cAAc;QACtB,YAAY;QACZ,SAAS,EAAE,wBAAwB;KACpC,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"useChains.js","sourceRoot":"","sources":["../../hooks/useChains.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;AAEhF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAe,EAAE,UAAwB,EAAE,EAAE;IACrE,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC;IACrC,MAAM,EACJ,MAAM,EAAE,eAAe,EACvB,SAAS,EAAE,wBAAwB,EACnC,YAAY,GACb,GAAG,kBAAkB,EAAE,CAAC;IAEzB,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE;QAClC,MAAM,cAAc,GAAG,IAAI;YACzB,CAAC,CAAC,eAAe,EAAE,MAAM,CACrB,CAAC,KAAK,EAAE,EAAE,CACR,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC;gBAC/B,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;gBACvC,iDAAiD;gBACjD,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,CAClD;YACH,CAAC,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;QACxE,OAAO,cAAc,CAAC;IACxB,CAAC,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAEhD,OAAO;QACL,MAAM,EAAE,cAAc;QACtB,YAAY;QACZ,SAAS,EAAE,wBAAwB;KACpC,CAAC;AACJ,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { ChainType } from '@lifi/sdk';
2
2
  interface ExternalWalletProvider {
3
3
  hasExternalProvider: boolean;
4
- providers: ChainType[];
4
+ availableChainTypes: ChainType[];
5
5
  }
6
6
  export declare function useHasExternalWalletProvider(): ExternalWalletProvider;
7
7
  export {};
@@ -21,8 +21,8 @@ export function useHasExternalWalletProvider() {
21
21
  return providers;
22
22
  }, [hasExternalEVMContext, hasExternalSVMContext, hasExternalUTXOContext]);
23
23
  return {
24
- hasExternalProvider: hasExternalEVMContext || hasExternalSVMContext,
25
- providers,
24
+ hasExternalProvider: hasExternalEVMContext || hasExternalSVMContext || hasExternalUTXOContext,
25
+ availableChainTypes: providers,
26
26
  };
27
27
  }
28
28
  //# sourceMappingURL=useHasExternalWalletProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useHasExternalWalletProvider.js","sourceRoot":"","sources":["../../../providers/WalletProvider/useHasExternalWalletProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAO/D,MAAM,UAAU,4BAA4B;IAC1C,MAAM,qBAAqB,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC7D,MAAM,qBAAqB,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC7D,MAAM,sBAAsB,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAE/D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE;QAC7B,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,IAAI,qBAAqB,EAAE,CAAC;YAC1B,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,qBAAqB,EAAE,CAAC;YAC1B,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,sBAAsB,EAAE,CAAC;YAC3B,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,CAAC,qBAAqB,EAAE,qBAAqB,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAE3E,OAAO;QACL,mBAAmB,EAAE,qBAAqB,IAAI,qBAAqB;QACnE,SAAS;KACV,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"useHasExternalWalletProvider.js","sourceRoot":"","sources":["../../../providers/WalletProvider/useHasExternalWalletProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAO/D,MAAM,UAAU,4BAA4B;IAC1C,MAAM,qBAAqB,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC7D,MAAM,qBAAqB,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC7D,MAAM,sBAAsB,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAE/D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE;QAC7B,MAAM,SAAS,GAAgB,EAAE,CAAC;QAClC,IAAI,qBAAqB,EAAE,CAAC;YAC1B,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,qBAAqB,EAAE,CAAC;YAC1B,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,sBAAsB,EAAE,CAAC;YAC3B,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,CAAC,qBAAqB,EAAE,qBAAqB,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAE3E,OAAO;QACL,mBAAmB,EACjB,qBAAqB,IAAI,qBAAqB,IAAI,sBAAsB;QAC1E,mBAAmB,EAAE,SAAS;KAC/B,CAAC;AACJ,CAAC"}
@@ -2,6 +2,7 @@ import type { EVMChain } from '@lifi/sdk';
2
2
  import { useChains } from '../../hooks/useChains.js';
3
3
  import { useSwapOnly } from '../../hooks/useSwapOnly.js';
4
4
  import { useToAddressReset } from '../../hooks/useToAddressReset.js';
5
+ import { useHasExternalWalletProvider } from '../../providers/WalletProvider/useHasExternalWalletProvider.js';
5
6
  import { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js';
6
7
  import { useChainOrder } from '../../stores/chains/useChainOrder.js';
7
8
  import type { FormType } from '../../stores/form/types.js';
@@ -15,7 +16,11 @@ export const useChainSelect = (formType: FormType) => {
15
16
  const chainKey = FormKeyHelper.getChainKey(formType);
16
17
  const { onChange } = useFieldController({ name: chainKey });
17
18
  const { setFieldValue, getFieldValues } = useFieldActions();
18
- const { chains, isLoading, getChainById } = useChains(formType);
19
+ const { availableChainTypes } = useHasExternalWalletProvider();
20
+ const { chains, isLoading, getChainById } = useChains(
21
+ formType,
22
+ formType === 'from' ? availableChainTypes : undefined,
23
+ );
19
24
  const [chainOrder, setChainOrder] = useChainOrder(formType);
20
25
  const swapOnly = useSwapOnly();
21
26
  const { tryResetToAddress } = useToAddressReset();
package/config/version.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  export const name = '@lifi/widget';
2
- export const version = '3.6.0-alpha.0';
2
+ export const version = '3.6.0-alpha.1';
@@ -1,10 +1,11 @@
1
+ import type { ChainType } from '@lifi/sdk';
1
2
  import { useMemo } from 'react';
2
3
  import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js';
3
4
  import type { FormType } from '../stores/form/types.js';
4
5
  import { isItemAllowed } from '../utils/item.js';
5
6
  import { useAvailableChains } from './useAvailableChains.js';
6
7
 
7
- export const useChains = (type?: FormType) => {
8
+ export const useChains = (type?: FormType, chainTypes?: ChainType[]) => {
8
9
  const { chains } = useWidgetConfig();
9
10
  const {
10
11
  chains: availableChains,
@@ -17,11 +18,13 @@ export const useChains = (type?: FormType) => {
17
18
  ? availableChains?.filter(
18
19
  (chain) =>
19
20
  isItemAllowed(chain.id, chains) &&
20
- isItemAllowed(chain.id, chains?.[type]),
21
+ isItemAllowed(chain.id, chains?.[type]) &&
22
+ // Check against chain types if they are provided
23
+ (chainTypes?.includes(chain.chainType) ?? true),
21
24
  )
22
25
  : availableChains?.filter((chain) => isItemAllowed(chain.id, chains));
23
26
  return filteredChains;
24
- }, [availableChains, chains, type]);
27
+ }, [availableChains, chainTypes, chains, type]);
25
28
 
26
29
  return {
27
30
  chains: filteredChains,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lifi/widget",
3
- "version": "3.6.0-alpha.0",
3
+ "version": "3.6.0-alpha.1",
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",
@@ -35,7 +35,7 @@
35
35
  "@emotion/react": "^11.13.3",
36
36
  "@emotion/styled": "^11.13.0",
37
37
  "@lifi/sdk": "^3.3.0-alpha.1",
38
- "@lifi/wallet-management": "^3.2.0-alpha.0",
38
+ "@lifi/wallet-management": "^3.2.0-alpha.1",
39
39
  "@mui/icons-material": "^5.16.7",
40
40
  "@mui/lab": "^5.0.0-alpha.173",
41
41
  "@mui/material": "^5.16.7",
@@ -6,7 +6,7 @@ import { UTXOExternalContext } from './UTXOExternalContext.js';
6
6
 
7
7
  interface ExternalWalletProvider {
8
8
  hasExternalProvider: boolean;
9
- providers: ChainType[];
9
+ availableChainTypes: ChainType[];
10
10
  }
11
11
 
12
12
  export function useHasExternalWalletProvider(): ExternalWalletProvider {
@@ -15,7 +15,7 @@ export function useHasExternalWalletProvider(): ExternalWalletProvider {
15
15
  const hasExternalUTXOContext = useContext(UTXOExternalContext);
16
16
 
17
17
  const providers = useMemo(() => {
18
- const providers = [];
18
+ const providers: ChainType[] = [];
19
19
  if (hasExternalEVMContext) {
20
20
  providers.push(ChainType.EVM);
21
21
  }
@@ -29,7 +29,8 @@ export function useHasExternalWalletProvider(): ExternalWalletProvider {
29
29
  }, [hasExternalEVMContext, hasExternalSVMContext, hasExternalUTXOContext]);
30
30
 
31
31
  return {
32
- hasExternalProvider: hasExternalEVMContext || hasExternalSVMContext,
33
- providers,
32
+ hasExternalProvider:
33
+ hasExternalEVMContext || hasExternalSVMContext || hasExternalUTXOContext,
34
+ availableChainTypes: providers,
34
35
  };
35
36
  }