A collection of miscellaneous solidity projects.
Be sure to check out the branches of this repo (besides the 'main' branch) for additional WIP projects.
Mint a Random NFT from a Collection! (Folder: nft-ipfs)
An ERC721 NFT project written in solidity and deployed using brownie (python). A user can mint a random Doggie NFT (where the randomness factor is provided by Chainlink's VRF) from a newly created Doggie NFT Collection consisting of several unique NFTs. The minting rarity of each Doggie is based on a Chance Array that the owner of the deployed smart contract can modify if they so desired using the setChanceArray() function of the contract.
Upgradable Smart Contracts (Folder: upgrade-contracts)
An implementation of upgrading smart contracts using the transparent proxy pattern as seen by OpenZeppelin. These smart contracts also implement a ProxyAdmin contract as the main admin control source for all future proxy contracts. The Deploy script upgrades an implementation contract two times (for a total of 3 unique Box
contracts).
ERC-20 Token Staking DApp (Folder: staking-ui)
- Stake $RT tokens into contract
- Once staked, these $RT tokens will automatically earn interest over time
- Withdraw $RT Tokens back into wallet with interest
- Connect to dapp using Moralis's Connect Wallet feature
Smart Contract Lottery (Folder: smartcontract-lottery)
- Users can enter a lottery with ETH by paying a $50 USD equivalent fee.
- An admin will choose when the lottery is over.
- The lottery will select a random winner from those who entered and send them all the ETH! This random winner is determined by calling a ChainLink node to determine true randomness.