8 releases (4 breaking)
0.5.0 | Mar 18, 2025 |
---|---|
0.4.0 | Feb 20, 2025 |
0.3.0 | Feb 11, 2025 |
0.2.0 | Feb 6, 2025 |
0.1.0 | Sep 30, 2024 |
#5 in #eigen-layer
517 downloads per month
Used in eigensdk
78KB
1.5K
SLoC
EigenSDK-rs
EigenSDK-rs is an initiative for rust developers to build AVSs on eigenlayer.
Installation
cargo add eigensdk --features full
Overview
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-crypto-bls - New bls key pair, sign message, conversion utilites between alloy and arkworks bn254.
- eigen-crypto-bn254 - verify message on G2, map to curve.
- eigen-metrics - performance, rpc and economic metrics
- eigen-services - Spawn tokio services for operators info, bls aggregation
- eigen-types - Common types
- eigen-utils
rewardsv2
- Publicly exportablemainnet rewards-v2 v0.5.4
compatible alloy bindings.slashing
- Publicly exportable alloy bindings compatible with v1.1.1-testnet-slashing.
- eigen-testing-utils - Contains publicly exportable anvil, holesky, mainnet addresses for eigen contracts.
- eigen-cli - ECDSA, BLS keystore cli
- eigen-nodeapi - NodeApi implementation for EigenLayer.
- eigen-logging - Logging utilities
- eigen-common - Common utilities like provider and signer getters.
Examples
You can run any example using the command cargo run --example <example-name>
Example :
cargo run --example get_quorum_count
Generating and saving anvil state
- Copy env
cp ./crates/m2_contracts/.env.example ./crates/m2_contracts/.env
cp ./crates/operator_sets_contracts/.env.example ./crates/operator_sets_contracts/.env
- Run the command
make dump-state
Contract Bindings
The main branch of this repo is intended to be syncronized with mainnet version of core contracts.
To update the bindings of this repo, run:
make bindings
This command will generate the bindings files in the folder: crates/utils
.
Important: this command requires Docker installed and running since it uses a container to generate the bindings.
Contributor Guidelines
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.
Branches
main
- Points to the latest mainnet release of contracts.testnet
- Points to the latest testnet release of contracts.dev
- Points to the latest dev branch of the contracts.
PR
To test locally :-
You need foundry
to successfully run it.
cargo test --workspace
At least 1 approving
review is required to merge the PR.
lint
make lint
To run fireblocks tests
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
Test Coverage
Test coverage should aim to be around 80%.
Here's how to generate test coverage reports:
Install llvm tools:
make deps
Run the tests with coverage instrumentations:
make coverage
Open the coverage html report in a web browser:
open target/llvm-cov/html/index.html
Supported Rust Version
Rolling MSRV
policy of 6 months. The current MSRV
is 1.79
Disclaimer
🚧 EigenSDK-rs is under active development and has not been audited. EigenSDK-rs is rapidly being upgraded, features may be added, removed or otherwise improved or modified and interfaces will have breaking changes. EigenSDK-rs should be used only for testing purposes and not in production. EigenSDK-rs is provided "as is" and Eigen Labs, Inc. does not guarantee its functionality or provide support for its use in production. 🚧
Credits
Security Bugs
Please report security vulnerabilities to security@eigenlabs.org. Do NOT report security bugs via Github Issues.
Support
Join our telegram channel .
Dependencies
~59–78MB
~1.5M SLoC