diff --git a/lib/net/bip152.js b/lib/net/bip152.js index a11d8c62..23839ebb 100644 --- a/lib/net/bip152.js +++ b/lib/net/bip152.js @@ -96,19 +96,19 @@ CompactBlock.prototype.fromRaw = function fromRaw(data) { this.initKey(); - count = p.readVarint2(); + count = p.readVarint(); this.totalTX += count; for (i = 0; i < count; i++) this.ids.push(p.readU32() + p.readU16() * 0x100000000); - count = p.readVarint2(); + count = p.readVarint(); this.totalTX += count; for (i = 0; i < count; i++) { - index = p.readVarint2(); + index = p.readVarint(); assert(index <= 0xffff); assert(index < this.totalTX); tx = bcoin.tx.fromRaw(p); @@ -139,7 +139,7 @@ CompactBlock.prototype.toRaw = function toRaw(witness, writer) { p.writeBytes(this.keyNonce); - p.writeVarint2(this.ids.length); + p.writeVarint(this.ids.length); for (i = 0; i < this.ids.length; i++) { id = this.ids[i]; @@ -150,11 +150,11 @@ CompactBlock.prototype.toRaw = function toRaw(witness, writer) { p.writeU16(hi); } - p.writeVarint2(this.ptx.length); + p.writeVarint(this.ptx.length); for (i = 0; i < this.ptx.length; i++) { ptx = this.ptx[i]; - p.writeVarint2(ptx[0]); + p.writeVarint(ptx[0]); if (witness) ptx[1].toRaw(p); else @@ -415,10 +415,10 @@ TXRequest.prototype.fromRaw = function fromRaw(data) { this.hash = p.readHash('hex'); - count = p.readVarint2(); + count = p.readVarint(); for (i = 0; i < count; i++) { - index = p.readVarint2(); + index = p.readVarint(); assert(index <= 0xffff); this.indexes.push(index); } @@ -446,11 +446,11 @@ TXRequest.prototype.toRaw = function toRaw(writer) { p.writeHash(this.hash); - p.writeVarint2(this.indexes.length); + p.writeVarint(this.indexes.length); for (i = 0; i < this.indexes.length; i++) { index = this.indexes[i] - (i === 0 ? 0 : this.indexes[i - 1] + 1); - p.writeVarint2(index); + p.writeVarint(index); } if (!writer) @@ -495,7 +495,7 @@ TXResponse.prototype.fromRaw = function fromRaw(data) { this.hash = p.readHash('hex'); - count = p.readVarint2(); + count = p.readVarint(); for (i = 0; i < count; i++) this.txs.push(bcoin.tx.fromRaw(p)); @@ -532,7 +532,7 @@ TXResponse.prototype.toRaw = function toRaw(witness, writer) { p.writeHash(this.hash); - p.writeVarint2(this.txs.length); + p.writeVarint(this.txs.length); for (i = 0; i < this.txs.length; i++) { tx = this.txs[i]; diff --git a/test/utils-test.js b/test/utils-test.js index 41164c6a..72caacd3 100644 --- a/test/utils-test.js +++ b/test/utils-test.js @@ -125,19 +125,37 @@ describe('Utils', function() { assert.equal(utils.readVarint2(b, 0).value, 255); assert.deepEqual(b, [0x80, 0x7f]); + var b = new Buffer(2); + b.fill(0x00); + utils.writeVarint2(b, 16383, 0); + assert.equal(utils.readVarint2(b, 0).value, 16383); + assert.deepEqual(b, [0xfe, 0x7f]); + + var b = new Buffer(2); + b.fill(0x00); + utils.writeVarint2(b, 16384, 0); + assert.equal(utils.readVarint2(b, 0).value, 16384); + assert.deepEqual(b, [0xff, 0x00]); + var b = new Buffer(3); b.fill(0x00); utils.writeVarint2(b, 16511, 0); assert.equal(utils.readVarint2(b, 0).value, 16511); - //assert.deepEqual(b, [0x80, 0xff, 0x7f]); + // assert.deepEqual(b, [0x80, 0xff, 0x7f]); assert.deepEqual(b, [0xff, 0x7f, 0x00]); var b = new Buffer(3); b.fill(0x00); utils.writeVarint2(b, 65535, 0); assert.equal(utils.readVarint2(b, 0).value, 65535); - //assert.deepEqual(b, [0x82, 0xfd, 0x7f]); + // assert.deepEqual(b, [0x82, 0xfd, 0x7f]); assert.deepEqual(b, [0x82, 0xfe, 0x7f]); + + var b = new Buffer(5); + b.fill(0x00); + utils.writeVarint2(b, Math.pow(2, 32), 0); + assert.equal(utils.readVarint2(b, 0).value, Math.pow(2, 32)); + assert.deepEqual(b, [0x8e, 0xfe, 0xfe, 0xff, 0x00]); }); var unsigned = [