Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: deprecate earningsReceiver #562

Merged
merged 6 commits into from
May 29, 2024
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 certora/specs/core/DelegationManager.spec
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ methods {
function _.addShares(address,uint256) external => DISPATCHER(true);
function _.removeShares(address,uint256) external => DISPATCHER(true);
function _.withdrawSharesAsTokens(address, address, uint256) external => DISPATCHER(true);
function _.podOwnerShares(address) external => NONDET;

// external calls to EigenPod
function _.withdrawRestakedBeaconChainETH(address,uint256) external => DISPATCHER(true);
Expand Down Expand Up @@ -56,7 +57,6 @@ methods {
//envfree functions
function delegatedTo(address) external returns (address) envfree;
function operatorDetails(address) external returns (IDelegationManager.OperatorDetails memory) envfree;
function earningsReceiver(address) external returns (address) envfree;
function delegationApprover(address operator) external returns (address) envfree;
function stakerOptOutWindowBlocks(address operator) external returns (uint256) envfree;
function operatorShares(address operator, address strategy) external returns (uint256) envfree;
Expand Down Expand Up @@ -130,7 +130,7 @@ invariant operatorsAlwaysDelegatedToSelf(address operator)
rule operatorCannotUnregister(address operator) {
requireInvariant operatorsAlwaysDelegatedToSelf(operator);
// assume `operator` starts in a state of being registered as an operator
require(isOperator(operator));
require(isOperator(operator) && operator != 0);
// perform arbitrary function call
method f;
env e;
Expand Down
6 changes: 2 additions & 4 deletions docs/core/DelegationManager.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ This document organizes methods according to the following themes (click each to
* `isDelegated(address staker) -> (bool)`
* True if `delegatedTo[staker] != address(0)`
* `isOperator(address operator) -> (bool)`
* True if `_operatorDetails[operator].earningsReceiver != address(0)`
* True if `delegatedTo[operator] == operator`

---

Expand All @@ -63,7 +63,7 @@ function registerAsOperator(OperatorDetails calldata registeringOperatorDetails,
```

Registers the caller as an Operator in EigenLayer. The new Operator provides the `OperatorDetails`, a struct containing:
* `address earningsReceiver`: the address that will receive earnings as the Operator provides services to AVSs *(currently unused)*
* `address __deprecated_earningsReceiver`: Currently deprecated address slot that may be reused in the future for a different purpose. *(currently unused)*
* `address delegationApprover`: if set, this address must sign and approve new delegation from Stakers to this Operator *(optional)*
* `uint32 stakerOptOutWindowBlocks`: the minimum delay (in blocks) between beginning and completing registration for an AVS. *(currently unused)*

Expand All @@ -78,7 +78,6 @@ Registers the caller as an Operator in EigenLayer. The new Operator provides the
*Requirements*:
* Caller MUST NOT already be an Operator
* Caller MUST NOT already be delegated to an Operator
* `earningsReceiver != address(0)`
* `stakerOptOutWindowBlocks <= MAX_STAKER_OPT_OUT_WINDOW_BLOCKS`: (~180 days)
* Pause status MUST NOT be set: `PAUSED_NEW_DELEGATION`

Expand All @@ -92,7 +91,6 @@ Allows an Operator to update their stored `OperatorDetails`.

*Requirements*:
* Caller MUST already be an Operator
* `new earningsReceiver != address(0)`
* `new stakerOptOutWindowBlocks >= old stakerOptOutWindowBlocks`
* `new stakerOptOutWindowBlocks <= MAX_STAKER_OPT_OUT_WINDOW_BLOCKS`

Expand Down
2 changes: 1 addition & 1 deletion pkg/bindings/AVSDirectory/binding.go

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion pkg/bindings/BackingEigen/binding.go

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion pkg/bindings/BeaconChainProofs/binding.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion pkg/bindings/BytesLib/binding.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion pkg/bindings/DelayedWithdrawalRouter/binding.go

Large diffs are not rendered by default.

41 changes: 5 additions & 36 deletions pkg/bindings/DelegationManager/binding.go

Large diffs are not rendered by default.

39 changes: 4 additions & 35 deletions pkg/bindings/DelegationManagerStorage/binding.go

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion pkg/bindings/EIP1271SignatureUtils/binding.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion pkg/bindings/Eigen/binding.go

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion pkg/bindings/EigenPod/binding.go

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion pkg/bindings/EigenPodManager/binding.go

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion pkg/bindings/EigenStrategy/binding.go

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion pkg/bindings/Endian/binding.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

39 changes: 4 additions & 35 deletions pkg/bindings/IDelegationManager/binding.go

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion pkg/bindings/Merkle/binding.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion pkg/bindings/Pausable/binding.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading