radix_engine_interface/api/
mod.rs

1pub mod actor_api;
2pub mod actor_index_api;
3pub mod actor_key_value_entry_api;
4pub mod actor_sorted_index_api;
5pub mod blueprint_api;
6pub mod costing_api;
7pub mod execution_trace_api;
8pub mod field_api;
9pub mod key_value_entry_api;
10pub mod key_value_store_api;
11pub mod object_api;
12pub mod transaction_runtime_api;
13
14// Re-exports
15pub use actor_api::*;
16pub use actor_index_api::*;
17pub use actor_key_value_entry_api::*;
18pub use actor_sorted_index_api::*;
19pub use blueprint_api::*;
20pub use costing_api::*;
21pub use execution_trace_api::*;
22pub use field_api::*;
23pub use key_value_entry_api::*;
24pub use key_value_store_api::*;
25pub use object_api::*;
26pub use transaction_runtime_api::*;
27
28pub type ActorStateHandle = u32;
29
30pub const ACTOR_STATE_SELF: ActorStateHandle = 0u32;
31pub const ACTOR_STATE_OUTER_OBJECT: ActorStateHandle = 1u32;
32
33pub type ActorRefHandle = u32;
34
35pub const ACTOR_REF_SELF: ActorRefHandle = 0u32;
36pub const ACTOR_REF_OUTER: ActorRefHandle = 1u32;
37pub const ACTOR_REF_GLOBAL: ActorRefHandle = 2u32;
38pub const ACTOR_REF_AUTH_ZONE: ActorRefHandle = 8u32;
39
40pub type FieldIndex = u8;
41pub type CollectionIndex = u8;
42
43use radix_common::prelude::*;
44
45pub trait SystemApiError: fmt::Debug + ScryptoCategorize + ScryptoDecode {}
46
47/// Interface of the system, for blueprints and object modules.
48///
49/// For WASM blueprints, only a subset of the API is exposed at the moment.
50pub trait SystemApi<E: SystemApiError>:
51    SystemActorApi<E>
52    + SystemActorKeyValueEntryApi<E>
53    + SystemObjectApi<E>
54    + SystemKeyValueStoreApi<E>
55    + SystemKeyValueEntryApi<E>
56    + SystemActorSortedIndexApi<E>
57    + SystemActorIndexApi<E>
58    + SystemFieldApi<E>
59    + SystemBlueprintApi<E>
60    + SystemCostingApi<E>
61    + SystemTransactionRuntimeApi<E>
62    + SystemExecutionTraceApi<E>
63{
64}