> ## Documentation Index
> Fetch the complete documentation index at: https://frenglish.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# useGetSwapQuote

> Hook para obtener cotizaciones ejecutables de swap con datos de transacción

## Importar

```tsx theme={null}
import { useGetSwapQuote } from '@0xsequence/hooks'
```

## Uso

```tsx theme={null}
import { useGetSwapQuote } from '@0xsequence/hooks'

function SwapComponent() {
  const { data: swapQuote, isLoading } = useGetSwapQuote({
    userAddress: '0x123...',
    buyCurrencyAddress: '0x456...',
    sellCurrencyAddress: '0x789...',
    buyAmount: '1000000000000000000', 
    chainId: 1,
    includeApprove: true
  })

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

  return (
    <div>
      {swapQuote && (
        <div>
          Currency: {swapQuote.currencyAddress}
          Price: {swapQuote.price}
          Max Price: {swapQuote.maxPrice}
          Transaction Value: {swapQuote.transactionValue}
        </div>
      )}
    </div>
  )
}
```

## Tipo de retorno: `UseQueryResult<SwapQuote>`

El hook retorna todas las propiedades de `UseQueryResult` de React Query con los datos de la cotización de swap. Esta es la estructura detallada:

```tsx theme={null}
interface SwapQuote {
  currencyAddress: string
  currencyBalance: string
  price: string
  maxPrice: string
  to: string
  transactionData: string
  transactionValue: string
  approveData: 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`: Dirección del contrato destino para el swap
* `transactionData`: Datos codificados de la transacción para ejecutar el swap
* `transactionValue`: Valor a enviar con la transacción
* `approveData`: Datos codificados de la transacción de aprobación (si includeApprove es verdadero)

#### 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: `UseGetSwapQuoteArgs`

```tsx theme={null}
interface UseGetSwapQuoteArgs {
  userAddress: string
  buyCurrencyAddress: string
  sellCurrencyAddress: string
  buyAmount: string
  chainId: number
  includeApprove?: boolean
  slippagePercentage?: number
}
```

| Parámetro             | Type      | Description                                                                     |
| --------------------- | --------- | ------------------------------------------------------------------------------- |
| `userAddress`         | `string`  | La dirección del wallet del usuario                                             |
| `buyCurrencyAddress`  | `string`  | La dirección de la moneda a comprar                                             |
| `sellCurrencyAddress` | `string`  | La dirección de la moneda a vender                                              |
| `buyAmount`           | `string`  | La cantidad de moneda a comprar (en unidades base)                              |
| `chainId`             | `number`  | El chain ID donde se realizará el swap                                          |
| `includeApprove`      | `boolean` | (Opcional) Indica si se deben incluir los datos de la transacción de aprobación |
| `slippagePercentage`  | `number`  | (Opcional) Porcentaje máximo de slippage permitido                              |

### options: `HooksOptions`

```tsx theme={null}
interface HooksOptions {
  disabled?: boolean
  retry?: boolean
}
```

| Parámetro  | Type      | Description                                                                |
| ---------- | --------- | -------------------------------------------------------------------------- |
| `disabled` | `boolean` | (Opcional) Deshabilitar la consulta para que no se ejecute automáticamente |
| `retry`    | `boolean` | (Opcional) Indica si se deben reintentar las consultas fallidas            |
