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§
Sourcefn instantiate(&mut self, argument: Vec<u8>) -> Result<(), ExecutionError>
fn instantiate(&mut self, argument: Vec<u8>) -> Result<(), ExecutionError>
Instantiate the application state on the chain that owns the application.
Sourcefn execute_operation(
&mut self,
operation: Vec<u8>,
) -> Result<Vec<u8>, ExecutionError>
fn execute_operation( &mut self, operation: Vec<u8>, ) -> Result<Vec<u8>, ExecutionError>
Applies an operation from the current block.
Sourcefn execute_message(&mut self, message: Vec<u8>) -> Result<(), ExecutionError>
fn execute_message(&mut self, message: Vec<u8>) -> Result<(), ExecutionError>
Applies a message originating from a cross-chain message.
Sourcefn process_streams(
&mut self,
updates: Vec<StreamUpdate>,
) -> Result<(), ExecutionError>
fn process_streams( &mut self, updates: Vec<StreamUpdate>, ) -> Result<(), ExecutionError>
Reacts to new events on streams this application subscribes to.
Sourcefn finalize(&mut self) -> Result<(), ExecutionError>
fn finalize(&mut self) -> Result<(), ExecutionError>
Finishes execution of the current transaction.