Importar

import { useGetSingleTokenBalanceSummary, ZERO_ADDRESS } from '@0xsequence/hooks'

Uso

import { useGetSingleTokenBalanceSummary, ZERO_ADDRESS } from '@0xsequence/hooks'
import { useAccount } from 'wagmi'

// Fetch native ETH balance
function NativeBalance() {
  const { address } = useAccount()
  
  const {
    data: ethBalance,
    isLoading,
    isError
  } = useGetSingleTokenBalanceSummary({
    chainId: 1,
    accountAddress: address || '',
    contractAddress: ZERO_ADDRESS
  })

  if (isLoading) return <div>Loading...</div>
  if (isError) return <div>Error fetching balance</div>

  return <div>ETH Balance: {ethBalance?.balance}</div>
}

// Fetch USDC balance
function TokenBalance() {
  const { address } = useAccount()
  
  const {
    data: usdcBalance,
    isLoading,
    isError
  } = useGetSingleTokenBalanceSummary({
    chainId: 1,
    accountAddress: address || '',
    contractAddress: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', // USDC
    hideCollectibles: true
  })

  if (isLoading) return <div>Loading...</div>
  if (isError) return <div>Error fetching balance</div>

  return <div>USDC Balance: {usdcBalance?.balance}</div>
}

Tipo de retorno: UseQueryResult<TokenBalance>

El hook retorna todas las propiedades de UseQueryResult de React Query con los datos de balances de tokens. Esta es la estructura detallada:

interface TokenBalance {
  contractType: ContractType
  contractAddress: string
  accountAddress: string
  tokenID?: string
  balance: string
  blockHash: string
  blockNumber: number
  chainId: number
  uniqueCollectibles: string
  isSummary: boolean
  contractInfo?: ContractInfo
  tokenMetadata?: TokenMetadata
}

Propiedades

data

TokenBalance | undefined

Objeto de balance de token que contiene:

  • contractType: El tipo de contrato (ERC20, ERC721, ERC1155)
  • contractAddress: Dirección del contrato del token
  • La dirección cuyo balance fue consultado
  • balance: El monto del balance en las unidades base del token
  • chainId: El ID de la cadena de donde se obtuvo el balance
  • blockHash: Hash del bloque que contiene el balance
  • blockNumber: Número del bloque que contiene el balance
  • tokenID: ID de token opcional para NFTs
  • uniqueCollectibles: Cantidad de coleccionables únicos
  • isSummary: Indica si este es un balance de resumen
  • contractInfo: Información opcional del contrato
  • tokenMetadata: Metadatos opcionales del token

isLoading

boolean

Estado de carga para la obtención de datos.

isError

boolean

Estado de error que indica si la consulta falló.

error

Error | null

Cualquier error que ocurrió durante la obtención de datos.

Parámetros

El hook acepta dos parámetros:

args: GetSingleTokenBalanceSummaryArgs

interface GetSingleTokenBalanceSummaryArgs {
  chainId: number
  accountAddress: string
  contractAddress: string
}
ParámetroTypeDescription
chainIdnumberEl chain ID del cual obtener el balance
accountAddressstringLa dirección para la cual obtener el balance
contractAddressstringLa dirección del contrato del token (use ZERO_ADDRESS para tokens nativos)

options: BalanceHookOptions

interface BalanceHookOptions {
  disabled?: boolean
  retry?: boolean
  hideCollectibles?: boolean
}
ParámetroTypeDescription
disabledboolean(Opcional) Deshabilitar la consulta para que no se ejecute automáticamente
retryboolean(Opcional) Indica si se deben reintentar las consultas fallidas
hideCollectiblesboolean(Opcional) Si es true, filtra tokens ERC721 y ERC1155