Expand description
§chaincodec-evm
EVM ABI decoder implementing the ChainDecoder trait.
Handles Ethereum, Arbitrum, Base, Polygon, Optimism and any EVM-compatible chain.
§Implementation notes
- Uses
alloy-corefor ABI decode (replaces the legacyethabi) - Topics[0] → event signature fingerprint (keccak256)
- Topics[1..] → indexed parameters (each 32 bytes, ABI-encoded)
data→ non-indexed parameters (ABI-encoded tuple)
Re-exports§
pub use call_decoder::EvmCallDecoder;pub use decoder::EvmDecoder;pub use encoder::EvmEncoder;pub use eip712::Eip712Parser;pub use eip712::TypedData;pub use proxy::classify_from_storage;pub use proxy::detect_eip1167_clone;pub use proxy::ProxyInfo;pub use proxy::ProxyKind;
Modules§
- batch
- Rayon-powered batch decode helpers specific to the EVM decoder.
The main batch logic lives in
EvmDecoder::decode_batch, but this module exposes chunk-level utilities for the higher-level batch engine. - call_
decoder - EVM function-call and constructor calldata decoder.
- decoder
EvmDecoder— the ChainDecoder implementation for all EVM chains.- eip712
- EIP-712 Typed Structured Data decoder.
- encoder
- ABI encoder — the inverse of the ABI decoder.
- fingerprint
- EVM event fingerprint computation.
- normalizer
- Converts alloy-core
DynSolValue→ ChainCodecNormalizedValue. - proxy
- EVM proxy contract pattern detection and resolution.