How taborswanson1/monad_blitz_gamble works
Block Casino is a browser-based, block-timed betting application with a Solidity contract backend and a simulation mode. Players connect or start a simulated session, place bets during an open round, request settlement when needed, and view results after resolution; crash replays delay publishing round history and session totals. The frontend also includes sim-only Crash and Beauty Contest games and session-limit/reality-check controls. Source excerpts show frontend orchestration and game logic; contract internals and some client behavior are unsampled, so their relationships are not inferred.
Main entry points: App.tsx Casino app · useCasino.ts Casino state · sim.ts Simulation client · outcomes.ts Bet resolution
Components 26
Casino interface
- Casino app
frontend/src/App.tsx - Session controls
frontend/src/hooks/useSession.ts - Bet panel
frontend/src/components/BetPanel.tsx - Round display
frontend/src/components/RoundHud.tsx - Bet history
frontend/src/components/History.tsx - Result reveal
frontend/src/components/RevealOverlay.tsx - Block stream
frontend/src/components/BlockStream.tsx
Client connectivity
- Client selector
frontend/src/client/index.ts - Chain client
frontend/src/client/chain.ts - Simulation client
frontend/src/client/sim.ts - Casino state
frontend/src/hooks/useCasino.ts
Game and round logic
- Round timing
frontend/src/lib/rounds.ts - Game definitions
frontend/src/lib/games.ts - Bet resolution
frontend/src/lib/outcomes.ts - Crash rules
frontend/src/lib/crash.ts - Beauty rules
frontend/src/lib/beauty.ts - Seed utilities
backend/sdk/seedlib.mjs
On-chain casino
- Casino contract
backend/contracts/BlockCasino.sol - Uniform games
backend/contracts/games/UniformGame.sol - Chip token
backend/contracts/ChipToken.sol - Game interface
backend/contracts/interfaces/IGame.sol
Randomness
- Randomness interface
backend/contracts/interfaces/IRandomness.sol - Pyth adapter
backend/contracts/randomness/PythEntropyAdapter.sol - Mock randomness
backend/contracts/randomness/MockRandomness.sol - Seed library
backend/contracts/lib/SeedLib.sol
Other components
- Player
Connections 22
- Player → Casino app: uses
- Casino app → Client selector: creates
frontend/src/App.tsx - Casino app → Casino state: orchestrates
frontend/src/App.tsx - Casino app → Session controls: tracks session
frontend/src/App.tsx - Casino app → Bet panel: renders
frontend/src/App.tsx - Casino app → Round display: renders
frontend/src/App.tsx - Casino app → Bet history: renders
frontend/src/App.tsx - Casino app → Result reveal: renders
frontend/src/App.tsx - Casino app → Block stream: renders
frontend/src/App.tsx - Client selector → Chain client: selects
frontend/src/client/index.ts - Client selector → Simulation client: selects
frontend/src/client/index.ts - Casino state → Client selector: calls client
frontend/src/hooks/useCasino.ts - Casino state → Bet resolution: resolves bets
frontend/src/hooks/useCasino.ts - Casino state → Game definitions: checks game kind
frontend/src/hooks/useCasino.ts - Casino state → Round timing: checks lock
frontend/src/hooks/useCasino.ts - Bet resolution → Beauty rules: resolves beauty
frontend/src/lib/outcomes.ts - Bet resolution → Crash rules: resolves crash
frontend/src/lib/outcomes.ts - Bet resolution → Game definitions: uses definitions
frontend/src/lib/outcomes.ts - Game definitions → Crash rules: uses crash rules
frontend/src/lib/games.ts - Simulation client → Round timing: uses timing
frontend/src/client/sim.ts - Simulation client → Game definitions: uses definitions
frontend/src/client/sim.ts - Simulation client → Beauty rules: uses rules
frontend/src/client/sim.ts