Also save ABI name
This commit is contained in:
parent
8a0ead84de
commit
44712f0fc0
@ -70,6 +70,7 @@ class Processor:
|
|||||||
trace_address=trace.trace_address,
|
trace_address=trace.trace_address,
|
||||||
classification=classification,
|
classification=classification,
|
||||||
protocol=spec.protocol,
|
protocol=spec.protocol,
|
||||||
|
abi_name=spec.abi_name,
|
||||||
function_name=call_data.function_name,
|
function_name=call_data.function_name,
|
||||||
function_signature=signature,
|
function_signature=signature,
|
||||||
intputs=call_data.inputs,
|
intputs=call_data.inputs,
|
||||||
@ -86,6 +87,7 @@ class Processor:
|
|||||||
trace_address=trace.trace_address,
|
trace_address=trace.trace_address,
|
||||||
classification=Classification.unknown,
|
classification=Classification.unknown,
|
||||||
protocol=None,
|
protocol=None,
|
||||||
|
abi_name=None,
|
||||||
function_name=None,
|
function_name=None,
|
||||||
function_signature=None,
|
function_signature=None,
|
||||||
intputs=None,
|
intputs=None,
|
||||||
|
@ -25,6 +25,7 @@ class ClassifiedTrace(BaseModel):
|
|||||||
trace_address: List[int]
|
trace_address: List[int]
|
||||||
classification: Classification
|
classification: Classification
|
||||||
protocol: Optional[Protocol]
|
protocol: Optional[Protocol]
|
||||||
|
abi_name: Optional[str]
|
||||||
function_name: Optional[str]
|
function_name: Optional[str]
|
||||||
function_signature: Optional[str]
|
function_signature: Optional[str]
|
||||||
inputs: Optional[Dict[str, Any]]
|
inputs: Optional[Dict[str, Any]]
|
||||||
|
@ -41,6 +41,11 @@ DECODE_SPECS = [
|
|||||||
|
|
||||||
|
|
||||||
def inspect_block(base_provider, block_number):
|
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)
|
block_data = block.create_from_block_number(block_number, base_provider)
|
||||||
print(f"Total traces: {len(block_data.traces)}")
|
print(f"Total traces: {len(block_data.traces)}")
|
||||||
|
|
||||||
@ -61,16 +66,16 @@ def inspect_block(base_provider, block_number):
|
|||||||
stats = {}
|
stats = {}
|
||||||
|
|
||||||
for trace in classified_traces:
|
for trace in classified_traces:
|
||||||
protocol = trace.protocol
|
abi_name = trace.abi_name
|
||||||
classification = trace.classification.value
|
classification = trace.classification.value
|
||||||
signature = trace.function_signature
|
signature = trace.function_signature
|
||||||
|
|
||||||
protocol_stats = stats.get(protocol, {})
|
abi_name_stats = stats.get(abi_name, {})
|
||||||
class_stats = protocol_stats.get(classification, {})
|
class_stats = abi_name_stats.get(classification, {})
|
||||||
signature_count = protocol_stats.get(signature, 0)
|
signature_count = abi_name_stats.get(signature, 0)
|
||||||
class_stats[signature] = signature_count + 1
|
class_stats[signature] = signature_count + 1
|
||||||
protocol_stats[classification] = class_stats
|
abi_name_stats[classification] = class_stats
|
||||||
stats[protocol] = protocol_stats
|
stats[abi_name] = abi_name_stats
|
||||||
|
|
||||||
print(json.dumps(dict(stats.items()), indent=4))
|
print(json.dumps(dict(stats.items()), indent=4))
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user