aboutsummaryrefslogtreecommitdiff
path: root/test/functional
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
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')
-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")