aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMatthew Zipkin <pinheadmz@gmail.com>2023-09-05 08:45:07 -0400
committerMatthew Zipkin <pinheadmz@gmail.com>2023-09-05 09:14:32 -0400
commite3d484b603abff69c6ebfca5cfb78cf82743d090 (patch)
tree6199abda237f58f1260184eae47d80cc476bdc38 /test
parentecab855838fa4de4c6d8c11e69037477d6047790 (diff)
wallet rpc: return final tx hex from walletprocesspsbt if complete
Diffstat (limited to 'test')
-rwxr-xr-xtest/functional/rpc_psbt.py21
1 files changed, 15 insertions, 6 deletions
diff --git a/test/functional/rpc_psbt.py b/test/functional/rpc_psbt.py
index b574a370d6..9affca43e3 100755
--- a/test/functional/rpc_psbt.py
+++ b/test/functional/rpc_psbt.py
@@ -217,12 +217,21 @@ class PSBTTest(BitcoinTestFramework):
self.nodes[0].walletpassphrase(passphrase="password", timeout=1000000)
- # Sign the transaction and send
- signed_tx = self.nodes[0].walletprocesspsbt(psbt=psbtx, finalize=False)['psbt']
- finalized_tx = self.nodes[0].walletprocesspsbt(psbt=psbtx, finalize=True)['psbt']
- assert signed_tx != finalized_tx
- final_tx = self.nodes[0].finalizepsbt(signed_tx)['hex']
- self.nodes[0].sendrawtransaction(final_tx)
+ # Sign the transaction but don't finalize
+ processed_psbt = self.nodes[0].walletprocesspsbt(psbt=psbtx, finalize=False)
+ assert "hex" not in processed_psbt
+ signed_psbt = processed_psbt['psbt']
+
+ # Finalize and send
+ finalized_hex = self.nodes[0].finalizepsbt(signed_psbt)['hex']
+ self.nodes[0].sendrawtransaction(finalized_hex)
+
+ # Alternative method: sign AND finalize in one command
+ processed_finalized_psbt = self.nodes[0].walletprocesspsbt(psbt=psbtx, finalize=True)
+ finalized_psbt = processed_finalized_psbt['psbt']
+ finalized_psbt_hex = processed_finalized_psbt['hex']
+ assert signed_psbt != finalized_psbt
+ assert finalized_psbt_hex == finalized_hex
# Manually selected inputs can be locked:
assert_equal(len(self.nodes[0].listlockunspent()), 0)