Struct ethers_etherscan::Client
source · [−]pub struct Client { /* private fields */ }
Expand description
The Etherscan.io API client.
Implementations
sourceimpl Client
impl Client
sourcepub async fn get_ether_balance_single(
&self,
address: &Address,
tag: Option<Tag>
) -> Result<AccountBalance, EtherscanError>
pub async fn get_ether_balance_single(
&self,
address: &Address,
tag: Option<Tag>
) -> Result<AccountBalance, EtherscanError>
Returns the Ether balance of a given address.
let client = Client::new(Chain::Mainnet, "API_KEY").unwrap();
let balance = client
.get_ether_balance_single(&"0x58eB28A67731c570Ef827C365c89B5751F9E6b0a".parse().unwrap(),
None).await.unwrap();
sourcepub async fn get_ether_balance_multi(
&self,
addresses: &[&Address],
tag: Option<Tag>
) -> Result<Vec<AccountBalance>, EtherscanError>
pub async fn get_ether_balance_multi(
&self,
addresses: &[&Address],
tag: Option<Tag>
) -> Result<Vec<AccountBalance>, EtherscanError>
Returns the balance of the accounts from a list of addresses.
let client = Client::new(Chain::Mainnet, "API_KEY").unwrap();
let balances = client
.get_ether_balance_multi(&vec![&"0x58eB28A67731c570Ef827C365c89B5751F9E6b0a".parse().unwrap()],
None).await.unwrap();
sourcepub async fn get_transactions(
&self,
address: &Address,
params: Option<TxListParams>
) -> Result<Vec<NormalTransaction>, EtherscanError>
pub async fn get_transactions(
&self,
address: &Address,
params: Option<TxListParams>
) -> Result<Vec<NormalTransaction>, EtherscanError>
Returns the list of transactions performed by an address, with optional pagination.
let client = Client::new(Chain::Mainnet, "API_KEY").unwrap();
let txs = client
.get_transactions(&"0x58eB28A67731c570Ef827C365c89B5751F9E6b0a".parse().unwrap(),
None).await.unwrap();
sourcepub async fn get_internal_transactions(
&self,
tx_query_option: InternalTxQueryOption,
params: Option<TxListParams>
) -> Result<Vec<InternalTransaction>, EtherscanError>
pub async fn get_internal_transactions(
&self,
tx_query_option: InternalTxQueryOption,
params: Option<TxListParams>
) -> Result<Vec<InternalTransaction>, EtherscanError>
Returns the list of internal transactions performed by an address or within a transaction, with optional pagination.
let client = Client::new(Chain::Mainnet, "API_KEY").unwrap();
let txs = client
.get_internal_transactions(
InternalTxQueryOption::ByAddress(
"0x2c1ba59d6f58433fb1eaee7d20b26ed83bda51a3".parse().unwrap()), None).await.unwrap();
sourcepub async fn get_erc20_token_transfer_events(
&self,
event_query_option: TokenQueryOption,
params: Option<TxListParams>
) -> Result<Vec<ERC20TokenTransferEvent>, EtherscanError>
pub async fn get_erc20_token_transfer_events(
&self,
event_query_option: TokenQueryOption,
params: Option<TxListParams>
) -> Result<Vec<ERC20TokenTransferEvent>, EtherscanError>
Returns the list of ERC-20 tokens transferred by an address, with optional filtering by token contract.
let client = Client::new(Chain::Mainnet, "API_KEY").unwrap();
let txs = client
.get_erc20_token_transfer_events(
TokenQueryOption::ByAddress(
"0x4e83362442b8d1bec281594cea3050c8eb01311c".parse().unwrap()), None).await.unwrap();
sourcepub async fn get_erc721_token_transfer_events(
&self,
event_query_option: TokenQueryOption,
params: Option<TxListParams>
) -> Result<Vec<ERC721TokenTransferEvent>, EtherscanError>
pub async fn get_erc721_token_transfer_events(
&self,
event_query_option: TokenQueryOption,
params: Option<TxListParams>
) -> Result<Vec<ERC721TokenTransferEvent>, EtherscanError>
Returns the list of ERC-721 ( NFT ) tokens transferred by an address, with optional filtering by token contract.
let client = Client::new(Chain::Mainnet, "API_KEY").unwrap();
let txs = client
.get_erc721_token_transfer_events(
TokenQueryOption::ByAddressAndContract(
"0x6975be450864c02b4613023c2152ee0743572325".parse().unwrap(),
"0x06012c8cf97bead5deae237070f9587f8e7a266d".parse().unwrap(),
), None).await.unwrap();
sourcepub async fn get_mined_blocks(
&self,
address: &Address,
block_type: Option<BlockType>,
page_and_offset: Option<(u64, u64)>
) -> Result<Vec<MinedBlock>, EtherscanError>
pub async fn get_mined_blocks(
&self,
address: &Address,
block_type: Option<BlockType>,
page_and_offset: Option<(u64, u64)>
) -> Result<Vec<MinedBlock>, EtherscanError>
Returns the list of blocks mined by an address.
let client = Client::new(Chain::Mainnet, "API_KEY").unwrap();
let blocks = client
.get_mined_blocks(&"0x9dd134d14d1e65f84b706d6f205cd5b1cd03a46b".parse().unwrap(), None, None)
.await.unwrap();
sourceimpl Client
impl Client
sourcepub async fn submit_contract_verification(
&self,
contract: &VerifyContract
) -> Result<Response<String>, EtherscanError>
pub async fn submit_contract_verification(
&self,
contract: &VerifyContract
) -> Result<Response<String>, EtherscanError>
Submit Source Code for Verification
sourcepub async fn check_contract_verification_status(
&self,
guid: impl AsRef<str>
) -> Result<Response<String>, EtherscanError>
pub async fn check_contract_verification_status(
&self,
guid: impl AsRef<str>
) -> Result<Response<String>, EtherscanError>
Check Source Code Verification Status with receipt received from
[Self::submit_contract_verification]
sourcepub async fn contract_abi(&self, address: Address) -> Result<Abi, EtherscanError>
pub async fn contract_abi(&self, address: Address) -> Result<Abi, EtherscanError>
Returns the contract ABI of a verified contract
let client = Client::new(Chain::Mainnet, "API_KEY").unwrap();
let abi = client
.contract_abi("0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413".parse().unwrap())
.await.unwrap();
sourcepub async fn contract_source_code(
&self,
address: Address
) -> Result<ContractMetadata, EtherscanError>
pub async fn contract_source_code(
&self,
address: Address
) -> Result<ContractMetadata, EtherscanError>
Get Contract Source Code for Verified Contract Source Codes
let client = Client::new(Chain::Mainnet, "API_KEY").unwrap();
let meta = client
.contract_source_code("0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413".parse().unwrap())
.await.unwrap();
let code = meta.source_code();
sourceimpl Client
impl Client
sourcepub async fn gas_estimate(&self, gas_price: U256) -> Result<u32, EtherscanError>
pub async fn gas_estimate(&self, gas_price: U256) -> Result<u32, EtherscanError>
Returns the estimated time, in seconds, for a transaction to be confirmed on the blockchain for the specified gas price
sourcepub async fn gas_oracle(&self) -> Result<GasOracle, EtherscanError>
pub async fn gas_oracle(&self) -> Result<GasOracle, EtherscanError>
Returns the current Safe, Proposed and Fast gas prices Post EIP-1559 changes:
- Safe/Proposed/Fast gas price recommendations are now modeled as Priority Fees.
- New field
suggestBaseFee
, the baseFee of the next pending block - New field
gasUsedRatio
, to estimate how busy the network is
sourceimpl Client
impl Client
sourcepub async fn check_contract_execution_status(
&self,
tx_hash: impl AsRef<str>
) -> Result<(), EtherscanError>
pub async fn check_contract_execution_status(
&self,
tx_hash: impl AsRef<str>
) -> Result<(), EtherscanError>
Returns the status of a contract execution
sourcepub async fn check_transaction_receipt_status(
&self,
tx_hash: impl AsRef<str>
) -> Result<(), EtherscanError>
pub async fn check_transaction_receipt_status(
&self,
tx_hash: impl AsRef<str>
) -> Result<(), EtherscanError>
Returns the status of a transaction execution: false
for failed and true
for successful
sourceimpl Client
impl Client
sourcepub fn builder() -> ClientBuilder
pub fn builder() -> ClientBuilder
Creates a ClientBuilder
to configure a Client
.
This is the same as ClientBuilder::default()
.
Example
use ethers_core::types::Chain;
use ethers_etherscan::Client;
let client = Client::builder().with_api_key("<API KEY>").chain(Chain::Mainnet).unwrap().build().unwrap();
sourcepub fn new_cached(
chain: Chain,
api_key: impl Into<String>,
cache_root: Option<PathBuf>,
cache_ttl: Duration
) -> Result<Self, EtherscanError>
pub fn new_cached(
chain: Chain,
api_key: impl Into<String>,
cache_root: Option<PathBuf>,
cache_ttl: Duration
) -> Result<Self, EtherscanError>
Creates a new instance that caches etherscan requests
sourcepub fn new(
chain: Chain,
api_key: impl Into<String>
) -> Result<Self, EtherscanError>
pub fn new(
chain: Chain,
api_key: impl Into<String>
) -> Result<Self, EtherscanError>
Create a new client with the correct endpoints based on the chain and provided API key
sourcepub fn new_from_env(chain: Chain) -> Result<Self, EtherscanError>
pub fn new_from_env(chain: Chain) -> Result<Self, EtherscanError>
Create a new client with the correct endpoints based on the chain and API key from ETHERSCAN_API_KEY environment variable
pub fn etherscan_api_url(&self) -> &Url
pub fn etherscan_url(&self) -> &Url
sourcepub fn address_url(&self, address: Address) -> String
pub fn address_url(&self, address: Address) -> String
Return the URL for the given address
sourcepub fn transaction_url(&self, tx_hash: H256) -> String
pub fn transaction_url(&self, tx_hash: H256) -> String
Return the URL for the given transaction hash
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for Client
impl Send for Client
impl Sync for Client
impl Unpin for Client
impl !UnwindSafe for Client
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more