mirror of
https://github.com/bitcoinj/bitcoinj.git
synced 2025-02-24 06:47:54 +01:00
Message: Make readVarInt() return a VarInt rather than long.
This commit is contained in:
parent
ae4f6d43ce
commit
67399b6c13
12 changed files with 23 additions and 23 deletions
|
@ -70,7 +70,7 @@ public class AddressMessage extends Message {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void parse() throws ProtocolException {
|
protected void parse() throws ProtocolException {
|
||||||
long numAddresses = readVarInt();
|
long numAddresses = readVarInt().longValue();
|
||||||
// Guard against ultra large messages that will crash us.
|
// Guard against ultra large messages that will crash us.
|
||||||
if (numAddresses > MAX_ADDRESSES)
|
if (numAddresses > MAX_ADDRESSES)
|
||||||
throw new ProtocolException("Address message too large.");
|
throw new ProtocolException("Address message too large.");
|
||||||
|
|
|
@ -229,7 +229,7 @@ public class Block extends Message {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int numTransactions = (int) readVarInt();
|
int numTransactions = readVarInt().intValue();
|
||||||
optimalEncodingMessageSize += VarInt.sizeOf(numTransactions);
|
optimalEncodingMessageSize += VarInt.sizeOf(numTransactions);
|
||||||
transactions = new ArrayList<>(Math.min(numTransactions, Utils.MAX_INITIAL_ARRAY_LENGTH));
|
transactions = new ArrayList<>(Math.min(numTransactions, Utils.MAX_INITIAL_ARRAY_LENGTH));
|
||||||
for (int i = 0; i < numTransactions; i++) {
|
for (int i = 0; i < numTransactions; i++) {
|
||||||
|
|
|
@ -47,7 +47,7 @@ public class GetBlocksMessage extends Message {
|
||||||
protected void parse() throws ProtocolException {
|
protected void parse() throws ProtocolException {
|
||||||
cursor = offset;
|
cursor = offset;
|
||||||
version = readUint32();
|
version = readUint32();
|
||||||
int startCount = (int) readVarInt();
|
int startCount = readVarInt().intValue();
|
||||||
if (startCount > 500)
|
if (startCount > 500)
|
||||||
throw new ProtocolException("Number of locators cannot be > 500, received: " + startCount);
|
throw new ProtocolException("Number of locators cannot be > 500, received: " + startCount);
|
||||||
length = cursor - offset + ((startCount + 1) * 32);
|
length = cursor - offset + ((startCount + 1) * 32);
|
||||||
|
|
|
@ -61,7 +61,7 @@ public class GetUTXOsMessage extends Message {
|
||||||
@Override
|
@Override
|
||||||
protected void parse() throws ProtocolException {
|
protected void parse() throws ProtocolException {
|
||||||
includeMempool = readBytes(1)[0] == 1;
|
includeMempool = readBytes(1)[0] == 1;
|
||||||
long numOutpoints = readVarInt();
|
long numOutpoints = readVarInt().longValue();
|
||||||
ImmutableList.Builder<TransactionOutPoint> list = ImmutableList.builder();
|
ImmutableList.Builder<TransactionOutPoint> list = ImmutableList.builder();
|
||||||
for (int i = 0; i < numOutpoints; i++) {
|
for (int i = 0; i < numOutpoints; i++) {
|
||||||
TransactionOutPoint outPoint = new TransactionOutPoint(params, payload, cursor);
|
TransactionOutPoint outPoint = new TransactionOutPoint(params, payload, cursor);
|
||||||
|
|
|
@ -66,7 +66,7 @@ public class HeadersMessage extends Message {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void parse() throws ProtocolException {
|
protected void parse() throws ProtocolException {
|
||||||
long numHeaders = readVarInt();
|
long numHeaders = readVarInt().longValue();
|
||||||
if (numHeaders > MAX_HEADERS)
|
if (numHeaders > MAX_HEADERS)
|
||||||
throw new ProtocolException("Too many headers: got " + numHeaders + " which is larger than " +
|
throw new ProtocolException("Too many headers: got " + numHeaders + " which is larger than " +
|
||||||
MAX_HEADERS);
|
MAX_HEADERS);
|
||||||
|
|
|
@ -73,7 +73,7 @@ public abstract class ListMessage extends Message {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void parse() throws ProtocolException {
|
protected void parse() throws ProtocolException {
|
||||||
arrayLen = readVarInt();
|
arrayLen = readVarInt().longValue();
|
||||||
if (arrayLen > MAX_INVENTORY_ITEMS)
|
if (arrayLen > MAX_INVENTORY_ITEMS)
|
||||||
throw new ProtocolException("Too many items in INV message: " + arrayLen);
|
throw new ProtocolException("Too many items in INV message: " + arrayLen);
|
||||||
length = (int) (cursor - offset + (arrayLen * InventoryItem.MESSAGE_LENGTH));
|
length = (int) (cursor - offset + (arrayLen * InventoryItem.MESSAGE_LENGTH));
|
||||||
|
|
|
@ -291,15 +291,15 @@ public abstract class Message {
|
||||||
return new BigInteger(Utils.reverseBytes(readBytes(8)));
|
return new BigInteger(Utils.reverseBytes(readBytes(8)));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected long readVarInt() throws ProtocolException {
|
protected VarInt readVarInt() throws ProtocolException {
|
||||||
return readVarInt(0);
|
return readVarInt(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected long readVarInt(int offset) throws ProtocolException {
|
protected VarInt readVarInt(int offset) throws ProtocolException {
|
||||||
try {
|
try {
|
||||||
VarInt varint = new VarInt(payload, cursor + offset);
|
VarInt varint = new VarInt(payload, cursor + offset);
|
||||||
cursor += offset + varint.getOriginalSizeInBytes();
|
cursor += offset + varint.getOriginalSizeInBytes();
|
||||||
return varint.longValue();
|
return varint;
|
||||||
} catch (ArrayIndexOutOfBoundsException e) {
|
} catch (ArrayIndexOutOfBoundsException e) {
|
||||||
throw new ProtocolException(e);
|
throw new ProtocolException(e);
|
||||||
}
|
}
|
||||||
|
@ -329,12 +329,12 @@ public abstract class Message {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected byte[] readByteArray() throws ProtocolException {
|
protected byte[] readByteArray() throws ProtocolException {
|
||||||
long len = readVarInt();
|
long len = readVarInt().longValue();
|
||||||
return readBytes((int)len);
|
return readBytes((int)len);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected String readStr() throws ProtocolException {
|
protected String readStr() throws ProtocolException {
|
||||||
long length = readVarInt();
|
long length = readVarInt().longValue();
|
||||||
return length == 0 ? "" : new String(readBytes((int) length), StandardCharsets.UTF_8); // optimization for empty strings
|
return length == 0 ? "" : new String(readBytes((int) length), StandardCharsets.UTF_8); // optimization for empty strings
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -117,12 +117,12 @@ public class PartialMerkleTree extends Message {
|
||||||
protected void parse() throws ProtocolException {
|
protected void parse() throws ProtocolException {
|
||||||
transactionCount = (int)readUint32();
|
transactionCount = (int)readUint32();
|
||||||
|
|
||||||
int nHashes = (int) readVarInt();
|
int nHashes = readVarInt().intValue();
|
||||||
hashes = new ArrayList<>(Math.min(nHashes, Utils.MAX_INITIAL_ARRAY_LENGTH));
|
hashes = new ArrayList<>(Math.min(nHashes, Utils.MAX_INITIAL_ARRAY_LENGTH));
|
||||||
for (int i = 0; i < nHashes; i++)
|
for (int i = 0; i < nHashes; i++)
|
||||||
hashes.add(readHash());
|
hashes.add(readHash());
|
||||||
|
|
||||||
int nFlagBytes = (int) readVarInt();
|
int nFlagBytes = readVarInt().intValue();
|
||||||
matchedChildBits = readBytes(nFlagBytes);
|
matchedChildBits = readBytes(nFlagBytes);
|
||||||
|
|
||||||
length = cursor - offset;
|
length = cursor - offset;
|
||||||
|
|
|
@ -683,26 +683,26 @@ public class Transaction extends ChildMessage {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void parseInputs() {
|
private void parseInputs() {
|
||||||
long numInputs = readVarInt();
|
long numInputs = readVarInt().longValue();
|
||||||
optimalEncodingMessageSize += VarInt.sizeOf(numInputs);
|
optimalEncodingMessageSize += VarInt.sizeOf(numInputs);
|
||||||
inputs = new ArrayList<>(Math.min((int) numInputs, Utils.MAX_INITIAL_ARRAY_LENGTH));
|
inputs = new ArrayList<>(Math.min((int) numInputs, Utils.MAX_INITIAL_ARRAY_LENGTH));
|
||||||
for (long i = 0; i < numInputs; i++) {
|
for (long i = 0; i < numInputs; i++) {
|
||||||
TransactionInput input = new TransactionInput(params, this, payload, cursor, serializer);
|
TransactionInput input = new TransactionInput(params, this, payload, cursor, serializer);
|
||||||
inputs.add(input);
|
inputs.add(input);
|
||||||
long scriptLen = readVarInt(TransactionOutPoint.MESSAGE_LENGTH);
|
long scriptLen = readVarInt(TransactionOutPoint.MESSAGE_LENGTH).longValue();
|
||||||
optimalEncodingMessageSize += TransactionOutPoint.MESSAGE_LENGTH + VarInt.sizeOf(scriptLen) + scriptLen + 4;
|
optimalEncodingMessageSize += TransactionOutPoint.MESSAGE_LENGTH + VarInt.sizeOf(scriptLen) + scriptLen + 4;
|
||||||
cursor += scriptLen + 4;
|
cursor += scriptLen + 4;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void parseOutputs() {
|
private void parseOutputs() {
|
||||||
long numOutputs = readVarInt();
|
long numOutputs = readVarInt().longValue();
|
||||||
optimalEncodingMessageSize += VarInt.sizeOf(numOutputs);
|
optimalEncodingMessageSize += VarInt.sizeOf(numOutputs);
|
||||||
outputs = new ArrayList<>(Math.min((int) numOutputs, Utils.MAX_INITIAL_ARRAY_LENGTH));
|
outputs = new ArrayList<>(Math.min((int) numOutputs, Utils.MAX_INITIAL_ARRAY_LENGTH));
|
||||||
for (long i = 0; i < numOutputs; i++) {
|
for (long i = 0; i < numOutputs; i++) {
|
||||||
TransactionOutput output = new TransactionOutput(params, this, payload, cursor, serializer);
|
TransactionOutput output = new TransactionOutput(params, this, payload, cursor, serializer);
|
||||||
outputs.add(output);
|
outputs.add(output);
|
||||||
long scriptLen = readVarInt(8);
|
long scriptLen = readVarInt(8).longValue();
|
||||||
optimalEncodingMessageSize += 8 + VarInt.sizeOf(scriptLen) + scriptLen;
|
optimalEncodingMessageSize += 8 + VarInt.sizeOf(scriptLen) + scriptLen;
|
||||||
cursor += scriptLen;
|
cursor += scriptLen;
|
||||||
}
|
}
|
||||||
|
@ -711,12 +711,12 @@ public class Transaction extends ChildMessage {
|
||||||
private void parseWitnesses() {
|
private void parseWitnesses() {
|
||||||
int numWitnesses = inputs.size();
|
int numWitnesses = inputs.size();
|
||||||
for (int i = 0; i < numWitnesses; i++) {
|
for (int i = 0; i < numWitnesses; i++) {
|
||||||
long pushCount = readVarInt();
|
long pushCount = readVarInt().longValue();
|
||||||
TransactionWitness witness = new TransactionWitness((int) pushCount);
|
TransactionWitness witness = new TransactionWitness((int) pushCount);
|
||||||
getInput(i).setWitness(witness);
|
getInput(i).setWitness(witness);
|
||||||
optimalEncodingMessageSize += VarInt.sizeOf(pushCount);
|
optimalEncodingMessageSize += VarInt.sizeOf(pushCount);
|
||||||
for (int y = 0; y < pushCount; y++) {
|
for (int y = 0; y < pushCount; y++) {
|
||||||
long pushSize = readVarInt();
|
long pushSize = readVarInt().longValue();
|
||||||
optimalEncodingMessageSize += VarInt.sizeOf(pushSize) + pushSize;
|
optimalEncodingMessageSize += VarInt.sizeOf(pushSize) + pushSize;
|
||||||
byte[] push = readBytes((int) pushSize);
|
byte[] push = readBytes((int) pushSize);
|
||||||
witness.setPush(y, push);
|
witness.setPush(y, push);
|
||||||
|
|
|
@ -162,7 +162,7 @@ public class TransactionInput extends ChildMessage {
|
||||||
protected void parse() throws ProtocolException {
|
protected void parse() throws ProtocolException {
|
||||||
outpoint = new TransactionOutPoint(params, payload, cursor, this, serializer);
|
outpoint = new TransactionOutPoint(params, payload, cursor, this, serializer);
|
||||||
cursor += outpoint.getMessageSize();
|
cursor += outpoint.getMessageSize();
|
||||||
int scriptLen = (int) readVarInt();
|
int scriptLen = readVarInt().intValue();
|
||||||
length = cursor - offset + scriptLen + 4;
|
length = cursor - offset + scriptLen + 4;
|
||||||
scriptBytes = readBytes(scriptLen);
|
scriptBytes = readBytes(scriptLen);
|
||||||
sequence = readUint32();
|
sequence = readUint32();
|
||||||
|
|
|
@ -137,7 +137,7 @@ public class TransactionOutput extends ChildMessage {
|
||||||
@Override
|
@Override
|
||||||
protected void parse() throws ProtocolException {
|
protected void parse() throws ProtocolException {
|
||||||
value = readInt64();
|
value = readInt64();
|
||||||
int scriptLen = (int) readVarInt();
|
int scriptLen = readVarInt().intValue();
|
||||||
length = cursor - offset + scriptLen;
|
length = cursor - offset + scriptLen;
|
||||||
scriptBytes = readBytes(scriptLen);
|
scriptBytes = readBytes(scriptLen);
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,11 +106,11 @@ public class UTXOsMessage extends Message {
|
||||||
// hitsBitmap indicates which of the queried outputs were found in the UTXO set.
|
// hitsBitmap indicates which of the queried outputs were found in the UTXO set.
|
||||||
height = readUint32();
|
height = readUint32();
|
||||||
chainHead = readHash();
|
chainHead = readHash();
|
||||||
int numBytes = (int) readVarInt();
|
int numBytes = readVarInt().intValue();
|
||||||
if (numBytes < 0 || numBytes > InventoryMessage.MAX_INVENTORY_ITEMS / 8)
|
if (numBytes < 0 || numBytes > InventoryMessage.MAX_INVENTORY_ITEMS / 8)
|
||||||
throw new ProtocolException("hitsBitmap out of range: " + numBytes);
|
throw new ProtocolException("hitsBitmap out of range: " + numBytes);
|
||||||
hits = readBytes(numBytes);
|
hits = readBytes(numBytes);
|
||||||
int numOuts = (int) readVarInt();
|
int numOuts = readVarInt().intValue();
|
||||||
if (numOuts < 0 || numOuts > InventoryMessage.MAX_INVENTORY_ITEMS)
|
if (numOuts < 0 || numOuts > InventoryMessage.MAX_INVENTORY_ITEMS)
|
||||||
throw new ProtocolException("numOuts out of range: " + numOuts);
|
throw new ProtocolException("numOuts out of range: " + numOuts);
|
||||||
outputs = new ArrayList<>(numOuts);
|
outputs = new ArrayList<>(numOuts);
|
||||||
|
|
Loading…
Add table
Reference in a new issue