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

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 (29) hide show
  1. package/_esm/components/ChainSelect/useChainSelect.js +4 -2
  2. package/_esm/components/ChainSelect/useChainSelect.js.map +1 -1
  3. package/_esm/components/TokenRate/TokenRate.js +2 -2
  4. package/_esm/components/TokenRate/TokenRate.js.map +1 -1
  5. package/_esm/config/version.d.ts +1 -1
  6. package/_esm/config/version.js +1 -1
  7. package/_esm/hooks/useAccount.d.ts +7 -1
  8. package/_esm/hooks/useAccount.js +41 -9
  9. package/_esm/hooks/useAccount.js.map +1 -1
  10. package/_esm/hooks/useWallets.d.ts +1 -1
  11. package/_esm/hooks/useWallets.js +8 -8
  12. package/_esm/hooks/useWallets.js.map +1 -1
  13. package/_esm/pages/SelectWalletPage/EVMListItemButton.js +3 -0
  14. package/_esm/pages/SelectWalletPage/EVMListItemButton.js.map +1 -1
  15. package/_esm/pages/SelectWalletPage/SVMListItemButton.js +3 -0
  16. package/_esm/pages/SelectWalletPage/SVMListItemButton.js.map +1 -1
  17. package/_esm/pages/SelectWalletPage/UTXOListItemButton.js +3 -0
  18. package/_esm/pages/SelectWalletPage/UTXOListItemButton.js.map +1 -1
  19. package/_esm/providers/WalletProvider/UTXOBaseProvider.js +1 -1
  20. package/components/ChainSelect/useChainSelect.ts +6 -2
  21. package/components/TokenRate/TokenRate.tsx +2 -2
  22. package/config/version.ts +1 -1
  23. package/hooks/useAccount.ts +64 -15
  24. package/hooks/useWallets.ts +10 -10
  25. package/package.json +6 -6
  26. package/pages/SelectWalletPage/EVMListItemButton.tsx +3 -0
  27. package/pages/SelectWalletPage/SVMListItemButton.tsx +3 -0
  28. package/pages/SelectWalletPage/UTXOListItemButton.tsx +3 -0
  29. package/providers/WalletProvider/UTXOBaseProvider.tsx +1 -1
@@ -12,8 +12,10 @@ export const useChainSelect = (formType) => {
12
12
  const chainKey = FormKeyHelper.getChainKey(formType);
13
13
  const { onChange } = useFieldController({ name: chainKey });
14
14
  const { setFieldValue, getFieldValues } = useFieldActions();
15
- const { availableChainTypes } = useHasExternalWalletProvider();
16
- const { chains, isLoading, getChainById } = useChains(formType, formType === 'from' ? availableChainTypes : undefined);
15
+ const { hasExternalProvider, availableChainTypes } = useHasExternalWalletProvider();
16
+ const { chains, isLoading, getChainById } = useChains(formType, formType === 'from' && hasExternalProvider
17
+ ? availableChainTypes
18
+ : undefined);
17
19
  const [chainOrder, setChainOrder] = useChainOrder(formType);
18
20
  const swapOnly = useSwapOnly();
19
21
  const { tryResetToAddress } = useToAddressReset();
@@ -1 +1 @@
1
- {"version":3,"file":"useChainSelect.js","sourceRoot":"","sources":["../../../components/ChainSelect/useChainSelect.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gEAAgE,CAAC;AAC9G,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAG7E,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAkB,EAAE,EAAE;IACnD,MAAM,EAAE,UAAU,EAAE,GAAG,eAAe,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC5D,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,eAAe,EAAE,CAAC;IAC5D,MAAM,EAAE,mBAAmB,EAAE,GAAG,4BAA4B,EAAE,CAAC;IAC/D,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,SAAS,CACnD,QAAQ,EACR,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CACtD,CAAC;IACF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,EAAE,iBAAiB,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAElD,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,cAAc,GAAG,UAAU;aAC9B,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;aAC9D,MAAM,CAAC,OAAO,CAAe,CAAC;QACjC,OAAO,cAAc,CAAC;IACxB,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,OAAe,EAAE,EAAE;QAC1C,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClB,IAAI,QAAQ,EAAE,CAAC;YACb,aAAa,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE;gBACtD,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;QACL,CAAC;QACD,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAsB,CAAC,EAAE,CAAC;YAClD,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC9B,CAAC;QACD,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,SAAuB,CAAC,EAAE,CAAC;YACnD,aAAa,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC/B,CAAC;QACD,aAAa,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;QAEvC,MAAM,CAAC,SAAS,CAAC,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,OAAO,EAAE,CAAC;YACZ,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QACD,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,OAAO;QACL,UAAU;QACV,MAAM;QACN,SAAS;QACT,SAAS;QACT,aAAa;QACb,eAAe;KAChB,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"useChainSelect.js","sourceRoot":"","sources":["../../../components/ChainSelect/useChainSelect.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,12 @@ import { formatUnits } from 'viem';
3
3
  import { create } from 'zustand';
4
4
  import { convertToSubscriptFormat, precisionFormatter, } from '../../utils/format.js';
5
5
  import { TokenRateTypography } from './TokenRate.style.js';
6
- const useTokenRateStore = create((set) => ({
6
+ const useTokenRate = create((set) => ({
7
7
  isForward: true,
8
8
  toggleIsForward: () => set((state) => ({ isForward: !state.isForward })),
9
9
  }));
10
10
  export const TokenRate = ({ route }) => {
11
- const { isForward, toggleIsForward } = useTokenRateStore();
11
+ const { isForward, toggleIsForward } = useTokenRate();
12
12
  const toggleRate = (e) => {
13
13
  e.stopPropagation();
14
14
  toggleIsForward();
@@ -1 +1 @@
1
- {"version":3,"file":"TokenRate.js","sourceRoot":"","sources":["../../../components/TokenRate/TokenRate.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EACL,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAW3D,MAAM,iBAAiB,GAAG,MAAM,CAAiB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACzD,SAAS,EAAE,IAAI;IACf,eAAe,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;CACzE,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,SAAS,GAA6B,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAC/D,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAE3D,MAAM,UAAU,GAAuC,CAAC,CAAC,EAAE,EAAE;QAC3D,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,eAAe,EAAE,CAAC;IACpB,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpC,MAAM,SAAS,GAAG;QAChB,GAAG,KAAK,CAAC,SAAS;QAClB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;KACjC,CAAC;IACF,MAAM,OAAO,GAAG;QACd,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO;YAC9B,QAAQ,EAAE,MAAM,CAAC,OAAO;YACxB,KAAK,CAAC,OAAO,CAAC;QAChB,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ;YACnC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC;YACrC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;KAC3B,CAAC;IAEF,MAAM,UAAU,GACd,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,MAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1D,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,MAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjE,MAAM,UAAU,GACd,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,MAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC9D,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,MAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE7D,MAAM,QAAQ,GAAG,SAAS;QACxB,CAAC,CAAC,KAAK,SAAS,CAAC,MAAM,MAAM,wBAAwB,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE;QACrF,CAAC,CAAC,KAAK,OAAO,CAAC,MAAM,MAAM,wBAAwB,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;IAExF,MAAM,SAAS,GAAG,SAAS;QACzB,CAAC,CAAC,KAAK,SAAS,CAAC,MAAM,MAAM,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE;QACtF,CAAC,CAAC,KAAK,OAAO,CAAC,MAAM,MAAM,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;IAEzF,OAAO,CACL,KAAC,mBAAmB,IAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAE,SAAS,YACrE,QAAQ,GACW,CACvB,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"TokenRate.js","sourceRoot":"","sources":["../../../components/TokenRate/TokenRate.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EACL,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAW3D,MAAM,YAAY,GAAG,MAAM,CAAiB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACpD,SAAS,EAAE,IAAI;IACf,eAAe,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;CACzE,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,SAAS,GAA6B,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAC/D,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,YAAY,EAAE,CAAC;IAEtD,MAAM,UAAU,GAAuC,CAAC,CAAC,EAAE,EAAE;QAC3D,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,eAAe,EAAE,CAAC;IACpB,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpC,MAAM,SAAS,GAAG;QAChB,GAAG,KAAK,CAAC,SAAS;QAClB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;KACjC,CAAC;IACF,MAAM,OAAO,GAAG;QACd,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO;YAC9B,QAAQ,EAAE,MAAM,CAAC,OAAO;YACxB,KAAK,CAAC,OAAO,CAAC;QAChB,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ;YACnC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC;YACrC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;KAC3B,CAAC;IAEF,MAAM,UAAU,GACd,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,MAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1D,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,MAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjE,MAAM,UAAU,GACd,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,MAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC9D,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,MAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE7D,MAAM,QAAQ,GAAG,SAAS;QACxB,CAAC,CAAC,KAAK,SAAS,CAAC,MAAM,MAAM,wBAAwB,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE;QACrF,CAAC,CAAC,KAAK,OAAO,CAAC,MAAM,MAAM,wBAAwB,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;IAExF,MAAM,SAAS,GAAG,SAAS;QACzB,CAAC,CAAC,KAAK,SAAS,CAAC,MAAM,MAAM,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE;QACtF,CAAC,CAAC,KAAK,OAAO,CAAC,MAAM,MAAM,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;IAEzF,OAAO,CACL,KAAC,mBAAmB,IAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAE,SAAS,YACrE,QAAQ,GACW,CACvB,CAAC;AACJ,CAAC,CAAC"}
@@ -1,2 +1,2 @@
1
1
  export declare const name = "@lifi/widget";
2
- export declare const version = "3.6.0-alpha.1";
2
+ export declare const version = "3.6.0-alpha.3";
@@ -1,3 +1,3 @@
1
1
  export const name = '@lifi/widget';
2
- export const version = '3.6.0-alpha.1';
2
+ export const version = '3.6.0-alpha.3';
3
3
  //# sourceMappingURL=version.js.map
@@ -1,4 +1,5 @@
1
1
  import { ChainType } from '@lifi/sdk';
2
+ import type { CreateConnectorFnExtended } from '@lifi/wallet-management';
2
3
  import type { WalletAdapter } from '@solana/wallet-adapter-base';
3
4
  import type { Chain } from 'viem';
4
5
  import type { Connector } from 'wagmi';
@@ -30,8 +31,13 @@ export interface AccountResult {
30
31
  interface UseAccountArgs {
31
32
  chainType?: ChainType;
32
33
  }
34
+ export type LastConnectedAccount = WalletAdapter | Connector | CreateConnectorFnExtended | null;
35
+ interface LastConnectedAccountStore {
36
+ lastConnectedAccount: LastConnectedAccount;
37
+ setLastConnectedAccount: (account: LastConnectedAccount) => void;
38
+ }
39
+ export declare const useLastConnectedAccount: import("zustand").UseBoundStore<import("zustand").StoreApi<LastConnectedAccountStore>>;
33
40
  /**
34
- *
35
41
  * @param args When we provide args we want to return either account with corresponding chainType or default disconnected one
36
42
  * @returns - Account result
37
43
  */
@@ -3,6 +3,7 @@ import { useConfig as useBigmiConfig } from '@lifi/wallet-management';
3
3
  import { useWallet } from '@solana/wallet-adapter-react';
4
4
  import { useMemo } from 'react';
5
5
  import { useAccount as useAccountInternal } from 'wagmi';
6
+ import { create } from 'zustand';
6
7
  const defaultAccount = {
7
8
  chainType: ChainType.EVM,
8
9
  isConnected: false,
@@ -11,8 +12,11 @@ const defaultAccount = {
11
12
  isDisconnected: true,
12
13
  status: 'disconnected',
13
14
  };
15
+ export const useLastConnectedAccount = create((set) => ({
16
+ lastConnectedAccount: null,
17
+ setLastConnectedAccount: (account) => set({ lastConnectedAccount: account }),
18
+ }));
14
19
  /**
15
- *
16
20
  * @param args When we provide args we want to return either account with corresponding chainType or default disconnected one
17
21
  * @returns - Account result
18
22
  */
@@ -21,9 +25,7 @@ export const useAccount = (args) => {
21
25
  const bigmiAccount = useAccountInternal({ config: bigmiConfig });
22
26
  const wagmiAccount = useAccountInternal();
23
27
  const { wallet } = useWallet();
24
- // We create a simple variable from the args object
25
- // to avoid re-render useMemo on every object reference change.
26
- const hasChainTypeArgs = Boolean(args);
28
+ const { lastConnectedAccount } = useLastConnectedAccount();
27
29
  return useMemo(() => {
28
30
  const svm = wallet?.adapter.publicKey
29
31
  ? {
@@ -48,14 +50,44 @@ export const useAccount = (args) => {
48
50
  const evm = { ...wagmiAccount, chainType: ChainType.EVM };
49
51
  const utxo = { ...bigmiAccount, chainType: ChainType.UTXO };
50
52
  const accounts = [evm, svm, utxo];
51
- const connectedAccounts = [evm, svm, utxo].filter((account) => account.isConnected && account.address);
53
+ const connectedAccounts = accounts.filter((account) => account.isConnected && account.address);
54
+ // If a chainType argument is provided, attempt to find a connected account with the matching chainType.
55
+ // If no matching account is found, fallback to the default account.
56
+ // If no chainType argument, selectedAccount should be used.
57
+ const selectedChainTypeAccount = args?.chainType
58
+ ? connectedAccounts.find((account) => account.chainType === args?.chainType) || defaultAccount
59
+ : undefined;
60
+ // If lastConnectedAccount exists, attempt to find a connected account with a matching connector ID or name.
61
+ // If no matching account is found, fallback to the first connected account.
62
+ // If lastConnectedAccount is not present, simply select the first connected account.
63
+ const selectedAccount = lastConnectedAccount
64
+ ? connectedAccounts.find((account) => {
65
+ const connectorIdMatch = lastConnectedAccount?.id ===
66
+ account.connector?.id;
67
+ const connectorNameMatch = !lastConnectedAccount?.id &&
68
+ lastConnectedAccount?.name ===
69
+ account.connector?.name;
70
+ return connectorIdMatch || connectorNameMatch;
71
+ }) || connectedAccounts[0]
72
+ : connectedAccounts[0];
52
73
  return {
53
- account: accounts.find((account) => (!hasChainTypeArgs || account.chainType === args?.chainType) &&
54
- account.isConnected &&
55
- account.address) ?? defaultAccount,
74
+ account: selectedChainTypeAccount || selectedAccount || defaultAccount,
56
75
  // We need to return only connected account list
57
76
  accounts: connectedAccounts,
58
77
  };
59
- }, [wallet, wagmiAccount, bigmiAccount, hasChainTypeArgs, args?.chainType]);
78
+ // eslint-disable-next-line react-hooks/exhaustive-deps
79
+ }, [
80
+ wallet,
81
+ wagmiAccount.connector?.uid,
82
+ wagmiAccount.connector?.id,
83
+ wagmiAccount.status,
84
+ wagmiAccount.address,
85
+ bigmiAccount.connector?.uid,
86
+ bigmiAccount.connector?.id,
87
+ bigmiAccount.status,
88
+ bigmiAccount.address,
89
+ args?.chainType,
90
+ lastConnectedAccount,
91
+ ]);
60
92
  };
61
93
  //# sourceMappingURL=useAccount.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAccount.js","sourceRoot":"","sources":["../../hooks/useAccount.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useAccount.js","sourceRoot":"","sources":["../../hooks/useAccount.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,5 @@ import type { CreateConnectorFnExtended } from '@lifi/wallet-management';
2
2
  import type { Wallet } from '@solana/wallet-adapter-react';
3
3
  import type { Connector } from 'wagmi';
4
4
  import type { WidgetChains, WidgetWalletConfig } from '../types/widget.js';
5
- export declare const useWallets: (walletConfig?: WidgetWalletConfig, chains?: WidgetChains) => (Connector | Wallet | CreateConnectorFnExtended)[];
5
+ export declare const useWallets: (walletConfig?: WidgetWalletConfig, chains?: WidgetChains) => (Connector | CreateConnectorFnExtended | Wallet)[];
6
6
  export declare const walletComparator: (a: CreateConnectorFnExtended | Connector | Wallet, b: CreateConnectorFnExtended | Connector | Wallet) => number;
@@ -30,14 +30,6 @@ export const useWallets = (walletConfig, chains) => {
30
30
  !isWalletInstalled('metaMask')) {
31
31
  evmConnectors.unshift(createMetaMaskConnector(walletConfig?.metaMask ?? defaultMetaMaskConfig));
32
32
  }
33
- const utxoInstalled = isItemAllowed(ChainType.UTXO, chains?.types)
34
- ? bigmiConnectors.filter((connector) => isWalletInstalled(connector.id) &&
35
- // We should not show already connected connectors
36
- bigmiAccount.connector?.id !== connector.id)
37
- : [];
38
- const utxoNotDetected = isItemAllowed(ChainType.UTXO, chains?.types)
39
- ? bigmiConnectors.filter((connector) => !isWalletInstalled(connector.id))
40
- : [];
41
33
  const evmInstalled = isItemAllowed(ChainType.EVM, chains?.types)
42
34
  ? evmConnectors.filter((connector) => isWalletInstalled(connector.id) &&
43
35
  // We should not show already connected connectors
@@ -46,6 +38,14 @@ export const useWallets = (walletConfig, chains) => {
46
38
  const evmNotDetected = isItemAllowed(ChainType.EVM, chains?.types)
47
39
  ? evmConnectors.filter((connector) => !isWalletInstalled(connector.id))
48
40
  : [];
41
+ const utxoInstalled = isItemAllowed(ChainType.UTXO, chains?.types)
42
+ ? bigmiConnectors.filter((connector) => isWalletInstalled(connector.id) &&
43
+ // We should not show already connected connectors
44
+ bigmiAccount.connector?.id !== connector.id)
45
+ : [];
46
+ const utxoNotDetected = isItemAllowed(ChainType.UTXO, chains?.types)
47
+ ? bigmiConnectors.filter((connector) => !isWalletInstalled(connector.id))
48
+ : [];
49
49
  const svmInstalled = isItemAllowed(ChainType.SVM, chains?.types)
50
50
  ? solanaWallets?.filter((connector) => connector.adapter.readyState === WalletReadyState.Installed &&
51
51
  // We should not show already connected connectors
@@ -1 +1 @@
1
- {"version":3,"file":"useWallets.js","sourceRoot":"","sources":["../../hooks/useWallets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useWallets.js","sourceRoot":"","sources":["../../hooks/useWallets.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import { useConfig } from 'wagmi';
6
6
  import { connect, disconnect, getAccount } from 'wagmi/actions';
7
7
  import { ListItemButton } from '../../components/ListItemButton.js';
8
8
  import { ListItemText } from '../../components/ListItemText.js';
9
+ import { useLastConnectedAccount } from '../../hooks/useAccount.js';
9
10
  import { useNavigateBack } from '../../hooks/useNavigateBack.js';
10
11
  import { useWidgetEvents } from '../../hooks/useWidgetEvents.js';
11
12
  import { WidgetEvent } from '../../types/events.js';
@@ -13,6 +14,7 @@ export const EVMListItemButton = ({ connector, onNotInstalled, }) => {
13
14
  const { navigateBack } = useNavigateBack();
14
15
  const emitter = useWidgetEvents();
15
16
  const config = useConfig();
17
+ const { setLastConnectedAccount } = useLastConnectedAccount();
16
18
  const handleEVMConnect = async () => {
17
19
  const identityCheckPassed = await isWalletInstalledAsync(connector.id);
18
20
  if (!identityCheckPassed) {
@@ -24,6 +26,7 @@ export const EVMListItemButton = ({ connector, onNotInstalled, }) => {
24
26
  await disconnect(config, { connector: connectedAccount.connector });
25
27
  }
26
28
  const data = await connect(config, { connector });
29
+ setLastConnectedAccount(connector);
27
30
  emitter.emit(WidgetEvent.WalletConnected, {
28
31
  address: data.accounts[0],
29
32
  chainId: data.chainId,
@@ -1 +1 @@
1
- {"version":3,"file":"EVMListItemButton.js","sourceRoot":"","sources":["../../../pages/SelectWalletPage/EVMListItemButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAOpD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAChC,SAAS,EACT,cAAc,GACS,EAAE,EAAE;IAC3B,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;QAClC,MAAM,mBAAmB,GAAG,MAAM,sBAAsB,CACrD,SAAuB,CAAC,EAAE,CAC5B,CAAC;QACF,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,cAAc,CAAC,SAAsB,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QACD,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,gBAAgB,CAAC,SAAS,EAAE,CAAC;YAC/B,MAAM,UAAU,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE;YACxC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,SAAS,CAAC,GAAG;SACzB,CAAC,CAAC;QACH,YAAY,EAAE,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,aAAa,GAChB,SAAuC,CAAC,WAAW,IAAI,SAAS,CAAC,IAAI,CAAC;IAEzE,OAAO,CACL,MAAC,cAAc,IAAoB,OAAO,EAAE,gBAAgB,aAC1D,KAAC,cAAc,cACb,KAAC,MAAM,IACL,GAAG,EAAE,gBAAgB,CAAC,SAAsB,CAAC,EAC7C,GAAG,EAAE,aAAa,YAEjB,aAAa,EAAE,CAAC,CAAC,CAAC,GACZ,GACM,EACjB,KAAC,YAAY,IAAC,OAAO,EAAE,aAAa,GAAI,KATrB,SAAS,CAAC,EAAE,CAUhB,CAClB,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"EVMListItemButton.js","sourceRoot":"","sources":["../../../pages/SelectWalletPage/EVMListItemButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAOpD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAChC,SAAS,EACT,cAAc,GACS,EAAE,EAAE;IAC3B,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,EAAE,uBAAuB,EAAE,GAAG,uBAAuB,EAAE,CAAC;IAE9D,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;QAClC,MAAM,mBAAmB,GAAG,MAAM,sBAAsB,CACrD,SAAuB,CAAC,EAAE,CAC5B,CAAC;QACF,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,cAAc,CAAC,SAAsB,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QACD,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,gBAAgB,CAAC,SAAS,EAAE,CAAC;YAC/B,MAAM,UAAU,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QAClD,uBAAuB,CAAC,SAAS,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE;YACxC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,SAAS,CAAC,GAAG;SACzB,CAAC,CAAC;QACH,YAAY,EAAE,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,aAAa,GAChB,SAAuC,CAAC,WAAW,IAAI,SAAS,CAAC,IAAI,CAAC;IAEzE,OAAO,CACL,MAAC,cAAc,IAAoB,OAAO,EAAE,gBAAgB,aAC1D,KAAC,cAAc,cACb,KAAC,MAAM,IACL,GAAG,EAAE,gBAAgB,CAAC,SAAsB,CAAC,EAC7C,GAAG,EAAE,aAAa,YAEjB,aAAa,EAAE,CAAC,CAAC,CAAC,GACZ,GACM,EACjB,KAAC,YAAY,IAAC,OAAO,EAAE,aAAa,GAAI,KATrB,SAAS,CAAC,EAAE,CAUhB,CAClB,CAAC;AACJ,CAAC,CAAC"}
@@ -4,6 +4,7 @@ import { Avatar, ListItemAvatar } from '@mui/material';
4
4
  import { useWallet } from '@solana/wallet-adapter-react';
5
5
  import { ListItemButton } from '../../components/ListItemButton.js';
6
6
  import { ListItemText } from '../../components/ListItemText.js';
7
+ import { useLastConnectedAccount } from '../../hooks/useAccount.js';
7
8
  import { useNavigateBack } from '../../hooks/useNavigateBack.js';
8
9
  import { useWidgetEvents } from '../../hooks/useWidgetEvents.js';
9
10
  import { WidgetEvent } from '../../types/events.js';
@@ -11,6 +12,7 @@ export const SVMListItemButton = ({ wallet }) => {
11
12
  const { navigateBack } = useNavigateBack();
12
13
  const emitter = useWidgetEvents();
13
14
  const { select, disconnect, connected } = useWallet();
15
+ const { setLastConnectedAccount } = useLastConnectedAccount();
14
16
  const connect = async () => {
15
17
  if (connected) {
16
18
  await disconnect();
@@ -19,6 +21,7 @@ export const SVMListItemButton = ({ wallet }) => {
19
21
  // We use autoConnect on wallet selection
20
22
  // await solanaConnect();
21
23
  wallet.adapter.once('connect', (publicKey) => {
24
+ setLastConnectedAccount(wallet.adapter);
22
25
  emitter.emit(WidgetEvent.WalletConnected, {
23
26
  address: publicKey?.toString(),
24
27
  chainId: ChainId.SOL,
@@ -1 +1 @@
1
- {"version":3,"file":"SVMListItemButton.js","sourceRoot":"","sources":["../../../pages/SelectWalletPage/SVMListItemButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAMpD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAAE,MAAM,EAA0B,EAAE,EAAE;IACtE,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAAC;IAEtD,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,UAAU,EAAE,CAAC;QACrB,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5B,yCAAyC;QACzC,yBAAyB;QACzB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE;YAC3C,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE;gBACxC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE;gBAC9B,OAAO,EAAE,OAAO,CAAC,GAAG;gBACpB,SAAS,EAAE,SAAS,CAAC,GAAG;aACzB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,YAAY,EAAE,CAAC;IACjB,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,cAAc,IAA2B,OAAO,EAAE,OAAO,aACxD,KAAC,cAAc,cACb,KAAC,MAAM,IAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,YACvD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAChB,GACM,EACjB,KAAC,YAAY,IAAC,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,WAAW,GAAI,KANzC,MAAM,CAAC,OAAO,CAAC,IAAI,CAOvB,CAClB,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"SVMListItemButton.js","sourceRoot":"","sources":["../../../pages/SelectWalletPage/SVMListItemButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAMpD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAAE,MAAM,EAA0B,EAAE,EAAE;IACtE,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAAC;IACtD,MAAM,EAAE,uBAAuB,EAAE,GAAG,uBAAuB,EAAE,CAAC;IAE9D,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,UAAU,EAAE,CAAC;QACrB,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5B,yCAAyC;QACzC,yBAAyB;QACzB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE;YAC3C,uBAAuB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE;gBACxC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE;gBAC9B,OAAO,EAAE,OAAO,CAAC,GAAG;gBACpB,SAAS,EAAE,SAAS,CAAC,GAAG;aACzB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,YAAY,EAAE,CAAC;IACjB,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,cAAc,IAA2B,OAAO,EAAE,OAAO,aACxD,KAAC,cAAc,cACb,KAAC,MAAM,IAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,YACvD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAChB,GACM,EACjB,KAAC,YAAY,IAAC,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,WAAW,GAAI,KANzC,MAAM,CAAC,OAAO,CAAC,IAAI,CAOvB,CAClB,CAAC;AACJ,CAAC,CAAC"}
@@ -5,6 +5,7 @@ import { Avatar, ListItemAvatar } from '@mui/material';
5
5
  import { connect, disconnect, getAccount } from 'wagmi/actions';
6
6
  import { ListItemButton } from '../../components/ListItemButton.js';
7
7
  import { ListItemText } from '../../components/ListItemText.js';
8
+ import { useLastConnectedAccount } from '../../hooks/useAccount.js';
8
9
  import { useNavigateBack } from '../../hooks/useNavigateBack.js';
9
10
  import { useWidgetEvents } from '../../hooks/useWidgetEvents.js';
10
11
  import { WidgetEvent } from '../../types/events.js';
@@ -12,6 +13,7 @@ export const UTXOListItemButton = ({ connector, onNotInstalled, }) => {
12
13
  const { navigateBack } = useNavigateBack();
13
14
  const emitter = useWidgetEvents();
14
15
  const config = useConfig();
16
+ const { setLastConnectedAccount } = useLastConnectedAccount();
15
17
  const handleUTXOConnect = async () => {
16
18
  const identityCheckPassed = await isWalletInstalledAsync(connector.id);
17
19
  if (!identityCheckPassed) {
@@ -23,6 +25,7 @@ export const UTXOListItemButton = ({ connector, onNotInstalled, }) => {
23
25
  await disconnect(config, { connector: connectedAccount.connector });
24
26
  }
25
27
  const data = await connect(config, { connector });
28
+ setLastConnectedAccount(connector);
26
29
  emitter.emit(WidgetEvent.WalletConnected, {
27
30
  address: data.accounts[0],
28
31
  chainId: data.chainId,
@@ -1 +1 @@
1
- {"version":3,"file":"UTXOListItemButton.js","sourceRoot":"","sources":["../../../pages/SelectWalletPage/UTXOListItemButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,SAAS,GACV,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAOpD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EACjC,SAAS,EACT,cAAc,GACU,EAAE,EAAE;IAC5B,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,MAAM,iBAAiB,GAAG,KAAK,IAAI,EAAE;QACnC,MAAM,mBAAmB,GAAG,MAAM,sBAAsB,CACrD,SAAuB,CAAC,EAAE,CAC5B,CAAC;QACF,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,cAAc,CAAC,SAAsB,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QACD,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,gBAAgB,CAAC,SAAS,EAAE,CAAC;YAC/B,MAAM,UAAU,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE;YACxC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,SAAS,CAAC,IAAI;SAC1B,CAAC,CAAC;QACH,YAAY,EAAE,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,aAAa,GAChB,SAAuC,CAAC,WAAW,IAAI,SAAS,CAAC,IAAI,CAAC;IAEzE,OAAO,CACL,MAAC,cAAc,IAAoB,OAAO,EAAE,iBAAiB,aAC3D,KAAC,cAAc,cACb,KAAC,MAAM,IACL,GAAG,EAAE,gBAAgB,CAAC,SAAsB,CAAC,EAC7C,GAAG,EAAE,aAAa,YAEjB,aAAa,EAAE,CAAC,CAAC,CAAC,GACZ,GACM,EACjB,KAAC,YAAY,IAAC,OAAO,EAAE,GAAG,aAAa,YAAY,GAAI,KATpC,SAAS,CAAC,EAAE,CAUhB,CAClB,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"UTXOListItemButton.js","sourceRoot":"","sources":["../../../pages/SelectWalletPage/UTXOListItemButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,SAAS,GACV,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAOpD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EACjC,SAAS,EACT,cAAc,GACU,EAAE,EAAE;IAC5B,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,EAAE,uBAAuB,EAAE,GAAG,uBAAuB,EAAE,CAAC;IAE9D,MAAM,iBAAiB,GAAG,KAAK,IAAI,EAAE;QACnC,MAAM,mBAAmB,GAAG,MAAM,sBAAsB,CACrD,SAAuB,CAAC,EAAE,CAC5B,CAAC;QACF,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,cAAc,CAAC,SAAsB,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QACD,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,gBAAgB,CAAC,SAAS,EAAE,CAAC;YAC/B,MAAM,UAAU,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QAClD,uBAAuB,CAAC,SAAS,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE;YACxC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,SAAS,CAAC,IAAI;SAC1B,CAAC,CAAC;QACH,YAAY,EAAE,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,aAAa,GAChB,SAAuC,CAAC,WAAW,IAAI,SAAS,CAAC,IAAI,CAAC;IAEzE,OAAO,CACL,MAAC,cAAc,IAAoB,OAAO,EAAE,iBAAiB,aAC3D,KAAC,cAAc,cACb,KAAC,MAAM,IACL,GAAG,EAAE,gBAAgB,CAAC,SAAsB,CAAC,EAC7C,GAAG,EAAE,aAAa,YAEjB,aAAa,EAAE,CAAC,CAAC,CAAC,GACZ,GACM,EACjB,KAAC,YAAY,IAAC,OAAO,EAAE,GAAG,aAAa,YAAY,GAAI,KATpC,SAAS,CAAC,EAAE,CAUhB,CAClB,CAAC;AACJ,CAAC,CAAC"}
@@ -5,7 +5,7 @@ export const UTXOBaseProvider = ({ children }) => {
5
5
  const bigmi = useRef();
6
6
  if (!bigmi.current) {
7
7
  bigmi.current = createDefaultBigmiConfig({
8
- wagmiConfig: {
8
+ bigmiConfig: {
9
9
  ssr: true,
10
10
  multiInjectedProviderDiscovery: false,
11
11
  },
@@ -16,11 +16,15 @@ export const useChainSelect = (formType: FormType) => {
16
16
  const chainKey = FormKeyHelper.getChainKey(formType);
17
17
  const { onChange } = useFieldController({ name: chainKey });
18
18
  const { setFieldValue, getFieldValues } = useFieldActions();
19
- const { availableChainTypes } = useHasExternalWalletProvider();
19
+ const { hasExternalProvider, availableChainTypes } =
20
+ useHasExternalWalletProvider();
20
21
  const { chains, isLoading, getChainById } = useChains(
21
22
  formType,
22
- formType === 'from' ? availableChainTypes : undefined,
23
+ formType === 'from' && hasExternalProvider
24
+ ? availableChainTypes
25
+ : undefined,
23
26
  );
27
+
24
28
  const [chainOrder, setChainOrder] = useChainOrder(formType);
25
29
  const swapOnly = useSwapOnly();
26
30
  const { tryResetToAddress } = useToAddressReset();
@@ -18,13 +18,13 @@ interface TokenRateState {
18
18
  toggleIsForward(): void;
19
19
  }
20
20
 
21
- const useTokenRateStore = create<TokenRateState>((set) => ({
21
+ const useTokenRate = create<TokenRateState>((set) => ({
22
22
  isForward: true,
23
23
  toggleIsForward: () => set((state) => ({ isForward: !state.isForward })),
24
24
  }));
25
25
 
26
26
  export const TokenRate: React.FC<TokenRateProps> = ({ route }) => {
27
- const { isForward, toggleIsForward } = useTokenRateStore();
27
+ const { isForward, toggleIsForward } = useTokenRate();
28
28
 
29
29
  const toggleRate: MouseEventHandler<HTMLSpanElement> = (e) => {
30
30
  e.stopPropagation();
package/config/version.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  export const name = '@lifi/widget';
2
- export const version = '3.6.0-alpha.1';
2
+ export const version = '3.6.0-alpha.3';
@@ -1,4 +1,5 @@
1
1
  import { ChainId, ChainType } from '@lifi/sdk';
2
+ import type { CreateConnectorFnExtended } from '@lifi/wallet-management';
2
3
  import { useConfig as useBigmiConfig } from '@lifi/wallet-management';
3
4
  import type { WalletAdapter } from '@solana/wallet-adapter-base';
4
5
  import { useWallet } from '@solana/wallet-adapter-react';
@@ -6,6 +7,7 @@ import { useMemo } from 'react';
6
7
  import type { Chain } from 'viem';
7
8
  import type { Connector } from 'wagmi';
8
9
  import { useAccount as useAccountInternal } from 'wagmi';
10
+ import { create } from 'zustand';
9
11
 
10
12
  export interface AccountBase<CT extends ChainType, ConnectorType = undefined> {
11
13
  address?: string;
@@ -49,8 +51,26 @@ const defaultAccount: AccountBase<ChainType> = {
49
51
  status: 'disconnected',
50
52
  };
51
53
 
54
+ export type LastConnectedAccount =
55
+ | WalletAdapter
56
+ | Connector
57
+ | CreateConnectorFnExtended
58
+ | null;
59
+
60
+ interface LastConnectedAccountStore {
61
+ lastConnectedAccount: LastConnectedAccount;
62
+ setLastConnectedAccount: (account: LastConnectedAccount) => void;
63
+ }
64
+
65
+ export const useLastConnectedAccount = create<LastConnectedAccountStore>(
66
+ (set) => ({
67
+ lastConnectedAccount: null,
68
+ setLastConnectedAccount: (account) =>
69
+ set({ lastConnectedAccount: account }),
70
+ }),
71
+ );
72
+
52
73
  /**
53
- *
54
74
  * @param args When we provide args we want to return either account with corresponding chainType or default disconnected one
55
75
  * @returns - Account result
56
76
  */
@@ -58,12 +78,8 @@ export const useAccount = (args?: UseAccountArgs): AccountResult => {
58
78
  const bigmiConfig = useBigmiConfig();
59
79
  const bigmiAccount = useAccountInternal({ config: bigmiConfig });
60
80
  const wagmiAccount = useAccountInternal();
61
-
62
81
  const { wallet } = useWallet();
63
-
64
- // We create a simple variable from the args object
65
- // to avoid re-render useMemo on every object reference change.
66
- const hasChainTypeArgs = Boolean(args);
82
+ const { lastConnectedAccount } = useLastConnectedAccount();
67
83
 
68
84
  return useMemo(() => {
69
85
  const svm: Account = wallet?.adapter.publicKey
@@ -89,19 +105,52 @@ export const useAccount = (args?: UseAccountArgs): AccountResult => {
89
105
  const evm: Account = { ...wagmiAccount, chainType: ChainType.EVM };
90
106
  const utxo: Account = { ...bigmiAccount, chainType: ChainType.UTXO };
91
107
  const accounts = [evm, svm, utxo];
92
- const connectedAccounts = [evm, svm, utxo].filter(
108
+ const connectedAccounts = accounts.filter(
93
109
  (account) => account.isConnected && account.address,
94
110
  );
111
+
112
+ // If a chainType argument is provided, attempt to find a connected account with the matching chainType.
113
+ // If no matching account is found, fallback to the default account.
114
+ // If no chainType argument, selectedAccount should be used.
115
+ const selectedChainTypeAccount = args?.chainType
116
+ ? connectedAccounts.find(
117
+ (account) => account.chainType === args?.chainType,
118
+ ) || defaultAccount
119
+ : undefined;
120
+
121
+ // If lastConnectedAccount exists, attempt to find a connected account with a matching connector ID or name.
122
+ // If no matching account is found, fallback to the first connected account.
123
+ // If lastConnectedAccount is not present, simply select the first connected account.
124
+ const selectedAccount = lastConnectedAccount
125
+ ? connectedAccounts.find((account) => {
126
+ const connectorIdMatch =
127
+ (lastConnectedAccount as Connector)?.id ===
128
+ (account.connector as Connector)?.id;
129
+ const connectorNameMatch =
130
+ !(lastConnectedAccount as Connector)?.id &&
131
+ (lastConnectedAccount as WalletAdapter)?.name ===
132
+ account.connector?.name;
133
+ return connectorIdMatch || connectorNameMatch;
134
+ }) || connectedAccounts[0]
135
+ : connectedAccounts[0];
136
+
95
137
  return {
96
- account:
97
- accounts.find(
98
- (account) =>
99
- (!hasChainTypeArgs || account.chainType === args?.chainType) &&
100
- account.isConnected &&
101
- account.address,
102
- ) ?? defaultAccount,
138
+ account: selectedChainTypeAccount || selectedAccount || defaultAccount,
103
139
  // We need to return only connected account list
104
140
  accounts: connectedAccounts,
105
141
  };
106
- }, [wallet, wagmiAccount, bigmiAccount, hasChainTypeArgs, args?.chainType]);
142
+ // eslint-disable-next-line react-hooks/exhaustive-deps
143
+ }, [
144
+ wallet,
145
+ wagmiAccount.connector?.uid,
146
+ wagmiAccount.connector?.id,
147
+ wagmiAccount.status,
148
+ wagmiAccount.address,
149
+ bigmiAccount.connector?.uid,
150
+ bigmiAccount.connector?.id,
151
+ bigmiAccount.status,
152
+ bigmiAccount.address,
153
+ args?.chainType,
154
+ lastConnectedAccount,
155
+ ]);
107
156
  };
@@ -75,27 +75,27 @@ export const useWallets = (
75
75
  ),
76
76
  );
77
77
  }
78
- const utxoInstalled = isItemAllowed(ChainType.UTXO, chains?.types)
79
- ? bigmiConnectors.filter(
78
+ const evmInstalled = isItemAllowed(ChainType.EVM, chains?.types)
79
+ ? evmConnectors.filter(
80
80
  (connector) =>
81
81
  isWalletInstalled(connector.id) &&
82
82
  // We should not show already connected connectors
83
- bigmiAccount.connector?.id !== connector.id,
83
+ wagmiAccount.connector?.id !== connector.id,
84
84
  )
85
85
  : [];
86
- const utxoNotDetected = isItemAllowed(ChainType.UTXO, chains?.types)
87
- ? bigmiConnectors.filter((connector) => !isWalletInstalled(connector.id!))
86
+ const evmNotDetected = isItemAllowed(ChainType.EVM, chains?.types)
87
+ ? evmConnectors.filter((connector) => !isWalletInstalled(connector.id))
88
88
  : [];
89
- const evmInstalled = isItemAllowed(ChainType.EVM, chains?.types)
90
- ? evmConnectors.filter(
89
+ const utxoInstalled = isItemAllowed(ChainType.UTXO, chains?.types)
90
+ ? bigmiConnectors.filter(
91
91
  (connector) =>
92
92
  isWalletInstalled(connector.id) &&
93
93
  // We should not show already connected connectors
94
- wagmiAccount.connector?.id !== connector.id,
94
+ bigmiAccount.connector?.id !== connector.id,
95
95
  )
96
96
  : [];
97
- const evmNotDetected = isItemAllowed(ChainType.EVM, chains?.types)
98
- ? evmConnectors.filter((connector) => !isWalletInstalled(connector.id))
97
+ const utxoNotDetected = isItemAllowed(ChainType.UTXO, chains?.types)
98
+ ? bigmiConnectors.filter((connector) => !isWalletInstalled(connector.id!))
99
99
  : [];
100
100
  const svmInstalled = isItemAllowed(ChainType.SVM, chains?.types)
101
101
  ? solanaWallets?.filter(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lifi/widget",
3
- "version": "3.6.0-alpha.1",
3
+ "version": "3.6.0-alpha.3",
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",
@@ -34,15 +34,15 @@
34
34
  "dependencies": {
35
35
  "@emotion/react": "^11.13.3",
36
36
  "@emotion/styled": "^11.13.0",
37
- "@lifi/sdk": "^3.3.0-alpha.1",
38
- "@lifi/wallet-management": "^3.2.0-alpha.1",
37
+ "@lifi/sdk": "^3.3.0-alpha.2",
38
+ "@lifi/wallet-management": "^3.2.0-alpha.3",
39
39
  "@mui/icons-material": "^5.16.7",
40
40
  "@mui/lab": "^5.0.0-alpha.173",
41
41
  "@mui/material": "^5.16.7",
42
42
  "@solana/wallet-adapter-base": "^0.9.23",
43
43
  "@solana/wallet-adapter-react": "^0.15.35",
44
44
  "@solana/web3.js": "^1.95.3",
45
- "@tanstack/react-query": "^5.55.4",
45
+ "@tanstack/react-query": "^5.56.0",
46
46
  "@tanstack/react-virtual": "^3.10.7",
47
47
  "i18next": "^23.15.1",
48
48
  "microdiff": "^1.4.0",
@@ -53,8 +53,8 @@
53
53
  "react-intersection-observer": "^9.13.1",
54
54
  "react-router-dom": "^6.26.2",
55
55
  "uuid": "^10.0.0",
56
- "viem": "^2.21.5",
57
- "wagmi": "^2.12.10",
56
+ "viem": "^2.21.6",
57
+ "wagmi": "^2.12.11",
58
58
  "zustand": "^4.5.5"
59
59
  },
60
60
  "peerDependencies": {
@@ -10,6 +10,7 @@ import { useConfig } from 'wagmi';
10
10
  import { connect, disconnect, getAccount } from 'wagmi/actions';
11
11
  import { ListItemButton } from '../../components/ListItemButton.js';
12
12
  import { ListItemText } from '../../components/ListItemText.js';
13
+ import { useLastConnectedAccount } from '../../hooks/useAccount.js';
13
14
  import { useNavigateBack } from '../../hooks/useNavigateBack.js';
14
15
  import { useWidgetEvents } from '../../hooks/useWidgetEvents.js';
15
16
  import { WidgetEvent } from '../../types/events.js';
@@ -26,6 +27,7 @@ export const EVMListItemButton = ({
26
27
  const { navigateBack } = useNavigateBack();
27
28
  const emitter = useWidgetEvents();
28
29
  const config = useConfig();
30
+ const { setLastConnectedAccount } = useLastConnectedAccount();
29
31
 
30
32
  const handleEVMConnect = async () => {
31
33
  const identityCheckPassed = await isWalletInstalledAsync(
@@ -40,6 +42,7 @@ export const EVMListItemButton = ({
40
42
  await disconnect(config, { connector: connectedAccount.connector });
41
43
  }
42
44
  const data = await connect(config, { connector });
45
+ setLastConnectedAccount(connector);
43
46
  emitter.emit(WidgetEvent.WalletConnected, {
44
47
  address: data.accounts[0],
45
48
  chainId: data.chainId,
@@ -4,6 +4,7 @@ import type { Wallet } from '@solana/wallet-adapter-react';
4
4
  import { useWallet } from '@solana/wallet-adapter-react';
5
5
  import { ListItemButton } from '../../components/ListItemButton.js';
6
6
  import { ListItemText } from '../../components/ListItemText.js';
7
+ import { useLastConnectedAccount } from '../../hooks/useAccount.js';
7
8
  import { useNavigateBack } from '../../hooks/useNavigateBack.js';
8
9
  import { useWidgetEvents } from '../../hooks/useWidgetEvents.js';
9
10
  import { WidgetEvent } from '../../types/events.js';
@@ -16,6 +17,7 @@ export const SVMListItemButton = ({ wallet }: SVMListItemButtonProps) => {
16
17
  const { navigateBack } = useNavigateBack();
17
18
  const emitter = useWidgetEvents();
18
19
  const { select, disconnect, connected } = useWallet();
20
+ const { setLastConnectedAccount } = useLastConnectedAccount();
19
21
 
20
22
  const connect = async () => {
21
23
  if (connected) {
@@ -25,6 +27,7 @@ export const SVMListItemButton = ({ wallet }: SVMListItemButtonProps) => {
25
27
  // We use autoConnect on wallet selection
26
28
  // await solanaConnect();
27
29
  wallet.adapter.once('connect', (publicKey) => {
30
+ setLastConnectedAccount(wallet.adapter);
28
31
  emitter.emit(WidgetEvent.WalletConnected, {
29
32
  address: publicKey?.toString(),
30
33
  chainId: ChainId.SOL,
@@ -10,6 +10,7 @@ import type { Connector } from 'wagmi';
10
10
  import { connect, disconnect, getAccount } from 'wagmi/actions';
11
11
  import { ListItemButton } from '../../components/ListItemButton.js';
12
12
  import { ListItemText } from '../../components/ListItemText.js';
13
+ import { useLastConnectedAccount } from '../../hooks/useAccount.js';
13
14
  import { useNavigateBack } from '../../hooks/useNavigateBack.js';
14
15
  import { useWidgetEvents } from '../../hooks/useWidgetEvents.js';
15
16
  import { WidgetEvent } from '../../types/events.js';
@@ -26,6 +27,7 @@ export const UTXOListItemButton = ({
26
27
  const { navigateBack } = useNavigateBack();
27
28
  const emitter = useWidgetEvents();
28
29
  const config = useConfig();
30
+ const { setLastConnectedAccount } = useLastConnectedAccount();
29
31
 
30
32
  const handleUTXOConnect = async () => {
31
33
  const identityCheckPassed = await isWalletInstalledAsync(
@@ -40,6 +42,7 @@ export const UTXOListItemButton = ({
40
42
  await disconnect(config, { connector: connectedAccount.connector });
41
43
  }
42
44
  const data = await connect(config, { connector });
45
+ setLastConnectedAccount(connector);
43
46
  emitter.emit(WidgetEvent.WalletConnected, {
44
47
  address: data.accounts[0],
45
48
  chainId: data.chainId,
@@ -11,7 +11,7 @@ export const UTXOBaseProvider: FC<PropsWithChildren> = ({ children }) => {
11
11
 
12
12
  if (!bigmi.current) {
13
13
  bigmi.current = createDefaultBigmiConfig({
14
- wagmiConfig: {
14
+ bigmiConfig: {
15
15
  ssr: true,
16
16
  multiInjectedProviderDiscovery: false,
17
17
  },