I know this is an old post, but for anyone finding this, hopefully this can help.
I've been using tenderly because I have trouble reading the geth debug 2 tool on the scan sites and am currently debugging an issue myself.
https://dashboard.tenderly.co/
When my transaction just says 'failed' it gives me a bit clearer details on why unless it has reverted immediately.
I am by no means an expert, but for the first 3 hashes of this question they all basically reverted after the contract was called.
In many cases this usually means that the input parameters are not correct when passing through a contract and/or the contract tried to do some computation and failed immediately.
A very specific example for myself was when I sent bytes to my contract and decoded them incorrectly.
function encodeStuff(
address myAddress,
uint256 amount,
address someAddress,
bytes calldata swapData
) external {
bytes memory data = abi.encode(myAddress, amount, someAddress, swapData);
}
Then in another function when decoding I tried to unpack the swapData bytes with everything:
(
address myAddress,
uint256 amount,
address someAddress,
address someAddress1,
address someAddress2,
address someAddress3,
address someAddress4,
bytes memory extra_data1,
address token_address,
bytes memory extra_data2
) = abi.decode(swapdata,
(
address
uint256
address
address,
address,
address,
address,
bytes,
address,
bytes
));
Because I did this, the transaction reverted immediately when it saw there was no extra data to decode from bytes memory data.
I actually needed to decode twice.
// First decode data to get swapData bytes
(address myAddress, uint256 amount, address someAddress, bytes memory swapData) = abi.decode(data, (address, uint256, address, bytes));
// Now decode swapData
(
address someAddress1,
address someAddress2,
address someAddress3,
address someAddress4,
bytes memory extra_data1,
address token_address,
bytes memory extra_data2
) = abi.decode(swapdata,
(
address,
address,
address,
address,
bytes,
address,
bytes
));
This problem is very specific but the error would show up on scan sites and tenderly just like the hashes in this question, 'Failed' with not much extra data.
If I ever learn more in depth methods of debugging that don't require an arm or leg, I'll update this.