use alloy_primitives::Address;
use hashbrown::HashMap;
pub type Addresses = HashMap<u64, AddressList>;
#[derive(Debug, Clone, Hash, PartialEq, Eq, Default)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "serde", serde(rename_all = "PascalCase"))]
pub struct AddressList {
pub address_manager: Address,
pub l1_cross_domain_messenger_proxy: Address,
#[cfg_attr(feature = "serde", serde(alias = "L1ERC721BridgeProxy"))]
pub l1_erc721_bridge_proxy: Address,
pub l1_standard_bridge_proxy: Address,
pub l2_output_oracle_proxy: Option<Address>,
#[cfg_attr(feature = "serde", serde(alias = "OptimismMintableERC20FactoryProxy"))]
pub optimism_mintable_erc20_factory_proxy: Address,
pub optimism_portal_proxy: Address,
pub system_config_proxy: Address,
pub proxy_admin: Address,
pub anchor_state_registry_proxy: Option<Address>,
#[cfg_attr(feature = "serde", serde(alias = "DelayedWETHProxy"))]
pub delayed_weth_proxy: Option<Address>,
pub dispute_game_factory_proxy: Option<Address>,
pub fault_dispute_game: Option<Address>,
#[cfg_attr(feature = "serde", serde(alias = "MIPS"))]
pub mips: Option<Address>,
pub permissioned_dispute_game: Option<Address>,
pub preimage_oracle: Option<Address>,
}