#[derive(Debug, thiserror::Error)]
pub enum MulticallError {
#[error("Chain ID {0} is not supported by Multicall. Please use an address instead")]
InvalidChainId(u64),
#[error(transparent)]
TransportError(#[from] alloy::transports::TransportError),
#[error(transparent)]
ContractError(#[from] alloy::contract::Error),
#[error("Multicall call reverted but `allowFailure` is false")]
FailedCall,
#[error("Invalid params. Must provide at least one of: address or chain_id.")]
InvalidInitializationParams,
}