toBytes method
Encodes this CID into its binary representation as a Uint8List
.
- For CIDv0, the binary representation is simply the multihash bytes.
- For CIDv1, it is
<cid-version-varint><multicodec-cid-codec-varint><multihash-bytes>
.
This method is useful for serialization or when needing the raw bytes for specific multibase encodings.
Example:
final cid = CID.fromString('bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi');
final bytes = cid.toBytes();
print(bytes); // Uint8List [...]
Implementation
Uint8List toBytes() {
if (version == V0) {
// CIDv0 is just the multihash.
// The multihash itself is already in its binary form.
return multihash;
} else {
// CIDv1: <version-varint><codec-varint><multihash-bytes>
final versionBytes = encodeVarint(version);
final codecBytes = encodeVarint(codec);
final builder = BytesBuilder(copy: false);
builder.add(versionBytes);
builder.add(codecBytes);
builder.add(multihash);
return builder.toBytes();
}
}