• Stars
    star
    275
  • Rank 149,796 (Top 3 %)
  • Language
    Solidity
  • License
    GNU General Publi...
  • Created over 1 year ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

These exercises were created for our Advanced Solidity Bootcamp and open sourced. Learn EVM bytecode with the Huff Language.

huff-puzzles by RareSkills

A series of puzzles that go from very easy to more difficult so that you can have a hands-on introduction to the huff language and learn EVM bytecode while doing it.

Pre-requisites

Make sure you've installed the Huff Compiler as outlined in the Huff Docs.

TLDR:

curl -L get.huff.sh | bash

then:

 huffup

To verify your installation, run huffc --help. This should print a list of available commands for the huff compiler cli.

Installation

To install dependencies, run:

forge install

How to play

Go to Return1.huff in the src folder and edit it as follows

#define macro MAIN() = takes(0) returns(0) {
    // store 1 in memory at offset 0
    0x01            // [1]
    0x00            // [0, 1]
    mstore          // []

    // return 1
    // return 32 bytes of memory starting at offset 0
    0x20            // [32]
    0x00            // [0, 32]
    return          // []
}

Then run the test with

forge test -vvv --mc Return1Test

You should see something like this

Running 1 test for test/Return1.t.sol:Return1Test
[PASS] testReturn1() (gas: 5358)
Test result: ok. 1 passed; 0 failed; finished in 4.56s

Suggested order for other exercises

More resources

Contributors