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