bitcoinjs-lib/src/templates/pubkey/input.js
2018-06-25 18:26:23 +10:00

41 lines
846 B
JavaScript

// {signature}
const bscript = require('../../script')
const typeforce = require('typeforce')
function check (script) {
const chunks = bscript.decompile(script)
return chunks.length === 1 &&
bscript.isCanonicalScriptSignature(chunks[0])
}
check.toJSON = function () { return 'pubKey input' }
function encodeStack (signature) {
typeforce(bscript.isCanonicalScriptSignature, signature)
return [signature]
}
function encode (signature) {
return bscript.compile(encodeStack(signature))
}
function decodeStack (stack) {
typeforce(typeforce.Array, stack)
typeforce(check, stack)
return stack[0]
}
function decode (buffer) {
const stack = bscript.decompile(buffer)
return decodeStack(stack)
}
module.exports = {
check: check,
decode: decode,
decodeStack: decodeStack,
encode: encode,
encodeStack: encodeStack
}