-
Notifications
You must be signed in to change notification settings - Fork 52
feat: tooling for validator management #347
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
Open
seongyun-ko
wants to merge
146
commits into
master
Choose a base branch
from
syko/feature/tooling-validators
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
146 commits
Select commit
Hold shift + click to select a range
37bf53f
tooling for validator management; generate txns to convert to auto-co…
seongyun-ko f172e02
bug fixes: (1) Bug 1: Forge simulation TXNS env var (simulate.py), Bu…
seongyun-ko 57c2ce9
add bash script to gen auto-compound txns e2e
seongyun-ko 2a916ac
address codex review comments
seongyun-ko 678885f
dead code removed. empty array check
seongyun-ko f83b6d7
fix: Refactor SQL query in query_validators.py to use parameterized s…
pankajjagtapp fa52fd1
enhance: Check and revert if simulated tx fails on Tenderly
pankajjagtapp e606329
feat: Enhance gas usage tracking and reporting in Tenderly simulation.
pankajjagtapp 0212b96
feat: Refactor AutoCompound script to group validators by EigenPod an…
pankajjagtapp d8af2e8
feat: Update simulate.py to support multiple transaction batch format…
pankajjagtapp c183412
feat: Implement sweep-time-aware bucketing for validator selection in…
pankajjagtapp b88843e
feat: Add validation for bucket-hours and handle excluded validators …
pankajjagtapp c97158a
add scripts for simulations
seongyun-ko 1631885
feat: Updated validation logic to accept both EigenPod addresses (42 …
pankajjagtapp fe3d303
feat: Refactor AutoCompound script to generate separate JSON files fo…
pankajjagtapp d0706a9
refactor: Update AutoCompound script to move transaction output files…
pankajjagtapp 05f72c0
feat: Integrate EtherFiTimelock into AutoCompound script for enhanced…
pankajjagtapp 90355a6
fix: Edge case fixes in Tenderly Simulation script
pankajjagtapp 5c48145
Merge pull request #350 from etherfi-protocol/pankaj/feature/improvem…
pankajjagtapp 6e2186a
feat: Refactor query_validators.py and introduce validator_utils.py f…
pankajjagtapp 2a8e44a
feat: Moved validator_utils.py to utils folder
pankajjagtapp 1f62518
feat: Add query_validators_consolidation.py and run-consolidation.sh …
pankajjagtapp e37cefc
Generates linking txns for a single eigenPod
pankajjagtapp 09b7ef9
feat: working consolidation scripts. Will now enhance it a bit
pankajjagtapp 442e048
feat: Working mode for aaround large size of input too
pankajjagtapp c3e3dad
feat: Enhance validator consolidation scripts with deduplication and …
pankajjagtapp 076b70e
feat: Refactor validator consolidation logic to improve target select…
pankajjagtapp 79f5a39
feat: Add functionality to write targets.json for validator linking
pankajjagtapp d0898b2
feat: Update consolidation script to process multiple targets in a si…
pankajjagtapp bf32ff6
feat: Update validator consolidation scripts to use all available val…
pankajjagtapp a4a7f69
feat: Add scripts for automated validator consolidation workflow usin…
pankajjagtapp 64e2f52
Merge pull request #351 from etherfi-protocol/pankaj/feature/consolid…
seongyun-ko d6963dd
fix: Update operator handling and database queries in validator scripts
pankajjagtapp b5e34ed
refactor: Remove non-restaked validator option and update output form…
pankajjagtapp 3938482
fix: Minor bug fixes
pankajjagtapp 07c96cd
Merge pull request #355 from etherfi-protocol/pankaj/fix/validator-to…
seongyun-ko aa65620
refactor: Update import paths in query_validators.py
pankajjagtapp 307b4ce
add query_validators_by_ids(...)
seongyun-ko ced6e28
refactor: Update ConsolidateToTarget script for direct linking and ma…
pankajjagtapp 1bb69fa
feat: Add submarine withdrawal scripts for validator consolidation
pankajjagtapp 0ddcc3c
feat: Enhance submarine withdrawal process with individual linking tr…
pankajjagtapp 1b741b7
feat: init for withdraw integration tests
pankajjagtapp 126d9a7
refactor: Update DepositAdapter test setup and add integration tests …
pankajjagtapp cce467e
test: Add integration test for EtherFiRestaker deposit functionality
pankajjagtapp 4a3d2e7
test: Update DepositIntegrationTest to use fixed address for 'tom'
pankajjagtapp 8f05c94
test: Add integration tests for validator creation process in ValCrea…
pankajjagtapp dc441a2
refactor: Update DepositIntegrationTest to use approximate equality a…
pankajjagtapp f4d2d0a
refactor: Add comments to external call selectors in ELExitsTransacti…
pankajjagtapp dad7fd3
refactor: Rename WithdrawTest to WithdrawIntegrationTest and update t…
pankajjagtapp 1fe4999
feat: Add WEETH_WITHDRAW_ADAPTER and AVS operator addresses to Deploy…
pankajjagtapp 5b02216
feat: Integrate IWeETHWithdrawAdapter into TestSetup for enhanced wit…
pankajjagtapp 12134e8
feat: Add comprehensive withdrawal tests for LiquidityPool and WeETHW…
pankajjagtapp 7fba39a
fix: Increase precision in balance assertions for withdrawal integrat…
pankajjagtapp 4b63009
feat: Add tests for EtherFiRestaker withdrawal and undelegation funct…
pankajjagtapp 4c6e3fc
feat: Add entire flow tests for Validators
pankajjagtapp 99a680f
feat: Add integration tests for handling remainder shares in withdraw…
pankajjagtapp 8bad9fd
feat: Integrate MembershipManager into TestSetup for enhanced testing…
pankajjagtapp b389de5
refactor: Replace vm.assume with assertGt for remainder amount checks…
pankajjagtapp 631b27a
feat: Add ADMIN_EOA address constant to Deployed contract and remove …
pankajjagtapp f6c6d32
refactor: enhance integration test for remainder handling with multip…
pankajjagtapp a7930d9
audit fix: M-02 => Unbacked Shares Minted due to stETH Transfer Rounding
pankajjagtapp 14d9d2a
audit fix: L-01 Denial of Service in withdrawEther via Donation
pankajjagtapp e2bee83
test: enhance EtherFiRewardsRouter tests for liquidity withdrawal sce…
pankajjagtapp bc0379f
audit fix: I-04. Redundant and Broken Token Pause Mechanism
pankajjagtapp 17e13d6
audit fix: I-05. Revert in stEthRequestWithdrawal due to Small Remainder
pankajjagtapp 5d99702
audit fix: I-07. Unused code in EtherFiRestaker
pankajjagtapp 906aebf
audit fix: I-08. Discrepancy in totalRedeemableAmount() Calculation
pankajjagtapp 15c889a
audit fix: I-13. Mismatch in EigenPod_validatorPubkeyHashToInfo Imple…
pankajjagtapp 8e2d4a8
audit fix: M-01 Incorrect TVL Reporting in Liquifier & Restaker
pankajjagtapp fca3fd7
audit fix: L-18. Incorrect Burn Amount Reported in Event Due to amoun…
pankajjagtapp 285cfd0
audit fix: L-14. Treasury receives less than intended fee amount due …
pankajjagtapp e25c1f1
L-03 - audit fix review: "cbETH, wbETH, and Lido are still reported i…
pankajjagtapp 5b110d2
audit fix: Added Eigenlayer utility addresses to Deployed contract an…
pankajjagtapp 6dc46de
feat: Implement deployment script for re-audit fixes
pankajjagtapp d94f92c
feat: rename deployment script for re-audit fixes
pankajjagtapp 207aa15
feat: add re-audit fixes upgrade logic for multiple contracts
pankajjagtapp 8b39617
fix: test
pankajjagtapp 0c2a526
feat: add Certora re-audit report for core contracts
pankajjagtapp 8114ffc
feat: added restaking rewards router contract
luiscfaria f72e333
fix: pr comments
luiscfaria 9adbfc7
feat: updated contract as per suggestions
luiscfaria 5e1a7bb
fix: pr comments
luiscfaria b19a300
feat: added set reward token address
luiscfaria 65ad0e2
fix: removed functionality to set reward token address
luiscfaria d9476f8
feat: added deployment script
luiscfaria e9f97ec
chore: removed event
luiscfaria 5322b60
chore: remove ownable upgradable
luiscfaria dc0d12a
chore: set commit hash
luiscfaria 0a10bb3
fix: deployment script
luiscfaria 9440111
chore: update commit hash
luiscfaria 9a49072
chore: updated script and tests
luiscfaria 6768f8a
chore: update deployment commit hash
luiscfaria 11f33a7
chore: update function name and event
luiscfaria 966c658
chore: updated deployment commit hash
luiscfaria 840c2b5
feat: updated eth sent event with msg sender
luiscfaria f3ebbaf
chore: updated commit hash
luiscfaria 57ffc1d
feat: add restaking rewards router configuration and verification scr…
pankajjagtapp b4c48d2
feat: deploy RestakingRewardsRouter and UUPSProxy with updated config…
pankajjagtapp d447d24
feat: enable recipient address configuration for RestakingRewardsRout…
pankajjagtapp 5f813da
Enhance LiquidityPool contract by adding InvalidArrayLengths error an…
pankajjagtapp c9168a9
Add CrossPodApprovalLiquidityPoolScript for deploying LiquidityPool c…
pankajjagtapp 66ccd1f
Add legacy linker role and update linkLegacyValidatorIds function mod…
pankajjagtapp 24913ce
Add EtherFiNodesManager deployment to CrossPodApprovalLiquidityPoolSc…
pankajjagtapp 82f5786
Update commitHashSalt in CrossPodApprovalLiquidityPoolScript for depl…
pankajjagtapp 1f1ea23
fix: Fix failing tests
pankajjagtapp 7a3d571
Add deployment and transaction scripts for CrossPodApproval, includin…
pankajjagtapp f978ed7
Remove InvalidEtherFiNode error from LiquidityPool contract
pankajjagtapp 56fe8aa
chore: update the commit hash
pankajjagtapp d315fdd
fix: Adjust assertion tolerance in LiquifierTest for balance comparison
pankajjagtapp 8fe2544
feat: Introduce consolidation request limit and related functionality…
pankajjagtapp 3e6ce3e
feat: Enhance EtherFiNodesManager with consolidation request limit an…
pankajjagtapp 747f9f1
feat: Update CrossPodApproval deployment scripts with new EtherFiRate…
pankajjagtapp 9a93e22
audit fix: Update pubkey comparison to use calculateValidatorPubkeyHash
pankajjagtapp d13a1db
enhance: test case for testing BE flow
pankajjagtapp 43a6e20
feat: Add new audit document for Certora - Liquid-Refer, KING, Cross …
pankajjagtapp c90dd08
fix: Update commitHashSalt in CrossPodApproval deployment script
pankajjagtapp 3305999
feat: Enhance LegacyLinkerRoleScript with new roles and EtherFiRateLi…
pankajjagtapp a7e5132
refactor: Rename LegacyLinkerRoleScript to CrossPodApprovalScript and…
pankajjagtapp 432054f
feat: Add SetValidatorSpawnerScript for registering validator spawner…
pankajjagtapp 615f384
refactor: Update capacity rate limiter and refill rate calculations i…
pankajjagtapp f332c42
feat: Add logging functionality for setCapacity and setRefillRate cal…
pankajjagtapp 11de1a0
fix: test fix
pankajjagtapp 21caae2
refactor: Update linking transaction handling to support multiple tra…
pankajjagtapp 600baeb
feat: Implement dynamic fee calculation for consolidation transaction…
pankajjagtapp 6a771fc
feat: Add queueETHWithdrawal functionality to handle ETH withdrawals …
pankajjagtapp 7710e59
feat: Implement gas estimation and warning for consolidation transact…
pankajjagtapp ae19afe
feat: Add unrestake mode to submarine withdrawal process for direct E…
pankajjagtapp cac202a
feat: Add effective balance calculation for validators in batch detai…
pankajjagtapp d2b1ddd
feat: Update submarine withdrawal calculations to use effective balan…
pankajjagtapp 38fcb1c
feat: Enhance submarine withdrawal script to support ETH withdrawal a…
pankajjagtapp 0527da4
hotfix: Cap maximum withdrawal for specific pod in submarine withdraw…
pankajjagtapp 5bba4cd
fix: Update maximum target balance for validator consolidation to 160…
pankajjagtapp 6a0f4d3
feat: Add compare_tvl script to analyze Chainlink-reported TVL agains…
pankajjagtapp 4ac9ef2
fix: Update maximum target balance for validator consolidation to 190…
pankajjagtapp 96709de
refactor: Remove unused logging and functions from AutoCompound contr…
pankajjagtapp f717f11
feat: Enhance validator consolidation logic to support existing targe…
pankajjagtapp f6e01c2
fix: Implement strict balance validation for existing 0x02 target val…
pankajjagtapp c52176e
feat: Add script for unrestaking validators, enabling ETH withdrawals…
pankajjagtapp 437e04f
fix: speed up consolidation forge script and add --skip-forge-sim flag
seongyun-ko 3ffd865
feat: Introduce Python-based consolidation runner and shell script fo…
pankajjagtapp 7f41eaa
Merge pull request #360 from etherfi-protocol/syko/fix/consolidation-…
seongyun-ko e6d5e94
feat: Add gas limit configuration for consolidation transactions
pankajjagtapp f94c461
feat: Introduce transaction delay for consolidation broadcasts
pankajjagtapp 6e24bc7
feat: Enhance integer parsing for transaction values in consolidation…
pankajjagtapp 3b405d2
feat: Improve integer parsing robustness in consolidation script
pankajjagtapp 5973e5f
feat: Add option to ignore pending withdrawals in unrestaking script
pankajjagtapp File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or 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
Binary file added
BIN
+324 KB
audits/2026.01.20 - Certora - Liquid-Refer,KING,Cross Pod Approval.pdf
Binary file not shown.
Binary file not shown.
12 changes: 12 additions & 0 deletions
12
deployment/RestakingRewardsRouter/2026-01-19-20-59-47.json
This file contains hidden or 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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,12 @@ | ||
| { | ||
| "contractName": "UUPSProxy", | ||
| "deploymentParameters": { | ||
| "factory": "0x356d1B83970CeF2018F2c9337cDdb67dff5AEF99", | ||
| "salt": "0x1a10a60fc25f1c7f7052123edbe683ed2524943d000000000000000000000000", | ||
| "constructorArgs": { | ||
| "_implementation": "0xcB6e9a5943946307815eaDF3BEDC49fE30290CA8", | ||
| "_data": "0x8129fc1c" | ||
| } | ||
| }, | ||
| "deployedAddress": "0x89E45081437c959A827d2027135bC201Ab33a2C8" | ||
| } |
13 changes: 13 additions & 0 deletions
13
deployment/RestakingRewardsRouterImplementation/2026-01-19-20-59-47.json
This file contains hidden or 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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,13 @@ | ||
| { | ||
| "contractName": "RestakingRewardsRouterImplementation", | ||
| "deploymentParameters": { | ||
| "factory": "0x356d1B83970CeF2018F2c9337cDdb67dff5AEF99", | ||
| "salt": "0x1a10a60fc25f1c7f7052123edbe683ed2524943d000000000000000000000000", | ||
| "constructorArgs": { | ||
| "_roleRegistry": "0x62247D29B4B9BECf4BB73E0c722cf6445cfC7cE9", | ||
| "_rewardTokenAddress": "0xec53bF9167f50cDEB3Ae105f56099aaaB9061F83", | ||
| "_liquidityPool": "0x308861A430be4cce5502d0A12724771Fc6DaF216" | ||
| } | ||
| }, | ||
| "deployedAddress": "0xcB6e9a5943946307815eaDF3BEDC49fE30290CA8" | ||
| } |
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
Oops, something went wrong.
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.
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.
Overly broad read access to project root in foundry.toml
Medium Severity
The
fs_permissionsentry{ access = "read", path = "./" }grants read access to the entire project root for all Forge scripts. This allows any script to read sensitive files like.env(which containsTENDERLY_API_ACCESS_TOKEN, database credentials, and RPC URLs). It also makes all other specific read-only permission entries redundant.