Auction Modules
Auction modules provide the means for the Axis system to support different types of auctions. The modular design enables adding support for different types of auctions over time, without having to re-deploy the entire system.
Initially, Axis ships with support for the following auction types:
- Atomic
- Batch
Lot Configuration
Each auction lot is configured with a single auction type (the Keycode
for
the specific auction module).
When the auction lot is created, the latest version of that auction module is resolved
and its identifier (Veecode
) is stored in the auction lot.
Subsequent actions on the auction lot will reference the specific auction
module version, to ensure consistency in behaviour and data storage.
Lifecycle
Auction modules are called by the Auction House at key points during the lifecycle of an auction lot:
- Atomic
- Create auction:
auction()
- Cancel auction:
cancelAuction()
- Purchase:
purchase()
- Create auction:
- Batch
- Create auction:
auction()
- Cancel auction:
cancelAuction()
- Bid:
bid()
- Refund bid:
refundBid()
- Claim bid:
claimBids()
- Settle auction:
settle()
- Abort auction:
abort()
- See the abort guide for more information on aborting an auction lot
- Create auction:
Creating an Auction Module
The AtomicAuctionModule and BatchAuctionModule contracts outline the functions that must be implemented for atomic and batch auction modules, respectively.