Trait brontes_types::traits::TracingProvider

source ·
pub trait TracingProvider:
    Send
    + Sync
    + 'static {
    // Required methods
    fn eth_call<'life0, 'async_trait>(
        &'life0 self,
        request: TransactionRequest,
        block_number: Option<BlockId>,
        state_overrides: Option<StateOverride>,
        block_overrides: Option<Box<BlockOverrides>>,
    ) -> Pin<Box<dyn Future<Output = Result<Bytes>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn block_hash_for_id<'life0, 'async_trait>(
        &'life0 self,
        block_num: u64,
    ) -> Pin<Box<dyn Future<Output = Result<Option<B256>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn best_block_number(&self) -> Result<u64>;
    fn replay_block_transactions<'life0, 'async_trait>(
        &'life0 self,
        block_id: BlockId,
    ) -> Pin<Box<dyn Future<Output = Result<Option<Vec<TxTrace>>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn block_receipts<'life0, 'async_trait>(
        &'life0 self,
        number: BlockNumberOrTag,
    ) -> Pin<Box<dyn Future<Output = Result<Option<Vec<TransactionReceipt<AnyReceiptEnvelope<Log>>>>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn header_by_number<'life0, 'async_trait>(
        &'life0 self,
        number: BlockNumber,
    ) -> Pin<Box<dyn Future<Output = Result<Option<Header>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn block_and_tx_index<'life0, 'async_trait>(
        &'life0 self,
        hash: TxHash,
    ) -> Pin<Box<dyn Future<Output = Result<(u64, usize)>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn get_storage<'life0, 'async_trait>(
        &'life0 self,
        block_number: Option<u64>,
        address: Address,
        storage_key: B256,
    ) -> Pin<Box<dyn Future<Output = Result<Option<StorageValue>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn get_bytecode<'life0, 'async_trait>(
        &'life0 self,
        block_number: Option<u64>,
        address: Address,
    ) -> Pin<Box<dyn Future<Output = Result<Option<Bytecode>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;

    // Provided method
    fn eth_call_light<'life0, 'async_trait>(
        &'life0 self,
        request: TransactionRequest,
        block_number: BlockId,
    ) -> Pin<Box<dyn Future<Output = Result<Bytes>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait { ... }
}

Required Methods§

source

fn eth_call<'life0, 'async_trait>( &'life0 self, request: TransactionRequest, block_number: Option<BlockId>, state_overrides: Option<StateOverride>, block_overrides: Option<Box<BlockOverrides>>, ) -> Pin<Box<dyn Future<Output = Result<Bytes>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

source

fn block_hash_for_id<'life0, 'async_trait>( &'life0 self, block_num: u64, ) -> Pin<Box<dyn Future<Output = Result<Option<B256>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

source

fn best_block_number(&self) -> Result<u64>

source

fn replay_block_transactions<'life0, 'async_trait>( &'life0 self, block_id: BlockId, ) -> Pin<Box<dyn Future<Output = Result<Option<Vec<TxTrace>>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

source

fn block_receipts<'life0, 'async_trait>( &'life0 self, number: BlockNumberOrTag, ) -> Pin<Box<dyn Future<Output = Result<Option<Vec<TransactionReceipt<AnyReceiptEnvelope<Log>>>>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

source

fn header_by_number<'life0, 'async_trait>( &'life0 self, number: BlockNumber, ) -> Pin<Box<dyn Future<Output = Result<Option<Header>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

source

fn block_and_tx_index<'life0, 'async_trait>( &'life0 self, hash: TxHash, ) -> Pin<Box<dyn Future<Output = Result<(u64, usize)>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

source

fn get_storage<'life0, 'async_trait>( &'life0 self, block_number: Option<u64>, address: Address, storage_key: B256, ) -> Pin<Box<dyn Future<Output = Result<Option<StorageValue>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

source

fn get_bytecode<'life0, 'async_trait>( &'life0 self, block_number: Option<u64>, address: Address, ) -> Pin<Box<dyn Future<Output = Result<Option<Bytecode>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Provided Methods§

source

fn eth_call_light<'life0, 'async_trait>( &'life0 self, request: TransactionRequest, block_number: BlockId, ) -> Pin<Box<dyn Future<Output = Result<Bytes>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

eth call that fetches state and does minimal processing will bypass threadpool

Implementations on Foreign Types§

source§

impl<T: TracingProvider + ?Sized> TracingProvider for Box<T>
where Box<T>: Send + Sync + 'static,

source§

fn eth_call<'life0, 'async_trait>( &'life0 self, request: TransactionRequest, block_number: Option<BlockId>, state_overrides: Option<StateOverride>, block_overrides: Option<Box<BlockOverrides>>, ) -> Pin<Box<dyn Future<Output = Result<Bytes>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

source§

fn eth_call_light<'life0, 'async_trait>( &'life0 self, request: TransactionRequest, block_number: BlockId, ) -> Pin<Box<dyn Future<Output = Result<Bytes>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

source§

fn block_hash_for_id<'life0, 'async_trait>( &'life0 self, block_num: u64, ) -> Pin<Box<dyn Future<Output = Result<Option<B256>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

source§

fn best_block_number(&self) -> Result<u64>

source§

fn replay_block_transactions<'life0, 'async_trait>( &'life0 self, block_id: BlockId, ) -> Pin<Box<dyn Future<Output = Result<Option<Vec<TxTrace>>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

source§

fn block_receipts<'life0, 'async_trait>( &'life0 self, number: BlockNumberOrTag, ) -> Pin<Box<dyn Future<Output = Result<Option<Vec<TransactionReceipt<AnyReceiptEnvelope<Log>>>>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

source§

fn header_by_number<'life0, 'async_trait>( &'life0 self, number: BlockNumber, ) -> Pin<Box<dyn Future<Output = Result<Option<Header>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

source§

fn block_and_tx_index<'life0, 'async_trait>( &'life0 self, hash: TxHash, ) -> Pin<Box<dyn Future<Output = Result<(u64, usize)>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

source§

fn get_storage<'life0, 'async_trait>( &'life0 self, block_number: Option<u64>, address: Address, storage_key: B256, ) -> Pin<Box<dyn Future<Output = Result<Option<StorageValue>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

source§

fn get_bytecode<'life0, 'async_trait>( &'life0 self, block_number: Option<u64>, address: Address, ) -> Pin<Box<dyn Future<Output = Result<Option<Bytecode>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Implementors§