Skip to main content

freenet_stdlib/
lib.rs

1//! Standard library provided by the Freenet project to be able to write Locutus-compatible contracts.
2mod code_hash;
3#[cfg(feature = "unstable")]
4pub mod contract_composition;
5mod contract_interface;
6pub mod delegate_host;
7mod delegate_interface;
8mod delegate_manifest;
9pub(crate) mod global;
10pub mod memory;
11mod parameters;
12mod versioning;
13
14pub use contract_interface::encoding as typed_contract;
15
16#[allow(dead_code, unused_imports, clippy::all, mismatched_lifetime_syntaxes)]
17pub(crate) mod generated {
18    mod client_request_generated;
19    pub(crate) use client_request_generated::*;
20    pub(crate) mod common_generated;
21    pub(crate) use common_generated::*;
22    mod host_response_generated;
23    pub(crate) use host_response_generated::*;
24}
25
26pub(crate) mod common_generated {
27    pub use super::generated::common_generated::*;
28}
29
30pub mod client_api;
31pub mod host_imports;
32pub mod log;
33#[cfg(feature = "contract")]
34pub mod rand;
35#[cfg(feature = "contract")]
36pub mod time;
37
38/// Locutus stdlib prelude.
39pub mod prelude {
40    pub use crate::code_hash::*;
41    pub use crate::contract_interface::wasm_interface::ContractInterfaceResult;
42    pub use crate::contract_interface::*;
43    pub use crate::delegate_host::{
44        decode_secret_key_list, encode_secret_key_list, error_codes, DelegateCtx,
45    };
46    pub use crate::delegate_interface::wasm_interface::DelegateInterfaceResult;
47    pub use crate::delegate_interface::*;
48    pub use crate::delegate_manifest::*;
49    pub use crate::parameters::*;
50    pub use crate::typed_contract::{
51        BincodeEncoder, Encoder, EncodingAdapter, JsonEncoder, RelatedContractsContainer,
52    };
53    pub use crate::versioning::*;
54    pub use freenet_macros::{contract, delegate};
55
56    pub use bincode;
57    pub use blake3;
58    pub use serde_json;
59    pub use tracing;
60    pub use tracing_subscriber;
61}