github.com/prysmaticlabs/prysm@v1.4.4/slasher/detection/testing/utils.go (about) 1 // Package testing includes useful helpers for slasher-related 2 // unit tests. 3 package testing 4 5 import ( 6 types "github.com/prysmaticlabs/eth2-types" 7 ethpb "github.com/prysmaticlabs/prysm/proto/eth/v1alpha1" 8 "github.com/prysmaticlabs/prysm/shared/rand" 9 ) 10 11 // SignedBlockHeader given slot, proposer index this function generates signed block header. 12 // with random bytes as its signature. 13 func SignedBlockHeader(slot types.Slot, proposerIdx types.ValidatorIndex) (*ethpb.SignedBeaconBlockHeader, error) { 14 sig, err := genRandomByteArray(96) 15 if err != nil { 16 return nil, err 17 } 18 root := [32]byte{1, 2, 3} 19 return ðpb.SignedBeaconBlockHeader{ 20 Header: ðpb.BeaconBlockHeader{ 21 ProposerIndex: proposerIdx, 22 Slot: slot, 23 ParentRoot: root[:], 24 StateRoot: root[:], 25 BodyRoot: root[:], 26 }, 27 Signature: sig, 28 }, nil 29 } 30 31 // BlockHeader given slot, proposer index this function generates block header. 32 func BlockHeader(slot types.Slot, proposerIdx types.ValidatorIndex) (*ethpb.BeaconBlockHeader, error) { 33 root := [32]byte{1, 2, 3} 34 return ðpb.BeaconBlockHeader{ 35 ProposerIndex: proposerIdx, 36 Slot: slot, 37 ParentRoot: root[:], 38 StateRoot: root[:], 39 BodyRoot: root[:], 40 }, nil 41 } 42 43 func genRandomByteArray(length int) ([]byte, error) { 44 blk := make([]byte, length) 45 randGen := rand.NewDeterministicGenerator() 46 _, err := randGen.Read(blk) 47 return blk, err 48 }