deserialize method

Implementation

@override
EmbeddedAccountAddressRestrictionTransactionV1 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 restrictionFlags = AccountRestrictionFlags().deserialize(buffer);
	buffer = buffer.sublist(restrictionFlags.size);
	var restrictionAdditionsCount = bytesToInt(buffer.sublist(0, 1), 1);
	buffer = buffer.sublist(1);
	var restrictionDeletionsCount = bytesToInt(buffer.sublist(0, 1), 1);
	buffer = buffer.sublist(1);
	var accountRestrictionTransactionBodyReserved_1 = bytesToInt(buffer.sublist(0, 4), 4);
	buffer = buffer.sublist(4);
	if (0 != accountRestrictionTransactionBodyReserved_1) {
		throw RangeError('Invalid value of reserved field ($accountRestrictionTransactionBodyReserved_1)');
	}
	var restrictionAdditions = ArrayHelpers.readArrayCount(buffer, UnresolvedAddress(), restrictionAdditionsCount).map((item) => item as UnresolvedAddress).toList();
	buffer = buffer.sublist(ArrayHelpers.size(restrictionAdditions));
	var restrictionDeletions = ArrayHelpers.readArrayCount(buffer, UnresolvedAddress(), restrictionDeletionsCount).map((item) => item as UnresolvedAddress).toList();
	buffer = buffer.sublist(ArrayHelpers.size(restrictionDeletions));

	var instance = EmbeddedAccountAddressRestrictionTransactionV1(
		signerPublicKey: signerPublicKey,
		version: version,
		network: network,
		type: type,
		restrictionFlags: restrictionFlags,
		restrictionAdditions: restrictionAdditions,
		restrictionDeletions: restrictionDeletions,
	);
	return instance;
}