Trait linera_execution::ContractRuntime

source ·
pub trait ContractRuntime: BaseRuntime {
Show 20 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<AccountOwner>, 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 query_service( &mut self, application_id: ApplicationId, query: Vec<u8>, ) -> Result<Vec<u8>, 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 change_application_permissions( &mut self, application_permissions: ApplicationPermissions, ) -> Result<(), ExecutionError>; fn create_application( &mut self, bytecode_id: BytecodeId, parameters: Vec<u8>, argument: Vec<u8>, required_application_ids: Vec<UserApplicationId>, ) -> Result<UserApplicationId, ExecutionError>; fn validation_round(&mut self) -> Result<Option<u32>, 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<AccountOwner>, 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 query_service( &mut self, application_id: ApplicationId, query: Vec<u8>, ) -> Result<Vec<u8>, ExecutionError>

Queries a service.

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 change_application_permissions( &mut self, application_permissions: ApplicationPermissions, ) -> Result<(), ExecutionError>

Changes the application permissions on the current chain.

source

fn create_application( &mut self, bytecode_id: BytecodeId, parameters: Vec<u8>, argument: Vec<u8>, required_application_ids: Vec<UserApplicationId>, ) -> Result<UserApplicationId, ExecutionError>

Creates a new application on chain.

source

fn validation_round(&mut self) -> Result<Option<u32>, ExecutionError>

Returns the round in which this block was validated.

source

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

Writes a batch of changes.

Implementors§