I am currently making an erc20 based token factory using openzepplin. I do not understand why these problems are happening at the moment, and I would like to see how i can solve this problem.
it is my smart contract source code
pragma solidity ^0.5.0;
import "./Factory.sol";
import "./TokenizeFT.sol";
// @title FT Factory - Allows creation of custom token.
// @author hyungchul.park
contract FTFactory is Factory {
function create(string memory _name, string memory _symbol, uint8 decimals) public returns (TokenizeFT tokenAddress){
tokenAddress = new TokenizeFT(_name, _symbol, decimals);
register(tokenAddress);
}
}
it is my TokenizeFT.sol contract
pragma solidity ^0.5.0;
import "../../node_modules/openzeppelin-solidity/contracts/token/ERC20/ERC20.sol";
import "../../node_modules/openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol";
contract TokenizeFT is ERC20, ERC20Detailed {
constructor(string memory _name, string memory _symbol, uint8 decimals) public ERC20Detailed(_name, _symbol, decimals){
_mint(msg.sender, 10000 * (10 ** uint256(decimals)));
}
}
it is my Factory.sol
pragma solidity ^0.5.0;
import "./TokenizeFT.sol";
contract Factory {
// events
event ContractInstantiation(address sender, TokenizeFT instantiation);
// storage
mapping(address => bool) public isInstantiation;
TokenizeFT[] public ftlist;
mapping(address => TokenizeFT[]) public instantiations;
// public function
function getInstantiationCount(address creator) public view returns (uint) {
return instantiations[creator].length;
}
// internal function
function register(TokenizeFT instantiation) internal {
ftlist.push(instantiation);
instantiations[msg.sender].push(instantiation);
emit ContractInstantiation(msg.sender, instantiation);
}
}
below is error screen pic