{
  "sources": [
    {
      "url": "https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/simulation/engine.rs",
      "quote": "        for t in 0..self.config.n_steps {\n            // 1. Generate new fair price\n            let fair_price = price_process.step();\n\n"
    },
    {
      "url": "https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/market/arbitrageur.rs",
      "quote": "use crate::amm::CFMM;\n\n/// Result of an arbitrage attempt.\n#[derive(Debug, Clone)]\n"
    },
    {
      "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;\n\n        let y1_amount = if denominator == 0.0 {\n"
    },
    {
      "url": "https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/amm/cfmm.rs",
      "quote": "use crate::evm::EVMStrategy;\nuse crate::types::trade_info::TradeInfo;\nuse crate::types::wad::Wad;\n\n"
    },
    {
      "url": "https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/market/retail.rs",
      "quote": "use rand::SeedableRng;\nuse rand_distr::{Distribution, LogNormal, Poisson};\nuse rand_pcg::Pcg64;\n\n"
    },
    {
      "url": "https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/types/wad.rs",
      "quote": "use std::ops::{Add, Sub, Mul, Div, Neg};\n\n/// WAD precision constant (1e18)\npub const WAD: i128 = 1_000_000_000_000_000_000;\n"
    },
    {
      "url": "https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_competition/competition/match.py",
      "quote": "            rng = np.random.default_rng(seed=i)\n\n            retail_mean_size = (\n                rng.uniform(self.variance.retail_mean_size_min, self.variance.retail_mean_size_max)\n"
    },
    {
      "url": "https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_competition/competition/config.py",
      "quote": "from dataclasses import dataclass\nimport multiprocessing\nimport os\n\n"
    },
    {
      "url": "https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/lib.rs",
      "quote": "pub mod types;\npub mod evm;\npub mod amm;\npub mod market;\n"
    },
    {
      "url": "https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/simulation/runner.rs",
      "quote": "use rayon::prelude::*;\n\nuse crate::evm::EVMStrategy;\nuse crate::simulation::engine::{SimulationEngine, SimulationError};\n"
    },
    {
      "url": "https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/types/result.rs",
      "quote": "use pyo3::prelude::*;\nuse std::collections::HashMap;\n\n/// Lightweight step result for charting (minimal memory footprint).\n"
    },
    {
      "url": "https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/market/price_process.rs",
      "quote": "use rand::SeedableRng;\nuse rand_distr::{Distribution, StandardNormal};\nuse rand_pcg::Pcg64;\n\n"
    },
    {
      "url": "https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/contracts/src/VanillaStrategy.sol",
      "quote": "pragma solidity ^0.8.24;\n\nimport {AMMStrategyBase} from \"./AMMStrategyBase.sol\";\nimport {IAMMStrategy, TradeInfo} from \"./IAMMStrategy.sol\";\n"
    },
    {
      "url": "https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_sim_rs/src/types/trade_info.rs",
      "quote": "use crate::types::wad::{Wad, MAX_FEE};\n\n/// Information about an executed trade, passed to EVM strategies.\n#[derive(Debug, Clone, Copy)]\n"
    },
    {
      "url": "https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/amm_competition/cli.py",
      "quote": "import argparse\nimport sys\nfrom pathlib import Path\n\n"
    }
  ]
}
