| use crate::errors::AppError; | |
| use cid::Cid; | |
| use sha2::{Digest, Sha256}; | |
| pub fn generate_cid(data: impl AsRef<[u8]>) -> Result<String, AppError> { | |
| 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()) | |
| } | |