SYMBOL INDEX (100 symbols across 14 files) FILE: data/cex.py class CEX (line 5) | class CEX: method __init__ (line 13) | def __init__(self, trading_symbols: List[str]): FILE: data/cex_streams.py class CexStream (line 17) | class CexStream: method __init__ (line 28) | def __init__(self, method publish (line 37) | def publish(self, data: Any): method start_stream (line 41) | def start_stream(self): method stream_binance_usdm_orderbook (line 44) | async def stream_binance_usdm_orderbook(self): method stream_okx_usdm_orderbook (line 60) | async def stream_okx_usdm_orderbook(self): method stream_bybit_usdm_orderbook (line 75) | async def stream_bybit_usdm_orderbook(self): FILE: data/dex.py class DexBase (line 29) | class DexBase: method __init__ (line 31) | def __init__(self, method load (line 124) | def load(self): method _load_pool_data (line 131) | def _load_pool_data(self): method _generate_swap_paths (line 208) | def _generate_swap_paths(self): method __sample_pools (line 293) | def __sample_pools(self, index_arr: np.ndarray, in_out: List[int]) -> ... method __generate_paths (line 337) | def __generate_paths(self, pool_samples: Dict[int, List[List[List[int]... class NoSymbolError (line 407) | class NoSymbolError(Exception): method __init__ (line 409) | def __init__(self, msg: str): method __str__ (line 412) | def __str__(self): class DEX (line 416) | class DEX(DexBase): method __init__ (line 418) | def __init__(self, method get_index (line 437) | def get_index(self, method get_price (line 451) | def get_price(self, method get_symbols_to_update (line 468) | def get_symbols_to_update(self, token0: str, token1: str) -> List[str]: method update_price_for_symbol (line 488) | def update_price_for_symbol(self, chain: str, symbol: str): method update_reserves (line 523) | def update_reserves(self, method update_sqrt_price (line 540) | def update_sqrt_price(self, method debug_message (line 553) | def debug_message(self, FILE: data/dex_streams.py function default_message_format (line 24) | def default_message_format(symbol: str, class DexStream (line 53) | class DexStream: method __init__ (line 55) | def __init__(self, method publish (line 79) | def publish(self, data: Any): method start_streams (line 83) | def start_streams(self): method stream_uniswap_v2_events (line 107) | async def stream_uniswap_v2_events(self, chain: str): method stream_uniswap_v3_events (line 163) | async def stream_uniswap_v3_events(self, chain: str): method stream_new_blocks (line 220) | async def stream_new_blocks(self, chain: str): FILE: data/utils.py function reconnecting_websocket_loop (line 7) | async def reconnecting_websocket_loop(stream_fn: Callable, tag: str): function calculate_next_block_base_fee (line 22) | def calculate_next_block_base_fee(block: Dict[str, Any]): FILE: execution/dex_order.py class DexOrder (line 35) | class DexOrder: method __init__ (line 43) | def __init__(self, method send_bundle (line 87) | async def send_bundle(self, method transfer_in (line 134) | async def transfer_in(self, method transfer_out (line 160) | async def transfer_out(self, method approve_handlers (line 184) | async def approve_handlers(self, method make_params (line 212) | def make_params(self, method _make_buy_params (line 224) | def _make_buy_params(self, method _make_sell_params (line 261) | def _make_sell_params(self, path: List[List[int]], pools: List[int]): method send_order (line 293) | async def send_order(self, FILE: external/influxdb.py class InfluxDB (line 15) | class InfluxDB: method __init__ (line 21) | def __init__(self, method send (line 43) | async def send(self, measurement: str, data: Dict[str, float]): method close (line 55) | async def close(self): function test_send (line 60) | async def test_send(): FILE: external/telegram_bot.py class Telegram (line 12) | class Telegram: method __init__ (line 14) | def __init__(self, method get_updates (line 27) | def get_updates(self): method send (line 35) | async def send(self, message: str): function test_send (line 40) | async def test_send(): FILE: simulation/online_simulator.py class OnlineSimulator (line 19) | class OnlineSimulator: method __init__ (line 26) | def __init__(self, method make_params (line 72) | def make_params(self, method _make_buy_params (line 84) | def _make_buy_params(self, method _make_sell_params (line 121) | def _make_sell_params(self, path: List[List[int]], pools: List[int]): method simulate (line 153) | def simulate(self, chain: str, params: List[Dict[str, Any]]) -> int: FILE: simulation/uniswap_v2.py class UniswapV2Simulator (line 1) | class UniswapV2Simulator: method __init__ (line 3) | def __init__(self): method reserves_to_price (line 6) | def reserves_to_price(self, method get_amount_out (line 22) | def get_amount_out(self, method get_amount_in (line 42) | def get_amount_in(self, method get_max_amount_in (line 53) | def get_max_amount_in(self, FILE: simulation/uniswap_v3.py class UniswapV3Simulator (line 5) | class UniswapV3Simulator: method __init__ (line 25) | def __init__(self): method sqrtx96_to_tick (line 28) | def sqrtx96_to_tick(self, sqrtx96: float): method sqrtx96_to_price (line 36) | def sqrtx96_to_price(self, method tick_to_price (line 50) | def tick_to_price(self, method tick_to_price_range (line 56) | def tick_to_price_range(self, method get_amount_out (line 71) | def get_amount_out(self): method get_amount_in (line 74) | def get_amount_in(self): FILE: strategies/dex_arb_base.py function cycle_name (line 26) | def cycle_name(pools_1: List[int], function dex_stream_process (line 51) | def dex_stream_process(publisher: aioprocessing.AioQueue, class Pending (line 113) | class Pending: method __init__ (line 115) | def __init__(self): method can_add (line 118) | def can_add(self): method get_pending (line 125) | def get_pending(self): method add_pending (line 128) | def add_pending(self, pending: Dict[str, Any]): method set_order_processing (line 131) | def set_order_processing(self): method delete_pending (line 134) | def delete_pending(self): function strategy (line 138) | async def strategy(subscriber: aioprocessing.AioQueue, function main (line 413) | async def main(): FILE: tests/test_WhackAMoleBotV1.py class WhackAMoleBotV1Tests (line 21) | class WhackAMoleBotV1Tests(TestCase): method setUp (line 56) | def setUp(self): method test_recover_tokens (line 142) | def test_recover_tokens(self): method test_v2_swap (line 170) | def test_v2_swap(self): method test_v3_swap (line 207) | def test_v3_swap(self): method test_2_hop_swaps (line 243) | def test_2_hop_swaps(self): method test_n_hop_swap_gas (line 295) | def test_n_hop_swap_gas(self): method test_price_impact_simulation (line 366) | def test_price_impact_simulation(self): FILE: tests/test_simulation.py class SimulationTests (line 22) | class SimulationTests(TestCase): method setUp (line 60) | def setUp(self): method test_sim_v3_get_amount_out (line 150) | def test_sim_v3_get_amount_out(self):