From 416c4ced2c273cc3540198a6953022fdb734ddac Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Tue, 25 Sep 2018 17:46:16 -0300 Subject: [PATCH] convert ERC721 to initializers --- contracts/mocks/ERC721Mock.sol | 7 ++++++- contracts/token/ERC721/ERC721.sol | 8 ++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/contracts/mocks/ERC721Mock.sol b/contracts/mocks/ERC721Mock.sol index 607ceed13..bbeaf12ad 100644 --- a/contracts/mocks/ERC721Mock.sol +++ b/contracts/mocks/ERC721Mock.sol @@ -1,5 +1,6 @@ pragma solidity ^0.4.24; +import "../Initializable.sol"; import "../token/ERC721/ERC721.sol"; @@ -7,7 +8,11 @@ import "../token/ERC721/ERC721.sol"; * @title ERC721Mock * This mock just provides a public mint and burn functions for testing purposes */ -contract ERC721Mock is ERC721 { +contract ERC721Mock is Initializable, ERC721 { + constructor() public { + ERC721.initialize(); + } + function mint(address to, uint256 tokenId) public { _mint(to, tokenId); } diff --git a/contracts/token/ERC721/ERC721.sol b/contracts/token/ERC721/ERC721.sol index 7501248d7..fad2a9605 100644 --- a/contracts/token/ERC721/ERC721.sol +++ b/contracts/token/ERC721/ERC721.sol @@ -1,5 +1,6 @@ pragma solidity ^0.4.24; +import "../../Initializable.sol"; import "./IERC721.sol"; import "./IERC721Receiver.sol"; import "../../math/SafeMath.sol"; @@ -11,7 +12,7 @@ import "../../introspection/ERC165.sol"; * @title ERC721 Non-Fungible Token Standard basic implementation * @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md */ -contract ERC721 is ERC165, IERC721 { +contract ERC721 is Initializable, ERC165, IERC721 { using SafeMath for uint256; using Address for address; @@ -46,9 +47,12 @@ contract ERC721 is ERC165, IERC721 { * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)')) */ - constructor() + function initialize() public + initializer { + ERC165.initialize(); + // register the supported interfaces to conform to ERC721 via ERC165 _registerInterface(_InterfaceId_ERC721); }