pub struct ServiceRuntime<Application>where
Application: Service,{ /* private fields */ }
Expand description
The runtime available during execution of a query.
Implementations§
Source§impl<Application> ServiceRuntime<Application>where
Application: Service,
impl<Application> ServiceRuntime<Application>where
Application: Service,
Sourcepub fn key_value_store(&self) -> KeyValueStore
pub fn key_value_store(&self) -> KeyValueStore
Returns the key-value store to interface with storage.
Sourcepub fn root_view_storage_context(&self) -> ViewStorageContext
pub fn root_view_storage_context(&self) -> ViewStorageContext
Returns a storage context suitable for a root view.
Source§impl<Application> ServiceRuntime<Application>where
Application: Service,
impl<Application> ServiceRuntime<Application>where
Application: Service,
Sourcepub fn application_parameters(&self) -> Application::Parameters
pub fn application_parameters(&self) -> Application::Parameters
Returns the application parameters provided when the application was created.
Sourcepub fn application_id(&self) -> ApplicationId<Application::Abi>
pub fn application_id(&self) -> ApplicationId<Application::Abi>
Returns the ID of the current application.
Sourcepub fn application_creator_chain_id(&self) -> ChainId
pub fn application_creator_chain_id(&self) -> ChainId
Returns the chain ID of the current application creator.
Sourcepub fn next_block_height(&self) -> BlockHeight
pub fn next_block_height(&self) -> BlockHeight
Returns the height of the next block that can be added to the current chain.
Sourcepub fn system_time(&self) -> Timestamp
pub fn system_time(&self) -> Timestamp
Retrieves the current system time, i.e. the timestamp of the block in which this is called.
Sourcepub fn chain_balance(&self) -> Amount
pub fn chain_balance(&self) -> Amount
Returns the current chain balance.
Sourcepub fn owner_balance(&self, owner: AccountOwner) -> Amount
pub fn owner_balance(&self, owner: AccountOwner) -> Amount
Returns the balance of one of the accounts on this chain.
Sourcepub fn owner_balances(&self) -> Vec<(AccountOwner, Amount)>
pub fn owner_balances(&self) -> Vec<(AccountOwner, Amount)>
Returns the balances of all accounts on the chain.
Sourcepub fn balance_owners(&self) -> Vec<AccountOwner>
pub fn balance_owners(&self) -> Vec<AccountOwner>
Returns the owners of accounts on this chain.
Sourcepub fn http_request(&self, request: Request) -> Response
pub fn http_request(&self, request: Request) -> Response
Makes an HTTP request to the given URL as an oracle and returns the answer, if any.
Should only be used with queries where it is very likely that all validators will receive the same response, otherwise most block proposals will fail.
Cannot be used in fast blocks: A block using this call should be proposed by a regular owner, not a super owner.
Sourcepub fn read_data_blob(&self, hash: DataBlobHash) -> Vec<u8> ⓘ
pub fn read_data_blob(&self, hash: DataBlobHash) -> Vec<u8> ⓘ
Reads a data blob with the given hash from storage.
Sourcepub fn assert_data_blob_exists(&self, hash: DataBlobHash)
pub fn assert_data_blob_exists(&self, hash: DataBlobHash)
Asserts that a data blob with the given hash exists in storage.
Source§impl<Application> ServiceRuntime<Application>where
Application: Service,
impl<Application> ServiceRuntime<Application>where
Application: Service,
Sourcepub fn schedule_raw_operation(&self, operation: Vec<u8>)
pub fn schedule_raw_operation(&self, operation: Vec<u8>)
Schedules an operation to be included in the block being built.
The operation is specified as an opaque blob of bytes.
Sourcepub fn schedule_operation(&self, operation: &impl Serialize)
pub fn schedule_operation(&self, operation: &impl Serialize)
Schedules an operation to be included in the block being built.
The operation is serialized using BCS.
Sourcepub fn query_application<A: ServiceAbi>(
&self,
application: ApplicationId<A>,
query: &A::Query,
) -> A::QueryResponse
pub fn query_application<A: ServiceAbi>( &self, application: ApplicationId<A>, query: &A::Query, ) -> A::QueryResponse
Queries another application.
Auto Trait Implementations§
impl<Application> !Freeze for ServiceRuntime<Application>
impl<Application> RefUnwindSafe for ServiceRuntime<Application>
impl<Application> Send for ServiceRuntime<Application>
impl<Application> Sync for ServiceRuntime<Application>
impl<Application> Unpin for ServiceRuntime<Application>
impl<Application> UnwindSafe for ServiceRuntime<Application>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<M, I> RuntimeMemory<&mut I> for Mwhere
M: RuntimeMemory<I>,
impl<M, I> RuntimeMemory<&mut I> for Mwhere
M: RuntimeMemory<I>,
Source§fn read<'instance>(
&self,
instance: &'instance &mut I,
location: GuestPointer,
length: u32,
) -> Result<Cow<'instance, [u8]>, RuntimeError>
fn read<'instance>( &self, instance: &'instance &mut I, location: GuestPointer, length: u32, ) -> Result<Cow<'instance, [u8]>, RuntimeError>
Reads length
bytes from memory from the provided location
.
Source§fn write(
&mut self,
instance: &mut &mut I,
location: GuestPointer,
bytes: &[u8],
) -> Result<(), RuntimeError>
fn write( &mut self, instance: &mut &mut I, location: GuestPointer, bytes: &[u8], ) -> Result<(), RuntimeError>
Writes the bytes
to memory at the provided location
.