账户
0xea...68e7
0xEA...68e7

0xEA...68e7

$500
此合同的源代码已经过验证!
合同元数据
编译器
0.6.6+commit.6c089d02
语言
Solidity
合同源代码
文件 1 的 6:Context.sol
合同源代码
文件 2 的 6:IERC20.sol
合同源代码
文件 3 的 6:IUniswapV2Router01.sol
合同源代码
文件 4 的 6:IUniswapV2Router02.sol
合同源代码
文件 5 的 6:Ownable.sol
合同源代码
文件 6 的 6:uniswapbuyer.sol
// SPDX-License-Identifier: GPL-3.0
pragma solidity >0.6.0 <0.8.0;

import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol";
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/IERC20.sol";
import 'https://github.com/Uniswap/uniswap-v2-periphery/blob/master/contracts/interfaces/IUniswapV2Router02.sol';

contract UniswapBuyer is Ownable {
    
    address public token;

    uint public weiAmount;
    
    uint public amountOutMin;
    // Address ropsten
    //address public constant weth = 0xc778417E063141139Fce010982780140Aa0cD5Ab;
    // Address mainnet
    address public constant weth = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;

    IUniswapV2Router02 private constant router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    
    constructor(address token_, uint weiAmount_, uint amountOutMin_) Ownable() payable  public {
        token = token_;
        weiAmount = weiAmount_;
        amountOutMin = amountOutMin_;
    }
    
    receive() external payable {}
    
    function setToken(address token_) public onlyOwner {
        token = token_;
     }
    
    function setWeiAmount(uint weiAmount_) public onlyOwner {
        weiAmount = weiAmount_;
    }
    
    function setAmountOutMin(uint amountOutMin_) public onlyOwner {
        amountOutMin = amountOutMin_;
    }

    function withdrawEther() public onlyOwner {
        msg.sender.transfer(address(this).balance);
    }

    function withdrawToken(address tokenAddress_) public onlyOwner {
        IERC20 tokenContract = IERC20(tokenAddress_);
        uint tokenAmount = tokenContract.balanceOf(address(this));
        tokenContract.transfer(owner(), tokenAmount);
    }

    function snipe() public  {
        address[] memory path = new address[](2);
        path[0] = address(weth);
        path[1] = address(token);
        router.swapExactETHForTokens{value : weiAmount}(amountOutMin, path, owner(), block.timestamp);
    }
}
设置
{
  "compilationTarget": {
    "browser/unisnipe/uniswapbuyer.sol": "UniswapBuyer"
  },
  "evmVersion": "istanbul",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs"
  },
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "remappings": []
}
ABI
[{"inputs":[{"internalType":"address","name":"token_","type":"address"},{"internalType":"uint256","name":"weiAmount_","type":"uint256"},{"internalType":"uint256","name":"amountOutMin_","type":"uint256"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"amountOutMin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOutMin_","type":"uint256"}],"name":"setAmountOutMin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token_","type":"address"}],"name":"setToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount_","type":"uint256"}],"name":"setWeiAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snipe","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"weiAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"weth","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress_","type":"address"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]