use codec_base64url::base64url_to_bytes;
use crate::{base58btc_decode, MultibaseError};
pub fn multibase_to_bytes(multibase: &str) -> Result<Vec<u8>, MultibaseError> {
let mut chars = multibase.chars();
let prefix = chars.next().ok_or(MultibaseError::TooShort)?;
let data = chars.as_str();
if data.is_empty() {
return Err(MultibaseError::TooShort);
}
match prefix {
'z' => Ok(base58btc_decode(data)?),
'u' => base64url_to_bytes(data).map_err(|_| MultibaseError::Base64Url),
_ => Err(MultibaseError::UnsupportedPrefix),
}
}