aboutsummaryrefslogtreecommitdiff
path: root/test/functional/rpc_psbt.py
diff options
context:
space:
mode:
authorismaelsadeeq <ask4ismailsadiq@gmail.com>2023-09-15 16:48:36 +0100
committerismaelsadeeq <ask4ismailsadiq@gmail.com>2023-09-15 16:48:36 +0100
commit2b4edf889a4b555c8c7f6793fa5d820e5513ecac (patch)
treeb57ce6c701e526a1c40e199135b469861a6b7177 /test/functional/rpc_psbt.py
parentc405207a18fdee75a4dea470bb0d13e59e15ce45 (diff)
downloadbitcoin-2b4edf889a4b555c8c7f6793fa5d820e5513ecac.tar.xz
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.
Diffstat (limited to 'test/functional/rpc_psbt.py')
-rwxr-xr-xtest/functional/rpc_psbt.py17
1 files changed, 11 insertions, 6 deletions
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")