Skip to content

Fixes to verify validator and deposits - #2962

Merged
naddison36 merged 5 commits into
masterfrom
nicka/verify-val
Aug 4, 2026
Merged

Fixes to verify validator and deposits#2962
naddison36 merged 5 commits into
masterfrom
nicka/verify-val

Conversation

@naddison36

@naddison36 naddison36 commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator

Summary

Fix validator and deposit operations after the migration from CompoundingStakingSSVStrategyProxy to CompoundingStakingStrategyProxy.

  • Use the new compounding staking strategy for validator, deposit, and balance verification
  • Support verifying multiple validator indexes from one downloaded beacon state
  • Show full validator public keys and indexes in snapStakingStrat
  • Lazy-load the optional Talos client so unrelated Hardhat tasks work without it installed

Context

The verification tasks still resolved the retired SSV strategy while CompoundingStakingStrategyView read pending deposits from the new strategy. This caused the daily_verify_deposits Talos action to call snapBalances() on the old proxy and revert with NotRegistrator().

Downloading and decoding a beacon state is also expensive, so running verifyValidator separately for several validators repeated the same work each time.

Changes

Verification strategy

verifyValidator, verifyDeposit, verifyDeposits, and verifyBalances now exclusively resolve CompoundingStakingStrategyProxy / CompoundingStakingStrategy.

Batch validator verification

verifyValidator accepts either:

pnpm hardhat verifyValidator --index 2329587 --network mainnet

or a comma-separated list:

pnpm hardhat verifyValidator \
  --ids 2329587,2329588,2329589 \
  --network mainnet

The batch path:

  • Downloads and parses the beacon state once
  • Validates and deduplicates the supplied indexes
  • Generates and checks every proof before submitting transactions
  • Submits verification transactions sequentially
  • Supports the existing --dryrun and --cred options

Staking snapshot output

For processed deposits no longer in the beacon pending-deposit queue, snapStakingStrat now:

  • Recovers the full 48-byte public key from indexed ETHStaked events
  • Queries the beacon node for the processed validator index
  • Displays the index in a new V index column
  • Falls back to the public-key hash if event lookup fails

Event queries use bounded 10,000-block batches and stop once all required public keys are found.

Optional Talos dependency

@oplabs/talos-client is now loaded only when DATABASE_URL enables nonce-queue support. Hardhat commands that do not use the Talos nonce queue no longer fail at startup when the optional private package is absent.

Validation

  • pnpm prettier:js
  • pnpm prettier:ts
  • ESLint on the changed task files
  • Node syntax checks
  • Hardhat task loading and option/help checks
  • git diff --check

@naddison36
naddison36 merged commit fa68be8 into master Aug 4, 2026
9 of 11 checks passed
@naddison36
naddison36 deleted the nicka/verify-val branch August 4, 2026 22:58
@naddison36
naddison36 restored the nicka/verify-val branch August 4, 2026 23:34
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