MetaMask / MetaMask/metamask-extension

[Bug]: Send ERC-6909 - I am able to initiate Send ERC-6909 (currently not supported) by starting a regular Send and then selecting the ERC-6909 token leading to a `safeTransferFrom` call (not in the standard)

Open
#29,503 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Bugs---Low-Priority INVALID-ISSUE-TEMPLATE regression-prod-12.9.3 Sev2-normal team-confirmations type-bug
Dominant language
TypeScript
Stars
13.2k
Forks
5.6k
Avg merge
2d 5h
Merged PRs (30d)
451

Description

Describe the bug

I am able to import ERC-6909 tokens in the wallet, and when I try to initiate a Send, the Send button is disabled with the message Sending of ERC-1155 NFT assets is not yet supported -- this should be updated.

However, I am able to start a regular Send ETH, and then select the ERC-6909 asset, and proceed to the last confirmation screen. There I see that a safeTransferFrom contract call is created instead of a transferFrom.

The ERC-6909 Minimal Multi-Token Interface standard doesn't support the safeTransferFrom method.

See more in the spec here.

Expected behavior

Either we don't allow to perform Sends of ERC-6909 tokens, so then we should:

  • Block the UI when we change the token once a Send has been initiated
  • Update the Info ticker with the appropiate token standard

Or if we do, then we should call the appropriate transferFrom function when performing a Send.

Screenshots/Recordings

Image

https://github.com/user-attachments/assets/e935a6a8-f101-43a4-a19e-2802c19d4a83

Image

Steps to reproduce

  1. Go to remix
  2. Create a new file token.sol
  3. Paste an ERC6909 contract code (you can use this one)
  4. Connect MM
  5. Deploy the token contract
  6. Mint some tokens
  7. Import them into the wallet
  8. Start a send ERC6909
  9. See button is disabled, and info picker
  10. Cancel the flow
  11. Start a Send ETH
  12. Change the asset to ERC6909
  13. Go to last confirmation screen
  14. See a confirmations is created with safeTransferFrom method.

Error messages or log output


Detection stage

In production (default)

Version

12.9.3

Build type

None

Browser

Chrome

Operating system

Linux

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the send flow described in steps 7–14, then read the ERC-6909 specification linked in the issue. Trace asset selection from a regular Send through the final confirmation screen; done means ERC-6909 sends are either blocked with the correct standard-specific messaging or use the standard's transferFrom call.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
blockchain, frontend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.