Trait ExecutionRuntimeContext

Source
pub trait ExecutionRuntimeContext {
Show 15 methods // Required methods fn chain_id(&self) -> ChainId; fn thread_pool(&self) -> &Arc<ThreadPool>; fn execution_runtime_config(&self) -> ExecutionRuntimeConfig; fn user_contracts(&self) -> &Arc<HashMap<ApplicationId, UserContractCode>>; fn user_services(&self) -> &Arc<HashMap<ApplicationId, UserServiceCode>>; fn get_user_contract<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, description: &'life1 ApplicationDescription, txn_tracker: &'life2 TransactionTracker, ) -> Pin<Box<dyn Future<Output = Result<UserContractCode, ExecutionError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn get_user_service<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, description: &'life1 ApplicationDescription, txn_tracker: &'life2 TransactionTracker, ) -> Pin<Box<dyn Future<Output = Result<UserServiceCode, ExecutionError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn get_blob<'life0, 'async_trait>( &'life0 self, blob_id: BlobId, ) -> Pin<Box<dyn Future<Output = Result<Option<Blob>, ViewError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn get_event<'life0, 'async_trait>( &'life0 self, event_id: EventId, ) -> Pin<Box<dyn Future<Output = Result<Option<Vec<u8>>, ViewError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn get_network_description<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Option<NetworkDescription>, ViewError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn contains_blob<'life0, 'async_trait>( &'life0 self, blob_id: BlobId, ) -> Pin<Box<dyn Future<Output = Result<bool, ViewError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn contains_event<'life0, 'async_trait>( &'life0 self, event_id: EventId, ) -> Pin<Box<dyn Future<Output = Result<bool, ViewError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn add_blobs<'life0, 'async_trait>( &'life0 self, blobs: impl 'async_trait + IntoIterator<Item = Blob> + Send, ) -> Pin<Box<dyn Future<Output = Result<(), ViewError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn add_events<'life0, 'async_trait>( &'life0 self, events: impl 'async_trait + IntoIterator<Item = (EventId, Vec<u8>)> + Send, ) -> Pin<Box<dyn Future<Output = Result<(), ViewError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; // Provided method fn get_committees<'life0, 'async_trait>( &'life0 self, epoch_range: RangeInclusive<Epoch>, ) -> Pin<Box<dyn Future<Output = Result<BTreeMap<Epoch, Committee>, ExecutionError>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait { ... }
}
Expand description

Requirements for the extra field in our state views (and notably the ExecutionStateView).

Required Methods§

Source

fn chain_id(&self) -> ChainId

Source

fn thread_pool(&self) -> &Arc<ThreadPool>

Source

fn execution_runtime_config(&self) -> ExecutionRuntimeConfig

Source

fn user_contracts(&self) -> &Arc<HashMap<ApplicationId, UserContractCode>>

Source

fn user_services(&self) -> &Arc<HashMap<ApplicationId, UserServiceCode>>

Source

fn get_user_contract<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, description: &'life1 ApplicationDescription, txn_tracker: &'life2 TransactionTracker, ) -> Pin<Box<dyn Future<Output = Result<UserContractCode, ExecutionError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Source

fn get_user_service<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, description: &'life1 ApplicationDescription, txn_tracker: &'life2 TransactionTracker, ) -> Pin<Box<dyn Future<Output = Result<UserServiceCode, ExecutionError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Source

fn get_blob<'life0, 'async_trait>( &'life0 self, blob_id: BlobId, ) -> Pin<Box<dyn Future<Output = Result<Option<Blob>, ViewError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn get_event<'life0, 'async_trait>( &'life0 self, event_id: EventId, ) -> Pin<Box<dyn Future<Output = Result<Option<Vec<u8>>, ViewError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn get_network_description<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Option<NetworkDescription>, ViewError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn contains_blob<'life0, 'async_trait>( &'life0 self, blob_id: BlobId, ) -> Pin<Box<dyn Future<Output = Result<bool, ViewError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn contains_event<'life0, 'async_trait>( &'life0 self, event_id: EventId, ) -> Pin<Box<dyn Future<Output = Result<bool, ViewError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn add_blobs<'life0, 'async_trait>( &'life0 self, blobs: impl 'async_trait + IntoIterator<Item = Blob> + Send, ) -> Pin<Box<dyn Future<Output = Result<(), ViewError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn add_events<'life0, 'async_trait>( &'life0 self, events: impl 'async_trait + IntoIterator<Item = (EventId, Vec<u8>)> + Send, ) -> Pin<Box<dyn Future<Output = Result<(), ViewError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Provided Methods§

Source

fn get_committees<'life0, 'async_trait>( &'life0 self, epoch_range: RangeInclusive<Epoch>, ) -> Pin<Box<dyn Future<Output = Result<BTreeMap<Epoch, Committee>, ExecutionError>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait,

Returns the committees for the epochs in the given range.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§