Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/anuprshetty/nft_marketplace
A dapp for selling and purchasing NFTs.
https://github.com/anuprshetty/nft_marketplace
blockchain code-coverage docker ethereum etherscan ethersjs github-actions hardhat ipfs metamask mocha-chai nfts nginx openzeppelin python reactjs remix-ide smart-contracts solidity web3js
Last synced: 5 days ago
JSON representation
A dapp for selling and purchasing NFTs.
- Host: GitHub
- URL: https://github.com/anuprshetty/nft_marketplace
- Owner: anuprshetty
- Created: 2024-05-10T05:50:56.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-05-10T14:43:43.000Z (8 months ago)
- Last Synced: 2024-12-03T14:58:35.416Z (23 days ago)
- Topics: blockchain, code-coverage, docker, ethereum, etherscan, ethersjs, github-actions, hardhat, ipfs, metamask, mocha-chai, nfts, nginx, openzeppelin, python, reactjs, remix-ide, smart-contracts, solidity, web3js
- Language: JavaScript
- Homepage:
- Size: 456 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# NFT Marketplace
A dapp for selling and purchasing NFTs.
![nft_marketplace_dapp](media/nft_marketplace_dapp.png)
## Smart Contracts
- Token (token_alpha)
- NFTMinter (tom_and_jerry, mickey_mouse)
- MarketplaceNFTMinter (collection_marketplace)
- NFTMarketplace (nft_marketplace)## Tools and Technologies Used
- nft:
- IPFS, NFTs, Python
- contract:
- Smart contracts (ERC20, IERC20, ERC721Enumerable, ERC721URIStorage, Ownable, IERC721Receiver)
- Hardhat, Ethers.js, Solidity, OpenZeppelin, Remix IDE, Ethereum, EVM (Ethereum Virtual Machine), Blockchain, Etherscan, JavaScript, Mocha Testcases, Solidity code coverage
- dapp:
- React.js, Web3.js, Nginx, Metamask wallet
- Docker and Containers
- Ethernal dashboard - EVM compatible private blockchain network explorer.
- GitHub actions## How To Run?
- [Upload NFTs to IPFS](./nft/.vscode/tasks.json)
- [Deploy smart contracts to the blockchain](./contract/.vscode/tasks.json)
- [Run the dapp](./dapp/.vscode/tasks.json)## Workflow
1. Token [name, symbol, maxSupply, totalSupply, balanceOf (hash_wallet_accounts)]
2. NFTMinter [name, symbol, owner, baseURI, maxSupply, totalSupply, cost, customPaymentCurrencies, getCustomPaymentCurrencies]
3. NFTMinter [mint - with native token for user (not for owner)]
4. Token [balanceOf (user), approve (all balance tokens of user as an allowance to spend by NFTMinter smart contract), allowance], NFTMinter [mint - with custom token for user (not for owner)]
5. NFTMinter [totalSupply, balanceOf, walletOfOwner, tokenURI, ownerOf]
6. MarketplaceNFTMinter [name, symbol, owner, totalSupply, cost]
7. MarketplaceNFTMinter [mint - 10 mickey_mouse NFTs for user(not for owner)]
8. MarketplaceNFTMinter [totalSupply, balanceOf, walletOfOwner, tokenURI, ownerOf]
9. NFTMarketplace [owner, nftCollections, getNFTCollections, nftListingFee]
10. NFTMinter and MarketplaceNFTMinter [setApprovalForAll (set NFTMarketplace smart contract as operator to handle all NFTs of a particular user account), isApprovedForAll]
11. NFTMarketplace [listNFTs, getListedNFTs, getListedNFTsOfSeller, getNFTsOfUser, marketplaceNFTs]
12. NFTMarketplace [buyNFT, getListedNFTs, getListedNFTsOfSeller, getNFTsOfUser, marketplaceNFTs]
13. NFTMarketplace [unlistNFTs, getListedNFTs, getListedNFTsOfSeller, getNFTsOfUser, marketplaceNFTs], NFTMinter or MarketplaceNFTMinter [ownerOf, walletOfOwner]