Using the approve() function, the owner of an NFT can give approval to another account, so that the approved account can transfer the approved NFT from the owner's account.
As you can see in the following code, the function takes two arguments:
- to: The address to which approval is to be given. Once approval is given, the to address is allowed to do anything with tokenId.
- tokenId: The NFT tokenId for which approval is given.
The code for the approve function is as follows:
function approve(address to, uint256 tokenId) public { address owner = ownerOf(tokenId); require(to != owner); require(msg.sender == owner || isApprovedForAll(owner, msg.sender)); _tokenApprovals[tokenId] = to; emit Approval(owner, to, tokenId);}