pub trait ExecutionRuntimeContext {
Show 14 methods
    // Required methods
    fn chain_id(&self) -> ChainId;
    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 committees_for<'life0, 'async_trait>(
        &'life0 self,
        epoch_range: RangeInclusive<Epoch>,
    ) -> Pin<Box<dyn Future<Output = Result<BTreeMap<Epoch, Committee>, 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;
}Expand description
Requirements for the extra field in our state views (and notably the
ExecutionStateView).
Required Methods§
fn chain_id(&self) -> ChainId
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 committees_for<'life0, 'async_trait>(
    &'life0 self,
    epoch_range: RangeInclusive<Epoch>,
) -> Pin<Box<dyn Future<Output = Result<BTreeMap<Epoch, Committee>, 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,
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.