@0xsquid/react-hooks 8.0.0-beta.1 → 8.0.0-beta.2
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/{index-BVNZiGCx.js → index-BT_PJ0yw.js} +3 -3
- package/dist/{index-BVNZiGCx.js.map → index-BT_PJ0yw.js.map} +1 -1
- package/dist/{index-DDz-C-VC.js → index-ClusSgCh.js} +5 -5
- package/dist/{index-CGkGzcT3.js.map → index-ClusSgCh.js.map} +1 -1
- package/dist/{index-CGkGzcT3.js → index-DIojJVk6.js} +4 -4
- package/dist/{index-DDz-C-VC.js.map → index-DIojJVk6.js.map} +1 -1
- package/dist/{index-BeLuO1uo.js → index-DzdoRUCc.js} +3 -3
- package/dist/{index-BeLuO1uo.js.map → index-DzdoRUCc.js.map} +1 -1
- package/dist/index.esm.js +2 -2
- package/dist/index.js +2 -2
- package/dist/{secretService-D49fXkda.js → secretService-5SGF9TXj.js} +3 -3
- package/dist/{secretService-D49fXkda.js.map → secretService-5SGF9TXj.js.map} +1 -1
- package/dist/{secretService-DeXE4j0J.js → secretService-CgX8qkVs.js} +3 -3
- package/dist/{secretService-DeXE4j0J.js.map → secretService-CgX8qkVs.js.map} +1 -1
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as AxelarStatusResponseType, C as CHAIN_IDS, U as ConnectingWalletStatus, p as CosmosProvider, D as DEFAULT_LOCALE, aP as EnsService, bI as EvmNetworkNotSupportedErrorCode, aC as FINAL_TRANSACTION_STATUSES, H as HistoryTxType, r as SendTransactionStatus, aO as SquidProvider, S as SquidStatusErrorType, aB as TX_STATUS_CONSTANTS, q as TransactionErrorType, s as TransactionStatus, bH as WidgetEvents, X as XamanXrplNetwork, cB as accessProperty, bQ as adaptiveRound, bJ as addEthereumChain, cI as addTokenToWallet, cF as areSameAddress, b5 as areSameCosmosAddress, bf as areTokenSymbolsCompatible, aV as assetsBaseUrl, cT as buildXrplTrustSetTx, c0 as calculateTotal24hChange, cH as calculateTotalUsdBalanceUSD, cO as cancelConnectWallet, e as chainTypeToNativeTokenAddressMap, g as chainTypeToZeroAddressMap, cq as chainflipMultihopBridgeType, bZ as cleanAmount, cf as compareTransactionIds, bw as connectCosmosWallet, cN as connectWallet, b_ as convertTokenAmountToUSD, b$ as convertUSDToTokenAmount, bG as createQuoteRequestParamsHash, h as destinationAddressResetValue, c4 as executeSolanaSwap, c5 as executeSolanaTransfer, i as fallbackAddressResetValue, bb as fetchAssetsColors, bl as fetchHighestBalanceToken, ce as fetchSwapTransactionStatus, aZ as filterChains, c2 as filterSolanaWallets, a_ as filterTokens, bo as filterTokensForDestination, b8 as filterViewableTokens, bM as filterWagmiConnector, b3 as findNativeToken, b2 as findToken, f as formatBNToReadable, ca as formatDistance, bL as formatEvmWallet, cy as formatHash, cb as formatSeconds, cc as formatSwapTxStatusResponseForStorage, bV as formatTokenAmount, c6 as formatTransactionHistoryDate, bU as formatUnitsRounded, bW as formatUsdAmount, bs as getAllKeysForSupportedCosmosChains, c7 as getAxelarExplorerTxUrl, cr as getBridgeType, bh as getConfigWithDefaults, cL as getConnectorForChainType, bv as getCosmosChainInfosObject, bq as getCosmosKey, bu as getCosmosSigningClient, bO as getCountryData, bP as getCurrencyData, cD as getDefaultChain, bk as getFirstAvailableChainId, cm as getHalfSuccessState, ck as getHistoryTransactionId, bp as getInitialChainIdFromConfig, bm as getInitialOrDefaultTokenAddressForChain, bn as getInitialTokenAddressForChain, br as getKeysSettled, c9 as getMainExplorerUrl, b0 as getNewSwapParamsFromInput, bY as getNumericValue, aS as getQueryHeaders, b9 as getSecretNetworkBalances, cp as getSendTxStatusRefetchInterval, c8 as getSourceExplorerTxUrl, aT as getStatusCode, cl as getStepStatuses, cn as getStepsInfos, bR as getSuggestedAmountsForCurrency, aY as getSupportedChainIdsForDirection, co as getSwapTxStatusRefetchInterval, ba as getTokenAssetsKey, a$ as getTokenImage, bj as getTokensForChain, ct as getTransactionEndStatus, bC as getTransactionError, cs as getTransactionStatus, bN as getUserCountry, cK as getWalletSupportedChainTypes, cU as getXrplNetwork, aQ as getXummClient, b7 as groupTokensByChainId, b6 as groupTokensBySymbol, bD as handleTransactionErrorEvents, bc as initializeSquidWithAssetsColors, aU as is404Error, cj as isChainflipBridgeTransaction, cg as isCoralBridgeAction, bt as isCosmosAddressValid, ci as isDepositRoute, bd as isEmptyObject, cJ as isEvmChainNotSupportedError, bg as isEvmosChain, bx as isFallbackAddressNeeded, cx as isHistoryTransactionEnded, cv as isHistoryTransactionFailed, cu as isHistoryTransactionPending, cw as isHistoryTransactionWarning, cP as isProblematicConnector, c3 as isSolanaAddressValid, bF as isStatusError, bE as isSwapRouteError, bB as isUserRejectionError, cz as isWalletAddressValid, aR as isXamanXAppContext, cR as isXionSmartContractAddress, cS as isXrplAddressValid, cQ as mergeWallets, n as nativeBitcoinTokenAddress, j as nativeCosmosTokenAddress, k as nativeEvmTokenAddress, l as nativeSolanaTokenAddress, m as nativeSuiTokenAddress, o as nativeXrplTokenAddress, bz as normalizeError, b4 as normalizeIbcAddress, be as normalizeTokenSymbol, bK as parseEvmAddress, bS as parseToBigInt, cV as parseXrplPaymentTx, cC as populateWallets, bi as randomIntFromInterval, cA as redirectToExtensionsStore, bT as roundNumericValue, c1 as searchTokens, aW as shareSubgraphId, cd as simplifyRouteAction, ch as sleep, cG as sortAddressBook, b1 as sortAllTokens, aX as sortTokensBySharedSubgraphIds, cE as sortWallets, by as suggestChainOrThrow, bA as transactionErrorCode, bX as trimExtraDecimals, ap as useAddToken, F as useAddressBookStore, Y as useAllConnectedWalletBalances, Z as useAllTokensWithBalanceForChainType, ab as useAllTransactionsStatus, ac as useApproval, G as useAssetsColorsStore, aq as useAutoConnect, aK as useAvailableQuotes, al as useAvatar, w as useClient, L as useConfigStore, _ as useCosmosBalance, u as useCosmosContext, x as useCosmosForChain, aJ as useCountryDetails, aI as useCurrencyDetails, ao as useDebouncedValue, V as useDepositAddress, ar as useEnsDataForAddress, as as useEnsSearch, ad as useEstimate, ae as useEstimatePriceImpact, a8 as useEstimateSendTransaction, $ as useEvmBalance, aF as useExecuteFiatQuote, af as useExecuteTransaction, I as useFavoriteTokensStore, aG as useFiatOnRampTxStatus, aH as useFiatTransactions, aD as useGetFiatQuote, aE as useGetOnRampConfig, aM as useGetOnrampPaymentTypes, ag as useGetRoute, ah as useGetRouteWrapper, at as useGnosisContext, a6 as useHistoricalData, am as useHistory, J as useHistoryStore, av as useIntegratorContext, au as useIsSameAddressAndGnosisContext, y as useKeyboardNavigation, a0 as useMultiChainBalance, aw as useMultiChainWallet, a1 as useMultipleTokenPrices, a2 as useNativeBalance, a3 as useNativeTokenForChain, aL as useRecommendedQuote, ai as useRouteWarnings, a9 as useSendTransaction, aa as useSendTransactionGas, aj as useSendTransactionStatus, K as useSendTransactionStore, ax as useSigner, a4 as useSingleTokenPrice, B as useSquid, v as useSquidChains, z as useSquidQueryClient, N as useSquidStore, a5 as useSquidTokens, aN as useSuggestedFiatAmounts, W as useSwap, P as useSwapRoutePersistStore, ak as useSwapTransactionStatus, a7 as useTokensData, t as useTrackSearchEmpty, Q as useTransactionStore, an as useUserParams, ay as useWallet, az as useWallets, aA as useXrplTrustLine, cM as walletSupportsChainType } from './index-
|
|
1
|
+
export { A as AxelarStatusResponseType, C as CHAIN_IDS, U as ConnectingWalletStatus, p as CosmosProvider, D as DEFAULT_LOCALE, aP as EnsService, bI as EvmNetworkNotSupportedErrorCode, aC as FINAL_TRANSACTION_STATUSES, H as HistoryTxType, r as SendTransactionStatus, aO as SquidProvider, S as SquidStatusErrorType, aB as TX_STATUS_CONSTANTS, q as TransactionErrorType, s as TransactionStatus, bH as WidgetEvents, X as XamanXrplNetwork, cB as accessProperty, bQ as adaptiveRound, bJ as addEthereumChain, cI as addTokenToWallet, cF as areSameAddress, b5 as areSameCosmosAddress, bf as areTokenSymbolsCompatible, aV as assetsBaseUrl, cT as buildXrplTrustSetTx, c0 as calculateTotal24hChange, cH as calculateTotalUsdBalanceUSD, cO as cancelConnectWallet, e as chainTypeToNativeTokenAddressMap, g as chainTypeToZeroAddressMap, cq as chainflipMultihopBridgeType, bZ as cleanAmount, cf as compareTransactionIds, bw as connectCosmosWallet, cN as connectWallet, b_ as convertTokenAmountToUSD, b$ as convertUSDToTokenAmount, bG as createQuoteRequestParamsHash, h as destinationAddressResetValue, c4 as executeSolanaSwap, c5 as executeSolanaTransfer, i as fallbackAddressResetValue, bb as fetchAssetsColors, bl as fetchHighestBalanceToken, ce as fetchSwapTransactionStatus, aZ as filterChains, c2 as filterSolanaWallets, a_ as filterTokens, bo as filterTokensForDestination, b8 as filterViewableTokens, bM as filterWagmiConnector, b3 as findNativeToken, b2 as findToken, f as formatBNToReadable, ca as formatDistance, bL as formatEvmWallet, cy as formatHash, cb as formatSeconds, cc as formatSwapTxStatusResponseForStorage, bV as formatTokenAmount, c6 as formatTransactionHistoryDate, bU as formatUnitsRounded, bW as formatUsdAmount, bs as getAllKeysForSupportedCosmosChains, c7 as getAxelarExplorerTxUrl, cr as getBridgeType, bh as getConfigWithDefaults, cL as getConnectorForChainType, bv as getCosmosChainInfosObject, bq as getCosmosKey, bu as getCosmosSigningClient, bO as getCountryData, bP as getCurrencyData, cD as getDefaultChain, bk as getFirstAvailableChainId, cm as getHalfSuccessState, ck as getHistoryTransactionId, bp as getInitialChainIdFromConfig, bm as getInitialOrDefaultTokenAddressForChain, bn as getInitialTokenAddressForChain, br as getKeysSettled, c9 as getMainExplorerUrl, b0 as getNewSwapParamsFromInput, bY as getNumericValue, aS as getQueryHeaders, b9 as getSecretNetworkBalances, cp as getSendTxStatusRefetchInterval, c8 as getSourceExplorerTxUrl, aT as getStatusCode, cl as getStepStatuses, cn as getStepsInfos, bR as getSuggestedAmountsForCurrency, aY as getSupportedChainIdsForDirection, co as getSwapTxStatusRefetchInterval, ba as getTokenAssetsKey, a$ as getTokenImage, bj as getTokensForChain, ct as getTransactionEndStatus, bC as getTransactionError, cs as getTransactionStatus, bN as getUserCountry, cK as getWalletSupportedChainTypes, cU as getXrplNetwork, aQ as getXummClient, b7 as groupTokensByChainId, b6 as groupTokensBySymbol, bD as handleTransactionErrorEvents, bc as initializeSquidWithAssetsColors, aU as is404Error, cj as isChainflipBridgeTransaction, cg as isCoralBridgeAction, bt as isCosmosAddressValid, ci as isDepositRoute, bd as isEmptyObject, cJ as isEvmChainNotSupportedError, bg as isEvmosChain, bx as isFallbackAddressNeeded, cx as isHistoryTransactionEnded, cv as isHistoryTransactionFailed, cu as isHistoryTransactionPending, cw as isHistoryTransactionWarning, cP as isProblematicConnector, c3 as isSolanaAddressValid, bF as isStatusError, bE as isSwapRouteError, bB as isUserRejectionError, cz as isWalletAddressValid, aR as isXamanXAppContext, cR as isXionSmartContractAddress, cS as isXrplAddressValid, cQ as mergeWallets, n as nativeBitcoinTokenAddress, j as nativeCosmosTokenAddress, k as nativeEvmTokenAddress, l as nativeSolanaTokenAddress, m as nativeSuiTokenAddress, o as nativeXrplTokenAddress, bz as normalizeError, b4 as normalizeIbcAddress, be as normalizeTokenSymbol, bK as parseEvmAddress, bS as parseToBigInt, cV as parseXrplPaymentTx, cC as populateWallets, bi as randomIntFromInterval, cA as redirectToExtensionsStore, bT as roundNumericValue, c1 as searchTokens, aW as shareSubgraphId, cd as simplifyRouteAction, ch as sleep, cG as sortAddressBook, b1 as sortAllTokens, aX as sortTokensBySharedSubgraphIds, cE as sortWallets, by as suggestChainOrThrow, bA as transactionErrorCode, bX as trimExtraDecimals, ap as useAddToken, F as useAddressBookStore, Y as useAllConnectedWalletBalances, Z as useAllTokensWithBalanceForChainType, ab as useAllTransactionsStatus, ac as useApproval, G as useAssetsColorsStore, aq as useAutoConnect, aK as useAvailableQuotes, al as useAvatar, w as useClient, L as useConfigStore, _ as useCosmosBalance, u as useCosmosContext, x as useCosmosForChain, aJ as useCountryDetails, aI as useCurrencyDetails, ao as useDebouncedValue, V as useDepositAddress, ar as useEnsDataForAddress, as as useEnsSearch, ad as useEstimate, ae as useEstimatePriceImpact, a8 as useEstimateSendTransaction, $ as useEvmBalance, aF as useExecuteFiatQuote, af as useExecuteTransaction, I as useFavoriteTokensStore, aG as useFiatOnRampTxStatus, aH as useFiatTransactions, aD as useGetFiatQuote, aE as useGetOnRampConfig, aM as useGetOnrampPaymentTypes, ag as useGetRoute, ah as useGetRouteWrapper, at as useGnosisContext, a6 as useHistoricalData, am as useHistory, J as useHistoryStore, av as useIntegratorContext, au as useIsSameAddressAndGnosisContext, y as useKeyboardNavigation, a0 as useMultiChainBalance, aw as useMultiChainWallet, a1 as useMultipleTokenPrices, a2 as useNativeBalance, a3 as useNativeTokenForChain, aL as useRecommendedQuote, ai as useRouteWarnings, a9 as useSendTransaction, aa as useSendTransactionGas, aj as useSendTransactionStatus, K as useSendTransactionStore, ax as useSigner, a4 as useSingleTokenPrice, B as useSquid, v as useSquidChains, z as useSquidQueryClient, N as useSquidStore, a5 as useSquidTokens, aN as useSuggestedFiatAmounts, W as useSwap, P as useSwapRoutePersistStore, ak as useSwapTransactionStatus, a7 as useTokensData, t as useTrackSearchEmpty, Q as useTransactionStore, an as useUserParams, ay as useWallet, az as useWallets, aA as useXrplTrustLine, cM as walletSupportsChainType } from './index-DIojJVk6.js';
|
|
2
2
|
import '@0xsquid/squid-types';
|
|
3
3
|
import 'viem';
|
|
4
4
|
import 'react';
|
|
@@ -30,7 +30,7 @@ import '@cosmjs/proto-signing';
|
|
|
30
30
|
import '@mysten/sui/transactions';
|
|
31
31
|
import 'wagmi/connectors';
|
|
32
32
|
import '@cosmjs/cosmwasm-stargate';
|
|
33
|
-
import '@injectivelabs/sdk-ts/dist/cjs/core/stargate';
|
|
33
|
+
import '@injectivelabs/sdk-ts/dist/cjs/core/stargate/index.js';
|
|
34
34
|
import '@0xsquid/sdk';
|
|
35
35
|
import 'viem/chains';
|
|
36
36
|
//# sourceMappingURL=index.esm.js.map
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-ClusSgCh.js');
|
|
4
4
|
require('@0xsquid/squid-types');
|
|
5
5
|
require('viem');
|
|
6
6
|
require('react');
|
|
@@ -32,7 +32,7 @@ require('@cosmjs/proto-signing');
|
|
|
32
32
|
require('@mysten/sui/transactions');
|
|
33
33
|
require('wagmi/connectors');
|
|
34
34
|
require('@cosmjs/cosmwasm-stargate');
|
|
35
|
-
require('@injectivelabs/sdk-ts/dist/cjs/core/stargate');
|
|
35
|
+
require('@injectivelabs/sdk-ts/dist/cjs/core/stargate/index.js');
|
|
36
36
|
require('@0xsquid/sdk');
|
|
37
37
|
require('viem/chains');
|
|
38
38
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { StargateClient } from '@cosmjs/stargate';
|
|
2
2
|
import { SecretNetworkClient } from 'secretjs';
|
|
3
|
-
import { C as CHAIN_IDS, f as formatBNToReadable } from './index-
|
|
3
|
+
import { C as CHAIN_IDS, f as formatBNToReadable } from './index-DIojJVk6.js';
|
|
4
4
|
import '@0xsquid/squid-types';
|
|
5
5
|
import 'viem';
|
|
6
6
|
import 'react';
|
|
@@ -31,7 +31,7 @@ import '@cosmjs/proto-signing';
|
|
|
31
31
|
import '@mysten/sui/transactions';
|
|
32
32
|
import 'wagmi/connectors';
|
|
33
33
|
import '@cosmjs/cosmwasm-stargate';
|
|
34
|
-
import '@injectivelabs/sdk-ts/dist/cjs/core/stargate';
|
|
34
|
+
import '@injectivelabs/sdk-ts/dist/cjs/core/stargate/index.js';
|
|
35
35
|
import '@0xsquid/sdk';
|
|
36
36
|
import 'viem/chains';
|
|
37
37
|
|
|
@@ -161,4 +161,4 @@ const fetchAllSecretBalances = async (chainData, userAddress, secretTokens, kepl
|
|
|
161
161
|
};
|
|
162
162
|
|
|
163
163
|
export { fetchAllSecretBalances, getPermit, getTokenBalance };
|
|
164
|
-
//# sourceMappingURL=secretService-
|
|
164
|
+
//# sourceMappingURL=secretService-5SGF9TXj.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secretService-
|
|
1
|
+
{"version":3,"file":"secretService-5SGF9TXj.js","sources":["../src/services/external/secretService.ts"],"sourcesContent":["import type { ChainData, CosmosChain, Token } from \"@0xsquid/squid-types\";\nimport { StargateClient } from \"@cosmjs/stargate\";\nimport type { Keplr } from \"@keplr-wallet/types\";\nimport { SecretNetworkClient } from \"secretjs\";\nimport { CHAIN_IDS } from \"../../core/constants\";\nimport type { TokenWithBalance } from \"../../core/types/tokens\";\nimport type { TypedWindow } from \"../../core/types/wallet\";\nimport { formatBNToReadable } from \"../internal/numberService\";\n\n/**\n * Fetch secret network token balance\n * Using the permit signature, see permit function for more details\n * @param secretJS\n * @param contract\n * @param chainId\n * @param walletAddress\n * @param permit\n * @returns\n */\nexport const getTokenBalance = async (\n secretJS: SecretNetworkClient,\n contract: { address: string; codeHash: string },\n permit: any\n) => {\n if (permit) {\n const msg = {\n balance: {},\n };\n\n const result = await secretJS.query.compute.queryContract({\n contract_address: contract.address,\n code_hash: contract.codeHash,\n query: {\n with_permit: {\n query: msg,\n permit,\n },\n },\n });\n return result;\n }\n return -1;\n};\n\nexport const getPermit = async (\n chainId: string,\n contracts: any[],\n address: string\n) => {\n const contractsString = contracts.join(\"_\");\n const permKey = `perm_${chainId}_${contractsString}_${address}`;\n let permit: any;\n\n const permitStored = window.localStorage.getItem(permKey);\n if (permitStored) permit = JSON.parse(permitStored);\n\n // Not able to fetch permit signature from local storage,\n // Ask user to sign message\n if (!permit) {\n try {\n const result = await (window as TypedWindow).keplr.signAmino(\n chainId,\n address,\n {\n chain_id: chainId,\n account_number: \"0\",\n sequence: \"0\",\n fee: {\n amount: [{ denom: \"uscrt\", amount: \"0\" }],\n gas: \"1\",\n },\n msgs: [\n {\n type: \"query_permit\",\n value: {\n permit_name: \"secret-bridge-balance\",\n allowed_tokens: contracts,\n permissions: [\"balance\"],\n },\n },\n ],\n memo: \"\",\n },\n {\n preferNoSetFee: true,\n preferNoSetMemo: true,\n }\n );\n permit = {\n params: {\n permit_name: \"secret-bridge-balance\",\n allowed_tokens: contracts,\n chain_id: chainId,\n permissions: [\"balance\"],\n },\n signature: result.signature,\n };\n window.localStorage.setItem(permKey, JSON.stringify(permit));\n } catch (err) {\n console.error(\"--- PERMIT ERROR ---\");\n console.error(err);\n }\n }\n return permit;\n};\n\n/**\n * Fetches the secret balance of the user\n * This has a different logic than the other balances because Secret network hides the balance of the user by design\n * So we need to fetch the balance in a different way\n */\nexport const fetchAllSecretBalances = async (\n chainData: ChainData,\n userAddress: string,\n secretTokens: (Token & { codeHash?: string })[],\n keplr?: Keplr\n): Promise<TokenWithBalance[]> => {\n if (!keplr) return [];\n // Enables app to utilize keplr's secret utilities\n await keplr.enable(CHAIN_IDS.SECRET);\n // Create a client that handles the query encryption\n const client = new SecretNetworkClient({\n url: (chainData as CosmosChain).rest,\n chainId: CHAIN_IDS.SECRET,\n wallet: keplr.getOfflineSignerOnlyAmino(CHAIN_IDS.SECRET),\n encryptionUtils: keplr.getEnigmaUtils(CHAIN_IDS.SECRET),\n walletAddress: userAddress,\n });\n\n // Get secret tokens\n\n const permit = await getPermit(\n CHAIN_IDS.SECRET,\n secretTokens.map((st) => st.address),\n userAddress\n );\n\n // Fetching all balances in parallel\n const privateTokens = await Promise.all(\n secretTokens\n .filter((t) => !!t.codeHash)\n .map(async (token) => {\n const result = (await getTokenBalance(\n client,\n {\n address: token.address,\n codeHash: token.codeHash ?? \"\",\n },\n permit\n )) as { balance: { amount: string } };\n\n return {\n ...token,\n balance: formatBNToReadable(\n BigInt(result.balance.amount),\n token?.decimals\n ),\n } as TokenWithBalance;\n })\n );\n\n // Use Stargate getBalance for SCRT\n const stargateClient = await StargateClient.connect(chainData.rpc);\n const nativeSecretToken = secretTokens.find((t) => t.address === \"uscrt\");\n\n const publicTokenBalance = await stargateClient.getBalance(\n userAddress,\n \"uscrt\"\n );\n\n const publicTokenWithBalance = {\n ...nativeSecretToken,\n balance: formatBNToReadable(\n BigInt(publicTokenBalance.amount),\n nativeSecretToken?.decimals ?? 18\n ),\n } as TokenWithBalance;\n\n return [...privateTokens, publicTokenWithBalance];\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var stargate = require('@cosmjs/stargate');
|
|
4
4
|
var secretjs = require('secretjs');
|
|
5
|
-
var index = require('./index-
|
|
5
|
+
var index = require('./index-ClusSgCh.js');
|
|
6
6
|
require('@0xsquid/squid-types');
|
|
7
7
|
require('viem');
|
|
8
8
|
require('react');
|
|
@@ -33,7 +33,7 @@ require('@cosmjs/proto-signing');
|
|
|
33
33
|
require('@mysten/sui/transactions');
|
|
34
34
|
require('wagmi/connectors');
|
|
35
35
|
require('@cosmjs/cosmwasm-stargate');
|
|
36
|
-
require('@injectivelabs/sdk-ts/dist/cjs/core/stargate');
|
|
36
|
+
require('@injectivelabs/sdk-ts/dist/cjs/core/stargate/index.js');
|
|
37
37
|
require('@0xsquid/sdk');
|
|
38
38
|
require('viem/chains');
|
|
39
39
|
|
|
@@ -165,4 +165,4 @@ const fetchAllSecretBalances = async (chainData, userAddress, secretTokens, kepl
|
|
|
165
165
|
exports.fetchAllSecretBalances = fetchAllSecretBalances;
|
|
166
166
|
exports.getPermit = getPermit;
|
|
167
167
|
exports.getTokenBalance = getTokenBalance;
|
|
168
|
-
//# sourceMappingURL=secretService-
|
|
168
|
+
//# sourceMappingURL=secretService-CgX8qkVs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secretService-
|
|
1
|
+
{"version":3,"file":"secretService-CgX8qkVs.js","sources":["../src/services/external/secretService.ts"],"sourcesContent":["import type { ChainData, CosmosChain, Token } from \"@0xsquid/squid-types\";\nimport { StargateClient } from \"@cosmjs/stargate\";\nimport type { Keplr } from \"@keplr-wallet/types\";\nimport { SecretNetworkClient } from \"secretjs\";\nimport { CHAIN_IDS } from \"../../core/constants\";\nimport type { TokenWithBalance } from \"../../core/types/tokens\";\nimport type { TypedWindow } from \"../../core/types/wallet\";\nimport { formatBNToReadable } from \"../internal/numberService\";\n\n/**\n * Fetch secret network token balance\n * Using the permit signature, see permit function for more details\n * @param secretJS\n * @param contract\n * @param chainId\n * @param walletAddress\n * @param permit\n * @returns\n */\nexport const getTokenBalance = async (\n secretJS: SecretNetworkClient,\n contract: { address: string; codeHash: string },\n permit: any\n) => {\n if (permit) {\n const msg = {\n balance: {},\n };\n\n const result = await secretJS.query.compute.queryContract({\n contract_address: contract.address,\n code_hash: contract.codeHash,\n query: {\n with_permit: {\n query: msg,\n permit,\n },\n },\n });\n return result;\n }\n return -1;\n};\n\nexport const getPermit = async (\n chainId: string,\n contracts: any[],\n address: string\n) => {\n const contractsString = contracts.join(\"_\");\n const permKey = `perm_${chainId}_${contractsString}_${address}`;\n let permit: any;\n\n const permitStored = window.localStorage.getItem(permKey);\n if (permitStored) permit = JSON.parse(permitStored);\n\n // Not able to fetch permit signature from local storage,\n // Ask user to sign message\n if (!permit) {\n try {\n const result = await (window as TypedWindow).keplr.signAmino(\n chainId,\n address,\n {\n chain_id: chainId,\n account_number: \"0\",\n sequence: \"0\",\n fee: {\n amount: [{ denom: \"uscrt\", amount: \"0\" }],\n gas: \"1\",\n },\n msgs: [\n {\n type: \"query_permit\",\n value: {\n permit_name: \"secret-bridge-balance\",\n allowed_tokens: contracts,\n permissions: [\"balance\"],\n },\n },\n ],\n memo: \"\",\n },\n {\n preferNoSetFee: true,\n preferNoSetMemo: true,\n }\n );\n permit = {\n params: {\n permit_name: \"secret-bridge-balance\",\n allowed_tokens: contracts,\n chain_id: chainId,\n permissions: [\"balance\"],\n },\n signature: result.signature,\n };\n window.localStorage.setItem(permKey, JSON.stringify(permit));\n } catch (err) {\n console.error(\"--- PERMIT ERROR ---\");\n console.error(err);\n }\n }\n return permit;\n};\n\n/**\n * Fetches the secret balance of the user\n * This has a different logic than the other balances because Secret network hides the balance of the user by design\n * So we need to fetch the balance in a different way\n */\nexport const fetchAllSecretBalances = async (\n chainData: ChainData,\n userAddress: string,\n secretTokens: (Token & { codeHash?: string })[],\n keplr?: Keplr\n): Promise<TokenWithBalance[]> => {\n if (!keplr) return [];\n // Enables app to utilize keplr's secret utilities\n await keplr.enable(CHAIN_IDS.SECRET);\n // Create a client that handles the query encryption\n const client = new SecretNetworkClient({\n url: (chainData as CosmosChain).rest,\n chainId: CHAIN_IDS.SECRET,\n wallet: keplr.getOfflineSignerOnlyAmino(CHAIN_IDS.SECRET),\n encryptionUtils: keplr.getEnigmaUtils(CHAIN_IDS.SECRET),\n walletAddress: userAddress,\n });\n\n // Get secret tokens\n\n const permit = await getPermit(\n CHAIN_IDS.SECRET,\n secretTokens.map((st) => st.address),\n userAddress\n );\n\n // Fetching all balances in parallel\n const privateTokens = await Promise.all(\n secretTokens\n .filter((t) => !!t.codeHash)\n .map(async (token) => {\n const result = (await getTokenBalance(\n client,\n {\n address: token.address,\n codeHash: token.codeHash ?? \"\",\n },\n permit\n )) as { balance: { amount: string } };\n\n return {\n ...token,\n balance: formatBNToReadable(\n BigInt(result.balance.amount),\n token?.decimals\n ),\n } as TokenWithBalance;\n })\n );\n\n // Use Stargate getBalance for SCRT\n const stargateClient = await StargateClient.connect(chainData.rpc);\n const nativeSecretToken = secretTokens.find((t) => t.address === \"uscrt\");\n\n const publicTokenBalance = await stargateClient.getBalance(\n userAddress,\n \"uscrt\"\n );\n\n const publicTokenWithBalance = {\n ...nativeSecretToken,\n balance: formatBNToReadable(\n BigInt(publicTokenBalance.amount),\n nativeSecretToken?.decimals ?? 18\n ),\n } as TokenWithBalance;\n\n return [...privateTokens, publicTokenWithBalance];\n};\n"],"names":["CHAIN_IDS","SecretNetworkClient","formatBNToReadable","StargateClient"],"mappings":"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"}
|