Skip to content

Conversation

@vvalecha519
Copy link
Contributor

@vvalecha519 vvalecha519 commented Sep 22, 2025

Note

Enable instant redemptions to ETH or stETH with per-token limits/fees, integrate EtherFiRestaker, and add non-ETH share burn path in LiquidityPool with deployment/ops scripts.

  • Redemptions/Protocol:
    • Extend EtherFiRedemptionManager to redeem eETH/weETH to ETH or stETH, with per-token RedemptionInfo (rate limit, fees, low watermark) and admin setters; add initializeTokenParameters, previewRedeem(shares, token), and output-token routing.
    • Integrate EtherFiRestaker (constructor param + lido) and emit token-aware Redeemed event; add rate-limit and liquidity checks per token.
  • Restaker:
    • Add immutable etherFiRedemptionManager and transferStETH(recipient, amount) restricted to the manager.
  • LiquidityPool:
    • Add burnEEthSharesForNonETHWithdrawal(uint256,uint256) and EEthSharesBurnedForNonETHWithdrawal event to support stETH redemptions without ETH withdrawal.
  • Scripts/Ops:
    • Add deployment, verification, and timelock execution scripts for LiquidityPool, EtherFiRedemptionManager(Temp), and EtherFiRestaker; include rollback paths.
    • Add mainnet addresses registry (script/deploys/Deployed.s.sol) and deployment logs (CREATE2 salt and new impl addresses).
  • Utilities:
    • Fix ContractCodeChecker byte comparison order in full/partial match helpers.
  • Tests:
    • Update and add tests for per-token admin controls, ETH/stETH redemption flows, share-price invariants, and restaker permissions.

Written by Cursor Bugbot for commit 51cf1fb. This will update automatically on new commits. Configure here.

@vvalecha519 vvalecha519 changed the title make more maintainable Instant WDs stEth Sep 22, 2025
@pankajjagtapp pankajjagtapp self-requested a review September 23, 2025 22:51
vvalecha519 and others added 12 commits September 29, 2025 12:05
- Add feeShareToStakers parameter to _processStETHRedemption
- Call burnEEthShares to distribute fees to stakers in stETH flow
- Update share validation to account for both withdrawal and fee burning
- Ensure consistent fee handling between ETH and stETH redemption flows
- Add InvalidOutputToken error for unsupported output tokens
- Improve function documentation and parameter naming
…on-staker-fees

fix: add fee split to stETH redemption flow
cursor[bot]

This comment was marked as outdated.

- Added `deploy.s.sol` to handle the deployment of EtherFi contracts including `EtherFiRedemptionManagerTemp`, `EtherFiRestaker`, `EtherFiRedemptionManager`, and `LiquidityPool`.
- Created utility functions in `utils.sol` for deployment and verification processes.
- Introduced `transactions.s.sol` for managing upgrade and rollback processes for EtherFi contracts.
- Removed unused variables and comments from `deploy.s.sol`.
- Added a new `readme.md` to document deployment and upgrade procedures.
- Updated utility functions in `utils.sol` to include minimum delay constants for timelocks.
…tions

- Updated `transactions.s.sol` to include new contract implementations for `EtherFiRedemptionManager`, `EtherFiRedemptionManagerTemp`, `EtherFiRestaker`, and `LiquidityPool`.
- Enhanced utility functions in `utils.sol` to support proxy upgradeability checks and time calculations.
pankajjagtapp and others added 14 commits October 8, 2025 21:44
- Implemented `verifyCreate2Address` function to compute the predicted address for contracts created with Create2, enhancing deployment verification capabilities.
- Refactored `getImplementation` function to streamline proxy implementation retrieval using `vm.load`.
- Introduced `VerifyStETHWithdrawals` contract to validate addresses, bytecode, upgradeability, and new functionality for EtherFi contracts.
…EtherFiRedemptionManagerTemp`, `EtherFiRestaker`, and `LiquidityPool
…y-verify-instant_wdrls_for_stETH

Implement deployment and verifications scripts for stETH withdrawals upgrade
cursor[bot]

This comment was marked as outdated.

cursor[bot]

This comment was marked as outdated.

cursor[bot]

This comment was marked as outdated.

@sherlock-ai-beta
Copy link

Sherlock AI Findings

The automated tool identified the following potential security issues in the codebase. Please review the details for each issue in the linked dashboard.

# Title Severity Details
1 Unprotected initializer allows first caller to set zero fees, zero low-watermark, and massive rate limit, then immediately redeem liquidity Medium View Details

Next Steps: Review the linked issues in the dashboard and address high-severity bugs first. Contact the team if you need assistance.

Full report available at: https://ai.sherlock.xyz/runs/45019e86-8db1-4b82-a92a-44df65662d93

…IN and OPERATING_TIMELOCK in stETH withdrawal scripts
exitFeeInBps: _exitFeeInBps[i],
lowWatermarkInBpsOfTvl: _lowWatermarkInBpsOfTvl[i]
});
}
Copy link

Choose a reason for hiding this comment

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

Bug: Bug

The initializeTokenParameters function iterates using _exitFeeSplitToTreasuryInBps.length but accesses other input arrays (_tokens, _exitFeeInBps, _lowWatermarkInBpsOfTvl, _bucketCapacity, _bucketRefillRate) without validating their lengths. If any of these arrays are shorter, it results in an out-of-bounds access and transaction revert.

Fix in Cursor Fix in Web

Copy link
Contributor

@pankajjagtapp pankajjagtapp left a comment

Choose a reason for hiding this comment

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

Executed the stETH withdrawals upgrade on contracts

@pankajjagtapp pankajjagtapp merged commit 0c6331e into master Nov 5, 2025
1 of 3 checks passed
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.

5 participants