1use crate::{Error, Result};
3
4pub fn decode_addr(addr: &str) -> Result<[u8; 32]> {
14 let slice = hex::decode(if let Some(strriped) = addr.strip_prefix("0x") {
15 strriped
16 } else {
17 &addr
18 })
19 .map_err(|_| Error::DecodeAddressFailed(addr.into()))?;
20 if slice.len() != 32 {
21 return Err(Error::DecodeAddressFailed(addr.into()));
22 }
23
24 let mut res: [u8; 32] = [0; 32];
25 res.copy_from_slice(&slice);
26 Ok(res)
27}
28
29pub fn pad(s: &str, spaces: usize) -> String {
31 let pad = spaces - s.len();
32 let mut o = String::new();
33 o.push_str(s);
34 o.push_str(&" ".repeat(pad));
35 o
36}