2018-12-17 18:03:53 +00:00
|
|
|
import
|
2019-01-23 18:45:15 +00:00
|
|
|
confutils,
|
2018-12-27 23:40:22 +00:00
|
|
|
../beacon_chain/[extras, ssz],
|
2020-01-18 09:20:03 +00:00
|
|
|
../beacon_chain/spec/[beaconstate, datatypes, digest],
|
|
|
|
../tests/testblockutil
|
2018-12-17 18:03:53 +00:00
|
|
|
|
2018-12-27 20:14:37 +00:00
|
|
|
proc stateSize(deposits: int, maxContent = false) =
|
2019-07-10 12:23:02 +00:00
|
|
|
var state = initialize_beacon_state_from_eth1(
|
2019-09-02 10:31:14 +00:00
|
|
|
Eth2Digest(), 0,
|
2020-03-05 12:52:10 +00:00
|
|
|
makeInitialDeposits(deposits, {skipBLSValidation}), {skipBLSValidation})
|
2018-12-17 18:03:53 +00:00
|
|
|
|
2018-12-27 20:14:37 +00:00
|
|
|
if maxContent:
|
2019-03-22 18:33:12 +00:00
|
|
|
# TODO: state.latest_attestations was removed
|
|
|
|
# in https://github.com/status-im/nim-beacon-chain/pull/195
|
|
|
|
raise newException(ValueError, "Not supported at the moment")
|
|
|
|
|
|
|
|
# # TODO verify this is correct, but generally we collect up to two epochs
|
|
|
|
# # of attestations, and each block has a cap on the number of
|
|
|
|
# # attestations it may hold, so we'll just add so many of them
|
|
|
|
# state.latest_attestations.setLen(MAX_ATTESTATIONS * SLOTS_PER_EPOCH * 2)
|
|
|
|
# let
|
|
|
|
# crosslink_committees = get_crosslink_committees_at_slot(state, 0.Slot)
|
|
|
|
# validatorsPerCommittee =
|
|
|
|
# len(crosslink_committees[0].committee) # close enough..
|
|
|
|
# for a in state.latest_attestations.mitems():
|
2019-07-03 07:35:05 +00:00
|
|
|
# a.aggregation_bits = BitSeq.init(validatorsPerCommittee)
|
2019-03-12 13:38:58 +00:00
|
|
|
echo "Validators: ", deposits, ", total: ", SSZ.encode(state).len
|
2018-12-17 18:03:53 +00:00
|
|
|
|
2018-12-27 20:14:37 +00:00
|
|
|
dispatch(stateSize)
|