use cosmwasm_std::{StdError, StdResult};
use crate::{types::ChainType, Bytes};
pub fn convert_address_from_string_to_bytes(address: String, chain_type: u32) -> StdResult<Bytes> {
if chain_type == ChainType::ChainTypeEvm.get_chain_code() {
let eth_address: String = address.replace("0x", "");
match hex::decode(eth_address) {
Ok(addr) => return Ok(addr),
Err(err) => {
return Err(StdError::GenericErr {
msg: err.to_string(),
});
}
};
} else {
return Ok(address.as_bytes().to_vec());
}
}
pub fn convert_address_from_bytes_to_string(address: &[u8], chain_type: u32) -> StdResult<String> {
if chain_type == ChainType::ChainTypeEvm.get_chain_code() {
return Ok("0x".to_string() + &hex::encode(address.to_vec()));
} else {
match String::from_utf8(address.to_vec()) {
Ok(addr) => return Ok(addr),
Err(err) => {
return Err(StdError::GenericErr {
msg: err.to_string(),
});
}
}
}
}