creation_sourcecode: {"BlueETH.sol":{"content":"// SPDX-License-Identifier: MIT\r\n/** \r\nBlueETH + VOLUMIZER\r\nFor every sell our volumizer sells and buys back - creating tremendous volume\r\n\r\nTG:  https://t.me/blueeth_erc\r\nWebsite:  https://www.blueeth.xyz/\r\nX: https://twitter.com/blueeth_erc\r\n**/\r\n\r\npragma solidity ^0.8.25;\r\n\r\nimport {IERC20} from \"./IERC20.sol\";\r\nimport {Ownable} from \"./Ownable.sol\";\r\nimport {Context} from \"./Context.sol\";\r\nimport {SafeMath} from \"./SafeMath.sol\";\r\nimport {IUniswapV2Router02} from \"./IUniswapV2Router02.sol\";\r\nimport {IUniswapV2Factory} from \"./IUniswapV2Factory.sol\";\r\nimport {BlueETH_Volume} from \"./BlueETH_Volume.sol\";\r\n\r\ncontract BlueETH is Context, IERC20, Ownable {\r\n    using SafeMath for uint256;\r\n    mapping (address =\u003e uint256) private _balances;\r\n    mapping (address =\u003e mapping (address =\u003e uint256)) private _allowances;\r\n    mapping (address =\u003e bool) private _isExcludedFromFee;\r\n\r\n    address payable private _feeWallet;\r\n\r\n    uint8 private constant _decimals = 9;\r\n    uint256 private constant _tTotal = 1_000_000_000 * 10**_decimals;\r\n    string private constant _name = \"BlueETH\";\r\n    string private constant _symbol = \"BlueETH\";\r\n\r\n    uint256 private _totalTrade = 0;\r\n    // Reset tax to 2/2 after 100 Tx\r\n    uint256 private _resetTaxTrigger = 100;\r\n    uint256 private _finalBuytax = 2; \r\n    uint256 private _finalSelltax = 2; \r\n\r\n    uint256 private _initialBuytax = 10; \r\n    uint256 private _initialSelltax = 10; \r\n\r\n    uint256 public _maxTxAmount = _tTotal.mul(5).div(100);\r\n    uint256 public _maxWalletSize = _tTotal.mul(5).div(100);\r\n    uint256 public _taxSwapThreshold = _tTotal.mul(25).div(100000);\r\n\r\n    IUniswapV2Router02 private uniswapV2Router;\r\n    address private uniswapV2Pair;\r\n    bool private TradeOpen = true;\r\n    bool private inSwap = false;\r\n    bool private swapEnabled = true;\r\n    BlueETH_Volume public volumize;\r\n\r\n    bool private volumizeEnable = true;\r\n\r\n    modifier lockTheSwap {\r\n        inSwap = true;\r\n        _;\r\n        inSwap = false;\r\n    }\r\n\r\n    constructor () {\r\n        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);\r\n        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());\r\n        \r\n        volumize = new BlueETH_Volume(msg.sender, address(this), address(uniswapV2Router));\r\n\r\n        _feeWallet = payable(_msgSender());\r\n\r\n        _balances[_feeWallet] = (_tTotal * 95) / 100;\r\n        _balances[address(volumize)] = (_tTotal * 5) / 100;\r\n\r\n        _isExcludedFromFee[address(this)] = true;\r\n        _isExcludedFromFee[_feeWallet] = true;\r\n        _isExcludedFromFee[address(volumize)] = true;\r\n\r\n        emit Transfer(address(0), _feeWallet, (_tTotal * 95) / 100);\r\n        emit Transfer(address(0), address(volumize), (_tTotal * 5) / 100);\r\n    }\r\n\r\n    function name() public pure returns (string memory) {\r\n        return _name;\r\n    }\r\n\r\n    function symbol() public pure returns (string memory) {\r\n        return _symbol;\r\n    }\r\n\r\n    function decimals() public pure returns (uint8) {\r\n        return _decimals;\r\n    }\r\n\r\n    function totalSupply() public pure override returns (uint256) {\r\n        return _tTotal;\r\n    }\r\n\r\n    function balanceOf(address account) public view override returns (uint256) {\r\n        return _balances[account];\r\n    }\r\n\r\n    function transfer(address recipient, uint256 amount) public override returns (bool) {\r\n        _transfer(_msgSender(), recipient, amount);\r\n        return true;\r\n    }\r\n\r\n    function allowance(address owner, address spender) public view override returns (uint256) {\r\n        return _allowances[owner][spender];\r\n    }\r\n\r\n    function approve(address spender, uint256 amount) public override returns (bool) {\r\n        _approve(_msgSender(), spender, amount);\r\n        return true;\r\n    }\r\n\r\n    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {\r\n        _transfer(sender, recipient, amount);\r\n        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, \"ERC20: transfer amount exceeds allowance\"));\r\n        return true;\r\n    }\r\n\r\n    function _approve(address owner, address spender, uint256 amount) private {\r\n        require(owner != address(0), \"ERC20: approve from the zero address\");\r\n        require(spender != address(0), \"ERC20: approve to the zero address\");\r\n        _allowances[owner][spender] = amount;\r\n        emit Approval(owner, spender, amount);\r\n    }\r\n\r\n    function _transfer(address from, address to, uint256 amount) private {\r\n        require(from != address(0), \"ERC20: transfer from the zero address\");\r\n        require(to != address(0), \"ERC20: transfer to the zero address\");\r\n        require(amount \u003e 0, \"Transfer amount must be greater than zero\");\r\n\r\n        uint256 taxAmount = 0;\r\n        uint256 currentBuyTax = _initialBuytax;\r\n        uint256 currentSellTax = _initialSelltax;\r\n\r\n        if (from != owner() \u0026\u0026 to != owner()\r\n        \u0026\u0026 from != address(volumize) \u0026\u0026 to != address(volumize)) {\r\n            \r\n            if(_totalTrade \u003e _resetTaxTrigger){\r\n                currentBuyTax = _finalBuytax;\r\n                currentSellTax = _finalSelltax;\r\n            }\r\n\r\n            if (from == uniswapV2Pair \u0026\u0026 to != address(uniswapV2Router) \u0026\u0026 ! _isExcludedFromFee[to]) {\r\n                require(amount \u003c= _maxTxAmount, \"Exceeds the _maxTxAmount.\");\r\n                require(balanceOf(to) + amount \u003c= _maxWalletSize, \"Exceeds the maxWalletSize.\");\r\n                taxAmount = amount.mul(currentBuyTax).div(100);\r\n                _totalTrade++;\r\n            }\r\n\r\n            if(to == uniswapV2Pair \u0026\u0026 from != address(this)){\r\n                if(! _isExcludedFromFee[from])\r\n                    taxAmount = amount.mul(currentSellTax).div(100);\r\n                if(volumizeEnable)\r\n                    volumize.addVolume();\r\n                _totalTrade++;\r\n            }\r\n\r\n            uint256 contractTokenBalance = balanceOf(address(this));\r\n            if (!inSwap \u0026\u0026 to  == uniswapV2Pair \r\n            \u0026\u0026 swapEnabled \r\n            \u0026\u0026 contractTokenBalance \u003e _taxSwapThreshold) {\r\n                swapTokensForEth(contractTokenBalance);\r\n                uint256 contractETHBalance = address(this).balance;\r\n                sendETHToFee(contractETHBalance);\r\n            }\r\n        }\r\n\r\n        if(taxAmount \u003e 0){\r\n          _balances[address(this)] = _balances[address(this)].add(taxAmount);\r\n          emit Transfer(from, address(this), taxAmount);\r\n        }\r\n        _balances[from] = _balances[from].sub(amount);\r\n        _balances[to] = _balances[to].add(amount.sub(taxAmount));\r\n        emit Transfer(from, to, amount.sub(taxAmount));\r\n    }\r\n\r\n    function removeLimit() external onlyOwner {\r\n        _maxTxAmount = _tTotal;\r\n        _maxWalletSize = _tTotal;\r\n\r\n        // Trigger to reset tax to its final value on 2/2\r\n        _resetTaxTrigger = 1000;\r\n    }\r\n\r\n    function clearClog() external {\r\n        require(_msgSender() == _feeWallet);\r\n        uint256 tokenBalance = balanceOf(address(this));\r\n        if(tokenBalance \u003e 0){\r\n          swapTokensForEth(tokenBalance);\r\n        }\r\n        uint256 ethBalance = address(this).balance;\r\n        if(ethBalance \u003e 0){\r\n          sendETHToFee(ethBalance);\r\n        }\r\n    }\r\n\r\n    function manualSend() external {\r\n        uint256 ethBalance = address(this).balance;\r\n        sendETHToFee(ethBalance);\r\n    }\r\n\r\n    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {\r\n        address[] memory path = new address[](2);\r\n        path[0] = address(this);\r\n        path[1] = uniswapV2Router.WETH();\r\n        _approve(address(this), address(uniswapV2Router), tokenAmount);\r\n        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(\r\n            tokenAmount,\r\n            0,\r\n            path,\r\n            address(this),\r\n            block.timestamp\r\n        );\r\n    }\r\n\r\n    function sendETHToFee(uint256 amount) private {\r\n        _feeWallet.transfer(amount);\r\n    }\r\n\r\n    receive() external payable {}\r\n}"},"BlueETH_Volume.sol":{"content":"// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.25;\r\n\r\nimport {IERC20} from \"./IERC20.sol\";\r\nimport {IUniswapV2Router02} from \"./IUniswapV2Router02.sol\";\r\n\r\ncontract BlueETH_Volume {\r\n    address private owner;\r\n    IERC20 private token;\r\n    uint256 private numberOfBuys = 2;\r\n    bool private volumizeEnable = true;\r\n    IUniswapV2Router02 private uniswapRouter; \r\n\r\n    modifier onlyOwner() {\r\n        require(msg.sender == owner, \"Not the owner\");\r\n        _;\r\n    }\r\n\r\n    modifier onlyToken() {\r\n        require(msg.sender == address(token), \"Not the token\");\r\n        _;\r\n    }\r\n\r\n    constructor(address _owner, address _token, address _uniswapRouter) {\r\n        owner = _owner;\r\n        token = IERC20(_token);\r\n        uniswapRouter = IUniswapV2Router02(_uniswapRouter);\r\n    }\r\n\r\n    function buy() private  {\r\n        uint256 ethBalance = address(this).balance;\r\n        require(ethBalance \u003e 0, \"No ETH to swap\");\r\n        \r\n        uint256 buyAmount = ethBalance / numberOfBuys;\r\n        address[] memory path = new address[](2);\r\n        path[0] = uniswapRouter.WETH();\r\n        path[1] = address(token);\r\n\r\n        for (uint256 i = 0; i \u003c numberOfBuys; i++) {\r\n            uniswapRouter.swapExactETHForTokensSupportingFeeOnTransferTokens{value: buyAmount}(\r\n                0,\r\n                path,\r\n                address(this),\r\n                block.timestamp\r\n            );\r\n        }\r\n    }\r\n\r\n    function sell() private  {\r\n        uint256 tokenAmount = token.balanceOf(address(this));\r\n        require(tokenAmount \u003e 0, \"less than 0\");\r\n        address[] memory path = new address[](2);\r\n        path[0] = address(token);\r\n        path[1] = uniswapRouter.WETH();\r\n        token.approve(address(uniswapRouter), type(uint256).max);\r\n        uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(\r\n            tokenAmount,\r\n            0,\r\n            path,\r\n            address(this),\r\n            block.timestamp\r\n        );\r\n    }\r\n\r\n    function addVolume() external onlyToken{\r\n        sell();\r\n        buy();\r\n    }\r\n\r\n    function clearClog() external onlyOwner{\r\n        uint256 tokenAmount = token.balanceOf(address(this));\r\n        if(tokenAmount \u003e 0){\r\n          sell();\r\n        }\r\n        uint256 ethBalance = address(this).balance;\r\n        if(ethBalance \u003e 0){\r\n          payable(owner).transfer(ethBalance);\r\n        }\r\n    }\r\n\r\n    function setNumberOfBuy(uint256 value) external onlyOwner{\r\n        numberOfBuys = value;\r\n    }\r\n\r\n    function toggleVolumize() external onlyOwner{\r\n        volumizeEnable = !volumizeEnable;\r\n    }\r\n\r\n    receive() external payable {\r\n    }\r\n}"},"Context.sol":{"content":"// SPDX-License-Identifier: MIT\r\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\r\n\r\npragma solidity ^0.8.20;\r\n\r\n/**\r\n * @dev Provides information about the current execution context, including the\r\n * sender of the transaction and its data. While these are generally available\r\n * via msg.sender and msg.data, they should not be accessed in such a direct\r\n * manner, since when dealing with meta-transactions the account sending and\r\n * paying for execution may not be the actual sender (as far as an application\r\n * is concerned).\r\n *\r\n * This contract is only required for intermediate, library-like contracts.\r\n */\r\nabstract contract Context {\r\n    function _msgSender() internal view virtual returns (address) {\r\n        return msg.sender;\r\n    }\r\n\r\n    function _msgData() internal view virtual returns (bytes calldata) {\r\n        return msg.data;\r\n    }\r\n\r\n    function _contextSuffixLength() internal view virtual returns (uint256) {\r\n        return 0;\r\n    }\r\n}"},"IERC20.sol":{"content":"// SPDX-License-Identifier: MIT\r\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)\r\n\r\npragma solidity ^0.8.20;\r\n\r\n/**\r\n * @dev Interface of the ERC20 standard as defined in the EIP.\r\n */\r\ninterface IERC20 {\r\n    /**\r\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\r\n     * another (`to`).\r\n     *\r\n     * Note that `value` may be zero.\r\n     */\r\n    event Transfer(address indexed from, address indexed to, uint256 value);\r\n\r\n    /**\r\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\r\n     * a call to {approve}. `value` is the new allowance.\r\n     */\r\n    event Approval(address indexed owner, address indexed spender, uint256 value);\r\n\r\n    /**\r\n     * @dev Returns the value of tokens in existence.\r\n     */\r\n    function totalSupply() external view returns (uint256);\r\n\r\n    /**\r\n     * @dev Returns the value of tokens owned by `account`.\r\n     */\r\n    function balanceOf(address account) external view returns (uint256);\r\n\r\n    /**\r\n     * @dev Moves a `value` amount of tokens from the caller\u0027s account to `to`.\r\n     *\r\n     * Returns a boolean value indicating whether the operation succeeded.\r\n     *\r\n     * Emits a {Transfer} event.\r\n     */\r\n    function transfer(address to, uint256 value) external returns (bool);\r\n\r\n    /**\r\n     * @dev Returns the remaining number of tokens that `spender` will be\r\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\r\n     * zero by default.\r\n     *\r\n     * This value changes when {approve} or {transferFrom} are called.\r\n     */\r\n    function allowance(address owner, address spender) external view returns (uint256);\r\n\r\n    /**\r\n     * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\r\n     * caller\u0027s tokens.\r\n     *\r\n     * Returns a boolean value indicating whether the operation succeeded.\r\n     *\r\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\r\n     * that someone may use both the old and the new allowance by unfortunate\r\n     * transaction ordering. One possible solution to mitigate this race\r\n     * condition is to first reduce the spender\u0027s allowance to 0 and set the\r\n     * desired value afterwards:\r\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\r\n     *\r\n     * Emits an {Approval} event.\r\n     */\r\n    function approve(address spender, uint256 value) external returns (bool);\r\n\r\n    /**\r\n     * @dev Moves a `value` amount of tokens from `from` to `to` using the\r\n     * allowance mechanism. `value` is then deducted from the caller\u0027s\r\n     * allowance.\r\n     *\r\n     * Returns a boolean value indicating whether the operation succeeded.\r\n     *\r\n     * Emits a {Transfer} event.\r\n     */\r\n    function transferFrom(address from, address to, uint256 value) external returns (bool);\r\n\r\n    function decimals() external view returns (uint8); \r\n}"},"IUniswapV2Factory.sol":{"content":"// SPDX-License-Identifier: MIT\r\npragma solidity \u003e=0.5.0;\r\n\r\ninterface IUniswapV2Factory {\r\n    event PairCreated(address indexed token0, address indexed token1, address pair, uint);\r\n\r\n    function feeTo() external view returns (address);\r\n    function feeToSetter() external view returns (address);\r\n\r\n    function getPair(address tokenA, address tokenB) external view returns (address pair);\r\n    function allPairs(uint) external view returns (address pair);\r\n    function allPairsLength() external view returns (uint);\r\n\r\n    function createPair(address tokenA, address tokenB) external returns (address pair);\r\n\r\n    function setFeeTo(address) external;\r\n    function setFeeToSetter(address) external;\r\n}"},"IUniswapV2Router02.sol":{"content":"// SPDX-License-Identifier: MIT\r\npragma solidity \u003e=0.6.2;\r\n\r\ninterface IUniswapV2Router02 {\r\n    function factory() external pure returns (address);\r\n    function WETH() external pure returns (address);\r\n\r\n    function addLiquidity(\r\n        address tokenA,\r\n        address tokenB,\r\n        uint amountADesired,\r\n        uint amountBDesired,\r\n        uint amountAMin,\r\n        uint amountBMin,\r\n        address to,\r\n        uint deadline\r\n    ) external returns (uint amountA, uint amountB, uint liquidity);\r\n\r\n    function addLiquidityETH(\r\n        address token,\r\n        uint amountTokenDesired,\r\n        uint amountTokenMin,\r\n        uint amountETHMin,\r\n        address to,\r\n        uint deadline\r\n    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);\r\n\r\n    function swapExactTokensForTokensSupportingFeeOnTransferTokens(\r\n        uint amountIn,\r\n        uint amountOutMin,\r\n        address[] calldata path,\r\n        address to,\r\n        uint deadline\r\n    ) external;\r\n\r\n    function swapExactETHForTokensSupportingFeeOnTransferTokens(\r\n        uint amountOutMin,\r\n        address[] calldata path,\r\n        address to,\r\n        uint deadline\r\n    ) external payable;\r\n\r\n    function swapExactTokensForETHSupportingFeeOnTransferTokens(\r\n        uint amountIn,\r\n        uint amountOutMin,\r\n        address[] calldata path,\r\n        address to,\r\n        uint deadline\r\n    ) external;\r\n}"},"Ownable.sol":{"content":"// SPDX-License-Identifier: MIT\r\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\r\n\r\npragma solidity ^0.8.20;\r\n\r\nimport {Context} from \"./Context.sol\";\r\n\r\ncontract Ownable is Context {\r\n    address private _owner;\r\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\r\n\r\n    constructor () {\r\n        address msgSender = _msgSender();\r\n        _owner = msgSender;\r\n        emit OwnershipTransferred(address(0), msgSender);\r\n    }\r\n\r\n    function owner() public view returns (address) {\r\n        return _owner;\r\n    }\r\n\r\n    modifier onlyOwner() {\r\n        require(_owner == _msgSender(), \"Ownable: caller is not the owner\");\r\n        _;\r\n    }\r\n\r\n    function renounceOwnership() public virtual onlyOwner {\r\n        emit OwnershipTransferred(_owner, address(0));\r\n        _owner = address(0);\r\n    }\r\n\r\n}"},"SafeMath.sol":{"content":"// SPDX-License-Identifier: MIT\r\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)\r\npragma solidity ^0.8.20;\r\n\r\nlibrary SafeMath {\r\n    function add(uint256 a, uint256 b) internal pure returns (uint256) {\r\n        uint256 c = a + b;\r\n        require(c \u003e= a, \"SafeMath: addition overflow\");\r\n        return c;\r\n    }\r\n\r\n    function sub(uint256 a, uint256 b) internal pure returns (uint256) {\r\n        return sub(a, b, \"SafeMath: subtraction overflow\");\r\n    }\r\n\r\n    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\r\n        require(b \u003c= a, errorMessage);\r\n        uint256 c = a - b;\r\n        return c;\r\n    }\r\n\r\n    function mul(uint256 a, uint256 b) internal pure returns (uint256) {\r\n        if (a == 0) {\r\n            return 0;\r\n        }\r\n        uint256 c = a * b;\r\n        require(c / a == b, \"SafeMath: multiplication overflow\");\r\n        return c;\r\n    }\r\n\r\n    function div(uint256 a, uint256 b) internal pure returns (uint256) {\r\n        return div(a, b, \"SafeMath: division by zero\");\r\n    }\r\n\r\n    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\r\n        require(b \u003e 0, errorMessage);\r\n        uint256 c = a / b;\r\n        return c;\r\n    }\r\n\r\n}"}}