Update docs
This commit is contained in:
@ -0,0 +1,53 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
// OpenZeppelin Contracts (last updated v5.3.0) (token/ERC6909/extensions/draft-ERC6909ContentURI.sol)
|
||||
|
||||
pragma solidity ^0.8.20;
|
||||
|
||||
import {ERC6909} from "../draft-ERC6909.sol";
|
||||
import {IERC6909ContentURI} from "../../../interfaces/draft-IERC6909.sol";
|
||||
|
||||
/**
|
||||
* @dev Implementation of the Content URI extension defined in ERC6909.
|
||||
*/
|
||||
contract ERC6909ContentURI is ERC6909, IERC6909ContentURI {
|
||||
string private _contractURI;
|
||||
mapping(uint256 id => string) private _tokenURIs;
|
||||
|
||||
/// @dev Event emitted when the contract URI is changed. See https://eips.ethereum.org/EIPS/eip-7572[ERC-7572] for details.
|
||||
event ContractURIUpdated();
|
||||
|
||||
/// @dev See {IERC1155-URI}
|
||||
event URI(string value, uint256 indexed id);
|
||||
|
||||
/// @inheritdoc IERC6909ContentURI
|
||||
function contractURI() public view virtual override returns (string memory) {
|
||||
return _contractURI;
|
||||
}
|
||||
|
||||
/// @inheritdoc IERC6909ContentURI
|
||||
function tokenURI(uint256 id) public view virtual override returns (string memory) {
|
||||
return _tokenURIs[id];
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev Sets the {contractURI} for the contract.
|
||||
*
|
||||
* Emits a {ContractURIUpdated} event.
|
||||
*/
|
||||
function _setContractURI(string memory newContractURI) internal virtual {
|
||||
_contractURI = newContractURI;
|
||||
|
||||
emit ContractURIUpdated();
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev Sets the {tokenURI} for a given token of type `id`.
|
||||
*
|
||||
* Emits a {URI} event.
|
||||
*/
|
||||
function _setTokenURI(uint256 id, string memory newTokenURI) internal virtual {
|
||||
_tokenURIs[id] = newTokenURI;
|
||||
|
||||
emit URI(newTokenURI, id);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user