2
2
# Copyright (c) 2015-2017 The Bitcoin Core developers
3
3
# Distributed under the MIT software license, see the accompanying
4
4
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
5
- """Test transaction signing using the signrawtransactionwithwallet RPC ."""
5
+ """Test transaction signing using the signrawtransaction* RPCs ."""
6
6
7
7
from test_framework .test_framework import BitcoinTestFramework
8
8
from test_framework .util import *
@@ -12,6 +12,7 @@ class SignRawTransactionsTest(BitcoinTestFramework):
12
12
def set_test_params (self ):
13
13
self .setup_clean_chain = True
14
14
self .num_nodes = 1
15
+ self .extra_args = [["-deprecatedrpc=signrawtransaction" ]]
15
16
16
17
def successful_signing_test (self ):
17
18
"""Create and sign a valid raw transaction with one input.
@@ -36,12 +37,15 @@ def successful_signing_test(self):
36
37
rawTxSigned = self .nodes [0 ].signrawtransactionwithkey (rawTx , privKeys , inputs )
37
38
38
39
# 1) The transaction has a complete set of signatures
39
- assert 'complete' in rawTxSigned
40
- assert_equal (rawTxSigned ['complete' ], True )
40
+ assert rawTxSigned ['complete' ]
41
41
42
42
# 2) No script verification error occurred
43
43
assert 'errors' not in rawTxSigned
44
44
45
+ # Perform the same test on signrawtransaction
46
+ rawTxSigned2 = self .nodes [0 ].signrawtransaction (rawTx , inputs , privKeys )
47
+ assert_equal (rawTxSigned , rawTxSigned2 )
48
+
45
49
def script_verification_error_test (self ):
46
50
"""Create and sign a raw transaction with valid (vin 0), invalid (vin 1) and one missing (vin 2) input script.
47
51
@@ -87,8 +91,7 @@ def script_verification_error_test(self):
87
91
rawTxSigned = self .nodes [0 ].signrawtransactionwithkey (rawTx , privKeys , scripts )
88
92
89
93
# 3) The transaction has no complete set of signatures
90
- assert 'complete' in rawTxSigned
91
- assert_equal (rawTxSigned ['complete' ], False )
94
+ assert not rawTxSigned ['complete' ]
92
95
93
96
# 4) Two script verification errors occurred
94
97
assert 'errors' in rawTxSigned
@@ -109,14 +112,17 @@ def script_verification_error_test(self):
109
112
assert_equal (rawTxSigned ['errors' ][1 ]['vout' ], inputs [2 ]['vout' ])
110
113
assert not rawTxSigned ['errors' ][0 ]['witness' ]
111
114
115
+ # Perform same test with signrawtransaction
116
+ rawTxSigned2 = self .nodes [0 ].signrawtransaction (rawTx , scripts , privKeys )
117
+ assert_equal (rawTxSigned , rawTxSigned2 )
118
+
112
119
# Now test signing failure for transaction with input witnesses
113
120
p2wpkh_raw_tx = "01000000000102fff7f7881a8099afa6940d42d1e7f6362bec38171ea3edf433541db4e4ad969f00000000494830450221008b9d1dc26ba6a9cb62127b02742fa9d754cd3bebf337f7a55d114c8e5cdd30be022040529b194ba3f9281a99f2b1c0a19c0489bc22ede944ccf4ecbab4cc618ef3ed01eeffffffef51e1b804cc89d182d279655c3aa89e815b1b309fe287d9b2b55d57b90ec68a0100000000ffffffff02202cb206000000001976a9148280b37df378db99f66f85c95a783a76ac7a6d5988ac9093510d000000001976a9143bde42dbee7e4dbe6a21b2d50ce2f0167faa815988ac000247304402203609e17b84f6a7d30c80bfa610b5b4542f32a8a0d5447a12fb1366d7f01cc44a0220573a954c4518331561406f90300e8f3358f51928d43c212a8caed02de67eebee0121025476c2e83188368da1ff3e292e7acafcdb3566bb0ad253f62fc70f07aeee635711000000"
114
121
115
122
rawTxSigned = self .nodes [0 ].signrawtransactionwithwallet (p2wpkh_raw_tx )
116
123
117
124
# 7) The transaction has no complete set of signatures
118
- assert 'complete' in rawTxSigned
119
- assert_equal (rawTxSigned ['complete' ], False )
125
+ assert not rawTxSigned ['complete' ]
120
126
121
127
# 8) Two script verification errors occurred
122
128
assert 'errors' in rawTxSigned
@@ -134,6 +140,10 @@ def script_verification_error_test(self):
134
140
assert_equal (rawTxSigned ['errors' ][1 ]['witness' ], ["304402203609e17b84f6a7d30c80bfa610b5b4542f32a8a0d5447a12fb1366d7f01cc44a0220573a954c4518331561406f90300e8f3358f51928d43c212a8caed02de67eebee01" , "025476c2e83188368da1ff3e292e7acafcdb3566bb0ad253f62fc70f07aeee6357" ])
135
141
assert not rawTxSigned ['errors' ][0 ]['witness' ]
136
142
143
+ # Perform same test with signrawtransaction
144
+ rawTxSigned2 = self .nodes [0 ].signrawtransaction (p2wpkh_raw_tx )
145
+ assert_equal (rawTxSigned , rawTxSigned2 )
146
+
137
147
def run_test (self ):
138
148
self .successful_signing_test ()
139
149
self .script_verification_error_test ()
0 commit comments