Trait brontes_database::libmdbx::LibmdbxReader

source ·
pub trait LibmdbxReader:
    Send
    + Sync
    + Unpin
    + 'static {
Show 30 methods // Required methods fn get_most_recent_block(&self) -> Result<u64, Report>; fn get_metadata_no_dex_price( &self, block_num: u64, quote_asset: Address, ) -> Result<Metadata, Report>; fn has_dex_quotes(&self, block_num: u64) -> Result<bool, Report>; fn try_fetch_address_metadatas( &self, addresses: Vec<Address>, ) -> Result<HashMap<Address, AddressMetadata, RandomState>, Report>; fn fetch_all_searcher_eoa_info( &self, ) -> Result<Vec<(Address, SearcherInfo)>, Report>; fn fetch_all_searcher_contract_info( &self, ) -> Result<Vec<(Address, SearcherInfo)>, Report>; fn try_fetch_searcher_eoa_info( &self, searcher_eoa: Address, ) -> Result<Option<SearcherInfo>, Report>; fn try_fetch_searcher_contract_info( &self, searcher_contract: Address, ) -> Result<Option<SearcherInfo>, Report>; fn try_fetch_searcher_eoa_infos( &self, searcher_eoa: Vec<Address>, ) -> Result<HashMap<Address, SearcherInfo, RandomState>, Report>; fn try_fetch_searcher_contract_infos( &self, searcher_contract: Vec<Address>, ) -> Result<HashMap<Address, SearcherInfo, RandomState>, Report>; fn try_fetch_builder_info( &self, builder_coinbase_addr: Address, ) -> Result<Option<BuilderInfo>, Report>; fn fetch_all_builder_info( &self, ) -> Result<Vec<(Address, BuilderInfo)>, Report>; fn get_metadata( &self, block_num: u64, quote_asset: Address, ) -> Result<Metadata, Report>; fn get_cex_trades(&self, block: u64) -> Result<CexTradeMap, Report>; fn try_fetch_address_metadata( &self, address: Address, ) -> Result<Option<AddressMetadata>, Report>; fn fetch_all_address_metadata( &self, ) -> Result<Vec<(Address, AddressMetadata)>, Report>; fn get_dex_quotes(&self, block: u64) -> Result<DexQuotes, Report>; fn try_fetch_token_info( &self, address: Address, ) -> Result<TokenInfoWithAddress, Report>; fn try_fetch_mev_blocks( &self, start_block: Option<u64>, end_block: u64, ) -> Result<Vec<MevBlockWithClassified>, Report>; fn fetch_all_mev_blocks( &self, start_block: Option<u64>, ) -> Result<Vec<MevBlockWithClassified>, Report>; fn protocols_created_before( &self, start_block: u64, ) -> Result<HashMap<(Address, Protocol), Pair, RandomState>, Report>; fn protocols_created_range( &self, start_block: u64, end_block: u64, ) -> Result<HashMap<u64, Vec<(Address, Protocol, Pair)>, RandomState>, Report>; fn get_protocol_details( &self, address: Address, ) -> Result<ProtocolInfo, Report>; fn load_trace(&self, block_num: u64) -> Result<Vec<TxTrace>, Report>; // Provided methods fn try_fetch_searcher_info( &self, eoa_address: Address, contract_address: Option<Address>, ) -> Result<(Option<SearcherInfo>, Option<SearcherInfo>), Report> { ... } fn try_fetch_searcher_infos( &self, eoa: Vec<Address>, contract: Vec<Address>, ) -> Result<HashMap<Address, (SearcherInfo, Option<SearcherInfo>), RandomState>, Report> { ... } fn fetch_all_searcher_info( &self, ) -> Result<(Vec<(Address, SearcherInfo)>, Vec<(Address, SearcherInfo)>), Report> { ... } fn try_fetch_token_decimals(&self, address: Address) -> Result<u8, Report> { ... } fn get_protocol(&self, address: Address) -> Result<Protocol, Report> { ... } fn get_protocol_details_sorted( &self, address: Address, ) -> Result<ProtocolInfo, Report> { ... }
}

Required Methods§

source

fn get_most_recent_block(&self) -> Result<u64, Report>

source

fn get_metadata_no_dex_price( &self, block_num: u64, quote_asset: Address, ) -> Result<Metadata, Report>

source

fn has_dex_quotes(&self, block_num: u64) -> Result<bool, Report>

source

fn try_fetch_address_metadatas( &self, addresses: Vec<Address>, ) -> Result<HashMap<Address, AddressMetadata, RandomState>, Report>

source

fn fetch_all_searcher_eoa_info( &self, ) -> Result<Vec<(Address, SearcherInfo)>, Report>

source

fn fetch_all_searcher_contract_info( &self, ) -> Result<Vec<(Address, SearcherInfo)>, Report>

source

fn try_fetch_searcher_eoa_info( &self, searcher_eoa: Address, ) -> Result<Option<SearcherInfo>, Report>

source

fn try_fetch_searcher_contract_info( &self, searcher_contract: Address, ) -> Result<Option<SearcherInfo>, Report>

source

fn try_fetch_searcher_eoa_infos( &self, searcher_eoa: Vec<Address>, ) -> Result<HashMap<Address, SearcherInfo, RandomState>, Report>

source

fn try_fetch_searcher_contract_infos( &self, searcher_contract: Vec<Address>, ) -> Result<HashMap<Address, SearcherInfo, RandomState>, Report>

source

fn try_fetch_builder_info( &self, builder_coinbase_addr: Address, ) -> Result<Option<BuilderInfo>, Report>

source

fn fetch_all_builder_info(&self) -> Result<Vec<(Address, BuilderInfo)>, Report>

source

fn get_metadata( &self, block_num: u64, quote_asset: Address, ) -> Result<Metadata, Report>

source

fn get_cex_trades(&self, block: u64) -> Result<CexTradeMap, Report>

source

fn try_fetch_address_metadata( &self, address: Address, ) -> Result<Option<AddressMetadata>, Report>

source

fn fetch_all_address_metadata( &self, ) -> Result<Vec<(Address, AddressMetadata)>, Report>

source

fn get_dex_quotes(&self, block: u64) -> Result<DexQuotes, Report>

source

fn try_fetch_token_info( &self, address: Address, ) -> Result<TokenInfoWithAddress, Report>

source

fn try_fetch_mev_blocks( &self, start_block: Option<u64>, end_block: u64, ) -> Result<Vec<MevBlockWithClassified>, Report>

source

fn fetch_all_mev_blocks( &self, start_block: Option<u64>, ) -> Result<Vec<MevBlockWithClassified>, Report>

source

fn protocols_created_before( &self, start_block: u64, ) -> Result<HashMap<(Address, Protocol), Pair, RandomState>, Report>

source

fn protocols_created_range( &self, start_block: u64, end_block: u64, ) -> Result<HashMap<u64, Vec<(Address, Protocol, Pair)>, RandomState>, Report>

source

fn get_protocol_details(&self, address: Address) -> Result<ProtocolInfo, Report>

source

fn load_trace(&self, block_num: u64) -> Result<Vec<TxTrace>, Report>

Provided Methods§

source

fn try_fetch_searcher_info( &self, eoa_address: Address, contract_address: Option<Address>, ) -> Result<(Option<SearcherInfo>, Option<SearcherInfo>), Report>

source

fn try_fetch_searcher_infos( &self, eoa: Vec<Address>, contract: Vec<Address>, ) -> Result<HashMap<Address, (SearcherInfo, Option<SearcherInfo>), RandomState>, Report>

source

fn fetch_all_searcher_info( &self, ) -> Result<(Vec<(Address, SearcherInfo)>, Vec<(Address, SearcherInfo)>), Report>

source

fn try_fetch_token_decimals(&self, address: Address) -> Result<u8, Report>

source

fn get_protocol(&self, address: Address) -> Result<Protocol, Report>

source

fn get_protocol_details_sorted( &self, address: Address, ) -> Result<ProtocolInfo, Report>

returns protocol details with the tokens sorted from smallest to biggest. This is needed as for some reason the tokens in the database for a given protocol don’t seems to always be ordered correctly

Implementations on Foreign Types§

source§

impl<'a, T> LibmdbxReader for &'a T
where T: 'a + LibmdbxReader + ?Sized, &'a T: Send + Sync + Unpin + 'static,

source§

fn get_most_recent_block(&self) -> Result<u64, Report>

source§

fn get_metadata_no_dex_price( &self, block_num: u64, quote_asset: Address, ) -> Result<Metadata, Report>

source§

fn has_dex_quotes(&self, block_num: u64) -> Result<bool, Report>

source§

fn try_fetch_searcher_info( &self, eoa_address: Address, contract_address: Option<Address>, ) -> Result<(Option<SearcherInfo>, Option<SearcherInfo>), Report>

source§

fn try_fetch_searcher_infos( &self, eoa: Vec<Address>, contract: Vec<Address>, ) -> Result<HashMap<Address, (SearcherInfo, Option<SearcherInfo>), RandomState>, Report>

source§

fn try_fetch_address_metadatas( &self, addresses: Vec<Address>, ) -> Result<HashMap<Address, AddressMetadata, RandomState>, Report>

source§

fn fetch_all_searcher_info( &self, ) -> Result<(Vec<(Address, SearcherInfo)>, Vec<(Address, SearcherInfo)>), Report>

source§

fn fetch_all_searcher_eoa_info( &self, ) -> Result<Vec<(Address, SearcherInfo)>, Report>

source§

fn fetch_all_searcher_contract_info( &self, ) -> Result<Vec<(Address, SearcherInfo)>, Report>

source§

fn try_fetch_searcher_eoa_info( &self, searcher_eoa: Address, ) -> Result<Option<SearcherInfo>, Report>

source§

fn try_fetch_searcher_contract_info( &self, searcher_contract: Address, ) -> Result<Option<SearcherInfo>, Report>

source§

fn try_fetch_searcher_eoa_infos( &self, searcher_eoa: Vec<Address>, ) -> Result<HashMap<Address, SearcherInfo, RandomState>, Report>

source§

fn try_fetch_searcher_contract_infos( &self, searcher_contract: Vec<Address>, ) -> Result<HashMap<Address, SearcherInfo, RandomState>, Report>

source§

fn try_fetch_builder_info( &self, builder_coinbase_addr: Address, ) -> Result<Option<BuilderInfo>, Report>

source§

fn fetch_all_builder_info(&self) -> Result<Vec<(Address, BuilderInfo)>, Report>

source§

fn get_metadata( &self, block_num: u64, quote_asset: Address, ) -> Result<Metadata, Report>

source§

fn get_cex_trades(&self, block: u64) -> Result<CexTradeMap, Report>

source§

fn try_fetch_address_metadata( &self, address: Address, ) -> Result<Option<AddressMetadata>, Report>

source§

fn fetch_all_address_metadata( &self, ) -> Result<Vec<(Address, AddressMetadata)>, Report>

source§

fn get_dex_quotes(&self, block: u64) -> Result<DexQuotes, Report>

source§

fn try_fetch_token_info( &self, address: Address, ) -> Result<TokenInfoWithAddress, Report>

source§

fn try_fetch_token_decimals(&self, address: Address) -> Result<u8, Report>

source§

fn try_fetch_mev_blocks( &self, start_block: Option<u64>, end_block: u64, ) -> Result<Vec<MevBlockWithClassified>, Report>

source§

fn fetch_all_mev_blocks( &self, start_block: Option<u64>, ) -> Result<Vec<MevBlockWithClassified>, Report>

source§

fn protocols_created_before( &self, start_block: u64, ) -> Result<HashMap<(Address, Protocol), Pair, RandomState>, Report>

source§

fn protocols_created_range( &self, start_block: u64, end_block: u64, ) -> Result<HashMap<u64, Vec<(Address, Protocol, Pair)>, RandomState>, Report>

source§

fn get_protocol(&self, address: Address) -> Result<Protocol, Report>

source§

fn get_protocol_details(&self, address: Address) -> Result<ProtocolInfo, Report>

source§

fn get_protocol_details_sorted( &self, address: Address, ) -> Result<ProtocolInfo, Report>

source§

fn load_trace(&self, block_num: u64) -> Result<Vec<TxTrace>, Report>

source§

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

source§

fn get_most_recent_block(&self) -> Result<u64, Report>

source§

fn get_metadata_no_dex_price( &self, block_num: u64, quote_asset: Address, ) -> Result<Metadata, Report>

source§

fn has_dex_quotes(&self, block_num: u64) -> Result<bool, Report>

source§

fn try_fetch_searcher_info( &self, eoa_address: Address, contract_address: Option<Address>, ) -> Result<(Option<SearcherInfo>, Option<SearcherInfo>), Report>

source§

fn try_fetch_searcher_infos( &self, eoa: Vec<Address>, contract: Vec<Address>, ) -> Result<HashMap<Address, (SearcherInfo, Option<SearcherInfo>), RandomState>, Report>

source§

fn try_fetch_address_metadatas( &self, addresses: Vec<Address>, ) -> Result<HashMap<Address, AddressMetadata, RandomState>, Report>

source§

fn fetch_all_searcher_info( &self, ) -> Result<(Vec<(Address, SearcherInfo)>, Vec<(Address, SearcherInfo)>), Report>

source§

fn fetch_all_searcher_eoa_info( &self, ) -> Result<Vec<(Address, SearcherInfo)>, Report>

source§

fn fetch_all_searcher_contract_info( &self, ) -> Result<Vec<(Address, SearcherInfo)>, Report>

source§

fn try_fetch_searcher_eoa_info( &self, searcher_eoa: Address, ) -> Result<Option<SearcherInfo>, Report>

source§

fn try_fetch_searcher_contract_info( &self, searcher_contract: Address, ) -> Result<Option<SearcherInfo>, Report>

source§

fn try_fetch_searcher_eoa_infos( &self, searcher_eoa: Vec<Address>, ) -> Result<HashMap<Address, SearcherInfo, RandomState>, Report>

source§

fn try_fetch_searcher_contract_infos( &self, searcher_contract: Vec<Address>, ) -> Result<HashMap<Address, SearcherInfo, RandomState>, Report>

source§

fn try_fetch_builder_info( &self, builder_coinbase_addr: Address, ) -> Result<Option<BuilderInfo>, Report>

source§

fn fetch_all_builder_info(&self) -> Result<Vec<(Address, BuilderInfo)>, Report>

source§

fn get_metadata( &self, block_num: u64, quote_asset: Address, ) -> Result<Metadata, Report>

source§

fn get_cex_trades(&self, block: u64) -> Result<CexTradeMap, Report>

source§

fn try_fetch_address_metadata( &self, address: Address, ) -> Result<Option<AddressMetadata>, Report>

source§

fn fetch_all_address_metadata( &self, ) -> Result<Vec<(Address, AddressMetadata)>, Report>

source§

fn get_dex_quotes(&self, block: u64) -> Result<DexQuotes, Report>

source§

fn try_fetch_token_info( &self, address: Address, ) -> Result<TokenInfoWithAddress, Report>

source§

fn try_fetch_token_decimals(&self, address: Address) -> Result<u8, Report>

source§

fn try_fetch_mev_blocks( &self, start_block: Option<u64>, end_block: u64, ) -> Result<Vec<MevBlockWithClassified>, Report>

source§

fn fetch_all_mev_blocks( &self, start_block: Option<u64>, ) -> Result<Vec<MevBlockWithClassified>, Report>

source§

fn protocols_created_before( &self, start_block: u64, ) -> Result<HashMap<(Address, Protocol), Pair, RandomState>, Report>

source§

fn protocols_created_range( &self, start_block: u64, end_block: u64, ) -> Result<HashMap<u64, Vec<(Address, Protocol, Pair)>, RandomState>, Report>

source§

fn get_protocol(&self, address: Address) -> Result<Protocol, Report>

source§

fn get_protocol_details(&self, address: Address) -> Result<ProtocolInfo, Report>

source§

fn get_protocol_details_sorted( &self, address: Address, ) -> Result<ProtocolInfo, Report>

source§

fn load_trace(&self, block_num: u64) -> Result<Vec<TxTrace>, Report>

Implementors§