Axis-Fi / axis-core

Axis Protocol
https://axis.finance
Other
6 stars 1 forks source link

Auction Module Base Contracts #12

Closed Oighty closed 7 months ago

Oighty commented 9 months ago

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.

0xJem commented 8 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

0xJem commented 8 months ago

Auctioneer:

Re-entrancy protection Avoid recursion from AuctionModule to AuctionHouse

Use Permit2 design to have consistent design for approvals. Helps with SBA.

0xJem commented 8 months ago

Can tackle atomic auction purchase + transfers with permit2 support