This project is an NFT marketplace that allows users to buy and sell ERC721 and ERC1155 NFTs. The marketplace is built using the UUPS proxy pattern, which allows for easy upgrades to the smart contract. The smart contract is tested using unit tests to ensure that it is working correctly. The deploy script is used to deploy the smart contract to the blockchain, and the upgrade script is used to upgrade the smart contract when necessary. The smart contract is verified on the blockchain to ensure that it is secure and working correctly. The marketplace only accepts ETH as a payment method.
- Selling NFTs
- Buying NFTs
- Pause & unPause NFTs selling
- Updating Selling details of NFTs
- Remove selling of NFTs
- Re-entracy : All public functions are secured with reentracy guard
- Selling
- This contract takes nft from user it order to sell on marketplace.
- Seller must own NFT in order to sell
- Payment mode is ETH
- Seller can anytime remove NFT from listing and get back there token
- Seller also as the option to pause and unpause there NFT selling
- Buying
- Any user can buy NFT if they are listed
- Payment method is in ETH only
- Accepting Nfts direclty from user and then later on add details for selling.
- Allowing erc20 token payment methods
- All earlier state vairables and mapping should be in same order.
- New added variables and mapping should be added after them.
- For better clearity please specify the version of contract in
version
function.
- Running unit test
npx hardhat test
- Running test coverage
npx hardhat coverage
- Runnig deploy/upgrade scripts
npx hardhat run scripts/<fileName> --network <networkToDeployTo>
- Verifying contract from cli
NOTE: If not constructure value then don't pass any value
npx hardhat verify --network <contractDeployedAt> <addressOfContract> <constructorValue>
- Running slither analysis
slither .
- hardhat-upgrades - for deploying proxy contracts
- hardhat-etherscan - for verifying contract from cli
- solidity-coverage - for coverage [NOTE: currently removed for some package breakages]
- Slither
- Install
pip3 install slither-analyzer
- Need to add path variable defining it
- Install
- Polygon Mumbai
- For skipping the contract for coverage testing
- We can all the skip contract name in
.solcover.js
file.
- We can all the skip contract name in
.openzepplin
file consist of all the contract deployed from this projects on diffent chains
Sufiyan