MetaMask / metamask-extension

:globe_with_meridians: :electric_plug: The MetaMask browser extension enables browsing Ethereum blockchain enabled websites
https://metamask.io
Other
11.83k stars 4.82k forks source link

[Bug]: SetApprovalForAll request displayed contract interaction UI instead of custom setApprovalForAll UI #18521

Open bschorchit opened 1 year ago

bschorchit commented 1 year ago

Describe the bug

SetApprovalForAll request displayed contract interaction UI instead of custom setApprovalForAll UI (see screenshots and repro steps below for more info).

Steps to reproduce

Here's how it happened to me (I was not able to reproduce it multiple times though)

  1. Go to https://revoke.cash/
  2. Have a setApprovalForAll allowance and click on Revoke in the dapp
  3. Notice the contractInteraction UI showing up instead of the custom setApprovalForAll one (see screenshot below)
  4. Reject and clicking Revoke on the dapp again, consistently resulted in 3

Other comments that might be relevant:

  1. It was the first time using 10.28.2 since my MM was updated and I had to login once I got requested the transaction.
  2. This was not reproducible anymore after I opened my MM (click on the fox to the popup home view) and went to try the same transaction request on other dapps.

Error messages or log output

No response

Version

10.28.2

Build type

None

Browser

Brave

Operating system

MacOS

Hardware wallet

No response

Additional context

What I saw:

Screenshot 2023-04-10 at 09 47 45

What I was expecting to see:

Screenshot 2023-04-10 at 10 01 21
danjm commented 1 year ago

The contract interaction screen is a fallback in cases where we don't know what type of contract we are interacting with. This might happen when a network request for certain contract data fails.

We might be able to improve on the frequency of this regression, but we will probably always have to have a fallback.

More information in the description of this PR https://github.com/MetaMask/metamask-extension/pull/16765