From a7d8221a612ee4c0d5eae14bbc00274f25ec7ea4 Mon Sep 17 00:00:00 2001 From: "Peter D. Gray" Date: Tue, 4 Sep 2018 09:51:21 -0400 Subject: [PATCH] Add an example multisig, which we can't handle --- testing/data/multisig-single.psbt | 1 + testing/test_sign.py | 12 ++++++++++++ 2 files changed, 13 insertions(+) create mode 100644 testing/data/multisig-single.psbt diff --git a/testing/data/multisig-single.psbt b/testing/data/multisig-single.psbt new file mode 100644 index 00000000..6a3b4409 --- /dev/null +++ b/testing/data/multisig-single.psbt @@ -0,0 +1 @@ +70736274ff01007302000000012fc4fac8b343981364e270bae1e8bb6ad78da1f27807d5ffc3678e70c275ac4a0000000000fdffffff0200ca9a3b0000000017a914fdc87e93522247f15b17755ec8f27f9ca400b9ed87e8b99a3b0000000017a914461a69d96f14f5ea5565feb61ba8231605b4ec16872f02000000010120009435770000000017a91412bf0c38957c048a37feeee6184f56a3b646eba187220203d9a72f5252348b8fc0bb10150862cf1f70899ee52545570dfaae6463086453ed47304402203b8b219035b14a8ba95bf94f228183e952a5a3055b41044bf477ec016ba4116202202c3d48321eda15ae266d67ef2f3c31fee13842c8800e84746fe1d38d37f4b93501220202cd81dda2797578f927344d6654b12418de39c5057545af4629410320d514319547304402201a306afddf56585903c16b0c9152dda39d3cacfbe4009075fbaea116c376bd1e02203e0c7383c809b45586982a6cbbd62500db7aef4702076c75f616ec2b42b2dae0010104220020fa6f79eac3da0545ff013b107b59dae08eeb75c2e9cd47f2f0d03d2c5f3c4cbf010547522103d9a72f5252348b8fc0bb10150862cf1f70899ee52545570dfaae6463086453ed2102cd81dda2797578f927344d6654b12418de39c5057545af4629410320d514319552ae220602cd81dda2797578f927344d6654b12418de39c5057545af4629410320d5143195188038ecd92c00008000000080000000800000000000000000220603d9a72f5252348b8fc0bb10150862cf1f70899ee52545570dfaae6463086453ed100595c3060000008000000080aa050080000000 \ No newline at end of file diff --git a/testing/test_sign.py b/testing/test_sign.py index de940b6c..d46e7dd7 100644 --- a/testing/test_sign.py +++ b/testing/test_sign.py @@ -752,5 +752,17 @@ def test_change_p2sh_p2wpkh(start_sign, end_sign, check_against_bitcoind, cap_st signed = end_sign(True) +def test_sign_multisig_partial_fail(start_sign, end_sign): + + # file from AChow, via slack: a partially signed multisig setup (which we can't handle) + fn = 'data/multisig-single.psbt' + + psbt = a2b_hex(open(fn, 'rb').read()) + + with pytest.raises(CCProtoError) as ee: + start_sign(psbt, finalize=True) + signed = end_sign(accept=True) + assert 'looks completely signed' in str(ee) + # EOF