From ff861fc818c4dd9c9c2c07498a30d0b8f2e5aca4 Mon Sep 17 00:00:00 2001 From: elicb Date: Mon, 2 May 2022 11:37:56 -0700 Subject: [PATCH] removing KeyError cases from _get_bot_address --- mev_inspect/jit_liquidity.py | 37 +++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/mev_inspect/jit_liquidity.py b/mev_inspect/jit_liquidity.py index 1a1cdd2..b38041a 100644 --- a/mev_inspect/jit_liquidity.py +++ b/mev_inspect/jit_liquidity.py @@ -135,7 +135,6 @@ def _get_transfer_info( None, ) - # This would be cleaner with bisect(), but creates 3.10 dependency for index, trace in enumerate(classified_traces): if ( mint_slice_start is None @@ -209,25 +208,29 @@ def _get_transfer_info( def _get_bot_address( - mint_trace: ClassifiedTrace, classified_traces: List[ClassifiedTrace] + mint_trace: ClassifiedTrace, + classified_traces: List[ClassifiedTrace], ) -> str: - if mint_trace.from_address in LIQUIDITY_MINT_ROUTERS: - bot_trace = list( - filter( - lambda t: t.to_address == mint_trace.from_address - and t.transaction_hash == mint_trace.transaction_hash, - classified_traces, + if "from_address" in mint_trace.dict().keys(): + + if mint_trace.from_address in LIQUIDITY_MINT_ROUTERS: + bot_trace = list( + filter( + lambda t: t.to_address == mint_trace.from_address + and t.transaction_hash == mint_trace.transaction_hash, + classified_traces, + ) ) - ) - if len(bot_trace) == 1 or is_child_trace_address( - bot_trace[1].trace_address, bot_trace[0].trace_address - ): - return _get_bot_address(bot_trace[0], classified_traces) + if len(bot_trace) == 1 or is_child_trace_address( + bot_trace[1].trace_address, bot_trace[0].trace_address + ): + return _get_bot_address(bot_trace[0], classified_traces) + else: + return "0x0000000000000000000000000000000000000000" + + elif type(mint_trace.from_address) == str: + return mint_trace.from_address else: return "0x0000000000000000000000000000000000000000" - - # This case is here because from_address is optional in ClassifiedTrace - if type(mint_trace.from_address) == str: - return mint_trace.from_address else: return "0x0000000000000000000000000000000000000000"