2018-01-24 02:09:50 +00:00
|
|
|
pragma solidity ^0.4.11;
|
|
|
|
|
|
|
|
import "./MiniMeToken.sol";
|
|
|
|
|
|
|
|
////////////////
|
|
|
|
// MiniMeTokenFactory
|
|
|
|
////////////////
|
|
|
|
|
2018-05-08 03:51:07 +00:00
|
|
|
/**
|
|
|
|
* @dev This contract is used to generate clone contracts from a contract.
|
|
|
|
* In solidity this is the way to create a contract from a contract of the
|
|
|
|
* same class
|
|
|
|
*/
|
2018-01-24 02:09:50 +00:00
|
|
|
contract MiniMeTokenFactory {
|
|
|
|
|
2018-05-08 03:51:07 +00:00
|
|
|
/**
|
|
|
|
* @notice Update the DApp by creating a new token with new functionalities
|
|
|
|
* the msg.sender becomes the controller of this clone token
|
|
|
|
* @param _parentToken Address of the token being cloned
|
|
|
|
* @param _snapshotBlock Block of the parent token that will
|
|
|
|
* determine the initial distribution of the clone token
|
|
|
|
* @param _tokenName Name of the new token
|
|
|
|
* @param _decimalUnits Number of decimals of the new token
|
|
|
|
* @param _tokenSymbol Token Symbol for the new token
|
|
|
|
* @param _transfersEnabled If true, tokens will be able to be transferred
|
|
|
|
* @return The address of the new token contract
|
|
|
|
*/
|
2018-01-24 02:09:50 +00:00
|
|
|
function createCloneToken(
|
|
|
|
address _parentToken,
|
|
|
|
uint _snapshotBlock,
|
|
|
|
string _tokenName,
|
|
|
|
uint8 _decimalUnits,
|
|
|
|
string _tokenSymbol,
|
|
|
|
bool _transfersEnabled
|
2018-03-17 14:41:08 +00:00
|
|
|
) public returns (MiniMeToken) {
|
2018-01-24 02:09:50 +00:00
|
|
|
MiniMeToken newToken = new MiniMeToken(
|
|
|
|
this,
|
|
|
|
_parentToken,
|
|
|
|
_snapshotBlock,
|
|
|
|
_tokenName,
|
|
|
|
_decimalUnits,
|
|
|
|
_tokenSymbol,
|
|
|
|
_transfersEnabled
|
|
|
|
);
|
|
|
|
|
|
|
|
newToken.changeController(msg.sender);
|
|
|
|
return newToken;
|
|
|
|
}
|
|
|
|
}
|