Skip to content

Testing framework for EVM implementations.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

matter-labs/era-evm-tester

ZKsync Era: The EVM Implementations Testing Framework

Logo

General state tests

ZKsync Era is a layer 2 rollup that uses zero-knowledge proofs to scale Ethereum without compromising on security or decentralization. As it's EVM-compatible (with Solidity/Vyper), 99% of Ethereum projects can redeploy without needing to refactor or re-audit any code. ZKsync Era also uses an LLVM-based compiler that will eventually enable developers to write smart contracts in popular languages such as C++ and Rust.

The era-evm-tester test framework runs tests for EVM implementation on top of EraVM.

Building

1. Install Rust.
  • Follow the latest official instructions:

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    . ${HOME}/.cargo/env

    Currently we are not pinned to any specific version of Rust, so just install the latest stable build for your platform.

2. Install ZKsync Foundry.
3. Checkout or clone the repository.
  • If you have not cloned this repository yet:

    git clone https://github.com/matter-labs/era-evm-tester.git --recursive
  • If you have already cloned this repository:

    git submodule update --init --recursive --remote
4. Build system contracts.
  • Install Node.js

  • Enter system contracts directory:

    cd era-contracts
  • Install dependencies:

    yarn
  • Build contracts:

    yarn build

When the build succeeds, you can run the tests using the usage section.

What is supported

Platforms

  • EVM emulator on top of EraVM

Usage

Each command assumes you are at the root of the evm-tester repository.

Generic command

cargo run --release --bin evm-tester -- [-v] \
	[--path="${PATH}"]*

There are more rarely used options, which you may check out with ./target/release/evm-tester --help.

License

The Era EVM Tester is distributed under the terms of either

at your option.

Official Links

Disclaimer

ZKsync Era has been through extensive testing and audits, and although it is live, it is still in alpha state and will undergo further audits and bug bounty programs. We would love to hear our community's thoughts and suggestions about it! It's important to note that forking it now could potentially lead to missing important security updates, critical features, and performance improvements.

About

Testing framework for EVM implementations.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages