ETH Price: $1,977.90 (+0.20%)
 

Overview

Max Total Supply

0 GTRV

Holders

6

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A

Other Info

Balance
1 GTRV
0x94de7e2c73529ebf3206aa3459e699fbcdfcd49b
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:
AllocatedEditionsProxy

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
Yes with 2000 runs

Other Settings:
default evmVersion
File 1 of 10 : AllocatedEditionsProxy.sol
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.6;

import {IERC2309} from "../../../external/interface/IERC2309.sol";
import {AllocatedEditionsStorage} from "./AllocatedEditionsStorage.sol";
import {IAllocatedEditionsFactory} from "./interface/IAllocatedEditionsFactory.sol";
import {Governable} from "../../../lib/Governable.sol";
import {Pausable} from "../../../lib/Pausable.sol";
import {IAllocatedEditionsLogicEvents} from "./interface/IAllocatedEditionsLogic.sol";
import {IERC721Events} from "../../../external/interface/IERC721.sol";

/**
 * @title AllocatedEditionsProxy
 * @author MirrorXYZ
 */
contract AllocatedEditionsProxy is
    AllocatedEditionsStorage,
    Governable,
    Pausable,
    IAllocatedEditionsLogicEvents,
    IERC721Events,
    IERC2309
{
    event Upgraded(address indexed implementation);

    /// @notice IERC721Metadata
    string public name;
    string public symbol;

    /**
     * @dev Storage slot with the address of the current implementation.
     * This is the keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1, and is
     * validated in the constructor.
     */
    bytes32 internal constant _IMPLEMENTATION_SLOT =
        0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;

    constructor(address owner_, address proxyRegistry_)
        Governable(owner_)
        Pausable(true)
    {
        address implementation = IAllocatedEditionsFactory(msg.sender).logic();
        assembly {
            sstore(_IMPLEMENTATION_SLOT, implementation)
        }

        emit Upgraded(implementation);

        proxyRegistry = proxyRegistry_;

        bytes memory nftMetaData;
        bytes memory adminData;

        (
            // NFT Metadata
            nftMetaData,
            // Edition Data
            allocation,
            quantity,
            price,
            // Admin data
            adminData
        ) = IAllocatedEditionsFactory(msg.sender).parameters();

        (name, symbol, baseURI, contentHash) = abi.decode(
            nftMetaData,
            (string, string, string, bytes32)
        );

        (
            operator,
            tributary,
            fundingRecipient,
            feePercentage,
            treasuryConfig
        ) = abi.decode(
            adminData,
            (address, address, address, uint256, address)
        );

        if (allocation > 0) {
            nextTokenId = allocation;

            emit ConsecutiveTransfer(0, allocation - 1, address(0), operator);
        }
    }

    fallback() external payable {
        assembly {
            let ptr := mload(0x40)
            calldatacopy(ptr, 0, calldatasize())
            let result := delegatecall(
                gas(),
                sload(_IMPLEMENTATION_SLOT),
                ptr,
                calldatasize(),
                0,
                0
            )
            let size := returndatasize()
            returndatacopy(ptr, 0, size)

            switch result
            case 0 {
                revert(ptr, size)
            }
            default {
                return(ptr, size)
            }
        }
    }

    receive() external payable {}
}

File 2 of 10 : IERC2309.sol
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.6;

interface IERC2309 {
    event ConsecutiveTransfer(
        uint256 indexed fromTokenId,
        uint256 toTokenId,
        address indexed fromAddress,
        address indexed toAddress
    );
}

File 3 of 10 : AllocatedEditionsStorage.sol
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.6;

/**
 * @title AllocatedEditionsStorage
 * @author MirrorXYZ
 */
contract AllocatedEditionsStorage {
    // ============ Structs ============

    /// @notice Contains general data about the NFT.
    struct NFTMetadata {
        string name;
        string symbol;
        bytes32 contentHash;
    }

    /// @notice Contains information pertaining to the edition spec.
    struct EditionData {
        // The number of tokens pre-allocated to the minter.
        uint256 allocation;
        // The maximum number of tokens that can be sold.
        uint256 quantity;
        // The price at which each token will be sold, in ETH.
        uint256 price;
    }

    /// @notice Contains information about funds disbursement.
    struct AdminData {
        // Operator of this contract, receives premint.
        address operator;
        // Address that receive gov tokens via treasury.
        address tributary;
        // The account that will receive sales revenue.
        address payable fundingRecipient;
        // The fee taken when withdrawing funds
        uint256 feePercentage;
    }

    // ============ Storage for Setup ============

    /// @notice NFTMetadata`
    string public baseURI;
    bytes32 contentHash;

    /// @notice EditionData
    uint256 public allocation;
    uint256 public quantity;
    uint256 public price;

    /// @notice EditionConfig
    address public operator;
    address public tributary;
    address payable public fundingRecipient;
    uint256 feePercentage;

    /// @notice Treasury Config, provided at setup, for finding the treasury address.
    address treasuryConfig;

    // ============ Mutable Runtime Storage ============

    /// @notice `nextTokenId` increments with each token purchased, globally across all editions.
    uint256 internal nextTokenId;
    /// @notice The number of tokens that have moved outside of the pre-mint allocation.
    uint256 internal allocationsTransferred = 0;

    /**
     * @notice A special mapping of burned tokens, to take care of burning within
     * the tokenId range of the allocation.
     */
    mapping(uint256 => bool) internal _burned;

    // ============ Mutable Internal NFT Storage ============

    mapping(uint256 => address) internal _owners;
    mapping(address => uint256) internal _balances;
    mapping(uint256 => address) internal _tokenApprovals;
    mapping(address => mapping(address => bool)) internal _operatorApprovals;

    /// @notice Only allow one purchase per account.
    mapping(address => bool) internal purchased;

    // ============ Delegation logic ============
    address public logic;

    // OpenSea's Proxy Registry
    address public proxyRegistry;
}

// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.6;

import {AllocatedEditionsStorage} from "../AllocatedEditionsStorage.sol";

interface IAllocatedEditionsFactory {
    function logic() external returns (address);

    // AllocatedEditions data
    function parameters()
        external
        returns (
            // NFT Metadata
            bytes memory nftMetaData,
            // Edition Data
            uint256 allocation,
            uint256 quantity,
            uint256 price,
            // Config
            bytes memory configData
        );
}

// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.6;

import {Ownable} from "../lib/Ownable.sol";
import {IGovernable} from "../lib/interface/IGovernable.sol";

contract Governable is Ownable, IGovernable {
    // ============ Mutable Storage ============

    // Mirror governance contract.
    address public override governor;

    // ============ Modifiers ============

    modifier onlyGovernance() {
        require(isOwner() || isGovernor(), "caller is not governance");
        _;
    }

    modifier onlyGovernor() {
        require(isGovernor(), "caller is not governor");
        _;
    }

    // ============ Constructor ============

    constructor(address owner_) Ownable(owner_) {}

    // ============ Administration ============

    function changeGovernor(address governor_) public override onlyGovernance {
        governor = governor_;
    }

    // ============ Utility Functions ============

    function isGovernor() public view override returns (bool) {
        return msg.sender == governor;
    }
}

// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.6;

interface IPausableEvents {
    /// @notice Emitted when the pause is triggered by `account`.
    event Paused(address account);

    /// @notice Emitted when the pause is lifted by `account`.
    event Unpaused(address account);
}

interface IPausable {
    function paused() external returns (bool);
}

contract Pausable is IPausable, IPausableEvents {
    bool public override paused;

    // Modifiers

    modifier whenNotPaused() {
        require(!paused, "Pausable: paused");
        _;
    }

    modifier whenPaused() {
        require(paused, "Pausable: not paused");
        _;
    }

    /// @notice Initializes the contract in unpaused state.
    constructor(bool paused_) {
        paused = paused_;
    }

    // ============ Internal Functions ============

    function _pause() internal whenNotPaused {
        paused = true;

        emit Paused(msg.sender);
    }

    function _unpause() internal whenPaused {
        paused = false;

        emit Unpaused(msg.sender);
    }
}

File 7 of 10 : IAllocatedEditionsLogic.sol
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.6;

interface IAllocatedEditionsLogicEvents {
    event EditionPurchased(
        uint256 indexed tokenId,
        uint256 amountPaid,
        address buyer,
        address receiver
    );

    event EditionCreatorChanged(
        address indexed previousCreator,
        address indexed newCreator
    );
}

// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.6;

interface IERC721 {
    function balanceOf(address owner) external view returns (uint256 balance);

    function ownerOf(uint256 tokenId) external view returns (address owner);

    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;

    function transferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;

    function approve(address to, uint256 tokenId) external;

    function getApproved(uint256 tokenId)
        external
        view
        returns (address operator);

    function setApprovalForAll(address operator, bool _approved) external;

    function isApprovedForAll(address owner, address operator)
        external
        view
        returns (bool);

    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId,
        bytes calldata data
    ) external;
}

interface IERC721Events {
    event Transfer(
        address indexed from,
        address indexed to,
        uint256 indexed tokenId
    );
    event Approval(
        address indexed owner,
        address indexed approved,
        uint256 indexed tokenId
    );
    event ApprovalForAll(
        address indexed owner,
        address indexed operator,
        bool approved
    );
}

interface IERC721Metadata {
    function name() external view returns (string memory);

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

    function tokenURI(uint256 tokenId) external view returns (string memory);
}

interface IERC721Receiver {
    function onERC721Received(
        address operator,
        address from,
        uint256 tokenId,
        bytes calldata data
    ) external returns (bytes4);
}

interface IERC165 {
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

abstract contract ERC165 is IERC165 {
    function supportsInterface(bytes4 interfaceId)
        public
        view
        virtual
        override
        returns (bool)
    {
        return interfaceId == type(IERC165).interfaceId;
    }
}

// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.6;

contract Ownable {
    address public owner;
    address private nextOwner;

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

    // modifiers

    modifier onlyOwner() {
        require(isOwner(), "caller is not the owner.");
        _;
    }

    modifier onlyNextOwner() {
        require(isNextOwner(), "current owner must set caller as next owner.");
        _;
    }

    /**
     * @dev Initialize contract by setting transaction submitter as initial owner.
     */
    constructor(address owner_) {
        owner = owner_;
        emit OwnershipTransferred(address(0), owner);
    }

    /**
     * @dev Initiate ownership transfer by setting nextOwner.
     */
    function transferOwnership(address nextOwner_) external onlyOwner {
        require(nextOwner_ != address(0), "Next owner is the zero address.");

        nextOwner = nextOwner_;
    }

    /**
     * @dev Cancel ownership transfer by deleting nextOwner.
     */
    function cancelOwnershipTransfer() external onlyOwner {
        delete nextOwner;
    }

    /**
     * @dev Accepts ownership transfer by setting owner.
     */
    function acceptOwnership() external onlyNextOwner {
        delete nextOwner;

        owner = msg.sender;

        emit OwnershipTransferred(owner, msg.sender);
    }

    /**
     * @dev Renounce ownership by setting owner to zero address.
     */
    function renounceOwnership() external onlyOwner {
        owner = address(0);

        emit OwnershipTransferred(owner, address(0));
    }

    /**
     * @dev Returns true if the caller is the current owner.
     */
    function isOwner() public view returns (bool) {
        return msg.sender == owner;
    }

    /**
     * @dev Returns true if the caller is the next owner.
     */
    function isNextOwner() public view returns (bool) {
        return msg.sender == nextOwner;
    }
}

// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.6;

interface IGovernable {
    function changeGovernor(address governor_) external;

    function isGovernor() external view returns (bool);

    function governor() external view returns (address);
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 2000
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"proxyRegistry_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"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":"uint256","name":"fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"toTokenId","type":"uint256"},{"indexed":true,"internalType":"address","name":"fromAddress","type":"address"},{"indexed":true,"internalType":"address","name":"toAddress","type":"address"}],"name":"ConsecutiveTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousCreator","type":"address"},{"indexed":true,"internalType":"address","name":"newCreator","type":"address"}],"name":"EditionCreatorChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountPaid","type":"uint256"},{"indexed":false,"internalType":"address","name":"buyer","type":"address"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"}],"name":"EditionPurchased","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":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"allocation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"governor_","type":"address"}],"name":"changeGovernor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fundingRecipient","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isGovernor","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isNextOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"logic","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxyRegistry","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"quantity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address","name":"nextOwner_","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tributary","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600b553480156200001657600080fd5b506040516200113b3803806200113b833981016040819052620000399162000566565b601480546001600160a01b0319166001600160a01b03841690811790915560405160019184918291906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3505080601660146101000a81548160ff021916908315150217905550506000336001600160a01b031663d7dfa0dd6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015620000e557600080fd5b505af1158015620000fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001209190620004cb565b9050807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55806001600160a01b03167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a2601380546001600160a01b0319166001600160a01b03841617905560408051630890357360e41b8152905160609182913391638903573091600480830192600092919082900301818387803b158015620001d457600080fd5b505af1158015620001e9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620002139190810190620005a5565b600491909155600391909155600291909155815191935091506200024190830160209081019084016200062c565b6001819055815160179060009060189082906200026590829060208901906200036e565b505085516200027a919060208801906200036e565b505084516200028f919060208701906200036e565b505050505080806020019051810190620002aa9190620004f2565b600980546001600160a01b03199081166001600160a01b03938416179091556008929092556007805483169382169390931790925560068054821693831693909317909255600580549092169216919091179055600254156200036357600254600a8190556005546001600160a01b03169060009081907fdeaa91b6123d068f5821d0fb0678463d1a8a6079fe8af5de3ce5e896dcf9133d906200035190600190620006c5565b60405190815260200160405180910390a45b505050505062000757565b8280546200037c90620006eb565b90600052602060002090601f016020900481019282620003a05760008555620003eb565b82601f10620003bb57805160ff1916838001178555620003eb565b82800160010185558215620003eb579182015b82811115620003eb578251825591602001919060010190620003ce565b50620003f9929150620003fd565b5090565b5b80821115620003f95760008155600101620003fe565b600082601f8301126200042657600080fd5b81516001600160401b038082111562000443576200044362000728565b604051601f8301601f19908116603f011681019082821181831017156200046e576200046e62000728565b816040528381526020925086838588010111156200048b57600080fd5b600091505b83821015620004af578582018301518183018401529082019062000490565b83821115620004c15760008385830101525b9695505050505050565b600060208284031215620004de57600080fd5b8151620004eb816200073e565b9392505050565b600080600080600060a086880312156200050b57600080fd5b855162000518816200073e565b60208701519095506200052b816200073e565b60408701519094506200053e816200073e565b60608701516080880151919450925062000558816200073e565b809150509295509295909350565b600080604083850312156200057a57600080fd5b825162000587816200073e565b60208401519092506200059a816200073e565b809150509250929050565b600080600080600060a08688031215620005be57600080fd5b85516001600160401b0380821115620005d657600080fd5b620005e489838a0162000414565b965060208801519550604088015194506060880151935060808801519150808211156200061057600080fd5b506200061f8882890162000414565b9150509295509295909350565b600080600080608085870312156200064357600080fd5b84516001600160401b03808211156200065b57600080fd5b620006698883890162000414565b955060208701519150808211156200068057600080fd5b6200068e8883890162000414565b94506040870151915080821115620006a557600080fd5b50620006b48782880162000414565b606096909601519497939650505050565b600082821015620006e657634e487b7160e01b600052601160045260246000fd5b500390565b600181811c908216806200070057607f821691505b602082108114156200072257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146200075457600080fd5b50565b6109d480620007676000396000f3fe6080604052600436106101795760003560e01c806388a17bde116100cb578063b50cbd9f1161007f578063e4c0aaf411610059578063e4c0aaf414610426578063ed459df214610446578063f2fde38b1461046657610180565b8063b50cbd9f146103c6578063c7af3352146103e6578063d7dfa0dd1461040657610180565b80638f32d59b116100b05780638f32d59b1461037b57806395d89b411461039b578063a035b1fe146103b057610180565b806388a17bde146103455780638da5cb5b1461035b57610180565b80632704f9b41161012d5780636c0360eb116101075780636c0360eb14610306578063715018a61461031b57806379ba50971461033057610180565b80632704f9b414610284578063570ca735146102a45780635c975abb146102c457610180565b806317fc45e21161015e57806317fc45e2146102295780631bb534ba1461024d57806323452b9c1461026d57610180565b806306fdde03146101c65780630c340a24146101f157610180565b3661018057005b604051366000823760008036837f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af43d806000843e8180156101c2578184f35b8184fd5b3480156101d257600080fd5b506101db610486565b6040516101e891906108d7565b60405180910390f35b3480156101fd57600080fd5b50601654610211906001600160a01b031681565b6040516001600160a01b0390911681526020016101e8565b34801561023557600080fd5b5061023f60035481565b6040519081526020016101e8565b34801561025957600080fd5b50600754610211906001600160a01b031681565b34801561027957600080fd5b50610282610514565b005b34801561029057600080fd5b50600654610211906001600160a01b031681565b3480156102b057600080fd5b50600554610211906001600160a01b031681565b3480156102d057600080fd5b506016546102f69074010000000000000000000000000000000000000000900460ff1681565b60405190151581526020016101e8565b34801561031257600080fd5b506101db610592565b34801561032757600080fd5b5061028261059f565b34801561033c57600080fd5b50610282610645565b34801561035157600080fd5b5061023f60025481565b34801561036757600080fd5b50601454610211906001600160a01b031681565b34801561038757600080fd5b506014546001600160a01b031633146102f6565b3480156103a757600080fd5b506101db61071d565b3480156103bc57600080fd5b5061023f60045481565b3480156103d257600080fd5b50601354610211906001600160a01b031681565b3480156103f257600080fd5b506016546001600160a01b031633146102f6565b34801561041257600080fd5b50601254610211906001600160a01b031681565b34801561043257600080fd5b506102826104413660046108a7565b61072a565b34801561045257600080fd5b506015546001600160a01b031633146102f6565b34801561047257600080fd5b506102826104813660046108a7565b6107c8565b601780546104939061094a565b80601f01602080910402602001604051908101604052809291908181526020018280546104bf9061094a565b801561050c5780601f106104e15761010080835404028352916020019161050c565b820191906000526020600020905b8154815290600101906020018083116104ef57829003601f168201915b505050505081565b6014546001600160a01b031633146105735760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e000000000000000060448201526064015b60405180910390fd5b6015805473ffffffffffffffffffffffffffffffffffffffff19169055565b600080546104939061094a565b6014546001600160a01b031633146105f95760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e0000000000000000604482015260640161056a565b6014805473ffffffffffffffffffffffffffffffffffffffff1916905560405160009081907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6015546001600160a01b031633146106c55760405162461bcd60e51b815260206004820152602c60248201527f63757272656e74206f776e6572206d757374207365742063616c6c657220617360448201527f206e657874206f776e65722e0000000000000000000000000000000000000000606482015260840161056a565b6015805473ffffffffffffffffffffffffffffffffffffffff19908116909155601480543392168217905560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3565b601880546104939061094a565b6014546001600160a01b031633148061074d57506016546001600160a01b031633145b6107995760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e63650000000000000000604482015260640161056a565b6016805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6014546001600160a01b031633146108225760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e0000000000000000604482015260640161056a565b6001600160a01b0381166108785760405162461bcd60e51b815260206004820152601f60248201527f4e657874206f776e657220697320746865207a65726f20616464726573732e00604482015260640161056a565b6015805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000602082840312156108b957600080fd5b81356001600160a01b03811681146108d057600080fd5b9392505050565b600060208083528351808285015260005b81811015610904578581018301518582016040015282016108e8565b81811115610916576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600181811c9082168061095e57607f821691505b60208210811415610998577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea26469706673582212209717985960ad7c863c837b456edd091ebf93838dce2a6077e7410c5316afcf4a64736f6c63430008060033000000000000000000000000467aadc88d99b4e978a8d3d4f0a9017dcaecaabf000000000000000000000000a5409ec958c83c3f309868babaca7c86dcb077c1

Deployed Bytecode

0x6080604052600436106101795760003560e01c806388a17bde116100cb578063b50cbd9f1161007f578063e4c0aaf411610059578063e4c0aaf414610426578063ed459df214610446578063f2fde38b1461046657610180565b8063b50cbd9f146103c6578063c7af3352146103e6578063d7dfa0dd1461040657610180565b80638f32d59b116100b05780638f32d59b1461037b57806395d89b411461039b578063a035b1fe146103b057610180565b806388a17bde146103455780638da5cb5b1461035b57610180565b80632704f9b41161012d5780636c0360eb116101075780636c0360eb14610306578063715018a61461031b57806379ba50971461033057610180565b80632704f9b414610284578063570ca735146102a45780635c975abb146102c457610180565b806317fc45e21161015e57806317fc45e2146102295780631bb534ba1461024d57806323452b9c1461026d57610180565b806306fdde03146101c65780630c340a24146101f157610180565b3661018057005b604051366000823760008036837f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af43d806000843e8180156101c2578184f35b8184fd5b3480156101d257600080fd5b506101db610486565b6040516101e891906108d7565b60405180910390f35b3480156101fd57600080fd5b50601654610211906001600160a01b031681565b6040516001600160a01b0390911681526020016101e8565b34801561023557600080fd5b5061023f60035481565b6040519081526020016101e8565b34801561025957600080fd5b50600754610211906001600160a01b031681565b34801561027957600080fd5b50610282610514565b005b34801561029057600080fd5b50600654610211906001600160a01b031681565b3480156102b057600080fd5b50600554610211906001600160a01b031681565b3480156102d057600080fd5b506016546102f69074010000000000000000000000000000000000000000900460ff1681565b60405190151581526020016101e8565b34801561031257600080fd5b506101db610592565b34801561032757600080fd5b5061028261059f565b34801561033c57600080fd5b50610282610645565b34801561035157600080fd5b5061023f60025481565b34801561036757600080fd5b50601454610211906001600160a01b031681565b34801561038757600080fd5b506014546001600160a01b031633146102f6565b3480156103a757600080fd5b506101db61071d565b3480156103bc57600080fd5b5061023f60045481565b3480156103d257600080fd5b50601354610211906001600160a01b031681565b3480156103f257600080fd5b506016546001600160a01b031633146102f6565b34801561041257600080fd5b50601254610211906001600160a01b031681565b34801561043257600080fd5b506102826104413660046108a7565b61072a565b34801561045257600080fd5b506015546001600160a01b031633146102f6565b34801561047257600080fd5b506102826104813660046108a7565b6107c8565b601780546104939061094a565b80601f01602080910402602001604051908101604052809291908181526020018280546104bf9061094a565b801561050c5780601f106104e15761010080835404028352916020019161050c565b820191906000526020600020905b8154815290600101906020018083116104ef57829003601f168201915b505050505081565b6014546001600160a01b031633146105735760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e000000000000000060448201526064015b60405180910390fd5b6015805473ffffffffffffffffffffffffffffffffffffffff19169055565b600080546104939061094a565b6014546001600160a01b031633146105f95760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e0000000000000000604482015260640161056a565b6014805473ffffffffffffffffffffffffffffffffffffffff1916905560405160009081907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6015546001600160a01b031633146106c55760405162461bcd60e51b815260206004820152602c60248201527f63757272656e74206f776e6572206d757374207365742063616c6c657220617360448201527f206e657874206f776e65722e0000000000000000000000000000000000000000606482015260840161056a565b6015805473ffffffffffffffffffffffffffffffffffffffff19908116909155601480543392168217905560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3565b601880546104939061094a565b6014546001600160a01b031633148061074d57506016546001600160a01b031633145b6107995760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e63650000000000000000604482015260640161056a565b6016805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6014546001600160a01b031633146108225760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e0000000000000000604482015260640161056a565b6001600160a01b0381166108785760405162461bcd60e51b815260206004820152601f60248201527f4e657874206f776e657220697320746865207a65726f20616464726573732e00604482015260640161056a565b6015805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000602082840312156108b957600080fd5b81356001600160a01b03811681146108d057600080fd5b9392505050565b600060208083528351808285015260005b81811015610904578581018301518582016040015282016108e8565b81811115610916576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600181811c9082168061095e57607f821691505b60208210811415610998577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea26469706673582212209717985960ad7c863c837b456edd091ebf93838dce2a6077e7410c5316afcf4a64736f6c63430008060033

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

000000000000000000000000467aadc88d99b4e978a8d3d4f0a9017dcaecaabf000000000000000000000000a5409ec958c83c3f309868babaca7c86dcb077c1

-----Decoded View---------------
Arg [0] : owner_ (address): 0x467aadC88d99B4E978A8d3d4f0A9017DCAECaAbF
Arg [1] : proxyRegistry_ (address): 0xa5409ec958C83C3f309868babACA7c86DCB077c1

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000467aadc88d99b4e978a8d3d4f0a9017dcaecaabf
Arg [1] : 000000000000000000000000a5409ec958c83c3f309868babaca7c86dcb077c1


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.