ScopeLift / cove-backend

Simple, reliable, open-source contract verification built for an L2 centric Ethereum ecosystem
http://covecontracts.com/
23 stars 1 forks source link
backend ethereum ethers-rs rust verification

Cove

This repo contains the backend verification[^1] code for Cove, a simple, reliable, open-source contract verification built for an L2 centric Ethereum ecosystem.

Why?

The current state of smart contract verification has a lot of room for improvement:

The State of Cove

Development

Getting Started

Run cp .env.template .env and fill in the environment variables. Then run cargo run to start the server or cargo test to run tests.

Formatting and linting use the latest nightly version of Rust, and clippy warnings are treated as errors. Therefore use:

Deployment is done with a docker container so all dependencies (e.g. git and foundry) can be installed in the container. To build the docker image, run docker build --tag cove . in the root directory. To start a container from that image, run docker run --env-file .env -p 8000:8000 cove

How it Works

All methods and modules are documented, so the best way to gain an understanding of the code is to read the docs. This can be done by running cargo doc --open --document-private-items and reading about each of the modules and methods.

Much of the structure is based on the book Zero To Production In Rust, which is a great resource for learning how to build a production-ready Rust applications.

[^1]: The frontend can be found in the ScopeLift/cove-frontend repo.

[^2]: Creation transaction hashes and forge build profiles are required for now to reduce verification time and RPC usage.

[^3]: Thanks to heimdall-rs by @Jon-Becker.