prysm-pulse/shared/interop/generate_genesis_state_test.go

35 lines
1.3 KiB
Go
Raw Normal View History

package interop_test
import (
"testing"
eth "github.com/prysmaticlabs/ethereumapis/eth/v1alpha1"
"github.com/prysmaticlabs/prysm/beacon-chain/core/state"
"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(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())
}