Add testing helpers
This commit is contained in:
parent
3aba05e252
commit
db29250256
|
@ -0,0 +1,37 @@
|
||||||
|
from eth2spec.test.helpers.keys import privkeys
|
||||||
|
from eth2spec.utils.bls import (
|
||||||
|
bls_aggregate_signatures,
|
||||||
|
bls_sign,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def sign_shard_attestation(spec, shard_state, beacon_state, block, participants):
|
||||||
|
signatures = []
|
||||||
|
message_hash = block.core.parent_root
|
||||||
|
block_epoch = spec.compute_epoch_of_shard_slot(block.core.slot)
|
||||||
|
for validator_index in participants:
|
||||||
|
privkey = privkeys[validator_index]
|
||||||
|
signatures.append(
|
||||||
|
get_attestation_signature(
|
||||||
|
spec,
|
||||||
|
shard_state,
|
||||||
|
beacon_state,
|
||||||
|
message_hash,
|
||||||
|
block_epoch,
|
||||||
|
privkey,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
return bls_aggregate_signatures(signatures)
|
||||||
|
|
||||||
|
|
||||||
|
def get_attestation_signature(spec, shard_state, beacon_state, message_hash, block_epoch, privkey):
|
||||||
|
return bls_sign(
|
||||||
|
message_hash=message_hash,
|
||||||
|
privkey=privkey,
|
||||||
|
domain=spec.get_domain(
|
||||||
|
state=beacon_state,
|
||||||
|
domain_type=spec.DOMAIN_SHARD_ATTESTER,
|
||||||
|
message_epoch=block_epoch,
|
||||||
|
)
|
||||||
|
)
|
Loading…
Reference in New Issue