aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorfanquake <fanquake@gmail.com>2020-01-04 17:43:11 +0800
committerfanquake <fanquake@gmail.com>2020-01-04 18:31:39 +0800
commitfebf04841fd94429ad13c9c1548bd052cdf82833 (patch)
treed76fab00be071d671a69447ec73453ed4d70af1f /test
parent310b29f9c326a14060c3c0b0561cd59af7d3c1e5 (diff)
parentca5f8deefd778195cb10a3419d3b5c0693abb958 (diff)
downloadbitcoin-febf04841fd94429ad13c9c1548bd052cdf82833.tar.xz
Merge #17853: [0.19] psbt: handle unspendable psbts
ca5f8deefd778195cb10a3419d3b5c0693abb958 Mark PSBTs spending unspendable outputs as invalid in analysis (Andrew Chow) 551583398ba4fdae973c047bc60556ffa17c6431 Have a PSBTAnalysis state that indicates invalid PSBT (Andrew Chow) Pull request description: Backport of #17524 ACKs for top commit: achow101: ACK ca5f8deefd778195cb10a3419d3b5c0693abb958 Tree-SHA512: b5f2b951beb9477ac3176a0aade845654d2108ca3a9fbc72097ba4b4797df5419053d6b489bbaa03be08cb8cfdc37a83db8b7642ffa52d42b7aa8ea14aff39cc
Diffstat (limited to 'test')
-rwxr-xr-xtest/functional/rpc_psbt.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/test/functional/rpc_psbt.py b/test/functional/rpc_psbt.py
index 61572654e0..57333955b2 100755
--- a/test/functional/rpc_psbt.py
+++ b/test/functional/rpc_psbt.py
@@ -416,5 +416,10 @@ class PSBTTest(BitcoinTestFramework):
analyzed = self.nodes[0].analyzepsbt(signed)
assert analyzed['inputs'][0]['has_utxo'] and analyzed['inputs'][0]['is_final'] and analyzed['next'] == 'extractor'
+ self.log.info("PSBT spending unspendable outputs should have error message and Creator as next")
+ analysis = self.nodes[0].analyzepsbt('cHNidP8BAJoCAAAAAljoeiG1ba8MI76OcHBFbDNvfLqlyHV5JPVFiHuyq911AAAAAAD/////g40EJ9DsZQpoqka7CwmK6kQiwHGyyng1Kgd5WdB86h0BAAAAAP////8CcKrwCAAAAAAWAEHYXCtx0AYLCcmIauuBXlCZHdoSTQDh9QUAAAAAFv8/wADXYP/7//////8JxOh0LR2HAI8AAAAAAAEBIADC6wsAAAAAF2oUt/X69ELjeX2nTof+fZ10l+OyAokDAQcJAwEHEAABAACAAAEBIADC6wsAAAAAF2oUt/X69ELjeX2nTof+fZ10l+OyAokDAQcJAwEHENkMak8AAAAA')
+ assert_equal(analysis['next'], 'creator')
+ assert_equal(analysis['error'], 'PSBT is not valid. Input 0 spends unspendable output')
+
if __name__ == '__main__':
PSBTTest().main()