def pubkeys_to_basic_stealth_address(scan_pubkey, spend_pubkey, magic_byte=42): # magic_byte = 42 for mainnet, 43 for testnet. hex_scankey = main.encode_pubkey(scan_pubkey, 'hex_compressed') hex_spendkey = main.encode_pubkey(spend_pubkey, 'hex_compressed') hex_data = '00{0:066x}01{1:066x}0100'.format(int(hex_scankey, 16), int(hex_spendkey, 16)) addr = main.hex_to_b58check(hex_data, magic_byte) return addr
def mk_stealth_metadata_script(ephem_pubkey, nonce): op_return = '6a' msg_size = '26' version = '06' return op_return + msg_size + version + '{0:08x}'.format( nonce) + main.encode_pubkey(ephem_pubkey, 'hex_compressed')
def shared_secret_sender(scan_pubkey, ephem_privkey): shared_point = main.multiply(scan_pubkey, ephem_privkey) shared_secret = main.sha256( main.encode_pubkey(shared_point, 'bin_compressed')) return shared_secret
def shared_secret_sender(scan_pubkey, ephem_privkey): shared_point = main.multiply(scan_pubkey, ephem_privkey) shared_secret = main.sha256(main.encode_pubkey(shared_point, 'bin_compressed')) return shared_secret
def mk_stealth_metadata_script(ephem_pubkey, nonce): op_return = '6a' msg_size = '26' version = '06' return op_return + msg_size + version + '{0:08x}'.format(nonce) + main.encode_pubkey(ephem_pubkey, 'hex_compressed')