From 9f42629cb13eb6425830bb3a2ecc525f75a5e003 Mon Sep 17 00:00:00 2001 From: thomaspanf Date: Tue, 27 Oct 2026 18:08:42 -0700 Subject: [PATCH 1/2] Skip locked validators in notify-validator-exit --- rocketpool/node/notify-validator-exit.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rocketpool/node/notify-validator-exit.go b/rocketpool/node/notify-validator-exit.go index 93caa68fc..86982a2a9 100644 --- a/rocketpool/node/notify-validator-exit.go +++ b/rocketpool/node/notify-validator-exit.go @@ -132,7 +132,7 @@ func (t *notifyValidatorExit) run(state *state.NetworkStateIndex) error { continue } - if validatorDetails.WithdrawableEpoch < FarFutureEpoch && !validatorInfo.ValidatorInfo.Exited && !validatorInfo.ValidatorInfo.Exiting { + if validatorDetails.WithdrawableEpoch < FarFutureEpoch && !validatorInfo.ValidatorInfo.Exited && !validatorInfo.ValidatorInfo.Exiting && !validatorInfo.ValidatorInfo.Locked { validatorDetailsToProve[validatorInfo.ValidatorId] = validatorDetails } } From 0aa5714e5f5d1a81f56f73538cc9ccd69ff6f3d3 Mon Sep 17 00:00:00 2001 From: thomaspanf Date: Tue, 27 Oct 2026 18:09:35 -0700 Subject: [PATCH 2/2] Use %v instead of %w in log calls --- rocketpool/node/defend-challenge-exit.go | 2 +- rocketpool/node/notify-validator-exit.go | 10 +++++----- rocketpool/node/prestake-megapool-validator.go | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/rocketpool/node/defend-challenge-exit.go b/rocketpool/node/defend-challenge-exit.go index 6d843efdf..bc143451d 100644 --- a/rocketpool/node/defend-challenge-exit.go +++ b/rocketpool/node/defend-challenge-exit.go @@ -165,7 +165,7 @@ func (t *defendChallengeExit) defendChallenge(rp *rocketpool.RocketPool, mp mega } validatorProof, slotProof, err := services.GetValidatorProofFromState(t.bc, validatorPubkey, beaconState) if err != nil { - t.log.Printlnf("[ERROR] There was an error during the proof creation process: %w", err) + t.log.Printlnf("[ERROR] There was an error during the proof creation process: %v", err) return err } if exiting && validatorProof.Validator.WithdrawableEpoch >= FarFutureEpoch { diff --git a/rocketpool/node/notify-validator-exit.go b/rocketpool/node/notify-validator-exit.go index 86982a2a9..19323ede0 100644 --- a/rocketpool/node/notify-validator-exit.go +++ b/rocketpool/node/notify-validator-exit.go @@ -157,12 +157,12 @@ func (t *notifyValidatorExit) run(state *state.NetworkStateIndex) error { // Check the exit is visible on the selected state before proof generation validatorIndexStr, err := t.bc.GetValidatorIndex(pubkey) if err != nil { - t.log.Printlnf("Error getting beacon index for validator id %d: %w", validatorId, err) + t.log.Printlnf("Error getting beacon index for validator id %d: %v", validatorId, err) continue } validatorIndex, err := strconv.ParseUint(validatorIndexStr, 10, 64) if err != nil { - t.log.Printlnf("Error parsing beacon index for validator id %d: %w", validatorId, err) + t.log.Printlnf("Error parsing beacon index for validator id %d: %v", validatorId, err) continue } if validatorIndex >= uint64(len(proofValidators)) { @@ -178,7 +178,7 @@ func (t *notifyValidatorExit) run(state *state.NetworkStateIndex) error { err = t.createExitProof(t.rp, beaconState, slotTimestamp, mp, validatorId, pubkey) // dont return if there was an error, just log it so we can continue with the next validator if err != nil { - t.log.Printlnf("Error creating exit proof for validator %d: %w", validatorId, err) + t.log.Printlnf("Error creating exit proof for validator %d: %v", validatorId, err) } } // Return @@ -198,7 +198,7 @@ func (t *notifyValidatorExit) createExitProof(rp *rocketpool.RocketPool, beaconS validatorProof, slotProof, err := services.GetValidatorProofFromState(t.bc, validatorPubkey, beaconState) if err != nil { - t.log.Printlnf("[ERROR] There was an error during the proof creation process: %w", err) + t.log.Printlnf("[ERROR] There was an error during the proof creation process: %v", err) return err } @@ -207,7 +207,7 @@ func (t *notifyValidatorExit) createExitProof(rp *rocketpool.RocketPool, beaconS // Get the gas limit gasLimits, err := services.EstimateMegapoolNotifyExitGas(rp, mp.GetAddress(), validatorId, slotTimestamp, validatorProof, slotProof, opts) if err != nil { - t.log.Printlnf("Could not estimate the gas required to notify exit on megapool validator %d: %w", validatorId, err) + t.log.Printlnf("Could not estimate the gas required to notify exit on megapool validator %d: %v", validatorId, err) return err } gas := big.NewInt(int64(gasLimits.Safe)) diff --git a/rocketpool/node/prestake-megapool-validator.go b/rocketpool/node/prestake-megapool-validator.go index 4dc225cda..f8c5243f8 100644 --- a/rocketpool/node/prestake-megapool-validator.go +++ b/rocketpool/node/prestake-megapool-validator.go @@ -160,7 +160,7 @@ func (t *prestakeMegapoolValidator) assignDeposit(callopts *bind.CallOpts) error // Get the gas limit gasLimits, err := deposit.EstimateAssignDepositsGas(t.rp, big.NewInt(1), opts) if err != nil { - t.log.Printlnf("error estimating assignment %w", err) + t.log.Printlnf("error estimating assignment %v", err) return err } gas := big.NewInt(int64(gasLimits.Safe))