deserialize method

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

Implementation

@override
Block 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 = BlockType().deserialize(buffer);
	buffer = buffer.sublist(type.size);
	var height = Height().deserialize(buffer);
	buffer = buffer.sublist(height.size);
	var timestamp = Timestamp().deserialize(buffer);
	buffer = buffer.sublist(timestamp.size);
	var difficulty = Difficulty().deserialize(buffer);
	buffer = buffer.sublist(difficulty.size);
	var generationHashProof = VrfProof().deserialize(buffer);
	buffer = buffer.sublist(generationHashProof.size);
	var previousBlockHash = Hash256().deserialize(buffer);
	buffer = buffer.sublist(previousBlockHash.size);
	var transactionsHash = Hash256().deserialize(buffer);
	buffer = buffer.sublist(transactionsHash.size);
	var receiptsHash = Hash256().deserialize(buffer);
	buffer = buffer.sublist(receiptsHash.size);
	var stateHash = Hash256().deserialize(buffer);
	buffer = buffer.sublist(stateHash.size);
	var beneficiaryAddress = Address().deserialize(buffer);
	buffer = buffer.sublist(beneficiaryAddress.size);
	var feeMultiplier = BlockFeeMultiplier().deserialize(buffer);
	buffer = buffer.sublist(feeMultiplier.size);

	var instance = Block(
		signature: signature,
		signerPublicKey: signerPublicKey,
		version: version,
		network: network,
		type: type,
		height: height,
		timestamp: timestamp,
		difficulty: difficulty,
		generationHashProof: generationHashProof,
		previousBlockHash: previousBlockHash,
		transactionsHash: transactionsHash,
		receiptsHash: receiptsHash,
		stateHash: stateHash,
		beneficiaryAddress: beneficiaryAddress,
		feeMultiplier: feeMultiplier,
	);
	return instance;
}