Skip to content
This repository has been archived by the owner on Dec 23, 2024. It is now read-only.

Commit

Permalink
feat: reserve auction v3
Browse files Browse the repository at this point in the history
  • Loading branch information
kulkarohan committed Nov 15, 2023
1 parent 1f8691d commit 881f2db
Show file tree
Hide file tree
Showing 2 changed files with 666 additions and 0 deletions.
47 changes: 47 additions & 0 deletions contracts/modules/ReserveAuction/V3/IReserveAuctionV3.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.10;

interface IReserveAuctionV3 {
/// @notice Creates an auction for a given NFT
/// @param _tokenContract The address of the ERC-721 token
/// @param _tokenId The id of the ERC-721 token
/// @param _duration The length of time the auction should run after the first bid
/// @param _reservePrice The minimum bid amount to start the auction
/// @param _sellerFundsRecipient The address to send funds to once the auction is complete
/// @param _startTime The time that users can begin placing bids
/// @param _bidCurrency The address of the ERC-20 token, or address(0) for ETH, that users must bid with
/// @param _findersFeeBps The fee to send to the referrer of the winning bid
function createAuction(
address _tokenContract,
uint256 _tokenId,
uint256 _duration,
uint256 _reservePrice,
address _sellerFundsRecipient,
uint256 _startTime,
address _bidCurrency,
uint256 _findersFeeBps
) external;

/// @notice Updates the reserve price for a given auction
/// @param _tokenContract The address of the ERC-721 token
/// @param _tokenId The id of the ERC-721 token
/// @param _reservePrice The new reserve price
function setAuctionReservePrice(address _tokenContract, uint256 _tokenId, uint256 _reservePrice) external;

/// @notice Cancels the auction for a given NFT
/// @param _tokenContract The address of the ERC-721 token
/// @param _tokenId The id of the ERC-721 token
function cancelAuction(address _tokenContract, uint256 _tokenId) external;

/// @notice Places a bid on the auction for a given NFT
/// @param _tokenContract The address of the ERC-721 token
/// @param _tokenId The id of the ERC-721 token
/// @param _amount The amount to bid
/// @param _finder The referrer of the bid
function createBid(address _tokenContract, uint256 _tokenId, uint256 _amount, address _finder) external payable;

/// @notice Ends the auction for a given NFT
/// @param _tokenContract The address of the ERC-721 token
/// @param _tokenId The id of the ERC-721 token
function settleAuction(address _tokenContract, uint256 _tokenId) external;
}
Loading

0 comments on commit 881f2db

Please sign in to comment.