serialize method Null safety

Uint8List serialize(
  1. {dynamic includeSignature = true}
)

Creates a Uint8List representation of this.

The Uint8List is built by a list of the transaction properties, prepended by its size obtained from CompactSize.encode. Use with includeSignature to false, to sign or verify the signature.

Uint8List serialized =  (BytesBuilder()
       ..add(serializedVersion)
       ..add(serializedAddress)
       ..add(serializedTimestamp)
       ..add(serializedAssetRef)
       ..add(serializedSignature)
       ..add(serializedContents)).toBytes()
]);

Implementation

Uint8List serialize({includeSignature = true}) {
  Uint8List versionBytes = Bytes.encodeBigInt(BigInt.from(version));
  Uint8List serializedVersion = CompactSize.encode(versionBytes);
  Uint8List serializedAddress = CompactSize.encode(address);
  Uint8List timestampBytes = Bytes.encodeBigInt(
      BigInt.from(timestamp.millisecondsSinceEpoch ~/ 1000));
  Uint8List serializedTimestamp = CompactSize.encode(timestampBytes);
  Uint8List assetRefBytes = base64.decode(assetRef);
  Uint8List serializedAssetRef = CompactSize.encode(assetRefBytes);
  Uint8List serializedSignature = CompactSize.encode(
      includeSignature && signature != null ? signature! : Uint8List(0));
  Uint8List serializedContents = CompactSize.encode(contents);
  return (BytesBuilder()
        ..add(serializedVersion)
        ..add(serializedAddress)
        ..add(serializedTimestamp)
        ..add(serializedAssetRef)
        ..add(serializedSignature)
        ..add(serializedContents))
      .toBytes();
}