Trait fc_rpc::EthApiServer
source · pub trait EthApiServer: Sized + Send + Sync + 'static {
Show 36 methods
// Required methods
fn protocol_version(&self) -> Result<u64, ErrorObject<'static>>;
fn syncing<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<SyncStatus, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait,
Self: 'async_trait;
fn author(&self) -> Result<H160, ErrorObject<'static>>;
fn accounts(&self) -> Result<Vec<H160>, ErrorObject<'static>>;
fn block_number(&self) -> Result<U256, ErrorObject<'static>>;
fn chain_id(&self) -> Result<Option<U64>, ErrorObject<'static>>;
fn block_by_hash<'life0, 'async_trait>(
&'life0 self,
hash: H256,
full: bool
) -> Pin<Box<dyn Future<Output = Result<Option<Rich<Block>>, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait,
Self: 'async_trait;
fn block_by_number<'life0, 'async_trait>(
&'life0 self,
number_or_hash: BlockNumberOrHash,
full: bool
) -> Pin<Box<dyn Future<Output = Result<Option<Rich<Block>>, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait,
Self: 'async_trait;
fn block_transaction_count_by_hash<'life0, 'async_trait>(
&'life0 self,
hash: H256
) -> Pin<Box<dyn Future<Output = Result<Option<U256>, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait,
Self: 'async_trait;
fn block_transaction_count_by_number<'life0, 'async_trait>(
&'life0 self,
number_or_hash: BlockNumberOrHash
) -> Pin<Box<dyn Future<Output = Result<Option<U256>, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait,
Self: 'async_trait;
fn block_transaction_receipts<'life0, 'async_trait>(
&'life0 self,
number_or_hash: BlockNumberOrHash
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<Receipt>>, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait,
Self: 'async_trait;
fn block_uncles_count_by_hash(
&self,
hash: H256
) -> Result<U256, ErrorObject<'static>>;
fn block_uncles_count_by_number(
&self,
number_or_hash: BlockNumberOrHash
) -> Result<U256, ErrorObject<'static>>;
fn uncle_by_block_hash_and_index(
&self,
hash: H256,
index: Index
) -> Result<Option<Rich<Block>>, ErrorObject<'static>>;
fn uncle_by_block_number_and_index(
&self,
number_or_hash: BlockNumberOrHash,
index: Index
) -> Result<Option<Rich<Block>>, ErrorObject<'static>>;
fn transaction_by_hash<'life0, 'async_trait>(
&'life0 self,
hash: H256
) -> Pin<Box<dyn Future<Output = Result<Option<Transaction>, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait,
Self: 'async_trait;
fn transaction_by_block_hash_and_index<'life0, 'async_trait>(
&'life0 self,
hash: H256,
index: Index
) -> Pin<Box<dyn Future<Output = Result<Option<Transaction>, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait,
Self: 'async_trait;
fn transaction_by_block_number_and_index<'life0, 'async_trait>(
&'life0 self,
number_or_hash: BlockNumberOrHash,
index: Index
) -> Pin<Box<dyn Future<Output = Result<Option<Transaction>, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait,
Self: 'async_trait;
fn transaction_receipt<'life0, 'async_trait>(
&'life0 self,
hash: H256
) -> Pin<Box<dyn Future<Output = Result<Option<Receipt>, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait,
Self: 'async_trait;
fn balance<'life0, 'async_trait>(
&'life0 self,
address: H160,
number_or_hash: Option<BlockNumberOrHash>
) -> Pin<Box<dyn Future<Output = Result<U256, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait,
Self: 'async_trait;
fn storage_at<'life0, 'async_trait>(
&'life0 self,
address: H160,
index: U256,
number_or_hash: Option<BlockNumberOrHash>
) -> Pin<Box<dyn Future<Output = Result<H256, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait,
Self: 'async_trait;
fn transaction_count<'life0, 'async_trait>(
&'life0 self,
address: H160,
number_or_hash: Option<BlockNumberOrHash>
) -> Pin<Box<dyn Future<Output = Result<U256, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait,
Self: 'async_trait;
fn code_at<'life0, 'async_trait>(
&'life0 self,
address: H160,
number_or_hash: Option<BlockNumberOrHash>
) -> Pin<Box<dyn Future<Output = Result<Bytes, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait,
Self: 'async_trait;
fn call<'life0, 'async_trait>(
&'life0 self,
request: TransactionRequest,
number_or_hash: Option<BlockNumberOrHash>,
state_overrides: Option<BTreeMap<H160, CallStateOverride>>
) -> Pin<Box<dyn Future<Output = Result<Bytes, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait,
Self: 'async_trait;
fn estimate_gas<'life0, 'async_trait>(
&'life0 self,
request: TransactionRequest,
number_or_hash: Option<BlockNumberOrHash>
) -> Pin<Box<dyn Future<Output = Result<U256, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait,
Self: 'async_trait;
fn gas_price(&self) -> Result<U256, ErrorObject<'static>>;
fn fee_history<'life0, 'async_trait>(
&'life0 self,
block_count: U256,
newest_block: BlockNumberOrHash,
reward_percentiles: Option<Vec<f64>>
) -> Pin<Box<dyn Future<Output = Result<FeeHistory, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait,
Self: 'async_trait;
fn max_priority_fee_per_gas(&self) -> Result<U256, ErrorObject<'static>>;
fn is_mining(&self) -> Result<bool, ErrorObject<'static>>;
fn hashrate(&self) -> Result<U256, ErrorObject<'static>>;
fn work(&self) -> Result<Work, ErrorObject<'static>>;
fn submit_hashrate(
&self,
hashrate: U256,
id: H256
) -> Result<bool, ErrorObject<'static>>;
fn submit_work(
&self,
nonce: H64,
pow_hash: H256,
mix_digest: H256
) -> Result<bool, ErrorObject<'static>>;
fn send_transaction<'life0, 'async_trait>(
&'life0 self,
request: TransactionRequest
) -> Pin<Box<dyn Future<Output = Result<H256, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait,
Self: 'async_trait;
fn send_raw_transaction<'life0, 'async_trait>(
&'life0 self,
bytes: Bytes
) -> Pin<Box<dyn Future<Output = Result<H256, ErrorObject<'static>>> + Send + 'async_trait>>
where 'life0: 'async_trait,
Self: 'async_trait;
// Provided method
fn into_rpc(self) -> RpcModule<Self> { ... }
}
Expand description
Server trait implementation for the EthApi
RPC API.
Required Methods§
sourcefn protocol_version(&self) -> Result<u64, ErrorObject<'static>>
fn protocol_version(&self) -> Result<u64, ErrorObject<'static>>
Returns protocol version encoded as a string (quotes are necessary).
sourcefn syncing<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<SyncStatus, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn syncing<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<SyncStatus, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Returns an object with data about the sync status or false. (wtf?)
Returns block author.
sourcefn block_number(&self) -> Result<U256, ErrorObject<'static>>
fn block_number(&self) -> Result<U256, ErrorObject<'static>>
Returns highest block number.
sourcefn chain_id(&self) -> Result<Option<U64>, ErrorObject<'static>>
fn chain_id(&self) -> Result<Option<U64>, ErrorObject<'static>>
Returns the chain ID used for transaction signing at the current best block. None is returned if not available.
sourcefn block_by_hash<'life0, 'async_trait>(
&'life0 self,
hash: H256,
full: bool
) -> Pin<Box<dyn Future<Output = Result<Option<Rich<Block>>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn block_by_hash<'life0, 'async_trait>(
&'life0 self,
hash: H256,
full: bool
) -> Pin<Box<dyn Future<Output = Result<Option<Rich<Block>>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Returns block with given hash.
sourcefn block_by_number<'life0, 'async_trait>(
&'life0 self,
number_or_hash: BlockNumberOrHash,
full: bool
) -> Pin<Box<dyn Future<Output = Result<Option<Rich<Block>>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn block_by_number<'life0, 'async_trait>(
&'life0 self,
number_or_hash: BlockNumberOrHash,
full: bool
) -> Pin<Box<dyn Future<Output = Result<Option<Rich<Block>>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Returns block with given number.
sourcefn block_transaction_count_by_hash<'life0, 'async_trait>(
&'life0 self,
hash: H256
) -> Pin<Box<dyn Future<Output = Result<Option<U256>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn block_transaction_count_by_hash<'life0, 'async_trait>(
&'life0 self,
hash: H256
) -> Pin<Box<dyn Future<Output = Result<Option<U256>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Returns the number of transactions in a block with given hash.
sourcefn block_transaction_count_by_number<'life0, 'async_trait>(
&'life0 self,
number_or_hash: BlockNumberOrHash
) -> Pin<Box<dyn Future<Output = Result<Option<U256>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn block_transaction_count_by_number<'life0, 'async_trait>(
&'life0 self,
number_or_hash: BlockNumberOrHash
) -> Pin<Box<dyn Future<Output = Result<Option<U256>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Returns the number of transactions in a block with given block number.
sourcefn block_transaction_receipts<'life0, 'async_trait>(
&'life0 self,
number_or_hash: BlockNumberOrHash
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<Receipt>>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn block_transaction_receipts<'life0, 'async_trait>(
&'life0 self,
number_or_hash: BlockNumberOrHash
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<Receipt>>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Returns the receipts of a block by number or hash.
sourcefn block_uncles_count_by_hash(
&self,
hash: H256
) -> Result<U256, ErrorObject<'static>>
fn block_uncles_count_by_hash( &self, hash: H256 ) -> Result<U256, ErrorObject<'static>>
Returns the number of uncles in a block with given hash.
sourcefn block_uncles_count_by_number(
&self,
number_or_hash: BlockNumberOrHash
) -> Result<U256, ErrorObject<'static>>
fn block_uncles_count_by_number( &self, number_or_hash: BlockNumberOrHash ) -> Result<U256, ErrorObject<'static>>
Returns the number of uncles in a block with given block number.
sourcefn uncle_by_block_hash_and_index(
&self,
hash: H256,
index: Index
) -> Result<Option<Rich<Block>>, ErrorObject<'static>>
fn uncle_by_block_hash_and_index( &self, hash: H256, index: Index ) -> Result<Option<Rich<Block>>, ErrorObject<'static>>
Returns an uncles at given block and index.
sourcefn uncle_by_block_number_and_index(
&self,
number_or_hash: BlockNumberOrHash,
index: Index
) -> Result<Option<Rich<Block>>, ErrorObject<'static>>
fn uncle_by_block_number_and_index( &self, number_or_hash: BlockNumberOrHash, index: Index ) -> Result<Option<Rich<Block>>, ErrorObject<'static>>
Returns an uncles at given block and index.
sourcefn transaction_by_hash<'life0, 'async_trait>(
&'life0 self,
hash: H256
) -> Pin<Box<dyn Future<Output = Result<Option<Transaction>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn transaction_by_hash<'life0, 'async_trait>(
&'life0 self,
hash: H256
) -> Pin<Box<dyn Future<Output = Result<Option<Transaction>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Get transaction by its hash.
sourcefn transaction_by_block_hash_and_index<'life0, 'async_trait>(
&'life0 self,
hash: H256,
index: Index
) -> Pin<Box<dyn Future<Output = Result<Option<Transaction>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn transaction_by_block_hash_and_index<'life0, 'async_trait>(
&'life0 self,
hash: H256,
index: Index
) -> Pin<Box<dyn Future<Output = Result<Option<Transaction>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Returns transaction at given block hash and index.
sourcefn transaction_by_block_number_and_index<'life0, 'async_trait>(
&'life0 self,
number_or_hash: BlockNumberOrHash,
index: Index
) -> Pin<Box<dyn Future<Output = Result<Option<Transaction>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn transaction_by_block_number_and_index<'life0, 'async_trait>(
&'life0 self,
number_or_hash: BlockNumberOrHash,
index: Index
) -> Pin<Box<dyn Future<Output = Result<Option<Transaction>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Returns transaction by given block number and index.
sourcefn transaction_receipt<'life0, 'async_trait>(
&'life0 self,
hash: H256
) -> Pin<Box<dyn Future<Output = Result<Option<Receipt>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn transaction_receipt<'life0, 'async_trait>(
&'life0 self,
hash: H256
) -> Pin<Box<dyn Future<Output = Result<Option<Receipt>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Returns transaction receipt by transaction hash.
sourcefn balance<'life0, 'async_trait>(
&'life0 self,
address: H160,
number_or_hash: Option<BlockNumberOrHash>
) -> Pin<Box<dyn Future<Output = Result<U256, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn balance<'life0, 'async_trait>(
&'life0 self,
address: H160,
number_or_hash: Option<BlockNumberOrHash>
) -> Pin<Box<dyn Future<Output = Result<U256, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Returns balance of the given account.
sourcefn storage_at<'life0, 'async_trait>(
&'life0 self,
address: H160,
index: U256,
number_or_hash: Option<BlockNumberOrHash>
) -> Pin<Box<dyn Future<Output = Result<H256, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn storage_at<'life0, 'async_trait>(
&'life0 self,
address: H160,
index: U256,
number_or_hash: Option<BlockNumberOrHash>
) -> Pin<Box<dyn Future<Output = Result<H256, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Returns content of the storage at given address.
sourcefn transaction_count<'life0, 'async_trait>(
&'life0 self,
address: H160,
number_or_hash: Option<BlockNumberOrHash>
) -> Pin<Box<dyn Future<Output = Result<U256, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn transaction_count<'life0, 'async_trait>(
&'life0 self,
address: H160,
number_or_hash: Option<BlockNumberOrHash>
) -> Pin<Box<dyn Future<Output = Result<U256, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Returns the number of transactions sent from given address at given time (block number).
sourcefn code_at<'life0, 'async_trait>(
&'life0 self,
address: H160,
number_or_hash: Option<BlockNumberOrHash>
) -> Pin<Box<dyn Future<Output = Result<Bytes, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn code_at<'life0, 'async_trait>(
&'life0 self,
address: H160,
number_or_hash: Option<BlockNumberOrHash>
) -> Pin<Box<dyn Future<Output = Result<Bytes, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Returns the code at given address at given time (block number).
sourcefn call<'life0, 'async_trait>(
&'life0 self,
request: TransactionRequest,
number_or_hash: Option<BlockNumberOrHash>,
state_overrides: Option<BTreeMap<H160, CallStateOverride>>
) -> Pin<Box<dyn Future<Output = Result<Bytes, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn call<'life0, 'async_trait>(
&'life0 self,
request: TransactionRequest,
number_or_hash: Option<BlockNumberOrHash>,
state_overrides: Option<BTreeMap<H160, CallStateOverride>>
) -> Pin<Box<dyn Future<Output = Result<Bytes, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Call contract, returning the output data.
sourcefn estimate_gas<'life0, 'async_trait>(
&'life0 self,
request: TransactionRequest,
number_or_hash: Option<BlockNumberOrHash>
) -> Pin<Box<dyn Future<Output = Result<U256, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn estimate_gas<'life0, 'async_trait>(
&'life0 self,
request: TransactionRequest,
number_or_hash: Option<BlockNumberOrHash>
) -> Pin<Box<dyn Future<Output = Result<U256, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Estimate gas needed for execution of given contract.
sourcefn fee_history<'life0, 'async_trait>(
&'life0 self,
block_count: U256,
newest_block: BlockNumberOrHash,
reward_percentiles: Option<Vec<f64>>
) -> Pin<Box<dyn Future<Output = Result<FeeHistory, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn fee_history<'life0, 'async_trait>(
&'life0 self,
block_count: U256,
newest_block: BlockNumberOrHash,
reward_percentiles: Option<Vec<f64>>
) -> Pin<Box<dyn Future<Output = Result<FeeHistory, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Introduced in EIP-1159 for getting information on the appropriate priority fee to use.
sourcefn max_priority_fee_per_gas(&self) -> Result<U256, ErrorObject<'static>>
fn max_priority_fee_per_gas(&self) -> Result<U256, ErrorObject<'static>>
Introduced in EIP-1159, a Geth-specific and simplified priority fee oracle. Leverages the already existing fee history cache.
sourcefn is_mining(&self) -> Result<bool, ErrorObject<'static>>
fn is_mining(&self) -> Result<bool, ErrorObject<'static>>
Returns true if client is actively mining new blocks.
sourcefn hashrate(&self) -> Result<U256, ErrorObject<'static>>
fn hashrate(&self) -> Result<U256, ErrorObject<'static>>
Returns the number of hashes per second that the node is mining with.
sourcefn work(&self) -> Result<Work, ErrorObject<'static>>
fn work(&self) -> Result<Work, ErrorObject<'static>>
Returns the hash of the current block, the seedHash, and the boundary condition to be met.
sourcefn submit_hashrate(
&self,
hashrate: U256,
id: H256
) -> Result<bool, ErrorObject<'static>>
fn submit_hashrate( &self, hashrate: U256, id: H256 ) -> Result<bool, ErrorObject<'static>>
Used for submitting mining hashrate.
sourcefn submit_work(
&self,
nonce: H64,
pow_hash: H256,
mix_digest: H256
) -> Result<bool, ErrorObject<'static>>
fn submit_work( &self, nonce: H64, pow_hash: H256, mix_digest: H256 ) -> Result<bool, ErrorObject<'static>>
Used for submitting a proof-of-work solution.
sourcefn send_transaction<'life0, 'async_trait>(
&'life0 self,
request: TransactionRequest
) -> Pin<Box<dyn Future<Output = Result<H256, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn send_transaction<'life0, 'async_trait>(
&'life0 self,
request: TransactionRequest
) -> Pin<Box<dyn Future<Output = Result<H256, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Sends transaction; will block waiting for signer to return the transaction hash.