script.toString()

This commit is contained in:
Ryan X. Charles 2014-09-01 18:31:02 -07:00
parent e6af57f4fa
commit 6375941ef8
2 changed files with 37 additions and 0 deletions

View File

@ -105,4 +105,23 @@ Script.prototype.toBuffer = function() {
return bw.concat();
};
Script.prototype.toString = function() {
var str = "";
for (var i = 0; i < this.chunks.length; i++) {
var chunk = this.chunks[i];
if (typeof chunk === 'number') {
var opcodenum = chunk;
str = str + Opcode(opcodenum).toString() + " ";
} else {
var opcodenum = chunk.opcodenum;
str = str + Opcode(opcodenum).toString() + " " ;
str = str + chunk.len + " " ;
str = str + "0x" + chunk.buf.toString('hex') + " ";
}
}
return str.substr(0, str.length - 1);
};
module.exports = Script;

View File

@ -151,4 +151,22 @@ describe('Script', function() {
});
describe('#toString', function() {
it('should output this buffer an OP code, data, and another OP code', function() {
var buf = new Buffer([0, 0, 0, 0, 0, 0, 1, 2, 3, 0]);
buf[0] = Opcode('OP_0').toNumber();
buf[1] = Opcode('OP_PUSHDATA4').toNumber();
buf.writeUInt16LE(3, 2);
buf[buf.length - 1] = Opcode('OP_0').toNumber();
var script = Script().fromBuffer(buf);
script.chunks.length.should.equal(3);
script.chunks[0].should.equal(buf[0]);
script.chunks[1].buf.toString('hex').should.equal('010203');
script.chunks[2].should.equal(buf[buf.length - 1]);
script.toString().toString('hex').should.equal('OP_0 OP_PUSHDATA4 3 0x010203 OP_0');
});
});
});