def mk_vote(validator_index, target_hash, target_epoch, source_epoch, privkey): sighash = utils.sha3( rlp.encode([validator_index, target_hash, target_epoch, source_epoch]) ) v, r, s = utils.ecdsa_raw_sign(sighash, privkey) sig = utils.encode_int32(v) + utils.encode_int32(r) + utils.encode_int32(s) return rlp.encode([validator_index, target_hash, target_epoch, source_epoch, sig])
def mk_prepare(epoch, hash, ancestry_hash, source_epoch, source_ancestry_hash, key): sighash = utils.sha3( rlp.encode( [epoch, hash, ancestry_hash, source_epoch, source_ancestry_hash])) v, r, s = utils.ecdsa_raw_sign(sighash, key) sig = utils.encode_int32(v) + utils.encode_int32(r) + utils.encode_int32(s) return rlp.encode( [epoch, hash, ancestry_hash, source_epoch, source_ancestry_hash, sig])
def generate_transaction_hash() -> str: (private_key, public_key, sender) = generate_eth_account() recipient = generate_eth_account(only_address=True) transaction = { 'to': '0x%s' % recipient, 'value': 0, 'gas': 1000000, 'gasPrice': 1000000000, 'nonce': 0, 'chainId': 1 } signature = utils.ecdsa_raw_sign(utils.sha3(transaction), private_key) return utils.sha3rlp(signature).hex()
def mk_logout(validator_index, epoch, key): sighash = utils.sha3(rlp.encode([validator_index, epoch])) v, r, s = utils.ecdsa_raw_sign(sighash, key) sig = utils.encode_int32(v) + utils.encode_int32(r) + utils.encode_int32(s) return rlp.encode([validator_index, epoch, sig])
def mk_status_flicker(validator_index, epoch, login, key): sighash = utils.sha3(rlp.encode([validator_index, epoch, login])) v, r, s = utils.ecdsa_raw_sign(sighash, key) sig = utils.encode_int32(v) + utils.encode_int32(r) + utils.encode_int32(s) return rlp.encode([validator_index, epoch, login, sig])
def mk_commit(epoch, hash, key): sighash = utils.sha3(rlp.encode([epoch, hash])) v, r, s = utils.ecdsa_raw_sign(sighash, key) sig = utils.encode_int32(v) + utils.encode_int32(r) + utils.encode_int32(s) return rlp.encode([epoch, hash, sig])
def mk_prepare(validator_index, epoch, ancestry_hash, source_epoch, source_ancestry_hash, key): sighash = utils.sha3(rlp.encode([validator_index, epoch, ancestry_hash, source_epoch, source_ancestry_hash])) v, r, s = utils.ecdsa_raw_sign(sighash, key) sig = utils.encode_int32(v) + utils.encode_int32(r) + utils.encode_int32(s) return rlp.encode([validator_index, epoch, ancestry_hash, source_epoch, source_ancestry_hash, sig])