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
如果你的合约本身就是erc20或者erc721: approve(address(this), _nftid); IERC721(tokenadr).safeTransferFrom(msg.sender, address(this), _nftid);
理解错了。如果你都可以approve , 你就可以直接transfer 了。
逻辑是:
A approve B , 由 B 执行 safeTransferFrom 。
approve
safeTransferFrom