deserialize method

  1. @override
EmbeddedTransferTransactionV1 deserialize(
  1. Uint8List payload
)
override

Implementation

@override
EmbeddedTransferTransactionV1 deserialize(Uint8List payload) {
	var buffer = payload;
	var size = bytesToInt(buffer.sublist(0, 4), 4);
	buffer = buffer.sublist(0, size);
	buffer = buffer.sublist(4);
	var embeddedTransactionHeaderReserved_1 = bytesToInt(buffer.sublist(0, 4), 4);
	buffer = buffer.sublist(4);
	if (0 != embeddedTransactionHeaderReserved_1) {
		throw RangeError('Invalid value of reserved field ($embeddedTransactionHeaderReserved_1)');
	}
	var signerPublicKey = PublicKey().deserialize(buffer);
	buffer = buffer.sublist(signerPublicKey.size);
	var entityBodyReserved_1 = bytesToInt(buffer.sublist(0, 4), 4);
	buffer = buffer.sublist(4);
	if (0 != entityBodyReserved_1) {
		throw RangeError('Invalid value of reserved field ($entityBodyReserved_1)');
	}
	var version = bytesToInt(buffer.sublist(0, 1), 1);
	buffer = buffer.sublist(1);
	var network = NetworkType().deserialize(buffer);
	buffer = buffer.sublist(network.size);
	var type = TransactionType().deserialize(buffer);
	buffer = buffer.sublist(type.size);
	var recipientAddress = UnresolvedAddress().deserialize(buffer);
	buffer = buffer.sublist(recipientAddress.size);
	var messageSize = bytesToInt(buffer.sublist(0, 2), 2);
	buffer = buffer.sublist(2);
	var mosaicsCount = bytesToInt(buffer.sublist(0, 1), 1);
	buffer = buffer.sublist(1);
	var transferTransactionBodyReserved_1 = bytesToInt(buffer.sublist(0, 1), 1);
	buffer = buffer.sublist(1);
	if (0 != transferTransactionBodyReserved_1) {
		throw RangeError('Invalid value of reserved field ($transferTransactionBodyReserved_1)');
	}
	var transferTransactionBodyReserved_2 = bytesToInt(buffer.sublist(0, 4), 4);
	buffer = buffer.sublist(4);
	if (0 != transferTransactionBodyReserved_2) {
		throw RangeError('Invalid value of reserved field ($transferTransactionBodyReserved_2)');
	}
	var mosaics = ArrayHelpers.readArrayCount(buffer, UnresolvedMosaic(), mosaicsCount, (e) { return ArrayHelpers.getValue(e.mosaicId);}).map((item) => item as UnresolvedMosaic).toList();
	buffer = buffer.sublist(ArrayHelpers.size(mosaics));
	var message = Uint8List.fromList(buffer.sublist(0, messageSize));
	buffer = buffer.sublist(messageSize);

	var instance = EmbeddedTransferTransactionV1(
		signerPublicKey: signerPublicKey,
		version: version,
		network: network,
		type: type,
		recipientAddress: recipientAddress,
		mosaics: mosaics,
		message: message,
	);
	return instance;
}