// SPDX-License-Identifier: MIT LICENSE /* */ pragma solidity 0.8.20; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol"; contract SellTixERC20 is ERC20, ERC20Burnable, Ownable { mapping(address => bool) controllers; constructor(address _founder1,address _founder2) Ownable(_founder1) ERC20("SellTix USDC Token","SellTixUSDC") { controllers[_founder1] = true; controllers[_founder2] = true; } function decimals() public view virtual override returns (uint8) { return 6; } function mint(address to, uint256 amount) external { _mint(to, amount); } function burnFrom(address account, uint256 amount) public override { if (controllers[msg.sender]) { _burn(account, amount); } else { super.burnFrom(account, amount); } } function addController(address controller) external onlyOwner { controllers[controller] = true; } function removeController(address controller) external onlyOwner { controllers[controller] = false; } }