The problem QuickWallet solves
Quick wallet is a developer friendly wallet which is made to supercharge development speed in web3. Today, most developers use Metamask and public scans (etherscan, polygonscan etc.) when developing. The issue with these tools is that they are made for production purposes, not for development. For example,
- In metamask, you can't edit input data before sending a transaction. You will have to go to your code, edit the code and then send the transaction.
- In metamask, you can't simulate transactions to check if they are passing or not. You've to send the transaction on chain and check if it passes.
- In etherscan, you can't do the simulation as well. Moreover, you can't filter and sort based on tokens, timestamp, contract addresses etc.
Quick wallet allows you to do all this. And the best part is, it's just an extension that works out of the box. You don't need to transfer your wallet from metamask or import your private keys. You install the extension and
- Before sending any transaction on metamask, you can see the exact decoded input of your transaction.
- You can edit the transaction details (inputs, gas price etc.) and simulate the transaction, this allows you to see if the transaction is passing.
- You can see all your previous transactions in a UI friendly table. Sort your data based on different columns, check the exact decoded input data, modify the data and check if a transaction still works.
Challenges I ran into
- Building a chrome extension. This is the first time I built a chrome extension so I had to learn a lot of things over there for the first time
- Proxying metamask. My debugger listens to any call to Metamask and replaces that with its own call. This was difficult because I had to add a new layer on top of window.ethereum and listen to it. The only way to do this is to inject your script within the website.
- Getting the implementation address from the contract address. Different dApps use different proxy standards for there smart contracts. So getting to the exact exact implementation address needs you to check difference cases.
- Making the extension responsive. The extension can be opened in full screen or in a window tab so it should look presentable in both the cases.