Documentation ¶
Index ¶
- func BazelDirectoryNonEmpty(filePath string) (bool, error)
- func BazelFileBytes(filePaths ...string) ([]byte, error)
- func BlockSignature(bState iface.BeaconState, block *ethpb.BeaconBlock, privKeys []bls.SecretKey) (bls.Signature, error)
- func DepositTrieFromDeposits(deposits []*ethpb.Deposit) (*trieutil.SparseMerkleTrie, [][32]byte, error)
- func DepositTrieSubset(sparseTrie *trieutil.SparseMerkleTrie, size int) (*trieutil.SparseMerkleTrie, [][32]byte, error)
- func DepositsWithBalance(balances []uint64) ([]*ethpb.Deposit, *trieutil.SparseMerkleTrie, error)
- func DeterministicDepositTrie(size int) (*trieutil.SparseMerkleTrie, [][32]byte, error)
- func DeterministicDepositsAndKeys(numDeposits uint64) ([]*ethpb.Deposit, []bls.SecretKey, error)
- func DeterministicDepositsAndKeysSameValidator(numDeposits uint64) ([]*ethpb.Deposit, []bls.SecretKey, error)
- func DeterministicEth1Data(size int) (*ethpb.Eth1Data, error)
- func DeterministicGenesisState(t testing.TB, numValidators uint64) (iface.BeaconState, []bls.SecretKey)
- func FillRootsNaturalOpt(state *pb.BeaconState) error
- func GenerateAttestations(bState iface.BeaconState, privs []bls.SecretKey, numToGen uint64, ...) ([]*ethpb.Attestation, error)
- func GenerateAttesterSlashingForValidator(bState iface.BeaconState, priv bls.SecretKey, idx types.ValidatorIndex) (*ethpb.AttesterSlashing, error)
- func GenerateFullBlock(bState iface.BeaconState, privs []bls.SecretKey, conf *BlockGenConfig, ...) (*ethpb.SignedBeaconBlock, error)
- func GenerateProposerSlashingForValidator(bState iface.BeaconState, priv bls.SecretKey, idx types.ValidatorIndex) (*ethpb.ProposerSlashing, error)
- func HydrateAttestation(a *ethpb.Attestation) *ethpb.Attestation
- func HydrateAttestationData(d *ethpb.AttestationData) *ethpb.AttestationData
- func HydrateBeaconBlock(b *ethpb.BeaconBlock) *ethpb.BeaconBlock
- func HydrateBeaconBlockBody(b *ethpb.BeaconBlockBody) *ethpb.BeaconBlockBody
- func HydrateBeaconHeader(h *ethpb.BeaconBlockHeader) *ethpb.BeaconBlockHeader
- func HydrateIndexedAttestation(a *ethpb.IndexedAttestation) *ethpb.IndexedAttestation
- func HydrateSignedBeaconBlock(b *ethpb.SignedBeaconBlock) *ethpb.SignedBeaconBlock
- func HydrateSignedBeaconHeader(h *ethpb.SignedBeaconBlockHeader) *ethpb.SignedBeaconBlockHeader
- func HydrateV1BeaconBlock(b *v1.BeaconBlock) *v1.BeaconBlock
- func HydrateV1BeaconBlockBody(b *v1.BeaconBlockBody) *v1.BeaconBlockBody
- func HydrateV1SignedBeaconBlock(b *v1.SignedBeaconBlock) *v1.SignedBeaconBlock
- func NewAttestation() *ethpb.Attestation
- func NewBeaconBlock() *ethpb.SignedBeaconBlock
- func NewBeaconState(options ...func(state *pb.BeaconState) error) (*stateV0.BeaconState, error)
- func RandaoReveal(beaconState iface.ReadOnlyBeaconState, epoch types.Epoch, ...) ([]byte, error)
- func Random32Bytes(t *testing.T) []byte
- func ResetCache()
- func RunBlockOperationTest(t *testing.T, folderPath string, body *ethpb.BeaconBlockBody, ...)
- func RunEpochOperationTest(t *testing.T, testFolderPath string, operationFn epochOperation)
- func TestFolders(t testing.TB, config, folderPath string) ([]os.FileInfo, string)
- func UnmarshalYaml(y []byte, dest interface{}) error
- func WaitTimeout(wg *sync.WaitGroup, timeout time.Duration) bool
- type BlockGenConfig
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BazelDirectoryNonEmpty ¶ added in v1.0.0
BazelDirectoryNonEmpty returns true if directory exists and is not empty.
func BazelFileBytes ¶
BazelFileBytes returns the byte array of the bazel file path given.
func BlockSignature ¶ added in v0.3.0
func BlockSignature( bState iface.BeaconState, block *ethpb.BeaconBlock, privKeys []bls.SecretKey, ) (bls.Signature, error)
BlockSignature calculates the post-state root of the block and returns the signature.
func DepositTrieFromDeposits ¶ added in v0.3.0
func DepositTrieFromDeposits(deposits []*ethpb.Deposit) (*trieutil.SparseMerkleTrie, [][32]byte, error)
DepositTrieFromDeposits takes an array of deposits and returns the deposit trie.
func DepositTrieSubset ¶ added in v1.0.0
func DepositTrieSubset(sparseTrie *trieutil.SparseMerkleTrie, size int) (*trieutil.SparseMerkleTrie, [][32]byte, error)
DepositTrieSubset takes in a full tree and the desired size and returns a subset of the deposit trie.
func DepositsWithBalance ¶ added in v1.0.0
DepositsWithBalance generates N amount of deposits with the balances taken from the passed in balances array. If an empty array is passed,
func DeterministicDepositTrie ¶ added in v0.3.0
func DeterministicDepositTrie(size int) (*trieutil.SparseMerkleTrie, [][32]byte, error)
DeterministicDepositTrie returns a merkle trie of the requested size from the deterministic deposits.
func DeterministicDepositsAndKeys ¶ added in v0.3.0
DeterministicDepositsAndKeys returns the entered amount of deposits and secret keys. The deposits are configured such that for deposit n the validator account is key n and the withdrawal account is key n+1. As such, if all secret keys for n validators are required then numDeposits should be n+1.
func DeterministicDepositsAndKeysSameValidator ¶ added in v0.3.0
func DeterministicDepositsAndKeysSameValidator(numDeposits uint64) ([]*ethpb.Deposit, []bls.SecretKey, error)
DeterministicDepositsAndKeysSameValidator returns the entered amount of deposits and secret keys of the same validator. This is for negative test cases such as same deposits from same validators in a block don't result in duplicated validator indices.
func DeterministicEth1Data ¶ added in v0.3.0
DeterministicEth1Data takes an array of deposits and returns the eth1Data made from the deposit trie.
func DeterministicGenesisState ¶ added in v0.3.0
func DeterministicGenesisState(t testing.TB, numValidators uint64) (iface.BeaconState, []bls.SecretKey)
DeterministicGenesisState returns a genesis state made using the deterministic deposits.
func FillRootsNaturalOpt ¶ added in v1.3.5
func FillRootsNaturalOpt(state *pb.BeaconState) error
FillRootsNaturalOpt is meant to be used as an option when calling NewBeaconState. It fills state and block roots with hex representations of natural numbers starting with 0. Example: 16 becomes 0x00...0f.
func GenerateAttestations ¶ added in v0.3.0
func GenerateAttestations( bState iface.BeaconState, privs []bls.SecretKey, numToGen uint64, slot types.Slot, randomRoot bool, ) ([]*ethpb.Attestation, error)
GenerateAttestations creates attestations that are entirely valid, for all the committees of the current state slot. This function expects attestations requested to be cleanly divisible by committees per slot. If there is 1 committee in the slot, and numToGen is set to 4, then it will return 4 attestations for the same data with their aggregation bits split uniformly.
If you request 4 attestations, but there are 8 committees, you will get 4 fully aggregated attestations.
func GenerateAttesterSlashingForValidator ¶ added in v0.3.2
func GenerateAttesterSlashingForValidator( bState iface.BeaconState, priv bls.SecretKey, idx types.ValidatorIndex, ) (*ethpb.AttesterSlashing, error)
GenerateAttesterSlashingForValidator for a specific validator index.
func GenerateFullBlock ¶
func GenerateFullBlock( bState iface.BeaconState, privs []bls.SecretKey, conf *BlockGenConfig, slot types.Slot, ) (*ethpb.SignedBeaconBlock, error)
GenerateFullBlock generates a fully valid block with the requested parameters. Use BlockGenConfig to declare the conditions you would like the block generated under.
func GenerateProposerSlashingForValidator ¶ added in v0.3.2
func GenerateProposerSlashingForValidator( bState iface.BeaconState, priv bls.SecretKey, idx types.ValidatorIndex, ) (*ethpb.ProposerSlashing, error)
GenerateProposerSlashingForValidator for a specific validator index.
func HydrateAttestation ¶ added in v1.1.0
func HydrateAttestation(a *ethpb.Attestation) *ethpb.Attestation
HydrateAttestation hydrates an attestation object with correct field length sizes to comply with fssz marshalling and unmarshalling rules.
func HydrateAttestationData ¶ added in v1.1.0
func HydrateAttestationData(d *ethpb.AttestationData) *ethpb.AttestationData
HydrateAttestationData hydrates an attestation data object with correct field length sizes to comply with fssz marshalling and unmarshalling rules.
func HydrateBeaconBlock ¶ added in v1.1.0
func HydrateBeaconBlock(b *ethpb.BeaconBlock) *ethpb.BeaconBlock
HydrateBeaconBlock hydrates a beacon block with correct field length sizes to comply with fssz marshalling and unmarshalling rules.
func HydrateBeaconBlockBody ¶ added in v1.1.0
func HydrateBeaconBlockBody(b *ethpb.BeaconBlockBody) *ethpb.BeaconBlockBody
HydrateBeaconBlockBody hydrates a beacon block body with correct field length sizes to comply with fssz marshalling and unmarshalling rules.
func HydrateBeaconHeader ¶ added in v1.1.0
func HydrateBeaconHeader(h *ethpb.BeaconBlockHeader) *ethpb.BeaconBlockHeader
HydrateBeaconHeader hydrates a beacon block header with correct field length sizes to comply with fssz marshalling and unmarshalling rules.
func HydrateIndexedAttestation ¶ added in v1.1.0
func HydrateIndexedAttestation(a *ethpb.IndexedAttestation) *ethpb.IndexedAttestation
HydrateIndexedAttestation hydrates an indexed attestation with correct field length sizes to comply with fssz marshalling and unmarshalling rules.
func HydrateSignedBeaconBlock ¶ added in v1.1.0
func HydrateSignedBeaconBlock(b *ethpb.SignedBeaconBlock) *ethpb.SignedBeaconBlock
HydrateSignedBeaconBlock hydrates a signed beacon block with correct field length sizes to comply with fssz marshalling and unmarshalling rules.
func HydrateSignedBeaconHeader ¶ added in v1.1.0
func HydrateSignedBeaconHeader(h *ethpb.SignedBeaconBlockHeader) *ethpb.SignedBeaconBlockHeader
HydrateSignedBeaconHeader hydrates a signed beacon block header with correct field length sizes to comply with fssz marshalling and unmarshalling rules.
func HydrateV1BeaconBlock ¶ added in v1.3.3
func HydrateV1BeaconBlock(b *v1.BeaconBlock) *v1.BeaconBlock
HydrateV1BeaconBlock hydrates a beacon block with correct field length sizes to comply with fssz marshalling and unmarshalling rules.
func HydrateV1BeaconBlockBody ¶ added in v1.3.3
func HydrateV1BeaconBlockBody(b *v1.BeaconBlockBody) *v1.BeaconBlockBody
HydrateV1BeaconBlockBody hydrates a beacon block body with correct field length sizes to comply with fssz marshalling and unmarshalling rules.
func HydrateV1SignedBeaconBlock ¶ added in v1.3.3
func HydrateV1SignedBeaconBlock(b *v1.SignedBeaconBlock) *v1.SignedBeaconBlock
HydrateV1SignedBeaconBlock hydrates a signed beacon block with correct field length sizes to comply with fssz marshalling and unmarshalling rules.
func NewAttestation ¶ added in v1.0.0
func NewAttestation() *ethpb.Attestation
NewAttestation creates an attestation block with minimum marshalable fields.
func NewBeaconBlock ¶ added in v1.0.0
func NewBeaconBlock() *ethpb.SignedBeaconBlock
NewBeaconBlock creates a beacon block with minimum marshalable fields.
func NewBeaconState ¶ added in v1.0.0
func NewBeaconState(options ...func(state *pb.BeaconState) error) (*stateV0.BeaconState, error)
NewBeaconState creates a beacon state with minimum marshalable fields.
func RandaoReveal ¶ added in v0.3.0
func RandaoReveal(beaconState iface.ReadOnlyBeaconState, epoch types.Epoch, privKeys []bls.SecretKey) ([]byte, error)
RandaoReveal returns a signature of the requested epoch using the beacon proposer private key.
func Random32Bytes ¶
Random32Bytes generates a random 32 byte slice.
func RunBlockOperationTest ¶
func RunBlockOperationTest( t *testing.T, folderPath string, body *ethpb.BeaconBlockBody, operationFn blockOperation, )
RunBlockOperationTest takes in the prestate and the beacon block body, processes it through the passed in block operation function and checks the post state with the expected post state.
func RunEpochOperationTest ¶
RunEpochOperationTest takes in the prestate and processes it through the passed in epoch operation function and checks the post state with the expected post state.
func TestFolders ¶
TestFolders sets the proper config and returns the result of ReadDir on the passed in eth2-spec-tests directory along with its path.
func UnmarshalYaml ¶
UnmarshalYaml using a customized json encoder that supports "spec-name" override tag.
Types ¶
type BlockGenConfig ¶
type BlockGenConfig struct { NumProposerSlashings uint64 NumAttesterSlashings uint64 NumAttestations uint64 NumDeposits uint64 NumVoluntaryExits uint64 }
BlockGenConfig is used to define the requested conditions for block generation.
func DefaultBlockGenConfig ¶ added in v0.2.3
func DefaultBlockGenConfig() *BlockGenConfig
DefaultBlockGenConfig returns the block config that utilizes the current params in the beacon config.