use crate::errors::AppError; use cid::Cid; use sha2::{Digest, Sha256}; pub fn generate_cid(data: impl AsRef<[u8]>) -> Result { let digest = Sha256::digest(data.as_ref()); let mh = cid::multihash::Multihash::wrap(0x12, &digest) .map_err(|e| AppError::Other(anyhow::anyhow!("invalid multihash: {:?}", e)))?; let cid = Cid::new_v1(0x55, mh); Ok(cid.to_string()) }