diff --git a/.gitignore b/.gitignore index 5fece8b..ad9e774 100644 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,6 @@ logs/ # Holdout scenarios (cloned at runtime by evaluate.sh) .holdout-scenarios/ + +# Local deployment addresses (generated per-run by bootstrap scripts) +onchain/deployments-local.json diff --git a/onchain/deployments-local.json b/onchain/deployments-local.json deleted file mode 100644 index 0868236..0000000 --- a/onchain/deployments-local.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "contracts": { - "Kraiken": "0xff196f1e3a895404d073b8611252cf97388773a7", - "Stake": "0xc36e784e1dff616bdae4eac7b310f0934faf04a4", - "LiquidityManager": "0x33d10f2449ffede92b43d4fba562f132ba6a766a", - "OptimizerProxy": "0x1cf34658e7df9a46ad61486d007a8d62aec9891e" - } -} diff --git a/tools/push3-evolution/fitness.sh b/tools/push3-evolution/fitness.sh index be5a3c0..3b1b083 100755 --- a/tools/push3-evolution/fitness.sh +++ b/tools/push3-evolution/fitness.sh @@ -178,22 +178,29 @@ fi log "Optimizer deployed and upgraded" # ============================================================================= -# Step 4 — Read deployment addresses +# Step 4 — Read deployment addresses from broadcast JSON # -# DeployLocal.sol writes deterministic addresses to deployments-local.json when -# run against a fresh Anvil + standard mnemonic. +# deploy-optimizer.sh runs DeployLocal.sol which writes a broadcast JSON file. +# We read contract addresses from there rather than relying on a potentially +# stale committed deployments-local.json. # ============================================================================= -DEPLOYMENTS="$ONCHAIN_DIR/deployments-local.json" -[ -f "$DEPLOYMENTS" ] || fail2 "deployments-local.json not found — did DeployLocal.sol run?" +CHAIN_ID="$(cast chain-id --rpc-url "$RPC_URL")" +BROADCAST_JSON="$ONCHAIN_DIR/broadcast/DeployLocal.sol/$CHAIN_ID/run-latest.json" +[ -f "$BROADCAST_JSON" ] || fail2 "Broadcast JSON not found at $BROADCAST_JSON — did DeployLocal.sol run?" -LM_ADDR=$(python3 -c " -import json -d = json.load(open('$DEPLOYMENTS')) -print(d['contracts']['LiquidityManager']) -" 2>/dev/null) || fail2 "Failed to read LiquidityManager from deployments-local.json" +LM_ADDR="$(python3 - "$BROADCAST_JSON" <<'PYEOF' +import json, sys +with open(sys.argv[1]) as f: + data = json.load(f) +for tx in data.get('transactions', []): + if (tx.get('contractName') or '').lower() == 'liquiditymanager': + print(tx.get('contractAddress', '')) + break +PYEOF +)" || fail2 "Failed to read LiquidityManager from broadcast JSON" -[ -n "$LM_ADDR" ] || fail2 "LiquidityManager address is empty in deployments-local.json" +[ -n "$LM_ADDR" ] || fail2 "LiquidityManager address not found in broadcast JSON" log "LiquidityManager: $LM_ADDR" # =============================================================================