serialize method Null safety
- {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();
}