ETH Price: $2,151.72 (+0.87%)

Token

Hope (HOPE)
 

Overview

Max Total Supply

1,000,000,000 HOPE

Holders

46

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
22,250,000 HOPE

Value
$0.00
0x8a5e7a986e4fe52fcd7c7eb2e4dac46d97c2ecbe
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:
HOPE

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-12-14
*/

// SPDX-License-Identifier: Unlicensed

/**
Next Gen Money!

Website: https://www.hopeprotocol.org
Telegram: https://t.me/hope_erc
Twitter: https://twitter.com/hope_protocol
 */

pragma solidity = 0.8.21;

abstract contract Context {
    constructor() {
    }

    function _msgSender() internal view returns (address payable) {
        return payable(msg.sender);
    }

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

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

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

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

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

interface IUniswapRouterV1 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function 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 swapExactETHForTokens(
        uint amountOutMin, 
        address[] calldata path, 
        address to, uint deadline
    ) external payable returns (uint[] memory amounts);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapRouterV2 is IUniswapRouterV1 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}

interface IUniswapFactoryV2 {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}

contract HOPE is Context, Ownable, IERC20 {

    string constant private _name = "Hope";
    string constant private _symbol = "HOPE";
    uint8 constant private _decimals = 9;
    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;
    address public lpPair;
    bool public tradeOpened = false;
    bool private swapping;
    bool private hasMaxTx = false;

    IUniswapRouterV2 public uniswapRouter;

    uint256 constant public _totalSupply = 10 ** 9 * 10**9;
    uint256 constant public swapFeeAfter = _totalSupply / 100_000;
    uint256 public buyMarketingFee = 110;
    uint256 public sellMarketingFee = 110;
    uint256 constant public transferFee = 0;
    uint256 constant public feeDivider = 1_000;
    uint256 private maxTxAmount = 25 * _totalSupply / 1000;
    bool private feeSwapEnabled = true;
    address payable private taxWallet;

    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private hasNoFees;
    mapping (address => bool) private liquidityProvider;
    mapping (address => bool) private checkLpPair;
    mapping (address => uint256) private balance;

        modifier inSwapFlag {
        swapping = true;
        _;
        swapping = false;
    }
    event SwapAndLiquify();


    constructor () {
        if (block.chainid == 56) {
            uniswapRouter = IUniswapRouterV2(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        } else if (block.chainid == 97) {
            uniswapRouter = IUniswapRouterV2(0xD99D1c33F9fC3444f8101754aBC46c52416550D1);
        } else if (block.chainid == 1 || block.chainid == 4 || block.chainid == 3) {
            uniswapRouter = IUniswapRouterV2(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        } else if (block.chainid == 42161) {
            uniswapRouter = IUniswapRouterV2(0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506);
        } else if (block.chainid == 5) {
            uniswapRouter = IUniswapRouterV2(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        } else {
            revert("Chain not valid");
        }
        hasNoFees[msg.sender] = true;
        taxWallet = payable(address(0xC74768F1227696cC63Cd7F7aA24F462E6290dB2B));
        hasNoFees[taxWallet] = true;
        liquidityProvider[msg.sender] = true;
        balance[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);

        lpPair = IUniswapFactoryV2(uniswapRouter.factory()).createPair(uniswapRouter.WETH(), address(this));
        checkLpPair[lpPair] = true;
        _approve(msg.sender, address(uniswapRouter), type(uint256).max);
        _approve(address(this), address(uniswapRouter), type(uint256).max);
    }

    function totalSupply() external pure override returns (uint256) { if (_totalSupply == 0) { revert(); } return _totalSupply; }
    function decimals() external pure override returns (uint8) { if (_totalSupply == 0) { revert(); } return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner(); }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function balanceOf(address account) public view override returns (uint256) {
        return balance[account];
    }

    function _transfer(address from, address to, uint256 amount) internal returns  (bool) {
        bool takeFee = true;
        require(to != address(0), "ERC20: transfer to the zero address");
        require(from != address(0), "ERC20: transfer from the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (isExcludedAccount(from,to)) {
            require(tradeOpened,"Trading is not enabled");
                    if(!checkLpPair[to] && from != address(this) && to != address(this) || checkIfTransfer(from,to) && !hasMaxTx)  { require(balanceOf(to) + amount <= maxTxAmount,"maxTxAmount exceed"); }}


        if(checkIfSell(from, to) &&  !swapping && shouldSwapBack(from)) {

            uint256 tokenAmount = balanceOf(address(this));
            if(tokenAmount >= swapFeeAfter) { 
                if(amount > swapFeeAfter) swapBack(tokenAmount);
             }
        }

        if (hasNoFees[from] || hasNoFees[to]){
            takeFee = false;
        }
        uint256 amountAfterFee = (takeFee) ? getAmountsToReceive(from, checkIfBuy(from, to), checkIfSell(from, to), amount) : amount;
        uint256 amountBeforeFee = (takeFee) ? amount : (!tradeOpened ? amount : 0);
        balance[from] -= amountBeforeFee; balance[to] += amountAfterFee; emit Transfer(from, to, amountAfterFee);

        return true;

    }

    function getAmountsToReceive(address from, bool isbuy, bool issell, uint256 amount) internal returns (uint256) {
        uint256 fee;
        if (isbuy)  fee = buyMarketingFee;  else if (issell)  fee = sellMarketingFee;  else  fee = transferFee; 
        if (fee == 0)  return amount; 
        uint256 feeAmount = amount * fee / feeDivider;
        if (feeAmount > 0) {

            balance[address(this)] += feeAmount;
            emit Transfer(from, address(this), feeAmount);
            
        }
        return amount - feeAmount;
    }

    function swapBack(uint256 tokenAmount) internal inSwapFlag {
        
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapRouter.WETH();

        if (_allowances[address(this)][address(uniswapRouter)] != type(uint256).max) {
            _allowances[address(this)][address(uniswapRouter)] = type(uint256).max;
        }

        try uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch {
            return;
        }

        if(address(this).balance > 0) taxWallet.transfer(address(this).balance);
    } 

    function openTrade() external onlyOwner {
        require(!tradeOpened, "Trading already enabled");
        tradeOpened = true;
    }

    function stopLimits() external onlyOwner {
        require(!hasMaxTx,"Already initalized");
        maxTxAmount = _totalSupply;
        hasMaxTx = true;
        buyMarketingFee = 10;
        sellMarketingFee = 10;
    }

    receive() external payable {}
    
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }
    
    function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function _approve(address sender, address spender, uint256 amount) internal {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");

        _allowances[sender][spender] = amount;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] -= amount;
        }

        return _transfer(sender, recipient, amount);
    }

    function isExcludedAccount(address ins, address out) internal view returns (bool) {

        bool isLimited = ins != owner()
            && out != owner()
            && msg.sender != owner()
            && !liquidityProvider[ins]  && !liquidityProvider[out] && out != address(0) && out != address(this);
            return isLimited;
    }
    
    function checkIfBuy(address ins, address out) internal view returns (bool) {
        bool _is_buy = !checkLpPair[out] && checkLpPair[ins];
        return _is_buy;
    }

    function checkIfSell(address ins, address out) internal view returns (bool) { 
        bool _is_sell = checkLpPair[out] && !checkLpPair[ins];
        return _is_sell;
    }

    function checkIfTransfer(address ins, address out) internal view returns (bool) { 
        bool _is_transfer = !checkLpPair[out] && !checkLpPair[ins];
        return _is_transfer;
    }

    function shouldSwapBack(address ins) internal view returns (bool) {
        bool canswap = feeSwapEnabled && !hasNoFees[ins];
        return canswap;
    }
}

Contract Security Audit

Contract ABI

API
[{"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":[],"name":"SwapAndLiquify","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":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"feeDivider","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stopLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapFeeAfter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradeOpened","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"transferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"uniswapRouter","outputs":[{"internalType":"contract IUniswapRouterV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526001805462ff00ff60a01b19169055606e60038190556004556103e862000035670de0b6b3a7640000601962000575565b6200004191906200059f565b6005556006805460ff191660011790553480156200005d575f80fd5b5062000069336200045f565b466038036200009e57600280546001600160a01b0319167310ed43c718714eb63d5aa57b78b54704e256024e179055620001cb565b46606103620000d357600280546001600160a01b03191673d99d1c33f9fc3444f8101754abc46c52416550d1179055620001cb565b4660011480620000e35750466004145b80620000ef5750466003145b156200012157600280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055620001cb565b4661a4b1036200015757600280546001600160a01b031916731b02da8cb0d097eb8d57a175b88c7d8b47997506179055620001cb565b466005036200018c57600280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055620001cb565b60405162461bcd60e51b815260206004820152600f60248201526e10da185a5b881b9bdd081d985b1a59608a1b60448201526064015b60405180910390fd5b335f8181526008602090815260408083208054600160ff19918216811790925560068054610100600160a81b03191674c74768f1227696cc63cd7f7aa24f462e6290db2b0017908190556001600160a01b0361010090910416855282852080548216831790558585526009845282852080549091169091179055600b8252808320670de0b6b3a76400009081905590519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a360025f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002da573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003009190620005bf565b6001600160a01b031663c9c6539660025f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200035f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003859190620005bf565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303815f875af1158015620003cf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003f59190620005bf565b600180546001600160a01b0319166001600160a01b0392831690811782555f908152600a60205260409020805460ff191690911790556002546200043e913391165f19620004ae565b600254620004599030906001600160a01b03165f19620004ae565b620005ee565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316620004fc5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401620001c2565b6001600160a01b0382166200054a5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401620001c2565b6001600160a01b039283165f9081526007602090815260408083209490951682529290925291902055565b80820281158282048414176200059957634e487b7160e01b5f52601160045260245ffd5b92915050565b5f82620005ba57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215620005d0575f80fd5b81516001600160a01b0381168114620005e7575f80fd5b9392505050565b6113c980620005fc5f395ff3fe608060405260043610610164575f3560e01c8063735de9f7116100cd57806395d89b4111610087578063b8fc1cc311610062578063b8fc1cc3146103f3578063dd62ed3e14610407578063f2fde38b1461044b578063fb201b1d1461046a575f80fd5b806395d89b4114610395578063a9059cbb146103c1578063acb2ad6f146103e0575f80fd5b8063735de9f71461031b5780637bce5a041461033a578063893d20e81461034f5780638da5cb5b1461034f578063917b546c1461036b5780639213691314610380575f80fd5b8063313ce5671161011e578063313ce5671461025c5780633eaaf86b14610277578063452ed4f1146102925780636bd11819146102b157806370a08231146102d1578063715018a614610305575f80fd5b806303fd2a451461016f57806306fdde03146101a1578063095ea7b3146101d657806318160ddd1461020557806323b872dd146102295780632721358c14610248575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b5061018461dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101ac575f80fd5b50604080518082019091526004815263486f706560e01b60208201525b6040516101989190611137565b3480156101e1575f80fd5b506101f56101f0366004611196565b61047e565b6040519015158152602001610198565b348015610210575f80fd5b50670de0b6b3a76400005b604051908152602001610198565b348015610234575f80fd5b506101f56102433660046111c0565b610494565b348015610253575f80fd5b5061021b610509565b348015610267575f80fd5b5060405160098152602001610198565b348015610282575f80fd5b5061021b670de0b6b3a764000081565b34801561029d575f80fd5b50600154610184906001600160a01b031681565b3480156102bc575f80fd5b506001546101f590600160a01b900460ff1681565b3480156102dc575f80fd5b5061021b6102eb3660046111fe565b6001600160a01b03165f908152600b602052604090205490565b348015610310575f80fd5b50610319610521565b005b348015610326575f80fd5b50600254610184906001600160a01b031681565b348015610345575f80fd5b5061021b60035481565b34801561035a575f80fd5b505f546001600160a01b0316610184565b348015610376575f80fd5b5061021b6103e881565b34801561038b575f80fd5b5061021b60045481565b3480156103a0575f80fd5b50604080518082019091526004815263484f504560e01b60208201526101c9565b3480156103cc575f80fd5b506101f56103db366004611196565b61055e565b3480156103eb575f80fd5b5061021b5f81565b3480156103fe575f80fd5b50610319610574565b348015610412575f80fd5b5061021b610421366004611219565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b348015610456575f80fd5b506103196104653660046111fe565b610617565b348015610475575f80fd5b506103196106b1565b5f61048a338484610749565b5060015b92915050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f19146104f6576001600160a01b0384165f908152600760209081526040808320338452909152812080548492906104f0908490611264565b90915550505b61050184848461080c565b949350505050565b61051e620186a0670de0b6b3a7640000611277565b81565b5f546001600160a01b031633146105535760405162461bcd60e51b815260040161054a90611296565b60405180910390fd5b61055c5f610c4d565b565b5f61056a33848461080c565b5060019392505050565b5f546001600160a01b0316331461059d5760405162461bcd60e51b815260040161054a90611296565b600154600160b01b900460ff16156105ec5760405162461bcd60e51b8152602060048201526012602482015271105b1c9958591e481a5b9a5d185b1a5e995960721b604482015260640161054a565b670de0b6b3a76400006005556001805460ff60b01b1916600160b01b179055600a6003819055600455565b5f546001600160a01b031633146106405760405162461bcd60e51b815260040161054a90611296565b6001600160a01b0381166106a55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161054a565b6106ae81610c4d565b50565b5f546001600160a01b031633146106da5760405162461bcd60e51b815260040161054a90611296565b600154600160a01b900460ff16156107345760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c6564000000000000000000604482015260640161054a565b6001805460ff60a01b1916600160a01b179055565b6001600160a01b0383166107955760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161054a565b6001600160a01b0382166107e15760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161054a565b6001600160a01b039283165f9081526007602090815260408083209490951682529290925291902055565b5f60016001600160a01b0384166108715760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161054a565b6001600160a01b0385166108d55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161054a565b5f83116109365760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161054a565b6109408585610c9c565b15610a7757600154600160a01b900460ff166109975760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b604482015260640161054a565b6001600160a01b0384165f908152600a602052604090205460ff161580156109c857506001600160a01b0385163014155b80156109dd57506001600160a01b0384163014155b80610a0357506109ed8585610d6b565b8015610a035750600154600160b01b900460ff16155b15610a775760055483610a2a866001600160a01b03165f908152600b602052604090205490565b610a3491906112cb565b1115610a775760405162461bcd60e51b81526020600482015260126024820152711b585e151e105b5bdd5b9d08195e18d9595960721b604482015260640161054a565b610a818585610db1565b8015610a975750600154600160a81b900460ff16155b8015610aa75750610aa785610df6565b15610afd57305f908152600b6020526040902054610ad0620186a0670de0b6b3a7640000611277565b8110610afb57610aeb620186a0670de0b6b3a7640000611277565b841115610afb57610afb81610e2b565b505b6001600160a01b0385165f9081526008602052604090205460ff1680610b3a57506001600160a01b0384165f9081526008602052604090205460ff165b15610b4257505f5b5f81610b4e5783610b6c565b610b6c86610b5c8888611026565b610b668989610db1565b8761106b565b90505f82610b9257600154600160a01b900460ff1615610b8c575f610b94565b84610b94565b845b6001600160a01b0388165f908152600b6020526040812080549293508392909190610bc0908490611264565b90915550506001600160a01b0386165f908152600b602052604081208054849290610bec9084906112cb565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c3891815260200190565b60405180910390a35060019695505050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f80610caf5f546001600160a01b031690565b6001600160a01b0316846001600160a01b031614158015610cdd57505f546001600160a01b03848116911614155b8015610cf357505f546001600160a01b03163314155b8015610d1757506001600160a01b0384165f9081526009602052604090205460ff16155b8015610d3b57506001600160a01b0383165f9081526009602052604090205460ff16155b8015610d4f57506001600160a01b03831615155b801561050157506001600160a01b038316301415949350505050565b6001600160a01b0381165f908152600a6020526040812054819060ff1615801561050157505050506001600160a01b03165f908152600a602052604090205460ff161590565b6001600160a01b0381165f908152600a6020526040812054819060ff16801561050157505050506001600160a01b03165f908152600a602052604090205460ff161590565b6006545f90819060ff168015610e2457506001600160a01b0383165f9081526008602052604090205460ff16155b9392505050565b6001805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610e7157610e716112de565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610ec8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eec91906112f2565b81600181518110610eff57610eff6112de565b6001600160a01b03928316602091820292909201810191909152305f90815260078252604080822060025490941682529290915220545f1914610f6557305f9081526007602090815260408083206002546001600160a01b0316845290915290205f1990555b60025460405163791ac94760e01b81526001600160a01b039091169063791ac94790610f9d9085905f9086903090429060040161130d565b5f604051808303815f87803b158015610fb4575f80fd5b505af1925050508015610fc5575060015b610fcf5750611016565b4715611014576006546040516001600160a01b0361010090920491909116904780156108fc02915f818181858888f19350505050158015611012573d5f803e3d5ffd5b505b505b506001805460ff60a81b19169055565b6001600160a01b0381165f908152600a6020526040812054819060ff1615801561050157505050506001600160a01b03165f908152600a602052604090205460ff1690565b5f80841561107c575060035461108e565b831561108b575060045461108e565b505f5b805f0361109e5782915050610501565b5f6103e86110ac838661137c565b6110b69190611277565b9050801561112257305f908152600b6020526040812080548392906110dc9084906112cb565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b61112c8185611264565b979650505050505050565b5f6020808352835180828501525f5b8181101561116257858101830151858201604001528201611146565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146106ae575f80fd5b5f80604083850312156111a7575f80fd5b82356111b281611182565b946020939093013593505050565b5f805f606084860312156111d2575f80fd5b83356111dd81611182565b925060208401356111ed81611182565b929592945050506040919091013590565b5f6020828403121561120e575f80fd5b8135610e2481611182565b5f806040838503121561122a575f80fd5b823561123581611182565b9150602083013561124581611182565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561048e5761048e611250565b5f8261129157634e487b7160e01b5f52601260045260245ffd5b500490565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8082018082111561048e5761048e611250565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611302575f80fd5b8151610e2481611182565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561135b5784516001600160a01b031683529383019391830191600101611336565b50506001600160a01b03969096166060850152505050608001529392505050565b808202811582820484141761048e5761048e61125056fea2646970667358221220ed9b57ecad20fcb3cfef021f07f72ef50bd5681d2857bc84e35f512a9e10973b64736f6c63430008150033

Deployed Bytecode

0x608060405260043610610164575f3560e01c8063735de9f7116100cd57806395d89b4111610087578063b8fc1cc311610062578063b8fc1cc3146103f3578063dd62ed3e14610407578063f2fde38b1461044b578063fb201b1d1461046a575f80fd5b806395d89b4114610395578063a9059cbb146103c1578063acb2ad6f146103e0575f80fd5b8063735de9f71461031b5780637bce5a041461033a578063893d20e81461034f5780638da5cb5b1461034f578063917b546c1461036b5780639213691314610380575f80fd5b8063313ce5671161011e578063313ce5671461025c5780633eaaf86b14610277578063452ed4f1146102925780636bd11819146102b157806370a08231146102d1578063715018a614610305575f80fd5b806303fd2a451461016f57806306fdde03146101a1578063095ea7b3146101d657806318160ddd1461020557806323b872dd146102295780632721358c14610248575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b5061018461dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101ac575f80fd5b50604080518082019091526004815263486f706560e01b60208201525b6040516101989190611137565b3480156101e1575f80fd5b506101f56101f0366004611196565b61047e565b6040519015158152602001610198565b348015610210575f80fd5b50670de0b6b3a76400005b604051908152602001610198565b348015610234575f80fd5b506101f56102433660046111c0565b610494565b348015610253575f80fd5b5061021b610509565b348015610267575f80fd5b5060405160098152602001610198565b348015610282575f80fd5b5061021b670de0b6b3a764000081565b34801561029d575f80fd5b50600154610184906001600160a01b031681565b3480156102bc575f80fd5b506001546101f590600160a01b900460ff1681565b3480156102dc575f80fd5b5061021b6102eb3660046111fe565b6001600160a01b03165f908152600b602052604090205490565b348015610310575f80fd5b50610319610521565b005b348015610326575f80fd5b50600254610184906001600160a01b031681565b348015610345575f80fd5b5061021b60035481565b34801561035a575f80fd5b505f546001600160a01b0316610184565b348015610376575f80fd5b5061021b6103e881565b34801561038b575f80fd5b5061021b60045481565b3480156103a0575f80fd5b50604080518082019091526004815263484f504560e01b60208201526101c9565b3480156103cc575f80fd5b506101f56103db366004611196565b61055e565b3480156103eb575f80fd5b5061021b5f81565b3480156103fe575f80fd5b50610319610574565b348015610412575f80fd5b5061021b610421366004611219565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b348015610456575f80fd5b506103196104653660046111fe565b610617565b348015610475575f80fd5b506103196106b1565b5f61048a338484610749565b5060015b92915050565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f19146104f6576001600160a01b0384165f908152600760209081526040808320338452909152812080548492906104f0908490611264565b90915550505b61050184848461080c565b949350505050565b61051e620186a0670de0b6b3a7640000611277565b81565b5f546001600160a01b031633146105535760405162461bcd60e51b815260040161054a90611296565b60405180910390fd5b61055c5f610c4d565b565b5f61056a33848461080c565b5060019392505050565b5f546001600160a01b0316331461059d5760405162461bcd60e51b815260040161054a90611296565b600154600160b01b900460ff16156105ec5760405162461bcd60e51b8152602060048201526012602482015271105b1c9958591e481a5b9a5d185b1a5e995960721b604482015260640161054a565b670de0b6b3a76400006005556001805460ff60b01b1916600160b01b179055600a6003819055600455565b5f546001600160a01b031633146106405760405162461bcd60e51b815260040161054a90611296565b6001600160a01b0381166106a55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161054a565b6106ae81610c4d565b50565b5f546001600160a01b031633146106da5760405162461bcd60e51b815260040161054a90611296565b600154600160a01b900460ff16156107345760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c6564000000000000000000604482015260640161054a565b6001805460ff60a01b1916600160a01b179055565b6001600160a01b0383166107955760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161054a565b6001600160a01b0382166107e15760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161054a565b6001600160a01b039283165f9081526007602090815260408083209490951682529290925291902055565b5f60016001600160a01b0384166108715760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161054a565b6001600160a01b0385166108d55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161054a565b5f83116109365760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161054a565b6109408585610c9c565b15610a7757600154600160a01b900460ff166109975760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b604482015260640161054a565b6001600160a01b0384165f908152600a602052604090205460ff161580156109c857506001600160a01b0385163014155b80156109dd57506001600160a01b0384163014155b80610a0357506109ed8585610d6b565b8015610a035750600154600160b01b900460ff16155b15610a775760055483610a2a866001600160a01b03165f908152600b602052604090205490565b610a3491906112cb565b1115610a775760405162461bcd60e51b81526020600482015260126024820152711b585e151e105b5bdd5b9d08195e18d9595960721b604482015260640161054a565b610a818585610db1565b8015610a975750600154600160a81b900460ff16155b8015610aa75750610aa785610df6565b15610afd57305f908152600b6020526040902054610ad0620186a0670de0b6b3a7640000611277565b8110610afb57610aeb620186a0670de0b6b3a7640000611277565b841115610afb57610afb81610e2b565b505b6001600160a01b0385165f9081526008602052604090205460ff1680610b3a57506001600160a01b0384165f9081526008602052604090205460ff165b15610b4257505f5b5f81610b4e5783610b6c565b610b6c86610b5c8888611026565b610b668989610db1565b8761106b565b90505f82610b9257600154600160a01b900460ff1615610b8c575f610b94565b84610b94565b845b6001600160a01b0388165f908152600b6020526040812080549293508392909190610bc0908490611264565b90915550506001600160a01b0386165f908152600b602052604081208054849290610bec9084906112cb565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c3891815260200190565b60405180910390a35060019695505050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f80610caf5f546001600160a01b031690565b6001600160a01b0316846001600160a01b031614158015610cdd57505f546001600160a01b03848116911614155b8015610cf357505f546001600160a01b03163314155b8015610d1757506001600160a01b0384165f9081526009602052604090205460ff16155b8015610d3b57506001600160a01b0383165f9081526009602052604090205460ff16155b8015610d4f57506001600160a01b03831615155b801561050157506001600160a01b038316301415949350505050565b6001600160a01b0381165f908152600a6020526040812054819060ff1615801561050157505050506001600160a01b03165f908152600a602052604090205460ff161590565b6001600160a01b0381165f908152600a6020526040812054819060ff16801561050157505050506001600160a01b03165f908152600a602052604090205460ff161590565b6006545f90819060ff168015610e2457506001600160a01b0383165f9081526008602052604090205460ff16155b9392505050565b6001805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610e7157610e716112de565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610ec8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eec91906112f2565b81600181518110610eff57610eff6112de565b6001600160a01b03928316602091820292909201810191909152305f90815260078252604080822060025490941682529290915220545f1914610f6557305f9081526007602090815260408083206002546001600160a01b0316845290915290205f1990555b60025460405163791ac94760e01b81526001600160a01b039091169063791ac94790610f9d9085905f9086903090429060040161130d565b5f604051808303815f87803b158015610fb4575f80fd5b505af1925050508015610fc5575060015b610fcf5750611016565b4715611014576006546040516001600160a01b0361010090920491909116904780156108fc02915f818181858888f19350505050158015611012573d5f803e3d5ffd5b505b505b506001805460ff60a81b19169055565b6001600160a01b0381165f908152600a6020526040812054819060ff1615801561050157505050506001600160a01b03165f908152600a602052604090205460ff1690565b5f80841561107c575060035461108e565b831561108b575060045461108e565b505f5b805f0361109e5782915050610501565b5f6103e86110ac838661137c565b6110b69190611277565b9050801561112257305f908152600b6020526040812080548392906110dc9084906112cb565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b61112c8185611264565b979650505050505050565b5f6020808352835180828501525f5b8181101561116257858101830151858201604001528201611146565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146106ae575f80fd5b5f80604083850312156111a7575f80fd5b82356111b281611182565b946020939093013593505050565b5f805f606084860312156111d2575f80fd5b83356111dd81611182565b925060208401356111ed81611182565b929592945050506040919091013590565b5f6020828403121561120e575f80fd5b8135610e2481611182565b5f806040838503121561122a575f80fd5b823561123581611182565b9150602083013561124581611182565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561048e5761048e611250565b5f8261129157634e487b7160e01b5f52601260045260245ffd5b500490565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8082018082111561048e5761048e611250565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611302575f80fd5b8151610e2481611182565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561135b5784516001600160a01b031683529383019391830191600101611336565b50506001600160a01b03969096166060850152505050608001529392505050565b808202811582820484141761048e5761048e61125056fea2646970667358221220ed9b57ecad20fcb3cfef021f07f72ef50bd5681d2857bc84e35f512a9e10973b64736f6c63430008150033

Deployed Bytecode Sourcemap

4723:8655:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4909:73;;;;;;;;;;;;4940:42;4909:73;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;4909:73:0;;;;;;;;7813:80;;;;;;;;;;-1:-1:-1;7885:5:0;;;;;;;;;;;;-1:-1:-1;;;7885:5:0;;;;7813:80;;;;;;;:::i;11548:161::-;;;;;;;;;;-1:-1:-1;11548:161:0;;;;;:::i;:::-;;:::i;:::-;;;1396:14:1;;1389:22;1371:41;;1359:2;1344:18;11548:161:0;1231:187:1;7469:125:0;;;;;;;;;;-1:-1:-1;5206:15:0;7469:125;;;1569:25:1;;;1557:2;1542:18;7469:125:0;1423:177:1;11986:306:0;;;;;;;;;;-1:-1:-1;11986:306:0;;;;;:::i;:::-;;:::i;5228:61::-;;;;;;;;;;;;;:::i;7600:117::-;;;;;;;;;;-1:-1:-1;7600:117:0;;4901:1;2208:36:1;;2196:2;2181:18;7600:117:0;2066:184:1;5167:54:0;;;;;;;;;;;;5206:15;5167:54;;4989:21;;;;;;;;;;-1:-1:-1;4989:21:0;;;;-1:-1:-1;;;;;4989:21:0;;;5017:31;;;;;;;;;;-1:-1:-1;5017:31:0;;;;-1:-1:-1;;;5017:31:0;;;;;;8124:117;;;;;;;;;;-1:-1:-1;8124:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;8217:16:0;8190:7;8217:16;;;:7;:16;;;;;;;8124:117;1877:94;;;;;;;;;;;;;:::i;:::-;;5121:37;;;;;;;;;;-1:-1:-1;5121:37:0;;;;-1:-1:-1;;;;;5121:37:0;;;5296:36;;;;;;;;;;;;;;;;7899:80;;;;;;;;;;-1:-1:-1;7951:7:0;1727:6;-1:-1:-1;;;;;1727:6:0;7899:80;;5429:42;;;;;;;;;;;;5466:5;5429:42;;5339:37;;;;;;;;;;;;;;;;7723:84;;;;;;;;;;-1:-1:-1;7797:7:0;;;;;;;;;;;;-1:-1:-1;;;7797:7:0;;;;7723:84;;11371:165;;;;;;;;;;-1:-1:-1;11371:165:0;;;;;:::i;:::-;;:::i;5383:39::-;;;;;;;;;;;;5421:1;5383:39;;11097:225;;;;;;;;;;;;;:::i;7985:133::-;;;;;;;;;;-1:-1:-1;7985:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8087:19:0;;;8069:7;8087:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;7985:133;1979:192;;;;;;;;;;-1:-1:-1;1979:192:0;;;;;:::i;:::-;;:::i;10953:136::-;;;;;;;;;;;;;:::i;11548:161::-;11625:4;11642:37;11651:10;11663:7;11672:6;11642:8;:37::i;:::-;-1:-1:-1;11697:4:0;11548:161;;;;;:::o;11986:306::-;-1:-1:-1;;;;;12107:19:0;;12086:4;12107:19;;;:11;:19;;;;;;;;12127:10;12107:31;;;;;;;;-1:-1:-1;;12107:52:0;12103:126;;-1:-1:-1;;;;;12176:19:0;;;;;;:11;:19;;;;;;;;12196:10;12176:31;;;;;;;:41;;12211:6;;12176:19;:41;;12211:6;;12176:41;:::i;:::-;;;;-1:-1:-1;;12103:126:0;12248:36;12258:6;12266:9;12277:6;12248:9;:36::i;:::-;12241:43;11986:306;-1:-1:-1;;;;11986:306:0:o;5228:61::-;5267:22;5282:7;5206:15;5267:22;:::i;:::-;5228:61;:::o;1877:94::-;1700:7;1727:6;-1:-1:-1;;;;;1727:6:0;369:10;1789:23;1781:68;;;;-1:-1:-1;;;1781:68:0;;;;;;;:::i;:::-;;;;;;;;;1942:21:::1;1960:1;1942:9;:21::i;:::-;1877:94::o:0;11371:165::-;11449:4;11466:40;11476:10;11488:9;11499:6;11466:9;:40::i;:::-;-1:-1:-1;11524:4:0;;11371:165;-1:-1:-1;;;11371:165:0:o;11097:225::-;1700:7;1727:6;-1:-1:-1;;;;;1727:6:0;369:10;1789:23;1781:68;;;;-1:-1:-1;;;1781:68:0;;;;;;;:::i;:::-;11158:8:::1;::::0;-1:-1:-1;;;11158:8:0;::::1;;;11157:9;11149:39;;;::::0;-1:-1:-1;;;11149:39:0;;4182:2:1;11149:39:0::1;::::0;::::1;4164:21:1::0;4221:2;4201:18;;;4194:30;-1:-1:-1;;;4240:18:1;;;4233:48;4298:18;;11149:39:0::1;3980:342:1::0;11149:39:0::1;5206:15;11199:11;:26:::0;11247:4:::1;11236:15:::0;;-1:-1:-1;;;;11236:15:0::1;-1:-1:-1::0;;;11236:15:0::1;::::0;;11280:2:::1;11262:15;:20:::0;;;-1:-1:-1;11293:21:0;11097:225::o;1979:192::-;1700:7;1727:6;-1:-1:-1;;;;;1727:6:0;369:10;1789:23;1781:68;;;;-1:-1:-1;;;1781:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2068:22:0;::::1;2060:73;;;::::0;-1:-1:-1;;;2060:73:0;;4529:2:1;2060:73:0::1;::::0;::::1;4511:21:1::0;4568:2;4548:18;;;4541:30;4607:34;4587:18;;;4580:62;-1:-1:-1;;;4658:18:1;;;4651:36;4704:19;;2060:73:0::1;4327:402:1::0;2060:73:0::1;2144:19;2154:8;2144:9;:19::i;:::-;1979:192:::0;:::o;10953:136::-;1700:7;1727:6;-1:-1:-1;;;;;1727:6:0;369:10;1789:23;1781:68;;;;-1:-1:-1;;;1781:68:0;;;;;;;:::i;:::-;11013:11:::1;::::0;-1:-1:-1;;;11013:11:0;::::1;;;11012:12;11004:48;;;::::0;-1:-1:-1;;;11004:48:0;;4936:2:1;11004:48:0::1;::::0;::::1;4918:21:1::0;4975:2;4955:18;;;4948:30;5014:25;4994:18;;;4987:53;5057:18;;11004:48:0::1;4734:347:1::0;11004:48:0::1;11077:4;11063:18:::0;;-1:-1:-1;;;;11063:18:0::1;-1:-1:-1::0;;;11063:18:0::1;::::0;;10953:136::o;11717:261::-;-1:-1:-1;;;;;11812:20:0;;11804:52;;;;-1:-1:-1;;;11804:52:0;;5288:2:1;11804:52:0;;;5270:21:1;5327:2;5307:18;;;5300:30;-1:-1:-1;;;5346:18:1;;;5339:49;5405:18;;11804:52:0;5086:343:1;11804:52:0;-1:-1:-1;;;;;11875:21:0;;11867:53;;;;-1:-1:-1;;;11867:53:0;;5288:2:1;11867:53:0;;;5270:21:1;5327:2;5307:18;;;5300:30;-1:-1:-1;;;5346:18:1;;;5339:49;5405:18;;11867:53:0;5086:343:1;11867:53:0;-1:-1:-1;;;;;11933:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;11717:261::o;8249:1399::-;8329:4;8361;-1:-1:-1;;;;;8384:16:0;;8376:64;;;;-1:-1:-1;;;8376:64:0;;5636:2:1;8376:64:0;;;5618:21:1;5675:2;5655:18;;;5648:30;5714:34;5694:18;;;5687:62;-1:-1:-1;;;5765:18:1;;;5758:33;5808:19;;8376:64:0;5434:399:1;8376:64:0;-1:-1:-1;;;;;8459:18:0;;8451:68;;;;-1:-1:-1;;;8451:68:0;;6040:2:1;8451:68:0;;;6022:21:1;6079:2;6059:18;;;6052:30;6118:34;6098:18;;;6091:62;-1:-1:-1;;;6169:18:1;;;6162:35;6214:19;;8451:68:0;5838:401:1;8451:68:0;8547:1;8538:6;:10;8530:64;;;;-1:-1:-1;;;8530:64:0;;6446:2:1;8530:64:0;;;6428:21:1;6485:2;6465:18;;;6458:30;6524:34;6504:18;;;6497:62;-1:-1:-1;;;6575:18:1;;;6568:39;6624:19;;8530:64:0;6244:405:1;8530:64:0;8611:26;8629:4;8634:2;8611:17;:26::i;:::-;8607:299;;;8662:11;;-1:-1:-1;;;8662:11:0;;;;8654:45;;;;-1:-1:-1;;;8654:45:0;;6856:2:1;8654:45:0;;;6838:21:1;6895:2;6875:18;;;6868:30;-1:-1:-1;;;6914:18:1;;;6907:52;6976:18;;8654:45:0;6654:346:1;8654:45:0;-1:-1:-1;;;;;8726:15:0;;;;;;:11;:15;;;;;;;;8725:16;:41;;;;-1:-1:-1;;;;;;8745:21:0;;8761:4;8745:21;;8725:41;:64;;;;-1:-1:-1;;;;;;8770:19:0;;8784:4;8770:19;;8725:64;:105;;;;8793:24;8809:4;8814:2;8793:15;:24::i;:::-;:37;;;;-1:-1:-1;8822:8:0;;-1:-1:-1;;;8822:8:0;;;;8821:9;8793:37;8722:183;;;8869:11;;8859:6;8843:13;8853:2;-1:-1:-1;;;;;8217:16:0;8190:7;8217:16;;;:7;:16;;;;;;;8124:117;8843:13;:22;;;;:::i;:::-;:37;;8835:67;;;;-1:-1:-1;;;8835:67:0;;7337:2:1;8835:67:0;;;7319:21:1;7376:2;7356:18;;;7349:30;-1:-1:-1;;;7395:18:1;;;7388:48;7453:18;;8835:67:0;7135:342:1;8835:67:0;8923:21;8935:4;8941:2;8923:11;:21::i;:::-;:35;;;;-1:-1:-1;8950:8:0;;-1:-1:-1;;;8950:8:0;;;;8949:9;8923:35;:59;;;;;8962:20;8977:4;8962:14;:20::i;:::-;8920:269;;;9041:4;9001:19;8217:16;;;:7;:16;;;;;;5267:22;5282:7;5206:15;5267:22;:::i;:::-;9065:11;:27;9062:116;;5267:22;5282:7;5206:15;5267:22;:::i;:::-;9117:6;:21;9114:47;;;9140:21;9149:11;9140:8;:21::i;:::-;8984:205;8920:269;-1:-1:-1;;;;;9205:15:0;;;;;;:9;:15;;;;;;;;;:32;;-1:-1:-1;;;;;;9224:13:0;;;;;;:9;:13;;;;;;;;9205:32;9201:79;;;-1:-1:-1;9263:5:0;9201:79;9290:22;9316:7;9315:99;;9408:6;9315:99;;;9327:78;9347:4;9353:20;9364:4;9370:2;9353:10;:20::i;:::-;9375:21;9387:4;9393:2;9375:11;:21::i;:::-;9398:6;9327:19;:78::i;:::-;9290:124;;9425:23;9452:7;9451:48;;9474:11;;-1:-1:-1;;;9474:11:0;;;;9473:12;:25;;9497:1;9451:48;;9473:25;9488:6;9451:48;;;9463:6;9451:48;-1:-1:-1;;;;;9510:13:0;;;;;;:7;:13;;;;;:32;;9425:74;;-1:-1:-1;9425:74:0;;9510:13;;;:32;;9425:74;;9510:32;:::i;:::-;;;;-1:-1:-1;;;;;;;9544:11:0;;;;;;:7;:11;;;;;:29;;9559:14;;9544:11;:29;;9559:14;;9544:29;:::i;:::-;;;;;;;;9595:2;-1:-1:-1;;;;;9580:34:0;9589:4;-1:-1:-1;;;;;9580:34:0;;9599:14;9580:34;;;;1569:25:1;;1557:2;1542:18;;1423:177;9580:34:0;;;;;;;;-1:-1:-1;9634:4:0;;8249:1399;-1:-1:-1;;;;;;8249:1399:0:o;2179:173::-;2235:16;2254:6;;-1:-1:-1;;;;;2271:17:0;;;-1:-1:-1;;;;;;2271:17:0;;;;;;2304:40;;2254:6;;;;;;;2304:40;;2235:16;2304:40;2224:128;2179:173;:::o;12300:347::-;12376:4;12395:14;12419:7;1700;1727:6;-1:-1:-1;;;;;1727:6:0;;1654:87;12419:7;-1:-1:-1;;;;;12412:14:0;:3;-1:-1:-1;;;;;12412:14:0;;;:45;;;;-1:-1:-1;1700:7:0;1727:6;-1:-1:-1;;;;;12443:14:0;;;1727:6;;12443:14;;12412:45;:83;;;;-1:-1:-1;1700:7:0;1727:6;-1:-1:-1;;;;;1727:6:0;12474:10;:21;;12412:83;:123;;;;-1:-1:-1;;;;;;12513:22:0;;;;;;:17;:22;;;;;;;;12512:23;12412:123;:151;;;;-1:-1:-1;;;;;;12541:22:0;;;;;;:17;:22;;;;;;;;12540:23;12412:151;:172;;;;-1:-1:-1;;;;;;12567:17:0;;;;12412:172;:196;;;;-1:-1:-1;;;;;;12588:20:0;;12603:4;12588:20;;12395:213;12300:347;-1:-1:-1;;;;12300:347:0:o;13021:188::-;-1:-1:-1;;;;;13134:16:0;;13095:4;13134:16;;;:11;:16;;;;;;13095:4;;13134:16;;13133:17;:38;;;;-1:-1:-1;;;;;;;;;13155:16:0;;;;;:11;:16;;;;;;;;13154:17;;13021:188::o;12838:175::-;-1:-1:-1;;;;;12942:16:0;;12908:4;12942:16;;;:11;:16;;;;;;12908:4;;12942:16;;:37;;;;-1:-1:-1;;;;;;;;;12963:16:0;;;;;:11;:16;;;;;;;;12962:17;;12838:175::o;13217:158::-;13309:14;;13277:4;;;;13309:14;;:33;;;;-1:-1:-1;;;;;;13328:14:0;;;;;;:9;:14;;;;;;;;13327:15;13309:33;13294:48;13217:158;-1:-1:-1;;;13217:158:0:o;10218:726::-;5957:4;5946:15;;-1:-1:-1;;;;5946:15:0;-1:-1:-1;;;5946:15:0;;;10322:16:::1;::::0;;10336:1:::1;10322:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10322:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10322:16:0::1;10298:40;;10367:4;10349;10354:1;10349:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10349:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10393:13:::1;::::0;:20:::1;::::0;;-1:-1:-1;;;10393:20:0;;;;:13;;;::::1;::::0;:18:::1;::::0;:20:::1;::::0;;::::1;::::0;10349:7;;10393:20;;;;;:13;:20:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10383:4;10388:1;10383:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10383:30:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:30;;;;10450:4:::1;10430:26;::::0;;;:11:::1;:26:::0;;;;;;10465:13:::1;::::0;;;::::1;10430:50:::0;;;;;;;;-1:-1:-1;;10430:71:0::1;10426:174;;10538:4;10518:26;::::0;;;:11:::1;:26;::::0;;;;;;;10553:13:::1;::::0;-1:-1:-1;;;;;10553:13:0::1;10518:50:::0;;;;;;;-1:-1:-1;;10518:70:0;;10426:174:::1;10616:13;::::0;:194:::1;::::0;-1:-1:-1;;;10616:194:0;;-1:-1:-1;;;;;10616:13:0;;::::1;::::0;:64:::1;::::0;:194:::1;::::0;10695:11;;10616:13:::1;::::0;10737:4;;10764::::1;::::0;10784:15:::1;::::0;10616:194:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;10612:241;;10835:7;;;10612:241;10868:21;:25:::0;10865:71:::1;;10895:9;::::0;:41:::1;::::0;-1:-1:-1;;;;;10895:9:0::1;::::0;;::::1;::::0;;;::::1;::::0;10914:21:::1;10895:41:::0;::::1;;;::::0;::::1;::::0;;;10914:21;10895:9;:41;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10865:71;10277:667;5972:1;-1:-1:-1::0;5984:8:0;:16;;-1:-1:-1;;;;5984:16:0;;;10218:726::o;12659:171::-;-1:-1:-1;;;;;12761:16:0;;12728:4;12761:16;;;:11;:16;;;;;;12728:4;;12761:16;;12760:17;:37;;;;-1:-1:-1;;;;;;;;;12781:16:0;;;;;:11;:16;;;;;;;;;12659:171::o;9656:554::-;9758:7;9778:11;9804:5;9800:102;;;-1:-1:-1;9818:15:0;;9800:102;;;9845:6;9841:61;;;-1:-1:-1;9860:16:0;;9841:61;;;-1:-1:-1;5421:1:0;9841:61;9918:3;9925:1;9918:8;9914:28;;9936:6;9929:13;;;;;9914:28;9954:17;5466:5;9974:12;9983:3;9974:6;:12;:::i;:::-;:25;;;;:::i;:::-;9954:45;-1:-1:-1;10014:13:0;;10010:157;;10062:4;10046:22;;;;:7;:22;;;;;:35;;10072:9;;10046:22;:35;;10072:9;;10046:35;:::i;:::-;;;;-1:-1:-1;;10101:40:0;;1569:25:1;;;10124:4:0;;-1:-1:-1;;;;;10101:40:0;;;;;1557:2:1;1542:18;10101:40:0;;;;;;;10010:157;10184:18;10193:9;10184:6;:18;:::i;:::-;10177:25;9656:554;-1:-1:-1;;;;;;;9656:554:0:o;222:548:1:-;334:4;363:2;392;381:9;374:21;424:6;418:13;467:6;462:2;451:9;447:18;440:34;492:1;502:140;516:6;513:1;510:13;502:140;;;611:14;;;607:23;;601:30;577:17;;;596:2;573:26;566:66;531:10;;502:140;;;506:3;691:1;686:2;677:6;666:9;662:22;658:31;651:42;761:2;754;750:7;745:2;737:6;733:15;729:29;718:9;714:45;710:54;702:62;;;;222:548;;;;:::o;775:131::-;-1:-1:-1;;;;;850:31:1;;840:42;;830:70;;896:1;893;886:12;911:315;979:6;987;1040:2;1028:9;1019:7;1015:23;1011:32;1008:52;;;1056:1;1053;1046:12;1008:52;1095:9;1082:23;1114:31;1139:5;1114:31;:::i;:::-;1164:5;1216:2;1201:18;;;;1188:32;;-1:-1:-1;;;911:315:1:o;1605:456::-;1682:6;1690;1698;1751:2;1739:9;1730:7;1726:23;1722:32;1719:52;;;1767:1;1764;1757:12;1719:52;1806:9;1793:23;1825:31;1850:5;1825:31;:::i;:::-;1875:5;-1:-1:-1;1932:2:1;1917:18;;1904:32;1945:33;1904:32;1945:33;:::i;:::-;1605:456;;1997:7;;-1:-1:-1;;;2051:2:1;2036:18;;;;2023:32;;1605:456::o;2255:247::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;2422:9;2409:23;2441:31;2466:5;2441:31;:::i;2739:388::-;2807:6;2815;2868:2;2856:9;2847:7;2843:23;2839:32;2836:52;;;2884:1;2881;2874:12;2836:52;2923:9;2910:23;2942:31;2967:5;2942:31;:::i;:::-;2992:5;-1:-1:-1;3049:2:1;3034:18;;3021:32;3062:33;3021:32;3062:33;:::i;:::-;3114:7;3104:17;;;2739:388;;;;;:::o;3132:127::-;3193:10;3188:3;3184:20;3181:1;3174:31;3224:4;3221:1;3214:15;3248:4;3245:1;3238:15;3264:128;3331:9;;;3352:11;;;3349:37;;;3366:18;;:::i;3397:217::-;3437:1;3463;3453:132;;3507:10;3502:3;3498:20;3495:1;3488:31;3542:4;3539:1;3532:15;3570:4;3567:1;3560:15;3453:132;-1:-1:-1;3599:9:1;;3397:217::o;3619:356::-;3821:2;3803:21;;;3840:18;;;3833:30;3899:34;3894:2;3879:18;;3872:62;3966:2;3951:18;;3619:356::o;7005:125::-;7070:9;;;7091:10;;;7088:36;;;7104:18;;:::i;7614:127::-;7675:10;7670:3;7666:20;7663:1;7656:31;7706:4;7703:1;7696:15;7730:4;7727:1;7720:15;7746:251;7816:6;7869:2;7857:9;7848:7;7844:23;7840:32;7837:52;;;7885:1;7882;7875:12;7837:52;7917:9;7911:16;7936:31;7961:5;7936:31;:::i;8002:980::-;8264:4;8312:3;8301:9;8297:19;8343:6;8332:9;8325:25;8369:2;8407:6;8402:2;8391:9;8387:18;8380:34;8450:3;8445:2;8434:9;8430:18;8423:31;8474:6;8509;8503:13;8540:6;8532;8525:22;8578:3;8567:9;8563:19;8556:26;;8617:2;8609:6;8605:15;8591:29;;8638:1;8648:195;8662:6;8659:1;8656:13;8648:195;;;8727:13;;-1:-1:-1;;;;;8723:39:1;8711:52;;8818:15;;;;8783:12;;;;8759:1;8677:9;8648:195;;;-1:-1:-1;;;;;;;8899:32:1;;;;8894:2;8879:18;;8872:60;-1:-1:-1;;;8963:3:1;8948:19;8941:35;8860:3;8002:980;-1:-1:-1;;;8002:980:1:o;8987:168::-;9060:9;;;9091;;9108:15;;;9102:22;;9088:37;9078:71;;9129:18;;:::i

Swarm Source

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