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§

source

fn protocol_version(&self) -> Result<u64, ErrorObject<'static>>

Returns protocol version encoded as a string (quotes are necessary).

source

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?)

source

fn author(&self) -> Result<H160, ErrorObject<'static>>

Returns block author.

source

fn accounts(&self) -> Result<Vec<H160>, ErrorObject<'static>>

Returns accounts list.

source

fn block_number(&self) -> Result<U256, ErrorObject<'static>>

Returns highest block number.

source

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.

source

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.

source

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.

source

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.

source

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.

source

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.

source

fn block_uncles_count_by_hash( &self, hash: H256 ) -> Result<U256, ErrorObject<'static>>

Returns the number of uncles in a block with given hash.

source

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.

source

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.

source

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.

source

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.

source

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.

source

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.

source

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.

source

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.

source

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.

source

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).

source

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).

source

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.

source

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.

source

fn gas_price(&self) -> Result<U256, ErrorObject<'static>>

Returns current gas_price.

source

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.

source

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.

source

fn is_mining(&self) -> Result<bool, ErrorObject<'static>>

Returns true if client is actively mining new blocks.

source

fn hashrate(&self) -> Result<U256, ErrorObject<'static>>

Returns the number of hashes per second that the node is mining with.

source

fn work(&self) -> Result<Work, ErrorObject<'static>>

Returns the hash of the current block, the seedHash, and the boundary condition to be met.

source

fn submit_hashrate( &self, hashrate: U256, id: H256 ) -> Result<bool, ErrorObject<'static>>

Used for submitting mining hashrate.

source

fn submit_work( &self, nonce: H64, pow_hash: H256, mix_digest: H256 ) -> Result<bool, ErrorObject<'static>>

Used for submitting a proof-of-work solution.

source

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.

source

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,

Sends signed transaction, returning its hash.

Provided Methods§

source

fn into_rpc(self) -> RpcModule<Self>

Collects all the methods and subscriptions defined in the trait and adds them into a single RpcModule.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<B, C, P, CT, BE, A, CIDP, EC> EthApiServer for Eth<B, C, P, CT, BE, A, CIDP, EC>
where B: BlockT, C: CallApiAt<B> + ProvideRuntimeApi<B> + HeaderBackend<B> + StorageProvider<B, BE> + 'static, C::Api: BlockBuilderApi<B> + ConvertTransactionRuntimeApi<B> + EthereumRuntimeRPCApi<B>, BE: Backend<B> + 'static, P: TransactionPool<Block = B> + 'static, CT: ConvertTransaction<<B as BlockT>::Extrinsic> + Send + Sync + 'static, A: ChainApi<Block = B> + 'static, CIDP: CreateInherentDataProviders<B, ()> + Send + 'static, EC: EthConfig<B, C>,