可能看起来像一个愚蠢的问题,然而,我一直在尝试将字符串片段(作为函数的参数)限制为字节数。
这就是我试过的
fn padd_address(addr: &str) -> Result<web3::types::H256, std::error::Error> {
if addr.strip_prefix("0x").unwrap().as_bytes().len() > std::mem::size_of::<[u8; 20]>() {
std::error::Error()
}
let padded = &format!("0x{}", format!("{:0>64}", addr))[..];
H256::from_str(padded).unwrap()
}
现在假设我有一个这样的地址
let addr = "0xdAC17F958D2ee523a2206206994597C13D831ec7";
0x
现在如果我要
println!("{:?}", addr.strip_prefix("0x").unwrap().as_bytes().len())
我得到的是40个字节,而不是20个字节,这是合同地址的实际大小。
addr
只有20个字节?