public byte[] BuildRLPEncoded(bool raw)
{
var encodedData = new List<byte[]>();
encodedData.AddRange(this.Data.Select(RLP.EncodeElement).ToArray());
if (raw)
return RLP.EncodeList(encodedData.ToArray());
byte[] v, r, s;
if (signature != null)
{
v = RLP.EncodeByte(signature.V);
r = RLP.EncodeElement(signature.R.ToByteArrayUnsigned());
s = RLP.EncodeElement(signature.S.ToByteArrayUnsigned());
}
else
{
v = RLP.EncodeElement(EMPTY_BYTE_ARRAY);
r = RLP.EncodeElement(EMPTY_BYTE_ARRAY);
s = RLP.EncodeElement(EMPTY_BYTE_ARRAY);
}
encodedData.Add(v);
encodedData.Add(r);
encodedData.Add(s);
return RLP.EncodeList(encodedData.ToArray());
}