diff --git a/STATE.md b/STATE.md index 9091e19..b5af03b 100644 --- a/STATE.md +++ b/STATE.md @@ -30,3 +30,4 @@ - [2026-03-14] No mainnet VWAP bootstrap runbook (#728) - [2026-03-14] fitness.sh individual-scoring path still silences errors (#766) - [2026-03-14] batch-eval.sh MANIFEST_DIR (mktemp -d) has no cleanup trap (#763) +- [2026-03-14] bootstrap.sh anvil_setCode guard now targets correct feeDest 0xf6a3... (#760) diff --git a/containers/bootstrap.sh b/containers/bootstrap.sh index 4130b59..fc18ba9 100755 --- a/containers/bootstrap.sh +++ b/containers/bootstrap.sh @@ -154,8 +154,10 @@ main() { # as a contract and locks permanently. Strip code so they behave as EOAs. bootstrap_log "Clearing code from deployer + feeDest (fork safety)" cast rpc --rpc-url "$ANVIL_RPC" anvil_setCode "$DEPLOYER_ADDR" "0x" 2>/dev/null || true - # feeDest = address(uint160(uint256(keccak256("harb.local.feeDest")))) - cast rpc --rpc-url "$ANVIL_RPC" anvil_setCode "0x8A9145E1Ea4C4d7FB08cF1011c8ac1F0e10F9383" "0x" 2>/dev/null || true + # 0xf6a3... carries 171 bytes of code on Base mainnet and may also carry code on Base + # Sepolia. Clear it before setFeeDestination is called so LiquidityManager does not + # permanently lock feeDestinationLocked (#760). + cast rpc --rpc-url "$ANVIL_RPC" anvil_setCode "$FEE_DEST" "0x" 2>/dev/null || true derive_txnbot_wallet run_forge_script diff --git a/onchain/script/DeployLocal.sol b/onchain/script/DeployLocal.sol index ced4bed..09d5080 100644 --- a/onchain/script/DeployLocal.sol +++ b/onchain/script/DeployLocal.sol @@ -23,6 +23,10 @@ contract DeployLocal is Script { uint24 internal constant FEE = uint24(10_000); // Configuration + // NOTE: 0xf6a3... carries 171 bytes of code on Base mainnet and has been confirmed to + // also carry code on Base Sepolia. bootstrap.sh erases it via anvil_setCode before + // setFeeDestination is called so the fork-local LiquidityManager does not permanently + // lock feeDestinationLocked. See issue #760. address internal constant feeDest = 0xf6a3eef9088A255c32b6aD2025f83E57291D9011; address internal constant weth = 0x4200000000000000000000000000000000000006; address internal constant v3Factory = 0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24; diff --git a/scripts/harb-evaluator/bootstrap-light.sh b/scripts/harb-evaluator/bootstrap-light.sh index 425ef24..4c6fd7f 100755 --- a/scripts/harb-evaluator/bootstrap-light.sh +++ b/scripts/harb-evaluator/bootstrap-light.sh @@ -28,7 +28,7 @@ log "Anvil running" DEPLOYER=$($CAST wallet address --mnemonic "test test test test test test test test test test test junk" 2>/dev/null) log "Clearing code from deployer ($DEPLOYER) + feeDest" $CAST rpc --rpc-url "$RPC_URL" anvil_setCode "$DEPLOYER" "0x" 2>/dev/null || true -$CAST rpc --rpc-url "$RPC_URL" anvil_setCode "0x8A9145E1Ea4C4d7FB08cF1011c8ac1F0e10F9383" "0x" 2>/dev/null || true +$CAST rpc --rpc-url "$RPC_URL" anvil_setCode "0xf6a3eef9088A255c32b6aD2025f83E57291D9011" "0x" 2>/dev/null || true # 3. Deploy contracts — capture output for addresses log "Deploying contracts..."