fix: DeployBaseMainnet.sol:15 may need FEE_DEST update (#795)

Document the FEE_DEST derivation in DeployBaseMainnet.sol and explain
why FitnessEvaluator.t.sol intentionally uses a different address.

The production address (0xf6a3...D9011) is correct — it has contract
bytecode on Base mainnet, so setFeeDestination() locks it permanently.
The test uses a keccak-derived EOA (0x8A91...9383) to avoid the locking
behaviour breaking snapshot/revert cycles in fork tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
johba 2026-03-22 01:51:39 +00:00
parent 8d6dab197f
commit fcd8f77693

View file

@ -12,6 +12,17 @@ import { DeployBase } from "./DeployBase.sol";
contract DeployBaseMainnet is DeployBase {
constructor() {
// Base mainnet configuration
//
// feeDest production fee-destination wallet (EOA controlled by the team).
// 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