mirror of
https://github.com/OffchainLabs/prysm.git
synced 2026-01-09 21:38:05 -05:00
* Add the new Fulu state with the new field * fix the hasher for the fulu state * Fix ToProto() and ToProtoUnsafe() * Add the fields as shared * Add epoch transition code * short circuit the proposer cache to use the state * Marshal the state JSON * update spectests to 1.6.0-alpha.1 * Remove deneb and electra entries from blob schedule This was cherry picked from PR #15364 and edited to remove the minimal cases * Fix minimal tests * Increase deadling for processing blocks in spectests * Preston's review * review --------- Co-authored-by: terence tsao <terence@prysmaticlabs.com>
56 lines
1.7 KiB
Go
56 lines
1.7 KiB
Go
package peerdas_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/OffchainLabs/prysm/v6/beacon-chain/core/peerdas"
|
|
state_native "github.com/OffchainLabs/prysm/v6/beacon-chain/state/state-native"
|
|
"github.com/OffchainLabs/prysm/v6/consensus-types/primitives"
|
|
ethpb "github.com/OffchainLabs/prysm/v6/proto/prysm/v1alpha1"
|
|
"github.com/OffchainLabs/prysm/v6/testing/require"
|
|
)
|
|
|
|
func TestValidatorsCustodyRequirement(t *testing.T) {
|
|
testCases := []struct {
|
|
name string
|
|
count uint64
|
|
expected uint64
|
|
}{
|
|
{name: "0 validators", count: 0, expected: 8},
|
|
{name: "1 validator", count: 1, expected: 8},
|
|
{name: "8 validators", count: 8, expected: 8},
|
|
{name: "9 validators", count: 9, expected: 9},
|
|
{name: "100 validators", count: 100, expected: 100},
|
|
{name: "128 validators", count: 128, expected: 128},
|
|
{name: "129 validators", count: 129, expected: 128},
|
|
{name: "1000 validators", count: 1000, expected: 128},
|
|
}
|
|
|
|
const balance = uint64(32_000_000_000)
|
|
|
|
for _, tc := range testCases {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
validators := make([]*ethpb.Validator, 0, tc.count)
|
|
for range tc.count {
|
|
validator := ðpb.Validator{
|
|
EffectiveBalance: balance,
|
|
}
|
|
|
|
validators = append(validators, validator)
|
|
}
|
|
|
|
validatorsIndex := make(map[primitives.ValidatorIndex]bool)
|
|
for i := range tc.count {
|
|
validatorsIndex[primitives.ValidatorIndex(i)] = true
|
|
}
|
|
|
|
beaconState, err := state_native.InitializeFromProtoFulu(ðpb.BeaconStateFulu{Validators: validators})
|
|
require.NoError(t, err)
|
|
|
|
actual, err := peerdas.ValidatorsCustodyRequirement(beaconState, validatorsIndex)
|
|
require.NoError(t, err)
|
|
require.Equal(t, tc.expected, actual)
|
|
})
|
|
}
|
|
}
|