インポート

import { useERC1155SaleContractCheckout } from '@0xsequence/checkout'

使い方

import { useERC1155SaleContractCheckout } from "@0xsequence/checkout"
import { useAccount } from "wagmi"

function App() {
  const { address: userAddress } = useAccount()
  const { openCheckoutModal } = useERC1155SaleContractCheckout({
    chain: 80001, // chainId of the chain the collectible is on
    contractAddress: "0x0327b2f274e04d292e74a06809bcd687c63a4ba4", // address of the contract handling the minting function
    wallet: userAddress!, // address of the recipient
    collectionAddress: "0x888a322db4b8033bac3ff84412738c096f87f9d0", // address of the collection contract
    items: [
      // array of collectibles to purchase
      {
        tokenId: "0",
        quantity: "1",
      },
    ],
    onSuccess: (txnHash: string) => {
      console.log("success!", txnHash)
    },
    onError: (error: Error) => {
      console.error(error)
    },
  })

  const onClick = () => {
    if (!userAddress) {
      return
    }
    openCheckoutModal()
  }

  return <button onClick={onClick}>Buy ERC-1155 collectible!</button>
}

返り値の型: UseERC1155SaleContractCheckoutReturnType

このフックは以下のプロパティを持つオブジェクトを返します。

interface UseERC1155SaleContractCheckoutReturnType {
  openCheckoutModal: () => void
  closeCheckoutModal: () => void
  selectPaymentSettings?: SelectPaymentSettings
  isLoading: boolean
  isError: boolean
}

プロパティ

openCheckoutModal

() => void

設定済みのERC-1155購入でチェックアウトモーダルを開く関数です。

closeCheckoutModal

() => void

チェックアウトモーダルを閉じる関数です。

selectPaymentSettings

SelectPaymentSettings | undefined

export interface SelectPaymentSettings {
  collectibles: Collectible[]
  chain: number | string
  currencyAddress: string | Hex
  price: string
  targetContractAddress: string | Hex
  txData: Hex
  collectionAddress: string | Hex
  recipientAddress: string | Hex
  approvedSpenderAddress?: string
  transactionConfirmations?: number
  onSuccess?: (txHash: string) => void
  onError?: (error: Error) => void
  onClose?: () => void
  enableMainCurrencyPayment?: boolean
  enableSwapPayments?: boolean
  enableTransferFunds?: boolean
  creditCardProviders?: string[]
  copyrightText?: string
  transakConfig?: TransakConfig
  customProviderCallback?: (onSuccess: (txHash: string) => void, onError: (error: Error) => void, onClose: () => void) => void
  supplementaryAnalyticsInfo?: SupplementaryAnalyticsInfo
}

モーダルの現在の支払い設定構成です。

isLoading

boolean

コントラクトデータがまだ読み込み中かどうか。

isError

boolean

コントラクトデータの読み込み時にエラーが発生したかどうか。

パラメータ

このフックは、以下のプロパティを持つ設定オブジェクトを受け取ります:

パラメータ説明
chainnumber販売コントラクトがデプロイされているチェーンID
contractAddressstringERC-1155販売コントラクトのアドレス
walletstringNFTを受け取るウォレットのアドレス
collectionAddressstringERC-1155トークンコントラクトのアドレス
itemsArray<{tokenId: string, quantity: string}>購入するトークンIDと数量の配列。
onSuccess(txnHash: string) => void(オプション)トランザクションが成功した際のコールバック関数
onError(error: Error) => void(オプション)エラー発生時のコールバック関数
onClose() => void(オプション)モーダルが閉じられた際のコールバック関数

補足

このフックは、ERC-1155トークンの購入プロセスを自動化し、以下の作業を簡単にします。

  • 販売コントラクトから価格情報を取得。
  • 支払いオプション(暗号資産、クレジットカードなど)を判定。
  • 適切なトランザクションデータを生成。
  • チェックアウトモーダルの表示と管理。

非推奨のお知らせ

useERC1155SaleContractPaymentModalフックは非推奨です。代わりにuseERC1155SaleContractCheckoutをご利用ください。