ETH Price: $2,451.66 (-0.83%)

Token

FAKE COIN (FAKE)
 

Overview

Max Total Supply

100,000,000,000 FAKE

Holders

193

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
26,753,685.283650978152046717 FAKE

Value
$0.00
0x55e8f364ee480eade88b7d85a3323ed420219113
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:
FAKE

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**

Telegram : https://t.me/FakeCoinErc

Twitter : https://twitter.com/fakecoinerc?s=21&t=3YcI7z6vfSHcQFb5uzywdA

Website : https://fakeitcoin.com/

*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.18;

interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}
/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}
/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = 0xe64F84AE03F3d328Ff10E6A1Eb22F91D4FDBcE50;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract LockToken is Ownable {
    bool public isOpen = false;
    mapping(address => bool) private _whiteList;
    modifier open(address from, address to) {
        require(isOpen || _whiteList[from] || _whiteList[to], "Not Open");
        _;
    }

    constructor() {
        _whiteList[owner()] = true;
        _whiteList[address(this)] = true;
    }

    function openTrade() external onlyOwner {
        isOpen = true;
    }

    function includeToWhiteList(address[] memory _users) external onlyOwner {
        for(uint8 i = 0; i < _users.length; i++) {
            _whiteList[_users[i]] = true;
        }
    }
}


contract FAKE is Context, IERC20, IERC20Metadata, Ownable, LockToken{
    mapping (address => uint256) private _balances;

    mapping (address => mapping (address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor () {
        _name = "FAKE COIN";
        _symbol = "FAKE";
        _totalSupply;
        _mint(owner(), 100000000000 * 10 ** (decimals()) );
    }
    
    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer (address sender, address recipient, uint256 amount) open(sender, recipient) internal virtual {
        require(sender != address(0), "ERC2020: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }
    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }
    

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        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);
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
}

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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_users","type":"address[]"}],"name":"includeToWhiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526000805460ff60a01b191690553480156200001e57600080fd5b50600080546001600160a01b03191673e64f84ae03f3d328ff10e6a1eb22f91d4fdbce50178155604051339182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060018060006200008a6000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff19958616179055308152600180845290829020805490941617909255815180830190925260098252682320a5a29021a7a4a760b91b90820152600590620000f79082620002f6565b5060408051808201909152600481526346414b4560e01b6020820152600690620001229082620002f6565b506200015f6200013a6000546001600160a01b031690565b620001486012600a620004d7565b620001599064174876e800620004ef565b62000165565b6200051f565b6001600160a01b038216620001c05760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060046000828254620001d4919062000509565b90915550506001600160a01b038216600090815260026020526040812080548392906200020390849062000509565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200027d57607f821691505b6020821081036200029e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200024d57600081815260208120601f850160051c81016020861015620002cd5750805b601f850160051c820191505b81811015620002ee57828155600101620002d9565b505050505050565b81516001600160401b0381111562000312576200031262000252565b6200032a8162000323845462000268565b84620002a4565b602080601f831160018114620003625760008415620003495750858301515b600019600386901b1c1916600185901b178555620002ee565b600085815260208120601f198616915b82811015620003935788860151825594840194600190910190840162000372565b5085821015620003b25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000419578160001904821115620003fd57620003fd620003c2565b808516156200040b57918102915b93841c9390800290620003dd565b509250929050565b6000826200043257506001620004d1565b816200044157506000620004d1565b81600181146200045a5760028114620004655762000485565b6001915050620004d1565b60ff841115620004795762000479620003c2565b50506001821b620004d1565b5060208310610133831016604e8410600b8410161715620004aa575081810a620004d1565b620004b68383620003d8565b8060001904821115620004cd57620004cd620003c2565b0290505b92915050565b6000620004e860ff84168362000421565b9392505050565b8082028115828204841417620004d157620004d1620003c2565b80820180821115620004d157620004d1620003c2565b610dbc806200052f6000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a2578063a457c2d711610071578063a457c2d714610215578063a9059cbb14610228578063dd62ed3e1461023b578063f2fde38b14610274578063fb201b1d1461028757600080fd5b806370a08231146101c1578063715018a6146101ea5780638da5cb5b146101f257806395d89b411461020d57600080fd5b806323b872dd116100de57806323b872dd14610178578063313ce5671461018b578063395093511461019a57806347535d7b146101ad57600080fd5b806306fdde0314610110578063095ea7b31461012e5780630b6bb6f51461015157806318160ddd14610166575b600080fd5b61011861028f565b6040516101259190610aa6565b60405180910390f35b61014161013c366004610b10565b610321565b6040519015158152602001610125565b61016461015f366004610b50565b610338565b005b6004545b604051908152602001610125565b610141610186366004610c15565b6103dc565b60405160128152602001610125565b6101416101a8366004610b10565b61048d565b60005461014190600160a01b900460ff1681565b61016a6101cf366004610c51565b6001600160a01b031660009081526002602052604090205490565b6101646104c4565b6000546040516001600160a01b039091168152602001610125565b610118610538565b610141610223366004610b10565b610547565b610141610236366004610b10565b6105e2565b61016a610249366004610c73565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b610164610282366004610c51565b6105ef565b6101646106d9565b60606005805461029e90610ca6565b80601f01602080910402602001604051908101604052809291908181526020018280546102ca90610ca6565b80156103175780601f106102ec57610100808354040283529160200191610317565b820191906000526020600020905b8154815290600101906020018083116102fa57829003601f168201915b5050505050905090565b600061032e338484610718565b5060015b92915050565b6000546001600160a01b0316331461036b5760405162461bcd60e51b815260040161036290610ce0565b60405180910390fd5b60005b81518160ff1610156103d8576001806000848460ff168151811061039457610394610d15565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806103d081610d41565b91505061036e565b5050565b60006103e984848461083c565b6001600160a01b03841660009081526003602090815260408083203384529091529020548281101561046e5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610362565b610482853361047d8685610d60565b610718565b506001949350505050565b3360008181526003602090815260408083206001600160a01b0387168452909152812054909161032e91859061047d908690610d73565b6000546001600160a01b031633146104ee5760405162461bcd60e51b815260040161036290610ce0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60606006805461029e90610ca6565b3360009081526003602090815260408083206001600160a01b0386168452909152812054828110156105c95760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610362565b6105d8338561047d8685610d60565b5060019392505050565b600061032e33848461083c565b6000546001600160a01b031633146106195760405162461bcd60e51b815260040161036290610ce0565b6001600160a01b03811661067e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610362565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146107035760405162461bcd60e51b815260040161036290610ce0565b6000805460ff60a01b1916600160a01b179055565b6001600160a01b03831661077a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610362565b6001600160a01b0382166107db5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610362565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60005483908390600160a01b900460ff168061087057506001600160a01b03821660009081526001602052604090205460ff165b8061089357506001600160a01b03811660009081526001602052604090205460ff165b6108ca5760405162461bcd60e51b81526020600482015260086024820152672737ba1027b832b760c11b6044820152606401610362565b6001600160a01b0385166109305760405162461bcd60e51b815260206004820152602760248201527f455243323032303a207472616e736665722066726f6d20746865207a65726f206044820152666164647265737360c81b6064820152608401610362565b6001600160a01b0384166109925760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610362565b6001600160a01b03851660009081526002602052604090205483811015610a0a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610362565b610a148482610d60565b6001600160a01b038088166000908152600260205260408082209390935590871681529081208054869290610a4a908490610d73565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610a9691815260200190565b60405180910390a3505050505050565b600060208083528351808285015260005b81811015610ad357858101830151858201604001528201610ab7565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610b0b57600080fd5b919050565b60008060408385031215610b2357600080fd5b610b2c83610af4565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215610b6357600080fd5b823567ffffffffffffffff80821115610b7b57600080fd5b818501915085601f830112610b8f57600080fd5b813581811115610ba157610ba1610b3a565b8060051b604051601f19603f83011681018181108582111715610bc657610bc6610b3a565b604052918252848201925083810185019188831115610be457600080fd5b938501935b82851015610c0957610bfa85610af4565b84529385019392850192610be9565b98975050505050505050565b600080600060608486031215610c2a57600080fd5b610c3384610af4565b9250610c4160208501610af4565b9150604084013590509250925092565b600060208284031215610c6357600080fd5b610c6c82610af4565b9392505050565b60008060408385031215610c8657600080fd5b610c8f83610af4565b9150610c9d60208401610af4565b90509250929050565b600181811c90821680610cba57607f821691505b602082108103610cda57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff8103610d5757610d57610d2b565b60010192915050565b8181038181111561033257610332610d2b565b8082018082111561033257610332610d2b56fea2646970667358221220d69bdaebee46a1962524fd210d008f9ea61e1349214b9fd8ddc1f086d3b85e3664736f6c63430008120033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a2578063a457c2d711610071578063a457c2d714610215578063a9059cbb14610228578063dd62ed3e1461023b578063f2fde38b14610274578063fb201b1d1461028757600080fd5b806370a08231146101c1578063715018a6146101ea5780638da5cb5b146101f257806395d89b411461020d57600080fd5b806323b872dd116100de57806323b872dd14610178578063313ce5671461018b578063395093511461019a57806347535d7b146101ad57600080fd5b806306fdde0314610110578063095ea7b31461012e5780630b6bb6f51461015157806318160ddd14610166575b600080fd5b61011861028f565b6040516101259190610aa6565b60405180910390f35b61014161013c366004610b10565b610321565b6040519015158152602001610125565b61016461015f366004610b50565b610338565b005b6004545b604051908152602001610125565b610141610186366004610c15565b6103dc565b60405160128152602001610125565b6101416101a8366004610b10565b61048d565b60005461014190600160a01b900460ff1681565b61016a6101cf366004610c51565b6001600160a01b031660009081526002602052604090205490565b6101646104c4565b6000546040516001600160a01b039091168152602001610125565b610118610538565b610141610223366004610b10565b610547565b610141610236366004610b10565b6105e2565b61016a610249366004610c73565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b610164610282366004610c51565b6105ef565b6101646106d9565b60606005805461029e90610ca6565b80601f01602080910402602001604051908101604052809291908181526020018280546102ca90610ca6565b80156103175780601f106102ec57610100808354040283529160200191610317565b820191906000526020600020905b8154815290600101906020018083116102fa57829003601f168201915b5050505050905090565b600061032e338484610718565b5060015b92915050565b6000546001600160a01b0316331461036b5760405162461bcd60e51b815260040161036290610ce0565b60405180910390fd5b60005b81518160ff1610156103d8576001806000848460ff168151811061039457610394610d15565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806103d081610d41565b91505061036e565b5050565b60006103e984848461083c565b6001600160a01b03841660009081526003602090815260408083203384529091529020548281101561046e5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610362565b610482853361047d8685610d60565b610718565b506001949350505050565b3360008181526003602090815260408083206001600160a01b0387168452909152812054909161032e91859061047d908690610d73565b6000546001600160a01b031633146104ee5760405162461bcd60e51b815260040161036290610ce0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60606006805461029e90610ca6565b3360009081526003602090815260408083206001600160a01b0386168452909152812054828110156105c95760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610362565b6105d8338561047d8685610d60565b5060019392505050565b600061032e33848461083c565b6000546001600160a01b031633146106195760405162461bcd60e51b815260040161036290610ce0565b6001600160a01b03811661067e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610362565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146107035760405162461bcd60e51b815260040161036290610ce0565b6000805460ff60a01b1916600160a01b179055565b6001600160a01b03831661077a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610362565b6001600160a01b0382166107db5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610362565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60005483908390600160a01b900460ff168061087057506001600160a01b03821660009081526001602052604090205460ff165b8061089357506001600160a01b03811660009081526001602052604090205460ff165b6108ca5760405162461bcd60e51b81526020600482015260086024820152672737ba1027b832b760c11b6044820152606401610362565b6001600160a01b0385166109305760405162461bcd60e51b815260206004820152602760248201527f455243323032303a207472616e736665722066726f6d20746865207a65726f206044820152666164647265737360c81b6064820152608401610362565b6001600160a01b0384166109925760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610362565b6001600160a01b03851660009081526002602052604090205483811015610a0a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610362565b610a148482610d60565b6001600160a01b038088166000908152600260205260408082209390935590871681529081208054869290610a4a908490610d73565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610a9691815260200190565b60405180910390a3505050505050565b600060208083528351808285015260005b81811015610ad357858101830151858201604001528201610ab7565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610b0b57600080fd5b919050565b60008060408385031215610b2357600080fd5b610b2c83610af4565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215610b6357600080fd5b823567ffffffffffffffff80821115610b7b57600080fd5b818501915085601f830112610b8f57600080fd5b813581811115610ba157610ba1610b3a565b8060051b604051601f19603f83011681018181108582111715610bc657610bc6610b3a565b604052918252848201925083810185019188831115610be457600080fd5b938501935b82851015610c0957610bfa85610af4565b84529385019392850192610be9565b98975050505050505050565b600080600060608486031215610c2a57600080fd5b610c3384610af4565b9250610c4160208501610af4565b9150604084013590509250925092565b600060208284031215610c6357600080fd5b610c6c82610af4565b9392505050565b60008060408385031215610c8657600080fd5b610c8f83610af4565b9150610c9d60208401610af4565b90509250929050565b600181811c90821680610cba57607f821691505b602082108103610cda57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff8103610d5757610d57610d2b565b60010192915050565b8181038181111561033257610332610d2b565b8082018082111561033257610332610d2b56fea2646970667358221220d69bdaebee46a1962524fd210d008f9ea61e1349214b9fd8ddc1f086d3b85e3664736f6c63430008120033

Deployed Bytecode Sourcemap

7113:9339:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7654:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9821:169;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;9821:169:0;1004:187:1;6918:186:0;;;;;;:::i;:::-;;:::i;:::-;;8774:108;8862:12;;8774:108;;;2600:25:1;;;2588:2;2573:18;8774:108:0;2454:177:1;10472:422:0;;;;;;:::i;:::-;;:::i;8616:93::-;;;8699:2;3111:36:1;;3099:2;3084:18;8616:93:0;2969:184:1;11303:215:0;;;;;;:::i;:::-;;:::i;6501:26::-;;;;;-1:-1:-1;;;6501:26:0;;;;;;8945:127;;;;;;:::i;:::-;-1:-1:-1;;;;;9046:18:0;9019:7;9046:18;;;:9;:18;;;;;;;8945:127;5910:148;;;:::i;5259:87::-;5305:7;5332:6;5259:87;;-1:-1:-1;;;;;5332:6:0;;;3495:51:1;;3483:2;3468:18;5259:87:0;3349:203:1;7873:104:0;;;:::i;12021:377::-;;;;;;:::i;:::-;;:::i;9285:175::-;;;;;;:::i;:::-;;:::i;9523:151::-;;;;;;:::i;:::-;-1:-1:-1;;;;;9639:18:0;;;9612:7;9639:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9523:151;6213:244;;;;;;:::i;:::-;;:::i;6838:72::-;;;:::i;7654:100::-;7708:13;7741:5;7734:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7654:100;:::o;9821:169::-;9904:4;9921:39;3952:10;9944:7;9953:6;9921:8;:39::i;:::-;-1:-1:-1;9978:4:0;9821:169;;;;;:::o;6918:186::-;5305:7;5332:6;-1:-1:-1;;;;;5332:6:0;3952:10;5479:23;5471:68;;;;-1:-1:-1;;;5471:68:0;;;;;;;:::i;:::-;;;;;;;;;7005:7:::1;7001:96;7022:6;:13;7018:1;:17;;;7001:96;;;7081:4;7057:10:::0;:21:::1;7068:6;7075:1;7068:9;;;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;7057:21:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;7057:21:0;:28;;-1:-1:-1;;7057:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7037:3;::::1;::::0;::::1;:::i;:::-;;;;7001:96;;;;6918:186:::0;:::o;10472:422::-;10578:4;10595:36;10605:6;10613:9;10624:6;10595:9;:36::i;:::-;-1:-1:-1;;;;;10671:19:0;;10644:24;10671:19;;;:11;:19;;;;;;;;3952:10;10671:33;;;;;;;;10723:26;;;;10715:79;;;;-1:-1:-1;;;10715:79:0;;5214:2:1;10715:79:0;;;5196:21:1;5253:2;5233:18;;;5226:30;5292:34;5272:18;;;5265:62;-1:-1:-1;;;5343:18:1;;;5336:38;5391:19;;10715:79:0;5012:404:1;10715:79:0;10805:57;10814:6;3952:10;10836:25;10855:6;10836:16;:25;:::i;:::-;10805:8;:57::i;:::-;-1:-1:-1;10882:4:0;;10472:422;-1:-1:-1;;;;10472:422:0:o;11303:215::-;3952:10;11391:4;11440:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11440:34:0;;;;;;;;;;11391:4;;11408:80;;11431:7;;11440:47;;11477:10;;11440:47;:::i;5910:148::-;5305:7;5332:6;-1:-1:-1;;;;;5332:6:0;3952:10;5479:23;5471:68;;;;-1:-1:-1;;;5471:68:0;;;;;;;:::i;:::-;6017:1:::1;6001:6:::0;;5980:40:::1;::::0;-1:-1:-1;;;;;6001:6:0;;::::1;::::0;5980:40:::1;::::0;6017:1;;5980:40:::1;6048:1;6031:19:::0;;-1:-1:-1;;;;;;6031:19:0::1;::::0;;5910:148::o;7873:104::-;7929:13;7962:7;7955:14;;;;;:::i;12021:377::-;3952:10;12114:4;12158:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12158:34:0;;;;;;;;;;12211:35;;;;12203:85;;;;-1:-1:-1;;;12203:85:0;;5886:2:1;12203:85:0;;;5868:21:1;5925:2;5905:18;;;5898:30;5964:34;5944:18;;;5937:62;-1:-1:-1;;;6015:18:1;;;6008:35;6060:19;;12203:85:0;5684:401:1;12203:85:0;12299:67;3952:10;12322:7;12331:34;12350:15;12331:16;:34;:::i;12299:67::-;-1:-1:-1;12386:4:0;;12021:377;-1:-1:-1;;;12021:377:0:o;9285:175::-;9371:4;9388:42;3952:10;9412:9;9423:6;9388:9;:42::i;6213:244::-;5305:7;5332:6;-1:-1:-1;;;;;5332:6:0;3952:10;5479:23;5471:68;;;;-1:-1:-1;;;5471:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6302:22:0;::::1;6294:73;;;::::0;-1:-1:-1;;;6294:73:0;;6292:2:1;6294:73:0::1;::::0;::::1;6274:21:1::0;6331:2;6311:18;;;6304:30;6370:34;6350:18;;;6343:62;-1:-1:-1;;;6421:18:1;;;6414:36;6467:19;;6294:73:0::1;6090:402:1::0;6294:73:0::1;6404:6;::::0;;6383:38:::1;::::0;-1:-1:-1;;;;;6383:38:0;;::::1;::::0;6404:6;::::1;::::0;6383:38:::1;::::0;::::1;6432:6;:17:::0;;-1:-1:-1;;;;;;6432:17:0::1;-1:-1:-1::0;;;;;6432:17:0;;;::::1;::::0;;;::::1;::::0;;6213:244::o;6838:72::-;5305:7;5332:6;-1:-1:-1;;;;;5332:6:0;3952:10;5479:23;5471:68;;;;-1:-1:-1;;;5471:68:0;;;;;;;:::i;:::-;6889:6:::1;:13:::0;;-1:-1:-1;;;;6889:13:0::1;-1:-1:-1::0;;;6889:13:0::1;::::0;;6838:72::o;15408:346::-;-1:-1:-1;;;;;15510:19:0;;15502:68;;;;-1:-1:-1;;;15502:68:0;;6699:2:1;15502:68:0;;;6681:21:1;6738:2;6718:18;;;6711:30;6777:34;6757:18;;;6750:62;-1:-1:-1;;;6828:18:1;;;6821:34;6872:19;;15502:68:0;6497:400:1;15502:68:0;-1:-1:-1;;;;;15589:21:0;;15581:68;;;;-1:-1:-1;;;15581:68:0;;7104:2:1;15581:68:0;;;7086:21:1;7143:2;7123:18;;;7116:30;7182:34;7162:18;;;7155:62;-1:-1:-1;;;7233:18:1;;;7226:32;7275:19;;15581:68:0;6902:398:1;15581:68:0;-1:-1:-1;;;;;15662:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15714:32;;2600:25:1;;;15714:32:0;;2573:18:1;15714:32:0;;;;;;;15408:346;;;:::o;12888:631::-;6643:6;;12964;;12972:9;;-1:-1:-1;;;6643:6:0;;;;;:26;;-1:-1:-1;;;;;;6653:16:0;;;;;;:10;:16;;;;;;;;6643:26;:44;;;-1:-1:-1;;;;;;6673:14:0;;;;;;:10;:14;;;;;;;;6643:44;6635:65;;;;-1:-1:-1;;;6635:65:0;;7507:2:1;6635:65:0;;;7489:21:1;7546:1;7526:18;;;7519:29;-1:-1:-1;;;7564:18:1;;;7557:38;7612:18;;6635:65:0;7305:331:1;6635:65:0;-1:-1:-1;;;;;13019:20:0;::::1;13011:72;;;::::0;-1:-1:-1;;;13011:72:0;;7843:2:1;13011:72:0::1;::::0;::::1;7825:21:1::0;7882:2;7862:18;;;7855:30;7921:34;7901:18;;;7894:62;-1:-1:-1;;;7972:18:1;;;7965:37;8019:19;;13011:72:0::1;7641:403:1::0;13011:72:0::1;-1:-1:-1::0;;;;;13102:23:0;::::1;13094:71;;;::::0;-1:-1:-1;;;13094:71:0;;8251:2:1;13094:71:0::1;::::0;::::1;8233:21:1::0;8290:2;8270:18;;;8263:30;8329:34;8309:18;;;8302:62;-1:-1:-1;;;8380:18:1;;;8373:33;8423:19;;13094:71:0::1;8049:399:1::0;13094:71:0::1;-1:-1:-1::0;;;;;13262:17:0;::::1;13238:21;13262:17:::0;;;:9:::1;:17;::::0;;;;;13298:23;;::::1;;13290:74;;;::::0;-1:-1:-1;;;13290:74:0;;8655:2:1;13290:74:0::1;::::0;::::1;8637:21:1::0;8694:2;8674:18;;;8667:30;8733:34;8713:18;;;8706:62;-1:-1:-1;;;8784:18:1;;;8777:36;8830:19;;13290:74:0::1;8453:402:1::0;13290:74:0::1;13395:22;13411:6:::0;13395:13;:22:::1;:::i;:::-;-1:-1:-1::0;;;;;13375:17:0;;::::1;;::::0;;;:9:::1;:17;::::0;;;;;:42;;;;13428:20;;::::1;::::0;;;;;:30;;13452:6;;13375:17;13428:30:::1;::::0;13452:6;;13428:30:::1;:::i;:::-;;;;;;;;13493:9;-1:-1:-1::0;;;;;13476:35:0::1;13485:6;-1:-1:-1::0;;;;;13476:35:0::1;;13504:6;13476:35;;;;2600:25:1::0;;2588:2;2573:18;;2454:177;13476:35:0::1;;;;;;;;13000:519;12888:631:::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:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1196:127::-;1257:10;1252:3;1248:20;1245:1;1238:31;1288:4;1285:1;1278:15;1312:4;1309:1;1302:15;1328:1121;1412:6;1443:2;1486;1474:9;1465:7;1461:23;1457:32;1454:52;;;1502:1;1499;1492:12;1454:52;1542:9;1529:23;1571:18;1612:2;1604:6;1601:14;1598:34;;;1628:1;1625;1618:12;1598:34;1666:6;1655:9;1651:22;1641:32;;1711:7;1704:4;1700:2;1696:13;1692:27;1682:55;;1733:1;1730;1723:12;1682:55;1769:2;1756:16;1791:2;1787;1784:10;1781:36;;;1797:18;;:::i;:::-;1843:2;1840:1;1836:10;1875:2;1869:9;1938:2;1934:7;1929:2;1925;1921:11;1917:25;1909:6;1905:38;1993:6;1981:10;1978:22;1973:2;1961:10;1958:18;1955:46;1952:72;;;2004:18;;:::i;:::-;2040:2;2033:22;2090:18;;;2124:15;;;;-1:-1:-1;2166:11:1;;;2162:20;;;2194:19;;;2191:39;;;2226:1;2223;2216:12;2191:39;2250:11;;;;2270:148;2286:6;2281:3;2278:15;2270:148;;;2352:23;2371:3;2352:23;:::i;:::-;2340:36;;2303:12;;;;2396;;;;2270:148;;;2437:6;1328:1121;-1:-1:-1;;;;;;;;1328:1121:1:o;2636:328::-;2713:6;2721;2729;2782:2;2770:9;2761:7;2757:23;2753:32;2750:52;;;2798:1;2795;2788:12;2750:52;2821:29;2840:9;2821:29;:::i;:::-;2811:39;;2869:38;2903:2;2892:9;2888:18;2869:38;:::i;:::-;2859:48;;2954:2;2943:9;2939:18;2926:32;2916:42;;2636:328;;;;;:::o;3158:186::-;3217:6;3270:2;3258:9;3249:7;3245:23;3241:32;3238:52;;;3286:1;3283;3276:12;3238:52;3309:29;3328:9;3309:29;:::i;:::-;3299:39;3158:186;-1:-1:-1;;;3158:186:1:o;3557:260::-;3625:6;3633;3686:2;3674:9;3665:7;3661:23;3657:32;3654:52;;;3702:1;3699;3692:12;3654:52;3725:29;3744:9;3725:29;:::i;:::-;3715:39;;3773:38;3807:2;3796:9;3792:18;3773:38;:::i;:::-;3763:48;;3557:260;;;;;:::o;3822:380::-;3901:1;3897:12;;;;3944;;;3965:61;;4019:4;4011:6;4007:17;3997:27;;3965:61;4072:2;4064:6;4061:14;4041:18;4038:38;4035:161;;4118:10;4113:3;4109:20;4106:1;4099:31;4153:4;4150:1;4143:15;4181:4;4178:1;4171:15;4035:161;;3822:380;;;:::o;4207:356::-;4409:2;4391:21;;;4428:18;;;4421:30;4487:34;4482:2;4467:18;;4460:62;4554:2;4539:18;;4207:356::o;4568:127::-;4629:10;4624:3;4620:20;4617:1;4610:31;4660:4;4657:1;4650:15;4684:4;4681:1;4674:15;4700:127;4761:10;4756:3;4752:20;4749:1;4742:31;4792:4;4789:1;4782:15;4816:4;4813:1;4806:15;4832:175;4869:3;4913:4;4906:5;4902:16;4942:4;4933:7;4930:17;4927:43;;4950:18;;:::i;:::-;4999:1;4986:15;;4832:175;-1:-1:-1;;4832:175:1:o;5421:128::-;5488:9;;;5509:11;;;5506:37;;;5523:18;;:::i;5554:125::-;5619:9;;;5640:10;;;5637:36;;;5653:18;;:::i

Swarm Source

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