Skip to content

Commit

Permalink
Merge pull request #134 from lyfsn/max-distance-var
Browse files Browse the repository at this point in the history
Add maxDistance as an input parameter
  • Loading branch information
mcdee authored Apr 29, 2024
2 parents 80373ae + 2362a1a commit 7e09068
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 1 deletion.
2 changes: 2 additions & 0 deletions cmd/validator/credentials/set/command.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ type command struct {
genesisValidatorsRoot string
prepareOffline bool
signedOperationsInput string
maxDistance uint64

// Beacon node connection.
timeout time.Duration
Expand Down Expand Up @@ -90,6 +91,7 @@ func newCommand(_ context.Context) (*command, error) {
withdrawalAddressStr: viper.GetString("withdrawal-address"),
forkVersion: viper.GetString("fork-version"),
genesisValidatorsRoot: viper.GetString("genesis-validators-root"),
maxDistance: viper.GetUint64("max-distance"),
}

// Timeout is required.
Expand Down
8 changes: 7 additions & 1 deletion cmd/validator/credentials/set/process.go
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,9 @@ func (c *command) generateOperationFromMnemonicAndValidator(ctx context.Context)

// Scan the keys from the seed to find the path.
maxDistance := 1024
if c.maxDistance > 0 {
maxDistance = int(c.maxDistance)
}
// Start scanning the validator keys.
var withdrawalAccount e2wtypes.Account
for i := 0; ; i++ {
Expand Down Expand Up @@ -247,10 +250,13 @@ func (c *command) generateOperationsFromMnemonic(ctx context.Context) error {
validators[fmt.Sprintf("%#x", validator.Pubkey)] = validator
}

maxDistance := 1024
// Start scanning the validator keys.
lastFoundIndex := 0
foundValidatorCount := 0
maxDistance := 1024
if c.maxDistance > 0 {
maxDistance = int(c.maxDistance)
}
for i := 0; ; i++ {
// If no validators have been found in the last maxDistance indices, stop scanning.
if i-lastFoundIndex > maxDistance {
Expand Down
2 changes: 2 additions & 0 deletions cmd/validator/exit/command.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ type command struct {
prepareOffline bool
signedOperationsInput string
epoch string
maxDistance uint64

// Beacon node connection.
timeout time.Duration
Expand Down Expand Up @@ -82,6 +83,7 @@ func newCommand(_ context.Context) (*command, error) {
forkVersion: viper.GetString("fork-version"),
genesisValidatorsRoot: viper.GetString("genesis-validators-root"),
epoch: viper.GetString("epoch"),
maxDistance: viper.GetUint64("max-distance"),
signedOperations: make([]*phase0.SignedVoluntaryExit, 0),
}

Expand Down
7 changes: 7 additions & 0 deletions cmd/validator/exit/process.go
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,9 @@ func (c *command) generateOperationFromMnemonicAndValidator(ctx context.Context)

// Scan the keys from the seed to find the path.
maxDistance := 1024
if c.maxDistance > 0 {
maxDistance = int(c.maxDistance)
}
// Start scanning the validator keys.
for i := 0; ; i++ {
if i == maxDistance {
Expand Down Expand Up @@ -219,7 +222,11 @@ func (c *command) generateOperationsFromMnemonic(ctx context.Context) error {
validators[fmt.Sprintf("%#x", validator.Pubkey)] = validator
}

// Scan the keys from the seed to find the path.
maxDistance := 1024
if c.maxDistance > 0 {
maxDistance = int(c.maxDistance)
}
// Start scanning the validator keys.
lastFoundIndex := 0
foundValidatorCount := 0
Expand Down
4 changes: 4 additions & 0 deletions cmd/validatorcredentialsset.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ func init() {
validatorCredentialsSetCmd.Flags().Bool("offline", false, "Do not attempt to connect to a beacon node to obtain information for the operation")
validatorCredentialsSetCmd.Flags().String("fork-version", "", "Fork version to use for signing (overrides fetching from beacon node)")
validatorCredentialsSetCmd.Flags().String("genesis-validators-root", "", "Genesis validators root to use for signing (overrides fetching from beacon node)")
validatorCredentialsSetCmd.Flags().Uint64("max-distance", 1024, "Maximum indices to scan for finding the validator.")
}

func validatorCredentialsSetBindings(cmd *cobra.Command) {
Expand Down Expand Up @@ -91,4 +92,7 @@ func validatorCredentialsSetBindings(cmd *cobra.Command) {
if err := viper.BindPFlag("genesis-validators-root", cmd.Flags().Lookup("genesis-validators-root")); err != nil {
panic(err)
}
if err := viper.BindPFlag("max-distance", cmd.Flags().Lookup("max-distance")); err != nil {
panic(err)
}
}
4 changes: 4 additions & 0 deletions cmd/validatorexit.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ func init() {
validatorExitCmd.Flags().Bool("offline", false, "Do not attempt to connect to a beacon node to obtain information for the operation")
validatorExitCmd.Flags().String("fork-version", "", "Fork version to use for signing (overrides fetching from beacon node)")
validatorExitCmd.Flags().String("genesis-validators-root", "", "Genesis validators root to use for signing (overrides fetching from beacon node)")
validatorExitCmd.Flags().Uint64("max-distance", 1024, "Maximum indices to scan for finding the validator.")
}

func validatorExitBindings(cmd *cobra.Command) {
Expand All @@ -88,4 +89,7 @@ func validatorExitBindings(cmd *cobra.Command) {
if err := viper.BindPFlag("genesis-validators-root", cmd.Flags().Lookup("genesis-validators-root")); err != nil {
panic(err)
}
if err := viper.BindPFlag("max-distance", cmd.Flags().Lookup("max-distance")); err != nil {
panic(err)
}
}

0 comments on commit 7e09068

Please sign in to comment.