use crate::{Error, Result};
pub fn decode_addr(addr: &str) -> Result<[u8; 32]> {
let slice = hex::decode(if let Some(strriped) = addr.strip_prefix("0x") {
strriped
} else {
&addr
})
.map_err(|_| Error::DecodeAddressFailed(addr.into()))?;
if slice.len() != 32 {
return Err(Error::DecodeAddressFailed(addr.into()));
}
let mut res: [u8; 32] = [0; 32];
res.copy_from_slice(&slice);
Ok(res)
}
pub fn pad(s: &str, spaces: usize) -> String {
let pad = spaces - s.len();
let mut o = String::new();
o.push_str(s);
o.push_str(&" ".repeat(pad));
o
}