ServiceRuntime

Struct ServiceRuntime 

Source
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,

Source

pub fn key_value_store(&self) -> KeyValueStore

Returns the key-value store to interface with storage.

Source

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,

Source

pub fn application_parameters(&self) -> Application::Parameters

Returns the application parameters provided when the application was created.

Source

pub fn application_id(&self) -> ApplicationId<Application::Abi>

Returns the ID of the current application.

Source

pub fn application_creator_chain_id(&self) -> ChainId

Returns the chain ID of the current application creator.

Source

pub fn chain_id(&self) -> ChainId

Returns the ID of the current chain.

Source

pub fn next_block_height(&self) -> BlockHeight

Returns the height of the next block that can be added to the current chain.

Source

pub fn system_time(&self) -> Timestamp

Retrieves the current system time, i.e. the timestamp of the block in which this is called.

Source

pub fn chain_balance(&self) -> Amount

Returns the current chain balance.

Source

pub fn owner_balance(&self, owner: AccountOwner) -> Amount

Returns the balance of one of the accounts on this chain.

Source

pub fn owner_balances(&self) -> Vec<(AccountOwner, Amount)>

Returns the balances of all accounts on the chain.

Source

pub fn balance_owners(&self) -> Vec<AccountOwner>

Returns the owners of accounts on this chain.

Source

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.

Source

pub fn read_data_blob(&self, hash: DataBlobHash) -> Vec<u8>

Reads a data blob with the given hash from storage.

Source

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,

Source

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.

Source

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.

Source

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>
where <Application as WithServiceAbi>::Abi: Send,

§

impl<Application> Sync for ServiceRuntime<Application>
where <Application as WithServiceAbi>::Abi: Send,

§

impl<Application> Unpin for ServiceRuntime<Application>
where <Application as Service>::Parameters: Unpin, <Application as WithServiceAbi>::Abi: Unpin,

§

impl<Application> UnwindSafe for ServiceRuntime<Application>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<Choices> CoproductSubsetter<CNil, HNil> for Choices

Source§

type Remainder = Choices

Source§

fn subset( self, ) -> Result<CNil, <Choices as CoproductSubsetter<CNil, HNil>>::Remainder>

Extract a subset of the possible types in a coproduct (or get the remaining possibilities) Read more
Source§

impl<To, From> DynInto<To> for From
where From: Into<To>,

Source§

fn into_box(self: Box<From>) -> To

Converts a boxed object into the target type.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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 more
Source§

impl<T, U, I> LiftInto<U, I> for T
where U: LiftFrom<T, I>,

Source§

fn lift_into(self) -> U

Performs the indexed conversion.
Source§

impl<M, I> RuntimeMemory<&mut I> for M
where M: RuntimeMemory<I>,

Source§

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>

Writes the bytes to memory at the provided location.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<Source> Sculptor<HNil, HNil> for Source

Source§

type Remainder = Source

Source§

fn sculpt(self) -> (HNil, <Source as Sculptor<HNil, HNil>>::Remainder)

Consumes the current HList and returns an HList with the requested shape. Read more
Source§

impl<AnyTail> Split<HNil> for AnyTail

Source§

type Remainder = AnyTail

The tail of remaining elements after splitting up the list.
Source§

fn split(self) -> (HNil, <AnyTail as Split<HNil>>::Remainder)

Splits the current heterogeneous list in two.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more