关于ERC721Token授权的问题

ERC721的Token不能在一个合约方法中授权并转移吗?

IERC721(tokenadr).approve(address(this), _nftid);  
IERC721(tokenadr).safeTransferFrom(msg.sender, address(this), _nftid);

上面这个方法会报错:ERC721: approve caller is not owner nor approved for all

请先 登录 后评论

2 个回答

HOUYUKUN

如果你的合约本身就是erc20或者erc721:
approve(address(this), _nftid);
IERC721(tokenadr).safeTransferFrom(msg.sender, address(this), _nftid);

请先 登录 后评论
Tiny熊
  擅长:智能合约,以太坊

理解错了。如果你都可以approve , 你就可以直接transfer 了。

逻辑是:

A approve B , 由 B 执行 safeTransferFrom

请先 登录 后评论
  • 2 关注
  • 0 收藏,4512 浏览
  • ANYFC 提出于 2021-08-11 17:48