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')
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
    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')