POL Price: $0.3772 (-0.32%)
Gas: 42 GWei
 

Overview

Max Total Supply

1,000,000,000 JDT

Holders

19

Market

Price

$0.00 @ 0.000000 POL

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
100 JDT

Value
$0.00
0xe864802e1d5962743664729bc12f8e34a628c505
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
JDGTToken

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2023-06-11
*/

// SPDX-License-Identifier: UNLICENSED
// File: @openzeppelin/contracts/utils/Context.sol


// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @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) {
        return msg.data;
    }
}

// File: @openzeppelin/contracts/token/ERC20/IERC20.sol


// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @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 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 `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, 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:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` 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 from, address to, uint256 amount) external returns (bool);
}

// File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol


// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;


/**
 * @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);
}

// File: @openzeppelin/contracts/token/ERC20/ERC20.sol


// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;




/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * The default value of {decimals} is 18. To change this, you should override
 * this function so it returns a different value.
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @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 default value returned by this function, unless
     * it's 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:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, 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}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, 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}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, 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) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, 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) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `from` to `to`.
     *
     * This 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:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, 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:
     *
     * - `account` 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;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(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");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

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

        _afterTokenTransfer(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 Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - 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 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 {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been 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 _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}

// File: contracts/JDTToken.sol


pragma solidity 0.8.18;


contract JDGTToken is ERC20 {
    string private _tokenURI;

    constructor() ERC20("JA Digital", "JDT") {
        _mint(msg.sender, 1000000000000000000000000000);
    }

    function setTokenURI(string memory tokenURI) external {
        _tokenURI = tokenURI;
    }

    function getTokenURI() public view returns (string memory) {
        return _tokenURI;
    }
}

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":"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":[],"name":"getTokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"tokenURI","type":"string"}],"name":"setTokenURI","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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040518060400160405280600a81526020017f4a41204469676974616c000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4a4454000000000000000000000000000000000000000000000000000000000081525081600390816200008f9190620004b9565b508060049081620000a19190620004b9565b505050620000c2336b033b2e3c9fd0803ce8000000620000c860201b60201c565b620006bb565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200013a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001319062000601565b60405180910390fd5b6200014e600083836200023560201b60201c565b806002600082825462000162919062000652565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200021591906200069e565b60405180910390a362000231600083836200023a60201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002c157607f821691505b602082108103620002d757620002d662000279565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000302565b6200034d868362000302565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200039a620003946200038e8462000365565b6200036f565b62000365565b9050919050565b6000819050919050565b620003b68362000379565b620003ce620003c582620003a1565b8484546200030f565b825550505050565b600090565b620003e5620003d6565b620003f2818484620003ab565b505050565b5b818110156200041a576200040e600082620003db565b600181019050620003f8565b5050565b601f82111562000469576200043381620002dd565b6200043e84620002f2565b810160208510156200044e578190505b620004666200045d85620002f2565b830182620003f7565b50505b505050565b600082821c905092915050565b60006200048e600019846008026200046e565b1980831691505092915050565b6000620004a983836200047b565b9150826002028217905092915050565b620004c4826200023f565b67ffffffffffffffff811115620004e057620004df6200024a565b5b620004ec8254620002a8565b620004f98282856200041e565b600060209050601f8311600181146200053157600084156200051c578287015190505b6200052885826200049b565b86555062000598565b601f1984166200054186620002dd565b60005b828110156200056b5784890151825560018201915060208501945060208101905062000544565b868310156200058b578489015162000587601f8916826200047b565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620005e9601f83620005a0565b9150620005f682620005b1565b602082019050919050565b600060208201905081810360008301526200061c81620005da565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200065f8262000365565b91506200066c8362000365565b925082820190508082111562000687576200068662000623565b5b92915050565b620006988162000365565b82525050565b6000602082019050620006b560008301846200068d565b92915050565b61173f80620006cb6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c578063a9059cbb11610066578063a9059cbb1461023c578063d4a191161461026c578063dd62ed3e1461028a578063e0df5b6f146102ba576100cf565b806370a08231146101be57806395d89b41146101ee578063a457c2d71461020c576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461012257806323b872dd14610140578063313ce56714610170578063395093511461018e575b600080fd5b6100dc6102d6565b6040516100e99190610c11565b60405180910390f35b61010c60048036038101906101079190610cdb565b610368565b6040516101199190610d36565b60405180910390f35b61012a61038b565b6040516101379190610d60565b60405180910390f35b61015a60048036038101906101559190610d7b565b610395565b6040516101679190610d36565b60405180910390f35b6101786103c4565b6040516101859190610dea565b60405180910390f35b6101a860048036038101906101a39190610cdb565b6103cd565b6040516101b59190610d36565b60405180910390f35b6101d860048036038101906101d39190610e05565b610404565b6040516101e59190610d60565b60405180910390f35b6101f661044c565b6040516102039190610c11565b60405180910390f35b61022660048036038101906102219190610cdb565b6104de565b6040516102339190610d36565b60405180910390f35b61025660048036038101906102519190610cdb565b610555565b6040516102639190610d36565b60405180910390f35b610274610578565b6040516102819190610c11565b60405180910390f35b6102a4600480360381019061029f9190610e32565b61060a565b6040516102b19190610d60565b60405180910390f35b6102d460048036038101906102cf9190610fa7565b610691565b005b6060600380546102e59061101f565b80601f01602080910402602001604051908101604052809291908181526020018280546103119061101f565b801561035e5780601f106103335761010080835404028352916020019161035e565b820191906000526020600020905b81548152906001019060200180831161034157829003601f168201915b5050505050905090565b6000806103736106a4565b90506103808185856106ac565b600191505092915050565b6000600254905090565b6000806103a06106a4565b90506103ad858285610875565b6103b8858585610901565b60019150509392505050565b60006012905090565b6000806103d86106a4565b90506103f98185856103ea858961060a565b6103f4919061107f565b6106ac565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461045b9061101f565b80601f01602080910402602001604051908101604052809291908181526020018280546104879061101f565b80156104d45780601f106104a9576101008083540402835291602001916104d4565b820191906000526020600020905b8154815290600101906020018083116104b757829003601f168201915b5050505050905090565b6000806104e96106a4565b905060006104f7828661060a565b90508381101561053c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053390611125565b60405180910390fd5b61054982868684036106ac565b60019250505092915050565b6000806105606106a4565b905061056d818585610901565b600191505092915050565b6060600580546105879061101f565b80601f01602080910402602001604051908101604052809291908181526020018280546105b39061101f565b80156106005780601f106105d557610100808354040283529160200191610600565b820191906000526020600020905b8154815290600101906020018083116105e357829003601f168201915b5050505050905090565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b80600590816106a091906112f1565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361071b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071290611435565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361078a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610781906114c7565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516108689190610d60565b60405180910390a3505050565b6000610881848461060a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146108fb57818110156108ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e490611533565b60405180910390fd5b6108fa84848484036106ac565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610970576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610967906115c5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d690611657565b60405180910390fd5b6109ea838383610b77565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a67906116e9565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b5e9190610d60565b60405180910390a3610b71848484610b7c565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610bbb578082015181840152602081019050610ba0565b60008484015250505050565b6000601f19601f8301169050919050565b6000610be382610b81565b610bed8185610b8c565b9350610bfd818560208601610b9d565b610c0681610bc7565b840191505092915050565b60006020820190508181036000830152610c2b8184610bd8565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610c7282610c47565b9050919050565b610c8281610c67565b8114610c8d57600080fd5b50565b600081359050610c9f81610c79565b92915050565b6000819050919050565b610cb881610ca5565b8114610cc357600080fd5b50565b600081359050610cd581610caf565b92915050565b60008060408385031215610cf257610cf1610c3d565b5b6000610d0085828601610c90565b9250506020610d1185828601610cc6565b9150509250929050565b60008115159050919050565b610d3081610d1b565b82525050565b6000602082019050610d4b6000830184610d27565b92915050565b610d5a81610ca5565b82525050565b6000602082019050610d756000830184610d51565b92915050565b600080600060608486031215610d9457610d93610c3d565b5b6000610da286828701610c90565b9350506020610db386828701610c90565b9250506040610dc486828701610cc6565b9150509250925092565b600060ff82169050919050565b610de481610dce565b82525050565b6000602082019050610dff6000830184610ddb565b92915050565b600060208284031215610e1b57610e1a610c3d565b5b6000610e2984828501610c90565b91505092915050565b60008060408385031215610e4957610e48610c3d565b5b6000610e5785828601610c90565b9250506020610e6885828601610c90565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610eb482610bc7565b810181811067ffffffffffffffff82111715610ed357610ed2610e7c565b5b80604052505050565b6000610ee6610c33565b9050610ef28282610eab565b919050565b600067ffffffffffffffff821115610f1257610f11610e7c565b5b610f1b82610bc7565b9050602081019050919050565b82818337600083830152505050565b6000610f4a610f4584610ef7565b610edc565b905082815260208101848484011115610f6657610f65610e77565b5b610f71848285610f28565b509392505050565b600082601f830112610f8e57610f8d610e72565b5b8135610f9e848260208601610f37565b91505092915050565b600060208284031215610fbd57610fbc610c3d565b5b600082013567ffffffffffffffff811115610fdb57610fda610c42565b5b610fe784828501610f79565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061103757607f821691505b60208210810361104a57611049610ff0565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061108a82610ca5565b915061109583610ca5565b92508282019050808211156110ad576110ac611050565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061110f602583610b8c565b915061111a826110b3565b604082019050919050565b6000602082019050818103600083015261113e81611102565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026111a77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261116a565b6111b1868361116a565b95508019841693508086168417925050509392505050565b6000819050919050565b60006111ee6111e96111e484610ca5565b6111c9565b610ca5565b9050919050565b6000819050919050565b611208836111d3565b61121c611214826111f5565b848454611177565b825550505050565b600090565b611231611224565b61123c8184846111ff565b505050565b5b8181101561126057611255600082611229565b600181019050611242565b5050565b601f8211156112a55761127681611145565b61127f8461115a565b8101602085101561128e578190505b6112a261129a8561115a565b830182611241565b50505b505050565b600082821c905092915050565b60006112c8600019846008026112aa565b1980831691505092915050565b60006112e183836112b7565b9150826002028217905092915050565b6112fa82610b81565b67ffffffffffffffff81111561131357611312610e7c565b5b61131d825461101f565b611328828285611264565b600060209050601f83116001811461135b5760008415611349578287015190505b61135385826112d5565b8655506113bb565b601f19841661136986611145565b60005b828110156113915784890151825560018201915060208501945060208101905061136c565b868310156113ae57848901516113aa601f8916826112b7565b8355505b6001600288020188555050505b505050505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061141f602483610b8c565b915061142a826113c3565b604082019050919050565b6000602082019050818103600083015261144e81611412565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006114b1602283610b8c565b91506114bc82611455565b604082019050919050565b600060208201905081810360008301526114e0816114a4565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061151d601d83610b8c565b9150611528826114e7565b602082019050919050565b6000602082019050818103600083015261154c81611510565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006115af602583610b8c565b91506115ba82611553565b604082019050919050565b600060208201905081810360008301526115de816115a2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611641602383610b8c565b915061164c826115e5565b604082019050919050565b6000602082019050818103600083015261167081611634565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006116d3602683610b8c565b91506116de82611677565b604082019050919050565b60006020820190508181036000830152611702816116c6565b905091905056fea2646970667358221220453a3170eaa5a54f627c440d0304e6f9ec9ea7ae569e6fa7a9c942de63f85a1f64736f6c63430008120033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c578063a9059cbb11610066578063a9059cbb1461023c578063d4a191161461026c578063dd62ed3e1461028a578063e0df5b6f146102ba576100cf565b806370a08231146101be57806395d89b41146101ee578063a457c2d71461020c576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461012257806323b872dd14610140578063313ce56714610170578063395093511461018e575b600080fd5b6100dc6102d6565b6040516100e99190610c11565b60405180910390f35b61010c60048036038101906101079190610cdb565b610368565b6040516101199190610d36565b60405180910390f35b61012a61038b565b6040516101379190610d60565b60405180910390f35b61015a60048036038101906101559190610d7b565b610395565b6040516101679190610d36565b60405180910390f35b6101786103c4565b6040516101859190610dea565b60405180910390f35b6101a860048036038101906101a39190610cdb565b6103cd565b6040516101b59190610d36565b60405180910390f35b6101d860048036038101906101d39190610e05565b610404565b6040516101e59190610d60565b60405180910390f35b6101f661044c565b6040516102039190610c11565b60405180910390f35b61022660048036038101906102219190610cdb565b6104de565b6040516102339190610d36565b60405180910390f35b61025660048036038101906102519190610cdb565b610555565b6040516102639190610d36565b60405180910390f35b610274610578565b6040516102819190610c11565b60405180910390f35b6102a4600480360381019061029f9190610e32565b61060a565b6040516102b19190610d60565b60405180910390f35b6102d460048036038101906102cf9190610fa7565b610691565b005b6060600380546102e59061101f565b80601f01602080910402602001604051908101604052809291908181526020018280546103119061101f565b801561035e5780601f106103335761010080835404028352916020019161035e565b820191906000526020600020905b81548152906001019060200180831161034157829003601f168201915b5050505050905090565b6000806103736106a4565b90506103808185856106ac565b600191505092915050565b6000600254905090565b6000806103a06106a4565b90506103ad858285610875565b6103b8858585610901565b60019150509392505050565b60006012905090565b6000806103d86106a4565b90506103f98185856103ea858961060a565b6103f4919061107f565b6106ac565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461045b9061101f565b80601f01602080910402602001604051908101604052809291908181526020018280546104879061101f565b80156104d45780601f106104a9576101008083540402835291602001916104d4565b820191906000526020600020905b8154815290600101906020018083116104b757829003601f168201915b5050505050905090565b6000806104e96106a4565b905060006104f7828661060a565b90508381101561053c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053390611125565b60405180910390fd5b61054982868684036106ac565b60019250505092915050565b6000806105606106a4565b905061056d818585610901565b600191505092915050565b6060600580546105879061101f565b80601f01602080910402602001604051908101604052809291908181526020018280546105b39061101f565b80156106005780601f106105d557610100808354040283529160200191610600565b820191906000526020600020905b8154815290600101906020018083116105e357829003601f168201915b5050505050905090565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b80600590816106a091906112f1565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361071b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071290611435565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361078a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610781906114c7565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516108689190610d60565b60405180910390a3505050565b6000610881848461060a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146108fb57818110156108ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e490611533565b60405180910390fd5b6108fa84848484036106ac565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610970576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610967906115c5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d690611657565b60405180910390fd5b6109ea838383610b77565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a67906116e9565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b5e9190610d60565b60405180910390a3610b71848484610b7c565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610bbb578082015181840152602081019050610ba0565b60008484015250505050565b6000601f19601f8301169050919050565b6000610be382610b81565b610bed8185610b8c565b9350610bfd818560208601610b9d565b610c0681610bc7565b840191505092915050565b60006020820190508181036000830152610c2b8184610bd8565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610c7282610c47565b9050919050565b610c8281610c67565b8114610c8d57600080fd5b50565b600081359050610c9f81610c79565b92915050565b6000819050919050565b610cb881610ca5565b8114610cc357600080fd5b50565b600081359050610cd581610caf565b92915050565b60008060408385031215610cf257610cf1610c3d565b5b6000610d0085828601610c90565b9250506020610d1185828601610cc6565b9150509250929050565b60008115159050919050565b610d3081610d1b565b82525050565b6000602082019050610d4b6000830184610d27565b92915050565b610d5a81610ca5565b82525050565b6000602082019050610d756000830184610d51565b92915050565b600080600060608486031215610d9457610d93610c3d565b5b6000610da286828701610c90565b9350506020610db386828701610c90565b9250506040610dc486828701610cc6565b9150509250925092565b600060ff82169050919050565b610de481610dce565b82525050565b6000602082019050610dff6000830184610ddb565b92915050565b600060208284031215610e1b57610e1a610c3d565b5b6000610e2984828501610c90565b91505092915050565b60008060408385031215610e4957610e48610c3d565b5b6000610e5785828601610c90565b9250506020610e6885828601610c90565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610eb482610bc7565b810181811067ffffffffffffffff82111715610ed357610ed2610e7c565b5b80604052505050565b6000610ee6610c33565b9050610ef28282610eab565b919050565b600067ffffffffffffffff821115610f1257610f11610e7c565b5b610f1b82610bc7565b9050602081019050919050565b82818337600083830152505050565b6000610f4a610f4584610ef7565b610edc565b905082815260208101848484011115610f6657610f65610e77565b5b610f71848285610f28565b509392505050565b600082601f830112610f8e57610f8d610e72565b5b8135610f9e848260208601610f37565b91505092915050565b600060208284031215610fbd57610fbc610c3d565b5b600082013567ffffffffffffffff811115610fdb57610fda610c42565b5b610fe784828501610f79565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061103757607f821691505b60208210810361104a57611049610ff0565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061108a82610ca5565b915061109583610ca5565b92508282019050808211156110ad576110ac611050565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061110f602583610b8c565b915061111a826110b3565b604082019050919050565b6000602082019050818103600083015261113e81611102565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026111a77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261116a565b6111b1868361116a565b95508019841693508086168417925050509392505050565b6000819050919050565b60006111ee6111e96111e484610ca5565b6111c9565b610ca5565b9050919050565b6000819050919050565b611208836111d3565b61121c611214826111f5565b848454611177565b825550505050565b600090565b611231611224565b61123c8184846111ff565b505050565b5b8181101561126057611255600082611229565b600181019050611242565b5050565b601f8211156112a55761127681611145565b61127f8461115a565b8101602085101561128e578190505b6112a261129a8561115a565b830182611241565b50505b505050565b600082821c905092915050565b60006112c8600019846008026112aa565b1980831691505092915050565b60006112e183836112b7565b9150826002028217905092915050565b6112fa82610b81565b67ffffffffffffffff81111561131357611312610e7c565b5b61131d825461101f565b611328828285611264565b600060209050601f83116001811461135b5760008415611349578287015190505b61135385826112d5565b8655506113bb565b601f19841661136986611145565b60005b828110156113915784890151825560018201915060208501945060208101905061136c565b868310156113ae57848901516113aa601f8916826112b7565b8355505b6001600288020188555050505b505050505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061141f602483610b8c565b915061142a826113c3565b604082019050919050565b6000602082019050818103600083015261144e81611412565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006114b1602283610b8c565b91506114bc82611455565b604082019050919050565b600060208201905081810360008301526114e0816114a4565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061151d601d83610b8c565b9150611528826114e7565b602082019050919050565b6000602082019050818103600083015261154c81611510565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006115af602583610b8c565b91506115ba82611553565b604082019050919050565b600060208201905081810360008301526115de816115a2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611641602383610b8c565b915061164c826115e5565b604082019050919050565b6000602082019050818103600083015261167081611634565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006116d3602683610b8c565b91506116de82611677565b604082019050919050565b60006020820190508181036000830152611702816116c6565b905091905056fea2646970667358221220453a3170eaa5a54f627c440d0304e6f9ec9ea7ae569e6fa7a9c942de63f85a1f64736f6c63430008120033

Deployed Bytecode Sourcemap

17720:381:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6661:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7790:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9802:261;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7632:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10472:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7961:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6880:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11213:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8294:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18004:94;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8550:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17903:93;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6661:100;6715:13;6748:5;6741:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6661:100;:::o;9021:201::-;9104:4;9121:13;9137:12;:10;:12::i;:::-;9121:28;;9160:32;9169:5;9176:7;9185:6;9160:8;:32::i;:::-;9210:4;9203:11;;;9021:201;;;;:::o;7790:108::-;7851:7;7878:12;;7871:19;;7790:108;:::o;9802:261::-;9899:4;9916:15;9934:12;:10;:12::i;:::-;9916:30;;9957:38;9973:4;9979:7;9988:6;9957:15;:38::i;:::-;10006:27;10016:4;10022:2;10026:6;10006:9;:27::i;:::-;10051:4;10044:11;;;9802:261;;;;;:::o;7632:93::-;7690:5;7715:2;7708:9;;7632:93;:::o;10472:238::-;10560:4;10577:13;10593:12;:10;:12::i;:::-;10577:28;;10616:64;10625:5;10632:7;10669:10;10641:25;10651:5;10658:7;10641:9;:25::i;:::-;:38;;;;:::i;:::-;10616:8;:64::i;:::-;10698:4;10691:11;;;10472:238;;;;:::o;7961:127::-;8035:7;8062:9;:18;8072:7;8062:18;;;;;;;;;;;;;;;;8055:25;;7961:127;;;:::o;6880:104::-;6936:13;6969:7;6962:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6880:104;:::o;11213:436::-;11306:4;11323:13;11339:12;:10;:12::i;:::-;11323:28;;11362:24;11389:25;11399:5;11406:7;11389:9;:25::i;:::-;11362:52;;11453:15;11433:16;:35;;11425:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11546:60;11555:5;11562:7;11590:15;11571:16;:34;11546:8;:60::i;:::-;11637:4;11630:11;;;;11213:436;;;;:::o;8294:193::-;8373:4;8390:13;8406:12;:10;:12::i;:::-;8390:28;;8429;8439:5;8446:2;8450:6;8429:9;:28::i;:::-;8475:4;8468:11;;;8294:193;;;;:::o;18004:94::-;18048:13;18081:9;18074:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18004:94;:::o;8550:151::-;8639:7;8666:11;:18;8678:5;8666:18;;;;;;;;;;;;;;;:27;8685:7;8666:27;;;;;;;;;;;;;;;;8659:34;;8550:151;;;;:::o;17903:93::-;17980:8;17968:9;:20;;;;;;:::i;:::-;;17903:93;:::o;719:98::-;772:7;799:10;792:17;;719:98;:::o;15206:346::-;15325:1;15308:19;;:5;:19;;;15300:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15406:1;15387:21;;:7;:21;;;15379:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15490:6;15460:11;:18;15472:5;15460:18;;;;;;;;;;;;;;;:27;15479:7;15460:27;;;;;;;;;;;;;;;:36;;;;15528:7;15512:32;;15521:5;15512:32;;;15537:6;15512:32;;;;;;:::i;:::-;;;;;;;;15206:346;;;:::o;15843:419::-;15944:24;15971:25;15981:5;15988:7;15971:9;:25::i;:::-;15944:52;;16031:17;16011:16;:37;16007:248;;16093:6;16073:16;:26;;16065:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16177:51;16186:5;16193:7;16221:6;16202:16;:25;16177:8;:51::i;:::-;16007:248;15933:329;15843:419;;;:::o;12119:806::-;12232:1;12216:18;;:4;:18;;;12208:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12309:1;12295:16;;:2;:16;;;12287:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12364:38;12385:4;12391:2;12395:6;12364:20;:38::i;:::-;12415:19;12437:9;:15;12447:4;12437:15;;;;;;;;;;;;;;;;12415:37;;12486:6;12471:11;:21;;12463:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12603:6;12589:11;:20;12571:9;:15;12581:4;12571:15;;;;;;;;;;;;;;;:38;;;;12806:6;12789:9;:13;12799:2;12789:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;12856:2;12841:26;;12850:4;12841:26;;;12860:6;12841:26;;;;;;:::i;:::-;;;;;;;;12880:37;12900:4;12906:2;12910:6;12880:19;:37::i;:::-;12197:728;12119:806;;;:::o;16862:91::-;;;;:::o;17557:90::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:117::-;5777:1;5774;5767:12;5791:117;5900:1;5897;5890:12;5914:180;5962:77;5959:1;5952:88;6059:4;6056:1;6049:15;6083:4;6080:1;6073:15;6100:281;6183:27;6205:4;6183:27;:::i;:::-;6175:6;6171:40;6313:6;6301:10;6298:22;6277:18;6265:10;6262:34;6259:62;6256:88;;;6324:18;;:::i;:::-;6256:88;6364:10;6360:2;6353:22;6143:238;6100:281;;:::o;6387:129::-;6421:6;6448:20;;:::i;:::-;6438:30;;6477:33;6505:4;6497:6;6477:33;:::i;:::-;6387:129;;;:::o;6522:308::-;6584:4;6674:18;6666:6;6663:30;6660:56;;;6696:18;;:::i;:::-;6660:56;6734:29;6756:6;6734:29;:::i;:::-;6726:37;;6818:4;6812;6808:15;6800:23;;6522:308;;;:::o;6836:146::-;6933:6;6928:3;6923;6910:30;6974:1;6965:6;6960:3;6956:16;6949:27;6836:146;;;:::o;6988:425::-;7066:5;7091:66;7107:49;7149:6;7107:49;:::i;:::-;7091:66;:::i;:::-;7082:75;;7180:6;7173:5;7166:21;7218:4;7211:5;7207:16;7256:3;7247:6;7242:3;7238:16;7235:25;7232:112;;;7263:79;;:::i;:::-;7232:112;7353:54;7400:6;7395:3;7390;7353:54;:::i;:::-;7072:341;6988:425;;;;;:::o;7433:340::-;7489:5;7538:3;7531:4;7523:6;7519:17;7515:27;7505:122;;7546:79;;:::i;:::-;7505:122;7663:6;7650:20;7688:79;7763:3;7755:6;7748:4;7740:6;7736:17;7688:79;:::i;:::-;7679:88;;7495:278;7433:340;;;;:::o;7779:509::-;7848:6;7897:2;7885:9;7876:7;7872:23;7868:32;7865:119;;;7903:79;;:::i;:::-;7865:119;8051:1;8040:9;8036:17;8023:31;8081:18;8073:6;8070:30;8067:117;;;8103:79;;:::i;:::-;8067:117;8208:63;8263:7;8254:6;8243:9;8239:22;8208:63;:::i;:::-;8198:73;;7994:287;7779:509;;;;:::o;8294:180::-;8342:77;8339:1;8332:88;8439:4;8436:1;8429:15;8463:4;8460:1;8453:15;8480:320;8524:6;8561:1;8555:4;8551:12;8541:22;;8608:1;8602:4;8598:12;8629:18;8619:81;;8685:4;8677:6;8673:17;8663:27;;8619:81;8747:2;8739:6;8736:14;8716:18;8713:38;8710:84;;8766:18;;:::i;:::-;8710:84;8531:269;8480:320;;;:::o;8806:180::-;8854:77;8851:1;8844:88;8951:4;8948:1;8941:15;8975:4;8972:1;8965:15;8992:191;9032:3;9051:20;9069:1;9051:20;:::i;:::-;9046:25;;9085:20;9103:1;9085:20;:::i;:::-;9080:25;;9128:1;9125;9121:9;9114:16;;9149:3;9146:1;9143:10;9140:36;;;9156:18;;:::i;:::-;9140:36;8992:191;;;;:::o;9189:224::-;9329:34;9325:1;9317:6;9313:14;9306:58;9398:7;9393:2;9385:6;9381:15;9374:32;9189:224;:::o;9419:366::-;9561:3;9582:67;9646:2;9641:3;9582:67;:::i;:::-;9575:74;;9658:93;9747:3;9658:93;:::i;:::-;9776:2;9771:3;9767:12;9760:19;;9419:366;;;:::o;9791:419::-;9957:4;9995:2;9984:9;9980:18;9972:26;;10044:9;10038:4;10034:20;10030:1;10019:9;10015:17;10008:47;10072:131;10198:4;10072:131;:::i;:::-;10064:139;;9791:419;;;:::o;10216:141::-;10265:4;10288:3;10280:11;;10311:3;10308:1;10301:14;10345:4;10342:1;10332:18;10324:26;;10216:141;;;:::o;10363:93::-;10400:6;10447:2;10442;10435:5;10431:14;10427:23;10417:33;;10363:93;;;:::o;10462:107::-;10506:8;10556:5;10550:4;10546:16;10525:37;;10462:107;;;;:::o;10575:393::-;10644:6;10694:1;10682:10;10678:18;10717:97;10747:66;10736:9;10717:97;:::i;:::-;10835:39;10865:8;10854:9;10835:39;:::i;:::-;10823:51;;10907:4;10903:9;10896:5;10892:21;10883:30;;10956:4;10946:8;10942:19;10935:5;10932:30;10922:40;;10651:317;;10575:393;;;;;:::o;10974:60::-;11002:3;11023:5;11016:12;;10974:60;;;:::o;11040:142::-;11090:9;11123:53;11141:34;11150:24;11168:5;11150:24;:::i;:::-;11141:34;:::i;:::-;11123:53;:::i;:::-;11110:66;;11040:142;;;:::o;11188:75::-;11231:3;11252:5;11245:12;;11188:75;;;:::o;11269:269::-;11379:39;11410:7;11379:39;:::i;:::-;11440:91;11489:41;11513:16;11489:41;:::i;:::-;11481:6;11474:4;11468:11;11440:91;:::i;:::-;11434:4;11427:105;11345:193;11269:269;;;:::o;11544:73::-;11589:3;11544:73;:::o;11623:189::-;11700:32;;:::i;:::-;11741:65;11799:6;11791;11785:4;11741:65;:::i;:::-;11676:136;11623:189;;:::o;11818:186::-;11878:120;11895:3;11888:5;11885:14;11878:120;;;11949:39;11986:1;11979:5;11949:39;:::i;:::-;11922:1;11915:5;11911:13;11902:22;;11878:120;;;11818:186;;:::o;12010:543::-;12111:2;12106:3;12103:11;12100:446;;;12145:38;12177:5;12145:38;:::i;:::-;12229:29;12247:10;12229:29;:::i;:::-;12219:8;12215:44;12412:2;12400:10;12397:18;12394:49;;;12433:8;12418:23;;12394:49;12456:80;12512:22;12530:3;12512:22;:::i;:::-;12502:8;12498:37;12485:11;12456:80;:::i;:::-;12115:431;;12100:446;12010:543;;;:::o;12559:117::-;12613:8;12663:5;12657:4;12653:16;12632:37;;12559:117;;;;:::o;12682:169::-;12726:6;12759:51;12807:1;12803:6;12795:5;12792:1;12788:13;12759:51;:::i;:::-;12755:56;12840:4;12834;12830:15;12820:25;;12733:118;12682:169;;;;:::o;12856:295::-;12932:4;13078:29;13103:3;13097:4;13078:29;:::i;:::-;13070:37;;13140:3;13137:1;13133:11;13127:4;13124:21;13116:29;;12856:295;;;;:::o;13156:1395::-;13273:37;13306:3;13273:37;:::i;:::-;13375:18;13367:6;13364:30;13361:56;;;13397:18;;:::i;:::-;13361:56;13441:38;13473:4;13467:11;13441:38;:::i;:::-;13526:67;13586:6;13578;13572:4;13526:67;:::i;:::-;13620:1;13644:4;13631:17;;13676:2;13668:6;13665:14;13693:1;13688:618;;;;14350:1;14367:6;14364:77;;;14416:9;14411:3;14407:19;14401:26;14392:35;;14364:77;14467:67;14527:6;14520:5;14467:67;:::i;:::-;14461:4;14454:81;14323:222;13658:887;;13688:618;13740:4;13736:9;13728:6;13724:22;13774:37;13806:4;13774:37;:::i;:::-;13833:1;13847:208;13861:7;13858:1;13855:14;13847:208;;;13940:9;13935:3;13931:19;13925:26;13917:6;13910:42;13991:1;13983:6;13979:14;13969:24;;14038:2;14027:9;14023:18;14010:31;;13884:4;13881:1;13877:12;13872:17;;13847:208;;;14083:6;14074:7;14071:19;14068:179;;;14141:9;14136:3;14132:19;14126:26;14184:48;14226:4;14218:6;14214:17;14203:9;14184:48;:::i;:::-;14176:6;14169:64;14091:156;14068:179;14293:1;14289;14281:6;14277:14;14273:22;14267:4;14260:36;13695:611;;;13658:887;;13248:1303;;;13156:1395;;:::o;14557:223::-;14697:34;14693:1;14685:6;14681:14;14674:58;14766:6;14761:2;14753:6;14749:15;14742:31;14557:223;:::o;14786:366::-;14928:3;14949:67;15013:2;15008:3;14949:67;:::i;:::-;14942:74;;15025:93;15114:3;15025:93;:::i;:::-;15143:2;15138:3;15134:12;15127:19;;14786:366;;;:::o;15158:419::-;15324:4;15362:2;15351:9;15347:18;15339:26;;15411:9;15405:4;15401:20;15397:1;15386:9;15382:17;15375:47;15439:131;15565:4;15439:131;:::i;:::-;15431:139;;15158:419;;;:::o;15583:221::-;15723:34;15719:1;15711:6;15707:14;15700:58;15792:4;15787:2;15779:6;15775:15;15768:29;15583:221;:::o;15810:366::-;15952:3;15973:67;16037:2;16032:3;15973:67;:::i;:::-;15966:74;;16049:93;16138:3;16049:93;:::i;:::-;16167:2;16162:3;16158:12;16151:19;;15810:366;;;:::o;16182:419::-;16348:4;16386:2;16375:9;16371:18;16363:26;;16435:9;16429:4;16425:20;16421:1;16410:9;16406:17;16399:47;16463:131;16589:4;16463:131;:::i;:::-;16455:139;;16182:419;;;:::o;16607:179::-;16747:31;16743:1;16735:6;16731:14;16724:55;16607:179;:::o;16792:366::-;16934:3;16955:67;17019:2;17014:3;16955:67;:::i;:::-;16948:74;;17031:93;17120:3;17031:93;:::i;:::-;17149:2;17144:3;17140:12;17133:19;;16792:366;;;:::o;17164:419::-;17330:4;17368:2;17357:9;17353:18;17345:26;;17417:9;17411:4;17407:20;17403:1;17392:9;17388:17;17381:47;17445:131;17571:4;17445:131;:::i;:::-;17437:139;;17164:419;;;:::o;17589:224::-;17729:34;17725:1;17717:6;17713:14;17706:58;17798:7;17793:2;17785:6;17781:15;17774:32;17589:224;:::o;17819:366::-;17961:3;17982:67;18046:2;18041:3;17982:67;:::i;:::-;17975:74;;18058:93;18147:3;18058:93;:::i;:::-;18176:2;18171:3;18167:12;18160:19;;17819:366;;;:::o;18191:419::-;18357:4;18395:2;18384:9;18380:18;18372:26;;18444:9;18438:4;18434:20;18430:1;18419:9;18415:17;18408:47;18472:131;18598:4;18472:131;:::i;:::-;18464:139;;18191:419;;;:::o;18616:222::-;18756:34;18752:1;18744:6;18740:14;18733:58;18825:5;18820:2;18812:6;18808:15;18801:30;18616:222;:::o;18844:366::-;18986:3;19007:67;19071:2;19066:3;19007:67;:::i;:::-;19000:74;;19083:93;19172:3;19083:93;:::i;:::-;19201:2;19196:3;19192:12;19185:19;;18844:366;;;:::o;19216:419::-;19382:4;19420:2;19409:9;19405:18;19397:26;;19469:9;19463:4;19459:20;19455:1;19444:9;19440:17;19433:47;19497:131;19623:4;19497:131;:::i;:::-;19489:139;;19216:419;;;:::o;19641:225::-;19781:34;19777:1;19769:6;19765:14;19758:58;19850:8;19845:2;19837:6;19833:15;19826:33;19641:225;:::o;19872:366::-;20014:3;20035:67;20099:2;20094:3;20035:67;:::i;:::-;20028:74;;20111:93;20200:3;20111:93;:::i;:::-;20229:2;20224:3;20220:12;20213:19;;19872:366;;;:::o;20244:419::-;20410:4;20448:2;20437:9;20433:18;20425:26;;20497:9;20491:4;20487:20;20483:1;20472:9;20468:17;20461:47;20525:131;20651:4;20525:131;:::i;:::-;20517:139;;20244:419;;;:::o

Swarm Source

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