Commit f3a0a6a4 by Francisco Giordano

convert ERC721Full, ERC721Enumerable, ERC721Metadata to initializers

parent 416c4ced
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../token/ERC721/ERC721Full.sol";
import "../token/ERC721/ERC721Mintable.sol";
import "../token/ERC721/ERC721Burnable.sol";
......@@ -10,11 +11,12 @@ import "../token/ERC721/ERC721Burnable.sol";
* This mock just provides a public mint and burn functions for testing purposes,
* and a public setter for metadata URI
*/
contract ERC721FullMock is ERC721Full, ERC721Mintable, ERC721Burnable {
contract ERC721FullMock is Initializable, ERC721Full, ERC721Mintable, ERC721Burnable {
constructor(string name, string symbol) public
ERC721Mintable()
ERC721Full(name, symbol)
{}
{
ERC721Full.initialize(name, symbol);
ERC721Mintable.initialize();
}
function exists(uint256 tokenId) public view returns (bool) {
return _exists(tokenId);
......
pragma solidity ^0.4.24;
import "../../Initializable.sol";
import "./IERC721Enumerable.sol";
import "./ERC721.sol";
import "../../introspection/ERC165.sol";
contract ERC721Enumerable is ERC165, ERC721, IERC721Enumerable {
contract ERC721Enumerable is Initializable, ERC165, ERC721, IERC721Enumerable {
// Mapping from owner to list of owned token IDs
mapping(address => uint256[]) private _ownedTokens;
......@@ -29,7 +30,10 @@ contract ERC721Enumerable is ERC165, ERC721, IERC721Enumerable {
/**
* @dev Constructor function
*/
constructor() public {
function initialize() public initializer {
ERC165.initialize();
ERC721.initialize();
// register the supported interface to conform to ERC721 via ERC165
_registerInterface(_InterfaceId_ERC721Enumerable);
}
......
pragma solidity ^0.4.24;
import "../../Initializable.sol";
import "./ERC721.sol";
import "./ERC721Enumerable.sol";
import "./ERC721Metadata.sol";
......@@ -11,9 +12,13 @@ import "./ERC721Metadata.sol";
* Moreover, it includes approve all functionality using operator terminology
* @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md
*/
contract ERC721Full is ERC721, ERC721Enumerable, ERC721Metadata {
constructor(string name, string symbol) ERC721Metadata(name, symbol)
contract ERC721Full is Initializable, ERC721, ERC721Enumerable, ERC721Metadata {
function initialize(string name, string symbol)
public
initializer
{
ERC721.initialize();
ERC721Enumerable.initialize();
ERC721Metadata.initialize(name, symbol);
}
}
pragma solidity ^0.4.24;
import "../../Initializable.sol";
import "./ERC721.sol";
import "./IERC721Metadata.sol";
import "../../introspection/ERC165.sol";
contract ERC721Metadata is ERC165, ERC721, IERC721Metadata {
contract ERC721Metadata is Initializable, ERC165, ERC721, IERC721Metadata {
// Token name
string internal _name;
......@@ -26,7 +27,10 @@ contract ERC721Metadata is ERC165, ERC721, IERC721Metadata {
/**
* @dev Constructor function
*/
constructor(string name, string symbol) public {
function initialize(string name, string symbol) public initializer {
ERC165.initialize();
ERC721.initialize();
_name = name;
_symbol = symbol;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment