mithril_common/crypto_helper/codec/
bech32.rs1use anyhow::anyhow;
2use bech32::{self, Bech32, Hrp};
3
4use crate::StdResult;
5
6pub fn encode_bech32(human_readable_part: &str, data: &[u8]) -> StdResult<String> {
8 let human_readable_part = Hrp::parse(human_readable_part).map_err(|e| anyhow!(e))?;
9 bech32::encode::<Bech32>(human_readable_part, data).map_err(|e| anyhow!(e))
10}
11
12#[cfg(test)]
13mod tests {
14 use hex::FromHex;
15
16 use super::encode_bech32;
17
18 #[test]
19 fn test_bech32_encode() {
20 let hrp = "pool";
21 let data =
22 Vec::from_hex("edfa208d441511f9595ba80e8f3a7b07b6a80cbc9dda9d8e9d1dc039").unwrap();
23 let encoded_data = encode_bech32(hrp, &data).unwrap();
24 let expected_encoded_data =
25 "pool1ahazpr2yz5gljk2m4q8g7wnmq7m2sr9unhdfmr5arhqrjnntwdz".to_string();
26
27 assert_eq!(expected_encoded_data, encoded_data);
28 }
29}