pub struct RpcClient {
pub transport: Arc<dyn Transport>,
pub cache: Arc<RwLock<RequestCache>>,
}Fields§
§transport: Arc<dyn Transport>§cache: Arc<RwLock<RequestCache>>Implementations§
Source§impl RpcClient
impl RpcClient
pub fn new<T: Transport + 'static>(transport: T) -> Self
pub async fn get_chain_id(&self) -> Result<U64, RpcError>
pub async fn get_gas_price(&self) -> Result<U256, RpcError>
pub async fn get_max_priority_fee_per_gas(&self) -> Result<U256, RpcError>
pub async fn get_block_number(&self) -> Result<U64, RpcError>
pub async fn get_logs( &self, from_block: u64, to_block: u64, address: Option<Address>, topics: Option<Vec<B256>>, ) -> Result<Option<Vec<Log>>, RpcError>
pub async fn get_transaction_by_tx_hash( &self, block_hash: B256, ) -> Result<Option<TransactionTx>, RpcError>
pub async fn get_transaction_by_block_with_index( &self, block: BlockIdentifier, index: U64, ) -> Result<Option<TransactionTx>, RpcError>
Sourcepub async fn get_block_by_number(
&self,
number: u64,
full_tx: bool,
) -> Result<Option<Block>, RpcError>
pub async fn get_block_by_number( &self, number: u64, full_tx: bool, ) -> Result<Option<Block>, RpcError>
fethces the block by number
Sourcepub async fn get_block_header_by_number(
&self,
number: u64,
full_tx: bool,
) -> Result<Option<BlockHeader>, RpcError>
pub async fn get_block_header_by_number( &self, number: u64, full_tx: bool, ) -> Result<Option<BlockHeader>, RpcError>
this just extracts the header of the block fethces the block by number then extracts the header
Sourcepub async fn get_block_header_with_tag(
&self,
tag: &str,
full_tx: bool,
) -> Result<Option<BlockHeader>, RpcError>
pub async fn get_block_header_with_tag( &self, tag: &str, full_tx: bool, ) -> Result<Option<BlockHeader>, RpcError>
this just extracts the header of the block fethces the block by tag then extracts the header possibble tags are [“LATEST”], [“EARLIEST”], [“PENDING”],[“SAFE”], [“FINALIZED”]
pub async fn get_block_by_hash( &self, hash: FixedBytes<32>, full_tx: bool, ) -> Result<Option<BlockHeader>, RpcError>
pub async fn get_balance( &self, address: Address, state: &str, ) -> Result<U256, RpcError>
pub async fn get_code( &self, address: Address, block: String, ) -> Result<Bytes, RpcError>
pub async fn get_storage_at( &self, address: Address, slot: B256, block: String, ) -> Result<B256, RpcError>
pub async fn get_transaction_count( &self, address: Address, block: BlockNumber, ) -> Result<U64, RpcError>
Sourcepub async fn estimate_gas(
&self,
tx: &TransactionRequest,
block: Option<BlockNumber>,
) -> Result<U256, RpcError>
pub async fn estimate_gas( &self, tx: &TransactionRequest, block: Option<BlockNumber>, ) -> Result<U256, RpcError>
Estimates the gas required to execute a transaction
This function sends an eth_estimateGas request to an Ethereum node to calculate the amount of gas needed to execute the given transaction.
§Arguments
tx- The transaction request detailsblock- Optional block number to simulate the transaction against
§Returns
Result<U256, RpcError>- The estimated gas as a U256 value, 0(default for error)
pub async fn new_filter(&self, filter: &FilterParams) -> Result<U256, RpcError>
pub async fn new_block_filter(&self) -> Result<U256, RpcError>
pub async fn get_filter_logs( &self, filter_id: U256, ) -> Result<Vec<Log>, RpcError>
pub async fn syncing(&self) -> Result<bool, RpcError>
Sourcepub async fn fee_history(
&self,
block_count: U64,
newest_block: U64,
reward_percentiles: &[f64],
) -> Result<Value, RpcError>
pub async fn fee_history( &self, block_count: U64, newest_block: U64, reward_percentiles: &[f64], ) -> Result<Value, RpcError>
ISSUE: MAKE THISS USE EXECUTE_RAW
Sourcepub async fn get_proof(
&self,
address: Address,
storage_keys: &[B256],
block: BlockNumber,
) -> Result<Value, RpcError>
pub async fn get_proof( &self, address: Address, storage_keys: &[B256], block: BlockNumber, ) -> Result<Value, RpcError>
ISSUE: MAKE THISS USE EXECUTE_RAW
pub async fn send_raw_transaction(&self, data: Bytes) -> Result<B256, RpcError>
pub async fn get_transaction_receipt( &self, hash: B256, ) -> Result<Value, RpcError>
pub async fn get_block_receipts( &self, block: BlockNumber, ) -> Result<Value, RpcError>
pub async fn execute_raw( &self, request: RpcRequest, ) -> Result<Vec<u8>, RpcError>
pub async fn execute<T: DeserializeOwned>( &self, request: RpcRequest, ) -> Result<T, RpcError>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for RpcClient
impl !RefUnwindSafe for RpcClient
impl Send for RpcClient
impl Sync for RpcClient
impl Unpin for RpcClient
impl !UnwindSafe for RpcClient
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more