useAcceptDirectListingOffer
Hook for accepting an offer from a direct listing.
Allows the seller (the user who listed the NFT for sale) to accept an offer on their listing.
This process will trigger a sale event, meaning the:
- NFT(s) are transferred from the seller to the buyer,
- Funds from the offeror are sent to the seller.
import { useAcceptDirectListingOffer } from "@thirdweb-dev/react";
Usage
Provide a Marketplace
contract instance from the useContract
hook as the first argument.
Provide the:
listingId
: the ID of the listing you wish to accept the offer for.addressOfOfferor
: the wallet address of the offeror.
import {
useAcceptDirectListingOffer,
useContract,
Web3Button,
} from "@thirdweb-dev/react";
// Your smart contract address
const contractAddress = "{{contract_address}}";
function App() {
const { contract } = useContract(contractAddress, "marketplace");
const {
mutateAsync: acceptDirectOffer,
isLoading,
error,
} = useAcceptDirectListingOffer(contract);
if (error) {
console.error("failed to accept direct offer", error);
}
return (
<Web3Button
contractAddress={contractAddress}
action={() =>
acceptDirectOffer({
listingId: "{{listing_id}}",
addressOfOfferor: "{{offeror_address}}",
})
}
>
Accept Offer
</Web3Button>
);
}
Configuration
listingId
The listingId
of the listing you wish to accept.
Each listing has a unique listingId
on the marketplace contract.
addressOfOfferor
The wallet address of the user who made the offer you wish to accept.
The useEvents
hook can be used to read all NewOffer
events on your marketplace contract.