Skip to content

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 14 commits into from
Apr 14, 2025
Merged

L1 notifier #23

merged 14 commits into from
Apr 14, 2025

Conversation

gretzke
Copy link
Collaborator

@gretzke gretzke commented Mar 17, 2025

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 the Notifier contract and updates to existing contracts to integrate with Notifier.

Documentation Updates:

New Components:

Integration with Notifier:

Refactoring and Renaming:

@gretzke gretzke marked this pull request as ready for review March 19, 2025 03:59
@gretzke
Copy link
Collaborator Author

gretzke commented Mar 19, 2025

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

@gretzke gretzke requested a review from a team March 19, 2025 04:07
@gretzke gretzke mentioned this pull request Mar 19, 2025
Copy link
Collaborator

@marktoda marktoda left a 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 gretzke merged commit fb2784c into l1-staking Apr 14, 2025
2 checks passed
@gretzke gretzke deleted the l1-notifier branch April 14, 2025 16:01
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
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants