@0xsquid/react-hooks 8.0.7 → 8.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4427,6 +4427,23 @@ const getAllKeysForSupportedCosmosChains = async (chainIds, keplrTypeWallet) =>
4427
4427
  if (!keplrTypeWallet)
4428
4428
  return [];
4429
4429
  const addresses = [];
4430
+ if (typeof keplrTypeWallet.getChainInfosWithoutEndpoints === "function") {
4431
+ try {
4432
+ const keys = await getKeysSettled(chainIds, keplrTypeWallet);
4433
+ keys.forEach((key, index) => {
4434
+ if (key.status === "fulfilled" && key.value) {
4435
+ addresses.push({
4436
+ address: key.value,
4437
+ chainId: chainIds[index],
4438
+ });
4439
+ }
4440
+ });
4441
+ return addresses;
4442
+ }
4443
+ catch (error) {
4444
+ console.debug("Batch key fetch failed, trying sequential", error);
4445
+ }
4446
+ }
4430
4447
  for (const chainId of chainIds) {
4431
4448
  try {
4432
4449
  const keys = await getKeysSettled([chainId], keplrTypeWallet);
@@ -23063,7 +23080,7 @@ const filterViewableTokens = (tokens, config, direction) => {
23063
23080
  };
23064
23081
  const getSecretNetworkBalances = async (chainData, cosmosAddress, squidTokens, keplrTypeWallet) => {
23065
23082
  const squidSecretTokens = squidTokens.filter((t) => t.chainId === CHAIN_IDS.SECRET);
23066
- const { fetchAllSecretBalances } = await import('./secretService-DhkEjHMB.js');
23083
+ const { fetchAllSecretBalances } = await import('./secretService-DQbR7c-h.js');
23067
23084
  return fetchAllSecretBalances(chainData, cosmosAddress, squidSecretTokens, keplrTypeWallet);
23068
23085
  };
23069
23086
  function getTokenAssetsKey(token) {
@@ -23137,7 +23154,7 @@ function convertEvmosToEvmChain(cosmosChain) {
23137
23154
  // @ts-expect-error - isEvmos is not a property on EvmChain
23138
23155
  // We still need this attribute in evmos chains
23139
23156
  // even after they are converted to evm chains, to perform certain checks
23140
- // e.g checking ics20 allowance instead of erc20 allowance
23157
+ // e.g skipping erc20 approve/allowance checks
23141
23158
  isEvmos: true,
23142
23159
  chainType: ChainType.EVM,
23143
23160
  axelarChainName: cosmosChain.axelarChainName,
@@ -24842,13 +24859,21 @@ const useSquid = () => {
24842
24859
  * Fetch squid info
24843
24860
  * Will refetch every minute
24844
24861
  */
24845
- const squidInfoQuery = useQuery(keys().squidInfo(), async () => {
24846
- if (squid) {
24847
- await squid?.init();
24848
- initializeSquidWithAssetsColors(squid, assetsColors);
24849
- return squid;
24850
- }
24851
- return null;
24862
+ const squidInfoQuery = useQuery({
24863
+ queryKey: keys().squidInfo(),
24864
+ queryFn: async () => {
24865
+ if (squid) {
24866
+ await squid?.init();
24867
+ initializeSquidWithAssetsColors(squid, assetsColors);
24868
+ return squid;
24869
+ }
24870
+ return null;
24871
+ },
24872
+ enabled: !!squid && !maintenanceMode.active,
24873
+ retry: false,
24874
+ onError: (error) => {
24875
+ console.error("Failed to fetch squid info:", error);
24876
+ },
24852
24877
  });
24853
24878
  const tokens = useMemo(() => {
24854
24879
  if ((squidInfoQuery?.data?.tokens ?? []).length > 0) {
@@ -26239,7 +26264,7 @@ function useStellarWallets() {
26239
26264
  return;
26240
26265
  try {
26241
26266
  const { allowAllModules: initializeAllModules } = await import('@creit.tech/stellar-wallets-kit');
26242
- const { formatStellarWallet } = await import('./stellarService.client-BiE1Jy9a.js');
26267
+ const { formatStellarWallet } = await import('./stellarService.client-FQblggHS.js');
26243
26268
  const modules = initializeAllModules();
26244
26269
  const promises = modules.map(async (module) => {
26245
26270
  const isAvailable = await module.isAvailable();
@@ -27417,6 +27442,8 @@ const useCosmos = () => {
27417
27442
  if (cosmosWalletObject) {
27418
27443
  setCosmosChainId(chainInfos.chainId.toString());
27419
27444
  try {
27445
+ // Check if this wallet supports batch enabling chains
27446
+ // If it does, we can use it to enable all the cosmos chains at once
27420
27447
  if (approveAllChains &&
27421
27448
  typeof cosmosWalletObject.getChainInfosWithoutEndpoints ===
27422
27449
  "function") {
@@ -27429,6 +27456,11 @@ const useCosmos = () => {
27429
27456
  await cosmosWalletObject.enable(chainsToEnable);
27430
27457
  }
27431
27458
  catch (error) {
27459
+ // If the user rejected the batch enable request, throw an error to avoid
27460
+ // Fallback to a loop trying to enable each chain one by one
27461
+ if (isUserRejectionError(normalizeError(error))) {
27462
+ throw error;
27463
+ }
27432
27464
  console.warn("Failed to get chain infos, falling back to single chain enable", error);
27433
27465
  await cosmosWalletObject.enable(chainInfos.chainId);
27434
27466
  }
@@ -31375,135 +31407,6 @@ const useAllTransactionsStatus = ({ enabled }) => {
31375
31407
  };
31376
31408
  };
31377
31409
 
31378
- var ics20Abi = [
31379
- {
31380
- inputs: [
31381
- {
31382
- internalType: "address",
31383
- name: "grantee",
31384
- type: "address"
31385
- },
31386
- {
31387
- internalType: "address",
31388
- name: "granter",
31389
- type: "address"
31390
- }
31391
- ],
31392
- name: "allowance",
31393
- outputs: [
31394
- {
31395
- components: [
31396
- {
31397
- internalType: "string",
31398
- name: "sourcePort",
31399
- type: "string"
31400
- },
31401
- {
31402
- internalType: "string",
31403
- name: "sourceChannel",
31404
- type: "string"
31405
- },
31406
- {
31407
- components: [
31408
- {
31409
- internalType: "string",
31410
- name: "denom",
31411
- type: "string"
31412
- },
31413
- {
31414
- internalType: "uint256",
31415
- name: "amount",
31416
- type: "uint256"
31417
- }
31418
- ],
31419
- internalType: "struct Coin[]",
31420
- name: "spendLimit",
31421
- type: "tuple[]"
31422
- },
31423
- {
31424
- internalType: "string[]",
31425
- name: "allowList",
31426
- type: "string[]"
31427
- },
31428
- {
31429
- internalType: "string[]",
31430
- name: "allowedPacketData",
31431
- type: "string[]"
31432
- }
31433
- ],
31434
- internalType: "struct ICS20Allocation[]",
31435
- name: "allocations",
31436
- type: "tuple[]"
31437
- }
31438
- ],
31439
- stateMutability: "view",
31440
- type: "function"
31441
- },
31442
- {
31443
- inputs: [
31444
- {
31445
- internalType: "address",
31446
- name: "grantee",
31447
- type: "address"
31448
- },
31449
- {
31450
- components: [
31451
- {
31452
- internalType: "string",
31453
- name: "sourcePort",
31454
- type: "string"
31455
- },
31456
- {
31457
- internalType: "string",
31458
- name: "sourceChannel",
31459
- type: "string"
31460
- },
31461
- {
31462
- components: [
31463
- {
31464
- internalType: "string",
31465
- name: "denom",
31466
- type: "string"
31467
- },
31468
- {
31469
- internalType: "uint256",
31470
- name: "amount",
31471
- type: "uint256"
31472
- }
31473
- ],
31474
- internalType: "struct Coin[]",
31475
- name: "spendLimit",
31476
- type: "tuple[]"
31477
- },
31478
- {
31479
- internalType: "string[]",
31480
- name: "allowList",
31481
- type: "string[]"
31482
- },
31483
- {
31484
- internalType: "string[]",
31485
- name: "allowedPacketData",
31486
- type: "string[]"
31487
- }
31488
- ],
31489
- internalType: "struct ICS20Allocation[]",
31490
- name: "allocations",
31491
- type: "tuple[]"
31492
- }
31493
- ],
31494
- name: "approve",
31495
- outputs: [
31496
- {
31497
- internalType: "bool",
31498
- name: "approved",
31499
- type: "bool"
31500
- }
31501
- ],
31502
- stateMutability: "nonpayable",
31503
- type: "function"
31504
- }
31505
- ];
31506
-
31507
31410
  const useErc20Allowance = ({ tokenAddress, ownerAddress, spenderAddress, amount = BigInt(0), chainId, transactionType, enabled = true, }) => {
31508
31411
  const parsedTokenAddress = parseEvmAddress(tokenAddress);
31509
31412
  const parsedOwnerAddress = parseEvmAddress(ownerAddress);
@@ -31543,49 +31446,6 @@ const useErc20Allowance = ({ tokenAddress, ownerAddress, spenderAddress, amount
31543
31446
  };
31544
31447
  };
31545
31448
 
31546
- /**
31547
- * ICS20 is similar to ERC20 but the ABI is different
31548
- * https://docs.evmos.org/develop/smart-contracts/evm-extensions/ibc-transfer
31549
- * https://github.com/evmos/extensions/blob/main/precompiles/abi/ics20.json
31550
- */
31551
- function useIcs20Allowance({ targetAddress, ownerAddress, amount = BigInt(0), chainId, enabled = true, }) {
31552
- const parsedTargetAddress = parseEvmAddress(targetAddress);
31553
- const parsedOwnerAddress = parseEvmAddress(ownerAddress);
31554
- const query = useReadContract({
31555
- abi: ics20Abi,
31556
- address: parsedTargetAddress,
31557
- functionName: "allowance",
31558
- chainId,
31559
- args: parsedOwnerAddress && parsedTargetAddress
31560
- ? [parsedOwnerAddress, parsedOwnerAddress] // ICS20: (grantee, granter)
31561
- : undefined,
31562
- query: {
31563
- enabled: enabled && Boolean(parsedTargetAddress && parsedOwnerAddress),
31564
- },
31565
- });
31566
- if (!parsedTargetAddress || !parsedOwnerAddress) {
31567
- return {
31568
- hasAllowance: false,
31569
- error: new Error("Invalid or missing address"),
31570
- };
31571
- }
31572
- // Handle ICS20 format
31573
- let allowanceInWei;
31574
- if (query.data) {
31575
- const ics20Data = query.data;
31576
- allowanceInWei = ics20Data?.[0]?.spendLimit?.[0]?.amount ?? BigInt(0);
31577
- }
31578
- else {
31579
- allowanceInWei = BigInt(0);
31580
- }
31581
- const hasAllowance = allowanceInWei >= amount;
31582
- return {
31583
- query,
31584
- hasAllowance,
31585
- allowanceInWei,
31586
- };
31587
- }
31588
-
31589
31449
  const useApproval = ({ squidRoute, }) => {
31590
31450
  const { data: walletClient } = useWalletClient();
31591
31451
  const publicClient = usePublicClient();
@@ -31597,12 +31457,15 @@ const useApproval = ({ squidRoute, }) => {
31597
31457
  const { getChainType } = useSquidChains();
31598
31458
  const { switchChainAsync } = useSwitchChain();
31599
31459
  const { connectedAddress: { address: sourceUserAddress }, } = useMultiChainWallet(fromChain);
31600
- const isSrcChainEvmos = isEvmosChain(fromChain);
31601
- const isSagaSameChainSwap = isSameChain &&
31460
+ const isSagaEvmSameChainSwap = isSameChain &&
31602
31461
  fromChain?.chainId.toString() === CHAIN_IDS.SAGA_EVM.toString();
31603
- // Use ICS20 for Evmos chains, except for SagaEVM same-chain swaps
31604
- const useIcs20 = isSrcChainEvmos && !isSagaSameChainSwap;
31605
- const { hasAllowance: hasErc20Allowance, query: erc20AllowanceQuery, allowanceInWei: erc20AllowanceInWei, } = useErc20Allowance({
31462
+ // Swaps on SagaEVM are regular EVM transactions, following the standard ERC20 approve/allowance mechanism.
31463
+ // However, when bridging from SagaEVM to other Saga chainlets, approve/allowance is not needed
31464
+ // as these transfers interact with the SagaEVM ICS20 precompile contract.
31465
+ // See https://github.com/sagaxyz/cosmos-evm/tree/main/precompiles/ics20
31466
+ const erc20AllowanceQueryEnabled = isSagaEvmSameChainSwap ||
31467
+ (fromChain?.chainType === ChainType.EVM && !isEvmosChain(fromChain));
31468
+ const { hasAllowance, query: allowanceQuery, allowanceInWei, } = useErc20Allowance({
31606
31469
  tokenAddress: fromToken?.address,
31607
31470
  ownerAddress: sourceUserAddress,
31608
31471
  spenderAddress: squidRoute?.transactionRequest
@@ -31610,19 +31473,8 @@ const useApproval = ({ squidRoute, }) => {
31610
31473
  amount: BigInt(squidRoute?.params.fromAmount ?? "0"),
31611
31474
  chainId: Number(fromChain?.chainId),
31612
31475
  transactionType: squidRoute?.transactionRequest?.type,
31613
- enabled: !useIcs20,
31614
- });
31615
- const { hasAllowance: hasIcs20Allowance, query: ics20AllowanceQuery, allowanceInWei: ics20AllowanceInWei, } = useIcs20Allowance({
31616
- ownerAddress: sourceUserAddress,
31617
- targetAddress: squidRoute?.transactionRequest
31618
- ?.target,
31619
- amount: BigInt(squidRoute?.params.fromAmount ?? "0"),
31620
- chainId: Number(fromChain?.chainId),
31621
- enabled: useIcs20,
31476
+ enabled: erc20AllowanceQueryEnabled,
31622
31477
  });
31623
- const hasAllowance = useIcs20 ? hasIcs20Allowance : hasErc20Allowance;
31624
- const allowanceInWei = useIcs20 ? ics20AllowanceInWei : erc20AllowanceInWei;
31625
- const allowanceQuery = useIcs20 ? ics20AllowanceQuery : erc20AllowanceQuery;
31626
31478
  /**
31627
31479
  * Checking if spending tokens is allowed for this source address
31628
31480
  * On Success: storing the transaction
@@ -31630,16 +31482,16 @@ const useApproval = ({ squidRoute, }) => {
31630
31482
  * @returns {boolean} approved
31631
31483
  */
31632
31484
  const routeApproved = useQuery(keys().routeApproved(squidRoute, allowanceInWei), async () => {
31633
- // Approval is only needed for EVM chains
31634
- if (getChainType(squidRoute?.params.fromChain) === ChainType.EVM) {
31485
+ if (erc20AllowanceQueryEnabled) {
31635
31486
  return hasAllowance;
31636
31487
  }
31637
31488
  return true;
31638
31489
  }, {
31639
31490
  enabled: !!squidRoute &&
31640
31491
  !!sourceUserAddress &&
31641
- !allowanceQuery?.isLoading &&
31642
- allowanceQuery?.isFetched,
31492
+ // Only wait for allowance if that query is actually enabled
31493
+ (!erc20AllowanceQueryEnabled ||
31494
+ (!allowanceQuery?.isLoading && allowanceQuery?.isFetched)),
31643
31495
  });
31644
31496
  // USDT has a very specific way of handling approvals
31645
31497
  // ```
@@ -31729,7 +31581,8 @@ const useApproval = ({ squidRoute, }) => {
31729
31581
  */
31730
31582
  const approveRoute = useMutation(async () => {
31731
31583
  try {
31732
- if (fromToken?.address === nativeEvmTokenAddress) {
31584
+ if (fromToken?.address.toLowerCase() ===
31585
+ nativeEvmTokenAddress.toLowerCase()) {
31733
31586
  return true;
31734
31587
  }
31735
31588
  if (!!squidRoute && walletClient && fromToken && evmSigner && squid) {
@@ -31742,49 +31595,14 @@ const useApproval = ({ squidRoute, }) => {
31742
31595
  catch (error) {
31743
31596
  console.error("Error switching network:", error);
31744
31597
  }
31745
- let approveTx;
31746
- if (useIcs20) {
31747
- const channel = squidRoute.estimate.actions[0].data
31748
- .ibcChannel;
31749
- const ics20Interface = new ethers.Interface(ics20Abi);
31750
- const approveData = ics20Interface.encodeFunctionData("approve", [
31751
- squidRoute.params.fromAddress,
31752
- [
31753
- {
31754
- sourcePort: "transfer",
31755
- sourceChannel: channel,
31756
- spendLimit: [
31757
- {
31758
- denom: squidRoute.estimate.actions[0].fromToken
31759
- .originalAddress,
31760
- amount: squidRoute.params.fromAmount,
31761
- },
31762
- ],
31763
- allowList: [],
31764
- allowedPacketData: ["*"],
31765
- },
31766
- ],
31767
- ]);
31768
- approveTx = await evmSigner.sendTransaction({
31769
- to: squidRoute.transactionRequest.target,
31770
- data: approveData,
31771
- value: "0",
31772
- gasLimit: squidRoute.transactionRequest
31773
- .gasLimit,
31774
- gasPrice: squidRoute.transactionRequest
31775
- .gasPrice,
31776
- });
31777
- }
31778
- else {
31779
- approveTx = await squid.approveRoute({
31780
- route: squidRoute,
31781
- signer: evmSigner,
31782
- // For security reasons, we don't want to allow infinite approvals in our frontends
31783
- executionSettings: {
31784
- infiniteApproval: false,
31785
- },
31786
- });
31787
- }
31598
+ const approveTx = await squid.approveRoute({
31599
+ route: squidRoute,
31600
+ signer: evmSigner,
31601
+ // For security reasons, we don't want to allow infinite approvals in our frontends
31602
+ executionSettings: {
31603
+ infiniteApproval: false,
31604
+ },
31605
+ });
31788
31606
  if (isProblematicConnector(activeConnector)) {
31789
31607
  await sleep(3_000);
31790
31608
  }
@@ -36359,9 +36177,14 @@ const SquidProvider = ({ children, config, placeholder, }) => {
36359
36177
  catch (error) {
36360
36178
  const isAxios503Error = error.isAxiosError &&
36361
36179
  error.response?.status === 503;
36362
- if (isAxios503Error) {
36363
- const maintenanceMessage = error.response?.data
36364
- ?.message ?? undefined;
36180
+ const isBackendDown = isAxios503Error ||
36181
+ error.isAxiosError ||
36182
+ error instanceof Error;
36183
+ if (isBackendDown) {
36184
+ const maintenanceMessage = isAxios503Error
36185
+ ? error.response?.data
36186
+ ?.message ?? undefined
36187
+ : "Unable to connect to Squid. Please check your connection or try again later.";
36365
36188
  // Even with an error, we want wagmi to be defined so that we can display the maintenance mode layout
36366
36189
  // Create wagmi config with mainnet as fallback in maintenance mode
36367
36190
  const newWagmiConfig = createConfig({
@@ -36404,4 +36227,4 @@ const SquidProvider = ({ children, config, placeholder, }) => {
36404
36227
  };
36405
36228
 
36406
36229
  export { useMultipleTokenPrices as $, AxelarStatusResponseType as A, useAddressBookStore as B, CHAIN_IDS as C, DEFAULT_LOCALE as D, useAssetsColorsStore as E, useFavoriteTokensStore as F, useHistoryStore as G, HistoryTxType as H, useSendTransactionStore as I, useConfigStore as J, useSquidStore as K, useSwapRoutePersistStore as L, useTransactionStore as M, ConnectingWalletStatus as N, useWalletStore as O, useDepositAddress as P, QueryKeys as Q, useSwap as R, SquidStatusErrorType as S, TransactionErrorType as T, useAllConnectedWalletBalances as U, useAllTokensWithBalanceForChainType as V, WindowWalletFlag as W, XamanXrplNetwork as X, useCosmosBalance as Y, useEvmBalance as Z, useMultiChainBalance as _, chainTypeToZeroAddressMap as a, sortAllTokens as a$, useNativeBalance as a0, useNativeTokenForChain as a1, useSingleTokenPrice as a2, useSquidTokens as a3, useHistoricalData as a4, useTokensData as a5, useEstimateSendTransaction as a6, useSendTransaction as a7, useSendTransactionGas as a8, useAllTransactionsStatus as a9, FINAL_TRANSACTION_STATUSES as aA, useGetFiatQuote as aB, useGetOnRampConfig as aC, useExecuteFiatQuote as aD, useFiatOnRampTxStatus as aE, useFiatTransactions as aF, useCurrencyDetails as aG, useCountryDetails as aH, useAvailableQuotes as aI, useRecommendedQuote as aJ, useGetOnrampPaymentTypes as aK, useSuggestedFiatAmounts as aL, SquidProvider as aM, EnsService as aN, getXummClient as aO, isXamanXAppContext as aP, getQueryHeaders as aQ, getStatusCode as aR, is404Error as aS, assetsBaseUrl as aT, shareSubgraphId as aU, sortTokensBySharedSubgraphIds as aV, getSupportedChainIdsForDirection as aW, filterChains as aX, filterTokens as aY, getTokenImage as aZ, getNewSwapParamsFromInput as a_, useApproval as aa, useEstimate as ab, useEstimatePriceImpact as ac, useExecuteTransaction as ad, useGetRoute as ae, useGetRouteWrapper as af, useRouteWarnings as ag, useSendTransactionStatus as ah, useSwapTransactionStatus as ai, useAvatar as aj, useHistory as ak, useUserParams as al, useDebouncedValue as am, useAddToken as an, useAutoConnect as ao, useEnsDataForAddress as ap, useEnsSearch as aq, useGnosisContext as ar, useIsSameAddressAndGnosisContext as as, useIntegratorContext as at, useMultiChainWallet as au, useSigner as av, useWallet as aw, useWallets as ax, useXrplTrustLine as ay, TX_STATUS_CONSTANTS as az, destinationAddressResetValue as b, searchTokens as b$, findToken as b0, findNativeToken as b1, normalizeIbcAddress as b2, groupTokensBySymbol as b3, groupTokensByChainId as b4, filterViewableTokens as b5, getSecretNetworkBalances as b6, getTokenAssetsKey as b7, fetchAssetsColors as b8, initializeSquidWithAssetsColors as b9, handleTransactionErrorEvents as bA, isSwapRouteError as bB, isStatusError as bC, createQuoteRequestParamsHash as bD, WidgetEvents as bE, EvmNetworkNotSupportedErrorCode as bF, addEthereumChain as bG, parseEvmAddress as bH, formatEvmWallet as bI, filterWagmiConnector as bJ, waitForReceiptWithRetry as bK, getUserCountry as bL, getCountryData as bM, getCurrencyData as bN, adaptiveRound as bO, getSuggestedAmountsForCurrency as bP, parseToBigInt as bQ, roundNumericValue as bR, formatUnitsRounded as bS, formatTokenAmount as bT, formatUsdAmount as bU, trimExtraDecimals as bV, getNumericValue as bW, cleanAmount as bX, convertTokenAmountToUSD as bY, convertUSDToTokenAmount as bZ, calculateTotal24hChange as b_, isEmptyObject as ba, normalizeTokenSymbol as bb, areTokenSymbolsCompatible as bc, isEvmosChain as bd, getConfigWithDefaults as be, randomIntFromInterval as bf, getTokensForChain as bg, getFirstAvailableChainId as bh, fetchHighestBalanceToken as bi, getInitialOrDefaultTokenAddressForChain as bj, getInitialTokenAddressForChain as bk, filterTokensForDestination as bl, getInitialChainIdFromConfig as bm, getCosmosKey as bn, getKeysSettled as bo, getAllKeysForSupportedCosmosChains as bp, isCosmosAddressValid as bq, getCosmosSigningClient as br, getCosmosChainInfosObject as bs, connectCosmosWallet as bt, isFallbackAddressNeeded as bu, suggestChainOrThrow as bv, normalizeError as bw, transactionErrorCode as bx, isUserRejectionError as by, getTransactionError as bz, chainTypeToNativeTokenAddressMap as c, filterSolanaWallets as c0, isSolanaAddressValid as c1, executeSolanaSwap as c2, executeSolanaTransfer as c3, formatTransactionHistoryDate as c4, getAxelarExplorerTxUrl as c5, getSourceExplorerTxUrl as c6, getMainExplorerUrl as c7, formatDistance as c8, formatSeconds as c9, populateWallets as cA, getDefaultChain as cB, sortWallets as cC, areSameAddress as cD, sortAddressBook as cE, calculateTotalUsdBalanceUSD as cF, addTokenToWallet as cG, isEvmChainNotSupportedError as cH, getWalletSupportedChainTypes as cI, getConnectorForChainType as cJ, walletSupportsChainType as cK, connectWallet as cL, cancelConnectWallet as cM, isProblematicConnector as cN, mergeWallets as cO, isXionSmartContractAddress as cP, isXrplAddressValid as cQ, buildXrplTrustSetTx as cR, getXrplNetwork as cS, parseXrplPaymentTx as cT, formatSwapTxStatusResponseForStorage as ca, simplifyRouteAction as cb, fetchSwapTransactionStatus as cc, compareTransactionIds as cd, isCoralBridgeAction as ce, sleep as cf, isDepositRoute as cg, isChainflipBridgeTransaction as ch, getHistoryTransactionId as ci, getStepStatuses as cj, getHalfSuccessState as ck, getStepsInfos as cl, getSwapTxStatusRefetchInterval as cm, getSendTxStatusRefetchInterval as cn, chainflipMultihopBridgeType as co, getBridgeType as cp, getTransactionStatus as cq, getTransactionEndStatus as cr, isHistoryTransactionPending as cs, isHistoryTransactionFailed as ct, isHistoryTransactionWarning as cu, isHistoryTransactionEnded as cv, formatHash as cw, isWalletAddressValid as cx, redirectToExtensionsStore as cy, accessProperty as cz, definedInWindow as d, fallbackAddressResetValue as e, formatBNToReadable as f, nativeCosmosTokenAddress as g, nativeEvmTokenAddress as h, nativeSolanaTokenAddress as i, nativeStellarTokenAddress as j, nativeSuiTokenAddress as k, nativeXrplTokenAddress as l, CosmosProvider as m, nativeBitcoinTokenAddress as n, SendTransactionStatus as o, TransactionStatus as p, useTrackSearchEmpty as q, useSquidChains as r, useClient as s, useCosmosForChain as t, useCosmosContext as u, useKeyboardNavigation as v, walletIconBaseUrl as w, useSquidQueryClient as x, useSquid as y, useStellarAccountActivation as z };
36407
- //# sourceMappingURL=index-xi-TkXJQ.js.map
36230
+ //# sourceMappingURL=index-Dns9m27b.js.map