Skip to main content

IDualAuction

Inherits: IAuctionConversions

Functions

maxBid

The highest bid received so far

function maxBid() external view returns (uint256);

minAsk

The lowest ask received so far

function minAsk() external view returns (uint256);

clearingPrice

The clearing price of the auction, set after settlement

function clearingPrice() external view returns (uint256);

settled

True if the auction has been settled, eles false

function settled() external view returns (bool);

bid

Places a bid using amountIn bidAsset tokens, for askAsset tokens at the given price

function bid(uint256 amountIn, uint256 price) external returns (uint256);

Parameters

NameTypeDescription
amountInuint256The amount to bid, in bidAsset
priceuint256the price at which to bid, denominated in terms of bidAsset per askAsset

Returns

NameTypeDescription
<none>uint256The number of shares output

ask

Places an ask using amountIn askAsset tokens, for bidAsset tokens at the given price

function ask(uint256 amountIn, uint256 price) external returns (uint256);

Parameters

NameTypeDescription
amountInuint256The amount to sell, in askAsset
priceuint256the price at which to ask, denominated in terms of bidAsset per askAsset

Returns

NameTypeDescription
<none>uint256The number of shares output

settle

Settles the auction after the end date

iterates through the bids and asks to determine The clearing price, setting the clearingPrice variable afterwards

function settle() external returns (uint256);

Returns

NameTypeDescription
<none>uint256The settled clearing price, or 0 if none

redeem

Redeems bid/ask slips after the auction has concluded

function redeem(uint256 tokenId, uint256 amount) external returns (uint256, uint256);

Parameters

NameTypeDescription
tokenIduint256The id of the bid/ask slip to redeem
amountuint256The amount of slips to redeem

Returns

NameTypeDescription
<none>uint256The number of tokens received
<none>uint256

Events

Bid

Event declaring that a bid was made

event Bid(address indexed actor, uint256 amountIn, uint256 amountOut, uint256 indexed price);

Ask

Event declaring that an ask was made

event Ask(address indexed actor, uint256 amountIn, uint256 amountOut, uint256 indexed price);

Settle

Event notifying about the settlement of an auction

event Settle(address indexed actor, uint256 clearingPrice);

Redeem

Event notifying about the redemption of share tokens

event Redeem(address indexed actor, uint256 indexed tokenId, uint256 shareAmount, uint256 bidValue, uint256 askValue);

Errors

ZeroAddressAsset

Zero address given for asset

error ZeroAddressAsset();

MatchingAssets

Matching buy/sell assets

error MatchingAssets();

ZeroAmount

Zero amount of asset given

error ZeroAmount();

AuctionIsActive

The end date has not yet passed

error AuctionIsActive();

AuctionHasEnded

The end date has passed

error AuctionHasEnded();

AuctionHasNotSettled

The auction has not been settled

error AuctionHasNotSettled();

AuctionHasSettled

The auction has already been settled

error AuctionHasSettled();

NoClearingPrice

The auction ended with no clearing price

error NoClearingPrice();

SettleHasFailed

The settlement somehow ended with cleared tokens but no clearing price

error SettleHasFailed();