Add ERC20 _setTokenURI (#1618)

* Add _setTokenURI internal.

* Rename TokenMetadata to ERC20Metadata.

* Add changelog entry for ERC20Metadata.

* Fix linter error.

* Add breaking change changelog notice.
This commit is contained in:
Nicolás Venturo
2019-01-25 15:16:19 -03:00
committed by Francisco Giordano
parent 1fd993bc01
commit 8dd92fd6ca
6 changed files with 46 additions and 32 deletions

View File

@ -7,18 +7,18 @@ import "../../token/ERC20/IERC20.sol";
* @dev See https://eips.ethereum.org/EIPS/eip-1046
* @dev tokenURI must respond with a URI that implements https://eips.ethereum.org/EIPS/eip-1047
*/
contract ERC20TokenMetadata is IERC20 {
function tokenURI() external view returns (string memory);
}
contract ERC20WithMetadata is ERC20TokenMetadata {
contract ERC20Metadata {
string private _tokenURI;
constructor (string memory tokenURI) public {
_tokenURI = tokenURI;
constructor (string memory tokenURI_) public {
_setTokenURI(tokenURI_);
}
function tokenURI() external view returns (string memory) {
return _tokenURI;
}
function _setTokenURI(string memory tokenURI_) internal {
_tokenURI = tokenURI_;
}
}

View File

@ -0,0 +1,14 @@
pragma solidity ^0.5.2;
import "../token/ERC20/ERC20.sol";
import "../drafts/ERC1046/ERC20Metadata.sol";
contract ERC20MetadataMock is ERC20, ERC20Metadata {
constructor (string memory tokenURI) public ERC20Metadata(tokenURI) {
// solhint-disable-previous-line no-empty-blocks
}
function setTokenURI(string memory tokenURI) public {
_setTokenURI(tokenURI);
}
}

View File

@ -1,10 +0,0 @@
pragma solidity ^0.5.2;
import "../token/ERC20/ERC20.sol";
import "../drafts/ERC1046/TokenMetadata.sol";
contract ERC20WithMetadataMock is ERC20, ERC20WithMetadata {
constructor (string memory tokenURI) public ERC20WithMetadata(tokenURI) {
// solhint-disable-previous-line no-empty-blocks
}
}