- Implement ownable
- Owner deploy lottery and define betting price and fee
- Owner start lottery
- Define a block timestamp target
- Players must buy an ERC20 with ETH
- Players pay ERC20 to bet
- Only possible before block timestamp met
- Anyone can roll the lottery
- Only after block timestamp target is met
- Randomness from RANDAO
- Winner receives the pooled ERC20 minus fee
- Owner can withdraw fees and restart lottery
- Players can burn ERC20 tokens and redeem ETH
- Implementing the relatively safe randomness source from
prevrandao
- Implementing the time lock using block timestamp
- Block time estimation
- Implementing the fee
- (Review) Dealing with decimals
- Withdrawing from pool and redeeming eth
- (Bonus) "Normal" factory pattern and clone pattern overview
- Build a frontend for the Lottery dApp
- Use any framework of your preference
- I will use create-web3-react tools
All implemented functions in the project (checked) :
- Bet
- burnTokens
- buyTokens
- Check>tate
- ClaimPrize
- ClosingBets
- DisplayBalance
- DisplayOwnerPool
- DisplayPrize
- DisplayTokenBalance
- MintContract
- OpenBets
- WalletInfo
- withdrawTokens