Skip to content

fix: disable Pull funds for inactive target validator - #804

Open
wackerow wants to merge 1 commit into
devfrom
fix/absorb-inactive-target
Open

wackerow wants to merge 1 commit into
devfrom
fix/absorb-inactive-target

Conversation

@wackerow

Copy link
Copy Markdown
Member

Summary

The "Absorb another validator -> Pull funds" action allowed users to initiate a consolidation request targeting a registered-but-not-yet-active validator (e.g. a 1 ETH validator still awaiting funds). Per the Electra consensus spec, consolidations require both source and target validators to be active, so the EL silently ignores these requests, leaving them appearing stuck indefinitely.

Changes

  • Added an isValidatorActive helper in src/utils/validators.ts to centralize the active-status check.
  • PullConsolidation: extended the Pull funds button's disabled predicate to also check isValidatorActive(targetValidator).
  • ValidatorActions: added an explanatory note under "Absorb another validator" when the validator isn't active, matching the existing pattern for other disabled states.
  • PushConsolidation: refactored the existing inline status check to use the shared helper. No behavior change.

Test plan

  • On a validator with status active_online / active_offline, the Pull funds button remains enabled.
  • On a validator with status pending / pending_initialized / deposited, the Pull funds button is disabled and the explainer appears.
  • On a validator with status exited / slashed, the Pull funds button is disabled.
  • Migrate funds (PushConsolidation) behavior is unchanged.

- Consolidation requires both source and target validators to be active per the Electra spec.
- The Pull funds button previously only checked credential type and source-set size, allowing requests against a registered-but-not-yet-active target (e.g. a 1 ETH validator awaiting funds), which the EL silently ignores.
- Adds an isValidatorActive helper, uses it in PullConsolidation's disabled predicate, surfaces an explanation in ValidatorActions, and refactors PushConsolidation to share the same helper.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@netlify

netlify Bot commented May 21, 2026

Copy link
Copy Markdown

Deploy Preview for dapper-rolypoly-9814ad ready!

Name Link
🔨 Latest commit 52b6b65
🔍 Latest deploy log https://app.netlify.com/projects/dapper-rolypoly-9814ad/deploys/6a0f10acbae00c0007a8488e
😎 Deploy Preview https://deploy-preview-804--dapper-rolypoly-9814ad.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify

netlify Bot commented May 21, 2026

Copy link
Copy Markdown

Deploy Preview for phenomenal-frangipane-7c4bd1 ready!

Name Link
🔨 Latest commit 52b6b65
🔍 Latest deploy log https://app.netlify.com/projects/phenomenal-frangipane-7c4bd1/deploys/6a0f10ac2144b5000921e688
😎 Deploy Preview https://deploy-preview-804--phenomenal-frangipane-7c4bd1.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

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.

1 participant