Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Share length validation #478

Merged
merged 9 commits into from
Aug 20, 2024
9 changes: 7 additions & 2 deletions ssv/aggregator.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,12 @@ func NewAggregatorRunner(
operatorSigner *types.OperatorSigner,
valCheck qbft.ProposedValueCheckF,
highestDecidedSlot phase0.Slot,
) Runner {
) (Runner, error) {

if len(share) != 1 {
return nil, errors.New("must have only one share")
}

return &AggregatorRunner{
BaseRunner: &BaseRunner{
RunnerRoleType: types.RoleAggregator,
Expand All @@ -44,7 +49,7 @@ func NewAggregatorRunner(
signer: signer,
operatorSigner: operatorSigner,
valCheck: valCheck,
}
}, nil
}

func (r *AggregatorRunner) StartNewDuty(duty types.Duty, quorum uint64) error {
Expand Down
9 changes: 7 additions & 2 deletions ssv/proposer.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,12 @@ func NewProposerRunner(
operatorSigner *types.OperatorSigner,
valCheck qbft.ProposedValueCheckF,
highestDecidedSlot phase0.Slot,
) Runner {
) (Runner, error) {

if len(share) != 1 {
return nil, errors.New("must have only one share")
}

return &ProposerRunner{
BaseRunner: &BaseRunner{
RunnerRoleType: types.RoleProposer,
Expand All @@ -44,7 +49,7 @@ func NewProposerRunner(
signer: signer,
operatorSigner: operatorSigner,
valCheck: valCheck,
}
}, nil
}

func (r *ProposerRunner) StartNewDuty(duty types.Duty, quorum uint64) error {
Expand Down
9 changes: 7 additions & 2 deletions ssv/sync_committee_aggregator.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,12 @@ func NewSyncCommitteeAggregatorRunner(
operatorSigner *types.OperatorSigner,
valCheck qbft.ProposedValueCheckF,
highestDecidedSlot phase0.Slot,
) Runner {
) (Runner, error) {

if len(share) != 1 {
return nil, errors.New("must have only one share")
}

return &SyncCommitteeAggregatorRunner{
BaseRunner: &BaseRunner{
RunnerRoleType: types.RoleSyncCommitteeContribution,
Expand All @@ -47,7 +52,7 @@ func NewSyncCommitteeAggregatorRunner(
signer: signer,
operatorSigner: operatorSigner,
valCheck: valCheck,
}
}, nil
}

func (r *SyncCommitteeAggregatorRunner) StartNewDuty(duty types.Duty, quorum uint64) error {
Expand Down
9 changes: 7 additions & 2 deletions ssv/validator_registration.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,12 @@ func NewValidatorRegistrationRunner(
network Network,
signer types.BeaconSigner,
operatorSigner *types.OperatorSigner,
) Runner {
) (Runner, error) {

if len(share) != 1 {
return nil, errors.New("must have only one share")
}

return &ValidatorRegistrationRunner{
BaseRunner: &BaseRunner{
RunnerRoleType: types.RoleValidatorRegistration,
Expand All @@ -39,7 +44,7 @@ func NewValidatorRegistrationRunner(
network: network,
signer: signer,
operatorSigner: operatorSigner,
}
}, nil
}

func (r *ValidatorRegistrationRunner) StartNewDuty(duty types.Duty, quorum uint64) error {
Expand Down
9 changes: 7 additions & 2 deletions ssv/voluntary_exit.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,12 @@ func NewVoluntaryExitRunner(
network Network,
signer types.BeaconSigner,
operatorSigner *types.OperatorSigner,
) Runner {
) (Runner, error) {

if len(share) != 1 {
return nil, errors.New("must have only one share")
}

return &VoluntaryExitRunner{
BaseRunner: &BaseRunner{
RunnerRoleType: types.RoleVoluntaryExit,
Expand All @@ -41,7 +46,7 @@ func NewVoluntaryExitRunner(
network: network,
signer: signer,
operatorSigner: operatorSigner,
}
}, nil
}

func (r *VoluntaryExitRunner) StartNewDuty(duty types.Duty, quorum uint64) error {
Expand Down
36 changes: 24 additions & 12 deletions types/testingutils/runner.go
Original file line number Diff line number Diff line change
Expand Up @@ -117,9 +117,11 @@ var baseRunnerWithShareMap = func(role types.RunnerRole, shareMap map[phase0.Val

contr := qbft.NewController(identifier[:], committeeMember, config, opSigner)

var runner ssv.Runner
var err error
switch role {
case types.RoleCommittee:
return ssv.NewCommitteeRunner(
runner = ssv.NewCommitteeRunner(
types.BeaconTestNetwork,
shareMap,
contr,
Expand All @@ -130,7 +132,7 @@ var baseRunnerWithShareMap = func(role types.RunnerRole, shareMap map[phase0.Val
valCheck,
)
case types.RoleAggregator:
return ssv.NewAggregatorRunner(
runner, err = ssv.NewAggregatorRunner(
types.BeaconTestNetwork,
shareMap,
contr,
Expand All @@ -142,7 +144,7 @@ var baseRunnerWithShareMap = func(role types.RunnerRole, shareMap map[phase0.Val
TestingHighestDecidedSlot,
)
case types.RoleProposer:
return ssv.NewProposerRunner(
runner, err = ssv.NewProposerRunner(
types.BeaconTestNetwork,
shareMap,
contr,
Expand All @@ -154,7 +156,7 @@ var baseRunnerWithShareMap = func(role types.RunnerRole, shareMap map[phase0.Val
TestingHighestDecidedSlot,
)
case types.RoleSyncCommitteeContribution:
return ssv.NewSyncCommitteeAggregatorRunner(
runner, err = ssv.NewSyncCommitteeAggregatorRunner(
types.BeaconTestNetwork,
shareMap,
contr,
Expand All @@ -166,7 +168,7 @@ var baseRunnerWithShareMap = func(role types.RunnerRole, shareMap map[phase0.Val
TestingHighestDecidedSlot,
)
case types.RoleValidatorRegistration:
return ssv.NewValidatorRegistrationRunner(
runner, err = ssv.NewValidatorRegistrationRunner(
types.BeaconTestNetwork,
shareMap,
NewTestingBeaconNode(),
Expand All @@ -175,7 +177,7 @@ var baseRunnerWithShareMap = func(role types.RunnerRole, shareMap map[phase0.Val
opSigner,
)
case types.RoleVoluntaryExit:
return ssv.NewVoluntaryExitRunner(
runner, err = ssv.NewVoluntaryExitRunner(
types.BeaconTestNetwork,
shareMap,
NewTestingBeaconNode(),
Expand All @@ -199,6 +201,10 @@ var baseRunnerWithShareMap = func(role types.RunnerRole, shareMap map[phase0.Val
default:
panic("unknown role type")
}
if err != nil {
panic(err)
}
return runner
}

var baseRunner = func(role types.RunnerRole, keySet *TestKeySet) ssv.Runner {
Expand Down Expand Up @@ -252,9 +258,11 @@ var baseRunner = func(role types.RunnerRole, keySet *TestKeySet) ssv.Runner {
shareMap := make(map[phase0.ValidatorIndex]*types.Share)
shareMap[share.ValidatorIndex] = share

var runner ssv.Runner
var err error
switch role {
case types.RoleCommittee:
return ssv.NewCommitteeRunner(
runner = ssv.NewCommitteeRunner(
types.BeaconTestNetwork,
shareMap,
contr,
Expand All @@ -265,7 +273,7 @@ var baseRunner = func(role types.RunnerRole, keySet *TestKeySet) ssv.Runner {
valCheck,
)
case types.RoleAggregator:
return ssv.NewAggregatorRunner(
runner, err = ssv.NewAggregatorRunner(
types.BeaconTestNetwork,
shareMap,
contr,
Expand All @@ -277,7 +285,7 @@ var baseRunner = func(role types.RunnerRole, keySet *TestKeySet) ssv.Runner {
TestingHighestDecidedSlot,
)
case types.RoleProposer:
return ssv.NewProposerRunner(
runner, err = ssv.NewProposerRunner(
types.BeaconTestNetwork,
shareMap,
contr,
Expand All @@ -289,7 +297,7 @@ var baseRunner = func(role types.RunnerRole, keySet *TestKeySet) ssv.Runner {
TestingHighestDecidedSlot,
)
case types.RoleSyncCommitteeContribution:
return ssv.NewSyncCommitteeAggregatorRunner(
runner, err = ssv.NewSyncCommitteeAggregatorRunner(
types.BeaconTestNetwork,
shareMap,
contr,
Expand All @@ -301,7 +309,7 @@ var baseRunner = func(role types.RunnerRole, keySet *TestKeySet) ssv.Runner {
TestingHighestDecidedSlot,
)
case types.RoleValidatorRegistration:
return ssv.NewValidatorRegistrationRunner(
runner, err = ssv.NewValidatorRegistrationRunner(
types.BeaconTestNetwork,
shareMap,
NewTestingBeaconNode(),
Expand All @@ -310,7 +318,7 @@ var baseRunner = func(role types.RunnerRole, keySet *TestKeySet) ssv.Runner {
opSigner,
)
case types.RoleVoluntaryExit:
return ssv.NewVoluntaryExitRunner(
runner, err = ssv.NewVoluntaryExitRunner(
types.BeaconTestNetwork,
shareMap,
NewTestingBeaconNode(),
Expand All @@ -334,6 +342,10 @@ var baseRunner = func(role types.RunnerRole, keySet *TestKeySet) ssv.Runner {
default:
panic("unknown role type")
}
if err != nil {
panic(err)
}
return runner
}

var DecidedRunner = func(keySet *TestKeySet) ssv.Runner {
Expand Down