@0xsquid/react-hooks 1.0.33 → 1.0.35

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 (36) hide show
  1. package/dist/core/constants.d.ts +1 -1
  2. package/dist/core/constants.js +1 -1
  3. package/dist/core/constants.js.map +1 -1
  4. package/dist/core/index.d.ts +1 -1
  5. package/dist/core/index.js +1 -0
  6. package/dist/core/index.js.map +1 -1
  7. package/dist/core/queries/queries-keys.d.ts +3 -3
  8. package/dist/core/queries/queries-keys.js +2 -1
  9. package/dist/core/queries/queries-keys.js.map +1 -1
  10. package/dist/core/types/config.d.ts +3 -2
  11. package/dist/core/types/index.d.ts +2 -0
  12. package/dist/core/types/index.js +2 -0
  13. package/dist/core/types/index.js.map +1 -0
  14. package/dist/core/types/swap.d.ts +2 -2
  15. package/dist/hooks/store/useSquidStore.d.ts +1 -1
  16. package/dist/hooks/swap/useSwap.d.ts +2 -3
  17. package/dist/hooks/swap/useSwap.js +15 -14
  18. package/dist/hooks/swap/useSwap.js.map +1 -1
  19. package/dist/hooks/transaction/useExecuteTransaction.d.ts +0 -1
  20. package/dist/hooks/transaction/useExecuteTransaction.js +2 -3
  21. package/dist/hooks/transaction/useExecuteTransaction.js.map +1 -1
  22. package/dist/hooks/transaction/useGetRoute.d.ts +1 -0
  23. package/dist/hooks/transaction/useGetRoute.js +4 -3
  24. package/dist/hooks/transaction/useGetRoute.js.map +1 -1
  25. package/dist/hooks/transaction/useTransaction.d.ts +3 -9
  26. package/dist/hooks/transaction/useTransaction.js +7 -277
  27. package/dist/hooks/transaction/useTransaction.js.map +1 -1
  28. package/dist/provider/index.d.ts +2 -5
  29. package/dist/provider/index.js +49 -5
  30. package/dist/provider/index.js.map +1 -1
  31. package/dist/services/internal/configService.d.ts +26 -2
  32. package/dist/services/internal/configService.js +61 -17
  33. package/dist/services/internal/configService.js.map +1 -1
  34. package/dist/tests/configService.test.js +152 -1
  35. package/dist/tests/configService.test.js.map +1 -1
  36. package/package.json +1 -1
@@ -1,38 +1,22 @@
1
1
  // import type { TransactionResponse } from "@0xsquid/squid-types/ethers";
2
- import { SigningCosmWasmClient } from "@cosmjs/cosmwasm-stargate";
3
- import { TransactionStatus as GnosisTransactionStatus } from "@safe-global/safe-apps-sdk/dist/src/types";
4
2
  import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
5
- import { TxRaw } from "cosmjs-types/cosmos/tx/v1beta1/tx";
6
3
  import { constants, ethers } from "ethers";
7
- import { Logger } from "ethers/lib/utils.js";
8
- import { useCallback, useMemo } from "react";
9
- import { useAccount, useSigner } from "wagmi";
10
- import { useCosmosContext } from "../../core/providers/CosmosProvider";
4
+ import { useMemo } from "react";
5
+ import { useSigner } from "wagmi";
11
6
  import { keys } from "../../core/queries/queries-keys";
12
- import { TransactionErrorType } from "../../core/types/error";
13
- import { TransactionStatus } from "../../core/types/transaction";
14
- import { getWorkingCosmosRpcUrl } from "../../services/external/rpcService";
15
- import { getTransactionError } from "../../services/internal/errorService";
16
- import { getMainExplorerUrl, getSourceExplorerTxUrl, replaceTransactionAtNonce, updateTransactionHistoryStatus, } from "../../services/internal/transactionService";
17
- import { ChainType } from "@0xsquid/squid-types";
18
- import { useSquidChains } from "../../hooks//chains/useSquidChains";
19
- import { usePersistStore, useSquidStore, useSwapRoutePersistStore, } from "../../hooks/store/useSquidStore";
7
+ import { getMainExplorerUrl } from "../../services/internal/transactionService";
8
+ import { useSquidStore, useSwapRoutePersistStore, } from "../../hooks/store/useSquidStore";
20
9
  import { useSwap } from "../../hooks/swap/useSwap";
21
- import { useGnosisContext } from "../../hooks/wallet/useGnosisContext";
22
10
  import { useMultiChainWallet } from "../../hooks/wallet/useMultiChainWallet";
23
- import { WidgetEvents } from "../../services/internal/eventService";
11
+ import { useExecuteTransaction } from "./useExecuteTransaction";
24
12
  export const useTransaction = ({ squidRoute, }) => {
25
13
  const signer = useSigner();
26
- const { cosmosSigner } = useCosmosContext();
27
- const { chains } = useSquidChains();
28
14
  const queryClient = useQueryClient();
29
- const { fromPrice, toPrice, squid, currentTransaction, config } = useSquidStore();
15
+ const { fromPrice, squid, currentTransaction, config } = useSquidStore();
30
16
  const { swapRoute } = useSwapRoutePersistStore();
31
- const { connector: activeConnector } = useAccount();
17
+ const { swapQuery } = useExecuteTransaction(squidRoute);
32
18
  const { fromChain, toChain, fromToken, toToken } = useSwap();
33
- const { getGnosisSafeContext } = useGnosisContext();
34
19
  const { connectedAddress: sourceUserAddress } = useMultiChainWallet(fromChain);
35
- const isSameChainSwap = useMemo(() => fromChain?.chainId === toChain?.chainId, [fromChain?.chainId, toChain?.chainId]);
36
20
  const mainExplorerUrl = useMemo(() => {
37
21
  return getMainExplorerUrl(currentTransaction);
38
22
  }, [currentTransaction]);
@@ -142,259 +126,6 @@ export const useTransaction = ({ squidRoute, }) => {
142
126
  }).routeApproved(swapRoute, sourceUserAddress, squidRoute));
143
127
  },
144
128
  });
145
- /**
146
- * There's a specific way to get the transaction hash for the safe connector
147
- * SO if the app is being used inside the safe container, we need to use the safe sdk to get the tx hash
148
- * @param connector
149
- * @param hashReceived
150
- * @returns
151
- */
152
- const getTransactionHash = async (connector, hashReceived) => {
153
- if (connector?.id === "safe") {
154
- const safeSdk = await getGnosisSafeContext();
155
- const tx = await safeSdk?.txs.getBySafeTxHash(hashReceived);
156
- const status = tx?.txStatus;
157
- if (status !== GnosisTransactionStatus.FAILED &&
158
- status !== GnosisTransactionStatus.SUCCESS &&
159
- status !== GnosisTransactionStatus.CANCELLED) {
160
- // Wait 2 seconds before checking the gnosis status again
161
- // eslint-disable-next-line no-promise-executor-return
162
- await new Promise((res) => setTimeout(res, 2000));
163
- return getTransactionHash(connector, hashReceived);
164
- }
165
- return tx?.txHash ?? hashReceived;
166
- }
167
- return hashReceived;
168
- };
169
- const persistTransaction = async (txToPersist) => {
170
- // Persisting the transaction in local storage
171
- if (squidRoute) {
172
- const previousHistoryList = usePersistStore.getState().transactionsHistory ?? [];
173
- const newHistoryElement = {
174
- ...txToPersist,
175
- params: squidRoute.params,
176
- estimate: squidRoute.estimate,
177
- };
178
- usePersistStore.setState({
179
- transactionsHistory: [...previousHistoryList, newHistoryElement],
180
- });
181
- }
182
- };
183
- const setTransactionState = useCallback(({ route, txHash, nonce, status, sourceStatus, userAddress, axelarUrl, }) => {
184
- if (route && route.transactionRequest) {
185
- const { routeType } = route.transactionRequest;
186
- const tx = {
187
- fromChain,
188
- toChain,
189
- routeType,
190
- nonce,
191
- transactionId: txHash,
192
- status,
193
- sourceStatus,
194
- timestamp: Date.now(),
195
- fromAddress: userAddress,
196
- sourceTxExplorerUrl: getSourceExplorerTxUrl(fromChain, txHash),
197
- sourceExplorerImgUrl: fromChain?.chainIconURI,
198
- axelarUrl,
199
- };
200
- useSquidStore.setState({
201
- currentTransaction: tx,
202
- });
203
- return tx;
204
- }
205
- return undefined;
206
- }, [fromChain, toChain]);
207
- const swapQueryCosmos = useMutation(async (route) => {
208
- const chainData = chains.find((c) => c.chainId === route?.params.fromChain);
209
- if (cosmosSigner && chainData) {
210
- try {
211
- const rpc = await getWorkingCosmosRpcUrl(chainData);
212
- const signingClient = await SigningCosmWasmClient.connectWithSigner(rpc, cosmosSigner);
213
- const signerAddress = (await cosmosSigner.getAccounts())[0].address;
214
- if (signerAddress && signingClient && route) {
215
- const tx = (await squid?.executeRoute({
216
- signer: signingClient,
217
- signerAddress,
218
- route,
219
- executionSettings: {
220
- infiniteApproval: config.infiniteApproval,
221
- },
222
- }));
223
- // set the tx state to loading, as soon as user signed the tx
224
- setTransactionState({
225
- txHash: "",
226
- route,
227
- status: TransactionStatus.ONGOING,
228
- sourceStatus: TransactionStatus.ONGOING,
229
- });
230
- // broadcast the signed tx to get hash and listen to events
231
- const response = await signingClient.broadcastTx(TxRaw.encode(tx).finish());
232
- const hash = response.transactionHash;
233
- // Dispatch event so it can be listened from outside the widget
234
- WidgetEvents.getInstance().dispatchSwapExecuteCall(route, hash);
235
- const txParams = setTransactionState({
236
- route,
237
- txHash: hash,
238
- userAddress: sourceUserAddress,
239
- status: TransactionStatus.ONGOING,
240
- sourceStatus: TransactionStatus.ONGOING,
241
- axelarUrl: undefined,
242
- });
243
- if (txParams) {
244
- persistTransaction(txParams);
245
- }
246
- return response.code === 0;
247
- }
248
- }
249
- catch (error) {
250
- console.log(error);
251
- const castedError = error ?? {};
252
- if (castedError.message?.includes("Request rejected")) {
253
- throw new Error(castedError.message);
254
- }
255
- }
256
- }
257
- throw new Error("Need all parameters");
258
- });
259
- // If the transaction is replaced, we need to update the transaction hash
260
- // Transaction replaced can mean that the user has speed up the transaction for example
261
- // Could also be cancelled
262
- const handleTransactionReplacementError = useCallback(async ({ error, route, status, sourceStatus, userAddress, axelarUrl, }) => {
263
- if (route && error.code === Logger.errors.TRANSACTION_REPLACED) {
264
- const txReplacementError = error;
265
- const { hash: newHash, nonce: newNonce } = txReplacementError.replacement;
266
- if (route.transactionRequest && squidRoute) {
267
- const txParams = setTransactionState({
268
- route,
269
- txHash: newHash,
270
- nonce: newNonce,
271
- userAddress: sourceUserAddress,
272
- status,
273
- sourceStatus,
274
- axelarUrl: undefined,
275
- });
276
- if (txParams) {
277
- const newHistoryElement = {
278
- ...txParams,
279
- params: squidRoute.params,
280
- estimate: squidRoute.estimate,
281
- };
282
- // Need to store the new transaction hash on the previous transaction
283
- usePersistStore.setState({
284
- transactionsHistory: replaceTransactionAtNonce(newNonce, sourceUserAddress, usePersistStore.getState().transactionsHistory, newHistoryElement),
285
- });
286
- }
287
- }
288
- try {
289
- const response = await txReplacementError.replacement.wait();
290
- return response;
291
- }
292
- catch (replacementError) {
293
- // Maybe the transaction was replaced again
294
- // recursive call
295
- return handleTransactionReplacementError({
296
- error,
297
- route,
298
- status,
299
- sourceStatus,
300
- userAddress,
301
- axelarUrl,
302
- });
303
- }
304
- }
305
- else {
306
- throw error;
307
- }
308
- }, [setTransactionState, sourceUserAddress, squidRoute, squid?.axelarscanURL]);
309
- const swapQueryEvm = useMutation(async (route) => {
310
- if (route && !!squid && signer.isSuccess && signer.data) {
311
- const txResponse = (await squid.executeRoute({
312
- signer: signer.data,
313
- route,
314
- executionSettings: {
315
- infiniteApproval: config.infiniteApproval,
316
- },
317
- }));
318
- const hash = await getTransactionHash(activeConnector, txResponse.hash);
319
- // Dispatch event so it can be listened from outside the widget
320
- WidgetEvents.getInstance().dispatchSwapExecuteCall(route, hash);
321
- if (route.transactionRequest) {
322
- const txParams = setTransactionState({
323
- route,
324
- txHash: hash,
325
- nonce: txResponse.nonce,
326
- userAddress: sourceUserAddress,
327
- status: TransactionStatus.INITIAL_LOADING,
328
- sourceStatus: TransactionStatus.ONGOING,
329
- axelarUrl: undefined,
330
- });
331
- if (txParams) {
332
- persistTransaction(txParams);
333
- }
334
- }
335
- try {
336
- const response = await txResponse.wait();
337
- return response;
338
- }
339
- catch (error) {
340
- return handleTransactionReplacementError({
341
- error,
342
- route,
343
- status: TransactionStatus.INITIAL_LOADING,
344
- sourceStatus: TransactionStatus.ONGOING,
345
- userAddress: sourceUserAddress,
346
- axelarUrl: undefined,
347
- });
348
- }
349
- }
350
- throw new Error("Need all parameters");
351
- });
352
- /**
353
- * Execute cross chain swap with selected tokens
354
- * getRoute should be called before this mutation
355
- */
356
- const swapQuery = useMutation(async (route) => {
357
- const sourceChain = chains?.find((chain) => chain.chainId == route?.params?.fromChain);
358
- if (sourceChain?.chainType === ChainType.COSMOS) {
359
- return swapQueryCosmos.mutateAsync(route);
360
- }
361
- if (sourceChain?.chainType === ChainType.EVM) {
362
- return swapQueryEvm.mutateAsync(route);
363
- }
364
- throw new Error("Invalid parameters or chain not found");
365
- }, {
366
- onError: (error) => {
367
- const { currentTransaction: currentTx } = useSquidStore.getState();
368
- const errorObject = getTransactionError(error);
369
- useSquidStore.setState({
370
- currentTransaction: {
371
- ...currentTx,
372
- status: TransactionStatus.ERROR,
373
- sourceStatus: TransactionStatus.ERROR,
374
- error: errorObject,
375
- },
376
- });
377
- if (currentTx?.transactionId &&
378
- errorObject?.type === TransactionErrorType.CALL_EXCEPTION) {
379
- usePersistStore.setState({
380
- transactionsHistory: updateTransactionHistoryStatus(currentTransaction?.transactionId, TransactionStatus.ERROR, usePersistStore.getState().transactionsHistory, undefined),
381
- });
382
- }
383
- },
384
- onSuccess: () => {
385
- const { currentTransaction: currentTx } = useSquidStore.getState();
386
- queryClient.invalidateQueries(keys({}).balances());
387
- useSquidStore.setState({
388
- currentTransaction: {
389
- ...currentTx,
390
- sourceStatus: TransactionStatus.SUCCESS,
391
- status: isSameChainSwap
392
- ? TransactionStatus.SUCCESS
393
- : TransactionStatus.ONGOING,
394
- },
395
- });
396
- },
397
- });
398
129
  return {
399
130
  routeApproved,
400
131
  approveRoute,
@@ -403,7 +134,6 @@ export const useTransaction = ({ squidRoute, }) => {
403
134
  fromToken,
404
135
  toToken,
405
136
  fromPrice,
406
- toPrice,
407
137
  toChain,
408
138
  fromChain,
409
139
  mainExplorerUrl,
@@ -1 +1 @@
1
- {"version":3,"file":"useTransaction.js","sourceRoot":"","sources":["../../../src/hooks/transaction/useTransaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useTransaction.js","sourceRoot":"","sources":["../../../src/hooks/transaction/useTransaction.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,8 @@
1
1
  import React from "react";
2
- interface Config {
3
- integratorId: string;
4
- apiUrl?: string;
5
- }
2
+ import { AppConfig } from "../core/types/config";
6
3
  interface ISdkProviderProps {
7
4
  children: React.ReactNode;
8
- config: Config;
5
+ config: AppConfig;
9
6
  }
10
7
  export declare const SquidProvider: React.FC<ISdkProviderProps>;
11
8
  export {};
@@ -8,7 +8,7 @@ import { wallets } from "../core/constants";
8
8
  import { squidApiBaseUrl } from "../core/externalLinks";
9
9
  import { CosmosProvider } from "../core/providers/CosmosProvider";
10
10
  import { defaultOptions } from "../core/queries/react-query-config";
11
- import { useSquidStore } from "../hooks/store/useSquidStore";
11
+ import { useSquidStore, useSwapRoutePersistStore, } from "../hooks/store/useSquidStore";
12
12
  import { getConfigWithDefaults } from "../services/internal/configService";
13
13
  import { formatChainsForWagmi } from "../services/internal/walletService";
14
14
  const SquidContext = createContext(undefined);
@@ -20,7 +20,38 @@ const verifyIntegratorIdValidity = (integratorId) => {
20
20
  export const SquidProvider = ({ children, config, }) => {
21
21
  verifyIntegratorIdValidity(config.integratorId);
22
22
  const queryClient = new QueryClient({ defaultOptions });
23
- const [wagmiClient, setWagmiClient] = useState(null);
23
+ const [wagmiClient, setWagmiClient] = useState(() => {
24
+ const { provider } = configureChains([
25
+ {
26
+ id: 1,
27
+ name: "Ethereum",
28
+ network: "Ethereum",
29
+ nativeCurrency: {
30
+ name: "Ethereum",
31
+ symbol: "ETH",
32
+ decimals: 18,
33
+ },
34
+ rpcUrls: {
35
+ public: {
36
+ http: [" "],
37
+ },
38
+ default: {
39
+ http: [" "],
40
+ },
41
+ },
42
+ },
43
+ ], [
44
+ jsonRpcProvider({
45
+ rpc: () => ({
46
+ http: "",
47
+ }),
48
+ }),
49
+ ]);
50
+ return createClient({
51
+ persister: null,
52
+ provider,
53
+ });
54
+ });
24
55
  /**
25
56
  * Initialize Wagmi client
26
57
  * @param chains
@@ -44,6 +75,7 @@ export const SquidProvider = ({ children, config, }) => {
44
75
  connectors: [...evmWalletConnectors],
45
76
  });
46
77
  setWagmiClient(wClient);
78
+ useSquidStore.setState({ isInitialized: true });
47
79
  };
48
80
  // Initialize Squid SDK & wagmi client
49
81
  useEffect(() => {
@@ -53,10 +85,21 @@ export const SquidProvider = ({ children, config, }) => {
53
85
  baseUrl: config.apiUrl ?? squidApiBaseUrl,
54
86
  });
55
87
  await squid.init();
88
+ // Reset config if integrator doesn't want to load local storage state
89
+ // From previous user session
90
+ // Or if integrator has set up some pre defined states (initial tokens)
91
+ if (!config?.loadPreviousStateFromLocalStorage ||
92
+ config.initialAssets?.from ||
93
+ config.initialAssets?.to) {
94
+ useSwapRoutePersistStore.setState({
95
+ swapRoute: undefined,
96
+ destinationAddressHasBeenUpdated: undefined,
97
+ });
98
+ }
56
99
  useSquidStore.setState((_) => ({
57
100
  config: getConfigWithDefaults({
58
- integratorId: config.integratorId,
59
101
  apiUrl: config.apiUrl ?? squidApiBaseUrl,
102
+ ...config,
60
103
  }),
61
104
  squid,
62
105
  }));
@@ -66,7 +109,8 @@ export const SquidProvider = ({ children, config, }) => {
66
109
  // In your hooks library
67
110
  }, []);
68
111
  return (React.createElement(SquidContext.Provider, { value: undefined },
69
- React.createElement(QueryClientProvider, { client: queryClient }, wagmiClient && (React.createElement(WagmiConfig, { client: wagmiClient },
70
- React.createElement(CosmosProvider, null, children))))));
112
+ React.createElement(QueryClientProvider, { client: queryClient },
113
+ React.createElement(WagmiConfig, { client: wagmiClient },
114
+ React.createElement(CosmosProvider, null, children)))));
71
115
  };
72
116
  //# sourceMappingURL=index.js.map
@@ -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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"}
@@ -3,7 +3,12 @@ import type { AppConfig } from "../../core/types/config";
3
3
  export declare const getConfigWithDefaults: (config: AppConfig | undefined) => AppConfig;
4
4
  export declare const randomIntFromInterval: (min: number, max: number) => number;
5
5
  export declare const getTokensForChain: (tokens: Token[], chainId: number | string | undefined) => Token[];
6
- export declare const getFirstAvailableChainId: (config: AppConfig, direction: "from" | "to", chains?: ChainData[] | undefined) => string | number | undefined;
6
+ /**
7
+ * Returns the first available chain ID for a specific direction based on config.
8
+ * If no initial chains are found in config, returns the first available chain ID.
9
+ * @returns The first available chain ID.
10
+ */
11
+ export declare const getFirstAvailableChainId: (config: AppConfig, direction: "from" | "to", chains?: ChainData[] | undefined) => string | undefined;
7
12
  export declare const getDefaultTokenAddressForChain: (tokens: Token[], config: AppConfig, chainId: number | string | undefined, unavailableTokenAddress?: string) => string | undefined;
8
13
  /**
9
14
  * Retrieves the initial token address for a specific chain and direction.
@@ -18,7 +23,7 @@ export declare const getDefaultTokenAddressForChain: (tokens: Token[], config: A
18
23
  export declare const getInitialOrDefaultTokenAddressForChain: ({ chainId, config, direction, tokens, unavailableTokenAddress, }: {
19
24
  tokens: Token[];
20
25
  config: AppConfig;
21
- chainId: number | string | undefined;
26
+ chainId: string | undefined;
22
27
  direction: "from" | "to";
23
28
  unavailableTokenAddress?: string | undefined;
24
29
  }) => string | undefined;
@@ -38,3 +43,22 @@ export declare const getInitialOrDefaultTokenAddressForChain: ({ chainId, config
38
43
  * @returns
39
44
  */
40
45
  export declare const filterTokensForDestination: <T extends Token>(tokens: T[], selectedDestinationChain: ChainData | undefined, selectedSourceToken: Token | undefined) => T[];
46
+ /**
47
+ * Returns the initial chain ID for a specific direction based on the provided chains and config.
48
+ * @returns The initial chain ID if found in config; otherwise, undefined.
49
+ */
50
+ export declare const getInitialChainIdFromConfig: ({ config, direction, chains, }: {
51
+ config: AppConfig;
52
+ direction: "from" | "to";
53
+ chains: ChainData[] | undefined;
54
+ }) => string | undefined;
55
+ /**
56
+ * Returns the available chains for a specific direction based on the provided config,
57
+ * filtering config.disabledChains and config.comingSoonChains
58
+ * @returns The available chains for the specified direction.
59
+ */
60
+ export declare const getAvailableChainsForDirection: ({ config, chains, direction, }: {
61
+ config: AppConfig;
62
+ chains: ChainData[];
63
+ direction: "from" | "to";
64
+ }) => ChainData[];
@@ -19,6 +19,7 @@ export const getConfigWithDefaults = (config) => {
19
19
  priceImpactWarnings: get(config, "priceImpactWarnings", defaultValues.config.priceImpactWarnings),
20
20
  initialAssets: get(config, "initialAssets", defaultValues.config.initialAssets),
21
21
  defaultTokensPerChain: get(config, "defaultTokensPerChain", defaultValues.config.defaultTokensPerChain),
22
+ loadPreviousStateFromLocalStorage: get(config, "loadPreviousStateFromLocalStorage", defaultValues.config.loadPreviousStateFromLocalStorage),
22
23
  preferDex: get(config, "preferDex", defaultValues.config.preferDex),
23
24
  favTokens: get(config, "favTokens", defaultValues.config.favTokens),
24
25
  comingSoonChainIds: get(config, "comingSoonChainIds", defaultValues.config.comingSoonChainIds),
@@ -33,20 +34,27 @@ export const randomIntFromInterval = (min, max) => {
33
34
  export const getTokensForChain = (tokens, chainId) => {
34
35
  return chainId ? tokens.filter((t) => t.chainId === chainId) : tokens;
35
36
  };
37
+ /**
38
+ * Returns the first available chain ID for a specific direction based on config.
39
+ * If no initial chains are found in config, returns the first available chain ID.
40
+ * @returns The first available chain ID.
41
+ */
36
42
  export const getFirstAvailableChainId = (config, direction, chains = []) => {
37
- // available chains are those that are not coming soon or disabled chains
38
- const availableChains = chains.filter((c) => !config.comingSoonChainIds?.find((id) => id === c.chainId) &&
39
- !config.disabledChains?.[direction === "from" ? "source" : "destination"]?.some((id) => id === c.chainId));
40
- if (direction === "from" &&
41
- config.initialAssets?.from &&
42
- availableChains.some((c) => c.chainId === String(config.initialAssets?.from?.chainId))) {
43
- return config.initialAssets.from.chainId;
44
- }
45
- if (direction === "to" &&
46
- config.initialAssets?.to &&
47
- availableChains.some((c) => c.chainId === String(config.initialAssets?.to?.chainId))) {
48
- return config.initialAssets.to.chainId;
49
- }
43
+ // filter chains based on config
44
+ const availableChains = getAvailableChainsForDirection({
45
+ config,
46
+ chains,
47
+ direction,
48
+ });
49
+ // get initial chain ID from config
50
+ const initialChainId = getInitialChainIdFromConfig({
51
+ chains: availableChains,
52
+ config,
53
+ direction,
54
+ });
55
+ if (initialChainId)
56
+ return initialChainId;
57
+ // if no initial chain ID is found in config, return the first available chain ID
50
58
  return availableChains.length > 0 ? availableChains[0].chainId : undefined;
51
59
  };
52
60
  export const getDefaultTokenAddressForChain = (tokens, config, chainId, unavailableTokenAddress) => {
@@ -101,8 +109,7 @@ export const getInitialOrDefaultTokenAddressForChain = ({ chainId, config, direc
101
109
  export const filterTokensForDestination = (tokens, selectedDestinationChain, selectedSourceToken) => {
102
110
  let filteredTokens = [];
103
111
  if (selectedSourceToken?.subGraphOnly) {
104
- filteredTokens = tokens.filter((t) => shareSubgraphId(t, selectedSourceToken) &&
105
- t.chainId === selectedDestinationChain?.chainId);
112
+ filteredTokens = tokens.filter((t) => shareSubgraphId(t, selectedSourceToken));
106
113
  }
107
114
  filteredTokens = tokens.filter((t) => !t.subGraphOnly || shareSubgraphId(t, selectedSourceToken));
108
115
  // We don't want to show the same source token & chain in the destination list
@@ -110,10 +117,47 @@ export const filterTokensForDestination = (tokens, selectedDestinationChain, sel
110
117
  return filteredTokens.filter((t) => {
111
118
  const areSameToken = t.address === selectedSourceToken?.address &&
112
119
  t.chainId === selectedSourceToken.chainId;
113
- // only return tokens that are on the same chain as the destination chain
114
- const isValidChain = t.chainId === selectedDestinationChain?.chainId;
120
+ // Only return tokens that are on the same chain as the destination chain
121
+ // If no destination chain is provided, return all tokens
122
+ const isValidChain = !!selectedDestinationChain
123
+ ? t.chainId === selectedDestinationChain?.chainId
124
+ : true;
115
125
  const isCosmosSwap = selectedDestinationChain?.chainType === ChainType.COSMOS;
116
126
  return isValidChain && (isCosmosSwap || !areSameToken);
117
127
  });
118
128
  };
129
+ /**
130
+ * Returns the initial chain ID for a specific direction based on the provided chains and config.
131
+ * @returns The initial chain ID if found in config; otherwise, undefined.
132
+ */
133
+ export const getInitialChainIdFromConfig = ({ config, direction, chains = [], }) => {
134
+ if (chains.length === 0)
135
+ return undefined;
136
+ const availableChains = getAvailableChainsForDirection({
137
+ config,
138
+ chains,
139
+ direction,
140
+ });
141
+ if (direction === "from" &&
142
+ config.initialAssets?.from &&
143
+ availableChains.some((c) => c.chainId === String(config.initialAssets?.from?.chainId))) {
144
+ return String(config.initialAssets.from.chainId);
145
+ }
146
+ if (direction === "to" &&
147
+ config.initialAssets?.to &&
148
+ availableChains.some((c) => c.chainId === String(config.initialAssets?.to?.chainId))) {
149
+ return String(config.initialAssets.to.chainId);
150
+ }
151
+ return undefined;
152
+ };
153
+ /**
154
+ * Returns the available chains for a specific direction based on the provided config,
155
+ * filtering config.disabledChains and config.comingSoonChains
156
+ * @returns The available chains for the specified direction.
157
+ */
158
+ export const getAvailableChainsForDirection = ({ config, chains, direction, }) => {
159
+ const disabledChainsForDirection = config.disabledChains?.[direction === "from" ? "source" : "destination"];
160
+ return chains.filter((c) => !config.comingSoonChainIds?.find((id) => id === c.chainId) &&
161
+ !disabledChainsForDirection?.some((id) => id === c.chainId));
162
+ };
119
163
  //# sourceMappingURL=configService.js.map