Skip to main content

chaincodec_evm/
lib.rs

1//! # chaincodec-evm
2//!
3//! EVM ABI decoder implementing the `ChainDecoder` trait.
4//! Handles Ethereum, Arbitrum, Base, Polygon, Optimism and any EVM-compatible chain.
5//!
6//! ## Implementation notes
7//! - Uses `alloy-core` for ABI decode (replaces the legacy `ethabi`)
8//! - Topics[0] → event signature fingerprint (keccak256)
9//! - Topics[1..] → indexed parameters (each 32 bytes, ABI-encoded)
10//! - `data` → non-indexed parameters (ABI-encoded tuple)
11
12pub mod batch;
13pub mod call_decoder;
14pub mod decoder;
15pub mod eip712;
16pub mod encoder;
17pub mod fingerprint;
18pub mod normalizer;
19pub mod proxy;
20
21pub use call_decoder::EvmCallDecoder;
22pub use decoder::EvmDecoder;
23pub use encoder::EvmEncoder;
24pub use eip712::{Eip712Parser, TypedData};
25pub use proxy::{classify_from_storage, detect_eip1167_clone, ProxyInfo, ProxyKind};