ETH Price: $2,683.16 (+10.25%)
Gas: 1 Gwei

Contract

0x678547dF63b7DBc7Cdf49e4752d41512811c943F
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set Approval For...198356312024-05-09 23:01:2391 days ago1715295683IN
0x678547dF...2811c943F
0 ETH0.000215884.22177225
Set Approval For...196016782024-04-07 5:17:23124 days ago1712467043IN
0x678547dF...2811c943F
0 ETH0.000283519.70161513
Set Approval For...189055902023-12-31 12:54:23221 days ago1704027263IN
0x678547dF...2811c943F
0 ETH0.0007083913.8534281
Set Approval For...187631622023-12-11 13:08:11241 days ago1702300091IN
0x678547dF...2811c943F
0 ETH0.0013639626.63012458
Safe Transfer Fr...156650542022-10-03 3:50:35676 days ago1664769035IN
0x678547dF...2811c943F
0 ETH0.000465046.30813444
Transfer From141344112022-02-03 17:39:06917 days ago1643909946IN
0x678547dF...2811c943F
0 ETH0.01255183131.71283492
Transfer From141288082022-02-02 20:33:33918 days ago1643834013IN
0x678547dF...2811c943F
0 ETH0.01224069122.28833887
Transfer From141287682022-02-02 20:24:33918 days ago1643833473IN
0x678547dF...2811c943F
0 ETH0.01206855120.56864427
Transfer From141282462022-02-02 18:29:57918 days ago1643826597IN
0x678547dF...2811c943F
0 ETH0.01236985123.59345553
Withdraw Funds138232492021-12-17 14:51:23965 days ago1639752683IN
0x678547dF...2811c943F
0 ETH0.01463551125.43078132
Purchase138066202021-12-15 0:48:19968 days ago1639529299IN
0x678547dF...2811c943F
0.5 ETH0.01243339111.0828523
Purchase137975542021-12-13 15:08:26969 days ago1639408106IN
0x678547dF...2811c943F
0.5 ETH0.0068012260.75725768
Purchase137824812021-12-11 7:21:38971 days ago1639207298IN
0x678547dF...2811c943F
0.5 ETH0.0056905150.83491478
Purchase137678082021-12-09 0:03:06974 days ago1639008186IN
0x678547dF...2811c943F
0.5 ETH0.0083118774.25225215
Purchase137424192021-12-04 22:35:54978 days ago1638657354IN
0x678547dF...2811c943F
0.5 ETH0.0097390287.00138083
Purchase137375962021-12-04 3:42:11979 days ago1638589331IN
0x678547dF...2811c943F
0.5 ETH0.0104041492.94308305
Purchase137355512021-12-03 20:00:45979 days ago1638561645IN
0x678547dF...2811c943F
0.5 ETH0.0094665484.56724346
Purchase137353532021-12-03 19:18:38979 days ago1638559118IN
0x678547dF...2811c943F
0.5 ETH0.0096274586.00469791
Purchase137249432021-12-02 3:11:31981 days ago1638414691IN
0x678547dF...2811c943F
0.5 ETH0.0159777142.73327919
Purchase137227842021-12-01 19:04:47981 days ago1638385487IN
0x678547dF...2811c943F
0.5 ETH0.01845419143.01031961
Unpause137220032021-12-01 16:02:45981 days ago1638374565IN
0x678547dF...2811c943F
0 ETH0.00426315122.76545427
Transfer From137213962021-12-01 13:41:58981 days ago1638366118IN
0x678547dF...2811c943F
0 ETH0.00711979100.36791317
Set Approval For...137121302021-11-30 2:05:55983 days ago1638237955IN
0x678547dF...2811c943F
0 ETH0.00737221143.93525621
Purchase With Pr...136677832021-11-23 0:51:37990 days ago1637628697IN
0x678547dF...2811c943F
0 ETH0.03756479198.47095962

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
198496282024-05-11 21:58:5989 days ago1715464739
0x678547dF...2811c943F
0 ETH
198496282024-05-11 21:58:5989 days ago1715464739
0x678547dF...2811c943F
0 ETH
198496282024-05-11 21:58:5989 days ago1715464739
0x678547dF...2811c943F
0 ETH
198356312024-05-09 23:01:2391 days ago1715295683
0x678547dF...2811c943F
0 ETH
196016782024-04-07 5:17:23124 days ago1712467043
0x678547dF...2811c943F
0 ETH
189056152023-12-31 12:59:23221 days ago1704027563
0x678547dF...2811c943F
0 ETH
189056152023-12-31 12:59:23221 days ago1704027563
0x678547dF...2811c943F
0 ETH
189056152023-12-31 12:59:23221 days ago1704027563
0x678547dF...2811c943F
0 ETH
189055902023-12-31 12:54:23221 days ago1704027263
0x678547dF...2811c943F
0 ETH
187632052023-12-11 13:16:47241 days ago1702300607
0x678547dF...2811c943F
0 ETH
187632052023-12-11 13:16:47241 days ago1702300607
0x678547dF...2811c943F
0 ETH
187632052023-12-11 13:16:47241 days ago1702300607
0x678547dF...2811c943F
0 ETH
187632052023-12-11 13:16:47241 days ago1702300607
0x678547dF...2811c943F
0 ETH
187632052023-12-11 13:16:47241 days ago1702300607
0x678547dF...2811c943F
0 ETH
187632052023-12-11 13:16:47241 days ago1702300607
0x678547dF...2811c943F
0 ETH
187632052023-12-11 13:16:47241 days ago1702300607
0x678547dF...2811c943F
0 ETH
187632052023-12-11 13:16:47241 days ago1702300607
0x678547dF...2811c943F
0 ETH
187631622023-12-11 13:08:11241 days ago1702300091
0x678547dF...2811c943F
0 ETH
156650542022-10-03 3:50:35676 days ago1664769035
0x678547dF...2811c943F
0 ETH
141344112022-02-03 17:39:06917 days ago1643909946
0x678547dF...2811c943F
0 ETH
141288082022-02-02 20:33:33918 days ago1643834013
0x678547dF...2811c943F
0 ETH
141287682022-02-02 20:24:33918 days ago1643833473
0x678547dF...2811c943F
0 ETH
141282462022-02-02 18:29:57918 days ago1643826597
0x678547dF...2811c943F
0 ETH
138232492021-12-17 14:51:23965 days ago1639752683
0x678547dF...2811c943F
4.875 ETH
138232492021-12-17 14:51:23965 days ago1639752683
0x678547dF...2811c943F
0.125 ETH
View All Internal Transactions
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  ]

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.