Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Expand call_trace #679

Merged
merged 15 commits into from
Jul 13, 2020
Merged

Expand call_trace #679

merged 15 commits into from
Jul 13, 2020

Conversation

iamdefinitelyahuman
Copy link
Member

What I did

Expand TransactionReceipt.call_trace to include inputs and return values for external calls.

Closes #625

How I did it

  • Add the TransactionReceipt.subcalls attribute. This is a trace property that records all the subcall info while the trace is expanded. See the updated documentation for more info on how it is structured.
  • Add the _ContractMethod.decode_input method for decoding input arguments.
  • Refactor the tree-generation logic into brownie.utils.output.build_tree. The new approach uses nested dicts and lists. It's far more powerful and better documented than the previous approach. For now I haven't touched other tree diagrams, but in the v2 refactor everything will be refactored to use this method.
  • black is now a proper brownie dependency, rather than a dev-dependency. I'm using it to handle formatting for inputs and return values, so there isn't any weirdness when displaying lengthy arrays. For v2 i think some of the home-rolled formatting code in the console can be replaced with black.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Include call args and return values in call_trace
1 participant