- A contract for NFT item itself -> MarketItem.sol
- A contract for Marketplace -> Marketplace.sol
- Unit tests for both contracts with > 95% code coverage
- Events need to be emitted on each major action into contracts
- Automatic deployment scripts for desired testnets
- contract interactions for the main functions of the contract
- view functions, where you’ve got additional formatting of the data (for example checks, BN conversions, and metadata parsing)
- As a user, I can create a collection and create a market item (NFT) from this collection. -> Collection & Mint pages
- The image will be generated by URI + TOKEN ID
- Generated URI & Image needs to be generated on IPFS storage
- As a user, I can list the created market item (NFT) for sale with a specific price and marketplace allowance. (Approve of the marketplace as tokenApproval role)
- As a user, I can buy a listed NFT.
- As a user, I can see the NFTs of another user and collection (User Page & Collection Page).
- As a user, I can make an offer of a nonlisted NFT (NFT which is not for sale) Allowance?!?!
- As a user, I can accept an offer from another user to my nonlisted NFT for sale
- As a user, I can cancel an offer or another offer to my NFT (Delete the allowance ->>>>> TBD)
- Marketplace fee logic needs to be implemented
- For every sale, the Мarketplace will deduct a fee which is deducted from the seller.
- Only the Marketplace owner can withdraw the fee accumulated amount
- Two repositories with FE and Contract Implementation
- Contracts deployed on the desired testate
- FE connected with those contracts