Recently, I found myself increasingly reliant on (free) 3rd party tools such as ethtx.info to decode and debug failed mainnet transactions. This made me felt quite uneasy as:
And so, I decided to write one myself. But I also had a couple of requirements:
It initially seemed like the perfect fit, but unfortunately digging deeper, the readme states that it was at the mercy of yet another API - alethio. And so, I jumped ship.
Fortunately one of my favorite tooling framework dapp.tools already has built in tracing - it was also doing that data processing in house!
Only problem was that the tracing output didn't convey a lot of information unless it was used against a project that uses dapp.tools behind the scenes. This was because it was missing the ABIs / function signatures of the external contracts it was interacting with.
But this served as a good basis point to work off from.
Miao, is a lightweight (And by lightweight, I mean that a full node is not required to use it, e.g. parity trace) transaction decoder that consists of three parts:
Miao, when pronounced in Chinese can be interpreted as 描 or 喵.
This is a great time to remind everyone that my cat has an instagram.
miao is fairly easy, just clone the repository and run
git clone firstname.lastname@example.org:kendricktan/miao.git cd miao docker-compose up
ganache-cli will also be spawned for your convinence.
Transaction traces very good.