Closed Oighty closed 7 months ago
From https://github.com/Bond-Protocol/moonraker/issues/5#issuecomment-1883296453
On the Allowlist specifically, we will need to update the user-facing functions (purchase, bid, settle variant that accepts bids) to take inputs that can be used to do allowlist verification, specifically a bytes proof parameter that could be used to pass in something like a Merkle Proof. See https://github.com/Bond-Protocol/options/blob/033a67da8a592847994e27f431cd0c480e01db93/src/fixed-strike/liquidity-mining/OLM.sol#L310
Auctioneer:
Re-entrancy protection Avoid recursion from AuctionModule to AuctionHouse
Use Permit2 design to have consistent design for approvals. Helps with SBA.
Can tackle atomic auction purchase + transfers with permit2 support
The base Auction contract provides an interface that external parties can use to interact with any Auction and implement the interface that the AuctionHouse expects all Auctions to have.
The base AuctionModule contract should implement the Auction base and inherits the Module functionality required for management of the contract by the AuctionHouse.
These should conform to the final
designs/ARCHITECTURE.md
spec.Additional base contracts for Atomic Auctions and Batch Auctions can be created which revert the functions from the AuctionHouse that do not apply to them.
See the
src/modules/Auction.sol
,src/modules/auctions/bases/AtomicAuction.sol
,src/modules/auctions/bases/BatchAuction.sol
files for starting points.