From 244c3d4f18e5f5596efe96a973d2bc343f8ea42a Mon Sep 17 00:00:00 2001 From: Thomas Kerin Date: Sat, 12 Nov 2016 19:25:51 +0100 Subject: [PATCH] scripthash.input.check / decode: allow situation where chunks length ==1, and don't attempt to classifyInput if witness --- src/templates/scripthash/input.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/templates/scripthash/input.js b/src/templates/scripthash/input.js index 87f2d7f..f0e8286 100644 --- a/src/templates/scripthash/input.js +++ b/src/templates/scripthash/input.js @@ -5,7 +5,7 @@ var typeforce = require('typeforce') function check (script, allowIncomplete) { var chunks = bscript.decompile(script) - if (chunks.length < 2) return false + if (chunks.length < 1) return false var lastChunk = chunks[chunks.length - 1] if (!Buffer.isBuffer(lastChunk)) return false @@ -13,11 +13,12 @@ function check (script, allowIncomplete) { var scriptSigChunks = chunks.slice(0, -1) var redeemScriptChunks = bscript.decompile(lastChunk) - // is redeemScript a valid script? - if (redeemScriptChunks.length === 0) return false + var outputType = bscript.classifyOutput(redeemScriptChunks) + if (outputType === bscript.types.P2WSH || outputType === bscript.types.P2WPKH) { + return true + } var inputType = bscript.classifyInput(scriptSigChunks, allowIncomplete) - var outputType = bscript.classifyOutput(redeemScriptChunks) return inputType === outputType } check.toJSON = function () { return 'scriptHash input' }