Beispiel #1
0
def create_block_header_with_signature(
        state: BeaconState,
        body_root: Hash32,
        privkey: int,
        slots_per_epoch: int,
        parent_root: Hash32 = SAMPLE_HASH_1,
        state_root: Hash32 = SAMPLE_HASH_2) -> BeaconBlockHeader:
    block_header = BeaconBlockHeader(
        slot=state.slot,
        parent_root=parent_root,
        state_root=state_root,
        body_root=body_root,
    )
    block_header_signature = sign_transaction(
        message_hash=block_header.signing_root,
        privkey=privkey,
        state=state,
        slot=block_header.slot,
        signature_domain=SignatureDomain.DOMAIN_BEACON_PROPOSER,
        slots_per_epoch=slots_per_epoch,
    )
    return block_header.copy(signature=block_header_signature)
Beispiel #2
0
def create_block_header_with_signature(
        state: BeaconState,
        block_body_root: Hash32,
        privkey: int,
        slots_per_epoch: int,
        previous_block_root: bytes = b'\x11' * 32,
        state_root: bytes = b'\x22' * 32) -> BeaconBlockHeader:
    block_header = BeaconBlockHeader(
        slot=state.slot,
        previous_block_root=previous_block_root,
        state_root=state_root,
        block_body_root=block_body_root,
    )
    block_header_signature = sign_transaction(
        message_hash=block_header.signed_root,
        privkey=privkey,
        fork=state.fork,
        slot=block_header.slot,
        signature_domain=SignatureDomain.DOMAIN_BEACON_BLOCK,
        slots_per_epoch=slots_per_epoch,
    )
    return block_header.copy(signature=block_header_signature)