https://github.com/jitendragangwar123/raffle-royale
Raffle-Royale is a decentralized game where players stake ETH to enter a raffle, with Chainlink VRF ensuring provably fair winner selection and Chainlink Automation managing seamless and efficient operations.
https://github.com/jitendragangwar123/raffle-royale
chainlink foundry nextjs raffle-game solidity-contracts
Last synced: 2 months ago
JSON representation
Raffle-Royale is a decentralized game where players stake ETH to enter a raffle, with Chainlink VRF ensuring provably fair winner selection and Chainlink Automation managing seamless and efficient operations.
- Host: GitHub
- URL: https://github.com/jitendragangwar123/raffle-royale
- Owner: jitendragangwar123
- Created: 2024-12-19T11:57:33.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-12-23T12:13:15.000Z (4 months ago)
- Last Synced: 2025-01-02T05:18:56.695Z (4 months ago)
- Topics: chainlink, foundry, nextjs, raffle-game, solidity-contracts
- Language: Solidity
- Homepage: https://raffle-royale.vercel.app
- Size: 477 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Raffle Royale
#### Raffle-Royale is a decentralized game where players stake ETH to enter a raffle, with Chainlink VRF ensuring provably fair winner selection and Chainlink Automation managing seamless and efficient operations.
![]()
### Requirements
- [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
- [foundry](https://getfoundry.sh/)### Quickstart
```
$ git clone https://github.com/jitendragangwar123/Raffle-Royale.git
$ cd Raffle-Royale
$ make install
$ forge build
```### Start a local node
```
$ make anvil
```### Library
If you're having a hard time installing the chainlink library, you can optionally run this command.
```
$ forge install smartcontractkit/[email protected] --no-commit
```### Deploy
This will default to your local node. You need to have it running in another terminal in order for it to deploy.
```
$ make deploy
```
### Testing1. Unit
2. Integration
3. Forked
4. StagingThis repo we cover #1 and #3.
```
$ forge test
```or
```
$ forge test --fork-url $SEPOLIA_RPC_URL
```### Test Coverage
```
$ forge coverage
```### Deployment to a testnet or mainnet
1. Setup environment variables
You'll want to set your `SEPOLIA_RPC_URL` and `PRIVATE_KEY` as environment variables. You can add them to a `.env` file.
Optionally, add your `ETHERSCAN_API_KEY` if you want to verify your contract on [Etherscan](https://etherscan.io/).
1. Get testnet ETH
Head over to [faucets.chain.link](https://faucets.chain.link/) and get some testnet ETH. You should see the ETH show up in your metamask.
2. Deploy
```
$ make deploy ARGS="--network sepolia"
```This will setup a ChainlinkVRF Subscription for you. If you already have one, update it in the `scripts/HelperConfig.s.sol` file. It will also automatically add your contract as a consumer.
3. Register a Chainlink Automation Upkeep
[You can follow the documentation if you get lost.](https://docs.chain.link/chainlink-automation/compatible-contracts)
Go to [automation.chain.link](https://automation.chain.link/new) and register a new upkeep. Choose `Custom logic` as your trigger mechanism for automation.
### Scripts
After deploying to a testnet or local net, you can run the scripts.
Using cast deployed locally example:
```
$ cast send "enterRaffle()" --value 0.1ether --private-key --rpc-url $SEPOLIA_RPC_URL
```or, to create a ChainlinkVRF Subscription:
```
$ make createSubscription ARGS="--network sepolia"
```### Estimate gas
You can estimate how much gas things cost by running:
```
$ forge snapshot
```And you'll see an output file called `.gas-snapshot`
### Formatting
To run code formatting:
```
$ forge fmt
```### Front-End
1. Install the dependencies
```
$ npm i
```2. Start the client
```
$ npm run dev
```