Rust <> EigenLayer developer tools
List of crates in the repository :-
- eigen-client-avsregistry - Read, Write and subscribe methods for AvsRegistry
- eigen-client-elcontracts - Convenience methods to call Eigenlayer contracts
- eigen-chainio-utils
- eigen-contracts-bindings - Generate ethers bindings for Eigen Layer.
- eigen-crypto-bls - bls utilities
- eigen-crypto-bn254 - bn254 utilities
- eigen-metrics - performance , rpc and economic metrics
- eigen-services - Spawn tokio services for operators info , bls aggregation
- eigen-types - Common types
- eigen-utils - Publicly exportable
m2-mainnet
compatible alloy bindings. - eigen-testing-utils - Contains publicly exportable anvil , holesky , mainnet addresses for eigen contracts .
You can run any example using the command cargo run --example
Example :
cargo run --example get_quorum_count
We are actively looking for contributors. Thank you for your interest. We have strict ci checks in place. In case of any questions and support , feel free to raise an issue.
To test locally and raise a PR :-
You need foundry
, docker
and make
and nightly rust
to successfully run it. Also, the docker
engine has to be running for all the tests to execute correctly.
make pr
At least 1 approving
review is required to merge the PR.
Add the following variables to your env
- FIREBLOCKS_API_KEY
- FIREBLOCKS_PRIVATE_KEY_PATH
- FIREBLOCKS_API_URL
and then run the following command
make fireblocks-tests
Note: The tests were written using sandbox environment , you would need to modify the testing parameters according to your own asset id's , tx-id etc.
Test coverage should aim to be around 80%.
Here's how to generate test coverage reports:
Install llvm tools:
rustup component add llvm-tools-preview
Run the tests with coverage instrumentations:
cargo clean && mkdir -p coverage/ && rm -r coverage/*
CARGO_INCREMENTAL=0 RUSTFLAGS='-Cinstrument-coverage' LLVM_PROFILE_FILE='coverage/cargo-test-%p-%m.profraw' cargo test --no-fail-fast
Install coverage report tool and run it:
cargo install grcov
grcov . --binary-path ./target/debug/deps/ -s . -t html --branch --ignore-not-existing --ignore '../*' --ignore "/*" -o target/coverage/
Rolling MSRV
policy of 6 months. The current MSRV
is 1.79
This software is unaudited
.This is experimental software and is provided on an "as is" and "as available" basis and may not work at all. It should not be used in production.
Please report security vulnerabilities to security@eigenlabs.org. Do NOT report security bugs via Github Issues.
Telegram - supernovahs444