mirror of https://github.com/vacp2p/minime.git
46 lines
1.6 KiB
Solidity
46 lines
1.6 KiB
Solidity
|
// SPDX-License-Identifier: GPL-3.0
|
||
|
pragma solidity ^0.8.0;
|
||
|
|
||
|
import "./MiniMeToken.sol";
|
||
|
|
||
|
/// @title MiniMeToken Factory Contract
|
||
|
/// @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
|
||
|
contract MiniMeTokenFactory {
|
||
|
/// @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
|
||
|
function createCloneToken(
|
||
|
MiniMeToken _parentToken,
|
||
|
uint256 _snapshotBlock,
|
||
|
string memory _tokenName,
|
||
|
uint8 _decimalUnits,
|
||
|
string memory _tokenSymbol,
|
||
|
bool _transfersEnabled
|
||
|
)
|
||
|
public
|
||
|
returns (MiniMeToken)
|
||
|
{
|
||
|
MiniMeToken newToken = new MiniMeToken(
|
||
|
this,
|
||
|
_parentToken,
|
||
|
_snapshotBlock,
|
||
|
_tokenName,
|
||
|
_decimalUnits,
|
||
|
_tokenSymbol,
|
||
|
_transfersEnabled
|
||
|
);
|
||
|
|
||
|
newToken.changeController(payable(msg.sender));
|
||
|
return newToken;
|
||
|
}
|
||
|
}
|