- ✅ - Puzzle1 by FiveOutOfNine
- ✅ - Puzzle2 by FiveOutOfNine
- ✅ - Puzzle3 by Riley Holterhus
- ✅ - Puzzle4 by walden_yan
- ❌ - Puzzle6 by wei3erHase
- ✅ - Puzzle7 by brock
- ✅ - Puzzle8 by gf256
- ❌ - Puzzle9 by vex
- ✅ - Puzzle10 by FiveOutOfNine
- ✅ - Puzzle11 by Leo Alt
- ❌ - Puzzle12 by kaden
- ❌ - Puzzle13 by exptable
- ❌ - Puzzle14 by jtriley
- ❌- Puzzle15 by obront
- ✅ - Puzzle16 by devtooligan
- ✅ - Puzzle17 by hrkrshnn
- ✅ - Puzzle18 by horsefacts
As you can see, some of the puzzles are not working at the moment. If you got them to work, feel free to submit a PR.
I decided to create a directory of old Curta puzzles because I want to play them, all other available options of playing the puzzles were not working for me. Make sure to check out the Curta.wtf website for new puzzles and join there Discord.
- Run
forge build
- Install Huff
Put your RPC_URL_MAINNET
in .env.example
:
file: .env.example
RPC_URL_MAINNET=
After that, remove .example
from the file-name, leaving you with .env
.
I use Infura, but other RPC providers will work as well.
Pick the puzzle you want to play. Let's say you want to play Puzzle1, run this command:
forge script script/deploy/DeployPuzzle1.s.sol
This will log the seed to your console:
[⠒] Compiling...
No files changed, compilation skipped
Script ran successfully.
Gas used: 266368
== Logs ==
TwoTimesFourIsEight.generate():
6901746346790564457901554991452530692688817142401467382862937683132416
This will print seed in uint256
format.
If you need to convert the value to a hexidecimal value, follow these steps:
- Run
chisel
in your terminal - Copy and paste the following into your terminal:
uint256 puzzle = 6901746346790564457901554991452530692688817142401467382862937683132416
- Type
puzzle
, this should return:
chisel ─╯
Welcome to Chisel! Type `!help` to show available commands.
➜ uint256 puzzle = 6901746346790564457901554991452530692688817142401467382862937683132416
➜ puzzle
Type: uint
├ Hex: 0x0000010000000000000700000000040200000000030000800000006000500000
└ Decimal: 6901746346790564457901554991452530692688817142401467382862937683132416
- Use the
Hex
value for your puzzles!
Happy solving!
If you think you have got the answer, head over to the DeployPuzzle
file in script/deploy/
and follow these steps:
- Let's say we wan to submit the solution to Puzzle1
- Open
script/deploy/DeployPuzzle.s.sol
- Un-comment
testSolve()
and put your answer between the parentheses:
file: script/deploy/DeployPuzzle1.s.sol
// testSolved();
testSolved(0x123);
If the script successfully runs, this means you have solved the puzzle. If it fails, you have submitted the wrong answer.
If you are stuck with a puzzle, the answers for all puzzles are in script/deploy/DeployBase.sol
.
You can use the answers in DeployBase.sol
to try debugging the puzzles that are not working at the moment.