Importar

import { useGetSwapQuote } from '@0xsequence/hooks'

Uso

import { useGetSwapQuote } from '@0xsequence/hooks'

function SwapComponent() {
  const { data: swapQuote, isLoading } = useGetSwapQuote({
    params: {
      walletAddress: '0x123...',
      fromTokenAddress: '0x456...',
      toTokenAddress: '0x789...',
      toTokenAmount: '1000000000000000000', // amount to buy in wei
      chainId: 1,
      includeApprove: true,
      slippageBps: 100 // 1% slippage
    }
  })

  if (isLoading) return <div>Loading...</div>

  return (
    <div>
      {swapQuote && (
        <div>
          Price: {swapQuote.price}
          Max Price: {swapQuote.maxPrice}
          Transaction Value: {swapQuote.transactionValue}
          <button onClick={() => executeSwap(swapQuote)}>Swap</button>
        </div>
      )}
    </div>
  )
}

Tipo de retorno: UseQueryResult<LifiSwapQuote>

El hook retorna todas las propiedades de UseQueryResult de React Query con los datos de la cotización del swap. Aquí está la estructura detallada de swapQuote.

interface LifiSwapQuote {
    currencyAddress: string;
    currencyBalance: string;
    price: string;
    maxPrice: string;
    to: string;
    transactionData: string;
    transactionValue: string;
    approveData: string;
    amount: string;
    amountMin: string;
}

Propiedades

data

SwapQuote | undefined

El objeto de cotización de swap contiene:

  • currencyAddress: Dirección de la moneda a intercambiar
  • currencyBalance: Balance de la moneda en el wallet del usuario
  • price: El precio actual para el swap
  • maxPrice: Precio máximo permitido para el swap (incluye slippage)
  • to: La dirección del contrato de destino que gestiona el swap
  • transactionData: Datos codificados de la transacción para ejecutar el swap
  • transactionValue: El valor que se enviará con la transacción (para tokens nativos)
  • approveData: Datos codificados de la transacción de aprobación (si includeApprove es true y es necesario)
  • amount: La cantidad de moneda a recibir
  • amountMin: La cantidad mínima a recibir después del slippage

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: GetLifiSwapQuoteArgs

interface GetLifiSwapQuoteArgs {
  params: GetLifiSwapQuoteParams
}

interface GetLifiSwapQuoteParams {
    chainId: number;
    walletAddress: string;
    fromTokenAddress: string;
    toTokenAddress: string;
    fromTokenAmount?: string;
    toTokenAmount?: string;
    includeApprove: boolean;
    slippageBps: number;
}
ParámetroTypeDescription
params.chainIdnumberEl chain ID donde se realizará el swap
params.walletAddressstringLa dirección del wallet del usuario
params.fromTokenAddressstringLa dirección del token a vender
params.toTokenAddressstringLa dirección del token a comprar
params.fromTokenAmountstring(Opcional) La cantidad de token a vender (en wei)
params.toTokenAmountstring(Opcional) La cantidad de token a comprar (en wei)
params.includeApprovebooleanIndica si se deben incluir los datos de la transacción de aprobación
params.slippageBpsnumberSlippage máximo permitido en puntos base (100 = 1%)

Nota: Debe proporcionar fromTokenAmount o toTokenAmount, pero no ambos.

options: HooksOptions

interface HooksOptions {
  disabled?: boolean
  retry?: 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 (por defecto es true)