In this project we will develop smart-contracts for an NFT Market-Place that has the following features:
- Seller can list NFTs for sale at their desired price
- Buyer can buy the NFT at seller's price
- Buyer can make an offer for the listed NFTs with alternate price
- Seller can accept or reject that offer
- A Platform fee is charged from the payment
- The owner of the Marketplace can add or remove the ERC20 tokens used as the mode of payment
- The Producer of the NFT gets a royalty with each exchange of hands according to ERC2981 Royalty Standard
We will also write test for the positive executions of the above features.