package network.message;
import com.google.common.primitives.Bytes;
public class GetBlockMessage extends Message{
private byte[] signature;
private static final int GET_BLOCK_LENGTH = 128;
public GetBlockMessage(byte[] signature)
{
super(GET_BLOCK_TYPE);
this.signature = signature;
}
public byte[] getSignature()
{
return this.signature;
}
public static GetBlockMessage parse(byte[] data) throws Exception
{
//CHECK IF DATA MATCHES LENGTH
if(data.length != GET_BLOCK_LENGTH)
{
throw new Exception("Data does not match length");
}
return new GetBlockMessage(data);
}
@Override
public byte[] toBytes()
{
byte[] data = new byte[0];
//WRITE SIGNATURE
data = Bytes.concat(data, this.signature);
//ADD CHECKSUM
data = Bytes.concat(super.toBytes(), this.generateChecksum(data), data);
return data;
}
@Override
public int getDataLength()
{
return GET_BLOCK_LENGTH;
}
}