├── .gitignore ├── .gitmodules ├── .solhint.json ├── .solhintignore ├── .vscode └── settings.json ├── README.md ├── bun.lockb ├── foundry.toml ├── mud.config.ts ├── package.json ├── pnpm-lock.yaml ├── remappings.txt ├── script └── PostDeploy.s.sol ├── scripts ├── checkWord.ts ├── dictionary.txt ├── encodeLetter.ts ├── generateMerkleTree.ts └── transferLetters.ts ├── src ├── codegen │ ├── common.sol │ ├── index.sol │ ├── tables │ │ ├── ClaimRestrictionConfig.sol │ │ ├── DrawCount.sol │ │ ├── DrawLastSold.sol │ │ ├── DrawLetterOdds.sol │ │ ├── DrawUpdate.sol │ │ ├── FeeConfig.sol │ │ ├── GameConfig.sol │ │ ├── MerkleRootConfig.sol │ │ ├── PlayUpdate.sol │ │ ├── PlayerLetters.sol │ │ ├── Points.sol │ │ ├── PointsClaimedUpdate.sol │ │ ├── PointsUpdate.sol │ │ ├── PriceConfig.sol │ │ ├── Spent.sol │ │ ├── TileLetter.sol │ │ ├── TilePlayer.sol │ │ ├── Treasury.sol │ │ └── UpdateId.sol │ └── world │ │ ├── IClaimSystem.sol │ │ ├── IDonateSystem.sol │ │ ├── IDrawSystem.sol │ │ ├── IPlaySystem.sol │ │ ├── ISetDrawLetterOddsSystem.sol │ │ ├── ISetFeeConfigSystem.sol │ │ ├── IStartSystem.sol │ │ ├── ITransferLettersSystem.sol │ │ └── IWorld.sol ├── common │ ├── Bonus.sol │ ├── Bound.sol │ ├── Constants.sol │ ├── Coord.sol │ └── Errors.sol ├── libraries │ ├── LibBoard.sol │ ├── LibBonus.sol │ ├── LibGame.sol │ ├── LibLetters.sol │ ├── LibPlay.sol │ ├── LibPlayer.sol │ ├── LibPoints.sol │ ├── LibPrice.sol │ ├── LibTile.sol │ ├── LibTreasury.sol │ └── LibUpdateId.sol ├── systems │ ├── ClaimSystem.sol │ ├── DonateSystem.sol │ ├── DrawSystem.sol │ ├── PlaySystem.sol │ ├── SetDrawLetterOddsSystem.sol │ ├── SetFeeConfigSystem.sol │ ├── StartSystem.sol │ └── TransferLettersSystem.sol └── test │ ├── Words3Test.t.sol │ ├── integration │ ├── Claim.t.sol │ ├── CrossWord.t.sol │ ├── CrossWordBounds.t.sol │ ├── CrossWordNoEmpty.t.sol │ ├── Points.t.sol │ ├── SimpleWord.t.sol │ ├── Start.t.sol │ ├── Transfer.t.sol │ └── WorldExists.t.sol │ └── unit │ ├── LibBoard.t.sol │ ├── LibBonus.t.sol │ ├── LibGame.t.sol │ ├── LibLetters.t.sol │ ├── LibPlay.t.sol │ ├── LibPoints.t.sol │ ├── LibPrice.t.sol │ ├── LibTreasury.t.sol │ └── Wrapper.sol ├── tsconfig.json └── worlds.json /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/.gitignore -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/.gitmodules -------------------------------------------------------------------------------- /.solhint.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/.solhint.json -------------------------------------------------------------------------------- /.solhintignore: -------------------------------------------------------------------------------- 1 | src/codegen 2 | src/test/murky -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/README.md -------------------------------------------------------------------------------- /bun.lockb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/bun.lockb -------------------------------------------------------------------------------- /foundry.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/foundry.toml -------------------------------------------------------------------------------- /mud.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/mud.config.ts -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/package.json -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/pnpm-lock.yaml -------------------------------------------------------------------------------- /remappings.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/remappings.txt -------------------------------------------------------------------------------- /script/PostDeploy.s.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/script/PostDeploy.s.sol -------------------------------------------------------------------------------- /scripts/checkWord.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/scripts/checkWord.ts -------------------------------------------------------------------------------- /scripts/dictionary.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/scripts/dictionary.txt -------------------------------------------------------------------------------- /scripts/encodeLetter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/scripts/encodeLetter.ts -------------------------------------------------------------------------------- /scripts/generateMerkleTree.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/scripts/generateMerkleTree.ts -------------------------------------------------------------------------------- /scripts/transferLetters.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/scripts/transferLetters.ts -------------------------------------------------------------------------------- /src/codegen/common.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/codegen/common.sol -------------------------------------------------------------------------------- /src/codegen/index.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/codegen/index.sol -------------------------------------------------------------------------------- /src/codegen/tables/ClaimRestrictionConfig.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/codegen/tables/ClaimRestrictionConfig.sol -------------------------------------------------------------------------------- /src/codegen/tables/DrawCount.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/codegen/tables/DrawCount.sol -------------------------------------------------------------------------------- /src/codegen/tables/DrawLastSold.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/codegen/tables/DrawLastSold.sol -------------------------------------------------------------------------------- /src/codegen/tables/DrawLetterOdds.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/codegen/tables/DrawLetterOdds.sol -------------------------------------------------------------------------------- /src/codegen/tables/DrawUpdate.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/codegen/tables/DrawUpdate.sol -------------------------------------------------------------------------------- /src/codegen/tables/FeeConfig.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/codegen/tables/FeeConfig.sol -------------------------------------------------------------------------------- /src/codegen/tables/GameConfig.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/codegen/tables/GameConfig.sol -------------------------------------------------------------------------------- /src/codegen/tables/MerkleRootConfig.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/codegen/tables/MerkleRootConfig.sol -------------------------------------------------------------------------------- /src/codegen/tables/PlayUpdate.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/codegen/tables/PlayUpdate.sol -------------------------------------------------------------------------------- /src/codegen/tables/PlayerLetters.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/codegen/tables/PlayerLetters.sol -------------------------------------------------------------------------------- /src/codegen/tables/Points.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/codegen/tables/Points.sol -------------------------------------------------------------------------------- /src/codegen/tables/PointsClaimedUpdate.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/codegen/tables/PointsClaimedUpdate.sol -------------------------------------------------------------------------------- /src/codegen/tables/PointsUpdate.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/codegen/tables/PointsUpdate.sol -------------------------------------------------------------------------------- /src/codegen/tables/PriceConfig.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/codegen/tables/PriceConfig.sol -------------------------------------------------------------------------------- /src/codegen/tables/Spent.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/codegen/tables/Spent.sol -------------------------------------------------------------------------------- /src/codegen/tables/TileLetter.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/codegen/tables/TileLetter.sol -------------------------------------------------------------------------------- /src/codegen/tables/TilePlayer.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/codegen/tables/TilePlayer.sol -------------------------------------------------------------------------------- /src/codegen/tables/Treasury.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/codegen/tables/Treasury.sol -------------------------------------------------------------------------------- /src/codegen/tables/UpdateId.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/codegen/tables/UpdateId.sol -------------------------------------------------------------------------------- /src/codegen/world/IClaimSystem.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/codegen/world/IClaimSystem.sol -------------------------------------------------------------------------------- /src/codegen/world/IDonateSystem.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/codegen/world/IDonateSystem.sol -------------------------------------------------------------------------------- /src/codegen/world/IDrawSystem.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/codegen/world/IDrawSystem.sol -------------------------------------------------------------------------------- /src/codegen/world/IPlaySystem.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/codegen/world/IPlaySystem.sol -------------------------------------------------------------------------------- /src/codegen/world/ISetDrawLetterOddsSystem.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/codegen/world/ISetDrawLetterOddsSystem.sol -------------------------------------------------------------------------------- /src/codegen/world/ISetFeeConfigSystem.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/codegen/world/ISetFeeConfigSystem.sol -------------------------------------------------------------------------------- /src/codegen/world/IStartSystem.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/codegen/world/IStartSystem.sol -------------------------------------------------------------------------------- /src/codegen/world/ITransferLettersSystem.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/codegen/world/ITransferLettersSystem.sol -------------------------------------------------------------------------------- /src/codegen/world/IWorld.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/codegen/world/IWorld.sol -------------------------------------------------------------------------------- /src/common/Bonus.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/common/Bonus.sol -------------------------------------------------------------------------------- /src/common/Bound.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/common/Bound.sol -------------------------------------------------------------------------------- /src/common/Constants.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/common/Constants.sol -------------------------------------------------------------------------------- /src/common/Coord.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/common/Coord.sol -------------------------------------------------------------------------------- /src/common/Errors.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/common/Errors.sol -------------------------------------------------------------------------------- /src/libraries/LibBoard.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/libraries/LibBoard.sol -------------------------------------------------------------------------------- /src/libraries/LibBonus.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/libraries/LibBonus.sol -------------------------------------------------------------------------------- /src/libraries/LibGame.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/libraries/LibGame.sol -------------------------------------------------------------------------------- /src/libraries/LibLetters.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/libraries/LibLetters.sol -------------------------------------------------------------------------------- /src/libraries/LibPlay.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/libraries/LibPlay.sol -------------------------------------------------------------------------------- /src/libraries/LibPlayer.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/libraries/LibPlayer.sol -------------------------------------------------------------------------------- /src/libraries/LibPoints.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/libraries/LibPoints.sol -------------------------------------------------------------------------------- /src/libraries/LibPrice.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/libraries/LibPrice.sol -------------------------------------------------------------------------------- /src/libraries/LibTile.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/libraries/LibTile.sol -------------------------------------------------------------------------------- /src/libraries/LibTreasury.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/libraries/LibTreasury.sol -------------------------------------------------------------------------------- /src/libraries/LibUpdateId.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/libraries/LibUpdateId.sol -------------------------------------------------------------------------------- /src/systems/ClaimSystem.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/systems/ClaimSystem.sol -------------------------------------------------------------------------------- /src/systems/DonateSystem.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/systems/DonateSystem.sol -------------------------------------------------------------------------------- /src/systems/DrawSystem.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/systems/DrawSystem.sol -------------------------------------------------------------------------------- /src/systems/PlaySystem.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/systems/PlaySystem.sol -------------------------------------------------------------------------------- /src/systems/SetDrawLetterOddsSystem.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/systems/SetDrawLetterOddsSystem.sol -------------------------------------------------------------------------------- /src/systems/SetFeeConfigSystem.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/systems/SetFeeConfigSystem.sol -------------------------------------------------------------------------------- /src/systems/StartSystem.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/systems/StartSystem.sol -------------------------------------------------------------------------------- /src/systems/TransferLettersSystem.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/systems/TransferLettersSystem.sol -------------------------------------------------------------------------------- /src/test/Words3Test.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/test/Words3Test.t.sol -------------------------------------------------------------------------------- /src/test/integration/Claim.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/test/integration/Claim.t.sol -------------------------------------------------------------------------------- /src/test/integration/CrossWord.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/test/integration/CrossWord.t.sol -------------------------------------------------------------------------------- /src/test/integration/CrossWordBounds.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/test/integration/CrossWordBounds.t.sol -------------------------------------------------------------------------------- /src/test/integration/CrossWordNoEmpty.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/test/integration/CrossWordNoEmpty.t.sol -------------------------------------------------------------------------------- /src/test/integration/Points.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/test/integration/Points.t.sol -------------------------------------------------------------------------------- /src/test/integration/SimpleWord.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/test/integration/SimpleWord.t.sol -------------------------------------------------------------------------------- /src/test/integration/Start.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/test/integration/Start.t.sol -------------------------------------------------------------------------------- /src/test/integration/Transfer.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/test/integration/Transfer.t.sol -------------------------------------------------------------------------------- /src/test/integration/WorldExists.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/test/integration/WorldExists.t.sol -------------------------------------------------------------------------------- /src/test/unit/LibBoard.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/test/unit/LibBoard.t.sol -------------------------------------------------------------------------------- /src/test/unit/LibBonus.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/test/unit/LibBonus.t.sol -------------------------------------------------------------------------------- /src/test/unit/LibGame.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/test/unit/LibGame.t.sol -------------------------------------------------------------------------------- /src/test/unit/LibLetters.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/test/unit/LibLetters.t.sol -------------------------------------------------------------------------------- /src/test/unit/LibPlay.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/test/unit/LibPlay.t.sol -------------------------------------------------------------------------------- /src/test/unit/LibPoints.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/test/unit/LibPoints.t.sol -------------------------------------------------------------------------------- /src/test/unit/LibPrice.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/test/unit/LibPrice.t.sol -------------------------------------------------------------------------------- /src/test/unit/LibTreasury.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/test/unit/LibTreasury.t.sol -------------------------------------------------------------------------------- /src/test/unit/Wrapper.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/src/test/unit/Wrapper.sol -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/tsconfig.json -------------------------------------------------------------------------------- /worlds.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallbraineng/words3-contracts/HEAD/worlds.json --------------------------------------------------------------------------------