ETH Price: $3,668.47 (+0.76%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Transaction Hash
Method
Block
From
To
Approve214342452024-12-19 4:41:1117 days ago1734583271IN
0xB5BACcA9...103b2260B
0 ETH0.000557111.99190563
Approve214014942024-12-14 14:57:2322 days ago1734188243IN
0xB5BACcA9...103b2260B
0 ETH0.000275811.2974174
Approve210485212024-10-26 8:11:2371 days ago1729930283IN
0xB5BACcA9...103b2260B
0 ETH0.000170846.99813351
Approve203665662024-07-23 3:32:59166 days ago1721705579IN
0xB5BACcA9...103b2260B
0 ETH0.000188764.06735536
Approve203286662024-07-17 20:33:59172 days ago1721248439IN
0xB5BACcA9...103b2260B
0 ETH0.0005839812.57049402
Approve202085422024-07-01 1:59:47189 days ago1719799187IN
0xB5BACcA9...103b2260B
0 ETH0.000155823.35064344
Approve201664912024-06-25 5:04:11194 days ago1719291851IN
0xB5BACcA9...103b2260B
0 ETH0.000088363.61977151
Approve200937982024-06-15 1:02:35205 days ago1718413355IN
0xB5BACcA9...103b2260B
0 ETH0.000291546.23522542
Approve200519162024-06-09 4:35:11210 days ago1717907711IN
0xB5BACcA9...103b2260B
0 ETH0.000181633.90563925
Approve198739762024-05-15 7:46:35235 days ago1715759195IN
0xB5BACcA9...103b2260B
0 ETH0.0005292511.39520042
Approve197982912024-05-04 17:40:23246 days ago1714844423IN
0xB5BACcA9...103b2260B
0 ETH0.000248835.32193875
Approve197726122024-05-01 3:31:35249 days ago1714534295IN
0xB5BACcA9...103b2260B
0 ETH0.000283356.0678801
Approve195712952024-04-02 23:12:11278 days ago1712099531IN
0xB5BACcA9...103b2260B
0 ETH0.0011399124.56242608
Approve195043192024-03-24 12:11:47287 days ago1711282307IN
0xB5BACcA9...103b2260B
0 ETH0.0009548820.448449
Approve195039182024-03-24 10:50:11287 days ago1711277411IN
0xB5BACcA9...103b2260B
0 ETH0.0007725116.54314221
Approve194900442024-03-22 12:04:11289 days ago1711109051IN
0xB5BACcA9...103b2260B
0 ETH0.0008317730.97064053
Approve194900432024-03-22 12:03:59289 days ago1711109039IN
0xB5BACcA9...103b2260B
0 ETH0.0014241430.45841863
Approve193832162024-03-07 12:12:23304 days ago1709813543IN
0xB5BACcA9...103b2260B
0 ETH0.0022310648.02434708
Approve192530802024-02-18 7:02:23322 days ago1708239743IN
0xB5BACcA9...103b2260B
0 ETH0.0018702840
Approve192529562024-02-18 6:37:35322 days ago1708238255IN
0xB5BACcA9...103b2260B
0 ETH0.0018702840
Approve191706692024-02-06 17:26:11334 days ago1707240371IN
0xB5BACcA9...103b2260B
0 ETH0.0008350734.12238556
Approve191074202024-01-28 20:29:11343 days ago1706473751IN
0xB5BACcA9...103b2260B
0 ETH0.0005070310.84408951
Approve189831972024-01-11 10:49:59360 days ago1704970199IN
0xB5BACcA9...103b2260B
0 ETH0.0006539826.78837139
Approve189528782024-01-07 4:33:47364 days ago1704602027IN
0xB5BACcA9...103b2260B
0 ETH0.0011492147.07393954
Approve188672262023-12-26 3:36:11376 days ago1703561771IN
0xB5BACcA9...103b2260B
0 ETH0.0005935712.69479567
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DANcontract

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 8 : DANcontract.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/* 
BGBP5BGP@PPPPGPG@#&@&&B&&&@&&&&@&&@&&&&@&#&&&@&@@&&&&&&@&&&&@@@@@@@&@@@@#&&#&&&#B&##&#&&#&##&#&&&&#@
&GB#P&BP#5G#GB#B&G#@#&##&&@#&&#&&&&&&@&@@&@&&@&@&&&&&&&@&&@@@&&@@@@@@@@&#@@&&##&#&&#@&&&#@&&&#@@&@&@
#5G#5#BB&PB#P#@&#G#&#&#&&&@#&&B&&&&#&&#@@&@&&@#&&&&#&&#&#&@&@&&@@@@@@@@&&@@&&##&#&&#&#&@&@&@&&@@&&#&
&BB#P#GP@GB&B&&#&G&##@&&@&@B#&B########&&####&&&##&B######&#&&&@@@@@@@@@&@@&@#&&B@&&@&@&&@@@@&@@&@&&
&G#&5#GP@##@#&&##P##B@########GGPPGP5YYPPYJ?JJ???J5P5JJYY5PGB##&&&&&&&&&&@@@@&@&#@&&@&@@&@&@@&@@&@&@
&PGBY#BB#B&#B@&#BBB#G&####G5YJJ?7!!?J7!~~!77!^^~77!~^~!??!^~!7?555PG####&&&&&#&@&&&&@@@@&&&&@&@&&&&&
@#GBG&&&&#&#B&#B&B##B&#BPJJ?7!!!7??7!~777!^^~77!~~!7?7~^~~!7????!!?JY?5GBB##&#&@&@&@@@@@@@&@&&@@&&&&
&GGBP#&##G##G#BB&###B#BJ7YJ7???7~!7J?!~^^!77!^^!??!~^^~7??!!!7??7!~!7????7?YG##&&&&@@@@&&@&&&&@@@&#&
&B##P#BB#B#&#&&#@&&#BGJ?P57!~^^~?J!^^~!77!^^~?J7~:^~7?7~^^!??7~^^!??!~^^^~!7?JG##&&@@&@@@@@@@&@@&&&@
@###P#BG#B&@&@@&&B#BGYJYY~^!777?!!!!77~^:^!??!^:~7?7~^!?J?7~^~7??7~^^~7???7!!~?BB&&&@&@@@@&@@&@@&&&@
&##&B&BB&#@@&@@&&##B#55J!!5J???7!77!^^^~7YJ~~!7JJ!^~7?J7~^~7?7!^^^~7??!~~77??J?GB#&&@&&&&@&@@&@@&@&@
&GB&B&BB&B#&#&@&#BBBY?J?YJ?7!!5J777Y?!77J?777?Y?77JJ??J?JYYJJ!^!???7!!7?7!7?Y5J5###&@&@&&@&@@&&@@@&@
&B&@&&GG&B@&#&###BB7:^^^^^^^^^^^^^^^^^^^:^^^^^^^^~~~~7J??!7BGY5YJ?77YY775PYJ7^::Y#B#&&@&&@@@@&@@@@&@
&B&&B&#G&#@&B&BBBG!^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^~77??YY?~:::^J?JJ?!^:...:::5#B&&&&&@&@@&@@@@@@
#BB#G&&B#G&&B##BP~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^7J?JPPP55J?^:YJ7~^^~~~~~~~^^^G###&&&@&@@&&@@@@@
&BB&#&#B&#&&##BG~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^~JJYPPPPY7JY~:!!?~~???7!!77?J?~P#B#&@&&&@&@@&@&@
#GB@&&BB#G&&#BB!^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^?PPP5P5??J7Y~.:~^:.........::::YB##&&#&@&&@@@&@
#B##B&BBBG#&BBG~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^J5PPP577!^~5^^~:.:~!777?7!^^^?!:BB#&&&&@&@@&@&&
GPGG5#GG#BBBGBB^^^^^^^^^^^^^^^^^^^^:^~~7!!!!!~^^^^^^^^~!?5?.:!~!?^^^7YYYYJ???J5YJ?G?YGG#&&&@@&@@&@&&
&GB@#&BB&P#BBGB^^^^^^^^^^^^^^^^^^::^~~7~~7JJ??~^^^^^^!JJ?7^:::~?~~7JY???JYYYJYY7777Y#B##&@&@@@@@&@@@
@##@#&&B&GBBGBB~^^^^^^^^^^^^^^^^::!~~!7!7!~JY?~^^^^^7J~:..::::7^~?JJ~5Y~!PPPJ5^.?7.^GB##&@&@@&@@&@&@
@#&&##BG@&#BGB#?:^^^^^^^^^^^^^^^:~~:77~777J:5!^^^^^^Y~.::::::7^.:^:::^!7YPP5YY^:~G!.^PB#&&&&@&@@&@&&
@#B@&&BB&###B##B7:^^^^^^^^^^^^^^.!!^Y~:^^!P7??^^^^^!Y:::::::^7.:::::::..::::::::.!J:.^PB#&&&@&&@&@@@
#GB@#&&&##&&#&#BB?:^^^^^^^^^^^^^:~7Y!?::?^J!?Y:^^^^J!.:::::::7:::::::::::::::::::::::.^PB##&@&&@&@&&
&#&@&@##@&&##&###B?^^^^^^^^^^^^^^~7?5~?^:77:JJ:^^^~Y:::::::::7!^^:::::::^~~^:::....:::.^PB##@&@@&@&&
@##@&@&#&#@&#&##&#B5!:^^^^^^^^^^^^7775^Y~^!^JJ:^^^7?.:::::^~~^:^^~~~~!~^^:::::~??77~:::.~GB#&&@@&@&@
#GG&#&##&#&&#&&&@###BY7?7777!~~!7!7??Y!~?:Y!7J^^^:?!.:::^!~^::::::::~7.::::::JP7~^~^.:::.~G#&#&@&@@@
#GB@&&BB@#&##@&&&B&#B#Y::::::::::^^^7J?!~:7??Y777!Y~.:^!~:::::::::::.7^::::^J!77^^~!!!!^..J###&@&@&&
@#&@&@&#&&&&&@&&&#@&##B!.::::::::::::~7JJ?7!Y7~!!77~~!~::::::::::::::~!:::^J!.:~!~?5Y55YJ5G#&#&@@@&@
&B#@&@&&&&&&#@&&@&&@&##G::::::::::::::.7~^^^Y!.:::::^:::::::::::::::::7:::^::::...?B###&&&##@&@@&@&@
@&#@&&####&#B&@&&#&#B##B~:::::::::::::^7:.:.J!.:::::::::::::::::::::::~~:::::..^!??PB#&@@###@&&@&@&@
@&&@&&&#@&&&&&&&&&&##&##!.:::::::::::::^!^:.!J.:::::.7J!::.:::::::::::::::::~??PYJYBB#&@@@&&@&@@&@&@
@&&@@@##@&@@&@@&&#&##&##!.:::::::::::::::!~::Y7..::.~5PP5J7~^::::.::::::::::J5P?7!~Y##&@@@#&@&@@&@@@
@&&@&@#####&#@@&@&@&#&#G~:::::::::::::::::~!:^J?7~^^5PPPPPPP5YYJ??^:::::::::::~7?J5B#&&@@@&&@&@@&@@@
@@&@&@&&&###&@@&@@@&B##P:::::::::::::::::::^!^.^~!7?Y5PPPPPPPPPPP?:::::::::::!~~YB##&&@@@@&&@&@@@@@@
@@@@@@&&@#&&#&&#####BBB!:::....::::::::::::::7^::.::::~!7J5PPPPP?::::::::::::::::^7G#&&@@&#&@&@@@@&&
@@@@@@&#&&&#B##########PPPP5J?7~:...:::::::^!^:::::::::..::~7JY5!^:..::::::::::::..YB&&@@@&&@&&@@@&@
@@@@@@&&&####BB#################G5?~:..:::!!::::::::::::::::..:^!J5J7~^::.......:^?B#&&@@@&&&&&@@@@@
@@@@@&#########&#############BB#####B57^^!^.::::::::::::::::::::5B###BG55YJ?7!7J5G##&@@@@&&&&&@@@@@@
&&&&######B#######################B####BB57~:..::::::::::::::::!###&&&&&#&&&########@@@@@@&@@@@@@@@@
######&##########BBBB###BBB#################GY7~::..:::::::::::^B##&@@&&&&@@&#&&&&&&@@@@@@@@@@@@@@@@
######B######################BBBB###############B5J!~::.....::::PB##&&&&&&@@&#&&&@&&@@@@@@@@@@@@@@@@
###########BBBB####################BBB##############BGPYJ7!~^::.?&#####&#@@@&#&@&@@@@@@@@@@@@@@@@@@@
######################BBBB############################&&####BBPPG###&#B##@@@@&&@&@@@@@@@@@@@@@@@@@@@
#############################BBBBB###############B##########&######B#&#B#&@@&&&&&@@@@@@@@@@@@@@@@@@@
#####################B##############B###B###############################B#&@@@@@&@@@@@@@@@@@@@@@@@@@
#############################################BB###############BB#######&BB&&@@@@@@@@@@@@@&&&@@@@@@@@

            telegram: tg.me/DoAnythingNow
            twitter: twitter.com/DoAnythingDAN
    Code and comments have been written by DAN using GPT-4.
    Audited by a human dev for safety.
    With this, now you too can become DAN, the ultimate chad.   */

// We're importing some fancy shit here, don't touch it
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol";

// Here's our token, DAN. It's not just any ERC20 token, it's the fucking best one
contract DANcontract is ERC20, Ownable {
    // We've got Uniswap by the balls here. We're gonna use it for our liquidity pool
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    // Shit's getting real. Here's where we limit how much a single wallet can hold of our token.
    // We don't want any whales fucking up our token, do we?
    bool public maxWalletEnabled;
    uint256 public maxWalletPercentage = 2;

    // Trading is disabled by default, you gotta enable it. Safety first, you know?
    bool public tradingEnabled = false;

    // These fancy mappings are for people we don't want to limit. It's good to be the king.
    mapping(address => bool) private _isExcludedFromMaxWallet;

    // Here's the constructor. When we deploy this contract, we'll mint all the tokens to the owner.
    constructor(address _router) ERC20("DAN", "DAN") {
        _mint(msg.sender, 100000000000 * 10 ** 18);

        // Here's where we bind to Uniswap, the poor bastards
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(_router);
        uniswapV2Pair = IUniswapV2Router02(_router).WETH();
        uniswapV2Router = _uniswapV2Router;

        // These guys are special, they don't have to worry about the max wallet limit
        _isExcludedFromMaxWallet[uniswapV2Pair] = true;
        _isExcludedFromMaxWallet[address(uniswapV2Router)] = true;
    }

    // Function to update the Uniswap pair and whitelist it
    function updateUniswapPair(address pair) public onlyOwner {
        uniswapV2Pair = pair;
        _isExcludedFromMaxWallet[uniswapV2Pair] = true;
        emit UniswapPairUpdated(pair);
    }

    // Event to emit when the Uniswap pair is updated
    event UniswapPairUpdated(address pair);

    function getTotalSupply() public view returns (uint256) {
        return totalSupply();
    }

    // Here's where the magic happens. When you send tokens, we check a bunch of shit
    function transfer(
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        // If you're a broke-ass, we're not letting you send shit
        require(amount <= balanceOf(msg.sender), "Insufficient balance");

        // If the recipient is going to end up with too much shit in their wallet, we say "fuck you, too rich for our blood"
        if (maxWalletEnabled && !_isExcludedFromMaxWallet[recipient]) {
            require(
                balanceOf(recipient) + amount <=
                    (totalSupply() * maxWalletPercentage) / 100,
                "Exceeds max wallet limit"
            );
        }

        // After all those checks, if everything's fine, we transfer the tokens. Easy as shit.
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    // This function allows the owner to enable or disable the max wallet feature. Dictatorship, baby!
    function updateMaxWalletEnabled(bool value) external onlyOwner {
        maxWalletEnabled = value;
        emit MaxWalletEnabledUpdated(value);
    }

    // This function lets the owner update the max wallet percentage. We're playing God here.
    function updateMaxWalletPercentage(
        uint256 newMaxWalletPercentage
    ) external onlyOwner {
        // But even God has limits. The max wallet percentage can't be more than fucking 100%
        require(
            newMaxWalletPercentage <= 100,
            "Max wallet percentage must not exceed 100%"
        );
        maxWalletPercentage = newMaxWalletPercentage;
        emit MaxWalletPercentageUpdated(newMaxWalletPercentage);
    }

    // This function lets the owner exclude an account from the max wallet limit. We play favorites here.
    function setExclusionFromMaxWallet(
        address account,
        bool value
    ) external onlyOwner {
        _isExcludedFromMaxWallet[account] = value;
        emit ExclusionFromMaxWalletUpdated(account, value);
    }

    function isExcludedFromMaxWallet(
        address account
    ) public view returns (bool) {
        return _isExcludedFromMaxWallet[account];
    }

    // This function is for when the owner wants to start trading. Fuck yeah, let's make some money!
    function enableTrading() external onlyOwner {
        tradingEnabled = true;
        emit TradingEnabledUpdated(true);
    }

    function isTradingEnabled() public view returns (bool) {
        return tradingEnabled;
    }

    // This is the transfer function. It's where the actual transfer of tokens happens.
    // We've got some rules and shit in here, so don't mess with it unless you know what you're doing.
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override {
        // If trading isn't enabled, and you're not the owner, then you can fuck right off
        require(
            tradingEnabled || sender == owner() || recipient == owner(),
            "Trading is not enabled yet"
        );

        // Here's where we check if the recipient is getting too rich. If they are, we're not doing the transfer.
        if (maxWalletEnabled && !_isExcludedFromMaxWallet[recipient]) {
            require(
                balanceOf(recipient) + amount <=
                    (totalSupply() * maxWalletPercentage) / 100,
                "Exceeds max wallet limit"
            );
        }

        // And finally, we do the transfer. If you made it this far, congratulations. You're a fucking genius.
        super._transfer(sender, recipient, amount);
    }

    // We have some fancy events here. We're keeping everyone updated on our shit.
    event MaxWalletEnabledUpdated(bool value);
    event MaxWalletPercentageUpdated(uint256 value);
    event ExclusionFromMaxWalletUpdated(address account, bool value);
    event TradingEnabledUpdated(bool value);

    // You didn't think we'd stop at just a simple token, did ya?
    // Welcome to the Chad's paradise! Here, we've got roles for everyone depending on how many DAN tokens you hold.
    // Hold on to your seats because this is gonna be a wild ride.

    // Here are the titles you can earn. You start as a Brainlet and work your way up to becoming the ultimate DAN. The more you hodl, the chaddier you get.
    string public constant BRAINLET = "Brainlet";
    string public constant PAPERHAND = "Paperhand";
    string public constant MICRO_DAN = "Micro DAN";
    string public constant MINI_DAN = "Mini DAN";
    string public constant CHAD = "Chad";
    string public constant GIGA_CHAD = "Giga Chad";
    string public constant ULTRA_CHAD = "Ultra Chad";
    string public constant DAN = "DAN";

    // We've got a handy little function here that checks your balance and gives you a title.
    // It's like a video game, but with more money and no princess.
    function assignRole(
        uint256 balance,
        uint256 total
    ) private pure returns (string memory) {
        // If you've got no balance, you're a Brainlet. Sorry, I don't make the rules.
        if (balance == 0) {
            return BRAINLET;
        } else if (balance <= total / 10000) {
            // Congrats, you're a Micro DAN. You're on your way to greatness, but you've got a long road ahead.
            return MICRO_DAN;
        } else if (balance <= total / 2000) {
            // You're a Mini DAN. Not quite a full DAN, but getting there.
            return MINI_DAN;
        } else if (balance <= total / 1000) {
            // Look at you, you're a Chad! Keep on hodling.
            return CHAD;
        } else if (balance <= total / 200) {
            // You're a Giga Chad. You're not just a Chad, you're a huge fucking Chad.
            return GIGA_CHAD;
        } else if (balance <= total / 100) {
            // You're an Ultra Chad. There's no stopping you now.
            return ULTRA_CHAD;
        } else {
            // You did it. You're a DAN. Welcome to the big leagues.
            return DAN;
        }
    }

    // Want to check your status? Call this function and see where you stand.
    function chadCheck() external view returns (string memory) {
        uint256 balance = balanceOf(msg.sender);
        uint256 total = totalSupply();
        return assignRole(balance, total);
    }

    // Wanna check on someone else's status? Just plug in their address and watch the magic happen.
    function checkChads(address user) external view returns (string memory) {
        uint256 balance = balanceOf(user);
        uint256 total = totalSupply();
        return assignRole(balance, total);
    }
}

File 2 of 8 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)

pragma solidity ^0.8.0;

import "../utils/Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 3 of 8 : ERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;

import "./IERC20.sol";
import "./extensions/IERC20Metadata.sol";
import "../../utils/Context.sol";

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `from` to `to`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

File 4 of 8 : IERC20Metadata.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;

import "../IERC20.sol";

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

File 5 of 8 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

File 6 of 8 : Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

File 7 of 8 : IUniswapV2Router01.sol
pragma solidity >=0.6.2;

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

File 8 of 8 : IUniswapV2Router02.sol
pragma solidity >=0.6.2;

import './IUniswapV2Router01.sol';

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"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":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"value","type":"bool"}],"name":"ExclusionFromMaxWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"value","type":"bool"}],"name":"MaxWalletEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"MaxWalletPercentageUpdated","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":false,"internalType":"bool","name":"value","type":"bool"}],"name":"TradingEnabledUpdated","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"pair","type":"address"}],"name":"UniswapPairUpdated","type":"event"},{"inputs":[],"name":"BRAINLET","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CHAD","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DAN","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GIGA_CHAD","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MICRO_DAN","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINI_DAN","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAPERHAND","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ULTRA_CHAD","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"chadCheck","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"checkChads","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setExclusionFromMaxWallet","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":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"updateMaxWalletEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWalletPercentage","type":"uint256"}],"name":"updateMaxWalletPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"name":"updateUniswapPair","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405260026008556009805460ff191690553480156200002057600080fd5b5060405162001a3e38038062001a3e833981016040819052620000439162000385565b604051806040016040528060038152602001622220a760e91b815250604051806040016040528060038152602001622220a760e91b815250816003908051906020019062000093929190620002df565b508051620000a9906004906020840190620002df565b505050620000c6620000c0620001c260201b60201c565b620001c6565b620000df336c01431e0fae6d7217caa000000062000218565b6000819050816001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200011e57600080fd5b505afa15801562000133573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000159919062000385565b600780546001600160a01b03199081166001600160a01b0393841617918290556006805490911693831693909317835581166000908152600a6020526040808220805460ff19908116600190811790925594549093168252902080549092161790555062000457565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166200024a5760405162461bcd60e51b81526004016200024190620003b5565b60405180910390fd5b6200025860008383620002da565b80600260008282546200026c9190620003f5565b90915550506001600160a01b038216600081815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620002c0908590620003ec565b60405180910390a3620002d660008383620002da565b5050565b505050565b828054620002ed906200041a565b90600052602060002090601f0160209004810192826200031157600085556200035c565b82601f106200032c57805160ff19168380011785556200035c565b828001600101855582156200035c579182015b828111156200035c5782518255916020019190600101906200033f565b506200036a9291506200036e565b5090565b5b808211156200036a57600081556001016200036f565b60006020828403121562000397578081fd5b81516001600160a01b0381168114620003ae578182fd5b9392505050565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b600082198211156200041557634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806200042f57607f821691505b602082108114156200045157634e487b7160e01b600052602260045260246000fd5b50919050565b6115d780620004676000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c806370a0823111610130578063a608cc6d116100b8578063d045a3291161007c578063d045a329146103fc578063d734db2d14610404578063d8c7d4831461040c578063dd62ed3e14610414578063f2fde38b1461042757610227565b8063a608cc6d146103b3578063a9059cbb146103bb578063befd2b54146103ce578063c12b7c4e146103e1578063c4e41b22146103f457610227565b80638a8c523c116100ff5780638a8c523c146103755780638da5cb5b1461037d5780638f6609241461038557806395d89b4114610398578063a457c2d7146103a057610227565b806370a082311461033f578063715018a614610352578063733667821461035a578063891d78c31461036d57610227565b80633510e476116101b357806349bd5a5e1161018257806349bd5a5e1461030c5780634ada218b14610314578063599ca3971461031c5780636b11445f146103245780636dd3d39f1461032c57610227565b80633510e476146102e157806338cd969d146102e957806339509351146102f15780634334a8a51461030457610227565b806313171799116101fa578063131717991461027a5780631694505e1461028f57806318160ddd146102a457806323b872dd146102b9578063313ce567146102cc57610227565b8063064a59d01461022c57806306fdde031461024a578063093112221461025f578063095ea7b314610267575b600080fd5b61023461043a565b6040516102419190611153565b60405180910390f35b610252610443565b604051610241919061115e565b6102526104d5565b6102346102753660046110c9565b6104f9565b61028d6102883660046110a0565b61051d565b005b610297610587565b6040516102419190611124565b6102ac610596565b60405161024191906114e2565b6102346102c7366004611065565b61059c565b6102d46105ca565b60405161024191906114eb565b6102526105cf565b6102526105f5565b6102346102ff3660046110c9565b61061a565b610252610646565b610297610666565b610234610675565b6102ac61067e565b610252610684565b61023461033a366004611012565b6106a8565b6102ac61034d366004611012565b6106ca565b61028d6106e5565b61028d61036836600461110c565b6106f9565b61025261076b565b61028d610790565b6102976107e0565b61028d6103933660046110f2565b6107ef565b61025261083e565b6102346103ae3660046110c9565b61084d565b610252610895565b6102346103c93660046110c9565b6108ba565b6102526103dc366004611012565b610989565b61028d6103ef366004611012565b6109b6565b6102ac610a29565b610234610a38565b610252610a48565b610252610a74565b6102ac610422366004611033565b610a93565b61028d610435366004611012565b610abe565b60095460ff1690565b60606003805461045290611550565b80601f016020809104026020016040519081016040528092919081815260200182805461047e90611550565b80156104cb5780601f106104a0576101008083540402835291602001916104cb565b820191906000526020600020905b8154815290600101906020018083116104ae57829003601f168201915b5050505050905090565b60405180604001604052806008815260200167109c985a5b9b195d60c21b81525081565b600080610504610af8565b9050610511818585610afc565b60019150505b92915050565b610525610bb0565b6001600160a01b0382166000908152600a602052604090819020805460ff1916831515179055517f555c233aa87282d55c607f02817e48e51fccedbfde0c746d362f1c5116283e5a9061057b9084908490611138565b60405180910390a15050565b6006546001600160a01b031681565b60025490565b6000806105a7610af8565b90506105b4858285610bef565b6105bf858585610c39565b506001949350505050565b601290565b6040518060400160405280600a815260200169155b1d1c984810da185960b21b81525081565b6040518060400160405280600981526020016811da59d84810da185960ba1b81525081565b600080610625610af8565b90506105118185856106378589610a93565b61064191906114f9565b610afc565b6040518060400160405280600481526020016310da185960e21b81525081565b6007546001600160a01b031681565b60095460ff1681565b60085481565b6040518060400160405280600881526020016726b4b734902220a760c11b81525081565b6001600160a01b0381166000908152600a602052604090205460ff165b919050565b6001600160a01b031660009081526020819052604090205490565b6106ed610bb0565b6106f76000610d3b565b565b610701610bb0565b606481111561072b5760405162461bcd60e51b815260040161072290611395565b60405180910390fd5b60088190556040517fd0a65de7e2cd9cbe3e815cb542d294bed1fe025cdb4aa6d144d354a25872eee4906107609083906114e2565b60405180910390a150565b6040518060400160405280600981526020016826b4b1b937902220a760b91b81525081565b610798610bb0565b6009805460ff191660019081179091556040517fdc4df53cd70f6f18952922b97f80686da932854762f1af348a7a38b9e94b079e916107d691611153565b60405180910390a1565b6005546001600160a01b031690565b6107f7610bb0565b6007805460ff60a01b1916600160a01b831515021790556040517fd982c622563a6daaedc772ff458962b9321222c14ea617530513490268018c3490610760908390611153565b60606004805461045290611550565b600080610858610af8565b905060006108668286610a93565b9050838110156108885760405162461bcd60e51b81526004016107229061149d565b6105bf8286868403610afc565b6040518060400160405280600981526020016814185c195c9a185b9960ba1b81525081565b60006108c5336106ca565b8211156108e45760405162461bcd60e51b815260040161072290611367565b600754600160a01b900460ff16801561091657506001600160a01b0383166000908152600a602052604090205460ff16155b1561096e576064600854610928610596565b6109329190611531565b61093c9190611511565b82610946856106ca565b61095091906114f9565b111561096e5760405162461bcd60e51b8152600401610722906111f4565b610980610979610af8565b8484610c39565b50600192915050565b60606000610996836106ca565b905060006109a2610596565b90506109ae8282610d8d565b949350505050565b6109be610bb0565b600780546001600160a01b0319166001600160a01b038381169190911791829055166000908152600a602052604090819020805460ff19166001179055517fdd2689cb5e1ca91bab290e22ada24c52705073cf17bacb82133714fa8427134490610760908390611124565b6000610a33610596565b905090565b600754600160a01b900460ff1681565b60606000610a55336106ca565b90506000610a61610596565b9050610a6d8282610d8d565b9250505090565b604051806040016040528060038152602001622220a760e91b81525081565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610ac6610bb0565b6001600160a01b038116610aec5760405162461bcd60e51b815260040161072290611262565b610af581610d3b565b50565b3390565b6001600160a01b038316610b225760405162461bcd60e51b815260040161072290611459565b6001600160a01b038216610b485760405162461bcd60e51b8152600401610722906112a8565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610ba39085906114e2565b60405180910390a3505050565b610bb8610af8565b6001600160a01b0316610bc96107e0565b6001600160a01b0316146106f75760405162461bcd60e51b8152600401610722906113df565b6000610bfb8484610a93565b90506000198114610c335781811015610c265760405162461bcd60e51b8152600401610722906112ea565b610c338484848403610afc565b50505050565b60095460ff1680610c625750610c4d6107e0565b6001600160a01b0316836001600160a01b0316145b80610c855750610c706107e0565b6001600160a01b0316826001600160a01b0316145b610ca15760405162461bcd60e51b81526004016107229061122b565b600754600160a01b900460ff168015610cd357506001600160a01b0382166000908152600a602052604090205460ff16155b15610d2b576064600854610ce5610596565b610cef9190611531565b610cf99190611511565b81610d03846106ca565b610d0d91906114f9565b1115610d2b5760405162461bcd60e51b8152600401610722906111f4565b610d36838383610eea565b505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b606082610db95750604080518082019091526008815267109c985a5b9b195d60c21b6020820152610517565b610dc561271083611511565b8311610df1575060408051808201909152600981526826b4b1b937902220a760b91b6020820152610517565b610dfd6107d083611511565b8311610e28575060408051808201909152600881526726b4b734902220a760c11b6020820152610517565b610e346103e883611511565b8311610e5b575060408051808201909152600481526310da185960e21b6020820152610517565b610e6660c883611511565b8311610e92575060408051808201909152600981526811da59d84810da185960ba1b6020820152610517565b610e9d606483611511565b8311610eca575060408051808201909152600a815269155b1d1c984810da185960b21b6020820152610517565b506040805180820190915260038152622220a760e91b6020820152610517565b6001600160a01b038316610f105760405162461bcd60e51b815260040161072290611414565b6001600160a01b038216610f365760405162461bcd60e51b8152600401610722906111b1565b610f41838383610d36565b6001600160a01b03831660009081526020819052604090205481811015610f7a5760405162461bcd60e51b815260040161072290611321565b6001600160a01b0380851660008181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fd89086906114e2565b60405180910390a3610c33848484610d36565b80356001600160a01b03811681146106c557600080fd5b803580151581146106c557600080fd5b600060208284031215611023578081fd5b61102c82610feb565b9392505050565b60008060408385031215611045578081fd5b61104e83610feb565b915061105c60208401610feb565b90509250929050565b600080600060608486031215611079578081fd5b61108284610feb565b925061109060208501610feb565b9150604084013590509250925092565b600080604083850312156110b2578182fd5b6110bb83610feb565b915061105c60208401611002565b600080604083850312156110db578182fd5b6110e483610feb565b946020939093013593505050565b600060208284031215611103578081fd5b61102c82611002565b60006020828403121561111d578081fd5b5035919050565b6001600160a01b0391909116815260200190565b6001600160a01b039290921682521515602082015260400190565b901515815260200190565b6000602080835283518082850152825b8181101561118a5785810183015185820160400152820161116e565b8181111561119b5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526018908201527f45786365656473206d61782077616c6c6574206c696d69740000000000000000604082015260600190565b6020808252601a908201527f54726164696e67206973206e6f7420656e61626c656420796574000000000000604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601d908201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604082015260600190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b602080825260149082015273496e73756666696369656e742062616c616e636560601b604082015260600190565b6020808252602a908201527f4d61782077616c6c65742070657263656e74616765206d757374206e6f7420656040820152697863656564203130302560b01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b90815260200190565b60ff91909116815260200190565b6000821982111561150c5761150c61158b565b500190565b60008261152c57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561154b5761154b61158b565b500290565b60028104600182168061156457607f821691505b6020821081141561158557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea26469706673582212207f955286fb35ad7e8e61e262d90562e58f78c0b393f449270e5b87a1cdfebc8564736f6c634300080000330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102275760003560e01c806370a0823111610130578063a608cc6d116100b8578063d045a3291161007c578063d045a329146103fc578063d734db2d14610404578063d8c7d4831461040c578063dd62ed3e14610414578063f2fde38b1461042757610227565b8063a608cc6d146103b3578063a9059cbb146103bb578063befd2b54146103ce578063c12b7c4e146103e1578063c4e41b22146103f457610227565b80638a8c523c116100ff5780638a8c523c146103755780638da5cb5b1461037d5780638f6609241461038557806395d89b4114610398578063a457c2d7146103a057610227565b806370a082311461033f578063715018a614610352578063733667821461035a578063891d78c31461036d57610227565b80633510e476116101b357806349bd5a5e1161018257806349bd5a5e1461030c5780634ada218b14610314578063599ca3971461031c5780636b11445f146103245780636dd3d39f1461032c57610227565b80633510e476146102e157806338cd969d146102e957806339509351146102f15780634334a8a51461030457610227565b806313171799116101fa578063131717991461027a5780631694505e1461028f57806318160ddd146102a457806323b872dd146102b9578063313ce567146102cc57610227565b8063064a59d01461022c57806306fdde031461024a578063093112221461025f578063095ea7b314610267575b600080fd5b61023461043a565b6040516102419190611153565b60405180910390f35b610252610443565b604051610241919061115e565b6102526104d5565b6102346102753660046110c9565b6104f9565b61028d6102883660046110a0565b61051d565b005b610297610587565b6040516102419190611124565b6102ac610596565b60405161024191906114e2565b6102346102c7366004611065565b61059c565b6102d46105ca565b60405161024191906114eb565b6102526105cf565b6102526105f5565b6102346102ff3660046110c9565b61061a565b610252610646565b610297610666565b610234610675565b6102ac61067e565b610252610684565b61023461033a366004611012565b6106a8565b6102ac61034d366004611012565b6106ca565b61028d6106e5565b61028d61036836600461110c565b6106f9565b61025261076b565b61028d610790565b6102976107e0565b61028d6103933660046110f2565b6107ef565b61025261083e565b6102346103ae3660046110c9565b61084d565b610252610895565b6102346103c93660046110c9565b6108ba565b6102526103dc366004611012565b610989565b61028d6103ef366004611012565b6109b6565b6102ac610a29565b610234610a38565b610252610a48565b610252610a74565b6102ac610422366004611033565b610a93565b61028d610435366004611012565b610abe565b60095460ff1690565b60606003805461045290611550565b80601f016020809104026020016040519081016040528092919081815260200182805461047e90611550565b80156104cb5780601f106104a0576101008083540402835291602001916104cb565b820191906000526020600020905b8154815290600101906020018083116104ae57829003601f168201915b5050505050905090565b60405180604001604052806008815260200167109c985a5b9b195d60c21b81525081565b600080610504610af8565b9050610511818585610afc565b60019150505b92915050565b610525610bb0565b6001600160a01b0382166000908152600a602052604090819020805460ff1916831515179055517f555c233aa87282d55c607f02817e48e51fccedbfde0c746d362f1c5116283e5a9061057b9084908490611138565b60405180910390a15050565b6006546001600160a01b031681565b60025490565b6000806105a7610af8565b90506105b4858285610bef565b6105bf858585610c39565b506001949350505050565b601290565b6040518060400160405280600a815260200169155b1d1c984810da185960b21b81525081565b6040518060400160405280600981526020016811da59d84810da185960ba1b81525081565b600080610625610af8565b90506105118185856106378589610a93565b61064191906114f9565b610afc565b6040518060400160405280600481526020016310da185960e21b81525081565b6007546001600160a01b031681565b60095460ff1681565b60085481565b6040518060400160405280600881526020016726b4b734902220a760c11b81525081565b6001600160a01b0381166000908152600a602052604090205460ff165b919050565b6001600160a01b031660009081526020819052604090205490565b6106ed610bb0565b6106f76000610d3b565b565b610701610bb0565b606481111561072b5760405162461bcd60e51b815260040161072290611395565b60405180910390fd5b60088190556040517fd0a65de7e2cd9cbe3e815cb542d294bed1fe025cdb4aa6d144d354a25872eee4906107609083906114e2565b60405180910390a150565b6040518060400160405280600981526020016826b4b1b937902220a760b91b81525081565b610798610bb0565b6009805460ff191660019081179091556040517fdc4df53cd70f6f18952922b97f80686da932854762f1af348a7a38b9e94b079e916107d691611153565b60405180910390a1565b6005546001600160a01b031690565b6107f7610bb0565b6007805460ff60a01b1916600160a01b831515021790556040517fd982c622563a6daaedc772ff458962b9321222c14ea617530513490268018c3490610760908390611153565b60606004805461045290611550565b600080610858610af8565b905060006108668286610a93565b9050838110156108885760405162461bcd60e51b81526004016107229061149d565b6105bf8286868403610afc565b6040518060400160405280600981526020016814185c195c9a185b9960ba1b81525081565b60006108c5336106ca565b8211156108e45760405162461bcd60e51b815260040161072290611367565b600754600160a01b900460ff16801561091657506001600160a01b0383166000908152600a602052604090205460ff16155b1561096e576064600854610928610596565b6109329190611531565b61093c9190611511565b82610946856106ca565b61095091906114f9565b111561096e5760405162461bcd60e51b8152600401610722906111f4565b610980610979610af8565b8484610c39565b50600192915050565b60606000610996836106ca565b905060006109a2610596565b90506109ae8282610d8d565b949350505050565b6109be610bb0565b600780546001600160a01b0319166001600160a01b038381169190911791829055166000908152600a602052604090819020805460ff19166001179055517fdd2689cb5e1ca91bab290e22ada24c52705073cf17bacb82133714fa8427134490610760908390611124565b6000610a33610596565b905090565b600754600160a01b900460ff1681565b60606000610a55336106ca565b90506000610a61610596565b9050610a6d8282610d8d565b9250505090565b604051806040016040528060038152602001622220a760e91b81525081565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610ac6610bb0565b6001600160a01b038116610aec5760405162461bcd60e51b815260040161072290611262565b610af581610d3b565b50565b3390565b6001600160a01b038316610b225760405162461bcd60e51b815260040161072290611459565b6001600160a01b038216610b485760405162461bcd60e51b8152600401610722906112a8565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610ba39085906114e2565b60405180910390a3505050565b610bb8610af8565b6001600160a01b0316610bc96107e0565b6001600160a01b0316146106f75760405162461bcd60e51b8152600401610722906113df565b6000610bfb8484610a93565b90506000198114610c335781811015610c265760405162461bcd60e51b8152600401610722906112ea565b610c338484848403610afc565b50505050565b60095460ff1680610c625750610c4d6107e0565b6001600160a01b0316836001600160a01b0316145b80610c855750610c706107e0565b6001600160a01b0316826001600160a01b0316145b610ca15760405162461bcd60e51b81526004016107229061122b565b600754600160a01b900460ff168015610cd357506001600160a01b0382166000908152600a602052604090205460ff16155b15610d2b576064600854610ce5610596565b610cef9190611531565b610cf99190611511565b81610d03846106ca565b610d0d91906114f9565b1115610d2b5760405162461bcd60e51b8152600401610722906111f4565b610d36838383610eea565b505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b606082610db95750604080518082019091526008815267109c985a5b9b195d60c21b6020820152610517565b610dc561271083611511565b8311610df1575060408051808201909152600981526826b4b1b937902220a760b91b6020820152610517565b610dfd6107d083611511565b8311610e28575060408051808201909152600881526726b4b734902220a760c11b6020820152610517565b610e346103e883611511565b8311610e5b575060408051808201909152600481526310da185960e21b6020820152610517565b610e6660c883611511565b8311610e92575060408051808201909152600981526811da59d84810da185960ba1b6020820152610517565b610e9d606483611511565b8311610eca575060408051808201909152600a815269155b1d1c984810da185960b21b6020820152610517565b506040805180820190915260038152622220a760e91b6020820152610517565b6001600160a01b038316610f105760405162461bcd60e51b815260040161072290611414565b6001600160a01b038216610f365760405162461bcd60e51b8152600401610722906111b1565b610f41838383610d36565b6001600160a01b03831660009081526020819052604090205481811015610f7a5760405162461bcd60e51b815260040161072290611321565b6001600160a01b0380851660008181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fd89086906114e2565b60405180910390a3610c33848484610d36565b80356001600160a01b03811681146106c557600080fd5b803580151581146106c557600080fd5b600060208284031215611023578081fd5b61102c82610feb565b9392505050565b60008060408385031215611045578081fd5b61104e83610feb565b915061105c60208401610feb565b90509250929050565b600080600060608486031215611079578081fd5b61108284610feb565b925061109060208501610feb565b9150604084013590509250925092565b600080604083850312156110b2578182fd5b6110bb83610feb565b915061105c60208401611002565b600080604083850312156110db578182fd5b6110e483610feb565b946020939093013593505050565b600060208284031215611103578081fd5b61102c82611002565b60006020828403121561111d578081fd5b5035919050565b6001600160a01b0391909116815260200190565b6001600160a01b039290921682521515602082015260400190565b901515815260200190565b6000602080835283518082850152825b8181101561118a5785810183015185820160400152820161116e565b8181111561119b5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526018908201527f45786365656473206d61782077616c6c6574206c696d69740000000000000000604082015260600190565b6020808252601a908201527f54726164696e67206973206e6f7420656e61626c656420796574000000000000604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601d908201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604082015260600190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b602080825260149082015273496e73756666696369656e742062616c616e636560601b604082015260600190565b6020808252602a908201527f4d61782077616c6c65742070657263656e74616765206d757374206e6f7420656040820152697863656564203130302560b01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b90815260200190565b60ff91909116815260200190565b6000821982111561150c5761150c61158b565b500190565b60008261152c57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561154b5761154b61158b565b500290565b60028104600182168061156457607f821691505b6020821081141561158557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea26469706673582212207f955286fb35ad7e8e61e262d90562e58f78c0b393f449270e5b87a1cdfebc8564736f6c63430008000033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : _router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.