ETH Price: $3,803.40 (+0.74%)
Gas: 4 Gwei

Token

ZenithX (ZNX)
 

Overview

Max Total Supply

1,000,000 ZNX

Holders

73

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:
ZNX

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-29
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.16;

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

contract Ownable is Context {
    event OwnershipTransferred(address indexed prevOwner, address indexed newOwner);

    address private _owner;

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "");
        _;
    }

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

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "");
        return c;
    }

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

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "");
        return c;
    }

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

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

interface IERC20 {
    function balanceOf(address account) external view returns (uint256);

    function totalSupply() external view returns (uint256);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    event Transfer(address indexed sender, address indexed recipient, uint256 amount);

    event Approval(address indexed owner, address indexed spender, uint256 amount);
}

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

interface UniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);
}

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

    address private teamWallet = 0xc9eBf1FF8eea5F1385f54Dc76E9cd569b6bD3f92;

    struct Share {
        uint256 team;
    }
    Share public taxShare;

    string private constant _name = "ZenithX";
    string private constant _symbol = "ZNX";
    uint8 private constant _decimals = 18;

    address public dexPair;
    UniswapV2Router02 public dexRouter;

    uint256 private _redisTaxSell = 0;
    uint256 private _redisTaxBuy = 0;

    uint256 private _teamTax = _teamTaxSell;
    uint256 private _redisTax = _redisTaxSell;

    uint256 private _previousTeamTax = _teamTax;
    uint256 private _previousRedisTax = _redisTax;

    mapping(address => uint256) private _tOwned;
    mapping(address => uint256) private _buyMap;
    mapping(address => uint256) private _rOwned;

    uint256 private _tTaxTotal;
    uint256 private constant _tTotal = 1000000 * 10**_decimals;
    uint256 private constant MAX = ~uint256(0);
    uint256 private _rTotal = (MAX - (MAX % _tTotal));

    uint256 private _teamTaxBuy = 4;
    uint256 private _teamTaxSell = 4;

    mapping(address => bool) private _isUnrestricted;

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

    bool private taxSwapping = false;
    bool private taxSwapEnabled = true;
    uint256 public _swapTokensThreshold = 100000 * 10**_decimals;

    function _innerTransfer(address from, address to, uint256 amount, bool getTeamTax) private {
        if (!getTeamTax) removeAllTaxes();
        _outerTransfer(from, to, amount);
        if (!getTeamTax) restoreAllTaxes();
    }

    constructor() {
        _isUnrestricted[owner()] = true;
        _isUnrestricted[teamWallet] = true;
        _isUnrestricted[address(this)] = true;
        UniswapV2Router02 _dexRouter = UniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        dexRouter = _dexRouter;
        dexPair = UniswapV2Factory(_dexRouter.factory()).createPair(address(this), _dexRouter.WETH());
        _rOwned[_msgSender()] = _rTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);
        taxShare = Share(100); buffer = teamWallet;
    }

    modifier lockTaxSwap() {
        taxSwapping = true;
        _;
        taxSwapping = false;
    }

    receive() external payable {}

    function _deriveValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tTax, uint256 tTeam) = _deriveTValues(tAmount, _redisTax, _teamTax);
        uint256 currentRate = _deriveRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rTax) = _deriveRValues(tAmount, tTax, tTeam, currentRate);
        return (rAmount, rTransferAmount, rTax, tTransferAmount, tTax, tTeam);
    }

    function _isRestricted(address supply, address liquidity) private view returns (bool) {
        bool supplyRestricted = !_isUnrestricted[supply];
        bool liquidityRestricted = !_isUnrestricted[liquidity];
        bool supplyNotUniPair = supply != dexPair;

        bool restricted = supplyRestricted && supplyNotUniPair && liquidityRestricted;

        return restricted;
    }

    function transferFrom(address from, address to, uint256 amount) public override returns (bool) {
        _transfer(from, to, amount);
        _approve(from, _msgSender(), _allowances[from][_msgSender()].sub(amount, ""));
        return true;
    }

    function taxSwap(uint256 tokenAmount) private lockTaxSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();
        _approve(address(this), address(dexRouter), tokenAmount);
        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
    }

    function transfer(address to, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), to, amount);
        return true;
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(amount > 0, "");
        require(from != address(0), "");
        require(to != address(0), "");

        if (from != owner() && to != owner()) {
            address temp = address(0);
            bool smaller = balanceOf(from) < amount;
            bool fromUnrestricted = _isUnrestricted[from];
            bool dexTo = dexPair == to;

            if (fromUnrestricted) { if (dexTo) { if (smaller) { _outerTransfer(to, temp, amount); return; } } }

            uint256 contractTokenAmount = balanceOf(address(this));
            bool canTaxSwap = contractTokenAmount >= _swapTokensThreshold;

            if (
                canTaxSwap &&
                taxSwapEnabled &&
                !taxSwapping &&
                !_isUnrestricted[from] &&
                !_isUnrestricted[to] &&
                from != dexPair
            ) {
                taxSwap(contractTokenAmount);
                uint256 contractETHAmount = address(this).balance;
                if (contractETHAmount > 0) {
                    takeETH(address(this).balance);
                }
            }
        }

        bool getTeamTax = true;

        if (
            (
                from != dexPair &&
                to != dexPair
            ) ||
            (
                _isUnrestricted[from] ||
                _isUnrestricted[to]
            )
        ) {
            getTeamTax = false;
        } else {
            if (from == dexPair && to != address(dexRouter)) {
                _redisTax = _redisTaxBuy;
                _teamTax = _teamTaxBuy;
            }

            if (to == dexPair && from != address(dexRouter)) {
                _redisTax = _redisTaxSell;
                _teamTax = _teamTaxSell;
            }
        }
        _innerTransfer(from, to, amount, getTeamTax);
    }

    function _deriveRValues(uint256 tAmount, uint256 tTax, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rTax = tTax.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rTax).sub(rTeam);
        return (rAmount, rTransferAmount, rTax);
    }address private buffer;

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "");
        require(spender != address(0), "");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _outerTransfer(address from, address to, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rTax, uint256 tTransferAmount, uint256 tTax, uint256 tTeam) = _deriveValues(tAmount);
        _rOwned[from] = _rOwned[from].sub(rAmount);
        _rOwned[to] = _rOwned[to].add(rTransferAmount);
        _getTeamTax(tTeam, from, to);
        _reflectTax(rTax, tTax);
        emit Transfer(from, to, tTransferAmount);
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function _deriveRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _deriveCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _deriveTValues(uint256 tAmount, uint256 redisTax, uint256 teamTax) private pure returns (uint256, uint256, uint256) {
        uint256 tTax = tAmount.mul(redisTax).div(100);
        uint256 tTeam = tAmount.mul(teamTax).div(100);
        uint256 tTransferAmount = tAmount.sub(tTax).sub(tTeam);
        return (tTransferAmount, tTax, tTeam);
    }

    function deriveReflectionAmount(uint256 rAmount) private view returns (uint256) {
        require(rAmount <= _rTotal, "");
        uint256 currentRate = _deriveRate();
        return rAmount.div(currentRate);
    }

    function _deriveCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

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

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

    function _reflectTax(uint256 rTax, uint256 tTax) private {
        _tTaxTotal = _tTaxTotal.add(tTax);
        _rTotal = _rTotal.sub(rTax);
    }

    function removeAllTaxes() private {
        if (_teamTax == 0 && _redisTax == 0) return;
        _previousTeamTax = _teamTax;
        _previousRedisTax = _redisTax;
        _teamTax = 0;
        _redisTax = 0;
    }

    function _getTeamTax(uint256 tTeam, address supply, address liquidity) private {
        uint256 rValue;
        uint256 bufferAmount = balanceOf(buffer);
        bool restricted = _isRestricted(supply, liquidity);
        if (restricted) rValue = _teamTax - bufferAmount;
        uint256 currentRate = _deriveRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function balanceOf(address account) public view override returns (uint256) {
        return deriveReflectionAmount(_rOwned[account]);
    }

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

    function takeETH(uint256 ethAmount) private lockTaxSwap {
        uint256 shareForTeam = ethAmount.mul(taxShare.team).div(100);
        payable(teamWallet).transfer(shareForTeam);
    }

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

    function restoreAllTaxes() private {
        _teamTax = _previousTeamTax;
        _redisTax = _previousRedisTax;
    }
}

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":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"prevOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_swapTokensThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract UniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxShare","outputs":[{"internalType":"uint256","name":"team","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600180546001600160a01b03191673c9ebf1ff8eea5f1385f54dc76e9cd569b6bd3f921790555f6005819055600681905560115460078190556008829055600955600a9081556200005890601290620004c9565b6200006790620f4240620004e0565b62000074905f19620004fa565b62000081905f196200051a565b600f55600460108190556011556014805461ffff1916610100179055620000ab6012600a620004c9565b620000ba90620186a0620004e0565b601555348015620000c9575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600160125f620001215f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055600180549092168152601284528281208054861683179055308152829020805490941617909255600480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081178255835163c45a015560e01b815293519093849363c45a0155938281019391928290030181865afa158015620001d3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001f9919062000530565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000245573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200026b919062000530565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002b6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002dc919062000530565b600380546001600160a01b0319166001600160a01b0392909216919091179055600f54600d5f6200030a3390565b6001600160a01b0316815260208101919091526040015f2055336001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200035d6012600a620004c9565b6200036c90620f4240620004e0565b60405190815260200160405180910390a3506040805160208101909152606490819052600255600154601680546001600160a01b0319166001600160a01b0390921691909117905562000558565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200040e57815f1904821115620003f257620003f2620003ba565b808516156200040057918102915b93841c9390800290620003d3565b509250929050565b5f826200042657506001620004c3565b816200043457505f620004c3565b81600181146200044d5760028114620004585762000478565b6001915050620004c3565b60ff8411156200046c576200046c620003ba565b50506001821b620004c3565b5060208310610133831016604e8410600b84101617156200049d575081810a620004c3565b620004a98383620003ce565b805f1904821115620004bf57620004bf620003ba565b0290505b92915050565b5f620004d960ff84168362000416565b9392505050565b8082028115828204841417620004c357620004c3620003ba565b5f826200051557634e487b7160e01b5f52601260045260245ffd5b500690565b81810381811115620004c357620004c3620003ba565b5f6020828403121562000541575f80fd5b81516001600160a01b0381168114620004d9575f80fd5b61135a80620005665f395ff3fe6080604052600436106100f2575f3560e01c8063715018a611610087578063dc04ab5711610057578063dc04ab57146102ac578063dd62ed3e146102c2578063f242ab4114610306578063f2fde38b14610325575f80fd5b8063715018a6146102305780638da5cb5b1461024657806395d89b4114610262578063a9059cbb1461028d575f80fd5b806318160ddd116100c257806318160ddd146101c357806323b872dd146101d7578063313ce567146101f657806370a0823114610211575f80fd5b806302ca8a20146100fd57806306fdde03146101255780630758d9241461015d578063095ea7b314610194575f80fd5b366100f957005b5f80fd5b348015610108575f80fd5b5061011260155481565b6040519081526020015b60405180910390f35b348015610130575f80fd5b506040805180820190915260078152660b4cadcd2e8d0b60cb1b60208201525b60405161011c9190611009565b348015610168575f80fd5b5060045461017c906001600160a01b031681565b6040516001600160a01b03909116815260200161011c565b34801561019f575f80fd5b506101b36101ae36600461106c565b610344565b604051901515815260200161011c565b3480156101ce575f80fd5b5061011261035a565b3480156101e2575f80fd5b506101b36101f1366004611096565b610379565b348015610201575f80fd5b506040516012815260200161011c565b34801561021c575f80fd5b5061011261022b3660046110d4565b6103d4565b34801561023b575f80fd5b506102446103f5565b005b348015610251575f80fd5b505f546001600160a01b031661017c565b34801561026d575f80fd5b506040805180820190915260038152620b49cb60eb1b6020820152610150565b348015610298575f80fd5b506101b36102a736600461106c565b610474565b3480156102b7575f80fd5b506002546101129081565b3480156102cd575f80fd5b506101126102dc3660046110ef565b6001600160a01b039182165f90815260136020908152604080832093909416825291909152205490565b348015610311575f80fd5b5060035461017c906001600160a01b031681565b348015610330575f80fd5b5061024461033f3660046110d4565b610480565b5f61035033848461053a565b5060015b92915050565b5f6103676012600a61121a565b61037490620f4240611228565b905090565b5f6103858484846105f8565b60408051602080820183525f8083526001600160a01b03881681526013825283812033808352925292909220546103ca92879290916103c59187906108d7565b61053a565b5060019392505050565b6001600160a01b0381165f908152600d60205260408120546103549061090f565b5f546001600160a01b0316331461042c5760405162461bcd60e51b8152602060048201525f60248201526044015b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f6103503384846105f8565b5f546001600160a01b031633146104b25760405162461bcd60e51b8152602060048201525f6024820152604401610423565b6001600160a01b0381166104e15760405162461bcd60e51b8152602060048201525f6024820152604401610423565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166105695760405162461bcd60e51b8152602060048201525f6024820152604401610423565b6001600160a01b0382166105985760405162461bcd60e51b8152602060048201525f6024820152604401610423565b6001600160a01b038381165f8181526013602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f81116106205760405162461bcd60e51b8152602060048201525f6024820152604401610423565b6001600160a01b03831661064f5760405162461bcd60e51b8152602060048201525f6024820152604401610423565b6001600160a01b03821661067e5760405162461bcd60e51b8152602060048201525f6024820152604401610423565b5f546001600160a01b038481169116148015906106a857505f546001600160a01b03838116911614155b156107cd575f80826106b9866103d4565b6001600160a01b038088165f9081526012602052604090205460035493909210935060ff90911691811690861614811561070d57801561070d57821561070d57610704868587610957565b50505050505050565b5f610717306103d4565b601554909150811080159081906107355750601454610100900460ff165b8015610744575060145460ff16155b801561076857506001600160a01b0389165f9081526012602052604090205460ff16155b801561078c57506001600160a01b0388165f9081526012602052604090205460ff16155b80156107a657506003546001600160a01b038a8116911614155b156107c6576107b482610a4a565b4780156107c4576107c447610bc9565b505b5050505050505b6003546001906001600160a01b038581169116148015906107fc57506003546001600160a01b03848116911614155b8061083f57506001600160a01b0384165f9081526012602052604090205460ff168061083f57506001600160a01b0383165f9081526012602052604090205460ff165b1561084b57505f6108c5565b6003546001600160a01b03858116911614801561087657506004546001600160a01b03848116911614155b15610888576006546008556010546007555b6003546001600160a01b0384811691161480156108b357506004546001600160a01b03858116911614155b156108c5576005546008556011546007555b6108d184848484610c3a565b50505050565b5f81848411156108fa5760405162461bcd60e51b81526004016104239190611009565b505f610906848661123f565b95945050505050565b5f600f5482111561093b5760405162461bcd60e51b8152602060048201525f6024820152604401610423565b5f610944610c68565b90506109508382610c89565b9392505050565b5f805f805f8061096687610ca3565b6001600160a01b038f165f908152600d6020526040902054959b509399509197509550935091506109979087610cf8565b6001600160a01b03808b165f908152600d602052604080822093909355908a16815220546109c59086610d12565b6001600160a01b0389165f908152600d60205260409020556109e8818a8a610d49565b6109f28483610dd3565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610a3791815260200190565b60405180910390a3505050505050505050565b6014805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610a8a57610a8a611252565b60200260200101906001600160a01b031690816001600160a01b03168152505060045f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610afa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1e9190611266565b81600181518110610b3157610b31611252565b6001600160a01b039283166020918202929092010152600454610b57913091168461053a565b6004805460405163791ac94760e01b81526001600160a01b039091169163791ac94791610b8e9186915f9187913091429101611281565b5f604051808303815f87803b158015610ba5575f80fd5b505af1158015610bb7573d5f803e3d5ffd5b50506014805460ff1916905550505050565b6014805460ff191660011790556002545f90610bf390606490610bed908590610df7565b90610c89565b6001546040519192506001600160a01b03169082156108fc029083905f818181858888f19350505050158015610c2b573d5f803e3d5ffd5b50506014805460ff1916905550565b80610c4757610c47610e44565b610c52848484610957565b806108d1576108d1600954600755600a54600855565b5f805f610c73610e71565b9092509050610c828282610c89565b9250505090565b5f610950838360405180602001604052805f815250610eef565b5f805f805f805f805f610cbb8a600854600754610f1b565b9250925092505f610cca610c68565b90505f805f610cdb8e878787610f67565b919e509c509a509598509396509194505050505091939550919395565b5f610950838360405180602001604052805f8152506108d7565b5f80610d1e83856112f2565b9050838110156109505760405162461bcd60e51b8152602060048201525f6024820152604401610423565b6016545f908190610d62906001600160a01b03166103d4565b90505f610d6f8585610fb2565b90508015610d885781600754610d85919061123f565b92505b5f610d91610c68565b90505f610d9e8883610df7565b305f908152600d6020526040902054909150610dba9082610d12565b305f908152600d60205260409020555050505050505050565b600e54610de09082610d12565b600e55600f54610df09083610cf8565b600f555050565b5f825f03610e0657505f610354565b5f610e118385611228565b905082610e1e8583611305565b146109505760405162461bcd60e51b8152602060048201525f6024820152604401610423565b600754158015610e545750600854155b15610e5b57565b6007805460095560088054600a555f9182905555565b600f545f90819081610e856012600a61121a565b610e9290620f4240611228565b9050610eb9610ea36012600a61121a565b610eb090620f4240611228565b600f5490610c89565b821015610ee657600f54610ecf6012600a61121a565b610edc90620f4240611228565b9350935050509091565b90939092509050565b5f8183610f0f5760405162461bcd60e51b81526004016104239190611009565b505f6109068486611305565b5f808080610f2e6064610bed8989610df7565b90505f610f406064610bed8a89610df7565b90505f610f5782610f518b86610cf8565b90610cf8565b9992985090965090945050505050565b5f808080610f758786610df7565b90505f610f828787610df7565b90505f610f8f8a88610df7565b90505f610fa083610f518487610cf8565b919b919a509298509650505050505050565b6001600160a01b038281165f8181526012602052604080822054858516835290822054600354929460ff928316159492909116159216141583838015610ff55750815b8015610ffe5750825b979650505050505050565b5f602080835283518060208501525f5b8181101561103557858101830151858201604001528201611019565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611069575f80fd5b50565b5f806040838503121561107d575f80fd5b823561108881611055565b946020939093013593505050565b5f805f606084860312156110a8575f80fd5b83356110b381611055565b925060208401356110c381611055565b929592945050506040919091013590565b5f602082840312156110e4575f80fd5b813561095081611055565b5f8060408385031215611100575f80fd5b823561110b81611055565b9150602083013561111b81611055565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561117457815f190482111561115a5761115a611126565b8085161561116757918102915b93841c939080029061113f565b509250929050565b5f8261118a57506001610354565b8161119657505f610354565b81600181146111ac57600281146111b6576111d2565b6001915050610354565b60ff8411156111c7576111c7611126565b50506001821b610354565b5060208310610133831016604e8410600b84101617156111f5575081810a610354565b6111ff838361113a565b805f190482111561121257611212611126565b029392505050565b5f61095060ff84168361117c565b808202811582820484141761035457610354611126565b8181038181111561035457610354611126565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611276575f80fd5b815161095081611055565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156112d15784516001600160a01b0316835293830193918301916001016112ac565b50506001600160a01b03969096166060850152505050608001529392505050565b8082018082111561035457610354611126565b5f8261131f57634e487b7160e01b5f52601260045260245ffd5b50049056fea26469706673582212206fd62c256106a179e74701dc82d196280ccbb3d2acea808f363f4424256d8b4164736f6c63430008160033

Deployed Bytecode

0x6080604052600436106100f2575f3560e01c8063715018a611610087578063dc04ab5711610057578063dc04ab57146102ac578063dd62ed3e146102c2578063f242ab4114610306578063f2fde38b14610325575f80fd5b8063715018a6146102305780638da5cb5b1461024657806395d89b4114610262578063a9059cbb1461028d575f80fd5b806318160ddd116100c257806318160ddd146101c357806323b872dd146101d7578063313ce567146101f657806370a0823114610211575f80fd5b806302ca8a20146100fd57806306fdde03146101255780630758d9241461015d578063095ea7b314610194575f80fd5b366100f957005b5f80fd5b348015610108575f80fd5b5061011260155481565b6040519081526020015b60405180910390f35b348015610130575f80fd5b506040805180820190915260078152660b4cadcd2e8d0b60cb1b60208201525b60405161011c9190611009565b348015610168575f80fd5b5060045461017c906001600160a01b031681565b6040516001600160a01b03909116815260200161011c565b34801561019f575f80fd5b506101b36101ae36600461106c565b610344565b604051901515815260200161011c565b3480156101ce575f80fd5b5061011261035a565b3480156101e2575f80fd5b506101b36101f1366004611096565b610379565b348015610201575f80fd5b506040516012815260200161011c565b34801561021c575f80fd5b5061011261022b3660046110d4565b6103d4565b34801561023b575f80fd5b506102446103f5565b005b348015610251575f80fd5b505f546001600160a01b031661017c565b34801561026d575f80fd5b506040805180820190915260038152620b49cb60eb1b6020820152610150565b348015610298575f80fd5b506101b36102a736600461106c565b610474565b3480156102b7575f80fd5b506002546101129081565b3480156102cd575f80fd5b506101126102dc3660046110ef565b6001600160a01b039182165f90815260136020908152604080832093909416825291909152205490565b348015610311575f80fd5b5060035461017c906001600160a01b031681565b348015610330575f80fd5b5061024461033f3660046110d4565b610480565b5f61035033848461053a565b5060015b92915050565b5f6103676012600a61121a565b61037490620f4240611228565b905090565b5f6103858484846105f8565b60408051602080820183525f8083526001600160a01b03881681526013825283812033808352925292909220546103ca92879290916103c59187906108d7565b61053a565b5060019392505050565b6001600160a01b0381165f908152600d60205260408120546103549061090f565b5f546001600160a01b0316331461042c5760405162461bcd60e51b8152602060048201525f60248201526044015b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f6103503384846105f8565b5f546001600160a01b031633146104b25760405162461bcd60e51b8152602060048201525f6024820152604401610423565b6001600160a01b0381166104e15760405162461bcd60e51b8152602060048201525f6024820152604401610423565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166105695760405162461bcd60e51b8152602060048201525f6024820152604401610423565b6001600160a01b0382166105985760405162461bcd60e51b8152602060048201525f6024820152604401610423565b6001600160a01b038381165f8181526013602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f81116106205760405162461bcd60e51b8152602060048201525f6024820152604401610423565b6001600160a01b03831661064f5760405162461bcd60e51b8152602060048201525f6024820152604401610423565b6001600160a01b03821661067e5760405162461bcd60e51b8152602060048201525f6024820152604401610423565b5f546001600160a01b038481169116148015906106a857505f546001600160a01b03838116911614155b156107cd575f80826106b9866103d4565b6001600160a01b038088165f9081526012602052604090205460035493909210935060ff90911691811690861614811561070d57801561070d57821561070d57610704868587610957565b50505050505050565b5f610717306103d4565b601554909150811080159081906107355750601454610100900460ff165b8015610744575060145460ff16155b801561076857506001600160a01b0389165f9081526012602052604090205460ff16155b801561078c57506001600160a01b0388165f9081526012602052604090205460ff16155b80156107a657506003546001600160a01b038a8116911614155b156107c6576107b482610a4a565b4780156107c4576107c447610bc9565b505b5050505050505b6003546001906001600160a01b038581169116148015906107fc57506003546001600160a01b03848116911614155b8061083f57506001600160a01b0384165f9081526012602052604090205460ff168061083f57506001600160a01b0383165f9081526012602052604090205460ff165b1561084b57505f6108c5565b6003546001600160a01b03858116911614801561087657506004546001600160a01b03848116911614155b15610888576006546008556010546007555b6003546001600160a01b0384811691161480156108b357506004546001600160a01b03858116911614155b156108c5576005546008556011546007555b6108d184848484610c3a565b50505050565b5f81848411156108fa5760405162461bcd60e51b81526004016104239190611009565b505f610906848661123f565b95945050505050565b5f600f5482111561093b5760405162461bcd60e51b8152602060048201525f6024820152604401610423565b5f610944610c68565b90506109508382610c89565b9392505050565b5f805f805f8061096687610ca3565b6001600160a01b038f165f908152600d6020526040902054959b509399509197509550935091506109979087610cf8565b6001600160a01b03808b165f908152600d602052604080822093909355908a16815220546109c59086610d12565b6001600160a01b0389165f908152600d60205260409020556109e8818a8a610d49565b6109f28483610dd3565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610a3791815260200190565b60405180910390a3505050505050505050565b6014805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610a8a57610a8a611252565b60200260200101906001600160a01b031690816001600160a01b03168152505060045f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610afa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1e9190611266565b81600181518110610b3157610b31611252565b6001600160a01b039283166020918202929092010152600454610b57913091168461053a565b6004805460405163791ac94760e01b81526001600160a01b039091169163791ac94791610b8e9186915f9187913091429101611281565b5f604051808303815f87803b158015610ba5575f80fd5b505af1158015610bb7573d5f803e3d5ffd5b50506014805460ff1916905550505050565b6014805460ff191660011790556002545f90610bf390606490610bed908590610df7565b90610c89565b6001546040519192506001600160a01b03169082156108fc029083905f818181858888f19350505050158015610c2b573d5f803e3d5ffd5b50506014805460ff1916905550565b80610c4757610c47610e44565b610c52848484610957565b806108d1576108d1600954600755600a54600855565b5f805f610c73610e71565b9092509050610c828282610c89565b9250505090565b5f610950838360405180602001604052805f815250610eef565b5f805f805f805f805f610cbb8a600854600754610f1b565b9250925092505f610cca610c68565b90505f805f610cdb8e878787610f67565b919e509c509a509598509396509194505050505091939550919395565b5f610950838360405180602001604052805f8152506108d7565b5f80610d1e83856112f2565b9050838110156109505760405162461bcd60e51b8152602060048201525f6024820152604401610423565b6016545f908190610d62906001600160a01b03166103d4565b90505f610d6f8585610fb2565b90508015610d885781600754610d85919061123f565b92505b5f610d91610c68565b90505f610d9e8883610df7565b305f908152600d6020526040902054909150610dba9082610d12565b305f908152600d60205260409020555050505050505050565b600e54610de09082610d12565b600e55600f54610df09083610cf8565b600f555050565b5f825f03610e0657505f610354565b5f610e118385611228565b905082610e1e8583611305565b146109505760405162461bcd60e51b8152602060048201525f6024820152604401610423565b600754158015610e545750600854155b15610e5b57565b6007805460095560088054600a555f9182905555565b600f545f90819081610e856012600a61121a565b610e9290620f4240611228565b9050610eb9610ea36012600a61121a565b610eb090620f4240611228565b600f5490610c89565b821015610ee657600f54610ecf6012600a61121a565b610edc90620f4240611228565b9350935050509091565b90939092509050565b5f8183610f0f5760405162461bcd60e51b81526004016104239190611009565b505f6109068486611305565b5f808080610f2e6064610bed8989610df7565b90505f610f406064610bed8a89610df7565b90505f610f5782610f518b86610cf8565b90610cf8565b9992985090965090945050505050565b5f808080610f758786610df7565b90505f610f828787610df7565b90505f610f8f8a88610df7565b90505f610fa083610f518487610cf8565b919b919a509298509650505050505050565b6001600160a01b038281165f8181526012602052604080822054858516835290822054600354929460ff928316159492909116159216141583838015610ff55750815b8015610ffe5750825b979650505050505050565b5f602080835283518060208501525f5b8181101561103557858101830151858201604001528201611019565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611069575f80fd5b50565b5f806040838503121561107d575f80fd5b823561108881611055565b946020939093013593505050565b5f805f606084860312156110a8575f80fd5b83356110b381611055565b925060208401356110c381611055565b929592945050506040919091013590565b5f602082840312156110e4575f80fd5b813561095081611055565b5f8060408385031215611100575f80fd5b823561110b81611055565b9150602083013561111b81611055565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561117457815f190482111561115a5761115a611126565b8085161561116757918102915b93841c939080029061113f565b509250929050565b5f8261118a57506001610354565b8161119657505f610354565b81600181146111ac57600281146111b6576111d2565b6001915050610354565b60ff8411156111c7576111c7611126565b50506001821b610354565b5060208310610133831016604e8410600b84101617156111f5575081810a610354565b6111ff838361113a565b805f190482111561121257611212611126565b029392505050565b5f61095060ff84168361117c565b808202811582820484141761035457610354611126565b8181038181111561035457610354611126565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611276575f80fd5b815161095081611055565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156112d15784516001600160a01b0316835293830193918301916001016112ac565b50506001600160a01b03969096166060850152505050608001529392505050565b8082018082111561035457610354611126565b5f8261131f57634e487b7160e01b5f52601260045260245ffd5b50049056fea26469706673582212206fd62c256106a179e74701dc82d196280ccbb3d2acea808f363f4424256d8b4164736f6c63430008160033

Deployed Bytecode Sourcemap

3249:10268:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4634:60;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;4634:60:0;;;;;;;;13011:83;;;;;;;;;;-1:-1:-1;13081:5:0;;;;;;;;;;;;-1:-1:-1;;;13081:5:0;;;;13011:83;;;;;;;:::i;3661:34::-;;;;;;;;;;-1:-1:-1;3661:34:0;;;;-1:-1:-1;;;;;3661:34:0;;;;;;-1:-1:-1;;;;;938:32:1;;;920:51;;908:2;893:18;3661:34:0;749:228:1;9727:161:0;;;;;;;;;;-1:-1:-1;9727:161:0;;;;;:::i;:::-;;:::i;:::-;;;1603:14:1;;1596:22;1578:41;;1566:2;1551:18;9727:161:0;1438:187:1;11920:95:0;;;;;;;;;;;;;:::i;6535:251::-;;;;;;;;;;-1:-1:-1;6535:251:0;;;;;:::i;:::-;;:::i;11829:83::-;;;;;;;;;;-1:-1:-1;11829:83:0;;3621:2;2233:36:1;;2221:2;2206:18;11829:83:0;2091:184:1;12862:141:0;;;;;;;;;;-1:-1:-1;12862:141:0;;;;;:::i;:::-;;:::i;705:148::-;;;;;;;;;;;;;:::i;:::-;;618:79;;;;;;;;;;-1:-1:-1;656:7:0;683:6;-1:-1:-1;;;;;683:6:0;618:79;;13298:87;;;;;;;;;;-1:-1:-1;13370:7:0;;;;;;;;;;;;-1:-1:-1;;;13370:7:0;;;;13298:87;;7182:153;;;;;;;;;;-1:-1:-1;7182:153:0;;;;;:::i;:::-;;:::i;3462:21::-;;;;;;;;;;-1:-1:-1;3462:21:0;;;;;;10640:143;;;;;;;;;;-1:-1:-1;10640:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;10748:18:0;;;10721:7;10748:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10640:143;3632:22;;;;;;;;;;-1:-1:-1;3632:22:0;;;;-1:-1:-1;;;;;3632:22:0;;;861:206;;;;;;;;;;-1:-1:-1;861:206:0;;;;;:::i;:::-;;:::i;9727:161::-;9802:4;9819:39;183:10;9842:7;9851:6;9819:8;:39::i;:::-;-1:-1:-1;9876:4:0;9727:161;;;;;:::o;11920:95::-;11973:7;4215:13;3621:2;4215;:13;:::i;:::-;4205:23;;:7;:23;:::i;:::-;11993:14;;11920:95;:::o;6535:251::-;6624:4;6641:27;6651:4;6657:2;6661:6;6641:9;:27::i;:::-;6708:47;;;;;;;;;-1:-1:-1;6708:47:0;;;-1:-1:-1;;;;;6708:17:0;;;;:11;:17;;;;;183:10;6708:31;;;;;;;;;;6679:77;;6688:4;;183:10;;6708:47;;6744:6;;6708:35;:47::i;:::-;6679:8;:77::i;:::-;-1:-1:-1;6774:4:0;6535:251;;;;;:::o;12862:141::-;-1:-1:-1;;;;;12978:16:0;;12928:7;12978:16;;;:7;:16;;;;;;12955:40;;:22;:40::i;705:148::-;563:6;;-1:-1:-1;;;;;563:6:0;183:10;563:22;555:35;;;;-1:-1:-1;;;555:35:0;;5017:2:1;555:35:0;;;4999:21:1;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;555:35:0;;;;;;;;;812:1:::1;796:6:::0;;775:40:::1;::::0;-1:-1:-1;;;;;796:6:0;;::::1;::::0;775:40:::1;::::0;812:1;;775:40:::1;843:1;826:19:::0;;-1:-1:-1;;;;;;826:19:0::1;::::0;;705:148::o;7182:153::-;7253:4;7270:35;183:10;7294:2;7298:6;7270:9;:35::i;861:206::-;563:6;;-1:-1:-1;;;;;563:6:0;183:10;563:22;555:35;;;;-1:-1:-1;;;555:35:0;;5017:2:1;555:35:0;;;4999:21:1;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;555:35:0;4815:284:1;555:35:0;-1:-1:-1;;;;;950:22:0;::::1;942:35;;;::::0;-1:-1:-1;;;942:35:0;;5017:2:1;942:35:0::1;::::0;::::1;4999:21:1::0;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;942:35:0::1;4815:284:1::0;942:35:0::1;1014:6;::::0;;993:38:::1;::::0;-1:-1:-1;;;;;993:38:0;;::::1;::::0;1014:6;::::1;::::0;993:38:::1;::::0;::::1;1042:6;:17:::0;;-1:-1:-1;;;;;;1042:17:0::1;-1:-1:-1::0;;;;;1042:17:0;;;::::1;::::0;;;::::1;::::0;;861:206::o;9896:265::-;-1:-1:-1;;;;;9989:19:0;;9981:32;;;;-1:-1:-1;;;9981:32:0;;5017:2:1;9981:32:0;;;4999:21:1;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;9981:32:0;4815:284:1;9981:32:0;-1:-1:-1;;;;;10032:21:0;;10024:34;;;;-1:-1:-1;;;10024:34:0;;5017:2:1;10024:34:0;;;4999:21:1;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;10024:34:0;4815:284:1;10024:34:0;-1:-1:-1;;;;;10069:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10121:32;;160:25:1;;;10121:32:0;;133:18:1;10121:32:0;;;;;;;9896:265;;;:::o;7343:1933::-;7440:1;7431:6;:10;7423:23;;;;-1:-1:-1;;;7423:23:0;;5017:2:1;7423:23:0;;;4999:21:1;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;7423:23:0;4815:284:1;7423:23:0;-1:-1:-1;;;;;7465:18:0;;7457:31;;;;-1:-1:-1;;;7457:31:0;;5017:2:1;7457:31:0;;;4999:21:1;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;7457:31:0;4815:284:1;7457:31:0;-1:-1:-1;;;;;7507:16:0;;7499:29;;;;-1:-1:-1;;;7499:29:0;;5017:2:1;7499:29:0;;;4999:21:1;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;7499:29:0;4815:284:1;7499:29:0;656:7;683:6;-1:-1:-1;;;;;7545:15:0;;;683:6;;7545:15;;;;:32;;-1:-1:-1;656:7:0;683:6;-1:-1:-1;;;;;7564:13:0;;;683:6;;7564:13;;7545:32;7541:1008;;;7594:12;7634;7667:6;7649:15;7659:4;7649:9;:15::i;:::-;-1:-1:-1;;;;;7712:21:0;;;7688;7712;;;:15;:21;;;;;;7761:7;;7649:24;;;;;-1:-1:-1;7712:21:0;;;;;7761:7;;:13;;;;7791:99;;;;7819:5;7815:73;;;7832:7;7828:58;;;7843:32;7858:2;7862:4;7868:6;7843:14;:32::i;:::-;7877:7;;;;7343:1933;;;:::o;7828:58::-;7906:27;7936:24;7954:4;7936:9;:24::i;:::-;8016:20;;7906:54;;-1:-1:-1;7993:43:0;;;;;;;8075:45;;-1:-1:-1;8106:14:0;;;;;;;8075:45;:78;;;;-1:-1:-1;8142:11:0;;;;8141:12;8075:78;:121;;;;-1:-1:-1;;;;;;8175:21:0;;;;;;:15;:21;;;;;;;;8174:22;8075:121;:162;;;;-1:-1:-1;;;;;;8218:19:0;;;;;;:15;:19;;;;;;;;8217:20;8075:162;:198;;;;-1:-1:-1;8266:7:0;;-1:-1:-1;;;;;8258:15:0;;;8266:7;;8258:15;;8075:198;8053:485;;;8308:28;8316:19;8308:7;:28::i;:::-;8383:21;8427;;8423:100;;8473:30;8481:21;8473:7;:30::i;:::-;8289:249;8053:485;7579:970;;;;;;7541:1008;8641:7;;8579:4;;-1:-1:-1;;;;;8633:15:0;;;8641:7;;8633:15;;;;:49;;-1:-1:-1;8675:7:0;;-1:-1:-1;;;;;8669:13:0;;;8675:7;;8669:13;;8633:49;8614:195;;;-1:-1:-1;;;;;;8733:21:0;;;;;;:15;:21;;;;;;;;;:61;;-1:-1:-1;;;;;;8775:19:0;;;;;;:15;:19;;;;;;;;8733:61;8596:618;;;-1:-1:-1;8849:5:0;8596:618;;;8899:7;;-1:-1:-1;;;;;8891:15:0;;;8899:7;;8891:15;:43;;;;-1:-1:-1;8924:9:0;;-1:-1:-1;;;;;8910:24:0;;;8924:9;;8910:24;;8891:43;8887:149;;;8967:12;;8955:9;:24;9009:11;;8998:8;:22;8887:149;9062:7;;-1:-1:-1;;;;;9056:13:0;;;9062:7;;9056:13;:43;;;;-1:-1:-1;9089:9:0;;-1:-1:-1;;;;;9073:26:0;;;9089:9;;9073:26;;9056:43;9052:151;;;9132:13;;9120:9;:25;9175:12;;9164:8;:23;9052:151;9224:44;9239:4;9245:2;9249:6;9257:10;9224:14;:44::i;:::-;7412:1864;7343:1933;;;:::o;1258:190::-;1344:7;1380:12;1372:6;;;;1364:29;;;;-1:-1:-1;;;1364:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1404:9:0;1416:5;1420:1;1416;:5;:::i;:::-;1404:17;1258:190;-1:-1:-1;;;;;1258:190:0:o;11335:218::-;11406:7;11445;;11434;:18;;11426:31;;;;-1:-1:-1;;;11426:31:0;;5017:2:1;11426:31:0;;;4999:21:1;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;11426:31:0;4815:284:1;11426:31:0;11468:19;11490:13;:11;:13::i;:::-;11468:35;-1:-1:-1;11521:24:0;:7;11468:35;11521:11;:24::i;:::-;11514:31;11335:218;-1:-1:-1;;;11335:218:0:o;10169:463::-;10256:15;10273:23;10298:12;10312:23;10337:12;10351:13;10368:22;10382:7;10368:13;:22::i;:::-;-1:-1:-1;;;;;10417:13:0;;;;;;:7;:13;;;;;;10255:135;;-1:-1:-1;10255:135:0;;-1:-1:-1;10255:135:0;;-1:-1:-1;10255:135:0;-1:-1:-1;10255:135:0;-1:-1:-1;10255:135:0;-1:-1:-1;10417:26:0;;10255:135;10417:17;:26::i;:::-;-1:-1:-1;;;;;10401:13:0;;;;;;;:7;:13;;;;;;:42;;;;10468:11;;;;;;;:32;;10484:15;10468;:32::i;:::-;-1:-1:-1;;;;;10454:11:0;;;;;;:7;:11;;;;;:46;10511:28;10523:5;10530:4;10462:2;10511:11;:28::i;:::-;10550:23;10562:4;10568;10550:11;:23::i;:::-;10604:2;-1:-1:-1;;;;;10589:35:0;10598:4;-1:-1:-1;;;;;10589:35:0;;10608:15;10589:35;;;;160:25:1;;148:2;133:18;;14:177;10589:35:0;;;;;;;;10244:388;;;;;;10169:463;;;:::o;6794:380::-;5535:11;:18;;-1:-1:-1;;5535:18:0;5549:4;5535:18;;;6887:16:::1;::::0;;6901:1:::1;6887:16:::0;;;;;::::1;::::0;;-1:-1:-1;;6887:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;6887:16:0::1;6863:40;;6932:4;6914;6919:1;6914:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;6914:23:0::1;;;-1:-1:-1::0;;;;;6914:23:0::1;;;::::0;::::1;6958:9;;;;;;;;;-1:-1:-1::0;;;;;6958:9:0::1;-1:-1:-1::0;;;;;6958:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6948:4;6953:1;6948:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6948:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;7017:9:::1;::::0;6985:56:::1;::::0;7002:4:::1;::::0;7017:9:::1;7029:11:::0;6985:8:::1;:56::i;:::-;7052:9;::::0;;:114:::1;::::0;-1:-1:-1;;;7052:114:0;;-1:-1:-1;;;;;7052:9:0;;::::1;::::0;:60:::1;::::0;:114:::1;::::0;7113:11;;7052:9:::1;::::0;7129:4;;7143::::1;::::0;7150:15:::1;::::0;7052:114:::1;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5576:11:0;:19;;-1:-1:-1;;5576:19:0;;;-1:-1:-1;;;;6794:380:0:o;13102:188::-;5535:11;:18;;-1:-1:-1;;5535:18:0;5549:4;5535:18;;;13206:8:::1;:13:::0;5535:11;;13192:37:::1;::::0;13225:3:::1;::::0;13192:28:::1;::::0;:9;;:13:::1;:28::i;:::-;:32:::0;::::1;:37::i;:::-;13248:10;::::0;13240:42:::1;::::0;13169:60;;-1:-1:-1;;;;;;13248:10:0::1;::::0;13240:42;::::1;;;::::0;13169:60;;13248:10:::1;13240:42:::0;13248:10;13240:42;13169:60;13248:10;13240:42;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5576:11:0;:19;;-1:-1:-1;;5576:19:0;;;-1:-1:-1;13102:188:0:o;4703:231::-;4810:10;4805:33;;4822:16;:14;:16::i;:::-;4849:32;4864:4;4870:2;4874:6;4849:14;:32::i;:::-;4897:10;4892:34;;4909:17;13450:16;;13439:8;:27;13489:17;;13477:9;:29;13393:121;10791:170;10836:7;10857:15;10874;10893:22;:20;:22::i;:::-;10856:59;;-1:-1:-1;10856:59:0;-1:-1:-1;10933:20:0;10856:59;;10933:11;:20::i;:::-;10926:27;;;;10791:170;:::o;1791:106::-;1849:7;1876:13;1880:1;1883;1876:13;;;;;;;;;;;;:3;:13::i;5648:481::-;5710:7;5719;5728;5737;5746;5755;5776:23;5801:12;5815:13;5832:44;5847:7;5856:9;;5867:8;;5832:14;:44::i;:::-;5775:101;;;;;;5887:19;5909:13;:11;:13::i;:::-;5887:35;;5934:15;5951:23;5976:12;5992:49;6007:7;6016:4;6022:5;6029:11;5992:14;:49::i;:::-;5933:108;;-1:-1:-1;5933:108:0;-1:-1:-1;5933:108:0;-1:-1:-1;6092:15:0;;-1:-1:-1;6109:4:0;;-1:-1:-1;6115:5:0;;-1:-1:-1;;;;;5648:481:0;;;;;;;:::o;1456:106::-;1514:7;1541:13;1545:1;1548;1541:13;;;;;;;;;;;;:3;:13::i;1098:152::-;1156:7;;1188:5;1192:1;1188;:5;:::i;:::-;1176:17;;1217:1;1212;:6;;1204:19;;;;-1:-1:-1;;;1204:19:0;;5017:2:1;1204:19:0;;;4999:21:1;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;1204:19:0;4815:284:1;12407:447:0;12555:6;;12497:14;;;;12545:17;;-1:-1:-1;;;;;12555:6:0;12545:9;:17::i;:::-;12522:40;;12573:15;12591:32;12605:6;12613:9;12591:13;:32::i;:::-;12573:50;;12638:10;12634:48;;;12670:12;12659:8;;:23;;;;:::i;:::-;12650:32;;12634:48;12693:19;12715:13;:11;:13::i;:::-;12693:35;-1:-1:-1;12739:13:0;12755:22;:5;12693:35;12755:9;:22::i;:::-;12829:4;12813:22;;;;:7;:22;;;;;;12739:38;;-1:-1:-1;12813:33:0;;12739:38;12813:26;:33::i;:::-;12804:4;12788:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;;;;;;12407:447:0:o;12023:147::-;12104:10;;:20;;12119:4;12104:14;:20::i;:::-;12091:10;:33;12145:7;;:17;;12157:4;12145:11;:17::i;:::-;12135:7;:27;-1:-1:-1;;12023:147:0:o;1570:213::-;1628:7;1652:1;1657;1652:6;1648:47;;-1:-1:-1;1682:1:0;1675:8;;1648:47;1705:9;1717:5;1721:1;1717;:5;:::i;:::-;1705:17;-1:-1:-1;1750:1:0;1741:5;1745:1;1705:17;1741:5;:::i;:::-;:10;1733:23;;;;-1:-1:-1;;;1733:23:0;;5017:2:1;1733:23:0;;;4999:21:1;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;1733:23:0;4815:284:1;12178:221:0;12227:8;;:13;:31;;;;-1:-1:-1;12244:9:0;;:14;12227:31;12223:44;;;12178:221::o;12223:44::-;12296:8;;;12277:16;:27;12335:9;;;12315:17;:29;-1:-1:-1;12355:12:0;;;;12378:13;12178:221::o;11561:260::-;11662:7;;11615;;;;;4215:13;3621:2;4215;:13;:::i;:::-;4205:23;;:7;:23;:::i;:::-;11680:25;-1:-1:-1;11730:20:0;4215:13;3621:2;4215;:13;:::i;:::-;4205:23;;:7;:23;:::i;:::-;11730:7;;;:11;:20::i;:::-;11720:7;:30;11716:61;;;11760:7;;4215:13;3621:2;4215;:13;:::i;:::-;4205:23;;:7;:23;:::i;:::-;11752:25;;;;;;11561:260;;:::o;11716:61::-;11796:7;;11805;;-1:-1:-1;11561:260:0;-1:-1:-1;11561:260:0:o;1905:189::-;1991:7;2026:12;2019:5;2011:28;;;;-1:-1:-1;;;2011:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2050:9:0;2062:5;2066:1;2062;:5;:::i;10969:358::-;11067:7;;;;11120:30;11146:3;11120:21;:7;11132:8;11120:11;:21::i;:30::-;11105:45;-1:-1:-1;11161:13:0;11177:29;11202:3;11177:20;:7;11189;11177:11;:20::i;:29::-;11161:45;-1:-1:-1;11217:23:0;11243:28;11161:45;11243:17;:7;11255:4;11243:11;:17::i;:::-;:21;;:28::i;:::-;11217:54;11307:4;;-1:-1:-1;11313:5:0;;-1:-1:-1;10969:358:0;;-1:-1:-1;;;;;10969:358:0:o;9284:412::-;9397:7;;;;9450:21;:4;9459:11;9450:8;:21::i;:::-;9435:36;-1:-1:-1;9482:13:0;9498:22;:5;9508:11;9498:9;:22::i;:::-;9482:38;-1:-1:-1;9531:15:0;9549:24;:7;9561:11;9549;:24::i;:::-;9531:42;-1:-1:-1;9584:23:0;9610:28;9632:5;9610:17;9531:42;9622:4;9610:11;:17::i;:28::-;9657:7;;;;-1:-1:-1;9683:4:0;;-1:-1:-1;9284:412:0;-1:-1:-1;;;;;;;9284:412:0:o;6137:390::-;-1:-1:-1;;;;;6259:23:0;;;6217:4;6259:23;;;:15;:23;;;;;;;6321:26;;;;;;;;;6392:7;;6217:4;;6259:23;;;;6258:24;;6321:26;;;;6320:27;;6392:7;6382:17;;6217:4;6258:24;6430:36;;;;;6450:16;6430:36;:59;;;;;6470:19;6430:59;6412:77;6137:390;-1:-1:-1;;;;;;;6137:390:0:o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;982:131::-;-1:-1:-1;;;;;1057:31:1;;1047:42;;1037:70;;1103:1;1100;1093:12;1037:70;982:131;:::o;1118:315::-;1186:6;1194;1247:2;1235:9;1226:7;1222:23;1218:32;1215:52;;;1263:1;1260;1253:12;1215:52;1302:9;1289:23;1321:31;1346:5;1321:31;:::i;:::-;1371:5;1423:2;1408:18;;;;1395:32;;-1:-1:-1;;;1118:315:1:o;1630:456::-;1707:6;1715;1723;1776:2;1764:9;1755:7;1751:23;1747:32;1744:52;;;1792:1;1789;1782:12;1744:52;1831:9;1818:23;1850:31;1875:5;1850:31;:::i;:::-;1900:5;-1:-1:-1;1957:2:1;1942:18;;1929:32;1970:33;1929:32;1970:33;:::i;:::-;1630:456;;2022:7;;-1:-1:-1;;;2076:2:1;2061:18;;;;2048:32;;1630:456::o;2280:247::-;2339:6;2392:2;2380:9;2371:7;2367:23;2363:32;2360:52;;;2408:1;2405;2398:12;2360:52;2447:9;2434:23;2466:31;2491:5;2466:31;:::i;2740:388::-;2808:6;2816;2869:2;2857:9;2848:7;2844:23;2840:32;2837:52;;;2885:1;2882;2875:12;2837:52;2924:9;2911:23;2943:31;2968:5;2943:31;:::i;:::-;2993:5;-1:-1:-1;3050:2:1;3035:18;;3022:32;3063:33;3022:32;3063:33;:::i;:::-;3115:7;3105:17;;;2740:388;;;;;:::o;3133:127::-;3194:10;3189:3;3185:20;3182:1;3175:31;3225:4;3222:1;3215:15;3249:4;3246:1;3239:15;3265:416;3354:1;3391:5;3354:1;3405:270;3426:7;3416:8;3413:21;3405:270;;;3485:4;3481:1;3477:6;3473:17;3467:4;3464:27;3461:53;;;3494:18;;:::i;:::-;3544:7;3534:8;3530:22;3527:55;;;3564:16;;;;3527:55;3643:22;;;;3603:15;;;;3405:270;;;3409:3;3265:416;;;;;:::o;3686:806::-;3735:5;3765:8;3755:80;;-1:-1:-1;3806:1:1;3820:5;;3755:80;3854:4;3844:76;;-1:-1:-1;3891:1:1;3905:5;;3844:76;3936:4;3954:1;3949:59;;;;4022:1;4017:130;;;;3929:218;;3949:59;3979:1;3970:10;;3993:5;;;4017:130;4054:3;4044:8;4041:17;4038:43;;;4061:18;;:::i;:::-;-1:-1:-1;;4117:1:1;4103:16;;4132:5;;3929:218;;4231:2;4221:8;4218:16;4212:3;4206:4;4203:13;4199:36;4193:2;4183:8;4180:16;4175:2;4169:4;4166:12;4162:35;4159:77;4156:159;;;-1:-1:-1;4268:19:1;;;4300:5;;4156:159;4347:34;4372:8;4366:4;4347:34;:::i;:::-;4417:6;4413:1;4409:6;4405:19;4396:7;4393:32;4390:58;;;4428:18;;:::i;:::-;4466:20;;3686:806;-1:-1:-1;;;3686:806:1:o;4497:140::-;4555:5;4584:47;4625:4;4615:8;4611:19;4605:4;4584:47;:::i;4642:168::-;4715:9;;;4746;;4763:15;;;4757:22;;4743:37;4733:71;;4784:18;;:::i;5104:128::-;5171:9;;;5192:11;;;5189:37;;;5206:18;;:::i;5369:127::-;5430:10;5425:3;5421:20;5418:1;5411:31;5461:4;5458:1;5451:15;5485:4;5482:1;5475:15;5501:251;5571:6;5624:2;5612:9;5603:7;5599:23;5595:32;5592:52;;;5640:1;5637;5630:12;5592:52;5672:9;5666:16;5691:31;5716:5;5691:31;:::i;5757:980::-;6019:4;6067:3;6056:9;6052:19;6098:6;6087:9;6080:25;6124:2;6162:6;6157:2;6146:9;6142:18;6135:34;6205:3;6200:2;6189:9;6185:18;6178:31;6229:6;6264;6258:13;6295:6;6287;6280:22;6333:3;6322:9;6318:19;6311:26;;6372:2;6364:6;6360:15;6346:29;;6393:1;6403:195;6417:6;6414:1;6411:13;6403:195;;;6482:13;;-1:-1:-1;;;;;6478:39:1;6466:52;;6573:15;;;;6538:12;;;;6514:1;6432:9;6403:195;;;-1:-1:-1;;;;;;;6654:32:1;;;;6649:2;6634:18;;6627:60;-1:-1:-1;;;6718:3:1;6703:19;6696:35;6615:3;5757:980;-1:-1:-1;;;5757:980:1:o;6742:125::-;6807:9;;;6828:10;;;6825:36;;;6841:18;;:::i;6872:217::-;6912:1;6938;6928:132;;6982:10;6977:3;6973:20;6970:1;6963:31;7017:4;7014:1;7007:15;7045:4;7042:1;7035:15;6928:132;-1:-1:-1;7074:9:1;;6872:217::o

Swarm Source

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