I have a smart contract that accepts a normal-appearing transfer() method that then interfaces with my ERC20 token to run a “commision transfer” method (which sends a portion of the transfer to the “house”). Until recently, this appeared in MetaMask just like a normal transfer(), showing the amount of my token but now it is showing “undefined”. If I sign the transaction it goes through OK. Has something changed in MetaMask to access the transfer amount from a different source? Do I have to change the way I send this transfer()?
I’ve tried to include a screenshot but I get “You can’t imbed media items in post”. Hmm.
Thanks. That’s useful information, but I don’t think that’s the problem. I don’t think the issue is with my MetaMask config - the problem is with how transfer() transactions between my app and my smart contract is being interpreted by MetaMask for all users.
When I first created my “commission transfer” interface contract (0xde3c2ed114fb325bbd595bc335df8aaf7e0175d8 interfacing with 0xcc7dffc5e8f0ac99b5b97b3d52df0d1f6a48cc0f on mumbai blockchain) MetaMask treated the call to transfer(payeeAddress, paymentAmount) as if it were a standard ERC20 method and showed paymentAmount in the signing popup. I think something has changed since it was created in January which seems to be getting this value from somewhere else. The interface contract works fine still, it’s just the MetaMask display that has changed.
You can recreate the issue here: (can’t include link…but it’s the Polygon testnet explorer) address/0xde3c2ed114fb325bbd595bc335df8aaf7e0175d8#writeContract if you think it’s worth investigating. I can transfer someone some test coin to try it themselves if you like. Just send me an address.
Here’s a whole screenshot of the issue using the blockchain explorer. I don’t think I’ve accidentally included any private information. Let me know if you spot any.