Links

Investigating a Failed Transaction

In this example we will showcase how to investigate a failed transaction on the example of Furucombo - a platform for easy optimization of DeFi investment strategies.
By visualizing complex DeFi protocols as cubes and allowing the user to define the inputs and outputs, Furucombo is able to bundle all of the user transactions i.e. cubes into one and send it out.
Because the transactions are bundled in this way, it is even more important to be able to see what happened in each and every step and solve issues quickly.

Example 1

Transaction Intro

The user wanted to repay the DAI debt on AAVE, but only had WMATIC at hand - check out the Decombo breakdown here to see what actions does this transaction include.

Investigating with Tenderly

By searching the transaction hash on Tenderly we can see everything that happened with it, as well as deep dive in order to find the breaking point:
The transaction failed at the repay step (screenshots below), as the repay amount should've been 180.80 DAI, but there is only 180.6658 DAI available after the swap in the first step.

Solution

As a way to avoid these issues in the future, we could lower the amount between swap and repay steps to allow for price slippage (~0.3%). Alternatively, by using the previous output feature when inputing the amount for the second cube we will ensure sending the exact and expected amount from the first cube.
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.

Example 2

Transaction Intro

A user wanted to move liquidity between different pools, as seen in this Decombo link:

Investigating with Tenderly

The transaction failed at the check slippage step, which is the final step when executing a Furucombo transaction.
Looking at the slippage tolerance numbers, it seems it is required to have 6.439851 USDC:
Turns out that only 3.999420 USDC are left, which is lower than the slippage tolerance:

Solution

Lowering the amount between steps in order to allow for price slippage (~0.3%) when the previous output feature is not applicable.