From 44712f0fc03a2b9e1cc5def7f4a9ef93821cab5a Mon Sep 17 00:00:00 2001 From: Luke Van Seters Date: Sun, 25 Jul 2021 21:57:19 -0400 Subject: [PATCH] Also save ABI name --- mev_inspect/processor.py | 2 ++ mev_inspect/schemas/classifications.py | 1 + testing_file.py | 17 +++++++++++------ 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/mev_inspect/processor.py b/mev_inspect/processor.py index 74e1aeb..c92563d 100644 --- a/mev_inspect/processor.py +++ b/mev_inspect/processor.py @@ -70,6 +70,7 @@ class Processor: trace_address=trace.trace_address, classification=classification, protocol=spec.protocol, + abi_name=spec.abi_name, function_name=call_data.function_name, function_signature=signature, intputs=call_data.inputs, @@ -86,6 +87,7 @@ class Processor: trace_address=trace.trace_address, classification=Classification.unknown, protocol=None, + abi_name=None, function_name=None, function_signature=None, intputs=None, diff --git a/mev_inspect/schemas/classifications.py b/mev_inspect/schemas/classifications.py index cd94c69..766a8b2 100644 --- a/mev_inspect/schemas/classifications.py +++ b/mev_inspect/schemas/classifications.py @@ -25,6 +25,7 @@ class ClassifiedTrace(BaseModel): trace_address: List[int] classification: Classification protocol: Optional[Protocol] + abi_name: Optional[str] function_name: Optional[str] function_signature: Optional[str] inputs: Optional[Dict[str, Any]] diff --git a/testing_file.py b/testing_file.py index b5f73b1..8c0cbe0 100644 --- a/testing_file.py +++ b/testing_file.py @@ -41,6 +41,11 @@ DECODE_SPECS = [ def inspect_block(base_provider, block_number): + print("Using decode specs:") + + for spec in DECODE_SPECS: + print(spec.json(indent=4, exclude_unset=True)) + block_data = block.create_from_block_number(block_number, base_provider) print(f"Total traces: {len(block_data.traces)}") @@ -61,16 +66,16 @@ def inspect_block(base_provider, block_number): stats = {} for trace in classified_traces: - protocol = trace.protocol + abi_name = trace.abi_name classification = trace.classification.value signature = trace.function_signature - protocol_stats = stats.get(protocol, {}) - class_stats = protocol_stats.get(classification, {}) - signature_count = protocol_stats.get(signature, 0) + abi_name_stats = stats.get(abi_name, {}) + class_stats = abi_name_stats.get(classification, {}) + signature_count = abi_name_stats.get(signature, 0) class_stats[signature] = signature_count + 1 - protocol_stats[classification] = class_stats - stats[protocol] = protocol_stats + abi_name_stats[classification] = class_stats + stats[abi_name] = abi_name_stats print(json.dumps(dict(stats.items()), indent=4))