Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions CHANGELOG/CHANGELOG-1.4.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ The multichain/middlewareV2 release enables AVSs to launch their services and ma
2. AVS Contracts
3. Offchain Infrastructure

The below release notes cover AVS Contracts. For more information on the end to end protocol, see our [docs](../docs/middlewareV2/README.md), [core contract docs](https://github.com/Layr-Labs/eigenlayer-contracts/tree/main/docs/multichain), and [ELIP-008](https://github.com/eigenfoundation/ELIPs/blob/elip-008v1/ELIPs/ELIP-008.md).
The below release notes cover AVS Contracts. For more information on the end to end protocol, see our [docs](../docs/middlewareV2/README.md), [core contract docs](https://github.com/Layr-Labs/eigenlayer-contracts/tree/main/docs/multichain), and [ELIP-008](https://github.com/eigenfoundation/ELIPs/blob/main/ELIPs/ELIP-008.md).

## Release Manager

Expand All @@ -19,7 +19,7 @@ This multichain release only introduces new standards and contracts. As a result
🚀 New Features – Highlight major new functionality

- `AVSRegistrar`: The primary interface for managing operator registration and deregistration within an AVS. It integrates with core EigenLayer contracts to ensure operators have valid keys and are properly registered in operator sets
- `OperatorTableCalculator`: Responsible for calculating stake weights of operator. These stake weights are aggregated and transported using the [Eigenlayer Multichain Protocol](https://github.com/eigenfoundation/ELIPs/blob/elip-008v1/ELIPs/ELIP-008.md). In order to utilize the multichain protocol, an AVS *MUST* deploy an `OperatorTableCalculator` and register it in the `CrossChainRegistry` in EigenLayer core. See our [core documentation](https://github.com/Layr-Labs/eigenlayer-contracts/tree/main/docs/multichain#common-user-flows) for this process.
- `OperatorTableCalculator`: Responsible for calculating stake weights of operator. These stake weights are aggregated and transported using the [Eigenlayer Multichain Protocol](https://github.com/eigenfoundation/ELIPs/blob/main/ELIPs/ELIP-008.md). In order to utilize the multichain protocol, an AVS *MUST* deploy an `OperatorTableCalculator` and register it in the `CrossChainRegistry` in EigenLayer core. See our [core documentation](https://github.com/Layr-Labs/eigenlayer-contracts/tree/main/docs/multichain#common-user-flows) for this process.

🔧 Improvements – Enhancements to existing features.

Expand Down
58 changes: 58 additions & 0 deletions CHANGELOG/CHANGELOG-1.5.0-testnet-final.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# 1.5.0-testnet-final

The below release notes cover the updated version release candidate for multichain and hourglass

# Release Manager

@ypatil12 @eigenmikem @rajathalex

# Multichain

## Highlights

🚀 New Features – Highlight major new functionality
- Add new table calculator modules - with stake caps and custom stake weights. **These contracts are unaudited.**. See [PR #514](https://github.com/layr-labs/eigenlayer-middleware/pull/514)

⛔ Breaking Changes – Call out backward-incompatible changes.
- The `BN254CertificateVerifier` now salts the `operatorInfoleaf` via the core [`LeafCalculatorMixin`](https://github.com/Layr-Labs/eigenlayer-contracts/blob/main/src/contracts/mixins/LeafCalculatorMixin.sol) contract. **BN254 OperatorSets MUST update their table calculators to use the new `BN254TableCalculatorBase`. Failure to do so can result in certificates unable to be confirmed.**
- All AVSs in the [presets](../src/middlewareV2/registrar/presets/) now take in the `avs` as a parameter in the `initialize` function, rather than the constructor

🔧 Improvements – Enhancements to existing features.
- Added add UAM support to `SocketRegistry`. See [PR #532](https://github.com/layr-labs/eigenlayer-middleware/pull/532)
- Updated core contract submodule to point to `v1.8.0-testnet-final` RC. See [PR #534](https://github.com/layr-labs/eigenlayer-middleware/pull/534)
- Clear up natspec and docs. See [PR #526](https://github.com/layr-labs/eigenlayer-middleware/pull/526)
- Remove unused imports. See [PR #513](https://github.com/layr-labs/eigenlayer-middleware/pull/513)

🐛 Bug Fixes – List resolved issues.
- Fix array indexing in `BN254TableCalculatorBase`. See [PR #504](https://github.com/layr-labs/eigenlayer-middleware/pull/504)
- Make `avs` var stateful instead of immutable. See [PR #512](https://github.com/layr-labs/eigenlayer-middleware/pull/512)

# Hourglass

## Changelog

- chore: update core submodule + ReadMe [PR #534](https://github.com/layr-labs/eigenlayer-middleware/pull/534)
- fix: add allowlist to TaskAVSRegistarBase [PR #533](https://github.com/layr-labs/eigenlayer-middleware/pull/533)
- feat: add UAM to `SocketRegistry` [PR #532](https://github.com/layr-labs/eigenlayer-middleware/pull/532)
- chore: bump core submodule [PR #531](https://github.com/layr-labs/eigenlayer-middleware/pull/531)
- chore: rev submodule
- fix(m-01): add salt to merkle leaf hashing [PR #527](https://github.com/layr-labs/eigenlayer-middleware/pull/527)
- docs: natspec review updates [PR #526](https://github.com/layr-labs/eigenlayer-middleware/pull/526)
- fix(I-05): remove unused import [PR #529](https://github.com/layr-labs/eigenlayer-middleware/pull/529)
- feat: tablecalc modules [PR #514](https://github.com/layr-labs/eigenlayer-middleware/pull/514)
- fix(I-07): add onlyInitializing modifier to initializing function [PR #525](https://github.com/layr-labs/eigenlayer-middleware/pull/525)
- fix: make storage variable internal due to existing getter [PR #524](https://github.com/layr-labs/eigenlayer-middleware/pull/524)
- chore: update taskavsregistrar base forpt1 findings
- chore: rev submodule
- fix(I-04): make avs var stateful [PR #512](https://github.com/layr-labs/eigenlayer-middleware/pull/512)
- fix(I5): natspec [PR #516](https://github.com/layr-labs/eigenlayer-middleware/pull/516)
- fix(I-07): clarify expectation on `weights` array structure [PR #510](https://github.com/layr-labs/eigenlayer-middleware/pull/510)
- fix(I-03): rename `ISocketRegistry` -> `ISocketRegistryV2` [PR #511](https://github.com/layr-labs/eigenlayer-middleware/pull/511)
- fix(I-06): remove many unused imports [PR #513](https://github.com/layr-labs/eigenlayer-middleware/pull/513)
- chore: updated core contracts dependencies
- chore: bump up core deps
- docs: changelog
- chore: bump up core deps
- feat: hourglass [PR #507](https://github.com/layr-labs/eigenlayer-middleware/pull/507)
- fix(H-1): correct array indexing for BN254TableCalculatorBase._calculateOperatorTable [PR #504](https://github.com/layr-labs/eigenlayer-middleware/pull/504)
- docs: add new table calculators [PR #508](https://github.com/layr-labs/eigenlayer-middleware/pull/508)
66 changes: 61 additions & 5 deletions CHANGELOG/CHANGELOG-1.5.0.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,37 @@
# v1.5.0 Multichain/MiddlewareV2/Hourglass

These are the combined release notes of multichain and hourglass.

# v1.4.0 MultiChain/MiddlewareV2

The multichain/middlewareV2 release enables AVSs to launch their services and make verified Operator outputs available on any EVM chain, meeting their customers where they are. AVSs can specify custom operator weights to be transported to any destination chain. The release has 3 components:

1. Core Contracts
2. AVS Contracts
3. Offchain Infrastructure

The below release notes cover AVS Contracts. For more information on the end to end protocol, see our [docs](../docs/middlewareV2/README.md), [core contract docs](https://github.com/Layr-Labs/eigenlayer-contracts/tree/main/docs/multichain), and [ELIP-008](https://github.com/eigenfoundation/ELIPs/blob/main/ELIPs/ELIP-008.md).

## Release Manager

@ypatil12 @eigenmikem

## Highlights

This multichain release only introduces new standards and contracts. As a result, there are **no breaking changes or deprecations**. All new contracts are in the [middlewareV2 folder](../src/middlewareV2/).

🚀 New Features – Highlight major new functionality

- `AVSRegistrar`: The primary interface for managing operator registration and deregistration within an AVS. It integrates with core EigenLayer contracts to ensure operators have valid keys and are properly registered in operator sets
- `OperatorTableCalculator`: Responsible for calculating stake weights of operator. These stake weights are aggregated and transported using the [Eigenlayer Multichain Protocol](https://github.com/eigenfoundation/ELIPs/blob/main/ELIPs/ELIP-008.md). In order to utilize the multichain protocol, an AVS *MUST* deploy an `OperatorTableCalculator` and register it in the `CrossChainRegistry` in EigenLayer core. See our [core documentation](https://github.com/Layr-Labs/eigenlayer-contracts/tree/main/docs/multichain#common-user-flows) for this process.

🔧 Improvements – Enhancements to existing features.

- The multichain protocol has protocol-ized several AVS-deployed contracts, enabling an simpler AVS developer experience. These include:
- `KeyRegistrar`: Manages BLS and ECDSA signing keys. AVSs no longer have to deploy a `BLSAPKRegistry`
- `CertificateVerifier`: Handles signature verification for BLS and ECDSA keys. AVSs no longer have to deploy a `BLSSignatureChecker`
- Offchain Multichain Transport: AVSs no longer have to maintain [avs-sync](https://github.com/Layr-Labs/avs-sync) to keep operator stakes fresh

# v1.5.0 Hourglass

The Hourglass release consists of a framework that supports the creation of task-based AVSs. The task-based AVSs are enabled through a `TaskMailbox` core contract deployed to all chains that support a `CertificateVerifier`. Additionally AVSs deploy their `TaskAVSRegistrar`. The release has 3 components:
Expand All @@ -6,7 +40,7 @@ The Hourglass release consists of a framework that supports the creation of task
2. AVS Contracts
3. Offchain Infrastructure

The below release notes cover AVS Contracts. For more information on the end to end protocol, see our [docs](https://github.com/Layr-Labs/hourglass-monorepo/blob/master/README.md).
The below release notes cover AVS Contracts. For more information on the end to end protocol, see our [docs](https://github.com/Layr-Labs/hourglass-monorepo/blob/master/README.md) and [ELIP-010](https://github.com/eigenfoundation/ELIPs/blob/main/ELIPs/ELIP-010.md).

## Release Manager

Expand All @@ -20,7 +54,29 @@ This hourglass release only introduces new contracts. As a result, there are no

- `TaskAVSRegistrar`: An instanced (per-AVS) eigenlayer middleware contract on L1 that is responsible for handling operator registration for specific operator sets of your AVS and providing the offchain components with socket endpoints for the Aggregator and Executor operators. It also keeps track of which operator sets are the aggregator and executors. It works by default, but can be extended to include additional onchain logic for your AVS.

## Changelog

- chore: bump up core deps
- feat: hourglass [PR #507](https://github.com/layr-labs/eigenlayer-middleware/pull/507)
# Changelog
* fix: bls sig operator state retriever sorting by @RonTuretzky in https://github.com/Layr-Labs/eigenlayer-middleware/pull/480
* chore: update core submodule by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-middleware/pull/497
* test: table calc by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-middleware/pull/499
* test: ecdsa stake reg/bls sig checker utils by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-middleware/pull/500
* release: middlewareV2/multichain by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-middleware/pull/496
* fix: broken link by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-middleware/pull/501
* chore: update `AVSRegistrar` for new `KeyRegistrar` interface by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-middleware/pull/502
* chore: update submodule by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-middleware/pull/503
* feat(redistribution): update slashers by @0xClandestine in https://github.com/Layr-Labs/eigenlayer-middleware/pull/492
* docs: format table in `OperatorTableCalculator` by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-middleware/pull/505
* docs: add new table calculators by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-middleware/pull/508
* fix(H-1): correct array indexing for BN254TableCalculatorBase._calculateOperatorTable by @nadir-akhtar in https://github.com/Layr-Labs/eigenlayer-middleware/pull/504
* feat: hourglass by @0xrajath in https://github.com/Layr-Labs/eigenlayer-middleware/pull/515
* fix: multichain pt1 audit fixes by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-middleware/pull/520
* fix: make storage variable internal due to existing getter by @nadir-akhtar in https://github.com/Layr-Labs/eigenlayer-middleware/pull/524
* fix(I-07): add onlyInitializing modifier to initializing function by @nadir-akhtar in https://github.com/Layr-Labs/eigenlayer-middleware/pull/525
* feat: tablecalc modules by @eigenmikem in https://github.com/Layr-Labs/eigenlayer-middleware/pull/514
* fix(I-05): remove unused import by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-middleware/pull/529
* fix: multichain pt2 audit fixes by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-middleware/pull/528
* chore: bump core submodule by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-middleware/pull/531
* feat: add UAM to `SocketRegistry` by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-middleware/pull/532
* fix: add allowlist to TaskAVSRegistarBase by @nadir-akhtar in https://github.com/Layr-Labs/eigenlayer-middleware/pull/533
* chore: update core submodule + ReadME by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-middleware/pull/534
* fix: task replay directed at same operator set by @0xrajath in https://github.com/Layr-Labs/eigenlayer-middleware/pull/535
* chore: update core bindings by @0xrajath in https://github.com/Layr-Labs/eigenlayer-middleware/pull/536
2 changes: 1 addition & 1 deletion foundry.lock
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"lib/eigenlayer-contracts": {
"rev": "73644e201541dc350a52b0f7a70fa125295a4128"
"rev": "31aade2fc3bf6e2c0160cc2e7c7be1a6017296e5"
},
"lib/forge-std": {
"rev": "77041d2ce690e692d6e03cc812b57d1ddaa4d505"
Expand Down
Loading