diff --git a/src/templates/multisig/input.js b/src/templates/multisig/input.js
index 519c779..a0b2eee 100644
--- a/src/templates/multisig/input.js
+++ b/src/templates/multisig/input.js
@@ -53,6 +53,7 @@ function encode (signatures, scriptPubKey) {
}
function decodeStack (stack, allowIncomplete) {
+ typeforce(typeforce.Array, stack)
typeforce(check, stack, allowIncomplete)
return stack.slice(1)
}
diff --git a/src/templates/pubkey/input.js b/src/templates/pubkey/input.js
index 1d34cb4..4c61664 100644
--- a/src/templates/pubkey/input.js
+++ b/src/templates/pubkey/input.js
@@ -21,6 +21,7 @@ function encode (signature) {
}
function decodeStack (stack) {
+ typeforce(typeforce.Array, stack)
typeforce(check, stack)
return stack[0]
}
diff --git a/src/templates/pubkeyhash/input.js b/src/templates/pubkeyhash/input.js
index 0a1fe1e..ae1d758 100644
--- a/src/templates/pubkeyhash/input.js
+++ b/src/templates/pubkeyhash/input.js
@@ -29,6 +29,7 @@ function encode (signature, pubKey) {
}
function decodeStack (stack) {
+ typeforce(typeforce.Array, stack)
typeforce(check, stack)
return {
diff --git a/src/templates/scripthash/input.js b/src/templates/scripthash/input.js
index 16c76c0..cc5bb74 100644
--- a/src/templates/scripthash/input.js
+++ b/src/templates/scripthash/input.js
@@ -59,6 +59,7 @@ function encode (redeemScriptSig, redeemScript) {
}
function decodeStack (stack) {
+ typeforce(typeforce.Array, stack)
typeforce(check, stack)
return {
diff --git a/src/templates/witnesspubkeyhash/input.js b/src/templates/witnesspubkeyhash/input.js
index eacdab9..d61c426 100644
--- a/src/templates/witnesspubkeyhash/input.js
+++ b/src/templates/witnesspubkeyhash/input.js
@@ -29,6 +29,7 @@ function encodeStack (signature, pubKey) {
}
function decodeStack (stack) {
+ typeforce(typeforce.Array, stack)
typeforce(check, stack)
return {
diff --git a/src/templates/witnessscripthash/input.js b/src/templates/witnessscripthash/input.js
index bc2e909..d6e85f5 100644
--- a/src/templates/witnessscripthash/input.js
+++ b/src/templates/witnessscripthash/input.js
@@ -48,11 +48,12 @@ function encodeStack (witnessData, witnessScript) {
return [].concat(witnessData, witnessScript)
}
-function decodeStack (chunks) {
- typeforce(check, chunks)
+function decodeStack (stack) {
+ typeforce(typeforce.Array, stack)
+ typeforce(check, stack)
return {
- witnessData: chunks.slice(0, -1),
- witnessScript: chunks[chunks.length - 1]
+ witnessData: stack.slice(0, -1),
+ witnessScript: stack[stack.length - 1]
}
}