An interactive reference to Ethereum Virtual Machine Opcodes
This is the source code that runs evm.codes web application. Below you will find the docs on how to contribute to the project and get it up and running locally for further development.
evm.codes is brought to you by smlXL, powered by open-source projects such as EthereumJS, SolcJS and many others.
The app requires the following dependencies:
For contributing to the project, you can quickly get the application running by following these steps:
Clone this repository:
git clone [email protected]:smlxl/evm.codes.git
Install the dependencies:
pnpm install
Specify the environment variables if you want to run the contract viewer in .env.local
APIKEY_ETHERSCAN=
Start up the app and see it running at http://localhost:3000
pnpm dev
Deployments are handled automatically by Vercel, as soon as your PR is merged to main
.
evm.codes is built and maintained by a small team, so we would definitely love your help to fix bugs, add new features and improvements, or update EVM reference docs.
Before you submit a pull request, please make sure there isn't an existing GitHub issue. If there isn't, create one first to discuss the best way to approach it and also get some feedback from the team.
Once you are about to submit a pull request, prefix the name with either chore:
(small improvements and regular maintenance), fix:
(bugs and hot fixes), or feat:
(new features) to help us quickly look up the type of the issue from the Git history.
The project is already pre-configured with Eslint, TypeScript, and Prettier. Here are some useful commands you can run to ensure your changes follow the project's coding conventions:
Check for any linting issues and fix:
pnpm lint --fix
Check for any TypeScript issues:
pnpm typecheck
Sort the package.json
:
pnpm lint:package
If you would like to contribute, make sure to check the architecture document to learn about the code structure, and how the app is built.