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;
}