Trait linera_execution::UserContract

source ·
pub trait UserContract {
    // Required methods
    fn instantiate(
        &mut self,
        context: OperationContext,
        argument: Vec<u8>,
    ) -> Result<(), ExecutionError>;
    fn execute_operation(
        &mut self,
        context: OperationContext,
        operation: Vec<u8>,
    ) -> Result<Vec<u8>, ExecutionError>;
    fn execute_message(
        &mut self,
        context: MessageContext,
        message: Vec<u8>,
    ) -> Result<(), ExecutionError>;
    fn finalize(
        &mut self,
        context: FinalizeContext,
    ) -> Result<(), ExecutionError>;
}
Expand description

The public entry points provided by the contract part of an application.

Required Methods§

source

fn instantiate( &mut self, context: OperationContext, argument: Vec<u8>, ) -> Result<(), ExecutionError>

Instantiate the application state on the chain that owns the application.

source

fn execute_operation( &mut self, context: OperationContext, operation: Vec<u8>, ) -> Result<Vec<u8>, ExecutionError>

Applies an operation from the current block.

source

fn execute_message( &mut self, context: MessageContext, message: Vec<u8>, ) -> Result<(), ExecutionError>

Applies a message originating from a cross-chain message.

source

fn finalize(&mut self, context: FinalizeContext) -> Result<(), ExecutionError>

Finishes execution of the current transaction.

Implementors§