Skip to content

Commit 8c19d13

Browse files
committed
refactor: dedup/reorg createrawtransaction sequence number tests
1 parent 7f07359 commit 8c19d13

File tree

1 file changed

+13
-23
lines changed

1 file changed

+13
-23
lines changed

test/functional/rpc_rawtransaction.py

Lines changed: 13 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,19 @@ def run_test(self):
105105
assert_raises_rpc_error(-8, "Invalid parameter, missing vout key", self.nodes[0].createrawtransaction, [{'txid': txid}], {})
106106
assert_raises_rpc_error(-8, "Invalid parameter, missing vout key", self.nodes[0].createrawtransaction, [{'txid': txid, 'vout': 'foo'}], {})
107107
assert_raises_rpc_error(-8, "Invalid parameter, vout cannot be negative", self.nodes[0].createrawtransaction, [{'txid': txid, 'vout': -1}], {})
108-
assert_raises_rpc_error(-8, "Invalid parameter, sequence number is out of range", self.nodes[0].createrawtransaction, [{'txid': txid, 'vout': 0, 'sequence': -1}], {})
108+
# sequence number out of range
109+
for invalid_seq in [-1, 4294967296]:
110+
inputs = [{'txid': txid, 'vout': 1, 'sequence': invalid_seq}]
111+
outputs = {self.nodes[0].getnewaddress(): 1}
112+
assert_raises_rpc_error(-8, 'Invalid parameter, sequence number is out of range',
113+
self.nodes[0].createrawtransaction, inputs, outputs)
114+
# with valid sequence number
115+
for valid_seq in [1000, 4294967294]:
116+
inputs = [{'txid': txid, 'vout': 1, 'sequence': valid_seq}]
117+
outputs = {self.nodes[0].getnewaddress(): 1}
118+
rawtx = self.nodes[0].createrawtransaction(inputs, outputs)
119+
decrawtx = self.nodes[0].decoderawtransaction(rawtx)
120+
assert_equal(decrawtx['vin'][0]['sequence'], valid_seq)
109121

110122
# Test `createrawtransaction` invalid `outputs`
111123
address = self.nodes[0].getnewaddress()
@@ -437,28 +449,6 @@ def run_test(self):
437449
# 8. invalid parameters - supply txid and empty dict
438450
assert_raises_rpc_error(-1, "not a boolean", self.nodes[0].getrawtransaction, txId, {})
439451

440-
inputs = [ {'txid' : "1d1d4e24ed99057e84c3f80fd8fbec79ed9e1acee37da269356ecea000000000", 'vout' : 1, 'sequence' : 1000}]
441-
outputs = { self.nodes[0].getnewaddress() : 1 }
442-
rawtx = self.nodes[0].createrawtransaction(inputs, outputs)
443-
decrawtx= self.nodes[0].decoderawtransaction(rawtx)
444-
assert_equal(decrawtx['vin'][0]['sequence'], 1000)
445-
446-
# 9. invalid parameters - sequence number out of range
447-
inputs = [ {'txid' : "1d1d4e24ed99057e84c3f80fd8fbec79ed9e1acee37da269356ecea000000000", 'vout' : 1, 'sequence' : -1}]
448-
outputs = { self.nodes[0].getnewaddress() : 1 }
449-
assert_raises_rpc_error(-8, 'Invalid parameter, sequence number is out of range', self.nodes[0].createrawtransaction, inputs, outputs)
450-
451-
# 10. invalid parameters - sequence number out of range
452-
inputs = [ {'txid' : "1d1d4e24ed99057e84c3f80fd8fbec79ed9e1acee37da269356ecea000000000", 'vout' : 1, 'sequence' : 4294967296}]
453-
outputs = { self.nodes[0].getnewaddress() : 1 }
454-
assert_raises_rpc_error(-8, 'Invalid parameter, sequence number is out of range', self.nodes[0].createrawtransaction, inputs, outputs)
455-
456-
inputs = [ {'txid' : "1d1d4e24ed99057e84c3f80fd8fbec79ed9e1acee37da269356ecea000000000", 'vout' : 1, 'sequence' : 4294967294}]
457-
outputs = { self.nodes[0].getnewaddress() : 1 }
458-
rawtx = self.nodes[0].createrawtransaction(inputs, outputs)
459-
decrawtx= self.nodes[0].decoderawtransaction(rawtx)
460-
assert_equal(decrawtx['vin'][0]['sequence'], 4294967294)
461-
462452
####################################
463453
# TRANSACTION VERSION NUMBER TESTS #
464454
####################################

0 commit comments

Comments
 (0)