diff --git a/Tiltfile b/Tiltfile index 0ba7b96..c3b90c8 100644 --- a/Tiltfile +++ b/Tiltfile @@ -79,6 +79,8 @@ k8s_resource( resource_deps=["postgresql", "redis-master"], ) +# k8s_resource(workload='mev-inspect', port_forwards='8101') + k8s_resource( workload="mev-inspect-workers", resource_deps=["postgresql", "redis-master"], @@ -102,17 +104,17 @@ local_resource( # "export-aws-secret-access-key": "foobar", #})) -#helm_remote( +# helm_remote( # "localstack", # repo_name="localstack-charts", # repo_url="https://localstack.github.io/helm-charts", -#) -# -#local_resource( +# ) + +# local_resource( # 'localstack-port-forward', # serve_cmd='kubectl port-forward --namespace default svc/localstack 4566:4566', # resource_deps=["localstack"] -#) +# ) # #k8s_yaml(configmap_from_dict("mev-inspect-export", inputs = { # "services": "s3", diff --git a/listener.py b/listener.py index 93eb7d6..6431fa1 100644 --- a/listener.py +++ b/listener.py @@ -2,6 +2,7 @@ import asyncio import logging import os import sys +import traceback import dramatiq from aiohttp_retry import ExponentialRetry, RetryClient @@ -22,6 +23,8 @@ from mev_inspect.queue.tasks import ( realtime_export_task, ) from mev_inspect.signal_handler import GracefulKiller +from mev_inspect.utils import RPCType +from cli import convert_str_to_enum logging.basicConfig(filename="listener.log", filemode="a", level=logging.INFO) logger = logging.getLogger(__name__) @@ -52,8 +55,9 @@ async def run(): queue_name=HIGH_PRIORITY_QUEUE, priority=HIGH_PRIORITY, ) - - inspector = MEVInspector(rpc, type=sys.argv[1]) + + type_e = convert_str_to_enum(sys.argv[1]) + inspector = MEVInspector(rpc, type_e) base_provider = get_base_provider(rpc) while not killer.kill_now: @@ -125,3 +129,4 @@ if __name__ == "__main__": run() except Exception as e: logger.error(e) + diff --git a/mev b/mev index a2f09df..64927cb 100755 --- a/mev +++ b/mev @@ -43,7 +43,7 @@ case "$1" in redis ;; listener) - kubectl exec -ti deploy/mev-inspect -- ./listener $2 + kubectl exec -ti deploy/mev-inspect -- ./listener $2 $3 ;; block-list) echo "Backfilling blocks from stdin" diff --git a/mev_inspect/block.py b/mev_inspect/block.py index a4db29f..7c74593 100644 --- a/mev_inspect/block.py +++ b/mev_inspect/block.py @@ -49,8 +49,8 @@ async def create_from_block_number( _find_or_fetch_block_traces(w3, block_number, trace_db_session, type, block_json), _find_or_fetch_base_fee_per_gas(w3, block_number, trace_db_session), ) - - miner_address = _get_miner_address_from_traces(traces) + + miner_address = _get_miner_address_from_traces(traces) if type == RPCType.parity else block_json.miner return Block( block_number=block_number, @@ -108,7 +108,7 @@ async def _find_or_fetch_block_traces( existing_block_traces = _find_block_traces(trace_db_session, block_number) if existing_block_traces is not None: return existing_block_traces - + if type == RPCType.geth: # Translate to parity format traces = await geth_get_tx_traces_parity_format(w3.provider, block_json) @@ -272,8 +272,9 @@ def unwrap_tx_trace_for_parity( action_dict[key] = tx_trace[key] result_dict = dict() - for key in ["gasUsed", "output"]: - result_dict[key] = tx_trace[key] + result_dict["gasUsed"] = tx_trace["gasUsed"] + if "output" in tx_trace.keys(): + result_dict["output"] = tx_trace["output"] response_list.append( Trace( @@ -289,6 +290,7 @@ def unwrap_tx_trace_for_parity( ) ) except Exception as e: + breakpoint() logger.warn(f"error while unwraping tx trace for parity {e}") return [] diff --git a/mev_inspect/schemas/traces.py b/mev_inspect/schemas/traces.py index 68c1592..8d206c6 100644 --- a/mev_inspect/schemas/traces.py +++ b/mev_inspect/schemas/traces.py @@ -7,6 +7,7 @@ from .utils import CamelModel class TraceType(Enum): call = "call" create = "create" + create2 = "create2" delegate_call = "delegateCall" reward = "reward" suicide = "suicide"