2
2
# Copyright (c) 2016-2019 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 RPC commands for signing and verifying messages ."""
5
+ """Test RPC commands for signing messages with private key ."""
6
6
7
7
from test_framework .test_framework import BitcoinTestFramework
8
8
from test_framework .util import (
9
9
assert_equal ,
10
10
assert_raises_rpc_error ,
11
11
)
12
12
13
- class SignMessagesTest (BitcoinTestFramework ):
13
+ class SignMessagesWithPrivTest (BitcoinTestFramework ):
14
14
def set_test_params (self ):
15
15
self .setup_clean_chain = True
16
16
self .num_nodes = 1
17
- self .extra_args = [["-addresstype=legacy" ]]
18
-
19
- def skip_test_if_missing_module (self ):
20
- self .skip_if_no_wallet ()
21
17
22
18
def run_test (self ):
23
19
message = 'This is just a test message'
@@ -30,33 +26,20 @@ def run_test(self):
30
26
assert_equal (expected_signature , signature )
31
27
assert self .nodes [0 ].verifymessage (address , signature , message )
32
28
33
- self .log .info ('test signing with an address with wallet' )
34
- address = self .nodes [0 ].getnewaddress ()
35
- signature = self .nodes [0 ].signmessage (address , message )
36
- assert self .nodes [0 ].verifymessage (address , signature , message )
37
-
38
- self .log .info ('test verifying with another address should not work' )
39
- other_address = self .nodes [0 ].getnewaddress ()
40
- other_signature = self .nodes [0 ].signmessage (other_address , message )
41
- assert not self .nodes [0 ].verifymessage (other_address , signature , message )
42
- assert not self .nodes [0 ].verifymessage (address , other_signature , message )
43
-
44
29
self .log .info ('test parameter validity and error codes' )
45
- # signmessage(withprivkey) have two required parameters
30
+ # signmessagewithprivkey has two required parameters
46
31
for num_params in [0 , 1 , 3 , 4 , 5 ]:
47
32
param_list = ["dummy" ]* num_params
48
33
assert_raises_rpc_error (- 1 , "signmessagewithprivkey" , self .nodes [0 ].signmessagewithprivkey , * param_list )
49
- assert_raises_rpc_error (- 1 , "signmessage" , self .nodes [0 ].signmessage , * param_list )
50
34
# verifymessage has three required parameters
51
35
for num_params in [0 , 1 , 2 , 4 , 5 ]:
52
36
param_list = ["dummy" ]* num_params
53
37
assert_raises_rpc_error (- 1 , "verifymessage" , self .nodes [0 ].verifymessage , * param_list )
54
38
# invalid key or address provided
55
39
assert_raises_rpc_error (- 5 , "Invalid private key" , self .nodes [0 ].signmessagewithprivkey , "invalid_key" , message )
56
- assert_raises_rpc_error (- 5 , "Invalid address" , self .nodes [0 ].signmessage , "invalid_addr" , message )
57
40
assert_raises_rpc_error (- 5 , "Invalid address" , self .nodes [0 ].verifymessage , "invalid_addr" , signature , message )
58
41
# malformed signature provided
59
- assert_raises_rpc_error (- 3 , "Malformed base64 encoding" , self .nodes [0 ].verifymessage , self . nodes [ 0 ]. getnewaddress () , "invalid_sig" , message )
42
+ assert_raises_rpc_error (- 3 , "Malformed base64 encoding" , self .nodes [0 ].verifymessage , 'mpLQjfK79b7CCV4VMJWEWAj5Mpx8Up5zxB' , "invalid_sig" , message )
60
43
61
44
if __name__ == '__main__' :
62
- SignMessagesTest ().main ()
45
+ SignMessagesWithPrivTest ().main ()
0 commit comments