Offers
Functionality available for contracts that implement the
IOffers interface.
acceptOffer
Accept an offer placed on your NFT.
const txResult = await contract.offers.acceptOffer("{{offer_id}}");
Configuration
offerId
The ID of the offer to accept.
You can view all offers with getAll or
getAllValid.
Must be a string, number, or BigNumber.
cancelOffer
Cancel an offer you made on an NFT.
const txResult = await contract.offers.cancelOffer("{{offer_id}}");
Configuration
offerId
The ID of the offer to cancel.
You can view all offers with getAll or
getAllValid.
Must be a string, number, or BigNumber.
getAll
Get all offers on the smart contract.
Optionally, provide a filter to filter the offers returned.
const offers = await contract.offers.getAll();
Configuration
filter (optional)
Filter the results returned by the function.
const offers = await contract.offers.getAll({
offeror: "{{wallet_address}}", // Offers made by this wallet address
seller: "{{wallet_address}}", // Offers on items being sold by this wallet address
tokenContract: "{{contract_address}}", // Offers on items from this contract
tokenId: "{{token_id}}", // Offers on this specific token
start: 0, // Pagination: Start from this index
count: 100, // Pagination: Return this many results
});
Return Value
Returns an array of OfferV3 objects, containing the following properties:
{
id: string; // The id of the offer.
offerorAddress: string; // The wallet address of the creator of offer.
assetContractAddress: string; // The address of the asset being offered on.
tokenId: string; // The ID of the token.
quantity: string; // The quantity of tokens offered to buy
currencyContractAddress: string; // The address of the currency offered for the NFTs.
currencyValue: CurrencyValue; // The `CurrencyValue` of the offer. Useful for displaying the price information.
totalPrice: string; // The total offer amount for the NFTs.
asset: NFTMetadata; // Metadata of the asset
endTimeInSeconds: number; // The end time of the offer.
status: Status; // Whether the listing is CREATED, COMPLETED, or CANCELLED.
}
[];
getAllValid
Get all the valid offers on the smart contract.
Valid offers are offers that have not expired, been canceled, or been accepted.
const offers = await contract.offers.getAllValid();
Configuration
filter (optional)
Filter the results returned by the function.
const offers = await contract.offers.getAllValid({
offeror: "{{wallet_address}}", // Offers made by this wallet address
seller: "{{wallet_address}}", // Offers on items being sold by this wallet address
tokenContract: "{{contract_address}}", // Offers on items from this contract
tokenId: "{{token_id}}", // Offers on this specific token
start: 0, // Pagination: Start from this index
count: 100, // Pagination: Return this many results
});
Return Value
Returns an array of OfferV3 objects, containing the following properties:
{
id: string; // The id of the offer.
offerorAddress: string; // The wallet address of the creator of offer.
assetContractAddress: string; // The address of the asset being offered on.
tokenId: string; // The ID of the token.
quantity: string; // The quantity of tokens offered to buy
currencyContractAddress: string; // The address of the currency offered for the NFTs.
currencyValue: CurrencyValue; // The `CurrencyValue` of the offer. Useful for displaying the price information.
totalPrice: string; // The total offer amount for the NFTs.
asset: NFTMetadata; // Metadata of the asset
endTimeInSeconds: number; // The end time of the offer.
status: Status; // Whether the listing is CREATED, COMPLETED, or CANCELLED.
}
[];
getOffer
Get information about a specific offer using the offer’s ID.
const offer = await contract.offers.getOffer("{{offer_id}}");
Configuration
offerId
The ID of the offer to get information about.
You can view all offers with getAll or
getAllValid.
Return Value
Returns a single OfferV3 object containing the following properties:
{
id: string; // The id of the offer.
offerorAddress: string; // The wallet address of the creator of offer.
assetContractAddress: string; // The address of the asset being offered on.
tokenId: string; // The ID of the token.
quantity: string; // The quantity of tokens offered to buy
currencyContractAddress: string; // The address of the currency offered for the NFTs.
currencyValue: CurrencyValue; // The `CurrencyValue` of the offer. Useful for displaying the price information.
totalPrice: string; // The total offer amount for the NFTs.
asset: NFTMetadata; // Metadata of the asset
endTimeInSeconds: number; // The end time of the offer.
status: Status; // Whether the listing is CREATED, COMPLETED, or CANCELLED.
}
getTotalCount
Get the total number of offers on the smart contract
const numOffers = await contract.offers.getTotalCount();
Configuration
Return Value
Returns a BigNumber representing the total number of offers on the smart contract.
BigNumber;
makeOffer
Make a new offer on an NFT.
Offers can be made on any NFT, regardless of whether it is listed for sale or not.
const txResult = await contract?.offers.makeOffer({
assetContractAddress: "{{contract_address}}", // Required - the contract address of the NFT to offer on
tokenId: "{{token_id}}", // Required - the token ID to offer on
totalPrice: "{{offer_price}}", // Required - the price to offer in the currency specified
currencyContractAddress: "{{contract_address}}", // Optional - defaults to the native wrapped currency
endTimestamp: new Date(Date.now() + 1000 * 60 * 60 * 24 * 365 * 10), // Optional - Defaults to 10 years from now
quantity: 1, // Optional - defaults to 1
});
Configuration
assetContractAddress
The smart contract address of the NFT to make an offer on.
Required. Must be a string.
tokenId
The token ID of the NFT to make an offer on.
Required. Must be a string, number, or BigNumber.
totalPrice
The price to offer.
Required. Must be a string or a number.
currencyContractAddress
The smart contract address of the currency to offer in.
Optional. Defaults to the native wrapped currency. e.g. Wrapped Ether for Ethereum, or wMatic for Polygon.
Must be a string.
endTimestamp
The timestamp at which the offer will expire.
Optional. Defaults to 10 years from now.
Must be a Date object.
quantity
The quantity of NFTs you are offering to buy.
This is relevant for ERC1155 NFTs where you can buy multiple tokens at once.
Optional. Defaults to 1.
Must be a string, number, or BigNumber.