Skip to content

feat: add Buy It Now / Fixed Price option to auction system#2

Open
syed-ghufran-hassan wants to merge 1 commit intoSandijigs:mainfrom
syed-ghufran-hassan:patch-2
Open

feat: add Buy It Now / Fixed Price option to auction system#2
syed-ghufran-hassan wants to merge 1 commit intoSandijigs:mainfrom
syed-ghufran-hassan:patch-2

Conversation

@syed-ghufran-hassan
Copy link

Add immediate purchase capability alongside traditional bidding, giving sellers flexibility to offer instant sale options while maintaining auction dynamics.

Key features:

  • Optional buy-now-price parameter in create-auction (0 = disabled)
  • buy-it-now function for instant purchases at fixed price
  • Automatic deactivation after first bid received
  • Separate tracking: buy-now-volume global and buy-now-purchases per user
  • buy-now-price must be >= starting-price (validation)
  • Buy now unavailable for seller's own auctions

New data structures:

  • auctions.buy-now-price: uint (0 = disabled)
  • user-bids.buy-now-purchases: uint
  • buy-now-volume global counter

New functions:

  • buy-it-now (public): Execute instant purchase
  • is-buy-now-available (read-only): Check availability
  • get-buy-now-price (read-only): View current price
  • generate-buy-now-receipt: Purchase confirmation

Events & Logging:

  • log-buy-now event for purchase tracking
  • Enhanced auction-created event with buy-now-price
  • Updated user stats tracking for buy now purchases

Error handling:

  • ERR_BUY_NOW_UNAVAILABLE (u6010): Buy now not available
  • ERR_BUY_NOW_EXPIRED (u6011): Beyond auction end
  • ERR_BUY_NOW_ALREADY_SOLD (u6012): Already purchased
  • ERR_INVALID_BUY_NOW (u6013): Price < starting-price

This enhancement provides instant liquidity option while preserving traditional auction mechanics, improving user experience and market efficiency.

Add immediate purchase capability alongside traditional bidding, giving
sellers flexibility to offer instant sale options while maintaining
auction dynamics.

Key features:
- Optional buy-now-price parameter in create-auction (0 = disabled)
- buy-it-now function for instant purchases at fixed price
- Automatic deactivation after first bid received
- Separate tracking: buy-now-volume global and buy-now-purchases per user
- buy-now-price must be >= starting-price (validation)
- Buy now unavailable for seller's own auctions

New data structures:
- auctions.buy-now-price: uint (0 = disabled)
- user-bids.buy-now-purchases: uint
- buy-now-volume global counter

New functions:
- buy-it-now (public): Execute instant purchase
- is-buy-now-available (read-only): Check availability
- get-buy-now-price (read-only): View current price
- generate-buy-now-receipt: Purchase confirmation

Events & Logging:
- log-buy-now event for purchase tracking
- Enhanced auction-created event with buy-now-price
- Updated user stats tracking for buy now purchases

Error handling:
- ERR_BUY_NOW_UNAVAILABLE (u6010): Buy now not available
- ERR_BUY_NOW_EXPIRED (u6011): Beyond auction end
- ERR_BUY_NOW_ALREADY_SOLD (u6012): Already purchased
- ERR_INVALID_BUY_NOW (u6013): Price < starting-price

This enhancement provides instant liquidity option while preserving
traditional auction mechanics, improving user experience and market
efficiency.
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