Skip to content

Feat/operator sets #579

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

Merged
merged 41 commits into from
Jun 26, 2024
Merged

Feat/operator sets #579

merged 41 commits into from
Jun 26, 2024

Conversation

ypatil12
Copy link
Collaborator

@ypatil12 ypatil12 commented Jun 3, 2024

POC of Operator Set Release

@ypatil12 ypatil12 requested review from gpsanant and 8sunyuan June 3, 2024 22:58
Copy link

@scotthconner scotthconner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just a few questions.

@0xClandestine
Copy link
Member

I have quite a bit of stashed changes.

Copy link
Collaborator Author

@ypatil12 ypatil12 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit testing comments

@@ -170,14 +172,137 @@ contract AVSDirectoryUnitTests is EigenLayerUnitTestSetup, IAVSDirectoryEvents {
}
}

contract AVSDirectoryUnitTests_registerOperatorToOperatorSet is AVSDirectoryUnitTests {
event OperatorAddedToOperatorSet(address operator, IAVSDirectory.OperatorSet operatorSet);
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: import events from IAVSDirectoryEvents

uint32 oid,
bytes32 salt,
uint256 expiry
) public virtual {
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

might want to add filterFuzzedAddressInputs(operator)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 for all fuzzed address inputs, we get a couple flakey fuzz tests in our CI occasionally when we forget this modifier

@8sunyuan
Copy link
Contributor

8sunyuan commented Jun 5, 2024

Another nit: lets stick to OperatorSetId to be consistent with how we call it operatorId in the middleware repo

Copy link
Collaborator Author

@ypatil12 ypatil12 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added 2 minor comments. Also, please resolve the comments on the test file if not already done :)

mapping(address => mapping(bytes32 => bool)) public operatorSaltIsSpent;

constructor(IDelegationManager _delegation) {
/// @notice Mapping: AVS => whether or not the AVS uses operator set
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: standardize lower or uppercase avs in comments


for (uint256 i; i < standbyParams.length; ++i) {
onStandby[standbyParams[i].operatorSet.avs][operator][standbyParams[i].operatorSet.id] =
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i feel like this mapping should be onStandby[operator][avs][id]

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I actually thought of that, glad to include it.

@ypatil12 ypatil12 changed the base branch from dev to feat/operator-set-release June 25, 2024 20:33
@ypatil12 ypatil12 merged commit c4582a3 into feat/operator-set-release Jun 26, 2024
@ypatil12 ypatil12 deleted the feat/operator-sets branch June 26, 2024 15:01
Copy link

Reading tracefile ./lcov.info.pruned
                                             |Lines      |Functions|Branches  
Filename                                       |Rate    Num|Rate  Num|Rate   Num
================================================================================
[src/contracts/]
core/AVSDirectory.sol                          |95.2%    63| 100%  15|    -    0
core/AVSDirectoryStorage.sol                   | 100%     2| 100%   1|    -    0
core/DelegationManager.sol                     |96.4%   196|92.3%  39|    -    0
core/DelegationManagerStorage.sol              | 100%     3| 100%   1|    -    0
core/RewardsCoordinator.sol                    |93.5%   108|83.3%  30|    -    0
core/RewardsCoordinatorStorage.sol             | 0.0%     9| 0.0%   1|    -    0
core/StrategyManager.sol                       |95.2%    83|95.8%  24|    -    0
core/StrategyManagerStorage.sol                | 0.0%     3| 0.0%   1|    -    0
libraries/BeaconChainProofs.sol                |95.5%    44|91.7%  12|    -    0
libraries/BytesLib.sol                         | 8.0%    50| 7.1%  14|    -    0
libraries/EIP1271SignatureUtils.sol            | 100%     3| 100%   1|    -    0
libraries/Endian.sol                           | 100%     3| 100%   1|    -    0
libraries/Merkle.sol                           | 100%    30| 100%   5|    -    0
libraries/StructuredLinkedList.sol             | 0.0%    45| 0.0%  19|    -    0
permissions/Pausable.sol                       |95.7%    23|90.9%  11|    -    0
permissions/PauserRegistry.sol                 | 100%    12| 100%   6|    -    0
pods/DelayedWithdrawalRouter.sol               |93.2%    59|85.7%  14|    -    0
pods/EigenPod.sol                              | 100%   150| 100%  33|    -    0
pods/EigenPodManager.sol                       |98.8%    84|89.5%  19|    -    0
pods/EigenPodManagerStorage.sol                | 0.0%     5| 0.0%   1|    -    0
strategies/EigenStrategy.sol                   | 0.0%    10| 0.0%   5|    -    0
strategies/StrategyBase.sol                    |89.7%    39|77.8%  18|    -    0
strategies/StrategyBaseTVLLimits.sol           | 100%    12|83.3%   6|    -    0
token/BackingEigen.sol                         |72.0%    25|50.0%  10|    -    0
token/Eigen.sol                                |38.5%    39|50.0%  12|    -    0
utils/UpgradeableSignatureCheckingUtils.sol    | 0.0%     6| 0.0%   4|    -    0
================================================================================
                                       Total:|83.0%  1106|75.2% 303|    -    0

1 similar comment
Copy link

Reading tracefile ./lcov.info.pruned
                                             |Lines      |Functions|Branches  
Filename                                       |Rate    Num|Rate  Num|Rate   Num
================================================================================
[src/contracts/]
core/AVSDirectory.sol                          |95.2%    63| 100%  15|    -    0
core/AVSDirectoryStorage.sol                   | 100%     2| 100%   1|    -    0
core/DelegationManager.sol                     |96.4%   196|92.3%  39|    -    0
core/DelegationManagerStorage.sol              | 100%     3| 100%   1|    -    0
core/RewardsCoordinator.sol                    |93.5%   108|83.3%  30|    -    0
core/RewardsCoordinatorStorage.sol             | 0.0%     9| 0.0%   1|    -    0
core/StrategyManager.sol                       |95.2%    83|95.8%  24|    -    0
core/StrategyManagerStorage.sol                | 0.0%     3| 0.0%   1|    -    0
libraries/BeaconChainProofs.sol                |95.5%    44|91.7%  12|    -    0
libraries/BytesLib.sol                         | 8.0%    50| 7.1%  14|    -    0
libraries/EIP1271SignatureUtils.sol            | 100%     3| 100%   1|    -    0
libraries/Endian.sol                           | 100%     3| 100%   1|    -    0
libraries/Merkle.sol                           | 100%    30| 100%   5|    -    0
libraries/StructuredLinkedList.sol             | 0.0%    45| 0.0%  19|    -    0
permissions/Pausable.sol                       |95.7%    23|90.9%  11|    -    0
permissions/PauserRegistry.sol                 | 100%    12| 100%   6|    -    0
pods/DelayedWithdrawalRouter.sol               |93.2%    59|85.7%  14|    -    0
pods/EigenPod.sol                              | 100%   150| 100%  33|    -    0
pods/EigenPodManager.sol                       |98.8%    84|89.5%  19|    -    0
pods/EigenPodManagerStorage.sol                | 0.0%     5| 0.0%   1|    -    0
strategies/EigenStrategy.sol                   | 0.0%    10| 0.0%   5|    -    0
strategies/StrategyBase.sol                    |89.7%    39|77.8%  18|    -    0
strategies/StrategyBaseTVLLimits.sol           | 100%    12|83.3%   6|    -    0
token/BackingEigen.sol                         |72.0%    25|50.0%  10|    -    0
token/Eigen.sol                                |38.5%    39|50.0%  12|    -    0
utils/UpgradeableSignatureCheckingUtils.sol    | 0.0%     6| 0.0%   4|    -    0
================================================================================
                                       Total:|83.0%  1106|75.2% 303|    -    0

0xClandestine added a commit that referenced this pull request Jul 9, 2024
* feat: operator set scaffold

* fix: impl/storage compile errors; pending updating of tests

* chore: `forge fmt`

* fix: `OperatorSet` struct misuse

* fix: comment

* chore: verbose use of `OperatorSet`

* test: `registerOperatorToOperatorSet`

* feat: `registerOperatorToOperatorSets`

Enables registering multiple operator sets in a single call.

* chore: `forge fmt`

* feat: interface changes

* fix: operator set digest

* fix: `OPERATOR_SET_REGISTRATION_TYPEHASH`

* chore: `forge fmt`

* test: wrong avs using signature

* fix: optimize for SSTOREs

* test: `deregisterOperatorFromOperatorSets`

* chore: rename `operatorSetStrategies`

* test: `addStrategiesToOperatorSet`

* test: `removeStrategiesFromOperatorSet`

* test: more coverage

* chore: improve natspec

* WIP: simp mode

* WIP: simp mode

* WIP: simp mode

- includes interface change, specifically the `StandbyParams` structure. `id` isn't needed for storage.

* test: simp mode

* test: simp mode

* test: simp mode

* refactor: simp mode storage

* Revert "refactor: simp mode storage"

This reverts commit 3b0450e.

* Reapply "refactor: simp mode storage"

This reverts commit 5f90d78.

* feat: simp mode

* fix(optimize): salt cancellation

- remove check

* test: improvements

* test: improvements

* fix: move `isOperatorSetAVS` update out of loop

ooops

* fix: standby update typehash

* test: cleanup

* fix: move mutation out of loop

* nit: cleanup

* fix: remove unused events

---------

Co-authored-by: clandestine.eth <[email protected]>
gpsanant pushed a commit that referenced this pull request Jul 23, 2024
* feat: operator set scaffold

* fix: impl/storage compile errors; pending updating of tests

* chore: `forge fmt`

* fix: `OperatorSet` struct misuse

* fix: comment

* chore: verbose use of `OperatorSet`

* test: `registerOperatorToOperatorSet`

* feat: `registerOperatorToOperatorSets`

Enables registering multiple operator sets in a single call.

* chore: `forge fmt`

* feat: interface changes

* fix: operator set digest

* fix: `OPERATOR_SET_REGISTRATION_TYPEHASH`

* chore: `forge fmt`

* test: wrong avs using signature

* fix: optimize for SSTOREs

* test: `deregisterOperatorFromOperatorSets`

* chore: rename `operatorSetStrategies`

* test: `addStrategiesToOperatorSet`

* test: `removeStrategiesFromOperatorSet`

* test: more coverage

* chore: improve natspec

* WIP: simp mode

* WIP: simp mode

* WIP: simp mode

- includes interface change, specifically the `StandbyParams` structure. `id` isn't needed for storage.

* test: simp mode

* test: simp mode

* test: simp mode

* refactor: simp mode storage

* Revert "refactor: simp mode storage"

This reverts commit 3b0450e.

* Reapply "refactor: simp mode storage"

This reverts commit 5f90d78.

* feat: simp mode

* fix(optimize): salt cancellation

- remove check

* test: improvements

* test: improvements

* fix: move `isOperatorSetAVS` update out of loop

ooops

* fix: standby update typehash

* test: cleanup

* fix: move mutation out of loop

* nit: cleanup

* fix: remove unused events

---------

Co-authored-by: clandestine.eth <[email protected]>
ypatil12 added a commit that referenced this pull request Aug 8, 2024
* feat: operator set scaffold

* fix: impl/storage compile errors; pending updating of tests

* chore: `forge fmt`

* fix: `OperatorSet` struct misuse

* fix: comment

* chore: verbose use of `OperatorSet`

* test: `registerOperatorToOperatorSet`

* feat: `registerOperatorToOperatorSets`

Enables registering multiple operator sets in a single call.

* chore: `forge fmt`

* feat: interface changes

* fix: operator set digest

* fix: `OPERATOR_SET_REGISTRATION_TYPEHASH`

* chore: `forge fmt`

* test: wrong avs using signature

* fix: optimize for SSTOREs

* test: `deregisterOperatorFromOperatorSets`

* chore: rename `operatorSetStrategies`

* test: `addStrategiesToOperatorSet`

* test: `removeStrategiesFromOperatorSet`

* test: more coverage

* chore: improve natspec

* WIP: simp mode

* WIP: simp mode

* WIP: simp mode

- includes interface change, specifically the `StandbyParams` structure. `id` isn't needed for storage.

* test: simp mode

* test: simp mode

* test: simp mode

* refactor: simp mode storage

* Revert "refactor: simp mode storage"

This reverts commit 3b0450e.

* Reapply "refactor: simp mode storage"

This reverts commit 5f90d78.

* feat: simp mode

* fix(optimize): salt cancellation

- remove check

* test: improvements

* test: improvements

* fix: move `isOperatorSetAVS` update out of loop

ooops

* fix: standby update typehash

* test: cleanup

* fix: move mutation out of loop

* nit: cleanup

* fix: remove unused events

---------

Co-authored-by: clandestine.eth <[email protected]>
ypatil12 added a commit that referenced this pull request Aug 12, 2024
* feat: operator set scaffold

* fix: impl/storage compile errors; pending updating of tests

* chore: `forge fmt`

* fix: `OperatorSet` struct misuse

* fix: comment

* chore: verbose use of `OperatorSet`

* test: `registerOperatorToOperatorSet`

* feat: `registerOperatorToOperatorSets`

Enables registering multiple operator sets in a single call.

* chore: `forge fmt`

* feat: interface changes

* fix: operator set digest

* fix: `OPERATOR_SET_REGISTRATION_TYPEHASH`

* chore: `forge fmt`

* test: wrong avs using signature

* fix: optimize for SSTOREs

* test: `deregisterOperatorFromOperatorSets`

* chore: rename `operatorSetStrategies`

* test: `addStrategiesToOperatorSet`

* test: `removeStrategiesFromOperatorSet`

* test: more coverage

* chore: improve natspec

* WIP: simp mode

* WIP: simp mode

* WIP: simp mode

- includes interface change, specifically the `StandbyParams` structure. `id` isn't needed for storage.

* test: simp mode

* test: simp mode

* test: simp mode

* refactor: simp mode storage

* Revert "refactor: simp mode storage"

This reverts commit 3b0450e.

* Reapply "refactor: simp mode storage"

This reverts commit 5f90d78.

* feat: simp mode

* fix(optimize): salt cancellation

- remove check

* test: improvements

* test: improvements

* fix: move `isOperatorSetAVS` update out of loop

ooops

* fix: standby update typehash

* test: cleanup

* fix: move mutation out of loop

* nit: cleanup

* fix: remove unused events

---------

Co-authored-by: clandestine.eth <[email protected]>
gpsanant pushed a commit that referenced this pull request Aug 12, 2024
* feat: operator set scaffold

* fix: impl/storage compile errors; pending updating of tests

* chore: `forge fmt`

* fix: `OperatorSet` struct misuse

* fix: comment

* chore: verbose use of `OperatorSet`

* test: `registerOperatorToOperatorSet`

* feat: `registerOperatorToOperatorSets`

Enables registering multiple operator sets in a single call.

* chore: `forge fmt`

* feat: interface changes

* fix: operator set digest

* fix: `OPERATOR_SET_REGISTRATION_TYPEHASH`

* chore: `forge fmt`

* test: wrong avs using signature

* fix: optimize for SSTOREs

* test: `deregisterOperatorFromOperatorSets`

* chore: rename `operatorSetStrategies`

* test: `addStrategiesToOperatorSet`

* test: `removeStrategiesFromOperatorSet`

* test: more coverage

* chore: improve natspec

* WIP: simp mode

* WIP: simp mode

* WIP: simp mode

- includes interface change, specifically the `StandbyParams` structure. `id` isn't needed for storage.

* test: simp mode

* test: simp mode

* test: simp mode

* refactor: simp mode storage

* Revert "refactor: simp mode storage"

This reverts commit 3b0450e.

* Reapply "refactor: simp mode storage"

This reverts commit 5f90d78.

* feat: simp mode

* fix(optimize): salt cancellation

- remove check

* test: improvements

* test: improvements

* fix: move `isOperatorSetAVS` update out of loop

ooops

* fix: standby update typehash

* test: cleanup

* fix: move mutation out of loop

* nit: cleanup

* fix: remove unused events

---------

Co-authored-by: clandestine.eth <[email protected]>
8sunyuan pushed a commit that referenced this pull request Aug 12, 2024
* feat: operator set scaffold

* fix: impl/storage compile errors; pending updating of tests

* chore: `forge fmt`

* fix: `OperatorSet` struct misuse

* fix: comment

* chore: verbose use of `OperatorSet`

* test: `registerOperatorToOperatorSet`

* feat: `registerOperatorToOperatorSets`

Enables registering multiple operator sets in a single call.

* chore: `forge fmt`

* feat: interface changes

* fix: operator set digest

* fix: `OPERATOR_SET_REGISTRATION_TYPEHASH`

* chore: `forge fmt`

* test: wrong avs using signature

* fix: optimize for SSTOREs

* test: `deregisterOperatorFromOperatorSets`

* chore: rename `operatorSetStrategies`

* test: `addStrategiesToOperatorSet`

* test: `removeStrategiesFromOperatorSet`

* test: more coverage

* chore: improve natspec

* WIP: simp mode

* WIP: simp mode

* WIP: simp mode

- includes interface change, specifically the `StandbyParams` structure. `id` isn't needed for storage.

* test: simp mode

* test: simp mode

* test: simp mode

* refactor: simp mode storage

* Revert "refactor: simp mode storage"

This reverts commit 3b0450e.

* Reapply "refactor: simp mode storage"

This reverts commit 5f90d78.

* feat: simp mode

* fix(optimize): salt cancellation

- remove check

* test: improvements

* test: improvements

* fix: move `isOperatorSetAVS` update out of loop

ooops

* fix: standby update typehash

* test: cleanup

* fix: move mutation out of loop

* nit: cleanup

* fix: remove unused events

---------

Co-authored-by: clandestine.eth <[email protected]>
8sunyuan pushed a commit that referenced this pull request Aug 15, 2024
* feat: operator set scaffold

* fix: impl/storage compile errors; pending updating of tests

* chore: `forge fmt`

* fix: `OperatorSet` struct misuse

* fix: comment

* chore: verbose use of `OperatorSet`

* test: `registerOperatorToOperatorSet`

* feat: `registerOperatorToOperatorSets`

Enables registering multiple operator sets in a single call.

* chore: `forge fmt`

* feat: interface changes

* fix: operator set digest

* fix: `OPERATOR_SET_REGISTRATION_TYPEHASH`

* chore: `forge fmt`

* test: wrong avs using signature

* fix: optimize for SSTOREs

* test: `deregisterOperatorFromOperatorSets`

* chore: rename `operatorSetStrategies`

* test: `addStrategiesToOperatorSet`

* test: `removeStrategiesFromOperatorSet`

* test: more coverage

* chore: improve natspec

* WIP: simp mode

* WIP: simp mode

* WIP: simp mode

- includes interface change, specifically the `StandbyParams` structure. `id` isn't needed for storage.

* test: simp mode

* test: simp mode

* test: simp mode

* refactor: simp mode storage

* Revert "refactor: simp mode storage"

This reverts commit 3b0450e.

* Reapply "refactor: simp mode storage"

This reverts commit 5f90d78.

* feat: simp mode

* fix(optimize): salt cancellation

- remove check

* test: improvements

* test: improvements

* fix: move `isOperatorSetAVS` update out of loop

ooops

* fix: standby update typehash

* test: cleanup

* fix: move mutation out of loop

* nit: cleanup

* fix: remove unused events

---------

Co-authored-by: clandestine.eth <[email protected]>
8sunyuan pushed a commit that referenced this pull request Aug 16, 2024
* feat: operator set scaffold

* fix: impl/storage compile errors; pending updating of tests

* chore: `forge fmt`

* fix: `OperatorSet` struct misuse

* fix: comment

* chore: verbose use of `OperatorSet`

* test: `registerOperatorToOperatorSet`

* feat: `registerOperatorToOperatorSets`

Enables registering multiple operator sets in a single call.

* chore: `forge fmt`

* feat: interface changes

* fix: operator set digest

* fix: `OPERATOR_SET_REGISTRATION_TYPEHASH`

* chore: `forge fmt`

* test: wrong avs using signature

* fix: optimize for SSTOREs

* test: `deregisterOperatorFromOperatorSets`

* chore: rename `operatorSetStrategies`

* test: `addStrategiesToOperatorSet`

* test: `removeStrategiesFromOperatorSet`

* test: more coverage

* chore: improve natspec

* WIP: simp mode

* WIP: simp mode

* WIP: simp mode

- includes interface change, specifically the `StandbyParams` structure. `id` isn't needed for storage.

* test: simp mode

* test: simp mode

* test: simp mode

* refactor: simp mode storage

* Revert "refactor: simp mode storage"

This reverts commit 3b0450e.

* Reapply "refactor: simp mode storage"

This reverts commit 5f90d78.

* feat: simp mode

* fix(optimize): salt cancellation

- remove check

* test: improvements

* test: improvements

* fix: move `isOperatorSetAVS` update out of loop

ooops

* fix: standby update typehash

* test: cleanup

* fix: move mutation out of loop

* nit: cleanup

* fix: remove unused events

---------

Co-authored-by: clandestine.eth <[email protected]>
8sunyuan pushed a commit that referenced this pull request Aug 30, 2024
* feat: operator set scaffold

* fix: impl/storage compile errors; pending updating of tests

* chore: `forge fmt`

* fix: `OperatorSet` struct misuse

* fix: comment

* chore: verbose use of `OperatorSet`

* test: `registerOperatorToOperatorSet`

* feat: `registerOperatorToOperatorSets`

Enables registering multiple operator sets in a single call.

* chore: `forge fmt`

* feat: interface changes

* fix: operator set digest

* fix: `OPERATOR_SET_REGISTRATION_TYPEHASH`

* chore: `forge fmt`

* test: wrong avs using signature

* fix: optimize for SSTOREs

* test: `deregisterOperatorFromOperatorSets`

* chore: rename `operatorSetStrategies`

* test: `addStrategiesToOperatorSet`

* test: `removeStrategiesFromOperatorSet`

* test: more coverage

* chore: improve natspec

* WIP: simp mode

* WIP: simp mode

* WIP: simp mode

- includes interface change, specifically the `StandbyParams` structure. `id` isn't needed for storage.

* test: simp mode

* test: simp mode

* test: simp mode

* refactor: simp mode storage

* Revert "refactor: simp mode storage"

This reverts commit 3b0450e.

* Reapply "refactor: simp mode storage"

This reverts commit 5f90d78.

* feat: simp mode

* fix(optimize): salt cancellation

- remove check

* test: improvements

* test: improvements

* fix: move `isOperatorSetAVS` update out of loop

ooops

* fix: standby update typehash

* test: cleanup

* fix: move mutation out of loop

* nit: cleanup

* fix: remove unused events

---------

Co-authored-by: clandestine.eth <[email protected]>
8sunyuan pushed a commit that referenced this pull request Sep 12, 2024
* feat: functionality

* test: add tests

* chore: address comments

* chore: bindigns and fmt

fix: block m2 deregistrations for opset AVSs (#688)

* fix: prevent opSet AVS from m2 dereg

* fix: naming

build: bindings

chore: compilation & bindings

Feat: enumerating sets operators are in (#662)

* feat: track sets operators in

* feat: add natspec

* refactor: reorganize

* fix: tests passing

* fix: compile warnings

* fix: test passing

* feat: add `operatorSetsMemberOf` pagination

* test: add coverage

* chore: bindings

---------

fix: fix operator commission tests (#673)

* fix: flakey tests

* build: bindings

* fix: out of gas error

fix: deploy config

fix: deployers

chore: bindings

chore: update gap

chore: address comments

feat: remove storage (#667)

feat: operator set rewards (#663)

* feat: operator set rewards

* chore: forge fmt

* feat: add operator set retroactive length & genesis timestamp

* docs: add deprecation note and fix typo

* build: bindings

* feat: add tests

* chore: bindings

---------

feat: track total members and sets (#649)

* feat: track total members and sets

* test: track total members and sets

* fix: review changes

* refactor: review changes

* test: register multiple sets

* test: deregister multiple sets

* test: fuzz set creation

fix: compiling from conflict fix

also pushed updated bindings

feat: operator commission bips (#627)

* feat: operator commission bips

configured with a delay

* build: bindings

* fix: interfaces and comments

* fix: storage gap and comments

* chore: tests cleanup

* build: bindings

* chore: `forge fmt src/contracts`

* feat: `operatorCommissionUpdates` length getter

* fix: remove unused imports

* fix: optimizations

* chore: uncheckeds and remove dup view

* build: bindings

* chore: format

---------

feat: operator set migration; completely separate legacy and opset reg (#636)

* feat: bring back full storage; segregate events

* feat: make operator set creation w/arrays; update interface

* fix: update natspec

* feat: update force dereg func

* chore: fmt

* feat: operator set migration (#637)

* feat: add migration

* test: add unit tests for migration

* chore: format

* fix: check operator set avs in parent func

* fix: compilation

* chore: format

* feat: bring back opertor set struct (#639)

test: operator set initialization

feat: operator set initialization

feat: add missing interface fns

feat: add missing interface fns

refactor: remove OperatorSet struct

test: forced opset dereg

chore: forge fmt src/contracts

feat: forced opset dereg

chore: forge fmt

refactor: rename isOperatorInOperatorSet -> isMember

feat: remove simp mode

chore: improve comments + naming

fix: variable name consistency

nit: move updateStandbyParams fn

refactor: storage optimization/overhaul

refactor: remove unused beaconChainETHStrategy constant

refactor: remove isOperatorSetAVS mapping

nit: improve comments

chore: run `forge fmt src/contracts`

chore: run

fix: remove unused immutable

Feat/operator sets (#579)

* feat: operator set scaffold

* fix: impl/storage compile errors; pending updating of tests

* chore: `forge fmt`

* fix: `OperatorSet` struct misuse

* fix: comment

* chore: verbose use of `OperatorSet`

* test: `registerOperatorToOperatorSet`

* feat: `registerOperatorToOperatorSets`

Enables registering multiple operator sets in a single call.

* chore: `forge fmt`

* feat: interface changes

* fix: operator set digest

* fix: `OPERATOR_SET_REGISTRATION_TYPEHASH`

* chore: `forge fmt`

* test: wrong avs using signature

* fix: optimize for SSTOREs

* test: `deregisterOperatorFromOperatorSets`

* chore: rename `operatorSetStrategies`

* test: `addStrategiesToOperatorSet`

* test: `removeStrategiesFromOperatorSet`

* test: more coverage

* chore: improve natspec

* WIP: simp mode

* WIP: simp mode

* WIP: simp mode

- includes interface change, specifically the `StandbyParams` structure. `id` isn't needed for storage.

* test: simp mode

* test: simp mode

* test: simp mode

* refactor: simp mode storage

* Revert "refactor: simp mode storage"

This reverts commit 3b0450e.

* Reapply "refactor: simp mode storage"

This reverts commit 5f90d78.

* feat: simp mode

* fix(optimize): salt cancellation

- remove check

* test: improvements

* test: improvements

* fix: move `isOperatorSetAVS` update out of loop

ooops

* fix: standby update typehash

* test: cleanup

* fix: move mutation out of loop

* nit: cleanup

* fix: remove unused events

---------

Co-Authored-By: Yash Patil <[email protected]>
Co-Authored-By: clandestine.eth <[email protected]>
8sunyuan pushed a commit that referenced this pull request Sep 12, 2024
* feat: functionality

* test: add tests

* chore: address comments

* chore: bindigns and fmt

fix: block m2 deregistrations for opset AVSs (#688)

* fix: prevent opSet AVS from m2 dereg

* fix: naming

build: bindings

chore: compilation & bindings

Feat: enumerating sets operators are in (#662)

* feat: track sets operators in

* feat: add natspec

* refactor: reorganize

* fix: tests passing

* fix: compile warnings

* fix: test passing

* feat: add `operatorSetsMemberOf` pagination

* test: add coverage

* chore: bindings

---------

fix: fix operator commission tests (#673)

* fix: flakey tests

* build: bindings

* fix: out of gas error

fix: deploy config

fix: deployers

chore: bindings

chore: update gap

chore: address comments

feat: remove storage (#667)

feat: operator set rewards (#663)

* feat: operator set rewards

* chore: forge fmt

* feat: add operator set retroactive length & genesis timestamp

* docs: add deprecation note and fix typo

* build: bindings

* feat: add tests

* chore: bindings

---------

feat: track total members and sets (#649)

* feat: track total members and sets

* test: track total members and sets

* fix: review changes

* refactor: review changes

* test: register multiple sets

* test: deregister multiple sets

* test: fuzz set creation

fix: compiling from conflict fix

also pushed updated bindings

feat: operator commission bips (#627)

* feat: operator commission bips

configured with a delay

* build: bindings

* fix: interfaces and comments

* fix: storage gap and comments

* chore: tests cleanup

* build: bindings

* chore: `forge fmt src/contracts`

* feat: `operatorCommissionUpdates` length getter

* fix: remove unused imports

* fix: optimizations

* chore: uncheckeds and remove dup view

* build: bindings

* chore: format

---------

feat: operator set migration; completely separate legacy and opset reg (#636)

* feat: bring back full storage; segregate events

* feat: make operator set creation w/arrays; update interface

* fix: update natspec

* feat: update force dereg func

* chore: fmt

* feat: operator set migration (#637)

* feat: add migration

* test: add unit tests for migration

* chore: format

* fix: check operator set avs in parent func

* fix: compilation

* chore: format

* feat: bring back opertor set struct (#639)

test: operator set initialization

feat: operator set initialization

feat: add missing interface fns

feat: add missing interface fns

refactor: remove OperatorSet struct

test: forced opset dereg

chore: forge fmt src/contracts

feat: forced opset dereg

chore: forge fmt

refactor: rename isOperatorInOperatorSet -> isMember

feat: remove simp mode

chore: improve comments + naming

fix: variable name consistency

nit: move updateStandbyParams fn

refactor: storage optimization/overhaul

refactor: remove unused beaconChainETHStrategy constant

refactor: remove isOperatorSetAVS mapping

nit: improve comments

chore: run `forge fmt src/contracts`

chore: run

fix: remove unused immutable

Feat/operator sets (#579)

* feat: operator set scaffold

* fix: impl/storage compile errors; pending updating of tests

* chore: `forge fmt`

* fix: `OperatorSet` struct misuse

* fix: comment

* chore: verbose use of `OperatorSet`

* test: `registerOperatorToOperatorSet`

* feat: `registerOperatorToOperatorSets`

Enables registering multiple operator sets in a single call.

* chore: `forge fmt`

* feat: interface changes

* fix: operator set digest

* fix: `OPERATOR_SET_REGISTRATION_TYPEHASH`

* chore: `forge fmt`

* test: wrong avs using signature

* fix: optimize for SSTOREs

* test: `deregisterOperatorFromOperatorSets`

* chore: rename `operatorSetStrategies`

* test: `addStrategiesToOperatorSet`

* test: `removeStrategiesFromOperatorSet`

* test: more coverage

* chore: improve natspec

* WIP: simp mode

* WIP: simp mode

* WIP: simp mode

- includes interface change, specifically the `StandbyParams` structure. `id` isn't needed for storage.

* test: simp mode

* test: simp mode

* test: simp mode

* refactor: simp mode storage

* Revert "refactor: simp mode storage"

This reverts commit 3b0450e.

* Reapply "refactor: simp mode storage"

This reverts commit 5f90d78.

* feat: simp mode

* fix(optimize): salt cancellation

- remove check

* test: improvements

* test: improvements

* fix: move `isOperatorSetAVS` update out of loop

ooops

* fix: standby update typehash

* test: cleanup

* fix: move mutation out of loop

* nit: cleanup

* fix: remove unused events

---------

Co-Authored-By: Yash Patil <[email protected]>
Co-Authored-By: clandestine.eth <[email protected]>
0xClandestine added a commit that referenced this pull request Sep 17, 2024
* feat: functionality

* test: add tests

* chore: address comments

* chore: bindigns and fmt

fix: block m2 deregistrations for opset AVSs (#688)

* fix: prevent opSet AVS from m2 dereg

* fix: naming

build: bindings

chore: compilation & bindings

Feat: enumerating sets operators are in (#662)

* feat: track sets operators in

* feat: add natspec

* refactor: reorganize

* fix: tests passing

* fix: compile warnings

* fix: test passing

* feat: add `operatorSetsMemberOf` pagination

* test: add coverage

* chore: bindings

---------

fix: fix operator commission tests (#673)

* fix: flakey tests

* build: bindings

* fix: out of gas error

fix: deploy config

fix: deployers

chore: bindings

chore: update gap

chore: address comments

feat: remove storage (#667)

feat: operator set rewards (#663)

* feat: operator set rewards

* chore: forge fmt

* feat: add operator set retroactive length & genesis timestamp

* docs: add deprecation note and fix typo

* build: bindings

* feat: add tests

* chore: bindings

---------

feat: track total members and sets (#649)

* feat: track total members and sets

* test: track total members and sets

* fix: review changes

* refactor: review changes

* test: register multiple sets

* test: deregister multiple sets

* test: fuzz set creation

fix: compiling from conflict fix

also pushed updated bindings

feat: operator commission bips (#627)

* feat: operator commission bips

configured with a delay

* build: bindings

* fix: interfaces and comments

* fix: storage gap and comments

* chore: tests cleanup

* build: bindings

* chore: `forge fmt src/contracts`

* feat: `operatorCommissionUpdates` length getter

* fix: remove unused imports

* fix: optimizations

* chore: uncheckeds and remove dup view

* build: bindings

* chore: format

---------

feat: operator set migration; completely separate legacy and opset reg (#636)

* feat: bring back full storage; segregate events

* feat: make operator set creation w/arrays; update interface

* fix: update natspec

* feat: update force dereg func

* chore: fmt

* feat: operator set migration (#637)

* feat: add migration

* test: add unit tests for migration

* chore: format

* fix: check operator set avs in parent func

* fix: compilation

* chore: format

* feat: bring back opertor set struct (#639)

test: operator set initialization

feat: operator set initialization

feat: add missing interface fns

feat: add missing interface fns

refactor: remove OperatorSet struct

test: forced opset dereg

chore: forge fmt src/contracts

feat: forced opset dereg

chore: forge fmt

refactor: rename isOperatorInOperatorSet -> isMember

feat: remove simp mode

chore: improve comments + naming

fix: variable name consistency

nit: move updateStandbyParams fn

refactor: storage optimization/overhaul

refactor: remove unused beaconChainETHStrategy constant

refactor: remove isOperatorSetAVS mapping

nit: improve comments

chore: run `forge fmt src/contracts`

chore: run

fix: remove unused immutable

Feat/operator sets (#579)

* feat: operator set scaffold

* fix: impl/storage compile errors; pending updating of tests

* chore: `forge fmt`

* fix: `OperatorSet` struct misuse

* fix: comment

* chore: verbose use of `OperatorSet`

* test: `registerOperatorToOperatorSet`

* feat: `registerOperatorToOperatorSets`

Enables registering multiple operator sets in a single call.

* chore: `forge fmt`

* feat: interface changes

* fix: operator set digest

* fix: `OPERATOR_SET_REGISTRATION_TYPEHASH`

* chore: `forge fmt`

* test: wrong avs using signature

* fix: optimize for SSTOREs

* test: `deregisterOperatorFromOperatorSets`

* chore: rename `operatorSetStrategies`

* test: `addStrategiesToOperatorSet`

* test: `removeStrategiesFromOperatorSet`

* test: more coverage

* chore: improve natspec

* WIP: simp mode

* WIP: simp mode

* WIP: simp mode

- includes interface change, specifically the `StandbyParams` structure. `id` isn't needed for storage.

* test: simp mode

* test: simp mode

* test: simp mode

* refactor: simp mode storage

* Revert "refactor: simp mode storage"

This reverts commit 3b0450e.

* Reapply "refactor: simp mode storage"

This reverts commit 5f90d78.

* feat: simp mode

* fix(optimize): salt cancellation

- remove check

* test: improvements

* test: improvements

* fix: move `isOperatorSetAVS` update out of loop

ooops

* fix: standby update typehash

* test: cleanup

* fix: move mutation out of loop

* nit: cleanup

* fix: remove unused events

---------

Co-Authored-By: Yash Patil <[email protected]>
Co-Authored-By: clandestine.eth <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants