SUPERHOLDY

Description:

Decentralized Finance (DeFi) protocol contract providing Mintable, Burnable, Swap, Liquidity, Factory functionality.

Blockchain: Ethereum

Source Code: View Code On The Blockchain

Solidity Source Code:

{{
  "language": "Solidity",
  "sources": {
    "contracts/holdy.sol": {
      "content": "// SPDX-License-Identifier: MIT\r
pragma solidity ^0.8.3;\r
\r
interface IERC20 {\r
    function totalSupply() external view returns (uint256);\r
\r
    function balanceOf(address account) external view returns (uint256);\r
\r
    function transfer(address recipient, uint256 amount) external returns (bool);\r
\r
    function allowance(address owner, address spender) external view returns (uint256);\r
\r
    function approve(address spender, uint256 amount) external returns (bool);\r
\r
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);\r
\r
    event Transfer(address indexed from, address indexed to, uint256 value);\r
    event Approval(address indexed owner, address indexed spender, uint256 value);\r
}\r
\r
library SafeMath {\r
    function add(uint256 a, uint256 b) internal pure returns (uint256) {\r
        uint256 c = a + b;\r
        require(c >= a, "SafeMath: addition overflow");\r
\r
        return c;\r
    }\r
\r
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {\r
        return sub(a, b, "SafeMath: subtraction overflow");\r
    }\r
\r
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\r
        require(b <= a, errorMessage);\r
        uint256 c = a - b;\r
\r
        return c;\r
    }\r
\r
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {\r
        if (a == 0) {\r
            return 0;\r
        }\r
\r
        uint256 c = a * b;\r
        require(c / a == b, "SafeMath: multiplication overflow");\r
\r
        return c;\r
    }\r
\r
    function div(uint256 a, uint256 b) internal pure returns (uint256) {\r
        return div(a, b, "SafeMath: division by zero");\r
    }\r
\r
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\r
        require(b > 0, errorMessage);\r
        uint256 c = a / b;\r
\r
        return c;\r
    }\r
\r
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {\r
        return mod(a, b, "SafeMath: modulo by zero");\r
    }\r
\r
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\r
        require(b != 0, errorMessage);\r
        return a % b;\r
    }\r
}\r
\r
abstract contract Context {\r
    function _msgSender() internal view virtual returns (address payable) {\r
        return payable(msg.sender);\r
    }\r
\r
    function _msgData() internal view virtual returns (bytes memory) {\r
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691\r
        return msg.data;\r
    }\r
}\r
\r
library Address {\r
    function isContract(address account) internal view returns (bool) {\r
        bytes32 codehash;\r
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;\r
        assembly {\r
            codehash := extcodehash(account)\r
        }\r
        return (codehash != accountHash && codehash != 0x0);\r
    }\r
\r
    function sendValue(address payable recipient, uint256 amount) internal {\r
        require(address(this).balance >= amount, "Address: insufficient balance");\r
\r
        (bool success, ) = recipient.call{value: amount}("");\r
        require(success, "Address: unable to send value, recipient may have reverted");\r
    }\r
\r
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\r
        return functionCall(target, data, "Address: low-level call failed");\r
    }\r
\r
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\r
        return _functionCallWithValue(target, data, 0, errorMessage);\r
    }\r
\r
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\r
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");\r
    }\r
\r
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {\r
        require(address(this).balance >= value, "Address: insufficient balance for call");\r
        return _functionCallWithValue(target, data, value, errorMessage);\r
    }\r
\r
    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {\r
        require(isContract(target), "Address: call to non-contract");\r
\r
        (bool success, bytes memory returndata) = target.call{value: weiValue}(data);\r
        if (success) {\r
            return returndata;\r
        } else {\r
            if (returndata.length > 0) {\r
                assembly {\r
                    let returndata_size := mload(returndata)\r
                    revert(add(32, returndata), returndata_size)\r
                }\r
            } else {\r
                revert(errorMessage);\r
            }\r
        }\r
    }\r
}\r
\r
contract Ownable is Context {\r
    address private _owner;\r
    address private _previousOwner;\r
\r
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\r
\r
    constructor() {\r
        address msgSender = _msgSender();\r
        _owner = msgSender;\r
        emit OwnershipTransferred(address(0), msgSender);\r
    }\r
\r
    function owner() public view returns (address) {\r
        return _owner;\r
    }\r
\r
    modifier onlyOwner() {\r
        require(_owner == _msgSender(), "Ownable: caller is not the owner");\r
        _;\r
    }\r
\r
    function renounceOwnership() public virtual onlyOwner {\r
        emit OwnershipTransferred(_owner, address(0));\r
        _owner = address(0);\r
    }\r
}\r
\r
interface IUniswapV2Factory {\r
    event PairCreated(address indexed token0, address indexed token1, address pair, uint256);\r
\r
    function feeTo() external view returns (address);\r
\r
    function feeToSetter() external view returns (address);\r
\r
    function getPair(address tokenA, address tokenB) external view returns (address pair);\r
\r
    function allPairs(uint256) external view returns (address pair);\r
\r
    function allPairsLength() external view returns (uint256);\r
\r
    function createPair(address tokenA, address tokenB) external returns (address pair);\r
\r
    function setFeeTo(address) external;\r
\r
    function setFeeToSetter(address) external;\r
}\r
\r
interface IUniswapV2Pair {\r
    event Approval(address indexed owner, address indexed spender, uint256 value);\r
    event Transfer(address indexed from, address indexed to, uint256 value);\r
\r
    function name() external pure returns (string memory);\r
\r
    function symbol() external pure returns (string memory);\r
\r
    function decimals() external pure returns (uint8);\r
\r
    function totalSupply() external view returns (uint256);\r
\r
    function balanceOf(address owner) external view returns (uint256);\r
\r
    function allowance(address owner, address spender) external view returns (uint256);\r
\r
    function approve(address spender, uint256 value) external returns (bool);\r
\r
    function transfer(address to, uint256 value) external returns (bool);\r
\r
    function transferFrom(address from, address to, uint256 value) external returns (bool);\r
\r
    function DOMAIN_SEPARATOR() external view returns (bytes32);\r
\r
    function PERMIT_TYPEHASH() external pure returns (bytes32);\r
\r
    function nonces(address owner) external view returns (uint256);\r
\r
    function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external;\r
\r
    event Mint(address indexed sender, uint256 amount0, uint256 amount1);\r
    event Burn(address indexed sender, uint256 amount0, uint256 amount1, address indexed to);\r
    event Swap(address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to);\r
    event Sync(uint112 reserve0, uint112 reserve1);\r
\r
    function MINIMUM_LIQUIDITY() external pure returns (uint256);\r
\r
    function factory() external view returns (address);\r
\r
    function token0() external view returns (address);\r
\r
    function token1() external view returns (address);\r
\r
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);\r
\r
    function price0CumulativeLast() external view returns (uint256);\r
\r
    function price1CumulativeLast() external view returns (uint256);\r
\r
    function kLast() external view returns (uint256);\r
\r
    function mint(address to) external returns (uint256 liquidity);\r
\r
    function burn(address to) external returns (uint256 amount0, uint256 amount1);\r
\r
    function swap(uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data) external;\r
\r
    function skim(address to) external;\r
\r
    function sync() external;\r
\r
    function initialize(address, address) external;\r
}\r
\r
interface IUniswapV2Router01 {\r
    function factory() external pure returns (address);\r
\r
    function WETH() external pure returns (address);\r
\r
    function addLiquidity(\r
        address tokenA,\r
        address tokenB,\r
        uint256 amountADesired,\r
        uint256 amountBDesired,\r
        uint256 amountAMin,\r
        uint256 amountBMin,\r
        address to,\r
        uint256 deadline\r
    ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity);\r
\r
    function addLiquidityETH(\r
        address token,\r
        uint256 amountTokenDesired,\r
        uint256 amountTokenMin,\r
        uint256 amountETHMin,\r
        address to,\r
        uint256 deadline\r
    ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);\r
\r
    function removeLiquidity(\r
        address tokenA,\r
        address tokenB,\r
        uint256 liquidity,\r
        uint256 amountAMin,\r
        uint256 amountBMin,\r
        address to,\r
        uint256 deadline\r
    ) external returns (uint256 amountA, uint256 amountB);\r
\r
    function removeLiquidityETH(\r
        address token,\r
        uint256 liquidity,\r
        uint256 amountTokenMin,\r
        uint256 amountETHMin,\r
        address to,\r
        uint256 deadline\r
    ) external returns (uint256 amountToken, uint256 amountETH);\r
\r
    function removeLiquidityWithPermit(\r
        address tokenA,\r
        address tokenB,\r
        uint256 liquidity,\r
        uint256 amountAMin,\r
        uint256 amountBMin,\r
        address to,\r
        uint256 deadline,\r
        bool approveMax,\r
        uint8 v,\r
        bytes32 r,\r
        bytes32 s\r
    ) external returns (uint256 amountA, uint256 amountB);\r
\r
    function removeLiquidityETHWithPermit(\r
        address token,\r
        uint256 liquidity,\r
        uint256 amountTokenMin,\r
        uint256 amountETHMin,\r
        address to,\r
        uint256 deadline,\r
        bool approveMax,\r
        uint8 v,\r
        bytes32 r,\r
        bytes32 s\r
    ) external returns (uint256 amountETH);\r
\r
    function swapExactTokensForTokens(\r
        uint256 amountIn,\r
        uint256 amountOutMin,\r
        address[] calldata path,\r
        address to,\r
        uint256 deadline\r
    ) external returns (uint256[] memory amounts);\r
\r
    function swapTokensForExactTokens(\r
        uint256 amountOut,\r
        uint256 amountInMax,\r
        address[] calldata path,\r
        address to,\r
        uint256 deadline\r
    ) external returns (uint256[] memory amounts);\r
\r
    function swapExactETHForTokens(uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external payable returns (uint256[] memory amounts);\r
\r
    function swapTokensForExactETH(uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline) external returns (uint256[] memory amounts);\r
\r
    function swapExactTokensForETH(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external returns (uint256[] memory amounts);\r
\r
    function swapETHForExactTokens(uint256 amountOut, address[] calldata path, address to, uint256 deadline) external payable returns (uint256[] memory amounts);\r
\r
    function quote(uint256 amountA, uint256 reserveA, uint256 reserveB) external pure returns (uint256 amountB);\r
\r
    function getAmountOut(uint256 amountIn, uint256 reserveIn, uint256 reserveOut) external pure returns (uint256 amountOut);\r
\r
    function getAmountIn(uint256 amountOut, uint256 reserveIn, uint256 reserveOut) external pure returns (uint256 amountIn);\r
\r
    function getAmountsOut(uint256 amountIn, address[] calldata path) external view returns (uint256[] memory amounts);\r
\r
    function getAmountsIn(uint256 amountOut, address[] calldata path) external view returns (uint256[] memory amounts);\r
}\r
\r
interface IUniswapV2Router02 is IUniswapV2Router01 {\r
    function removeLiquidityETHSupportingFeeOnTransferTokens(\r
        address token,\r
        uint256 liquidity,\r
        uint256 amountTokenMin,\r
        uint256 amountETHMin,\r
        address to,\r
        uint256 deadline\r
    ) external returns (uint256 amountETH);\r
\r
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(\r
        address token,\r
        uint256 liquidity,\r
        uint256 amountTokenMin,\r
        uint256 amountETHMin,\r
        address to,\r
        uint256 deadline,\r
        bool approveMax,\r
        uint8 v,\r
        bytes32 r,\r
        bytes32 s\r
    ) external returns (uint256 amountETH);\r
\r
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(\r
        uint256 amountIn,\r
        uint256 amountOutMin,\r
        address[] calldata path,\r
        address to,\r
        uint256 deadline\r
    ) external;\r
\r
    function swapExactETHForTokensSupportingFeeOnTransferTokens(\r
        uint256 amountOutMin,\r
        address[] calldata path,\r
        address to,\r
        uint256 deadline\r
    ) external payable;\r
\r
    function swapExactTokensForETHSupportingFeeOnTransferTokens(\r
        uint256 amountIn,\r
        uint256 amountOutMin,\r
        address[] calldata path,\r
        address to,\r
        uint256 deadline\r
    ) external;\r
}\r
\r
contract SUPERHOLDY is Context, IERC20, Ownable {\r
    using SafeMath for uint256;\r
    using Address for address;\r
\r
    mapping(address => uint256) private _rOwned;\r
    mapping(address => mapping(address => uint256)) private _allowances;\r
\r
    mapping(address => bool) private _isExcludedFromFee;\r
\r
    mapping(address => bool) private _isExcludedFromLimit;\r
\r
    uint256 private _tTotal = 10000000 * 10**18;\r
\r
    address payable private _marketingAddress = payable(address(0x9A5b398d154192931F5C9053c4CC651D963Ed0E8));\r
\r
    string private _name = unicode"SUPER HOLDY";\r
    string private _symbol = unicode"HOLDY";\r
    uint8 private _decimals = 18;\r
\r
    struct BuyFee {\r
        uint8 liquidity;\r
        uint8 marketing;\r
    }\r
\r
    struct SellFee {\r
        uint8 liquidity;\r
        uint8 marketing;\r
    }\r
\r
    BuyFee private buyFee;\r
    SellFee private sellFee;\r
\r
    uint8 private _liquidityFee;\r
    uint8 private _marketingFee;\r
\r
    IUniswapV2Router02 private immutable uniswapV2Router;\r
    address private immutable uniswapV2Pair;\r
\r
    bool inSwapAndLiquify;\r
    bool private swapAndLiquifyEnabled = true;\r
\r
    uint256 private _maxTxAmount = _tTotal.div(1000).mul(30); // 3%\r
    uint256 private numTokensSellToAddToLiquidity = _tTotal.div(1000).mul(3); //0.3%\r
    uint256 private _maxWalletSize = _tTotal.div(1000).mul(30); // 3%\r
\r
    event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap);\r
    event SwapAndLiquifyEnabledUpdated(bool enabled);\r
    event SwapAndLiquify(\r
        uint256 tokensSwapped,\r
        uint256 ethReceived,\r
        uint256 tokensIntoLiqudity\r
    );\r
\r
    modifier lockTheSwap() {\r
        inSwapAndLiquify = true;\r
        _;\r
        inSwapAndLiquify = false;\r
    }\r
\r
    bool private tradingOpen = false;\r
\r
    mapping (address => uint256) _lastTrade;\r
\r
    constructor() {\r
        _rOwned[_msgSender()] = _tTotal;\r
\r
        buyFee.liquidity = 1;\r
        buyFee.marketing = 1;\r
\r
        sellFee.liquidity = 1;\r
        sellFee.marketing = 1;\r
\r
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);\r
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());\r
\r
        uniswapV2Router = _uniswapV2Router;\r
\r
        _isExcludedFromFee[owner()] = true;\r
        _isExcludedFromFee[address(this)] = true;\r
        _isExcludedFromFee[_marketingAddress] = true;\r
\r
        _isExcludedFromLimit[_marketingAddress] = true;\r
        _isExcludedFromLimit[owner()] = true;\r
        _isExcludedFromLimit[address(this)] = true;\r
\r
        emit Transfer(address(0), _msgSender(), _tTotal);\r
    }\r
\r
    function name() public view returns (string memory) {\r
        return _name;\r
    }\r
\r
    function symbol() public view returns (string memory) {\r
        return _symbol;\r
    }\r
\r
    function decimals() public view returns (uint8) {\r
        return _decimals;\r
    }\r
\r
    function totalSupply() public view override returns (uint256) {\r
        return _tTotal;\r
    }\r
\r
    function balanceOf(address account) public view override returns (uint256) {\r
        return _rOwned[account];\r
    }\r
\r
    function transfer(address recipient, uint256 amount) public override returns (bool) {\r
        _transfer(_msgSender(), recipient, amount);\r
        return true;\r
    }\r
\r
    function allowance(address owner, address spender) public view override returns (uint256) {\r
        return _allowances[owner][spender];\r
    }\r
\r
    function approve(address spender, uint256 amount) public override returns (bool) {\r
        _approve(_msgSender(), spender, amount);\r
        return true;\r
    }\r
\r
    function transferFrom(\r
        address sender,\r
        address recipient,\r
        uint256 amount\r
    ) public override returns (bool) {\r
        _transfer(sender, recipient, amount);\r
        _approve(\r
            sender,\r
            _msgSender(),\r
            _allowances[sender][_msgSender()].sub(\r
                amount,\r
                "ERC20: transfer amount exceeds allowance"\r
            )\r
        );\r
        return true;\r
    }\r
\r
\r
    receive() external payable {}\r
\r
    function _getTValues(uint256 tAmount) private view returns (uint256, uint256, uint256) {\r
        uint256 tLiquidity = calculateLiquidityFee(tAmount);\r
        uint256 tWallet = calculateMarketingFee(tAmount);\r
        uint256 tTransferAmount = tAmount.sub(tLiquidity).sub(tWallet);\r
\r
        return (tTransferAmount, tLiquidity, tWallet);\r
    }\r
\r
    function _takeLiquidity(uint256 tLiquidity) private {\r
        _rOwned[address(this)] = _rOwned[address(this)].add(tLiquidity);\r
    }\r
\r
    function _takeWalletFee(uint256 tWallet) private {\r
        _rOwned[address(this)] = _rOwned[address(this)].add(tWallet);\r
    }\r
\r
    function calculateLiquidityFee(uint256 _amount) private view returns (uint256) {\r
        return _amount.mul(_liquidityFee).div(10**2);\r
    }\r
\r
    function calculateMarketingFee(uint256 _amount) private view returns (uint256) {\r
        return _amount.mul(_marketingFee).div(10**2);\r
    }\r
\r
    function removeAllFee() private {\r
        _liquidityFee = 0;\r
        _marketingFee = 0;\r
    }\r
\r
    function setBuy() private {\r
        _liquidityFee = buyFee.liquidity;\r
        _marketingFee = buyFee.marketing;\r
    }\r
\r
    function setSell() private {\r
        _liquidityFee = sellFee.liquidity;\r
        _marketingFee = sellFee.marketing;\r
    }\r
\r
    function _approve(address owner, address spender, uint256 amount) private {\r
        require(owner != address(0), "ERC20: approve from the zero address");\r
        require(spender != address(0), "ERC20: approve to the zero address");\r
\r
        _allowances[owner][spender] = amount;\r
        emit Approval(owner, spender, amount);\r
    }\r
\r
    function _transfer(\r
        address from,\r
        address to,\r
        uint256 amount\r
    ) private {\r
        require(from != address(0), "ERC20: transfer from the zero address");\r
        require(to != address(0), "ERC20: transfer to the zero address");\r
        require(amount > 0, "Transfer amount must be greater than zero");\r
        \r
        if (from != owner() && to != owner()) require(tradingOpen, "Trading not yet enabled.");\r
\r
        uint256 contractTokenBalance = balanceOf(address(this));\r
\r
        if (contractTokenBalance >= _maxTxAmount) {\r
            contractTokenBalance = _maxTxAmount;\r
        }\r
\r
        bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity;\r
        if (overMinTokenBalance && !inSwapAndLiquify && from != uniswapV2Pair && swapAndLiquifyEnabled) {\r
            contractTokenBalance = numTokensSellToAddToLiquidity;\r
            swapAndLiquify(contractTokenBalance);\r
        }\r
\r
        bool takeFee = true;\r
\r
        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {\r
            takeFee = false;\r
        }\r
        if (takeFee) {\r
            if (!_isExcludedFromLimit[from] && !_isExcludedFromLimit[to]) {\r
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");\r
                if (to != uniswapV2Pair) {\r
                    require(amount + balanceOf(to) <= _maxWalletSize, "Recipient exceeds max wallet size.");\r
                }\r
            }\r
        }\r
\r
        _tokenTransfer(from, to, amount, takeFee);\r
    }\r
\r
    function swapAndLiquify(uint256 tokens) private lockTheSwap {\r
        uint256 denominator = (buyFee.liquidity + sellFee.liquidity + buyFee.marketing + sellFee.marketing) * 2;\r
        uint256 tokensToAddLiquidityWith = (tokens * (buyFee.liquidity + sellFee.liquidity)) / denominator;\r
        uint256 toSwap = tokens - tokensToAddLiquidityWith;\r
\r
        uint256 initialBalance = address(this).balance;\r
\r
        swapTokensForEth(toSwap);\r
\r
        uint256 deltaBalance = address(this).balance - initialBalance;\r
        uint256 unitBalance = deltaBalance / (denominator - (buyFee.liquidity + sellFee.liquidity));\r
        uint256 ethToAddLiquidityWith = unitBalance * (buyFee.liquidity + sellFee.liquidity);\r
\r
        if (ethToAddLiquidityWith > 0) {\r
            addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);\r
        }\r
\r
        uint256 marketingAmt = unitBalance * 2 * (buyFee.marketing + sellFee.marketing);\r
        if (marketingAmt > 0) {\r
            payable(_marketingAddress).transfer(marketingAmt);\r
        }\r
    }\r
\r
    function swapTokensForEth(uint256 tokenAmount) private {\r
        address[] memory path = new address[](2);\r
        path[0] = address(this);\r
        path[1] = uniswapV2Router.WETH();\r
\r
        _approve(address(this), address(uniswapV2Router), tokenAmount);\r
\r
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(\r
            tokenAmount,\r
            0,\r
            path,\r
            address(this),\r
            block.timestamp\r
        );\r
    }\r
\r
    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {\r
        _approve(address(this), address(uniswapV2Router), tokenAmount);\r
\r
        uniswapV2Router.addLiquidityETH{value: ethAmount}(\r
            address(this),\r
            tokenAmount,\r
            0,\r
            0,\r
            address(this),\r
            block.timestamp\r
        );\r
    }\r
\r
    function _tokenTransfer(\r
        address sender,\r
        address recipient,\r
        uint256 amount,\r
        bool takeFee\r
    ) private {\r
        if (takeFee) {\r
            removeAllFee();\r
            if (sender == uniswapV2Pair) {\r
                setBuy();\r
            }\r
            if (recipient == uniswapV2Pair) {\r
                setSell();\r
            }\r
        }\r
\r
        _transferStandard(sender, recipient, amount);\r
\r
        removeAllFee();\r
    }\r
\r
    function _transferStandard(\r
        address sender,\r
        address recipient,\r
        uint256 tAmount\r
    ) private {\r
        (\r
            uint256 tTransferAmount,\r
            uint256 tLiquidity,\r
            uint256 tWallet\r
        ) = _getTValues(tAmount);\r
\r
        _rOwned[sender] = _rOwned[sender].sub(tAmount);\r
        _rOwned[recipient] = _rOwned[recipient].add(tTransferAmount);\r
        _takeLiquidity(tLiquidity);\r
        _takeWalletFee(tWallet);\r
        emit Transfer(sender, recipient, tTransferAmount);\r
    }\r
\r
    function openTrading() external onlyOwner() {\r
        require(!tradingOpen, "Trading is already open.");\r
        tradingOpen = true;\r
    }\r
}"
    }
  },
  "settings": {
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "outputSelection": {
      "*": {
        "*": [
          "evm.bytecode",
          "evm.deployedBytecode",
          "devdoc",
          "userdoc",
          "metadata",
          "abi"
        ]
      }
    },
    "remappings": []
  }
}}

Tags:
ERC20, DeFi, Mintable, Burnable, Swap, Liquidity, Factory|addr:0xd9efe64e9c7571b8c1b9656f9395822a940f2b97|verified:true|block:23742115|tx:0x526f2edfa19646e6e9a81a098e992fe3cbfd585bcbf0d304577dcf0fcbbffae9|first_check:1762458362

Submitted on: 2025-11-06 20:46:03

Comments

Log in to comment.

No comments yet.