Roulette
Last updated
Last updated
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.
Implements 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.
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.
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.
Rolled
: Emitted when a roulette spin is requested.
Landed
: Emitted with the result of a roulette spin.
LimitChanged
: Emitted when bet limits are updated.