Skip to main content

useCancelListing

Hook for canceling an existing auction or listing on a Marketplace contract.

Note: Auction listings cannot be canceled if a bid has been placed.

Marketplace V3

Note: This hook is only for Marketplace contracts.

For Marketplace V3 contracts, use useCancelDirectListing or useCancelEnglishAuction instead.

import { useCancelListing } from "@thirdweb-dev/react";

const { mutateAsync, isLoading, error } = useCancelListing(contract);

Usage​

Provide your marketplace contract as the argument.

Then, provide the listing ID and the type of listing in an object to the mutation.

import { useCancelListing, useContract, Web3Button } from "@thirdweb-dev/react";
import { ListingType } from "@thirdweb-dev/sdk";

// Your smart contract address
const contractAddress = "{{contract_address}}";

function App() {
const { contract } = useContract(contractAddress, "marketplace");
const {
mutateAsync: cancelListing,
isLoading,
error,
} = useCancelListing(contract);

return (
<Web3Button
contractAddress={contractAddress}
action={() =>
cancelListing({
id: "{{listing_id}}",
type: ListingType.Direct, // Direct (0) or Auction (1)
})
}
>
Cancel Listing
</Web3Button>
);
}

Configuration​

listingId (required)

listingId (required)​

The ID of the listing you want to cancel.

Will populate the error property if the listing is not active, or was not created by the wallet.

import { useCancelListing, useContract, Web3Button } from "@thirdweb-dev/react";
import { ListingType } from "@thirdweb-dev/sdk";

// Your smart contract address
const contractAddress = "{{contract_address}}";

function App() {
const { contract } = useContract(contractAddress, "marketplace");
const {
mutateAsync: cancelListing,
isLoading,
error,
} = useCancelListing(contract);

return (
<Web3Button
contractAddress={contractAddress}
action={() =>
cancelListing({
id: "{{listing_id}}",
type: ListingType.Direct, // Direct (0) or Auction (1)
})
}
>
Cancel Listing
</Web3Button>
);
}
listingType (required)

listingType (required)​

The type of listing you are canceling. Either ListingType.Direct (0) or ListingType.Auction (1).

import { useCancelListing, useContract, Web3Button } from "@thirdweb-dev/react";
import { ListingType } from "@thirdweb-dev/sdk";

// Your smart contract address
const contractAddress = "{{contract_address}}";

function App() {
const { contract } = useContract(contractAddress, "marketplace");
const {
mutateAsync: cancelListing,
isLoading,
error,
} = useCancelListing(contract);

return (
<Web3Button
contractAddress={contractAddress}
action={() =>
cancelListing({
id: "{{listing_id}}",
type: ListingType.Direct, // Direct (0) or Auction (1)
})
}
>
Cancel Listing
</Web3Button>
);
}