pub trait Context {
type PublicStore: PublicStore;
type ConfidentialStore: ConfidentialStore;
type Env: Env + Crypto;
// Required methods
fn instance_id(&self) -> InstanceId;
fn instance_address(&self) -> &Address;
fn caller_address(&self) -> &Address;
fn deposited_tokens(&self) -> &[BaseUnits];
fn is_read_only(&self) -> bool;
fn call_format(&self) -> CallFormat;
fn emit_message(&mut self, msg: Message);
fn emit_event<E: Event>(&mut self, event: E);
fn public_store(&mut self) -> &mut Self::PublicStore;
fn confidential_store(&mut self) -> &mut Self::ConfidentialStore;
fn env(&self) -> &Self::Env;
}
Expand description
Execution context.
Required Associated Types§
Sourcetype PublicStore: PublicStore
type PublicStore: PublicStore
The public store.
Sourcetype ConfidentialStore: ConfidentialStore
type ConfidentialStore: ConfidentialStore
The confidential store.
Required Methods§
Sourcefn instance_id(&self) -> InstanceId
fn instance_id(&self) -> InstanceId
Contract instance identifier.
Sourcefn instance_address(&self) -> &Address
fn instance_address(&self) -> &Address
Contract instance address.
Sourcefn caller_address(&self) -> &Address
fn caller_address(&self) -> &Address
Caller address.
Sourcefn deposited_tokens(&self) -> &[BaseUnits]
fn deposited_tokens(&self) -> &[BaseUnits]
Tokens deposited by the caller.
Sourcefn is_read_only(&self) -> bool
fn is_read_only(&self) -> bool
Whether the call is read-only and must not make any storage modifications.
Sourcefn call_format(&self) -> CallFormat
fn call_format(&self) -> CallFormat
Call format.
Sourcefn emit_message(&mut self, msg: Message)
fn emit_message(&mut self, msg: Message)
Emits a message.
Sourcefn emit_event<E: Event>(&mut self, event: E)
fn emit_event<E: Event>(&mut self, event: E)
Emits an event.
Sourcefn public_store(&mut self) -> &mut Self::PublicStore
fn public_store(&mut self) -> &mut Self::PublicStore
Public contract store.
Sourcefn confidential_store(&mut self) -> &mut Self::ConfidentialStore
fn confidential_store(&mut self) -> &mut Self::ConfidentialStore
Confidential contract store.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.