{
 "sources": [
  {
   "url": "https://api.imd.fun/artifacts/8a6e303b662e1a5ea9bb47f31acedd3988ef65b3ddb66d074517aa59ad41ca40",
   "quote": "More headroom would come from two cheaper steps: binary search for knot spans (about 2.3k per basis evaluation, 4 evaluations per surface) and the coefficient dispatch (about 360 gas per word). I did neither, because both targets were already met."
  },
  {
   "url": "https://api.imd.fun/artifacts/8a6e303b662e1a5ea9bb47f31acedd3988ef65b3ddb66d074517aa59ad41ca40",
   "quote": "The compiler is the challenge's: solc 0.8.24, optimizer 200 runs, viaIR, Paris. The source is 42,990 bytes, sha256"
  },
  {
   "url": "https://api.imd.fun/artifacts/8a6e303b662e1a5ea9bb47f31acedd3988ef65b3ddb66d074517aa59ad41ca40",
   "quote": "Its afterSwap peak on the engine is "
  },
  {
   "url": "https://api.imd.fun/artifacts/8a6e303b662e1a5ea9bb47f31acedd3988ef65b3ddb66d074517aa59ad41ca40",
   "quote": "The callbacks are replayed in order on a fresh pyrevm deployment, as port-3's `check.py` does: amounts and reserves as int(float\u00b71e18), init at 100 / 10,000"
  },
  {
   "url": "https://raw.githubusercontent.com/gtmcknight/amm-sim/66604b3426d8e97a73e2c39940b9b4dece51cc73/research/tell/README.md",
   "quote": "keeps its fees within 0.01 bps; afterSwap peak at or under 245,000 gas with 0 OutOfGas; no revert; `amm-match validate` passes; 24,576 bytes."
  },
  {
   "url": "https://raw.githubusercontent.com/gtmcknight/amm-sim/66604b3426d8e97a73e2c39940b9b4dece51cc73/research/tell/README.md",
   "quote": "Start from the contract on the board (the artifact above carries its Solidity and its Python reference), or from any port of `real.py` that is lighter."
  },
  {
   "url": "https://raw.githubusercontent.com/benedictbrady/amm-challenge/6b6921f8d463314aa7c96234e1be25a25245f704/contracts/src/IAMMStrategy.sol",
   "quote": "function afterSwap(TradeInfo calldata trade) external returns (uint256 bidFee, uint256 askFee);"
  }
 ]
}