diff --git a/.github/workflows/release-plz.yml b/.github/workflows/release-plz.yml index 214fc064..51b6e4b8 100644 --- a/.github/workflows/release-plz.yml +++ b/.github/workflows/release-plz.yml @@ -8,6 +8,7 @@ on: push: branches: - main + - dev jobs: diff --git a/CHANGELOG.md b/CHANGELOG.md index 6f33d97f..08cf86ed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,10 +12,23 @@ Each version will have a separate `Breaking Changes` section as well. To describ 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.3.0] - 2025-02-11 ### Added -* Added `eigen_common` dependency to the `eigensdk` crate when "full" feature is enabled in [#249](https://github.com/Layr-Labs/eigensdk-rs/pull/249). -* Added bindings for `ECDSAStakeRegistry` and `ECDSAServiceManagerBase` in [#269](https://github.com/Layr-Labs/eigensdk-rs/pull/269). -* Added release-plz in ci in [#275](https://github.com/Layr-Labs/eigensdk-rs/pull/275). * Added new method `set_slashable_stake_lookahead` in `avsregistry/writer` in [#278](https://github.com/Layr-Labs/eigensdk-rs/pull/278). ```rust let quorum_number = 0_u8; @@ -64,9 +77,37 @@ Those changes in added, changed or breaking changes, should include usage exampl .status(); // tx_status should be true ``` - -* Added custom configuration for release-plz in [#281](https://github.com/Layr-Labs/eigensdk-rs/pull/281). * Added Rewards2.1 support in [#323](https://github.com/Layr-Labs/eigensdk-rs/pull/323). + + * Set an operator's split on an operator set. + + ```rust + let operator_set = OperatorSet { + avs: avs_address, + id: 0, + }; + + let new_split = 5; + let tx_hash = el_chain_writer + .set_operator_set_split(OPERATOR_ADDRESS, operator_set.clone(), new_split) + .await + .unwrap(); + ``` + + * Get an operator's split on an operator set. + + ```rust + let operator_set = OperatorSet { + avs: avs_address, + id: 0, + }; + let split = el_chain_writer + .el_chain_reader + .get_operator_set_split(OPERATOR_ADDRESS, operator_set) + .await + .unwrap(); + ``` + * Added new method `set_operator_set_param` in `avsregistry/writer` in [#327](https://github.com/Layr-Labs/eigensdk-rs/pull/327). ```rust @@ -99,7 +140,7 @@ Those changes in added, changed or breaking changes, should include usage exampl ```rust let operator_set_quourm = avs_reader.is_operator_set_quorum(0).await.unwrap(); ``` - +* Added version explicitly in crates in [#322](https://github.com/Layr-Labs/eigensdk-rs/pull/322). * Added new method `set_account_identifier` in `avsregistry/writer` in [#329](https://github.com/Layr-Labs/eigensdk-rs/pull/329). ```rust @@ -110,12 +151,7 @@ Those changes in added, changed or breaking changes, should include usage exampl ``` ### Changed -* Changes in the way bindings are generated in [#243](https://github.com/Layr-Labs/eigensdk-rs/pull/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 the rewardsv2 bindings version in readme to 0.5.4 in [#246](https://github.com/Layr-Labs/eigensdk-rs/pull/246). -* Fixed typo in release-plz toml file in [#284](https://github.com/Layr-Labs/eigensdk-rs/pull/284). -* Fixed incorrect package name in Cargo.toml for examples in [#285](https://github.com/Layr-Labs/eigensdk-rs/pull/285). + ### Breaking changes * refactor: update interface on `bls aggregation` in [#254](https://github.com/Layr-Labs/eigensdk-rs/pull/254) @@ -188,11 +224,109 @@ Those changes in added, changed or breaking changes, should include usage exampl * Slashing UAM changes in [#248](https://github.com/Layr-Labs/eigensdk-rs/pull/248). ### Removed + +## [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 + +### Added 🎉 + +* Added `eigen_common` dependency to the `eigensdk` crate when "full" feature is enabled in [#249](https://github.com/Layr-Labs/eigensdk-rs/pull/249). + * Now when enabling the "full" feature: + + ```toml + eigensdk = { version = "0.2", features = ["full"] } + ``` + + You can use access the `eigen-common` crate as a submodule of `eigensdk`: + + ```rust + use eigensdk::common::*; + ``` + +* Added bindings for `ECDSAStakeRegistry` and `ECDSAServiceManagerBase` in [#269](https://github.com/Layr-Labs/eigensdk-rs/pull/269). + * These bindings can be accessed from: + + ```rust + // 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`](https://github.com/release-plz/release-plz) to streamline our release process. + * Added release-plz in ci in [#275](https://github.com/Layr-Labs/eigensdk-rs/pull/275). + * Added custom configuration for release-plz in [#281](https://github.com/Layr-Labs/eigensdk-rs/pull/281). + * Fixed typo in release-plz toml file in [#284](https://github.com/Layr-Labs/eigensdk-rs/pull/284). + +### Breaking Changes 🛠 + +* fix: use rewards coordinator on get operator avs/pi split methods by @maximopalopoli in + + * The parameters of `ChainReader::new` changed, and it now receives the address of the rewards coordinator. + + It was previously called this way: + + ```rust + let el_chain_reader = ELChainReader::new( + logger, + SLASHER_ADDRESS, + DELEGATION_MANAGER_ADDRESS, + AVS_DIRECTORY_ADDRESS, + provider_url, + ); + ``` + + Now, it's called this way: + + ```rust + 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](https://github.com/Layr-Labs/eigensdk-rs/pull/266). * Removed changelog generation by release-plz in [#281](https://github.com/Layr-Labs/eigensdk-rs/pull/281). * Removed examples packages from workspace.dependencies in Cargo.toml in [#287](https://github.com/Layr-Labs/eigensdk-rs/pull/287). * Removed release-plz-pr workflow in release-plz in [#292](https://github.com/Layr-Labs/eigensdk-rs/pull/292). +### Documentation 📚 + +* Fixed the rewardsv2 bindings version in readme to 0.5.4 in [#246](https://github.com/Layr-Labs/eigensdk-rs/pull/246). +* docs: improve changelog by adding examples by @maximopalopoli in + +### Other Changes + +* Changes in the way bindings are generated in [#243](https://github.com/Layr-Labs/eigensdk-rs/pull/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](https://github.com/Layr-Labs/eigensdk-rs/pull/285). +* docs: add mention of updated bindings to changelog by @MegaRedHand in +* chore: format contracts by @ricomateo in +* ci: add foundry workflow by @ricomateo in +* ci: add CI job to check whether anvil state is up to date by @ricomateo in +* chore: remove existing bindings when generating new ones by @ricomateo in +* chore: remove alloy reexported crates from dependencies by @ricomateo in +* docs: sync root and `crates/eigensdk/` READMEs by @ricomateo in +* ci: add workflow to enforce updates to the changelog by @ricomateo in +* docs: add `RELEASE.md` by @MegaRedHand in +* ci: fix check bindings job by @pablodeymo in +* ci: fix job that checks anvil state is up-to-date by @ricomateo in +* refactor: move bindings generation to script by @MegaRedHand in +* fix: simplify Cargo.toml by @MegaRedHand in +* ci: split tests and coverage by @MegaRedHand in + ## [0.1.3] - 2024-01-17 ### Added 🎉 * feat: add rewards-v2 related functionality by @supernovahs in https://github.com/Layr-Labs/eigensdk-rs/pull/221 @@ -312,4 +446,4 @@ Those changes in added, changed or breaking changes, should include usage exampl ## 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](https://github.com/Layr-Labs/eigensdk-rs/releases) +For changes from previous releases, you can check on our GitHub repo's releases page: [github.com/Layr-Labs/eigensdk-rs/releases](https://github.com/Layr-Labs/eigensdk-rs/releases) \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index fee03111..b38611ea 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2469,7 +2469,7 @@ dependencies = [ [[package]] name = "eigen-cli" -version = "0.1.3" +version = "0.3.0" dependencies = [ "alloy", "ark-ec 0.5.0", @@ -2500,7 +2500,7 @@ dependencies = [ [[package]] name = "eigen-client-avsregistry" -version = "0.1.3" +version = "0.3.0" dependencies = [ "alloy", "ark-ff 0.5.0", @@ -2523,7 +2523,7 @@ dependencies = [ [[package]] name = "eigen-client-elcontracts" -version = "0.1.3" +version = "0.3.0" dependencies = [ "alloy", "eigen-common", @@ -2540,7 +2540,7 @@ dependencies = [ [[package]] name = "eigen-client-eth" -version = "0.1.3" +version = "0.3.0" dependencies = [ "alloy", "async-trait", @@ -2560,7 +2560,7 @@ dependencies = [ [[package]] name = "eigen-client-fireblocks" -version = "0.1.3" +version = "0.3.0" dependencies = [ "alloy", "chrono", @@ -2580,7 +2580,7 @@ dependencies = [ [[package]] name = "eigen-common" -version = "0.1.3" +version = "0.3.0" dependencies = [ "alloy", "url", @@ -2588,7 +2588,7 @@ dependencies = [ [[package]] name = "eigen-crypto-bls" -version = "0.1.3" +version = "0.3.0" dependencies = [ "alloy", "ark-bn254 0.5.0", @@ -2608,7 +2608,7 @@ dependencies = [ [[package]] name = "eigen-crypto-bn254" -version = "0.1.3" +version = "0.3.0" dependencies = [ "ark-bn254 0.5.0", "ark-ec 0.5.0", @@ -2620,7 +2620,7 @@ dependencies = [ [[package]] name = "eigen-logging" -version = "0.1.3" +version = "0.3.0" dependencies = [ "ctor", "once_cell", @@ -2630,7 +2630,7 @@ dependencies = [ [[package]] name = "eigen-metrics" -version = "0.1.3" +version = "0.3.0" dependencies = [ "alloy", "eigen-client-avsregistry", @@ -2649,7 +2649,7 @@ dependencies = [ [[package]] name = "eigen-metrics-collectors-economic" -version = "0.1.3" +version = "0.3.0" dependencies = [ "alloy", "eigen-client-avsregistry", @@ -2665,7 +2665,7 @@ dependencies = [ [[package]] name = "eigen-metrics-collectors-rpc-calls" -version = "0.1.3" +version = "0.3.0" dependencies = [ "eigen-logging", "metrics", @@ -2673,7 +2673,7 @@ dependencies = [ [[package]] name = "eigen-nodeapi" -version = "0.1.3" +version = "0.3.0" dependencies = [ "ntex", "reqwest 0.12.12", @@ -2686,7 +2686,7 @@ dependencies = [ [[package]] name = "eigen-services-avsregistry" -version = "0.1.3" +version = "0.3.0" dependencies = [ "alloy", "ark-bn254 0.5.0", @@ -2705,7 +2705,7 @@ dependencies = [ [[package]] name = "eigen-services-blsaggregation" -version = "0.1.3" +version = "0.3.0" dependencies = [ "alloy", "ark-bn254 0.5.0", @@ -2734,7 +2734,7 @@ dependencies = [ [[package]] name = "eigen-services-operatorsinfo" -version = "0.1.3" +version = "0.3.0" dependencies = [ "alloy", "ark-bn254 0.5.0", @@ -2760,7 +2760,7 @@ dependencies = [ [[package]] name = "eigen-signer" -version = "0.1.3" +version = "0.3.0" dependencies = [ "alloy", "async-trait", @@ -2777,7 +2777,7 @@ dependencies = [ [[package]] name = "eigen-testing-utils" -version = "0.1.3" +version = "0.3.0" dependencies = [ "alloy", "eigen-common", @@ -2790,7 +2790,7 @@ dependencies = [ [[package]] name = "eigen-types" -version = "0.1.3" +version = "0.3.0" dependencies = [ "alloy", "eigen-crypto-bls", @@ -2802,7 +2802,7 @@ dependencies = [ [[package]] name = "eigen-utils" -version = "0.1.3" +version = "0.3.0" dependencies = [ "alloy", "reqwest 0.12.12", @@ -2810,7 +2810,7 @@ dependencies = [ [[package]] name = "eigensdk" -version = "0.1.3" +version = "0.3.0" dependencies = [ "eigen-client-avsregistry", "eigen-client-elcontracts", @@ -3288,7 +3288,7 @@ dependencies = [ [[package]] name = "examples-anvil-utils" -version = "0.1.3" +version = "0.3.0" dependencies = [ "alloy", "eigen-client-avsregistry", @@ -3299,7 +3299,7 @@ dependencies = [ [[package]] name = "examples-avsregistry-read" -version = "0.1.3" +version = "0.3.0" dependencies = [ "alloy", "eigen-client-avsregistry", @@ -3311,7 +3311,7 @@ dependencies = [ [[package]] name = "examples-avsregistry-write" -version = "0.1.3" +version = "0.3.0" dependencies = [ "alloy", "ark-bn254 0.4.0", @@ -4255,7 +4255,7 @@ dependencies = [ [[package]] name = "info-operator-service" -version = "0.1.3" +version = "0.3.0" dependencies = [ "alloy", "eigen-client-avsregistry", diff --git a/Cargo.toml b/Cargo.toml index acb18644..6ac0e6e7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -29,7 +29,7 @@ members = [ resolver = "2" [workspace.package] -version = "0.1.3" +version = "0.3.0" edition = "2021" authors = ["Eigen Layer contributors"] rust-version = "1.79" @@ -58,7 +58,7 @@ clippy.question_mark = "warn" clippy.implicit_return = "allow" [workspace.dependencies] -eigen-client-avsregistry = { path = "crates/chainio/clients/avsregistry" } +eigen-client-avsregistry = { version = "0.3.0", path = "crates/chainio/clients/avsregistry" } ark-bn254 = "0.5.0" ark-ec = "0.5.0" ark-ff = "0.5.0" @@ -68,24 +68,24 @@ aws-config = "1.5.9" aws-sdk-kms = "1.49.0" backoff = { version = "0.4.0", features = ["futures", "tokio"] } clap = { version = "4.5.20", features = ["derive"] } -eigen-common = { path = "crates/common/" } -eigen-client-elcontracts = { path = "crates/chainio/clients/elcontracts" } -eigen-client-eth = { path = "crates/chainio/clients/eth" } -eigen-client-fireblocks = { path = "crates/chainio/clients/fireblocks" } -eigen-crypto-bls = { path = "crates/crypto/bls/" } -eigen-crypto-bn254 = { path = "crates/crypto/bn254/" } -eigen-logging = { path = "crates/logging/" } -eigen-metrics = { path = "crates/metrics/" } -eigen-metrics-collectors-economic = { path = "crates/metrics/collectors/economic" } -eigen-metrics-collectors-rpc-calls = { path = "crates/metrics/collectors/rpc_calls" } -eigen-services-avsregistry = { path = "crates/services/avsregistry" } -eigen-services-blsaggregation = { path = "crates/services/bls_aggregation" } -eigen-services-operatorsinfo = { path = "crates/services/operatorsinfo" } -eigen-signer = { path = "crates/signer/" } -eigen-testing-utils = { path = "testing/testing-utils" } -eigen-types = { path = "crates/types/" } -eigen-utils = { path = "crates/utils/" } -eigen-nodeapi = { path = "crates/nodeapi/" } +eigen-common = { version = "0.3.0", path = "crates/common/" } +eigen-client-elcontracts = { version = "0.3.0", path = "crates/chainio/clients/elcontracts" } +eigen-client-eth = { version = "0.3.0", path = "crates/chainio/clients/eth" } +eigen-client-fireblocks = { version = "0.3.0", path = "crates/chainio/clients/fireblocks" } +eigen-crypto-bls = { version = "0.3.0", path = "crates/crypto/bls/" } +eigen-crypto-bn254 = { version = "0.3.0", path = "crates/crypto/bn254/" } +eigen-logging = { version = "0.3.0", path = "crates/logging/" } +eigen-metrics = { version = "0.3.0", path = "crates/metrics/" } +eigen-metrics-collectors-economic = { version = "0.3.0", path = "crates/metrics/collectors/economic" } +eigen-metrics-collectors-rpc-calls = { version = "0.3.0", path = "crates/metrics/collectors/rpc_calls" } +eigen-services-avsregistry = { version = "0.3.0", path = "crates/services/avsregistry" } +eigen-services-blsaggregation = { version = "0.3.0", path = "crates/services/bls_aggregation" } +eigen-services-operatorsinfo = { version = "0.3.0", path = "crates/services/operatorsinfo" } +eigen-signer = { version = "0.3.0", path = "crates/signer/" } +eigen-testing-utils = { version = "0.3.0", path = "testing/testing-utils" } +eigen-types = { version = "0.3.0", path = "crates/types/" } +eigen-utils = { version = "0.3.0", path = "crates/utils/" } +eigen-nodeapi = { version = "0.3.0", path = "crates/nodeapi/" } eth-keystore = "0.5" ethers = "2.0" ethers-signers = "2.0" @@ -136,5 +136,4 @@ alloy = { version = "0.9", features = [ "signer-aws", "rlp", "json-rpc", -] } - +] } \ No newline at end of file diff --git a/release-plz.toml b/release-plz.toml index 7c8fd7bd..93cc6d54 100644 --- a/release-plz.toml +++ b/release-plz.toml @@ -1,9 +1,17 @@ [workspace] changelog_update = false # disable changelog updates dependencies_update = true # update dependencies with `cargo update` -git_release_enable = true # enable GitHub/Gitea releases pr_branch_prefix = "release-plz-" # PR branch prefix pr_name = "Release {{ package }} v{{ version }}" # template for the PR name pr_labels = ["release"] # add the `release` label to the release Pull Request release_always = false -git_release_draft = true +git_release_draft = false +git_release_enable = false +git_tag_enable = false + +[[package]] +name = "eigensdk" +git_tag_name = "v{{ version }}" +git_tag_enable = true +git_release_enable = true +git_release_draft = true \ No newline at end of file