`ERC721_burn` transfers control of token to non(Account)
See original GitHub issueThe ERC721_burn function of the ERC721_base.cairo file attempts to clear approvals and delete the owner for a given tokenId. This attempt uses the pattern of setting the approval and owner address to be zero.
In the EVM this workflow fits in with its account model. But in this Startnet environment, functions can actually be invoked with caller the “zero” address when not routed through a contract such as Account.cairo.
This means that ERC721_burn actually makes the owner this “zero” address and now any user can seize control of this token by making calls not routed through such an Account.cairo contract.
I will push a PR promptly that should fix this issue.
Issue Analytics
- State:
- Created 2 years ago
- Comments:7 (4 by maintainers)
 Top Results From Across the Web
Top Results From Across the Web
How to Build 'Burnable' and 'Pausable' ERC-721 tokens using ...
Below is the _burn function from ERC721.sol file. It removes the ownership and gives ownership to address(0) (No one has access to this...
Read more >ERC 721 - OpenZeppelin Docs
Transfers a specific NFT ( tokenId ) from one account ( from ) to another ( to ). Requirements: - If the caller...
Read more >erc 721 - ERC721 Token - Burn and mint again
An implementation which allows re-mint of a burned token will be considered a valid implementation of the ERC-721 standard.
Read more >How To Burn an NFT. With an ERC721 Solidity contract
A non-fungible token (NFT) is a uniquely identifiable digital asset stored ... Then, the only address allowed to transfer or burn an NFT...
Read more >How to build and use ERC-721 tokens in 2021
A non-fungible token (NFT) is a uniquely identifying token. ... all your tokens. Once you approve another address, it has full transfer control...
Read more > Top Related Medium Post
Top Related Medium Post
No results found
 Top Related StackOverflow Question
Top Related StackOverflow Question
No results found
 Troubleshoot Live Code
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free Top Related Reddit Thread
Top Related Reddit Thread
No results found
 Top Related Hackernoon Post
Top Related Hackernoon Post
No results found
 Top Related Tweet
Top Related Tweet
No results found
 Top Related Dev.to Post
Top Related Dev.to Post
No results found
 Top Related Hashnode Post
Top Related Hashnode Post
No results found

Just don’t find them ok???
If I understand this correctly, I believe we have a check for this. When
transferFromis called, it invokes_transferwhich checks that the owner is not the zero address withownerOf. See here. Thus, if you try to transfer a burned token (whose owner is0after the burn) as the zero address, the tx will still fail