Also save ABI name

This commit is contained in:
Luke Van Seters 2021-07-25 21:57:19 -04:00
parent 8a0ead84de
commit 44712f0fc0
3 changed files with 14 additions and 6 deletions

View File

@ -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,

View File

@ -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]]

View File

@ -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))