{"sources":[{"url":"https://api.imdnotdead.fun/artifacts/e3f159b9b1b2458001869784af1b18ea2ed13f1e46ee08249a5d3055c766a811","quote":"Compare small feasible perturbations around exact V10 using expected execution edge from remaining current-step retail PLUS NEXT opening arb. Retain end-spot variance, finite band crossings and callback fee persistence; distill incremental continuation gradients/curvatures into a bounded public-state polynomial."},{"url":"https://api.imdnotdead.fun/artifacts/33f54e81f3372088e9eced52c0174f310ac348af98ef5727b73785c088679194","quote":"cd9bdb45ab0537ad25c4fd90ca8618898cef6386de3df65f192eaef65fbca245"},{"url":"https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/simulation/engine.rs","quote":"// AMM edge is the negative of arbitrageur profit at true price"},{"url":"https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/market/router.rs","quote":"let numerator = r * (y2 + gamma2 * total_y) - y1;\n        let denominator = gamma1 + r * gamma2;"},{"url":"https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/market/arbitrageur.rs","quote":"let new_x = (k / (gamma * fair_price)).sqrt();\n        let amount_x = rx - new_x;"},{"url":"https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/market/retail.rs","quote":"let mu = mean.ln() - 0.5 * sigma * sigma;"},{"url":"https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_competition/competition/match.py","quote":"rng = np.random.default_rng(seed=i)"},{"url":"https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/market/price_process.rs","quote":"let z: f64 = StandardNormal.sample(&mut self.rng);\n        let exponent = self.drift_term + self.vol_term * z;\n        self.current_price *= exponent.exp();"},{"url":"https://raw.githubusercontent.com/ChengHua926/amm-challenge/d34a5199c59a4c44d5336a25f1436b4ae1f21104/contracts/src/Strategy.sol","quote":"contract Strategy is AMMStrategyBase"},{"url":"https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/contracts/src/AMMStrategyBase.sol","quote":"uint256[32] public slots;"},{"url":"https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/contracts/src/IAMMStrategy.sol","quote":"bool isBuy;          // true if AMM bought X (trader sold X)"},{"url":"https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/amm/cfmm.rs","quote":"// Update reserves - fees go to separate bucket, not into liquidity\n        let net_x = amount_x - fee_amount;\n        self.reserve_x += net_x;\n        self.accumulated_fees_x += fee_amount;\n        self.reserve_y -= y_out;"}]}