ETH Price: $2,410.66 (-8.85%)
 

Overview

Max Total Supply

1,000,000,000 ERC20 ***

Holders

4

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Melo8824

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion
File 1 of 1 : Melo8824.sol
// SPDX-License-Identifier: Unlicensed
/**
slow
*/

pragma solidity 0.8.26;

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract Context {
    
    function _msgSender() internal view virtual returns (address payable) {
        return payable(msg.sender);
    }
}

contract Ownable is Context {
    address public _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() external virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDEXRouter {
    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 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;
}

interface InterfaceLP {
    function sync() external;
}

contract Melo8824 is Ownable, ERC20 {

    address immutable WETH;
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = unicode"ETHPanda";
    string constant _symbol = unicode"ETHPANDA";
    uint8 constant _decimals = 9; 
  

    uint256 constant _totalSupply = 1000000000 * 10**_decimals;

    uint256 public _maxTxAmount = _totalSupply / 50;
    uint256 public _maxWalletAmount = _totalSupply / 50;

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

    
    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;

    uint256 public  buyFee        = 20;
    uint256 public  sellFee       = 35;

    uint256 constant transferFee  = 0;
    
    uint256 private lastSwap;
    address private marketingFeeReceiver;

    IDEXRouter public router;
    InterfaceLP private pairContract;
    address immutable public pair;
    
    bool public TradingOpen = false;    

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 100; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    event maxWalletUpdated(uint256 indexed maxWalletAmount);
    event maxTxUpdated(uint256 indexed maxTxAmount);
    event maxLimitsRemoved(uint256 indexed maxWalletToken, uint256 indexed maxTxAmount);
    event exemptFees(address indexed holder, bool indexed exempt);
    event exemptTxLimit(address indexed holder, bool indexed exempt);
    event buyFeeUpdated(uint256 indexed buyFee);
    event sellFeeUpdated(uint256 indexed sellFee);
    event feesWalletUpdated(address indexed marketingFeeReceiver);
    event swapbackSettingsUpdated(bool indexed enabled, uint256 indexed amount);
    event tradingEnabled(bool indexed enabled, uint256 indexed startTime);
    event marketingWalletUpdated(address indexed newWallet, address indexed oldWallet);
    
    constructor () {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);
       
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        marketingFeeReceiver = 0x84809596E50D95e588711366c79F3d12ecaa72ca;

        isFeeExempt[msg.sender] = true; 
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[address(this)] = true;
        

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);

    }

    receive() external payable { }

    function totalSupply() external pure override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) {return owner();}
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        require(spender != address(0), "Spender is the zero address");
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveAll(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        require(recipient != address(0), "Recipient is the zero address");
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        require(sender != address(0), "Sender is the zero address");
        require(recipient != address(0), "Recipient is the zero address");
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if(currentAllowance != type(uint256).max){
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _allowances[sender][_msgSender()] = currentAllowance - amount;
            }
        }

        return _transferFrom(sender, recipient, amount);
    }

    function setMaxWallet(uint256 maxWalletPercent) external onlyOwner {
        require(maxWalletPercent >= 5,"Max wallet cannont be less than 0.5% .");
        _maxWalletAmount = (_totalSupply * maxWalletPercent ) / 1000;
        emit maxWalletUpdated(_maxWalletAmount);       
    }

    function setMaxTx(uint256 maxTxPercent) external onlyOwner {
        require(maxTxPercent >= 5,"Max transaction cannont be less than 0.5% ."); 
        _maxTxAmount = (_totalSupply * maxTxPercent ) / 1000;
        emit maxTxUpdated(_maxTxAmount);
    }

   
  
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {

        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(sender != owner()){
            require(TradingOpen,"Trading not open yet");
        
        }
        
        checkTxLimit(sender, amount);
        
        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");

        uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient);

        if (sender != owner() && (recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != marketingFeeReceiver && !isTxLimitExempt[recipient])){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amountReceived) <= _maxWalletAmount,"Total Holding is currently limited, you can not buy that much.");}

        if(
            lastSwap != block.number &&
            _balances[address(this)] >= swapThreshold &&
            swapEnabled &&
            !inSwap &&
            recipient == pair
        ){ 
            swapBack();
            lastSwap = block.number;
        }

        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amountReceived;

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "Tx Limit Exceeded");
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        uint256 feeAmount = 0;
        uint256 notFeeAmount;

        if(recipient == pair) {
            feeAmount = (amount * sellFee) / 100;
        } else if(sender == pair) {
            feeAmount = (amount * buyFee) / 100;
        }else{
            feeAmount = 0;
        }

        if(feeAmount > 0) {
            _balances[address(this)] += feeAmount;
            emit Transfer(sender, address(this), feeAmount);    
            notFeeAmount = amount - feeAmount;
        } else {
            notFeeAmount = amount;
        }
        return notFeeAmount;
    }

    function removeMaxLimits() external onlyOwner { 
        _maxWalletAmount = _totalSupply;
        _maxTxAmount = _totalSupply;
        emit maxLimitsRemoved(_maxWalletAmount, _maxTxAmount);
    }

    function Lunch() external onlyOwner {
        require(!TradingOpen,"Trading already Enabled.");
        TradingOpen = true;
        lastSwap = block.number;
        emit tradingEnabled(TradingOpen, lastSwap);
    }

    function swapBack() internal swapping {
        uint256 amountToSwap = swapThreshold;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 totalETHFee = address(this).balance;
        
        (bool tmpSuccess1,) = payable(marketingFeeReceiver).call{value: totalETHFee}("");
        require(tmpSuccess1, "Failed to send ether to Marketing Fee Receiver.");

    }

    function exemptAll(address holder, bool exempt) external onlyOwner {
        require(holder != address(0), "Holder is the zero address");
        isFeeExempt[holder] = exempt;
        isTxLimitExempt[holder] = exempt;
        emit exemptFees(holder, exempt);
    }

    function setTxLimitExempt(address holder, bool exempt) external onlyOwner {
        require(holder != address(0), "Holder is the zero address");
        isTxLimitExempt[holder] = exempt;
        emit exemptTxLimit(holder, exempt);
    }


    function updateBuyFee(uint256 _buyFee) external onlyOwner {
        require( _buyFee <= 5, "Fees can not be more than 5%"); 
        buyFee =_buyFee;
        emit buyFeeUpdated(buyFee);
    }

    function updateSellFee(uint256 _sellFee) external onlyOwner {
        require(_sellFee <= 99, "Fees can not be more than 99%"); 
        sellFee =_sellFee;
        emit sellFeeUpdated(_sellFee);
    }

    function updatefeeWallet( address _marketingFeeReceiver) external onlyOwner {
        require(_marketingFeeReceiver != address(0) , "Marketing fee receiver cannot be zero address");
        marketingFeeReceiver = _marketingFeeReceiver;
        emit feesWalletUpdated(marketingFeeReceiver);
    }

    function editSwapbackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _amount * 10**_decimals;
        emit swapbackSettingsUpdated(_enabled, _amount);
    }
    
    function updateMarketingWallet(address newMarketingWallet) external onlyOwner {
        emit marketingWalletUpdated(newMarketingWallet, marketingFeeReceiver);
        marketingFeeReceiver = newMarketingWallet;
    }

    function randomNumberGenerator() public view returns (uint256) {
        return uint256(keccak256(abi.encodePacked(block.timestamp, block.prevrandao))) % 100;
    }
}

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

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"buyFee","type":"uint256"}],"name":"buyFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":true,"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":true,"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptTxLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"marketingFeeReceiver","type":"address"}],"name":"feesWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxWalletToken","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"maxLimitsRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"maxTxUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"maxWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"sellFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bool","name":"enabled","type":"bool"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"swapbackSettingsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bool","name":"enabled","type":"bool"},{"indexed":true,"internalType":"uint256","name":"startTime","type":"uint256"}],"name":"tradingEnabled","type":"event"},{"inputs":[],"name":"Lunch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveAll","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":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"editSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"randomNumberGenerator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeMaxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletPercent","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"}],"name":"updateBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"updateSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"updatefeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c060405260326100126009600a61049d565b61002090633b9aca006104b3565b61002a91906104ca565b600155603261003b6009600a61049d565b61004990633b9aca006104b3565b61005391906104ca565b60025560146007556023600855600c805461ffff60a01b1916600160a81b17905560646100826009600a61049d565b61009090633b9aca006104b3565b61009a91906104ca565b600d553480156100a957600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801561014f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061017391906104ec565b6001600160a01b03908116608052600b546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156101c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e791906104ec565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af1158015610238573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025c91906104ec565b6001600160a01b0390811660a0819052600c80546001600160a01b03199081168317909155306000818152600460209081526040808320600b548816845282528083206000199055600a80549095167384809596e50d95e588711366c79f3d12ecaa72ca17855533835260058252808320805460ff19908116600190811790925560069093528184208054841682179055958352808320805483168717905584549096168252858220805482168617905591815293909320805490931690911790915561032b9060099061049d565b61033990633b9aca006104b3565b33600081815260036020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61037a6009600a61049d565b61038890633b9aca006104b3565b60405190815260200160405180910390a3610515565b634e487b7160e01b600052601160045260246000fd5b6001815b60018411156103ef578085048111156103d3576103d361039e565b60018416156103e157908102905b60019390931c9280026103b8565b935093915050565b60008261040657506001610497565b8161041357506000610497565b816001811461042957600281146104335761044f565b6001915050610497565b60ff8411156104445761044461039e565b50506001821b610497565b5060208310610133831016604e8410600b8410161715610472575081810a610497565b61047f60001984846103b4565b80600019048211156104935761049361039e565b0290505b92915050565b60006104ac60ff8416836103f7565b9392505050565b80820281158282048414176104975761049761039e565b6000826104e757634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156104fe57600080fd5b81516001600160a01b03811681146104ac57600080fd5b60805160a051612005610556600039600081816105670152818161152e01528181611693015281816118ba015261190601526000611a3e01526120056000f3fe6080604052600436106102135760003560e01c806370a0823111610118578063aacebbe3116100a0578063dd62ed3e1161006f578063dd62ed3e14610629578063f2fde38b1461066f578063f6a78e171461068f578063f887ea40146106a4578063fb1c3791146106c457600080fd5b8063aacebbe3146105a9578063b2bdfa7b146105c9578063bc337182146105e9578063ccf8c0361461060957600080fd5b80638d7a8ba7116100e75780638d7a8ba7146104e65780638da5cb5b1461050657806395d89b4114610524578063a8aa1b3114610555578063a9059cbb1461058957600080fd5b806370a0823114610453578063715018a6146104895780637d1db4a51461049e578063893d20e8146104b457600080fd5b80632b14ca561161019b578063467abe0a1161016a578063467abe0a146103c657806347062402146103e65780635d0044ca146103fc5780636c0a24eb1461041c5780636ddd17131461043257600080fd5b80632b14ca561461036a5780632e6b025814610380578063313ce567146103955780633bedaca2146103b157600080fd5b806308fd3d05116101e257806308fd3d05146102d4578063095ea7b3146102f557806318160ddd146103155780631d933a4a1461032a57806323b872dd1461034a57600080fd5b806304368f651461021f5780630445b667146102415780630621472c1461026a57806306fdde031461029a57600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5061023f61023a366004611bcc565b6106e4565b005b34801561024d57600080fd5b50610257600d5481565b6040519081526020015b60405180910390f35b34801561027657600080fd5b5061028a610285366004611c0d565b61077a565b6040519015158152602001610261565b3480156102a657600080fd5b5060408051808201909152600881526745544850616e646160c01b60208201525b6040516102619190611c28565b3480156102e057600080fd5b50600c5461028a90600160a01b900460ff1681565b34801561030157600080fd5b5061028a610310366004611c76565b61078e565b34801561032157600080fd5b5061025761084a565b34801561033657600080fd5b5061023f610345366004611c92565b61086b565b34801561035657600080fd5b5061028a610365366004611cab565b610919565b34801561037657600080fd5b5061025760085481565b34801561038c57600080fd5b5061023f610a94565b3480156103a157600080fd5b5060405160098152602001610261565b3480156103bd57600080fd5b50610257610b6c565b3480156103d257600080fd5b5061023f6103e1366004611c92565b610baf565b3480156103f257600080fd5b5061025760075481565b34801561040857600080fd5b5061023f610417366004611c92565b610c5d565b34801561042857600080fd5b5061025760025481565b34801561043e57600080fd5b50600c5461028a90600160a81b900460ff1681565b34801561045f57600080fd5b5061025761046e366004611c0d565b6001600160a01b031660009081526003602052604090205490565b34801561049557600080fd5b5061023f610d4a565b3480156104aa57600080fd5b5061025760015481565b3480156104c057600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610261565b3480156104f257600080fd5b5061023f610501366004611ce8565b610dbe565b34801561051257600080fd5b506000546001600160a01b03166104ce565b34801561053057600080fd5b5060408051808201909152600881526745544850414e444160c01b60208201526102c7565b34801561056157600080fd5b506104ce7f000000000000000000000000000000000000000000000000000000000000000081565b34801561059557600080fd5b5061028a6105a4366004611c76565b610e92565b3480156105b557600080fd5b5061023f6105c4366004611c0d565b610ef5565b3480156105d557600080fd5b506000546104ce906001600160a01b031681565b3480156105f557600080fd5b5061023f610604366004611c92565b610f7c565b34801561061557600080fd5b5061023f610624366004611ce8565b61106e565b34801561063557600080fd5b50610257610644366004611d1b565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561067b57600080fd5b5061023f61068a366004611c0d565b611156565b34801561069b57600080fd5b5061023f611240565b3480156106b057600080fd5b50600b546104ce906001600160a01b031681565b3480156106d057600080fd5b5061023f6106df366004611c0d565b6112d4565b6000546001600160a01b031633146107175760405162461bcd60e51b815260040161070e90611d45565b60405180910390fd5b600c805460ff60a81b1916600160a81b8415150217905561073a6009600a611e77565b6107449082611e86565b600d556040518190831515907fd896c9007bf8dc883f6b125322395dddc87bf825aed2e302315071c66e0d5dd990600090a35050565b60006107888260001961078e565b92915050565b60006001600160a01b0383166107e65760405162461bcd60e51b815260206004820152601b60248201527f5370656e64657220697320746865207a65726f20616464726573730000000000604482015260640161070e565b3360008181526004602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350600192915050565b60006108586009600a611e77565b61086690633b9aca00611e86565b905090565b6000546001600160a01b031633146108955760405162461bcd60e51b815260040161070e90611d45565b60638111156108e65760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e20393925000000604482015260640161070e565b600881905560405181907f63d66ef9bcebaeaa6f4eb61e9327d3f4098c923aa98a5fc5326a53f2e145f4f290600090a250565b60006001600160a01b0384166109715760405162461bcd60e51b815260206004820152601a60248201527f53656e64657220697320746865207a65726f2061646472657373000000000000604482015260640161070e565b6001600160a01b0383166109c75760405162461bcd60e51b815260206004820152601d60248201527f526563697069656e7420697320746865207a65726f2061646472657373000000604482015260640161070e565b6001600160a01b03841660009081526004602090815260408083203384529091529020546000198114610a7e5782811015610a555760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161070e565b6001600160a01b0385166000908152600460209081526040808320338452909152902083820390555b610a898585856113b4565b9150505b9392505050565b6000546001600160a01b03163314610abe5760405162461bcd60e51b815260040161070e90611d45565b600c54600160a01b900460ff1615610b185760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920456e61626c65642e0000000000000000604482015260640161070e565b600c805460ff60a01b1916600160a01b9081179182905543600981905560405190929190910460ff161515907f07c24843b569ea20bd3c266fb17047bdd751e44ea3afa2150f231b90bc669f4d90600090a3565b600060644244604051602001610b8c929190918252602082015260400190565b6040516020818303038152906040528051906020012060001c6108669190611eb3565b6000546001600160a01b03163314610bd95760405162461bcd60e51b815260040161070e90611d45565b6005811115610c2a5760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e206e6f74206265206d6f7265207468616e20352500000000604482015260640161070e565b600781905560405181907f11953a0453d6e2e337ab856b9de1f4818ffa2a51f3a9c12f924e2a043ae37f6d90600090a250565b6000546001600160a01b03163314610c875760405162461bcd60e51b815260040161070e90611d45565b6005811015610ce75760405162461bcd60e51b815260206004820152602660248201527f4d61782077616c6c65742063616e6e6f6e74206265206c657373207468616e2060448201526518171a92901760d11b606482015260840161070e565b6103e881610cf76009600a611e77565b610d0590633b9aca00611e86565b610d0f9190611e86565b610d199190611ec7565b60028190556040517ff8c5ab682312267665fe2e7afb06ce5e015dae6e8e8b89ebf47de5312c153c3590600090a250565b6000546001600160a01b03163314610d745760405162461bcd60e51b815260040161070e90611d45565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610de85760405162461bcd60e51b815260040161070e90611d45565b6001600160a01b038216610e3e5760405162461bcd60e51b815260206004820152601a60248201527f486f6c64657220697320746865207a65726f2061646472657373000000000000604482015260640161070e565b6001600160a01b038216600081815260066020526040808220805460ff191685151590811790915590519092917f5422e85d9bcca047954218b93afb25e9bc2afe9bdc19e7297968b2c919c8377591a35050565b60006001600160a01b038316610eea5760405162461bcd60e51b815260206004820152601d60248201527f526563697069656e7420697320746865207a65726f2061646472657373000000604482015260640161070e565b610a8d3384846113b4565b6000546001600160a01b03163314610f1f5760405162461bcd60e51b815260040161070e90611d45565b600a546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567490600090a3600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610fa65760405162461bcd60e51b815260040161070e90611d45565b600581101561100b5760405162461bcd60e51b815260206004820152602b60248201527f4d6178207472616e73616374696f6e2063616e6e6f6e74206265206c6573732060448201526a3a3430b71018171a92901760a91b606482015260840161070e565b6103e88161101b6009600a611e77565b61102990633b9aca00611e86565b6110339190611e86565b61103d9190611ec7565b60018190556040517f3e20d7489efd636786bf4e1e0eb2addeb10f5435dc95fff56528021af35c504190600090a250565b6000546001600160a01b031633146110985760405162461bcd60e51b815260040161070e90611d45565b6001600160a01b0382166110ee5760405162461bcd60e51b815260206004820152601a60248201527f486f6c64657220697320746865207a65726f2061646472657373000000000000604482015260640161070e565b6001600160a01b0382166000818152600560209081526040808320805486151560ff199182168117909255600690935281842080549093168117909255519092917f4aaa6e45cd52263caf7af003089cdf83d1751392e7edf53c1b5542d94f39734691a35050565b6000546001600160a01b031633146111805760405162461bcd60e51b815260040161070e90611d45565b6001600160a01b0381166111e55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161070e565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461126a5760405162461bcd60e51b815260040161070e90611d45565b6112766009600a611e77565b61128490633b9aca00611e86565b6002556112936009600a611e77565b6112a190633b9aca00611e86565b60018190556002546040517fe5ca8724fdb01105b3129a1959a63ecdb2638b93266579bbcca33b66c737faa990600090a3565b6000546001600160a01b031633146112fe5760405162461bcd60e51b815260040161070e90611d45565b6001600160a01b03811661136a5760405162461bcd60e51b815260206004820152602d60248201527f4d61726b6574696e67206665652072656365697665722063616e6e6f7420626560448201526c207a65726f206164647265737360981b606482015260840161070e565b600a80546001600160a01b0319166001600160a01b0383169081179091556040517f5e6894395320346b3bc32e11af639cec1465f714c0956a0f2ab9c0ec0084364190600090a250565b600e5460009060ff16156113d4576113cd848484611770565b9050610a8d565b6000546001600160a01b0385811691161461143957600c54600160a01b900460ff166114395760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161070e565b611443848361183f565b6001600160a01b0384166000908152600360205260409020548281101561147c5760405162461bcd60e51b815260040161070e90611edb565b6001600160a01b03851660009081526005602052604081205460ff16806114bb57506001600160a01b03851660009081526005602052604090205460ff165b6114cf576114ca8685876118ac565b6114d1565b835b90506114e56000546001600160a01b031690565b6001600160a01b0316866001600160a01b0316141580156115a257506001600160a01b038516301480159061152557506001600160a01b03851661dead14155b801561156357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b801561157d5750600a546001600160a01b03868116911614155b80156115a257506001600160a01b03851660009081526006602052604090205460ff16155b15611643576001600160a01b0385166000908152600360205260409020546002546115cd8383611f21565b11156116415760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000606482015260840161070e565b505b43600954141580156116665750600d543060009081526003602052604090205410155b801561167b5750600c54600160a81b900460ff165b801561168a5750600e5460ff16155b80156116c757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316145b156116d9576116d46119d7565b436009555b6001600160a01b03808716600090815260036020526040808220878603905591871681529081208054839290611710908490611f21565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161175c91815260200190565b60405180910390a350600195945050505050565b6001600160a01b038316600090815260036020526040812054828110156117a95760405162461bcd60e51b815260040161070e90611edb565b6001600160a01b038086166000908152600360205260408082208685039055918616815290812080548592906117e0908490611f21565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161182c91815260200190565b60405180910390a3506001949350505050565b6001548111158061186857506001600160a01b03821660009081526006602052604090205460ff165b6118a85760405162461bcd60e51b8152602060048201526011602482015270151e08131a5b5a5d08115e18d959591959607a1b604482015260640161070e565b5050565b600080806001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811690851603611904576064600854866118f39190611e86565b6118fd9190611ec7565b9150611952565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b03160361194d576064600754866118f39190611e86565b600091505b81156119cd573060009081526003602052604081208054849290611977908490611f21565b909155505060405182815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36119c68286611f34565b9050610a89565b5092949350505050565b600e805460ff19166001179055600d546040805160028082526060820183526000926020830190803683370190505090503081600081518110611a1c57611a1c611f47565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110611a7057611a70611f47565b6001600160a01b039283166020918202929092010152600b5460405163791ac94760e01b815291169063791ac94790611ab6908590600090869030904290600401611f5d565b600060405180830381600087803b158015611ad057600080fd5b505af1158015611ae4573d6000803e3d6000fd5b5050600a54604051479350600092506001600160a01b039091169083908381818185875af1925050503d8060008114611b39576040519150601f19603f3d011682016040523d82523d6000602084013e611b3e565b606091505b5050905080611ba75760405162461bcd60e51b815260206004820152602f60248201527f4661696c656420746f2073656e6420657468657220746f204d61726b6574696e60448201526e33902332b2902932b1b2b4bb32b91760891b606482015260840161070e565b5050600e805460ff191690555050565b80358015158114611bc757600080fd5b919050565b60008060408385031215611bdf57600080fd5b611be883611bb7565b946020939093013593505050565b80356001600160a01b0381168114611bc757600080fd5b600060208284031215611c1f57600080fd5b610a8d82611bf6565b602081526000825180602084015260005b81811015611c565760208186018101516040868401015201611c39565b506000604082850101526040601f19601f83011684010191505092915050565b60008060408385031215611c8957600080fd5b611be883611bf6565b600060208284031215611ca457600080fd5b5035919050565b600080600060608486031215611cc057600080fd5b611cc984611bf6565b9250611cd760208501611bf6565b929592945050506040919091013590565b60008060408385031215611cfb57600080fd5b611d0483611bf6565b9150611d1260208401611bb7565b90509250929050565b60008060408385031215611d2e57600080fd5b611d3783611bf6565b9150611d1260208401611bf6565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6001815b6001841115611dcb57808504811115611daf57611daf611d7a565b6001841615611dbd57908102905b60019390931c928002611d94565b935093915050565b600082611de257506001610788565b81611def57506000610788565b8160018114611e055760028114611e0f57611e2b565b6001915050610788565b60ff841115611e2057611e20611d7a565b50506001821b610788565b5060208310610133831016604e8410600b8410161715611e4e575081810a610788565b611e5b6000198484611d90565b8060001904821115611e6f57611e6f611d7a565b029392505050565b6000610a8d60ff841683611dd3565b808202811582820484141761078857610788611d7a565b634e487b7160e01b600052601260045260246000fd5b600082611ec257611ec2611e9d565b500690565b600082611ed657611ed6611e9d565b500490565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b8082018082111561078857610788611d7a565b8181038181111561078857610788611d7a565b634e487b7160e01b600052603260045260246000fd5b600060a0820187835286602084015260a0604084015280865180835260c08501915060208801925060005b81811015611faf5783516001600160a01b0316835260209384019390920191600101611f88565b50506001600160a01b03959095166060840152505060800152939250505056fea26469706673582212209dd6be2e1732ceea5c9f57a61fc1a982f33e98ad1b673d1afe07e4102a9ca3a264736f6c634300081a0033

Deployed Bytecode

0x6080604052600436106102135760003560e01c806370a0823111610118578063aacebbe3116100a0578063dd62ed3e1161006f578063dd62ed3e14610629578063f2fde38b1461066f578063f6a78e171461068f578063f887ea40146106a4578063fb1c3791146106c457600080fd5b8063aacebbe3146105a9578063b2bdfa7b146105c9578063bc337182146105e9578063ccf8c0361461060957600080fd5b80638d7a8ba7116100e75780638d7a8ba7146104e65780638da5cb5b1461050657806395d89b4114610524578063a8aa1b3114610555578063a9059cbb1461058957600080fd5b806370a0823114610453578063715018a6146104895780637d1db4a51461049e578063893d20e8146104b457600080fd5b80632b14ca561161019b578063467abe0a1161016a578063467abe0a146103c657806347062402146103e65780635d0044ca146103fc5780636c0a24eb1461041c5780636ddd17131461043257600080fd5b80632b14ca561461036a5780632e6b025814610380578063313ce567146103955780633bedaca2146103b157600080fd5b806308fd3d05116101e257806308fd3d05146102d4578063095ea7b3146102f557806318160ddd146103155780631d933a4a1461032a57806323b872dd1461034a57600080fd5b806304368f651461021f5780630445b667146102415780630621472c1461026a57806306fdde031461029a57600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5061023f61023a366004611bcc565b6106e4565b005b34801561024d57600080fd5b50610257600d5481565b6040519081526020015b60405180910390f35b34801561027657600080fd5b5061028a610285366004611c0d565b61077a565b6040519015158152602001610261565b3480156102a657600080fd5b5060408051808201909152600881526745544850616e646160c01b60208201525b6040516102619190611c28565b3480156102e057600080fd5b50600c5461028a90600160a01b900460ff1681565b34801561030157600080fd5b5061028a610310366004611c76565b61078e565b34801561032157600080fd5b5061025761084a565b34801561033657600080fd5b5061023f610345366004611c92565b61086b565b34801561035657600080fd5b5061028a610365366004611cab565b610919565b34801561037657600080fd5b5061025760085481565b34801561038c57600080fd5b5061023f610a94565b3480156103a157600080fd5b5060405160098152602001610261565b3480156103bd57600080fd5b50610257610b6c565b3480156103d257600080fd5b5061023f6103e1366004611c92565b610baf565b3480156103f257600080fd5b5061025760075481565b34801561040857600080fd5b5061023f610417366004611c92565b610c5d565b34801561042857600080fd5b5061025760025481565b34801561043e57600080fd5b50600c5461028a90600160a81b900460ff1681565b34801561045f57600080fd5b5061025761046e366004611c0d565b6001600160a01b031660009081526003602052604090205490565b34801561049557600080fd5b5061023f610d4a565b3480156104aa57600080fd5b5061025760015481565b3480156104c057600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610261565b3480156104f257600080fd5b5061023f610501366004611ce8565b610dbe565b34801561051257600080fd5b506000546001600160a01b03166104ce565b34801561053057600080fd5b5060408051808201909152600881526745544850414e444160c01b60208201526102c7565b34801561056157600080fd5b506104ce7f000000000000000000000000e5e51fe2c66c3fe56c1bc471a8778837b7f92b0f81565b34801561059557600080fd5b5061028a6105a4366004611c76565b610e92565b3480156105b557600080fd5b5061023f6105c4366004611c0d565b610ef5565b3480156105d557600080fd5b506000546104ce906001600160a01b031681565b3480156105f557600080fd5b5061023f610604366004611c92565b610f7c565b34801561061557600080fd5b5061023f610624366004611ce8565b61106e565b34801561063557600080fd5b50610257610644366004611d1b565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561067b57600080fd5b5061023f61068a366004611c0d565b611156565b34801561069b57600080fd5b5061023f611240565b3480156106b057600080fd5b50600b546104ce906001600160a01b031681565b3480156106d057600080fd5b5061023f6106df366004611c0d565b6112d4565b6000546001600160a01b031633146107175760405162461bcd60e51b815260040161070e90611d45565b60405180910390fd5b600c805460ff60a81b1916600160a81b8415150217905561073a6009600a611e77565b6107449082611e86565b600d556040518190831515907fd896c9007bf8dc883f6b125322395dddc87bf825aed2e302315071c66e0d5dd990600090a35050565b60006107888260001961078e565b92915050565b60006001600160a01b0383166107e65760405162461bcd60e51b815260206004820152601b60248201527f5370656e64657220697320746865207a65726f20616464726573730000000000604482015260640161070e565b3360008181526004602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350600192915050565b60006108586009600a611e77565b61086690633b9aca00611e86565b905090565b6000546001600160a01b031633146108955760405162461bcd60e51b815260040161070e90611d45565b60638111156108e65760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e20393925000000604482015260640161070e565b600881905560405181907f63d66ef9bcebaeaa6f4eb61e9327d3f4098c923aa98a5fc5326a53f2e145f4f290600090a250565b60006001600160a01b0384166109715760405162461bcd60e51b815260206004820152601a60248201527f53656e64657220697320746865207a65726f2061646472657373000000000000604482015260640161070e565b6001600160a01b0383166109c75760405162461bcd60e51b815260206004820152601d60248201527f526563697069656e7420697320746865207a65726f2061646472657373000000604482015260640161070e565b6001600160a01b03841660009081526004602090815260408083203384529091529020546000198114610a7e5782811015610a555760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161070e565b6001600160a01b0385166000908152600460209081526040808320338452909152902083820390555b610a898585856113b4565b9150505b9392505050565b6000546001600160a01b03163314610abe5760405162461bcd60e51b815260040161070e90611d45565b600c54600160a01b900460ff1615610b185760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920456e61626c65642e0000000000000000604482015260640161070e565b600c805460ff60a01b1916600160a01b9081179182905543600981905560405190929190910460ff161515907f07c24843b569ea20bd3c266fb17047bdd751e44ea3afa2150f231b90bc669f4d90600090a3565b600060644244604051602001610b8c929190918252602082015260400190565b6040516020818303038152906040528051906020012060001c6108669190611eb3565b6000546001600160a01b03163314610bd95760405162461bcd60e51b815260040161070e90611d45565b6005811115610c2a5760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e206e6f74206265206d6f7265207468616e20352500000000604482015260640161070e565b600781905560405181907f11953a0453d6e2e337ab856b9de1f4818ffa2a51f3a9c12f924e2a043ae37f6d90600090a250565b6000546001600160a01b03163314610c875760405162461bcd60e51b815260040161070e90611d45565b6005811015610ce75760405162461bcd60e51b815260206004820152602660248201527f4d61782077616c6c65742063616e6e6f6e74206265206c657373207468616e2060448201526518171a92901760d11b606482015260840161070e565b6103e881610cf76009600a611e77565b610d0590633b9aca00611e86565b610d0f9190611e86565b610d199190611ec7565b60028190556040517ff8c5ab682312267665fe2e7afb06ce5e015dae6e8e8b89ebf47de5312c153c3590600090a250565b6000546001600160a01b03163314610d745760405162461bcd60e51b815260040161070e90611d45565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610de85760405162461bcd60e51b815260040161070e90611d45565b6001600160a01b038216610e3e5760405162461bcd60e51b815260206004820152601a60248201527f486f6c64657220697320746865207a65726f2061646472657373000000000000604482015260640161070e565b6001600160a01b038216600081815260066020526040808220805460ff191685151590811790915590519092917f5422e85d9bcca047954218b93afb25e9bc2afe9bdc19e7297968b2c919c8377591a35050565b60006001600160a01b038316610eea5760405162461bcd60e51b815260206004820152601d60248201527f526563697069656e7420697320746865207a65726f2061646472657373000000604482015260640161070e565b610a8d3384846113b4565b6000546001600160a01b03163314610f1f5760405162461bcd60e51b815260040161070e90611d45565b600a546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567490600090a3600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610fa65760405162461bcd60e51b815260040161070e90611d45565b600581101561100b5760405162461bcd60e51b815260206004820152602b60248201527f4d6178207472616e73616374696f6e2063616e6e6f6e74206265206c6573732060448201526a3a3430b71018171a92901760a91b606482015260840161070e565b6103e88161101b6009600a611e77565b61102990633b9aca00611e86565b6110339190611e86565b61103d9190611ec7565b60018190556040517f3e20d7489efd636786bf4e1e0eb2addeb10f5435dc95fff56528021af35c504190600090a250565b6000546001600160a01b031633146110985760405162461bcd60e51b815260040161070e90611d45565b6001600160a01b0382166110ee5760405162461bcd60e51b815260206004820152601a60248201527f486f6c64657220697320746865207a65726f2061646472657373000000000000604482015260640161070e565b6001600160a01b0382166000818152600560209081526040808320805486151560ff199182168117909255600690935281842080549093168117909255519092917f4aaa6e45cd52263caf7af003089cdf83d1751392e7edf53c1b5542d94f39734691a35050565b6000546001600160a01b031633146111805760405162461bcd60e51b815260040161070e90611d45565b6001600160a01b0381166111e55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161070e565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461126a5760405162461bcd60e51b815260040161070e90611d45565b6112766009600a611e77565b61128490633b9aca00611e86565b6002556112936009600a611e77565b6112a190633b9aca00611e86565b60018190556002546040517fe5ca8724fdb01105b3129a1959a63ecdb2638b93266579bbcca33b66c737faa990600090a3565b6000546001600160a01b031633146112fe5760405162461bcd60e51b815260040161070e90611d45565b6001600160a01b03811661136a5760405162461bcd60e51b815260206004820152602d60248201527f4d61726b6574696e67206665652072656365697665722063616e6e6f7420626560448201526c207a65726f206164647265737360981b606482015260840161070e565b600a80546001600160a01b0319166001600160a01b0383169081179091556040517f5e6894395320346b3bc32e11af639cec1465f714c0956a0f2ab9c0ec0084364190600090a250565b600e5460009060ff16156113d4576113cd848484611770565b9050610a8d565b6000546001600160a01b0385811691161461143957600c54600160a01b900460ff166114395760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161070e565b611443848361183f565b6001600160a01b0384166000908152600360205260409020548281101561147c5760405162461bcd60e51b815260040161070e90611edb565b6001600160a01b03851660009081526005602052604081205460ff16806114bb57506001600160a01b03851660009081526005602052604090205460ff165b6114cf576114ca8685876118ac565b6114d1565b835b90506114e56000546001600160a01b031690565b6001600160a01b0316866001600160a01b0316141580156115a257506001600160a01b038516301480159061152557506001600160a01b03851661dead14155b801561156357507f000000000000000000000000e5e51fe2c66c3fe56c1bc471a8778837b7f92b0f6001600160a01b0316856001600160a01b031614155b801561157d5750600a546001600160a01b03868116911614155b80156115a257506001600160a01b03851660009081526006602052604090205460ff16155b15611643576001600160a01b0385166000908152600360205260409020546002546115cd8383611f21565b11156116415760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000606482015260840161070e565b505b43600954141580156116665750600d543060009081526003602052604090205410155b801561167b5750600c54600160a81b900460ff165b801561168a5750600e5460ff16155b80156116c757507f000000000000000000000000e5e51fe2c66c3fe56c1bc471a8778837b7f92b0f6001600160a01b0316856001600160a01b0316145b156116d9576116d46119d7565b436009555b6001600160a01b03808716600090815260036020526040808220878603905591871681529081208054839290611710908490611f21565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161175c91815260200190565b60405180910390a350600195945050505050565b6001600160a01b038316600090815260036020526040812054828110156117a95760405162461bcd60e51b815260040161070e90611edb565b6001600160a01b038086166000908152600360205260408082208685039055918616815290812080548592906117e0908490611f21565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161182c91815260200190565b60405180910390a3506001949350505050565b6001548111158061186857506001600160a01b03821660009081526006602052604090205460ff165b6118a85760405162461bcd60e51b8152602060048201526011602482015270151e08131a5b5a5d08115e18d959591959607a1b604482015260640161070e565b5050565b600080806001600160a01b037f000000000000000000000000e5e51fe2c66c3fe56c1bc471a8778837b7f92b0f811690851603611904576064600854866118f39190611e86565b6118fd9190611ec7565b9150611952565b7f000000000000000000000000e5e51fe2c66c3fe56c1bc471a8778837b7f92b0f6001600160a01b0316866001600160a01b03160361194d576064600754866118f39190611e86565b600091505b81156119cd573060009081526003602052604081208054849290611977908490611f21565b909155505060405182815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36119c68286611f34565b9050610a89565b5092949350505050565b600e805460ff19166001179055600d546040805160028082526060820183526000926020830190803683370190505090503081600081518110611a1c57611a1c611f47565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611a7057611a70611f47565b6001600160a01b039283166020918202929092010152600b5460405163791ac94760e01b815291169063791ac94790611ab6908590600090869030904290600401611f5d565b600060405180830381600087803b158015611ad057600080fd5b505af1158015611ae4573d6000803e3d6000fd5b5050600a54604051479350600092506001600160a01b039091169083908381818185875af1925050503d8060008114611b39576040519150601f19603f3d011682016040523d82523d6000602084013e611b3e565b606091505b5050905080611ba75760405162461bcd60e51b815260206004820152602f60248201527f4661696c656420746f2073656e6420657468657220746f204d61726b6574696e60448201526e33902332b2902932b1b2b4bb32b91760891b606482015260840161070e565b5050600e805460ff191690555050565b80358015158114611bc757600080fd5b919050565b60008060408385031215611bdf57600080fd5b611be883611bb7565b946020939093013593505050565b80356001600160a01b0381168114611bc757600080fd5b600060208284031215611c1f57600080fd5b610a8d82611bf6565b602081526000825180602084015260005b81811015611c565760208186018101516040868401015201611c39565b506000604082850101526040601f19601f83011684010191505092915050565b60008060408385031215611c8957600080fd5b611be883611bf6565b600060208284031215611ca457600080fd5b5035919050565b600080600060608486031215611cc057600080fd5b611cc984611bf6565b9250611cd760208501611bf6565b929592945050506040919091013590565b60008060408385031215611cfb57600080fd5b611d0483611bf6565b9150611d1260208401611bb7565b90509250929050565b60008060408385031215611d2e57600080fd5b611d3783611bf6565b9150611d1260208401611bf6565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6001815b6001841115611dcb57808504811115611daf57611daf611d7a565b6001841615611dbd57908102905b60019390931c928002611d94565b935093915050565b600082611de257506001610788565b81611def57506000610788565b8160018114611e055760028114611e0f57611e2b565b6001915050610788565b60ff841115611e2057611e20611d7a565b50506001821b610788565b5060208310610133831016604e8410600b8410161715611e4e575081810a610788565b611e5b6000198484611d90565b8060001904821115611e6f57611e6f611d7a565b029392505050565b6000610a8d60ff841683611dd3565b808202811582820484141761078857610788611d7a565b634e487b7160e01b600052601260045260246000fd5b600082611ec257611ec2611e9d565b500690565b600082611ed657611ed6611e9d565b500490565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b8082018082111561078857610788611d7a565b8181038181111561078857610788611d7a565b634e487b7160e01b600052603260045260246000fd5b600060a0820187835286602084015260a0604084015280865180835260c08501915060208801925060005b81811015611faf5783516001600160a01b0316835260209384019390920191600101611f88565b50506001600160a01b03959095166060840152505060800152939250505056fea26469706673582212209dd6be2e1732ceea5c9f57a61fc1a982f33e98ad1b673d1afe07e4102a9ca3a264736f6c634300081a0033

Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.