serialize method Null safety

Uint8List serialize()

Creates the Uint8List representation of the block header.

The block header is represented by a Uint8List of the block properties. Each item is prepended by its size calculate with CompactSize.encode. The Uint8List structure is:

Uint8List<Uint8List> header = (BytesBuilder()
  ..add(UtilsCompactSize.encode(version))),
  ..add(UtilsCompactSize.encode(timestamp)),
  ..add(UtilsCompactSize.encode(previousHash)),
  ..add(UtilsCompactSize.encode(transactionRoot)),
]);

Implementation

Uint8List serialize() {
  Uint8List serializedVersion = Bytes.encodeBigInt(BigInt.from(version));
  Uint8List serializedTimestamp = (BytesBuilder()
        ..add(Bytes.encodeBigInt(
            BigInt.from(timestamp.millisecondsSinceEpoch ~/ 1000))))
      .toBytes();
  Uint8List serializedPreviousHash = previousHash;
  Uint8List serializedTransactionRoot = transactionRoot;

  return (BytesBuilder()
        ..add(CompactSize.encode(serializedVersion))
        ..add(CompactSize.encode(serializedTimestamp))
        ..add(CompactSize.encode(serializedPreviousHash))
        ..add(CompactSize.encode(serializedTransactionRoot)))
      .toBytes();
}