インポート

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

使い方

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 の詳細な構造は以下の通りです。

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

interface GetLifiSwapQuoteArgs {
  params: GetLifiSwapQuoteParams
}

interface GetLifiSwapQuoteParams {
    chainId: number;
    walletAddress: string;
    fromTokenAddress: string;
    toTokenAddress: string;
    fromTokenAmount?: string;
    toTokenAmount?: string;
    includeApprove: boolean;
    slippageBps: number;
}
パラメータ説明
params.chainIdnumberスワップが行われるチェーンID
params.walletAddressstringユーザーのウォレットアドレス
params.fromTokenAddressstring売却するトークンのアドレス
params.toTokenAddressstring購入するトークンのアドレス
params.fromTokenAmountstring(オプション)売却するトークンの数量(wei単位)
params.toTokenAmountstring(オプション)購入するトークンの数量(wei単位)
params.includeApproveboolean承認トランザクションデータを含めるかどうか
params.slippageBpsnumber許容される最大スリッページ(ベーシスポイント単位、100 = 1%)

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

options: HooksOptions

interface HooksOptions {
  disabled?: boolean
  retry?: boolean
}
パラメータ説明
disabledboolean(オプション)クエリの自動実行を無効にします
retryboolean(オプション)失敗したクエリを再試行するかどうか(デフォルトは true)