{"sources":[{"url":"https://api.imd.fun/artifacts/fd2f147e94f3523e4c4f91e43dc98b88e9ce8ef1060d2939367445711154a16a","quote":"{\"item\":\"copy-b\",\"batch\":\"e04-a-u1-give\",\"valid\":true,\"submission\":false,\"status\":\"all gates pass (isArb 11856/11856; closed loop max 4.58e-7 bps vs 0.01; sanity pass; validate; 21055 B; 6 of 32 slots; no assembly; engine afterSwap peak 207569, 0 failures)\",\"change\":\"One rule added to frozen lookup-u1 (Strategy.sol sha256 69c361ef...), in afterSwap only: on a callback not read as arbitrage, after "},{"url":"https://api.imd.fun/artifacts/8a6e303b662e1a5ea9bb47f31acedd3988ef65b3ddb66d074517aa59ad41ca40","quote":"# qt1: Taylor's qm tables (qm-spline compression) in trim-2's contract\n\n**Summary.** I replaced trim-2's network with the qm-spline lookup and kept trim-2's filter, 3-slot state and fee conversion. The new contract reproduces the reference's fees: on Gate F (50 runs, 100,000 callbacks) the max |fee diff| is **5.83e-06 bps**. Its deployed runtime is **20,605 bytes** and its pyrevm peak is **194,051"},{"url":"https://raw.githubusercontent.com/gtmcknight/amm-sim/main/research/setup.sh","quote":"#!/bin/sh\n# Setup block of IMD goals 282fbc03 and amm-filter-1: run once from the amm-challenge checkout root; then `. scratch/env.sh`.\nset -eu;R=$PWD/scratch;mkdir -p $R/tmp $R/bin $R/solcx\necho \"export TMPDIR=$R/tmp XDG_CACHE_HOME=$R/xc UV_CACHE_DIR=$R/uvc UV_PYTHON_INSTALL_DIR=$R/uvpy SOLCX_BINARY_PATH=$R/solcx VIRTUAL_ENV=$PWD/.venv PATH=$PWD/.venv/bin:$R/bin:\\$PATH\" >$R/env.sh;. $R/env.sh\ncom"},{"url":"https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_competition/competition/config.py","quote":"\"\"\"Shared configuration for baseline simulations and variance.\"\"\"\n\nfrom dataclasses import dataclass\nimport multiprocessing\nimport os\n\nimport amm_sim_rs\n\nfrom amm_competition.competition.match import HyperparameterVariance\n\n\n@dataclass(frozen=True)\nclass BaselineSimulationSettings:\n    n_simulations: int\n    n_steps: int\n    initial_price: float\n    initial_x: float\n    initial_y: float\n    gbm_mu"},{"url":"https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_competition/competition/match.py","quote":"\"\"\"Match runner for baseline vs submission simulations using Rust engine.\"\"\"\n\nfrom dataclasses import dataclass, field\nfrom decimal import Decimal\nfrom typing import Optional\n\nimport amm_sim_rs\n\nfrom amm_competition.evm.adapter import EVMStrategyAdapter\n\n\n@dataclass\nclass HyperparameterVariance:\n    \"\"\"Configuration for hyperparameter variance across simulations.\"\"\"\n    retail_mean_size_min: float"},{"url":"https://raw.githubusercontent.com/gtmcknight/amm-sim/66604b3426d8e97a73e2c39940b9b4dece51cc73/research/tell/README.md","quote":"# Simple AMM: telling the arbitrageur from retail\n\nWritten 2026-11-10. `../solved` left one thing between this network and first place: whether the first trade of a step is the arbitrageur's or a retail order. The reference guesses and is wrong on 16%. This folder shows the trade's own numbers say which it is, with a test a contract can run, and what the solved policy scores with it. It is a start"}]}