fix(ethers-etherscan): Broken Etherscan URL Construction (#1100)
* 👷 fix etherscan url stringification * 🎨 fmt
This commit is contained in:
parent
b3679fe113
commit
33f5b7c5fa
|
@ -144,22 +144,22 @@ impl Client {
|
|||
|
||||
/// Return the URL for the given block number
|
||||
pub fn block_url(&self, block: u64) -> String {
|
||||
format!("{}/block/{}", self.etherscan_url, block)
|
||||
format!("{}block/{}", self.etherscan_url, block)
|
||||
}
|
||||
|
||||
/// Return the URL for the given address
|
||||
pub fn address_url(&self, address: Address) -> String {
|
||||
format!("{}/address/{}", self.etherscan_url, address)
|
||||
format!("{}address/{}", self.etherscan_url, address)
|
||||
}
|
||||
|
||||
/// Return the URL for the given transaction hash
|
||||
pub fn transaction_url(&self, tx_hash: impl AsRef<str>) -> String {
|
||||
format!("{}/tx/{}", self.etherscan_url, tx_hash.as_ref())
|
||||
format!("{}tx/{}", self.etherscan_url, tx_hash.as_ref())
|
||||
}
|
||||
|
||||
/// Return the URL for the given token hash
|
||||
pub fn token_url(&self, token_hash: impl AsRef<str>) -> String {
|
||||
format!("{}/token/{}", self.etherscan_url, token_hash.as_ref())
|
||||
format!("{}token/{}", self.etherscan_url, token_hash.as_ref())
|
||||
}
|
||||
|
||||
/// Execute an API POST request with a form
|
||||
|
@ -231,7 +231,7 @@ mod tests {
|
|||
time::{Duration, SystemTime},
|
||||
};
|
||||
|
||||
use ethers_core::types::Chain;
|
||||
use ethers_core::types::{Address, Chain};
|
||||
|
||||
use crate::{Client, EtherscanError};
|
||||
|
||||
|
@ -243,6 +243,38 @@ mod tests {
|
|||
assert_eq!(err.to_string(), "chain xdai not supported");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn stringifies_block_url() {
|
||||
let etherscan = Client::new_from_env(Chain::Mainnet).unwrap();
|
||||
let block: u64 = 1;
|
||||
let block_url: String = etherscan.block_url(block);
|
||||
assert_eq!(block_url, format!("https://etherscan.io/block/{}", block));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn stringifies_address_url() {
|
||||
let etherscan = Client::new_from_env(Chain::Mainnet).unwrap();
|
||||
let addr: Address = Address::zero();
|
||||
let address_url: String = etherscan.address_url(addr);
|
||||
assert_eq!(address_url, format!("https://etherscan.io/address/{}", addr));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn stringifies_transaction_url() {
|
||||
let etherscan = Client::new_from_env(Chain::Mainnet).unwrap();
|
||||
let tx_hash = "0x0";
|
||||
let tx_url: String = etherscan.transaction_url(tx_hash);
|
||||
assert_eq!(tx_url, format!("https://etherscan.io/tx/{}", tx_hash));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn stringifies_token_url() {
|
||||
let etherscan = Client::new_from_env(Chain::Mainnet).unwrap();
|
||||
let token_hash = "0x0";
|
||||
let token_url: String = etherscan.token_url(token_hash);
|
||||
assert_eq!(token_url, format!("https://etherscan.io/token/{}", token_hash));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn local_networks_not_supported() {
|
||||
let err = Client::new_from_env(Chain::Dev).unwrap_err();
|
||||
|
|
Loading…
Reference in New Issue