getMetadataByCID method

  1. @override
Future<Metadata> getMetadataByCID(
  1. CID cid
)
override

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;
}