@@ -64,10 +64,11 @@ def do_import(self, timestamp):
64
64
}], {"rescan" : self .rescan in (Rescan .yes , Rescan .late_timestamp )})
65
65
assert_equal (response , [{"success" : True }])
66
66
67
- def check (self , txid = None , amount = None , confirmations = None ):
67
+ def check (self , txid = None , amount = None , confirmation_height = None ):
68
68
"""Verify that listtransactions/listreceivedbyaddress return expected values."""
69
69
70
70
txs = self .node .listtransactions (label = self .label , count = 10000 , include_watchonly = True )
71
+ current_height = self .node .getblockcount ()
71
72
assert_equal (len (txs ), self .expected_txs )
72
73
73
74
addresses = self .node .listreceivedbyaddress (minconf = 0 , include_watchonly = True , address_filter = self .address ['address' ])
@@ -82,13 +83,13 @@ def check(self, txid=None, amount=None, confirmations=None):
82
83
assert_equal (tx ["category" ], "receive" )
83
84
assert_equal (tx ["label" ], self .label )
84
85
assert_equal (tx ["txid" ], txid )
85
- assert_equal (tx ["confirmations" ], confirmations )
86
+ assert_equal (tx ["confirmations" ], 1 + current_height - confirmation_height )
86
87
assert_equal ("trusted" not in tx , True )
87
88
88
89
address , = [ad for ad in addresses if txid in ad ["txids" ]]
89
90
assert_equal (address ["address" ], self .address ["address" ])
90
91
assert_equal (address ["amount" ], self .expected_balance )
91
- assert_equal (address ["confirmations" ], confirmations )
92
+ assert_equal (address ["confirmations" ], 1 + current_height - confirmation_height )
92
93
# Verify the transaction is correctly marked watchonly depending on
93
94
# whether the transaction pays to an imported public key or
94
95
# imported private key. The test setup ensures that transaction
@@ -151,13 +152,16 @@ def run_test(self):
151
152
variant .key = self .nodes [1 ].dumpprivkey (variant .address ["address" ])
152
153
variant .initial_amount = 1 - (i + 1 ) / 64
153
154
variant .initial_txid = self .nodes [0 ].sendtoaddress (variant .address ["address" ], variant .initial_amount )
155
+ self .nodes [0 ].generate (1 ) # Generate one block for each send
156
+ variant .confirmation_height = self .nodes [0 ].getblockcount ()
157
+ variant .timestamp = self .nodes [0 ].getblockheader (self .nodes [0 ].getbestblockhash ())["time" ]
154
158
155
- # Generate a block containing the initial transactions, then another
156
- # block further in the future (past the rescan window).
157
- self .nodes [0 ].generate (1 )
159
+ # Generate a block further in the future (past the rescan window).
158
160
assert_equal (self .nodes [0 ].getrawmempool (), [])
159
- timestamp = self .nodes [0 ].getblockheader (self .nodes [0 ].getbestblockhash ())["time" ]
160
- set_node_times (self .nodes , timestamp + TIMESTAMP_WINDOW + 1 )
161
+ set_node_times (
162
+ self .nodes ,
163
+ self .nodes [0 ].getblockheader (self .nodes [0 ].getbestblockhash ())["time" ] + TIMESTAMP_WINDOW + 1 ,
164
+ )
161
165
self .nodes [0 ].generate (1 )
162
166
self .sync_all ()
163
167
@@ -167,11 +171,11 @@ def run_test(self):
167
171
self .log .info ('Run import for variant {}' .format (variant ))
168
172
expect_rescan = variant .rescan == Rescan .yes
169
173
variant .node = self .nodes [2 + IMPORT_NODES .index (ImportNode (variant .prune , expect_rescan ))]
170
- variant .do_import (timestamp )
174
+ variant .do_import (variant . timestamp )
171
175
if expect_rescan :
172
176
variant .expected_balance = variant .initial_amount
173
177
variant .expected_txs = 1
174
- variant .check (variant .initial_txid , variant .initial_amount , 2 )
178
+ variant .check (variant .initial_txid , variant .initial_amount , variant . confirmation_height )
175
179
else :
176
180
variant .expected_balance = 0
177
181
variant .expected_txs = 0
@@ -181,9 +185,9 @@ def run_test(self):
181
185
for i , variant in enumerate (IMPORT_VARIANTS ):
182
186
variant .sent_amount = 1 - (2 * i + 1 ) / 128
183
187
variant .sent_txid = self .nodes [0 ].sendtoaddress (variant .address ["address" ], variant .sent_amount )
188
+ self .nodes [0 ].generate (1 ) # Generate one block for each send
189
+ variant .confirmation_height = self .nodes [0 ].getblockcount ()
184
190
185
- # Generate a block containing the new transactions.
186
- self .nodes [0 ].generate (1 )
187
191
assert_equal (self .nodes [0 ].getrawmempool (), [])
188
192
self .sync_all ()
189
193
@@ -192,7 +196,7 @@ def run_test(self):
192
196
self .log .info ('Run check for variant {}' .format (variant ))
193
197
variant .expected_balance += variant .sent_amount
194
198
variant .expected_txs += 1
195
- variant .check (variant .sent_txid , variant .sent_amount , 1 )
199
+ variant .check (variant .sent_txid , variant .sent_amount , variant . confirmation_height )
196
200
197
201
if __name__ == "__main__" :
198
202
ImportRescanTest ().main ()
0 commit comments