@0xsquid/react-hooks 3.0.15 → 3.0.17

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,8 +1,8 @@
1
- import { ChainType, CosmosChain, EvmChain } from "@0xsquid/squid-types";
1
+ import { ChainData, ChainType, CosmosChain, EvmChain } from "@0xsquid/squid-types";
2
2
  export declare const useSquidChains: () => {
3
- supportedSourceChains: import("@0xsquid/squid-types").ChainData[];
4
- supportedDestinationChains: import("@0xsquid/squid-types").ChainData[];
5
- chains: import("@0xsquid/squid-types").ChainData[];
3
+ supportedSourceChains: ChainData[];
4
+ supportedDestinationChains: ChainData[];
5
+ chains: ChainData[];
6
6
  fuseSearchOptions: {
7
7
  isCaseSensitive: boolean;
8
8
  includeScore: boolean;
@@ -13,5 +13,5 @@ export declare const useSquidChains: () => {
13
13
  cosmosChains: CosmosChain[];
14
14
  evmChains: EvmChain[];
15
15
  getChainType: (chainId?: string) => ChainType | undefined;
16
- findChain: (chainId: string) => import("@0xsquid/squid-types").ChainData | undefined;
16
+ findChain: (chainId: string | undefined) => ChainData | undefined;
17
17
  };
@@ -1,6 +1,22 @@
1
- import { ChainType } from "@0xsquid/squid-types";
1
+ import { ChainType, } from "@0xsquid/squid-types";
2
2
  import { useCallback, useMemo } from "react";
3
3
  import { useConfigStore, useSquidStore } from "../../hooks/store/useSquidStore";
4
+ // Memoized map to store chain data, calculated only once
5
+ let memoizedChainsByIdMap = null;
6
+ // Optimize calculation to prevent unnecessary re-renders
7
+ // This ensures the map is created only once when chains are available
8
+ const createChainsByIdMap = (chains) => {
9
+ if (memoizedChainsByIdMap)
10
+ return memoizedChainsByIdMap;
11
+ if (chains.length > 0) {
12
+ memoizedChainsByIdMap = chains.reduce((acc, chain) => {
13
+ acc[chain.chainId] = chain;
14
+ return acc;
15
+ }, {});
16
+ return memoizedChainsByIdMap;
17
+ }
18
+ return null;
19
+ };
4
20
  export const useSquidChains = () => {
5
21
  const squid = useSquidStore((state) => state.squid);
6
22
  const config = useConfigStore((state) => state.config);
@@ -12,11 +28,16 @@ export const useSquidChains = () => {
12
28
  keys: ["networkName", "chainName", "nativeCurrency.symbol"],
13
29
  };
14
30
  const chains = useMemo(() => squid?.chains ?? [], [squid?.chains]);
31
+ const chainsByIdMap = useMemo(() => createChainsByIdMap(chains),
32
+ // Only re-render if the chains id array has changed
33
+ [chains.map((c) => c.chainId)]);
15
34
  const findChain = useCallback((chainId) => {
16
- return chains.find((c) => c.chainId === chainId);
17
- }, [chains]);
35
+ return chainId ? chainsByIdMap?.[chainId] : undefined;
36
+ }, [chainsByIdMap]);
18
37
  const getChainType = useCallback((chainId) => {
19
- const chain = findChain(chainId ?? "");
38
+ if (!chainId)
39
+ return undefined;
40
+ const chain = findChain(chainId);
20
41
  return chain?.chainType;
21
42
  }, [findChain]);
22
43
  const cosmosChains = useMemo(() => chains?.filter((c) => c.chainType === ChainType.COSMOS) ?? [], [chains]);
@@ -1 +1 @@
1
- {"version":3,"file":"useSquidChains.js","sourceRoot":"","sources":["../../../src/hooks/chains/useSquidChains.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useSquidChains.js","sourceRoot":"","sources":["../../../src/hooks/chains/useSquidChains.ts"],"names":[],"mappings":"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"}
@@ -8,4 +8,8 @@ export declare const useSquid: () => {
8
8
  chains: import("@0xsquid/squid-types").ChainData[] | undefined;
9
9
  forceSquidInfoRefetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@0xsquid/sdk").Squid | undefined, unknown>>;
10
10
  squidInfoQuery: import("@tanstack/react-query").UseQueryResult<import("@0xsquid/sdk").Squid | undefined, unknown>;
11
+ maintenanceMode: {
12
+ active: boolean;
13
+ message?: string | undefined;
14
+ };
11
15
  };
@@ -10,6 +10,7 @@ import { useSquidStore } from "../store/useSquidStore";
10
10
  export const useSquid = () => {
11
11
  // Use initial squid object (because has infos about integrator id, ect)
12
12
  const squid = useSquidStore((state) => state.squid);
13
+ const maintenanceMode = useSquidStore((state) => state.maintenanceMode);
13
14
  /**
14
15
  * Fetch squid info
15
16
  * Will refetch every minute
@@ -38,6 +39,12 @@ export const useSquid = () => {
38
39
  }, [squidInfoQuery?.data?.chains, squid?.chains]);
39
40
  // If needed, force refetch to get latest prices
40
41
  const forceSquidInfoRefetch = squidInfoQuery.refetch;
41
- return { tokens, chains, forceSquidInfoRefetch, squidInfoQuery };
42
+ return {
43
+ tokens,
44
+ chains,
45
+ forceSquidInfoRefetch,
46
+ squidInfoQuery,
47
+ maintenanceMode,
48
+ };
42
49
  };
43
50
  //# sourceMappingURL=useSquid.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSquid.js","sourceRoot":"","sources":["../../../src/hooks/squid/useSquid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,wEAAwE;IAExE,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEpD;;;OAGG;IACH,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,EAAE,KAAK,IAAI,EAAE;QAC7D,IAAI,KAAK,EAAE;YACT,MAAM,KAAK,EAAE,IAAI,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC;SACd;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE;QAC1B,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YACnD,OAAO,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC;SACrC;aAAM;YACL,OAAO,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC;SAC5B;IACH,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAElD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE;QAC1B,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YACnD,OAAO,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC;SACrC;aAAM;YACL,OAAO,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC;SAC5B;IACH,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAElD,gDAAgD;IAChD,MAAM,qBAAqB,GAAG,cAAc,CAAC,OAAO,CAAC;IAErD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE,cAAc,EAAE,CAAC;AACnE,CAAC,CAAC"}
1
+ {"version":3,"file":"useSquid.js","sourceRoot":"","sources":["../../../src/hooks/squid/useSquid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,wEAAwE;IAExE,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,eAAe,GAAG,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAExE;;;OAGG;IACH,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,EAAE,KAAK,IAAI,EAAE;QAC7D,IAAI,KAAK,EAAE;YACT,MAAM,KAAK,EAAE,IAAI,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC;SACd;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE;QAC1B,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YACnD,OAAO,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC;SACrC;aAAM;YACL,OAAO,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC;SAC5B;IACH,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAElD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE;QAC1B,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YACnD,OAAO,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC;SACrC;aAAM;YACL,OAAO,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC;SAC5B;IACH,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAElD,gDAAgD;IAChD,MAAM,qBAAqB,GAAG,cAAc,CAAC,OAAO,CAAC;IAErD,OAAO;QACL,MAAM;QACN,MAAM;QACN,qBAAqB;QACrB,cAAc;QACd,eAAe;KAChB,CAAC;AACJ,CAAC,CAAC"}
@@ -4,6 +4,10 @@ import { SwapParams } from "../../core/types/swap";
4
4
  import { TransactionParams } from "../../core/types/transaction";
5
5
  interface SquidState {
6
6
  squid?: Squid;
7
+ maintenanceMode: {
8
+ active: boolean;
9
+ message?: string;
10
+ };
7
11
  }
8
12
  export declare const useSquidStore: import("zustand").UseBoundStore<import("zustand").StoreApi<SquidState>>;
9
13
  export interface ConfigState {
@@ -3,6 +3,10 @@ import { persist } from "zustand/middleware";
3
3
  import { defaultConfigValues } from "../../core/constants";
4
4
  export const useSquidStore = create(() => ({
5
5
  squid: undefined,
6
+ maintenanceMode: {
7
+ active: false,
8
+ message: undefined,
9
+ },
6
10
  }));
7
11
  export const useConfigStore = create(() => ({
8
12
  config: defaultConfigValues,
@@ -1 +1 @@
1
- {"version":3,"file":"useSquidStore.js","sourceRoot":"","sources":["../../../src/hooks/store/useSquidStore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAY3D,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAa,GAAG,EAAE,CAAC,CAAC;IACrD,KAAK,EAAE,SAAS;CACjB,CAAC,CAAC,CAAC;AAUJ,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAc,GAAG,EAAE,CAAC,CAAC;IACvD,MAAM,EAAE,mBAAmB;IAC3B,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC,CAAC;AAWJ,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAmB,GAAG,EAAE,CAAC,CAAC;IACjE,SAAS,EAAE,SAAS;IACpB,kBAAkB,EAAE,SAAS;IAC7B,gBAAgB,EAAE,SAAS;CAC5B,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAC5C,OAAO,CAOL,CAAC,CAAC,EAAE,EAAE;IACJ,OAAO;QACL,SAAS,EAAE,SAAS;KACrB,CAAC;AACJ,CAAC,EACD;IACE,IAAI,EAAE,uBAAuB;CAC9B,CACF,CACF,CAAC"}
1
+ {"version":3,"file":"useSquidStore.js","sourceRoot":"","sources":["../../../src/hooks/store/useSquidStore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAgB3D,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAa,GAAG,EAAE,CAAC,CAAC;IACrD,KAAK,EAAE,SAAS;IAChB,eAAe,EAAE;QACf,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,SAAS;KACnB;CACF,CAAC,CAAC,CAAC;AAUJ,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAc,GAAG,EAAE,CAAC,CAAC;IACvD,MAAM,EAAE,mBAAmB;IAC3B,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC,CAAC;AAWJ,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAmB,GAAG,EAAE,CAAC,CAAC;IACjE,SAAS,EAAE,SAAS;IACpB,kBAAkB,EAAE,SAAS;IAC7B,gBAAgB,EAAE,SAAS;CAC5B,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAC5C,OAAO,CAOL,CAAC,CAAC,EAAE,EAAE;IACJ,OAAO;QACL,SAAS,EAAE,SAAS;KACrB,CAAC;AACJ,CAAC,EACD;IACE,IAAI,EAAE,uBAAuB;CAC9B,CACF,CACF,CAAC"}
@@ -21,9 +21,7 @@ const verifyIntegratorIdValidity = (integratorId) => {
21
21
  };
22
22
  export const SquidProvider = ({ children, config, }) => {
23
23
  verifyIntegratorIdValidity(config.integratorId);
24
- const [wagmiConfig, setWagmiConfig] = useState(
25
- // Default wagmi config just to have things loaded initially
26
- createConfig({
24
+ const [wagmiConfig, setWagmiConfig] = useState(createConfig({
27
25
  chains: [
28
26
  mainnet,
29
27
  arbitrum,
@@ -51,36 +49,55 @@ export const SquidProvider = ({ children, config, }) => {
51
49
  setWagmiConfig(newConfig);
52
50
  useConfigStore.setState({ isInitialized: true, config: config });
53
51
  }, [config]);
54
- // Initialize Squid SDK & wagmi client
55
52
  useEffect(() => {
56
53
  const initializeSdk = async () => {
57
- const squid = new Squid({
58
- integratorId: config.integratorId,
59
- baseUrl: config.apiUrl ?? squidApiBaseUrl,
60
- });
61
- await squid.init();
62
- // Reset config if integrator doesn't want to load local storage state
63
- // From previous user session
64
- // Or if integrator has set up some pre defined states (initial tokens)
65
- if (!config?.loadPreviousStateFromLocalStorage ||
66
- config.initialAssets?.from ||
67
- config.initialAssets?.to) {
68
- useSwapRoutePersistStore.setState({
69
- swapRoute: undefined,
70
- destinationAddressHasBeenUpdated: undefined,
54
+ try {
55
+ const squid = new Squid({
56
+ integratorId: config.integratorId,
57
+ baseUrl: config.apiUrl ?? squidApiBaseUrl,
71
58
  });
59
+ await squid.init();
60
+ // Reset config if integrator doesn't want to load local storage state
61
+ // From previous user session
62
+ // Or if integrator has set up some pre defined states (initial tokens)
63
+ if (!config?.loadPreviousStateFromLocalStorage ||
64
+ config.initialAssets?.from ||
65
+ config.initialAssets?.to) {
66
+ useSwapRoutePersistStore.setState({
67
+ swapRoute: undefined,
68
+ destinationAddressHasBeenUpdated: undefined,
69
+ });
70
+ }
71
+ useSquidStore.setState((_) => ({
72
+ config: getConfigWithDefaults({
73
+ apiUrl: config.apiUrl ?? squidApiBaseUrl,
74
+ ...config,
75
+ }),
76
+ squid,
77
+ maintenanceMode: { active: false, message: undefined },
78
+ }));
79
+ initWagmiConfig(squid.chains);
80
+ }
81
+ catch (error) {
82
+ const isAxios503Error = error.isAxiosError &&
83
+ error.response?.status === 503;
84
+ if (isAxios503Error) {
85
+ const maintenanceMessage = error.response?.data
86
+ ?.message ?? undefined;
87
+ useSquidStore.setState({
88
+ squid: undefined,
89
+ maintenanceMode: {
90
+ active: true,
91
+ message: maintenanceMessage,
92
+ },
93
+ });
94
+ }
95
+ else {
96
+ console.error("Error initializing SDK:", error);
97
+ }
72
98
  }
73
- useSquidStore.setState((_) => ({
74
- config: getConfigWithDefaults({
75
- apiUrl: config.apiUrl ?? squidApiBaseUrl,
76
- ...config,
77
- }),
78
- squid,
79
- }));
80
- initWagmiConfig(squid.chains);
81
99
  };
82
100
  initializeSdk();
83
- // In your hooks library
84
101
  }, [config, initWagmiConfig]);
85
102
  return (React.createElement(WagmiProvider, { config: wagmiConfig },
86
103
  React.createElement(QueryClientProvider, { client: queryClient },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/provider/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/provider/index.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@0xsquid/react-hooks",
3
- "version": "3.0.15",
3
+ "version": "3.0.17",
4
4
  "description": "Squid hooks monorepo",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",