@0xsquid/react-hooks 8.12.1-beta-arc.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.
- package/dist/hooks/transaction/send/useEstimateSendTransactionGas.d.ts +0 -3
- package/dist/hooks/transaction/useArcFeeCheck.d.ts +5 -0
- package/dist/{index-BBJD55XX.js → index-8RIq6GyB.js} +127 -368
- package/dist/index-8RIq6GyB.js.map +1 -0
- package/dist/{index-CLzjMzS_.js → index-BVneqIL5.js} +128 -367
- package/dist/index-BVneqIL5.js.map +1 -0
- package/dist/{index.es-BiK_wjSb.js → index.es-Bm5GQH70.js} +2 -2
- package/dist/{index.es-BiK_wjSb.js.map → index.es-Bm5GQH70.js.map} +1 -1
- package/dist/{index.es-BVCh4tlV.js → index.es-CnV3EYrQ.js} +2 -2
- package/dist/{index.es-BVCh4tlV.js.map → index.es-CnV3EYrQ.js.map} +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1 -3
- package/dist/index.js.map +1 -1
- package/dist/{secretService-BZ06HTOJ.js → secretService-C6GiPeC8.js} +2 -2
- package/dist/{secretService-BZ06HTOJ.js.map → secretService-C6GiPeC8.js.map} +1 -1
- package/dist/{secretService-DkE9yz1o.js → secretService-D8ySaXvX.js} +2 -2
- package/dist/{secretService-DkE9yz1o.js.map → secretService-D8ySaXvX.js.map} +1 -1
- package/dist/services/internal/arcService.d.ts +5 -3
- package/dist/services/internal/assetsService.d.ts +2 -8
- package/dist/services/internal/configService.d.ts +3 -14
- package/dist/services/internal/estimateService.d.ts +2 -12
- package/dist/services/internal/tempoService.d.ts +0 -2
- package/dist/services/internal/walletService.d.ts +1 -1
- package/dist/{stellarService.client-fnyXRadt.js → stellarService.client-DkBWS3eX.js} +2 -2
- package/dist/{stellarService.client-fnyXRadt.js.map → stellarService.client-DkBWS3eX.js.map} +1 -1
- package/dist/{stellarService.client-DtA9zkRt.js → stellarService.client-IiUZ6NO6.js} +2 -2
- package/dist/{stellarService.client-DtA9zkRt.js.map → stellarService.client-IiUZ6NO6.js.map} +1 -1
- package/package.json +1 -1
- package/dist/index-BBJD55XX.js.map +0 -1
- package/dist/index-CLzjMzS_.js.map +0 -1
- package/dist/tests/arcWalletService.test.d.ts +0 -1
- package/dist/tests/useArcApproval.test.d.ts +0 -1
- package/dist/tests/useArcSendEstimate.test.d.ts +0 -1
- package/dist/tests/useNativeTokenForChain.test.d.ts +0 -1
- package/dist/tests/useSwapArcSelection.test.d.ts +0 -1
- /package/dist/tests/{arcConfigService.test.d.ts → sourceChainGas.test.d.ts} +0 -0
|
@@ -20944,24 +20944,6 @@ const isBitcoinAddressValid = (address$1) => {
|
|
|
20944
20944
|
}
|
|
20945
20945
|
};
|
|
20946
20946
|
|
|
20947
|
-
const arcUsdcTokenAddress = "0x3600000000000000000000000000000000000000";
|
|
20948
|
-
const isArcChain = (chainId) => chainId === CHAIN_IDS.ARC;
|
|
20949
|
-
const isArcUsdcToken = (token) => isArcChain(token?.chainId) &&
|
|
20950
|
-
token?.address.toLowerCase() === arcUsdcTokenAddress;
|
|
20951
|
-
const isArcNativeToken = (token) => isArcChain(token?.chainId) &&
|
|
20952
|
-
token?.address.toLowerCase() === nativeEvmTokenAddress;
|
|
20953
|
-
const normalizeArcTokenAddress = (chainId, address) => isArcChain(chainId) && address?.toLowerCase() === nativeEvmTokenAddress
|
|
20954
|
-
? arcUsdcTokenAddress
|
|
20955
|
-
: address;
|
|
20956
|
-
const deduplicateArcBalances = (tokens) => {
|
|
20957
|
-
const canonicalChains = new Set(tokens
|
|
20958
|
-
.filter((token) => isArcChain(token.chainId) &&
|
|
20959
|
-
token.address?.toLowerCase() === arcUsdcTokenAddress)
|
|
20960
|
-
.map((token) => token.chainId));
|
|
20961
|
-
return tokens.filter((token) => !(canonicalChains.has(token.chainId) &&
|
|
20962
|
-
token.address?.toLowerCase() === nativeEvmTokenAddress));
|
|
20963
|
-
};
|
|
20964
|
-
|
|
20965
20947
|
function getCantonCommandId(memo) {
|
|
20966
20948
|
return `canton-${memo}`;
|
|
20967
20949
|
}
|
|
@@ -22198,7 +22180,7 @@ function sortAddressBook(a, b, selectedAddress) {
|
|
|
22198
22180
|
return 0;
|
|
22199
22181
|
}
|
|
22200
22182
|
const calculateTotalUsdBalanceUSD = (tokens) => {
|
|
22201
|
-
const totalUsd =
|
|
22183
|
+
const totalUsd = tokens.reduce((total, token) => {
|
|
22202
22184
|
const balance = parseFloat(token.balance);
|
|
22203
22185
|
const usdPrice = token.usdPrice ?? 0;
|
|
22204
22186
|
const balanceUsd = balance * usdPrice;
|
|
@@ -23010,36 +22992,22 @@ const getFirstAvailableChainId = (config, direction, chains = []) => {
|
|
|
23010
22992
|
// if no initial chain ID is found in config, return the first available chain ID
|
|
23011
22993
|
return availableChains.length > 0 ? availableChains[0].chainId : undefined;
|
|
23012
22994
|
};
|
|
23013
|
-
const fetchHighestBalanceToken = (fetchCachedBalance, chainId
|
|
22995
|
+
const fetchHighestBalanceToken = (fetchCachedBalance, chainId) => {
|
|
23014
22996
|
let address = undefined;
|
|
23015
22997
|
if (fetchCachedBalance) {
|
|
23016
22998
|
const queryCache = fetchCachedBalance?.queryClient?.getQueryCache();
|
|
23017
|
-
const directionCache = isArcChain(chainId) && direction
|
|
23018
|
-
? queryCache?.find(keys().allTokensBalance(fetchCachedBalance.address, ChainType.EVM, direction))
|
|
23019
|
-
: undefined;
|
|
23020
22999
|
// get cached balance from key
|
|
23021
|
-
const cache =
|
|
23022
|
-
|
|
23023
|
-
|
|
23024
|
-
const cacheData = cache?.state.data;
|
|
23025
|
-
const cacheResult = Array.isArray(cacheData)
|
|
23026
|
-
? cacheData
|
|
23027
|
-
: isArcChain(chainId)
|
|
23028
|
-
? (cacheData?.tokens ?? [])
|
|
23029
|
-
: [];
|
|
23000
|
+
const cache = queryCache?.find(keys().allTokensBalance(fetchCachedBalance?.address, !isNaN(Number(chainId)) ? ChainType.EVM : ChainType.COSMOS));
|
|
23001
|
+
// Parse result to TokenWithBalance[]
|
|
23002
|
+
const cacheResult = cache?.state.data ?? [];
|
|
23030
23003
|
if (cacheResult.length > 0) {
|
|
23031
|
-
const tokensWithBalance =
|
|
23032
|
-
Number(t.balance) > 0 &&
|
|
23033
|
-
(!selectableTokens ||
|
|
23034
|
-
selectableTokens.some((token) => token.chainId === t.chainId &&
|
|
23035
|
-
token.address.toLowerCase() ===
|
|
23036
|
-
normalizeArcTokenAddress(t.chainId, t.address)?.toLowerCase())));
|
|
23004
|
+
const tokensWithBalance = cacheResult.filter((t) => t.chainId === chainId && Number(t.balance) > 0);
|
|
23037
23005
|
if (tokensWithBalance.length > 0) {
|
|
23038
23006
|
// Return the token with the highest balance
|
|
23039
23007
|
// TODO: At the moment we're not taking into account usd price
|
|
23040
23008
|
const tokenWithHighestBalance = tokensWithBalance.reduce((prev, current) => Number(prev.balance) > Number(current.balance) ? prev : current);
|
|
23041
23009
|
if (tokenWithHighestBalance) {
|
|
23042
|
-
address =
|
|
23010
|
+
address = tokenWithHighestBalance.address;
|
|
23043
23011
|
}
|
|
23044
23012
|
}
|
|
23045
23013
|
}
|
|
@@ -23050,21 +23018,6 @@ const findNativeTokenForChainType = (tokens) => {
|
|
|
23050
23018
|
return tokens.find((t) => t.address.toLowerCase() ===
|
|
23051
23019
|
chainTypeToNativeTokenAddressMap[t.type].toLowerCase());
|
|
23052
23020
|
};
|
|
23053
|
-
const getTokenAddressForSelection = ({ tokens, config, chainId, address, direction, excludeToken, }) => {
|
|
23054
|
-
if (!isArcChain(chainId))
|
|
23055
|
-
return address;
|
|
23056
|
-
const normalizedAddress = normalizeArcTokenAddress(chainId, address);
|
|
23057
|
-
const excludedAddress = normalizeArcTokenAddress(excludeToken?.chainId, excludeToken?.address);
|
|
23058
|
-
if (!chainId ||
|
|
23059
|
-
!normalizedAddress ||
|
|
23060
|
-
(excludeToken?.chainId === chainId &&
|
|
23061
|
-
normalizedAddress.toLowerCase() === excludedAddress?.toLowerCase()) ||
|
|
23062
|
-
!getSupportedChainIdsForDirection([chainId], config, direction).includes(chainId)) {
|
|
23063
|
-
return undefined;
|
|
23064
|
-
}
|
|
23065
|
-
return filterViewableTokens(tokens, config, direction).find((token) => token.chainId === chainId &&
|
|
23066
|
-
token.address.toLowerCase() === normalizedAddress.toLowerCase())?.address;
|
|
23067
|
-
};
|
|
23068
23021
|
/**
|
|
23069
23022
|
* Returns the default token address for a specific chain and direction based on config.
|
|
23070
23023
|
* If no default tokens are set in config, returns the native token for the specified chain
|
|
@@ -23082,25 +23035,6 @@ const getInitialOrDefaultTokenAddressForChain = ({ tokens, config, chainId, dire
|
|
|
23082
23035
|
const supportedChainIds = getSupportedChainIdsForDirection([chainId], config, direction);
|
|
23083
23036
|
if (!supportedChainIds.includes(chainId))
|
|
23084
23037
|
return;
|
|
23085
|
-
if (isArcChain(chainId)) {
|
|
23086
|
-
const selectAddress = (address) => getTokenAddressForSelection({
|
|
23087
|
-
tokens,
|
|
23088
|
-
config,
|
|
23089
|
-
chainId,
|
|
23090
|
-
address,
|
|
23091
|
-
direction,
|
|
23092
|
-
excludeToken,
|
|
23093
|
-
});
|
|
23094
|
-
const selectableTokens = tokens.filter((token) => token.chainId === chainId &&
|
|
23095
|
-
!isArcNativeToken(token) &&
|
|
23096
|
-
selectAddress(token.address) !== undefined);
|
|
23097
|
-
return (selectAddress(config.defaultTokensPerChain?.find((token) => token.chainId === chainId)
|
|
23098
|
-
?.address) ??
|
|
23099
|
-
selectAddress(getInitialTokenAddressForChain({ tokens, config, chainId, direction })) ??
|
|
23100
|
-
selectAddress(fetchHighestBalanceToken(fetchCachedBalance, chainId, selectableTokens, direction)) ??
|
|
23101
|
-
selectAddress(arcUsdcTokenAddress) ??
|
|
23102
|
-
selectableTokens[0]?.address);
|
|
23103
|
-
}
|
|
23104
23038
|
const configDefaultTokenForChain = config.defaultTokensPerChain?.find((token) => token.chainId == chainId);
|
|
23105
23039
|
// get default token from config
|
|
23106
23040
|
if (configDefaultTokenForChain &&
|
|
@@ -23144,23 +23078,6 @@ const getInitialTokenAddressForChain = ({ chainId, config, direction, tokens, un
|
|
|
23144
23078
|
const initialAsset = config.initialAssets?.[direction];
|
|
23145
23079
|
if (!initialAsset)
|
|
23146
23080
|
return undefined;
|
|
23147
|
-
if (isArcChain(chainId)) {
|
|
23148
|
-
const address = isNamedTokenConfig(initialAsset)
|
|
23149
|
-
? tokens.find((token) => token.chainId === chainId &&
|
|
23150
|
-
!isArcNativeToken(token) &&
|
|
23151
|
-
token.symbol.toLowerCase() === initialAsset.symbol?.toLowerCase())?.address
|
|
23152
|
-
: initialAsset.chainId === chainId
|
|
23153
|
-
? initialAsset.address
|
|
23154
|
-
: undefined;
|
|
23155
|
-
return getTokenAddressForSelection({
|
|
23156
|
-
tokens,
|
|
23157
|
-
config,
|
|
23158
|
-
chainId,
|
|
23159
|
-
address,
|
|
23160
|
-
direction,
|
|
23161
|
-
excludeToken: { chainId, address: unavailableTokenAddress },
|
|
23162
|
-
});
|
|
23163
|
-
}
|
|
23164
23081
|
if (isNamedTokenConfig(initialAsset)) {
|
|
23165
23082
|
if (!initialAsset.symbol)
|
|
23166
23083
|
return undefined;
|
|
@@ -23375,39 +23292,7 @@ const handleDestinationAddressOnSwapChange = ({ fromChainId, fromTokenAddress, t
|
|
|
23375
23292
|
if (destinationTokensFiltered.find((t) => t.address === lowerCaseDestinationTokenAddress) === undefined) {
|
|
23376
23293
|
destinationTokenAddress = defaultToAddress;
|
|
23377
23294
|
}
|
|
23378
|
-
return
|
|
23379
|
-
? destinationTokenAddress?.toLowerCase()
|
|
23380
|
-
: lowerCaseDestinationTokenAddress;
|
|
23381
|
-
};
|
|
23382
|
-
const normalizeSwapParamsForSelection = ({ swapParams, tokens, chains, config, }) => {
|
|
23383
|
-
const fromTokenAddress = getTokenAddressForSelection({
|
|
23384
|
-
tokens,
|
|
23385
|
-
config,
|
|
23386
|
-
chainId: swapParams.fromChainId,
|
|
23387
|
-
address: swapParams.fromTokenAddress,
|
|
23388
|
-
direction: "from",
|
|
23389
|
-
});
|
|
23390
|
-
const fromToken = tokens.find((token) => token.chainId === swapParams.fromChainId &&
|
|
23391
|
-
token.address.toLowerCase() === fromTokenAddress?.toLowerCase());
|
|
23392
|
-
const toTokenAddress = getTokenAddressForSelection({
|
|
23393
|
-
tokens: isArcChain(swapParams.toChainId)
|
|
23394
|
-
? filterTokensForDestination({
|
|
23395
|
-
tokens,
|
|
23396
|
-
selectedDestinationChain: chains.find((chain) => chain.chainId === swapParams.toChainId),
|
|
23397
|
-
selectedSourceToken: fromToken,
|
|
23398
|
-
removeSourceToken: true,
|
|
23399
|
-
})
|
|
23400
|
-
: tokens,
|
|
23401
|
-
config,
|
|
23402
|
-
chainId: swapParams.toChainId,
|
|
23403
|
-
address: swapParams.toTokenAddress,
|
|
23404
|
-
direction: "to",
|
|
23405
|
-
excludeToken: {
|
|
23406
|
-
chainId: swapParams.fromChainId,
|
|
23407
|
-
address: fromTokenAddress,
|
|
23408
|
-
},
|
|
23409
|
-
});
|
|
23410
|
-
return { ...swapParams, fromTokenAddress, toTokenAddress };
|
|
23295
|
+
return lowerCaseDestinationTokenAddress;
|
|
23411
23296
|
};
|
|
23412
23297
|
/**
|
|
23413
23298
|
* When user changes something from the SwapView
|
|
@@ -23419,19 +23304,10 @@ const normalizeSwapParamsForSelection = ({ swapParams, tokens, chains, config, }
|
|
|
23419
23304
|
* If only destination token is changed but source is not, and they were the same, then source token updates to something else
|
|
23420
23305
|
*
|
|
23421
23306
|
*/
|
|
23422
|
-
const getNewSwapParamsFromInput = ({ inputParams, initialSwapRoute
|
|
23423
|
-
const
|
|
23424
|
-
? {
|
|
23425
|
-
...storedSwapRoute,
|
|
23426
|
-
fromTokenAddress: normalizeArcTokenAddress(storedSwapRoute.fromChainId, storedSwapRoute.fromTokenAddress),
|
|
23427
|
-
toTokenAddress: normalizeArcTokenAddress(storedSwapRoute.toChainId, storedSwapRoute.toTokenAddress),
|
|
23428
|
-
}
|
|
23429
|
-
: undefined;
|
|
23430
|
-
const { fromChainId, toChainId, destinationAddress, fallbackAddress, depositRefundAddress, } = inputParams;
|
|
23307
|
+
const getNewSwapParamsFromInput = ({ inputParams, initialSwapRoute, tokens, chains, config, queryClient, connectedSourceAddress, }) => {
|
|
23308
|
+
const { fromChainId, fromTokenAddress, toChainId, toTokenAddress, destinationAddress, fallbackAddress, depositRefundAddress, } = inputParams;
|
|
23431
23309
|
const srcChainId = fromChainId ?? initialSwapRoute?.fromChainId;
|
|
23432
23310
|
const destinationChainId = toChainId ?? initialSwapRoute?.toChainId;
|
|
23433
|
-
const fromTokenAddress = normalizeArcTokenAddress(srcChainId, inputParams.fromTokenAddress);
|
|
23434
|
-
const toTokenAddress = normalizeArcTokenAddress(destinationChainId, inputParams.toTokenAddress);
|
|
23435
23311
|
const defaultFromAddress = getInitialOrDefaultTokenAddressForChain({
|
|
23436
23312
|
tokens,
|
|
23437
23313
|
config,
|
|
@@ -23507,20 +23383,15 @@ const getNewSwapParamsFromInput = ({ inputParams, initialSwapRoute: storedSwapRo
|
|
|
23507
23383
|
const newDepositRefundAddress = sourceChainChanged
|
|
23508
23384
|
? undefined
|
|
23509
23385
|
: depositRefundAddress || initialSwapRoute?.depositRefundAddress;
|
|
23510
|
-
return
|
|
23511
|
-
|
|
23512
|
-
|
|
23513
|
-
|
|
23514
|
-
|
|
23515
|
-
|
|
23516
|
-
|
|
23517
|
-
|
|
23518
|
-
|
|
23519
|
-
},
|
|
23520
|
-
tokens,
|
|
23521
|
-
chains,
|
|
23522
|
-
config,
|
|
23523
|
-
});
|
|
23386
|
+
return {
|
|
23387
|
+
fromChainId: srcChainId,
|
|
23388
|
+
fromTokenAddress: sourceTokenAddress,
|
|
23389
|
+
toChainId: destinationChainId,
|
|
23390
|
+
toTokenAddress: destinationTokenAddress,
|
|
23391
|
+
destinationAddress: newDestinationAddress,
|
|
23392
|
+
fallbackAddress: newFallbackAddress,
|
|
23393
|
+
depositRefundAddress: newDepositRefundAddress,
|
|
23394
|
+
};
|
|
23524
23395
|
};
|
|
23525
23396
|
/* Sorts tokens based on the following order:
|
|
23526
23397
|
* 1. Native token on chain ID "1" (Ethereum) comes first.
|
|
@@ -23578,10 +23449,8 @@ const sortAllTokens = (tokenA, tokenB) => {
|
|
|
23578
23449
|
return 0;
|
|
23579
23450
|
};
|
|
23580
23451
|
const findToken = (tokens, chainId, address) => tokens.find((t) => t.chainId === chainId && t.address === address);
|
|
23581
|
-
const findNativeToken = (tokens, chain) => tokens.find((t) => t.
|
|
23582
|
-
|
|
23583
|
-
? isArcNativeToken(t)
|
|
23584
|
-
: t.symbol.toUpperCase() === chain.nativeCurrency.symbol.toUpperCase()));
|
|
23452
|
+
const findNativeToken = (tokens, chain) => tokens.find((t) => t.symbol.toUpperCase() === chain.nativeCurrency.symbol.toUpperCase() &&
|
|
23453
|
+
t.chainId == chain.chainId);
|
|
23585
23454
|
const normalizeIbcAddress = (address) => {
|
|
23586
23455
|
if (!address.toLowerCase().startsWith("ibc/")) {
|
|
23587
23456
|
return address;
|
|
@@ -23651,7 +23520,9 @@ function selectGroupDefaultInfo(tokens) {
|
|
|
23651
23520
|
const groupTokensBySymbol = (tokens, chainType) => {
|
|
23652
23521
|
const groups = {};
|
|
23653
23522
|
// Filter tokens by chain type if specified
|
|
23654
|
-
const filteredTokens =
|
|
23523
|
+
const filteredTokens = chainType
|
|
23524
|
+
? tokens.filter((token) => token.type === chainType)
|
|
23525
|
+
: tokens;
|
|
23655
23526
|
// First pass: group by coingeckoId or symbol
|
|
23656
23527
|
filteredTokens.forEach((token) => {
|
|
23657
23528
|
const groupKey = token.coingeckoId || token.symbol.split(".")[0];
|
|
@@ -23727,7 +23598,7 @@ const groupTokensBySymbol = (tokens, chainType) => {
|
|
|
23727
23598
|
*/
|
|
23728
23599
|
const groupTokensByChainId = (tokens, chains) => {
|
|
23729
23600
|
const groups = {};
|
|
23730
|
-
|
|
23601
|
+
tokens.forEach((token) => {
|
|
23731
23602
|
const chainData = chains.find((chain) => chain.chainId === token.chainId);
|
|
23732
23603
|
const groupKey = token.chainId;
|
|
23733
23604
|
if (!groups[groupKey]) {
|
|
@@ -23767,16 +23638,14 @@ const groupTokensByChainId = (tokens, chains) => {
|
|
|
23767
23638
|
*/
|
|
23768
23639
|
const filterViewableTokens = (tokens, config, direction) => {
|
|
23769
23640
|
const disabledTokens = [
|
|
23770
|
-
//
|
|
23771
|
-
// 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.
|
|
23772
23642
|
{ chainId: CHAIN_IDS.CELO, address: nativeEvmTokenAddress },
|
|
23643
|
+
{ chainId: CHAIN_IDS.ARC, address: nativeEvmTokenAddress },
|
|
23773
23644
|
// SagaEVM is gasless, so the native token is not used
|
|
23774
23645
|
{ chainId: CHAIN_IDS.SAGA_EVM, address: nativeEvmTokenAddress },
|
|
23775
23646
|
{ chainId: CHAIN_IDS.DCHAIN, address: nativeEvmTokenAddress },
|
|
23776
23647
|
];
|
|
23777
23648
|
return (tokens.filter((token) => {
|
|
23778
|
-
if (isArcNativeToken(token))
|
|
23779
|
-
return false;
|
|
23780
23649
|
if (direction) {
|
|
23781
23650
|
const parsedDirection = getParsedDirection(direction);
|
|
23782
23651
|
const availableTokensForDirection = config.availableTokens?.[parsedDirection];
|
|
@@ -23792,7 +23661,7 @@ const filterViewableTokens = (tokens, config, direction) => {
|
|
|
23792
23661
|
};
|
|
23793
23662
|
const getSecretNetworkBalances = async (chainData, cosmosAddress, squidTokens, keplrTypeWallet) => {
|
|
23794
23663
|
const squidSecretTokens = squidTokens.filter((t) => t.chainId === CHAIN_IDS.SECRET);
|
|
23795
|
-
const { fetchAllSecretBalances } = await import('./secretService-
|
|
23664
|
+
const { fetchAllSecretBalances } = await import('./secretService-D8ySaXvX.js');
|
|
23796
23665
|
return fetchAllSecretBalances(chainData, cosmosAddress, squidSecretTokens, keplrTypeWallet);
|
|
23797
23666
|
};
|
|
23798
23667
|
function getTokenAssetsKey(token) {
|
|
@@ -28219,7 +28088,7 @@ function useStellarWallets() {
|
|
|
28219
28088
|
try {
|
|
28220
28089
|
const { allowAllModules: initializeAllModules } = await import('@creit.tech/stellar-wallets-kit');
|
|
28221
28090
|
const { LedgerModule } = await import('@creit.tech/stellar-wallets-kit/modules/ledger.module.mjs');
|
|
28222
|
-
const { formatStellarWallet } = await import('./stellarService.client-
|
|
28091
|
+
const { formatStellarWallet } = await import('./stellarService.client-IiUZ6NO6.js');
|
|
28223
28092
|
const modules = [...initializeAllModules(), new LedgerModule()];
|
|
28224
28093
|
const promises = modules.map(async (module) => {
|
|
28225
28094
|
const isAvailable = await module.isAvailable();
|
|
@@ -29147,27 +29016,12 @@ const useMultiChainWallet = (chain) => {
|
|
|
29147
29016
|
};
|
|
29148
29017
|
|
|
29149
29018
|
const useSwap = () => {
|
|
29150
|
-
const { initialAssets, defaultTokensPerChain, disabledChains, availableChains,
|
|
29019
|
+
const { initialAssets, defaultTokensPerChain, disabledChains, availableChains, } = useConfigStore((state) => state.config);
|
|
29151
29020
|
const fromPrice = useTransactionStore((state) => state.fromPrice);
|
|
29152
|
-
const { swapRoute
|
|
29021
|
+
const { swapRoute } = useSwapRoutePersistStore();
|
|
29153
29022
|
const { tokens } = useSquidTokens();
|
|
29154
29023
|
const queryClient = useQueryClient();
|
|
29155
29024
|
const { chains, supportedDestinationChains, supportedSourceChains } = useSquidChains();
|
|
29156
|
-
const swapRoute = useMemo(() => storedSwapRoute
|
|
29157
|
-
? normalizeSwapParamsForSelection({
|
|
29158
|
-
swapParams: storedSwapRoute,
|
|
29159
|
-
tokens,
|
|
29160
|
-
chains,
|
|
29161
|
-
config: { disabledChains, availableChains, availableTokens },
|
|
29162
|
-
})
|
|
29163
|
-
: undefined, [
|
|
29164
|
-
storedSwapRoute,
|
|
29165
|
-
tokens,
|
|
29166
|
-
chains,
|
|
29167
|
-
disabledChains,
|
|
29168
|
-
availableChains,
|
|
29169
|
-
availableTokens,
|
|
29170
|
-
]);
|
|
29171
29025
|
const sourceChainId = useMemo(() => swapRoute?.fromChainId ??
|
|
29172
29026
|
(initialAssets?.from
|
|
29173
29027
|
? resolveChainIdFromAsset(initialAssets.from, supportedSourceChains)
|
|
@@ -29178,23 +29032,13 @@ const useSwap = () => {
|
|
|
29178
29032
|
: undefined), [swapRoute?.toChainId, supportedDestinationChains, initialAssets?.to]);
|
|
29179
29033
|
const fromChain = useMemo(() => supportedSourceChains.find((c) => c.chainId === swapRoute?.fromChainId), [swapRoute?.fromChainId, supportedSourceChains]);
|
|
29180
29034
|
const toChain = useMemo(() => supportedDestinationChains.find((c) => c.chainId === swapRoute?.toChainId), [swapRoute?.toChainId, supportedDestinationChains]);
|
|
29181
|
-
const fromTokens = useMemo(() =>
|
|
29182
|
-
const chainTokens = getTokensForChain(tokens, sourceChainId);
|
|
29183
|
-
return isArcChain(sourceChainId)
|
|
29184
|
-
? filterViewableTokens(chainTokens, { availableTokens }, "from")
|
|
29185
|
-
: chainTokens;
|
|
29186
|
-
}, [tokens, sourceChainId, availableTokens]);
|
|
29035
|
+
const fromTokens = useMemo(() => getTokensForChain(tokens, sourceChainId), [tokens, sourceChainId]);
|
|
29187
29036
|
const fromToken = useMemo(() => fromTokens.find((t) => t.address.toLowerCase() === swapRoute?.fromTokenAddress?.toLowerCase()), [fromTokens, swapRoute?.fromTokenAddress]);
|
|
29188
|
-
const toTokens = useMemo(() => {
|
|
29189
|
-
|
|
29190
|
-
|
|
29191
|
-
|
|
29192
|
-
|
|
29193
|
-
});
|
|
29194
|
-
return isArcChain(destChainId)
|
|
29195
|
-
? filterViewableTokens(destinationTokens, { availableTokens }, "to")
|
|
29196
|
-
: destinationTokens;
|
|
29197
|
-
}, [destChainId, toChain, fromToken, tokens, availableTokens]);
|
|
29037
|
+
const toTokens = useMemo(() => filterTokensForDestination({
|
|
29038
|
+
tokens: getTokensForChain(tokens, destChainId),
|
|
29039
|
+
selectedDestinationChain: toChain,
|
|
29040
|
+
selectedSourceToken: fromToken,
|
|
29041
|
+
}), [destChainId, toChain, fromToken, tokens]);
|
|
29198
29042
|
const toToken = useMemo(() => toTokens.find((t) => t.address.toLowerCase() === swapRoute?.toTokenAddress?.toLowerCase()), [toTokens, swapRoute?.toTokenAddress]);
|
|
29199
29043
|
const isSameChain = sourceChainId === destChainId;
|
|
29200
29044
|
const tokenItems = useMemo(() => ({ from: fromTokens, to: toTokens }), [fromTokens, toTokens]);
|
|
@@ -29242,7 +29086,6 @@ const useSwap = () => {
|
|
|
29242
29086
|
defaultTokensPerChain,
|
|
29243
29087
|
disabledChains,
|
|
29244
29088
|
availableChains,
|
|
29245
|
-
availableTokens,
|
|
29246
29089
|
},
|
|
29247
29090
|
queryClient,
|
|
29248
29091
|
connectedSourceAddress: connectedSourceAddress.address,
|
|
@@ -29282,7 +29125,6 @@ const useSwap = () => {
|
|
|
29282
29125
|
defaultTokensPerChain,
|
|
29283
29126
|
disabledChains,
|
|
29284
29127
|
availableChains,
|
|
29285
|
-
availableTokens,
|
|
29286
29128
|
initialAssets,
|
|
29287
29129
|
queryClient,
|
|
29288
29130
|
swapRoute,
|
|
@@ -29338,10 +29180,6 @@ const useSwap = () => {
|
|
|
29338
29180
|
},
|
|
29339
29181
|
direction: "to",
|
|
29340
29182
|
});
|
|
29341
|
-
if ([defaultFromChainId, defaultToChainId].some((chainId) => isArcChain(chainId) &&
|
|
29342
|
-
!tokens.some((token) => token.chainId === chainId && !isArcNativeToken(token)))) {
|
|
29343
|
-
return;
|
|
29344
|
-
}
|
|
29345
29183
|
const fromTokenAddress = getInitialOrDefaultTokenAddressForChain({
|
|
29346
29184
|
tokens,
|
|
29347
29185
|
config: {
|
|
@@ -29349,7 +29187,6 @@ const useSwap = () => {
|
|
|
29349
29187
|
defaultTokensPerChain,
|
|
29350
29188
|
disabledChains,
|
|
29351
29189
|
availableChains,
|
|
29352
|
-
availableTokens,
|
|
29353
29190
|
},
|
|
29354
29191
|
chainId: defaultFromChainId,
|
|
29355
29192
|
direction: "from",
|
|
@@ -29361,7 +29198,6 @@ const useSwap = () => {
|
|
|
29361
29198
|
defaultTokensPerChain,
|
|
29362
29199
|
disabledChains,
|
|
29363
29200
|
availableChains,
|
|
29364
|
-
availableTokens,
|
|
29365
29201
|
},
|
|
29366
29202
|
chainId: defaultToChainId,
|
|
29367
29203
|
direction: "to",
|
|
@@ -29386,7 +29222,6 @@ const useSwap = () => {
|
|
|
29386
29222
|
initialAssets,
|
|
29387
29223
|
disabledChains,
|
|
29388
29224
|
availableChains,
|
|
29389
|
-
availableTokens,
|
|
29390
29225
|
defaultTokensPerChain,
|
|
29391
29226
|
tokens,
|
|
29392
29227
|
]);
|
|
@@ -31178,18 +31013,17 @@ function useNativeTokenForChain(chain) {
|
|
|
31178
31013
|
return cantonTokens;
|
|
31179
31014
|
}
|
|
31180
31015
|
};
|
|
31181
|
-
const tokens = getTokensForChainType();
|
|
31182
31016
|
const nativeTokenForChainType = useMemo(() => {
|
|
31183
31017
|
if (!chain)
|
|
31184
31018
|
return undefined;
|
|
31185
|
-
return findNativeToken(
|
|
31186
|
-
}, [chain
|
|
31019
|
+
return findNativeToken(getTokensForChainType(), chain);
|
|
31020
|
+
}, [chain]);
|
|
31187
31021
|
return { nativeToken: nativeTokenForChainType };
|
|
31188
31022
|
}
|
|
31189
31023
|
|
|
31190
31024
|
const useEvmNativeBalance = ({ address, chain, }) => {
|
|
31191
31025
|
const { isChainTypeConnected } = useWallet();
|
|
31192
|
-
const { data: nativeEvmBalance, isLoading
|
|
31026
|
+
const { data: nativeEvmBalance, isLoading } = useBalance({
|
|
31193
31027
|
address: address,
|
|
31194
31028
|
chainId: Number(chain?.chainId),
|
|
31195
31029
|
query: {
|
|
@@ -31201,8 +31035,6 @@ const useEvmNativeBalance = ({ address, chain, }) => {
|
|
|
31201
31035
|
},
|
|
31202
31036
|
});
|
|
31203
31037
|
const balance = useMemo(() => {
|
|
31204
|
-
if (isArcChain(chain?.chainId) && isError)
|
|
31205
|
-
return undefined;
|
|
31206
31038
|
if (nativeEvmBalance?.decimals != null && nativeEvmBalance?.value != null) {
|
|
31207
31039
|
if (chain?.chainId === CHAIN_IDS.HEDERA) {
|
|
31208
31040
|
return {
|
|
@@ -31216,12 +31048,7 @@ const useEvmNativeBalance = ({ address, chain, }) => {
|
|
|
31216
31048
|
};
|
|
31217
31049
|
}
|
|
31218
31050
|
return;
|
|
31219
|
-
}, [
|
|
31220
|
-
nativeEvmBalance?.decimals,
|
|
31221
|
-
nativeEvmBalance?.value,
|
|
31222
|
-
chain?.chainId,
|
|
31223
|
-
isError,
|
|
31224
|
-
]);
|
|
31051
|
+
}, [nativeEvmBalance?.decimals, nativeEvmBalance?.value, chain?.chainId]);
|
|
31225
31052
|
return {
|
|
31226
31053
|
balance,
|
|
31227
31054
|
isLoading,
|
|
@@ -31708,7 +31535,7 @@ function hederaWalletConnect(parameters) {
|
|
|
31708
31535
|
const optionalChains = config.chains.map((x) => x.id);
|
|
31709
31536
|
if (!optionalChains.length)
|
|
31710
31537
|
return;
|
|
31711
|
-
const { EthereumProvider } = await import('./index.es-
|
|
31538
|
+
const { EthereumProvider } = await import('./index.es-Bm5GQH70.js');
|
|
31712
31539
|
const rawProvider = await EthereumProvider.init({
|
|
31713
31540
|
...restParameters,
|
|
31714
31541
|
disableProviderPing: true,
|
|
@@ -32932,6 +32759,12 @@ const isTempoChain = (chainId) => chainId === CHAIN_IDS.TEMPO;
|
|
|
32932
32759
|
*/
|
|
32933
32760
|
const convertTempoFeeToStablecoinUnits = (feeIn18Dec) => feeIn18Dec / BigInt(10 ** 12);
|
|
32934
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
|
+
|
|
32935
32768
|
const DEFAULT_REFRESH_INTERVAL_MS = 15000;
|
|
32936
32769
|
/**
|
|
32937
32770
|
* Returns raw on-chain gas token data for Tempo chains, or null when the source
|
|
@@ -32998,6 +32831,30 @@ const useTempoFeeCheck = ({ fromChain, fromToken, }) => {
|
|
|
32998
32831
|
};
|
|
32999
32832
|
};
|
|
33000
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
|
+
|
|
33001
32858
|
/**
|
|
33002
32859
|
* Hook that returns the gas token and chain fee params for a given source chain and token.
|
|
33003
32860
|
*/
|
|
@@ -33006,6 +32863,7 @@ function useSourceChainGasToken({ fromChain, fromToken, }) {
|
|
|
33006
32863
|
const { evmTokens } = useSquidTokens();
|
|
33007
32864
|
const { nativeBalance } = useNativeBalance(fromChain);
|
|
33008
32865
|
const tempoFeeData = useTempoFeeCheck({ fromChain, fromToken });
|
|
32866
|
+
const arcFeeData = useArcFeeCheck({ fromChain });
|
|
33009
32867
|
const chainFeeParams = useMemo(() => {
|
|
33010
32868
|
if (fromToken?.address == null ||
|
|
33011
32869
|
fromChain?.chainId == null ||
|
|
@@ -33024,24 +32882,14 @@ function useSourceChainGasToken({ fromChain, fromToken, }) {
|
|
|
33024
32882
|
};
|
|
33025
32883
|
}
|
|
33026
32884
|
if (isArcChain(fromChain.chainId)) {
|
|
33027
|
-
|
|
33028
|
-
const isNative = isArcNativeToken(fromToken);
|
|
33029
|
-
if (fromToken.chainId !== fromChain.chainId ||
|
|
33030
|
-
nativeBalance.decimals !== 18 ||
|
|
33031
|
-
(isUsdc && fromToken.decimals !== 6) ||
|
|
33032
|
-
(isNative && fromToken.decimals !== 18)) {
|
|
32885
|
+
if (!arcFeeData)
|
|
33033
32886
|
return null;
|
|
33034
|
-
|
|
32887
|
+
const fromTokenPaysGasFees = arcFeeData.gasTokenAddress.toLowerCase() ===
|
|
32888
|
+
fromToken.address.toLowerCase();
|
|
33035
32889
|
return {
|
|
33036
|
-
fromTokenPaysGasFees
|
|
33037
|
-
gasTokenBalanceWei:
|
|
32890
|
+
fromTokenPaysGasFees,
|
|
32891
|
+
gasTokenBalanceWei: arcFeeData.gasBalance,
|
|
33038
32892
|
normalizeFee: (fee) => fee,
|
|
33039
|
-
fromAmountToGasUnits: isUsdc
|
|
33040
|
-
? (amount) => amount * 10n ** 12n
|
|
33041
|
-
: undefined,
|
|
33042
|
-
gasUnitsToFromAmount: isUsdc
|
|
33043
|
-
? (amount) => amount / 10n ** 12n
|
|
33044
|
-
: undefined,
|
|
33045
32893
|
};
|
|
33046
32894
|
}
|
|
33047
32895
|
return {
|
|
@@ -33051,11 +32899,12 @@ function useSourceChainGasToken({ fromChain, fromToken, }) {
|
|
|
33051
32899
|
normalizeFee: (fee) => fee,
|
|
33052
32900
|
};
|
|
33053
32901
|
}, [
|
|
33054
|
-
fromToken,
|
|
32902
|
+
fromToken?.address,
|
|
32903
|
+
fromToken?.type,
|
|
33055
32904
|
fromChain?.chainId,
|
|
33056
32905
|
nativeBalance?.value,
|
|
33057
|
-
nativeBalance?.decimals,
|
|
33058
32906
|
tempoFeeData,
|
|
32907
|
+
arcFeeData,
|
|
33059
32908
|
]);
|
|
33060
32909
|
/**
|
|
33061
32910
|
* The token to pay for gas on the source chain.
|
|
@@ -33070,22 +32919,18 @@ function useSourceChainGasToken({ fromChain, fromToken, }) {
|
|
|
33070
32919
|
t.address.toLowerCase() === tempoFeeData.gasTokenAddress.toLowerCase());
|
|
33071
32920
|
}
|
|
33072
32921
|
if (isArcChain(fromChain.chainId)) {
|
|
33073
|
-
|
|
33074
|
-
|
|
33075
|
-
|
|
33076
|
-
|
|
33077
|
-
name: fromChain.nativeCurrency.name,
|
|
33078
|
-
}
|
|
33079
|
-
: undefined;
|
|
32922
|
+
if (!arcFeeData)
|
|
32923
|
+
return undefined;
|
|
32924
|
+
return evmTokens.find((t) => t.chainId === fromChain.chainId &&
|
|
32925
|
+
t.address.toLowerCase() === arcFeeData.gasTokenAddress.toLowerCase());
|
|
33080
32926
|
}
|
|
33081
32927
|
return nativeToken;
|
|
33082
32928
|
}, [
|
|
33083
32929
|
fromChain?.chainId,
|
|
33084
|
-
fromChain?.nativeCurrency.symbol,
|
|
33085
|
-
fromChain?.nativeCurrency.name,
|
|
33086
32930
|
fromToken?.address,
|
|
33087
32931
|
nativeToken,
|
|
33088
32932
|
tempoFeeData,
|
|
32933
|
+
arcFeeData,
|
|
33089
32934
|
evmTokens,
|
|
33090
32935
|
]);
|
|
33091
32936
|
return { gasToken, chainFeeParams };
|
|
@@ -33241,57 +33086,22 @@ const calculateTotalNativeFees = ({ expressFeeCost, firstFeeCost, firstGasCost,
|
|
|
33241
33086
|
(sameTokenBetweenFees
|
|
33242
33087
|
? BigInt(firstFeeCost?.amount ?? "0") + BigInt(firstGasCost?.amount ?? "0")
|
|
33243
33088
|
: BigInt(firstGasCost?.amount ?? "0"));
|
|
33244
|
-
const addGasReserve = (fee) => (fee * 110n + 99n) / 100n;
|
|
33245
|
-
const calculateArcGasCosts = (gasCosts) => {
|
|
33246
|
-
const sourceGasCosts = gasCosts.filter((cost) => isArcChain(cost.token.chainId));
|
|
33247
|
-
if (sourceGasCosts.length === 0)
|
|
33248
|
-
return undefined;
|
|
33249
|
-
let total = 0n;
|
|
33250
|
-
for (const { amount, token } of sourceGasCosts) {
|
|
33251
|
-
const fee = BigInt(amount);
|
|
33252
|
-
if (fee <= 0n)
|
|
33253
|
-
return undefined;
|
|
33254
|
-
if (isArcUsdcToken(token) && token.decimals === 6) {
|
|
33255
|
-
total += fee * 10n ** 12n;
|
|
33256
|
-
}
|
|
33257
|
-
else if (isArcNativeToken(token) && token.decimals === 18) {
|
|
33258
|
-
total += fee;
|
|
33259
|
-
}
|
|
33260
|
-
else {
|
|
33261
|
-
return undefined;
|
|
33262
|
-
}
|
|
33263
|
-
}
|
|
33264
|
-
return total;
|
|
33265
|
-
};
|
|
33266
|
-
const calculateTotalGasBalanceNeeded = ({ fromAmount, networkFeesWei, chainFeeParams, }) => {
|
|
33267
|
-
if (!chainFeeParams || networkFeesWei == null)
|
|
33268
|
-
return undefined;
|
|
33269
|
-
if (!chainFeeParams.fromTokenPaysGasFees)
|
|
33270
|
-
return networkFeesWei;
|
|
33271
|
-
const amount = BigInt(fromAmount ?? "0");
|
|
33272
|
-
const amountInGasUnits = chainFeeParams.fromAmountToGasUnits?.(amount) ?? amount;
|
|
33273
|
-
return amountInGasUnits + networkFeesWei;
|
|
33274
|
-
};
|
|
33275
33089
|
const checkIsGasBalanceEnough = ({ fromAmount, networkFeesWei, chainFeeParams, }) => {
|
|
33276
33090
|
if (!chainFeeParams)
|
|
33277
33091
|
return false;
|
|
33278
|
-
|
|
33279
|
-
fromAmount
|
|
33280
|
-
|
|
33281
|
-
|
|
33282
|
-
|
|
33283
|
-
return total != null && total <= chainFeeParams.gasTokenBalanceWei;
|
|
33092
|
+
if (chainFeeParams.fromTokenPaysGasFees) {
|
|
33093
|
+
return (BigInt(fromAmount ?? "0") + networkFeesWei <=
|
|
33094
|
+
chainFeeParams.gasTokenBalanceWei);
|
|
33095
|
+
}
|
|
33096
|
+
return networkFeesWei <= chainFeeParams.gasTokenBalanceWei;
|
|
33284
33097
|
};
|
|
33285
33098
|
const calculateMinAmountValueWarnMsg = ({ networkFeesWei, chainFeeParams, fromTokenDecimals, }) => {
|
|
33286
|
-
if (!chainFeeParams?.fromTokenPaysGasFees
|
|
33099
|
+
if (!chainFeeParams?.fromTokenPaysGasFees)
|
|
33287
33100
|
return undefined;
|
|
33288
33101
|
const minAmount = chainFeeParams.gasTokenBalanceWei - networkFeesWei;
|
|
33289
33102
|
if (minAmount <= BigInt(0))
|
|
33290
33103
|
return undefined;
|
|
33291
|
-
|
|
33292
|
-
if (amountInTokenUnits <= 0n)
|
|
33293
|
-
return undefined;
|
|
33294
|
-
return formatBNToReadable(amountInTokenUnits, fromTokenDecimals);
|
|
33104
|
+
return formatBNToReadable(minAmount, fromTokenDecimals);
|
|
33295
33105
|
};
|
|
33296
33106
|
/**
|
|
33297
33107
|
* Calculates the estimated duration of a route
|
|
@@ -33340,22 +33150,14 @@ const calculateEstimateResults = ({ squidRoute, tokens, fromChain, toChain, coll
|
|
|
33340
33150
|
const expectedGasRefundCostUSD = convertTokenAmountToUSD(formatBNToReadable(expectedGasRefundCost, firstFeeCost?.token.decimals ?? 18), firstFeeCost?.token.usdPrice ?? "0");
|
|
33341
33151
|
const sameTokenBetweenFees = firstFeeCost?.token.address === firstGasCost?.token.address &&
|
|
33342
33152
|
firstFeeCost?.token.chainId === firstGasCost?.token.chainId;
|
|
33343
|
-
const totalNativeFees =
|
|
33344
|
-
|
|
33345
|
-
|
|
33346
|
-
|
|
33347
|
-
|
|
33348
|
-
|
|
33349
|
-
|
|
33350
|
-
|
|
33351
|
-
const totalFeesInNativeTokenPlusRatio = totalNativeFees == null
|
|
33352
|
-
? undefined
|
|
33353
|
-
: isArcChain(fromChain?.chainId)
|
|
33354
|
-
? addGasReserve(totalNativeFees)
|
|
33355
|
-
: (totalNativeFees * BigInt(110)) / BigInt(100);
|
|
33356
|
-
const networkFeesWei = totalFeesInNativeTokenPlusRatio == null
|
|
33357
|
-
? undefined
|
|
33358
|
-
: chainFeeParams?.normalizeFee(totalFeesInNativeTokenPlusRatio);
|
|
33153
|
+
const totalNativeFees = calculateTotalNativeFees({
|
|
33154
|
+
expressFeeCost,
|
|
33155
|
+
firstFeeCost,
|
|
33156
|
+
firstGasCost,
|
|
33157
|
+
sameTokenBetweenFees,
|
|
33158
|
+
});
|
|
33159
|
+
const totalFeesInNativeTokenPlusRatio = (totalNativeFees * BigInt(110)) / BigInt(100);
|
|
33160
|
+
const networkFeesWei = chainFeeParams?.normalizeFee(totalFeesInNativeTokenPlusRatio) ?? BigInt(0);
|
|
33359
33161
|
const isGasBalanceEnough = checkIsGasBalanceEnough({
|
|
33360
33162
|
chainFeeParams,
|
|
33361
33163
|
fromAmount,
|
|
@@ -33371,12 +33173,10 @@ const calculateEstimateResults = ({ squidRoute, tokens, fromChain, toChain, coll
|
|
|
33371
33173
|
estimatedRouteDuration: squidRoute?.estimate?.estimatedRouteDuration,
|
|
33372
33174
|
isSingleChainRoute,
|
|
33373
33175
|
});
|
|
33374
|
-
|
|
33375
|
-
|
|
33376
|
-
|
|
33377
|
-
|
|
33378
|
-
});
|
|
33379
|
-
const gasBalanceNeeded = gasToken && totalGasBalanceNeeded != null
|
|
33176
|
+
// gas fees + fromAmount (if fromToken is gas token)
|
|
33177
|
+
const totalGasBalanceNeeded = networkFeesWei +
|
|
33178
|
+
BigInt(chainFeeParams?.fromTokenPaysGasFees ? (fromAmount ?? 0) : 0);
|
|
33179
|
+
const gasBalanceNeeded = gasToken
|
|
33380
33180
|
? formatBNToReadable(totalGasBalanceNeeded, gasToken.decimals)
|
|
33381
33181
|
: undefined;
|
|
33382
33182
|
return {
|
|
@@ -33398,7 +33198,7 @@ const calculateEstimateResults = ({ squidRoute, tokens, fromChain, toChain, coll
|
|
|
33398
33198
|
expectedGasRefundCostUSD,
|
|
33399
33199
|
sameTokenBetweenFees,
|
|
33400
33200
|
fromTokenPaysGasFees: chainFeeParams?.fromTokenPaysGasFees ?? false,
|
|
33401
|
-
totalNativeFees
|
|
33201
|
+
totalNativeFees,
|
|
33402
33202
|
isGasBalanceEnough,
|
|
33403
33203
|
minAmountValueWarnMsg,
|
|
33404
33204
|
estimatedRouteDuration,
|
|
@@ -33447,12 +33247,8 @@ function useSendTransactionGas({ chain, token, from, }) {
|
|
|
33447
33247
|
case ChainType.EVM: {
|
|
33448
33248
|
const client = await getClient(chain);
|
|
33449
33249
|
const feeData = await client.getFeeData();
|
|
33450
|
-
if (!feeData.maxFeePerGas)
|
|
33451
|
-
if (isArcChain(chain.chainId)) {
|
|
33452
|
-
throw new Error("Gas price is unavailable");
|
|
33453
|
-
}
|
|
33250
|
+
if (!feeData.maxFeePerGas)
|
|
33454
33251
|
return BigInt(0);
|
|
33455
|
-
}
|
|
33456
33252
|
let maxFeePerGas = feeData.maxFeePerGas;
|
|
33457
33253
|
if (token.chainId === CHAIN_IDS.HEDERA) {
|
|
33458
33254
|
maxFeePerGas = scaleWeiToHbar(BigInt(feeData.maxFeePerGas));
|
|
@@ -33472,9 +33268,6 @@ function useSendTransactionGas({ chain, token, from, }) {
|
|
|
33472
33268
|
value: 1,
|
|
33473
33269
|
chainId: chain.chainId,
|
|
33474
33270
|
});
|
|
33475
|
-
if (isArcChain(chain.chainId) && gas <= 0n) {
|
|
33476
|
-
throw new Error("Gas estimate is unavailable");
|
|
33477
|
-
}
|
|
33478
33271
|
return gas * maxFeePerGas;
|
|
33479
33272
|
}
|
|
33480
33273
|
const erc20Interface = new Interface(erc20Abi);
|
|
@@ -33489,14 +33282,14 @@ function useSendTransactionGas({ chain, token, from, }) {
|
|
|
33489
33282
|
chainId: chain.chainId,
|
|
33490
33283
|
});
|
|
33491
33284
|
const feeWei = gas * maxFeePerGas;
|
|
33492
|
-
if (isArcChain(chain.chainId) && feeWei <= 0n) {
|
|
33493
|
-
throw new Error("Gas estimate is unavailable");
|
|
33494
|
-
}
|
|
33495
33285
|
// Tempo gas fees are denominated 18 units,
|
|
33496
33286
|
// this value needs to be scaled to 6 decimals
|
|
33497
33287
|
if (chain.chainId === CHAIN_IDS.TEMPO) {
|
|
33498
33288
|
return convertTempoFeeToStablecoinUnits(feeWei);
|
|
33499
33289
|
}
|
|
33290
|
+
if (isArcChain(chain.chainId)) {
|
|
33291
|
+
return convertArcGasToUsdcUnits(feeWei);
|
|
33292
|
+
}
|
|
33500
33293
|
return feeWei;
|
|
33501
33294
|
}
|
|
33502
33295
|
case ChainType.COSMOS: {
|
|
@@ -33539,45 +33332,35 @@ function useSendTransactionGas({ chain, token, from, }) {
|
|
|
33539
33332
|
}
|
|
33540
33333
|
|
|
33541
33334
|
function useEstimateSendTransaction({ chain, token, amount, balance, from, }) {
|
|
33542
|
-
const { data
|
|
33335
|
+
const { data: estimatedGas = BigInt(0), isLoading } = useSendTransactionGas({
|
|
33543
33336
|
chain,
|
|
33544
33337
|
token,
|
|
33545
33338
|
from,
|
|
33546
33339
|
});
|
|
33547
|
-
const estimatedGas = isError || isFetching ? undefined : data;
|
|
33548
|
-
const networkFeesWei = estimatedGas == null
|
|
33549
|
-
? undefined
|
|
33550
|
-
: isArcChain(chain?.chainId)
|
|
33551
|
-
? addGasReserve(estimatedGas)
|
|
33552
|
-
: estimatedGas;
|
|
33553
33340
|
const { chainFeeParams, gasToken } = useSourceChainGasToken({
|
|
33554
33341
|
fromChain: chain,
|
|
33555
33342
|
fromToken: token,
|
|
33556
33343
|
});
|
|
33557
33344
|
const isGasBalanceEnough = useMemo(() => {
|
|
33558
|
-
if (!amount || token?.decimals
|
|
33345
|
+
if (!amount || !token?.decimals)
|
|
33559
33346
|
return false;
|
|
33560
33347
|
return checkIsGasBalanceEnough({
|
|
33561
33348
|
fromAmount: parseToBigInt(amount, token.decimals).toString(),
|
|
33562
|
-
networkFeesWei,
|
|
33349
|
+
networkFeesWei: estimatedGas,
|
|
33563
33350
|
chainFeeParams,
|
|
33564
33351
|
});
|
|
33565
|
-
}, [amount,
|
|
33352
|
+
}, [amount, estimatedGas, token, chainFeeParams]);
|
|
33566
33353
|
const gasBalanceNeeded = useMemo(() => {
|
|
33567
|
-
if (!amount || token?.decimals
|
|
33568
|
-
return undefined;
|
|
33569
|
-
const totalGasBalanceNeeded = calculateTotalGasBalanceNeeded({
|
|
33570
|
-
fromAmount: parseToBigInt(amount, token.decimals).toString(),
|
|
33571
|
-
networkFeesWei,
|
|
33572
|
-
chainFeeParams,
|
|
33573
|
-
});
|
|
33574
|
-
if (totalGasBalanceNeeded == null)
|
|
33354
|
+
if (!amount || !token?.decimals || !gasToken?.decimals)
|
|
33575
33355
|
return undefined;
|
|
33356
|
+
// gas fees + fromAmount (if fromToken is gas token)
|
|
33357
|
+
const totalGasBalanceNeeded = estimatedGas +
|
|
33358
|
+
parseToBigInt(chainFeeParams?.fromTokenPaysGasFees ? (amount ?? "0") : "0", token.decimals);
|
|
33576
33359
|
return formatBNToReadable(totalGasBalanceNeeded, gasToken.decimals);
|
|
33577
33360
|
}, [
|
|
33578
33361
|
amount,
|
|
33579
|
-
chainFeeParams,
|
|
33580
|
-
|
|
33362
|
+
chainFeeParams?.fromTokenPaysGasFees,
|
|
33363
|
+
estimatedGas,
|
|
33581
33364
|
gasToken?.decimals,
|
|
33582
33365
|
token?.decimals,
|
|
33583
33366
|
]);
|
|
@@ -33588,22 +33371,20 @@ function useEstimateSendTransaction({ chain, token, amount, balance, from, }) {
|
|
|
33588
33371
|
parseToBigInt(amount, token.decimals));
|
|
33589
33372
|
}, [amount, balance, token?.decimals]);
|
|
33590
33373
|
const minAmountValueWarnMsg = useMemo(() => {
|
|
33591
|
-
if (!token?.address || !
|
|
33374
|
+
if (!token?.address || !estimatedGas || !chainFeeParams)
|
|
33592
33375
|
return undefined;
|
|
33593
33376
|
return calculateMinAmountValueWarnMsg({
|
|
33594
33377
|
chainFeeParams,
|
|
33595
|
-
networkFeesWei,
|
|
33378
|
+
networkFeesWei: estimatedGas,
|
|
33596
33379
|
fromTokenDecimals: token.decimals,
|
|
33597
33380
|
});
|
|
33598
|
-
}, [
|
|
33381
|
+
}, [estimatedGas, token, chainFeeParams]);
|
|
33599
33382
|
return {
|
|
33600
33383
|
estimatedGas,
|
|
33601
33384
|
gasBalanceNeeded,
|
|
33602
33385
|
isBalanceEnough,
|
|
33603
33386
|
tokenPaysGasFees: chainFeeParams?.fromTokenPaysGasFees ?? false,
|
|
33604
|
-
isLoading
|
|
33605
|
-
isError,
|
|
33606
|
-
refetchGasEstimate: refetch,
|
|
33387
|
+
isLoading,
|
|
33607
33388
|
isGasBalanceEnough,
|
|
33608
33389
|
minAmountValueWarnMsg,
|
|
33609
33390
|
};
|
|
@@ -34504,19 +34285,6 @@ const useApproval = ({ squidRoute, }) => {
|
|
|
34504
34285
|
const { getChainType } = useSquidChains();
|
|
34505
34286
|
const { switchChainAsync } = useSwitchChain();
|
|
34506
34287
|
const { connectedAddress: { address: sourceUserAddress }, } = useMultiChainWallet(fromChain);
|
|
34507
|
-
const arcNativeBalanceQuery = useBalance({
|
|
34508
|
-
address: sourceUserAddress,
|
|
34509
|
-
chainId: Number(fromChain?.chainId),
|
|
34510
|
-
query: { enabled: false },
|
|
34511
|
-
});
|
|
34512
|
-
const arcTokenBalanceQuery = useReadContract({
|
|
34513
|
-
address: fromToken?.address,
|
|
34514
|
-
abi: erc20Abi,
|
|
34515
|
-
functionName: "balanceOf",
|
|
34516
|
-
args: [sourceUserAddress],
|
|
34517
|
-
chainId: Number(fromChain?.chainId),
|
|
34518
|
-
query: { enabled: false },
|
|
34519
|
-
});
|
|
34520
34288
|
const isSagaEvmSameChainSwap = isSameChain &&
|
|
34521
34289
|
fromChain?.chainId.toString() === CHAIN_IDS.SAGA_EVM.toString();
|
|
34522
34290
|
// Swaps on SagaEVM are regular EVM transactions, following the standard ERC20 approve/allowance mechanism.
|
|
@@ -34677,20 +34445,13 @@ const useApproval = ({ squidRoute, }) => {
|
|
|
34677
34445
|
return false;
|
|
34678
34446
|
}
|
|
34679
34447
|
}, {
|
|
34680
|
-
onSuccess: async (
|
|
34681
|
-
if (approved && isArcChain(fromChain?.chainId)) {
|
|
34682
|
-
await Promise.all([
|
|
34683
|
-
arcNativeBalanceQuery.refetch({ throwOnError: true }),
|
|
34684
|
-
arcTokenBalanceQuery.refetch({ throwOnError: true }),
|
|
34685
|
-
]);
|
|
34686
|
-
queryClient.invalidateQueries(getPrefixKey(QueryKeys.AllTokensBalance));
|
|
34687
|
-
}
|
|
34448
|
+
onSuccess: async () => {
|
|
34688
34449
|
await allowanceQuery?.refetch();
|
|
34689
34450
|
queryClient.invalidateQueries(getPrefixKey(QueryKeys.RouteApproved));
|
|
34690
34451
|
// After an approval, we refetch the transaction query with all required parameters
|
|
34691
34452
|
// This is to ensure we're using the latest expiry timestamp
|
|
34692
34453
|
if (squidRoute) {
|
|
34693
|
-
|
|
34454
|
+
queryClient.refetchQueries({
|
|
34694
34455
|
queryKey: keys().transaction(squidRoute.params.fromChain, squidRoute.params.toChain, squidRoute.params.toToken, squidRoute.params.fromToken, fromPrice, squidRoute.params.slippage, squidRoute.params.fromAddress, squidRoute.params.bypassGuardrails, squidRoute.params.toAddress, squidRoute.params.fallbackAddresses?.[0]?.address, squidRoute.params.quoteOnly, getChainType(squidRoute.params.fromChain), squidRoute.params.preHook, squidRoute.params.postHook,
|
|
34695
34456
|
// TODO: update types
|
|
34696
34457
|
squidRoute.params?.overrideGasRefundAddress),
|
|
@@ -39466,5 +39227,5 @@ const SquidProvider = ({ children, config, placeholder, }) => {
|
|
|
39466
39227
|
React.createElement(CosmosProvider, null, children))))))))))) : (placeholder);
|
|
39467
39228
|
};
|
|
39468
39229
|
|
|
39469
|
-
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,
|
|
39470
|
-
//# sourceMappingURL=index-
|
|
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 };
|
|
39231
|
+
//# sourceMappingURL=index-BVneqIL5.js.map
|