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:
One of the projects that kept popping up on my radar was tx2uml by Nick Addison.
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.
Using miao
is fairly easy, just clone the repository and run docker-compose up
git clone git@github.com:kendricktan/miao.git
cd miao
docker-compose up
A localhost ganache-cli
will also be spawned for your convinence.
Transaction traces very good.