From 01a847f9ba7ac0b17e4bc1eeedd8dfc17c39e6a7 Mon Sep 17 00:00:00 2001 From: Jonathan Gonzalez Date: Tue, 23 Apr 2019 02:32:02 +0000 Subject: [PATCH 01/23] pkg: updated deps --- package-lock.json | 294 +++++++++++++++++++++++----------------------- package.json | 58 ++++----- 2 files changed, 176 insertions(+), 176 deletions(-) diff --git a/package-lock.json b/package-lock.json index 12f49da86..77ee8d847 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,267 +1,267 @@ { "name": "bcash", - "version": "1.1.1", + "version": "1.2.0", "lockfileVersion": 1, "requires": true, "dependencies": { "bcfg": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/bcfg/-/bcfg-0.1.5.tgz", - "integrity": "sha512-a3dJQnXbBAl9wrhcki+H21mTtMKUJfdTuOcnGhDGSUQqpiBD5+uYfEvBz3vDFvBsuRguxV6Jp8kZQGwrMLQHPQ==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/bcfg/-/bcfg-0.1.6.tgz", + "integrity": "sha512-BR2vwQZwu24aRm588XHOnPVjjQtbK8sF0RopRFgMuke63/REJMWnePTa2YHKDBefuBYiVdgkowuB1/e4K7Ue3g==", "requires": { - "bsert": "~0.0.8" + "bsert": "~0.0.10" } }, "bclient": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/bclient/-/bclient-0.1.6.tgz", - "integrity": "sha512-rn8vriv1krI0rr3oOK6Xh6eeHjUEewXq44EPvP6GAhzBJ3/k6UvCXPZDmSkn+UzOLaHqkZSirxBXoOHlnyF/Bg==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/bclient/-/bclient-0.1.7.tgz", + "integrity": "sha512-tD1b48VGrJ10Hkv1Slew88DLcIBAYbhjGIwO7fRPp0mTcc5jZjGhFjsrHwgPsChj9HYctA8yMw/ChGfheqZGDA==", "requires": { - "bcfg": "~0.1.5", - "bcurl": "~0.1.5", - "bsert": "~0.0.8" + "bcfg": "~0.1.6", + "bcurl": "~0.1.6", + "bsert": "~0.0.10" } }, "bcrypto": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/bcrypto/-/bcrypto-3.0.2.tgz", - "integrity": "sha512-JGPVqeO+uvlo+5QTEO78jL4/5UVvBcqc8UPd7ctLMQTb2FR85aocdDDKk0vtyLpXY2/orRrD51h3/Q0GwuyZAg==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/bcrypto/-/bcrypto-3.1.5.tgz", + "integrity": "sha512-t0RLK+AxzmZ0hFHReX4SWOUL+fSGizd3PPmls1JoCaZpKXjm1oaZEXPreYpkhTyU7pawnH+ILVieANfv65S7bg==", "requires": { - "bindings": "~1.3.1", - "bsert": "~0.0.8", - "bufio": "~1.0.4", - "nan": "~2.12.1" + "bsert": "~0.0.10", + "bufio": "~1.0.6", + "loady": "~0.0.1", + "nan": "^2.13.1" } }, "bcurl": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/bcurl/-/bcurl-0.1.5.tgz", - "integrity": "sha512-X4B/fQoIAvSLn+tudTERyC+jSIGRztZ+DO9hS94Phy1OYsQqd2kWsxxX4AW1N09jJiCPzl0aCoLFoIrZP4Ofwg==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/bcurl/-/bcurl-0.1.6.tgz", + "integrity": "sha512-noeDhfqFiUcNOUuZKErkXcbZfxBjn6duTfYPEfA4hAYXGr7gwVxkAWvIerxl3ZLLyn8jzh7Oi0nHlrLm1ST9Fw==", "requires": { - "brq": "~0.1.6", - "bsert": "~0.0.8", - "bsock": "~0.1.5" + "brq": "~0.1.7", + "bsert": "~0.0.10", + "bsock": "~0.1.8" } }, "bdb": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bdb/-/bdb-1.1.5.tgz", - "integrity": "sha512-qzLKUVH2Ywy+uOU0idsebbq06a0IH21IrOrS5JVoeI9JjGeSBVjerPcg0pSoMQpLtg8whG7u85aGSs0OCRGhVA==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/bdb/-/bdb-1.1.7.tgz", + "integrity": "sha512-jtBnWEyDDK08dBbKL9LJeO2huZyBmbjBQMMVjU9RI1liJo6YDbv86uDHoaD4gniefd9pfxqOM1w6rYuwLVCXlQ==", "requires": { - "bindings": "~1.3.1", - "bsert": "~0.0.8" + "bsert": "~0.0.10", + "loady": "~0.0.1" } }, "bdns": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/bdns/-/bdns-0.1.4.tgz", - "integrity": "sha512-yem3lJ0qDMFCg95upnE6zvjKqifi6C3nB8Evo0xe5zw6hfYVd87Jy/SZh5qNL9wwSE0QDoX+Pa2Dv6C7+01gTQ==", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/bdns/-/bdns-0.1.5.tgz", + "integrity": "sha512-LNVkfM7ynlAD0CvPvO9cKxW8YXt1KOCRQZlRsGZWeMyymUWVdHQpZudAzH9chaFAz6HiwAnQxwDemCKDPy6Mag==", "requires": { - "bsert": "~0.0.8" + "bsert": "~0.0.10" } }, "bevent": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/bevent/-/bevent-0.1.4.tgz", - "integrity": "sha512-KXzbcGe2/jtP+/nAC/QkybrcP6iBtWiIxm0kEOBOQXk2irXcNjRgZuu8NxpTU5LYdYsbhY4Omsij/xE+YLLUtA==", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/bevent/-/bevent-0.1.5.tgz", + "integrity": "sha512-hs6T3BjndibrAmPSoKTHmKa3tz/c6Qgjv9iZw+tAoxuP6izfTCkzfltBQrW7SuK5xnY22gv9jCEf51+mRH+Qvg==", "requires": { - "bsert": "~0.0.8" + "bsert": "~0.0.10" } }, "bfile": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/bfile/-/bfile-0.1.4.tgz", - "integrity": "sha512-pqeG3lJbWAlYlphNzMQA/VeUNGaq7Zopvzl8hbYXzIXLIFdPqC2h2hCbZHzRlLnnaUfipmuqwWYr3qbulbuu6Q==" + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/bfile/-/bfile-0.2.1.tgz", + "integrity": "sha512-du2QjKNkqZ1YJweWEQeq3CEqd+nQD/WOnmAMfs52ok5ujBBagWYLZC5ORDuqfV2fuF88of44PZdsnAVfxoH31g==" }, "bfilter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/bfilter/-/bfilter-1.0.4.tgz", - "integrity": "sha512-C2x1hJLlm36UBT3iBCw9FShoazFqlZQaXha7Dp0Madb0hfzrWNtf9YclHLnNfp7UlcOyAKpojne7M4FFwEcSeA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bfilter/-/bfilter-1.0.5.tgz", + "integrity": "sha512-GupIidtCvLbKhXnA1sxvrwa+gh95qbjafy7P1U1x/2DHxNabXq4nGW0x3rmgzlJMYlVl+c8fMxoMRIwpKYlgcQ==", "requires": { - "bsert": "~0.0.8", - "bufio": "~1.0.4", - "mrmr": "~0.1.5" + "bsert": "~0.0.10", + "bufio": "~1.0.6", + "mrmr": "~0.1.6" } }, "bheep": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/bheep/-/bheep-0.1.4.tgz", - "integrity": "sha512-uJ/fJWCBVx6g9ZM83p74626f2LxypH2u7wTheUZ68MgV+I0H3suX3vz19uxP0gEK/0ZB6MRVUU3O6952+8/ceQ==", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/bheep/-/bheep-0.1.5.tgz", + "integrity": "sha512-0KR5Zi8hgJBKL35+aYzndCTtgSGakOMxrYw2uszd5UmXTIfx3+drPGoETlVbQ6arTdAzSoQYA1j35vbaWpQXBg==", "requires": { - "bsert": "~0.0.8" + "bsert": "~0.0.10" } }, - "bindings": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.1.tgz", - "integrity": "sha512-i47mqjF9UbjxJhxGf+pZ6kSxrnI3wBLlnGI2ArWJ4r0VrvDS7ZYXkprq/pLaBWYq4GM0r4zdHY+NNRqEMU7uew==" - }, "binet": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/binet/-/binet-0.3.4.tgz", - "integrity": "sha512-UozdsJ7bGouXPTwATIMv/s5sWOJn/KgoCtZot6S+RAFnEhe9fD2LT6qtfaQzE3HNe4QlZXNXVa84efazLA8fjA==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/binet/-/binet-0.3.5.tgz", + "integrity": "sha512-suogkqXrt63Z76ABvwJjI28w+LWrRE53nwItDPz1VwNjHEuh1+rxudGYtoewFmMhkJ9pW/VGGnjoxP+AGzHgLQ==", "requires": { - "bs32": "~0.1.4", - "bsert": "~0.0.8" + "bs32": "~0.1.5", + "bsert": "~0.0.10" } }, "blgr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/blgr/-/blgr-0.1.5.tgz", - "integrity": "sha512-CIbMTg52rHR1WqLbDLc+9coNAYyEuJx7ezUtoGM9uzFWK5XxOuNimSSFoiYSfcCAc09qfchtkfOv41oNGIoDlQ==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/blgr/-/blgr-0.1.7.tgz", + "integrity": "sha512-+jSaU2jnYqF+ec9e8nzjfjU7QhZIntkDNG8/AEwoxW7J3mmwvmUfAI5lm9BFYs1OzT+1UgIZTFHa2qWjTBURfw==", "requires": { - "bsert": "~0.0.8" + "bsert": "~0.0.10" } }, "blru": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/blru/-/blru-0.1.5.tgz", - "integrity": "sha512-UGe9Bhu6WUln9bGGBs10I6zvhvzot57xAY39UNtimFZWZjvmdLNcPesIkypeAqYadg5WYlCygZaw1xq93S3kSw==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/blru/-/blru-0.1.6.tgz", + "integrity": "sha512-34+xZ2u4ys/aUzWCU9m6Eee4nVuN1ywdxbi8b3Z2WULU6qvnfeHvCWEdGzlVfRbbhimG2xxJX6R77GD2cuVO6w==", "requires": { - "bsert": "~0.0.8" + "bsert": "~0.0.10" } }, "blst": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/blst/-/blst-0.1.4.tgz", - "integrity": "sha512-G4eDv/d89wCwPwueItv6za6zxj2mKdikgZErJp2908Cz8Pa3h8KoHzwFu1bYcaAHJdexDp1B/Yjzb/K5+Bfb+g==", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/blst/-/blst-0.1.5.tgz", + "integrity": "sha512-TPl04Cx3CHdPFAJ2x9Xx1Z1FOfpAzmNPfHkfo+pGAaNH4uLhS58ExvamVkZh3jadF+B7V5sMtqvrqdf9mHINYA==", "requires": { - "bsert": "~0.0.8" + "bsert": "~0.0.10" } }, "bmocha": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/bmocha/-/bmocha-1.0.0.tgz", - "integrity": "sha512-dzq5ULNy0S63KLiWYPX98kwxRb0q+NFJp+6w7WJkz0OBMZuRpjqe1XWWz0z4qcCzePF9H51yRghj3QYVqdWEcw==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bmocha/-/bmocha-2.1.1.tgz", + "integrity": "sha512-EZ0xYQCxkJ+DqxT8lHDrgF/bvYBDH5vNSmtFAS7ZIknRgJA5s1FIiCzF5QqX4iEwo+Yaftkli5PL/PZMFnX0Rw==", "dev": true }, "bmutex": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/bmutex/-/bmutex-0.1.5.tgz", - "integrity": "sha512-vBKk+msKCdEE3Zs3fKxVATgibdf6U2k1dR1XALvXA/DuTDRQu9ot2TEp4RoJGilLvSlZxAHNq0AeBesd7KIe+Q==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/bmutex/-/bmutex-0.1.6.tgz", + "integrity": "sha512-nXWOXtQHbfPaMl6jyEF/rmRMrcemj2qn+OCAI/uZYurjfx7Dg3baoXdPzHOL0U8Cfvn8CWxKcnM/rgxL7DR4zw==", "requires": { - "bsert": "~0.0.8" + "bsert": "~0.0.10" } }, "brq": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/brq/-/brq-0.1.6.tgz", - "integrity": "sha512-hMYRlyg6UTuWQq12bXVvwYWNIkv5WC6iDiT4a83EW3JHMCKaVe3/wwrmguhGtpLagh0ah5YxM3QtasHvcWX5GQ==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/brq/-/brq-0.1.7.tgz", + "integrity": "sha512-mFoSpFJx7pI8IfuNojIul7Bto4Wcp1a7SOj8MTV4Qsd6Jg3leHJFzSlTcnKfG8BIOg46nvEFDXdLmM0v0YwEPQ==", "requires": { - "bsert": "~0.0.8" + "bsert": "~0.0.10" } }, "bs32": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/bs32/-/bs32-0.1.4.tgz", - "integrity": "sha512-IJuuNp3h5XJSn9QSDavROiMc9t9VbjfI4fRgdPtElG56LkB0kIdRgF+eTJpOsGqSTfBnYx/mn9nmC40Y8y9a8w==", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/bs32/-/bs32-0.1.5.tgz", + "integrity": "sha512-YR9OXFjx8qmW/TpuJKc1RSdzRogpCYh1ygCSMi5Z3fG2QkP+Ra1IfcHsICqd/I/tmFAtc7ov8BpEyN8HJD7jlw==", "requires": { - "bsert": "~0.0.8" + "bsert": "~0.0.10" } }, "bsert": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/bsert/-/bsert-0.0.8.tgz", - "integrity": "sha512-MzSxGNGymvJ2wAJ0lrC2cT+Irq2q+EMz5ijt8qXIxt02VoO+ZFWPNrmzNHGq6F8RJnIzzRmKz8mv1/j2xU1TQg==" + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/bsert/-/bsert-0.0.10.tgz", + "integrity": "sha512-NHNwlac+WPy4t2LoNh8pXk8uaIGH3NSaIUbTTRXGpE2WEbq0te/tDykYHkFK57YKLPjv/aGHmbqvnGeVWDz57Q==" }, "bsip": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/bsip/-/bsip-0.1.5.tgz", - "integrity": "sha512-soMYWfVwVr6umjSLm0mONf6kFrb0/Ulx9a5DfI08hLwMnq8Ju5MUTH/4bhYef3239SbZT/84cdEYEPCEI9JR3A==", + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/bsip/-/bsip-0.1.8.tgz", + "integrity": "sha512-R6rRgLOWjSITqp1C9yzPuPfzKgXANP+5Ip6OoLCIhmaybaVywHhINNfO0L2zFKJgS+vfLHGFltip14bKvTNVGA==", "requires": { - "bindings": "~1.3.1", - "bsert": "~0.0.8", - "nan": "~2.12.1" + "bsert": "~0.0.10", + "loady": "~0.0.1", + "nan": "^2.13.1" } }, "bsock": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/bsock/-/bsock-0.1.5.tgz", - "integrity": "sha512-Q41VI1jX3hVbv8NBz+/HCvJXEN2/WVeXUJzooLE69LmVdsdwbN77v0pd5Efvz5+JNASV8iESfxitvdx/uknfNQ==", + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/bsock/-/bsock-0.1.8.tgz", + "integrity": "sha512-+rdqLWVnbYFhUTvgDuzO3KlGYXWOVS2RhRgHrRx26wSiNgmyYJSX4hK+PwtI1hEc9cyIb28Qt/hgPgSrqPlDNw==", "requires": { - "bsert": "~0.0.8" + "bsert": "~0.0.10" } }, "bsocks": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/bsocks/-/bsocks-0.2.4.tgz", - "integrity": "sha512-FSDsP1VeuUXbIU5FaJstfNCP8LECFz13olT5LvLko6SH9EVNnfajxShkfyiO3WkYJ9nL1GVQXDqVQSPF+Bgd7A==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/bsocks/-/bsocks-0.2.5.tgz", + "integrity": "sha512-w1yG8JmfKPIaTDLuR9TIxJM2Ma6nAiInRpLNZ43g3qPnPHjawCC4SV6Bdy84bEJQX1zJWYTgdod/BnQlDhq4Gg==", "requires": { - "binet": "~0.3.4", - "bsert": "~0.0.8" + "binet": "~0.3.5", + "bsert": "~0.0.10" } }, "bstring": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/bstring/-/bstring-0.3.5.tgz", - "integrity": "sha512-EgVL5WgawTtUCl/P8rZZicP+/p7X71OY9T9i1bTPNtR4587FPyxq+Dne0JuY37g/apj89RhHut7aJMS2l042Dg==", + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/bstring/-/bstring-0.3.8.tgz", + "integrity": "sha512-OUM7JZMEbam+LA1ZwvkcuHoc+7MzL0uVFH3M3Fyd5Xx8E34eve1WPwWGMLrpZGZ30cpoGnZps0p1zbIY5fSJaw==", "requires": { - "bindings": "~1.3.1", - "bsert": "~0.0.8", - "nan": "~2.12.1" + "bsert": "~0.0.10", + "loady": "~0.0.1", + "nan": "^2.13.1" } }, "btcp": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/btcp/-/btcp-0.1.4.tgz", - "integrity": "sha512-Byfk+kgg8bCqPWLoCltIES42xk25JWIoQMJ31bJ/yli/WflEGDtmnNEtZWoW3dzV6d8t+LfANkTXXavn1G9uAA==" + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/btcp/-/btcp-0.1.5.tgz", + "integrity": "sha512-tkrtMDxeJorn5p0KxaLXELneT8AbfZMpOFeoKYZ5qCCMMSluNuwut7pGccLC5YOJqmuk0DR774vNVQLC9sNq/A==" }, "buffer-map": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/buffer-map/-/buffer-map-0.0.5.tgz", - "integrity": "sha512-evwvw2VDQvYxKPdxmqIWTIIYZKypKWHoLolB1kmyY05RNGY7EWifLSE1fLmz6+2UkQBmZ1suXJAoHOzlLeO83A==" + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/buffer-map/-/buffer-map-0.0.7.tgz", + "integrity": "sha512-95try3p/vMRkIAAnJDaGkFhGpT/65NoeW6XelEPjAomWYR58RQtW4khn0SwKj34kZoE7uxL7w2koZSwbnszvQQ==" }, "bufio": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/bufio/-/bufio-1.0.4.tgz", - "integrity": "sha512-z5HOP06DHRlwB6C4Ol6RNA2HWam8Pluo5pasPniQVyC4dzwutzYHHHDjDSOgSyGeThE7kmgT7ynV1A+EuD8s3w==" + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/bufio/-/bufio-1.0.6.tgz", + "integrity": "sha512-mjYZFRHmI9bk3Oeexu0rWjHFY+w6hGLabdmwSFzq+EFr4MHHsNOYduDVdYl71NG5pTPL7GGzUCMk9cYuV34/Qw==" }, "bupnp": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/bupnp/-/bupnp-0.2.5.tgz", - "integrity": "sha512-NLedlDlgopiSGRewmgFqSqnHHlNcUDeHxW+pEwBNnbCDTa5qC5vAmtOd6AbceTs3kTluu+znu9x1snoaaroSbA==", + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bupnp/-/bupnp-0.2.6.tgz", + "integrity": "sha512-J6ykzJhZMxXKN78K+1NzFi3v/51X2Mvzp2hW42BWwmxIVfau6PaN99gyABZ8x05e8MObWbsAis23gShhj9qpbw==", "requires": { - "binet": "~0.3.4", - "brq": "~0.1.6", - "bsert": "~0.0.8" + "binet": "~0.3.5", + "brq": "~0.1.7", + "bsert": "~0.0.10" } }, "bval": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/bval/-/bval-0.1.5.tgz", - "integrity": "sha512-PN7Ps7MHrFk7H1cT/mvRsa8J3bx1MrApxDXZx3kee4hCjDns2v89rWO8wnuEcLEVZvNqayjKm6ATia9FRtd2aw==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/bval/-/bval-0.1.6.tgz", + "integrity": "sha512-jxNH9gSx7g749hQtS+nTxXYz/bLxwr4We1RHFkCYalNYcj12RfbW6qYWsKu0RYiKAdFcbNoZRHmWrIuXIyhiQQ==", "requires": { - "bsert": "~0.0.8" + "bsert": "~0.0.10" } }, "bweb": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/bweb/-/bweb-0.1.7.tgz", - "integrity": "sha512-mvjXvyvbe3TPQ5AW0K4kgfAMgkyCj3/JhTzl5+pJsOv+SvdXNeJsafruVubfj28PTXfVD08SH9EEuKrtsUYCHA==", + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/bweb/-/bweb-0.1.8.tgz", + "integrity": "sha512-xGMDbVf3JnLka7VTWOiy5GMersZcAuUMtd97zs7OUA/rrt2Z8bWVAwzCVPFxVzYMreYu7M+W3NZCJSpUdd7umA==", "requires": { - "bsert": "~0.0.8", - "bsock": "~0.1.5" + "bsert": "~0.0.10", + "bsock": "~0.1.8" } }, + "loady": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/loady/-/loady-0.0.1.tgz", + "integrity": "sha512-PW5Z13Jd0v6ZcA1P6ZVUc3EV8BJwQuAiwUvvT6VQGHoaZ1d/tu7r1QZctuKfQqwy9SFBWeAGfcIdLxhp7ZW3Rw==" + }, "mrmr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/mrmr/-/mrmr-0.1.5.tgz", - "integrity": "sha512-DgnUGXVpyF2t93u6g4b63o547/LIG4qCq4LNTTKsAPyVdjar4l5TgzNoEp+/T//TafYk+oL/O9XwgVbOxUK9uw==", + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/mrmr/-/mrmr-0.1.8.tgz", + "integrity": "sha512-lNav10EJsPZvlMqlBOYQ5atIO9jrlvbJ4/7asqunXY89dHooN5c+W6AV7jtvBRw4wFDR7TpEWfmBQgRGRVwBzA==", "requires": { - "bindings": "~1.3.1", - "bsert": "~0.0.8", - "nan": "~2.12.1" + "bsert": "~0.0.10", + "loady": "~0.0.1", + "nan": "^2.13.1" } }, "n64": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/n64/-/n64-0.2.6.tgz", - "integrity": "sha512-UMoVVrk28Lkk3rjroRp8QU0ElaihWyMZ1NZj3NootEQmbSKKQoeIp6B4aMguWZIsFnOCW5sfVt0vx7gFsOWZQQ==" + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/n64/-/n64-0.2.9.tgz", + "integrity": "sha512-Fr71HDRSClfgPloQupVBHTx5k8PXyw4yLBj3Q7/C4qhS4r5hWrjScuZg1qCDWqzHf0vxSq8lXbinb6T0oPLdHA==" }, "nan": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz", - "integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==" + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", + "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==" } } } diff --git a/package.json b/package.json index 9f5069e24..7ff9f747d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bcash", - "version": "1.1.1", + "version": "1.2.0", "description": "Bitcoin cash bike-shed", "license": "MIT", "repository": "git://github.com/bcoin-org/bcash.git", @@ -23,36 +23,36 @@ "node": ">=8.0.0" }, "dependencies": { - "bcfg": "^0.1.5", - "bclient": "^0.1.6", - "bcrypto": "^3.0.2", - "bdb": "^1.1.5", - "bdns": "^0.1.4", - "bevent": "^0.1.4", - "bfile": "^0.1.4", - "bfilter": "^1.0.4", - "bheep": "^0.1.4", - "binet": "^0.3.4", - "blgr": "^0.1.5", - "blru": "^0.1.5", - "blst": "^0.1.4", - "bmutex": "^0.1.5", - "bsert": "0.0.8", - "bsip": "^0.1.5", - "bsock": "^0.1.5", - "bsocks": "^0.2.4", - "bstring": "^0.3.5", - "btcp": "^0.1.4", - "buffer-map": "0.0.5", - "bufio": "^1.0.4", - "bupnp": "^0.2.5", - "bval": "^0.1.5", - "bweb": "^0.1.7", - "mrmr": "^0.1.5", - "n64": "^0.2.6" + "bcfg": "^0.1.6", + "bclient": "^0.1.7", + "bcrypto": "^3.1.5", + "bdb": "^1.1.7", + "bdns": "^0.1.5", + "bevent": "^0.1.5", + "bfile": "^0.2.1", + "bfilter": "^1.0.5", + "bheep": "^0.1.5", + "binet": "^0.3.5", + "blgr": "^0.1.7", + "blru": "^0.1.6", + "blst": "^0.1.5", + "bmutex": "^0.1.6", + "bsert": "0.0.10", + "bsip": "^0.1.8", + "bsock": "^0.1.8", + "bsocks": "^0.2.5", + "bstring": "^0.3.8", + "btcp": "^0.1.5", + "buffer-map": "0.0.7", + "bufio": "^1.0.6", + "bupnp": "^0.2.6", + "bval": "^0.1.6", + "bweb": "^0.1.8", + "mrmr": "^0.1.8", + "n64": "^0.2.9" }, "devDependencies": { - "bmocha": "^1.0.0" + "bmocha": "^2.1.1" }, "main": "./lib/bcoin.js", "bin": { From 23b69fd1a398ef133497d7205d69109a3a80dbc6 Mon Sep 17 00:00:00 2001 From: Jonathan Gonzalez Date: Tue, 23 Apr 2019 02:39:29 +0000 Subject: [PATCH 02/23] script: Schnorr Flag / Segwit Recovery Flag Values added, along with minor DER Signature Encoding name change --- lib/script/common.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/script/common.js b/lib/script/common.js index f13fa2b5a..149e8c327 100644 --- a/lib/script/common.js +++ b/lib/script/common.js @@ -355,7 +355,9 @@ exports.flags = { VERIFY_COMPRESSED_PUBKEYTYPE: 1 << 15, VERIFY_SIGHASH_FORKID: 1 << 16, VERIFY_REPLAY_PROTECTION: 1 << 17, - VERIFY_CHECKDATASIG: 1 << 18 + VERIFY_CHECKDATASIG: 1 << 18, + VERIFY_SCHNORR: 1 << 19, + VERIFY_SEGWIT_RECOVERY: 1 << 20 }; /** @@ -504,7 +506,7 @@ exports.isHashType = function isHashType(sig) { */ exports.isLowDER = function isLowDER(sig) { - if (!exports.isSignatureEncoding(sig)) + if (!exports.isDERSignatureEncoding(sig)) return false; return secp256k1.isLowDER(sig); @@ -561,7 +563,7 @@ exports.isCompressedEncoding = function isCompressedEncoding(key) { * @returns {Boolean} */ -exports.isSignatureEncoding = function isSignatureEncoding(sig) { +exports.isDERSignatureEncoding = function isDERSignatureEncoding(sig) { assert(Buffer.isBuffer(sig)); // Format: @@ -658,7 +660,7 @@ exports.toASM = function toASM(item, decode) { return num.toString(10); } - if (decode && exports.isSignatureEncoding(item.slice(0, -1))) { + if (decode && exports.isDERSignatureEncoding(item.slice(0, -1))) { const type = item[item.length - 1]; let symbol = exports.hashTypeByVal[type & 0x1f] || ''; From 7477cea2af44133431dd93cb45bd70b8331aa9c3 Mon Sep 17 00:00:00 2001 From: Jonathan Gonzalez Date: Tue, 23 Apr 2019 02:46:18 +0000 Subject: [PATCH 03/23] chain: MTP Activation For GreatWallActivation Hard-Fork added --- lib/blockchain/chain.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/lib/blockchain/chain.js b/lib/blockchain/chain.js index 5baf0f4af..f86987179 100644 --- a/lib/blockchain/chain.js +++ b/lib/blockchain/chain.js @@ -552,6 +552,12 @@ class Chain extends AsyncEmitter { state.flags |= Script.flags.VERIFY_CLEANSTACK; } + if (mtp >= this.network.block.greatWallActivationTime) { + state.greatWallActivation = true; + state.flags |= Script.flags.VERIFY_SEGWIT_RECOVERY; + state.flags |= Script.flags.VERIFY_SCHNORR; + } + return state; } @@ -589,6 +595,9 @@ class Chain extends AsyncEmitter { if (!this.state.hasMagneticAnomaly() && state.hasMagneticAnomaly()) this.logger.warning('Magnetic Anomaly has been activated.'); + + if (!this.state.hasGreatWallActivation() && state.hasGreatWallActivation()) + this.logger.warning('Great Wall has been activated.'); this.state = state; } @@ -2929,6 +2938,7 @@ class DeploymentState { this.bip34 = false; this.daa = false; this.magneticAnomaly = false; + this.greatWallActivation = false; } /** @@ -3012,6 +3022,15 @@ class DeploymentState { return this.magneticAnomaly; } + /** + * Test whether great wall activation is active. + * @returns {Boolean} + */ + + hasGreatWallActivation() { + return this.greatWallActivation; + } + /** * Get max block size * @returns {Number} From 0ca7dad12adee0e3e0d71e9b11f710cd3b1e2e06 Mon Sep 17 00:00:00 2001 From: Jonathan Gonzalez Date: Tue, 23 Apr 2019 14:21:35 +0000 Subject: [PATCH 04/23] script: OP_CHECKSIG / OP_CHECKDATASIG opcodes modified w / Schnorr, ECDSA Signature Encoding helpers --- lib/script/script.js | 140 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 117 insertions(+), 23 deletions(-) diff --git a/lib/script/script.js b/lib/script/script.js index cd443ff70..3985a714b 100644 --- a/lib/script/script.js +++ b/lib/script/script.js @@ -1131,7 +1131,7 @@ class Script { || !(sig[sig.length - 1] & Script.hashType.SIGHASH_FORKID)) subscript.findAndDelete(sig); - validateTXSignature(sig, flags); + CheckTransactionSignature(sig, flags); validateKey(key, flags); let res = false; @@ -1145,7 +1145,7 @@ class Script { type, flags ); - res = checksig(hash, sig, key); + res = verifySignature(hash, sig.slice(0, -1), key, flags); } if (!res && (flags & Script.flags.VERIFY_NULLFAIL)) { @@ -1187,7 +1187,7 @@ class Script { if (sig.length > 0) { const hash = sha256.digest(msg); - res = secp256k1.verifyDER(hash, sig, key); + res = verifySignature(hash, sig, key, flags); } if (!res && (flags & Script.flags.VERIFY_NULLFAIL)) { @@ -1263,7 +1263,7 @@ class Script { const sig = stack.get(-isig); const key = stack.get(-ikey); - validateTXSignature(sig, flags); + CheckTransactionECDSASignature(sig, flags); validateKey(key, flags); if (sig.length > 0) { @@ -2363,7 +2363,7 @@ class Script { if (raw.length === 0) return false; - if (common.isSignatureEncoding(raw.slice(0, -1))) + if (common.isDERSignatureEncoding(raw.slice(0, -1))) return false; if (common.isKeyEncoding(raw)) @@ -3268,11 +3268,9 @@ function validateKey(key, flags) { throw new ScriptError('PUBKEYTYPE'); } - if (flags & Script.flags.VERIFY_SIGHASH_FORKID) { - if (flags & Script.flags.VERIFY_COMPRESSED_PUBKEYTYPE) { - if (!common.isCompressedEncoding(key)) - throw new ScriptError('COMPRESSED_PUBKEYTYPE'); - } + if ((flags & Script.flags.VERIFY_COMPRESSED_PUBKEYTYPE) + && !common.isCompressedEncoding(key)){ + throw new ScriptError('NONCOMPRESSED_PUBKEY'); } return true; @@ -3281,20 +3279,27 @@ function validateKey(key, flags) { /** * Test whether the raw element is a valid signature based * on the encoding, S value, and sighash type. + * In an ECDSA-only context, 64-byte signatures are bannned + * when Schnorr Flag is set. * @param {Buffer} sig * @param {VerifyFlags?} flags * @returns {Boolean} * @throws {ScriptError} */ -function validateSignature(sig, flags) { +function validateECDSASignature(sig, flags) { assert(Buffer.isBuffer(sig)); assert(typeof flags === 'number'); + if ((flags & Script.flags.VERIFY_SCHNORR) + && (sig.length === 64)) { + throw new ScriptError('SIG_BADLENGTH'); + } + if ((flags & Script.flags.VERIFY_DERSIG) || (flags & Script.flags.VERIFY_LOW_S) || (flags & Script.flags.VERIFY_STRICTENC)) { - if (!common.isSignatureEncoding(sig)) + if (!common.isDERSignatureEncoding(sig)) throw new ScriptError('SIG_DER'); } @@ -3309,25 +3314,18 @@ function validateSignature(sig, flags) { /** * Test whether the tx element is a valid signature based * on the encoding, S value, and sighash type. Requires - * VERIFY_DERSIG|VERIFY_LOW_S|VERIFY_STRICTENC, VERIFY_LOW_S - * and VERIFY_STRICTENC to be enabled respectively. Note that - * this will allow zero-length signatures. + * VERIFY_STRICTENC, VERIFY_SIGHASH_FORKID to be enabled respectively. + * Note that this will allow zero-length signatures. * @param {Buffer} sig * @param {VerifyFlags?} flags * @returns {Boolean} * @throws {ScriptError} */ -function validateTXSignature(sig, flags) { +function CheckSighashEncoding(sig, flags) { assert(Buffer.isBuffer(sig)); assert(typeof flags === 'number'); - // Allow empty sigs - if (sig.length === 0) - return true; - - validateSignature(sig.slice(0, -1), flags); - if (flags & Script.flags.VERIFY_STRICTENC) { if (!common.isHashType(sig)) throw new ScriptError('SIG_HASHTYPE'); @@ -3345,6 +3343,51 @@ function validateTXSignature(sig, flags) { return true; } +/** + * Test whether the transaction tested against + * the Sighash Encoding is a valid Schnorr Signature. + * Requires Sighash + * @param {Buffer} sig + * @param {VeirfyFlags?} flags + * @returns {Boolean} + * @throws {ScriptError} + */ + +function CheckTransactionSignature(sig, flags) { + assert(Buffer.isBuffer(sig)); + assert(typeof flags === 'number'); + + // allow empty sigs + if (sig.length === 0) + return true; + + validateSchnorrSignature(sig.slice(0, -1), flags); + + return CheckSighashEncoding(sig, flags); +} + +/** + * Test whether the transaction tested against + * the Sighash Encoding is a valid ECDSA Signature. + * @param {Buffer} sig + * @param {VerifyFlags?} flags + * @returns {Boolean} + * @throws {ScriptError} + */ + +function CheckTransactionECDSASignature(sig, flags) { + assert(Buffer.isBuffer(sig)); + assert(typeof flags === 'number'); + + // Allow empty sigs + if (sig.length === 0) + return true; + + validateECDSASignature(sig.slice(0, -1), flags) + + return CheckSighashEncoding(sig, flags); +} + /** * Test whether the data element is a valid signature based * on the encoding, S value, and sighash type. Requires @@ -3365,11 +3408,62 @@ function validateDataSignature(sig, flags) { if (sig.length === 0) return true; - validateSignature(sig, flags); + validateSchnorrSignature(sig, flags); return true; } +/** + * Test whether the Signature is valid in context + * 64-byte signatures are interpreted as schnorr signatures. + * Always correctly encoded when Verify_SCHNORR flag is set. + * @param {Buffer} sig + * @param {Buffer} msg - Signature hash. + * @param {VerifyFlags?} flags + * @returns {Promise} + * @throws {ScriptError} + */ + +function validateSchnorrSignature(sig, flags) { + assert(Buffer.isBuffer(sig)); + assert(typeof flags === 'number'); + + if ((flags & Script.flags.VERIFY_SCHNORR) + && (sig.length === 64)) { + return true; + } + + return validateECDSASignature(sig, flags); +} + +/** + * Test whether the signature from the stack + * is valid in either Schnorr or DER Format. + * Always encoded correctly when Schnorr flag is set. + * @param {Buffer} hash + * @param {Buffer} sig + * @param {Buffer} key + * @param {Number} flags + */ + +function verifySignature(hash, sig, key, flags) { + assert(Buffer.isBuffer(hash)); + assert(Buffer.isBuffer(sig)); + assert(Buffer.isBuffer(key)); + assert(typeof flags === 'number'); + + let res = false; + + if ((flags & Script.flags.VERIFY_SCHNORR) + && (sig.length === 64)) { + res = secp256k1.schnorrVerify(hash, sig, key, flags); + } else { + res = secp256k1.verifyDER(hash, sig, key, flags); + } + + return res; +} + /** * Verify a signature, taking into account sighash type. * @param {Buffer} msg - Signature hash. From 021337b3a3223884b4fce18cbfdabb09d0cc305b Mon Sep 17 00:00:00 2001 From: Jonathan Gonzalez Date: Tue, 23 Apr 2019 14:23:23 +0000 Subject: [PATCH 05/23] script-tests: Schnorr / Segwit-Recovery test data added --- test/data/script-tests.json | 1191 ++++++++++++++++++++++++++++++++--- 1 file changed, 1086 insertions(+), 105 deletions(-) diff --git a/test/data/script-tests.json b/test/data/script-tests.json index b616f0c20..fca548222 100644 --- a/test/data/script-tests.json +++ b/test/data/script-tests.json @@ -1118,6 +1118,88 @@ "SIG_DER", "Non cannonical DER encoding" ], +["Schnorr flag on: CHECKDATASIG unchanged"], +["", "CHECKDATASIG", "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG,SCHNORR", "INVALID_STACK_OPERATION"], +["0", "CHECKDATASIG", "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG,SCHNORR", "INVALID_STACK_OPERATION"], +["0 0", "CHECKDATASIG", "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG,SCHNORR", "INVALID_STACK_OPERATION"], +[ + "0 0", + "0 CHECKDATASIG", + "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG,SCHNORR", + "PUBKEYTYPE" +], +[ + "0 0", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", + "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG,SCHNORR", + "EVAL_FALSE" +], +[ + "0x08 0x3006020101020101 0", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", + "P2SH,STRICTENC,CHECKDATASIG,SCHNORR", + "EVAL_FALSE", "Check that NULLFAIL trigger only when specified" +], +[ + "0x08 0x3006020101020101 0", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", + "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG,SCHNORR", + "NULLFAIL" +], +[ + "0x09 0x300602010102010101 0", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", + "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG,SCHNORR", + "SIG_DER", "Ensure that sighashtype is ignored" +], +[ + "0x09 0x300702010102020001 0", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", + "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG,SCHNORR", + "SIG_DER", "Non cannonical DER encoding" +], + +["Schnorr flag on: CHECKDATASIGVERIFY unchanged"], +["", "CHECKDATASIGVERIFY 1", "P2SH,STRICTENC,CHECKDATASIG,SCHNORR", "INVALID_STACK_OPERATION"], +["0", "CHECKDATASIGVERIFY 1", "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG,SCHNORR", "INVALID_STACK_OPERATION"], +["0 0", "CHECKDATASIGVERIFY 1", "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG,SCHNORR", "INVALID_STACK_OPERATION"], +[ + "0 0", + "0 CHECKDATASIGVERIFY 1", + "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG,SCHNORR", + "PUBKEYTYPE" +], +[ + "0 0", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", + "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG,SCHNORR", + "CHECKDATASIGVERIFY" +], +[ + "0x08 0x3006020101020101 0", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", + "P2SH,STRICTENC,CHECKDATASIG,SCHNORR", + "CHECKDATASIGVERIFY", "Check that NULLFAIL trigger only when specified" +], +[ + "0x08 0x3006020101020101 0", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", + "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG,SCHNORR", + "NULLFAIL" +], +[ + "0x09 0x300602010102010101 0", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", + "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG,SCHNORR", + "SIG_DER", "Ensure that sighashtype is ignored" +], +[ + "0x09 0x300702010102020001 0", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", + "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG,SCHNORR", + "SIG_DER", "Non cannonical DER encoding" +], + ["ADD"], ["2147483648 0 ADD", "NOP", "P2SH,STRICTENC", "UNKNOWN_ERROR", "arithmetic operands must be in range [-2^31...2^31] "], ["-2147483648 0 ADD", "NOP", "P2SH,STRICTENC", "UNKNOWN_ERROR", "arithmetic operands must be in range [-2^31...2^31] "], @@ -1490,6 +1572,30 @@ ["0 0 0x02 0x0000", "CHECKMULTISIGVERIFY 1", "MINIMALDATA", "UNKNOWN_ERROR"], ["0 0x02 0x0000 0", "CHECKMULTISIGVERIFY 1", "MINIMALDATA", "UNKNOWN_ERROR"], +["64/65-byte sig length tests"], +["0x41 0x303e021d4444444444444444444444444444444444444444444444444444444444021d444444444444444444444444444444444444444444444444444444444401", "0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKSIG NOT", "", "OK"], +["0x40 0x303e021d4444444444444444444444444444444444444444444444444444444444021d4444444444444444444444444444444444444444444444444444444444", "0 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKDATASIG NOT", "CHECKDATASIG", "OK"], +["0x41 0x303e021d4444444444444444444444444444444444444444444444444444444444021d444444444444444444444444444444444444444444444444444444444401", " 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKSIG NOT", "SCHNORR", "OK"], +["0x40 0x303e021d4444444444444444444444444444444444444444444444444444444444021d4444444444444444444444444444444444444444444444444444444444", "0 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKDATASIG NOT", "CHECKDATASIG,SCHNORR", "OK"], +["0 0x41 0x303e021d4444444444444444444444444444444444444444444444444444444444021d444444444444444444444444444444444444444444444444444444444401", "1 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 1 CHECKMULTISIG NOT", "", "OK"], +["0 0x41 0x303e021d4444444444444444444444444444444444444444444444444444444444021d444444444444444444444444444444444444444444444444444444444401", "1 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 1 CHECKMULTISIG NOT", "STRICTENC", "OK"], +["0 0x41 0x303e021d4444444444444444444444444444444444444444444444444444444444021d444444444444444444444444444444444444444444444444444444444401", "1 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 1 CHECKMULTISIG NOT", "SCHNORR", "SIG_BADLENGTH"], +["0 0x41 0x303e021d4444444444444444444444444444444444444444444444444444444444021d444444444444444444444444444444444444444444444444444444444401", "1 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 1 CHECKMULTISIG NOT", "SCHNORR,STRICTENC,NULLFAIL", "SIG_BADLENGTH"], +["0 0x40 0x303d021d4444444444444444444444444444444444444444444444444444444444021c4444444444444444444444444444444444444444444444444444444401", "1 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 1 CHECKMULTISIG NOT", "SCHNORR", "OK"], +["0 0x42 0x303f021d4444444444444444444444444444444444444444444444444444444444021e44444444444444444444444444444444444444444444444444444444444401", "1 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 1 CHECKMULTISIG NOT", "SCHNORR", "OK"], + +["0x41 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001", "0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKSIG NOT", "", "OK"], +["0x41 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001", "0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKSIG NOT", "STRICTENC", "SIG_DER"], +["0x41 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001", "0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKSIG NOT", "STRICTENC,SCHNORR", "OK"], +["0x40 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "0 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKDATASIG NOT", "CHECKDATASIG", "OK"], +["0x40 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "0 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKDATASIG NOT", "CHECKDATASIG,STRICTENC", "SIG_DER"], +["0x40 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "0 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKDATASIG NOT", "CHECKDATASIG,STRICTENC,SCHNORR", "OK"], +["0 0x41 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001", "1 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 1 CHECKMULTISIG NOT", "", "OK"], +["0 0x41 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001", "1 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 1 CHECKMULTISIG NOT", "STRICTENC", "SIG_DER"], +["0 0x41 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001", "1 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 1 CHECKMULTISIG NOT", "STRICTENC,SCHNORR", "SIG_BADLENGTH"], +["0 0x41 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001", "1 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 1 CHECKMULTISIG NOT", "STRICTENC,NULLFAIL,SCHNORR", "SIG_BADLENGTH"], + + ["Order of CHECKMULTISIG evaluation tests, inverted by swapping the order of"], ["pubkeys/signatures so they fail due to the STRICTENC rules on validly encoded"], @@ -1528,203 +1634,203 @@ ["Automatically generated test cases"], [ - "0x47 0x304402200a5c6163f07b8d3b013c4d1d6dba25e780b39658d79ba37af7057a3b7f15ffa102201fd9b4eaa9943f734928b99a83592c2e7bf342ea2680f6a2bb705167966b742001", + "0x47 0x3044022022127048516d473153d1f74e46e828496776752e3255f672f760a41e83f54e6f0220502956b739ed82aad916dc4a73e1fd55d02aad514b5211f1ba7d0dadf53c637901", "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG", "", "OK", "P2PK" ], [ - "0x47 0x304402200a5c6163f07b8c3b013c4d1d6dba25e780b39658d79ba37af7057a3b7f15ffa102201fd9b4eaa9943f734928b99a83592c2e7bf342ea2680f6a2bb705167966b742001", + "0x47 0x3044022022127048516d463153d1f74e46e828496776752e3255f672f760a41e83f54e6f0220502956b739ed82aad916dc4a73e1fd55d02aad514b5211f1ba7d0dadf53c637901", "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG", "", "EVAL_FALSE", "P2PK, bad sig" ], [ - "0x47 0x304402206e05a6fe23c59196ffe176c9ddc31e73a9885638f9d1328d47c0c703863b8876022076feb53811aa5b04e0e79f938eb19906cc5e67548bc555a8e8b8b0fc603d840c01 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508", + "0x47 0x304402201e0ec3c6c263f34049c93e0bc646d7287ca2cc6571d658e4e7269daebc96ef35022009841f101e6dcaba8993d0259e5732a871e253be807556bf5618bf0bc3e84af001 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508", "DUP HASH160 0x14 0x1018853670f9f3b0582c5b9ee8ce93764ac32b93 EQUALVERIFY CHECKSIG", "", "OK", "P2PKH" ], [ - "0x47 0x3044022034bb0494b50b8ef130e2185bb220265b9284ef5b4b8a8da4d8415df489c83b5102206259a26d9cc0a125ac26af6153b17c02956855ebe1467412f066e402f5f05d1201 0x21 0x03363d90d446b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640", + "0x47 0x304402201dddd1a3b642f1b543cbecad602558636135d59b3850a4d1646a0b11c712b340022016d58230012421b304d1cc42ccc1e33738206be64f7984be30ed437fa7a2fd0a01 0x21 0x03363d90d446b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640", "DUP HASH160 0x14 0xc0834c0c158f53be706d234c38fd52de7eece656 EQUALVERIFY CHECKSIG", "", "EQUALVERIFY", "P2PKH, bad pubkey" ], [ - "0x47 0x304402204710a85181663b32d25c70ec2bbd14adff5ddfff6cb50d09e155ef5f541fc86c0220056b0cc949be9386ecc5f6c2ac0493269031dbb185781db90171b54ac127790281", + "0x47 0x304402206e8719d1746852542bed4f05a57f0369759553c7d655229759de2643f371e20002207a7f06790da5757d2f37c4d074de0fe66ac149ee011baeb4dd3fa97f288637f881", "0x41 0x048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf CHECKSIG", "", "OK", "P2PK anyonecanpay" ], [ - "0x47 0x304402204710a85181663b32d25c70ec2bbd14adff5ddfff6cb50d09e155ef5f541fc86c0220056b0cc949be9386ecc5f6c2ac0493269031dbb185781db90171b54ac127790201", + "0x47 0x304402206e8719d1746852542bed4f05a57f0369759553c7d655229759de2643f371e20002207a7f06790da5757d2f37c4d074de0fe66ac149ee011baeb4dd3fa97f288637f801", "0x41 0x048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf CHECKSIG", "", "EVAL_FALSE", "P2PK anyonecanpay marked with normal hashtype" ], [ - "0x47 0x3044022003fef42ed6c7be8917441218f525a60e2431be978e28b7aca4d7a532cc413ae8022067a1f82c74e8d69291b90d148778405c6257bbcfc2353cc38a3e1f22bf44254601 0x23 0x210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798ac", + "0x47 0x304402206f04a92fb434b24b06180c7c2af5f4fb73f15427da93b5ab8c167c7d10f4f37902203f0b57300a19fe106d79f427360a6b4720117ab50de44047e52a35de2523291e01 0x23 0x210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798ac", "HASH160 0x14 0x23b0ad3477f2178bc0b3eed26e4e6316f4e83aa1 EQUAL", "P2SH", "OK", "P2SH(P2PK)" ], [ - "0x47 0x3044022003fef42ed6c7be8917441218f525a60e2431be978e28b7aca4d7a532cc413ae8022067a1f82c74e8d69291b90d148778405c6257bbcfc2353cc38a3e1f22bf44254601 0x23 0x210279be667ef9dcbbac54a06295ce870b07029bfcdb2dce28d959f2815b16f81798ac", + "0x47 0x304402206f04a92fb434b24b06180c7c2af5f4fb73f15427da93b5ab8c167c7d10f4f37902203f0b57300a19fe106d79f427360a6b4720117ab50de44047e52a35de2523291e01 0x23 0x210279be667ef9dcbbac54a06295ce870b07029bfcdb2dce28d959f2815b16f81798ac", "HASH160 0x14 0x23b0ad3477f2178bc0b3eed26e4e6316f4e83aa1 EQUAL", "P2SH", "EVAL_FALSE", "P2SH(P2PK), bad redeemscript" ], [ - "0x47 0x30440220781ba4f59a7b207a10db87628bc2168df4d59b844b397d2dbc9a5835fb2f2b7602206ed8fbcc1072fe2dfc5bb25909269e5dc42ffcae7ec2bc81d59692210ff30c2b01 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 0x19 0x76a91491b24bf9f5288532960ac687abb035127b1d28a588ac", + "0x47 0x304402201799a8feda56fd3c58b816eac4f0bb916136b4f60b5c5da3264f5c29aec13abf022029c9d7779a5376b5d0398e389817699bb2485a305eb1fa5868081c3a9d89bee201 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 0x19 0x76a91491b24bf9f5288532960ac687abb035127b1d28a588ac", "HASH160 0x14 0x7f67f0521934a57d3039f77f9f32cf313f3ac74b EQUAL", "P2SH", "OK", "P2SH(P2PKH)" ], [ - "0x47 0x304402204e2eb034be7b089534ac9e798cf6a2c79f38bcb34d1b179efd6f2de0841735db022071461beb056b5a7be1819da6a3e3ce3662831ecc298419ca101eb6887b5dd6a401 0x19 0x76a9147cf9c846cd4882efec4bf07e44ebdad495c94f4b88ac", + "0x47 0x3044022001aabce638c1bc883223651a4252d36e5918681e85562fe5b112f08bc944644902203110421d46142317ec5ca117ce4d40593ace16ab5b9688eb2ce8103b3a9273c701 0x19 0x76a9147cf9c846cd4882efec4bf07e44ebdad495c94f4b88ac", "HASH160 0x14 0x2df519943d5acc0ef5222091f9dfe3543f489a82 EQUAL", "", "OK", "P2SH(P2PKH), bad sig but no VERIFY_P2SH" ], [ - "0x47 0x304402204e2eb034be7b089534ac9e798cf6a2c79f38bcb34d1b179efd6f2de0841735db022071461beb056b5a7be1819da6a3e3ce3662831ecc298419ca101eb6887b5dd6a401 0x19 0x76a9147cf9c846cd4882efec4bf07e44ebdad495c94f4b88ac", + "0x47 0x3044022001aabce638c1bc883223651a4252d36e5918681e85562fe5b112f08bc944644902203110421d46142317ec5ca117ce4d40593ace16ab5b9688eb2ce8103b3a9273c701 0x19 0x76a9147cf9c846cd4882efec4bf07e44ebdad495c94f4b88ac", "HASH160 0x14 0x2df519943d5acc0ef5222091f9dfe3543f489a82 EQUAL", "P2SH", "EQUALVERIFY", "P2SH(P2PKH), bad sig" ], [ - "0 0x47 0x3044022051254b9fb476a52d85530792b578f86fea70ec1ffb4393e661bcccb23d8d63d3022076505f94a403c86097841944e044c70c2045ce90e36de51f7e9d3828db98a07501 0x47 0x304402200a358f750934b3feb822f1966bfcd8bbec9eeaa3a8ca941e11ee5960e181fa01022050bf6b5a8e7750f70354ae041cb68a7bade67ec6c3ab19eb359638974410626e01 0x47 0x304402200955d031fff71d8653221e85e36c3c85533d2312fc3045314b19650b7ae2f81002202a6bb8505e36201909d0921f01abff390ae6b7ff97bbf959f98aedeb0a56730901", + "0 0x47 0x304402204d69d5caa4dbab259f79fce89d3b459bbd91697c1c052a1554ff3b08b2241cbd0220330a8e17a90d51996e363cb8902fce6278c6350fa59ae12832db2f6a44d64dce01 0x47 0x3044022031a1e5289b0d9c33ec182a7f67210b9997187c710f7d3f0f28bdfb618c4e025c02205d95fe63ee83a20ec44159a06f7c0b43b61d5f0c346ca4a2cc7b91878ad1a85001 0x47 0x304402200a9faba8228f7a86bf6c3b2a0da0e2f9136ea390e5a5f66dbf232e499459f34a0220437bcac47d837870eeb41aabc379cbf2b1dcef954bd887f3968849922694ebd701", "3 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 3 CHECKMULTISIG", "", "OK", "3-of-3" ], [ - "0 0x47 0x3044022051254b9fb476a52d85530792b578f86fea70ec1ffb4393e661bcccb23d8d63d3022076505f94a403c86097841944e044c70c2045ce90e36de51f7e9d3828db98a07501 0x47 0x304402200a358f750934b3feb822f1966bfcd8bbec9eeaa3a8ca941e11ee5960e181fa01022050bf6b5a8e7750f70354ae041cb68a7bade67ec6c3ab19eb359638974410626e01 0", + "0 0x47 0x304402204d69d5caa4dbab259f79fce89d3b459bbd91697c1c052a1554ff3b08b2241cbd0220330a8e17a90d51996e363cb8902fce6278c6350fa59ae12832db2f6a44d64dce01 0x47 0x3044022031a1e5289b0d9c33ec182a7f67210b9997187c710f7d3f0f28bdfb618c4e025c02205d95fe63ee83a20ec44159a06f7c0b43b61d5f0c346ca4a2cc7b91878ad1a85001 0", "3 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 3 CHECKMULTISIG", "", "EVAL_FALSE", "3-of-3, 2 sigs" ], [ - "0 0x47 0x304402205b7d2c2f177ae76cfbbf14d589c113b0b35db753d305d5562dd0b61cbf366cfb02202e56f93c4f08a27f986cd424ffc48a462c3202c4902104d4d0ff98ed28f4bf8001 0x47 0x30440220563e5b3b1fc11662a84bc5ea2a32cc3819703254060ba30d639a1aaf2d5068ad0220601c1f47ddc76d93284dd9ed68f7c9974c4a0ea7cbe8a247d6bc3878567a5fca01 0x4c69 0x52210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179821038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f515082103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff464053ae", + "0 0x47 0x304402205b6256a4755890fe278ea083eddf5c0519d0d7fad14fe265e077c5627171b27e02200d841cb15cdc9a9c8f3ec20c5e4bb1b0e5715d26353f500378f4215195e3558c01 0x47 0x304402200b0620f910e92621934e88ae0177b0bb381ba812d4c23c77afbf1a3ab637a0bb0220275387c859089939e22d803dfae77a4ecd122d951d0feb9e6a65a6918c2b1e0201 0x4c69 0x52210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179821038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f515082103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff464053ae", "HASH160 0x14 0xc9e4a896d149702d0d1695434feddd52e24ad78d EQUAL", "P2SH", "OK", "P2SH(2-of-3)" ], [ - "0 0x47 0x304402205b7d2c2f177ae76cfbbf14d589c113b0b35db753d305d5562dd0b61cbf366cfb02202e56f93c4f08a27f986cd424ffc48a462c3202c4902104d4d0ff98ed28f4bf8001 0 0x4c69 0x52210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179821038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f515082103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff464053ae", + "0 0x47 0x304402205b6256a4755890fe278ea083eddf5c0519d0d7fad14fe265e077c5627171b27e02200d841cb15cdc9a9c8f3ec20c5e4bb1b0e5715d26353f500378f4215195e3558c01 0 0x4c69 0x52210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179821038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f515082103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff464053ae", "HASH160 0x14 0xc9e4a896d149702d0d1695434feddd52e24ad78d EQUAL", "P2SH", "EVAL_FALSE", "P2SH(2-of-3), 1 sig" ], [ - "0x47 0x304402200060558477337b9022e70534f1fea71a318caf836812465a2509931c5e7c4987022078ec32bd50ac9e03a349ba953dfd9fe1c8d2dd8bdb1d38ddca844d3d5c78c11801", + "0x47 0x30440220007dc49df798c714600c93a94dcdffc89013aac6683c2be18c54d136fea0a26e0220681bb9fad75a638536c0cfafaca8332a15c6c4047fd3989df5d232c0efa5411f01", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKSIG", "", "OK", "P2PK with too much R padding but no DERSIG" ], [ - "0x47 0x304402200060558477337b9022e70534f1fea71a318caf836812465a2509931c5e7c4987022078ec32bd50ac9e03a349ba953dfd9fe1c8d2dd8bdb1d38ddca844d3d5c78c11801", + "0x47 0x30440220007dc49df798c714600c93a94dcdffc89013aac6683c2be18c54d136fea0a26e0220681bb9fad75a638536c0cfafaca8332a15c6c4047fd3989df5d232c0efa5411f01", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKSIG", "DERSIG", "SIG_DER", "P2PK with too much R padding" ], [ - "0x48 0x304502202de8c03fc525285c9c535631019a5f2af7c6454fa9eb392a3756a4917c420edd02210046130bf2baf7cfc065067c8b9e33a066d9c15edcea9feb0ca2d233e3597925b401", + "0x48 0x304502207a404c8f2bb2ac64db7cbd4d3490eaecb06115172d99e4447e6f4dbfbaa92fe4022100631033d772b4313d4a0d3cda8eacab93654dd8bcdfb9340ba9271be29cfc249c01", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKSIG", "", "OK", "P2PK with too much S padding but no DERSIG" ], [ - "0x48 0x304502202de8c03fc525285c9c535631019a5f2af7c6454fa9eb392a3756a4917c420edd02210046130bf2baf7cfc065067c8b9e33a066d9c15edcea9feb0ca2d233e3597925b401", + "0x48 0x304502207a404c8f2bb2ac64db7cbd4d3490eaecb06115172d99e4447e6f4dbfbaa92fe4022100631033d772b4313d4a0d3cda8eacab93654dd8bcdfb9340ba9271be29cfc249c01", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKSIG", "DERSIG", "SIG_DER", "P2PK with too much S padding" ], [ - "0x47 0x30440220d7a0417c3f6d1a15094d1cf2a3378ca0503eb8a57630953a9e2987e21ddd0a6502207a6266d686c99090920249991d3d42065b6d43eb70187b219c0db82e4f94d1a201", + "0x47 0x30440220d888248d694d649657d71a5baebb70512525ba5fe76575afb5cbbe9f0680783d022054a16bce5e3957be61e15940b11d66515bc8df1c0e090c47acf32515d56ef95001", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKSIG", "", "OK", "P2PK with too little R padding but no DERSIG" ], [ - "0x47 0x30440220d7a0417c3f6d1a15094d1cf2a3378ca0503eb8a57630953a9e2987e21ddd0a6502207a6266d686c99090920249991d3d42065b6d43eb70187b219c0db82e4f94d1a201", + "0x47 0x30440220d888248d694d649657d71a5baebb70512525ba5fe76575afb5cbbe9f0680783d022054a16bce5e3957be61e15940b11d66515bc8df1c0e090c47acf32515d56ef95001", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKSIG", "DERSIG", "SIG_DER", "P2PK with too little R padding" ], [ - "0x47 0x30440220005ece1335e7f757a1a1f476a7fb5bd90964e8a022489f890614a04acfb734c002206c12b8294a6513c7710e8c82d3c23d75cdbfe83200eb7efb495701958501a5d601", + "0x47 0x30440220001d5bd10da0bc0ab3018cea865f8d936bf625fee21464b127532f6021d5e82b02203b3660b9dccd43ae3def3ec3e1853b2566bb6bd899f5364c06508eec532f700e01", "0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 CHECKSIG NOT", "", "OK", "P2PK NOT with bad sig with too much R padding but no DERSIG" ], [ - "0x47 0x30440220005ece1335e7f757a1a1f476a7fb5bd90964e8a022489f890614a04acfb734c002206c12b8294a6513c7710e8c82d3c23d75cdbfe83200eb7efb495701958501a5d601", + "0x47 0x30440220001d5bd10da0bc0ab3018cea865f8d936bf625fee21464b127532f6021d5e82b02203b3660b9dccd43ae3def3ec3e1853b2566bb6bd899f5364c06508eec532f700e01", "0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 CHECKSIG NOT", "DERSIG", "SIG_DER", "P2PK NOT with bad sig with too much R padding" ], [ - "0x47 0x30440220005ece1335e7f657a1a1f476a7fb5bd90964e8a022489f890614a04acfb734c002206c12b8294a6513c7710e8c82d3c23d75cdbfe83200eb7efb495701958501a5d601", + "0x47 0x30440220001d5bd10da0bd0ab3018cea865f8d936bf625fee21464b127532f6021d5e82b02203b3660b9dccd43ae3def3ec3e1853b2566bb6bd899f5364c06508eec532f700e01", "0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 CHECKSIG NOT", "", "EVAL_FALSE", "P2PK NOT with too much R padding but no DERSIG" ], [ - "0x47 0x30440220005ece1335e7f657a1a1f476a7fb5bd90964e8a022489f890614a04acfb734c002206c12b8294a6513c7710e8c82d3c23d75cdbfe83200eb7efb495701958501a5d601", + "0x47 0x30440220001d5bd10da0bd0ab3018cea865f8d936bf625fee21464b127532f6021d5e82b02203b3660b9dccd43ae3def3ec3e1853b2566bb6bd899f5364c06508eec532f700e01", "0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 CHECKSIG NOT", "DERSIG", "SIG_DER", "P2PK NOT with too much R padding" ], [ - "0x47 0x30440220d7a0417c3f6d1a15094d1cf2a3378ca0503eb8a57630953a9e2987e21ddd0a6502207a6266d686c99090920249991d3d42065b6d43eb70187b219c0db82e4f94d1a201", + "0x47 0x30440220d888248d694d649657d71a5baebb70512525ba5fe76575afb5cbbe9f0680783d022054a16bce5e3957be61e15940b11d66515bc8df1c0e090c47acf32515d56ef95001", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKSIG", "", "OK", "BIP66 example 1, without DERSIG" ], [ - "0x47 0x30440220d7a0417c3f6d1a15094d1cf2a3378ca0503eb8a57630953a9e2987e21ddd0a6502207a6266d686c99090920249991d3d42065b6d43eb70187b219c0db82e4f94d1a201", + "0x47 0x30440220d888248d694d649657d71a5baebb70512525ba5fe76575afb5cbbe9f0680783d022054a16bce5e3957be61e15940b11d66515bc8df1c0e090c47acf32515d56ef95001", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKSIG", "DERSIG", "SIG_DER", "BIP66 example 1, with DERSIG" ], [ - "0x47 0x304402208e43c0b91f7c1e5bc58e41c8185f8a6086e111b0090187968a86f2822462d3c902200a58f4076b1133b18ff1dc83ee51676e44c60cc608d9534e0df5ace0424fc0be01", + "0x47 0x304402208eae7755261155b02becf6e6990fe6d1392210ff19d46cbbba5456e4b59a71cd022047054a0a3f229eaf9f597033c85877913596fa7bdaf2f1b55cf5704ce6ee99bc01", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKSIG NOT", "", "EVAL_FALSE", "BIP66 example 2, without DERSIG" ], [ - "0x47 0x304402208e43c0b91f7c1e5bc58e41c8185f8a6086e111b0090187968a86f2822462d3c902200a58f4076b1133b18ff1dc83ee51676e44c60cc608d9534e0df5ace0424fc0be01", + "0x47 0x304402208eae7755261155b02becf6e6990fe6d1392210ff19d46cbbba5456e4b59a71cd022047054a0a3f229eaf9f597033c85877913596fa7bdaf2f1b55cf5704ce6ee99bc01", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKSIG NOT", "DERSIG", "SIG_DER", @@ -1808,343 +1914,343 @@ "BIP66 example 6, with DERSIG" ], [ - "0 0x47 0x30440220cae00b1444babfbf6071b0ba8707f6bd373da3df494d6e74119b0430c5db810502205d5231b8c5939c8ff0c82242656d6e06edb073d42af336c99fe8837c36ea39d501 0x47 0x3044022027c2714269ca5aeecc4d70edc88ba5ee0e3da4986e9216028f489ab4f1b8efce022022bd545b4951215267e4c5ceabd4c5350331b2e4a0b6494c56f361fa5a57a1a201", + "0 0x47 0x30440220868d1de0f6cc0b0d465992dd177fc545df03381f5a79c171ad55990e623417da022078276700801d7f454b013ded53ddeca5d9ea55bd704e1683832ece986c09fd3201 0x47 0x304402207349bbfeebc59c0efc363dc94e0c0f0491e9c6456a86b753c4ce1ca74b51bfdf02200d94da026a56016b975451d7b0dd2c46780ac3dfa008791e0665af04a235e80f01", "2 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 2 CHECKMULTISIG", "", "OK", "BIP66 example 7, without DERSIG" ], [ - "0 0x47 0x30440220cae00b1444babfbf6071b0ba8707f6bd373da3df494d6e74119b0430c5db810502205d5231b8c5939c8ff0c82242656d6e06edb073d42af336c99fe8837c36ea39d501 0x47 0x3044022027c2714269ca5aeecc4d70edc88ba5ee0e3da4986e9216028f489ab4f1b8efce022022bd545b4951215267e4c5ceabd4c5350331b2e4a0b6494c56f361fa5a57a1a201", + "0 0x47 0x30440220868d1de0f6cc0b0d465992dd177fc545df03381f5a79c171ad55990e623417da022078276700801d7f454b013ded53ddeca5d9ea55bd704e1683832ece986c09fd3201 0x47 0x304402207349bbfeebc59c0efc363dc94e0c0f0491e9c6456a86b753c4ce1ca74b51bfdf02200d94da026a56016b975451d7b0dd2c46780ac3dfa008791e0665af04a235e80f01", "2 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 2 CHECKMULTISIG", "DERSIG", "SIG_DER", "BIP66 example 7, with DERSIG" ], [ - "0 0x47 0x30440220b119d67d389315308d1745f734a51ff3ec72e06081e84e236fdf9dc2f5d2a64802204b04e3bc38674c4422ea317231d642b56dc09d214a1ecbbf16ecca01ed996e2201 0x47 0x3044022079ea80afd538d9ada421b5101febeb6bc874e01dde5bca108c1d0479aec339a4022004576db8f66130d1df686ccf00935703689d69cf539438da1edab208b0d63c4801", + "0 0x47 0x30440220e8172152b43bc9c788442b116c2345f04591d44d5be77cd6e9acafed7cd3649e022075c0e1014e000cf02e2cc4b33159d74e94c54a5c8d2c046bae2a7e1e38896b2f01 0x47 0x30440220667437f14da10aca92795812e31784b42824d865c535584b7f01a0b1d7bda8b802203331b1f9d6421310aace34a3a8b193853bf17dcec0cfe3f2ddec806bbeee527801", "2 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 2 CHECKMULTISIG NOT", "", "EVAL_FALSE", "BIP66 example 8, without DERSIG" ], [ - "0 0x47 0x30440220b119d67d389315308d1745f734a51ff3ec72e06081e84e236fdf9dc2f5d2a64802204b04e3bc38674c4422ea317231d642b56dc09d214a1ecbbf16ecca01ed996e2201 0x47 0x3044022079ea80afd538d9ada421b5101febeb6bc874e01dde5bca108c1d0479aec339a4022004576db8f66130d1df686ccf00935703689d69cf539438da1edab208b0d63c4801", + "0 0x47 0x30440220e8172152b43bc9c788442b116c2345f04591d44d5be77cd6e9acafed7cd3649e022075c0e1014e000cf02e2cc4b33159d74e94c54a5c8d2c046bae2a7e1e38896b2f01 0x47 0x30440220667437f14da10aca92795812e31784b42824d865c535584b7f01a0b1d7bda8b802203331b1f9d6421310aace34a3a8b193853bf17dcec0cfe3f2ddec806bbeee527801", "2 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 2 CHECKMULTISIG NOT", "DERSIG", "SIG_DER", "BIP66 example 8, with DERSIG" ], [ - "0 0 0x47 0x3044022081aa9d436f2154e8b6d600516db03d78de71df685b585a9807ead4210bd883490220534bb6bdf318a419ac0749660b60e78d17d515558ef369bf872eff405b676b2e01", + "0 0 0x47 0x30440220e6afebaa7f2b0a06c014519ee51d97e73365151e802a3913bb9b1198021ffdb702200e6cbbe6ba99a5b4424756a544e5ffed5867b67430b9ba893f2b65309a8a762d01", "2 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 2 CHECKMULTISIG", "", "EVAL_FALSE", "BIP66 example 9, without DERSIG" ], [ - "0 0 0x47 0x3044022081aa9d436f2154e8b6d600516db03d78de71df685b585a9807ead4210bd883490220534bb6bdf318a419ac0749660b60e78d17d515558ef369bf872eff405b676b2e01", + "0 0 0x47 0x30440220e6afebaa7f2b0a06c014519ee51d97e73365151e802a3913bb9b1198021ffdb702200e6cbbe6ba99a5b4424756a544e5ffed5867b67430b9ba893f2b65309a8a762d01", "2 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 2 CHECKMULTISIG", "DERSIG", "SIG_DER", "BIP66 example 9, with DERSIG" ], [ - "0 0 0x47 0x30440220da6f441dc3b4b2c84cfa8db0cd5b34ed92c9e01686de5a800d40498b70c0dcac02207c2cf91b0c32b860c4cd4994be36cfb84caf8bb7c3a8e4d96a31b2022c5299c501", + "0 0 0x47 0x30440220e8e61fae71ba1147b92ea58aae6d314001d6071add352af500da476f466782600220112491a261785241c009386e18a5f79b946a58ba958081a7da1ccec31f3aa9bc01", "2 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 2 CHECKMULTISIG NOT", "", "OK", "BIP66 example 10, without DERSIG" ], [ - "0 0 0x47 0x30440220da6f441dc3b4b2c84cfa8db0cd5b34ed92c9e01686de5a800d40498b70c0dcac02207c2cf91b0c32b860c4cd4994be36cfb84caf8bb7c3a8e4d96a31b2022c5299c501", + "0 0 0x47 0x30440220e8e61fae71ba1147b92ea58aae6d314001d6071add352af500da476f466782600220112491a261785241c009386e18a5f79b946a58ba958081a7da1ccec31f3aa9bc01", "2 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 2 CHECKMULTISIG NOT", "DERSIG", "SIG_DER", "BIP66 example 10, with DERSIG" ], [ - "0 0x47 0x30440220cae00b1444babfbf6071b0ba8707f6bd373da3df494d6e74119b0430c5db810502205d5231b8c5939c8ff0c82242656d6e06edb073d42af336c99fe8837c36ea39d501 0", + "0 0x47 0x30440220868d1de0f6cc0b0d465992dd177fc545df03381f5a79c171ad55990e623417da022078276700801d7f454b013ded53ddeca5d9ea55bd704e1683832ece986c09fd3201 0", "2 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 2 CHECKMULTISIG", "", "EVAL_FALSE", "BIP66 example 11, without DERSIG" ], [ - "0 0x47 0x30440220cae00b1444babfbf6071b0ba8707f6bd373da3df494d6e74119b0430c5db810502205d5231b8c5939c8ff0c82242656d6e06edb073d42af336c99fe8837c36ea39d501 0", + "0 0x47 0x30440220868d1de0f6cc0b0d465992dd177fc545df03381f5a79c171ad55990e623417da022078276700801d7f454b013ded53ddeca5d9ea55bd704e1683832ece986c09fd3201 0", "2 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 2 CHECKMULTISIG", "DERSIG", "EVAL_FALSE", "BIP66 example 11, with DERSIG" ], [ - "0 0x47 0x30440220b119d67d389315308d1745f734a51ff3ec72e06081e84e236fdf9dc2f5d2a64802204b04e3bc38674c4422ea317231d642b56dc09d214a1ecbbf16ecca01ed996e2201 0", + "0 0x47 0x30440220e8172152b43bc9c788442b116c2345f04591d44d5be77cd6e9acafed7cd3649e022075c0e1014e000cf02e2cc4b33159d74e94c54a5c8d2c046bae2a7e1e38896b2f01 0", "2 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 2 CHECKMULTISIG NOT", "", "OK", "BIP66 example 12, without DERSIG" ], [ - "0 0x47 0x30440220b119d67d389315308d1745f734a51ff3ec72e06081e84e236fdf9dc2f5d2a64802204b04e3bc38674c4422ea317231d642b56dc09d214a1ecbbf16ecca01ed996e2201 0", + "0 0x47 0x30440220e8172152b43bc9c788442b116c2345f04591d44d5be77cd6e9acafed7cd3649e022075c0e1014e000cf02e2cc4b33159d74e94c54a5c8d2c046bae2a7e1e38896b2f01 0", "2 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 2 CHECKMULTISIG NOT", "DERSIG", "OK", "BIP66 example 12, with DERSIG" ], [ - "0x48 0x304402203e4516da7253cf068effec6b95c41221c0cf3a8e6ccb8cbf1725b562e9afde2c022054e1c258c2981cdfba5df1f46661fb6541c44f77ca0092f3600331abfffb12510101", + "0x48 0x3044022032d4a3dec9cad54c94b5585fb058f7e41ac5173843b0c2e7197a40421ee4ab54022041d4d4296d8c2821bb39f6349f0140bc2c95f16496df9fcd894758673d1db7d80101", "0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 CHECKSIG", "", "OK", "P2PK with multi-byte hashtype, without DERSIG" ], [ - "0x48 0x304402203e4516da7253cf068effec6b95c41221c0cf3a8e6ccb8cbf1725b562e9afde2c022054e1c258c2981cdfba5df1f46661fb6541c44f77ca0092f3600331abfffb12510101", + "0x48 0x3044022032d4a3dec9cad54c94b5585fb058f7e41ac5173843b0c2e7197a40421ee4ab54022041d4d4296d8c2821bb39f6349f0140bc2c95f16496df9fcd894758673d1db7d80101", "0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 CHECKSIG", "DERSIG", "SIG_DER", "P2PK with multi-byte hashtype, with DERSIG" ], [ - "0x48 0x304502203e4516da7253cf068effec6b95c41221c0cf3a8e6ccb8cbf1725b562e9afde2c022100ab1e3da73d67e32045a20e0b999e049978ea8d6ee5480d485fcf2ce0d03b2ef001", + "0x48 0x3045022032d4a3dec9cad54c94b5585fb058f7e41ac5173843b0c2e7197a40421ee4ab54022100be2b2bd69273d7de44c609cb60febf428e18eb821869006e368b06259318896901", "0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 CHECKSIG", "", "OK", "P2PK with high S but no LOW_S" ], [ - "0x48 0x304502203e4516da7253cf068effec6b95c41221c0cf3a8e6ccb8cbf1725b562e9afde2c022100ab1e3da73d67e32045a20e0b999e049978ea8d6ee5480d485fcf2ce0d03b2ef001", + "0x48 0x3045022032d4a3dec9cad54c94b5585fb058f7e41ac5173843b0c2e7197a40421ee4ab54022100be2b2bd69273d7de44c609cb60febf428e18eb821869006e368b06259318896901", "0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 CHECKSIG", "LOW_S", "SIG_HIGH_S", "P2PK with high S" ], [ - "0x47 0x3044022057292e2d4dfe775becdd0a9e6547997c728cdf35390f6a017da56d654d374e4902206b643be2fc53763b4e284845bfea2c597d2dc7759941dce937636c9d341b71ed01", + "0x47 0x304402201162483d0440fc508d79d314a91cfc4df4ea31b302f02c16893fa15d9c9f7f06022032afebdd5b2964c40c887b967f9599e0e5b5ff5b2f899ab62ada12a5af2a481701", "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG", "", "OK", "P2PK with hybrid pubkey but no STRICTENC" ], [ - "0x47 0x3044022057292e2d4dfe775becdd0a9e6547997c728cdf35390f6a017da56d654d374e4902206b643be2fc53763b4e284845bfea2c597d2dc7759941dce937636c9d341b71ed01", + "0x47 0x304402201162483d0440fc508d79d314a91cfc4df4ea31b302f02c16893fa15d9c9f7f06022032afebdd5b2964c40c887b967f9599e0e5b5ff5b2f899ab62ada12a5af2a481701", "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG", "STRICTENC", "PUBKEYTYPE", "P2PK with hybrid pubkey" ], [ - "0x47 0x30440220035d554e3153c14950c9993f41c496607a8e24093db0595be7bf875cf64fcf1f02204731c8c4e5daf15e706cec19cdd8f2c5b1d05490e11dab8465ed426569b6e92101", + "0x47 0x3044022057a786d0e26b1bad0f928d05b94a995afefe4f523450ef82893779e95cf2042102203b049387f08eac1829061b91a6cf0b67280b4b4948e4e1773d3b4dfbbd64a4c001", "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG NOT", "", "EVAL_FALSE", "P2PK NOT with hybrid pubkey but no STRICTENC" ], [ - "0x47 0x30440220035d554e3153c14950c9993f41c496607a8e24093db0595be7bf875cf64fcf1f02204731c8c4e5daf15e706cec19cdd8f2c5b1d05490e11dab8465ed426569b6e92101", + "0x47 0x3044022057a786d0e26b1bad0f928d05b94a995afefe4f523450ef82893779e95cf2042102203b049387f08eac1829061b91a6cf0b67280b4b4948e4e1773d3b4dfbbd64a4c001", "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG NOT", "STRICTENC", "PUBKEYTYPE", "P2PK NOT with hybrid pubkey" ], [ - "0x47 0x30440220035d554e3153c04950c9993f41c496607a8e24093db0595be7bf875cf64fcf1f02204731c8c4e5daf15e706cec19cdd8f2c5b1d05490e11dab8465ed426569b6e92101", + "0x47 0x3044022057a786d0e26b1aad0f928d05b94a995afefe4f523450ef82893779e95cf2042102203b049387f08eac1829061b91a6cf0b67280b4b4948e4e1773d3b4dfbbd64a4c001", "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG NOT", "", "OK", "P2PK NOT with invalid hybrid pubkey but no STRICTENC" ], [ - "0x47 0x30440220035d554e3153c04950c9993f41c496607a8e24093db0595be7bf875cf64fcf1f02204731c8c4e5daf15e706cec19cdd8f2c5b1d05490e11dab8465ed426569b6e92101", + "0x47 0x3044022057a786d0e26b1aad0f928d05b94a995afefe4f523450ef82893779e95cf2042102203b049387f08eac1829061b91a6cf0b67280b4b4948e4e1773d3b4dfbbd64a4c001", "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG NOT", "STRICTENC", "PUBKEYTYPE", "P2PK NOT with invalid hybrid pubkey" ], [ - "0 0x47 0x304402202e79441ad1baf5a07fb86bae3753184f6717d9692680947ea8b6e8b777c69af1022079a262e13d868bb5a0964fefe3ba26942e1b0669af1afb55ef3344bc9d4fc4c401", + "0 0x47 0x30440220379db2a13c8c679bda7f500c93bae36e0d75c96b8af1754316a9c80e843f2923022046ee947cd3b916ab78f95be6ae29cc2f037ddb47f8e59c966b1e6813b270648001", "1 0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 2 CHECKMULTISIG", "", "OK", "1-of-2 with the second 1 hybrid pubkey and no STRICTENC" ], [ - "0 0x47 0x304402202e79441ad1baf5a07fb86bae3753184f6717d9692680947ea8b6e8b777c69af1022079a262e13d868bb5a0964fefe3ba26942e1b0669af1afb55ef3344bc9d4fc4c401", + "0 0x47 0x30440220379db2a13c8c679bda7f500c93bae36e0d75c96b8af1754316a9c80e843f2923022046ee947cd3b916ab78f95be6ae29cc2f037ddb47f8e59c966b1e6813b270648001", "1 0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 2 CHECKMULTISIG", "STRICTENC", "OK", "1-of-2 with the second 1 hybrid pubkey" ], [ - "0 0x47 0x3044022079c7824d6c868e0e1a273484e28c2654a27d043c8a27f49f52cb72efed0759090220452bbbf7089574fa082095a4fc1b3a16bafcf97a3a34d745fafc922cce66b27201", + "0 0x47 0x304402202d4dd56f6dee2eccc049a4ebd65e77e4325aa3f2940130412b9f96fd28fa8c5a022074963950dd250d2fc943e60c7a4133cc8b1fcc46253e9b19f71c9723d1d894ef01", "1 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 2 CHECKMULTISIG", "STRICTENC", "PUBKEYTYPE", "1-of-2 with the first 1 hybrid pubkey" ], [ - "0x47 0x304402206177d513ec2cda444c021a1f4f656fc4c72ba108ae063e157eb86dc3575784940220666fc66702815d0e5413bb9b1df22aed44f5f1efb8b99d41dd5dc9a5be6d205205", + "0x47 0x30440220020cf2d9ccc6d8a8b2f6f0f90e9805845194d9715392e58f08e1b63d2566c53e02207b75a322355b3820f59dffc5793ed5947aa3f4e460edeb28cc306573db09495705", "0x41 0x048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf CHECKSIG", "", "OK", "P2PK with undefined hashtype but no STRICTENC" ], [ - "0x47 0x304402206177d513ec2cda444c021a1f4f656fc4c72ba108ae063e157eb86dc3575784940220666fc66702815d0e5413bb9b1df22aed44f5f1efb8b99d41dd5dc9a5be6d205205", + "0x47 0x30440220020cf2d9ccc6d8a8b2f6f0f90e9805845194d9715392e58f08e1b63d2566c53e02207b75a322355b3820f59dffc5793ed5947aa3f4e460edeb28cc306573db09495705", "0x41 0x048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf CHECKSIG", "STRICTENC", "SIG_HASHTYPE", "P2PK with undefined hashtype" ], [ - "0x47 0x30440220647a83507454f15f85f7e24de6e70c9d7b1d4020c71d0e53f4412425487e1dde022015737290670b4ab17b6783697a88ddd581c2d9c9efe26a59ac213076fc67f53021 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8", + "0x47 0x3044022070fd4f47970fdb7814b79482d1132a7c3598437bef78f8458de6e5d66ce918fd02204e657846fee57cb6fc3cbaae6b85db8646cc351f96155c86387388c2e8a5a83a21 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8", "DUP HASH160 0x14 0x91b24bf9f5288532960ac687abb035127b1d28a5 EQUALVERIFY CHECKSIG", "", "OK", "P2PKH with invalid sighashtype" ], [ - "0x47 0x30440220647a83507454f15f85f7e24de6e70c9d7b1d4020c71d0e53f4412425487e1dde022015737290670b4ab17b6783697a88ddd581c2d9c9efe26a59ac213076fc67f53021 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8", + "0x47 0x3044022070fd4f47970fdb7814b79482d1132a7c3598437bef78f8458de6e5d66ce918fd02204e657846fee57cb6fc3cbaae6b85db8646cc351f96155c86387388c2e8a5a83a21 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8", "DUP HASH160 0x14 0x91b24bf9f5288532960ac687abb035127b1d28a5 EQUALVERIFY CHECKSIG", "STRICTENC", "SIG_HASHTYPE", "P2PKH with invalid sighashtype and STRICTENC" ], [ - "0x47 0x304402200874e1681429dcddb8a1b6f573cb450692d08b41ab2078190dbb95478dc9ce3602206964f027a39cfdcbf7af62190db04406357a3017f7e82193ef3df4aff3cd87da21 0x43 0x41048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26cafac", + "0x47 0x30440220643b4c3979d9d2c41842d4843113c1b40ca1df85805c7c654cabb015208c23f702207d3675bf98419065ac9a24865b652551849a0b1e52fdc429cd150f5e7897627821 0x43 0x41048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26cafac", "HASH160 0x14 0x49ba2f86705b5dcd48d93b750f03289db3b8ce21 EQUAL", "P2SH", "OK", "P2SH(P2PK) with invalid sighashtype" ], [ - "0x47 0x304402200874e1681429dcddb8a1b6f573cb450692d08b41ab2078190dbb95478dc9ce3602206964f027a39cfdcbf7af62190db04406357a3017f7e82193ef3df4aff3cd87da21 0x43 0x41048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26cafac", + "0x47 0x30440220643b4c3979d9d2c41842d4843113c1b40ca1df85805c7c654cabb015208c23f702207d3675bf98419065ac9a24865b652551849a0b1e52fdc429cd150f5e7897627821 0x43 0x41048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26cafac", "HASH160 0x14 0x49ba2f86705b5dcd48d93b750f03289db3b8ce21 EQUAL", "P2SH,STRICTENC", "SIG_HASHTYPE", "P2SH(P2PK) with invalid sighashtype and STRICTENC" ], [ - "0x47 0x304402207409b5b320296e5e2136a7b281a7f803028ca4ca44e2b83eebd46932677725de02202d4eea1c8d3c98e6f42614f54764e6e5e6542e213eb4d079737e9a8b6e9812ec05", + "0x47 0x304402200cbfa0902c2129020eb09acbf89725a409573096046d4bb7ba0bdc2af1588139022062a9c69be90b7f434c7e38a8a741df604a695610a8f6a0789082f1104f72d57105", "0x41 0x048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf CHECKSIG NOT", "", "OK", "P2PK NOT with invalid sig and undefined hashtype but no STRICTENC" ], [ - "0x47 0x304402207409b5b320296e5e2136a7b281a7f803028ca4ca44e2b83eebd46932677725de02202d4eea1c8d3c98e6f42614f54764e6e5e6542e213eb4d079737e9a8b6e9812ec05", + "0x47 0x304402200cbfa0902c2129020eb09acbf89725a409573096046d4bb7ba0bdc2af1588139022062a9c69be90b7f434c7e38a8a741df604a695610a8f6a0789082f1104f72d57105", "0x41 0x048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf CHECKSIG NOT", "STRICTENC", "SIG_HASHTYPE", "P2PK NOT with invalid sig and undefined hashtype" ], [ - "1 0x47 0x3044022051254b9fb476a52d85530792b578f86fea70ec1ffb4393e661bcccb23d8d63d3022076505f94a403c86097841944e044c70c2045ce90e36de51f7e9d3828db98a07501 0x47 0x304402200a358f750934b3feb822f1966bfcd8bbec9eeaa3a8ca941e11ee5960e181fa01022050bf6b5a8e7750f70354ae041cb68a7bade67ec6c3ab19eb359638974410626e01 0x47 0x304402200955d031fff71d8653221e85e36c3c85533d2312fc3045314b19650b7ae2f81002202a6bb8505e36201909d0921f01abff390ae6b7ff97bbf959f98aedeb0a56730901", + "1 0x47 0x304402204d69d5caa4dbab259f79fce89d3b459bbd91697c1c052a1554ff3b08b2241cbd0220330a8e17a90d51996e363cb8902fce6278c6350fa59ae12832db2f6a44d64dce01 0x47 0x3044022031a1e5289b0d9c33ec182a7f67210b9997187c710f7d3f0f28bdfb618c4e025c02205d95fe63ee83a20ec44159a06f7c0b43b61d5f0c346ca4a2cc7b91878ad1a85001 0x47 0x304402200a9faba8228f7a86bf6c3b2a0da0e2f9136ea390e5a5f66dbf232e499459f34a0220437bcac47d837870eeb41aabc379cbf2b1dcef954bd887f3968849922694ebd701", "3 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 3 CHECKMULTISIG", "", "OK", "3-of-3 with nonzero dummy but no NULLDUMMY" ], [ - "1 0x47 0x3044022051254b9fb476a52d85530792b578f86fea70ec1ffb4393e661bcccb23d8d63d3022076505f94a403c86097841944e044c70c2045ce90e36de51f7e9d3828db98a07501 0x47 0x304402200a358f750934b3feb822f1966bfcd8bbec9eeaa3a8ca941e11ee5960e181fa01022050bf6b5a8e7750f70354ae041cb68a7bade67ec6c3ab19eb359638974410626e01 0x47 0x304402200955d031fff71d8653221e85e36c3c85533d2312fc3045314b19650b7ae2f81002202a6bb8505e36201909d0921f01abff390ae6b7ff97bbf959f98aedeb0a56730901", + "1 0x47 0x304402204d69d5caa4dbab259f79fce89d3b459bbd91697c1c052a1554ff3b08b2241cbd0220330a8e17a90d51996e363cb8902fce6278c6350fa59ae12832db2f6a44d64dce01 0x47 0x3044022031a1e5289b0d9c33ec182a7f67210b9997187c710f7d3f0f28bdfb618c4e025c02205d95fe63ee83a20ec44159a06f7c0b43b61d5f0c346ca4a2cc7b91878ad1a85001 0x47 0x304402200a9faba8228f7a86bf6c3b2a0da0e2f9136ea390e5a5f66dbf232e499459f34a0220437bcac47d837870eeb41aabc379cbf2b1dcef954bd887f3968849922694ebd701", "3 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 3 CHECKMULTISIG", "NULLDUMMY", "SIG_NULLDUMMY", "3-of-3 with nonzero dummy" ], [ - "1 0x47 0x304402201bb2edab700a5d020236df174fefed78087697143731f659bea59642c759c16d022061f42cdbae5bcd3e8790f20bf76687443436e94a634321c16a72aa54cbc7c2ea01 0x47 0x304402204bb4a64f2a6e5c7fb2f07fef85ee56fde5e6da234c6a984262307a20e99842d702206f8303aaba5e625d223897e2ffd3f88ef1bcffef55f38dc3768e5f2e94c923f901 0x47 0x3044022040c2809b71fffb155ec8b82fe7a27f666bd97f941207be4e14ade85a1249dd4d02204d56c85ec525dd18e29a0533d5ddf61b6b1bb32980c2f63edf951aebf7a27bfe01", + "1 0x47 0x304402203f78692a12d075d5057dea07265f0ba8ede774f083b85896fe07231efbe155da0220388fc48ffd8fb1c189fbf8bd767ee1c38b3f5d864b18faa1d81d0c3670cda85b01 0x47 0x3044022070a2850b5363fc49db8f617f08f5947bb85a1d439da07a6dc0d2fc178d9a5f3f022019e15a476e9dab8e3cb18a2bcae279366b1701c1b11c020851517cf03132bbff01 0x47 0x304402206457d83204e94902c789a16fa9e2f1f1d25684c7748c93373e9077b01a49b80a02204b0509cba423c7bbad8f80653c54a1ce10c901d33292464a4d5162f2016ddc2901", "3 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 3 CHECKMULTISIG NOT", "", "OK", "3-of-3 NOT with invalid sig and nonzero dummy but no NULLDUMMY" ], [ - "1 0x47 0x304402201bb2edab700a5d020236df174fefed78087697143731f659bea59642c759c16d022061f42cdbae5bcd3e8790f20bf76687443436e94a634321c16a72aa54cbc7c2ea01 0x47 0x304402204bb4a64f2a6e5c7fb2f07fef85ee56fde5e6da234c6a984262307a20e99842d702206f8303aaba5e625d223897e2ffd3f88ef1bcffef55f38dc3768e5f2e94c923f901 0x47 0x3044022040c2809b71fffb155ec8b82fe7a27f666bd97f941207be4e14ade85a1249dd4d02204d56c85ec525dd18e29a0533d5ddf61b6b1bb32980c2f63edf951aebf7a27bfe01", + "1 0x47 0x304402203f78692a12d075d5057dea07265f0ba8ede774f083b85896fe07231efbe155da0220388fc48ffd8fb1c189fbf8bd767ee1c38b3f5d864b18faa1d81d0c3670cda85b01 0x47 0x3044022070a2850b5363fc49db8f617f08f5947bb85a1d439da07a6dc0d2fc178d9a5f3f022019e15a476e9dab8e3cb18a2bcae279366b1701c1b11c020851517cf03132bbff01 0x47 0x304402206457d83204e94902c789a16fa9e2f1f1d25684c7748c93373e9077b01a49b80a02204b0509cba423c7bbad8f80653c54a1ce10c901d33292464a4d5162f2016ddc2901", "3 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 3 CHECKMULTISIG NOT", "NULLDUMMY", "SIG_NULLDUMMY", "3-of-3 NOT with invalid sig with nonzero dummy" ], [ - "0 0x47 0x304402200abeb4bd07f84222f474aed558cfbdfc0b4e96cde3c2935ba7098b1ff0bd74c302204a04c1ca67b2a20abee210cf9a21023edccbbf8024b988812634233115c6b73901 DUP", + "0 0x47 0x3044022044b11d5a64bebbd4280c616146bc961eed3081300eef527fbe8da91f6775892a022045b044719bf5c7100617cd518fff22c102f93e6768ed986543668be43bc44d1601 DUP", "2 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 2 CHECKMULTISIG", "", "OK", "2-of-2 with two identical keys and sigs pushed using OP_DUP but no SIGPUSHONLY" ], [ - "0 0x47 0x304402200abeb4bd07f84222f474aed558cfbdfc0b4e96cde3c2935ba7098b1ff0bd74c302204a04c1ca67b2a20abee210cf9a21023edccbbf8024b988812634233115c6b73901 DUP", + "0 0x47 0x3044022044b11d5a64bebbd4280c616146bc961eed3081300eef527fbe8da91f6775892a022045b044719bf5c7100617cd518fff22c102f93e6768ed986543668be43bc44d1601 DUP", "2 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 2 CHECKMULTISIG", "SIGPUSHONLY", "SIG_PUSHONLY", "2-of-2 with two identical keys and sigs pushed using OP_DUP" ], [ - "0x47 0x3044022018a2a81a93add5cb5f5da76305718e4ea66045ec4888b28d84cb22fae7f4645b02201e6daa5ed5d2e4b2b2027cf7ffd43d8d9844dd49f74ef86899ec8e669dfd39aa01 NOP8 0x23 0x2103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640ac", + "0x47 0x304402204b26ae3298e583956aed912c1e6a32b94efc4cf3a97495d83f7a6edd64f8c11702204d0b112f3ebbffe8a0626deb57f62f33432fae8dc1a3de1658464bbb12f8260c01 NOP8 0x23 0x2103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640ac", "HASH160 0x14 0x215640c2f72f0d16b4eced26762035a42ffed39a EQUAL", "", "OK", "P2SH(P2PK) with non-push scriptSig but no P2SH or SIGPUSHONLY" ], [ - "0x47 0x304402203e4516da7253cf068effec6b95c41221c0cf3a8e6ccb8cbf1725b562e9afde2c022054e1c258c2981cdfba5df1f46661fb6541c44f77ca0092f3600331abfffb125101 NOP8", + "0x47 0x3044022032d4a3dec9cad54c94b5585fb058f7e41ac5173843b0c2e7197a40421ee4ab54022041d4d4296d8c2821bb39f6349f0140bc2c95f16496df9fcd894758673d1db7d801 NOP8", "0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 CHECKSIG", "", "OK", "P2PK with non-push scriptSig but with P2SH validation" ], [ - "0x47 0x3044022018a2a81a93add5cb5f5da76305718e4ea66045ec4888b28d84cb22fae7f4645b02201e6daa5ed5d2e4b2b2027cf7ffd43d8d9844dd49f74ef86899ec8e669dfd39aa01 NOP8 0x23 0x2103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640ac", + "0x47 0x304402204b26ae3298e583956aed912c1e6a32b94efc4cf3a97495d83f7a6edd64f8c11702204d0b112f3ebbffe8a0626deb57f62f33432fae8dc1a3de1658464bbb12f8260c01 NOP8 0x23 0x2103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640ac", "HASH160 0x14 0x215640c2f72f0d16b4eced26762035a42ffed39a EQUAL", "P2SH", "SIG_PUSHONLY", "P2SH(P2PK) with non-push scriptSig but no SIGPUSHONLY" ], [ - "0x47 0x3044022018a2a81a93add5cb5f5da76305718e4ea66045ec4888b28d84cb22fae7f4645b02201e6daa5ed5d2e4b2b2027cf7ffd43d8d9844dd49f74ef86899ec8e669dfd39aa01 NOP8 0x23 0x2103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640ac", + "0x47 0x304402204b26ae3298e583956aed912c1e6a32b94efc4cf3a97495d83f7a6edd64f8c11702204d0b112f3ebbffe8a0626deb57f62f33432fae8dc1a3de1658464bbb12f8260c01 NOP8 0x23 0x2103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640ac", "HASH160 0x14 0x215640c2f72f0d16b4eced26762035a42ffed39a EQUAL", "SIGPUSHONLY", "SIG_PUSHONLY", "P2SH(P2PK) with non-push scriptSig but not P2SH" ], [ - "0 0x47 0x304402200abeb4bd07f84222f474aed558cfbdfc0b4e96cde3c2935ba7098b1ff0bd74c302204a04c1ca67b2a20abee210cf9a21023edccbbf8024b988812634233115c6b73901 0x47 0x304402200abeb4bd07f84222f474aed558cfbdfc0b4e96cde3c2935ba7098b1ff0bd74c302204a04c1ca67b2a20abee210cf9a21023edccbbf8024b988812634233115c6b73901", + "0 0x47 0x3044022044b11d5a64bebbd4280c616146bc961eed3081300eef527fbe8da91f6775892a022045b044719bf5c7100617cd518fff22c102f93e6768ed986543668be43bc44d1601 0x47 0x3044022044b11d5a64bebbd4280c616146bc961eed3081300eef527fbe8da91f6775892a022045b044719bf5c7100617cd518fff22c102f93e6768ed986543668be43bc44d1601", "2 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 2 CHECKMULTISIG", "SIGPUSHONLY", "OK", "2-of-2 with two identical keys and sigs pushed" ], [ - "11 0x47 0x304402200a5c6163f07b8d3b013c4d1d6dba25e780b39658d79ba37af7057a3b7f15ffa102201fd9b4eaa9943f734928b99a83592c2e7bf342ea2680f6a2bb705167966b742001", + "11 0x47 0x3044022022127048516d473153d1f74e46e828496776752e3255f672f760a41e83f54e6f0220502956b739ed82aad916dc4a73e1fd55d02aad514b5211f1ba7d0dadf53c637901", "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG", "P2SH", "OK", "P2PK with unnecessary input but no CLEANSTACK" ], [ - "11 0x47 0x304402200a5c6163f07b8d3b013c4d1d6dba25e780b39658d79ba37af7057a3b7f15ffa102201fd9b4eaa9943f734928b99a83592c2e7bf342ea2680f6a2bb705167966b742001", + "11 0x47 0x3044022022127048516d473153d1f74e46e828496776752e3255f672f760a41e83f54e6f0220502956b739ed82aad916dc4a73e1fd55d02aad514b5211f1ba7d0dadf53c637901", "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG", "CLEANSTACK,P2SH", "CLEANSTACK", "P2PK with unnecessary input" ], [ - "11 0x47 0x304402202f7505132be14872581f35d74b759212d9da40482653f1ffa3116c3294a4a51702206adbf347a2240ca41c66522b1a22a41693610b76a8e7770645dc721d1635854f01 0x43 0x410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8ac", + "11 0x47 0x3044022065066ad31463bd8ebb9cb7ef621e9c96fa3411a3ed393a3e41120a7ea688babf02206869ac4e007f853c1a15bca2670eabeb9a54cac1bddf5c4f73c03f8c17cbffa701 0x43 0x410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8ac", "HASH160 0x14 0x31edc23bdafda4639e669f89ad6b2318dd79d032 EQUAL", "P2SH", "OK", "P2SH with unnecessary input but no CLEANSTACK" ], [ - "11 0x47 0x304402202f7505132be14872581f35d74b759212d9da40482653f1ffa3116c3294a4a51702206adbf347a2240ca41c66522b1a22a41693610b76a8e7770645dc721d1635854f01 0x43 0x410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8ac", + "11 0x47 0x3044022065066ad31463bd8ebb9cb7ef621e9c96fa3411a3ed393a3e41120a7ea688babf02206869ac4e007f853c1a15bca2670eabeb9a54cac1bddf5c4f73c03f8c17cbffa701 0x43 0x410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8ac", "HASH160 0x14 0x31edc23bdafda4639e669f89ad6b2318dd79d032 EQUAL", "CLEANSTACK,P2SH", "CLEANSTACK", "P2SH with unnecessary input" ], [ - "0x47 0x304402202f7505132be14872581f35d74b759212d9da40482653f1ffa3116c3294a4a51702206adbf347a2240ca41c66522b1a22a41693610b76a8e7770645dc721d1635854f01 0x43 0x410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8ac", + "0x47 0x3044022065066ad31463bd8ebb9cb7ef621e9c96fa3411a3ed393a3e41120a7ea688babf02206869ac4e007f853c1a15bca2670eabeb9a54cac1bddf5c4f73c03f8c17cbffa701 0x43 0x410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8ac", "HASH160 0x14 0x31edc23bdafda4639e669f89ad6b2318dd79d032 EQUAL", "CLEANSTACK,P2SH", "OK", @@ -2154,7 +2260,7 @@ [ 123450.00000000 ], - "0x47 0x30440220368d68340dfbebf99d5ec87d77fba899763e466c0a7ab2fa0221fb868ab0f3ef0220266c1a52a8e5b7b597613b80cf53814d3925dfb6715dce712c8e7a25e63a044041", + "0x47 0x304402206e3afa6dd4d1db87538fa48a0ef3f824d7ec554103fe5fb3527254d78bd79617022066097e981df0d1ce3c07224a73585ca1f5e8ebdf79639b2cc73c20bde066075141", "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG", "SIGHASH_FORKID", "OK", @@ -2164,7 +2270,7 @@ [ 123450.00000000 ], - "0x47 0x3044022053cebf0befa1f435d1631d7b0de2c870203b4cedcce98bd2ce6b72e08978e1a302203b63345ec2de3682eec5f008a3b1c925b2f71be53f0469a49fb7f1df0c49409b41", + "0x47 0x3044022054e19540c81ccb214b62acda158faf01440d98adab2e13ed43a4d35cc551bfff02205b05fc09882819b3fdbe56adfef63243d7faa5c4837db0c72ad9356eae9a5b8c41", "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG", "SIGHASH_FORKID", "EVAL_FALSE", @@ -2174,7 +2280,7 @@ [ 123450.00000000 ], - "0x47 0x30440220368d68340dfbebf99d5ec87d77fba899763e466c0a7ab2fa0221fb868ab0f3ef0220266c1a52a8e5b7b597613b80cf53814d3925dfb6715dce712c8e7a25e63a044041", + "0x47 0x304402206e3afa6dd4d1db87538fa48a0ef3f824d7ec554103fe5fb3527254d78bd79617022066097e981df0d1ce3c07224a73585ca1f5e8ebdf79639b2cc73c20bde066075141", "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG", "STRICTENC", "ILLEGAL_FORKID", @@ -2184,7 +2290,7 @@ [ 123450.00000000 ], - "0x47 0x3044022037611855758bff48e49f99ad521223506d175364b652a5a4d02282f1e48367cc02200b513f17ee300d64f339872594c3e2ee3411242ef506ad4cc7dbdbd029ca7f2f41", + "0x47 0x304402205ce75e7249823fe2cc78f861579189f8e10585008aa057d4e6d755bfca1c8c6802200f63547feabc3f198f18742e84d57d6ca4bdd477d10a121554647cba36742f2b41", "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG", "REPLAY_PROTECTION,SIGHASH_FORKID", "OK", @@ -2194,28 +2300,28 @@ [ 123450.00000000 ], - "0x47 0x30440220368d68340dfbebf99d5ec87d77fba899763e466c0a7ab2fa0221fb868ab0f3ef0220266c1a52a8e5b7b597613b80cf53814d3925dfb6715dce712c8e7a25e63a044041", + "0x47 0x304402206e3afa6dd4d1db87538fa48a0ef3f824d7ec554103fe5fb3527254d78bd79617022066097e981df0d1ce3c07224a73585ca1f5e8ebdf79639b2cc73c20bde066075141", "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG", "REPLAY_PROTECTION,SIGHASH_FORKID", "EVAL_FALSE", "P2PK REPLAY PROTECTED" ], [ - "0x46 0x30440220256c12175e809381f97637933ed6ab97737d263eaaebca6add21bced67fd12a402205ce29ecc1369d6fc1b51977ed38faaf41119e3be1d7edfafd7cfaf0b6061bd07 0", + "0x46 0x3044022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022037964f01a61db1b24ea44137b3d67d7095ec25f68bd7b508e01441e5539d96a9 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", "CHECKDATASIG,NULLFAIL,STRICTENC", "OK", "Standard CHECKDATASIG" ], [ - "0x46 0x30440220256c12175e809381f97637933ed6ab97737d263eaaebca6add21bced67fd12a402205ce29ecc1369d6fc1b51977ed38faaf41119e3be1d7edfafd7cfaf0b6061bd07 1", + "0x46 0x3044022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022037964f01a61db1b24ea44137b3d67d7095ec25f68bd7b508e01441e5539d96a9 1", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG NOT", "CHECKDATASIG,NULLFAIL,STRICTENC", "NULLFAIL", "CHECKDATASIG with NULLFAIL flags" ], [ - "0x46 0x30440220256c12175e809381f97637933ed6ab97737d263eaaebca6add21bced67fd12a402205ce29ecc1369d6fc1b51977ed38faaf41119e3be1d7edfafd7cfaf0b6061bd07 1", + "0x46 0x3044022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022037964f01a61db1b24ea44137b3d67d7095ec25f68bd7b508e01441e5539d96a9 1", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG NOT", "CHECKDATASIG,STRICTENC", "OK", @@ -2229,77 +2335,77 @@ "CHECKDATASIG empty signature" ], [ - "0x47 0x30450220256c12175e809381f97637933ed6ab97737d263eaaebca6add21bced67fd12a4022100a31d6133ec962903e4ae68812c70550aa994f92891c9c08be802af816fd4843a 0", + "0x47 0x3045022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022100c869b0fe59e24e4db15bbec84c29828e24c2b6f02370eb32dfbe1ca77c98aa98 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", "CHECKDATASIG,NULLFAIL,STRICTENC", "OK", "CHECKDATASIG with High S but no Low S" ], [ - "0x47 0x30450220256c12175e809381f97637933ed6ab97737d263eaaebca6add21bced67fd12a4022100a31d6133ec962903e4ae68812c70550aa994f92891c9c08be802af816fd4843a 0", + "0x47 0x3045022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022100c869b0fe59e24e4db15bbec84c29828e24c2b6f02370eb32dfbe1ca77c98aa98 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", "CHECKDATASIG,LOW_S,NULLFAIL,STRICTENC", "SIG_HIGH_S", "CHECKDATASIG with High S" ], [ - "0x46 0x3044022090c2b41ac64aea5808a991dac049bf6a98816f8610b4028cd371e68a23b0cd47022073310757507b168533cc141e3243416cf2c55e3b4525655abf5c97c8724a68aa 0", + "0x46 0x3044022093cbfaab2bbef6fc019d1286018fd11e2612d817756d40913b3f82a428f1e90a022045d010bd0f3c31aa470d096bb3f693275214f48d4e727f45a9e0adb2645d7489 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", "CHECKDATASIG,NULLFAIL", "OK", "CHECKDATASIG with too little R padding but no DERSIG" ], [ - "0x46 0x3044022090c2b41ac64aea5808a991dac049bf6a98816f8610b4028cd371e68a23b0cd47022073310757507b168533cc141e3243416cf2c55e3b4525655abf5c97c8724a68aa 0", + "0x46 0x3044022093cbfaab2bbef6fc019d1286018fd11e2612d817756d40913b3f82a428f1e90a022045d010bd0f3c31aa470d096bb3f693275214f48d4e727f45a9e0adb2645d7489 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", "CHECKDATASIG,NULLFAIL,STRICTENC", "SIG_DER", "CHECKDATASIG with too little R padding" ], [ - "0x46 0x3044022077c8d336572f6f466055b5f70f433851f8f535f6c4fc71133a6cfd71079d03b702200ed9f5eb8aa5b266abac35d416c3207e7a538bf5f37649727d7a9823b1069577 0", + "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG", "CHECKDATASIG,NULLFAIL", "OK", "CHECKDATASIG with hybrid pubkey but no STRICTENC" ], [ - "0x46 0x3044022077c8d336572f6f466055b5f70f433851f8f535f6c4fc71133a6cfd71079d03b702200ed9f5eb8aa5b266abac35d416c3207e7a538bf5f37649727d7a9823b1069577 0", + "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG", "CHECKDATASIG,NULLFAIL,STRICTENC", "PUBKEYTYPE", "CHECKDATASIG with hybrid pubkey" ], [ - "0x46 0x3044022077c8d336572f6e466055b5f70f433851f8f535f6c4fc71133a6cfd71079d03b702200ed9f5eb8aa5b266abac35d416c3207e7a538bf5f37649727d7a9823b1069577 0", + "0x46 0x304402205ffea7d9fa4e0de8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG NOT", "CHECKDATASIG", "OK", "CHECKDATASIG with invalid hybrid pubkey but no STRICTENC" ], [ - "0x46 0x3044022077c8d336572f6e466055b5f70f433851f8f535f6c4fc71133a6cfd71079d03b702200ed9f5eb8aa5b266abac35d416c3207e7a538bf5f37649727d7a9823b1069577 0", + "0x46 0x304402205ffea7d9fa4e0de8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG", "CHECKDATASIG,NULLFAIL,STRICTENC", "PUBKEYTYPE", "CHECKDATASIG with invalid hybrid pubkey" ], [ - "0x46 0x30440220256c12175e809381f97637933ed6ab97737d263eaaebca6add21bced67fd12a402205ce29ecc1369d6fc1b51977ed38faaf41119e3be1d7edfafd7cfaf0b6061bd07 0", + "0x46 0x3044022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022037964f01a61db1b24ea44137b3d67d7095ec25f68bd7b508e01441e5539d96a9 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", "CHECKDATASIG,NULLFAIL,STRICTENC", "OK", "Standard CHECKDATASIGVERIFY" ], [ - "0x46 0x30440220256c12175e809381f97637933ed6ab97737d263eaaebca6add21bced67fd12a402205ce29ecc1369d6fc1b51977ed38faaf41119e3be1d7edfafd7cfaf0b6061bd07 1", + "0x46 0x3044022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022037964f01a61db1b24ea44137b3d67d7095ec25f68bd7b508e01441e5539d96a9 1", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", "CHECKDATASIG,NULLFAIL,STRICTENC", "NULLFAIL", "CHECKDATASIGVERIFY with NULLFAIL flags" ], [ - "0x46 0x30440220256c12175e809381f97637933ed6ab97737d263eaaebca6add21bced67fd12a402205ce29ecc1369d6fc1b51977ed38faaf41119e3be1d7edfafd7cfaf0b6061bd07 1", + "0x46 0x3044022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022037964f01a61db1b24ea44137b3d67d7095ec25f68bd7b508e01441e5539d96a9 1", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", "CHECKDATASIG,STRICTENC", "CHECKDATASIGVERIFY", @@ -2313,61 +2419,936 @@ "CHECKDATASIGVERIFY empty signature" ], [ - "0x47 0x30450220256c12175e809381f97637933ed6ab97737d263eaaebca6add21bced67fd12a4022100a31d6133ec962903e4ae68812c70550aa994f92891c9c08be802af816fd4843a 0", + "0x47 0x3045022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022100c869b0fe59e24e4db15bbec84c29828e24c2b6f02370eb32dfbe1ca77c98aa98 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", "CHECKDATASIG,NULLFAIL,STRICTENC", "OK", "CHECKDATASIG with High S but no Low S" ], [ - "0x47 0x30450220256c12175e809381f97637933ed6ab97737d263eaaebca6add21bced67fd12a4022100a31d6133ec962903e4ae68812c70550aa994f92891c9c08be802af816fd4843a 0", + "0x47 0x3045022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022100c869b0fe59e24e4db15bbec84c29828e24c2b6f02370eb32dfbe1ca77c98aa98 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", "CHECKDATASIG,LOW_S,NULLFAIL,STRICTENC", "SIG_HIGH_S", "CHECKDATASIG with High S" ], [ - "0x46 0x3044022090c2b41ac64aea5808a991dac049bf6a98816f8610b4028cd371e68a23b0cd47022073310757507b168533cc141e3243416cf2c55e3b4525655abf5c97c8724a68aa 0", + "0x46 0x3044022093cbfaab2bbef6fc019d1286018fd11e2612d817756d40913b3f82a428f1e90a022045d010bd0f3c31aa470d096bb3f693275214f48d4e727f45a9e0adb2645d7489 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", "CHECKDATASIG,NULLFAIL", "OK", "CHECKDATASIGVERIFY with too little R padding but no DERSIG" ], [ - "0x46 0x3044022090c2b41ac64aea5808a991dac049bf6a98816f8610b4028cd371e68a23b0cd47022073310757507b168533cc141e3243416cf2c55e3b4525655abf5c97c8724a68aa 0", + "0x46 0x3044022093cbfaab2bbef6fc019d1286018fd11e2612d817756d40913b3f82a428f1e90a022045d010bd0f3c31aa470d096bb3f693275214f48d4e727f45a9e0adb2645d7489 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", "CHECKDATASIG,NULLFAIL,STRICTENC", "SIG_DER", "CHECKDATASIGVERIFY with too little R padding" ], [ - "0x46 0x3044022077c8d336572f6f466055b5f70f433851f8f535f6c4fc71133a6cfd71079d03b702200ed9f5eb8aa5b266abac35d416c3207e7a538bf5f37649727d7a9823b1069577 0", + "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", "CHECKDATASIG,NULLFAIL", "OK", "CHECKDATASIGVERIFY with hybrid pubkey but no STRICTENC" ], [ - "0x46 0x3044022077c8d336572f6f466055b5f70f433851f8f535f6c4fc71133a6cfd71079d03b702200ed9f5eb8aa5b266abac35d416c3207e7a538bf5f37649727d7a9823b1069577 0", + "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", "CHECKDATASIG,NULLFAIL,STRICTENC", "PUBKEYTYPE", "CHECKDATASIGVERIFY with hybrid pubkey" ], [ - "0x46 0x3044022077c8d336572f6e466055b5f70f433851f8f535f6c4fc71133a6cfd71079d03b702200ed9f5eb8aa5b266abac35d416c3207e7a538bf5f37649727d7a9823b1069577 0", + "0x46 0x304402205ffea7d9fa4e0de8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", "CHECKDATASIG", "CHECKDATASIGVERIFY", "CHECKDATASIGVERIFY with invalid hybrid pubkey but no STRICTENC" ], [ - "0x46 0x3044022077c8d336572f6e466055b5f70f433851f8f535f6c4fc71133a6cfd71079d03b702200ed9f5eb8aa5b266abac35d416c3207e7a538bf5f37649727d7a9823b1069577 0", + "0x46 0x304402205ffea7d9fa4e0de8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", "CHECKDATASIG,NULLFAIL,STRICTENC", "PUBKEYTYPE", "CHECKDATASIGVERIFY with invalid hybrid pubkey" ], +[ + "0x47 0x3044022022127048516d473153d1f74e46e828496776752e3255f672f760a41e83f54e6f0220502956b739ed82aad916dc4a73e1fd55d02aad514b5211f1ba7d0dadf53c637901", + "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG", + "SCHNORR", + "OK", + "P2PK ECDSA with Schnorr flag on" +], +[ + "0x47 0x3044022022127048516d463153d1f74e46e828496776752e3255f672f760a41e83f54e6f0220502956b739ed82aad916dc4a73e1fd55d02aad514b5211f1ba7d0dadf53c637901", + "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG", + "SCHNORR", + "EVAL_FALSE", + "P2PK, bad sig ECDSA with Schnorr flag on" +], +[ + "0x47 0x304402201e0ec3c6c263f34049c93e0bc646d7287ca2cc6571d658e4e7269daebc96ef35022009841f101e6dcaba8993d0259e5732a871e253be807556bf5618bf0bc3e84af001 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508", + "DUP HASH160 0x14 0x1018853670f9f3b0582c5b9ee8ce93764ac32b93 EQUALVERIFY CHECKSIG", + "SCHNORR", + "OK", + "P2PKH ECDSA with Schnorr flag on" +], +[ + "0 0x47 0x304402205b6256a4755890fe278ea083eddf5c0519d0d7fad14fe265e077c5627171b27e02200d841cb15cdc9a9c8f3ec20c5e4bb1b0e5715d26353f500378f4215195e3558c01 0x47 0x304402200b0620f910e92621934e88ae0177b0bb381ba812d4c23c77afbf1a3ab637a0bb0220275387c859089939e22d803dfae77a4ecd122d951d0feb9e6a65a6918c2b1e0201 0x4c69 0x52210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179821038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f515082103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff464053ae", + "HASH160 0x14 0xc9e4a896d149702d0d1695434feddd52e24ad78d EQUAL", + "P2SH,SCHNORR", + "OK", + "P2SH(2-of-3) ECDSA with Schnorr flag on" +], +[ + "0x48 0x3045022032d4a3dec9cad54c94b5585fb058f7e41ac5173843b0c2e7197a40421ee4ab54022100be2b2bd69273d7de44c609cb60febf428e18eb821869006e368b06259318896901", + "0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 CHECKSIG", + "LOW_S,SCHNORR", + "SIG_HIGH_S", + "LOW_S violating ECDSA with Schnorr flag on" +], +[ + "0x47 0x304402201162483d0440fc508d79d314a91cfc4df4ea31b302f02c16893fa15d9c9f7f06022032afebdd5b2964c40c887b967f9599e0e5b5ff5b2f899ab62ada12a5af2a481701", + "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG", + "SCHNORR,STRICTENC", + "PUBKEYTYPE", + "STRICTENC-violating hybrid pubkey with Schnorr flag on" +], +[ + "0x46 0x3044022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022037964f01a61db1b24ea44137b3d67d7095ec25f68bd7b508e01441e5539d96a9 0", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", + "CHECKDATASIG,NULLFAIL,SCHNORR,STRICTENC", + "OK", + "Standard CHECKDATASIG" +], +[ + "0x46 0x3044022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022037964f01a61db1b24ea44137b3d67d7095ec25f68bd7b508e01441e5539d96a9 1", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG NOT", + "CHECKDATASIG,NULLFAIL,SCHNORR,STRICTENC", + "NULLFAIL", + "CHECKDATASIG with NULLFAIL flags" +], +[ + "0x46 0x3044022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022037964f01a61db1b24ea44137b3d67d7095ec25f68bd7b508e01441e5539d96a9 1", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG NOT", + "CHECKDATASIG,SCHNORR,STRICTENC", + "OK", + "CHECKDATASIG without NULLFAIL flags" +], +[ + "0 0", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG NOT", + "CHECKDATASIG,NULLFAIL,SCHNORR,STRICTENC", + "OK", + "CHECKDATASIG empty signature" +], +[ + "0x47 0x3045022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022100c869b0fe59e24e4db15bbec84c29828e24c2b6f02370eb32dfbe1ca77c98aa98 0", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", + "CHECKDATASIG,NULLFAIL,SCHNORR,STRICTENC", + "OK", + "CHECKDATASIG with High S but no Low S" +], +[ + "0x47 0x3045022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022100c869b0fe59e24e4db15bbec84c29828e24c2b6f02370eb32dfbe1ca77c98aa98 0", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", + "CHECKDATASIG,LOW_S,NULLFAIL,SCHNORR,STRICTENC", + "SIG_HIGH_S", + "CHECKDATASIG with High S" +], +[ + "0x46 0x3044022093cbfaab2bbef6fc019d1286018fd11e2612d817756d40913b3f82a428f1e90a022045d010bd0f3c31aa470d096bb3f693275214f48d4e727f45a9e0adb2645d7489 0", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", + "CHECKDATASIG,NULLFAIL,SCHNORR", + "OK", + "CHECKDATASIG with too little R padding but no DERSIG" +], +[ + "0x46 0x3044022093cbfaab2bbef6fc019d1286018fd11e2612d817756d40913b3f82a428f1e90a022045d010bd0f3c31aa470d096bb3f693275214f48d4e727f45a9e0adb2645d7489 0", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", + "CHECKDATASIG,NULLFAIL,SCHNORR,STRICTENC", + "SIG_DER", + "CHECKDATASIG with too little R padding" +], +[ + "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", + "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG", + "CHECKDATASIG,NULLFAIL,SCHNORR", + "OK", + "CHECKDATASIG with hybrid pubkey but no STRICTENC" +], +[ + "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", + "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG", + "CHECKDATASIG,NULLFAIL,SCHNORR,STRICTENC", + "PUBKEYTYPE", + "CHECKDATASIG with hybrid pubkey" +], +[ + "0x46 0x304402205ffea7d9fa4e0de8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", + "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG NOT", + "CHECKDATASIG", + "OK", + "CHECKDATASIG with invalid hybrid pubkey but no STRICTENC" +], +[ + "0x46 0x304402205ffea7d9fa4e0de8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", + "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG", + "CHECKDATASIG,NULLFAIL,SCHNORR,STRICTENC", + "PUBKEYTYPE", + "CHECKDATASIG with invalid hybrid pubkey" +], +[ + "0x46 0x3044022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022037964f01a61db1b24ea44137b3d67d7095ec25f68bd7b508e01441e5539d96a9 0", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", + "CHECKDATASIG,NULLFAIL,SCHNORR,STRICTENC", + "OK", + "Standard CHECKDATASIGVERIFY" +], +[ + "0x46 0x3044022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022037964f01a61db1b24ea44137b3d67d7095ec25f68bd7b508e01441e5539d96a9 1", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", + "CHECKDATASIG,NULLFAIL,SCHNORR,STRICTENC", + "NULLFAIL", + "CHECKDATASIGVERIFY with NULLFAIL flags" +], +[ + "0x46 0x3044022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022037964f01a61db1b24ea44137b3d67d7095ec25f68bd7b508e01441e5539d96a9 1", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", + "CHECKDATASIG,SCHNORR,STRICTENC", + "CHECKDATASIGVERIFY", + "CHECKDATASIGVERIFY without NULLFAIL flags" +], +[ + "0 0", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", + "CHECKDATASIG,NULLFAIL,SCHNORR,STRICTENC", + "CHECKDATASIGVERIFY", + "CHECKDATASIGVERIFY empty signature" +], +[ + "0x47 0x3045022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022100c869b0fe59e24e4db15bbec84c29828e24c2b6f02370eb32dfbe1ca77c98aa98 0", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", + "CHECKDATASIG,NULLFAIL,SCHNORR,STRICTENC", + "OK", + "CHECKDATASIG with High S but no Low S" +], +[ + "0x47 0x3045022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022100c869b0fe59e24e4db15bbec84c29828e24c2b6f02370eb32dfbe1ca77c98aa98 0", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", + "CHECKDATASIG,LOW_S,NULLFAIL,SCHNORR,STRICTENC", + "SIG_HIGH_S", + "CHECKDATASIG with High S" +], +[ + "0x46 0x3044022093cbfaab2bbef6fc019d1286018fd11e2612d817756d40913b3f82a428f1e90a022045d010bd0f3c31aa470d096bb3f693275214f48d4e727f45a9e0adb2645d7489 0", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", + "CHECKDATASIG,NULLFAIL,SCHNORR", + "OK", + "CHECKDATASIGVERIFY with too little R padding but no DERSIG" +], +[ + "0x46 0x3044022093cbfaab2bbef6fc019d1286018fd11e2612d817756d40913b3f82a428f1e90a022045d010bd0f3c31aa470d096bb3f693275214f48d4e727f45a9e0adb2645d7489 0", + "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", + "CHECKDATASIG,NULLFAIL,SCHNORR,STRICTENC", + "SIG_DER", + "CHECKDATASIGVERIFY with too little R padding" +], +[ + "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", + "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", + "CHECKDATASIG,NULLFAIL,SCHNORR", + "OK", + "CHECKDATASIGVERIFY with hybrid pubkey but no STRICTENC" +], +[ + "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", + "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", + "CHECKDATASIG,NULLFAIL,SCHNORR,STRICTENC", + "PUBKEYTYPE", + "CHECKDATASIGVERIFY with hybrid pubkey" +], +[ + "0x46 0x304402205ffea7d9fa4e0de8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", + "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", + "CHECKDATASIG", + "CHECKDATASIGVERIFY", + "CHECKDATASIGVERIFY with invalid hybrid pubkey but no STRICTENC" +], +[ + "0x46 0x304402205ffea7d9fa4e0de8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", + "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", + "CHECKDATASIG,NULLFAIL,SCHNORR,STRICTENC", + "PUBKEYTYPE", + "CHECKDATASIGVERIFY with invalid hybrid pubkey" +], +[ + "0x41 0x0df4be7f5fe74b2855b92082720e889038e15d8d747334fa3f300ef4ab1db1eea56aa83d1d60809ff6703791736be87cfb6cbc5c4036aeed3b4ea4e6dab3509001", + "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG", + "", + "EVAL_FALSE", + "CHECKSIG Schnorr w/ neither STRICTENC,SCHNORR" +], +[ + "0x47 0x3044022022127048516d473153d1f74e46e828496776752e3255f672f760a41e83f54e6f0220502956b739ed82aad916dc4a73e1fd55d02aad514b5211f1ba7d0dadf53c637901", + "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG", + "", + "OK", + "CHECKSIG ECDSA w/ neither STRICTENC,SCHNORR" +], +[ + "0x41 0x0df4be7f5fe74b2855b92082720e889038e15d8d747334fa3f300ef4ab1db1eea56aa83d1d60809ff6703791736be87cfb6cbc5c4036aeed3b4ea4e6dab3509001", + "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG", + "SCHNORR", + "OK", + "CHECKSIG Schnorr w/ SCHNORR" +], +[ + "0x47 0x3044022022127048516d473153d1f74e46e828496776752e3255f672f760a41e83f54e6f0220502956b739ed82aad916dc4a73e1fd55d02aad514b5211f1ba7d0dadf53c637901", + "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG", + "SCHNORR", + "OK", + "CHECKSIG ECDSA w/ SCHNORR" +], +[ + "0x41 0x0df4be7f5fe74b2855b92082720e889038e15d8d747334fa3f300ef4ab1db1eea56aa83d1d60809ff6703791736be87cfb6cbc5c4036aeed3b4ea4e6dab3509001", + "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG", + "STRICTENC", + "SIG_DER", + "CHECKSIG Schnorr w/ STRICTENC" +], +[ + "0x47 0x3044022022127048516d473153d1f74e46e828496776752e3255f672f760a41e83f54e6f0220502956b739ed82aad916dc4a73e1fd55d02aad514b5211f1ba7d0dadf53c637901", + "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG", + "STRICTENC", + "OK", + "CHECKSIG ECDSA w/ STRICTENC" +], +[ + "0x41 0x0df4be7f5fe74b2855b92082720e889038e15d8d747334fa3f300ef4ab1db1eea56aa83d1d60809ff6703791736be87cfb6cbc5c4036aeed3b4ea4e6dab3509001", + "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG", + "SCHNORR,STRICTENC", + "OK", + "CHECKSIG Schnorr w/ STRICTENC,SCHNORR" +], +[ + "0x47 0x3044022022127048516d473153d1f74e46e828496776752e3255f672f760a41e83f54e6f0220502956b739ed82aad916dc4a73e1fd55d02aad514b5211f1ba7d0dadf53c637901", + "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG", + "SCHNORR,STRICTENC", + "OK", + "CHECKSIG ECDSA w/ STRICTENC,SCHNORR" +], +[ + "0x41 0x3cf1b3f60b74d0821039f7dc7c21abe3119b9d94ae13f5e5258a8269bee9dfc51c84dbb3ba3eff82de61046f6cfef22ea5cf4a46e3776a5fb35d743aea310f6701", + "0x41 0x048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf CHECKSIG", + "SCHNORR,STRICTENC", + "OK", + "CHECKSIG Schnorr other key" +], +[ + "0x41 0x35b32856cbd89eb40130a50c6931ce002e3e9db033179ab6265a276a04795ec8f87e9b4d8343f399915371d7f4a7d4d0c97753f2473b253197695a58eede92de01", + "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG NOT", + "SCHNORR,STRICTENC", + "OK", + "CHECKSIG Schnorr mismatched key" +], +[ + "0x41 0x8d37e95e36718d7fbc8ffd63b0b4ebb89dd5fb683510a95345869399f810a8724a00e5cbbb2190205ffabac601d80bf110a67013521b7a7c02b2a51e07d723eb01", + "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIGVERIFY 1", + "", + "CHECKSIGVERIFY", + "CHECKSIGVERIFY Schnorr w/ neither STRICTENC,SCHNORR" +], +[ + "0x47 0x304402205d5a925acf881167da7850d838cd4f73d077d08aacf9d2885d10b7850c5a828602201f42383e317ec427dbd71f3a6031a0ff27e431b7089fbc80ebea31b5f8949be601", + "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIGVERIFY 1", + "", + "OK", + "CHECKSIGVERIFY ECDSA w/ neither STRICTENC,SCHNORR" +], +[ + "0x41 0x8d37e95e36718d7fbc8ffd63b0b4ebb89dd5fb683510a95345869399f810a8724a00e5cbbb2190205ffabac601d80bf110a67013521b7a7c02b2a51e07d723eb01", + "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIGVERIFY 1", + "SCHNORR", + "OK", + "CHECKSIGVERIFY Schnorr w/ SCHNORR" +], +[ + "0x47 0x304402205d5a925acf881167da7850d838cd4f73d077d08aacf9d2885d10b7850c5a828602201f42383e317ec427dbd71f3a6031a0ff27e431b7089fbc80ebea31b5f8949be601", + "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIGVERIFY 1", + "SCHNORR", + "OK", + "CHECKSIGVERIFY ECDSA w/ SCHNORR" +], +[ + "0x41 0x8d37e95e36718d7fbc8ffd63b0b4ebb89dd5fb683510a95345869399f810a8724a00e5cbbb2190205ffabac601d80bf110a67013521b7a7c02b2a51e07d723eb01", + "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIGVERIFY 1", + "STRICTENC", + "SIG_DER", + "CHECKSIGVERIFY Schnorr w/ STRICTENC" +], +[ + "0x47 0x304402205d5a925acf881167da7850d838cd4f73d077d08aacf9d2885d10b7850c5a828602201f42383e317ec427dbd71f3a6031a0ff27e431b7089fbc80ebea31b5f8949be601", + "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIGVERIFY 1", + "STRICTENC", + "OK", + "CHECKSIGVERIFY ECDSA w/ STRICTENC" +], +[ + "0x41 0x8d37e95e36718d7fbc8ffd63b0b4ebb89dd5fb683510a95345869399f810a8724a00e5cbbb2190205ffabac601d80bf110a67013521b7a7c02b2a51e07d723eb01", + "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIGVERIFY 1", + "SCHNORR,STRICTENC", + "OK", + "CHECKSIGVERIFY Schnorr w/ STRICTENC,SCHNORR" +], +[ + "0x47 0x304402205d5a925acf881167da7850d838cd4f73d077d08aacf9d2885d10b7850c5a828602201f42383e317ec427dbd71f3a6031a0ff27e431b7089fbc80ebea31b5f8949be601", + "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIGVERIFY 1", + "SCHNORR,STRICTENC", + "OK", + "CHECKSIGVERIFY ECDSA w/ STRICTENC,SCHNORR" +], +[ + "0x41 0x53c4de3cb6a0190073c98fa415f63b720ea491748c9a760d5d249bb05f13990aa464be04b625cc36cd9e302dc276ad232d5d65d6327bdb18b7c529300d67013f01", + "0x41 0x048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf CHECKSIGVERIFY 1", + "SCHNORR,STRICTENC", + "OK", + "CHECKSIGVERIFY Schnorr other key" +], +[ + "0x41 0x74c51dae216d8ebee5418204cf90839ea9a288b93eccb1de54b5b5d06bcd69c7028e1b3c6643c001403e7862bee6be39c107e5c8d0a9a8e9143862e5d73c555a01", + "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIGVERIFY 1", + "SCHNORR,STRICTENC", + "CHECKSIGVERIFY", + "CHECKSIGVERIFY Schnorr mismatched key" +], +[ + "0x40 0x9db0671f61f1fafa84aaab76ad2e070b27cf9ae85338bafc0b947ac9ad8c56ff7b24aa76c95ad86bb13cbff314742dbe1f545869d1a28efa54b411ccd37717e5", + "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG", + "CHECKDATASIG", + "EVAL_FALSE", + "CHECKDATASIG Schnorr w/ neither STRICTENC,SCHNORR" +], +[ + "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d", + "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG", + "CHECKDATASIG", + "OK", + "CHECKDATASIG ECDSA w/ neither STRICTENC,SCHNORR" +], +[ + "0x40 0x9db0671f61f1fafa84aaab76ad2e070b27cf9ae85338bafc0b947ac9ad8c56ff7b24aa76c95ad86bb13cbff314742dbe1f545869d1a28efa54b411ccd37717e5", + "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG", + "CHECKDATASIG,SCHNORR", + "OK", + "CHECKDATASIG Schnorr w/ SCHNORR" +], +[ + "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d", + "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG", + "CHECKDATASIG,SCHNORR", + "OK", + "CHECKDATASIG ECDSA w/ SCHNORR" +], +[ + "0x40 0x9db0671f61f1fafa84aaab76ad2e070b27cf9ae85338bafc0b947ac9ad8c56ff7b24aa76c95ad86bb13cbff314742dbe1f545869d1a28efa54b411ccd37717e5", + "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG", + "CHECKDATASIG,STRICTENC", + "SIG_DER", + "CHECKDATASIG Schnorr w/ STRICTENC" +], +[ + "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d", + "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG", + "CHECKDATASIG,STRICTENC", + "OK", + "CHECKDATASIG ECDSA w/ STRICTENC" +], +[ + "0x40 0x9db0671f61f1fafa84aaab76ad2e070b27cf9ae85338bafc0b947ac9ad8c56ff7b24aa76c95ad86bb13cbff314742dbe1f545869d1a28efa54b411ccd37717e5", + "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG", + "CHECKDATASIG,SCHNORR,STRICTENC", + "OK", + "CHECKDATASIG Schnorr w/ STRICTENC,SCHNORR" +], +[ + "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d", + "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG", + "CHECKDATASIG,SCHNORR,STRICTENC", + "OK", + "CHECKDATASIG ECDSA w/ STRICTENC,SCHNORR" +], +[ + "0x40 0x65c4bceda6ebb49e692180387e72c84be500f3431daac85d08d5d6c527e296f5b8a5b868a681f76aee309ad05e152b4f190732b3e7c46ef788b68c6035f6eab0", + "0 0x41 0x048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf CHECKDATASIG", + "CHECKDATASIG,SCHNORR,STRICTENC", + "OK", + "CHECKDATASIG Schnorr other key" +], +[ + "0x40 0x65c4bceda6ebb49e692180387e72c84be500f3431daac85d08d5d6c527e296f5b8a5b868a681f76aee309ad05e152b4f190732b3e7c46ef788b68c6035f6eab0", + "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG NOT", + "CHECKDATASIG,SCHNORR,STRICTENC", + "OK", + "CHECKDATASIG Schnorr mismatched key" +], +[ + "0x40 0xe20d68eea1c55d8c23310ef33b4c68e3d876b1c5a36595f4dcc9d728894c957879e53bb4aebf8b3aa36861d89266ff864d2c3f513ab6f79c9d226ad45fbf5407", + "1 0x41 0x048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf CHECKDATASIG", + "CHECKDATASIG,SCHNORR,STRICTENC", + "OK", + "CHECKDATASIG Schnorr other message" +], +[ + "0x40 0xe20d68eea1c55d8c23310ef33b4c68e3d876b1c5a36595f4dcc9d728894c957879e53bb4aebf8b3aa36861d89266ff864d2c3f513ab6f79c9d226ad45fbf5407", + "0 0x41 0x048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf CHECKDATASIG NOT", + "CHECKDATASIG,SCHNORR,STRICTENC", + "OK", + "CHECKDATASIG Schnorr wrong message" +], +[ + "0x40 0x9db0671f61f1fafa84aaab76ad2e070b27cf9ae85338bafc0b947ac9ad8c56ff7b24aa76c95ad86bb13cbff314742dbe1f545869d1a28efa54b411ccd37717e5", + "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", + "CHECKDATASIG", + "CHECKDATASIGVERIFY", + "CHECKDATASIGVERIFY Schnorr w/ neither STRICTENC,SCHNORR" +], +[ + "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d", + "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", + "CHECKDATASIG", + "OK", + "CHECKDATASIGVERIFY ECDSA w/ neither STRICTENC,SCHNORR" +], +[ + "0x40 0x9db0671f61f1fafa84aaab76ad2e070b27cf9ae85338bafc0b947ac9ad8c56ff7b24aa76c95ad86bb13cbff314742dbe1f545869d1a28efa54b411ccd37717e5", + "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", + "CHECKDATASIG,SCHNORR", + "OK", + "CHECKDATASIGVERIFY Schnorr w/ SCHNORR" +], +[ + "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d", + "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", + "CHECKDATASIG,SCHNORR", + "OK", + "CHECKDATASIGVERIFY ECDSA w/ SCHNORR" +], +[ + "0x40 0x9db0671f61f1fafa84aaab76ad2e070b27cf9ae85338bafc0b947ac9ad8c56ff7b24aa76c95ad86bb13cbff314742dbe1f545869d1a28efa54b411ccd37717e5", + "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", + "CHECKDATASIG,STRICTENC", + "SIG_DER", + "CHECKDATASIGVERIFY Schnorr w/ STRICTENC" +], +[ + "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d", + "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", + "CHECKDATASIG,STRICTENC", + "OK", + "CHECKDATASIGVERIFY ECDSA w/ STRICTENC" +], +[ + "0x40 0x9db0671f61f1fafa84aaab76ad2e070b27cf9ae85338bafc0b947ac9ad8c56ff7b24aa76c95ad86bb13cbff314742dbe1f545869d1a28efa54b411ccd37717e5", + "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", + "CHECKDATASIG,SCHNORR,STRICTENC", + "OK", + "CHECKDATASIGVERIFY Schnorr w/ STRICTENC,SCHNORR" +], +[ + "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d", + "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", + "CHECKDATASIG,SCHNORR,STRICTENC", + "OK", + "CHECKDATASIGVERIFY ECDSA w/ STRICTENC,SCHNORR" +], +[ + "0x40 0x65c4bceda6ebb49e692180387e72c84be500f3431daac85d08d5d6c527e296f5b8a5b868a681f76aee309ad05e152b4f190732b3e7c46ef788b68c6035f6eab0", + "0 0x41 0x048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf CHECKDATASIGVERIFY 1", + "CHECKDATASIG,SCHNORR,STRICTENC", + "OK", + "CHECKDATASIGVERIFY Schnorr other key" +], +[ + "0x40 0x65c4bceda6ebb49e692180387e72c84be500f3431daac85d08d5d6c527e296f5b8a5b868a681f76aee309ad05e152b4f190732b3e7c46ef788b68c6035f6eab0", + "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", + "CHECKDATASIG,SCHNORR,STRICTENC", + "CHECKDATASIGVERIFY", + "CHECKDATASIGVERIFY Schnorr mismatched key" +], +[ + "0x40 0xe20d68eea1c55d8c23310ef33b4c68e3d876b1c5a36595f4dcc9d728894c957879e53bb4aebf8b3aa36861d89266ff864d2c3f513ab6f79c9d226ad45fbf5407", + "1 0x41 0x048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf CHECKDATASIGVERIFY 1", + "CHECKDATASIG,SCHNORR,STRICTENC", + "OK", + "CHECKDATASIGVERIFY Schnorr other message" +], +[ + "0x40 0xe20d68eea1c55d8c23310ef33b4c68e3d876b1c5a36595f4dcc9d728894c957879e53bb4aebf8b3aa36861d89266ff864d2c3f513ab6f79c9d226ad45fbf5407", + "0 0x41 0x048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf CHECKDATASIGVERIFY 1", + "CHECKDATASIG,SCHNORR,STRICTENC", + "CHECKDATASIGVERIFY", + "CHECKDATASIGVERIFY Schnorr wrong message" +], +[ + "0 0x41 0x105e4fed395e64ca013ac1ce020ef69b9990a577fe4b74648faafb69e499f76dd53d5c64aa866924361dd3aadde9b7184bbcb4f79520396c9ed17c4d8489a59701", + "1 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 1 CHECKMULTISIG", + "", + "EVAL_FALSE", + "CHECKMULTISIG Schnorr w/ neither STRICTENC,SCHNORR" +], +[ + "0 0x47 0x304402204d0106d6babcaca95277692eaa566bdc89d9f44b1106c18423345c7e9ac40d79022033a3750421038d15f15101ffdca1147a0eb980bb1b809280cb5368c50c10c42c01", + "1 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 1 CHECKMULTISIG", + "", + "OK", + "CHECKMULTISIG ECDSA w/ neither STRICTENC,SCHNORR" +], +[ + "0 0x41 0x105e4fed395e64ca013ac1ce020ef69b9990a577fe4b74648faafb69e499f76dd53d5c64aa866924361dd3aadde9b7184bbcb4f79520396c9ed17c4d8489a59701", + "1 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 1 CHECKMULTISIG", + "SCHNORR", + "SIG_BADLENGTH", + "CHECKMULTISIG Schnorr w/ SCHNORR" +], +[ + "0 0x47 0x304402204d0106d6babcaca95277692eaa566bdc89d9f44b1106c18423345c7e9ac40d79022033a3750421038d15f15101ffdca1147a0eb980bb1b809280cb5368c50c10c42c01", + "1 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 1 CHECKMULTISIG", + "SCHNORR", + "OK", + "CHECKMULTISIG ECDSA w/ SCHNORR" +], +[ + "0 0x41 0x105e4fed395e64ca013ac1ce020ef69b9990a577fe4b74648faafb69e499f76dd53d5c64aa866924361dd3aadde9b7184bbcb4f79520396c9ed17c4d8489a59701", + "1 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 1 CHECKMULTISIG", + "STRICTENC", + "SIG_DER", + "CHECKMULTISIG Schnorr w/ STRICTENC" +], +[ + "0 0x47 0x304402204d0106d6babcaca95277692eaa566bdc89d9f44b1106c18423345c7e9ac40d79022033a3750421038d15f15101ffdca1147a0eb980bb1b809280cb5368c50c10c42c01", + "1 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 1 CHECKMULTISIG", + "STRICTENC", + "OK", + "CHECKMULTISIG ECDSA w/ STRICTENC" +], +[ + "0 0x41 0x105e4fed395e64ca013ac1ce020ef69b9990a577fe4b74648faafb69e499f76dd53d5c64aa866924361dd3aadde9b7184bbcb4f79520396c9ed17c4d8489a59701", + "1 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 1 CHECKMULTISIG", + "SCHNORR,STRICTENC", + "SIG_BADLENGTH", + "CHECKMULTISIG Schnorr w/ STRICTENC,SCHNORR" +], +[ + "0 0x47 0x304402204d0106d6babcaca95277692eaa566bdc89d9f44b1106c18423345c7e9ac40d79022033a3750421038d15f15101ffdca1147a0eb980bb1b809280cb5368c50c10c42c01", + "1 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 1 CHECKMULTISIG", + "SCHNORR,STRICTENC", + "OK", + "CHECKMULTISIG ECDSA w/ STRICTENC,SCHNORR" +], +[ + "0 0x41 0x833682d4f60cc916a22a2c263e658fa662c49badb1e2a8c6208987bf99b1abd740498371480069e7a7a6e7471bf78c27bd9a1fd04fb212a92017346250ac187b01 0x41 0xea4a8d20562a950f4695dc24804565482e9fa111704886179d0c348f2b8a15fe691a305cd599c59c131677146661d5b98cb935330989a85f33afc70d0a21add101 0x41 0xce9011d76a4df05d6280b2382b4d91490dbec7c3e72dc826be1fc9b4718f627955190745cac96521ea46d6d324c7376461e225310e6cd605b9f266d170769b7901", + "3 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 3 CHECKMULTISIG", + "", + "EVAL_FALSE", + "Schnorr 3-of-3 without SCHNORR flag" +], +[ + "0 0x41 0x833682d4f60cc916a22a2c263e658fa662c49badb1e2a8c6208987bf99b1abd740498371480069e7a7a6e7471bf78c27bd9a1fd04fb212a92017346250ac187b01 0x41 0xea4a8d20562a950f4695dc24804565482e9fa111704886179d0c348f2b8a15fe691a305cd599c59c131677146661d5b98cb935330989a85f33afc70d0a21add101 0x41 0xce9011d76a4df05d6280b2382b4d91490dbec7c3e72dc826be1fc9b4718f627955190745cac96521ea46d6d324c7376461e225310e6cd605b9f266d170769b7901", + "3 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 3 CHECKMULTISIG", + "SCHNORR", + "SIG_BADLENGTH", + "Schnorr 3-of-3 with SCHNORR flag" +], +[ + "0 0x47 0x304402204d69d5caa4dbab259f79fce89d3b459bbd91697c1c052a1554ff3b08b2241cbd0220330a8e17a90d51996e363cb8902fce6278c6350fa59ae12832db2f6a44d64dce01 0x47 0x3044022031a1e5289b0d9c33ec182a7f67210b9997187c710f7d3f0f28bdfb618c4e025c02205d95fe63ee83a20ec44159a06f7c0b43b61d5f0c346ca4a2cc7b91878ad1a85001 0x41 0xce9011d76a4df05d6280b2382b4d91490dbec7c3e72dc826be1fc9b4718f627955190745cac96521ea46d6d324c7376461e225310e6cd605b9f266d170769b7901", + "3 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 3 CHECKMULTISIG", + "SCHNORR", + "SIG_BADLENGTH", + "Schnorr-ECDSA-mixed 3-of-3 with SCHNORR flag" +], +[ + "0 0x41 0x17fa4dd3e62694cc7816d32b73d5646ea768072aea4926a09e159e5f57be8fd6523800b259fe2a12e27aa29a3719f19e9e4b99d7f8e465a6f19454f914ccb3ec01", + "1 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 1 CHECKMULTISIGVERIFY 1", + "", + "CHECKMULTISIGVERIFY", + "CHECKMULTISIGVERIFY Schnorr w/ neither STRICTENC,SCHNORR" +], +[ + "0 0x47 0x3044022050635b0b57b07eec8ebba4f5cad9ede25ada7ca1645367dcce8d4412290f00e4022037cf466f1498830d5476cd52e84ce4fd6dc4c7d70f985a6e9ff68a034faa5ea101", + "1 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 1 CHECKMULTISIGVERIFY 1", + "", + "OK", + "CHECKMULTISIGVERIFY ECDSA w/ neither STRICTENC,SCHNORR" +], +[ + "0 0x41 0x17fa4dd3e62694cc7816d32b73d5646ea768072aea4926a09e159e5f57be8fd6523800b259fe2a12e27aa29a3719f19e9e4b99d7f8e465a6f19454f914ccb3ec01", + "1 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 1 CHECKMULTISIGVERIFY 1", + "SCHNORR", + "SIG_BADLENGTH", + "CHECKMULTISIGVERIFY Schnorr w/ SCHNORR" +], +[ + "0 0x47 0x3044022050635b0b57b07eec8ebba4f5cad9ede25ada7ca1645367dcce8d4412290f00e4022037cf466f1498830d5476cd52e84ce4fd6dc4c7d70f985a6e9ff68a034faa5ea101", + "1 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 1 CHECKMULTISIGVERIFY 1", + "SCHNORR", + "OK", + "CHECKMULTISIGVERIFY ECDSA w/ SCHNORR" +], +[ + "0 0x41 0x17fa4dd3e62694cc7816d32b73d5646ea768072aea4926a09e159e5f57be8fd6523800b259fe2a12e27aa29a3719f19e9e4b99d7f8e465a6f19454f914ccb3ec01", + "1 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 1 CHECKMULTISIGVERIFY 1", + "STRICTENC", + "SIG_DER", + "CHECKMULTISIGVERIFY Schnorr w/ STRICTENC" +], +[ + "0 0x47 0x3044022050635b0b57b07eec8ebba4f5cad9ede25ada7ca1645367dcce8d4412290f00e4022037cf466f1498830d5476cd52e84ce4fd6dc4c7d70f985a6e9ff68a034faa5ea101", + "1 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 1 CHECKMULTISIGVERIFY 1", + "STRICTENC", + "OK", + "CHECKMULTISIGVERIFY ECDSA w/ STRICTENC" +], +[ + "0 0x41 0x17fa4dd3e62694cc7816d32b73d5646ea768072aea4926a09e159e5f57be8fd6523800b259fe2a12e27aa29a3719f19e9e4b99d7f8e465a6f19454f914ccb3ec01", + "1 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 1 CHECKMULTISIGVERIFY 1", + "SCHNORR,STRICTENC", + "SIG_BADLENGTH", + "CHECKMULTISIGVERIFY Schnorr w/ STRICTENC,SCHNORR" +], +[ + "0 0x47 0x3044022050635b0b57b07eec8ebba4f5cad9ede25ada7ca1645367dcce8d4412290f00e4022037cf466f1498830d5476cd52e84ce4fd6dc4c7d70f985a6e9ff68a034faa5ea101", + "1 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 1 CHECKMULTISIGVERIFY 1", + "SCHNORR,STRICTENC", + "OK", + "CHECKMULTISIGVERIFY ECDSA w/ STRICTENC,SCHNORR" +], +[ + "0x41 0x6f1b69791cd7284b5510daef44cd5acd5c1f3d61f6a79705e18f106b46122f1ed8c5965f3c92c90943f9b51f57207e9e5b7fc462571281e2c92377e4ef20ab2b01", + "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG NOT", + "SCHNORR", + "OK", + "Schnorr P2PK, bad sig" +], +[ + "0x41 0x6f1b69791cd7284b5510daef44cd5acd5c1f3d61f6a79705e18f106b46122f1ed8c5965f3c92c90943f9b51f57207e9e5b7fc462571281e2c92377e4ef20ab2b01", + "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG NOT", + "SCHNORR,STRICTENC", + "OK", + "Schnorr P2PK, bad sig STRICTENC" +], +[ + "0x41 0x6f1b69791cd7284b5510daef44cd5acd5c1f3d61f6a79705e18f106b46122f1ed8c5965f3c92c90943f9b51f57207e9e5b7fc462571281e2c92377e4ef20ab2b01", + "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG NOT", + "NULLFAIL,SCHNORR", + "NULLFAIL", + "Schnorr P2PK, bad sig NULLFAIL" +], +[ + "0x41 0x4463c103b21e76713571365c4c09224c2a1b343b3cf02e3b56f4f0890a6e7ff96d0bfa2ffa22f8067db3414cc1789abfc48638cb4bc7463907042975f4c84ece01 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508", + "DUP HASH160 0x14 0x1018853670f9f3b0582c5b9ee8ce93764ac32b93 EQUALVERIFY CHECKSIG", + "SCHNORR", + "OK", + "Schnorr P2PKH" +], +[ + "0x41 0xd78d543b601bc93b394b5c669933d16d860dc7480383efcaae9521d6ceb4065ba17c02a6d9289efef762fa7a0482eff9c5bce4dd95f8bea421ee70bdd8d5488d01", + "0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKSIG", + "SCHNORR,STRICTENC", + "OK", + "Schnorr P2PK with compressed pubkey" +], +[ + "0x41 0x0df4be7f5fe74b2855b92082720e889038e15d8d747334fa3f300ef4ab1db1eea56aa83d1d60809ff6703791736be87cfb6cbc5c4036aeed3b4ea4e6dab3509001", + "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG", + "SCHNORR,STRICTENC", + "OK", + "Schnorr P2PK with uncompressed pubkey" +], +[ + "0x41 0x0df4be7f5fe74b2855b92082720e889038e15d8d747334fa3f300ef4ab1db1eea56aa83d1d60809ff6703791736be87cfb6cbc5c4036aeed3b4ea4e6dab3509001", + "0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG", + "COMPRESSED_PUBKEYTYPE,SCHNORR,STRICTENC", + "NONCOMPRESSED_PUBKEY", + "Schnorr P2PK with uncompressed pubkey but COMPRESSED_PUBKEYTYPE set" +], +[ + "0x41 0xd211631fdebf4c8376b3d169ef65a1987460eda43c3312e561b0226fa3069f68a68bac0dbf780f77dd60ff602c66186f1da2bb0a31f10187796242f48295ddbe01", + "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG", + "SCHNORR,STRICTENC", + "PUBKEYTYPE", + "Schnorr P2PK with hybrid pubkey" +], +[ + "0x41 0xd211631fdebf4c8376b3d169ef65a1987460eda43c3312e561b0226fa3069f68a68bac0dbf780f77dd60ff602c66186f1da2bb0a31f10187796242f48295ddbe01", + "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG", + "SCHNORR", + "OK", + "Schnorr P2PK with hybrid pubkey but no STRICTENC" +], +[ + "0x41 0x078b6b4e7d0689f3a1ef9b5283039c39b7ab3a26c04143017ee7136edbc1ccbcf47173c92c5823b778e4aaba3bf9ef2e988eb54c4cb709dbfa8e62110843c19901", + "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG NOT", + "SCHNORR", + "OK", + "Schnorr P2PK NOT with damaged hybrid pubkey but no STRICTENC" +], +[ + "0x41 0xa522c6aab80595e0fdaf473c89a32e97978858809949fafd6f851254daae231f45338fe53187f79d8507f08c08f8bd2ee795e6ccaca0a04c4e40c613395a685b05", + "0x41 0x048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf CHECKSIG", + "SCHNORR,STRICTENC", + "SIG_HASHTYPE", + "Schnorr P2PK with undefined basehashtype and STRICTENC" +], +[ + "0x41 0x128f02ec5b36057a7f3793c5ffdef9e6cca0ea3200a2f07e5c7189a267daafc4feb2b65a8c7f22b203557fef4c078e98382dc99939666b7c6dbcc62bd25b0bf821 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8", + "DUP HASH160 0x14 0x91b24bf9f5288532960ac687abb035127b1d28a5 EQUALVERIFY CHECKSIG", + "SCHNORR", + "OK", + "Schnorr P2PKH with invalid sighashtype but no STRICTENC" +], +[ + "0x41 0x128f02ec5b36057a7f3793c5ffdef9e6cca0ea3200a2f07e5c7189a267daafc4feb2b65a8c7f22b203557fef4c078e98382dc99939666b7c6dbcc62bd25b0bf821 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8", + "DUP HASH160 0x14 0x91b24bf9f5288532960ac687abb035127b1d28a5 EQUALVERIFY CHECKSIG", + "SCHNORR,STRICTENC", + "SIG_HASHTYPE", + "Schnorr P2PKH with invalid sighashtype and STRICTENC" +], +[ + "0x41 0x3dae009b3fc84066b644b0508d1cc68fbbdefbb91b049aaa46e8de5c3b4598707d93df80a275022354f8e3e65ca6561c55d2f626c8395d237fb1f2b6b93e83f081", + "0x41 0x048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf CHECKSIG", + "SCHNORR", + "OK", + "Schnorr P2PK anyonecanpay" +], +[ + "0x41 0x3dae009b3fc84066b644b0508d1cc68fbbdefbb91b049aaa46e8de5c3b4598707d93df80a275022354f8e3e65ca6561c55d2f626c8395d237fb1f2b6b93e83f001", + "0x41 0x048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf CHECKSIG", + "SCHNORR", + "EVAL_FALSE", + "Schnorr P2PK anyonecanpay marked with normal hashtype" +], +[ + "0x41 0xd06f2e8e262a974d330c185acdd2eed99622f2c9cc0980eacf976f37965186dba2564a564e8c6697127d9729e6cedd44060ab7ece5c2f0ded2ad3f9a7308c7ce41", + "0x41 0x048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf CHECKSIG", + "SCHNORR,SIGHASH_FORKID,STRICTENC", + "OK", + "Schnorr P2PK with forkID" +], +[ + "0x41 0x3cf1b3f60b74d0821039f7dc7c21abe3119b9d94ae13f5e5258a8269bee9dfc51c84dbb3ba3eff82de61046f6cfef22ea5cf4a46e3776a5fb35d743aea310f6701", + "0x41 0x048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf CHECKSIG", + "SCHNORR,SIGHASH_FORKID,STRICTENC", + "MUST_USE_FORKID", + "Schnorr P2PK with non-forkID sig" +], +[ + "0x41 0x3cf1b3f60b74d0821039f7dc7c21abe3119b9d94ae13f5e5258a8269bee9dfc51c84dbb3ba3eff82de61046f6cfef22ea5cf4a46e3776a5fb35d743aea310f6741", + "0x41 0x048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf CHECKSIG", + "SCHNORR,SIGHASH_FORKID,STRICTENC", + "EVAL_FALSE", + "Schnorr P2PK with cheater forkID bit" +], +[ + "0x16 0x001491b24bf9f5288532960ac687abb035127b1d28a5", + "HASH160 0x14 0x17743beb429c55c942d2ec703b98c4d57c2df5c6 EQUAL", + "CLEANSTACK,P2SH", + "CLEANSTACK", + "v0 P2SH-P2WPKH but no SCRIPT_SEGWIT_RECOVERY" +], +[ + "0x16 0x001491b24bf9f5288532960ac687abb035127b1d28a5", + "HASH160 0x14 0x17743beb429c55c942d2ec703b98c4d57c2df5c6 EQUAL", + "SEGWIT_RECOVERY,CLEANSTACK,P2SH", + "OK", + "v0 P2SH-P2WPKH with SCRIPT_SEGWIT_RECOVERY" +], +[ + "0 0x16 0x001491b24bf9f5288532960ac687abb035127b1d28a5", + "HASH160 0x14 0x17743beb429c55c942d2ec703b98c4d57c2df5c6 EQUAL", + "SEGWIT_RECOVERY,CLEANSTACK,P2SH", + "CLEANSTACK", + "v0 P2SH-P2WPKH with extra stack item and SCRIPT_SEGWIT_RECOVERY" +], +[ + "0x22 0x00205a0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "HASH160 0x14 0x17a6be2f8fe8e94f033e53d17beefda0f3ac4409 EQUAL", + "CLEANSTACK,P2SH", + "CLEANSTACK", + "v0 P2SH-P2WSH but no SCRIPT_SEGWIT_RECOVERY" +], +[ + "0x22 0x00205a0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "HASH160 0x14 0x17a6be2f8fe8e94f033e53d17beefda0f3ac4409 EQUAL", + "SEGWIT_RECOVERY,CLEANSTACK,P2SH", + "OK", + "v0 P2SH-P2WSH with SCRIPT_SEGWIT_RECOVERY" +], +[ + "0 0x22 0x00205a0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "HASH160 0x14 0x17a6be2f8fe8e94f033e53d17beefda0f3ac4409 EQUAL", + "SEGWIT_RECOVERY,CLEANSTACK,P2SH", + "CLEANSTACK", + "v0 P2SH-P2WSH with extra stack item and SCRIPT_SEGWIT_RECOVERY" +], +[ + "0x03 0x00015a", + "HASH160 0x14 0x40b6941895022d458de8f4bbfe27f3aaa4fb9a74 EQUAL", + "SEGWIT_RECOVERY,CLEANSTACK,P2SH", + "CLEANSTACK", + "Invalid witness program (too short) with SCRIPT_SEGWIT_RECOVERY" +], +[ + "0x04 0x00025a01", + "HASH160 0x14 0x86123d8e050333a605e434ecf73128d83815b36f EQUAL", + "SEGWIT_RECOVERY,CLEANSTACK,P2SH", + "OK", + "Valid witness program (min allowed length) with SCRIPT_SEGWIT_RECOVERY" +], +[ + "0x2a 0x00285a0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f2021222324252627", + "HASH160 0x14 0xdf7b93f88e83471b479fb219ae90e5b633d6b750 EQUAL", + "SEGWIT_RECOVERY,CLEANSTACK,P2SH", + "OK", + "Valid witness program (max allowed length) with SCRIPT_SEGWIT_RECOVERY" +], +[ + "0x2b 0x00295a0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728", + "HASH160 0x14 0x13aa4fcfd630508e0794dca320cac172c5790aea EQUAL", + "SEGWIT_RECOVERY,CLEANSTACK,P2SH", + "CLEANSTACK", + "Invalid witness program (too long) with SCRIPT_SEGWIT_RECOVERY" +], +[ + "0x22 0x60205a0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "HASH160 0x14 0x9b0c7017004d3818b7c833ddb3cb5547a22034d0 EQUAL", + "SEGWIT_RECOVERY,CLEANSTACK,P2SH", + "OK", + "Valid witness program (max allowed version) with SCRIPT_SEGWIT_RECOVERY" +], +[ + "0x22 0x4f205a0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "HASH160 0x14 0x97aa1e96e49ca6d744d7344f649dd9f94bcc35eb EQUAL", + "SEGWIT_RECOVERY,CLEANSTACK,P2SH", + "CLEANSTACK", + "Invalid witness program (invalid version -1) with SCRIPT_SEGWIT_RECOVERY" +], +[ + "0x23 0x0111205a0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "HASH160 0x14 0x4b5321beb1c09f593ff3c02be4af21c7f949e101 EQUAL", + "SEGWIT_RECOVERY,CLEANSTACK,P2SH", + "CLEANSTACK", + "Invalid witness program (invalid version 17) with SCRIPT_SEGWIT_RECOVERY" +], +[ + "0x23 0x00205a0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f51", + "HASH160 0x14 0x8eb812176c9e71732584123dd06d3246e659b199 EQUAL", + "SEGWIT_RECOVERY,CLEANSTACK,P2SH", + "CLEANSTACK", + "Invalid witness program (more than 2 stack items) with SCRIPT_SEGWIT_RECOVERY" +], ["CHECKSEQUENCEVERIFY tests"], ["", "CHECKSEQUENCEVERIFY", "CHECKSEQUENCEVERIFY", "INVALID_STACK_OPERATION", "CSV automatically fails on a empty stack"], From 44416a4468a4815ae9168b71e4a128712a576118 Mon Sep 17 00:00:00 2001 From: Jonathan Gonzalez Date: Tue, 23 Apr 2019 15:13:30 +0000 Subject: [PATCH 06/23] script: Segwit-Recovery checks added to the Script Verification function --- lib/script/script.js | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/lib/script/script.js b/lib/script/script.js index 3985a714b..14b112a54 100644 --- a/lib/script/script.js +++ b/lib/script/script.js @@ -2186,6 +2186,28 @@ class Script { return EMPTY_BUFFER; } + /** + * Test whether the output script is a witness program. + * Note that this will return true even for malformed + * witness v0 programs. + * @returns {Boolean} + */ + + isProgram() { + if (this.raw.length < 4 || this.raw.length > 42) + return false; + + if (this.raw[0] !== opcodes.OP_0 + && (this.raw[0] < opcodes.OP_1 || this.raw[0] > opcodes.OP_16)) { + return false; + } + + if (this.raw[1] + 2 !== this.raw.length) + return false; + + return true; + } + /** * Test whether the output script is unspendable. * @returns {Boolean} @@ -3112,6 +3134,11 @@ class Script { const raw = stack.pop(); const redeem = Script.fromRaw(raw); + if (!(flags & Script.flags.VERIFY_SEGWIT_RECOVERY) !== 0 + && stack.length === 0 && redeem.isProgram()) { + return true; + } + // Execute the redeem script. redeem.execute(stack, flags, tx, index, value, 0); From eb9ca7df03cd5fa5456f661786a8cdb62ef1a6a6 Mon Sep 17 00:00:00 2001 From: Jonathan Gonzalez Date: Fri, 26 Apr 2019 07:07:44 +0000 Subject: [PATCH 07/23] script: Segwit Recovery Flag Check fix --- lib/script/script.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/script/script.js b/lib/script/script.js index 14b112a54..285843977 100644 --- a/lib/script/script.js +++ b/lib/script/script.js @@ -3134,7 +3134,7 @@ class Script { const raw = stack.pop(); const redeem = Script.fromRaw(raw); - if (!(flags & Script.flags.VERIFY_SEGWIT_RECOVERY) !== 0 + if ((flags & Script.flags.VERIFY_SEGWIT_RECOVERY) !== 0 && stack.length === 0 && redeem.isProgram()) { return true; } From a2221638212e1da016097ceeaeec64d7269cbdd9 Mon Sep 17 00:00:00 2001 From: Jonathan Gonzalez Date: Fri, 26 Apr 2019 08:04:08 +0000 Subject: [PATCH 08/23] script: minor camelcase function naming --- lib/script/script.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/script/script.js b/lib/script/script.js index 285843977..0a8da0b14 100644 --- a/lib/script/script.js +++ b/lib/script/script.js @@ -1131,7 +1131,7 @@ class Script { || !(sig[sig.length - 1] & Script.hashType.SIGHASH_FORKID)) subscript.findAndDelete(sig); - CheckTransactionSignature(sig, flags); + checkTransactionSignature(sig, flags); validateKey(key, flags); let res = false; @@ -1263,7 +1263,7 @@ class Script { const sig = stack.get(-isig); const key = stack.get(-ikey); - CheckTransactionECDSASignature(sig, flags); + checkTransactionECDSASignature(sig, flags); validateKey(key, flags); if (sig.length > 0) { @@ -3349,7 +3349,7 @@ function validateECDSASignature(sig, flags) { * @throws {ScriptError} */ -function CheckSighashEncoding(sig, flags) { +function checkSighashEncoding(sig, flags) { assert(Buffer.isBuffer(sig)); assert(typeof flags === 'number'); @@ -3380,7 +3380,7 @@ function CheckSighashEncoding(sig, flags) { * @throws {ScriptError} */ -function CheckTransactionSignature(sig, flags) { +function checkTransactionSignature(sig, flags) { assert(Buffer.isBuffer(sig)); assert(typeof flags === 'number'); @@ -3390,7 +3390,7 @@ function CheckTransactionSignature(sig, flags) { validateSchnorrSignature(sig.slice(0, -1), flags); - return CheckSighashEncoding(sig, flags); + return checkSighashEncoding(sig, flags); } /** @@ -3402,7 +3402,7 @@ function CheckTransactionSignature(sig, flags) { * @throws {ScriptError} */ -function CheckTransactionECDSASignature(sig, flags) { +function checkTransactionECDSASignature(sig, flags) { assert(Buffer.isBuffer(sig)); assert(typeof flags === 'number'); @@ -3412,7 +3412,7 @@ function CheckTransactionECDSASignature(sig, flags) { validateECDSASignature(sig.slice(0, -1), flags) - return CheckSighashEncoding(sig, flags); + return checkSighashEncoding(sig, flags); } /** From 026c7998adedb2dc38c2cf6f7020d6d892f85526 Mon Sep 17 00:00:00 2001 From: Jonathan Gonzalez Date: Tue, 30 Apr 2019 14:43:32 +0000 Subject: [PATCH 09/23] pkg: bcrypto update --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7ff9f747d..fa187e4eb 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "dependencies": { "bcfg": "^0.1.6", "bclient": "^0.1.7", - "bcrypto": "^3.1.5", + "bcrypto": "^3.1.6", "bdb": "^1.1.7", "bdns": "^0.1.5", "bevent": "^0.1.5", From 707c609eb556ef61dd9e0619bed0b92b78137b7b Mon Sep 17 00:00:00 2001 From: Jonathan Gonzalez Date: Tue, 30 Apr 2019 14:43:44 +0000 Subject: [PATCH 10/23] script: minor --- lib/script/script.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/script/script.js b/lib/script/script.js index 0a8da0b14..4e6105d75 100644 --- a/lib/script/script.js +++ b/lib/script/script.js @@ -3139,7 +3139,7 @@ class Script { return true; } - // Execute the redeem script. + // Execute the redeem script. redeem.execute(stack, flags, tx, index, value, 0); // Verify the the stack values. @@ -3296,9 +3296,9 @@ function validateKey(key, flags) { } if ((flags & Script.flags.VERIFY_COMPRESSED_PUBKEYTYPE) - && !common.isCompressedEncoding(key)){ + && !common.isCompressedEncoding(key)) { throw new ScriptError('NONCOMPRESSED_PUBKEY'); - } + }; return true; } @@ -3410,7 +3410,7 @@ function checkTransactionECDSASignature(sig, flags) { if (sig.length === 0) return true; - validateECDSASignature(sig.slice(0, -1), flags) + validateECDSASignature(sig.slice(0, -1), flags); return checkSighashEncoding(sig, flags); } From 0e965aff9f77e5b4a0ed15bc7f031d9bfd4b1164 Mon Sep 17 00:00:00 2001 From: Jonathan Gonzalez Date: Wed, 8 May 2019 06:15:15 +0000 Subject: [PATCH 11/23] script: minor --- lib/script/script.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/script/script.js b/lib/script/script.js index 4e6105d75..4c8ad300e 100644 --- a/lib/script/script.js +++ b/lib/script/script.js @@ -3136,7 +3136,7 @@ class Script { if ((flags & Script.flags.VERIFY_SEGWIT_RECOVERY) !== 0 && stack.length === 0 && redeem.isProgram()) { - return true; + return; } // Execute the redeem script. From d30aa389f4eda0999d5d6f225d0bb50abf2e7ad9 Mon Sep 17 00:00:00 2001 From: Jonathan Gonzalez Date: Sun, 12 May 2019 17:16:24 +0000 Subject: [PATCH 12/23] mempool: Schnorr Flag check added in transaction verification --- lib/mempool/mempool.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/mempool/mempool.js b/lib/mempool/mempool.js index c47ce5c17..350443428 100644 --- a/lib/mempool/mempool.js +++ b/lib/mempool/mempool.js @@ -1020,7 +1020,8 @@ class Mempool extends EventEmitter { return; if (flags & Script.flags.ONLY_STANDARD_VERIFY_FLAGS) { - flags &= ~Script.flags.ONLY_STANDARD_VERIFY_FLAGS; + flags &= ~Script.flags.ONLY_STANDARD_VERIFY_FLAGS + || Script.flags.VERIFY_SEGWIT_RECOVERY; if (await tx.verifyAsync(view, flags, this.workers)) { throw new VerifyError(tx, @@ -1028,6 +1029,14 @@ class Mempool extends EventEmitter { 'non-mandatory-script-verify-flag', 0); } + + if (await tx.verifyAsync(view, + flags ^ Script.flags.VERIFY_SCHNORR, this.workers)) { + throw new VerifyError(tx, + 'invalid', + 'upgrade-conditional-script-failure', + 0); + } } throw new VerifyError(tx, From bb35692d1d5560e843b3f190da78bb8b3512cfde Mon Sep 17 00:00:00 2001 From: Jonathan Gonzalez Date: Tue, 14 May 2019 09:09:29 +0000 Subject: [PATCH 13/23] mempool: minor --- lib/mempool/mempool.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/mempool/mempool.js b/lib/mempool/mempool.js index 350443428..c82ad2c71 100644 --- a/lib/mempool/mempool.js +++ b/lib/mempool/mempool.js @@ -1021,7 +1021,7 @@ class Mempool extends EventEmitter { if (flags & Script.flags.ONLY_STANDARD_VERIFY_FLAGS) { flags &= ~Script.flags.ONLY_STANDARD_VERIFY_FLAGS - || Script.flags.VERIFY_SEGWIT_RECOVERY; + | Script.flags.VERIFY_SEGWIT_RECOVERY; if (await tx.verifyAsync(view, flags, this.workers)) { throw new VerifyError(tx, From fc361aace46f1204540dc02ee470c4310e1a7ce6 Mon Sep 17 00:00:00 2001 From: Jonathan Gonzalez Date: Wed, 15 May 2019 10:04:22 +0000 Subject: [PATCH 14/23] script: remove compressed_pub_key flag from TX Standarness --- lib/script/common.js | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/script/common.js b/lib/script/common.js index 149e8c327..05d9c93ab 100644 --- a/lib/script/common.js +++ b/lib/script/common.js @@ -387,7 +387,6 @@ exports.flags.STANDARD_VERIFY_FLAGS = 0 | exports.flags.VERIFY_CHECKLOCKTIMEVERIFY | exports.flags.VERIFY_CHECKSEQUENCEVERIFY | exports.flags.VERIFY_LOW_S - | exports.flags.VERIFY_COMPRESSED_PUBKEYTYPE | exports.flags.VERIFY_SIGHASH_FORKID; /** From 560914fccc73a80870ece4c392c40a261938c63f Mon Sep 17 00:00:00 2001 From: Jonathan Gonzalez Date: Wed, 15 May 2019 16:11:56 +0000 Subject: [PATCH 15/23] script: SIG_PUSH_ONLY flags added to Standardness checks --- lib/script/common.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/script/common.js b/lib/script/common.js index 05d9c93ab..c9f853dd8 100644 --- a/lib/script/common.js +++ b/lib/script/common.js @@ -380,6 +380,7 @@ exports.flags.STANDARD_VERIFY_FLAGS = 0 | exports.flags.VERIFY_STRICTENC | exports.flags.VERIFY_MINIMALDATA | exports.flags.VERIFY_NULLDUMMY + | exports.flags.VERIFY_SIGPUSHONLY | exports.flags.VERIFY_DISCOURAGE_UPGRADABLE_NOPS | exports.flags.VERIFY_CLEANSTACK | exports.flags.VERIFY_MINIMALIF From 4552f3e77bee6939cb64d29054c5acabda849037 Mon Sep 17 00:00:00 2001 From: Jonathan Gonzalez Date: Thu, 16 May 2019 05:13:08 +0000 Subject: [PATCH 16/23] protocol: May 15th Activation Checkpoint added --- lib/protocol/networks.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/protocol/networks.js b/lib/protocol/networks.js index 85fd28dd5..3724d7065 100644 --- a/lib/protocol/networks.js +++ b/lib/protocol/networks.js @@ -122,7 +122,9 @@ main.checkpointMap = { // Monolith Activation 530359: b('0391c40195cf8ae3436f3955f1a8444f07468fd08bda1a010000000000000000'), // Magnetic Anomaly Activation: - 556767: b('6cd5e644acccee5743ce2e93c541d34169933b6eff2646000000000000000000') + 556767: b('6cd5e644acccee5743ce2e93c541d34169933b6eff2646000000000000000000'), + // Great Wall Activation: + 582680: b('18cc7d8c39ca16dc749acb7278a471964f7dec6ae3b8b4010000000000000000') }; /** @@ -131,7 +133,7 @@ main.checkpointMap = { * @default */ -main.lastCheckpoint = 525000; +main.lastCheckpoint = 582680; /** * @const {Number} From 2622b639383bbd28d281f6285f6e70615adaa081 Mon Sep 17 00:00:00 2001 From: Jonathan Gonzalez Date: Thu, 16 May 2019 05:16:39 +0000 Subject: [PATCH 17/23] changelog: May 15th Hard-Fork changes --- CHANGELOG.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 754ab6f70..99294999b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,19 @@ # Bcash Release Notes & Changelog +## v1.2.0 + +This release includes: +- May 15th upgrade + - Implement Schnorr Signatures on both OP_CHECKSIG, OP_CHECKDATASIG Opcodes. + - Implement Segwit Script Recovery Mechanism. + - Remove VERIFY_COMPRESSED_PUBKEY from Script Standardness Checks. + - Update bcrypto + - bug fixes + ## v1.1.0 This release includes: -- Nov 15 upgrade +- Nov 15 upgrade - Implement and enforce canonical transaction order. - Add OP_CHECKDATASIG and OP_CHECKDATASIGVERIFY. - Enforce minimum transaction size of 100 bytes. From 1c312bed7a68083df462a58cca7dc2817059f869 Mon Sep 17 00:00:00 2001 From: Jonathan Gonzalez Date: Thu, 16 May 2019 05:28:24 +0000 Subject: [PATCH 18/23] networks: revert back to previous lastCheckpoint --- lib/protocol/networks.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/protocol/networks.js b/lib/protocol/networks.js index 3724d7065..5dc52f233 100644 --- a/lib/protocol/networks.js +++ b/lib/protocol/networks.js @@ -133,7 +133,7 @@ main.checkpointMap = { * @default */ -main.lastCheckpoint = 582680; +main.lastCheckpoint = 525000; /** * @const {Number} From 145b6d07869afd98f100ce3a01c86ad298c7711b Mon Sep 17 00:00:00 2001 From: Jonathan Gonzalez Date: Thu, 16 May 2019 05:43:29 +0000 Subject: [PATCH 19/23] protocol: minimum chainwork updates to main / testnet --- lib/protocol/networks.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/protocol/networks.js b/lib/protocol/networks.js index 5dc52f233..26ff9a999 100644 --- a/lib/protocol/networks.js +++ b/lib/protocol/networks.js @@ -207,7 +207,7 @@ main.pow = { */ chainwork: new BN( - '000000000000000000000000000000000000000000d4800adc35a2748a30dfcf', + '000000000000000000000000000000000000000000eafdfa9271c11ceae5513a', 'hex' ), @@ -629,7 +629,7 @@ testnet.pow = { ), bits: 486604799, chainwork: new BN( - '00000000000000000000000000000000000000000000003e28ffb60a2b69f5f0', + '000000000000000000000000000000000000000000000043cb761ba833f844c5', 'hex' ), targetTimespan: 14 * 24 * 60 * 60, From d83ff82e61f6c24e66f32e83a67af5cc8cb45459 Mon Sep 17 00:00:00 2001 From: Jonathan Gonzalez Date: Thu, 16 May 2019 07:34:34 +0000 Subject: [PATCH 20/23] net: protocol messages increased to 2MB --- lib/net/common.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/net/common.js b/lib/net/common.js index 3c2243da7..79a6df055 100644 --- a/lib/net/common.js +++ b/lib/net/common.js @@ -122,12 +122,12 @@ exports.REQUIRED_SERVICES = 0 exports.USER_AGENT = `/bcash:${pkg.version}/`; /** - * Max message size (~4mb with segwit, formerly 2mb) + * Max message size (2MB) * @const {Number} * @default */ -exports.MAX_MESSAGE = 1 * 1000 * 1000; +exports.MAX_MESSAGE = 2 * 1024 * 1024; /** * Amount of time to ban misbheaving peers. From 40ed0075716b8d13a4a58fbbf733d5328673c77a Mon Sep 17 00:00:00 2001 From: Jonathan Gonzalez Date: Fri, 17 May 2019 06:01:44 +0000 Subject: [PATCH 21/23] net: updated seeds --- lib/net/seeds/main.js | 1211 ++------------------------------------ lib/net/seeds/testnet.js | 72 +-- 2 files changed, 63 insertions(+), 1220 deletions(-) diff --git a/lib/net/seeds/main.js b/lib/net/seeds/main.js index 532384d37..d028afd48 100644 --- a/lib/net/seeds/main.js +++ b/lib/net/seeds/main.js @@ -1,1188 +1,87 @@ 'use strict'; module.exports = [ - '1.240.13.81:8333', - '1.255.226.193:8333', - '1.255.226.217:8333', - '2.234.120.52:8333', - '5.9.19.109:8333', - '5.9.28.10:8333', - '5.9.50.119:8333', - '5.9.93.30:8333', - '5.9.151.49:8433', - '5.19.171.173:8333', - '5.39.61.239:8333', - '5.56.40.1:8333', - '5.103.137.146:8333', - '5.189.164.147:8333', - '5.189.170.158:8333', - '5.196.57.71:8333', - '5.249.53.174:8333', - '5.254.82.130:28333', - '8.38.88.126:8333', - '13.54.95.147:8333', - '13.54.224.84:8333', - '13.55.131.240:8333', - '13.55.200.177:8333', - '13.56.70.236:8333', - '13.56.168.64:8333', - '13.57.12.81:8333', - '13.59.207.32:8333', - '13.78.112.11:8333', - '13.92.82.235:8333', - '13.114.127.189:8333', - '13.114.237.45:8333', - '13.114.238.184:8333', - '13.114.245.160:8333', - '13.124.110.101:8333', - '13.125.23.164:8333', - '13.126.10.3:8333', - '13.126.31.141:8333', - '13.126.32.103:8333', - '13.126.40.50:8333', - '13.126.64.248:8333', - '13.126.93.130:8333', - '13.126.139.182:8333', - '13.126.155.63:8333', - '13.126.209.117:8333', - '13.126.226.221:8333', - '13.126.236.41:8333', - '13.126.239.87:8333', - '13.126.239.219:8333', - '13.210.30.22:8333', - '13.229.57.25:8333', - '13.229.57.213:8333', - '13.229.59.240:8333', - '13.229.62.191:8333', - '13.229.63.50:8333', - '13.229.113.143:8333', - '13.229.122.196:8333', - '13.229.203.245:7333', - '13.230.97.136:8333', - '13.231.126.231:8333', - '13.231.203.64:8333', - '13.250.48.41:8333', - '13.250.204.179:8333', - '13.251.118.147:15674', - '18.179.36.112:8333', - '18.184.192.49:8333', - '18.185.211.222:8333', - '18.191.181.40:8333', - '18.196.0.242:8333', - '18.196.183.98:8333', - '18.208.87.37:8333', - '18.217.101.74:8333', - '18.222.184.147:8333', - '18.231.149.34:8363', - '23.97.76.96:8333', - '23.152.0.196:8333', - '23.234.10.95:8333', - '24.45.253.76:8333', - '24.75.196.89:8333', - '24.122.196.49:8333', - '27.50.49.73:8183', - '31.220.4.238:8333', - '34.207.160.204:8333', - '34.212.213.64:8333', - '34.216.166.124:9333', - '34.217.29.57:8333', - '34.220.125.250:8333', - '34.225.107.142:8333', - '34.226.202.231:8333', - '34.227.47.255:8333', - '34.227.195.93:8333', - '34.228.244.49:8333', - '34.229.205.221:8333', - '34.242.2.9:8333', - '34.242.27.61:8333', - '34.243.19.193:8333', - '34.248.37.32:8333', - '34.248.160.67:8333', - '34.250.57.214:8333', - '34.251.49.99:8333', - '34.251.249.159:8333', - '34.253.41.152:8333', - '34.253.137.125:8333', - '35.153.255.120:8433', - '35.154.7.45:8333', - '35.154.101.254:8333', - '35.154.153.188:8333', - '35.156.118.148:8333', - '35.156.225.190:8333', - '35.157.227.145:8333', - '35.157.244.225:8333', - '35.158.82.156:8333', - '35.158.190.238:8333', - '35.158.192.60:8333', - '35.158.208.170:8333', - '35.158.226.142:8333', - '35.158.240.174:8333', - '35.158.246.27:8333', - '35.161.176.150:7333', - '35.167.91.171:8333', - '35.176.5.3:8333', - '35.176.234.207:8333', - '35.177.175.223:8363', - '35.182.63.137:8363', - '35.182.102.44:8333', - '35.195.136.129:8333', - '35.195.145.127:8333', - '35.195.234.115:9333', - '35.198.149.101:8333', - '35.198.162.222:8333', - '35.200.10.109:8333', - '35.200.84.7:8333', - '35.200.96.60:8333', - '35.201.194.85:9333', - '35.204.39.102:8333', - '35.204.245.144:8333', - '35.233.3.184:8333', - '35.233.26.61:8333', - '35.233.55.30:8333', + '18.179.40.172:8333', + '18.208.61.185:8333', + '31.220.56.195:8333', + '35.220.226.25:8333', + '35.227.56.27:8333', '37.48.83.207:8333', - '37.48.123.225:8333', - '37.61.202.153:8333', - '37.61.238.54:8333', - '37.61.238.132:8333', - '37.97.227.182:8133', - '37.187.141.73:9333', - '37.221.209.222:23333', - '38.87.54.172:8333', - '39.104.89.48:8363', - '39.105.79.134:8333', - '39.105.97.143:8333', - '39.105.136.203:8333', - '39.106.114.193:8363', - '39.107.59.76:8333', - '39.107.67.202:8333', - '39.107.94.170:8363', - '39.107.102.25:8363', - '39.107.224.131:8333', - '39.107.225.178:8333', - '39.108.100.122:8333', - '39.108.107.120:8333', - '39.108.192.161:8333', - '39.108.195.54:8333', - '39.108.195.109:8333', - '39.108.246.163:8333', - '39.108.246.172:8333', - '39.108.246.184:8333', - '39.108.246.189:8333', - '39.108.246.198:8333', - '39.108.246.218:8333', - '39.108.246.220:8333', - '39.108.246.222:8333', - '39.108.246.223:8333', - '39.108.246.226:8333', - '39.108.246.238:8333', - '42.236.82.38:8343', - '43.225.110.58:8332', - '45.32.46.198:8333', - '45.32.233.225:8333', - '45.33.7.120:10333', - '45.58.115.58:8333', - '45.79.72.31:8888', - '46.4.33.85:8333', - '46.4.89.24:3443', - '46.101.197.198:8333', - '46.166.142.52:8333', - '46.166.160.147:8333', - '46.166.161.105:8333', - '46.166.162.45:20008', - '46.166.162.123:20011', - '46.229.220.133:8363', - '47.52.4.116:8333', - '47.52.9.80:8333', - '47.52.9.93:8333', - '47.52.9.105:8333', - '47.52.9.183:8333', - '47.52.9.198:8333', - '47.52.9.219:8333', - '47.52.10.4:8333', - '47.52.10.12:8333', - '47.52.10.20:8333', - '47.52.10.27:8333', - '47.52.10.50:8333', - '47.52.10.54:8333', - '47.52.10.59:8333', - '47.52.10.61:8333', - '47.52.10.70:8333', - '47.52.10.83:8333', - '47.52.10.94:8333', - '47.52.10.97:8333', - '47.52.10.105:8333', - '47.52.10.239:8333', - '47.52.10.244:8333', - '47.52.38.97:8333', - '47.52.75.169:8333', - '47.52.88.224:8333', - '47.52.106.253:8333', - '47.52.115.237:8333', - '47.52.241.234:8333', - '47.74.10.227:8363', - '47.74.186.127:18333', - '47.75.32.131:8333', - '47.75.73.198:8363', - '47.75.136.138:8363', - '47.88.32.206:8333', - '47.88.32.235:8333', - '47.88.32.249:8333', - '47.88.33.0:8333', - '47.88.33.51:8333', - '47.88.33.60:8333', - '47.88.33.169:8333', - '47.88.33.205:8333', - '47.88.33.215:8333', - '47.88.33.248:8333', - '47.88.34.21:8333', - '47.88.34.121:8333', - '47.88.34.131:8333', - '47.88.34.142:8333', - '47.88.34.175:8333', - '47.88.34.190:8333', - '47.88.57.99:8333', - '47.88.62.100:8333', - '47.88.76.190:8333', - '47.88.76.211:8333', - '47.88.77.13:8333', - '47.88.77.42:8333', - '47.88.77.178:8333', - '47.88.77.244:8333', - '47.88.78.120:8333', - '47.88.78.187:8333', - '47.88.78.228:8333', - '47.88.78.241:8333', - '47.88.79.42:8333', - '47.88.79.88:8333', - '47.88.79.94:8333', - '47.88.188.5:8333', - '47.88.188.6:8333', - '47.88.188.15:8333', - '47.88.188.97:8333', - '47.88.188.137:8333', - '47.88.188.143:8333', - '47.88.188.187:8333', - '47.88.188.201:8333', - '47.88.188.231:8333', - '47.88.188.246:8333', - '47.88.189.2:8333', - '47.88.189.65:8333', - '47.88.189.92:8333', - '47.88.189.134:8333', - '47.88.189.180:8333', - '47.88.189.201:8333', - '47.88.190.10:8333', - '47.88.190.90:8333', - '47.88.190.113:8333', - '47.88.190.225:8333', - '47.88.191.31:8333', - '47.88.191.106:8333', - '47.88.191.209:8333', - '47.88.192.122:8333', - '47.88.192.179:8333', - '47.88.192.223:8333', - '47.88.192.237:8333', - '47.88.193.22:8333', - '47.88.193.93:8333', - '47.89.22.8:8333', - '47.89.177.134:8333', + '38.87.54.163:8334', + '38.143.66.14:8333', '47.89.180.57:8333', - '47.89.185.150:8363', - '47.89.248.115:8363', - '47.90.12.238:8333', - '47.90.102.70:8333', - '47.90.204.241:8333', - '47.90.208.254:8333', - '47.91.88.233:8363', - '47.91.108.119:8363', - '47.92.70.2:8333', - '47.92.167.52:8363', - '47.93.114.229:8333', - '47.93.116.138:8333', - '47.93.122.227:8333', - '47.93.123.193:8333', - '47.93.125.24:8333', - '47.93.125.109:8333', - '47.93.137.197:8333', - '47.93.138.128:8333', - '47.93.138.140:8333', - '47.93.138.144:8333', - '47.93.138.163:8333', - '47.93.138.194:8333', - '47.93.138.195:8333', - '47.93.138.197:8333', - '47.93.138.213:8333', - '47.93.139.67:8333', '47.93.174.61:8333', - '47.93.255.135:8333', - '47.94.36.120:8333', - '47.94.36.250:8333', - '47.94.37.57:8333', - '47.94.37.100:8333', - '47.94.37.105:8333', - '47.94.37.111:8333', - '47.94.37.134:8333', - '47.94.37.137:8333', - '47.94.37.139:8333', - '47.94.37.147:8333', - '47.94.37.150:8333', - '47.94.37.151:8333', - '47.94.37.152:8333', - '47.94.37.254:8333', - '47.94.38.5:8333', - '47.94.39.87:8333', - '47.94.40.104:8333', - '47.94.41.42:8333', - '47.94.41.58:8333', - '47.94.43.22:8333', - '47.94.43.193:8333', - '47.94.43.217:8333', - '47.94.44.224:8333', - '47.94.46.31:8333', - '47.94.46.219:8333', - '47.94.46.224:8333', - '47.94.47.95:8333', - '47.94.47.202:8333', - '47.94.47.209:8333', - '47.94.47.216:8333', - '47.94.56.232:8333', - '47.94.57.27:8333', - '47.94.57.68:8333', - '47.94.57.92:8333', - '47.94.57.95:8333', - '47.94.57.114:8333', - '47.94.57.121:8333', - '47.94.57.128:8333', - '47.94.57.139:8333', - '47.94.57.140:8333', - '47.94.57.145:8333', - '47.94.57.146:8333', - '47.94.57.149:8333', - '47.94.57.151:8333', - '47.94.57.152:8333', - '47.94.57.156:8333', - '47.94.57.161:8333', - '47.94.58.146:8333', - '47.94.58.194:8333', - '47.94.133.252:8333', - '47.94.198.98:8333', - '47.95.32.9:8333', - '47.95.32.11:8333', - '47.95.32.37:8333', - '47.95.32.49:8333', - '47.95.32.81:8333', - '47.95.32.102:8333', - '47.95.32.115:8333', - '47.95.32.150:8333', - '47.95.32.160:8333', - '47.95.32.168:8333', - '47.95.32.170:8333', - '47.95.32.206:8333', - '47.95.32.214:8333', - '47.95.32.222:8333', - '47.95.33.36:8333', - '47.95.34.204:8333', - '47.95.34.239:8333', - '47.95.36.36:8333', - '47.95.36.119:8333', - '47.95.36.127:8333', - '47.95.36.131:8333', - '47.97.167.221:8334', - '47.184.93.182:8333', - '47.186.203.39:8333', - '47.199.234.141:8333', - '47.221.138.88:8333', + '47.98.224.31:28333', + '47.147.194.165:8333', '47.254.42.16:8333', - '47.254.144.59:8333', - '47.254.144.129:8333', - '47.254.150.114:8363', - '47.254.199.35:8363', - '50.3.73.107:8333', - '50.30.37.156:8333', - '50.79.174.253:8333', - '50.195.9.100:8333', - '50.225.198.67:6359', - '51.15.90.201:8333', - '51.38.194.201:8333', - '52.15.236.67:8333', - '52.16.106.11:8333', - '52.16.114.127:8333', - '52.19.29.144:8333', - '52.19.182.1:8333', - '52.28.202.131:8333', - '52.28.233.11:8333', - '52.29.36.71:8333', - '52.29.133.16:8333', - '52.50.85.157:8333', - '52.51.232.234:8333', - '52.53.148.163:8333', - '52.53.198.141:8333', - '52.53.246.65:8333', - '52.53.248.42:8333', - '52.55.179.5:8333', - '52.56.241.112:8333', - '52.57.14.67:8333', - '52.57.252.31:8333', - '52.58.163.201:8333', - '52.58.190.144:8333', - '52.59.70.178:8333', - '52.62.183.49:8333', - '52.63.133.105:8333', - '52.65.84.70:8333', - '52.66.180.152:8333', - '52.77.194.245:8333', - '52.77.211.219:8333', - '52.77.223.113:8333', - '52.78.145.204:8333', - '52.78.163.204:8333', - '52.90.132.42:8333', - '52.91.47.118:8333', - '52.169.157.156:8333', - '52.175.202.247:8333', - '52.196.119.169:8333', - '52.210.38.227:8333', - '52.210.252.123:8333', - '52.212.92.0:8333', - '52.221.186.28:8333', - '52.221.227.157:8333', - '52.243.37.183:8333', + '50.225.198.67:6628', + '52.243.44.176:8333', '52.246.166.192:8333', - '54.36.116.121:10333', - '54.36.172.7:8333', - '54.37.130.111:8333', - '54.64.217.175:8333', - '54.66.220.179:8333', - '54.66.222.15:8333', - '54.66.228.94:8333', - '54.76.4.146:8333', - '54.77.6.125:8333', - '54.77.96.42:8333', - '54.79.88.22:8333', - '54.79.95.49:8333', - '54.86.30.74:8333', - '54.89.8.237:8333', - '54.89.162.54:8333', - '54.90.148.132:8333', - '54.93.65.196:8333', - '54.149.206.22:18916', - '54.153.6.133:8333', - '54.153.9.217:8333', - '54.153.122.31:8333', - '54.153.163.163:8333', - '54.153.224.151:8333', - '54.158.13.123:8333', - '54.158.87.15:8333', - '54.168.72.248:8333', - '54.169.3.155:8333', - '54.169.209.7:7333', - '54.169.231.55:8333', - '54.171.136.88:8444', - '54.173.149.22:8333', - '54.175.243.122:8333', - '54.179.133.79:8333', - '54.179.157.33:8333', - '54.180.1.64:8333', - '54.183.131.136:8333', - '54.183.187.249:8333', - '54.183.214.240:8333', - '54.183.216.238:8333', - '54.183.218.186:8333', - '54.183.235.131:8333', - '54.193.103.231:8333', - '54.193.246.14:8333', - '54.206.46.40:8333', - '54.211.136.114:8333', - '54.215.248.143:8333', - '54.219.159.132:8333', - '54.219.172.105:8333', - '54.224.137.110:8333', - '54.233.234.82:8333', - '54.236.212.139:8333', - '54.245.164.76:8333', - '54.254.134.94:8333', - '54.255.187.149:8333', - '54.255.213.254:8333', - '59.10.140.44:8335', - '59.110.115.53:8333', - '59.110.115.60:8333', - '59.110.216.139:8363', - '60.205.94.41:8333', - '60.205.149.7:8333', - '60.205.149.204:8333', - '60.205.179.138:8333', - '60.205.215.215:18833', - '61.18.151.101:8333', - '62.75.244.78:8333', - '62.90.227.180:8333', - '62.152.58.16:9907', - '63.247.147.166:8334', + '54.95.31.146:8333', + '54.210.151.7:8333', + '60.191.106.150:8333', + '60.249.215.221:8333', + '62.42.138.162:8333', + '63.143.32.126:8433', '66.96.199.249:8333', - '67.188.41.51:8333', - '69.47.148.54:8333', - '70.184.247.44:8333', - '71.38.196.24:8333', - '71.73.38.126:8333', - '72.224.102.253:8334', - '72.234.251.203:8333', + '67.239.3.146:8333', '73.76.218.50:8333', - '74.207.245.195:19333', - '75.37.69.236:8333', - '75.136.48.74:8333', - '76.66.192.234:8333', - '76.110.115.13:8369', - '76.126.39.45:8333', - '76.184.246.197:8333', - '77.109.122.239:8340', - '77.120.105.164:8333', - '77.232.166.225:8333', - '77.234.104.137:8333', - '77.244.219.165:8333', - '77.244.219.166:8333', - '77.244.219.167:8333', - '78.22.99.242:8333', - '78.35.181.200:8333', - '78.46.16.252:11108', - '78.46.67.111:8333', - '78.47.24.40:8333', - '78.84.174.125:8333', - '79.36.147.24:8333', - '79.67.124.119:8333', - '79.109.117.54:8333', - '79.134.64.83:8333', - '79.134.70.77:8333', - '79.134.73.36:8333', - '79.134.83.143:8333', - '79.137.42.25:8333', - '79.137.68.78:8333', - '79.137.69.175:8333', - '79.137.70.5:8333', - '79.250.114.251:8333', - '79.250.121.75:8333', - '80.195.243.45:8333', - '81.98.216.212:8333', - '81.169.139.77:5914', - '82.2.236.231:8333', - '82.117.166.77:8331', - '82.196.13.79:8333', + '78.97.206.149:8333', + '81.237.206.224:8353', + '82.75.64.15:8333', '82.200.205.30:8331', - '82.200.205.39:8331', - '82.202.197.224:8334', - '82.211.30.36:8333', - '82.217.133.145:8333', - '83.69.203.44:8333', - '83.221.211.116:8333', - '84.56.187.117:8333', + '83.172.69.154:8333', '84.112.174.5:8222', - '84.125.67.231:8333', - '84.213.144.222:8333', - '84.234.96.41:8333', - '84.234.96.42:8333', - '85.10.200.221:8333', - '85.25.133.32:8333', - '85.197.36.252:8333', - '85.200.245.214:8333', - '85.214.237.218:8333', - '85.243.186.135:8333', - '85.253.103.191:8333', - '86.161.40.125:8333', - '86.162.10.171:8333', - '87.2.144.178:8333', - '87.3.12.47:8333', - '87.8.28.23:8333', - '87.78.236.47:8333', - '87.133.41.126:8333', - '87.133.220.8:8333', - '87.182.178.22:8333', - '87.182.182.147:8333', - '87.182.185.254:8333', - '87.242.174.233:8333', - '88.7.177.244:8333', - '88.96.33.124:8333', - '88.97.48.42:8333', - '88.99.103.51:8333', - '88.99.146.162:8333', - '88.198.36.232:8333', - '88.198.39.205:28333', - '88.198.67.196:8333', - '88.202.202.221:8335', - '88.208.3.195:8331', - '89.0.80.21:8333', - '89.0.109.235:8333', - '89.34.99.3:8333', - '89.38.97.95:8333', - '89.39.106.123:9353', - '89.131.16.172:1470', + '88.99.48.7:9090', '89.179.247.236:8333', - '89.238.77.69:8334', - '91.64.148.4:8333', - '91.121.92.14:8333', - '91.134.199.24:8333', - '91.197.44.144:8333', - '91.198.177.222:8333', - '91.204.149.5:8335', - '92.206.114.181:8333', - '92.222.180.14:8343', - '92.246.20.200:8334', - '93.95.100.154:8333', - '93.95.100.155:8333', - '93.104.112.3:8333', - '93.104.113.211:8333', - '93.115.26.186:20011', - '93.115.28.162:8333', - '93.197.37.35:8323', - '93.255.124.231:8333', - '94.5.214.115:8335', - '94.19.86.105:8331', - '94.23.47.151:8333', - '94.23.58.222:8333', - '94.130.9.100:8334', - '94.130.35.227:8333', - '94.130.64.143:8333', - '94.156.174.100:8333', - '94.177.106.166:8333', + '91.148.141.242:8333', + '92.206.113.127:8333', '94.199.178.17:8022', - '94.247.131.236:8333', - '94.247.134.75:8333', - '95.76.228.22:8333', + '94.247.134.76:8333', '95.79.35.133:7333', - '95.80.44.95:8333', - '95.80.44.100:8333', - '95.154.97.226:8333', - '95.213.171.117:8333', - '95.216.0.34:8333', - '95.216.0.79:38333', - '95.216.2.183:8333', - '95.216.5.237:8333', - '95.216.9.176:8333', - '95.216.12.25:8333', - '95.216.13.103:8333', - '95.216.14.242:8333', - '95.216.18.251:8333', - '95.216.19.219:8333', - '95.216.21.47:38333', - '95.216.21.109:8333', - '95.216.46.244:8333', - '95.216.158.151:8333', - '96.70.42.232:8333', - '98.115.251.214:8333', - '98.144.69.207:8333', - '98.158.145.133:8333', - '98.165.34.4:8333', - '98.167.141.183:8333', - '98.195.28.122:8333', - '98.206.255.202:8333', - '98.207.154.132:8333', - '99.197.38.35:8333', - '99.242.198.6:8333', - '101.37.12.97:8333', - '101.37.12.132:8333', - '101.37.12.209:8333', - '101.37.14.168:8333', - '101.37.116.47:8333', - '101.37.116.137:8333', - '101.37.116.181:8333', - '101.37.117.159:8333', - '101.37.117.172:8333', - '101.37.160.142:8333', - '101.37.160.222:8333', - '101.37.161.111:8333', - '101.37.161.153:8333', - '101.37.161.215:8333', - '101.37.161.249:8333', - '101.37.162.92:8333', - '101.37.162.144:8333', - '101.37.163.41:8333', - '101.37.163.84:8333', - '101.37.163.132:8333', - '101.37.253.219:8333', - '101.37.253.223:8333', - '101.37.253.232:8333', - '101.92.37.80:8334', - '101.92.39.9:8334', - '101.92.40.237:8334', - '101.132.17.39:8333', - '101.132.25.69:8333', - '101.132.25.94:8333', - '101.132.25.119:8333', - '101.132.25.169:8333', - '101.132.25.173:8333', - '101.132.26.0:8333', - '101.132.26.16:8333', - '101.132.26.17:8333', - '101.132.26.28:8333', - '101.132.26.47:8333', - '101.132.26.53:8333', - '101.132.26.64:8333', - '101.132.26.66:8333', - '101.132.26.76:8333', - '101.132.26.84:8333', - '101.132.27.139:8333', - '101.201.69.70:8333', - '103.13.29.183:8333', - '103.44.162.138:8333', - '103.70.192.128:8333', - '103.71.252.42:8333', - '103.80.26.180:8333', - '103.85.14.10:3100', - '103.85.14.13:17333', - '103.230.217.39:8333', - '104.32.22.29:8333', - '104.154.189.24:8333', - '104.168.144.27:8333', - '104.172.190.165:8333', - '104.196.255.91:8333', - '104.214.226.135:8443', - '104.215.29.209:8333', - '104.219.250.4:8333', - '104.236.231.51:8333', + '95.172.230.70:8333', + '100.1.209.114:8333', + '100.11.124.171:8333', '104.238.131.116:8333', - '104.238.134.28:8333', - '106.14.24.114:8333', - '106.14.25.158:8333', - '106.14.104.6:8333', - '106.14.104.34:8333', - '106.14.104.36:8333', - '106.14.104.39:8333', - '106.14.104.49:8333', - '106.14.104.84:8333', - '106.14.104.167:8333', - '106.14.104.171:8333', - '106.14.104.234:8333', - '106.14.104.241:8333', - '106.14.104.249:8333', - '106.14.105.7:8333', - '106.14.105.9:8333', - '106.14.105.11:8333', - '106.14.105.13:8333', - '106.14.105.18:8333', - '106.14.105.23:8333', - '106.14.105.24:8333', - '106.14.105.34:8333', - '106.14.105.45:8333', - '106.14.105.46:8333', - '106.14.105.47:8333', - '106.14.105.48:8333', - '106.14.105.50:8333', - '106.14.105.53:8333', - '106.14.105.54:8333', - '106.14.105.55:8333', - '106.14.105.56:8333', - '106.14.105.57:8333', - '106.14.105.59:8333', - '106.14.105.61:8333', - '106.14.105.64:8333', - '106.14.105.65:8333', - '106.14.105.74:8333', - '106.14.105.75:8333', - '106.14.105.103:8333', - '106.14.105.128:8333', - '106.14.105.160:8333', - '106.14.105.197:8333', - '106.15.36.95:8333', - '106.15.38.181:8333', - '106.15.52.8:8333', - '106.15.52.83:8333', - '106.15.52.142:8333', - '106.15.52.153:8333', - '106.15.52.170:8333', - '106.15.52.191:8333', - '106.15.52.216:8333', - '106.15.52.231:8333', - '106.15.52.235:8333', - '106.15.53.2:8333', - '106.15.53.5:8333', - '106.15.56.13:8333', - '106.15.56.24:8333', - '106.15.56.27:8333', - '106.15.56.29:8333', - '106.15.56.67:8333', - '106.15.56.81:8333', - '106.15.56.183:8333', - '106.15.56.191:8333', - '106.15.56.235:8333', - '106.15.57.10:8333', - '106.15.57.18:8333', - '106.15.57.33:8333', - '106.15.57.46:8333', - '106.15.57.63:8333', - '106.15.57.110:8333', - '106.15.74.53:8333', - '106.15.74.72:8333', - '106.15.75.201:8333', - '107.6.181.169:8333', - '107.23.167.150:8333', - '107.23.184.33:8333', - '107.150.56.194:8333', - '107.167.80.114:8333', - '107.170.231.153:8333', - '107.191.109.17:8333', - '108.49.30.164:8333', - '108.61.207.116:8333', - '108.230.136.222:8333', - '109.233.58.46:8333', - '109.238.81.82:8444', - '111.90.158.170:17797', - '112.74.57.179:8333', - '114.215.30.211:8333', - '115.68.219.100:8333', - '116.62.12.6:8333', - '116.62.12.249:8333', - '116.62.13.142:8333', - '116.62.13.150:8333', - '116.62.13.177:8333', - '116.62.13.179:8333', - '116.62.13.182:8333', - '116.62.13.183:8333', - '116.62.13.185:8333', - '116.62.13.186:8333', - '116.62.13.206:8333', - '116.62.13.210:8333', - '116.62.13.216:8333', - '116.62.13.219:8333', - '116.62.13.222:8333', - '118.31.35.180:8333', - '118.31.64.15:8333', - '118.31.164.83:8333', - '118.31.164.108:8333', - '118.31.164.124:8333', - '118.31.164.193:8333', - '118.31.165.250:8333', - '118.31.166.20:8333', - '118.31.166.41:8333', - '118.31.166.46:8333', - '118.31.166.50:8333', - '118.31.166.52:8333', - '118.31.166.58:8333', - '118.31.166.63:8333', - '118.31.166.66:8333', - '118.31.166.68:8333', - '118.31.166.71:8333', - '118.31.166.73:8333', - '118.31.166.78:8333', - '118.31.166.80:8333', - '118.31.166.82:8333', - '118.31.166.85:8333', - '118.31.166.86:8333', - '118.31.166.88:8333', - '118.31.166.89:8333', - '118.31.166.92:8333', - '118.31.166.95:8333', - '118.31.166.101:8333', - '118.31.166.108:8333', - '118.31.166.109:8333', - '118.31.166.110:8333', - '118.31.166.113:8333', - '118.31.166.116:8333', - '118.31.169.98:8333', - '118.31.169.199:8333', - '118.31.169.221:8333', - '118.171.108.169:8333', - '118.190.33.144:8336', - '118.193.141.87:8333', - '119.9.116.50:8333', - '119.23.128.1:8333', - '119.23.133.21:8333', - '119.23.136.17:8333', - '119.23.136.69:8333', - '119.23.136.102:8333', - '119.23.136.213:8333', - '119.23.136.252:8333', - '119.23.137.12:8333', - '119.23.137.31:8333', - '119.23.137.54:8333', - '119.23.137.81:8333', - '119.23.137.104:8333', - '119.23.137.129:8333', - '119.23.137.138:8333', - '119.23.137.147:8333', - '119.23.160.19:8333', - '119.23.160.146:8333', - '119.23.160.235:8333', - '119.23.160.244:8333', - '119.23.161.10:8333', - '119.23.161.13:8333', - '119.23.161.14:8333', - '119.23.161.15:8333', - '119.23.161.21:8333', - '119.23.161.187:8333', - '119.23.172.14:8333', - '119.23.172.167:8333', - '119.23.173.8:8333', - '119.23.173.12:8333', - '119.23.173.45:8333', - '119.23.173.77:8333', - '119.23.173.88:8333', - '119.23.173.108:8333', - '119.23.173.114:8333', - '119.23.173.131:8333', - '119.23.173.138:8333', - '119.23.173.158:8333', - '119.23.173.161:8333', - '119.23.173.164:8333', - '119.23.173.172:8333', - '119.23.173.184:8333', - '119.23.173.186:8333', - '119.23.173.187:8333', - '119.23.173.190:8333', - '119.23.173.192:8333', - '119.23.173.193:8333', - '119.23.173.197:8333', - '119.23.173.200:8333', - '119.23.173.202:8333', - '119.23.173.205:8333', - '119.23.173.212:8333', - '119.23.212.165:8333', - '120.76.31.99:8333', - '120.76.157.222:8333', - '120.76.200.95:8333', - '120.76.201.161:8333', - '120.76.202.15:8333', - '120.76.202.120:8333', - '120.76.202.138:8333', - '120.76.203.53:8333', - '120.76.203.73:8333', - '120.76.203.124:8333', - '120.76.203.125:8333', - '120.76.203.139:8333', - '120.76.213.131:8333', - '120.76.213.239:8333', - '120.77.64.171:8333', - '120.77.69.107:8333', - '120.77.69.197:8333', - '120.77.69.198:8333', - '120.77.69.212:8333', - '120.77.69.230:8333', - '120.77.236.29:8333', - '120.77.236.32:8333', - '120.77.236.148:8333', - '120.77.236.166:8333', - '120.77.236.204:8333', - '120.77.236.248:8333', - '120.77.237.0:8333', - '120.77.237.5:8333', - '120.77.237.13:8333', - '120.77.237.146:8333', - '120.78.63.223:8333', - '120.79.160.74:8444', - '121.40.176.35:8333', - '124.160.26.251:8333', - '125.238.76.91:8333', + '107.175.46.159:8334', + '107.191.117.175:8333', + '109.70.144.105:8333', + '109.134.181.120:8334', + '111.90.145.37:8334', + '113.10.152.126:8333', '128.199.138.39:8333', - '131.215.144.186:8333', - '136.243.16.130:8333', - '136.243.146.69:8343', - '137.59.22.122:8333', - '137.74.30.99:8333', - '138.68.54.100:8333', - '138.68.239.11:8333', - '138.197.193.154:8333', - '138.197.204.148:8333', - '138.201.221.79:8333', - '138.232.18.242:13001', - '139.162.241.202:8333', - '139.196.106.118:8333', - '139.196.189.47:8333', - '141.105.67.140:8333', '141.239.183.148:8333', - '142.44.214.159:8333', - '142.68.49.167:8333', - '142.93.24.91:8333', - '142.93.164.171:8333', - '143.202.160.228:8333', - '144.76.5.41:8333', - '144.76.39.233:8335', - '144.76.44.102:8333', - '144.76.100.54:8333', + '142.68.56.141:8333', '144.76.102.2:8333', - '144.76.111.6:8333', - '144.76.186.69:8333', - '144.76.202.44:8333', - '144.217.73.86:8333', - '144.217.74.188:18337', - '144.217.181.103:8333', - '147.135.136.229:8333', - '148.66.58.130:8333', - '148.66.58.186:8333', - '148.66.62.234:8333', - '148.251.1.5:8333', - '148.251.193.229:8335', - '149.28.148.196:8333', - '149.56.79.70:8333', - '149.56.198.232:8333', - '149.86.225.188:8332', - '149.202.211.17:8333', - '149.210.238.31:8333', - '151.80.161.148:8333', - '158.69.22.44:8333', - '158.69.77.131:8333', + '146.90.44.252:8333', + '148.70.154.102:8333', '158.69.84.33:8333', - '158.69.102.238:8333', - '158.69.125.174:1333', - '158.69.241.58:8333', - '158.140.172.246:8333', - '159.65.0.14:8333', - '159.65.40.247:8343', - '159.65.60.54:8333', - '159.65.86.67:8333', - '159.65.98.139:8333', - '159.89.19.157:8333', - '159.89.26.27:8333', - '159.89.96.177:8333', - '159.203.111.211:8333', - '159.203.120.173:8333', - '162.144.49.216:8321', + '162.213.252.3:8333', '162.242.168.36:8333', '162.242.168.55:8333', - '162.242.168.57:8333', - '163.172.4.103:8333', - '163.172.128.36:8333', - '163.172.176.53:8333', - '163.172.186.49:8333', - '165.227.84.200:8963', - '165.227.202.193:8333', - '167.88.15.87:6359', - '167.99.34.63:8333', - '167.99.75.115:8333', - '167.99.172.163:8333', - '167.99.200.5:8333', - '167.99.253.94:8334', - '172.96.142.186:9333', + '163.172.142.149:10020', '172.96.161.245:8333', - '172.104.65.251:8333', - '172.105.233.17:8333', - '172.242.142.172:8333', - '173.212.202.33:18337', - '173.212.236.228:8333', + '172.249.77.148:8333', + '173.82.103.250:8333', + '173.212.202.187:8335', + '173.214.244.102:8333', '173.224.240.45:8333', - '173.224.240.78:8333', - '173.230.140.79:8333', - '173.255.219.182:8333', - '176.9.7.168:8333', - '176.9.30.35:8333', - '176.9.32.89:8333', - '176.9.65.41:9090', - '176.9.77.166:7133', - '176.9.92.117:8333', - '176.9.127.48:8333', - '176.9.136.71:8333', - '176.9.143.119:8333', - '176.9.148.163:8333', - '176.9.154.110:8333', - '176.37.16.118:8333', - '178.33.136.161:8333', - '178.63.96.4:8888', - '178.79.189.199:8333', - '178.128.9.219:8333', - '178.128.12.3:8333', - '178.128.106.150:8333', - '178.128.157.115:8338', - '178.128.202.182:9333', - '178.128.212.199:8333', - '178.128.240.66:8333', - '178.238.226.209:8333', - '179.218.34.57:8333', - '183.111.205.81:8333', - '184.70.216.102:8333', - '184.169.195.77:8333', - '185.41.113.69:8333', - '185.50.191.68:8333', - '185.152.35.75:8333', - '185.154.156.58:8333', - '185.175.61.53:8333', - '185.175.61.190:8333', - '185.202.162.54:8333', - '185.244.192.11:8333', - '188.40.93.205:8333', - '188.68.38.210:8333', - '188.106.27.243:8333', - '188.138.75.74:8335', - '188.141.107.182:8333', - '188.165.255.194:8333', - '188.193.168.33:8347', - '188.193.169.25:8347', + '178.128.118.37:8333', + '179.218.80.242:8333', + '188.134.90.224:8333', '188.214.30.3:8333', - '188.214.30.76:8333', - '188.214.30.95:8333', - '188.214.30.99:8333', - '188.214.30.100:8333', - '188.214.30.131:8333', - '188.214.30.133:8333', - '188.214.30.137:8333', - '188.214.30.138:8333', - '188.214.30.208:8333', - '188.214.130.29:8333', - '188.241.58.88:8333', - '188.241.58.224:8333', - '190.2.130.27:8333', + '188.241.58.206:8333', '190.2.140.16:8333', - '190.112.223.58:8333', - '192.81.132.222:8333', - '192.99.19.160:8333', - '192.173.172.81:8333', - '192.203.228.91:8333', - '193.29.187.50:8333', - '193.29.187.72:8333', - '193.29.187.83:8333', - '193.29.187.84:8333', - '193.29.187.85:8333', - '193.29.187.116:8333', - '193.153.56.43:8333', - '193.169.244.121:8333', '193.169.244.189:8333', - '193.234.225.156:8333', '194.14.246.205:8444', - '194.14.247.123:8333', - '194.14.247.165:8333', - '194.14.247.166:8333', - '194.67.222.6:8333', + '194.14.247.116:8333', + '195.122.150.173:8333', '195.154.168.129:8333', - '195.201.8.214:8333', - '195.201.195.139:8333', - '195.242.93.189:8888', '198.27.68.86:8333', - '198.27.188.248:8333', - '198.100.148.71:8333', '198.204.229.34:8333', - '199.201.110.84:8333', - '202.9.39.88:8333', - '203.162.80.222:8333', - '204.16.247.254:8333', - '206.81.1.144:8333', - '206.189.30.111:8333', - '206.189.55.91:8333', - '206.189.127.50:8333', - '206.189.196.98:9333', - '206.189.204.230:8333', - '209.159.151.219:8333', - '209.159.155.74:8333', - '209.181.233.7:8333', - '212.32.230.219:8333', - '212.117.214.102:8333', - '213.66.28.170:8353', - '213.133.103.103:9090', - '213.136.70.6:8333', - '213.219.160.243:8340', - '213.222.236.5:8333', - '213.239.209.147:8333', - '213.239.216.150:8333', - '213.239.216.162:9090', - '216.218.235.93:8333', - '216.249.70.15:8333', - '216.250.114.92:8333', - '217.23.14.133:8333', - '217.73.131.10:8333', - '217.73.131.11:8333', - '217.78.5.83:8333', - '217.115.116.200:18933', - '217.136.128.213:8334', - '217.160.28.179:8333', - '217.182.199.21:8333', - '217.240.189.128:8333', - '221.121.202.147:8333', - '222.239.10.69:8333', - '222.239.10.74:8333', - '222.239.10.135:8333', - '222.239.193.117:8333', - '222.239.193.121:8333', - '222.239.218.104:8333' + '204.44.118.195:8333', + '212.107.44.171:10333', + '213.165.68.218:8333', + '213.227.140.194:8333', + '216.218.235.93:8333' ]; diff --git a/lib/net/seeds/testnet.js b/lib/net/seeds/testnet.js index 9405e40f6..7797a2393 100644 --- a/lib/net/seeds/testnet.js +++ b/lib/net/seeds/testnet.js @@ -1,71 +1,15 @@ 'use strict'; module.exports = [ - '1.255.226.193:18333', - '1.255.226.217:18333', - '5.9.5.135:18334', - '5.9.150.112:9696', - '13.250.173.230:17333', - '18.216.173.150:18334', - '18.237.204.203:9342', - '34.215.127.137:18333', - '34.253.51.235:18333', - '37.187.120.228:38333', - '39.106.248.45:18333', - '39.107.29.131:8363', - '45.33.2.38:18333', - '47.106.172.16:18333', - '50.3.233.20:18333', - '51.15.221.112:17333', + '35.237.7.206:18333', '52.25.222.97:18333', - '52.50.85.157:18333', - '52.210.18.84:18333', '54.149.245.114:18333', - '54.215.17.178:18333', - '54.218.67.107:18333', - '54.255.232.245:7333', - '59.110.106.190:18333', - '66.70.180.6:20333', - '78.46.67.111:18333', - '82.221.106.145:18333', - '85.214.213.86:28333', - '88.198.36.232:18333', - '93.95.100.153:18333', - '95.216.1.174:19800', - '98.115.251.214:18333', - '104.155.239.160:18333', - '104.196.176.111:18333', - '104.198.194.166:18333', - '112.222.87.221:18333', - '120.79.78.178:18333', - '120.79.158.146:18333', - '138.68.231.122:18333', - '138.197.79.220:18333', - '142.93.24.91:18333', - '142.93.82.130:18333', - '142.93.96.247:18333', - '144.217.73.86:18333', - '158.69.119.35:18333', - '159.65.2.0:18333', - '159.89.149.75:18333', - '159.203.58.120:18333', - '167.99.110.201:18333', - '172.105.233.17:18333', - '176.9.89.217:9696', - '176.223.141.238:18333', - '178.128.98.24:18333', - '178.128.216.74:18333', - '185.75.76.62:20333', + '70.36.125.75:18333', + '70.67.48.134:18333', + '116.125.120.98:18333', + '118.31.42.71:18337', + '173.249.58.36:18333', '188.40.93.205:18333', - '188.141.107.182:18333', - '195.154.177.49:18333', - '195.201.108.3:18335', - '203.162.80.101:18333', - '206.189.156.135:18333', - '206.189.157.208:18333', - '207.148.76.163:18333', - '207.154.228.111:18333', - '209.97.137.193:18333', - '209.97.139.208:18333', - '217.23.14.133:18333' + '190.123.23.9:18333', + '195.154.177.49:18333' ]; From 7eac0f6a5bb62cf69ed6ac065f6e06c8a5a69bae Mon Sep 17 00:00:00 2001 From: Jonathan Gonzalez Date: Fri, 17 May 2019 06:30:06 +0000 Subject: [PATCH 22/23] script-test: minimal witness program check added --- test/script-test.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/test/script-test.js b/test/script-test.js index e3d107234..8519f7a3a 100644 --- a/test/script-test.js +++ b/test/script-test.js @@ -73,6 +73,13 @@ describe('Script', function() { assert(decoded.isScripthash()); }); + it('should recognize a Witness Program output', () => { + const hex = '0020fc8b08ed636cb23afcb425ff260b3a' + + 'bd03380a2333b54cfa5d51ac52d803baf4'; + const decoded = Script.fromRaw(hex, 'hex'); + assert(decoded.isProgram()); + }); + it('should recognize a Null Data output', () => { const hex = '6a28590c080112220a1b353930632e6f7267282a5f' + '5e294f7665726c6179404f7261636c65103b1a010c'; From 383a93d3ca9bb1e74f34838c6ab83b8837d342cc Mon Sep 17 00:00:00 2001 From: Jonathan Gonzalez Date: Fri, 17 May 2019 07:03:54 +0000 Subject: [PATCH 23/23] protocol-test: Remove InvItem limit against previous Protocol MAX_MESSAGE value --- test/protocol-test.js | 27 ++------------------------- 1 file changed, 2 insertions(+), 25 deletions(-) diff --git a/test/protocol-test.js b/test/protocol-test.js index 379aef824..254da5a91 100644 --- a/test/protocol-test.js +++ b/test/protocol-test.js @@ -1,5 +1,5 @@ -/* eslint-env mocha */ /* eslint prefer-arrow-callback: "off" */ +/* eslint-env mocha */ /* eslint indent: "off" */ 'use strict'; @@ -12,15 +12,13 @@ const Framer = require('../lib/net/framer'); const Parser = require('../lib/net/parser'); const packets = require('../lib/net/packets'); const common = require('../lib/net/common'); -const InvItem = require('../lib/primitives/invitem'); const consensus = require('../lib/protocol/consensus'); -const invTypes = InvItem.types; const MemBlock = require('../lib/primitives/memblock'); const network = Network.get('main'); describe('Protocol', function() { const pkg = require('../lib/pkg'); - const agent = `/bcoin:${pkg.version}/`; + const agent = `/bcash:${pkg.version}/`; let parser, framer; beforeEach(() => { @@ -147,25 +145,4 @@ describe('Protocol', function() { const rawpacket = framer.packet(packet.cmd, packet.toRaw()); parser.feed(rawpacket); }); - - it('should limit packet size to MAX_MESSAGE', (cb) => { - const DUMMY = Buffer.alloc(32); - const items = []; - - for (let i = 0; i < 50000; i++) - items.push(new InvItem(invTypes.BLOCK, DUMMY)); - - const getDataPacket = new packets.GetDataPacket(items); - const size = getDataPacket.getSize(); - - assert.strictEqual(getDataPacket.isOversized(), true); - - parser.once('error', (e) => { - assert.strictEqual(e.message, `Packet length too large: ${size}.`); - - cb(); - }); - const raw = framer.packet(getDataPacket.cmd, getDataPacket.toRaw()); - parser.feed(raw); - }); });