##############################################
#               ↓  Required  ↓               #
##############################################

# NOTE: The deploy config must be provided as a first argument to `just run`!

# The network to deploy the contracts to.
# Must be one of 'mainnet', 'sepolia'
NETWORK=

# Etherscan API key used to verify contract bytecode
ETHERSCAN_API_KEY=

# RPC URL for the L1 network that matches $NETWORK
ETH_RPC_URL=

# Private key used to deploy the new contracts for this upgrade
PRIVATE_KEY=

# Address of deployed `PreimageOracle` contract.
PREIMAGE_ORACLE_ADDR=

# Address of deployed `AnchorStateRegistry` proxy contract.
ANCHOR_STATE_REGISTRY_PROXY_ADDR=

# Address of the `SuperchainConfig` proxy contract.
SUPERCHAIN_CONFIG_PROXY_ADDR=

# Address of deployed `ProxyAdmin` contract.
PROXY_ADMIN_ADDR=

# Address of deployed `SystemConfig` proxy contract.
SYSTEM_CONFIG_PROXY_ADDR=

# Address of deployed `DisputeGameFactory` proxy contract.
DISPUTE_GAME_FACTORY_PROXY_ADDR=

# Whether or not to deploy and include any fault proof contracts in the upgrade.
#
# If 'true', the `PermissionedDisputeGame` contract will be deployed and included in the upgrade.
# If 'false', the `PermissionedDisputeGame` contract will not be deployed or included in the upgrade.
#
# Must be one of 'true', 'false'
# Cannot be 'false' if `USE_PERMISSIONLESS_FAULT_PROOFS` is 'true'
USE_FAULT_PROOFS=true

# Whether or not to deploy and include the `FaultDisputeGame` contract in the upgrade.
#
# If 'true', the `FaultDisputeGame` contract will be deployed and included in the upgrade.
# If 'false', the `FaultDisputeGame` contract will not be deployed or included in the upgrade.
#
# Must be one of 'true', 'false'
# Cannot be 'true' if `USE_FAULT_PROOFS` is 'false'
USE_PERMISSIONLESS_FAULT_PROOFS=true

###################################################
#                 ↓  Optional  ↓                  #
# Do not set if you don't know what you're doing. #
###################################################

# Address of the deployed `SystemConfig` implementation for Holocene.
#
# This implementation is reused across L2 deployments based on the L1 @ `ETH_RPC_URL`.
# If you are not the first to deploy Holocene on this L1, this field should be set to
# the existing deployment address.
#
# If this field is not set, the `superchain-registry` will be consulted for the implementation address.
# If this field is set to the zero address, a new `SystemConfig` implementation will be deployed.
SYSTEM_CONFIG_IMPL_ADDR=

# Address of the deployed `MIPS` implementation for Holocene.
#
# This implementation is reused across L2 deployments based on the L1 @ `ETH_RPC_URL`.
# If you are not the first to deploy Holocene on this L1, this field should be set to
# the existing deployment address.
#
# If this field is not set, the `superchain-registry` will be consulted for the implementation address.
# If this field is set to the zero address, a new `MIPS` implementation will be deployed.
MIPS_IMPL_ADDR=

# Address of deployed `DelayedWETH` implementation contract.
#
# This implementation is reused across L2 deployments based on the L1 @ `ETH_RPC_URL`.
# If you are not the first to deploy permissionless fault proofs on L1, this field should be
# set to the existing deployment address.
#
# If this field is not set, the `superchain-registry` will be consulted for the implementation address.
# If this field is set to the zero address, a new `DelayedWETH` implementation will be deployed.
DELAYED_WETH_IMPL_ADDR=
