pub struct ContractRuntime<S = Lmdb>where
S: Db,{ /* private fields */ }Implementations§
Source§impl<S: Db> Runtime<S>
impl<S: Db> Runtime<S>
pub fn new( storage: &S, contract_store: CodeStore<S>, lock: MutLock, ) -> Result<Self>
Sourcepub fn instantiate_contract(
&mut self,
contract_id: ContractId,
module_bytes: &[u8],
) -> Result<()>
pub fn instantiate_contract( &mut self, contract_id: ContractId, module_bytes: &[u8], ) -> Result<()>
Creates a new instance of the wasm module in our CodeStore for the given contract-id
Sourcepub fn set_block(
&mut self,
block_id: BlockIdentifier,
block_timestamp: u64,
) -> Result<()>
pub fn set_block( &mut self, block_id: BlockIdentifier, block_timestamp: u64, ) -> Result<()>
Sets the currently active block
This buffers the encoded BlockCtx, to later write it to the dedicated register, so that the wasm side can query it.
Sourcepub fn check_module_and_state(
&mut self,
module_bytes: Vec<u8>,
state: Value,
) -> Result<(bool, Vec<String>)>
pub fn check_module_and_state( &mut self, module_bytes: Vec<u8>, state: Value, ) -> Result<(bool, Vec<String>)>
Sanity check for introductions
Sourcepub fn set_executor(&mut self, executor_id: BorderlessId) -> Result<()>
pub fn set_executor(&mut self, executor_id: BorderlessId) -> Result<()>
Sets the currently active executor
This buffers the BorderlessId of the executor, to later write it into the dedicated register,
so that the wasm side can query it.
pub fn process_transaction( &mut self, cid: &ContractId, action: CallAction, writer: &BorderlessId, tx_ctx: TxCtx, ) -> Result<Option<Events>>
pub fn process_introduction( &mut self, introduction: Introduction, writer: &BorderlessId, tx_ctx: TxCtx, ) -> Result<()>
pub fn process_revocation( &mut self, revocation: Revocation, writer: &BorderlessId, tx_ctx: TxCtx, ) -> Result<()>
Sourcepub fn perform_dry_run(
&mut self,
cid: &ContractId,
action: &CallAction,
writer: &BorderlessId,
) -> Result<()>
pub fn perform_dry_run( &mut self, cid: &ContractId, action: &CallAction, writer: &BorderlessId, ) -> Result<()>
Executes an action without commiting the state
pub fn http_get_state( &mut self, cid: &ContractId, path: String, ) -> Result<(u16, Vec<u8>)>
Sourcepub fn http_post_action(
&mut self,
cid: &ContractId,
path: String,
payload: Vec<u8>,
writer: &BorderlessId,
) -> Result<Result<CallAction, (u16, String)>>
pub fn http_post_action( &mut self, cid: &ContractId, path: String, payload: Vec<u8>, writer: &BorderlessId, ) -> Result<Result<CallAction, (u16, String)>>
Uses a POST request to parse and generate a CallAction object.
The return type is a nested result. The outer result type should convert to a server error, as it represents errors in the runtime itself. The inner error type comes from the wasm code and contains the error status and message.
Sourcepub fn get_symbols(&mut self, cid: &ContractId) -> Result<Option<Symbols>>
pub fn get_symbols(&mut self, cid: &ContractId) -> Result<Option<Symbols>>
Returns the symbols of the contract
pub fn available_contracts(&self) -> Result<Vec<ContractId>>
Auto Trait Implementations§
impl<S> Freeze for Runtime<S>where
S: Freeze,
impl<S = Lmdb> !RefUnwindSafe for Runtime<S>
impl<S> Send for Runtime<S>
impl<S> Sync for Runtime<S>
impl<S> Unpin for Runtime<S>where
S: Unpin,
impl<S = Lmdb> !UnwindSafe for Runtime<S>
Blanket Implementations§
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
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>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more