pub enum WasmApplication {
Wasmer {
contract: (Engine, Module),
service: Arc<Module>,
},
}
Expand description
A user application in a compiled WebAssembly module.
Variants§
Implementations§
source§impl WasmApplication
impl WasmApplication
sourcepub async fn new_with_wasmer(
contract_bytecode: Bytecode,
service_bytecode: Bytecode
) -> Result<Self, WasmExecutionError>
pub async fn new_with_wasmer( contract_bytecode: Bytecode, service_bytecode: Bytecode ) -> Result<Self, WasmExecutionError>
Creates a new WasmApplication
using Wasmtime with the provided bytecodes.
sourcepub fn prepare_contract_runtime_with_wasmer<'runtime>(
(contract_engine, contract_module): &(Engine, Module),
runtime: &'runtime dyn ContractRuntime
) -> Result<WasmRuntimeContext<'static, Contract<'runtime>>, WasmExecutionError>
pub fn prepare_contract_runtime_with_wasmer<'runtime>( (contract_engine, contract_module): &(Engine, Module), runtime: &'runtime dyn ContractRuntime ) -> Result<WasmRuntimeContext<'static, Contract<'runtime>>, WasmExecutionError>
Prepares a runtime instance to call into the Wasm contract.
sourcepub fn prepare_service_runtime_with_wasmer<'runtime>(
service_module: &Module,
runtime: &'runtime dyn ServiceRuntime
) -> Result<WasmRuntimeContext<'static, Service<'runtime>>, WasmExecutionError>
pub fn prepare_service_runtime_with_wasmer<'runtime>( service_module: &Module, runtime: &'runtime dyn ServiceRuntime ) -> Result<WasmRuntimeContext<'static, Service<'runtime>>, WasmExecutionError>
Prepares a runtime instance to call into the Wasm service.
source§impl WasmApplication
impl WasmApplication
sourcepub async fn new(
contract_bytecode: Bytecode,
service_bytecode: Bytecode,
runtime: WasmRuntime
) -> Result<Self, WasmExecutionError>
pub async fn new( contract_bytecode: Bytecode, service_bytecode: Bytecode, runtime: WasmRuntime ) -> Result<Self, WasmExecutionError>
Creates a new WasmApplication
using the WebAssembly module with the provided bytecodes.
sourcepub async fn from_files(
contract_bytecode_file: impl AsRef<Path>,
service_bytecode_file: impl AsRef<Path>,
runtime: WasmRuntime
) -> Result<Self, WasmExecutionError>
pub async fn from_files( contract_bytecode_file: impl AsRef<Path>, service_bytecode_file: impl AsRef<Path>, runtime: WasmRuntime ) -> Result<Self, WasmExecutionError>
Creates a new WasmApplication
using the WebAssembly module in bytecode_file
.
Trait Implementations§
source§impl UserApplication for WasmApplication
impl UserApplication for WasmApplication
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.
source§fn query_application<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
context: &'life1 QueryContext,
runtime: &'life2 dyn ServiceRuntime,
argument: &'life3 [u8]
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, ExecutionError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn query_application<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, context: &'life1 QueryContext, runtime: &'life2 dyn ServiceRuntime, argument: &'life3 [u8] ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, ExecutionError>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,
Executes unmetered read-only queries on the state of this application. Read more
Auto Trait Implementations§
impl !RefUnwindSafe for WasmApplication
impl Send for WasmApplication
impl Sync for WasmApplication
impl Unpin for WasmApplication
impl !UnwindSafe for WasmApplication
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