EXPERIMENTS

#025 DubđŸȘ§â€„v2
    Dupdate
by Anupam, 01/25/23

Download Link

Dub Signing v2

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:

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).