-
Notifications
You must be signed in to change notification settings - Fork 361
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
fix: signature utils #1015
base: slashing-magnitudes-fixes
Are you sure you want to change the base?
fix: signature utils #1015
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we sanity check that the domain separator of the DM/RC/AVSD is based on the proxy and not the implementation
Oops, forgot that. Will do. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Comments regarding version number
Check storage layout ci failing due to |
1427a85
to
403e0a1
Compare
4189591
to
6d5d06b
Compare
943d7ee
to
0aa946b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So far looks good, we should also add SemverMixin
to the EigenPodManager
and StrategyFactory
.
We may want to also add to all Strategies and EigenPods too (can talk in standup about this one).
@@ -53,6 +53,10 @@ library Env { | |||
* env | |||
*/ | |||
|
|||
function version() internal view returns (string memory) { | |||
return _envString("version"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you coordinate with @jbrower95 to make sure this is a parameter in the Zeus config that the upgrade scripts can access
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
in progress
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To add to this, but maybe overkill, we may want to have zeus config to have semver for each contract. Some of our upgrades will touch just a few contracts so the versions will be different at a point in time
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ahh that's a good point, so rather than a single config param, there's one per contract?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ya that would make sense to me
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just noting we decided against this...
Ahh that's a good point, so rather than a single config param, there's one per contract?
dbd8143
to
85f7bf1
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah not entirely sure if we want to change EigenStrategy here. I figure the Eigen/EigenStrategy changes will take place in its own separate upgrade.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We upgraded the EigenStrategy in the initial upgrade, so we should be good. Eigen can be separate:
eigenlayer-contracts/script/releases/v1.0.0-slashing/1-deployContracts.s.sol
Lines 153 to 159 in 7a6f8a6
deployImpl({ | |
name: type(EigenStrategy).name, | |
deployedTo: address(new EigenStrategy({ | |
_strategyManager: Env.proxy.strategyManager(), | |
_pauserRegistry: Env.impl.pauserRegistry() | |
})) | |
}); |
2ff7718
to
38d2ad8
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, approving. Just need to coordinate with @jbrower95 on the Zeus changes
Oh, can we also update the storage diff for sanity? |
Spoke with @jbrower95, we're just going to add a Zeus helper solidity script to tick the version. Will be done in a separate PR |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Blocking for now - let's wait to merge until we have all audit fixes in
refactor: review changes refactor: review changes feat: remaining semver feat: remaining semver refactor: review changes refactor: review changes fix: ci refactor: remove make cmd fix: ci fix: ci feat: add `SemVerMixin` (#1034) * feat: add `SemVerMixin` * refactor: add `_majorVersion` helper for `SignatureUtils` * test: passing * test: passing * refactor: rename EIP712_VERSION * refactor: review changes chore: forge fmt refactor: natspec improvements chore: forge fmt fix: eip712 typehash refactor: remove version overrides refactor: remove make bump-version refactor: immutable version refactor: remove unused import chore: `make bump-version VERSION=1` refactor: `SignatureUtils` -> `SignatureUtilsMixin` fix: bump-version.sh chore: `make bump-version VERSION=1.0.3` feat: add `make bump-version` feat: add version fn refactor: cleanup fix: signature utils
38d2ad8
to
a09d514
Compare
Changes:
Dynamic Domain Separator:
SignatureUtils.domainSeparator()
is now recomputed for each signature verification. This eliminates the need for storing initial values in storage or as immutables, which is important for beacon proxy support.Version Bump Command: Introducedmake bump-version VERSION=2
, which automatically updates the version function's return values.Version Fn + Constructor Param: Adds an immutable oz
ShortString
that's set in the constructor.