Can’t call approve on a ERC721 contract, metamask stuck

Hello !

I have seemingly metamask related problems when executing one function of one of our contracts.

This is a ERC721 contract, following closely the specification found here : htt***ps://eips.ethereum.org/EIPS/eip-721

I can basically call every function of this contract, but the approve function. Calling the approve function trigger metamask, and then, it get stuck on the loading screen right before allowing us to confirm the transaction.

Our contract is here : htt***ps://github.com/Perpetual-Altruism-Ltd/myNFT-Bridge/blob/master/Codebase/Bridge_Contracts/contracts/manipulator/721/IOU.sol

I tried with remix to rule out our own web3 implementation.
I tried with different browsers (brave, firefox, chrome).
I tried to downgrade metamask version to 10.10.2 and 10.0.0 and it worked fine. But no luck with the 10.13.0 one.

Here what happen when calling approve. Just stuck there.

htt***ps://ibb.co/99h2DPc

It get even weirder, is if i rename the function, let’s say “approveMe”, without changing a thing in it, it go through.

htt***ps://ibb.co/H7wBgYs

Thank’s, waiting for any reply,

Regards,
Alexandre G, MyNFT team.

Hello, I’m sorry that metamamsk’s community service can’t help you in time. You can try the following steps. In addition, please wait patiently for professional service personnel to answer for you. Thank you for your patience.
Reach out to our helpdesk: https://support.metamask.io 1 and
click the blue “Start a Conversation” button. The bot will ask a few questions then get you connected.

This issue is likely related to h***ttps://github.com/MetaMask/metamask-extension/issues/14518

Ok Metamask team, found the problem. See last response over there :
htt***ps://github.com/MetaMask/metamask-extension/issues/14518