gitextract_xq82mp3m/ ├── .gitignore ├── .gitmodules ├── README.md ├── abi/ │ ├── ERC20.json │ ├── UniswapV2Pool.json │ ├── UniswapV2Router2.json │ ├── UniswapV3Pool.json │ ├── UniswapV3Quoter2.json │ ├── UniswapV3SwapRouter2.json │ └── WETH.json ├── addresses/ │ ├── __init__.py │ ├── arbitrum.py │ ├── ethereum.py │ └── polygon.py ├── configs.py ├── contracts/ │ ├── foundry.toml │ ├── src/ │ │ ├── SimulatorV1.sol │ │ ├── WhackAMoleBotV1.sol │ │ ├── lib/ │ │ │ └── SafeTransfer.sol │ │ └── protocols/ │ │ ├── IERC20.sol │ │ ├── IWETH.sol │ │ ├── curve/ │ │ │ └── ICurvePool.sol │ │ └── uniswap/ │ │ ├── IQuoterV2.sol │ │ ├── IUniswapV2Pair.sol │ │ ├── IUniswapV2Router.sol │ │ ├── IUniswapV3SwapRouter.sol │ │ └── UniswapV2Library.sol │ └── test/ │ └── WhackAMoleBotV1.t.sol ├── data/ │ ├── __init__.py │ ├── cex.py │ ├── cex_streams.py │ ├── dex.py │ ├── dex_streams.py │ └── utils.py ├── examples/ │ └── dex.py ├── execution/ │ ├── WhackAMoleBotV1.json │ ├── __init__.py │ └── dex_order.py ├── external/ │ ├── __init__.py │ ├── influxdb.py │ └── telegram_bot.py ├── main.py ├── requirements.txt ├── simulation/ │ ├── SimulatorV1.json │ ├── __init__.py │ ├── online_simulator.py │ ├── uniswap_v2.py │ └── uniswap_v3.py ├── strategies/ │ └── dex_arb_base.py └── tests/ ├── test_WhackAMoleBotV1.py └── test_simulation.py