Execution Overview - think of it as the bird's-eye view of the transaction. At a glance, you can see the exact code paths of all of the Smart Contracts that participated in a given transaction. You can open the transactions from the images above by clicking here (successful) and here (failed).
In the first tab - Transaction Overview - you can see and navigate though all of the elements of the transaction. Moreover, you can instantly (Re)Simulate the transaction bi clicking the button in the top right, using different parameters or even changing the source code in order to observe the outcome -read more about Simulations here.
From the Overview Tab tab you can instantly jump into Contract Sources or the Debugger in order to see what happened:
If you are looking into a failed transaction, you can now jump straight to all fail points by clicking the red warning icon and then clicking on the line that failed:
You can also search the Execution Trace, as well as easily navigate it with your keyboard arrows:
Call and Function Trace
In the Execution Trace section you will find a dropdown menu right next to the search field. By default it is set to Function Trace, which means it will show all external and internal calls that happened in this transaction.
For a better overview of key calls you can switch it to Call Trace, which shows only external calls that happened in the transaction.
You can comment and prioritize any trace you want, either for yourself or to make collaboration in the project easier. You can read more about it here.
This feature is available in theDebugger as well. Now, let's say you want to really dig really deep into your (or any other) Transaction - let's go through each of the tabs available.
When you are in the Transaction Overview tab, in the upper navigation you can click on Contracts (or Addresses) in order to see all of the contracts that have been involved in a certain transaction:
By clicking on a contract you can view it's source code:
Smart Contract Events are the de-facto way of notifying interested parties that some event has occurred. The Logs themselves also contain valuable information in addition to the information that a particular event has occurred.
When we click the Events tab we can see all of the Events that were emitted during a transaction. What is even better is that the event parameters are already decoded and shown in a human-readable format. No more time wasted decoding hex strings to see what happened. You can also filter the Events by Name and Smart Contract.
As Smart Contracts are getting more and more complex, the states of those smart contracts are getting more complex as well.
Here we see that not only does Tenderly show the state variables that were changed, but also all of them are decoded for your convenience. And yes, structures are decoded correctly as well.
You can see that transaction and it's intricacies here.
Debugging stack traces is an important part of any developer's workflow both locally and in production. By clicking on the Debugger tab you will be able to deep-dive into everything that happened with your (or any other) transaction.