Marketplace
Calls
acceptOffer
Accepts an offer on a token Caller must be token owner
Namespace
api.tx.marketplace.acceptOffer
Type
function acceptOffer(
offer_id: u64
)
auctionNft
Auction a bundle of tokens on the open market to the highest bidder
-
Tokens must be from the same collection
-
Tokens with individual royalties schedules cannot be sold in bundles
Caller must be the token owner
-
payment_asset
fungible asset Id to receive payment with -
reserve_price
winning bid must be over this threshold -
duration
length of the auction (in blocks), uses default duration if unspecified
Namespace
api.tx.marketplace.auctionNft
Type
function auctionNft(
collection_id: u32,
serial_numbers: Vec<u32>,
payment_asset: u32,
reserve_price: u128,
duration: Option<u32>,
marketplace_id: Option<u32>
)
bid
Place a bid on an open auction
amount
to bid (in the seller's requested payment asset)
Namespace
api.tx.marketplace.bid
Type
function bid(
listing_id: u128,
amount: u128
)
buy
Buy a token listing for its specified price
Namespace
api.tx.marketplace.buy
Type
function buy(
listing_id: u128
)
cancelOffer
Cancels an offer on a token Caller must be the offer buyer
Namespace
api.tx.marketplace.cancelOffer
Type
function cancelOffer(
offer_id: u64
)
cancelSale
Close a sale or auction returning tokens Requires no successful bids have been made for an auction. Caller must be the listed seller
Namespace
api.tx.marketplace.cancelSale
Type
function cancelSale(
listing_id: u128
)
makeSimpleOffer
Create an offer on a token Locks funds until offer is accepted, rejected or cancelled An offer can't be made on a token currently in an auction (This follows the behaviour of Opensea and forces the buyer to bid rather than create an offer)
Namespace
api.tx.marketplace.makeSimpleOffer
Type
function makeSimpleOffer(
token_id: (u32,u32),
amount: u128,
asset_id: u32,
marketplace_id: Option<u32>
)
registerMarketplace
Flag an account as a marketplace
marketplace_account
- if specified, this account will be registered entitlement
- Permill, percentage of sales to go to the marketplace If no marketplace is specified the caller will be registered
Namespace
api.tx.marketplace.registerMarketplace
Type
function registerMarketplace(
marketplace_account: Option<SeedPrimitivesSignatureAccountId20>,
entitlement: Permill
)
sellNft
Sell a bundle of tokens at a fixed price
-
Tokens must be from the same collection
-
Tokens with individual royalties schedules cannot be sold with this method
buyer
optionally, the account to receive the NFT. If unspecified, then any account may purchase asset_id
fungible asset Id to receive as payment for the NFT fixed_price
ask price duration
listing duration time in blocks from now Caller must be the token owner
Namespace
api.tx.marketplace.sellNft
Type
function sellNft(
collection_id: u32,
serial_numbers: Vec<u32>,
buyer: Option<SeedPrimitivesSignatureAccountId20>,
payment_asset: u32,
fixed_price: u128,
duration: Option<u32>,
marketplace_id: Option<u32>
)
setFeeTo
Set the FeeTo
account This operation requires root access
Namespace
api.tx.marketplace.setFeeTo
Type
function setFeeTo(
fee_to: Option<SeedPrimitivesSignatureAccountId20>
)
updateFixedPrice
Update fixed price for a single token sale
listing_id
id of the fixed price listing new_price
new fixed price Caller must be the token owner
Namespace
api.tx.marketplace.updateFixedPrice
Type
function updateFixedPrice(
listing_id: u128,
new_price: u128
)
Storage
feeTo
The pallet id for the tx fee pot
Namespace
api.query.marketplace.feeTo
Type
function feeTo(
): Option<SeedPrimitivesSignatureAccountId20>
listingEndSchedule
Block numbers where listings will close. Value is true
if at block number listing_id
is scheduled to close.
Namespace
api.query.marketplace.listingEndSchedule
Type
function listingEndSchedule(
u32,
u128
): Option<bool>
listings
NFT sale/auction listings keyed by listing id
Namespace
api.query.marketplace.listings
Type
function listings(
u128
): Option<PalletMarketplaceListing>
listingWinningBid
Winning bids on open listings.
Namespace
api.query.marketplace.listingWinningBid
Type
function listingWinningBid(
u128
): Option<(SeedPrimitivesSignatureAccountId20,u128)>
nextListingId
The next available listing Id
Namespace
api.query.marketplace.nextListingId
Type
function nextListingId(
): u128
nextMarketplaceId
The next available marketplace id
Namespace
api.query.marketplace.nextMarketplaceId
Type
function nextMarketplaceId(
): u32
nextOfferId
The next available offer_id
Namespace
api.query.marketplace.nextOfferId
Type
function nextOfferId(
): u64
offers
Map from offer_id to the information related to the offer
Namespace
api.query.marketplace.offers
Type
function offers(
u64
): Option<PalletMarketplaceOfferType>
openCollectionListings
Map from collection to any open listings
Namespace
api.query.marketplace.openCollectionListings
Type
function openCollectionListings(
u32,
u128
): Option<bool>
registeredMarketplaces
Map from marketplace account_id to royalties schedule
Namespace
api.query.marketplace.registeredMarketplaces
Type
function registeredMarketplaces(
u32
): Option<PalletMarketplaceMarketplace>
tokenOffers
Maps from token_id to a vector of offer_ids on that token
Namespace
api.query.marketplace.tokenOffers
Type
function tokenOffers(
(u32,u32)
): Option<Vec<u64>>
Events
AuctionClose
An auction has closed without selling
Namespace
api.events.marketplace.AuctionClose
Type
type AuctionClose = {
collection_id: u32,
listing_id: u128,
reason: PalletMarketplaceAuctionClosureReason
}
AuctionOpen
An auction has opened
Namespace
api.events.marketplace.AuctionOpen
Type
type AuctionOpen = {
collection_id: u32,
serial_numbers: Vec<u32>,
payment_asset: u32,
reserve_price: u128,
listing_id: u128,
marketplace_id: Option<u32>,
seller: SeedPrimitivesSignatureAccountId20
}
AuctionSold
An auction has sold
Namespace
api.events.marketplace.AuctionSold
Type
type AuctionSold = {
collection_id: u32,
listing_id: u128,
payment_asset: u32,
hammer_price: u128,
winner: SeedPrimitivesSignatureAccountId20
}
Bid
A new highest bid was placed
Namespace
api.events.marketplace.Bid
Type
type Bid = {
collection_id: u32,
serial_numbers: Vec<u32>,
listing_id: u128,
amount: u128,
bidder: SeedPrimitivesSignatureAccountId20
}
FeeToSet
The network fee receiver address has been updated
Namespace
api.events.marketplace.FeeToSet
Type
type FeeToSet = {
account: Option<SeedPrimitivesSignatureAccountId20>
}
FixedPriceSaleClose
A fixed price sale has closed without selling
Namespace
api.events.marketplace.FixedPriceSaleClose
Type
type FixedPriceSaleClose = {
collection_id: u32,
serial_numbers: Vec<u32>,
listing_id: u128,
reason: PalletMarketplaceFixedPriceClosureReason
}
FixedPriceSaleComplete
A fixed price sale has completed
Namespace
api.events.marketplace.FixedPriceSaleComplete
Type
type FixedPriceSaleComplete = {
collection_id: u32,
serial_numbers: Vec<u32>,
listing_id: u128,
price: u128,
payment_asset: u32,
buyer: SeedPrimitivesSignatureAccountId20,
seller: SeedPrimitivesSignatureAccountId20
}
FixedPriceSaleList
A fixed price sale has been listed
Namespace
api.events.marketplace.FixedPriceSaleList
Type
type FixedPriceSaleList = {
collection_id: u32,
serial_numbers: Vec<u32>,
listing_id: u128,
marketplace_id: Option<u32>,
price: u128,
payment_asset: u32,
seller: SeedPrimitivesSignatureAccountId20
}
FixedPriceSalePriceUpdate
A fixed price sale has had its price updated
Namespace
api.events.marketplace.FixedPriceSalePriceUpdate
Type
type FixedPriceSalePriceUpdate = {
collection_id: u32,
serial_numbers: Vec<u32>,
listing_id: u128,
new_price: u128
}
MarketplaceRegister
An account has been registered as a marketplace
Namespace
api.events.marketplace.MarketplaceRegister
Type
type MarketplaceRegister = {
account: SeedPrimitivesSignatureAccountId20,
entitlement: Permill,
marketplace_id: u32
}
Offer
An offer has been made on an NFT
Namespace
api.events.marketplace.Offer
Type
type Offer = {
offer_id: u64,
amount: u128,
asset_id: u32,
marketplace_id: Option<u32>,
buyer: SeedPrimitivesSignatureAccountId20
}
OfferAccept
An offer has been accepted
Namespace
api.events.marketplace.OfferAccept
Type
type OfferAccept = {
offer_id: u64,
token_id: (u32,u32),
amount: u128,
asset_id: u32
}
OfferCancel
An offer has been cancelled
Namespace
api.events.marketplace.OfferCancel
Type
type OfferCancel = {
offer_id: u64,
token_id: (u32,u32)
}
Errors
BidTooLow
Auction bid was lower than reserve or current highest bid
Namespace
api.errors.marketplace.BidTooLow
InvalidMetadataPath
The metadata path is invalid (non-utf8 or empty)
Namespace
api.errors.marketplace.InvalidMetadataPath
InvalidOffer
No offer exists for the given OfferId
Namespace
api.errors.marketplace.InvalidOffer
IsTokenOwner
The caller owns the token and can't make an offer
Namespace
api.errors.marketplace.IsTokenOwner
MarketplaceNotRegistered
The account_id hasn't been registered as a marketplace
Namespace
api.errors.marketplace.MarketplaceNotRegistered
MaxOffersReached
The maximum number of offers on this token has been reached
Namespace
api.errors.marketplace.MaxOffersReached
MixedBundleSale
Selling tokens from different collection is not allowed
Namespace
api.errors.marketplace.MixedBundleSale
NoAvailableIds
No more Ids are available, they've been exhausted
Namespace
api.errors.marketplace.NoAvailableIds
NoCollectionFound
The collection does not exist
Namespace
api.errors.marketplace.NoCollectionFound
NotBuyer
The caller is not the specified buyer
Namespace
api.errors.marketplace.NotBuyer
NotCollectionOwner
Origin is not the collection owner and is not permitted to perform the operation
Namespace
api.errors.marketplace.NotCollectionOwner
NotForAuction
The token is not listed for auction sale
Namespace
api.errors.marketplace.NotForAuction
NotForFixedPriceSale
The token is not listed for fixed price sale
Namespace
api.errors.marketplace.NotForFixedPriceSale
NoToken
The token does not exist
Namespace
api.errors.marketplace.NoToken
NotSeller
The caller is not the seller of the NFT
Namespace
api.errors.marketplace.NotSeller
NotTokenOwner
Origin does not own the NFT
Namespace
api.errors.marketplace.NotTokenOwner
RoyaltiesInvalid
Total royalties would exceed 100% of sale or an empty vec is supplied
Namespace
api.errors.marketplace.RoyaltiesInvalid
TokenLocked
Cannot operate on a listed NFT
Namespace
api.errors.marketplace.TokenLocked
TokenNotListed
The token is not listed for sale
Namespace
api.errors.marketplace.TokenNotListed
TokenOnAuction
Cannot make an offer on a token up for auction
Namespace
api.errors.marketplace.TokenOnAuction
ZeroOffer
Offer amount needs to be greater than 0
Namespace
api.errors.marketplace.ZeroOffer
Constants
defaultFeeTo
The default account which collects network fees from marketplace sales
Namespace
api.consts.marketplace.defaultFeeTo
Type
type defaultFeeTo = Option<FrameSupportPalletId>
defaultListingDuration
Default auction / sale length in blocks
Namespace
api.consts.marketplace.defaultListingDuration
Type
type defaultListingDuration = u32
palletId
This pallet's Id, used for deriving a sovereign account ID
Namespace
api.consts.marketplace.palletId
Type
type palletId = FrameSupportPalletId