A provably fair and verifiably random lottery written in Solidity leveraging:
- Chainlink VRF for randomness
- Chainlink Automation for time based trigger
You can see this smart contract deployed on Sepolia here.
This project is built with Foundry a portable and modular toolkit for Ethereum application development, which is required to build and deploy the project.
Create a .env
file with the following entries:
SEPOLIA_RPC_URL=<sepolia_rpc_url>
PRIVATE_KEY=<private_key>
ETHERSCAN_API_KEY=<etherscan_api_key>
Install project dependencies
make install
Deploy the smart contract on Anvil
make anvil
make deploy
Deploy the smart contract on Sepolia
make deploy ARGS="--network sepolia"
To run against a local Anvil Ethereum node:
forge test
To run against a forked environment (e.g. a forked Sepolia testnet):
forge test --fork-url <sepolia_rpc_url>