Skip to content

ethernautdao/evm-runners-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

evm-runners-cli

The command line interface for evm-runners, a terminal-based game with EVM based levels.

Installation

curl -L get.evmr.sh | bash

This command will install the binary in ~/.evm-runners/bin and updates PATH in your shell configuration file (e.g. ~/.bashrc, ~/.zshrc, ...).

After successfull installation you can initialize evm-runners with evmr init, or alternatively, evm-runners init.

To update the CLI to the latest version, run evmrup.

Alternatively

Install from source by running:

make && make install

This will install the binary in ~/.evm-runners/bin

Note: If you wish to run the evm-runners binary from any directory, ensure that ${HOME}/.evm-runners is added to your PATH environment variable. You can do this by adding the following line to your shell configuration file:

export PATH="${PATH}:{HOME}/.evm-runners/bin"

Make sure you have Go 1.20 or a later version installed to compile the source code.

How to play

After successful installation, run evmr init to initialize evm-runners. This will clone the evm-runners-levels repository into the current directory. You can then start solving a level by running evmr start.

To validate a solution, run evmr validate <level>. If it is valid, you can submit it by running evmr submit <level>. Before submitting a solution you have to authenticate your account by running evmr auth discord.

gameplay

Available commands

Note: You can invoke all commands with evm-runners <cmd> as well.

Display info about evm-runners

evmr about

Link your address

evmr address

Links your Optimism address to your account. After linking your address, you will receive an NFT on Optimism showcasing your scores after submitting a solution for a level.

Authentication

evmr auth <platform>

Authenticates your account. As of now only Discord authentication is available: evmr auth discord.

Display help

evmr -h

Use evmr <cmd> -h to display help for a specific command.

Initialize evm-runners

evmr init

This command clones the evm-runners-levels repository into the current directory and updates the .env file in ~/.evm-runners/

Show the leaderboard of a level

evmr leaderboard <level>

Display a list of all levels

evmr levels

Start solving a level

evmr start

Opens a list of levels to choose from. Alternatively, you can also start solving a level by providing the level name as an argument, e.g. evmr start average

Optional flags:

  • --lang or -l, to directly choose the language of the solution file you want to work on, e.g. evmr start average -l sol

Submit a solution

evmr submit <level>

Optional flags:

  • --bytecode or -b, to submit bytecode directly, e.g. evmr submit average -b 0xabcd
  • --lang or -l, to choose the language of the solution file when more than one solution file is present, e.g. evmr submit average -l sol

Update levels directory

evmr update

This command runs git pull inside the levels directory, updating the levels to the latest version.

Validate a solution for a level

evmr validate <level>

Optional flags:

  • --bytecode or -b, to validate bytecode directly, e.g. evmr validate average --bytecode 0xabcd
  • --lang or -l, to choose the language of the solution file when more than one solution file is present, e.g. evmr validate average -l sol

Show the current version of evm-runners

evmr version