prysm-pulse/shared/interop/generate_genesis_state_test.go
Raul Jordan 5aac06f04e
Move EthereumAPIs Into Prysm (#8968)
* begin move

* use same import path

* imports

* regen protos

* regen

* no rename

* generate ssz

* gaz

* fmt

* edit build file

* imports

* modify

* remove generated files

* remove protos

* edit imports in prysm

* beacon chain all builds

* edit script

* add generated pbs

* add replace rules

* license for ethereumapis protos

* change visibility

* fmt

* update build files to gaz ignore

* use proper form

* edit imports

* wrap block

* revert scripts

* revert go mod
2021-06-02 18:49:52 -05:00

36 lines
1.3 KiB
Go

package interop_test
import (
"context"
"testing"
"github.com/prysmaticlabs/prysm/beacon-chain/core/state"
eth "github.com/prysmaticlabs/prysm/proto/eth/v1alpha1"
"github.com/prysmaticlabs/prysm/shared/interop"
"github.com/prysmaticlabs/prysm/shared/params"
"github.com/prysmaticlabs/prysm/shared/testutil/assert"
"github.com/prysmaticlabs/prysm/shared/testutil/require"
"github.com/prysmaticlabs/prysm/shared/trieutil"
)
func TestGenerateGenesisState(t *testing.T) {
numValidators := uint64(64)
privKeys, pubKeys, err := interop.DeterministicallyGenerateKeys(0 /*startIndex*/, numValidators)
require.NoError(t, err)
depositDataItems, depositDataRoots, err := interop.DepositDataFromKeys(privKeys, pubKeys)
require.NoError(t, err)
trie, err := trieutil.GenerateTrieFromItems(depositDataRoots, params.BeaconConfig().DepositContractTreeDepth)
require.NoError(t, err)
deposits, err := interop.GenerateDepositsFromData(depositDataItems, trie)
require.NoError(t, err)
root := trie.Root()
genesisState, err := state.GenesisBeaconState(context.Background(), deposits, 0, &eth.Eth1Data{
DepositRoot: root[:],
DepositCount: uint64(len(deposits)),
})
require.NoError(t, err)
want := int(numValidators)
assert.Equal(t, want, genesisState.NumValidators())
assert.Equal(t, uint64(0), genesisState.GenesisTime())
}