mirror of
https://github.com/pezkuwichain/revive-differential-tests.git
synced 2026-04-22 17:17:58 +00:00
90fb89adc0
* Add a barebones common crate * Refactor some code into the common crate * Add a `ResolverApi` interface. This commit adds a `ResolverApi` trait to the `format` crate that can be implemented by any type that can act as a resolver. A resolver is able to provide information on the chain state. This chain state could be fresh or it could be cached (which is something that we will do in a future PR). This cleans up our crate graph so that `format` is not depending on the node interactions crate for the `EthereumNode` trait. * Cleanup the blocking executor
31 lines
1.4 KiB
Rust
31 lines
1.4 KiB
Rust
use alloy::eips::BlockNumberOrTag;
|
|
use alloy::primitives::{Address, BlockHash, BlockNumber, BlockTimestamp, ChainId, U256};
|
|
use anyhow::Result;
|
|
|
|
/// A trait of the interface are required to implement to be used by the resolution logic that this
|
|
/// crate implements to go from string calldata and into the bytes calldata.
|
|
pub trait ResolverApi {
|
|
/// Returns the ID of the chain that the node is on.
|
|
fn chain_id(&self) -> Result<ChainId>;
|
|
|
|
// TODO: This is currently a u128 due to Kitchensink needing more than 64 bits for its gas limit
|
|
// when we implement the changes to the gas we need to adjust this to be a u64.
|
|
/// Returns the gas limit of the specified block.
|
|
fn block_gas_limit(&self, number: BlockNumberOrTag) -> Result<u128>;
|
|
|
|
/// Returns the coinbase of the specified block.
|
|
fn block_coinbase(&self, number: BlockNumberOrTag) -> Result<Address>;
|
|
|
|
/// Returns the difficulty of the specified block.
|
|
fn block_difficulty(&self, number: BlockNumberOrTag) -> Result<U256>;
|
|
|
|
/// Returns the hash of the specified block.
|
|
fn block_hash(&self, number: BlockNumberOrTag) -> Result<BlockHash>;
|
|
|
|
/// Returns the timestamp of the specified block,
|
|
fn block_timestamp(&self, number: BlockNumberOrTag) -> Result<BlockTimestamp>;
|
|
|
|
/// Returns the number of the last block.
|
|
fn last_block_number(&self) -> Result<BlockNumber>;
|
|
}
|