Opcode: Added toBuffer and fromBuffer methods
This commit is contained in:
parent
15ba6e2ba1
commit
46a9a6d83c
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
var _ = require('lodash');
|
var _ = require('lodash');
|
||||||
var $ = require('./util/preconditions');
|
var $ = require('./util/preconditions');
|
||||||
|
var BufferUtil = require('./util/buffer');
|
||||||
|
|
||||||
function Opcode(num) {
|
function Opcode(num) {
|
||||||
if (!(this instanceof Opcode)) {
|
if (!(this instanceof Opcode)) {
|
||||||
|
@ -26,6 +27,11 @@ function Opcode(num) {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Opcode.fromBuffer = function(buf) {
|
||||||
|
$.checkArgument(BufferUtil.isBuffer(buf));
|
||||||
|
return new Opcode(Number('0x' + buf.toString('hex')));
|
||||||
|
};
|
||||||
|
|
||||||
Opcode.fromNumber = function(num) {
|
Opcode.fromNumber = function(num) {
|
||||||
$.checkArgument(_.isNumber(num));
|
$.checkArgument(_.isNumber(num));
|
||||||
return new Opcode(num);
|
return new Opcode(num);
|
||||||
|
@ -40,6 +46,14 @@ Opcode.fromString = function(str) {
|
||||||
return new Opcode(value);
|
return new Opcode(value);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Opcode.prototype.toHex = function() {
|
||||||
|
return this.num.toString(16);
|
||||||
|
};
|
||||||
|
|
||||||
|
Opcode.prototype.toBuffer = function() {
|
||||||
|
return new Buffer(this.toHex(), 'hex');
|
||||||
|
};
|
||||||
|
|
||||||
Opcode.prototype.toNumber = function() {
|
Opcode.prototype.toNumber = function() {
|
||||||
return this.num;
|
return this.num;
|
||||||
};
|
};
|
||||||
|
|
|
@ -52,6 +52,13 @@ describe('Opcode', function() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('#buffer', function() {
|
||||||
|
it('should correctly input/output a buffer', function() {
|
||||||
|
var buf = new Buffer('a6', 'hex');
|
||||||
|
Opcode.fromBuffer(buf).toBuffer().should.deep.equal(buf);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
describe('#fromString', function() {
|
describe('#fromString', function() {
|
||||||
it('should work for OP_0', function() {
|
it('should work for OP_0', function() {
|
||||||
Opcode.fromString('OP_0').num.should.equal(0);
|
Opcode.fromString('OP_0').num.should.equal(0);
|
||||||
|
|
Loading…
Reference in New Issue