{
  "sources": [
    {
      "url": "https://api.imd.fun/artifacts/2d4b30bbc6bffbc500b37ce5e8a1ac821d6513c52a6a2377b4be3c11d97717fb",
      "quote": "\"code_sha256\": \"3c07bdcd221ac25729c3ebc92b21ac9e2014510ecb85816c4391ed81e933291f\""
    },
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/config.py",
      "quote": "n_steps: int = 2_000"
    },
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/runner.py",
      "quote": "config = sample_config(base, var, seed=seed)\n        engine = SimulationEngine(config, strategy_factory, seed=seed)"
    },
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/engine.py",
      "quote": "actions = strategy.on_step(state)\n                market.apply_actions(actions, step=step)"
    },
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/market.py",
      "quote": "if self.free_cash() + EPSILON < reserved_cash:\n            raise OrderBookError(\"Insufficient free cash for order collateral\")"
    },
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/types.py",
      "quote": "class PlaceOrder:\n    side: Side\n    price_ticks: int\n    quantity: float"
    }
  ]
}
