1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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
}