communities-contracts/contracts/OwnerToken.sol

39 lines
1.2 KiB
Solidity
Raw Normal View History

2023-07-14 13:05:30 +00:00
// SPDX-License-Identifier: Mozilla Public License 2.0
pragma solidity ^0.8.17;
import "./BaseToken.sol";
import "./MasterToken.sol";
contract OwnerToken is BaseToken {
2023-07-14 13:07:04 +00:00
event MasterTokenCreated(address masterToken);
2023-07-14 13:12:03 +00:00
bytes public signerPublicKey;
2023-07-14 13:05:30 +00:00
constructor(
string memory _name,
string memory _symbol,
string memory _baseTokenURI,
string memory _masterName,
string memory _masterSymbol,
2023-07-14 13:12:03 +00:00
string memory _masterBaseTokenURI,
bytes memory _signerPublicKey
)
BaseToken(_name, _symbol, 1, false, true, _baseTokenURI, address(this), address(this))
2023-07-14 13:05:30 +00:00
{
2023-07-14 13:12:03 +00:00
signerPublicKey = _signerPublicKey;
2023-07-14 13:07:04 +00:00
MasterToken masterToken = new MasterToken(_masterName, _masterSymbol, _masterBaseTokenURI, address(this));
emit MasterTokenCreated(address(masterToken));
2023-08-10 07:10:17 +00:00
address[] memory addresses = new address[](1);
addresses[0] = msg.sender;
_mintTo(addresses);
2023-07-14 13:05:30 +00:00
}
function setMaxSupply(uint256 _newMaxSupply) external override onlyOwner {
2023-07-14 13:05:30 +00:00
revert("max supply locked");
}
2023-07-14 13:12:03 +00:00
2023-07-14 13:30:22 +00:00
function setSignerPublicKey(bytes memory _newSignerPublicKey) external onlyOwner {
2023-07-14 13:12:03 +00:00
signerPublicKey = _newSignerPublicKey;
}
2023-07-14 13:05:30 +00:00
}