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§
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 Methods§
Sourcefn 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,
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.