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 alloy_json_abi::JsonAbi;
41#[cfg(feature = "provider")]
42pub use interface::Interface;
43#[cfg(feature = "provider")]
44pub use tronz_abi::{
45    TronAbi, TronAbiConversionError, TronAbiEntry, TronAbiEntryType, TronAbiParam,
46    TronAbiStateMutability,
47};
48
49#[cfg(feature = "provider")]
50mod instance;
51#[cfg(feature = "provider")]
52pub use instance::{ContractExt, ContractInstance};
53
54#[cfg(feature = "provider")]
55mod call;
56#[cfg(feature = "provider")]
57pub use call::CallBuilder;
58
59#[cfg(feature = "provider")]
60mod sol_call;
61#[cfg(feature = "provider")]
62pub use sol_call::TronCallBuilder;
63
64#[cfg(feature = "provider")]
65mod event_filter;
66#[cfg(feature = "provider")]
67pub use event_filter::TronEventFilter;
68
69/// Internal re-exports referenced by [`tron_sol!`]-generated code. Not a stable API.
70#[cfg(feature = "provider")]
71#[doc(hidden)]
72pub mod __private {
73    pub use alloy_primitives;
74    pub use alloy_sol_types;
75    pub use tronz_primitives;
76    pub use tronz_provider;
77
78    pub use crate::{
79        deploy::DeployBuilder, error::Result, event_filter::TronEventFilter,
80        instance::ContractInstance, sol_call::TronCallBuilder,
81    };
82}
83
84#[cfg(feature = "provider")]
85mod deploy;
86#[cfg(feature = "provider")]
87pub use deploy::DeployBuilder;
88#[cfg(feature = "provider")]
89pub use trc20::{Trc20Error, Trc20Ext, Trc20Instance};
90#[cfg(feature = "provider")]
91pub use trc721::{Trc721Error, Trc721Ext, Trc721Instance};