Download Link
Overview
My big goal for this week was fixing the remaining bugs from last - primarily having to do with transaction signing.
As of last week, I had most transactions (on platforms like Uniswap) working; however, I kept running into a persistent issue with higher gas value transactions (like Aave) consistently failing (see more in process).
Yesterday, I was finally able to get signing working across dApps. With the exception of OpenSea (which has a browser level issue - more on this coming soon), most every dApp should now work with Dub.
Feel free to test with your favorite dApps and let us know what works / what doesnât! The wallet pre-loaded into Dub has some GoerliEth for testing :)
Process
Wow, was this bug a doozy. While testing, I managed to brick several wallets for several hours (issues with failed transactions, gas too low, forever pending transactions, etc.. - thank god pending transactions clear after 3 hours).
Regardless, I spent a lot of time futzing with gas, gas limits, and web3.js + web3.swift. Ultimately, I figured out there was (very very simple) math involved in calculating a transactionâs gas to succeed - after implementing this fix (with a few other small changes), everything is working pretty seamlessly.
Since starting here, I feel I have learned a LOT about how wallets and dApps interact on the web - nearly everything is built on a series of intermediaries that communicate between the blockchain and a user. Thereâs room here to build a much more direct, much more informative connection from dApp â blockchain â wallet.
Next Steps
For this coming week, my primary focus will be on starting and finishing the rewrite of Dub to set it as our default browser.
Primarily, this will entail:
- Hitting feature parity with current dub version(s)
- Cleaning up UI and restructuring Swift UI with MVVM
- Data model restructuring
- Data Persistence
As a secondary goal, Iâm interested in looking into WalletConnect v2 as a possibility for our beta testing - enabling a one-time QR code scan to connect your wallet to our browser and then only requiring any other action on your phone when signing messages (an infrequent interaction).