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

# useGetSwapQuote

> Hook para obtener cotizaciones para un swap

## Importar

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

## Uso

```tsx
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.

```tsx
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`

```tsx
interface GetLifiSwapQuoteArgs {
  params: GetLifiSwapQuoteParams
}

interface GetLifiSwapQuoteParams {
    chainId: number;
    walletAddress: string;
    fromTokenAddress: string;
    toTokenAddress: string;
    fromTokenAmount?: string;
    toTokenAmount?: string;
    includeApprove: boolean;
    slippageBps: number;
}
```

| Parámetro                 | Type      | Description                                                          |
| ------------------------- | --------- | -------------------------------------------------------------------- |
| `params.chainId`          | `number`  | El chain ID donde se realizará el swap                               |
| `params.walletAddress`    | `string`  | La dirección del wallet del usuario                                  |
| `params.fromTokenAddress` | `string`  | La dirección del token a vender                                      |
| `params.toTokenAddress`   | `string`  | La dirección del token a comprar                                     |
| `params.fromTokenAmount`  | `string`  | (Opcional) La cantidad de token a vender (en wei)                    |
| `params.toTokenAmount`    | `string`  | (Opcional) La cantidad de token a comprar (en wei)                   |
| `params.includeApprove`   | `boolean` | Indica si se deben incluir los datos de la transacción de aprobación |
| `params.slippageBps`      | `number`  | Slippage máximo permitido en puntos base (100 = 1%)                  |

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

### options: `HooksOptions`

```tsx
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 (por defecto es true) |
