mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2025-01-01 07:51:21 +00:00
898cd8b42b
* detect slashable attestations and blocks without db update * lint fixes * fix mock * Merge refs/heads/master into no_sig_slasher_rpc * Merge refs/heads/master into no_sig_slasher_rpc * preston feedback * Merge branch 'no_sig_slasher_rpc' of github.com:prysmaticlabs/prysm into no_sig_slasher_rpc * Merge refs/heads/master into no_sig_slasher_rpc * Merge refs/heads/master into no_sig_slasher_rpc * Merge refs/heads/master into no_sig_slasher_rpc * Merge refs/heads/master into no_sig_slasher_rpc * Merge refs/heads/master into no_sig_slasher_rpc * Merge refs/heads/master into no_sig_slasher_rpc * Merge refs/heads/master into no_sig_slasher_rpc * Merge refs/heads/master into no_sig_slasher_rpc * Merge refs/heads/master into no_sig_slasher_rpc * Merge refs/heads/master into no_sig_slasher_rpc * Merge refs/heads/master into no_sig_slasher_rpc * Merge refs/heads/master into no_sig_slasher_rpc * Merge refs/heads/master into no_sig_slasher_rpc * Merge refs/heads/master into no_sig_slasher_rpc * Merge refs/heads/master into no_sig_slasher_rpc * Merge refs/heads/master into no_sig_slasher_rpc * Merge refs/heads/master into no_sig_slasher_rpc * Merge refs/heads/master into no_sig_slasher_rpc * Merge refs/heads/master into no_sig_slasher_rpc * Merge refs/heads/master into no_sig_slasher_rpc * Merge refs/heads/master into no_sig_slasher_rpc * Merge refs/heads/master into no_sig_slasher_rpc * Merge refs/heads/master into no_sig_slasher_rpc * nishant and ivan feedback * Merge branch 'no_sig_slasher_rpc' of github.com:prysmaticlabs/prysm into no_sig_slasher_rpc * Merge refs/heads/master into no_sig_slasher_rpc * Merge refs/heads/master into no_sig_slasher_rpc * Apply suggestions from code review
54 lines
1.4 KiB
Go
54 lines
1.4 KiB
Go
// Package testing includes useful helpers for slasher-related
|
|
// unit tests.
|
|
package testing
|
|
|
|
import (
|
|
"crypto/rand"
|
|
|
|
ethpb "github.com/prysmaticlabs/ethereumapis/eth/v1alpha1"
|
|
"github.com/prysmaticlabs/prysm/shared/params"
|
|
)
|
|
|
|
// SignedBlockHeader given slot, proposer index this function generates signed block header.
|
|
// with random bytes as its signature.
|
|
func SignedBlockHeader(slot uint64, proposerIdx uint64) (*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 uint64, proposerIdx uint64) (*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)
|
|
_, err := rand.Read(blk)
|
|
return blk, err
|
|
}
|
|
|
|
// StartSlot returns the first slot of a given epoch.
|
|
func StartSlot(epoch uint64) uint64 {
|
|
return epoch * params.BeaconConfig().SlotsPerEpoch
|
|
}
|