Component: Contracts (Borrowing) | Effort: 5-7 days | Priority: MEDIUM
Current State
Basic liquidation exists with fixed 5% bonus. No auction mechanism or competitive liquidation.
Missing Functions
Advanced liquidation functions:
start_liquidation_auction() - Start Dutch auction for liquidation
bid_on_liquidation() - Place bid in auction
execute_auction() - Execute winning bid
get_auction_status() - Get current auction state
cancel_auction() - Cancel if loan becomes healthy
get_liquidation_discount() - Calculate current discount in auction
Why This Matters
- Fair pricing: Auctions find market price for collateral
- Better recovery: Competition increases liquidation proceeds
- Efficiency: Faster liquidations with multiple bidders
- Transparency: Public auction process
Current Gap
The liquidate() function at line 331 uses fixed liquidation bonus. No price discovery mechanism.
Tasks
Acceptance Criteria
- Auctions start for unhealthy loans
- Dutch auction price decreases over time
- Bids placed and tracked correctly
- Winning bid executes liquidation
- Excess returned to borrower
- Tests cover auction lifecycle
Component: Contracts (Borrowing) | Effort: 5-7 days | Priority: MEDIUM
Current State
Basic liquidation exists with fixed 5% bonus. No auction mechanism or competitive liquidation.
Missing Functions
Advanced liquidation functions:
start_liquidation_auction()- Start Dutch auction for liquidationbid_on_liquidation()- Place bid in auctionexecute_auction()- Execute winning bidget_auction_status()- Get current auction statecancel_auction()- Cancel if loan becomes healthyget_liquidation_discount()- Calculate current discount in auctionWhy This Matters
Current Gap
The
liquidate()function at line 331 uses fixed liquidation bonus. No price discovery mechanism.Tasks
start_liquidation_auction()functionbid_on_liquidation()functionexecute_auction()functionAcceptance Criteria