Skip to content

Latest commit

Β 

History

History
269 lines (195 loc) Β· 11.4 KB

CHANGELOG.md

File metadata and controls

269 lines (195 loc) Β· 11.4 KB

Changelog

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.

[Unreleased]

Security πŸ”’

Added πŸŽ‰

Breaking Changes πŸ› 

Deprecated ⚠️

Removed πŸ—‘

Documentation πŸ“š

Other Changes

[0.2.0] - 2025-02-06

Security πŸ”’

  • 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 πŸŽ‰

  • Added eigen_common dependency to the eigensdk 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 of eigensdk:

      use eigensdk::common::*;
  • Added bindings for ECDSAStakeRegistry and ECDSAServiceManagerBase 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.

    • Added release-plz in ci in #275.
    • Added custom configuration for release-plz in #281.
    • Fixed typo in release-plz toml file in #284.

Breaking Changes πŸ› 

  • 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 πŸ—‘

  • 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.

Documentation πŸ“š

  • 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

Other Changes

  • 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 to bindings_host, as it runs without Docker. However the bindings_host target is for CI use only. To generate the bindings, please use the bindings target.
  • 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

[0.1.3] - 2025-01-17

Added πŸŽ‰

  • 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

Breaking Changes πŸ› 

  • 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 contracts
    • eigen_utils::middleware contains bindings related to middleware contracts
    • eigen_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.

Documentation πŸ“š

Other Changes

  • 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

[0.1.2] - 2025-01-09

Added

  • 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 to eigensdk crate in #213

Changed

  • Updated eigenlayer-middleware to v0.4.3 (rewards release) in #177
  • Fixed Holesky RPC provider URL in #184
  • Fixed BLS signature logic in #174

Removed

  • Deleted TxManager in #151
  • Removed TxManager crate import in #211
  • Removed logs in operatorsinfo test in #185

Documentation

  • Added notes for running tests in #194
  • Added "Contract Bindings" section to the README in #178
  • Added "Branches" section to the README in #200

Previous versions

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