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
|
2023-08-28 11:27:47 +00:00
|
|
|
)
|
|
|
|
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
|
|
|
}
|
|
|
|
|
2023-08-28 11:27:47 +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
|
|
|
}
|