generated from Uniswap/foundry-template
-
Notifications
You must be signed in to change notification settings - Fork 5
L1 notifier #23
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
L1 notifier #23
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Ready for review, open items here are measuring the gas usage on L2 and adjusting the gas costs for the deposit transactions on L1, I would suggest merging this PR and revisiting the gas costs later once we have those contracts built |
marktoda
approved these changes
Apr 7, 2025
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.
Looks really great!
gretzke
added a commit
that referenced
this pull request
Apr 14, 2025
* add unistaker interface * Initial commit: UniStaker wrapper * Initial commit: Protocol reward distribution * Wip reward distributor * Make depositing into UniStaker optional * Initial commit: DelegationManager * Initial commit: slashing * Add slashing of rewards * Use array of instances instead of a linked list * Code refactor * Initial commit: withdrawal delay * Add delay before undelegating from an operator * Initial commit: Delegator access control * fix bug where partial slashing would not account for rewards correctly * try catch the reward withdrawal from UniStaker in case the contract is not solvent and reverts * Update natspec * Add base L1TestHandler (#33) * Create base L1TestHandler * remove solmate * imports * Add deployer to compile without IR and speed up compilation by 50% --------- Co-authored-by: gretzke <[email protected]> * Add documentation for Staking Middleware * Staking middleware params tests (#35) * initial staking middleware params tests * add a few more tests * add delegator access control tests (#36) * add delegator access control tests * fix shadowed variable * use selectors from interfaces to test reverts --------- Co-authored-by: gretzke <[email protected]> * simplify code (#38) * ProtocolRewardDistributor Tests (#44) * ProtocolRewardDistributor tests * remove console.log, formatting --------- Co-authored-by: gretzke <[email protected]> * fix withdraw loop accounting (#48) * stake manager tests (#37) * Create base L1TestHandler * remove solmate * imports * tests first pass * Add tests * clean up tests * name * Test/stake manager proposed changes (#49) * No need to add these functions here * Rename Wrapper => Harness to align with the naming used in other tests * move delegator to L1 Handler --------- Co-authored-by: Daniel Gretzke <[email protected]> * Pr review fix (#34) * Add explanation for added function to interface * clarify logic flow of allowing delegation * Add natspec * make functions and variables internal in Votes, extend functionality in OperatorVotes * add multicall to contract * Operator Manager refactor/tests (#50) * Initial commit: OperatorManager tests * Overwrite public function instead of internal function * rename internal functions * cache msg.sender * remove unused import * rename variable * Add fuzz and invariant to stake manager (#51) * Add some fuzz tests * Add invariant tests * Add slashing to invariant tests * comments * nit * move file to StakingMiddleware directory --------- Co-authored-by: gretzke <[email protected]> * Simplify slashing logic / slashing tests (#39) * Simplify logic around slashing and add more comments * Add fuzz and invariant to stake manager (#51) * Add some fuzz tests * Add invariant tests * Add slashing to invariant tests * comments * nit * move file to StakingMiddleware directory --------- Co-authored-by: gretzke <[email protected]> * Simplify logic around slashing and add more comments * Add SlashingManager tests --------- Co-authored-by: Eric Zhong <[email protected]> * Unistaker wrapper tests (#45) * require stake to deposit into UniStaker, add view function to check whether user is deposited into unistaker * add unistaker wrapper tests * L1 notifier (#23) * Initial commit: Notifier * Notification implementation * Add forceful withdrawals of ERC-721 tokens for operators * Update documentation * Initial commit: Stake Table Sync * fix merge conflicts * fix contract size, fix stack too deep in tests * Add notifier tests * remove duplicate remappings * Add staketablesync tests * Add trusted service contracts * check header of 7702 smart wallets --------- Co-authored-by: Eric Zhong <[email protected]> Co-authored-by: 0age <[email protected]> Co-authored-by: Cody Born <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request includes several updates to the
StakingMiddleware
documentation and the addition of new components to the system. The most significant changes are the introduction of theNotifier
contract and updates to existing contracts to integrate withNotifier
.Documentation Updates:
docs/autogen/src/SUMMARY.md
: Added entries forNotifier
andINotifier
to the documentation summary. [1] [2]New Components:
docs/autogen/src/src/UVN/L1/StakingMiddleware/Notifier.sol/abstract.Notifier.md
: Added documentation for the newNotifier
contract, which allows operators to mint ERC721 tokens and notify service contracts of stake changes.docs/autogen/src/src/interfaces/UVN/L1/StakingMiddleware/INotifier.sol/interface.INotifier.md
: Added documentation for theINotifier
interface, detailing functions and events related to theNotifier
contract.Integration with Notifier:
docs/autogen/src/src/UVN/L1/StakingMiddleware.sol/contract.StakingMiddleware.md
: Updated to includeNotifier
in the inheritance and constructor. [1] [2]docs/autogen/src/src/UVN/L1/StakingMiddleware/README.md
: AddedNotifier
to the contents.Refactoring and Renaming:
docs/autogen/src/src/UVN/L1/StakingMiddleware/DelegatorAccessControl.sol/abstract.DelegatorAccessControl.md
: RenamedAccessControl
struct toAccessControlParams
. [1] [2]docs/autogen/src/src/UVN/L1/StakingMiddleware/StakeManager.sol/contract.StakeManager.md
: Renamed_beforeSlash
and_afterSlash
functions to_beforeDelegatorSlashed
and_afterDelegatorSlashed
.docs/autogen/src/src/UVN/L1/StakingMiddleware/UniStakerWrapper.sol/contract.UniStakerWrapper.md
: Updated function names to match the new naming convention for slashing-related functions.