A dapp for staking NFTs.
- Token (token_alpha, token_beta, token_gamma)
- NFTMinter (tom_and_jerry, mickey_mouse, scooby_doo)
- NFTReward (nft_reward_gold, nft_reward_silver, nft_reward_platinum)
- NFTStaker (nft_staker)
- nft:
- IPFS, NFTs, Python
- contract:
- Smart contracts (ERC20, IERC20, ERC721Enumerable, Ownable, ERC20Burnable, 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
- Token [name, symbol, maxSupply, totalSupply, balanceOf (hash_wallet_accounts)]
- NFTMinter [name, symbol, owner, baseURI, maxSupply, totalSupply, cost, customPaymentCurrencies, getCustomPaymentCurrencies]
- NFTMinter [mint - with native token for user (not for owner)]
- 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)]
- NFTMinter [totalSupply, balanceOf, walletOfOwner, tokenURI, ownerOf]
- Token [balanceOf (NFTMinter smart contract and NFTMinter smart contract owner account)], NFTMinter [withdraw - native token balance AND custom token balance]
- NFTReward [name, symbol, owner, maxSupply, totalSupply, balanceOf (owner account), controllers (NFTStaker smart contract)]
- NFTStaker [owner, getVaults, vaults, totalStaked]
- NFTMinter [setApprovalForAll (set NFTStaker smart contract as operator to handle all NFTs of a particular user account), isApprovedForAll]
- NFTStaker [stake, totalStaked, totalStakesOf, stakedTokensOf, stakes]
- NFTStaker [fetchReward (after creating a dummy transaction/block in the blockchain - like minting Token for a user), claim], NFTReward [balanceOf]
- NFTStaker [unstake, totalStaked, totalStakesOf, stakedTokensOf, stakes], NFTMinter [ownerOf, walletOfOwner]