IERC721
View Source: contracts/interfaces/IERC721.sol
↗ Extends: IERC165
IERC721
Functions
- balanceOf(address owner)
- ownerOf(uint256 tokenId)
- safeTransferFrom(address from, address to, uint256 tokenId)
- transferFrom(address from, address to, uint256 tokenId)
- approve(address to, uint256 tokenId)
- getApproved(uint256 tokenId)
- setApprovalForAll(address operator, bool _approved)
- isApprovedForAll(address owner, address operator)
- safeTransferFrom(address from, address to, uint256 tokenId, bytes data)
balanceOf
Returns the number of tokens in owner
's account.
function balanceOf(address owner)
external
view
returns(uint256 balance)
Arguments
Name | Type | Description |
---|---|---|
owner | address |
Returns
Name | Type | Description |
---|---|---|
balance | uint256 |
ownerOf
Returns the owner of the tokenId
token.
Requirements:
- tokenId
must exist.
function ownerOf(uint256 tokenId)
external
view
returns(address owner)
Arguments
Name | Type | Description |
---|---|---|
tokenId | uint256 |
Returns
Name | Type | Description |
---|---|---|
owner | address |
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 by from
.
- 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
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 by from
.
- 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
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
Arguments
Name | Type | Description |
---|---|---|
to | address | |
tokenId | uint256 |
getApproved
Returns the account approved for tokenId
token.
Requirements:
- tokenId
must exist.
function getApproved(uint256 tokenId)
external
view
returns(address operator)
Arguments
Name | Type | Description |
---|---|---|
tokenId | uint256 |
Returns
Name | Type | Description |
---|---|---|
operator | address |
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
Arguments
Name | Type | Description |
---|---|---|
operator | address | |
_approved | bool |
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 |
Returns
bool
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 by from
.
- 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
Arguments
Name | Type | Description |
---|---|---|
from | address | |
to | address | |
tokenId | uint256 | |
data | bytes |
Events
Transfer
Emitted when tokenId
token is transferred from from
to to
.
event Transfer(
address indexed from
address indexed to
uint256 indexed tokenId
)
Parameters
Name | Type | Description |
---|---|---|
from | address | |
to | address | |
tokenId | uint256 |
Approval
Emitted when owner
enables approved
to manage the tokenId
token.
event Approval(
address indexed owner
address indexed approved
uint256 indexed tokenId
)
Parameters
Name | Type | Description |
---|---|---|
owner | address | |
approved | address | |
tokenId | uint256 |
ApprovalForAll
Emitted when owner
enables or disables (approved
) operator
to manage all of its assets.
event ApprovalForAll(
address indexed owner
address indexed operator
bool approved
)
Parameters
Name | Type | Description |
---|---|---|
owner | address | |
operator | address | |
approved | bool |