Trait UserContract

Source
pub trait UserContract {
    // Required methods
    fn instantiate(&mut self, argument: Vec<u8>) -> Result<(), ExecutionError>;
    fn execute_operation(
        &mut self,
        operation: Vec<u8>,
    ) -> Result<Vec<u8>, ExecutionError>;
    fn execute_message(
        &mut self,
        message: Vec<u8>,
    ) -> Result<(), ExecutionError>;
    fn process_streams(
        &mut self,
        updates: Vec<StreamUpdate>,
    ) -> Result<(), ExecutionError>;
    fn finalize(&mut self) -> Result<(), ExecutionError>;
}
Expand description

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

Required Methods§

Source

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

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

Source

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

Applies an operation from the current block.

Source

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

Applies a message originating from a cross-chain message.

Source

fn process_streams( &mut self, updates: Vec<StreamUpdate>, ) -> Result<(), ExecutionError>

Reacts to new events on streams this application subscribes to.

Source

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

Finishes execution of the current transaction.

Implementors§