Skip to content Search Apps Documentation Source Content File Folder Download Copy Actions State String Boolean Number Struct Map Slice Pointer Function Closure Reference Nil Package Type Interface Unknown

Community realm. Read the code first. Community realm, deployed by its author. Read the code before you interact or send coins.

README.md

2.84 Kb · 47 lines

Lottery

⚠️ Experimental — generated with no human supervision by the daily MCP pipeline (Solidity→Gno port). Not audited. See r/moul/x/daily.


An idiomatic gno.land port of the classic Solidity Lottery contract.

Players Enter the current round (one entry per address per round — a second entry panics). Once a round has at least two entrants, anyone may DrawWinner, which picks a winner deterministically from the block height (ChainHeight() % len(entrants) over the deterministically-sorted entrant set), records it in the winners history, and opens a fresh round. Solidity's block.number-based pseudo-randomness maps to runtime.ChainHeight(), and msg.sender maps to unsafe.PreviousRealm().Address(). Render shows the open round, its entrants, and the table of past winners.

Example calls

# Two different accounts join round 1
gnokey maketx call -pkgpath gno.land/r/nym-moultest123/x/daily/lottery/v0 -func Enter ...   # from alice
gnokey maketx call -pkgpath gno.land/r/nym-moultest123/x/daily/lottery/v0 -func Enter ...   # from bob

# Anyone draws the winner and opens round 2
gnokey maketx call -pkgpath gno.land/r/nym-moultest123/x/daily/lottery/v0 -func DrawWinner ...

Read-only helpers: CurrentRound(), NumEntrants(), HasEntered(addr).


Part of moul/gno-contracts — moul's versioned gno.land contracts. See the repository for the full catalog, build/test tooling, and usage.

On mainnet: deployment status transactions unique callers deployed revision

Dependency graph:

gno.land/r/nym-moultest123/x/daily/lottery/v0 dependency graph

🧪 Highly experimental — potentially vibe-coded. Not audited; may break, change, or be removed at any time. Do not use with anything of value. Full disclaimer: DISCLAIMER.