floating / frame-extension

Frame Browser Extension
35 stars 13 forks source link

Improve injection strategy when multiple wallet extensions are installed #32

Open GabrielBuragev opened 1 year ago

GabrielBuragev commented 1 year ago

Hello Frame People! Wonderful app you have built.

I had some inconvenient experiences after installing your extension for which i believe there is a nicer solution. I am also willing to implement it but first i want to hear your thought on this.

Here is my experience from a couple of weeks ago:

I was using MetaMask all along for testing and everything in the web3 world worked good up until the point i installed "Frame Companion" extension. From that moment on no dApp worked for me. Since i was just curious about Frame, installed "Frame Companion" in a rush and forgot to give it a proper try i was unaware that it completely overwrites the window.ethereum object on which many other wallet extensions/dApps depend. This caused all the attempts to connect with MetaMask to any dApp fail. After some research i found out about this "expected" behavior in your docs. Offering to use MetaMask injection by toggling it inside your extension is nice but doesn't account for the fact that many users are non-technical users and will be left completely in the dark. In order to be able to toggle the use of MetaMask injection instead of Frame's injection one first needs to connect his desktop app to the extension and thats why i consider this a bug.

I will suggest a few solutions/improvements:

maggo commented 1 year ago

There's a new standard for provider discovery: EIP-6963: Multi Injected Provider Discovery

Would be great if the extension could support it :)