bip152: use regular varints for lengths.
This commit is contained in:
parent
fa366e56fd
commit
4fa6136ec4
@ -96,19 +96,19 @@ CompactBlock.prototype.fromRaw = function fromRaw(data) {
|
|||||||
|
|
||||||
this.initKey();
|
this.initKey();
|
||||||
|
|
||||||
count = p.readVarint2();
|
count = p.readVarint();
|
||||||
|
|
||||||
this.totalTX += count;
|
this.totalTX += count;
|
||||||
|
|
||||||
for (i = 0; i < count; i++)
|
for (i = 0; i < count; i++)
|
||||||
this.ids.push(p.readU32() + p.readU16() * 0x100000000);
|
this.ids.push(p.readU32() + p.readU16() * 0x100000000);
|
||||||
|
|
||||||
count = p.readVarint2();
|
count = p.readVarint();
|
||||||
|
|
||||||
this.totalTX += count;
|
this.totalTX += count;
|
||||||
|
|
||||||
for (i = 0; i < count; i++) {
|
for (i = 0; i < count; i++) {
|
||||||
index = p.readVarint2();
|
index = p.readVarint();
|
||||||
assert(index <= 0xffff);
|
assert(index <= 0xffff);
|
||||||
assert(index < this.totalTX);
|
assert(index < this.totalTX);
|
||||||
tx = bcoin.tx.fromRaw(p);
|
tx = bcoin.tx.fromRaw(p);
|
||||||
@ -139,7 +139,7 @@ CompactBlock.prototype.toRaw = function toRaw(witness, writer) {
|
|||||||
|
|
||||||
p.writeBytes(this.keyNonce);
|
p.writeBytes(this.keyNonce);
|
||||||
|
|
||||||
p.writeVarint2(this.ids.length);
|
p.writeVarint(this.ids.length);
|
||||||
|
|
||||||
for (i = 0; i < this.ids.length; i++) {
|
for (i = 0; i < this.ids.length; i++) {
|
||||||
id = this.ids[i];
|
id = this.ids[i];
|
||||||
@ -150,11 +150,11 @@ CompactBlock.prototype.toRaw = function toRaw(witness, writer) {
|
|||||||
p.writeU16(hi);
|
p.writeU16(hi);
|
||||||
}
|
}
|
||||||
|
|
||||||
p.writeVarint2(this.ptx.length);
|
p.writeVarint(this.ptx.length);
|
||||||
|
|
||||||
for (i = 0; i < this.ptx.length; i++) {
|
for (i = 0; i < this.ptx.length; i++) {
|
||||||
ptx = this.ptx[i];
|
ptx = this.ptx[i];
|
||||||
p.writeVarint2(ptx[0]);
|
p.writeVarint(ptx[0]);
|
||||||
if (witness)
|
if (witness)
|
||||||
ptx[1].toRaw(p);
|
ptx[1].toRaw(p);
|
||||||
else
|
else
|
||||||
@ -415,10 +415,10 @@ TXRequest.prototype.fromRaw = function fromRaw(data) {
|
|||||||
|
|
||||||
this.hash = p.readHash('hex');
|
this.hash = p.readHash('hex');
|
||||||
|
|
||||||
count = p.readVarint2();
|
count = p.readVarint();
|
||||||
|
|
||||||
for (i = 0; i < count; i++) {
|
for (i = 0; i < count; i++) {
|
||||||
index = p.readVarint2();
|
index = p.readVarint();
|
||||||
assert(index <= 0xffff);
|
assert(index <= 0xffff);
|
||||||
this.indexes.push(index);
|
this.indexes.push(index);
|
||||||
}
|
}
|
||||||
@ -446,11 +446,11 @@ TXRequest.prototype.toRaw = function toRaw(writer) {
|
|||||||
|
|
||||||
p.writeHash(this.hash);
|
p.writeHash(this.hash);
|
||||||
|
|
||||||
p.writeVarint2(this.indexes.length);
|
p.writeVarint(this.indexes.length);
|
||||||
|
|
||||||
for (i = 0; i < this.indexes.length; i++) {
|
for (i = 0; i < this.indexes.length; i++) {
|
||||||
index = this.indexes[i] - (i === 0 ? 0 : this.indexes[i - 1] + 1);
|
index = this.indexes[i] - (i === 0 ? 0 : this.indexes[i - 1] + 1);
|
||||||
p.writeVarint2(index);
|
p.writeVarint(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!writer)
|
if (!writer)
|
||||||
@ -495,7 +495,7 @@ TXResponse.prototype.fromRaw = function fromRaw(data) {
|
|||||||
|
|
||||||
this.hash = p.readHash('hex');
|
this.hash = p.readHash('hex');
|
||||||
|
|
||||||
count = p.readVarint2();
|
count = p.readVarint();
|
||||||
|
|
||||||
for (i = 0; i < count; i++)
|
for (i = 0; i < count; i++)
|
||||||
this.txs.push(bcoin.tx.fromRaw(p));
|
this.txs.push(bcoin.tx.fromRaw(p));
|
||||||
@ -532,7 +532,7 @@ TXResponse.prototype.toRaw = function toRaw(witness, writer) {
|
|||||||
|
|
||||||
p.writeHash(this.hash);
|
p.writeHash(this.hash);
|
||||||
|
|
||||||
p.writeVarint2(this.txs.length);
|
p.writeVarint(this.txs.length);
|
||||||
|
|
||||||
for (i = 0; i < this.txs.length; i++) {
|
for (i = 0; i < this.txs.length; i++) {
|
||||||
tx = this.txs[i];
|
tx = this.txs[i];
|
||||||
|
|||||||
@ -125,19 +125,37 @@ describe('Utils', function() {
|
|||||||
assert.equal(utils.readVarint2(b, 0).value, 255);
|
assert.equal(utils.readVarint2(b, 0).value, 255);
|
||||||
assert.deepEqual(b, [0x80, 0x7f]);
|
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);
|
var b = new Buffer(3);
|
||||||
b.fill(0x00);
|
b.fill(0x00);
|
||||||
utils.writeVarint2(b, 16511, 0);
|
utils.writeVarint2(b, 16511, 0);
|
||||||
assert.equal(utils.readVarint2(b, 0).value, 16511);
|
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]);
|
assert.deepEqual(b, [0xff, 0x7f, 0x00]);
|
||||||
|
|
||||||
var b = new Buffer(3);
|
var b = new Buffer(3);
|
||||||
b.fill(0x00);
|
b.fill(0x00);
|
||||||
utils.writeVarint2(b, 65535, 0);
|
utils.writeVarint2(b, 65535, 0);
|
||||||
assert.equal(utils.readVarint2(b, 0).value, 65535);
|
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]);
|
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 = [
|
var unsigned = [
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user