@reservoir0x/relay-kit-ui
Version:
Relay is the Fastest and Cheapest Way to Bridge and Transact Across Chains.
45 lines • 1.58 kB
JavaScript
import { useQuery } from '@tanstack/react-query';
import useRelayClient from './useRelayClient.js';
export default (address, coinType = '0x2::sui::SUI', queryOptions) => {
const client = useRelayClient();
const rpcUrl = client?.baseApiUrl?.includes('testnet')
? 'https://fullnode.testnet.sui.io:443'
: 'https://fullnode.mainnet.sui.io:443';
const queryKey = ['useSuiBalance', address, coinType, rpcUrl];
const response = useQuery({
queryKey,
queryFn: async () => {
const payload = {
jsonrpc: '2.0',
id: 1,
method: 'suix_getBalance',
params: [address, coinType]
};
const response = await fetch(rpcUrl, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(payload)
});
const data = await response.json();
if (data.error) {
throw new Error(data.error.message);
}
const result = data.result;
return {
balance: BigInt(result.totalBalance),
lockedBalance: BigInt(Object.values(result.lockedBalance)[0] || 0)
};
},
enabled: address !== undefined,
...queryOptions
});
return {
...response,
balance: response.data?.balance,
lockedBalance: response.data?.lockedBalance,
queryKey
};
};
//# sourceMappingURL=useSuiBalance.js.map