ETH Price: $3,364.91 (-2.31%)
Gas: 3 Gwei

Token

Emoji (Emoji)
 

Overview

Max Total Supply

366,400,000,000,000 Emoji

Holders

352

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 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:
Emoji

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-07
*/

//  ______ __  __  ____       _ _____ 
// |  ____|  \/  |/ __ \     | |_   _|   _____  
// | |__  | \  / | |  | |    | | | |    /     \ 
// |  __| | |\/| | |  | |_   | | | |   |   ^_^ |
// | |____| |  | | |__| | |__| |_| |_  |  \___/ 
// |______|_|  |_|\____/ \____/|_____|  \_____/

// Twitter: https://twitter.com/emojicoineth
// Telegram: https://t.me/emoji_meme

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.6;
pragma experimental ABIEncoderV2;


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 tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

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

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

abstract contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

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

}

contract Emoji is Context, IERC20, Ownable {
    using SafeMath for uint256;

    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private isExcluded;
    mapping(address => bool) public ammPairs;
    mapping (uint256 => uint256) public tradingCount;
   
    uint8 private _decimals = 18;
    uint256 private _tTotal;
    uint256 public supply = 366400000000000 * (10 ** 18);

    string private _name = "Emoji";
    string private _symbol = "Emoji";

    address public router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address public initPoolAddress;

    uint256 launchedBlock;
    bool openTransaction;
    uint256 private firstBlock = 1;
    uint256 private secondBlock = 4;
    uint256 private thirdBlock = 150;

    uint256 tradingCountLimit = 7;
    uint256 firstTradingAmountLimit = 256480000000 * (10 ** 18);
    uint256 secondTradingAmountLimit = 732800000000 * (10 ** 18);
    uint256 tradingAmountLimit = 1832000000000 * (10 ** 18);
    uint256 holdingAmountLimit = 3664000000000 * (10 ** 18);
    
    constructor () {
        initPoolAddress = owner();
        _tOwned[initPoolAddress] = supply;
        _tTotal = supply;

        isExcluded[address(msg.sender)] = true;
        isExcluded[initPoolAddress] = true;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router);

        address ethPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        ammPairs[ethPair] = true;

        emit Transfer(address(0), initPoolAddress, _tTotal);
    }

    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public view returns (uint8) {
        return _decimals;
    }

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

    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[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 _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(), _allowances[sender][_msgSender()].sub(amount, "Emoji: transfer amount exceeds allowance"));
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "Emoji: decreased allowance below zero"));
        return true;
    }

    receive() external payable {}

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "Emoji: approve from the zero address");
        require(spender != address(0), "Emoji: approve to the zero address");

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "Emoji: transfer from the zero address");
        require(amount > 0, "Emoji: transfer amount must be greater than zero");

        uint256 fee;

        if(ammPairs[to] && IERC20(to).totalSupply() == 0){
            require(from == initPoolAddress,"Emoji: Permission denied");
        }

        if(isExcluded[from] || isExcluded[to]){
            return _tokenTransfer(from,to,amount,fee); 
        }

        require(openTransaction,"Emoji: Not open");

        uint256 currentBlock = block.number;

        if (ammPairs[from]) {
            if (currentBlock - launchedBlock < firstBlock + 1) {
                fee = amount.mul(95).div(100);
            } else if (currentBlock - launchedBlock < secondBlock + 1) {
                tradingCount[currentBlock] = tradingCount[currentBlock] + 1;
                if (tradingCount[currentBlock] > tradingCountLimit) {
                    fee = amount.mul(95).div(100);
                }
            }
            if (currentBlock - launchedBlock < secondBlock + 1) {
                require(amount <= firstTradingAmountLimit, "Emoji: Trading limit");
            } else if (currentBlock - launchedBlock < thirdBlock) {
                require(amount <= secondTradingAmountLimit, "Emoji: Trading limit");
            } else {
                require(amount <= tradingAmountLimit, "Emoji: Trading limit");
            }
        }

        if (!ammPairs[to]) {
            require(balanceOf(to).add(amount.sub(fee)) <= holdingAmountLimit, "Emoji: Holding limit");
        }

        _tokenTransfer(from,to,amount,fee);
    }

    function _tokenTransfer(address sender, address recipient, uint256 tAmount, uint256 fee) private {
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tAmount.sub(fee));
        emit Transfer(sender, recipient, tAmount.sub(fee));
        
        if (fee > 0) {
            _tOwned[address(this)] = _tOwned[address(this)].add(fee);
            emit Transfer(sender, address(this), fee);
        }
    }

    function setOpenTransaction() external onlyOwner {
        require(openTransaction == false, "Emoji: Already opened");
        openTransaction = true;
        launchedBlock = block.number;
    }

    function muliSetExclude(address[] calldata users, bool _isExclude) external onlyOwner {
        for (uint i = 0; i < users.length; i++) {
            isExcluded[users[i]] = _isExclude;
        }
    }

}

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":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"},{"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":"","type":"address"}],"name":"ammPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initPoolAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"users","type":"address[]"},{"internalType":"bool","name":"_isExclude","type":"bool"}],"name":"muliSetExclude","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"setOpenTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"supply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tradingCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"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"},{"stateMutability":"payable","type":"receive"}]

6006805460ff191660121790556d12109e40707e70f484120000000060085560c06040526005608081905264456d6f6a6960d81b60a0908152620000479160099190620003b7565b5060408051808201909152600580825264456d6f6a6960d81b60209092019182526200007691600a91620003b7565b50600b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556001600f556004601055609660115560076012556c033cbb4893f4407a75e00000006013556c093fcdf3efde6f14be800000006014556c171f82e1d7ac15b3dc400000006015556c2e3f05c3af582b67b8800000006016553480156200010257600080fd5b506200010e3362000367565b60008054600c80546001600160a01b0319166001600160a01b03928316908117825560085490845260016020818152604080872084905560079390935533865260038152828620805460ff1990811684179091559354851686528286208054909416909117909255600b54815163c45a015560e01b8152915193169392849263c45a01559260048082019391829003018186803b158015620001af57600080fd5b505afa158015620001c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ea91906200045d565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200023357600080fd5b505afa15801562000248573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026e91906200045d565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620002b757600080fd5b505af1158015620002cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f291906200045d565b6001600160a01b03808216600090815260046020526040808220805460ff19166001179055600c5460075491519495509092169290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916200035791815260200190565b60405180910390a35050620004cc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054620003c5906200048f565b90600052602060002090601f016020900481019282620003e9576000855562000434565b82601f106200040457805160ff191683800117855562000434565b8280016001018555821562000434579182015b828111156200043457825182559160200191906001019062000417565b506200044292915062000446565b5090565b5b8082111562000442576000815560010162000447565b6000602082840312156200047057600080fd5b81516001600160a01b03811681146200048857600080fd5b9392505050565b600181811c90821680620004a457607f821691505b60208210811415620004c657634e487b7160e01b600052602260045260246000fd5b50919050565b61132f80620004dc6000396000f3fe60806040526004361061012e5760003560e01c8063876ab8d8116100ab578063a72905a21161006f578063a72905a214610339578063a9059cbb14610369578063dd62ed3e14610389578063ef9fc673146103cf578063f2fde38b146103fc578063f887ea401461041c57600080fd5b8063876ab8d8146102995780638da5cb5b146102d157806395d89b41146102ef578063a457c2d714610304578063a4b3cf981461032457600080fd5b8063313ce567116100f2578063313ce567146101ea578063395093511461020c578063700597e91461022c57806370a082311461024e578063715018a61461028457600080fd5b8063047fc9aa1461013a57806306fdde0314610163578063095ea7b31461018557806318160ddd146101b557806323b872dd146101ca57600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5061015060085481565b6040519081526020015b60405180910390f35b34801561016f57600080fd5b5061017861043c565b60405161015a9190611102565b34801561019157600080fd5b506101a56101a036600461101b565b6104ce565b604051901515815260200161015a565b3480156101c157600080fd5b50600754610150565b3480156101d657600080fd5b506101a56101e5366004610fdf565b6104e4565b3480156101f657600080fd5b5060065460405160ff909116815260200161015a565b34801561021857600080fd5b506101a561022736600461101b565b61054d565b34801561023857600080fd5b5061024c610247366004611045565b610583565b005b34801561025a57600080fd5b50610150610269366004610f91565b6001600160a01b031660009081526001602052604090205490565b34801561029057600080fd5b5061024c61062d565b3480156102a557600080fd5b50600c546102b9906001600160a01b031681565b6040516001600160a01b03909116815260200161015a565b3480156102dd57600080fd5b506000546001600160a01b03166102b9565b3480156102fb57600080fd5b50610178610663565b34801561031057600080fd5b506101a561031f36600461101b565b610672565b34801561033057600080fd5b5061024c6106c1565b34801561034557600080fd5b506101a5610354366004610f91565b60046020526000908152604090205460ff1681565b34801561037557600080fd5b506101a561038436600461101b565b610749565b34801561039557600080fd5b506101506103a4366004610fac565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156103db57600080fd5b506101506103ea3660046110d0565b60056020526000908152604090205481565b34801561040857600080fd5b5061024c610417366004610f91565b610756565b34801561042857600080fd5b50600b546102b9906001600160a01b031681565b60606009805461044b9061122a565b80601f01602080910402602001604051908101604052809291908181526020018280546104779061122a565b80156104c45780601f10610499576101008083540402835291602001916104c4565b820191906000526020600020905b8154815290600101906020018083116104a757829003601f168201915b5050505050905090565b60006104db3384846107f1565b50600192915050565b60006104f1848484610915565b610543843361053e856040518060600160405280602881526020016112d2602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610d80565b6107f1565b5060019392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916104db91859061053e9086610dac565b6000546001600160a01b031633146105b65760405162461bcd60e51b81526004016105ad90611185565b60405180910390fd5b60005b828110156106275781600360008686858181106105d8576105d8611296565b90506020020160208101906105ed9190610f91565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061061f81611265565b9150506105b9565b50505050565b6000546001600160a01b031633146106575760405162461bcd60e51b81526004016105ad90611185565b6106616000610dbf565b565b6060600a805461044b9061122a565b60006104db338461053e856040518060600160405280602581526020016112ad602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190610d80565b6000546001600160a01b031633146106eb5760405162461bcd60e51b81526004016105ad90611185565b600e5460ff16156107365760405162461bcd60e51b8152602060048201526015602482015274115b5bda9a4e88105b1c9958591e481bdc195b9959605a1b60448201526064016105ad565b600e805460ff1916600117905543600d55565b60006104db338484610915565b6000546001600160a01b031633146107805760405162461bcd60e51b81526004016105ad90611185565b6001600160a01b0381166107e55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105ad565b6107ee81610dbf565b50565b6001600160a01b0383166108535760405162461bcd60e51b8152602060048201526024808201527f456d6f6a693a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105ad565b6001600160a01b0382166108b45760405162461bcd60e51b815260206004820152602260248201527f456d6f6a693a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105ad565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109795760405162461bcd60e51b815260206004820152602560248201527f456d6f6a693a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105ad565b600081116109e25760405162461bcd60e51b815260206004820152603060248201527f456d6f6a693a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b60648201526084016105ad565b6001600160a01b03821660009081526004602052604081205460ff168015610a785750826001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a3e57600080fd5b505afa158015610a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7691906110e9565b155b15610ada57600c546001600160a01b03858116911614610ada5760405162461bcd60e51b815260206004820152601860248201527f456d6f6a693a205065726d697373696f6e2064656e696564000000000000000060448201526064016105ad565b6001600160a01b03841660009081526003602052604090205460ff1680610b1957506001600160a01b03831660009081526003602052604090205460ff165b15610b2a5761062784848484610e0f565b600e5460ff16610b6e5760405162461bcd60e51b815260206004820152600f60248201526e22b6b7b5349d102737ba1037b832b760891b60448201526064016105ad565b6001600160a01b038416600090815260046020526040902054439060ff1615610cd957600f54610b9f9060016111ba565b600d54610bac9083611213565b1015610bcf57610bc86064610bc285605f610f51565b90610f5d565b9150610c37565b601054610bdd9060016111ba565b600d54610bea9083611213565b1015610c3757600081815260056020526040902054610c0a9060016111ba565b60008281526005602052604090208190556012541015610c3757610c346064610bc285605f610f51565b91505b601054610c459060016111ba565b600d54610c529083611213565b1015610c7f57601354831115610c7a5760405162461bcd60e51b81526004016105ad90611157565b610cd9565b601154600d54610c8f9083611213565b1015610cb757601454831115610c7a5760405162461bcd60e51b81526004016105ad90611157565b601554831115610cd95760405162461bcd60e51b81526004016105ad90611157565b6001600160a01b03841660009081526004602052604090205460ff16610d6d57601654610d28610d098585610f69565b6001600160a01b03871660009081526001602052604090205490610dac565b1115610d6d5760405162461bcd60e51b8152602060048201526014602482015273115b5bda9a4e88121bdb191a5b99c81b1a5b5a5d60621b60448201526064016105ad565b610d7985858585610e0f565b5050505050565b60008184841115610da45760405162461bcd60e51b81526004016105ad9190611102565b505050900390565b6000610db882846111ba565b9392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038416600090815260016020526040902054610e329083610f69565b6001600160a01b038516600090815260016020526040902055610e77610e588383610f69565b6001600160a01b03851660009081526001602052604090205490610dac565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610ec18585610f69565b60405190815260200160405180910390a380156106275730600090815260016020526040902054610ef29082610dac565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f439085815260200190565b60405180910390a350505050565b6000610db882846111f4565b6000610db882846111d2565b6000610db88284611213565b80356001600160a01b0381168114610f8c57600080fd5b919050565b600060208284031215610fa357600080fd5b610db882610f75565b60008060408385031215610fbf57600080fd5b610fc883610f75565b9150610fd660208401610f75565b90509250929050565b600080600060608486031215610ff457600080fd5b610ffd84610f75565b925061100b60208501610f75565b9150604084013590509250925092565b6000806040838503121561102e57600080fd5b61103783610f75565b946020939093013593505050565b60008060006040848603121561105a57600080fd5b833567ffffffffffffffff8082111561107257600080fd5b818601915086601f83011261108657600080fd5b81358181111561109557600080fd5b8760208260051b85010111156110aa57600080fd5b6020928301955093505084013580151581146110c557600080fd5b809150509250925092565b6000602082840312156110e257600080fd5b5035919050565b6000602082840312156110fb57600080fd5b5051919050565b600060208083528351808285015260005b8181101561112f57858101830151858201604001528201611113565b81811115611141576000604083870101525b50601f01601f1916929092016040019392505050565b602080825260149082015273115b5bda9a4e88151c98591a5b99c81b1a5b5a5d60621b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082198211156111cd576111cd611280565b500190565b6000826111ef57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561120e5761120e611280565b500290565b60008282101561122557611225611280565b500390565b600181811c9082168061123e57607f821691505b6020821081141561125f57634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561127957611279611280565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fdfe456d6f6a693a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f456d6f6a693a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220af82883d613386427e0f58e4d1a9d2c7447a390b16240d7d6ce540348e15929b64736f6c63430008060033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c8063876ab8d8116100ab578063a72905a21161006f578063a72905a214610339578063a9059cbb14610369578063dd62ed3e14610389578063ef9fc673146103cf578063f2fde38b146103fc578063f887ea401461041c57600080fd5b8063876ab8d8146102995780638da5cb5b146102d157806395d89b41146102ef578063a457c2d714610304578063a4b3cf981461032457600080fd5b8063313ce567116100f2578063313ce567146101ea578063395093511461020c578063700597e91461022c57806370a082311461024e578063715018a61461028457600080fd5b8063047fc9aa1461013a57806306fdde0314610163578063095ea7b31461018557806318160ddd146101b557806323b872dd146101ca57600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5061015060085481565b6040519081526020015b60405180910390f35b34801561016f57600080fd5b5061017861043c565b60405161015a9190611102565b34801561019157600080fd5b506101a56101a036600461101b565b6104ce565b604051901515815260200161015a565b3480156101c157600080fd5b50600754610150565b3480156101d657600080fd5b506101a56101e5366004610fdf565b6104e4565b3480156101f657600080fd5b5060065460405160ff909116815260200161015a565b34801561021857600080fd5b506101a561022736600461101b565b61054d565b34801561023857600080fd5b5061024c610247366004611045565b610583565b005b34801561025a57600080fd5b50610150610269366004610f91565b6001600160a01b031660009081526001602052604090205490565b34801561029057600080fd5b5061024c61062d565b3480156102a557600080fd5b50600c546102b9906001600160a01b031681565b6040516001600160a01b03909116815260200161015a565b3480156102dd57600080fd5b506000546001600160a01b03166102b9565b3480156102fb57600080fd5b50610178610663565b34801561031057600080fd5b506101a561031f36600461101b565b610672565b34801561033057600080fd5b5061024c6106c1565b34801561034557600080fd5b506101a5610354366004610f91565b60046020526000908152604090205460ff1681565b34801561037557600080fd5b506101a561038436600461101b565b610749565b34801561039557600080fd5b506101506103a4366004610fac565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156103db57600080fd5b506101506103ea3660046110d0565b60056020526000908152604090205481565b34801561040857600080fd5b5061024c610417366004610f91565b610756565b34801561042857600080fd5b50600b546102b9906001600160a01b031681565b60606009805461044b9061122a565b80601f01602080910402602001604051908101604052809291908181526020018280546104779061122a565b80156104c45780601f10610499576101008083540402835291602001916104c4565b820191906000526020600020905b8154815290600101906020018083116104a757829003601f168201915b5050505050905090565b60006104db3384846107f1565b50600192915050565b60006104f1848484610915565b610543843361053e856040518060600160405280602881526020016112d2602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610d80565b6107f1565b5060019392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916104db91859061053e9086610dac565b6000546001600160a01b031633146105b65760405162461bcd60e51b81526004016105ad90611185565b60405180910390fd5b60005b828110156106275781600360008686858181106105d8576105d8611296565b90506020020160208101906105ed9190610f91565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061061f81611265565b9150506105b9565b50505050565b6000546001600160a01b031633146106575760405162461bcd60e51b81526004016105ad90611185565b6106616000610dbf565b565b6060600a805461044b9061122a565b60006104db338461053e856040518060600160405280602581526020016112ad602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190610d80565b6000546001600160a01b031633146106eb5760405162461bcd60e51b81526004016105ad90611185565b600e5460ff16156107365760405162461bcd60e51b8152602060048201526015602482015274115b5bda9a4e88105b1c9958591e481bdc195b9959605a1b60448201526064016105ad565b600e805460ff1916600117905543600d55565b60006104db338484610915565b6000546001600160a01b031633146107805760405162461bcd60e51b81526004016105ad90611185565b6001600160a01b0381166107e55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105ad565b6107ee81610dbf565b50565b6001600160a01b0383166108535760405162461bcd60e51b8152602060048201526024808201527f456d6f6a693a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105ad565b6001600160a01b0382166108b45760405162461bcd60e51b815260206004820152602260248201527f456d6f6a693a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105ad565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109795760405162461bcd60e51b815260206004820152602560248201527f456d6f6a693a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105ad565b600081116109e25760405162461bcd60e51b815260206004820152603060248201527f456d6f6a693a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b60648201526084016105ad565b6001600160a01b03821660009081526004602052604081205460ff168015610a785750826001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a3e57600080fd5b505afa158015610a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7691906110e9565b155b15610ada57600c546001600160a01b03858116911614610ada5760405162461bcd60e51b815260206004820152601860248201527f456d6f6a693a205065726d697373696f6e2064656e696564000000000000000060448201526064016105ad565b6001600160a01b03841660009081526003602052604090205460ff1680610b1957506001600160a01b03831660009081526003602052604090205460ff165b15610b2a5761062784848484610e0f565b600e5460ff16610b6e5760405162461bcd60e51b815260206004820152600f60248201526e22b6b7b5349d102737ba1037b832b760891b60448201526064016105ad565b6001600160a01b038416600090815260046020526040902054439060ff1615610cd957600f54610b9f9060016111ba565b600d54610bac9083611213565b1015610bcf57610bc86064610bc285605f610f51565b90610f5d565b9150610c37565b601054610bdd9060016111ba565b600d54610bea9083611213565b1015610c3757600081815260056020526040902054610c0a9060016111ba565b60008281526005602052604090208190556012541015610c3757610c346064610bc285605f610f51565b91505b601054610c459060016111ba565b600d54610c529083611213565b1015610c7f57601354831115610c7a5760405162461bcd60e51b81526004016105ad90611157565b610cd9565b601154600d54610c8f9083611213565b1015610cb757601454831115610c7a5760405162461bcd60e51b81526004016105ad90611157565b601554831115610cd95760405162461bcd60e51b81526004016105ad90611157565b6001600160a01b03841660009081526004602052604090205460ff16610d6d57601654610d28610d098585610f69565b6001600160a01b03871660009081526001602052604090205490610dac565b1115610d6d5760405162461bcd60e51b8152602060048201526014602482015273115b5bda9a4e88121bdb191a5b99c81b1a5b5a5d60621b60448201526064016105ad565b610d7985858585610e0f565b5050505050565b60008184841115610da45760405162461bcd60e51b81526004016105ad9190611102565b505050900390565b6000610db882846111ba565b9392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038416600090815260016020526040902054610e329083610f69565b6001600160a01b038516600090815260016020526040902055610e77610e588383610f69565b6001600160a01b03851660009081526001602052604090205490610dac565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610ec18585610f69565b60405190815260200160405180910390a380156106275730600090815260016020526040902054610ef29082610dac565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f439085815260200190565b60405180910390a350505050565b6000610db882846111f4565b6000610db882846111d2565b6000610db88284611213565b80356001600160a01b0381168114610f8c57600080fd5b919050565b600060208284031215610fa357600080fd5b610db882610f75565b60008060408385031215610fbf57600080fd5b610fc883610f75565b9150610fd660208401610f75565b90509250929050565b600080600060608486031215610ff457600080fd5b610ffd84610f75565b925061100b60208501610f75565b9150604084013590509250925092565b6000806040838503121561102e57600080fd5b61103783610f75565b946020939093013593505050565b60008060006040848603121561105a57600080fd5b833567ffffffffffffffff8082111561107257600080fd5b818601915086601f83011261108657600080fd5b81358181111561109557600080fd5b8760208260051b85010111156110aa57600080fd5b6020928301955093505084013580151581146110c557600080fd5b809150509250925092565b6000602082840312156110e257600080fd5b5035919050565b6000602082840312156110fb57600080fd5b5051919050565b600060208083528351808285015260005b8181101561112f57858101830151858201604001528201611113565b81811115611141576000604083870101525b50601f01601f1916929092016040019392505050565b602080825260149082015273115b5bda9a4e88151c98591a5b99c81b1a5b5a5d60621b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082198211156111cd576111cd611280565b500190565b6000826111ef57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561120e5761120e611280565b500290565b60008282101561122557611225611280565b500390565b600181811c9082168061123e57607f821691505b6020821081141561125f57634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561127957611279611280565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fdfe456d6f6a693a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f456d6f6a693a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220af82883d613386427e0f58e4d1a9d2c7447a390b16240d7d6ce540348e15929b64736f6c63430008060033

Deployed Bytecode Sourcemap

4945:6569:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5380:52;;;;;;;;;;;;;;;;;;;7693:25:1;;;7681:2;7666:18;5380:52:0;;;;;;;;6660:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;7491:161::-;;;;;;;;;;-1:-1:-1;7491:161:0;;;;;:::i;:::-;;:::i;:::-;;;2774:14:1;;2767:22;2749:41;;2737:2;2722:18;7491:161:0;2704:92:1;6937:95:0;;;;;;;;;;-1:-1:-1;7017:7:0;;6937:95;;7660:313;;;;;;;;;;-1:-1:-1;7660:313:0;;;;;:::i;:::-;;:::i;6846:83::-;;;;;;;;;;-1:-1:-1;6912:9:0;;6846:83;;6912:9;;;;7871:36:1;;7859:2;7844:18;6846:83:0;7826:87:1;7981:218:0;;;;;;;;;;-1:-1:-1;7981:218:0;;;;;:::i;:::-;;:::i;11305:204::-;;;;;;;;;;-1:-1:-1;11305:204:0;;;;;:::i;:::-;;:::i;:::-;;7040:117;;;;;;;;;;-1:-1:-1;7040:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;7133:16:0;7106:7;7133:16;;;:7;:16;;;;;;;7040:117;4169:94;;;;;;;;;;;;;:::i;5592:30::-;;;;;;;;;;-1:-1:-1;5592:30:0;;;;-1:-1:-1;;;;;5592:30:0;;;;;;-1:-1:-1;;;;;2565:32:1;;;2547:51;;2535:2;2520:18;5592:30:0;2502:102:1;3946:87:0;;;;;;;;;;-1:-1:-1;3992:7:0;4019:6;-1:-1:-1;;;;;4019:6:0;3946:87;;6751;;;;;;;;;;;;;:::i;8207:269::-;;;;;;;;;;-1:-1:-1;8207:269:0;;;;;:::i;:::-;;:::i;11099:198::-;;;;;;;;;;;;;:::i;5208:40::-;;;;;;;;;;-1:-1:-1;5208:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7165:167;;;;;;;;;;-1:-1:-1;7165:167:0;;;;;:::i;:::-;;:::i;7340:143::-;;;;;;;;;;-1:-1:-1;7340:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7448:18:0;;;7421:7;7448:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7340:143;5255:48;;;;;;;;;;-1:-1:-1;5255:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;4271:192;;;;;;;;;;-1:-1:-1;4271:192:0;;;;;:::i;:::-;;:::i;5519:66::-;;;;;;;;;;-1:-1:-1;5519:66:0;;;;-1:-1:-1;;;;;5519:66:0;;;6660:83;6697:13;6730:5;6723:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6660:83;:::o;7491:161::-;7566:4;7583:39;3583:10;7606:7;7615:6;7583:8;:39::i;:::-;-1:-1:-1;7640:4:0;7491:161;;;;:::o;7660:313::-;7758:4;7775:36;7785:6;7793:9;7804:6;7775:9;:36::i;:::-;7822:121;7831:6;3583:10;7853:89;7891:6;7853:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7853:19:0;;;;;;:11;:19;;;;;;;;3583:10;7853:33;;;;;;;;;;:37;:89::i;:::-;7822:8;:121::i;:::-;-1:-1:-1;7961:4:0;7660:313;;;;;:::o;7981:218::-;3583:10;8069:4;8118:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8118:34:0;;;;;;;;;;8069:4;;8086:83;;8109:7;;8118:50;;8157:10;8118:38;:50::i;11305:204::-;3992:7;4019:6;-1:-1:-1;;;;;4019:6:0;3583:10;4081:23;4073:68;;;;-1:-1:-1;;;4073:68:0;;;;;;;:::i;:::-;;;;;;;;;11407:6:::1;11402:100;11419:16:::0;;::::1;11402:100;;;11480:10;11457;:20;11468:5;;11474:1;11468:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11457:20:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;11457:20:0;:33;;-1:-1:-1;;11457:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11437:3;::::1;::::0;::::1;:::i;:::-;;;;11402:100;;;;11305:204:::0;;;:::o;4169:94::-;3992:7;4019:6;-1:-1:-1;;;;;4019:6:0;3583:10;4081:23;4073:68;;;;-1:-1:-1;;;4073:68:0;;;;;;;:::i;:::-;4234:21:::1;4252:1;4234:9;:21::i;:::-;4169:94::o:0;6751:87::-;6790:13;6823:7;6816:14;;;;;:::i;8207:269::-;8300:4;8317:129;3583:10;8340:7;8349:96;8388:15;8349:96;;;;;;;;;;;;;;;;;3583:10;8349:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8349:34:0;;;;;;;;;;;;:38;:96::i;11099:198::-;3992:7;4019:6;-1:-1:-1;;;;;4019:6:0;3583:10;4081:23;4073:68;;;;-1:-1:-1;;;4073:68:0;;;;;;;:::i;:::-;11167:15:::1;::::0;::::1;;:24;11159:58;;;::::0;-1:-1:-1;;;11159:58:0;;5058:2:1;11159:58:0::1;::::0;::::1;5040:21:1::0;5097:2;5077:18;;;5070:30;-1:-1:-1;;;5116:18:1;;;5109:51;5177:18;;11159:58:0::1;5030:171:1::0;11159:58:0::1;11228:15;:22:::0;;-1:-1:-1;;11228:22:0::1;11246:4;11228:22;::::0;;11277:12:::1;11261:13;:28:::0;11099:198::o;7165:167::-;7243:4;7260:42;3583:10;7284:9;7295:6;7260:9;:42::i;4271:192::-;3992:7;4019:6;-1:-1:-1;;;;;4019:6:0;3583:10;4081:23;4073:68;;;;-1:-1:-1;;;4073:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4360:22:0;::::1;4352:73;;;::::0;-1:-1:-1;;;4352:73:0;;3958:2:1;4352:73:0::1;::::0;::::1;3940:21:1::0;3997:2;3977:18;;;3970:30;4036:34;4016:18;;;4009:62;-1:-1:-1;;;4087:18:1;;;4080:36;4133:19;;4352:73:0::1;3930:228:1::0;4352:73:0::1;4436:19;4446:8;4436:9;:19::i;:::-;4271:192:::0;:::o;8521:337::-;-1:-1:-1;;;;;8614:19:0;;8606:68;;;;-1:-1:-1;;;8606:68:0;;5408:2:1;8606:68:0;;;5390:21:1;5447:2;5427:18;;;5420:30;5486:34;5466:18;;;5459:62;-1:-1:-1;;;5537:18:1;;;5530:34;5581:19;;8606:68:0;5380:226:1;8606:68:0;-1:-1:-1;;;;;8693:21:0;;8685:68;;;;-1:-1:-1;;;8685:68:0;;6523:2:1;8685:68:0;;;6505:21:1;6562:2;6542:18;;;6535:30;6601:34;6581:18;;;6574:62;-1:-1:-1;;;6652:18:1;;;6645:32;6694:19;;8685:68:0;6495:224:1;8685:68:0;-1:-1:-1;;;;;8766:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8818:32;;7693:25:1;;;8818:32:0;;7666:18:1;8818:32:0;;;;;;;8521:337;;;:::o;8866:1750::-;-1:-1:-1;;;;;8988:18:0;;8980:68;;;;-1:-1:-1;;;8980:68:0;;6926:2:1;8980:68:0;;;6908:21:1;6965:2;6945:18;;;6938:30;7004:34;6984:18;;;6977:62;-1:-1:-1;;;7055:18:1;;;7048:35;7100:19;;8980:68:0;6898:227:1;8980:68:0;9076:1;9067:6;:10;9059:71;;;;-1:-1:-1;;;9059:71:0;;7332:2:1;9059:71:0;;;7314:21:1;7371:2;7351:18;;;7344:30;7410:34;7390:18;;;7383:62;-1:-1:-1;;;7461:18:1;;;7454:46;7517:19;;9059:71:0;7304:238:1;9059:71:0;-1:-1:-1;;;;;9170:12:0;;9143:11;9170:12;;;:8;:12;;;;;;;;:45;;;;;9193:2;-1:-1:-1;;;;;9186:22:0;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:29;9170:45;9167:135;;;9247:15;;-1:-1:-1;;;;;9239:23:0;;;9247:15;;9239:23;9231:59;;;;-1:-1:-1;;;9231:59:0;;3605:2:1;9231:59:0;;;3587:21:1;3644:2;3624:18;;;3617:30;3683:26;3663:18;;;3656:54;3727:18;;9231:59:0;3577:174:1;9231:59:0;-1:-1:-1;;;;;9317:16:0;;;;;;:10;:16;;;;;;;;;:34;;-1:-1:-1;;;;;;9337:14:0;;;;;;:10;:14;;;;;;;;9317:34;9314:107;;;9374:34;9389:4;9394:2;9397:6;9404:3;9374:14;:34::i;9314:107::-;9441:15;;;;9433:42;;;;-1:-1:-1;;;9433:42:0;;4714:2:1;9433:42:0;;;4696:21:1;4753:2;4733:18;;;4726:30;-1:-1:-1;;;4772:18:1;;;4765:45;4827:18;;9433:42:0;4686:165:1;9433:42:0;-1:-1:-1;;;;;9540:14:0;;9488:20;9540:14;;;:8;:14;;;;;;9511:12;;9540:14;;9536:879;;;9606:10;;:14;;9619:1;9606:14;:::i;:::-;9590:13;;9575:28;;:12;:28;:::i;:::-;:45;9571:409;;;9647:23;9666:3;9647:14;:6;9658:2;9647:10;:14::i;:::-;:18;;:23::i;:::-;9641:29;;9571:409;;;9727:11;;:15;;9741:1;9727:15;:::i;:::-;9711:13;;9696:28;;:12;:28;:::i;:::-;:46;9692:288;;;9792:26;;;;:12;:26;;;;;;:30;;9821:1;9792:30;:::i;:::-;9763:26;;;;:12;:26;;;;;:59;;;9874:17;;-1:-1:-1;9841:124:0;;;9922:23;9941:3;9922:14;:6;9933:2;9922:10;:14::i;:23::-;9916:29;;9841:124;10029:11;;:15;;10043:1;10029:15;:::i;:::-;10013:13;;9998:28;;:12;:28;:::i;:::-;:46;9994:410;;;10083:23;;10073:6;:33;;10065:66;;;;-1:-1:-1;;;10065:66:0;;;;;;;:::i;:::-;9994:410;;;10188:10;;10172:13;;10157:28;;:12;:28;:::i;:::-;:41;10153:251;;;10237:24;;10227:6;:34;;10219:67;;;;-1:-1:-1;;;10219:67:0;;;;;;;:::i;10153:251::-;10345:18;;10335:6;:28;;10327:61;;;;-1:-1:-1;;;10327:61:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10432:12:0;;;;;;:8;:12;;;;;;;;10427:135;;10507:18;;10469:34;10487:15;:6;10498:3;10487:10;:15::i;:::-;-1:-1:-1;;;;;7133:16:0;;7106:7;7133:16;;;:7;:16;;;;;;10469:17;;:34::i;:::-;:56;;10461:89;;;;-1:-1:-1;;;10461:89:0;;6174:2:1;10461:89:0;;;6156:21:1;6213:2;6193:18;;;6186:30;-1:-1:-1;;;6232:18:1;;;6225:50;6292:18;;10461:89:0;6146:170:1;10461:89:0;10574:34;10589:4;10594:2;10597:6;10604:3;10574:14;:34::i;:::-;8969:1647;;8866:1750;;;:::o;2831:206::-;2917:7;2978:12;2970:6;;;;2962:29;;;;-1:-1:-1;;;2962:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;3013:5:0;;;2831:206::o;2301:98::-;2359:7;2386:5;2390:1;2386;:5;:::i;:::-;2379:12;2301:98;-1:-1:-1;;;2301:98:0:o;4471:173::-;4527:16;4546:6;;-1:-1:-1;;;;;4563:17:0;;;-1:-1:-1;;;;;;4563:17:0;;;;;;4596:40;;4546:6;;;;;;;4596:40;;4527:16;4596:40;4516:128;4471:173;:::o;10624:467::-;-1:-1:-1;;;;;10750:15:0;;;;;;:7;:15;;;;;;:28;;10770:7;10750:19;:28::i;:::-;-1:-1:-1;;;;;10732:15:0;;;;;;:7;:15;;;;;:46;10810:40;10833:16;:7;10845:3;10833:11;:16::i;:::-;-1:-1:-1;;;;;10810:18:0;;;;;;:7;:18;;;;;;;:22;:40::i;:::-;-1:-1:-1;;;;;10789:18:0;;;;;;;:7;:18;;;;;:61;;;;10866:45;;;10894:16;:7;10906:3;10894:11;:16::i;:::-;10866:45;;7693:25:1;;;7681:2;7666:18;10866:45:0;;;;;;;10936:7;;10932:152;;11001:4;10985:22;;;;:7;:22;;;;;;:31;;11012:3;10985:26;:31::i;:::-;10976:4;10960:22;;;;:7;:22;;;;;;;:56;;;;11036:36;;-1:-1:-1;;;;;11036:36:0;;;;;;;11068:3;7693:25:1;;7681:2;7666:18;;7648:76;11036:36:0;;;;;;;;10624:467;;;;:::o;2513:98::-;2571:7;2598:5;2602:1;2598;:5;:::i;2619:98::-;2677:7;2704:5;2708:1;2704;:5;:::i;2407:98::-;2465:7;2492:5;2496:1;2492;:5;:::i;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:2;;;320:1;317;310:12;272:2;343:29;362:9;343:29;:::i;383:260::-;451:6;459;512:2;500:9;491:7;487:23;483:32;480:2;;;528:1;525;518:12;480:2;551:29;570:9;551:29;:::i;:::-;541:39;;599:38;633:2;622:9;618:18;599:38;:::i;:::-;589:48;;470:173;;;;;:::o;648:328::-;725:6;733;741;794:2;782:9;773:7;769:23;765:32;762:2;;;810:1;807;800:12;762:2;833:29;852:9;833:29;:::i;:::-;823:39;;881:38;915:2;904:9;900:18;881:38;:::i;:::-;871:48;;966:2;955:9;951:18;938:32;928:42;;752:224;;;;;:::o;981:254::-;1049:6;1057;1110:2;1098:9;1089:7;1085:23;1081:32;1078:2;;;1126:1;1123;1116:12;1078:2;1149:29;1168:9;1149:29;:::i;:::-;1139:39;1225:2;1210:18;;;;1197:32;;-1:-1:-1;;;1068:167:1:o;1240:782::-;1332:6;1340;1348;1401:2;1389:9;1380:7;1376:23;1372:32;1369:2;;;1417:1;1414;1407:12;1369:2;1457:9;1444:23;1486:18;1527:2;1519:6;1516:14;1513:2;;;1543:1;1540;1533:12;1513:2;1581:6;1570:9;1566:22;1556:32;;1626:7;1619:4;1615:2;1611:13;1607:27;1597:2;;1648:1;1645;1638:12;1597:2;1688;1675:16;1714:2;1706:6;1703:14;1700:2;;;1730:1;1727;1720:12;1700:2;1785:7;1778:4;1768:6;1765:1;1761:14;1757:2;1753:23;1749:34;1746:47;1743:2;;;1806:1;1803;1796:12;1743:2;1837:4;1829:13;;;;-1:-1:-1;1861:6:1;-1:-1:-1;;1902:20:1;;1889:34;1959:13;;1952:21;1942:32;;1932:2;;1988:1;1985;1978:12;1932:2;2011:5;2001:15;;;1359:663;;;;;:::o;2027:180::-;2086:6;2139:2;2127:9;2118:7;2114:23;2110:32;2107:2;;;2155:1;2152;2145:12;2107:2;-1:-1:-1;2178:23:1;;2097:110;-1:-1:-1;2097:110:1:o;2212:184::-;2282:6;2335:2;2323:9;2314:7;2310:23;2306:32;2303:2;;;2351:1;2348;2341:12;2303:2;-1:-1:-1;2374:16:1;;2293:103;-1:-1:-1;2293:103:1:o;2801:597::-;2913:4;2942:2;2971;2960:9;2953:21;3003:6;2997:13;3046:6;3041:2;3030:9;3026:18;3019:34;3071:1;3081:140;3095:6;3092:1;3089:13;3081:140;;;3190:14;;;3186:23;;3180:30;3156:17;;;3175:2;3152:26;3145:66;3110:10;;3081:140;;;3239:6;3236:1;3233:13;3230:2;;;3309:1;3304:2;3295:6;3284:9;3280:22;3276:31;3269:42;3230:2;-1:-1:-1;3382:2:1;3361:15;-1:-1:-1;;3357:29:1;3342:45;;;;3389:2;3338:54;;2922:476;-1:-1:-1;;;2922:476:1:o;4163:344::-;4365:2;4347:21;;;4404:2;4384:18;;;4377:30;-1:-1:-1;;;4438:2:1;4423:18;;4416:50;4498:2;4483:18;;4337:170::o;5611:356::-;5813:2;5795:21;;;5832:18;;;5825:30;5891:34;5886:2;5871:18;;5864:62;5958:2;5943:18;;5785:182::o;7918:128::-;7958:3;7989:1;7985:6;7982:1;7979:13;7976:2;;;7995:18;;:::i;:::-;-1:-1:-1;8031:9:1;;7966:80::o;8051:217::-;8091:1;8117;8107:2;;8161:10;8156:3;8152:20;8149:1;8142:31;8196:4;8193:1;8186:15;8224:4;8221:1;8214:15;8107:2;-1:-1:-1;8253:9:1;;8097:171::o;8273:168::-;8313:7;8379:1;8375;8371:6;8367:14;8364:1;8361:21;8356:1;8349:9;8342:17;8338:45;8335:2;;;8386:18;;:::i;:::-;-1:-1:-1;8426:9:1;;8325:116::o;8446:125::-;8486:4;8514:1;8511;8508:8;8505:2;;;8519:18;;:::i;:::-;-1:-1:-1;8556:9:1;;8495:76::o;8576:380::-;8655:1;8651:12;;;;8698;;;8719:2;;8773:4;8765:6;8761:17;8751:27;;8719:2;8826;8818:6;8815:14;8795:18;8792:38;8789:2;;;8872:10;8867:3;8863:20;8860:1;8853:31;8907:4;8904:1;8897:15;8935:4;8932:1;8925:15;8789:2;;8631:325;;;:::o;8961:135::-;9000:3;-1:-1:-1;;9021:17:1;;9018:2;;;9041:18;;:::i;:::-;-1:-1:-1;9088:1:1;9077:13;;9008:88::o;9101:127::-;9162:10;9157:3;9153:20;9150:1;9143:31;9193:4;9190:1;9183:15;9217:4;9214:1;9207:15;9233:127;9294:10;9289:3;9285:20;9282:1;9275:31;9325:4;9322:1;9315:15;9349:4;9346:1;9339:15

Swarm Source

ipfs://af82883d613386427e0f58e4d1a9d2c7447a390b16240d7d6ce540348e15929b
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.