Enum linera_execution::WasmContract
source · pub enum WasmContract {
Wasmer {
engine: Engine,
module: Module,
},
}Expand description
A user contract in a compiled WebAssembly module.
Variants§
Implementations§
source§impl WasmContract
impl WasmContract
sourcepub async fn new_with_wasmer(
contract_bytecode: Bytecode
) -> Result<Self, WasmExecutionError>
pub async fn new_with_wasmer( contract_bytecode: Bytecode ) -> Result<Self, WasmExecutionError>
Creates a new WasmContract using Wasmer with the provided bytecodes.
sourcepub fn prepare_contract_runtime_with_wasmer(
contract_engine: &Engine,
contract_module: &Module,
runtime: UnboundedSender<ContractRequest>
) -> Result<WasmRuntimeContext<Contract>, WasmExecutionError>
pub fn prepare_contract_runtime_with_wasmer( contract_engine: &Engine, contract_module: &Module, runtime: UnboundedSender<ContractRequest> ) -> Result<WasmRuntimeContext<Contract>, WasmExecutionError>
Prepares a runtime instance to call into the Wasm contract.
source§impl WasmContract
impl WasmContract
sourcepub async fn new(
contract_bytecode: Bytecode,
runtime: WasmRuntime
) -> Result<Self, WasmExecutionError>
pub async fn new( contract_bytecode: Bytecode, runtime: WasmRuntime ) -> Result<Self, WasmExecutionError>
Creates a new WasmContract using the WebAssembly module with the provided bytecodes.
sourcepub async fn from_file(
contract_bytecode_file: impl AsRef<Path>,
runtime: WasmRuntime
) -> Result<Self, WasmExecutionError>
pub async fn from_file( contract_bytecode_file: impl AsRef<Path>, runtime: WasmRuntime ) -> Result<Self, WasmExecutionError>
Creates a new WasmContract using the WebAssembly module in bytecode_file.
Trait Implementations§
source§impl UserContract for WasmContract
impl UserContract for WasmContract
source§fn initialize<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
context: &'life1 OperationContext,
runtime: &'life2 dyn ContractRuntime,
argument: &'life3 [u8]
) -> Pin<Box<dyn Future<Output = Result<RawExecutionResult<Vec<u8>>, ExecutionError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn initialize<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, context: &'life1 OperationContext, runtime: &'life2 dyn ContractRuntime, argument: &'life3 [u8] ) -> Pin<Box<dyn Future<Output = Result<RawExecutionResult<Vec<u8>>, ExecutionError>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,
Initializes the application state on the chain that owns the application.
source§fn execute_operation<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
context: &'life1 OperationContext,
runtime: &'life2 dyn ContractRuntime,
operation: &'life3 [u8]
) -> Pin<Box<dyn Future<Output = Result<RawExecutionResult<Vec<u8>>, ExecutionError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn execute_operation<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, context: &'life1 OperationContext, runtime: &'life2 dyn ContractRuntime, operation: &'life3 [u8] ) -> Pin<Box<dyn Future<Output = Result<RawExecutionResult<Vec<u8>>, ExecutionError>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,
Applies an operation from the current block.
source§fn execute_message<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
context: &'life1 MessageContext,
runtime: &'life2 dyn ContractRuntime,
message: &'life3 [u8]
) -> Pin<Box<dyn Future<Output = Result<RawExecutionResult<Vec<u8>>, ExecutionError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn execute_message<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, context: &'life1 MessageContext, runtime: &'life2 dyn ContractRuntime, message: &'life3 [u8] ) -> Pin<Box<dyn Future<Output = Result<RawExecutionResult<Vec<u8>>, ExecutionError>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,
Applies a message originating from a cross-chain message.
source§fn handle_application_call<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
context: &'life1 CalleeContext,
runtime: &'life2 dyn ContractRuntime,
argument: &'life3 [u8],
forwarded_sessions: Vec<SessionId>
) -> Pin<Box<dyn Future<Output = Result<ApplicationCallResult, ExecutionError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn handle_application_call<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, context: &'life1 CalleeContext, runtime: &'life2 dyn ContractRuntime, argument: &'life3 [u8], forwarded_sessions: Vec<SessionId> ) -> Pin<Box<dyn Future<Output = Result<ApplicationCallResult, ExecutionError>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,
Executes a call from another application. Read more
source§fn handle_session_call<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
context: &'life1 CalleeContext,
runtime: &'life2 dyn ContractRuntime,
session_state: &'life3 mut Vec<u8>,
argument: &'life4 [u8],
forwarded_sessions: Vec<SessionId>
) -> Pin<Box<dyn Future<Output = Result<SessionCallResult, ExecutionError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn handle_session_call<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>( &'life0 self, context: &'life1 CalleeContext, runtime: &'life2 dyn ContractRuntime, session_state: &'life3 mut Vec<u8>, argument: &'life4 [u8], forwarded_sessions: Vec<SessionId> ) -> Pin<Box<dyn Future<Output = Result<SessionCallResult, ExecutionError>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait, 'life4: 'async_trait,
Executes a call from another application into a session created by this application.
Auto Trait Implementations§
impl !RefUnwindSafe for WasmContract
impl Send for WasmContract
impl Sync for WasmContract
impl Unpin for WasmContract
impl !UnwindSafe for WasmContract
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<F, W, T, D> Deserialize<With<T, W>, D> for Fwhere
W: DeserializeWith<F, T, D>,
D: Fallible + ?Sized,
F: ?Sized,
impl<F, W, T, D> Deserialize<With<T, W>, D> for Fwhere W: DeserializeWith<F, T, D>, D: Fallible + ?Sized, F: ?Sized,
§fn deserialize(
&self,
deserializer: &mut D
) -> Result<With<T, W>, <D as Fallible>::Error>
fn deserialize( &self, deserializer: &mut D ) -> Result<With<T, W>, <D as Fallible>::Error>
Deserializes using the given deserializer
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Upcastable for Twhere
T: Any + Send + Sync + 'static,
impl<T> Upcastable for Twhere T: Any + Send + Sync + 'static,
§fn upcast_any_ref(&self) -> &(dyn Any + 'static)
fn upcast_any_ref(&self) -> &(dyn Any + 'static)
upcast ref
§fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
upcast mut ref
§fn upcast_any_box(self: Box<T>) -> Box<dyn Any>
fn upcast_any_box(self: Box<T>) -> Box<dyn Any>
upcast boxed dyn