useDirectListings
Hook to get all the direct listings from a Marketplace V3 contract.
This hook is only for Marketplace V3 contracts.
For Marketplace
contracts, use useListings
instead.
import { useDirectListings, useContract } from "@thirdweb-dev/react"; function App() { const { contract } = useContract(contractAddress, "marketplace-v3"); const { data: directListings, isLoading, error, } = useDirectListings(contract);}
function useDirectListings( contract: RequiredParam<MarketplaceV3>,
filter to pass to the query for the sake of pagination & filtering
import { useDirectListings, useContract } from "@thirdweb-dev/react"; function App() { const { contract } = useContract(contractAddress, "marketplace-v3"); const { data: directListings, isLoading, error, } = useDirectListings(contract, { count: 100, // Number of listings to fetch offeror: "{{offeror_address}}", // Has offers from this address seller: "{{seller_address}}", // Being sold by this address start: 0, // Start from this index (pagination) tokenContract: "{{token_contract_address}}", // Only show listings for NFTs from this collection tokenId: "{{token_id}}", // Only show listings with this NFT ID });}
The hook's data property, once loaded, is a DirectListingV3
object, containing the following properties:
{ // The id of the listing. id: string; // The address of the creator of listing. creatorAddress: string; // The address of the asset being listed. assetContractAddress: string; // The ID of the token to list. tokenId: string; // The quantity of tokens to include in the listing. // For ERC721s, this value should always be 1 (and will be forced internally regardless of what is passed here). quantity: string; // The address of the currency to accept for the listing. currencyContractAddress: string; // The `CurrencyValue` of the listing. Useful for displaying the price information. currencyValuePerToken: CurrencyValue; // The price to pay per unit of NFTs listed. pricePerToken: string; // The asset being listed. asset: NFTMetadata; // The start time of the listing. startTimeInSeconds: number; // The end time of the listing. endTimeInSeconds: number; // Whether the listing is reserved to be bought from a specific set of buyers. isReservedListing: boolean; // Whether the listing is CREATED, COMPLETED, or CANCELLED. status: Status;}