2021-04-09 00:22:17 +00:00
|
|
|
use std::str::FromStr;
|
|
|
|
|
2022-01-26 13:01:05 +00:00
|
|
|
use secp256k1::SecretKey;
|
2021-04-09 00:22:17 +00:00
|
|
|
use web3::{
|
2022-01-26 13:01:05 +00:00
|
|
|
signing::Key,
|
2021-04-09 00:22:17 +00:00
|
|
|
types::Address,
|
|
|
|
};
|
|
|
|
|
2022-01-26 13:01:05 +00:00
|
|
|
pub fn key_to_ethereum_address(private_key: &SecretKey) -> Address {
|
|
|
|
private_key.address()
|
2021-04-09 00:22:17 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(thiserror::Error, Debug)]
|
|
|
|
#[error("address error")]
|
|
|
|
pub struct AddressError;
|
|
|
|
|
|
|
|
pub fn parse_address(address: &str) -> Result<Address, AddressError> {
|
|
|
|
Address::from_str(address).map_err(|_| AddressError)
|
|
|
|
}
|
|
|
|
|
2022-04-16 21:22:07 +00:00
|
|
|
/// Converts address object to lowercase hex string
|
|
|
|
pub fn address_to_string(address: Address) -> String {
|
|
|
|
format!("{:#x}", address)
|
|
|
|
}
|