def sign_transaction(*, message_hash: Hash32, privkey: int, state: BeaconState, slot: Slot, signature_domain: SignatureDomain, slots_per_epoch: int) -> BLSSignature:
    domain = get_domain(state, signature_domain, slots_per_epoch, message_epoch=compute_epoch_of_slot(slot, slots_per_epoch))
    return bls.sign(message_hash=message_hash, privkey=privkey, domain=domain)
def sign_transaction(*, message_hash: Hash32, privkey: int, state: BeaconState, slot: Slot, signature_domain: SignatureDomain, slots_per_epoch: int) -> BLSSignature:
    domain = get_domain(state, signature_domain, slots_per_epoch, message_epoch=compute_epoch_of_slot(slot, slots_per_epoch))
    return bls.sign(message_hash=message_hash, privkey=privkey, domain=domain)