-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Auction House: Auction Creation and Management #5
Comments
I'm working my way through 1. I think it makes sense for the modules to have a
|
Going to reply in order:
I had made some changes to these contracts in the |
On the condenser... if there's an auction keycode -> derivative keycode -> condenser keycode mapping, isn't the condenser type (keycode) as part of the routing parameters redundant? Or is it more like one can specify the condenser (as an override), but if it is not defined, the default lookup will be used? If so, and the condenser is defined, how can we be sure that it is compatible with the auction and derivative modules? Or we assume that it will fail...? |
Allowlist:
|
Hooks:
|
Yeah, this is a good callout. I ended up adding the mapping and removing this on the |
For both Allowlist and Hooks, I was planning to treat them as we treated Callbacks in the past, which is that the user is responsible for making sure they conform to the interface and function as expected. We treat them as a black box. On the Allowlist specifically, we will need to update the user-facing functions ( |
I need to think through a specific scenario where a seller could prevent a batch auction from settling by invalidating the allowlist. It may be better in that case to check it off-line before accepting bids into the off-chain database, but that might have issues as well. |
Yes, there is a placeholder for this at the bottom of the |
It turns out that for Batch Auctions, we're going to need the creator (seller) to fund the auction up front (either directly or via hook). The reason is that they can brick the auction later if they decide they don't want to do it. This has some ramifications on the Separately, we determined it would be best to only allow cancellations on a batch auction before it has started. This is to not cause users to waste gas and have to force them to claim refunds (you can't force seller to on cancel because it could run out of gas). |
This is done. Actually... I misread your comment about it being batch auctions only (😭). This has been implemented in |
Agreed on the module.createAuction return value. If an auction is pre-funded, can it be cancelled? There would need to be a mechanism to claim the pre-funded amount. |
Pre-funding upon auction creation (if required by the auction module) is done. |
Auction creation is the process for token sellers on the platform. While the platform is designed to support a variety of Auctions and Derivatives, the core auction creation process is the same for them all.
The
auction
function takes two inputs: RoutingParams and AuctionParams.RoutingParams are defined on the Auctioneer abstract and implemented on the AuctionHouse. Each auction must specify a quote token (that the buyer will provide) and a base token (that the seller will provide). In addition to the tokens, every auction has routing data that must be provided, much of which is optional, including a Hooks implementation, Allowlist, and Derivative type & data. Routing data is stored on the AuctionHouse.
AuctionParams are defined in the Auction module abstract and include data only needed by the Auction module to determine payout and other output calculations. The common fields across all Auction types are: start, conclusion, capacity, and amounts sold/purchased. Each auction implementation can also specify additional fields that are required as parameters and stored on the Auction module.
The
cancel
function is used to immediately stop an active Auction. In the case of an Atomic auction, no more purchases can be made. In the case of a Batch auction, the auction cannot be settled.The text was updated successfully, but these errors were encountered: