@0xsquid/react-hooks 8.12.0 → 8.12.1-beta-arc.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.
Files changed (32) hide show
  1. package/dist/core/constants.d.ts +1 -0
  2. package/dist/hooks/transaction/useArcFeeCheck.d.ts +5 -0
  3. package/dist/{index-CJVX-7hj.js → index-8RIq6GyB.js} +60 -6
  4. package/dist/index-8RIq6GyB.js.map +1 -0
  5. package/dist/{index-C3owE9lb.js → index-BVneqIL5.js} +60 -6
  6. package/dist/index-BVneqIL5.js.map +1 -0
  7. package/dist/{index.es-09IsADsA.js → index.es-Bm5GQH70.js} +2 -2
  8. package/dist/{index.es-09IsADsA.js.map → index.es-Bm5GQH70.js.map} +1 -1
  9. package/dist/{index.es-CTKuR0LC.js → index.es-CnV3EYrQ.js} +2 -2
  10. package/dist/{index.es-CTKuR0LC.js.map → index.es-CnV3EYrQ.js.map} +1 -1
  11. package/dist/index.esm.js +1 -1
  12. package/dist/index.js +1 -1
  13. package/dist/{secretService-GHdReJBs.js → secretService-C6GiPeC8.js} +2 -2
  14. package/dist/{secretService-GHdReJBs.js.map → secretService-C6GiPeC8.js.map} +1 -1
  15. package/dist/{secretService--tJFCkzT.js → secretService-D8ySaXvX.js} +2 -2
  16. package/dist/{secretService--tJFCkzT.js.map → secretService-D8ySaXvX.js.map} +1 -1
  17. package/dist/server.esm.js +1 -0
  18. package/dist/server.esm.js.map +1 -1
  19. package/dist/server.js +1 -0
  20. package/dist/server.js.map +1 -1
  21. package/dist/services/internal/arcService.d.ts +9 -0
  22. package/dist/{stellarService.client-DvA-2pXq.js → stellarService.client-DkBWS3eX.js} +2 -2
  23. package/dist/{stellarService.client-DvA-2pXq.js.map → stellarService.client-DkBWS3eX.js.map} +1 -1
  24. package/dist/{stellarService.client-DAxgO3m3.js → stellarService.client-IiUZ6NO6.js} +2 -2
  25. package/dist/{stellarService.client-DAxgO3m3.js.map → stellarService.client-IiUZ6NO6.js.map} +1 -1
  26. package/dist/tests/arcAssetsService.test.d.ts +1 -0
  27. package/dist/tests/arcGasAccounting.test.d.ts +1 -0
  28. package/dist/tests/fixtures/arc.d.ts +8 -0
  29. package/dist/tests/sourceChainGas.test.d.ts +1 -0
  30. package/package.json +1 -1
  31. package/dist/index-C3owE9lb.js.map +0 -1
  32. package/dist/index-CJVX-7hj.js.map +0 -1
@@ -132,6 +132,7 @@ const CHAIN_IDS = {
132
132
  MANTRA: "5888",
133
133
  CITREA: "4114",
134
134
  TEMPO: "4217",
135
+ ARC: "5042",
135
136
  // others
136
137
  BITCOIN: "bitcoin",
137
138
  SOLANA: "solana-mainnet-beta",
@@ -23637,9 +23638,9 @@ const groupTokensByChainId = (tokens, chains) => {
23637
23638
  */
23638
23639
  const filterViewableTokens = (tokens, config, direction) => {
23639
23640
  const disabledTokens = [
23640
- // On Celo, native token & custom address tokens are returned
23641
- // so we should hide the native one but keep receiving it to use gas balance
23641
+ // Both interfaces share one balance; show only the ERC20 token.
23642
23642
  { chainId: CHAIN_IDS.CELO, address: nativeEvmTokenAddress },
23643
+ { chainId: CHAIN_IDS.ARC, address: nativeEvmTokenAddress },
23643
23644
  // SagaEVM is gasless, so the native token is not used
23644
23645
  { chainId: CHAIN_IDS.SAGA_EVM, address: nativeEvmTokenAddress },
23645
23646
  { chainId: CHAIN_IDS.DCHAIN, address: nativeEvmTokenAddress },
@@ -23660,7 +23661,7 @@ const filterViewableTokens = (tokens, config, direction) => {
23660
23661
  };
23661
23662
  const getSecretNetworkBalances = async (chainData, cosmosAddress, squidTokens, keplrTypeWallet) => {
23662
23663
  const squidSecretTokens = squidTokens.filter((t) => t.chainId === CHAIN_IDS.SECRET);
23663
- const { fetchAllSecretBalances } = await import('./secretService--tJFCkzT.js');
23664
+ const { fetchAllSecretBalances } = await import('./secretService-D8ySaXvX.js');
23664
23665
  return fetchAllSecretBalances(chainData, cosmosAddress, squidSecretTokens, keplrTypeWallet);
23665
23666
  };
23666
23667
  function getTokenAssetsKey(token) {
@@ -28087,7 +28088,7 @@ function useStellarWallets() {
28087
28088
  try {
28088
28089
  const { allowAllModules: initializeAllModules } = await import('@creit.tech/stellar-wallets-kit');
28089
28090
  const { LedgerModule } = await import('@creit.tech/stellar-wallets-kit/modules/ledger.module.mjs');
28090
- const { formatStellarWallet } = await import('./stellarService.client-DAxgO3m3.js');
28091
+ const { formatStellarWallet } = await import('./stellarService.client-IiUZ6NO6.js');
28091
28092
  const modules = [...initializeAllModules(), new LedgerModule()];
28092
28093
  const promises = modules.map(async (module) => {
28093
28094
  const isAvailable = await module.isAvailable();
@@ -31534,7 +31535,7 @@ function hederaWalletConnect(parameters) {
31534
31535
  const optionalChains = config.chains.map((x) => x.id);
31535
31536
  if (!optionalChains.length)
31536
31537
  return;
31537
- const { EthereumProvider } = await import('./index.es-09IsADsA.js');
31538
+ const { EthereumProvider } = await import('./index.es-Bm5GQH70.js');
31538
31539
  const rawProvider = await EthereumProvider.init({
31539
31540
  ...restParameters,
31540
31541
  disableProviderPing: true,
@@ -32758,6 +32759,12 @@ const isTempoChain = (chainId) => chainId === CHAIN_IDS.TEMPO;
32758
32759
  */
32759
32760
  const convertTempoFeeToStablecoinUnits = (feeIn18Dec) => feeIn18Dec / BigInt(10 ** 12);
32760
32761
 
32762
+ const arcUsdcTokenAddress = "0x3600000000000000000000000000000000000000";
32763
+ const isArcChain = (chainId) => chainId === CHAIN_IDS.ARC;
32764
+ const isArcUsdcToken = (token) => isArcChain(token?.chainId) &&
32765
+ token?.address.toLowerCase() === arcUsdcTokenAddress;
32766
+ const convertArcGasToUsdcUnits = (fee) => (fee + 10n ** 12n - 1n) / 10n ** 12n;
32767
+
32761
32768
  const DEFAULT_REFRESH_INTERVAL_MS = 15000;
32762
32769
  /**
32763
32770
  * Returns raw on-chain gas token data for Tempo chains, or null when the source
@@ -32824,6 +32831,30 @@ const useTempoFeeCheck = ({ fromChain, fromToken, }) => {
32824
32831
  };
32825
32832
  };
32826
32833
 
32834
+ const useArcFeeCheck = ({ fromChain, }) => {
32835
+ const { connectedAddresses } = useWallet();
32836
+ const { evmTokens } = useSquidTokens();
32837
+ const isArc = isArcChain(fromChain?.chainId);
32838
+ const gasToken = useMemo(() => {
32839
+ if (!isArc)
32840
+ return undefined;
32841
+ return evmTokens.find(isArcUsdcToken);
32842
+ }, [isArc, evmTokens]);
32843
+ const userAddress = connectedAddresses[ChainType.EVM];
32844
+ const { balance, isLoading } = useEvmBalance({
32845
+ chain: fromChain,
32846
+ token: gasToken,
32847
+ userAddress,
32848
+ enabled: isArc && !!gasToken,
32849
+ });
32850
+ if (!isArc || !gasToken || !userAddress || isLoading)
32851
+ return null;
32852
+ return {
32853
+ gasTokenAddress: gasToken.address,
32854
+ gasBalance: parseToBigInt(balance, gasToken.decimals),
32855
+ };
32856
+ };
32857
+
32827
32858
  /**
32828
32859
  * Hook that returns the gas token and chain fee params for a given source chain and token.
32829
32860
  */
@@ -32832,6 +32863,7 @@ function useSourceChainGasToken({ fromChain, fromToken, }) {
32832
32863
  const { evmTokens } = useSquidTokens();
32833
32864
  const { nativeBalance } = useNativeBalance(fromChain);
32834
32865
  const tempoFeeData = useTempoFeeCheck({ fromChain, fromToken });
32866
+ const arcFeeData = useArcFeeCheck({ fromChain });
32835
32867
  const chainFeeParams = useMemo(() => {
32836
32868
  if (fromToken?.address == null ||
32837
32869
  fromChain?.chainId == null ||
@@ -32849,6 +32881,17 @@ function useSourceChainGasToken({ fromChain, fromToken, }) {
32849
32881
  normalizeFee: convertTempoFeeToStablecoinUnits,
32850
32882
  };
32851
32883
  }
32884
+ if (isArcChain(fromChain.chainId)) {
32885
+ if (!arcFeeData)
32886
+ return null;
32887
+ const fromTokenPaysGasFees = arcFeeData.gasTokenAddress.toLowerCase() ===
32888
+ fromToken.address.toLowerCase();
32889
+ return {
32890
+ fromTokenPaysGasFees,
32891
+ gasTokenBalanceWei: arcFeeData.gasBalance,
32892
+ normalizeFee: (fee) => fee,
32893
+ };
32894
+ }
32852
32895
  return {
32853
32896
  fromTokenPaysGasFees: fromToken.address.toLowerCase() ===
32854
32897
  chainTypeToNativeTokenAddressMap[fromToken.type].toLowerCase(),
@@ -32861,6 +32904,7 @@ function useSourceChainGasToken({ fromChain, fromToken, }) {
32861
32904
  fromChain?.chainId,
32862
32905
  nativeBalance?.value,
32863
32906
  tempoFeeData,
32907
+ arcFeeData,
32864
32908
  ]);
32865
32909
  /**
32866
32910
  * The token to pay for gas on the source chain.
@@ -32874,12 +32918,19 @@ function useSourceChainGasToken({ fromChain, fromToken, }) {
32874
32918
  return evmTokens.find((t) => t.chainId === fromChain.chainId &&
32875
32919
  t.address.toLowerCase() === tempoFeeData.gasTokenAddress.toLowerCase());
32876
32920
  }
32921
+ if (isArcChain(fromChain.chainId)) {
32922
+ if (!arcFeeData)
32923
+ return undefined;
32924
+ return evmTokens.find((t) => t.chainId === fromChain.chainId &&
32925
+ t.address.toLowerCase() === arcFeeData.gasTokenAddress.toLowerCase());
32926
+ }
32877
32927
  return nativeToken;
32878
32928
  }, [
32879
32929
  fromChain?.chainId,
32880
32930
  fromToken?.address,
32881
32931
  nativeToken,
32882
32932
  tempoFeeData,
32933
+ arcFeeData,
32883
32934
  evmTokens,
32884
32935
  ]);
32885
32936
  return { gasToken, chainFeeParams };
@@ -33236,6 +33287,9 @@ function useSendTransactionGas({ chain, token, from, }) {
33236
33287
  if (chain.chainId === CHAIN_IDS.TEMPO) {
33237
33288
  return convertTempoFeeToStablecoinUnits(feeWei);
33238
33289
  }
33290
+ if (isArcChain(chain.chainId)) {
33291
+ return convertArcGasToUsdcUnits(feeWei);
33292
+ }
33239
33293
  return feeWei;
33240
33294
  }
33241
33295
  case ChainType.COSMOS: {
@@ -39174,4 +39228,4 @@ const SquidProvider = ({ children, config, placeholder, }) => {
39174
39228
  };
39175
39229
 
39176
39230
  export { useWalletStore as $, AxelarStatusResponseType as A, useHederaAccountActivation as B, CHAIN_IDS as C, DEFAULT_LOCALE as D, useHederaTokenAssociations as E, useKeyboardNavigation as F, useSquidQueryClient as G, HistoryTxType as H, useSquid as I, useStellarAccountActivation as J, useStellarTrustLine as K, useAddressBookStore as L, useAssetsColorsStore as M, Nr as N, useFavoriteTokensStore as O, useHistoryStore as P, QueryKeys as Q, useSendTransactionStore as R, SquidStatusErrorType as S, TransactionErrorType as T, useConfigStore as U, useSquidStore as V, Wo as W, XamanXrplNetwork as X, useSwapRoutePersistStore as Y, useTransactionStore as Z, ConnectingWalletStatus as _, WindowWalletFlag as a, useAvailableQuotes as a$, useDepositAddress as a0, useSwap as a1, buildUrlSearchParamsFromSwapEvent as a2, parseInitialAssetsFromUrl as a3, useUrlSwapParams as a4, useAllConnectedWalletBalances as a5, useAllTokensWithBalanceForChainType as a6, useCosmosBalance as a7, useEvmBalance as a8, useMultiChainBalance as a9, useRouteWarnings as aA, useSendTransactionStatus as aB, useSwapTransactionStatus as aC, useAvatar as aD, useHistory as aE, useDebouncedValue as aF, useAddToken as aG, useAutoConnect as aH, useEnsDataForAddress as aI, useEnsSearch as aJ, useGnosisContext as aK, useIsSameAddressAndGnosisContext as aL, useIntegratorContext as aM, useMultiChainWallet as aN, useSigner as aO, useWallet as aP, useWallets as aQ, useXrplTrustLine as aR, TX_STATUS_CONSTANTS as aS, FINAL_TRANSACTION_STATUSES as aT, useGetFiatQuote as aU, useGetOnRampConfig as aV, useExecuteFiatQuote as aW, useFiatOnRampTxStatus as aX, useFiatTransactions as aY, useCurrencyDetails as aZ, useCountryDetails as a_, useMultipleTokenPrices as aa, useBitcoinNativeBalance as ab, useCosmosNativeBalance as ac, useEvmNativeBalance as ad, useNativeBalance as ae, useSolanaNativeBalance as af, useStellarNativeBalance as ag, useSuiNativeBalance as ah, useXrplNativeBalance as ai, useNativeTokenForChain as aj, useSingleTokenPrice as ak, useSourceChainGasToken as al, useSquidTokens as am, useHistoricalData as an, useTokensData as ao, useEstimateSendTransaction as ap, useSendTransaction as aq, useSendTransactionGas as ar, useAllTransactionsStatus as as, useApproval as at, useDepositTransactionStatus as au, useEstimate as av, useEstimatePriceImpact as aw, useExecuteTransaction as ax, useGetRoute as ay, useGetRouteWrapper as az, DEFAULT_ROUTE_REFETCH_INTERVAL as b, addEthereumChain as b$, useRecommendedQuote as b0, useGetOnrampPaymentTypes as b1, useSuggestedFiatAmounts as b2, SquidProvider as b3, EnsService as b4, getXummClient as b5, isXamanXAppContext as b6, getQueryHeaders as b7, getStatusCode as b8, is404Error as b9, randomIntFromInterval as bA, getTokensForChain as bB, getFirstAvailableChainId as bC, fetchHighestBalanceToken as bD, getInitialOrDefaultTokenAddressForChain as bE, getInitialTokenAddressForChain as bF, filterTokensForDestination as bG, getInitialChainIdFromConfig as bH, getCosmosKey as bI, getKeysSettled as bJ, getAllKeysForSupportedCosmosChains as bK, isCosmosAddressValid as bL, getCosmosSigningClient as bM, getCosmosChainInfosObject as bN, connectCosmosWallet as bO, isFallbackAddressNeeded as bP, suggestChainOrThrow as bQ, normalizeError as bR, transactionErrorCode as bS, isUserRejectionError as bT, getTransactionError as bU, handleTransactionErrorEvents as bV, isSwapRouteError as bW, isStatusError as bX, createQuoteRequestParamsHash as bY, WidgetEvents as bZ, EvmNetworkNotSupportedErrorCode as b_, assetsBaseUrl as ba, shareSubgraphId as bb, sortTokensBySharedSubgraphIds as bc, getSupportedChainIdsForDirection as bd, filterChains as be, filterTokens as bf, getTokenImage as bg, getNewSwapParamsFromInput as bh, sortAllTokens as bi, findToken as bj, findNativeToken as bk, normalizeIbcAddress as bl, groupTokensBySymbol as bm, groupTokensByChainId as bn, filterViewableTokens as bo, getSecretNetworkBalances as bp, getTokenAssetsKey as bq, fetchAssetsColors as br, isSupportedChainType as bs, initializeSquidData as bt, isEmptyObject as bu, normalizeTokenSymbol as bv, areTokenSymbolsCompatible as bw, isEvmosChain as bx, resolveChainIdFromAsset as by, getConfigWithDefaults as bz, chainTypeToNativeTokenAddressMap as c, chainflipMultihopBridgeType as c$, parseEvmAddress as c0, formatEvmWallet as c1, filterWagmiConnector as c2, waitForReceiptWithRetry as c3, getUserCountry as c4, getCountryData as c5, getCurrencyData as c6, adaptiveRound as c7, getSuggestedAmountsForCurrency as c8, HederaExtensionHelper as c9, isStellarIssuedToken as cA, getStellarHorizonApiUrl as cB, isValidIssuedAsset as cC, isValidHorizonAsset as cD, formatTransactionHistoryDate as cE, getAxelarExplorerTxUrl as cF, getSourceExplorerTxUrl as cG, getMainExplorerUrl as cH, formatDistance as cI, formatSeconds as cJ, formatSwapTxStatusResponseForStorage as cK, simplifyRouteAction as cL, fetchSwapTransactionStatus as cM, compareTransactionIds as cN, isCoralBridgeAction as cO, isActionCompletedOnSourceTx as cP, sleep as cQ, isChainflipDepositRoute as cR, isChainflipBridgeTransaction as cS, isOnChainTxData as cT, isDepositAddressDirectTransferRoute as cU, getHistoryTransactionId as cV, getStepStatuses as cW, getHalfSuccessState as cX, getStepsInfos as cY, getSwapTxStatusRefetchInterval as cZ, getSendTxStatusRefetchInterval as c_, convertHederaAccountIdToEvmAddress as ca, convertEvmAddressToHederaAccountId as cb, scaleHbarToWei as cc, scaleWeiToHbar as cd, parseToBigInt as ce, roundNumericValue as cf, formatUnitsRounded as cg, formatTokenAmount as ch, formatUsdAmount as ci, trimExtraDecimals as cj, getNumericValue as ck, cleanAmount as cl, convertTokenAmountToUSD as cm, convertUSDToTokenAmount as cn, calculateTotal24hChange as co, getRouteExpiry as cp, searchTokens as cq, filterSolanaWallets as cr, isSolanaAddressValid as cs, executeSolanaSwap as ct, executeSolanaTransfer as cu, isStellarAddressValid as cv, getStellarNetwork as cw, stellarAddressToScVal as cx, getStellarTrustLineAsset as cy, isStellarToken as cz, definedInWindow as d, getBridgeType as d0, getTransactionStatus as d1, getTransactionEndStatus as d2, isHistoryTransactionPending as d3, isHistoryTransactionFailed as d4, isHistoryTransactionWarning as d5, isHistoryTransactionEnded as d6, formatHash as d7, isWalletAddressValid as d8, redirectToExtensionsStore as d9, populateWallets as da, buildFallbackWallets as db, getDefaultChain as dc, sortWallets as dd, areSameAddress as de, sortAddressBook as df, calculateTotalUsdBalanceUSD as dg, addTokenToWallet as dh, isEvmChainNotSupportedError as di, getWalletSupportedChainTypes as dj, getConnectorForChainType as dk, walletSupportsChainType as dl, connectWallet as dm, cancelConnectWallet as dn, isProblematicConnector as dp, mergeWallets as dq, isXionSmartContractAddress as dr, isXrplAddressValid as ds, buildXrplTrustSetTx as dt, getXrplNetwork as du, parseXrplPaymentTx as dv, parseXrplTokenAddress as dw, er as e, formatBNToReadable as f, chainTypeToZeroAddressMap as g, destinationAddressResetValue as h, fallbackAddressResetValue as i, nativeCantonTokenAddress as j, nativeCosmosTokenAddress as k, nativeEvmTokenAddress as l, nativeSolanaTokenAddress as m, nativeBitcoinTokenAddress as n, nativeStellarTokenAddress as o, nativeSuiTokenAddress as p, nativeXrplTokenAddress as q, CosmosProvider as r, SendTransactionStatus as s, TransactionStatus as t, useCosmosContext as u, useTrackSearchEmpty as v, walletIconBaseUrl as w, useSquidChains as x, useClient as y, useCosmosForChain as z };
39177
- //# sourceMappingURL=index-C3owE9lb.js.map
39231
+ //# sourceMappingURL=index-BVneqIL5.js.map