deserialize method

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

Implementation

@override
NamespaceMetadataTransactionV1 deserialize(Uint8List payload) {
	var buffer = payload;
	var size = bytesToInt(buffer.sublist(0, 4), 4);
	buffer = buffer.sublist(0, size);
	buffer = buffer.sublist(4);
	var verifiableEntityHeaderReserved_1 = bytesToInt(buffer.sublist(0, 4), 4);
	buffer = buffer.sublist(4);
	if (0 != verifiableEntityHeaderReserved_1) {
		throw RangeError('Invalid value of reserved field ($verifiableEntityHeaderReserved_1)');
	}
	var signature = Signature().deserialize(buffer);
	buffer = buffer.sublist(signature.size);
	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 fee = Amount().deserialize(buffer);
	buffer = buffer.sublist(fee.size);
	var deadline = Timestamp().deserialize(buffer);
	buffer = buffer.sublist(deadline.size);
	var targetAddress = UnresolvedAddress().deserialize(buffer);
	buffer = buffer.sublist(targetAddress.size);
	var scopedMetadataKey = bytesToInt(buffer.sublist(0, 8), 8);
	buffer = buffer.sublist(8);
	var targetNamespaceId = NamespaceId().deserialize(buffer);
	buffer = buffer.sublist(targetNamespaceId.size);
	var valueSizeDelta = bytesToInt(buffer.sublist(0, 2), 2);
	buffer = buffer.sublist(2);
	var valueSize = bytesToInt(buffer.sublist(0, 2), 2);
	buffer = buffer.sublist(2);
	var value = Uint8List.fromList(buffer.sublist(0, valueSize));
	buffer = buffer.sublist(valueSize);

	var instance = NamespaceMetadataTransactionV1(
		signature: signature,
		signerPublicKey: signerPublicKey,
		version: version,
		network: network,
		type: type,
		fee: fee,
		deadline: deadline,
		targetAddress: targetAddress,
		scopedMetadataKey: scopedMetadataKey,
		targetNamespaceId: targetNamespaceId,
		valueSizeDelta: valueSizeDelta,
		value: value,
	);
	return instance;
}