This page outlines the Conventional Auction Contract designed for blockchain-based auction systems. It provides a comprehensive guide to its features, components, and usage.
- Auction Management: Set up and manage conventional auctions with start and end dates, and reserve prices.
- Bid Handling: Facilitate the placement and management of bids.
- Escrow Account Management: Secure handling of funds through escrow accounts.
- Bid Refunding: Mechanism for refunding bids.
- Auction Finalization: Rules for concluding the auction and determining the winning bid.
The following sections provide reference information for writing a smart contract to conduct a conventional auction using Marmalade on the Kadena network.
You can define the following capabilities to manage permissions in conventional auctions:
GOVERNANCE: Defines governance for the contract and is controlled by the keyset defined under the
AUCTION_CREATED: Specifies the event emitted when the
create-auctionfunction is executed. The emitted event includes the
MANAGE_AUCTION: Identifies a guard to control who can create and update an auction. You must specify the
token-idparameters when you use this capability in
BID_PLACED: Specifies the event emitted when a bid is place. The emitted event includes the
PLACE_BID: Ensures that the bidder signs the transaction to place the bid.
REFUND_CAP: Protects funds held in escrow to ensure refunds can be made, if necessary.
auctions-schema: Describes auction information including
bids-schema: Describes bid information including
auctions: Stores auction information.
bids: Stores bid information.
escrow-account: Returns the auction's fungible escrow account name.
escrow-guard: Returns the account guard of the escrow account.
enforce-fungible-transfer: Requires that
policy-manager.FUNGIBLE_TRANSFER_CALLcapability is in scope.
enforce-quote-update: Enforces a quote update when required for sale contracts. This function is called by the
policy-manager.enforce-buyfunction to validate that only the winning bidder processes the
marmalade.buycall, the escrow payment, and the marketplace fee.
enforce-withdrawal: Enforces a withdrawal when required for sale contracts. This function is called by the
policy-manager.enforce-withdrawfunction to validate that the auction has expired, or that the bid has already been placed.
create-bid-id: Generates a unique bid identifier by hashing the
create-auction: Allows sellers to create a conventional auction for their token after providing auction information.
update-auction: Allows sellers to update auction information before the auction start time.
retrieve-auction: Retrieves auction information from the
retrieve-bid: Retrieves bid information from the
place-bid: Transfers the bid amount in a fungible currency from the bidder account to an escrow account and records the bids in the blockchain.
ADMIN-KS: Sets the