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;