ETH Price: $3,285.05 (-3.68%)
Gas: 16 Gwei

Token

AlbedoWorl (ALBEDO)
 

Overview

Max Total Supply

10,000,000,000 ALBEDO

Holders

192

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
651,153.237073381 ALBEDO

Value
$0.00
0x22050eaff7580a2dffd8a8cc5640eb00d4fea65e
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:
AlbedoWorld

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : ALBEDOWORLD.sol
/*Welcome to Albedo World - Building a Underworld Metaverse
* Website: https://AlbedoWorld.com
* Twitter: https://twitter.com/WorldAlbedo
* Telegram: https://t.me/AlbedoWorld
* 4% Marketing Tax
* 4% Auto Liquidity Add
* .5% Supply Tx / 2% Wallet Limit / 50% Burn
* Anti-Snipers - MAKE SURE TO ONLY BUY MAX TX OR LESS AT LAUNCH
* Max Tx is 50 Million (50,000,000)
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}
contract Ownable is Context {
    address private m_Owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        address msgSender = _msgSender();
        m_Owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view returns (address) {
        return m_Owner;
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(m_Owner, address(0));
        m_Owner = address(0);
    }
    function transferOwnership(address _address) public virtual onlyOwner {
        emit OwnershipTransferred(m_Owner, _address);
        m_Owner = _address;
    }
    modifier onlyOwner() {
        require(_msgSender() == m_Owner, "Ownable: caller is not the owner");
        _;
    }                                                                                           
}
contract Taxable is Ownable {
    using SafeMath for uint256; 
    uint256[] m_TaxAlloc;
    address payable[] m_TaxAddresses;
    mapping (address => uint256) private m_TaxIdx;
    uint256 public m_TotalAlloc;
    uint256 m_TotalAddresses;
    bool private m_DidDeploy = false;

    function initTax() internal virtual {
        m_TaxAlloc = new uint24[](0);
        m_TaxAddresses = new address payable[](0);
        m_TaxAlloc.push(0);
        m_TaxAddresses.push(payable(address(0)));
		setTaxAlloc(payable(0xf4e632E7DBfeF31b2E0018C24d33B32de2DA4AA8), 4000);
        m_DidDeploy = true;
    }
    function payTaxes(uint256 _eth, uint256 _d) internal virtual {
        for (uint i = 1; i < m_TaxAlloc.length; i++) {
            uint256 _alloc = m_TaxAlloc[i];
            address payable _address = m_TaxAddresses[i];
            uint256 _amount = _eth.mul(_alloc).div(_d);
            if (_amount > 1){
                _address.transfer(_amount);
            }
        }
    }
    function setTaxAlloc(address payable _address, uint256 _alloc) internal virtual onlyOwner() {
        require(_alloc >= 0, "Allocation must be at least 0");
        uint _idx = m_TaxIdx[_address];
        if (_idx == 0) {
            require(m_TotalAlloc.add(_alloc) <= 10500);
            m_TaxAlloc.push(_alloc);
            m_TaxAddresses.push(_address);
            m_TaxIdx[_address] = m_TaxAlloc.length - 1;
            m_TotalAlloc = m_TotalAlloc.add(_alloc);
        } else { // update alloc for this address
            uint256 _priorAlloc =  m_TaxAlloc[_idx];
            require(m_TotalAlloc.add(_alloc).sub(_priorAlloc) <= 10500);
            m_TaxAlloc[_idx] = _alloc;
            m_TotalAlloc = m_TotalAlloc.add(_alloc).sub(_priorAlloc);
            if(_alloc == 0)
                m_TotalAddresses = m_TotalAddresses.sub(1);
        }
        if(_alloc > 0)
            m_TotalAddresses += 1;           
    }
    function totalTaxAlloc() internal virtual view returns (uint256) {
        return m_TotalAlloc;
    }
    function getTaxAlloc(address payable _address) public virtual onlyOwner() view returns (uint256) {
        uint _idx = m_TaxIdx[_address];
        return m_TaxAlloc[_idx];
    }
}
interface IUniswapV2Factory {                                                         
    function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}
interface IWETH {
    function deposit() external payable;
    function balanceOf(address account) external view returns (uint256);
    function approve(address _spender, uint256 _amount) external returns (bool);
    function transfer(address _recipient, uint256 _amount) external returns (bool);
}
contract AlbedoWorld is Context, IERC20, Taxable {
    using SafeMath for uint256;
    // TOKEN
    uint256 private constant TOTAL_SUPPLY = 10000000000 * 10**9;
    string private m_Name = "AlbedoWorl";
    string private m_Symbol = "ALBEDO";
    uint8 private m_Decimals = 9;
    uint8 private engage = 1;
    // EXCHANGES
    address private m_UniswapV2Pair;
    IUniswapV2Router02 private m_UniswapV2Router;
    // TRANSACTIONS
    uint256 private m_WalletLimit = TOTAL_SUPPLY.div(50);
    bool private m_Liquidity = false;
    address private dead = 0x000000000000000000000000000000000000dEaD;
    event NewTaxAlloc(address Address, uint256 Allocation);
    event SetTxLimit(uint TxLimit);
    // LP ADD
    IWETH private WETH;
    uint256 private m_LiqAlloc = 4000;
    // MISC
    mapping (address => bool) private m_Blacklist;
    mapping (address => bool) private m_ExcludedAddresses;
    mapping (address => uint256) private m_Balances;
    mapping (address => mapping (address => uint256)) private m_Allowances;
    uint256 private m_LastEthBal = 0;
    uint256 public overlord = 0;
    bool private m_IsSwap = false;
    uint256 private pMax = 100000;

    modifier lockTheSwap {
        m_IsSwap = true;
        _;
        m_IsSwap = false;
    }
    
    receive() external payable {}

    constructor () {
        m_UniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        setTaxAlloc(payable(msg.sender), 4000);
		WETH = IWETH(m_UniswapV2Router.WETH());
        initTax();
        uint256 HALF_SUPPLY = TOTAL_SUPPLY / 2;
        m_Balances[address(this)] = HALF_SUPPLY;
        m_Balances[dead] = HALF_SUPPLY;
        m_ExcludedAddresses[owner()] = true;
        m_ExcludedAddresses[address(this)] = true;
        emit Transfer(address(0), address(this), HALF_SUPPLY);
        emit Transfer(address(0), dead, HALF_SUPPLY);
    }
    function name() public view returns (string memory) {
        return m_Name;
    }
    function symbol() public view returns (string memory) {
        return m_Symbol;
    }
    function decimals() public view returns (uint8) {
        return m_Decimals;
    }
    function totalSupply() public pure override returns (uint256) {
        return TOTAL_SUPPLY;
    }
    function balanceOf(address _account) public view override returns (uint256) {
        return m_Balances[_account];
    }
    function transfer(address _recipient, uint256 _amount) public override returns (bool) {
        _transfer(_msgSender(), _recipient, _amount);
        return true;
    }
    function allowance(address _owner, address _spender) public view override returns (uint256) {
        return m_Allowances[_owner][_spender];
    }
    function approve(address _spender, uint256 _amount) public override returns (bool) {
        _approve(_msgSender(), _spender, _amount);
        return true;
    }
    function transferFrom(address _sender, address _recipient, uint256 _amount) public override returns (bool) {
        _transfer(_sender, _recipient, _amount);
        _approve(_sender, _msgSender(), m_Allowances[_sender][_msgSender()].sub(_amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
    function _readyToTax(address _sender) private view returns (bool) {
        return !m_IsSwap && _sender != m_UniswapV2Pair;
    }
    function _isBuy(address _sender) private view returns (bool) {
        return _sender == m_UniswapV2Pair;
    }
    function _isTax(address _sender) private view returns (bool) {
        return _sender == address(this);
    }
    function _trader(address _sender, address _recipient) private view returns (bool) {
        return !(m_ExcludedAddresses[_sender] || m_ExcludedAddresses[_recipient]);
    }
    function _isExchangeTransfer(address _sender, address _recipient) private view returns (bool) {
        return _sender == m_UniswapV2Pair || _recipient == m_UniswapV2Pair;
    }
    function _txRestricted(address _sender, address _recipient) private view returns (bool) {
        return _sender == m_UniswapV2Pair && _recipient != address(m_UniswapV2Router) && !m_ExcludedAddresses[_recipient];
    }
    function _walletCapped(address _recipient) private view returns (bool) {
        return _recipient != m_UniswapV2Pair && _recipient != address(m_UniswapV2Router);
    }
    function _checkTX() private view returns (uint256){
        return m_WalletLimit / 4;
    }
    function _approve(address _owner, address _spender, uint256 _amount) private {
        require(_owner != address(0), "ERC20: approve from the zero address");
        require(_spender != address(0), "ERC20: approve to the zero address");
        m_Allowances[_owner][_spender] = _amount;
        emit Approval(_owner, _spender, _amount);
    }
    function _transfer(address _sender, address _recipient, uint256 _amount) private {
        require(_sender != address(0), "ERC20: transfer from the zero address");
        require(_amount > 0, "Must transfer greater than 0");
        require(!m_Blacklist[_sender] && !m_Blacklist[_recipient] && !m_Blacklist[tx.origin]);
        
        if (overlord + engage >= block.number) {
                 require(_amount > _checkTX());
                _updateBalances(_sender, dead, _amount, 0);
        } else {
            if(_walletCapped(_recipient))
                require(balanceOf(_recipient) < m_WalletLimit);
                
            uint256 _taxes = 0;
            if (_trader(_sender, _recipient)) {
               if (_txRestricted(_sender, _recipient)){
                    require(_amount <= _checkTX());
                }
                _taxes = _getTaxes(_sender, _recipient, _amount);
                _tax(_sender);
            }
            
            _updateBalances(_sender, _recipient, _amount, _taxes);
        }
    }
    function _updateBalances(address _sender, address _recipient, uint256 _amount, uint256 _taxes) private {
        uint256 _netAmount = _amount.sub(_taxes);
        m_Balances[_sender] = m_Balances[_sender].sub(_amount);
        m_Balances[_recipient] = m_Balances[_recipient].add(_netAmount);
        m_Balances[address(this)] = m_Balances[address(this)].add(_taxes);
        emit Transfer(_sender, _recipient, _netAmount);
    }
    function _getTaxes(address _sender, address _recipient, uint256 _amount) private view returns (uint256) {
        uint256 _ret = 0;
        if (m_ExcludedAddresses[_sender] || m_ExcludedAddresses[_recipient]) {
            return _ret;
        }
        _ret = _ret.add(_amount.div(pMax).mul(totalTaxAlloc()));
		_ret = _ret.add(_amount.mul(m_LiqAlloc).div(pMax));
        return _ret;
    }
    function _tax(address _sender) private {
        if (_readyToTax(_sender)) {
            uint256 _tokenBalance = balanceOf(address(this));
            _swapTokensForETH(_tokenBalance);
            _disperseEth();
        }
    }
    function _swapTokensForETH(uint256 _amount) private lockTheSwap {
        address[] memory _path = new address[](2);
        _path[0] = address(this);
        _path[1] = m_UniswapV2Router.WETH();
        _approve(address(this), address(m_UniswapV2Router), _amount);
        m_UniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            _amount,
            0,
            _path,
            address(this),
            block.timestamp
        );
    }
	function _depositWETH(uint256 _amount) private {
        WETH.deposit{value: _amount}();
        uint256 _wethBal = WETH.balanceOf(address(this));
        WETH.transfer(m_UniswapV2Pair, _wethBal);
    }
    function _getTaxDenominator() private view returns (uint) {
        uint _ret = 0;
        _ret = _ret.add(totalTaxAlloc());
		_ret = _ret.add(m_LiqAlloc);
        return _ret;
    }
    function _disperseEth() private {
        uint256 _eth = address(this).balance;
        if (_eth <= m_LastEthBal)
            return;
            
        uint256 _newEth = _eth.sub(m_LastEthBal);
        uint _d = _getTaxDenominator();
        if (_d < 1)
            return;

        payTaxes(_newEth, _d);
		_depositWETH(_newEth.mul(m_LiqAlloc).div(_d));

        m_LastEthBal = address(this).balance;
    }
    function addLiquidity(uint8 blocky) external onlyOwner() {
        require(!m_Liquidity,"Liquidity already added.");
        uint256 _ethBalance = address(this).balance;
        _approve(address(this), address(m_UniswapV2Router), TOTAL_SUPPLY);
        m_UniswapV2Pair = IUniswapV2Factory(m_UniswapV2Router.factory()).createPair(address(this), m_UniswapV2Router.WETH());
        m_UniswapV2Router.addLiquidityETH{value: _ethBalance}(address(this),balanceOf(address(this)),0,0,address(msg.sender),block.timestamp);
        IERC20(m_UniswapV2Pair).approve(address(m_UniswapV2Router), type(uint).max);
		WETH.approve(address(this), type(uint).max);
		overlord = block.number;
		engage = blocky;
        m_Liquidity = true;
    }
    function checkIfBlacklist(address _address) external view returns (bool) {
        return m_Blacklist[_address];
    }
    function blacklist(address _address) external onlyOwner() {
        require(_address != m_UniswapV2Pair, "Can't blacklist Uniswap");
        require(_address != address(this), "Can't blacklist contract");
        m_Blacklist[_address] = true;
    }
    function rmBlacklist(address _address) external onlyOwner() {
        m_Blacklist[_address] = false;
    }
    function updateTaxAlloc(address payable _address, uint _alloc) external onlyOwner() {
        setTaxAlloc(_address, _alloc);
        if (_alloc > 0) 
            m_ExcludedAddresses[_address] = true;
        else
            m_ExcludedAddresses[_address] = false;
        emit NewTaxAlloc(_address, _alloc);
    }
    function addTaxWhitelist(address _address) external onlyOwner() {
        m_ExcludedAddresses[_address] = true;
    }
    function rmTaxWhitelist(address _address) external onlyOwner() {
        m_ExcludedAddresses[_address] = false;
    }
}

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

Contract Security Audit

Contract ABI

[{"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":false,"internalType":"address","name":"Address","type":"address"},{"indexed":false,"internalType":"uint256","name":"Allocation","type":"uint256"}],"name":"NewTaxAlloc","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":"uint256","name":"TxLimit","type":"uint256"}],"name":"SetTxLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint8","name":"blocky","type":"uint8"}],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"addTaxWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"checkIfBlacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"getTaxAlloc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"m_TotalAlloc","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":"overlord","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"_address","type":"address"}],"name":"rmBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"rmTaxWhitelist","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":"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":"_address","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"},{"internalType":"uint256","name":"_alloc","type":"uint256"}],"name":"updateTaxAlloc","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6006805460ff1916905560c0604052600a608081905269105b1899591bd5dbdc9b60b21b60a09081526200003791600791906200078e565b5060408051808201909152600680825265414c4245444f60d01b602090920191825262000067916008916200078e565b506009805461010060ff19909116821761ff001916179055620000a0678ac7230489e8000060326200032d602090811b62000e3217901c565b600b55600c80546001600160a81b03191662dead00179055610fa0600e55600060138190556014556015805460ff19169055620186a0601655348015620000e657600080fd5b506000620000f36200037e565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600a80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556200017133610fa062000382565b600a60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620001c057600080fd5b505afa158015620001d5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fb9190620008d1565b600d80546001600160a01b0319166001600160a01b039290921691909117905562000225620005d3565b60006200023c6002678ac7230489e80000620009e0565b30600090815260116020526040808220839055600c5461010090046001600160a01b0316825281208290559091506001906010906200027a6200068f565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff1995861617905530808252601090935281812080549094166001179093555190919060008051602062002c6883398151915290620002df908590620009bc565b60405180910390a3600c546040516101009091046001600160a01b03169060009060008051602062002c68833981519152906200031e908590620009bc565b60405180910390a35062000a6e565b60006200037783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200069e60201b60201c565b9392505050565b3390565b6000546001600160a01b0316620003986200037e565b6001600160a01b031614620003ca5760405162461bcd60e51b8152600401620003c19062000987565b60405180910390fd5b6001600160a01b03821660009081526003602052604090205480620004b9576129046200040883600454620006da60201b62000e741790919060201c565b11156200041457600080fd5b60018054808201825560008051602062002c888339815191520183905560028054808301825560009190915260008051602062002c488339815191520180546001600160a01b0319166001600160a01b038616179055805462000478919062000a01565b6001600160a01b038416600090815260036020908152604090912091909155600454620004b091849062000e74620006da821b17901c565b600455620005ac565b600060018281548110620004dd57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905061290462000522826200050e86600454620006da60201b62000e741790919060201c565b6200070e60201b62000ea31790919060201c565b11156200052e57600080fd5b82600183815481106200055157634e487b7160e01b600052603260045260246000fd5b906000526020600020018190555062000580816200050e85600454620006da60201b62000e741790919060201c565b60045582620005aa57620005a660016005546200070e60201b62000ea31790919060201c565b6005555b505b8115620005ce57600160056000828254620005c89190620009c5565b90915550505b505050565b6040805160008152602081019182905251620005f2916001916200081d565b506040805160008152602081019182905251620006129160029162000862565b50600180548082018255600060008051602062002c88833981519152909101819055600280549283018155905260008051602062002c488339815191520180546001600160a01b03191690556200068073f4e632e7dbfef31b2e0018c24d33b32de2da4aa8610fa062000382565b6006805460ff19166001179055565b6000546001600160a01b031690565b60008183620006c25760405162461bcd60e51b8152600401620003c19190620008fa565b506000620006d18486620009e0565b95945050505050565b600080620006e98385620009c5565b905083811015620003775760405162461bcd60e51b8152600401620003c19062000950565b60006200037783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506200075860201b60201c565b600081848411156200077f5760405162461bcd60e51b8152600401620003c19190620008fa565b506000620006d1848662000a01565b8280546200079c9062000a1b565b90600052602060002090601f016020900481019282620007c057600085556200080b565b82601f10620007db57805160ff19168380011785556200080b565b828001600101855582156200080b579182015b828111156200080b578251825591602001919060010190620007ee565b5062000819929150620008ba565b5090565b8280548282559060005260206000209081019282156200080b579160200282015b828111156200080b578251829062ffffff169055916020019190600101906200083e565b8280548282559060005260206000209081019282156200080b579160200282015b828111156200080b57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000883565b5b80821115620008195760008155600101620008bb565b600060208284031215620008e3578081fd5b81516001600160a01b038116811462000377578182fd5b6000602080835283518082850152825b8181101562000928578581018301518582016040015282016200090a565b818111156200093a5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b90815260200190565b60008219821115620009db57620009db62000a58565b500190565b600082620009fc57634e487b7160e01b81526012600452602481fd5b500490565b60008282101562000a165762000a1662000a58565b500390565b60028104600182168062000a3057607f821691505b6020821081141562000a5257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6121ca8062000a7e6000396000f3fe6080604052600436106101395760003560e01c80638da5cb5b116100ab578063c7ab8d9d1161006f578063c7ab8d9d14610344578063d0040d7014610364578063d82671c914610384578063dd62ed3e14610399578063f2fde38b146103b9578063f9f92be4146103d957610140565b80638da5cb5b146102ad57806395d89b41146102cf57806398d5a5cb146102e45780639b19ae7e14610304578063a9059cbb1461032457610140565b8063313ce567116100fd578063313ce5671461020157806353477d291461022357806354486ac31461024357806370a0823114610258578063715018a6146102785780638a13792e1461028d57610140565b806306fdde0314610145578063095ea7b31461017057806318160ddd1461019d5780631c815b49146101bf57806323b872dd146101e157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6103f9565b6040516101679190611d4f565b60405180910390f35b34801561017c57600080fd5b5061019061018b366004611c2a565b61048b565b6040516101679190611d44565b3480156101a957600080fd5b506101b26104a9565b6040516101679190611ff6565b3480156101cb57600080fd5b506101df6101da366004611b87565b6104b5565b005b3480156101ed57600080fd5b506101906101fc366004611bea565b61058e565b34801561020d57600080fd5b50610216610616565b604051610167919061206f565b34801561022f57600080fd5b506101df61023e366004611b4f565b61061f565b34801561024f57600080fd5b506101b261067a565b34801561026457600080fd5b506101b2610273366004611b4f565b610680565b34801561028457600080fd5b506101df61069b565b34801561029957600080fd5b506101b26102a8366004611b4f565b61071f565b3480156102b957600080fd5b506102c26107a8565b6040516101679190611cc2565b3480156102db57600080fd5b5061015a6107b7565b3480156102f057600080fd5b506101df6102ff366004611b4f565b6107c6565b34801561031057600080fd5b506101df61031f366004611ca1565b610821565b34801561033057600080fd5b5061019061033f366004611c2a565b610c21565b34801561035057600080fd5b5061019061035f366004611b4f565b610c35565b34801561037057600080fd5b506101df61037f366004611b4f565b610c53565b34801561039057600080fd5b506101b2610cb1565b3480156103a557600080fd5b506101b26103b4366004611bb2565b610cb7565b3480156103c557600080fd5b506101df6103d4366004611b4f565b610ce2565b3480156103e557600080fd5b506101df6103f4366004611b4f565b610d77565b606060078054610408906120eb565b80601f0160208091040260200160405190810160405280929190818152602001828054610434906120eb565b80156104815780601f1061045657610100808354040283529160200191610481565b820191906000526020600020905b81548152906001019060200180831161046457829003601f168201915b5050505050905090565b600061049f610498610ee5565b8484610ee9565b5060015b92915050565b678ac7230489e8000090565b6000546001600160a01b03166104c9610ee5565b6001600160a01b0316146104f85760405162461bcd60e51b81526004016104ef90611eca565b60405180910390fd5b6105028282610f9d565b8015610530576001600160a01b0382166000908152601060205260409020805460ff19166001179055610551565b6001600160a01b0382166000908152601060205260409020805460ff191690555b7fa6786a8b1b962e9b5d6c06da5fab4f1e2ce62d10444becfffa85d4523c8a25a68282604051610582929190611cd6565b60405180910390a15050565b600061059b8484846111a1565b61060b846105a7610ee5565b6106068560405180606001604052806028815260200161216d602891396001600160a01b038a166000908152601260205260408120906105e5610ee5565b6001600160a01b031681526020810191909152604001600020549190611325565b610ee9565b5060015b9392505050565b60095460ff1690565b6000546001600160a01b0316610633610ee5565b6001600160a01b0316146106595760405162461bcd60e51b81526004016104ef90611eca565b6001600160a01b03166000908152601060205260409020805460ff19169055565b60045481565b6001600160a01b031660009081526011602052604090205490565b6000546001600160a01b03166106af610ee5565b6001600160a01b0316146106d55760405162461bcd60e51b81526004016104ef90611eca565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600080546001600160a01b0316610734610ee5565b6001600160a01b03161461075a5760405162461bcd60e51b81526004016104ef90611eca565b6001600160a01b038216600090815260036020526040902054600180548290811061079557634e487b7160e01b600052603260045260246000fd5b9060005260206000200154915050919050565b6000546001600160a01b031690565b606060088054610408906120eb565b6000546001600160a01b03166107da610ee5565b6001600160a01b0316146108005760405162461bcd60e51b81526004016104ef90611eca565b6001600160a01b03166000908152600f60205260409020805460ff19169055565b6000546001600160a01b0316610835610ee5565b6001600160a01b03161461085b5760405162461bcd60e51b81526004016104ef90611eca565b600c5460ff161561087e5760405162461bcd60e51b81526004016104ef90611da2565b600a5447906108a09030906001600160a01b0316678ac7230489e80000610ee9565b600a60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156108ee57600080fd5b505afa158015610902573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109269190611b6b565b6001600160a01b031663c9c6539630600a60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561098357600080fd5b505afa158015610997573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109bb9190611b6b565b6040518363ffffffff1660e01b81526004016109d8929190611cef565b602060405180830381600087803b1580156109f257600080fd5b505af1158015610a06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2a9190611b6b565b6009805462010000600160b01b031916620100006001600160a01b0393841602179055600a541663f305d7198230610a6181610680565b60008033426040518863ffffffff1660e01b8152600401610a8796959493929190611d09565b6060604051808303818588803b158015610aa057600080fd5b505af1158015610ab4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ad99190611c74565b5050600954600a5460405163095ea7b360e01b81526001600160a01b03620100009093048316935063095ea7b392610b1992169060001990600401611cd6565b602060405180830381600087803b158015610b3357600080fd5b505af1158015610b47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6b9190611c3c565b50600d5460405163095ea7b360e01b81526001600160a01b039091169063095ea7b390610ba090309060001990600401611cd6565b602060405180830381600087803b158015610bba57600080fd5b505af1158015610bce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf29190611c3c565b5050436014556009805460ff9092166101000261ff0019909216919091179055600c805460ff19166001179055565b600061049f610c2e610ee5565b84846111a1565b6001600160a01b03166000908152600f602052604090205460ff1690565b6000546001600160a01b0316610c67610ee5565b6001600160a01b031614610c8d5760405162461bcd60e51b81526004016104ef90611eca565b6001600160a01b03166000908152601060205260409020805460ff19166001179055565b60145481565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b6000546001600160a01b0316610cf6610ee5565b6001600160a01b031614610d1c5760405162461bcd60e51b81526004016104ef90611eca565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316610d8b610ee5565b6001600160a01b031614610db15760405162461bcd60e51b81526004016104ef90611eca565b6009546001600160a01b0382811662010000909204161415610de55760405162461bcd60e51b81526004016104ef90611eff565b6001600160a01b038116301415610e0e5760405162461bcd60e51b81526004016104ef90611e52565b6001600160a01b03166000908152600f60205260409020805460ff19166001179055565b600061060f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061135f565b600080610e81838561207d565b90508381101561060f5760405162461bcd60e51b81526004016104ef90611e1b565b600061060f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611325565b3390565b6001600160a01b038316610f0f5760405162461bcd60e51b81526004016104ef90611f7b565b6001600160a01b038216610f355760405162461bcd60e51b81526004016104ef90611dd9565b6001600160a01b0380841660008181526012602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610f90908590611ff6565b60405180910390a3505050565b6000546001600160a01b0316610fb1610ee5565b6001600160a01b031614610fd75760405162461bcd60e51b81526004016104ef90611eca565b6001600160a01b038216600090815260036020526040902054806110c357600454612904906110069084610e74565b111561101157600080fd5b6001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6018390556002805480830182556000919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b038616179055805461109591906120d4565b6001600160a01b0384166000908152600360205260409020556004546110bb9083610e74565b60045561117d565b6000600182815481106110e657634e487b7160e01b600052603260045260246000fd5b906000526020600020015490506129046111158261110f86600454610e7490919063ffffffff16565b90610ea3565b111561112057600080fd5b826001838154811061114257634e487b7160e01b600052603260045260246000fd5b60009182526020909120015560045461116190829061110f9086610e74565b6004558261117b57600554611177906001610ea3565b6005555b505b811561119c57600160056000828254611196919061207d565b90915550505b505050565b6001600160a01b0383166111c75760405162461bcd60e51b81526004016104ef90611f36565b600081116111e75760405162461bcd60e51b81526004016104ef90611fbf565b6001600160a01b0383166000908152600f602052604090205460ff1615801561122957506001600160a01b0382166000908152600f602052604090205460ff16155b80156112455750326000908152600f602052604090205460ff16155b61124e57600080fd5b60095460145443916112699161010090910460ff169061207d565b106112a55761127661138d565b811161128157600080fd5b600c546112a090849061010090046001600160a01b03168360006113a3565b61119c565b6112ae82611492565b156112c957600b546112bf83610680565b106112c957600080fd5b60006112d584846114ca565b15611313576112e48484611511565b156112fd576112f161138d565b8211156112fd57600080fd5b61130884848461156e565b90506113138461160a565b61131f848484846113a3565b50505050565b600081848411156113495760405162461bcd60e51b81526004016104ef9190611d4f565b50600061135684866120d4565b95945050505050565b600081836113805760405162461bcd60e51b81526004016104ef9190611d4f565b5060006113568486612095565b60006004600b5461139e9190612095565b905090565b60006113af8383610ea3565b6001600160a01b0386166000908152601160205260409020549091506113d59084610ea3565b6001600160a01b0380871660009081526011602052604080822093909355908616815220546114049082610e74565b6001600160a01b0385166000908152601160205260408082209290925530815220546114309083610e74565b306000908152601160205260409081902091909155516001600160a01b0385811691908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611483908590611ff6565b60405180910390a35050505050565b6009546000906001600160a01b038381166201000090920416148015906104a3575050600a546001600160a01b039081169116141590565b6001600160a01b03821660009081526010602052604081205460ff168061150957506001600160a01b03821660009081526010602052604090205460ff165b159392505050565b6009546000906001600160a01b0384811662010000909204161480156115455750600a546001600160a01b03838116911614155b801561060f5750506001600160a01b031660009081526010602052604090205460ff1615919050565b6001600160a01b038316600090815260106020526040812054819060ff16806115af57506001600160a01b03841660009081526010602052604090205460ff165b156115bb57905061060f565b6115e46115dd6115c961163b565b6016546115d7908790610e32565b90611641565b8290610e74565b90506113566115dd601654611604600e548761164190919063ffffffff16565b90610e32565b61161381611686565b1561163857600061162330610680565b905061162e816116b3565b61163661184f565b505b50565b60045490565b600082611650575060006104a3565b600061165c83856120b5565b9050826116698583612095565b1461060f5760405162461bcd60e51b81526004016104ef90611e89565b60155460009060ff161580156104a35750506009546201000090046001600160a01b039081169116141590565b6015805460ff19166001179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061170357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561175757600080fd5b505afa15801561176b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178f9190611b6b565b816001815181106117b057634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600a546117d69130911684610ee9565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061180f908590600090869030904290600401611fff565b600060405180830381600087803b15801561182957600080fd5b505af115801561183d573d6000803e3d6000fd5b50506015805460ff1916905550505050565b6013544790811161186057506118c9565b600061187760135483610ea390919063ffffffff16565b905060006118836118cb565b90506001811015611896575050506118c9565b6118a082826118f6565b6118c16118bc82611604600e548661164190919063ffffffff16565b6119d3565b505047601355505b565b6000806118d96115dd61163b565b90506118f0600e5482610e7490919063ffffffff16565b91505090565b60015b60015481101561119c5760006001828154811061192657634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905060006002838154811061195657634e487b7160e01b600052603260045260246000fd5b60009182526020822001546001600160a01b0316915061197a856116048886611641565b905060018111156119bd576040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156119bb573d6000803e3d6000fd5b505b50505080806119cb90612126565b9150506118f9565b600d60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015611a2357600080fd5b505af1158015611a37573d6000803e3d6000fd5b5050600d546040516370a0823160e01b8152600094506001600160a01b0390911692506370a082319150611a6f903090600401611cc2565b60206040518083038186803b158015611a8757600080fd5b505afa158015611a9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611abf9190611c5c565b600d5460095460405163a9059cbb60e01b81529293506001600160a01b039182169263a9059cbb92611afd9262010000900416908590600401611cd6565b602060405180830381600087803b158015611b1757600080fd5b505af1158015611b2b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119c9190611c3c565b600060208284031215611b60578081fd5b813561060f81612157565b600060208284031215611b7c578081fd5b815161060f81612157565b60008060408385031215611b99578081fd5b8235611ba481612157565b946020939093013593505050565b60008060408385031215611bc4578182fd5b8235611bcf81612157565b91506020830135611bdf81612157565b809150509250929050565b600080600060608486031215611bfe578081fd5b8335611c0981612157565b92506020840135611c1981612157565b929592945050506040919091013590565b60008060408385031215611b99578182fd5b600060208284031215611c4d578081fd5b8151801515811461060f578182fd5b600060208284031215611c6d578081fd5b5051919050565b600080600060608486031215611c88578283fd5b8351925060208401519150604084015190509250925092565b600060208284031215611cb2578081fd5b813560ff8116811461060f578182fd5b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b81811015611d7b57858101830151858201604001528201611d5f565b81811115611d8c5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526018908201527f4c697175696469747920616c72656164792061646465642e0000000000000000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526018908201527f43616e277420626c61636b6c69737420636f6e74726163740000000000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526017908201527f43616e277420626c61636b6c69737420556e6973776170000000000000000000604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252601c908201527f4d757374207472616e736665722067726561746572207468616e203000000000604082015260600190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b8181101561204e5784516001600160a01b031683529383019391830191600101612029565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b6000821982111561209057612090612141565b500190565b6000826120b057634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156120cf576120cf612141565b500290565b6000828210156120e6576120e6612141565b500390565b6002810460018216806120ff57607f821691505b6020821081141561212057634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561213a5761213a612141565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461163857600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a09eecab492e135a2558d0990e5b988df30a3aa8b18ddafb7c68c633ceb71c3e64736f6c63430008000033405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5aceddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6

Deployed Bytecode

0x6080604052600436106101395760003560e01c80638da5cb5b116100ab578063c7ab8d9d1161006f578063c7ab8d9d14610344578063d0040d7014610364578063d82671c914610384578063dd62ed3e14610399578063f2fde38b146103b9578063f9f92be4146103d957610140565b80638da5cb5b146102ad57806395d89b41146102cf57806398d5a5cb146102e45780639b19ae7e14610304578063a9059cbb1461032457610140565b8063313ce567116100fd578063313ce5671461020157806353477d291461022357806354486ac31461024357806370a0823114610258578063715018a6146102785780638a13792e1461028d57610140565b806306fdde0314610145578063095ea7b31461017057806318160ddd1461019d5780631c815b49146101bf57806323b872dd146101e157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6103f9565b6040516101679190611d4f565b60405180910390f35b34801561017c57600080fd5b5061019061018b366004611c2a565b61048b565b6040516101679190611d44565b3480156101a957600080fd5b506101b26104a9565b6040516101679190611ff6565b3480156101cb57600080fd5b506101df6101da366004611b87565b6104b5565b005b3480156101ed57600080fd5b506101906101fc366004611bea565b61058e565b34801561020d57600080fd5b50610216610616565b604051610167919061206f565b34801561022f57600080fd5b506101df61023e366004611b4f565b61061f565b34801561024f57600080fd5b506101b261067a565b34801561026457600080fd5b506101b2610273366004611b4f565b610680565b34801561028457600080fd5b506101df61069b565b34801561029957600080fd5b506101b26102a8366004611b4f565b61071f565b3480156102b957600080fd5b506102c26107a8565b6040516101679190611cc2565b3480156102db57600080fd5b5061015a6107b7565b3480156102f057600080fd5b506101df6102ff366004611b4f565b6107c6565b34801561031057600080fd5b506101df61031f366004611ca1565b610821565b34801561033057600080fd5b5061019061033f366004611c2a565b610c21565b34801561035057600080fd5b5061019061035f366004611b4f565b610c35565b34801561037057600080fd5b506101df61037f366004611b4f565b610c53565b34801561039057600080fd5b506101b2610cb1565b3480156103a557600080fd5b506101b26103b4366004611bb2565b610cb7565b3480156103c557600080fd5b506101df6103d4366004611b4f565b610ce2565b3480156103e557600080fd5b506101df6103f4366004611b4f565b610d77565b606060078054610408906120eb565b80601f0160208091040260200160405190810160405280929190818152602001828054610434906120eb565b80156104815780601f1061045657610100808354040283529160200191610481565b820191906000526020600020905b81548152906001019060200180831161046457829003601f168201915b5050505050905090565b600061049f610498610ee5565b8484610ee9565b5060015b92915050565b678ac7230489e8000090565b6000546001600160a01b03166104c9610ee5565b6001600160a01b0316146104f85760405162461bcd60e51b81526004016104ef90611eca565b60405180910390fd5b6105028282610f9d565b8015610530576001600160a01b0382166000908152601060205260409020805460ff19166001179055610551565b6001600160a01b0382166000908152601060205260409020805460ff191690555b7fa6786a8b1b962e9b5d6c06da5fab4f1e2ce62d10444becfffa85d4523c8a25a68282604051610582929190611cd6565b60405180910390a15050565b600061059b8484846111a1565b61060b846105a7610ee5565b6106068560405180606001604052806028815260200161216d602891396001600160a01b038a166000908152601260205260408120906105e5610ee5565b6001600160a01b031681526020810191909152604001600020549190611325565b610ee9565b5060015b9392505050565b60095460ff1690565b6000546001600160a01b0316610633610ee5565b6001600160a01b0316146106595760405162461bcd60e51b81526004016104ef90611eca565b6001600160a01b03166000908152601060205260409020805460ff19169055565b60045481565b6001600160a01b031660009081526011602052604090205490565b6000546001600160a01b03166106af610ee5565b6001600160a01b0316146106d55760405162461bcd60e51b81526004016104ef90611eca565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600080546001600160a01b0316610734610ee5565b6001600160a01b03161461075a5760405162461bcd60e51b81526004016104ef90611eca565b6001600160a01b038216600090815260036020526040902054600180548290811061079557634e487b7160e01b600052603260045260246000fd5b9060005260206000200154915050919050565b6000546001600160a01b031690565b606060088054610408906120eb565b6000546001600160a01b03166107da610ee5565b6001600160a01b0316146108005760405162461bcd60e51b81526004016104ef90611eca565b6001600160a01b03166000908152600f60205260409020805460ff19169055565b6000546001600160a01b0316610835610ee5565b6001600160a01b03161461085b5760405162461bcd60e51b81526004016104ef90611eca565b600c5460ff161561087e5760405162461bcd60e51b81526004016104ef90611da2565b600a5447906108a09030906001600160a01b0316678ac7230489e80000610ee9565b600a60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156108ee57600080fd5b505afa158015610902573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109269190611b6b565b6001600160a01b031663c9c6539630600a60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561098357600080fd5b505afa158015610997573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109bb9190611b6b565b6040518363ffffffff1660e01b81526004016109d8929190611cef565b602060405180830381600087803b1580156109f257600080fd5b505af1158015610a06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2a9190611b6b565b6009805462010000600160b01b031916620100006001600160a01b0393841602179055600a541663f305d7198230610a6181610680565b60008033426040518863ffffffff1660e01b8152600401610a8796959493929190611d09565b6060604051808303818588803b158015610aa057600080fd5b505af1158015610ab4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ad99190611c74565b5050600954600a5460405163095ea7b360e01b81526001600160a01b03620100009093048316935063095ea7b392610b1992169060001990600401611cd6565b602060405180830381600087803b158015610b3357600080fd5b505af1158015610b47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6b9190611c3c565b50600d5460405163095ea7b360e01b81526001600160a01b039091169063095ea7b390610ba090309060001990600401611cd6565b602060405180830381600087803b158015610bba57600080fd5b505af1158015610bce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf29190611c3c565b5050436014556009805460ff9092166101000261ff0019909216919091179055600c805460ff19166001179055565b600061049f610c2e610ee5565b84846111a1565b6001600160a01b03166000908152600f602052604090205460ff1690565b6000546001600160a01b0316610c67610ee5565b6001600160a01b031614610c8d5760405162461bcd60e51b81526004016104ef90611eca565b6001600160a01b03166000908152601060205260409020805460ff19166001179055565b60145481565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b6000546001600160a01b0316610cf6610ee5565b6001600160a01b031614610d1c5760405162461bcd60e51b81526004016104ef90611eca565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316610d8b610ee5565b6001600160a01b031614610db15760405162461bcd60e51b81526004016104ef90611eca565b6009546001600160a01b0382811662010000909204161415610de55760405162461bcd60e51b81526004016104ef90611eff565b6001600160a01b038116301415610e0e5760405162461bcd60e51b81526004016104ef90611e52565b6001600160a01b03166000908152600f60205260409020805460ff19166001179055565b600061060f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061135f565b600080610e81838561207d565b90508381101561060f5760405162461bcd60e51b81526004016104ef90611e1b565b600061060f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611325565b3390565b6001600160a01b038316610f0f5760405162461bcd60e51b81526004016104ef90611f7b565b6001600160a01b038216610f355760405162461bcd60e51b81526004016104ef90611dd9565b6001600160a01b0380841660008181526012602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610f90908590611ff6565b60405180910390a3505050565b6000546001600160a01b0316610fb1610ee5565b6001600160a01b031614610fd75760405162461bcd60e51b81526004016104ef90611eca565b6001600160a01b038216600090815260036020526040902054806110c357600454612904906110069084610e74565b111561101157600080fd5b6001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6018390556002805480830182556000919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b038616179055805461109591906120d4565b6001600160a01b0384166000908152600360205260409020556004546110bb9083610e74565b60045561117d565b6000600182815481106110e657634e487b7160e01b600052603260045260246000fd5b906000526020600020015490506129046111158261110f86600454610e7490919063ffffffff16565b90610ea3565b111561112057600080fd5b826001838154811061114257634e487b7160e01b600052603260045260246000fd5b60009182526020909120015560045461116190829061110f9086610e74565b6004558261117b57600554611177906001610ea3565b6005555b505b811561119c57600160056000828254611196919061207d565b90915550505b505050565b6001600160a01b0383166111c75760405162461bcd60e51b81526004016104ef90611f36565b600081116111e75760405162461bcd60e51b81526004016104ef90611fbf565b6001600160a01b0383166000908152600f602052604090205460ff1615801561122957506001600160a01b0382166000908152600f602052604090205460ff16155b80156112455750326000908152600f602052604090205460ff16155b61124e57600080fd5b60095460145443916112699161010090910460ff169061207d565b106112a55761127661138d565b811161128157600080fd5b600c546112a090849061010090046001600160a01b03168360006113a3565b61119c565b6112ae82611492565b156112c957600b546112bf83610680565b106112c957600080fd5b60006112d584846114ca565b15611313576112e48484611511565b156112fd576112f161138d565b8211156112fd57600080fd5b61130884848461156e565b90506113138461160a565b61131f848484846113a3565b50505050565b600081848411156113495760405162461bcd60e51b81526004016104ef9190611d4f565b50600061135684866120d4565b95945050505050565b600081836113805760405162461bcd60e51b81526004016104ef9190611d4f565b5060006113568486612095565b60006004600b5461139e9190612095565b905090565b60006113af8383610ea3565b6001600160a01b0386166000908152601160205260409020549091506113d59084610ea3565b6001600160a01b0380871660009081526011602052604080822093909355908616815220546114049082610e74565b6001600160a01b0385166000908152601160205260408082209290925530815220546114309083610e74565b306000908152601160205260409081902091909155516001600160a01b0385811691908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611483908590611ff6565b60405180910390a35050505050565b6009546000906001600160a01b038381166201000090920416148015906104a3575050600a546001600160a01b039081169116141590565b6001600160a01b03821660009081526010602052604081205460ff168061150957506001600160a01b03821660009081526010602052604090205460ff165b159392505050565b6009546000906001600160a01b0384811662010000909204161480156115455750600a546001600160a01b03838116911614155b801561060f5750506001600160a01b031660009081526010602052604090205460ff1615919050565b6001600160a01b038316600090815260106020526040812054819060ff16806115af57506001600160a01b03841660009081526010602052604090205460ff165b156115bb57905061060f565b6115e46115dd6115c961163b565b6016546115d7908790610e32565b90611641565b8290610e74565b90506113566115dd601654611604600e548761164190919063ffffffff16565b90610e32565b61161381611686565b1561163857600061162330610680565b905061162e816116b3565b61163661184f565b505b50565b60045490565b600082611650575060006104a3565b600061165c83856120b5565b9050826116698583612095565b1461060f5760405162461bcd60e51b81526004016104ef90611e89565b60155460009060ff161580156104a35750506009546201000090046001600160a01b039081169116141590565b6015805460ff19166001179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061170357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561175757600080fd5b505afa15801561176b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178f9190611b6b565b816001815181106117b057634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600a546117d69130911684610ee9565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061180f908590600090869030904290600401611fff565b600060405180830381600087803b15801561182957600080fd5b505af115801561183d573d6000803e3d6000fd5b50506015805460ff1916905550505050565b6013544790811161186057506118c9565b600061187760135483610ea390919063ffffffff16565b905060006118836118cb565b90506001811015611896575050506118c9565b6118a082826118f6565b6118c16118bc82611604600e548661164190919063ffffffff16565b6119d3565b505047601355505b565b6000806118d96115dd61163b565b90506118f0600e5482610e7490919063ffffffff16565b91505090565b60015b60015481101561119c5760006001828154811061192657634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905060006002838154811061195657634e487b7160e01b600052603260045260246000fd5b60009182526020822001546001600160a01b0316915061197a856116048886611641565b905060018111156119bd576040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156119bb573d6000803e3d6000fd5b505b50505080806119cb90612126565b9150506118f9565b600d60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015611a2357600080fd5b505af1158015611a37573d6000803e3d6000fd5b5050600d546040516370a0823160e01b8152600094506001600160a01b0390911692506370a082319150611a6f903090600401611cc2565b60206040518083038186803b158015611a8757600080fd5b505afa158015611a9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611abf9190611c5c565b600d5460095460405163a9059cbb60e01b81529293506001600160a01b039182169263a9059cbb92611afd9262010000900416908590600401611cd6565b602060405180830381600087803b158015611b1757600080fd5b505af1158015611b2b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119c9190611c3c565b600060208284031215611b60578081fd5b813561060f81612157565b600060208284031215611b7c578081fd5b815161060f81612157565b60008060408385031215611b99578081fd5b8235611ba481612157565b946020939093013593505050565b60008060408385031215611bc4578182fd5b8235611bcf81612157565b91506020830135611bdf81612157565b809150509250929050565b600080600060608486031215611bfe578081fd5b8335611c0981612157565b92506020840135611c1981612157565b929592945050506040919091013590565b60008060408385031215611b99578182fd5b600060208284031215611c4d578081fd5b8151801515811461060f578182fd5b600060208284031215611c6d578081fd5b5051919050565b600080600060608486031215611c88578283fd5b8351925060208401519150604084015190509250925092565b600060208284031215611cb2578081fd5b813560ff8116811461060f578182fd5b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b81811015611d7b57858101830151858201604001528201611d5f565b81811115611d8c5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526018908201527f4c697175696469747920616c72656164792061646465642e0000000000000000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526018908201527f43616e277420626c61636b6c69737420636f6e74726163740000000000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526017908201527f43616e277420626c61636b6c69737420556e6973776170000000000000000000604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252601c908201527f4d757374207472616e736665722067726561746572207468616e203000000000604082015260600190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b8181101561204e5784516001600160a01b031683529383019391830191600101612029565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b6000821982111561209057612090612141565b500190565b6000826120b057634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156120cf576120cf612141565b500290565b6000828210156120e6576120e6612141565b500390565b6002810460018216806120ff57607f821691505b6020821081141561212057634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561213a5761213a612141565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461163857600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a09eecab492e135a2558d0990e5b988df30a3aa8b18ddafb7c68c633ceb71c3e64736f6c63430008000033

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.