- Auctioneer is customized NFT auction contract supporting dutch auction and fixed-price marketplace.
- Initially owned by deployer, owner may start the english auction based auction along with dutch auction and fixed-price listing.
- All the entities interacting with this contract needs to deposit designated amount of ETH (0.05 ETH as default) before calling functions in the contract.
- Auctioneer currently supports ETH for NFT auction, however can be extended to support other ERC20 tokens in future.
- All transaction happening in Auctioneer enforces
royaltyInfo
from ERC2981 on trading relevant NFT asset.
we are using yarn as our package manager.
yarn install
compiles solidity contract to artifacts for test codes and deployment scripts.
yarn build
runs various test cases with gas report.
yarn test:auctioneer
deploy
yarn hardhat run scripts/deploy.ts
-
User needs to manually call deposit designated amount of ETH to continue call public functions in the contract
-
There are 3 main functions in this auction contract.
- English auction : default auction, can use
start
,bid
,end
,claimWinner
,claimSeller
- Fixed-price listing : listing marketplace, can use
listItem
,buyItem
,getPriceListing
,cancelListing
- Dutch auction : dutch auction, can use
startDutch
,getPriceDutch
,buyDutch
- Deposit and withdraw from platform: Users must perform deposit in order to interact with contract, can use
deposit
,withdraw
- English auction : default auction, can use