Skip to main content

tronz_contract/
lib.rs

1#![doc = include_str!("../README.md")]
2#![forbid(unsafe_code)]
3#![warn(missing_docs)]
4#![cfg_attr(not(test), warn(unused_crate_dependencies))]
5#![cfg_attr(docsrs, feature(doc_cfg))]
6
7#[cfg(test)]
8extern crate self as tronz_contract;
9
10/// Static TRC20 ABI bindings and encode/decode helpers.
11pub mod trc20;
12
13/// Static TRC721 ABI bindings and encode/decode helpers.
14pub mod trc721;
15
16/// Event log decoding helpers for TRON smart contracts.
17pub mod event;
18/// The `sol!` macro (re-exported from alloy) for generating Solidity type bindings.
19pub use alloy_sol_types::sol;
20/// Re-exported alloy ABI types for use with generated calls.
21pub use alloy_sol_types::{SolCall, SolError, SolEvent, SolInterface, SolValue};
22#[cfg(feature = "provider")]
23pub use event::{decode_log, decode_logs, log_matches, topic0_set};
24pub use tronz_primitives::{Address, Bytes, U256};
25/// The `tron_sol!` macro — generates provider-bound, type-safe contract bindings.
26///
27/// Requires the `provider` feature (enabled by default via the `tronz` meta-crate).
28pub use tronz_sol_macro::tron_sol;
29
30#[cfg(feature = "provider")]
31mod error;
32#[cfg(feature = "provider")]
33pub use error::{ContractError, Result};
34
35#[cfg(feature = "provider")]
36mod interface;
37#[cfg(feature = "provider")]
38pub use alloy_dyn_abi::DecodedEvent;
39#[cfg(feature = "provider")]
40pub use interface::Interface;
41
42#[cfg(feature = "provider")]
43mod instance;
44#[cfg(feature = "provider")]
45pub use instance::{ContractExt, ContractInstance};
46
47#[cfg(feature = "provider")]
48mod call;
49#[cfg(feature = "provider")]
50pub use call::CallBuilder;
51
52#[cfg(feature = "provider")]
53mod sol_call;
54#[cfg(feature = "provider")]
55pub use sol_call::TronCallBuilder;
56
57#[cfg(feature = "provider")]
58mod event_filter;
59#[cfg(feature = "provider")]
60pub use event_filter::TronEventFilter;
61
62/// Internal re-exports referenced by [`tron_sol!`]-generated code. Not a stable API.
63#[cfg(feature = "provider")]
64#[doc(hidden)]
65pub mod __private {
66    pub use alloy_primitives;
67    pub use alloy_sol_types;
68    pub use tronz_primitives;
69    pub use tronz_provider;
70
71    pub use crate::{
72        deploy::DeployBuilder, error::Result, event_filter::TronEventFilter,
73        instance::ContractInstance, sol_call::TronCallBuilder,
74    };
75}
76
77#[cfg(feature = "provider")]
78mod deploy;
79#[cfg(feature = "provider")]
80pub use deploy::DeployBuilder;
81#[cfg(feature = "provider")]
82pub use trc20::{Trc20Error, Trc20Ext, Trc20Instance};
83#[cfg(feature = "provider")]
84pub use trc721::{Trc721Error, Trc721Ext, Trc721Instance};