> ## 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

> スワップの見積もりを取得するためのフック

## インポート

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

## 使い方

```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>
  )
}
```

## 返り値の型: `UseQueryResult<LifiSwapQuote>`

このフックは、React Query の `UseQueryResult` すべてのプロパティとスワップ見積もりデータを返します。swapQuote の詳細な構造は以下の通りです。

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

### プロパティ

#### data

`SwapQuote | undefined`

スワップ見積もりオブジェクト（以下を含む）：

* `currencyAddress`: スワップ対象通貨のアドレス
* `currencyBalance`: ユーザーのウォレット内の通貨残高
* `price`: 現在のスワップ価格
* `maxPrice`: スリッページを含むスワップの最大許容価格
* `to`: スワップを処理する対象コントラクトのアドレス
* `transactionData`: スワップ実行用のエンコード済みトランザクションデータ
* `transactionValue`: トランザクションと一緒に送信される値（ネイティブトークンの場合）
* `approveData`: 承認トランザクションのエンコード済みデータ（includeApprove が true かつ必要な場合）
* `amount`: 受け取る通貨の数量
* `amountMin`: スリッページ後に受け取る最小数量

#### isLoading

`boolean`

データ取得時のローディング状態。

#### isError

`boolean`

クエリが失敗した場合のエラー状態。

#### エラー

`Error | null`

データ取得中に発生したエラー内容。

## パラメータ

このフックは2つのパラメータを受け取ります：

### 引数: `GetLifiSwapQuoteArgs`

```tsx
interface GetLifiSwapQuoteArgs {
  params: GetLifiSwapQuoteParams
}

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

| パラメータ                     | 型         | 説明                                 |
| ------------------------- | --------- | ---------------------------------- |
| `params.chainId`          | `number`  | スワップが行われるチェーンID                    |
| `params.walletAddress`    | `string`  | ユーザーのウォレットアドレス                     |
| `params.fromTokenAddress` | `string`  | 売却するトークンのアドレス                      |
| `params.toTokenAddress`   | `string`  | 購入するトークンのアドレス                      |
| `params.fromTokenAmount`  | `string`  | （オプション）売却するトークンの数量（wei単位）          |
| `params.toTokenAmount`    | `string`  | （オプション）購入するトークンの数量（wei単位）          |
| `params.includeApprove`   | `boolean` | 承認トランザクションデータを含めるかどうか              |
| `params.slippageBps`      | `number`  | 許容される最大スリッページ（ベーシスポイント単位、100 = 1%） |

**注意**: `fromTokenAmount` または `toTokenAmount` のいずれか一方を必ず指定してください。両方同時には指定できません。

### options: `HooksOptions`

```tsx
interface HooksOptions {
  disabled?: boolean
  retry?: boolean
}
```

| パラメータ      | 型         | 説明                                    |
| ---------- | --------- | ------------------------------------- |
| `disabled` | `boolean` | （オプション）クエリの自動実行を無効にします                |
| `retry`    | `boolean` | （オプション）失敗したクエリを再試行するかどうか（デフォルトは true） |
