@ -4,8 +4,18 @@
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
""" Test the fundrawtransaction RPC. """
from decimal import Decimal
from test_framework . test_framework import BitcoinTestFramework
from test_framework . util import *
from test_framework . util import (
assert_equal ,
assert_fee_amount ,
assert_greater_than ,
assert_greater_than_or_equal ,
assert_raises_rpc_error ,
connect_nodes_bi ,
count_bytes ,
find_vout_for_address ,
)
def get_unspent ( listunspent , amount ) :
@ -57,6 +67,11 @@ class RawTransactionsTest(BitcoinTestFramework):
watchonly_amount = Decimal ( 200 )
self . nodes [ 3 ] . importpubkey ( watchonly_pubkey , " " , True )
watchonly_txid = self . nodes [ 0 ] . sendtoaddress ( watchonly_address , watchonly_amount )
# Lock UTXO so nodes[0] doesn't accidentally spend it
watchonly_vout = find_vout_for_address ( self . nodes [ 0 ] , watchonly_txid , watchonly_address )
self . nodes [ 0 ] . lockunspent ( False , [ { " txid " : watchonly_txid , " vout " : watchonly_vout } ] )
self . nodes [ 0 ] . sendtoaddress ( self . nodes [ 3 ] . getnewaddress ( ) , watchonly_amount / 10 )
self . nodes [ 0 ] . sendtoaddress ( self . nodes [ 2 ] . getnewaddress ( ) , 1.5 )
@ -472,6 +487,9 @@ class RawTransactionsTest(BitcoinTestFramework):
connect_nodes_bi ( self . nodes , 1 , 2 )
connect_nodes_bi ( self . nodes , 0 , 2 )
connect_nodes_bi ( self . nodes , 0 , 3 )
# Again lock the watchonly UTXO or nodes[0] may spend it, because
# lockunspent is memory-only and thus lost on restart
self . nodes [ 0 ] . lockunspent ( False , [ { " txid " : watchonly_txid , " vout " : watchonly_vout } ] )
self . sync_all ( )
# drain the keypool