// SPDX-License-Identifier: GPL-3.0-or-later pragma solidity ^0.8.19; import { DeployBase } from "./DeployBase.sol"; /** * @title DeployBaseMainnet * @notice Deployment script for Base mainnet * @dev Run with: forge script script/DeployBaseMainnet.sol --rpc-url $BASE_RPC --broadcast --verify * @dev IMPORTANT: Review all parameters carefully before mainnet deployment */ contract DeployBaseMainnet is DeployBase { constructor() { // Base mainnet configuration // // feeDest — production fee-destination (a team-controlled contract on Base mainnet). // This address has contract bytecode on Base mainnet, so // LiquidityManager.setFeeDestination() will set feeDestinationLocked=true // on the first call (see LiquidityManager.sol line 154). That is the // intended production path — once set to a contract, changes are locked. // // NOTE: FitnessEvaluator.t.sol intentionally uses a *different* FEE_DEST // (0x8A91...9383) because on a mainnet fork the locking behaviour breaks // snapshot/revert test cycles. The test address is NOT a production value. // See FitnessEvaluator.t.sol:146-150 for the full rationale. feeDest = 0xf6a3eef9088A255c32b6aD2025f83E57291D9011; weth = 0x4200000000000000000000000000000000000006; // WETH on Base v3Factory = 0x33128a8fC17869897dcE68Ed026d694621f6FDfD; // Uniswap V3 Factory on Base // Deploy fresh Optimizer (UUPS proxy) optimizer = address(0); } }