Skip to main content

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:

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()
  • 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

Creating an Auction Module

The AtomicAuctionModule and BatchAuctionModule contracts outline the functions that must be implemented for atomic and batch auction modules, respectively.