// OP_DUP OP_HASH160 {pubKeyHash} OP_EQUALVERIFY OP_CHECKSIG var bscript = require('../../script') var types = require('../../types') var typeforce = require('typeforce') var OPS = require('../../opcodes.json') function check (script) { var buffer = bscript.compile(script) return buffer.length === 25 && buffer[0] === OPS.OP_DUP && buffer[1] === OPS.OP_HASH160 && buffer[2] === 0x14 && buffer[23] === OPS.OP_EQUALVERIFY && buffer[24] === OPS.OP_CHECKSIG } function encode (pubKeyHash) { typeforce(types.Hash160bit, pubKeyHash) return bscript.compile([ OPS.OP_DUP, OPS.OP_HASH160, pubKeyHash, OPS.OP_EQUALVERIFY, OPS.OP_CHECKSIG ]) } function decode (buffer) { typeforce(check, buffer) return buffer.slice(3, 23) } module.exports = { check: check, decode: decode, encode: encode }