deserialize method
Implementation
@override
TransferTransactionV2 deserialize(Uint8List payload) {
var buffer = payload;
var type = TransactionType().deserialize(buffer);
buffer = buffer.sublist(type.size);
var version = bytesToInt(buffer.sublist(0, 1), 1);
buffer = buffer.sublist(1);
var entityBodyReserved_1 = bytesToInt(buffer.sublist(0, 2), 2);
buffer = buffer.sublist(2);
if (0 != entityBodyReserved_1) {
throw RangeError('Invalid value of reserved field ($entityBodyReserved_1)');
}
var network = NetworkType().deserialize(buffer);
buffer = buffer.sublist(network.size);
var timestamp = Timestamp().deserialize(buffer);
buffer = buffer.sublist(timestamp.size);
var signerPublicKeySize = bytesToInt(buffer.sublist(0, 4), 4);
buffer = buffer.sublist(4);
if (32 != signerPublicKeySize) {
throw RangeError('Invalid value of reserved field ($signerPublicKeySize)');
}
var signerPublicKey = PublicKey().deserialize(buffer);
buffer = buffer.sublist(signerPublicKey.size);
var signatureSize = bytesToInt(buffer.sublist(0, 4), 4);
buffer = buffer.sublist(4);
if (64 != signatureSize) {
throw RangeError('Invalid value of reserved field ($signatureSize)');
}
var signature = Signature().deserialize(buffer);
buffer = buffer.sublist(signature.size);
var fee = Amount().deserialize(buffer);
buffer = buffer.sublist(fee.size);
var deadline = Timestamp().deserialize(buffer);
buffer = buffer.sublist(deadline.size);
var recipientAddressSize = bytesToInt(buffer.sublist(0, 4), 4);
buffer = buffer.sublist(4);
if (40 != recipientAddressSize) {
throw RangeError('Invalid value of reserved field ($recipientAddressSize)');
}
var recipientAddress = Address().deserialize(buffer);
buffer = buffer.sublist(recipientAddress.size);
var amount = Amount().deserialize(buffer);
buffer = buffer.sublist(amount.size);
var messageEnvelopeSize = bytesToInt(buffer.sublist(0, 4), 4);
buffer = buffer.sublist(4);
var message = null;
if (0 != messageEnvelopeSize)
{
message = Message().deserialize(buffer);
buffer = buffer.sublist(message.size);
}
var mosaicsCount = bytesToInt(buffer.sublist(0, 4), 4);
buffer = buffer.sublist(4);
var mosaics = ArrayHelpers.readArrayCount(buffer, SizePrefixedMosaic(), mosaicsCount).map((item) => item as SizePrefixedMosaic).toList();
buffer = buffer.sublist(ArrayHelpers.size(mosaics));
var instance = TransferTransactionV2(
type: type,
version: version,
network: network,
timestamp: timestamp,
signerPublicKey: signerPublicKey,
signature: signature,
fee: fee,
deadline: deadline,
recipientAddress: recipientAddress,
amount: amount,
message: message,
mosaics: mosaics,
);
return instance;
}