Skip to content

feat: add Dutch descending-price auction mode#425

Open
olaleyeolajide81-sketch wants to merge 4 commits into
Creditra:mainfrom
olaleyeolajide81-sketch:feature/auction-dutch-mode
Open

feat: add Dutch descending-price auction mode#425
olaleyeolajide81-sketch wants to merge 4 commits into
Creditra:mainfrom
olaleyeolajide81-sketch:feature/auction-dutch-mode

Conversation

@olaleyeolajide81-sketch
Copy link
Copy Markdown

Summary

Add Dutch auction mode for faster default liquidation recovery with overflow-safe monotone decreasing price computation.

Changes Made

  • Added AuctionMode enum (English/Dutch) to types.rs
  • Extended AuctionConfig with Dutch auction parameters (dutch_start_price, dutch_floor_price)
  • Implemented compute_dutch_price function for overflow-safe monotone decreasing price calculation
  • Updated init_auction to accept mode and Dutch parameters with validation
  • Updated place_bid to support Dutch auction first-bid settlement
  • Added comprehensive Dutch auction tests covering price at start, mid, and floor
  • Updated existing tests to use new init_auction signature
  • Fixed duplicate members in Cargo.toml

Test plan

  • Price at start: Dutch auction accepts bid at dutch_start_price and closes immediately
  • Price at mid: Dutch auction price decays linearly, accepts bid at calculated midpoint price
  • Price at floor: Dutch auction clamps at dutch_floor_price, accepts bid at floor price
  • First bid settlement: Dutch auction closes on first qualifying bid, rejects subsequent bids
  • Price validation: Bids below current Dutch price are rejected
  • Parameter validation: Dutch auctions require start_price and floor_price with start_price >= floor_price
  • English mode unchanged: English auctions maintain existing behavior with new signature
  • Min bid enforcement: Dutch auctions respect min_bid requirement in addition to current price

Generated with Devin https://cli.devin.ai/docs

- Add AuctionMode enum (English/Dutch) to types.rs
- Extend AuctionConfig with Dutch auction parameters (dutch_start_price, dutch_floor_price)
- Implement compute_dutch_price function for overflow-safe monotone decreasing price calculation
- Update init_auction to accept mode and Dutch parameters
- Update place_bid to support Dutch auction first-bid settlement
- Add comprehensive Dutch auction tests covering price at start, mid, and floor
- Update existing tests to use new init_auction signature
- Fix duplicate members in Cargo.toml

Generated with Devin https://cli.devin.ai/docs

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@drips-wave
Copy link
Copy Markdown

drips-wave Bot commented May 29, 2026

Hey @olaleyeolajide81-sketch! 👋 It looks like this PR isn't linked to any issue.

If this PR is for one of the issues assigned to you as part of a Wave, please link it to ensure your contribution is tracked properly. You can do this by adding a keyword to the PR description (e.g., Closes #123), or by clicking a button below:

Issue Title
#351 Add Dutch-auction descending-price mode to auction_contract for faster default recovery Link to this issue

ℹ️ Learn more about linking PRs to issues

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant