getMetadataByCID method
Implementation
@override
Future<Metadata> getMetadataByCID(CID cid) async {
late final Metadata metadata;
if (metadataCache.containsKey(cid.hash)) {
metadata = metadataCache[cid.hash]!;
} else {
final bytes = await downloadRawFile(cid.hash);
if (cid.type == cidTypeMetadataMedia) {
metadata = await deserializeMediaMetadata(bytes, crypto: crypto);
} else if (cid.type == cidTypeMetadataWebApp) {
metadata = deserializeWebAppMetadata(bytes);
} else {
throw 'Unsupported metadata format';
}
metadataCache[cid.hash] = metadata;
}
return metadata;
}