Update docs

This commit is contained in:
github-actions
2023-05-09 19:56:30 +00:00
parent 47e38c7bda
commit 6ae39c4dc1
579 changed files with 30453 additions and 21485 deletions

View File

@ -281,7 +281,7 @@ NOTE: This core set of contracts is designed to be unopinionated, allowing devel
[.contract]
[[IERC1155]]
=== `++IERC1155++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC1155/IERC1155.sol[{github-icon},role=heading-link]
=== `++IERC1155++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/ERC1155/IERC1155.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
@ -426,7 +426,7 @@ returned by {IERC1155MetadataURI-uri}.
[.contract]
[[IERC1155MetadataURI]]
=== `++IERC1155MetadataURI++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol[{github-icon},role=heading-link]
=== `++IERC1155MetadataURI++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
@ -483,9 +483,6 @@ Returns the URI for token type `id`.
If the `\{id\}` substring is present in the URI, it must be replaced by
clients with the actual token type ID.
:_balances: pass:normal[xref:#ERC1155-_balances-mapping-uint256----mapping-address----uint256--[`++_balances++`]]
:_operatorApprovals: pass:normal[xref:#ERC1155-_operatorApprovals-mapping-address----mapping-address----bool--[`++_operatorApprovals++`]]
:_uri: pass:normal[xref:#ERC1155-_uri-string[`++_uri++`]]
:constructor: pass:normal[xref:#ERC1155-constructor-string-[`++constructor++`]]
:supportsInterface: pass:normal[xref:#ERC1155-supportsInterface-bytes4-[`++supportsInterface++`]]
:uri: pass:normal[xref:#ERC1155-uri-uint256-[`++uri++`]]
@ -505,13 +502,10 @@ clients with the actual token type ID.
:_setApprovalForAll: pass:normal[xref:#ERC1155-_setApprovalForAll-address-address-bool-[`++_setApprovalForAll++`]]
:_beforeTokenTransfer: pass:normal[xref:#ERC1155-_beforeTokenTransfer-address-address-address-uint256---uint256---bytes-[`++_beforeTokenTransfer++`]]
:_afterTokenTransfer: pass:normal[xref:#ERC1155-_afterTokenTransfer-address-address-address-uint256---uint256---bytes-[`++_afterTokenTransfer++`]]
:_doSafeTransferAcceptanceCheck: pass:normal[xref:#ERC1155-_doSafeTransferAcceptanceCheck-address-address-address-uint256-uint256-bytes-[`++_doSafeTransferAcceptanceCheck++`]]
:_doSafeBatchTransferAcceptanceCheck: pass:normal[xref:#ERC1155-_doSafeBatchTransferAcceptanceCheck-address-address-address-uint256---uint256---bytes-[`++_doSafeBatchTransferAcceptanceCheck++`]]
:_asSingletonArray: pass:normal[xref:#ERC1155-_asSingletonArray-uint256-[`++_asSingletonArray++`]]
[.contract]
[[ERC1155]]
=== `++ERC1155++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC1155/ERC1155.sol[{github-icon},role=heading-link]
=== `++ERC1155++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/ERC1155/ERC1155.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
@ -814,7 +808,7 @@ To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hook
[.contract]
[[IERC1155Receiver]]
=== `++IERC1155Receiver++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC1155/IERC1155Receiver.sol[{github-icon},role=heading-link]
=== `++IERC1155Receiver++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/ERC1155/IERC1155Receiver.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
@ -862,7 +856,7 @@ NOTE: To accept the transfer(s), this must return
[.contract]
[[ERC1155Receiver]]
=== `++ERC1155Receiver++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC1155/utils/ERC1155Receiver.sol[{github-icon},role=heading-link]
=== `++ERC1155Receiver++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/ERC1155/utils/ERC1155Receiver.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
@ -901,7 +895,7 @@ See {IERC165-supportsInterface}.
[.contract]
[[ERC1155Pausable]]
=== `++ERC1155Pausable++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC1155/extensions/ERC1155Pausable.sol[{github-icon},role=heading-link]
=== `++ERC1155Pausable++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/ERC1155/extensions/ERC1155Pausable.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
@ -1014,7 +1008,7 @@ Requirements:
[.contract]
[[ERC1155Burnable]]
=== `++ERC1155Burnable++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC1155/extensions/ERC1155Burnable.sol[{github-icon},role=heading-link]
=== `++ERC1155Burnable++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/ERC1155/extensions/ERC1155Burnable.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
@ -1100,14 +1094,13 @@ _Available since v3.1._
[[ERC1155Burnable-burnBatch-address-uint256---uint256---]]
==== `[.contract-item-name]#++burnBatch++#++(address account, uint256[] ids, uint256[] values)++` [.item-kind]#public#
:_totalSupply: pass:normal[xref:#ERC1155Supply-_totalSupply-mapping-uint256----uint256-[`++_totalSupply++`]]
:totalSupply: pass:normal[xref:#ERC1155Supply-totalSupply-uint256-[`++totalSupply++`]]
:exists: pass:normal[xref:#ERC1155Supply-exists-uint256-[`++exists++`]]
:_beforeTokenTransfer: pass:normal[xref:#ERC1155Supply-_beforeTokenTransfer-address-address-address-uint256---uint256---bytes-[`++_beforeTokenTransfer++`]]
[.contract]
[[ERC1155Supply]]
=== `++ERC1155Supply++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC1155/extensions/ERC1155Supply.sol[{github-icon},role=heading-link]
=== `++ERC1155Supply++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/ERC1155/extensions/ERC1155Supply.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
@ -1205,15 +1198,13 @@ Indicates whether any token exist with a given id, or not.
See {ERC1155-_beforeTokenTransfer}.
:_baseURI: pass:normal[xref:#ERC1155URIStorage-_baseURI-string[`++_baseURI++`]]
:_tokenURIs: pass:normal[xref:#ERC1155URIStorage-_tokenURIs-mapping-uint256----string-[`++_tokenURIs++`]]
:uri: pass:normal[xref:#ERC1155URIStorage-uri-uint256-[`++uri++`]]
:_setURI: pass:normal[xref:#ERC1155URIStorage-_setURI-uint256-string-[`++_setURI++`]]
:_setBaseURI: pass:normal[xref:#ERC1155URIStorage-_setBaseURI-string-[`++_setBaseURI++`]]
[.contract]
[[ERC1155URIStorage]]
=== `++ERC1155URIStorage++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC1155/extensions/ERC1155URIStorage.sol[{github-icon},role=heading-link]
=== `++ERC1155URIStorage++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/ERC1155/extensions/ERC1155URIStorage.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
@ -1340,7 +1331,7 @@ These contracts are preconfigured combinations of the above features. They can b
[.contract]
[[ERC1155PresetMinterPauser]]
=== `++ERC1155PresetMinterPauser++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC1155/presets/ERC1155PresetMinterPauser.sol[{github-icon},role=heading-link]
=== `++ERC1155PresetMinterPauser++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/ERC1155/presets/ERC1155PresetMinterPauser.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
@ -1564,7 +1555,7 @@ See {IERC165-supportsInterface}.
[.contract]
[[ERC1155Holder]]
=== `++ERC1155Holder++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC1155/utils/ERC1155Holder.sol[{github-icon},role=heading-link]
=== `++ERC1155Holder++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/ERC1155/utils/ERC1155Holder.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity

File diff suppressed because it is too large Load Diff

View File

@ -12,6 +12,8 @@
:ERC721Royalty: pass:normal[xref:token/ERC721.adoc#ERC721Royalty[`ERC721Royalty`]]
:ERC721Pausable: pass:normal[xref:token/ERC721.adoc#ERC721Pausable[`ERC721Pausable`]]
:ERC721Burnable: pass:normal[xref:token/ERC721.adoc#ERC721Burnable[`ERC721Burnable`]]
:ERC721Wrapper: pass:normal[xref:token/ERC721.adoc#ERC721Wrapper[`ERC721Wrapper`]]
:ERC721Votes: pass:normal[xref:token/ERC721.adoc#ERC721Votes[`ERC721Votes`]]
:ERC721PresetMinterPauserAutoId: pass:normal[xref:token/ERC721.adoc#ERC721PresetMinterPauserAutoId[`ERC721PresetMinterPauserAutoId`]]
:xref-IERC721-balanceOf-address-: xref:token/ERC721.adoc#IERC721-balanceOf-address-
:xref-IERC721-ownerOf-uint256-: xref:token/ERC721.adoc#IERC721-ownerOf-uint256-
@ -275,10 +277,10 @@
:ERC721-_mint: pass:normal[xref:token/ERC721.adoc#ERC721-_mint-address-uint256-[`ERC721._mint`]]
:ERC721Consecutive: pass:normal[xref:token/ERC721.adoc#ERC721Consecutive[`ERC721Consecutive`]]
:ERC721-_afterTokenTransfer: pass:normal[xref:token/ERC721.adoc#ERC721-_afterTokenTransfer-address-address-uint256-uint256-[`ERC721._afterTokenTransfer`]]
:xref-ERC721URIStorage-supportsInterface-bytes4-: xref:token/ERC721.adoc#ERC721URIStorage-supportsInterface-bytes4-
:xref-ERC721URIStorage-tokenURI-uint256-: xref:token/ERC721.adoc#ERC721URIStorage-tokenURI-uint256-
:xref-ERC721URIStorage-_setTokenURI-uint256-string-: xref:token/ERC721.adoc#ERC721URIStorage-_setTokenURI-uint256-string-
:xref-ERC721URIStorage-_burn-uint256-: xref:token/ERC721.adoc#ERC721URIStorage-_burn-uint256-
:xref-ERC721-supportsInterface-bytes4-: xref:token/ERC721.adoc#ERC721-supportsInterface-bytes4-
:xref-ERC721-balanceOf-address-: xref:token/ERC721.adoc#ERC721-balanceOf-address-
:xref-ERC721-ownerOf-uint256-: xref:token/ERC721.adoc#ERC721-ownerOf-uint256-
:xref-ERC721-name--: xref:token/ERC721.adoc#ERC721-name--
@ -305,14 +307,19 @@
:xref-ERC721-_beforeTokenTransfer-address-address-uint256-uint256-: xref:token/ERC721.adoc#ERC721-_beforeTokenTransfer-address-address-uint256-uint256-
:xref-ERC721-_afterTokenTransfer-address-address-uint256-uint256-: xref:token/ERC721.adoc#ERC721-_afterTokenTransfer-address-address-uint256-uint256-
:xref-ERC721-__unsafe_increaseBalance-address-uint256-: xref:token/ERC721.adoc#ERC721-__unsafe_increaseBalance-address-uint256-
:xref-IERC4906-MetadataUpdate-uint256-: xref:interfaces.adoc#IERC4906-MetadataUpdate-uint256-
:xref-IERC4906-BatchMetadataUpdate-uint256-uint256-: xref:interfaces.adoc#IERC4906-BatchMetadataUpdate-uint256-uint256-
:xref-IERC721-Transfer-address-address-uint256-: xref:token/ERC721.adoc#IERC721-Transfer-address-address-uint256-
:xref-IERC721-Approval-address-address-uint256-: xref:token/ERC721.adoc#IERC721-Approval-address-address-uint256-
:xref-IERC721-ApprovalForAll-address-address-bool-: xref:token/ERC721.adoc#IERC721-ApprovalForAll-address-address-bool-
:IERC165-supportsInterface: pass:normal[xref:utils.adoc#IERC165-supportsInterface-bytes4-[`IERC165.supportsInterface`]]
:IERC721Metadata-tokenURI: pass:normal[xref:token/ERC721.adoc#IERC721Metadata-tokenURI-uint256-[`IERC721Metadata.tokenURI`]]
:ERC721-_burn: pass:normal[xref:token/ERC721.adoc#ERC721-_burn-uint256-[`ERC721._burn`]]
:Votes: pass:normal[xref:governance.adoc#Votes[`Votes`]]
:xref-ERC721Votes-_afterTokenTransfer-address-address-uint256-uint256-: xref:token/ERC721.adoc#ERC721Votes-_afterTokenTransfer-address-address-uint256-uint256-
:xref-ERC721Votes-_getVotingUnits-address-: xref:token/ERC721.adoc#ERC721Votes-_getVotingUnits-address-
:xref-Votes-clock--: xref:governance.adoc#Votes-clock--
:xref-Votes-CLOCK_MODE--: xref:governance.adoc#Votes-CLOCK_MODE--
:xref-Votes-getVotes-address-: xref:governance.adoc#Votes-getVotes-address-
:xref-Votes-getPastVotes-address-uint256-: xref:governance.adoc#Votes-getPastVotes-address-uint256-
:xref-Votes-getPastTotalSupply-uint256-: xref:governance.adoc#Votes-getPastTotalSupply-uint256-
@ -327,6 +334,7 @@
:xref-Votes-DOMAIN_SEPARATOR--: xref:governance.adoc#Votes-DOMAIN_SEPARATOR--
:xref-EIP712-_domainSeparatorV4--: xref:utils.adoc#EIP712-_domainSeparatorV4--
:xref-EIP712-_hashTypedDataV4-bytes32-: xref:utils.adoc#EIP712-_hashTypedDataV4-bytes32-
:xref-EIP712-eip712Domain--: xref:utils.adoc#EIP712-eip712Domain--
:xref-ERC721-supportsInterface-bytes4-: xref:token/ERC721.adoc#ERC721-supportsInterface-bytes4-
:xref-ERC721-balanceOf-address-: xref:token/ERC721.adoc#ERC721-balanceOf-address-
:xref-ERC721-ownerOf-uint256-: xref:token/ERC721.adoc#ERC721-ownerOf-uint256-
@ -355,11 +363,12 @@
:xref-ERC721-_requireMinted-uint256-: xref:token/ERC721.adoc#ERC721-_requireMinted-uint256-
:xref-ERC721-_beforeTokenTransfer-address-address-uint256-uint256-: xref:token/ERC721.adoc#ERC721-_beforeTokenTransfer-address-address-uint256-uint256-
:xref-ERC721-__unsafe_increaseBalance-address-uint256-: xref:token/ERC721.adoc#ERC721-__unsafe_increaseBalance-address-uint256-
:xref-IVotes-DelegateChanged-address-address-address-: xref:governance.adoc#IVotes-DelegateChanged-address-address-address-
:xref-IVotes-DelegateVotesChanged-address-uint256-uint256-: xref:governance.adoc#IVotes-DelegateVotesChanged-address-uint256-uint256-
:xref-IERC5267-EIP712DomainChanged--: xref:interfaces.adoc#IERC5267-EIP712DomainChanged--
:xref-IERC721-Transfer-address-address-uint256-: xref:token/ERC721.adoc#IERC721-Transfer-address-address-uint256-
:xref-IERC721-Approval-address-address-uint256-: xref:token/ERC721.adoc#IERC721-Approval-address-address-uint256-
:xref-IERC721-ApprovalForAll-address-address-bool-: xref:token/ERC721.adoc#IERC721-ApprovalForAll-address-address-bool-
:xref-IVotes-DelegateChanged-address-address-address-: xref:governance.adoc#IVotes-DelegateChanged-address-address-address-
:xref-IVotes-DelegateVotesChanged-address-uint256-uint256-: xref:governance.adoc#IVotes-DelegateVotesChanged-address-uint256-uint256-
:ERC721-_afterTokenTransfer: pass:normal[xref:token/ERC721.adoc#ERC721-_afterTokenTransfer-address-address-uint256-uint256-[`ERC721._afterTokenTransfer`]]
:IVotes-DelegateVotesChanged: pass:normal[xref:governance.adoc#IVotes-DelegateVotesChanged-address-uint256-uint256-[`IVotes.DelegateVotesChanged`]]
:ERC2981-_setDefaultRoyalty: pass:normal[xref:token/common.adoc#ERC2981-_setDefaultRoyalty-address-uint96-[`ERC2981._setDefaultRoyalty`]]
@ -404,6 +413,48 @@
:xref-IERC721-ApprovalForAll-address-address-bool-: xref:token/ERC721.adoc#IERC721-ApprovalForAll-address-address-bool-
:IERC165-supportsInterface: pass:normal[xref:utils.adoc#IERC165-supportsInterface-bytes4-[`IERC165.supportsInterface`]]
:ERC721-_burn: pass:normal[xref:token/ERC721.adoc#ERC721-_burn-uint256-[`ERC721._burn`]]
:ERC721Votes: pass:normal[xref:token/ERC721.adoc#ERC721Votes[`ERC721Votes`]]
:xref-ERC721Wrapper-constructor-contract-IERC721-: xref:token/ERC721.adoc#ERC721Wrapper-constructor-contract-IERC721-
:xref-ERC721Wrapper-depositFor-address-uint256---: xref:token/ERC721.adoc#ERC721Wrapper-depositFor-address-uint256---
:xref-ERC721Wrapper-withdrawTo-address-uint256---: xref:token/ERC721.adoc#ERC721Wrapper-withdrawTo-address-uint256---
:xref-ERC721Wrapper-onERC721Received-address-address-uint256-bytes-: xref:token/ERC721.adoc#ERC721Wrapper-onERC721Received-address-address-uint256-bytes-
:xref-ERC721Wrapper-_recover-address-uint256-: xref:token/ERC721.adoc#ERC721Wrapper-_recover-address-uint256-
:xref-ERC721Wrapper-underlying--: xref:token/ERC721.adoc#ERC721Wrapper-underlying--
:xref-ERC721-supportsInterface-bytes4-: xref:token/ERC721.adoc#ERC721-supportsInterface-bytes4-
:xref-ERC721-balanceOf-address-: xref:token/ERC721.adoc#ERC721-balanceOf-address-
:xref-ERC721-ownerOf-uint256-: xref:token/ERC721.adoc#ERC721-ownerOf-uint256-
:xref-ERC721-name--: xref:token/ERC721.adoc#ERC721-name--
:xref-ERC721-symbol--: xref:token/ERC721.adoc#ERC721-symbol--
:xref-ERC721-tokenURI-uint256-: xref:token/ERC721.adoc#ERC721-tokenURI-uint256-
:xref-ERC721-_baseURI--: xref:token/ERC721.adoc#ERC721-_baseURI--
:xref-ERC721-approve-address-uint256-: xref:token/ERC721.adoc#ERC721-approve-address-uint256-
:xref-ERC721-getApproved-uint256-: xref:token/ERC721.adoc#ERC721-getApproved-uint256-
:xref-ERC721-setApprovalForAll-address-bool-: xref:token/ERC721.adoc#ERC721-setApprovalForAll-address-bool-
:xref-ERC721-isApprovedForAll-address-address-: xref:token/ERC721.adoc#ERC721-isApprovedForAll-address-address-
:xref-ERC721-transferFrom-address-address-uint256-: xref:token/ERC721.adoc#ERC721-transferFrom-address-address-uint256-
:xref-ERC721-safeTransferFrom-address-address-uint256-: xref:token/ERC721.adoc#ERC721-safeTransferFrom-address-address-uint256-
:xref-ERC721-safeTransferFrom-address-address-uint256-bytes-: xref:token/ERC721.adoc#ERC721-safeTransferFrom-address-address-uint256-bytes-
:xref-ERC721-_safeTransfer-address-address-uint256-bytes-: xref:token/ERC721.adoc#ERC721-_safeTransfer-address-address-uint256-bytes-
:xref-ERC721-_ownerOf-uint256-: xref:token/ERC721.adoc#ERC721-_ownerOf-uint256-
:xref-ERC721-_exists-uint256-: xref:token/ERC721.adoc#ERC721-_exists-uint256-
:xref-ERC721-_isApprovedOrOwner-address-uint256-: xref:token/ERC721.adoc#ERC721-_isApprovedOrOwner-address-uint256-
:xref-ERC721-_safeMint-address-uint256-: xref:token/ERC721.adoc#ERC721-_safeMint-address-uint256-
:xref-ERC721-_safeMint-address-uint256-bytes-: xref:token/ERC721.adoc#ERC721-_safeMint-address-uint256-bytes-
:xref-ERC721-_mint-address-uint256-: xref:token/ERC721.adoc#ERC721-_mint-address-uint256-
:xref-ERC721-_burn-uint256-: xref:token/ERC721.adoc#ERC721-_burn-uint256-
:xref-ERC721-_transfer-address-address-uint256-: xref:token/ERC721.adoc#ERC721-_transfer-address-address-uint256-
:xref-ERC721-_approve-address-uint256-: xref:token/ERC721.adoc#ERC721-_approve-address-uint256-
:xref-ERC721-_setApprovalForAll-address-address-bool-: xref:token/ERC721.adoc#ERC721-_setApprovalForAll-address-address-bool-
:xref-ERC721-_requireMinted-uint256-: xref:token/ERC721.adoc#ERC721-_requireMinted-uint256-
:xref-ERC721-_beforeTokenTransfer-address-address-uint256-uint256-: xref:token/ERC721.adoc#ERC721-_beforeTokenTransfer-address-address-uint256-uint256-
:xref-ERC721-_afterTokenTransfer-address-address-uint256-uint256-: xref:token/ERC721.adoc#ERC721-_afterTokenTransfer-address-address-uint256-uint256-
:xref-ERC721-__unsafe_increaseBalance-address-uint256-: xref:token/ERC721.adoc#ERC721-__unsafe_increaseBalance-address-uint256-
:xref-IERC721-Transfer-address-address-uint256-: xref:token/ERC721.adoc#IERC721-Transfer-address-address-uint256-
:xref-IERC721-Approval-address-address-uint256-: xref:token/ERC721.adoc#IERC721-Approval-address-address-uint256-
:xref-IERC721-ApprovalForAll-address-address-bool-: xref:token/ERC721.adoc#IERC721-ApprovalForAll-address-address-bool-
:IERC721Receiver-onERC721Received: pass:normal[xref:token/ERC721.adoc#IERC721Receiver-onERC721Received-address-address-uint256-bytes-[`IERC721Receiver.onERC721Received`]]
:IERC721-transferFrom: pass:normal[xref:token/ERC721.adoc#IERC721-transferFrom-address-address-uint256-[`IERC721.transferFrom`]]
:ERC721Wrapper-_recover: pass:normal[xref:token/ERC721.adoc#ERC721Wrapper-_recover-address-uint256-[`ERC721Wrapper._recover`]]
:ERC721: pass:normal[xref:token/ERC721.adoc#ERC721[`ERC721`]]
:AccessControl: pass:normal[xref:access.adoc#AccessControl[`AccessControl`]]
:xref-ERC721PresetMinterPauserAutoId-constructor-string-string-string-: xref:token/ERC721.adoc#ERC721PresetMinterPauserAutoId-constructor-string-string-string-
@ -513,6 +564,7 @@ Additionally there are a few of other extensions:
* {ERC721Royalty}: A way to signal royalty information following ERC2981.
* {ERC721Pausable}: A primitive to pause contract operation.
* {ERC721Burnable}: A way for token holders to burn their own tokens.
* {ERC721Wrapper}: Wrapper to create an ERC721 backed by another ERC721, with deposit and withdraw methods. Useful in conjunction with {ERC721Votes}.
NOTE: This core set of contracts is designed to be unopinionated, allowing developers to access the internal functions in ERC721 (such as <<ERC721-_mint-address-uint256-,`_mint`>>) and expose them as external functions in the way they prefer. On the other hand, xref:ROOT:erc721.adoc#Presets[ERC721 Presets] (such as {ERC721PresetMinterPauserAutoId}) are designed using opinionated patterns to provide developers with ready to use, deployable contracts.
@ -533,7 +585,7 @@ NOTE: This core set of contracts is designed to be unopinionated, allowing devel
[.contract]
[[IERC721]]
=== `++IERC721++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC721/IERC721.sol[{github-icon},role=heading-link]
=== `++IERC721++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/ERC721/IERC721.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
@ -551,7 +603,7 @@ Required interface of an ERC721 compliant contract.
* {xref-IERC721-safeTransferFrom-address-address-uint256-}[`++safeTransferFrom(from, to, tokenId)++`]
* {xref-IERC721-transferFrom-address-address-uint256-}[`++transferFrom(from, to, tokenId)++`]
* {xref-IERC721-approve-address-uint256-}[`++approve(to, tokenId)++`]
* {xref-IERC721-setApprovalForAll-address-bool-}[`++setApprovalForAll(operator, _approved)++`]
* {xref-IERC721-setApprovalForAll-address-bool-}[`++setApprovalForAll(operator, approved)++`]
* {xref-IERC721-getApproved-uint256-}[`++getApproved(tokenId)++`]
* {xref-IERC721-isApprovedForAll-address-address-}[`++isApprovedForAll(owner, operator)++`]
@ -659,7 +711,7 @@ Emits an {Approval} event.
[.contract-item]
[[IERC721-setApprovalForAll-address-bool-]]
==== `[.contract-item-name]#++setApprovalForAll++#++(address operator, bool _approved)++` [.item-kind]#external#
==== `[.contract-item-name]#++setApprovalForAll++#++(address operator, bool approved)++` [.item-kind]#external#
Approve or remove `operator` as an operator for the caller.
Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.
@ -712,7 +764,7 @@ Emitted when `owner` enables or disables (`approved`) `operator` to manage all o
[.contract]
[[IERC721Metadata]]
=== `++IERC721Metadata++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC721/extensions/IERC721Metadata.sol[{github-icon},role=heading-link]
=== `++IERC721Metadata++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/ERC721/extensions/IERC721Metadata.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
@ -736,7 +788,7 @@ See https://eips.ethereum.org/EIPS/eip-721
* {xref-IERC721-safeTransferFrom-address-address-uint256-}[`++safeTransferFrom(from, to, tokenId)++`]
* {xref-IERC721-transferFrom-address-address-uint256-}[`++transferFrom(from, to, tokenId)++`]
* {xref-IERC721-approve-address-uint256-}[`++approve(to, tokenId)++`]
* {xref-IERC721-setApprovalForAll-address-bool-}[`++setApprovalForAll(operator, _approved)++`]
* {xref-IERC721-setApprovalForAll-address-bool-}[`++setApprovalForAll(operator, approved)++`]
* {xref-IERC721-getApproved-uint256-}[`++getApproved(tokenId)++`]
* {xref-IERC721-isApprovedForAll-address-address-}[`++isApprovedForAll(owner, operator)++`]
@ -785,7 +837,7 @@ Returns the Uniform Resource Identifier (URI) for `tokenId` token.
[.contract]
[[IERC721Enumerable]]
=== `++IERC721Enumerable++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC721/extensions/IERC721Enumerable.sol[{github-icon},role=heading-link]
=== `++IERC721Enumerable++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/ERC721/extensions/IERC721Enumerable.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
@ -809,7 +861,7 @@ See https://eips.ethereum.org/EIPS/eip-721
* {xref-IERC721-safeTransferFrom-address-address-uint256-}[`++safeTransferFrom(from, to, tokenId)++`]
* {xref-IERC721-transferFrom-address-address-uint256-}[`++transferFrom(from, to, tokenId)++`]
* {xref-IERC721-approve-address-uint256-}[`++approve(to, tokenId)++`]
* {xref-IERC721-setApprovalForAll-address-bool-}[`++setApprovalForAll(operator, _approved)++`]
* {xref-IERC721-setApprovalForAll-address-bool-}[`++setApprovalForAll(operator, approved)++`]
* {xref-IERC721-getApproved-uint256-}[`++getApproved(tokenId)++`]
* {xref-IERC721-isApprovedForAll-address-address-}[`++isApprovedForAll(owner, operator)++`]
@ -854,12 +906,6 @@ Use along with {balanceOf} to enumerate all of ``owner``'s tokens.
Returns a token ID at a given `index` of all the tokens stored by the contract.
Use along with {totalSupply} to enumerate all tokens.
:_name: pass:normal[xref:#ERC721-_name-string[`++_name++`]]
:_symbol: pass:normal[xref:#ERC721-_symbol-string[`++_symbol++`]]
:_owners: pass:normal[xref:#ERC721-_owners-mapping-uint256----address-[`++_owners++`]]
:_balances: pass:normal[xref:#ERC721-_balances-mapping-address----uint256-[`++_balances++`]]
:_tokenApprovals: pass:normal[xref:#ERC721-_tokenApprovals-mapping-uint256----address-[`++_tokenApprovals++`]]
:_operatorApprovals: pass:normal[xref:#ERC721-_operatorApprovals-mapping-address----mapping-address----bool--[`++_operatorApprovals++`]]
:constructor: pass:normal[xref:#ERC721-constructor-string-string-[`++constructor++`]]
:supportsInterface: pass:normal[xref:#ERC721-supportsInterface-bytes4-[`++supportsInterface++`]]
:balanceOf: pass:normal[xref:#ERC721-balanceOf-address-[`++balanceOf++`]]
@ -887,14 +933,13 @@ Use along with {totalSupply} to enumerate all tokens.
:_approve: pass:normal[xref:#ERC721-_approve-address-uint256-[`++_approve++`]]
:_setApprovalForAll: pass:normal[xref:#ERC721-_setApprovalForAll-address-address-bool-[`++_setApprovalForAll++`]]
:_requireMinted: pass:normal[xref:#ERC721-_requireMinted-uint256-[`++_requireMinted++`]]
:_checkOnERC721Received: pass:normal[xref:#ERC721-_checkOnERC721Received-address-address-uint256-bytes-[`++_checkOnERC721Received++`]]
:_beforeTokenTransfer: pass:normal[xref:#ERC721-_beforeTokenTransfer-address-address-uint256-uint256-[`++_beforeTokenTransfer++`]]
:_afterTokenTransfer: pass:normal[xref:#ERC721-_afterTokenTransfer-address-address-uint256-uint256-[`++_afterTokenTransfer++`]]
:__unsafe_increaseBalance: pass:normal[xref:#ERC721-__unsafe_increaseBalance-address-uint256-[`++__unsafe_increaseBalance++`]]
[.contract]
[[ERC721]]
=== `++ERC721++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC721/ERC721.sol[{github-icon},role=heading-link]
=== `++ERC721++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/ERC721/ERC721.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
@ -1243,23 +1288,15 @@ WARNING: Anyone calling this MUST ensure that the balances remain consistent wit
being that for any address `a` the value returned by `balanceOf(a)` must be equal to the number of tokens such
that `ownerOf(tokenId)` is `a`.
:_ownedTokens: pass:normal[xref:#ERC721Enumerable-_ownedTokens-mapping-address----mapping-uint256----uint256--[`++_ownedTokens++`]]
:_ownedTokensIndex: pass:normal[xref:#ERC721Enumerable-_ownedTokensIndex-mapping-uint256----uint256-[`++_ownedTokensIndex++`]]
:_allTokens: pass:normal[xref:#ERC721Enumerable-_allTokens-uint256--[`++_allTokens++`]]
:_allTokensIndex: pass:normal[xref:#ERC721Enumerable-_allTokensIndex-mapping-uint256----uint256-[`++_allTokensIndex++`]]
:supportsInterface: pass:normal[xref:#ERC721Enumerable-supportsInterface-bytes4-[`++supportsInterface++`]]
:tokenOfOwnerByIndex: pass:normal[xref:#ERC721Enumerable-tokenOfOwnerByIndex-address-uint256-[`++tokenOfOwnerByIndex++`]]
:totalSupply: pass:normal[xref:#ERC721Enumerable-totalSupply--[`++totalSupply++`]]
:tokenByIndex: pass:normal[xref:#ERC721Enumerable-tokenByIndex-uint256-[`++tokenByIndex++`]]
:_beforeTokenTransfer: pass:normal[xref:#ERC721Enumerable-_beforeTokenTransfer-address-address-uint256-uint256-[`++_beforeTokenTransfer++`]]
:_addTokenToOwnerEnumeration: pass:normal[xref:#ERC721Enumerable-_addTokenToOwnerEnumeration-address-uint256-[`++_addTokenToOwnerEnumeration++`]]
:_addTokenToAllTokensEnumeration: pass:normal[xref:#ERC721Enumerable-_addTokenToAllTokensEnumeration-uint256-[`++_addTokenToAllTokensEnumeration++`]]
:_removeTokenFromOwnerEnumeration: pass:normal[xref:#ERC721Enumerable-_removeTokenFromOwnerEnumeration-address-uint256-[`++_removeTokenFromOwnerEnumeration++`]]
:_removeTokenFromAllTokensEnumeration: pass:normal[xref:#ERC721Enumerable-_removeTokenFromAllTokensEnumeration-uint256-[`++_removeTokenFromAllTokensEnumeration++`]]
[.contract]
[[ERC721Enumerable]]
=== `++ERC721Enumerable++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC721/extensions/ERC721Enumerable.sol[{github-icon},role=heading-link]
=== `++ERC721Enumerable++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/ERC721/extensions/ERC721Enumerable.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
@ -1387,7 +1424,7 @@ See {ERC721-_beforeTokenTransfer}.
[.contract]
[[IERC721Receiver]]
=== `++IERC721Receiver++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC721/IERC721Receiver.sol[{github-icon},role=heading-link]
=== `++IERC721Receiver++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/ERC721/IERC721Receiver.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
@ -1422,7 +1459,7 @@ The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.
[.contract]
[[ERC721Pausable]]
=== `++ERC721Pausable++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC721/extensions/ERC721Pausable.sol[{github-icon},role=heading-link]
=== `++ERC721Pausable++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/ERC721/extensions/ERC721Pausable.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
@ -1542,7 +1579,7 @@ Requirements:
[.contract]
[[ERC721Burnable]]
=== `++ERC721Burnable++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC721/extensions/ERC721Burnable.sol[{github-icon},role=heading-link]
=== `++ERC721Burnable++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/ERC721/extensions/ERC721Burnable.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
@ -1636,18 +1673,15 @@ Requirements:
- The caller must own `tokenId` or be an approved operator.
:_sequentialOwnership: pass:normal[xref:#ERC721Consecutive-_sequentialOwnership-struct-Checkpoints-Trace160[`++_sequentialOwnership++`]]
:_sequentialBurn: pass:normal[xref:#ERC721Consecutive-_sequentialBurn-struct-BitMaps-BitMap[`++_sequentialBurn++`]]
:_maxBatchSize: pass:normal[xref:#ERC721Consecutive-_maxBatchSize--[`++_maxBatchSize++`]]
:_ownerOf: pass:normal[xref:#ERC721Consecutive-_ownerOf-uint256-[`++_ownerOf++`]]
:_mintConsecutive: pass:normal[xref:#ERC721Consecutive-_mintConsecutive-address-uint96-[`++_mintConsecutive++`]]
:_mint: pass:normal[xref:#ERC721Consecutive-_mint-address-uint256-[`++_mint++`]]
:_afterTokenTransfer: pass:normal[xref:#ERC721Consecutive-_afterTokenTransfer-address-address-uint256-uint256-[`++_afterTokenTransfer++`]]
:_totalConsecutiveSupply: pass:normal[xref:#ERC721Consecutive-_totalConsecutiveSupply--[`++_totalConsecutiveSupply++`]]
[.contract]
[[ERC721Consecutive]]
=== `++ERC721Consecutive++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC721/extensions/ERC721Consecutive.sol[{github-icon},role=heading-link]
=== `++ERC721Consecutive++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/ERC721/extensions/ERC721Consecutive.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
@ -1787,7 +1821,7 @@ Requirements:
- `batchSize` must not be greater than {_maxBatchSize}.
- The function is called in the constructor of the contract (directly or indirectly).
CAUTION: Does not emit a `Transfer` event. This is ERC721 compliant as long as it is done outside of the
CAUTION: Does not emit a `Transfer` event. This is ERC721 compliant as long as it is done inside of the
constructor, which is enforced by this function.
CAUTION: Does not invoke `onERC721Received` on the receiver.
@ -1809,14 +1843,14 @@ After construction, {_mintConsecutive} is no longer available and {_mint} become
See {ERC721-_afterTokenTransfer}. Burning of tokens that have been sequentially minted must be explicit.
:_tokenURIs: pass:normal[xref:#ERC721URIStorage-_tokenURIs-mapping-uint256----string-[`++_tokenURIs++`]]
:supportsInterface: pass:normal[xref:#ERC721URIStorage-supportsInterface-bytes4-[`++supportsInterface++`]]
:tokenURI: pass:normal[xref:#ERC721URIStorage-tokenURI-uint256-[`++tokenURI++`]]
:_setTokenURI: pass:normal[xref:#ERC721URIStorage-_setTokenURI-uint256-string-[`++_setTokenURI++`]]
:_burn: pass:normal[xref:#ERC721URIStorage-_burn-uint256-[`++_burn++`]]
[.contract]
[[ERC721URIStorage]]
=== `++ERC721URIStorage++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC721/extensions/ERC721URIStorage.sol[{github-icon},role=heading-link]
=== `++ERC721URIStorage++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/ERC721/extensions/ERC721URIStorage.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
@ -1828,13 +1862,13 @@ ERC721 token with storage based token URI management.
[.contract-index]
.Functions
--
* {xref-ERC721URIStorage-supportsInterface-bytes4-}[`++supportsInterface(interfaceId)++`]
* {xref-ERC721URIStorage-tokenURI-uint256-}[`++tokenURI(tokenId)++`]
* {xref-ERC721URIStorage-_setTokenURI-uint256-string-}[`++_setTokenURI(tokenId, _tokenURI)++`]
* {xref-ERC721URIStorage-_burn-uint256-}[`++_burn(tokenId)++`]
[.contract-subindex-inherited]
.ERC721
* {xref-ERC721-supportsInterface-bytes4-}[`++supportsInterface(interfaceId)++`]
* {xref-ERC721-balanceOf-address-}[`++balanceOf(owner)++`]
* {xref-ERC721-ownerOf-uint256-}[`++ownerOf(tokenId)++`]
* {xref-ERC721-name--}[`++name()++`]
@ -1865,6 +1899,9 @@ ERC721 token with storage based token URI management.
[.contract-subindex-inherited]
.IERC721Metadata
[.contract-subindex-inherited]
.IERC4906
[.contract-subindex-inherited]
.IERC721
@ -1886,6 +1923,11 @@ ERC721 token with storage based token URI management.
[.contract-subindex-inherited]
.IERC721Metadata
[.contract-subindex-inherited]
.IERC4906
* {xref-IERC4906-MetadataUpdate-uint256-}[`++MetadataUpdate(_tokenId)++`]
* {xref-IERC4906-BatchMetadataUpdate-uint256-uint256-}[`++BatchMetadataUpdate(_fromTokenId, _toTokenId)++`]
[.contract-subindex-inherited]
.IERC721
* {xref-IERC721-Transfer-address-address-uint256-}[`++Transfer(from, to, tokenId)++`]
@ -1900,6 +1942,12 @@ ERC721 token with storage based token URI management.
--
[.contract-item]
[[ERC721URIStorage-supportsInterface-bytes4-]]
==== `[.contract-item-name]#++supportsInterface++#++(bytes4 interfaceId) → bool++` [.item-kind]#public#
See {IERC165-supportsInterface}
[.contract-item]
[[ERC721URIStorage-tokenURI-uint256-]]
==== `[.contract-item-name]#++tokenURI++#++(uint256 tokenId) → string++` [.item-kind]#public#
@ -1912,6 +1960,8 @@ See {IERC721Metadata-tokenURI}.
Sets `_tokenURI` as the tokenURI of `tokenId`.
Emits {MetadataUpdate}.
Requirements:
- `tokenId` must exist.
@ -1929,7 +1979,7 @@ the storage mapping.
[.contract]
[[ERC721Votes]]
=== `++ERC721Votes++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC721/extensions/ERC721Votes.sol[{github-icon},role=heading-link]
=== `++ERC721Votes++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/ERC721/extensions/ERC721Votes.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
@ -1953,9 +2003,11 @@ _Available since v4.5._
[.contract-subindex-inherited]
.Votes
* {xref-Votes-clock--}[`++clock()++`]
* {xref-Votes-CLOCK_MODE--}[`++CLOCK_MODE()++`]
* {xref-Votes-getVotes-address-}[`++getVotes(account)++`]
* {xref-Votes-getPastVotes-address-uint256-}[`++getPastVotes(account, blockNumber)++`]
* {xref-Votes-getPastTotalSupply-uint256-}[`++getPastTotalSupply(blockNumber)++`]
* {xref-Votes-getPastVotes-address-uint256-}[`++getPastVotes(account, timepoint)++`]
* {xref-Votes-getPastTotalSupply-uint256-}[`++getPastTotalSupply(timepoint)++`]
* {xref-Votes-_getTotalSupply--}[`++_getTotalSupply()++`]
* {xref-Votes-delegates-address-}[`++delegates(account)++`]
* {xref-Votes-delegate-address-}[`++delegate(delegatee)++`]
@ -1966,10 +2018,23 @@ _Available since v4.5._
* {xref-Votes-nonces-address-}[`++nonces(owner)++`]
* {xref-Votes-DOMAIN_SEPARATOR--}[`++DOMAIN_SEPARATOR()++`]
[.contract-subindex-inherited]
.IERC5805
[.contract-subindex-inherited]
.IVotes
[.contract-subindex-inherited]
.IERC6372
[.contract-subindex-inherited]
.EIP712
* {xref-EIP712-_domainSeparatorV4--}[`++_domainSeparatorV4()++`]
* {xref-EIP712-_hashTypedDataV4-bytes32-}[`++_hashTypedDataV4(structHash)++`]
* {xref-EIP712-eip712Domain--}[`++eip712Domain()++`]
[.contract-subindex-inherited]
.IERC5267
[.contract-subindex-inherited]
.ERC721
@ -2014,9 +2079,6 @@ _Available since v4.5._
[.contract-subindex-inherited]
.IERC165
[.contract-subindex-inherited]
.IVotes
--
[.contract-index]
@ -2026,9 +2088,24 @@ _Available since v4.5._
[.contract-subindex-inherited]
.Votes
[.contract-subindex-inherited]
.IERC5805
[.contract-subindex-inherited]
.IVotes
* {xref-IVotes-DelegateChanged-address-address-address-}[`++DelegateChanged(delegator, fromDelegate, toDelegate)++`]
* {xref-IVotes-DelegateVotesChanged-address-uint256-uint256-}[`++DelegateVotesChanged(delegate, previousBalance, newBalance)++`]
[.contract-subindex-inherited]
.IERC6372
[.contract-subindex-inherited]
.EIP712
[.contract-subindex-inherited]
.IERC5267
* {xref-IERC5267-EIP712DomainChanged--}[`++EIP712DomainChanged()++`]
[.contract-subindex-inherited]
.ERC721
@ -2047,11 +2124,6 @@ _Available since v4.5._
[.contract-subindex-inherited]
.IERC165
[.contract-subindex-inherited]
.IVotes
* {xref-IVotes-DelegateChanged-address-address-address-}[`++DelegateChanged(delegator, fromDelegate, toDelegate)++`]
* {xref-IVotes-DelegateVotesChanged-address-uint256-uint256-}[`++DelegateVotesChanged(delegate, previousBalance, newBalance)++`]
--
[.contract-item]
@ -2068,12 +2140,14 @@ Emits a {IVotes-DelegateVotesChanged} event.
Returns the balance of `account`.
WARNING: Overriding this function will likely result in incorrect vote tracking.
:supportsInterface: pass:normal[xref:#ERC721Royalty-supportsInterface-bytes4-[`++supportsInterface++`]]
:_burn: pass:normal[xref:#ERC721Royalty-_burn-uint256-[`++_burn++`]]
[.contract]
[[ERC721Royalty]]
=== `++ERC721Royalty++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC721/extensions/ERC721Royalty.sol[{github-icon},role=heading-link]
=== `++ERC721Royalty++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/ERC721/extensions/ERC721Royalty.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
@ -2136,7 +2210,7 @@ _Available since v4.5._
[.contract-subindex-inherited]
.ERC2981
* {xref-ERC2981-royaltyInfo-uint256-uint256-}[`++royaltyInfo(_tokenId, _salePrice)++`]
* {xref-ERC2981-royaltyInfo-uint256-uint256-}[`++royaltyInfo(tokenId, salePrice)++`]
* {xref-ERC2981-_feeDenominator--}[`++_feeDenominator()++`]
* {xref-ERC2981-_setDefaultRoyalty-address-uint96-}[`++_setDefaultRoyalty(receiver, feeNumerator)++`]
* {xref-ERC2981-_deleteDefaultRoyalty--}[`++_deleteDefaultRoyalty()++`]
@ -2196,14 +2270,164 @@ See {IERC165-supportsInterface}.
See {ERC721-_burn}. This override additionally clears the royalty information for the token.
:constructor: pass:normal[xref:#ERC721Wrapper-constructor-contract-IERC721-[`++constructor++`]]
:depositFor: pass:normal[xref:#ERC721Wrapper-depositFor-address-uint256---[`++depositFor++`]]
:withdrawTo: pass:normal[xref:#ERC721Wrapper-withdrawTo-address-uint256---[`++withdrawTo++`]]
:onERC721Received: pass:normal[xref:#ERC721Wrapper-onERC721Received-address-address-uint256-bytes-[`++onERC721Received++`]]
:_recover: pass:normal[xref:#ERC721Wrapper-_recover-address-uint256-[`++_recover++`]]
:underlying: pass:normal[xref:#ERC721Wrapper-underlying--[`++underlying++`]]
[.contract]
[[ERC721Wrapper]]
=== `++ERC721Wrapper++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/ERC721/extensions/ERC721Wrapper.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Wrapper.sol";
```
Extension of the ERC721 token contract to support token wrapping.
Users can deposit and withdraw an "underlying token" and receive a "wrapped token" with a matching tokenId. This is useful
in conjunction with other modules. For example, combining this wrapping mechanism with {ERC721Votes} will allow the
wrapping of an existing "basic" ERC721 into a governance token.
_Available since v4.9.0_
[.contract-index]
.Functions
--
* {xref-ERC721Wrapper-constructor-contract-IERC721-}[`++constructor(underlyingToken)++`]
* {xref-ERC721Wrapper-depositFor-address-uint256---}[`++depositFor(account, tokenIds)++`]
* {xref-ERC721Wrapper-withdrawTo-address-uint256---}[`++withdrawTo(account, tokenIds)++`]
* {xref-ERC721Wrapper-onERC721Received-address-address-uint256-bytes-}[`++onERC721Received(, from, tokenId, )++`]
* {xref-ERC721Wrapper-_recover-address-uint256-}[`++_recover(account, tokenId)++`]
* {xref-ERC721Wrapper-underlying--}[`++underlying()++`]
[.contract-subindex-inherited]
.IERC721Receiver
[.contract-subindex-inherited]
.ERC721
* {xref-ERC721-supportsInterface-bytes4-}[`++supportsInterface(interfaceId)++`]
* {xref-ERC721-balanceOf-address-}[`++balanceOf(owner)++`]
* {xref-ERC721-ownerOf-uint256-}[`++ownerOf(tokenId)++`]
* {xref-ERC721-name--}[`++name()++`]
* {xref-ERC721-symbol--}[`++symbol()++`]
* {xref-ERC721-tokenURI-uint256-}[`++tokenURI(tokenId)++`]
* {xref-ERC721-_baseURI--}[`++_baseURI()++`]
* {xref-ERC721-approve-address-uint256-}[`++approve(to, tokenId)++`]
* {xref-ERC721-getApproved-uint256-}[`++getApproved(tokenId)++`]
* {xref-ERC721-setApprovalForAll-address-bool-}[`++setApprovalForAll(operator, approved)++`]
* {xref-ERC721-isApprovedForAll-address-address-}[`++isApprovedForAll(owner, operator)++`]
* {xref-ERC721-transferFrom-address-address-uint256-}[`++transferFrom(from, to, tokenId)++`]
* {xref-ERC721-safeTransferFrom-address-address-uint256-}[`++safeTransferFrom(from, to, tokenId)++`]
* {xref-ERC721-safeTransferFrom-address-address-uint256-bytes-}[`++safeTransferFrom(from, to, tokenId, data)++`]
* {xref-ERC721-_safeTransfer-address-address-uint256-bytes-}[`++_safeTransfer(from, to, tokenId, data)++`]
* {xref-ERC721-_ownerOf-uint256-}[`++_ownerOf(tokenId)++`]
* {xref-ERC721-_exists-uint256-}[`++_exists(tokenId)++`]
* {xref-ERC721-_isApprovedOrOwner-address-uint256-}[`++_isApprovedOrOwner(spender, tokenId)++`]
* {xref-ERC721-_safeMint-address-uint256-}[`++_safeMint(to, tokenId)++`]
* {xref-ERC721-_safeMint-address-uint256-bytes-}[`++_safeMint(to, tokenId, data)++`]
* {xref-ERC721-_mint-address-uint256-}[`++_mint(to, tokenId)++`]
* {xref-ERC721-_burn-uint256-}[`++_burn(tokenId)++`]
* {xref-ERC721-_transfer-address-address-uint256-}[`++_transfer(from, to, tokenId)++`]
* {xref-ERC721-_approve-address-uint256-}[`++_approve(to, tokenId)++`]
* {xref-ERC721-_setApprovalForAll-address-address-bool-}[`++_setApprovalForAll(owner, operator, approved)++`]
* {xref-ERC721-_requireMinted-uint256-}[`++_requireMinted(tokenId)++`]
* {xref-ERC721-_beforeTokenTransfer-address-address-uint256-uint256-}[`++_beforeTokenTransfer(from, to, firstTokenId, batchSize)++`]
* {xref-ERC721-_afterTokenTransfer-address-address-uint256-uint256-}[`++_afterTokenTransfer(from, to, firstTokenId, batchSize)++`]
* {xref-ERC721-__unsafe_increaseBalance-address-uint256-}[`++__unsafe_increaseBalance(account, amount)++`]
[.contract-subindex-inherited]
.IERC721Metadata
[.contract-subindex-inherited]
.IERC721
[.contract-subindex-inherited]
.ERC165
[.contract-subindex-inherited]
.IERC165
--
[.contract-index]
.Events
--
[.contract-subindex-inherited]
.IERC721Receiver
[.contract-subindex-inherited]
.ERC721
[.contract-subindex-inherited]
.IERC721Metadata
[.contract-subindex-inherited]
.IERC721
* {xref-IERC721-Transfer-address-address-uint256-}[`++Transfer(from, to, tokenId)++`]
* {xref-IERC721-Approval-address-address-uint256-}[`++Approval(owner, approved, tokenId)++`]
* {xref-IERC721-ApprovalForAll-address-address-bool-}[`++ApprovalForAll(owner, operator, approved)++`]
[.contract-subindex-inherited]
.ERC165
[.contract-subindex-inherited]
.IERC165
--
[.contract-item]
[[ERC721Wrapper-constructor-contract-IERC721-]]
==== `[.contract-item-name]#++constructor++#++(contract IERC721 underlyingToken)++` [.item-kind]#internal#
[.contract-item]
[[ERC721Wrapper-depositFor-address-uint256---]]
==== `[.contract-item-name]#++depositFor++#++(address account, uint256[] tokenIds) → bool++` [.item-kind]#public#
Allow a user to deposit underlying tokens and mint the corresponding tokenIds.
[.contract-item]
[[ERC721Wrapper-withdrawTo-address-uint256---]]
==== `[.contract-item-name]#++withdrawTo++#++(address account, uint256[] tokenIds) → bool++` [.item-kind]#public#
Allow a user to burn wrapped tokens and withdraw the corresponding tokenIds of the underlying tokens.
[.contract-item]
[[ERC721Wrapper-onERC721Received-address-address-uint256-bytes-]]
==== `[.contract-item-name]#++onERC721Received++#++(address, address from, uint256 tokenId, bytes) → bytes4++` [.item-kind]#public#
Overrides {IERC721Receiver-onERC721Received} to allow minting on direct ERC721 transfers to
this contract.
In case there's data attached, it validates that the operator is this contract, so only trusted data
is accepted from {depositFor}.
WARNING: Doesn't work with unsafe transfers (eg. {IERC721-transferFrom}). Use {ERC721Wrapper-_recover}
for recovering in that scenario.
[.contract-item]
[[ERC721Wrapper-_recover-address-uint256-]]
==== `[.contract-item-name]#++_recover++#++(address account, uint256 tokenId) → uint256++` [.item-kind]#internal#
Mint a wrapped token to cover any underlyingToken that would have been transferred by mistake. Internal
function that can be exposed with access control if desired.
[.contract-item]
[[ERC721Wrapper-underlying--]]
==== `[.contract-item-name]#++underlying++#++() → contract IERC721++` [.item-kind]#public#
Returns the underlying token.
== Presets
These contracts are preconfigured combinations of the above features. They can be used through inheritance or as models to copy and paste their source code.
:MINTER_ROLE: pass:normal[xref:#ERC721PresetMinterPauserAutoId-MINTER_ROLE-bytes32[`++MINTER_ROLE++`]]
:PAUSER_ROLE: pass:normal[xref:#ERC721PresetMinterPauserAutoId-PAUSER_ROLE-bytes32[`++PAUSER_ROLE++`]]
:_tokenIdTracker: pass:normal[xref:#ERC721PresetMinterPauserAutoId-_tokenIdTracker-struct-Counters-Counter[`++_tokenIdTracker++`]]
:_baseTokenURI: pass:normal[xref:#ERC721PresetMinterPauserAutoId-_baseTokenURI-string[`++_baseTokenURI++`]]
:constructor: pass:normal[xref:#ERC721PresetMinterPauserAutoId-constructor-string-string-string-[`++constructor++`]]
:_baseURI: pass:normal[xref:#ERC721PresetMinterPauserAutoId-_baseURI--[`++_baseURI++`]]
:mint: pass:normal[xref:#ERC721PresetMinterPauserAutoId-mint-address-[`++mint++`]]
@ -2214,7 +2438,7 @@ These contracts are preconfigured combinations of the above features. They can b
[.contract]
[[ERC721PresetMinterPauserAutoId]]
=== `++ERC721PresetMinterPauserAutoId++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC721/presets/ERC721PresetMinterPauserAutoId.sol[{github-icon},role=heading-link]
=== `++ERC721PresetMinterPauserAutoId++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/ERC721/presets/ERC721PresetMinterPauserAutoId.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
@ -2468,7 +2692,7 @@ See {IERC165-supportsInterface}.
[.contract]
[[ERC721Holder]]
=== `++ERC721Holder++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC721/utils/ERC721Holder.sol[{github-icon},role=heading-link]
=== `++ERC721Holder++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/ERC721/utils/ERC721Holder.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity

View File

@ -154,6 +154,8 @@
[.readme-notice]
NOTE: This document is better viewed at https://docs.openzeppelin.com/contracts/api/token/erc777
CAUTION: As of v4.9, OpenZeppelin's implementation of ERC-777 is deprecated and will be removed in the next major release.
This set of interfaces and contracts are all related to the https://eips.ethereum.org/EIPS/eip-777[ERC777 token standard].
TIP: For an overview of ERC777 tokens and a walk through on how to create a token contract read our xref:ROOT:erc777.adoc[ERC777 guide].
@ -185,7 +187,7 @@ Additionally there are interfaces used to develop contracts that react to token
[.contract]
[[IERC777]]
=== `++IERC777++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC777/IERC777.sol[{github-icon},role=heading-link]
=== `++IERC777++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/ERC777/IERC777.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
@ -422,17 +424,6 @@ Emitted when `operator` is revoked its operator status for `tokenHolder`.
==== `[.contract-item-name]#++Sent++#++(address indexed operator, address indexed from, address indexed to, uint256 amount, bytes data, bytes operatorData)++` [.item-kind]#event#
:_ERC1820_REGISTRY: pass:normal[xref:#ERC777-_ERC1820_REGISTRY-contract-IERC1820Registry[`++_ERC1820_REGISTRY++`]]
:_balances: pass:normal[xref:#ERC777-_balances-mapping-address----uint256-[`++_balances++`]]
:_totalSupply: pass:normal[xref:#ERC777-_totalSupply-uint256[`++_totalSupply++`]]
:_name: pass:normal[xref:#ERC777-_name-string[`++_name++`]]
:_symbol: pass:normal[xref:#ERC777-_symbol-string[`++_symbol++`]]
:_TOKENS_SENDER_INTERFACE_HASH: pass:normal[xref:#ERC777-_TOKENS_SENDER_INTERFACE_HASH-bytes32[`++_TOKENS_SENDER_INTERFACE_HASH++`]]
:_TOKENS_RECIPIENT_INTERFACE_HASH: pass:normal[xref:#ERC777-_TOKENS_RECIPIENT_INTERFACE_HASH-bytes32[`++_TOKENS_RECIPIENT_INTERFACE_HASH++`]]
:_defaultOperatorsArray: pass:normal[xref:#ERC777-_defaultOperatorsArray-address--[`++_defaultOperatorsArray++`]]
:_defaultOperators: pass:normal[xref:#ERC777-_defaultOperators-mapping-address----bool-[`++_defaultOperators++`]]
:_operators: pass:normal[xref:#ERC777-_operators-mapping-address----mapping-address----bool--[`++_operators++`]]
:_revokedDefaultOperators: pass:normal[xref:#ERC777-_revokedDefaultOperators-mapping-address----mapping-address----bool--[`++_revokedDefaultOperators++`]]
:_allowances: pass:normal[xref:#ERC777-_allowances-mapping-address----mapping-address----uint256--[`++_allowances++`]]
:constructor: pass:normal[xref:#ERC777-constructor-string-string-address---[`++constructor++`]]
:name: pass:normal[xref:#ERC777-name--[`++name++`]]
:symbol: pass:normal[xref:#ERC777-symbol--[`++symbol++`]]
@ -456,16 +447,13 @@ Emitted when `operator` is revoked its operator status for `tokenHolder`.
:_mint: pass:normal[xref:#ERC777-_mint-address-uint256-bytes-bytes-bool-[`++_mint++`]]
:_send: pass:normal[xref:#ERC777-_send-address-address-uint256-bytes-bytes-bool-[`++_send++`]]
:_burn: pass:normal[xref:#ERC777-_burn-address-uint256-bytes-bytes-[`++_burn++`]]
:_move: pass:normal[xref:#ERC777-_move-address-address-address-uint256-bytes-bytes-[`++_move++`]]
:_approve: pass:normal[xref:#ERC777-_approve-address-address-uint256-[`++_approve++`]]
:_callTokensToSend: pass:normal[xref:#ERC777-_callTokensToSend-address-address-address-uint256-bytes-bytes-[`++_callTokensToSend++`]]
:_callTokensReceived: pass:normal[xref:#ERC777-_callTokensReceived-address-address-address-uint256-bytes-bytes-bool-[`++_callTokensReceived++`]]
:_spendAllowance: pass:normal[xref:#ERC777-_spendAllowance-address-address-uint256-[`++_spendAllowance++`]]
:_beforeTokenTransfer: pass:normal[xref:#ERC777-_beforeTokenTransfer-address-address-address-uint256-[`++_beforeTokenTransfer++`]]
[.contract]
[[ERC777]]
=== `++ERC777++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC777/ERC777.sol[{github-icon},role=heading-link]
=== `++ERC777++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/ERC777/ERC777.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
@ -486,6 +474,8 @@ Additionally, the {IERC777-granularity} value is hard-coded to `1`, meaning that
are no special restrictions in the amount of tokens that created, moved, or
destroyed. This makes integration with ERC20 applications seamless.
CAUTION: This file is deprecated as of v4.9 and will be removed in the next major release.
[.contract-index]
.Functions
--
@ -771,7 +761,7 @@ Might emit an {IERC20-Approval} event.
==== `[.contract-item-name]#++_beforeTokenTransfer++#++(address operator, address from, address to, uint256 amount)++` [.item-kind]#internal#
Hook that is called before any token transfer. This includes
calls to {send}, {transfer}, {operatorSend}, minting and burning.
calls to {send}, {transfer}, {operatorSend}, {transferFrom}, minting and burning.
Calling conditions:
@ -789,7 +779,7 @@ To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hook
[.contract]
[[IERC777Sender]]
=== `++IERC777Sender++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC777/IERC777Sender.sol[{github-icon},role=heading-link]
=== `++IERC777Sender++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/ERC777/IERC777Sender.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
@ -829,7 +819,7 @@ This function may revert to prevent the operation from being executed.
[.contract]
[[IERC777Recipient]]
=== `++IERC777Recipient++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC777/IERC777Recipient.sol[{github-icon},role=heading-link]
=== `++IERC777Recipient++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/ERC777/IERC777Recipient.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
@ -873,7 +863,7 @@ These contracts are preconfigured combinations of features. They can be used thr
[.contract]
[[ERC777PresetFixedSupply]]
=== `++ERC777PresetFixedSupply++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC777/presets/ERC777PresetFixedSupply.sol[{github-icon},role=heading-link]
=== `++ERC777PresetFixedSupply++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/ERC777/presets/ERC777PresetFixedSupply.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity

View File

@ -19,8 +19,6 @@ Functionality that is common to multiple token standards.
== Contracts
:RoyaltyInfo: pass:normal[xref:#ERC2981-RoyaltyInfo[`++RoyaltyInfo++`]]
:_defaultRoyaltyInfo: pass:normal[xref:#ERC2981-_defaultRoyaltyInfo-struct-ERC2981-RoyaltyInfo[`++_defaultRoyaltyInfo++`]]
:_tokenRoyaltyInfo: pass:normal[xref:#ERC2981-_tokenRoyaltyInfo-mapping-uint256----struct-ERC2981-RoyaltyInfo-[`++_tokenRoyaltyInfo++`]]
:supportsInterface: pass:normal[xref:#ERC2981-supportsInterface-bytes4-[`++supportsInterface++`]]
:royaltyInfo: pass:normal[xref:#ERC2981-royaltyInfo-uint256-uint256-[`++royaltyInfo++`]]
:_feeDenominator: pass:normal[xref:#ERC2981-_feeDenominator--[`++_feeDenominator++`]]
@ -31,7 +29,7 @@ Functionality that is common to multiple token standards.
[.contract]
[[ERC2981]]
=== `++ERC2981++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/common/ERC2981.sol[{github-icon},role=heading-link]
=== `++ERC2981++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.2/contracts/token/common/ERC2981.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
@ -56,7 +54,7 @@ _Available since v4.5._
.Functions
--
* {xref-ERC2981-supportsInterface-bytes4-}[`++supportsInterface(interfaceId)++`]
* {xref-ERC2981-royaltyInfo-uint256-uint256-}[`++royaltyInfo(_tokenId, _salePrice)++`]
* {xref-ERC2981-royaltyInfo-uint256-uint256-}[`++royaltyInfo(tokenId, salePrice)++`]
* {xref-ERC2981-_feeDenominator--}[`++_feeDenominator()++`]
* {xref-ERC2981-_setDefaultRoyalty-address-uint96-}[`++_setDefaultRoyalty(receiver, feeNumerator)++`]
* {xref-ERC2981-_deleteDefaultRoyalty--}[`++_deleteDefaultRoyalty()++`]
@ -82,7 +80,7 @@ See {IERC165-supportsInterface}.
[.contract-item]
[[ERC2981-royaltyInfo-uint256-uint256-]]
==== `[.contract-item-name]#++royaltyInfo++#++(uint256 _tokenId, uint256 _salePrice) → address, uint256++` [.item-kind]#public#
==== `[.contract-item-name]#++royaltyInfo++#++(uint256 tokenId, uint256 salePrice) → address, uint256++` [.item-kind]#public#
Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of
exchange. The royalty amount is denominated and should be paid in that same unit of exchange.