1#![allow(clippy::module_inception)]
12#![warn(missing_docs)]
13
14mod constructor;
15mod contract;
16mod decoder;
17mod encoder;
18mod errors;
19mod event;
20mod event_param;
21mod filter;
22mod function;
23mod log;
24mod operation;
25mod param;
26pub mod param_type;
27mod signature;
28mod state_mutability;
29pub mod token;
30mod tuple_param;
31mod util;
32
33#[cfg(test)]
34mod tests;
35
36pub use crate::{
37 constructor::Constructor,
38 contract::{Contract, Events, Functions},
39 decoder::decode,
40 encoder::encode,
41 errors::{Error, Result},
42 event::Event,
43 event_param::EventParam,
44 filter::{RawTopicFilter, Topic, TopicFilter},
45 function::Function,
46 log::{Log, LogFilter, LogParam, ParseLog, RawLog},
47 param::Param,
48 param_type::ParamType,
49 state_mutability::StateMutability,
50 token::Token,
51 tuple_param::TupleParam,
52};
53
54pub type Word = [u8; 32];
56
57pub type Address = ethereum_types::Address;
59
60pub type FixedBytes = Vec<u8>;
62
63pub type Bytes = Vec<u8>;
65
66pub type Int = ethereum_types::U256;
68
69pub type Uint = ethereum_types::U256;
71
72pub type Hash = ethereum_types::H256;
74
75pub trait FunctionOutputDecoder {
77 type Output;
79
80 fn decode(&self, _: &[u8]) -> Result<Self::Output>;
82}