// SPDX-License-Identifier: MIT pragma solidity 0.8.17; import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol"; contract USDT is ERC20, ERC20Burnable, Ownable { address public minterContract; // this is not real name, please check the contract first before deploying ! constructor() ERC20("United State Dolar", "USDT") { _mint(msg.sender, 1_000_000_000 * 10 ** 6); } function decimals() public pure override returns (uint8) { return 6; } function setMinterContract(address _minterContract) public onlyOwner { require( _minterContract != address(minterContract), "minter contract already set" ); minterContract = _minterContract; } function mintForFarm(uint amount, address target) external { require(msg.sender == minterContract, "Unauthorized minter"); _mint(target, amount); } }