Use correct fork and genesis root to verify bid (#11176)

This commit is contained in:
terencechain
2022-08-05 11:55:55 -07:00
committed by GitHub
parent 9261da7fb1
commit 4e225fc667
2 changed files with 7 additions and 22 deletions

View File

@@ -333,15 +333,9 @@ func (vs *Server) validatorRegistered(ctx context.Context, id types.ValidatorInd
// Validates builder signature and returns an error if the signature is invalid.
func (vs *Server) validateBuilderSignature(bid *ethpb.SignedBuilderBid) error {
if vs.ForkFetcher == nil {
return errors.New("nil fork fetcher")
}
f := vs.ForkFetcher.CurrentFork()
if vs.GenesisFetcher == nil {
return errors.New("nil genesis fetcher")
}
gr := vs.GenesisFetcher.GenesisValidatorsRoot()
d, err := signing.ComputeDomain(params.BeaconConfig().DomainApplicationBuilder, f.CurrentVersion, gr[:])
d, err := signing.ComputeDomain(params.BeaconConfig().DomainApplicationBuilder,
nil, /* fork version */
nil /* genesis val root */)
if err != nil {
return err
}

View File

@@ -393,8 +393,7 @@ func TestServer_getAndBuildHeaderBlock(t *testing.T) {
Value: bytesutil.PadTo([]byte{1, 2, 3}, 32),
}
d := params.BeaconConfig().DomainApplicationBuilder
g := vs.GenesisFetcher.GenesisValidatorsRoot()
domain, err := signing.ComputeDomain(d, vs.ForkFetcher.CurrentFork().CurrentVersion, g[:])
domain, err := signing.ComputeDomain(d, nil, nil)
require.NoError(t, err)
sr, err := signing.ComputeSigningRoot(bid, domain)
require.NoError(t, err)
@@ -633,8 +632,7 @@ func TestServer_GetBellatrixBeaconBlock_BuilderCase(t *testing.T) {
Value: bytesutil.PadTo([]byte{1, 2, 3}, 32),
}
d := params.BeaconConfig().DomainApplicationBuilder
g := proposerServer.GenesisFetcher.GenesisValidatorsRoot()
domain, err := signing.ComputeDomain(d, proposerServer.ForkFetcher.CurrentFork().CurrentVersion, g[:])
domain, err := signing.ComputeDomain(d, nil, nil)
require.NoError(t, err)
sr, err := signing.ComputeSigningRoot(bid, domain)
require.NoError(t, err)
@@ -687,13 +685,7 @@ func TestServer_validatorRegistered(t *testing.T) {
}
func TestServer_validateBuilderSignature(t *testing.T) {
m := &blockchainTest.ChainService{
Fork: &ethpb.Fork{},
}
s := &Server{
ForkFetcher: m,
GenesisFetcher: m,
}
s := &Server{}
sk, err := bls.RandKey()
require.NoError(t, err)
bid := &ethpb.BuilderBid{
@@ -713,8 +705,7 @@ func TestServer_validateBuilderSignature(t *testing.T) {
Value: bytesutil.PadTo([]byte{1, 2, 3}, 32),
}
d := params.BeaconConfig().DomainApplicationBuilder
g := s.GenesisFetcher.GenesisValidatorsRoot()
domain, err := signing.ComputeDomain(d, s.ForkFetcher.CurrentFork().CurrentVersion, g[:])
domain, err := signing.ComputeDomain(d, nil, nil)
require.NoError(t, err)
sr, err := signing.ComputeSigningRoot(bid, domain)
require.NoError(t, err)