Skip to content

Commit fab6a0a

Browse files
author
MarcoFalke
committed
test: Add test that addmultisigaddress fails for watchonly addresses
1 parent fad81d8 commit fab6a0a

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

test/functional/rpc_createmultisig.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
"""Test multisig RPCs"""
66

77
from test_framework.test_framework import BitcoinTestFramework
8+
from test_framework.util import (
9+
assert_raises_rpc_error,
10+
)
811
import decimal
912

1013

@@ -26,7 +29,9 @@ def get_keys(self):
2629
def run_test(self):
2730
node0, node1, node2 = self.nodes
2831

29-
# 50 BTC each, rest will be 25 BTC each
32+
self.check_addmultisigaddress_errors()
33+
34+
self.log.info('Generating blocks ...')
3035
node0.generate(149)
3136
self.sync_all()
3237

@@ -39,6 +44,15 @@ def run_test(self):
3944

4045
self.checkbalances()
4146

47+
def check_addmultisigaddress_errors(self):
48+
self.log.info('Check that addmultisigaddress fails when the private keys are missing')
49+
addresses = [self.nodes[1].getnewaddress(address_type='legacy') for _ in range(2)]
50+
assert_raises_rpc_error(-5, 'no full public key for address', lambda: self.nodes[0].addmultisigaddress(nrequired=1, keys=addresses))
51+
for a in addresses:
52+
# Importing all addresses should not change the result
53+
self.nodes[0].importaddress(a)
54+
assert_raises_rpc_error(-5, 'no full public key for address', lambda: self.nodes[0].addmultisigaddress(nrequired=1, keys=addresses))
55+
4256
def checkbalances(self):
4357
node0, node1, node2 = self.nodes
4458
node0.generate(100)

0 commit comments

Comments
 (0)