Marketplace
When using the Marketplace smart contract, additional top-level functionality is available to use.
To access the top-level functionality, use the get_marketplace
method when creating the contract instance:
contract = sdk.get_marketplace(
"{{contract_address}}",
)
get_listing
Get the details of a marketplace listing using the listing ID.
listing_id = 1
listing = contract.get_listing(listing_id)
Configuration
listing_id
The ID of the listing to get the details for.
Must be an int
.
Return Value
Returns an AuctionListing
or DirectListing
object, depending on the type, containing the following properties:
class DirectListing:
id: int
asset_contract_address: str
token_id: int
asset: NFTMetadata
start_time_in_seconds: int
seconds_until_end: int
quantity: int
currency_contract_address: str
buyout_currency_value_per_token: CurrencyValue
buyout_price: PriceWei
seller_address: str
type = ListingType.DIRECT
class AuctionListing:
id: int
asset_contract_address: str
token_id: int
asset: NFTMetadata
start_time_in_epoch_seconds: int
end_time_in_epoch_seconds: int
quantity: int
currency_contract_address: str
reserve_price: PriceWei
buyout_price: PriceWei
buyout_currency_value_per_token: CurrencyValue
reserve_price_currency_value_per_token: CurrencyValue
seller_address: str
type = ListingType.AUCTION
get_active_listings
Get all the currently active listings from the marketplace.
listings = contract.get_active_listings()
price_of_first = listings[0].price
Configuration
Return Value
A list of the listings Union[DirectListing, AuctionListing]
.
get_all_listings
Get all the listings that have ever been made on this marketplace.
listings = contract.get_all_listings()
Configuration
filter (optional)
Filter the marketplace listings. Must be of type MarketplaceFilter
class MarketplaceFilter:
start: int = 0
count: int = 100
seller: Optional[str] = None
token_contract: Optional[str] = None
token_id: Optional[int] = None
from thirdweb.types.marketplace import MarketplaceFilter
filter = MarketplaceFilter(0, 5)
listings = contract.get_all_listings(filter)
Return Value
A list of the listings List[Union[DirectListing, AuctionListing]]
.
get_total_count
Get the total number of listings on this marketplace.
total_count = contract.get_total_count()
Configuration
Return Value
An int
representing the total number of listings on the marketplace contract.
is_restricted_to_lister_role_only
Check whether only wallets with the lister
role can make listings.
listener_only = contract.is_restricted_to_listener_role_only()
Configuration
Return Value
A bool
representing whether the wallets with the listener
role can make listings.
get_time_buffer_in_seconds
Get the time buffer for this marketplace in seconds.
time_buffer = contract.get_time_buffer_in_seconds()
Configuration
Return Value
A int
representing the time buffer in seconds.
buyout_listing
Buyout a listing by listing ID.
listing_id = 0
quantity_desired = 1
receiver = "0x..."
time_buffer = contract.buyout_listing(listing_id, quantity_desired, receiver)
Configuration
listing_id
ID of the listing to buyout. Must be of type int
listing_id = 0
quantity_desired = 1
receiver = "0x..."
time_buffer = contract.buyout_listing(listing_id, quantity_desired, receiver)
quantity_desired
Quantity to buyout. Must be of type int
.
listing_id = 0
quantity_desired = 1
receiver = "0x..."
time_buffer = contract.buyout_listing(listing_id, quantity_desired, receiver)
receiver
Address to send the asset to. Must be of type str
.
listing_id = 0
quantity_desired = 1
receiver = "0x..."
time_buffer = contract.buyout_listing(listing_id, quantity_desired, receiver)
Return Value
A int
representing the time buffer in seconds.
set_bid_buffer_bps
Set the bid buffer basis points for this marketplace.
buffer_bps = 500
contract.set_bid_buffer_bps(buffer_bps)
Configuration
buffer_bps
The bid buffer basis points. Must be of type int
.
buffer_bps = 500
contract.set_bid_buffer_bps(buffer_bps)
set_time_buffer_in_seconds
Set the time buffer of the marketplace.
buffer_in_seconds = 60
contract.set_time_buffer_in_seconds(buffer_in_seconds)
Configuration
buffer_in_seconds
The time buffer in seconds. Must be of type int
.
buffer_in_seconds = 60
contract.set_time_buffer_in_seconds(buffer_in_seconds)