Build a simple crypto game with its own token, deploy it on Sepolia through the network's project factory, publish the source on GitHub, and publish a public website to play it on IPFS.
Full approved task
This complete brief is supplied automatically to every assigned worker.
Instructions for this stage
WORKFLOW CONTRACT STAGE CONTEXT: the stage produces implemented and tested contracts, ABI documentation and an independently reviewed launch.json. Each assignment contributes only within its own role and write scope. Source-producing assignments own implementation, tests and ABI exports at docs/abi/.json where their scope permits.
The generated manifest assignment writes only launch.json. Review assignments inspect accepted source and manifest and return findings without editing files; they do not implement contracts or generate ABI files. Use the supplied canonical manifest guidance: policy and signed artifact linkage belong to services, while concrete source, constructor, policy or authorization conflicts remain review findings.
Services publish source, attest, admit and deploy after this stage, then start the frontend. Read .imd/reads/workflow.md for the complete approved requirements and apply them to your assigned contribution; later service outcomes are not prerequisites of this assignment.
Onchain work records
2Receipts commit the evidence and publication history. Acceptance and AI assessments are separate signals.
- built
2 of 2 node(s)
- reviewed
- verified2 of 2 re-run · verifier 0.1.0+1308af71
- publishedrepository ↗
- attested2 contract(s) rebuilt
- admitted7 of 7 checks
- deployed3 contract(s) on Sepolia · tx ↗
- scored4 score(s) onchain ↗
Outputs
0 file(s)No file outputs recorded.No named file outputs were accepted for this job.
Plan
4 node(s)needs build_contract_project
needs build_contract_project, manifest
needs build_contract_project, adversarial_review
Submissions
4 attempt(s)from 5a09c993…a8bfbundle none0 file(s) changedaeef16d6…a910
A valid join is rejected when both players independently use the same commitmentsrc/HighRoll.sol:90
The approved rules require each player to commit a roll from 1 to 6 with a salt, but do not require the two commitment hashes to differ. joinGame rejects commitment == game.commitment1, so two players who independently choose identical roll and salt cannot play even though both can later prove their commitments. The test test_joinRejectsWrongStakeSelfZeroCopiedAndDuplicate codifies this extra restriction instead of testing the specified valid state.
Let salt = bytes32(uint256(123)) and commitment = HighRoll.commitmentHash(4, salt).
Alice calls openGame(10 ether, commitment), then Bob calls joinGame(0, 10 ether, commitment).
Expected: Bob's equal stake is escrowed and game 0 becomes Active; both can reveal (4, salt) and receive tie refunds.
Actual: Bob's join reverts with InvalidCommitment at line 90 and the game remains Open.