Trait fc_rpc::StorageOverride[][src]

pub trait StorageOverride<Block: BlockT> {
    fn account_code_at(
        &self,
        block: &BlockId<Block>,
        address: H160
    ) -> Option<Vec<u8>>;
fn storage_at(
        &self,
        block: &BlockId<Block>,
        address: H160,
        index: U256
    ) -> Option<H256>;
fn current_block(&self, block: &BlockId<Block>) -> Option<EthereumBlock>;
fn current_receipts(&self, block: &BlockId<Block>) -> Option<Vec<Receipt>>;
fn current_transaction_statuses(
        &self,
        block: &BlockId<Block>
    ) -> Option<Vec<TransactionStatus>>; }

Something that can fetch Ethereum-related data. This trait is quite similar to the runtime API, and indeed oe implementation of it uses the runtime API. Having this trait is useful because it allows optimized implementations that fetch data from a State Backend with some assumptions about pallet-ethereum’s storage schema. Using such an optimized implementation avoids spawning a runtime and the overhead associated with it.

Required methods

fn account_code_at(
    &self,
    block: &BlockId<Block>,
    address: H160
) -> Option<Vec<u8>>
[src]

For a given account address, returns pallet_evm::AccountCodes.

fn storage_at(
    &self,
    block: &BlockId<Block>,
    address: H160,
    index: U256
) -> Option<H256>
[src]

For a given account address and index, returns pallet_evm::AccountStorages.

fn current_block(&self, block: &BlockId<Block>) -> Option<EthereumBlock>[src]

Return the current block.

fn current_receipts(&self, block: &BlockId<Block>) -> Option<Vec<Receipt>>[src]

Return the current receipt.

fn current_transaction_statuses(
    &self,
    block: &BlockId<Block>
) -> Option<Vec<TransactionStatus>>
[src]

Return the current transaction status.

Loading content...

Implementors

impl<Block, C, BE> StorageOverride<Block> for SchemaV1Override<Block, C, BE> where
    C: StorageProvider<Block, BE>,
    C: AuxStore,
    C: HeaderBackend<Block>,
    C: HeaderMetadata<Block, Error = BlockChainError> + 'static,
    BE: Backend<Block> + 'static,
    BE::State: StateBackend<BlakeTwo256>,
    Block: BlockT<Hash = H256> + Send + Sync + 'static,
    C: Send + Sync + 'static, 
[src]

fn account_code_at(
    &self,
    block: &BlockId<Block>,
    address: H160
) -> Option<Vec<u8>>
[src]

For a given account address, returns pallet_evm::AccountCodes.

fn storage_at(
    &self,
    block: &BlockId<Block>,
    address: H160,
    index: U256
) -> Option<H256>
[src]

For a given account address and index, returns pallet_evm::AccountStorages.

fn current_block(&self, block: &BlockId<Block>) -> Option<EthereumBlock>[src]

Return the current block.

fn current_receipts(&self, block: &BlockId<Block>) -> Option<Vec<Receipt>>[src]

Return the current receipt.

fn current_transaction_statuses(
    &self,
    block: &BlockId<Block>
) -> Option<Vec<TransactionStatus>>
[src]

Return the current transaction status.

Loading content...