From a56e9f5670136b29e48aabfc7f38569222fe4635 Mon Sep 17 00:00:00 2001 From: Oliver Gugger Date: Sat, 12 Sep 2020 17:16:23 +0200 Subject: [PATCH] test: Assert exclusive PSBT funding options Make sure the options "change_type" and "changeAddress" of the walletcreatefundedpsbt RPC cannot both be specified a the same time. --- test/functional/rpc_psbt.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/functional/rpc_psbt.py b/test/functional/rpc_psbt.py index c2e7fac7b7..2453a947cb 100755 --- a/test/functional/rpc_psbt.py +++ b/test/functional/rpc_psbt.py @@ -320,6 +320,10 @@ def run_test(self): psbtx_np2wkh = self.nodes[1].walletcreatefundedpsbt([], [small_output], 0, {"change_type":"p2sh-segwit"}) self.assert_change_type(psbtx_np2wkh, "scripthash") + # Make sure the change type cannot be specified if a change address is given + invalid_options = {"change_type":"legacy","changeAddress":self.nodes[0].getnewaddress()} + assert_raises_rpc_error(-8, "both change address and address type options", self.nodes[0].walletcreatefundedpsbt, [], [small_output], 0, invalid_options) + # Regression test for 14473 (mishandling of already-signed witness transaction): psbtx_info = self.nodes[0].walletcreatefundedpsbt([{"txid":unspent["txid"], "vout":unspent["vout"]}], [{self.nodes[2].getnewaddress():unspent["amount"]+1}], 0, {"add_inputs": True}) complete_psbt = self.nodes[0].walletprocesspsbt(psbtx_info["psbt"])