Skip to main content

Marketplace

Methods

DEFAULT_ADMIN_ROLE

function DEFAULT_ADMIN_ROLE() external view returns (bytes32)

Returns

NameTypeDescription
_0bytes32undefined

MAX_BPS

function MAX_BPS() external view returns (uint64)

The max bps of the contract. So, 10_000 == 100 %

Returns

NameTypeDescription
_0uint64undefined

acceptOffer

function acceptOffer(uint256 _listingId, address _offeror, address _currency, uint256 _pricePerToken) external nonpayable

Lets a listing's creator accept an offer for their direct listing.

Parameters

NameTypeDescription
_listingIduint256undefined
_offeroraddressundefined
_currencyaddressundefined
_pricePerTokenuint256undefined

bidBufferBps

function bidBufferBps() external view returns (uint64)

The minimum % increase required from the previous winning bid. Default: 5%.

Returns

NameTypeDescription
_0uint64undefined

buy

function buy(uint256 _listingId, address _buyFor, uint256 _quantityToBuy, address _currency, uint256 _totalPrice) external payable

Lets an account buy a given quantity of tokens from a listing.

Parameters

NameTypeDescription
_listingIduint256undefined
_buyForaddressundefined
_quantityToBuyuint256undefined
_currencyaddressundefined
_totalPriceuint256undefined

cancelDirectListing

function cancelDirectListing(uint256 _listingId) external nonpayable

Lets a direct listing creator cancel their listing.

Parameters

NameTypeDescription
_listingIduint256undefined

closeAuction

function closeAuction(uint256 _listingId, address _closeFor) external nonpayable

Lets an account close an auction for either the (1) winning bidder, or (2) auction creator.

Parameters

NameTypeDescription
_listingIduint256undefined
_closeForaddressundefined

contractType

function contractType() external pure returns (bytes32)

Returns the type of the contract.

Returns

NameTypeDescription
_0bytes32undefined

contractURI

function contractURI() external view returns (string)

Contract level metadata.

Returns

NameTypeDescription
_0stringundefined

contractVersion

function contractVersion() external pure returns (uint8)

Returns the version of the contract.

Returns

NameTypeDescription
_0uint8undefined

createListing

function createListing(IMarketplace.ListingParameters _params) external nonpayable

Lets a token owner list tokens for sale: Direct Listing or Auction.

Parameters

NameTypeDescription
_paramsIMarketplace.ListingParametersundefined

getPlatformFeeInfo

function getPlatformFeeInfo() external view returns (address, uint16)

Returns the platform fee recipient and bps.

Returns

NameTypeDescription
_0addressundefined
_1uint16undefined

getRoleAdmin

function getRoleAdmin(bytes32 role) external view returns (bytes32)

Returns the admin role that controls role. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.

Parameters

NameTypeDescription
rolebytes32undefined

Returns

NameTypeDescription
_0bytes32undefined

getRoleMember

function getRoleMember(bytes32 role, uint256 index) external view returns (address)

Returns one of the accounts that have role. index must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.

Parameters

NameTypeDescription
rolebytes32undefined
indexuint256undefined

Returns

NameTypeDescription
_0addressundefined

getRoleMemberCount

function getRoleMemberCount(bytes32 role) external view returns (uint256)

Returns the number of accounts that have role. Can be used together with {getRoleMember} to enumerate all bearers of a role.

Parameters

NameTypeDescription
rolebytes32undefined

Returns

NameTypeDescription
_0uint256undefined

grantRole

function grantRole(bytes32 role, address account) external nonpayable

Grants role to account. If account had not been already granted role, emits a {RoleGranted} event. Requirements: - the caller must have role's admin role.

Parameters

NameTypeDescription
rolebytes32undefined
accountaddressundefined

hasRole

function hasRole(bytes32 role, address account) external view returns (bool)

Returns true if account has been granted role.

Parameters

NameTypeDescription
rolebytes32undefined
accountaddressundefined

Returns

NameTypeDescription
_0boolundefined

initialize

function initialize(address _defaultAdmin, string _contractURI, address[] _trustedForwarders, address _platformFeeRecipient, uint256 _platformFeeBps) external nonpayable

Initiliazes the contract, like a constructor.

Parameters

NameTypeDescription
_defaultAdminaddressundefined
_contractURIstringundefined
_trustedForwardersaddress[]undefined
_platformFeeRecipientaddressundefined
_platformFeeBpsuint256undefined

isTrustedForwarder

function isTrustedForwarder(address forwarder) external view returns (bool)

Parameters

NameTypeDescription
forwarderaddressundefined

Returns

NameTypeDescription
_0boolundefined

listings

function listings(uint256) external view returns (uint256 listingId, address tokenOwner, address assetContract, uint256 tokenId, uint256 startTime, uint256 endTime, uint256 quantity, address currency, uint256 reservePricePerToken, uint256 buyoutPricePerToken, enum IMarketplace.TokenType tokenType, enum IMarketplace.ListingType listingType)

Mapping from uid of listing => listing info.

Parameters

NameTypeDescription
_0uint256undefined

Returns

NameTypeDescription
listingIduint256undefined
tokenOwneraddressundefined
assetContractaddressundefined
tokenIduint256undefined
startTimeuint256undefined
endTimeuint256undefined
quantityuint256undefined
currencyaddressundefined
reservePricePerTokenuint256undefined
buyoutPricePerTokenuint256undefined
tokenTypeenum IMarketplace.TokenTypeundefined
listingTypeenum IMarketplace.ListingTypeundefined

multicall

function multicall(bytes[] data) external nonpayable returns (bytes[] results)

Receives and executes a batch of function calls on this contract.

Parameters

NameTypeDescription
databytes[]undefined

Returns

NameTypeDescription
resultsbytes[]undefined

offer

function offer(uint256 _listingId, uint256 _quantityWanted, address _currency, uint256 _pricePerToken, uint256 _expirationTimestamp) external payable

Lets an account (1) make an offer to a direct listing, or (2) make a bid in an auction.

Parameters

NameTypeDescription
_listingIduint256undefined
_quantityWanteduint256undefined
_currencyaddressundefined
_pricePerTokenuint256undefined
_expirationTimestampuint256undefined

offers

function offers(uint256, address) external view returns (uint256 listingId, address offeror, uint256 quantityWanted, address currency, uint256 pricePerToken, uint256 expirationTimestamp)

Mapping from uid of a direct listing => offeror address => offer made to the direct listing by the respective offeror.

Parameters

NameTypeDescription
_0uint256undefined
_1addressundefined

Returns

NameTypeDescription
listingIduint256undefined
offeroraddressundefined
quantityWanteduint256undefined
currencyaddressundefined
pricePerTokenuint256undefined
expirationTimestampuint256undefined

onERC1155BatchReceived

function onERC1155BatchReceived(address, address, uint256[], uint256[], bytes) external nonpayable returns (bytes4)

Parameters

NameTypeDescription
_0addressundefined
_1addressundefined
_2uint256[]undefined
_3uint256[]undefined
_4bytesundefined

Returns

NameTypeDescription
_0bytes4undefined

onERC1155Received

function onERC1155Received(address, address, uint256, uint256, bytes) external nonpayable returns (bytes4)

Parameters

NameTypeDescription
_0addressundefined
_1addressundefined
_2uint256undefined
_3uint256undefined
_4bytesundefined

Returns

NameTypeDescription
_0bytes4undefined

onERC721Received

function onERC721Received(address, address, uint256, bytes) external pure returns (bytes4)

Parameters

NameTypeDescription
_0addressundefined
_1addressundefined
_2uint256undefined
_3bytesundefined

Returns

NameTypeDescription
_0bytes4undefined

renounceRole

function renounceRole(bytes32 role, address account) external nonpayable

Revokes role from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked role, emits a {RoleRevoked} event. Requirements: - the caller must be account.

Parameters

NameTypeDescription
rolebytes32undefined
accountaddressundefined

revokeRole

function revokeRole(bytes32 role, address account) external nonpayable

Revokes role from account. If account had been granted role, emits a {RoleRevoked} event. Requirements: - the caller must have role's admin role.

Parameters

NameTypeDescription
rolebytes32undefined
accountaddressundefined

setAuctionBuffers

function setAuctionBuffers(uint256 _timeBuffer, uint256 _bidBufferBps) external nonpayable

Lets a contract admin set auction buffers.

Parameters

NameTypeDescription
_timeBufferuint256undefined
_bidBufferBpsuint256undefined

setContractURI

function setContractURI(string _uri) external nonpayable

Lets a contract admin set the URI for the contract-level metadata.

Parameters

NameTypeDescription
_uristringundefined

setPlatformFeeInfo

function setPlatformFeeInfo(address _platformFeeRecipient, uint256 _platformFeeBps) external nonpayable

Lets a contract admin update platform fee recipient and bps.

Parameters

NameTypeDescription
_platformFeeRecipientaddressundefined
_platformFeeBpsuint256undefined

supportsInterface

function supportsInterface(bytes4 interfaceId) external view returns (bool)

Parameters

NameTypeDescription
interfaceIdbytes4undefined

Returns

NameTypeDescription
_0boolundefined

thirdwebFee

function thirdwebFee() external view returns (contract ITWFee)

The thirdweb contract with fee related information.

Returns

NameTypeDescription
_0contract ITWFeeundefined

timeBuffer

function timeBuffer() external view returns (uint64)

The amount of time added to an auction's 'endTime', if a bid is made within timeBuffer seconds of the existing endTime. Default: 15 minutes.

Returns

NameTypeDescription
_0uint64undefined

totalListings

function totalListings() external view returns (uint256)

Total number of listings ever created in the marketplace.

Returns

NameTypeDescription
_0uint256undefined

updateListing

function updateListing(uint256 _listingId, uint256 _quantityToList, uint256 _reservePricePerToken, uint256 _buyoutPricePerToken, address _currencyToAccept, uint256 _startTime, uint256 _secondsUntilEndTime) external nonpayable

Lets a listing's creator edit the listing's parameters.

Parameters

NameTypeDescription
_listingIduint256undefined
_quantityToListuint256undefined
_reservePricePerTokenuint256undefined
_buyoutPricePerTokenuint256undefined
_currencyToAcceptaddressundefined
_startTimeuint256undefined
_secondsUntilEndTimeuint256undefined

winningBid

function winningBid(uint256) external view returns (uint256 listingId, address offeror, uint256 quantityWanted, address currency, uint256 pricePerToken, uint256 expirationTimestamp)

Mapping from uid of an auction listing => current winning bid in an auction.

Parameters

NameTypeDescription
_0uint256undefined

Returns

NameTypeDescription
listingIduint256undefined
offeroraddressundefined
quantityWanteduint256undefined
currencyaddressundefined
pricePerTokenuint256undefined
expirationTimestampuint256undefined

Events

AuctionBuffersUpdated

event AuctionBuffersUpdated(uint256 timeBuffer, uint256 bidBufferBps)

Parameters

NameTypeDescription
timeBufferuint256undefined
bidBufferBpsuint256undefined

AuctionClosed

event AuctionClosed(uint256 indexed listingId, address indexed closer, bool indexed cancelled, address auctionCreator, address winningBidder)

Parameters

NameTypeDescription
listingId indexeduint256undefined
closer indexedaddressundefined
cancelled indexedboolundefined
auctionCreatoraddressundefined
winningBidderaddressundefined

ListingAdded

event ListingAdded(uint256 indexed listingId, address indexed assetContract, address indexed lister, IMarketplace.Listing listing)

Parameters

NameTypeDescription
listingId indexeduint256undefined
assetContract indexedaddressundefined
lister indexedaddressundefined
listingIMarketplace.Listingundefined

ListingRemoved

event ListingRemoved(uint256 indexed listingId, address indexed listingCreator)

Parameters

NameTypeDescription
listingId indexeduint256undefined
listingCreator indexedaddressundefined

ListingUpdated

event ListingUpdated(uint256 indexed listingId, address indexed listingCreator)

Parameters

NameTypeDescription
listingId indexeduint256undefined
listingCreator indexedaddressundefined

NewOffer

event NewOffer(uint256 indexed listingId, address indexed offeror, enum IMarketplace.ListingType indexed listingType, uint256 quantityWanted, uint256 totalOfferAmount, address currency)

Parameters

NameTypeDescription
listingId indexeduint256undefined
offeror indexedaddressundefined
listingType indexedenum IMarketplace.ListingTypeundefined
quantityWanteduint256undefined
totalOfferAmountuint256undefined
currencyaddressundefined

NewSale

event NewSale(uint256 indexed listingId, address indexed assetContract, address indexed lister, address buyer, uint256 quantityBought, uint256 totalPricePaid)

Parameters

NameTypeDescription
listingId indexeduint256undefined
assetContract indexedaddressundefined
lister indexedaddressundefined
buyeraddressundefined
quantityBoughtuint256undefined
totalPricePaiduint256undefined

PlatformFeeInfoUpdated

event PlatformFeeInfoUpdated(address indexed platformFeeRecipient, uint256 platformFeeBps)

Parameters

NameTypeDescription
platformFeeRecipient indexedaddressundefined
platformFeeBpsuint256undefined

RoleAdminChanged

event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)

Parameters

NameTypeDescription
role indexedbytes32undefined
previousAdminRole indexedbytes32undefined
newAdminRole indexedbytes32undefined

RoleGranted

event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)

Parameters

NameTypeDescription
role indexedbytes32undefined
account indexedaddressundefined
sender indexedaddressundefined

RoleRevoked

event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)

Parameters

NameTypeDescription
role indexedbytes32undefined
account indexedaddressundefined
sender indexedaddressundefined