2

I am part of the https://coinshift.xyz engineering team and I've noticed that safes created using 1.3.0 on polygon using the createProxy method are failing on safeTransferFrom NFT transfers.

I've created a new safe here: https://polygonscan.com/tx/0x159f5aa40a0a2ec61cc23e370a7914e3757f8635e1f35422813871da465a1c04

I've then created a uniswap position using a metamask wallet and tried to transfer it us the safeTransferFrom here: https://polygonscan.com/tx/0x715befa05ce20949762e98f22baae79f68e21a36007322d5e0ca1c9d6d07633a

On trying to debug using Tenderly, I've observed the txn is failing on _checkOnERC721Received function here: https://dashboard.tenderly.co/tx/polygon/0x715befa05ce20949762e98f22baae79f68e21a36007322d5e0ca1c9d6d07633a/debugger?trace=last. When I've tried to transfer it using transferFrom instead, it went through without any issues.

Kindly help me understand why this is failing.

1

1 Answer 1

1

The Gnosis Safe contract does not implement the IERC721Receiver interface, which must be implemented by smart contract that receives NFTs if you want to use the safeTransferFrom function.

see: https://ethereum.stackexchange.com/a/138092/92254

You might be able to fix this by adding a fallback handler that allows handling NFTs.

https://github.com/safe-global/safe-core-sdk/pull/294

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.