6
6
from test_framework .test_framework import BitcoinTestFramework
7
7
from test_framework .util import *
8
8
9
- class WalletTest (BitcoinTestFramework ):
9
+ class WalletTest (BitcoinTestFramework ):
10
10
11
11
def check_fee_amount (self , curr_balance , balance_with_fee , fee_per_byte , tx_size ):
12
12
"""Return curr_balance after asserting the fee was in range"""
@@ -28,7 +28,7 @@ def setup_network(self, split=False):
28
28
self .is_network_split = False
29
29
self .sync_all ()
30
30
31
- def run_test (self ):
31
+ def run_test (self ):
32
32
33
33
# Check that there's no UTXO on none of the nodes
34
34
assert_equal (len (self .nodes [0 ].listunspent ()), 0 )
@@ -52,13 +52,33 @@ def run_test (self):
52
52
assert_equal (self .nodes [2 ].getbalance (), 0 )
53
53
54
54
# Check that only first and second nodes have UTXOs
55
- assert_equal (len (self .nodes [0 ].listunspent ()), 1 )
55
+ utxos = self .nodes [0 ].listunspent ()
56
+ assert_equal (len (utxos ), 1 )
56
57
assert_equal (len (self .nodes [1 ].listunspent ()), 1 )
57
58
assert_equal (len (self .nodes [2 ].listunspent ()), 0 )
58
59
59
60
# Send 21 BTC from 0 to 2 using sendtoaddress call.
60
61
self .nodes [0 ].sendtoaddress (self .nodes [2 ].getnewaddress (), 11 )
61
- self .nodes [0 ].sendtoaddress (self .nodes [2 ].getnewaddress (), 10 )
62
+ mempool_txid = self .nodes [0 ].sendtoaddress (self .nodes [2 ].getnewaddress (), 10 )
63
+
64
+ self .log .info ("test gettxout" )
65
+ # utxo spent in mempool should be visible if you exclude mempool
66
+ # but invisible if you include mempool
67
+ confirmed_txid , confirmed_index = utxos [0 ]["txid" ], utxos [0 ]["vout" ]
68
+ txout = self .nodes [0 ].gettxout (confirmed_txid , confirmed_index , False )
69
+ assert_equal (txout ['value' ], 50 )
70
+ txout = self .nodes [0 ].gettxout (confirmed_txid , confirmed_index , True )
71
+ assert txout is None
72
+ # new utxo from mempool should be invisible if you exclude mempool
73
+ # but visible if you include mempool
74
+ txout = self .nodes [0 ].gettxout (mempool_txid , 0 , False )
75
+ assert txout is None
76
+ txout1 = self .nodes [0 ].gettxout (mempool_txid , 0 , True )
77
+ txout2 = self .nodes [0 ].gettxout (mempool_txid , 1 , True )
78
+ # note the mempool tx will have randomly assigned indices
79
+ # but 10 will go to node2 and the rest will go to node0
80
+ balance = self .nodes [0 ].getbalance ()
81
+ assert_equal (set ([txout1 ['value' ], txout2 ['value' ]]), set ([10 , balance ]))
62
82
63
83
walletinfo = self .nodes [0 ].getwalletinfo ()
64
84
assert_equal (walletinfo ['immature_balance' ], 0 )
0 commit comments