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 } from "./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;
|
|
}
|
|
}
|