πRoulette
The Roulette smart contract is a part of a decentralized gaming platform, specifically designed to handle the logic and operations related to playing a game of roulette. It leverages the Ethereum blockchain for transparency, fairness, and security. The contract employs Chainlink's Verifiable Random Function (VRF) to ensure the randomness of roulette spins, integrates with a dynamic staking system, and adheres to the game interface standard defined within the platform.
Key Features
- Implements Chainlink VRF for provably fair randomness. 
- Integrates with a Dynamic staking mechanism for handling bets and payouts. 
- Enforces betting limits and validates bet data. 
- Non-reentrant to prevent re-entrancy attacks. 
- Emits events for key actions: bet placement, spin result, etc. 
Variables
- REQUIRED_FUNDS_COEFFICIENT: Multiplier for validating sufficient balance.
- subscriptionId,- vrfCoordinator,- keyHash: Chainlink VRF configuration.
- limits: Struct mapping defining minimum and maximum bet sizes.
- staking,- core: Addresses for the staking and core contracts.
Functions
Public and External
- getPossibleWin: Calculates the maximum possible win for given bet data.
- placeBet: Initiates a roulette spin request for a player. Validates bet data, requests randomness, and records the bet.
- getAddress,- getVersion,- getFeeType,- getStaking: Interface implementations providing contract details.
- setLimit: Updates minimum and maximum bet sizes for a specific bet type.
Events
- Rolled: Emitted when a roulette spin is requested.
- Landed: Emitted with the result of a roulette spin.
- LimitChanged: Emitted when bet limits are updated.
Last updated