Contract Address (999) - 0xC0DBbAd4aDF1728f2c90Dd7Cdb9536600a6337d9
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
contract CustomToken is ERC20, Ownable {
constructor(
string memory name,
string memory symbol,
uint256 initialSupply,
address initialOwner
) ERC20(name, symbol) Ownable(initialOwner) {
_mint(initialOwner, initialSupply * 10**decimals());
}
}
contract TokenDeployer {
event TokenDeployed(address tokenAddress, address owner, string name, string symbol, uint256 supply);
function deployToken(
string memory name,
string memory symbol,
uint256 initialSupply
) external returns (address) {
CustomToken token = new CustomToken(name, symbol, initialSupply, msg.sender);
emit TokenDeployed(address(token), msg.sender, name, symbol, initialSupply);
return address(token);
}
}