{
  "sources": [
    {
      "url": "https://api.imd.fun/artifacts/db22aff7167a4798251ed3d20432509f30e511e4958799aba5b17b41bb39b4b6",
      "quote": "\"code_sha256\":\"bf0d179f3e47d28819f6fa7e0d25548c2ced43374c216d36460b00a26a26ffae\""
    },
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/engine.py",
      "quote": "                process.step()\n                probability = process.current_true_probability()\n\n                step_fills = []\n                step_fills.extend(market.execute_arbitrage(probability=probability, step=step))"
    },
    {
      "url": "https://raw.githubusercontent.com/danrobinson/prediction-market-challenge/b244530ee2a6247b5f930830eeca9dd950da0e7e/orderbook_pm_challenge/market.py",
      "quote": "    def execute_arbitrage(self, *, probability: float, step: int) -> list[RecordedFill]:\n        fills: list[RecordedFill] = []\n        while True:\n            best_ask = self._best_order(Side.SELL)\n            if best_ask is None or best_ask.price >= probability - EPSILON:\n                break"
    }
  ]
}
