def test_stealth_tx_outputs(self): nonce = int('deadbeef', 16) value = 10**8 outputs = bc.mk_stealth_tx_outputs(self.addr, value, self.ephem_priv, nonce) self.assertEqual(outputs[0]['value'], 0) self.assertEqual(outputs[0]['script'], '6a2606deadbeef' + self.ephem_pub) self.assertEqual(outputs[1]['address'], bc.pubkey_to_address(self.pay_pub)) self.assertEqual(outputs[1]['value'], value) outputs = bc.mk_stealth_tx_outputs(self.testnet_addr, value, self.ephem_priv, nonce, 'testnet') self.assertEqual(outputs[0]['value'], 0) self.assertEqual(outputs[0]['script'], '6a2606deadbeef' + self.ephem_pub) self.assertEqual(outputs[1]['address'], bc.pubkey_to_address(self.pay_pub, 111)) self.assertEqual(outputs[1]['value'], value) self.assertRaises(Exception, bc.mk_stealth_tx_outputs, self.testnet_addr, value, self.ephem_priv, nonce, 'btc') self.assertRaises(Exception, bc.mk_stealth_tx_outputs, self.addr, value, self.ephem_priv, nonce, 'testnet')
def simple_tx_inputs_outputs(from_addr, from_addr_unspent, to_addr, amount_to_send, txfee): if get_address_network_type(from_addr) != get_address_network_type( to_addr): raise Exception('Attempting to create transaction between networks!') selected_unspent = bc.select(from_addr_unspent, amount_to_send + txfee) selected_unspent_bal = get_balance(selected_unspent) changeval = selected_unspent_bal - amount_to_send - txfee if to_addr[0] == 'v' or to_addr[0] == 'w': # stealth ephem_privkey = bc.random_key() nonce = int(bc.random_key()[:8], 16) if to_addr[0] == 'v': #network = 'btc' raise Exception( 'Stealth address payments only supported on testnet at this time.' ) else: network = 'testnet' tx_outs = bc.mk_stealth_tx_outputs(to_addr, amount_to_send, ephem_privkey, nonce, network) else: tx_outs = [{'value': amount_to_send, 'address': to_addr}] if changeval > 0: tx_outs.append({'value': changeval, 'address': from_addr}) return selected_unspent, tx_outs
def simple_tx_inputs_outputs(from_addr, from_addr_unspent, to_addr, amount_to_send, txfee): if get_address_network_type(from_addr) != get_address_network_type(to_addr): raise Exception('Attempting to create transaction between networks!') selected_unspent = bc.select(from_addr_unspent, amount_to_send+txfee) selected_unspent_bal = get_balance(selected_unspent) changeval = selected_unspent_bal - amount_to_send - txfee if to_addr[0] == 'v' or to_addr[0] == 'w': # stealth ephem_privkey = bc.random_key() nonce = int(bc.random_key()[:8],16) if to_addr[0] == 'v': #network = 'btc' raise Exception('Stealth address payments only supported on testnet at this time.') else: network = 'testnet' tx_outs = bc.mk_stealth_tx_outputs(to_addr, amount_to_send, ephem_privkey, nonce, network) else: tx_outs = [{'value' : amount_to_send, 'address' : to_addr}] if changeval > 0: tx_outs.append({'value' : changeval, 'address' : from_addr}) return selected_unspent, tx_outs