ETH Price: $2,613.53 (+1.24%)

Contract

0xc04b88562d10057e06B3992bB01288Ab835F6522
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer From137936412021-12-13 0:27:241038 days ago1639355244IN
0xc04b8856...b835F6522
0 ETH0.003456264.19752777
Transfer From137935892021-12-13 0:15:121038 days ago1639354512IN
0xc04b8856...b835F6522
0 ETH0.0032583560.5225109
Transfer From137934632021-12-12 23:50:361038 days ago1639353036IN
0xc04b8856...b835F6522
0 ETH0.0036070767
Transfer From137934512021-12-12 23:48:331038 days ago1639352913IN
0xc04b8856...b835F6522
0 ETH0.0036609168
Transfer From137934342021-12-12 23:44:341038 days ago1639352674IN
0xc04b8856...b835F6522
0 ETH0.0046838187
Transfer From137933962021-12-12 23:35:371038 days ago1639352137IN
0xc04b8856...b835F6522
0 ETH0.0047926189.02078436
Transfer From137933932021-12-12 23:35:151038 days ago1639352115IN
0xc04b8856...b835F6522
0 ETH0.00613428104.61463696
Transfer From137933902021-12-12 23:34:221038 days ago1639352062IN
0xc04b8856...b835F6522
0 ETH0.00631717107.73358358
Transfer From137933802021-12-12 23:31:191038 days ago1639351879IN
0xc04b8856...b835F6522
0 ETH0.0052080296.73689581
Transfer From137928892021-12-12 21:46:051038 days ago1639345565IN
0xc04b8856...b835F6522
0 ETH0.0041621677.31046193
Transfer From137912962021-12-12 16:11:001039 days ago1639325460IN
0xc04b8856...b835F6522
0 ETH0.0028185552.35344272
Transfer From137912692021-12-12 16:05:451039 days ago1639325145IN
0xc04b8856...b835F6522
0 ETH0.0028533653
Transfer From137912602021-12-12 16:03:211039 days ago1639325001IN
0xc04b8856...b835F6522
0 ETH0.0038517554.29826491
Transfer From137910342021-12-12 15:11:091039 days ago1639321869IN
0xc04b8856...b835F6522
0 ETH0.0061945387.33922895
Transfer From137909802021-12-12 14:57:351039 days ago1639321055IN
0xc04b8856...b835F6522
0 ETH0.0035975550.71478705
Transfer From137871892021-12-12 0:42:231039 days ago1639269743IN
0xc04b8856...b835F6522
0 ETH0.002739850.89072408
Transfer From137870932021-12-12 0:22:481039 days ago1639268568IN
0xc04b8856...b835F6522
0 ETH0.0037269269.22603964
Transfer From137870832021-12-12 0:20:471039 days ago1639268447IN
0xc04b8856...b835F6522
0 ETH0.0042984579.84200835
Transfer From137870822021-12-12 0:20:341039 days ago1639268434IN
0xc04b8856...b835F6522
0 ETH0.0038847672.15781014
Transfer From137868982021-12-11 23:38:461039 days ago1639265926IN
0xc04b8856...b835F6522
0 ETH0.002815252.29117601
Transfer From137868782021-12-11 23:36:131039 days ago1639265773IN
0xc04b8856...b835F6522
0 ETH0.0028608653.13932793
Transfer From137868342021-12-11 23:29:091039 days ago1639265349IN
0xc04b8856...b835F6522
0 ETH0.0040368775
Transfer From137867702021-12-11 23:18:381039 days ago1639264718IN
0xc04b8856...b835F6522
0 ETH0.0034026163.20214353
Transfer From137867632021-12-11 23:17:201039 days ago1639264640IN
0xc04b8856...b835F6522
0 ETH0.0040377775
Transfer From137867552021-12-11 23:15:381039 days ago1639264538IN
0xc04b8856...b835F6522
0 ETH0.0043181980.20869626
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To
134644662021-10-22 1:12:431090 days ago1634865163  Contract Creation0 ETH
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x50912b15...5BF9294BF
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
DroppableEditionsProxy

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
Yes with 2000 runs

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

import {IERC2309} from "../../../external/interface/IERC2309.sol";
import {DroppableEditionsStorage} from "./DroppableEditionsStorage.sol";
import {IDroppableEditionsFactory} from "./interface/IDroppableEditionsFactory.sol";
import {InitializedGovernable} from "../../../lib/InitializedGovernable.sol";
import {Pausable} from "../../../lib/Pausable.sol";
import {IDroppableEditionsLogicEvents} from "./interface/IDroppableEditionsLogic.sol";
import {IERC721Events} from "../../../external/interface/IERC721.sol";

/**
 * @title DroppableEditionsProxy
 * @author MirrorXYZ
 */
contract DroppableEditionsProxy is
    DroppableEditionsStorage,
    InitializedGovernable,
    Pausable,
    IDroppableEditionsLogicEvents,
    IERC721Events,
    IERC2309
{
    event Upgraded(address indexed implementation);

    event RenounceUpgrade(uint256 blockNumber);

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

    constructor(
        address owner_,
        address governor_,
        address proxyRegistry_
    ) InitializedGovernable(owner_, governor_) Pausable(true) {
        address logic = IDroppableEditionsFactory(msg.sender).logic();

        assembly {
            sstore(_IMPLEMENTATION_SLOT, logic)
        }

        emit Upgraded(logic);

        proxyRegistry = proxyRegistry_;

        bytes memory nftMetaData;
        bytes memory adminData;

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

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

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

    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)
            }
        }
    }

    // ============ Upgrade Methods ============

    /// @notice Get current logic
    function getLogic() external view returns (address logic) {
        assembly {
            logic := sload(_IMPLEMENTATION_SLOT)
        }
    }

    /// @notice Allows governance to change the logic.
    function changeLogic(address newLogic) external onlyGovernance {
        require(upgradesAllowed, "cannot upgrade");

        // Store the newImplementation on implementation-slot
        assembly {
            sstore(_IMPLEMENTATION_SLOT, newLogic)
        }

        emit Upgraded(newLogic);
    }

    /// @notice opt-out of upgrades
    function renounceUpgrades() external onlyGovernance {
        upgradesAllowed = false;

        emit RenounceUpgrade(block.number);
    }

    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 : DroppableEditionsStorage.sol
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.6;

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

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

    /// @notice Contains information pertaining to the edition spec.
    struct EditionData {
        // The maximum number of tokens that can be sold.
        uint256 quantity;
        uint256 allocation;
        // 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.
        address operator;
        bytes32 merkleRoot;
        // 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;

    // OpenSea's Proxy Registry
    address public proxyRegistry;

    bytes32 public merkleRoot;

    uint256 currentTokenId;
    uint256 currentIndexId;
    uint256 claimedTokens;
    uint256 nonAllocatedPurchases = 0;

    mapping(uint256 => bool) public burned;

    mapping(uint256 => address) public indexToClaimer;
    mapping(address => uint256) public claimerToAllocation;

    mapping(bytes32 => bool) public claimed;

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

    /// @notice Allows to renounce upgrades
    bool public upgradesAllowed = true;
}

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

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

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

File 5 of 10 : InitializedGovernable.sol
// 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 InitializedGovernable is Ownable, IGovernable {
    // ============ Events ============

    event GovernorChanged(
        address indexed previousGovernor,
        address indexed newGovernor
    );

    // ============ 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_, address governor_) Ownable(owner_) {
        _setGovernor(governor_);
    }

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

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

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

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

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

    function _setGovernor(address governor_) internal {
        emit GovernorChanged(governor, governor_);

        governor = governor_;
    }
}

File 6 of 10 : Pausable.sol
// 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 : IDroppableEditionsLogic.sol
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.6;

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

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

File 8 of 10 : IERC721.sol
// 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;
    }
}

interface IERC721Royalties {
    function getFeeRecipients(uint256 id)
        external
        view
        returns (address payable[] memory);

    function getFeeBps(uint256 id) external view returns (uint256[] memory);
}

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

interface IOwnableEvents {
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
}

contract Ownable is IOwnableEvents {
    address public owner;
    address private nextOwner;

    // 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 {
        _renounceOwnership();
    }

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

    function _setOwner(address previousOwner, address newOwner) internal {
        owner = newOwner;
        emit OwnershipTransferred(previousOwner, owner);
    }

    function _renounceOwnership() internal {
        owner = address(0);

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

File 10 of 10 : IGovernable.sol
// 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",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"governor_","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":"previousGovernor","type":"address"},{"indexed":true,"internalType":"address","name":"newGovernor","type":"address"}],"name":"GovernorChanged","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":false,"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"RenounceUpgrade","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":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"burned","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"address","name":"newLogic","type":"address"}],"name":"changeLogic","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimerToAllocation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fundingRecipient","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLogic","outputs":[{"internalType":"address","name":"logic","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"indexToClaimer","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":"merkleRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"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":"renounceUpgrades","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"},{"inputs":[],"name":"upgradesAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

Deployed Bytecode

0x6080604052600436106101d15760003560e01c80636c0360eb116100f7578063a035b1fe11610095578063cc3c0f0611610064578063cc3c0f0614610594578063e4c0aaf4146105c4578063ed459df2146105e4578063f2fde38b14610604576101d8565b8063a035b1fe1461050a578063b50cbd9f14610520578063ba8c65ae14610540578063c7af335214610574576101d8565b806388a17bde116100d157806388a17bde146104955780638da5cb5b146104ab5780638f32d59b146104d057806395d89b41146104f5576101d8565b80636c0360eb14610456578063715018a61461046b57806379ba509714610480576101d8565b806323452b9c1161016f5780633a67d0b01161013e5780633a67d0b0146103ae578063570ca735146103ce5780635c975abb146103ee5780636bc177e814610420576101d8565b806323452b9c1461034c5780632704f9b4146103635780632eb4a7ab1461038357806338b84a0814610399576101d8565b806317fc45e2116101ab57806317fc45e2146102ab5780631a5b6279146102cf5780631bb534ba146102fc57806323250cae1461031c576101d8565b806306fdde031461021e578063099ea2d3146102495780630c340a2414610273576101d8565b366101d857005b604051366000823760008036837f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af43d806000843e81801561021a578184f35b8184fd5b34801561022a57600080fd5b50610233610624565b6040516102409190610d32565b60405180910390f35b34801561025557600080fd5b50601c546102639060ff1681565b6040519015158152602001610240565b34801561027f57600080fd5b50601e54610293906001600160a01b031681565b6040516001600160a01b039091168152602001610240565b3480156102b757600080fd5b506102c160035481565b604051908152602001610240565b3480156102db57600080fd5b506102c16102ea366004610ce9565b601a6020526000908152604090205481565b34801561030857600080fd5b50600754610293906001600160a01b031681565b34801561032857600080fd5b50610263610337366004610d19565b60186020526000908152604090205460ff1681565b34801561035857600080fd5b506103616106b2565b005b34801561036f57600080fd5b50600654610293906001600160a01b031681565b34801561038f57600080fd5b506102c160135481565b3480156103a557600080fd5b50610361610735565b3480156103ba57600080fd5b506103616103c9366004610ce9565b610806565b3480156103da57600080fd5b50600554610293906001600160a01b031681565b3480156103fa57600080fd5b50601e546102639074010000000000000000000000000000000000000000900460ff1681565b34801561042c57600080fd5b5061029361043b366004610d19565b6019602052600090815260409020546001600160a01b031681565b34801561046257600080fd5b50610233610927565b34801561047757600080fd5b50610361610934565b34801561048c57600080fd5b5061036161099d565b3480156104a157600080fd5b506102c160025481565b3480156104b757600080fd5b50601c546102939061010090046001600160a01b031681565b3480156104dc57600080fd5b50601c5461010090046001600160a01b03163314610263565b34801561050157600080fd5b50610233610aa9565b34801561051657600080fd5b506102c160045481565b34801561052c57600080fd5b50601254610293906001600160a01b031681565b34801561054c57600080fd5b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54610293565b34801561058057600080fd5b50601e546001600160a01b03163314610263565b3480156105a057600080fd5b506102636105af366004610d19565b601b6020526000908152604090205460ff1681565b3480156105d057600080fd5b506103616105df366004610ce9565b610ab6565b3480156105f057600080fd5b50601d546001600160a01b03163314610263565b34801561061057600080fd5b5061036161061f366004610ce9565b610b36565b601f805461063190610da5565b80601f016020809104026020016040519081016040528092919081815260200182805461065d90610da5565b80156106aa5780601f1061067f576101008083540402835291602001916106aa565b820191906000526020600020905b81548152906001019060200180831161068d57829003601f168201915b505050505081565b601c5461010090046001600160a01b031633146107165760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e000000000000000060448201526064015b60405180910390fd5b601d805473ffffffffffffffffffffffffffffffffffffffff19169055565b601c5461010090046001600160a01b031633148061075d5750601e546001600160a01b031633145b6107a95760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e63650000000000000000604482015260640161070d565b601c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556040514381527fe0a18c04eb8e161421aacb1263b683e6a062532260b830dc3e42869d278e504f9060200160405180910390a1565b601c5461010090046001600160a01b031633148061082e5750601e546001600160a01b031633145b61087a5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e63650000000000000000604482015260640161070d565b601c5460ff166108cc5760405162461bcd60e51b815260206004820152600e60248201527f63616e6e6f742075706772616465000000000000000000000000000000000000604482015260640161070d565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8190556040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6000805461063190610da5565b601c5461010090046001600160a01b031633146109935760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e0000000000000000604482015260640161070d565b61099b610c1a565b565b601d546001600160a01b03163314610a1d5760405162461bcd60e51b815260206004820152602c60248201527f63757272656e74206f776e6572206d757374207365742063616c6c657220617360448201527f206e657874206f776e65722e0000000000000000000000000000000000000000606482015260840161070d565b601d805473ffffffffffffffffffffffffffffffffffffffff19169055601c80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010033818102929092179283905560405191926001600160a01b0391900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3565b6020805461063190610da5565b601c5461010090046001600160a01b0316331480610ade5750601e546001600160a01b031633145b610b2a5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e63650000000000000000604482015260640161070d565b610b3381610c80565b50565b601c5461010090046001600160a01b03163314610b955760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e0000000000000000604482015260640161070d565b6001600160a01b038116610beb5760405162461bcd60e51b815260206004820152601f60248201527f4e657874206f776e657220697320746865207a65726f20616464726573732e00604482015260640161070d565b601d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b601c80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff169081905560405160009161010090046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3565b601e546040516001600160a01b038084169216907fde4b3f61490b74c0ed6237523974fe299126bbbf8a8a7482fd220104c59b0c8490600090a3601e805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b600060208284031215610cfb57600080fd5b81356001600160a01b0381168114610d1257600080fd5b9392505050565b600060208284031215610d2b57600080fd5b5035919050565b600060208083528351808285015260005b81811015610d5f57858101830151858201604001528201610d43565b81811115610d71576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600181811c90821680610db957607f821691505b60208210811415610df3577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea264697066735822122097b1df902181e22605701950373794b4302fcba53cc26fc53386bf686a44201964736f6c63430008060033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.