linera_execution

Trait ContractRuntime

Source
pub trait ContractRuntime: BaseRuntime {
Show 16 methods // Required methods fn authenticated_signer(&mut self) -> Result<Option<Owner>, ExecutionError>; fn message_id(&mut self) -> Result<Option<MessageId>, ExecutionError>; fn message_is_bouncing(&mut self) -> Result<Option<bool>, ExecutionError>; fn authenticated_caller_id( &mut self, ) -> Result<Option<UserApplicationId>, ExecutionError>; fn remaining_fuel(&mut self) -> Result<u64, ExecutionError>; fn consume_fuel(&mut self, fuel: u64) -> Result<(), ExecutionError>; fn send_message( &mut self, message: SendMessageRequest<Vec<u8>>, ) -> Result<(), ExecutionError>; fn subscribe( &mut self, chain: ChainId, channel: ChannelName, ) -> Result<(), ExecutionError>; fn unsubscribe( &mut self, chain: ChainId, channel: ChannelName, ) -> Result<(), ExecutionError>; fn transfer( &mut self, source: Option<Owner>, destination: Account, amount: Amount, ) -> Result<(), ExecutionError>; fn claim( &mut self, source: Account, destination: Account, amount: Amount, ) -> Result<(), ExecutionError>; fn try_call_application( &mut self, authenticated: bool, callee_id: UserApplicationId, argument: Vec<u8>, ) -> Result<Vec<u8>, ExecutionError>; fn emit( &mut self, name: StreamName, key: Vec<u8>, value: Vec<u8>, ) -> Result<(), ExecutionError>; fn open_chain( &mut self, ownership: ChainOwnership, application_permissions: ApplicationPermissions, balance: Amount, ) -> Result<(MessageId, ChainId), ExecutionError>; fn close_chain(&mut self) -> Result<(), ExecutionError>; fn write_batch(&mut self, batch: Batch) -> Result<(), ExecutionError>;
}

Required Methods§

Source

fn authenticated_signer(&mut self) -> Result<Option<Owner>, ExecutionError>

The authenticated signer for this execution, if there is one.

Source

fn message_id(&mut self) -> Result<Option<MessageId>, ExecutionError>

The current message ID, if there is one.

Source

fn message_is_bouncing(&mut self) -> Result<Option<bool>, ExecutionError>

If the current message (if there is one) was rejected by its destination and is now bouncing back.

Source

fn authenticated_caller_id( &mut self, ) -> Result<Option<UserApplicationId>, ExecutionError>

The optional authenticated caller application ID, if it was provided and if there is one based on the execution context.

Source

fn remaining_fuel(&mut self) -> Result<u64, ExecutionError>

Returns the amount of execution fuel remaining before execution is aborted.

Source

fn consume_fuel(&mut self, fuel: u64) -> Result<(), ExecutionError>

Consumes some of the execution fuel.

Source

fn send_message( &mut self, message: SendMessageRequest<Vec<u8>>, ) -> Result<(), ExecutionError>

Schedules a message to be sent.

Source

fn subscribe( &mut self, chain: ChainId, channel: ChannelName, ) -> Result<(), ExecutionError>

Schedules to subscribe to some channel on a chain.

Source

fn unsubscribe( &mut self, chain: ChainId, channel: ChannelName, ) -> Result<(), ExecutionError>

Schedules to unsubscribe to some channel on a chain.

Source

fn transfer( &mut self, source: Option<Owner>, destination: Account, amount: Amount, ) -> Result<(), ExecutionError>

Transfers amount from source to destination.

Source

fn claim( &mut self, source: Account, destination: Account, amount: Amount, ) -> Result<(), ExecutionError>

Claims amount from source to destination.

Source

fn try_call_application( &mut self, authenticated: bool, callee_id: UserApplicationId, argument: Vec<u8>, ) -> Result<Vec<u8>, ExecutionError>

Calls another application. Forwarded sessions will now be visible to callee_id (but not to the caller any more).

Source

fn emit( &mut self, name: StreamName, key: Vec<u8>, value: Vec<u8>, ) -> Result<(), ExecutionError>

Adds a new item to an event stream.

Source

fn open_chain( &mut self, ownership: ChainOwnership, application_permissions: ApplicationPermissions, balance: Amount, ) -> Result<(MessageId, ChainId), ExecutionError>

Opens a new chain.

Source

fn close_chain(&mut self) -> Result<(), ExecutionError>

Closes the current chain.

Source

fn write_batch(&mut self, batch: Batch) -> Result<(), ExecutionError>

Writes a batch of changes.

Implementors§