All notable changes to this project will be documented in this file.
Changelog is present since v0.1.2
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Each version will have a separate Breaking Changes
section as well. To describe in how to upgrade from one version to another if needed.
Those changes in added, changed or breaking changes, should include usage examples to add clarity to the sdk user.
- chore(deps): bump openssl from 0.10.68 to 0.10.70 in the cargo group across 1 directory by @dependabot in Layr-Labs#291
-
Added
eigen_common
dependency to theeigensdk
crate when "full" feature is enabled in #249.-
Now when enabling the "full" feature:
eigensdk = { version = "0.2", features = ["full"] }
You can use access the
eigen-common
crate as a submodule ofeigensdk
:use eigensdk::common::*;
-
-
Added bindings for
ECDSAStakeRegistry
andECDSAServiceManagerBase
in #269.-
These bindings can be accessed from:
// From `eigensdk` use eigensdk::utils::middleware::ecdsaservicemanagerbase; use eigensdk::utils::middleware::ecdsastakeregistry; // From `eigen_utils` use eigen_utils::middleware::ecdsaservicemanagerbase; use eigen_utils::middleware::ecdsastakeregistry;
-
-
Starting on this release, we're using
release-plz
to streamline our release process.
-
fix: use rewards coordinator on get operator avs/pi split methods by @maximopalopoli in Layr-Labs#250
-
The parameters of
ChainReader::new
changed, and it now receives the address of the rewards coordinator.It was previously called this way:
let el_chain_reader = ELChainReader::new( logger, SLASHER_ADDRESS, DELEGATION_MANAGER_ADDRESS, AVS_DIRECTORY_ADDRESS, provider_url, );
Now, it's called this way:
let el_chain_reader = ELChainReader::new( logger, SLASHER_ADDRESS, DELEGATION_MANAGER_ADDRESS, REWARDS_COORDINATOR, AVS_DIRECTORY_ADDRESS, provider_url, );
-
- Removed homepage from testing-utils crate in #266.
- Removed changelog generation by release-plz in #281.
- Removed examples packages from workspace.dependencies in Cargo.toml in #287.
- Removed release-plz-pr workflow in release-plz in #292.
- Fixed the rewardsv2 bindings version in readme to 0.5.4 in #246.
- docs: improve changelog by adding examples by @maximopalopoli in Layr-Labs#251
- Changes in the way bindings are generated in #243.
- The
bindings
target now generates the bindings using Docker with Foundry v0.3.0. - The previous
bindings
target was renamed tobindings_host
, as it runs without Docker. However thebindings_host
target is for CI use only. To generate the bindings, please use thebindings
target.
- The
- Fixed incorrect package name in Cargo.toml for examples in #285.
- docs: add mention of updated bindings to changelog by @MegaRedHand in Layr-Labs#233
- chore: format contracts by @ricomateo in Layr-Labs#235
- ci: add foundry workflow by @ricomateo in Layr-Labs#236
- ci: add CI job to check whether anvil state is up to date by @ricomateo in Layr-Labs#237
- chore: remove existing bindings when generating new ones by @ricomateo in Layr-Labs#242
- chore: remove alloy reexported crates from dependencies by @ricomateo in Layr-Labs#244
- docs: sync root and
crates/eigensdk/
READMEs by @ricomateo in Layr-Labs#245 - ci: add workflow to enforce updates to the changelog by @ricomateo in Layr-Labs#239
- docs: add
RELEASE.md
by @MegaRedHand in Layr-Labs#231 - ci: fix check bindings job by @pablodeymo in Layr-Labs#247
- ci: fix job that checks anvil state is up-to-date by @ricomateo in Layr-Labs#252
- refactor: move bindings generation to script by @MegaRedHand in Layr-Labs#271
- fix: simplify Cargo.toml by @MegaRedHand in Layr-Labs#282
- ci: split tests and coverage by @MegaRedHand in Layr-Labs#286
- feat: add rewards-v2 related functionality by @supernovahs in Layr-Labs#221
-
New methods in
ELChainReader
:get_operator_avs_split
// Given a chain_reader, an operator_address and an avs_address: let split = el_chain_reader .get_operator_avs_split(operator_address, avs_address) .await .unwrap();
get_operator_pi_split
// Given a chain_reader and an operator_address: let split = el_chain_writer .el_chain_reader .get_operator_pi_split(operator_address) .await .unwrap();
-
New methods in
ELChainWriter
:set_operator_avs_split
// Given a chain_writer, an operator_address, an avs_address and a split: let tx_hash = el_chain_writer .set_operator_avs_split(operator_address, avs_address, split) .await .unwrap(); let receipt = wait_transaction(&http_endpoint, tx_hash).await.unwrap();
set_operator_pi_split
// Given a chain_writer, an operator_address and a split: let tx_hash = el_chain_writer .set_operator_pi_split(operator, split) .await .unwrap(); let receipt = wait_transaction(&http_endpoint, tx_hash).await.unwrap();
-
Bindings updated for rewards-v2 core contracts release
-
-
feat!: remove delegation manager from
ELChainWriter
by @supernovahs in Layr-Labs#214-
ELChainWriter::new
no longer receives the delegation manager address as first parameter. Before, a chainWriter was created this way:let el_writer = ELChainWriter::new( DELEGATION_MANAGER_ADDRESS, STRATEGY_MANAGER_ADDRESS, REWARDS_COORDINATOR, el_chain_reader, "https://ethereum-holesky.blockpi.network/v1/rpc/public".to_string(), "bead471191bea97fc3aeac36c9d74c895e8a6242602e144e43152f96219e96e8".to_string(), );
Now, the creation is done without the delegation manager address:
let el_writer = ELChainWriter::new( STRATEGY_MANAGER_ADDRESS, REWARDS_COORDINATOR, el_chain_reader, "<https://ethereum-holesky.blockpi.network/v1/rpc/public>".to_string(), "bead471191bea97fc3aeac36c9d74c895e8a6242602e144e43152f96219e96e8".to_string(), );
-
-
feat!: change way bindings are generated by @MegaRedHand in Layr-Labs#204
eigen_utils::core
contains bindings related to core contractseigen_utils::middleware
contains bindings related to middleware contractseigen_utils::sdk
contains bindings related to the SDK (should only be used for testing)
Now, to update the bindings, run
make bindings
. This command will generate the bindings files in the folder:crates/utils
.
- docs: add CHANGELOG.md by @lferrigno in Layr-Labs#220
- ci: change docker setup action for official one by @MegaRedHand in Layr-Labs#219
- docs: add error message for
cargo test
on darwin by @MegaRedHand in Layr-Labs#215 - test: fix
test_register_and_update_operator
by @ricomateo in Layr-Labs#223 - chore: update way anvil state dump is generated by @ricomateo in Layr-Labs#222
- fix: disable doctests on
eigen-utils
by @MegaRedHand in Layr-Labs#227 - chore: bump version by @MegaRedHand in Layr-Labs#228
- docs: add GitHub release changelog configuration by @MegaRedHand in Layr-Labs#229
- Added retries with exponential backoff to send transactions in #158
- Added
query_registration_detail
method in #162 - Added clippy lints in
Cargo.toml
in #159 - Added BLS aggregation logger in #154
- Added
common
crate toeigensdk
crate in #213
- Updated
eigenlayer-middleware
to v0.4.3 (rewards release) in #177 - Fixed Holesky RPC provider URL in #184
- Fixed BLS signature logic in #174
- Deleted
TxManager
in #151 - Removed
TxManager
crate import in #211 - Removed logs in
operatorsinfo
test in #185
- Added notes for running tests in #194
- Added "Contract Bindings" section to the README in #178
- Added "Branches" section to the README in #200
This changelog was introduced in-between v0.1.2 and v0.1.3. For changes from previous releases, you can check on our GitHub repo's releases page: github.com/Layr-Labs/eigensdk-rs/releases