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:
parent
8d6dab197f
commit
fcd8f77693
1 changed files with 11 additions and 0 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue