mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2024-12-25 12:57:18 +00:00
49 lines
1.4 KiB
Go
49 lines
1.4 KiB
Go
// Package testing includes useful helpers for slasher-related
|
|
// unit tests.
|
|
package testing
|
|
|
|
import (
|
|
types "github.com/prysmaticlabs/eth2-types"
|
|
ethpb "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1"
|
|
"github.com/prysmaticlabs/prysm/shared/rand"
|
|
)
|
|
|
|
// SignedBlockHeader given slot, proposer index this function generates signed block header.
|
|
// with random bytes as its signature.
|
|
func SignedBlockHeader(slot types.Slot, proposerIdx types.ValidatorIndex) (*ethpb.SignedBeaconBlockHeader, error) {
|
|
sig, err := genRandomByteArray(96)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
root := [32]byte{1, 2, 3}
|
|
return ðpb.SignedBeaconBlockHeader{
|
|
Header: ðpb.BeaconBlockHeader{
|
|
ProposerIndex: proposerIdx,
|
|
Slot: slot,
|
|
ParentRoot: root[:],
|
|
StateRoot: root[:],
|
|
BodyRoot: root[:],
|
|
},
|
|
Signature: sig,
|
|
}, nil
|
|
}
|
|
|
|
// BlockHeader given slot, proposer index this function generates block header.
|
|
func BlockHeader(slot types.Slot, proposerIdx types.ValidatorIndex) (*ethpb.BeaconBlockHeader, error) {
|
|
root := [32]byte{1, 2, 3}
|
|
return ðpb.BeaconBlockHeader{
|
|
ProposerIndex: proposerIdx,
|
|
Slot: slot,
|
|
ParentRoot: root[:],
|
|
StateRoot: root[:],
|
|
BodyRoot: root[:],
|
|
}, nil
|
|
}
|
|
|
|
func genRandomByteArray(length int) ([]byte, error) {
|
|
blk := make([]byte, length)
|
|
randGen := rand.NewDeterministicGenerator()
|
|
_, err := randGen.Read(blk)
|
|
return blk, err
|
|
}
|