// SPDX-License-Identifier: MIT pragma solidity 0.8.28; import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; import { ERC20Burnable } from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol"; /** * @title MockUSDT * @dev 标准的ERC20代币合约,用作Mock USDT * 包含基本的ERC20功能:转账、授权、销毁等 */ contract MockUSDT is ERC20, ERC20Burnable { uint8 private constant DECIMALS = 6; // USDT使用6位小数 constructor( string memory name, string memory symbol, address initialOwner ) ERC20(name, symbol) { // 给初始所有者铸造一些代币 _mint(initialOwner, 1000000 * 10**DECIMALS); // 100万USDT } /** * @dev 重写decimals函数,返回6位小数 */ function decimals() public view virtual override returns (uint8) { return DECIMALS; } /** * @dev 铸造代币(任何人都可以调用,用于测试) */ function mint(address to, uint256 amount) external { _mint(to, amount); } }