Skip to content

Commit 059d3b4

Browse files
committed
done
1 parent 084f79c commit 059d3b4

File tree

8 files changed

+210
-27
lines changed

8 files changed

+210
-27
lines changed

cl/beacon/synced_data/interface.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import "github.com/ledgerwatch/erigon/cl/phase1/core/state"
66
type SyncedData interface {
77
OnHeadState(newState *state.CachingBeaconState) (err error)
88
HeadState() *state.CachingBeaconState
9+
HeadStateReader() state.BeaconStateReader
910
Syncing() bool
1011
HeadSlot() uint64
1112
}

cl/beacon/synced_data/mock_services/synced_data_mock.go

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cl/beacon/synced_data/synced_data.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,10 @@ func (s *SyncedDataManager) HeadState() *state.CachingBeaconState {
4343
return nil
4444
}
4545

46+
func (s *SyncedDataManager) HeadStateReader() state.BeaconStateReader {
47+
return s.HeadState()
48+
}
49+
4650
func (s *SyncedDataManager) Syncing() bool {
4751
if !s.enabled {
4852
return false

cl/phase1/core/state/interface.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package state
2+
3+
import libcommon "github.com/ledgerwatch/erigon-lib/common"
4+
5+
// BeaconStateReader is an interface for reading the beacon state.
6+
//
7+
//go:generate mockgen -destination=./mock_services/beacon_state_reader.go -package=mock_services . BeaconStateReader
8+
type BeaconStateReader interface {
9+
ValidatorPublicKey(index int) (libcommon.Bytes48, error)
10+
GetDomain(domainType [4]byte, epoch uint64) ([]byte, error)
11+
CommitteeCount(epoch uint64) uint64
12+
}

cl/phase1/core/state/mock_services/beacon_state_reader.go

Lines changed: 84 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cl/phase1/network/services/attestation_service.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ import (
2121
var (
2222
computeSubnetForAttestation = subnets.ComputeSubnetForAttestation
2323
computeCommitteeCountPerSlot = subnets.ComputeCommitteeCountPerSlot
24+
computeSigningRoot = fork.ComputeSigningRoot
25+
blsVerify = bls.Verify
2426
)
2527

2628
type attestationService struct {
@@ -61,7 +63,7 @@ func (s *attestationService) ProcessMessage(ctx context.Context, subnet *uint64,
6163
committeeIndex = att.AttestantionData().CommitteeIndex()
6264
targetEpoch = att.AttestantionData().Target().Epoch()
6365
)
64-
headState := s.syncedDataManager.HeadState()
66+
headState := s.syncedDataManager.HeadStateReader()
6567
if headState == nil {
6668
return ErrIgnore
6769
}
@@ -144,11 +146,11 @@ func (s *attestationService) ProcessMessage(ctx context.Context, subnet *uint64,
144146
if err != nil {
145147
return fmt.Errorf("unable to get the domain: %v", err)
146148
}
147-
signingRoot, err := fork.ComputeSigningRoot(att.AttestantionData(), domain)
149+
signingRoot, err := computeSigningRoot(att.AttestantionData(), domain)
148150
if err != nil {
149151
return fmt.Errorf("unable to get signing root: %v", err)
150152
}
151-
if valid, err := bls.Verify(signature[:], signingRoot[:], pubKey[:]); err != nil {
153+
if valid, err := blsVerify(signature[:], signingRoot[:], pubKey[:]); err != nil {
152154
return err
153155
} else if !valid {
154156
return fmt.Errorf("invalid signature")

0 commit comments

Comments
 (0)