Skip to content

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

License

Notifications You must be signed in to change notification settings

malm0d/huff-puzzles

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Solidity 100.0%