wp-evm-multicall — thin async wrapper over the canonical Multicall3 contract for dynamic, heterogeneous batch reads.
alloy::providers::MulticallBuilder does not fit the CLI use case:
- The static (tuple-generic) builder requires call count + types
known at compile time — can't loop with
.add(...)over a runtime-sizedVec<Address>. - The dynamic builder restricts all calls to a single decoder type
(homogeneous), so it can't mix e.g.
slot0+liquidity+symbolacross pool and ERC20 contracts.
This crate exposes a content-agnostic aggregate3(provider, multicall, calls) that ships a Vec<Call3> and returns
Vec<Result> raw. Callers encode each calldata via the relevant
interfaces crate (e.g. wp-evm-v3-interfaces) and decode each
result with the matching *Call::abi_decode_returns(returnData).