@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.
- package/dist/core/constants.d.ts +1 -1
- package/dist/core/constants.js +1 -1
- package/dist/core/constants.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.js +1 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/queries/queries-keys.d.ts +3 -3
- package/dist/core/queries/queries-keys.js +2 -1
- package/dist/core/queries/queries-keys.js.map +1 -1
- package/dist/core/types/config.d.ts +3 -2
- package/dist/core/types/index.d.ts +2 -0
- package/dist/core/types/index.js +2 -0
- package/dist/core/types/index.js.map +1 -0
- package/dist/core/types/swap.d.ts +2 -2
- package/dist/hooks/store/useSquidStore.d.ts +1 -1
- package/dist/hooks/swap/useSwap.d.ts +2 -3
- package/dist/hooks/swap/useSwap.js +15 -14
- package/dist/hooks/swap/useSwap.js.map +1 -1
- package/dist/hooks/transaction/useExecuteTransaction.d.ts +0 -1
- package/dist/hooks/transaction/useExecuteTransaction.js +2 -3
- package/dist/hooks/transaction/useExecuteTransaction.js.map +1 -1
- package/dist/hooks/transaction/useGetRoute.d.ts +1 -0
- package/dist/hooks/transaction/useGetRoute.js +4 -3
- package/dist/hooks/transaction/useGetRoute.js.map +1 -1
- package/dist/hooks/transaction/useTransaction.d.ts +3 -9
- package/dist/hooks/transaction/useTransaction.js +7 -277
- package/dist/hooks/transaction/useTransaction.js.map +1 -1
- package/dist/provider/index.d.ts +2 -5
- package/dist/provider/index.js +49 -5
- package/dist/provider/index.js.map +1 -1
- package/dist/services/internal/configService.d.ts +26 -2
- package/dist/services/internal/configService.js +61 -17
- package/dist/services/internal/configService.js.map +1 -1
- package/dist/tests/configService.test.js +152 -1
- package/dist/tests/configService.test.js.map +1 -1
- 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 {
|
|
8
|
-
import {
|
|
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 {
|
|
13
|
-
import {
|
|
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 {
|
|
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,
|
|
15
|
+
const { fromPrice, squid, currentTransaction, config } = useSquidStore();
|
|
30
16
|
const { swapRoute } = useSwapRoutePersistStore();
|
|
31
|
-
const {
|
|
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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"}
|
package/dist/provider/index.d.ts
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
|
|
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:
|
|
5
|
+
config: AppConfig;
|
|
9
6
|
}
|
|
10
7
|
export declare const SquidProvider: React.FC<ISdkProviderProps>;
|
|
11
8
|
export {};
|
package/dist/provider/index.js
CHANGED
|
@@ -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(
|
|
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 },
|
|
70
|
-
React.createElement(
|
|
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":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAa,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;
|
|
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
|
-
|
|
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:
|
|
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
|
-
//
|
|
38
|
-
const availableChains =
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
config
|
|
47
|
-
|
|
48
|
-
|
|
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
|
-
//
|
|
114
|
-
|
|
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
|