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§
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>
sourcefn get_protocol_details_sorted(
&self,
address: Address,
) -> Result<ProtocolInfo, Report>
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