Marketplace for NFT where users can sell and buy any ERC721 NFTs. The more a user buy/sell NFTs on the marketplace, the more MarketCoin token he will receive. He can then use those coins to mint MarketNFTs.
All contracts have a full suite of tests. All contracts are written in Vyper.
Main contract
Generic ERC-20 token
Generic ERC-721 token
Custom ERC-20 token for the marketplace. User buying and selling NFT on the marketplace are rewarded with MarketCoin token. Can be use to mint MarketNFT.
Custom ERC-721 token for the marketplace, user can mint it on the marketplace with Marketcoin instead of ETH. Once minted, can also be buy/sell on any marketplace like a regular ERC-721 token.
Every contract has unit tests written in python with pytest and property-based test with hypothesis.