Struct oasis_runtime_sdk_contracts::Module

source ·
pub struct Module<Cfg: Config> { /* private fields */ }

Implementations§

source§

impl<Cfg: Config> Module<Cfg>

source

pub fn load_code(code_info: &Code) -> Result<Vec<u8>, Error>

Loads code with the specified code identifier.

source

pub fn store_code(code_info: &Code, code: &[u8]) -> Result<(), Error>

Stores code with the specified code identifier.

source§

impl<Cfg: Config> Module<Cfg>

Trait Implementations§

source§

impl<Cfg: Config> BlockHandler for Module<Cfg>

source§

fn begin_block<C>(_ctx: &C)
where C: Context,

Perform any common actions at the start of the block (before any transactions have been executed).
source§

fn end_block<C>(_ctx: &C)
where C: Context,

Perform any common actions at the end of the block (after all transactions have been executed).
source§

impl<Cfg: Config> InvariantHandler for Module<Cfg>

source§

fn check_invariants<C>(_ctx: &C) -> Result<(), Error>
where C: Context,

Check invariants.
source§

impl<Cfg: Config> MethodHandler for Module<Cfg>

source§

fn dispatch_call<C: Context>( ctx: &C, method: &str, body: Value, ) -> DispatchResult<Value, CallResult>

Dispatch a call.
source§

fn dispatch_query<C: Context>( ctx: &C, method: &str, args: Value, ) -> DispatchResult<Value, Result<Value, RuntimeError>>

Dispatch a query.
source§

fn supported_methods() -> Vec<MethodHandlerInfo>

Lists the names of all RPC methods exposed by this module. The result is informational only. An empty return vector means that the implementor does not care to list the methods, or the implementor is a tuple of modules.
source§

fn is_expensive_query(method: &str) -> bool

Checks whether the given query method is tagged as expensive.
source§

fn is_allowed_interactive_call(method: &str) -> bool

Checks whether the given call is allowed to be called interactively via read-only transactions.
source§

fn prefetch( _prefixes: &mut BTreeSet<Prefix>, _method: &str, body: Value, _auth_info: &AuthInfo, ) -> DispatchResult<Value, Result<(), Error>>

Add storage prefixes to prefetch.
source§

fn dispatch_message_result<C>( _ctx: &C, _handler_name: &str, result: MessageResult, ) -> DispatchResult<MessageResult, ()>
where C: Context,

Dispatch a message result.
source§

fn is_allowed_private_km_query(_method: &str) -> bool

Checks whether the given query is allowed to access private key manager state.
source§

impl<Cfg: Config> MigrationHandler for Module<Cfg>

§

type Genesis = Genesis

Genesis state type. Read more
source§

fn init_or_migrate<C: Context>( _ctx: &C, meta: &mut Metadata, genesis: Self::Genesis, ) -> bool

Initialize state from genesis or perform a migration. Read more
source§

impl<Cfg: Config> Module for Module<Cfg>

source§

const NAME: &'static str = MODULE_NAME

Module name.
§

type Error = Error

Module error type.
§

type Event = Event

Module event type.
§

type Parameters = Parameters

Module parameters.
source§

const VERSION: u32 = 1u32

Module version.
source§

fn params() -> Self::Parameters

Return the module’s parameters.
source§

fn set_params(params: Self::Parameters)

Set the module’s parameters.
source§

impl<Cfg: Config> TransactionHandler for Module<Cfg>

source§

fn approve_raw_tx<C>(_ctx: &C, _tx: &[u8]) -> Result<(), Error>
where C: Context,

Judge if a raw transaction is good enough to undergo decoding. This takes place before even decoding the transaction.
source§

fn approve_unverified_tx<C>( _ctx: &C, _utx: &UnverifiedTransaction, ) -> Result<(), Error>
where C: Context,

Judge if an unverified transaction is good enough to undergo verification. This takes place before even verifying signatures.
source§

fn decode_tx<C>( _ctx: &C, _scheme: &str, _body: &[u8], ) -> Result<Option<Transaction>, Error>
where C: Context,

Decode a transaction that was sent with module-controlled decoding and verify any signatures. Read more
source§

fn authenticate_tx<C>( _ctx: &C, _tx: &Transaction, ) -> Result<AuthDecision, Error>
where C: Context,

Authenticate a transaction. Read more
source§

fn before_handle_call<C>(_ctx: &C, _call: &Call) -> Result<(), Error>
where C: Context,

Perform any action after authentication, within the transaction context. Read more
source§

fn before_authorized_call_dispatch<C>( _ctx: &C, _call: &Call, ) -> Result<(), Error>
where C: Context,

Perform any action after authentication and decoding, within the transaction context. Read more
source§

fn after_handle_call<C>( _ctx: &C, result: CallResult, ) -> Result<CallResult, Error>
where C: Context,

Perform any action after call, within the transaction context. Read more
source§

fn after_dispatch_tx<C>( _ctx: &C, _tx_auth_info: &AuthInfo, _result: &CallResult, )
where C: Context,

Perform any action after dispatching the transaction, in batch context.

Auto Trait Implementations§

§

impl<Cfg> Freeze for Module<Cfg>

§

impl<Cfg> RefUnwindSafe for Module<Cfg>
where Cfg: RefUnwindSafe,

§

impl<Cfg> Send for Module<Cfg>
where Cfg: Send,

§

impl<Cfg> Sync for Module<Cfg>
where Cfg: Sync,

§

impl<Cfg> Unpin for Module<Cfg>
where Cfg: Unpin,

§

impl<Cfg> UnwindSafe for Module<Cfg>
where Cfg: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<M> ModuleInfoHandler for M
where M: Module + MethodHandler,

source§

fn module_info<C>(_ctx: &C) -> BTreeMap<String, ModuleInfo>
where C: Context,

Reports info about the module (or modules, if Self is a tuple).
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> SendSyncUnwindSafe for T
where T: Send + Sync + UnwindSafe + ?Sized,