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.

Example

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>,
): UseQueryResult<Array<DirectListingV3>, unknown>;

Parameters

Instance of a MarketplaceV3 contract

Type

let 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
});
}

Type

let filter: MarketplaceFilter;

Returns

let returnType: UseQueryResult<Array<DirectListingV3>, unknown>;

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