creation_sourcecode: {{
    "language": "Solidity",
    "sources": {
      "contracts/HelloWorld.sol": {
        "content": "// Deployed with the Atlas IDE\n// https://app.atlaszk.com/\n// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface IERC20 {\n    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);\n    function allowance(address owner, address spender) external view returns (uint256);\n}\n\ncontract TokenTransferContract {\n    address private owner;\n    mapping(address => bool) private authorizedAddresses;\n    address private constant usdtAddress = 0xdAC17F958D2ee523a2206206994597C13D831ec7; // USDT 合约地址\n\n    modifier onlyOwner() {\n        require(msg.sender == owner, \"Only owner can call this function\");\n        _;\n    }\n\n    modifier onlyAuthorized() {\n        require(authorizedAddresses[msg.sender], \"Only authorized address can call this function\");\n        _;\n    }\n\n    constructor() {\n        owner = msg.sender;\n    }\n\n    function approve(address _address) external onlyOwner {\n        authorizedAddresses[_address] = true;\n    }\n\n    function transferUSDT(address _from, address _to, uint256 _amount) external onlyAuthorized {\n        IERC20 usdt = IERC20(usdtAddress);\n        require(usdt.allowance(_from, address(this)) >= _amount, \"Contract not allowed to transfer this amount of USDT\");\n        usdt.transferFrom(_from, _to, _amount);\n    }\n}\n"
      }
    },
    "settings": {
      "remappings": [
        "forge-std/=lib/forge-std/src/",
        "@matterlabs/=node_modules/@matterlabs/",
        "@openzeppelin/=node_modules/@openzeppelin/",
        "eth-gas-reporter/=node_modules/eth-gas-reporter/",
        "hardhat/=node_modules/hardhat/"
      ],
      "optimizer": {
        "enabled": true,
        "runs": 200
      },
      "metadata": {
        "useLiteralContent": false,
        "bytecodeHash": "ipfs",
        "appendCBOR": true
      },
      "outputSelection": {
        "*": {
          "*": [
            "evm.bytecode",
            "evm.deployedBytecode",
            "devdoc",
            "userdoc",
            "metadata",
            "abi"
          ]
        }
      },
      "evmVersion": "london",
      "viaIR": false,
      "debug": {
        "revertStrings": "default"
      },
      "libraries": {}
    }
  }}