Importar

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

Uso

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

Tipo de retorno: UseERC1155SaleContractCheckoutReturnType

El hook retorna un objeto con las siguientes propiedades:

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

Propiedades

openCheckoutModal

() => void

Función para abrir el modal de checkout con la compra ERC-1155 configurada.

closeCheckoutModal

() => void

Función para cerrar el modal de checkout.

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
}

La configuración actual de pago para el modal.

isLoading

boolean

Indica si los datos del contrato aún se están cargando.

isError

boolean

Indica si hubo un error al cargar los datos del contrato.

Parámetros

El hook acepta un objeto de configuración con las siguientes propiedades:

ParámetroTypeDescription
chainnumberID de cadena donde está desplegado el contrato de venta
contractAddressstringDirección del contrato de venta ERC-1155
walletstringDirección del wallet que recibirá los NFTs
collectionAddressstringDirección del contrato de token ERC-1155
itemsArray<{tokenId: string, quantity: string}>Lista de IDs de token y cantidades a comprar
onSuccess(txnHash: string) => void(Opcional) Función callback cuando la transacción es exitosa
onError(error: Error) => void(Opcional) Función callback cuando ocurre un error
onClose() => void(Opcional) Función callback cuando se cierra el modal

Notas

Este hook simplifica el proceso de compra de tokens ERC-1155 al realizar automáticamente las siguientes acciones:

  • Obtener información de precios desde el contrato de venta
  • Determinar opciones de pago (cripto, tarjeta de crédito, etc.)
  • Generar los datos de transacción adecuados
  • Abrir y gestionar el modal de checkout

Aviso de Deprecación

El hook useERC1155SaleContractPaymentModal está obsoleto. Use useERC1155SaleContractCheckout en su lugar.