From 2b4edf889a4b555c8c7f6793fa5d820e5513ecac Mon Sep 17 00:00:00 2001 From: ismaelsadeeq Date: Fri, 15 Sep 2023 16:48:36 +0100 Subject: test: check `descriptorprocesspsbt` return hex encoded tx Test that if the processed psbt is complete the hex encoded tx is returned and remove unneccessary rpc call to finalize the psbt. --- test/functional/rpc_psbt.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'test') diff --git a/test/functional/rpc_psbt.py b/test/functional/rpc_psbt.py index c01dc64df0..60df48f025 100755 --- a/test/functional/rpc_psbt.py +++ b/test/functional/rpc_psbt.py @@ -978,17 +978,22 @@ class PSBTTest(BitcoinTestFramework): test_psbt_input_keys(decoded['inputs'][0], ['witness_utxo', 'non_witness_utxo']) # Test that the psbt is not finalized and does not have bip32_derivs unless specified - psbt = self.nodes[2].descriptorprocesspsbt(psbt=psbt, descriptors=[descriptor], sighashtype="ALL", bip32derivs=True, finalize=False)["psbt"] - decoded = self.nodes[2].decodepsbt(psbt) + processed_psbt = self.nodes[2].descriptorprocesspsbt(psbt=psbt, descriptors=[descriptor], sighashtype="ALL", bip32derivs=True, finalize=False) + decoded = self.nodes[2].decodepsbt(processed_psbt['psbt']) test_psbt_input_keys(decoded['inputs'][0], ['witness_utxo', 'non_witness_utxo', 'partial_signatures', 'bip32_derivs']) - psbt = self.nodes[2].descriptorprocesspsbt(psbt=psbt, descriptors=[descriptor], sighashtype="ALL", bip32derivs=False, finalize=True)["psbt"] - decoded = self.nodes[2].decodepsbt(psbt) + # If psbt not finalized, test that result does not have hex + assert "hex" not in processed_psbt + + processed_psbt = self.nodes[2].descriptorprocesspsbt(psbt=psbt, descriptors=[descriptor], sighashtype="ALL", bip32derivs=False, finalize=True) + decoded = self.nodes[2].decodepsbt(processed_psbt['psbt']) test_psbt_input_keys(decoded['inputs'][0], ['witness_utxo', 'non_witness_utxo', 'final_scriptwitness']) + # Test psbt is complete + assert_equal(processed_psbt['complete'], True) + # Broadcast transaction - rawtx = self.nodes[2].finalizepsbt(psbt)["hex"] - self.nodes[2].sendrawtransaction(rawtx) + self.nodes[2].sendrawtransaction(processed_psbt['hex']) self.log.info("Test descriptorprocesspsbt raises if an invalid sighashtype is passed") assert_raises_rpc_error(-8, "all is not a valid sighash parameter.", self.nodes[2].descriptorprocesspsbt, psbt, [descriptor], sighashtype="all") -- cgit v1.2.3