diff --git a/lib/varint.js b/lib/varint.js index e959f2fbd..5fc367a14 100644 --- a/lib/varint.js +++ b/lib/varint.js @@ -10,6 +10,9 @@ var Varint = function Varint(buf) { } else if (typeof buf === 'number') { var num = buf; this.fromNumber(num); + } else if (buf instanceof BN) { + var bn = buf; + this.fromBN(bn); } else if (buf) { var obj = buf; this.set(obj); diff --git a/test/varint.js b/test/varint.js index b19ae952c..85a96442a 100644 --- a/test/varint.js +++ b/test/varint.js @@ -14,6 +14,11 @@ describe('Varint', function() { varint = Varint(buf); should.exist(varint); varint.buf.toString('hex').should.equal('00'); + + //various ways to use the constructor + Varint(Varint(0).toBuffer()).toNumber().should.equal(0); + Varint(0).toNumber().should.equal(0); + Varint(BN(0)).toNumber().should.equal(0); }); describe('#set', function() {