The command line interface for evm-runners, a terminal-based game with EVM based levels.
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.
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
.
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