IERC721Upgradeable.sol
View Source: @openzeppelin\contracts-upgradeable\token\ERC721\IERC721Upgradeable.sol
↗ Extends: IERC165Upgradeable ↘ Derived Contracts: ERC721Upgradeable, IERC721EnumerableUpgradeable, IERC721MetadataUpgradeable
IERC721Upgradeable
Required interface of an ERC721 compliant contract.
Events
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
event ApprovalForAll(address indexed owner, address indexed operator, bool approved);
Functions
- balanceOf(address owner)
- ownerOf(uint256 tokenId)
- safeTransferFrom(address from, address to, uint256 tokenId, bytes data)
- safeTransferFrom(address from, address to, uint256 tokenId)
- transferFrom(address from, address to, uint256 tokenId)
- approve(address to, uint256 tokenId)
- setApprovalForAll(address operator, bool _approved)
- getApproved(uint256 tokenId)
- isApprovedForAll(address owner, address operator)
balanceOf
Returns the number of tokens in owner
’s account.
function balanceOf(address owner) external view
returns(balance uint256)
Arguments
Name | Type | Description |
---|---|---|
owner | address |
ownerOf
Returns the owner of the tokenId
token.
Requirements:
tokenId
must exist.
function ownerOf(uint256 tokenId) external view
returns(owner address)
Arguments
Name | Type | Description |
---|---|---|
tokenId | uint256 |
safeTransferFrom
Safely transfers tokenId
token from from
to to
.
Requirements:
from
cannot be the zero address.to
cannot be the zero address.tokenId
token must exist and be owned byfrom
.- If the caller is not
from
, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If
to
refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.
function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) external nonpayable
Arguments
Name | Type | Description |
---|---|---|
from | address | |
to | address | |
tokenId | uint256 | |
data | bytes |
safeTransferFrom
Safely transfers tokenId
token from from
to to
, checking first that contract recipients
are aware of the ERC721 protocol to prevent tokens from being forever locked.
Requirements:
from
cannot be the zero address.to
cannot be the zero address.tokenId
token must exist and be owned byfrom
.- If the caller is not
from
, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. - If
to
refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.
function safeTransferFrom(address from, address to, uint256 tokenId) external nonpayable
Arguments
Name | Type | Description |
---|---|---|
from | address | |
to | address | |
tokenId | uint256 |
transferFrom
Transfers tokenId
token from from
to to
.
WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.
Requirements:
from
cannot be the zero address.to
cannot be the zero address.tokenId
token must be owned byfrom
.- If the caller is not
from
, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.
function transferFrom(address from, address to, uint256 tokenId) external nonpayable
Arguments
Name | Type | Description |
---|---|---|
from | address | |
to | address | |
tokenId | uint256 |
approve
Gives permission to to
to transfer tokenId
token to another account.
The approval is cleared when the token is transferred.
Only a single account can be approved at a time, so approving the zero address clears previous approvals.
Requirements:
- The caller must own the token or be an approved operator.
tokenId
must exist. Emits an {Approval} event.
function approve(address to, uint256 tokenId) external nonpayable
Arguments
Name | Type | Description |
---|---|---|
to | address | |
tokenId | uint256 |
setApprovalForAll
Approve or remove operator
as an operator for the caller.
Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.
Requirements:
- The
operator
cannot be the caller. Emits an {ApprovalForAll} event.
function setApprovalForAll(address operator, bool _approved) external nonpayable
Arguments
Name | Type | Description |
---|---|---|
operator | address | |
_approved | bool |
getApproved
Returns the account approved for tokenId
token.
Requirements:
tokenId
must exist.
function getApproved(uint256 tokenId) external view
returns(operator address)
Arguments
Name | Type | Description |
---|---|---|
tokenId | uint256 |
isApprovedForAll
Returns if the operator
is allowed to manage all of the assets of owner
.
See {setApprovalForAll}
function isApprovedForAll(address owner, address operator) external view
returns(bool)
Arguments
Name | Type | Description |
---|---|---|
owner | address | |
operator | address |
Contracts
- ActivateToken
- AddressUpgradeable
- ContextUpgradeable
- CreatorToken
- CustomToken
- ERC165Upgradeable
- ERC20Upgradeable
- ERC721BurnableUpgradeable
- ERC721EnumerableUpgradeable
- ERC721Upgradeable
- ERC721URIStorageUpgradeable
- IERC165Upgradeable
- IERC20MetadataUpgradeable
- IERC20Upgradeable
- IERC721EnumerableUpgradeable
- IERC721MetadataUpgradeable
- IERC721ReceiverUpgradeable
- IERC721Upgradeable
- ImmutableEntity
- ImmutableProduct
- Initializable
- Migrations
- OwnableUpgradeable
- ProductActivate
- StringCommon
- StringsUpgradeable