Skip to content

Conversation

@eladiosch
Copy link
Contributor

This PR implements the flow to allow Puffer or the node operators to exit validators from the beacon chain with an on-chain transaction

@codecov
Copy link

codecov bot commented Dec 1, 2025

Codecov Report

❌ Patch coverage is 89.47368% with 2 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
mainnet-contracts/src/PufferModuleManager.sol 80.00% 1 Missing ⚠️
mainnet-contracts/src/PufferProtocol.sol 87.50% 1 Missing ⚠️
Files with missing lines Coverage Δ
mainnet-contracts/src/PufferModule.sol 96.87% <100.00%> (+9.37%) ⬆️
mainnet-contracts/src/PufferModuleManager.sol 88.88% <80.00%> (+5.55%) ⬆️
mainnet-contracts/src/PufferProtocol.sol 93.63% <87.50%> (+2.47%) ⬆️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@eladiosch eladiosch changed the base branch from master to protocol-redesign December 3, 2025 08:45
@eladiosch eladiosch marked this pull request as ready for review December 3, 2025 09:14

calldatas[2] = abi.encodeWithSelector(
AccessManager.setTargetFunctionRole.selector,
pufferDeployment.moduleManager,
Copy link
Contributor

Choose a reason for hiding this comment

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

in AccessManager contract, one selector can be assigned to only one role for a target contract. so you can't assign both ROLE_ID_OPERATIONS_PAYMASTER and ROLE_ID_PUFFER_PROTOCOL role to triggerValidatorsExit function.
checkout AccessManager._setTargetFunctionRole function

Copy link
Contributor

Choose a reason for hiding this comment

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

either:

  • grant both roles to the accounts - but this could be dangerous security wise
  • or better create a new specific role and grant to both accounts.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Added role ROLE_ID_VALIDATOR_EJECTOR. I used 28 instead of 27, because I used 27 in PR#136

@eladiosch eladiosch merged commit 2527068 into protocol-redesign Dec 10, 2025
4 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.

3 participants