Skip to content

Instantly share code, notes, and snippets.

@Calvin087
Last active June 30, 2022 14:04
Show Gist options
  • Save Calvin087/f582ee9f0f37329c61fdce254dd7a0c0 to your computer and use it in GitHub Desktop.
Save Calvin087/f582ee9f0f37329c61fdce254dd7a0c0 to your computer and use it in GitHub Desktop.
setApprovalForAll snippet
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {
// Mapping from owner to operator approvals
mapping(address => mapping(address => bool)) private _operatorApprovals;
/**
* @dev See {IERC721-setApprovalForAll}.
*/
function setApprovalForAll(address operator, bool approved) public virtual override {
_setApprovalForAll(_msgSender(), operator, approved);
}
/**
* @dev Approve `operator` to operate on all of `owner` tokens
*
* Emits an {ApprovalForAll} event.
*/
function _setApprovalForAll(
address owner,
address operator,
bool approved
) internal virtual {
require(owner != operator, "ERC721: approve to caller");
_operatorApprovals[owner][operator] = approved;
emit ApprovalForAll(owner, operator, approved);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment