Trait ethcore::client::BlockChainClient
[−]
[src]
pub trait BlockChainClient: Sync + Send + AccountData + BlockChain + CallContract + RegistryInfo + ImportBlock + IoClient { fn block_number(&self, id: BlockId) -> Option<BlockNumber>; fn block_body(&self, id: BlockId) -> Option<Body>; fn block_status(&self, id: BlockId) -> BlockStatus; fn block_total_difficulty(&self, id: BlockId) -> Option<U256>; fn storage_root(&self, address: &Address, id: BlockId) -> Option<H256>; fn block_hash(&self, id: BlockId) -> Option<H256>; fn code(
&self,
address: &Address,
state: StateOrBlock
) -> Option<Option<Bytes>>; fn storage_at(
&self,
address: &Address,
position: &H256,
state: StateOrBlock
) -> Option<H256>; fn list_accounts(
&self,
id: BlockId,
after: Option<&Address>,
count: u64
) -> Option<Vec<Address>>; fn list_storage(
&self,
id: BlockId,
account: &Address,
after: Option<&H256>,
count: u64
) -> Option<Vec<H256>>; fn transaction(&self, id: TransactionId) -> Option<LocalizedTransaction>; fn uncle(&self, id: UncleId) -> Option<Header>; fn transaction_receipt(&self, id: TransactionId) -> Option<LocalizedReceipt>; fn tree_route(&self, from: &H256, to: &H256) -> Option<TreeRoute>; fn find_uncles(&self, hash: &H256) -> Option<Vec<H256>>; fn state_data(&self, hash: &H256) -> Option<Bytes>; fn block_receipts(&self, hash: &H256) -> Option<Bytes>; fn queue_info(&self) -> BlockQueueInfo; fn clear_queue(&self); fn additional_params(&self) -> BTreeMap<String, String>; fn logs(&self, filter: Filter) -> Vec<LocalizedLogEntry>; fn replay(
&self,
t: TransactionId,
analytics: CallAnalytics
) -> Result<Executed, CallError>; fn replay_block_transactions(
&self,
block: BlockId,
analytics: CallAnalytics
) -> Result<Box<Iterator<Item = Executed>>, CallError>; fn filter_traces(&self, filter: TraceFilter) -> Option<Vec<LocalizedTrace>>; fn trace(&self, trace: TraceId) -> Option<LocalizedTrace>; fn transaction_traces(
&self,
trace: TransactionId
) -> Option<Vec<LocalizedTrace>>; fn block_traces(&self, trace: BlockId) -> Option<Vec<LocalizedTrace>>; fn last_hashes(&self) -> LastHashes; fn ready_transactions(
&self,
max_len: usize
) -> Vec<Arc<VerifiedTransaction>>; fn signing_chain_id(&self) -> Option<u64>; fn mode(&self) -> Mode; fn set_mode(&self, mode: Mode); fn spec_name(&self) -> String; fn set_spec_name(&self, spec_name: String); fn disable(&self); fn block_extra_info(&self, id: BlockId) -> Option<BTreeMap<String, String>>; fn uncle_extra_info(&self, id: UncleId) -> Option<BTreeMap<String, String>>; fn pruning_info(&self) -> PruningInfo; fn transact_contract(
&self,
address: Address,
data: Bytes
) -> Result<(), Error>; fn registrar_address(&self) -> Option<Address>; fn eip86_transition(&self) -> u64; fn latest_code(&self, address: &Address) -> Option<Bytes> { ... } fn latest_storage_at(&self, address: &Address, position: &H256) -> H256 { ... } fn gas_price_corpus(&self, sample_size: usize) -> Corpus<U256> { ... } }
Blockchain database client. Owns and manages a blockchain and a block queue.
Required Methods
fn block_number(&self, id: BlockId) -> Option<BlockNumber>
Look up the block number for the given block ID.
fn block_body(&self, id: BlockId) -> Option<Body>
Get raw block body data by block id. Block body is an RLP list of two items: uncles and transactions.
fn block_status(&self, id: BlockId) -> BlockStatus
Get block status by block header hash.
fn block_total_difficulty(&self, id: BlockId) -> Option<U256>
Get block total difficulty.
fn storage_root(&self, address: &Address, id: BlockId) -> Option<H256>
Attempt to get address storage root at given block. May not fail on BlockId::Latest.
fn block_hash(&self, id: BlockId) -> Option<H256>
Get block hash.
fn code(&self, address: &Address, state: StateOrBlock) -> Option<Option<Bytes>>
Get address code at given block's state.
fn storage_at(
&self,
address: &Address,
position: &H256,
state: StateOrBlock
) -> Option<H256>
&self,
address: &Address,
position: &H256,
state: StateOrBlock
) -> Option<H256>
Get address code hash at given block's state. Get value of the storage at given position at the given block's state.
May not return None if given BlockId::Latest. Returns None if and only if the block's root hash has been pruned from the DB.
fn list_accounts(
&self,
id: BlockId,
after: Option<&Address>,
count: u64
) -> Option<Vec<Address>>
&self,
id: BlockId,
after: Option<&Address>,
count: u64
) -> Option<Vec<Address>>
Get a list of all accounts in the block id
, if fat DB is in operation, otherwise None
.
If after
is set the list starts with the following item.
fn list_storage(
&self,
id: BlockId,
account: &Address,
after: Option<&H256>,
count: u64
) -> Option<Vec<H256>>
&self,
id: BlockId,
account: &Address,
after: Option<&H256>,
count: u64
) -> Option<Vec<H256>>
Get a list of all storage keys in the block id
, if fat DB is in operation, otherwise None
.
If after
is set the list starts with the following item.
fn transaction(&self, id: TransactionId) -> Option<LocalizedTransaction>
Get transaction with given hash.
fn uncle(&self, id: UncleId) -> Option<Header>
Get uncle with given id.
fn transaction_receipt(&self, id: TransactionId) -> Option<LocalizedReceipt>
Get transaction receipt with given hash.
fn tree_route(&self, from: &H256, to: &H256) -> Option<TreeRoute>
Get a tree route between from
and to
.
See BlockChain::tree_route
.
fn find_uncles(&self, hash: &H256) -> Option<Vec<H256>>
Get all possible uncle hashes for a block.
fn state_data(&self, hash: &H256) -> Option<Bytes>
Get latest state node
fn block_receipts(&self, hash: &H256) -> Option<Bytes>
Get raw block receipts data by block header hash.
fn queue_info(&self) -> BlockQueueInfo
Get block queue information.
fn clear_queue(&self)
Clear block queue and abort all import activity.
fn additional_params(&self) -> BTreeMap<String, String>
Get the registrar address, if it exists.
fn logs(&self, filter: Filter) -> Vec<LocalizedLogEntry>
Returns logs matching given filter.
fn replay(
&self,
t: TransactionId,
analytics: CallAnalytics
) -> Result<Executed, CallError>
&self,
t: TransactionId,
analytics: CallAnalytics
) -> Result<Executed, CallError>
Replays a given transaction for inspection.
fn replay_block_transactions(
&self,
block: BlockId,
analytics: CallAnalytics
) -> Result<Box<Iterator<Item = Executed>>, CallError>
&self,
block: BlockId,
analytics: CallAnalytics
) -> Result<Box<Iterator<Item = Executed>>, CallError>
Replays all the transactions in a given block for inspection.
fn filter_traces(&self, filter: TraceFilter) -> Option<Vec<LocalizedTrace>>
Returns traces matching given filter.
fn trace(&self, trace: TraceId) -> Option<LocalizedTrace>
Returns trace with given id.
fn transaction_traces(
&self,
trace: TransactionId
) -> Option<Vec<LocalizedTrace>>
&self,
trace: TransactionId
) -> Option<Vec<LocalizedTrace>>
Returns traces created by transaction.
fn block_traces(&self, trace: BlockId) -> Option<Vec<LocalizedTrace>>
Returns traces created by transaction from block.
fn last_hashes(&self) -> LastHashes
Get last hashes starting from best block.
fn ready_transactions(&self, max_len: usize) -> Vec<Arc<VerifiedTransaction>>
List all transactions that are allowed into the next block.
fn signing_chain_id(&self) -> Option<u64>
Get the preferred chain ID to sign on
fn mode(&self) -> Mode
Get the mode.
fn set_mode(&self, mode: Mode)
Set the mode.
fn spec_name(&self) -> String
Get the chain spec name.
fn set_spec_name(&self, spec_name: String)
Set the chain via a spec name.
fn disable(&self)
Disable the client from importing blocks. This cannot be undone in this session and indicates that a subsystem has reason to believe this executable incapable of syncing the chain.
fn block_extra_info(&self, id: BlockId) -> Option<BTreeMap<String, String>>
Returns engine-related extra info for BlockId
.
fn uncle_extra_info(&self, id: UncleId) -> Option<BTreeMap<String, String>>
Returns engine-related extra info for UncleId
.
fn pruning_info(&self) -> PruningInfo
Returns information about pruning/data availability.
fn transact_contract(&self, address: Address, data: Bytes) -> Result<(), Error>
Schedule state-altering transaction to be executed on the next pending block.
fn registrar_address(&self) -> Option<Address>
Get the address of the registry itself.
fn eip86_transition(&self) -> u64
Get the EIP-86 transition block number.
Provided Methods
fn latest_code(&self, address: &Address) -> Option<Bytes>
Get address code at the latest block's state.
fn latest_storage_at(&self, address: &Address, position: &H256) -> H256
Get value of the storage at given position at the latest block's state.
fn gas_price_corpus(&self, sample_size: usize) -> Corpus<U256>
Sorted list of transaction gas prices from at least last sample_size blocks.
Implementors
impl BlockChainClient for Client
impl BlockChainClient for TestBlockChainClient