serialize method
Implementation
Uint8List serialize() {
final parts = <int>[];
parts.add(0xef); // PREFIX_TOKEN
parts.addAll(categoryId);
// Bitfield encoding: has_nft (bit 5), has_amount (bit 4), capability (bits 0-3)
var bitfield = 0;
if (hasNft) {
bitfield |= 0x20;
bitfield |= capability.flag & 0x0f;
}
if (hasFungible) {
bitfield |= 0x10;
}
parts.add(bitfield);
if (hasNft && commitment != null) {
_writeCompactSize(parts, commitment!.length);
parts.addAll(commitment!);
} else if (hasNft) {
parts.add(0); // zero-length commitment
}
if (hasFungible) {
_writeCompactSize(parts, amount.toInt());
}
return Uint8List.fromList(parts);
}