ETH Price: $3,300.47 (-0.22%)
Gas: 14 Gwei

Dobies Tickets (TICKET)
 

Overview

TokenID

0

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-
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:
DobiesTicket

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
Yes with 10000 runs

Other Settings:
default evmVersion
File 1 of 5 : DobiesTicket.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.13;

import "./ERC1155/ERC1155.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "./interfaces/IDobies.sol";

contract DobiesTicket is ERC1155, Ownable {
    address private dobies;
    string private ticketURI;
    uint256 public MAX_SUPPLY = 350;
    uint256 public minted = 0;
    uint256 public startTime;
    string public name = "Dobies Tickets";
    string public symbol = "TICKET";

    mapping(uint256 => bool) claimed;

    constructor(
        address _dobies,
        string memory _ticketURI,
        uint256 _startTime
    ) ERC1155() {
        dobies = _dobies;
        ticketURI = _ticketURI;
        startTime = _startTime;
    }

    function uri(uint256 tokenId) public view override returns (string memory) {
        return ticketURI;
    }

    function setStartTime(uint256 _startTime) external onlyOwner {
        startTime = _startTime;
    }

    function setURI(string memory _ticketURI) external onlyOwner {
        ticketURI = _ticketURI;
    }

    function setMaxSupply(uint256 _maxSupply) external onlyOwner {
        MAX_SUPPLY = _maxSupply;
    }

    function mint(uint256[] calldata dobieIds) external {
        require(block.timestamp > startTime, "Minting not yet started");
        require(dobieIds.length > 0, "Should claim at least 1 Dobie");
        require(
            IDobies(dobies).isOwnerOf(msg.sender, dobieIds),
            "Must own all dobies provided"
        );
        uint256 amount = dobieIds.length;
        require(minted + amount <= MAX_SUPPLY);

        for (uint256 i = 0; i < amount; i++) {
            uint256 id = dobieIds[i];
            require(!claimed[id], "Dobie ticket already claimed");
            claimTicket(id);
        }

        minted += amount;
        _mint(msg.sender, 0, amount, "");
    }

    function claimTicket(uint256 id) internal {
        claimed[id] = true;
    }
}

File 2 of 5 : IDobies.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.13;

interface IDobies {
    function isOwnerOf(address account, uint256[] calldata tokenIds)
        external
        view
        returns (bool);

    function walletOfOwner(address owner)
        external
        view
        returns (uint256[] memory);
}

File 3 of 5 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)

pragma solidity ^0.8.0;

import "../utils/Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

File 4 of 5 : ERC1155.sol
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;

/// @notice Minimalist and gas efficient standard ERC1155 implementation.
/// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC1155.sol)
abstract contract ERC1155 {
    /*//////////////////////////////////////////////////////////////
                                 EVENTS
    //////////////////////////////////////////////////////////////*/

    event TransferSingle(
        address indexed operator,
        address indexed from,
        address indexed to,
        uint256 id,
        uint256 amount
    );

    event TransferBatch(
        address indexed operator,
        address indexed from,
        address indexed to,
        uint256[] ids,
        uint256[] amounts
    );

    event ApprovalForAll(
        address indexed owner,
        address indexed operator,
        bool approved
    );

    event URI(string value, uint256 indexed id);

    /*//////////////////////////////////////////////////////////////
                             ERC1155 STORAGE
    //////////////////////////////////////////////////////////////*/

    mapping(address => mapping(uint256 => uint256)) public balanceOf;

    mapping(address => mapping(address => bool)) public isApprovedForAll;

    /*//////////////////////////////////////////////////////////////
                             METADATA LOGIC
    //////////////////////////////////////////////////////////////*/

    function uri(uint256 id) public view virtual returns (string memory);

    /*//////////////////////////////////////////////////////////////
                              ERC1155 LOGIC
    //////////////////////////////////////////////////////////////*/

    function setApprovalForAll(address operator, bool approved) public virtual {
        isApprovedForAll[msg.sender][operator] = approved;

        emit ApprovalForAll(msg.sender, operator, approved);
    }

    function safeTransferFrom(
        address from,
        address to,
        uint256 id,
        uint256 amount,
        bytes calldata data
    ) public virtual {
        require(
            msg.sender == from || isApprovedForAll[from][msg.sender],
            "NOT_AUTHORIZED"
        );

        balanceOf[from][id] -= amount;
        balanceOf[to][id] += amount;

        emit TransferSingle(msg.sender, from, to, id, amount);

        require(
            to.code.length == 0
                ? to != address(0)
                : ERC1155TokenReceiver(to).onERC1155Received(
                    msg.sender,
                    from,
                    id,
                    amount,
                    data
                ) == ERC1155TokenReceiver.onERC1155Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function safeBatchTransferFrom(
        address from,
        address to,
        uint256[] calldata ids,
        uint256[] calldata amounts,
        bytes calldata data
    ) public virtual {
        require(ids.length == amounts.length, "LENGTH_MISMATCH");

        require(
            msg.sender == from || isApprovedForAll[from][msg.sender],
            "NOT_AUTHORIZED"
        );

        // Storing these outside the loop saves ~15 gas per iteration.
        uint256 id;
        uint256 amount;

        for (uint256 i = 0; i < ids.length; ) {
            id = ids[i];
            amount = amounts[i];

            balanceOf[from][id] -= amount;
            balanceOf[to][id] += amount;

            // An array can't have a total length
            // larger than the max uint256 value.
            unchecked {
                ++i;
            }
        }

        emit TransferBatch(msg.sender, from, to, ids, amounts);

        require(
            to.code.length == 0
                ? to != address(0)
                : ERC1155TokenReceiver(to).onERC1155BatchReceived(
                    msg.sender,
                    from,
                    ids,
                    amounts,
                    data
                ) == ERC1155TokenReceiver.onERC1155BatchReceived.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function balanceOfBatch(address[] calldata owners, uint256[] calldata ids)
        public
        view
        virtual
        returns (uint256[] memory balances)
    {
        require(owners.length == ids.length, "LENGTH_MISMATCH");

        balances = new uint256[](owners.length);

        // Unchecked because the only math done is incrementing
        // the array index counter which cannot possibly overflow.
        unchecked {
            for (uint256 i = 0; i < owners.length; ++i) {
                balances[i] = balanceOf[owners[i]][ids[i]];
            }
        }
    }

    /*//////////////////////////////////////////////////////////////
                              ERC165 LOGIC
    //////////////////////////////////////////////////////////////*/

    function supportsInterface(bytes4 interfaceId)
        public
        view
        virtual
        returns (bool)
    {
        return
            interfaceId == 0x01ffc9a7 || // ERC165 Interface ID for ERC165
            interfaceId == 0xd9b67a26 || // ERC165 Interface ID for ERC1155
            interfaceId == 0x0e89341c; // ERC165 Interface ID for ERC1155MetadataURI
    }

    /*//////////////////////////////////////////////////////////////
                        INTERNAL MINT/BURN LOGIC
    //////////////////////////////////////////////////////////////*/

    function _mint(
        address to,
        uint256 id,
        uint256 amount,
        bytes memory data
    ) internal virtual {
        balanceOf[to][id] += amount;

        emit TransferSingle(msg.sender, address(0), to, id, amount);

        require(
            to.code.length == 0
                ? to != address(0)
                : ERC1155TokenReceiver(to).onERC1155Received(
                    msg.sender,
                    address(0),
                    id,
                    amount,
                    data
                ) == ERC1155TokenReceiver.onERC1155Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function _batchMint(
        address to,
        uint256[] memory ids,
        uint256[] memory amounts,
        bytes memory data
    ) internal virtual {
        uint256 idsLength = ids.length; // Saves MLOADs.

        require(idsLength == amounts.length, "LENGTH_MISMATCH");

        for (uint256 i = 0; i < idsLength; ) {
            balanceOf[to][ids[i]] += amounts[i];

            // An array can't have a total length
            // larger than the max uint256 value.
            unchecked {
                ++i;
            }
        }

        emit TransferBatch(msg.sender, address(0), to, ids, amounts);

        require(
            to.code.length == 0
                ? to != address(0)
                : ERC1155TokenReceiver(to).onERC1155BatchReceived(
                    msg.sender,
                    address(0),
                    ids,
                    amounts,
                    data
                ) == ERC1155TokenReceiver.onERC1155BatchReceived.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function _batchBurn(
        address from,
        uint256[] memory ids,
        uint256[] memory amounts
    ) internal virtual {
        uint256 idsLength = ids.length; // Saves MLOADs.

        require(idsLength == amounts.length, "LENGTH_MISMATCH");

        for (uint256 i = 0; i < idsLength; ) {
            balanceOf[from][ids[i]] -= amounts[i];

            // An array can't have a total length
            // larger than the max uint256 value.
            unchecked {
                ++i;
            }
        }

        emit TransferBatch(msg.sender, from, address(0), ids, amounts);
    }

    function _burn(
        address from,
        uint256 id,
        uint256 amount
    ) internal virtual {
        balanceOf[from][id] -= amount;

        emit TransferSingle(msg.sender, from, address(0), id, amount);
    }
}

/// @notice A generic interface for a contract which properly accepts ERC1155 tokens.
/// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC1155.sol)
abstract contract ERC1155TokenReceiver {
    function onERC1155Received(
        address,
        address,
        uint256,
        uint256,
        bytes calldata
    ) external virtual returns (bytes4) {
        return ERC1155TokenReceiver.onERC1155Received.selector;
    }

    function onERC1155BatchReceived(
        address,
        address,
        uint256[] calldata,
        uint256[] calldata,
        bytes calldata
    ) external virtual returns (bytes4) {
        return ERC1155TokenReceiver.onERC1155BatchReceived.selector;
    }
}

File 5 of 5 : Context.sol
// SPDX-License-Identifier: MIT
// 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;
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 10000
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_dobies","type":"address"},{"internalType":"string","name":"_ticketURI","type":"string"},{"internalType":"uint256","name":"_startTime","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","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":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferSingle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value","type":"string"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"URI","type":"event"},{"inputs":[],"name":"MAX_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"owners","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"balances","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"dobieIds","type":"uint256[]"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeBatchTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxSupply","type":"uint256"}],"name":"setMaxSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_startTime","type":"uint256"}],"name":"setStartTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_ticketURI","type":"string"}],"name":"setURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]

61015e600555600060065560c0604052600e60808190526d446f62696573205469636b65747360901b60a09081526200003c916008919062000137565b5060408051808201909152600680825265151250d2d15560d21b60209092019182526200006c9160099162000137565b503480156200007a57600080fd5b5060405162002289380380620022898339810160408190526200009d91620001f3565b620000a833620000e5565b600380546001600160a01b0319166001600160a01b0385161790558151620000d890600490602085019062000137565b5060075550620003389050565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8280546200014590620002fc565b90600052602060002090601f016020900481019282620001695760008555620001b4565b82601f106200018457805160ff1916838001178555620001b4565b82800160010185558215620001b4579182015b82811115620001b457825182559160200191906001019062000197565b50620001c2929150620001c6565b5090565b5b80821115620001c25760008155600101620001c7565b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156200020957600080fd5b83516001600160a01b03811681146200022157600080fd5b602085810151919450906001600160401b03808211156200024157600080fd5b818701915087601f8301126200025657600080fd5b8151818111156200026b576200026b620001dd565b604051601f8201601f19908116603f01168101908382118183101715620002965762000296620001dd565b816040528281528a86848701011115620002af57600080fd5b600093505b82841015620002d35784840186015181850187015292850192620002b4565b82841115620002e55760008684830101525b809750505050505050604084015190509250925092565b600181811c908216806200031157607f821691505b6020821081036200033257634e487b7160e01b600052602260045260246000fd5b50919050565b611f4180620003486000396000f3fe608060405234801561001057600080fd5b506004361061016b5760003560e01c80636f8b44b0116100cd578063a22cb46511610081578063f242432a11610066578063f242432a146102f8578063f2fde38b1461030b578063f8e93ef91461031e57600080fd5b8063a22cb465146102b7578063e985e9c5146102ca57600080fd5b806378e97925116100b257806378e979251461027e5780638da5cb5b1461028757806395d89b41146102af57600080fd5b80636f8b44b014610263578063715018a61461027657600080fd5b80632eb2c2d6116101245780633e0a322d116101095780633e0a322d146102275780634e1273f41461023a5780634f02c4201461025a57600080fd5b80632eb2c2d61461020b57806332cb6b0c1461021e57600080fd5b806302fe53051161015557806302fe5305146101ce57806306fdde03146101e35780630e89341c146101f857600080fd5b8062fdd58e1461017057806301ffc9a7146101ab575b600080fd5b61019861017e366004611657565b600060208181529281526040808220909352908152205481565b6040519081526020015b60405180910390f35b6101be6101b93660046116af565b610331565b60405190151581526020016101a2565b6101e16101dc366004611702565b610416565b005b6101eb610499565b6040516101a2919061183c565b6101eb61020636600461184f565b610527565b6101e16102193660046118f6565b6105bb565b61019860055481565b6101e161023536600461184f565b61095e565b61024d6102483660046119b1565b6109ca565b6040516101a29190611a1d565b61019860065481565b6101e161027136600461184f565b610b27565b6101e1610b93565b61019860075481565b60025460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a2565b6101eb610c06565b6101e16102c5366004611a6f565b610c13565b6101be6102d8366004611aa6565b600160209081526000928352604080842090915290825290205460ff1681565b6101e1610306366004611ad9565b610caa565b6101e1610319366004611b51565b610f7c565b6101e161032c366004611b6c565b611078565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614806103c457507fd9b67a26000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b8061041057507f0e89341c000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60025473ffffffffffffffffffffffffffffffffffffffff1633146104825760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b8051610495906004906020840190611595565b5050565b600880546104a690611bae565b80601f01602080910402602001604051908101604052809291908181526020018280546104d290611bae565b801561051f5780601f106104f45761010080835404028352916020019161051f565b820191906000526020600020905b81548152906001019060200180831161050257829003601f168201915b505050505081565b60606004805461053690611bae565b80601f016020809104026020016040519081016040528092919081815260200182805461056290611bae565b80156105af5780601f10610584576101008083540402835291602001916105af565b820191906000526020600020905b81548152906001019060200180831161059257829003601f168201915b50505050509050919050565b84831461060a5760405162461bcd60e51b815260206004820152600f60248201527f4c454e4754485f4d49534d4154434800000000000000000000000000000000006044820152606401610479565b3373ffffffffffffffffffffffffffffffffffffffff8916148061065e575073ffffffffffffffffffffffffffffffffffffffff8816600090815260016020908152604080832033845290915290205460ff165b6106aa5760405162461bcd60e51b815260206004820152600e60248201527f4e4f545f415554484f52495a45440000000000000000000000000000000000006044820152606401610479565b60008060005b8781101561077f578888828181106106ca576106ca611c01565b9050602002013592508686828181106106e5576106e5611c01565b73ffffffffffffffffffffffffffffffffffffffff8e166000908152602081815260408083208984528252822080549390910294909401359550859392509061072f908490611c5f565b909155505073ffffffffffffffffffffffffffffffffffffffff8a1660009081526020818152604080832086845290915281208054849290610772908490611c76565b90915550506001016106b0565b508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8b8b8b8b6040516107fa9493929190611cdd565b60405180910390a473ffffffffffffffffffffffffffffffffffffffff89163b156108ec576040517fbc197c81000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff8b169063bc197c81906108819033908f908e908e908e908e908e908e90600401611d58565b6020604051808303816000875af11580156108a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c49190611dc9565b7fffffffff000000000000000000000000000000000000000000000000000000001614610906565b73ffffffffffffffffffffffffffffffffffffffff891615155b6109525760405162461bcd60e51b815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610479565b50505050505050505050565b60025473ffffffffffffffffffffffffffffffffffffffff1633146109c55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610479565b600755565b6060838214610a1b5760405162461bcd60e51b815260206004820152600f60248201527f4c454e4754485f4d49534d4154434800000000000000000000000000000000006044820152606401610479565b8367ffffffffffffffff811115610a3457610a346116d3565b604051908082528060200260200182016040528015610a5d578160200160208202803683370190505b50905060005b84811015610b1e57600080878784818110610a8057610a80611c01565b9050602002016020810190610a959190611b51565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000858584818110610ae357610ae3611c01565b90506020020135815260200190815260200160002054828281518110610b0b57610b0b611c01565b6020908102919091010152600101610a63565b50949350505050565b60025473ffffffffffffffffffffffffffffffffffffffff163314610b8e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610479565b600555565b60025473ffffffffffffffffffffffffffffffffffffffff163314610bfa5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610479565b610c046000611334565b565b600980546104a690611bae565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b3373ffffffffffffffffffffffffffffffffffffffff87161480610cfe575073ffffffffffffffffffffffffffffffffffffffff8616600090815260016020908152604080832033845290915290205460ff165b610d4a5760405162461bcd60e51b815260206004820152600e60248201527f4e4f545f415554484f52495a45440000000000000000000000000000000000006044820152606401610479565b73ffffffffffffffffffffffffffffffffffffffff861660009081526020818152604080832087845290915281208054859290610d88908490611c5f565b909155505073ffffffffffffffffffffffffffffffffffffffff851660009081526020818152604080832087845290915281208054859290610dcb908490611c76565b9091555050604080518581526020810185905273ffffffffffffffffffffffffffffffffffffffff808816929089169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a473ffffffffffffffffffffffffffffffffffffffff85163b15610f0e576040517ff23a6e61000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff87169063f23a6e6190610ea39033908b908a908a908a908a90600401611de6565b6020604051808303816000875af1158015610ec2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee69190611dc9565b7fffffffff000000000000000000000000000000000000000000000000000000001614610f28565b73ffffffffffffffffffffffffffffffffffffffff851615155b610f745760405162461bcd60e51b815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610479565b505050505050565b60025473ffffffffffffffffffffffffffffffffffffffff163314610fe35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610479565b73ffffffffffffffffffffffffffffffffffffffff811661106c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610479565b61107581611334565b50565b60075442116110c95760405162461bcd60e51b815260206004820152601760248201527f4d696e74696e67206e6f742079657420737461727465640000000000000000006044820152606401610479565b806111165760405162461bcd60e51b815260206004820152601d60248201527f53686f756c6420636c61696d206174206c65617374203120446f6269650000006044820152606401610479565b6003546040517f4d44660c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690634d44660c9061117090339086908690600401611e38565b602060405180830381865afa15801561118d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b19190611e71565b6111fd5760405162461bcd60e51b815260206004820152601c60248201527f4d757374206f776e20616c6c20646f626965732070726f7669646564000000006044820152606401610479565b600554600654829190611211908390611c76565b111561121c57600080fd5b60005b818110156112f957600084848381811061123b5761123b611c01565b602090810292909201356000818152600a9093526040909220549192505060ff16156112a95760405162461bcd60e51b815260206004820152601c60248201527f446f626965207469636b657420616c726561647920636c61696d6564000000006044820152606401610479565b6112e6816000908152600a6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b50806112f181611e8e565b91505061121f565b50806006600082825461130c9190611c76565b9250508190555061132f33600083604051806020016040528060008152506113ab565b505050565b6002805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260208181526040808320868452909152812080548492906113e9908490611c76565b9091555050604080518481526020810184905273ffffffffffffffffffffffffffffffffffffffff86169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a473ffffffffffffffffffffffffffffffffffffffff84163b15611529576040517ff23a6e61000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff86169063f23a6e61906114be903390600090899089908990600401611ec6565b6020604051808303816000875af11580156114dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115019190611dc9565b7fffffffff000000000000000000000000000000000000000000000000000000001614611543565b73ffffffffffffffffffffffffffffffffffffffff841615155b61158f5760405162461bcd60e51b815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610479565b50505050565b8280546115a190611bae565b90600052602060002090601f0160209004810192826115c35760008555611609565b82601f106115dc57805160ff1916838001178555611609565b82800160010185558215611609579182015b828111156116095782518255916020019190600101906115ee565b50611615929150611619565b5090565b5b80821115611615576000815560010161161a565b803573ffffffffffffffffffffffffffffffffffffffff8116811461165257600080fd5b919050565b6000806040838503121561166a57600080fd5b6116738361162e565b946020939093013593505050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461107557600080fd5b6000602082840312156116c157600080fd5b81356116cc81611681565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561171457600080fd5b813567ffffffffffffffff8082111561172c57600080fd5b818401915084601f83011261174057600080fd5b813581811115611752576117526116d3565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715611798576117986116d3565b816040528281528760208487010111156117b157600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000815180845260005b818110156117f7576020818501810151868301820152016117db565b81811115611809576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006116cc60208301846117d1565b60006020828403121561186157600080fd5b5035919050565b60008083601f84011261187a57600080fd5b50813567ffffffffffffffff81111561189257600080fd5b6020830191508360208260051b85010111156118ad57600080fd5b9250929050565b60008083601f8401126118c657600080fd5b50813567ffffffffffffffff8111156118de57600080fd5b6020830191508360208285010111156118ad57600080fd5b60008060008060008060008060a0898b03121561191257600080fd5b61191b8961162e565b975061192960208a0161162e565b9650604089013567ffffffffffffffff8082111561194657600080fd5b6119528c838d01611868565b909850965060608b013591508082111561196b57600080fd5b6119778c838d01611868565b909650945060808b013591508082111561199057600080fd5b5061199d8b828c016118b4565b999c989b5096995094979396929594505050565b600080600080604085870312156119c757600080fd5b843567ffffffffffffffff808211156119df57600080fd5b6119eb88838901611868565b90965094506020870135915080821115611a0457600080fd5b50611a1187828801611868565b95989497509550505050565b6020808252825182820181905260009190848201906040850190845b81811015611a5557835183529284019291840191600101611a39565b50909695505050505050565b801515811461107557600080fd5b60008060408385031215611a8257600080fd5b611a8b8361162e565b91506020830135611a9b81611a61565b809150509250929050565b60008060408385031215611ab957600080fd5b611ac28361162e565b9150611ad06020840161162e565b90509250929050565b60008060008060008060a08789031215611af257600080fd5b611afb8761162e565b9550611b096020880161162e565b94506040870135935060608701359250608087013567ffffffffffffffff811115611b3357600080fd5b611b3f89828a016118b4565b979a9699509497509295939492505050565b600060208284031215611b6357600080fd5b6116cc8261162e565b60008060208385031215611b7f57600080fd5b823567ffffffffffffffff811115611b9657600080fd5b611ba285828601611868565b90969095509350505050565b600181811c90821680611bc257607f821691505b602082108103611bfb577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015611c7157611c71611c30565b500390565b60008219821115611c8957611c89611c30565b500190565b81835260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115611cc057600080fd5b8260051b8083602087013760009401602001938452509192915050565b604081526000611cf1604083018688611c8e565b8281036020840152611d04818587611c8e565b979650505050505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b600073ffffffffffffffffffffffffffffffffffffffff808b168352808a1660208401525060a06040830152611d9260a08301888a611c8e565b8281036060840152611da5818789611c8e565b90508281036080840152611dba818587611d0f565b9b9a5050505050505050505050565b600060208284031215611ddb57600080fd5b81516116cc81611681565b600073ffffffffffffffffffffffffffffffffffffffff808916835280881660208401525085604083015284606083015260a06080830152611e2c60a083018486611d0f565b98975050505050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152604060208201526000611e68604083018486611c8e565b95945050505050565b600060208284031215611e8357600080fd5b81516116cc81611a61565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611ebf57611ebf611c30565b5060010190565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015283606083015260a06080830152611d0460a08301846117d156fea2646970667358221220d2a59fce1a28a4eeab5b608c0c23ca78bffafa4bb53ddc24ab24b6d9aa0db10d64736f6c634300080e00330000000000000000000000009f001721bb087fbbcd6fef2c140ed6892760e71b00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000062a146100000000000000000000000000000000000000000000000000000000000000042697066733a2f2f6261666b7265696835796f6264377a61677368757a336c3670687761716b346c673262347662716b33686235646469793263646f67767369713334000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061016b5760003560e01c80636f8b44b0116100cd578063a22cb46511610081578063f242432a11610066578063f242432a146102f8578063f2fde38b1461030b578063f8e93ef91461031e57600080fd5b8063a22cb465146102b7578063e985e9c5146102ca57600080fd5b806378e97925116100b257806378e979251461027e5780638da5cb5b1461028757806395d89b41146102af57600080fd5b80636f8b44b014610263578063715018a61461027657600080fd5b80632eb2c2d6116101245780633e0a322d116101095780633e0a322d146102275780634e1273f41461023a5780634f02c4201461025a57600080fd5b80632eb2c2d61461020b57806332cb6b0c1461021e57600080fd5b806302fe53051161015557806302fe5305146101ce57806306fdde03146101e35780630e89341c146101f857600080fd5b8062fdd58e1461017057806301ffc9a7146101ab575b600080fd5b61019861017e366004611657565b600060208181529281526040808220909352908152205481565b6040519081526020015b60405180910390f35b6101be6101b93660046116af565b610331565b60405190151581526020016101a2565b6101e16101dc366004611702565b610416565b005b6101eb610499565b6040516101a2919061183c565b6101eb61020636600461184f565b610527565b6101e16102193660046118f6565b6105bb565b61019860055481565b6101e161023536600461184f565b61095e565b61024d6102483660046119b1565b6109ca565b6040516101a29190611a1d565b61019860065481565b6101e161027136600461184f565b610b27565b6101e1610b93565b61019860075481565b60025460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a2565b6101eb610c06565b6101e16102c5366004611a6f565b610c13565b6101be6102d8366004611aa6565b600160209081526000928352604080842090915290825290205460ff1681565b6101e1610306366004611ad9565b610caa565b6101e1610319366004611b51565b610f7c565b6101e161032c366004611b6c565b611078565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614806103c457507fd9b67a26000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b8061041057507f0e89341c000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60025473ffffffffffffffffffffffffffffffffffffffff1633146104825760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b8051610495906004906020840190611595565b5050565b600880546104a690611bae565b80601f01602080910402602001604051908101604052809291908181526020018280546104d290611bae565b801561051f5780601f106104f45761010080835404028352916020019161051f565b820191906000526020600020905b81548152906001019060200180831161050257829003601f168201915b505050505081565b60606004805461053690611bae565b80601f016020809104026020016040519081016040528092919081815260200182805461056290611bae565b80156105af5780601f10610584576101008083540402835291602001916105af565b820191906000526020600020905b81548152906001019060200180831161059257829003601f168201915b50505050509050919050565b84831461060a5760405162461bcd60e51b815260206004820152600f60248201527f4c454e4754485f4d49534d4154434800000000000000000000000000000000006044820152606401610479565b3373ffffffffffffffffffffffffffffffffffffffff8916148061065e575073ffffffffffffffffffffffffffffffffffffffff8816600090815260016020908152604080832033845290915290205460ff165b6106aa5760405162461bcd60e51b815260206004820152600e60248201527f4e4f545f415554484f52495a45440000000000000000000000000000000000006044820152606401610479565b60008060005b8781101561077f578888828181106106ca576106ca611c01565b9050602002013592508686828181106106e5576106e5611c01565b73ffffffffffffffffffffffffffffffffffffffff8e166000908152602081815260408083208984528252822080549390910294909401359550859392509061072f908490611c5f565b909155505073ffffffffffffffffffffffffffffffffffffffff8a1660009081526020818152604080832086845290915281208054849290610772908490611c76565b90915550506001016106b0565b508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8b8b8b8b6040516107fa9493929190611cdd565b60405180910390a473ffffffffffffffffffffffffffffffffffffffff89163b156108ec576040517fbc197c81000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff8b169063bc197c81906108819033908f908e908e908e908e908e908e90600401611d58565b6020604051808303816000875af11580156108a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c49190611dc9565b7fffffffff000000000000000000000000000000000000000000000000000000001614610906565b73ffffffffffffffffffffffffffffffffffffffff891615155b6109525760405162461bcd60e51b815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610479565b50505050505050505050565b60025473ffffffffffffffffffffffffffffffffffffffff1633146109c55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610479565b600755565b6060838214610a1b5760405162461bcd60e51b815260206004820152600f60248201527f4c454e4754485f4d49534d4154434800000000000000000000000000000000006044820152606401610479565b8367ffffffffffffffff811115610a3457610a346116d3565b604051908082528060200260200182016040528015610a5d578160200160208202803683370190505b50905060005b84811015610b1e57600080878784818110610a8057610a80611c01565b9050602002016020810190610a959190611b51565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000858584818110610ae357610ae3611c01565b90506020020135815260200190815260200160002054828281518110610b0b57610b0b611c01565b6020908102919091010152600101610a63565b50949350505050565b60025473ffffffffffffffffffffffffffffffffffffffff163314610b8e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610479565b600555565b60025473ffffffffffffffffffffffffffffffffffffffff163314610bfa5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610479565b610c046000611334565b565b600980546104a690611bae565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b3373ffffffffffffffffffffffffffffffffffffffff87161480610cfe575073ffffffffffffffffffffffffffffffffffffffff8616600090815260016020908152604080832033845290915290205460ff165b610d4a5760405162461bcd60e51b815260206004820152600e60248201527f4e4f545f415554484f52495a45440000000000000000000000000000000000006044820152606401610479565b73ffffffffffffffffffffffffffffffffffffffff861660009081526020818152604080832087845290915281208054859290610d88908490611c5f565b909155505073ffffffffffffffffffffffffffffffffffffffff851660009081526020818152604080832087845290915281208054859290610dcb908490611c76565b9091555050604080518581526020810185905273ffffffffffffffffffffffffffffffffffffffff808816929089169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a473ffffffffffffffffffffffffffffffffffffffff85163b15610f0e576040517ff23a6e61000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff87169063f23a6e6190610ea39033908b908a908a908a908a90600401611de6565b6020604051808303816000875af1158015610ec2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee69190611dc9565b7fffffffff000000000000000000000000000000000000000000000000000000001614610f28565b73ffffffffffffffffffffffffffffffffffffffff851615155b610f745760405162461bcd60e51b815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610479565b505050505050565b60025473ffffffffffffffffffffffffffffffffffffffff163314610fe35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610479565b73ffffffffffffffffffffffffffffffffffffffff811661106c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610479565b61107581611334565b50565b60075442116110c95760405162461bcd60e51b815260206004820152601760248201527f4d696e74696e67206e6f742079657420737461727465640000000000000000006044820152606401610479565b806111165760405162461bcd60e51b815260206004820152601d60248201527f53686f756c6420636c61696d206174206c65617374203120446f6269650000006044820152606401610479565b6003546040517f4d44660c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690634d44660c9061117090339086908690600401611e38565b602060405180830381865afa15801561118d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b19190611e71565b6111fd5760405162461bcd60e51b815260206004820152601c60248201527f4d757374206f776e20616c6c20646f626965732070726f7669646564000000006044820152606401610479565b600554600654829190611211908390611c76565b111561121c57600080fd5b60005b818110156112f957600084848381811061123b5761123b611c01565b602090810292909201356000818152600a9093526040909220549192505060ff16156112a95760405162461bcd60e51b815260206004820152601c60248201527f446f626965207469636b657420616c726561647920636c61696d6564000000006044820152606401610479565b6112e6816000908152600a6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b50806112f181611e8e565b91505061121f565b50806006600082825461130c9190611c76565b9250508190555061132f33600083604051806020016040528060008152506113ab565b505050565b6002805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260208181526040808320868452909152812080548492906113e9908490611c76565b9091555050604080518481526020810184905273ffffffffffffffffffffffffffffffffffffffff86169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a473ffffffffffffffffffffffffffffffffffffffff84163b15611529576040517ff23a6e61000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff86169063f23a6e61906114be903390600090899089908990600401611ec6565b6020604051808303816000875af11580156114dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115019190611dc9565b7fffffffff000000000000000000000000000000000000000000000000000000001614611543565b73ffffffffffffffffffffffffffffffffffffffff841615155b61158f5760405162461bcd60e51b815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610479565b50505050565b8280546115a190611bae565b90600052602060002090601f0160209004810192826115c35760008555611609565b82601f106115dc57805160ff1916838001178555611609565b82800160010185558215611609579182015b828111156116095782518255916020019190600101906115ee565b50611615929150611619565b5090565b5b80821115611615576000815560010161161a565b803573ffffffffffffffffffffffffffffffffffffffff8116811461165257600080fd5b919050565b6000806040838503121561166a57600080fd5b6116738361162e565b946020939093013593505050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461107557600080fd5b6000602082840312156116c157600080fd5b81356116cc81611681565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561171457600080fd5b813567ffffffffffffffff8082111561172c57600080fd5b818401915084601f83011261174057600080fd5b813581811115611752576117526116d3565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715611798576117986116d3565b816040528281528760208487010111156117b157600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000815180845260005b818110156117f7576020818501810151868301820152016117db565b81811115611809576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006116cc60208301846117d1565b60006020828403121561186157600080fd5b5035919050565b60008083601f84011261187a57600080fd5b50813567ffffffffffffffff81111561189257600080fd5b6020830191508360208260051b85010111156118ad57600080fd5b9250929050565b60008083601f8401126118c657600080fd5b50813567ffffffffffffffff8111156118de57600080fd5b6020830191508360208285010111156118ad57600080fd5b60008060008060008060008060a0898b03121561191257600080fd5b61191b8961162e565b975061192960208a0161162e565b9650604089013567ffffffffffffffff8082111561194657600080fd5b6119528c838d01611868565b909850965060608b013591508082111561196b57600080fd5b6119778c838d01611868565b909650945060808b013591508082111561199057600080fd5b5061199d8b828c016118b4565b999c989b5096995094979396929594505050565b600080600080604085870312156119c757600080fd5b843567ffffffffffffffff808211156119df57600080fd5b6119eb88838901611868565b90965094506020870135915080821115611a0457600080fd5b50611a1187828801611868565b95989497509550505050565b6020808252825182820181905260009190848201906040850190845b81811015611a5557835183529284019291840191600101611a39565b50909695505050505050565b801515811461107557600080fd5b60008060408385031215611a8257600080fd5b611a8b8361162e565b91506020830135611a9b81611a61565b809150509250929050565b60008060408385031215611ab957600080fd5b611ac28361162e565b9150611ad06020840161162e565b90509250929050565b60008060008060008060a08789031215611af257600080fd5b611afb8761162e565b9550611b096020880161162e565b94506040870135935060608701359250608087013567ffffffffffffffff811115611b3357600080fd5b611b3f89828a016118b4565b979a9699509497509295939492505050565b600060208284031215611b6357600080fd5b6116cc8261162e565b60008060208385031215611b7f57600080fd5b823567ffffffffffffffff811115611b9657600080fd5b611ba285828601611868565b90969095509350505050565b600181811c90821680611bc257607f821691505b602082108103611bfb577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015611c7157611c71611c30565b500390565b60008219821115611c8957611c89611c30565b500190565b81835260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115611cc057600080fd5b8260051b8083602087013760009401602001938452509192915050565b604081526000611cf1604083018688611c8e565b8281036020840152611d04818587611c8e565b979650505050505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b600073ffffffffffffffffffffffffffffffffffffffff808b168352808a1660208401525060a06040830152611d9260a08301888a611c8e565b8281036060840152611da5818789611c8e565b90508281036080840152611dba818587611d0f565b9b9a5050505050505050505050565b600060208284031215611ddb57600080fd5b81516116cc81611681565b600073ffffffffffffffffffffffffffffffffffffffff808916835280881660208401525085604083015284606083015260a06080830152611e2c60a083018486611d0f565b98975050505050505050565b73ffffffffffffffffffffffffffffffffffffffff84168152604060208201526000611e68604083018486611c8e565b95945050505050565b600060208284031215611e8357600080fd5b81516116cc81611a61565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611ebf57611ebf611c30565b5060010190565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015283606083015260a06080830152611d0460a08301846117d156fea2646970667358221220d2a59fce1a28a4eeab5b608c0c23ca78bffafa4bb53ddc24ab24b6d9aa0db10d64736f6c634300080e0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000009f001721bb087fbbcd6fef2c140ed6892760e71b00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000062a146100000000000000000000000000000000000000000000000000000000000000042697066733a2f2f6261666b7265696835796f6264377a61677368757a336c3670687761716b346c673262347662716b33686235646469793263646f67767369713334000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _dobies (address): 0x9F001721bB087FbBcD6FeF2c140Ed6892760e71b
Arg [1] : _ticketURI (string): ipfs://bafkreih5yobd7zagshuz3l6phwaqk4lg2b4vbqk3hb5ddiy2cdogvsiq34
Arg [2] : _startTime (uint256): 1654736400

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000009f001721bb087fbbcd6fef2c140ed6892760e71b
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [2] : 0000000000000000000000000000000000000000000000000000000062a14610
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000042
Arg [4] : 697066733a2f2f6261666b7265696835796f6264377a61677368757a336c3670
Arg [5] : 687761716b346c673262347662716b33686235646469793263646f6776736971
Arg [6] : 3334000000000000000000000000000000000000000000000000000000000000


Loading...
Loading
Loading...
Loading
[ 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.