Skip to content

Commit

Permalink
fix: missing enrichment
Browse files Browse the repository at this point in the history
  • Loading branch information
antazoey committed Jun 26, 2024
1 parent a56c8ca commit e070f01
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 4 deletions.
6 changes: 6 additions & 0 deletions src/ape/api/transactions.py
Original file line number Diff line number Diff line change
Expand Up @@ -534,6 +534,12 @@ def show_source_traceback(self):
like in local projects.
"""

@raises_not_implemented
def show_events(self):
"""
Show the events from the receipt.
"""

def track_gas(self):
"""
Track this receipt's gas in the on-going session gas-report.
Expand Down
4 changes: 4 additions & 0 deletions src/ape/managers/chain.py
Original file line number Diff line number Diff line change
Expand Up @@ -1440,6 +1440,10 @@ def show_source_traceback(
style = "red" if failing else None
console.print(str(traceback), style=style)

def show_events(self, events: dict, file: Optional[IO[str]] = None):
console = self._get_console(file)
console.print(events)

def _get_console(self, file: Optional[IO[str]] = None) -> RichConsole:
if not file:
return get_console()
Expand Down
10 changes: 6 additions & 4 deletions src/ape_ethereum/ecosystem.py
Original file line number Diff line number Diff line change
Expand Up @@ -1227,12 +1227,13 @@ def _enrich_calldata(
except DecodingError:
call["calldata"] = ["<?>" for _ in method_abi.inputs]
else:
call["calldata"] = {
k: self._enrich_value(v, **kwargs) for k, v in call["calldata"].items()
}
call["calldata"] = self._enrich_calldata_dict(call["calldata"], **kwargs)

return call

def _enrich_calldata_dict(self, calldata: dict, **kwargs) -> dict:
return {k: self._enrich_value(v, **kwargs) for k, v in calldata.items()}

def _enrich_returndata(self, call: dict, method_abi: MethodABI, **kwargs) -> dict:
if "CREATE" in call.get("call_type", ""):
call["returndata"] = ""
Expand Down Expand Up @@ -1375,7 +1376,8 @@ def _enrich_trace_event(

# Enrich the event-node data using the Ape ContractLog object.
log: ContractLog = contract_logs[0]
return {"name": log.event_name, "calldata": log.event_arguments}
calldata = self._enrich_calldata_dict(log.event_arguments)
return {"name": log.event_name, "calldata": calldata}

def _enrich_revert_message(self, call: dict) -> dict:
returndata = call.get("returndata", "")
Expand Down
9 changes: 9 additions & 0 deletions src/ape_ethereum/transactions.py
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,15 @@ def show_source_traceback(self, file: IO[str] = sys.stdout):
self.source_traceback, file=file, failing=self.failed
)

def show_events(self):
if provider := self.network_manager.active_provider:
ecosystem = provider.network.ecosystem
else:
ecosystem = self.network_manager.ethereum

events = ecosystem._enrich_trace_events(self.logs)
self.chain_manager._reports.show_events(events)

def decode_logs(
self,
abi: Optional[
Expand Down

0 comments on commit e070f01

Please sign in to comment.