ETH Price: $2,624.44 (+1.25%)

Contract

0x721D858FfF6D2a28170F559DaE0a49FB5EBBc55F
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Create Edition136677902021-11-23 0:53:001058 days ago1637628780IN
0x721D858F...B5EBBc55F
0 ETH0.26414624186.27875134
Create Edition136677752021-11-23 0:49:221058 days ago1637628562IN
0x721D858F...B5EBBc55F
0 ETH0.27363819192.95692281
Create Edition136677402021-11-23 0:41:201058 days ago1637628080IN
0x721D858F...B5EBBc55F
0 ETH0.24347988171.70812045
Create Edition136415842021-11-18 20:49:001063 days ago1637268540IN
0x721D858F...B5EBBc55F
0 ETH0.211547152.63418223
Create Edition136415682021-11-18 20:46:321063 days ago1637268392IN
0x721D858F...B5EBBc55F
0 ETH0.21159583152.66522822
Create Edition136182372021-11-15 4:30:061066 days ago1636950606IN
0x721D858F...B5EBBc55F
0 ETH0.14485988104.51198635
Create Edition136030492021-11-12 19:01:061069 days ago1636743666IN
0x721D858F...B5EBBc55F
0 ETH0.16235559117.13782056
Create Edition135574292021-11-05 15:37:501076 days ago1636126670IN
0x721D858F...B5EBBc55F
0 ETH0.19828694137.67087274
Create Edition135448852021-11-03 16:18:411078 days ago1635956321IN
0x721D858F...B5EBBc55F
0 ETH0.22976781159.53229214
Create Edition135073232021-10-28 18:23:351084 days ago1635445415IN
0x721D858F...B5EBBc55F
0 ETH0.27113062195.61783732
Create Edition134644662021-10-22 1:12:431090 days ago1634865163IN
0x721D858F...B5EBBc55F
0 ETH0.1023837571.08941318
Create Edition134617432021-10-21 15:12:121091 days ago1634829132IN
0x721D858F...B5EBBc55F
0 ETH0.17067925123.14751617
0x60806040134500402021-10-19 19:23:421093 days ago1634671422IN
 Create: DroppableEditionsFactory
0 ETH0.32666614126.01771643

Latest 12 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
136677902021-11-23 0:53:001058 days ago1637628780
0x721D858F...B5EBBc55F
 Contract Creation0 ETH
136677752021-11-23 0:49:221058 days ago1637628562
0x721D858F...B5EBBc55F
 Contract Creation0 ETH
136677402021-11-23 0:41:201058 days ago1637628080
0x721D858F...B5EBBc55F
 Contract Creation0 ETH
136415842021-11-18 20:49:001063 days ago1637268540
0x721D858F...B5EBBc55F
 Contract Creation0 ETH
136415682021-11-18 20:46:321063 days ago1637268392
0x721D858F...B5EBBc55F
 Contract Creation0 ETH
136182372021-11-15 4:30:061066 days ago1636950606
0x721D858F...B5EBBc55F
 Contract Creation0 ETH
136030492021-11-12 19:01:061069 days ago1636743666
0x721D858F...B5EBBc55F
 Contract Creation0 ETH
135574292021-11-05 15:37:501076 days ago1636126670
0x721D858F...B5EBBc55F
 Contract Creation0 ETH
135448852021-11-03 16:18:411078 days ago1635956321
0x721D858F...B5EBBc55F
 Contract Creation0 ETH
135073232021-10-28 18:23:351084 days ago1635445415
0x721D858F...B5EBBc55F
 Contract Creation0 ETH
134644662021-10-22 1:12:431090 days ago1634865163
0x721D858F...B5EBBc55F
 Contract Creation0 ETH
134617432021-10-21 15:12:121091 days ago1634829132
0x721D858F...B5EBBc55F
 Contract Creation0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DroppableEditionsFactory

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
Yes with 2000 runs

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

import {ITributaryRegistry} from "../../../interface/ITributaryRegistry.sol";
import {InitializedGovernable} from "../../../lib/InitializedGovernable.sol";
import {DroppableEditionsProxy} from "./DroppableEditionsProxy.sol";
import {DroppableEditionsStorage} from "./DroppableEditionsStorage.sol";
import {IERC2309} from "../../../external/interface/IERC2309.sol";

/**
 * @title DroppableEditionsFactory
 * @author MirrorXYZ
 */
contract DroppableEditionsFactory is InitializedGovernable, IERC2309 {
    //======== Structs ========

    struct Parameters {
        // NFT Metadata
        bytes nftMetaData;
        // Edition Data
        uint256 allocation;
        uint256 quantity;
        uint256 price;
        // Admint Data
        bytes adminData;
    }

    //======== Events ========

    event DroppableEditionDeployed(
        address allocatedEditionProxy,
        string name,
        string symbol,
        address operator
    );

    //======== Mutable storage =========

    /// @notice Gets set within the block, accessed from the proxy and then deleted.
    Parameters public parameters;

    /// @notice Minimum fee percentage collected by the treasury when withdrawing funds.
    uint256 public minFeePercentage = 250;

    /// @notice Contract logic for the edition deployed. 
    address public logic;

    address public tributaryRegistry;

    address public treasuryConfig;

    /// @notice OpenSea Proxy Registry
    address public proxyRegistry;

    //======== Constructor =========
    constructor(
        address owner_,
        address logic_,
        address tributaryRegistry_,
        address treasuryConfig_,
        address proxyRegistry_
    ) InitializedGovernable(owner_, owner_) {
        logic = logic_;
        tributaryRegistry = tributaryRegistry_;
        treasuryConfig = treasuryConfig_;
        proxyRegistry = proxyRegistry_;
    }

    //======== Configuration =========

    /// @notice Updates minimum fee percentage
    function setMinimumFeePercentage(uint256 newMinFeePercentage)
        public
        onlyGovernance
    {
        minFeePercentage = newMinFeePercentage;
    }

    /// @notice Updates logic
    function setLogic(address newLogic) public onlyGovernance {
        logic = newLogic;
    }

    /// @notice Updates treasury config
    function setTreasuryConfig(address newTreasuryConfig)
        public
        onlyGovernance
    {
        treasuryConfig = newTreasuryConfig;
    }

    /// @notice Updates tributary registry
    function setTributaryRegistry(address newTributaryRegistry)
        public
        onlyGovernance
    {
        tributaryRegistry = newTributaryRegistry;
    }

    /// @notice Updates proxy registry
    function setProxyRegistry(address newProxyRegistry)
        public
        onlyGovernance
    {
        proxyRegistry = newProxyRegistry;
    }

    //======== Proxy Deployments =========

    /// @notice Creates an edition by deploying a new proxy.
   function createEdition(
        DroppableEditionsStorage.NFTMetadata memory metadata,
        DroppableEditionsStorage.EditionData memory editionData,
        DroppableEditionsStorage.AdminData memory adminData
    ) external returns (address allocatedEditionsProxy) {
        require(
            adminData.feePercentage >= minFeePercentage,
            "fee is too low"
        );

        require(
            editionData.allocation <= editionData.quantity,
            "allocation must be less than quantity"
        );

        parameters = Parameters({
            // NFT Metadata
            nftMetaData: abi.encode(
                metadata.name,
                metadata.symbol,
                metadata.baseURI,
                metadata.contentHash
            ),
            // Edition Data
            allocation: editionData.allocation,
            quantity: editionData.quantity,
            price: editionData.price,
            // Admin Data
            adminData: abi.encode(
                adminData.operator,
                adminData.merkleRoot,
                adminData.tributary,
                adminData.fundingRecipient,
                adminData.feePercentage,
                treasuryConfig
            )
        });

        // deploys proxy
        allocatedEditionsProxy = address(
            new DroppableEditionsProxy{
                salt: keccak256(abi.encode(metadata.symbol, adminData.operator, adminData.merkleRoot))
            }(adminData.operator, governor, proxyRegistry)
        );

        delete parameters;

        emit DroppableEditionDeployed(
            allocatedEditionsProxy,
            metadata.name,
            metadata.symbol,
            adminData.operator
        );

        ITributaryRegistry(tributaryRegistry).registerTributary(
            allocatedEditionsProxy,
            adminData.tributary
        );
    }
}

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

interface ITributaryRegistry {
    function addRegistrar(address registrar) external;

    function removeRegistrar(address registrar) external;

    function addSingletonProducer(address producer) external;

    function removeSingletonProducer(address producer) external;

    function registerTributary(address producer, address tributary) external;

    function producerToTributary(address producer)
        external
        returns (address tributary);

    function singletonProducer(address producer) external returns (bool);

    function changeTributary(address producer, address newTributary) external;
}

File 3 of 12 : 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 4 of 12 : 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 5 of 12 : 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 6 of 12 : 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 7 of 12 : 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 8 of 12 : 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);
}

File 9 of 12 : 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 10 of 12 : 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 11 of 12 : 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 12 of 12 : 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);
}

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":"logic_","type":"address"},{"internalType":"address","name":"tributaryRegistry_","type":"address"},{"internalType":"address","name":"treasuryConfig_","type":"address"},{"internalType":"address","name":"proxyRegistry_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"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":false,"internalType":"address","name":"allocatedEditionProxy","type":"address"},{"indexed":false,"internalType":"string","name":"name","type":"string"},{"indexed":false,"internalType":"string","name":"symbol","type":"string"},{"indexed":false,"internalType":"address","name":"operator","type":"address"}],"name":"DroppableEditionDeployed","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"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","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":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"baseURI","type":"string"},{"internalType":"bytes32","name":"contentHash","type":"bytes32"}],"internalType":"struct DroppableEditionsStorage.NFTMetadata","name":"metadata","type":"tuple"},{"components":[{"internalType":"uint256","name":"quantity","type":"uint256"},{"internalType":"uint256","name":"allocation","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"}],"internalType":"struct DroppableEditionsStorage.EditionData","name":"editionData","type":"tuple"},{"components":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"address","name":"tributary","type":"address"},{"internalType":"address payable","name":"fundingRecipient","type":"address"},{"internalType":"uint256","name":"feePercentage","type":"uint256"}],"internalType":"struct DroppableEditionsStorage.AdminData","name":"adminData","type":"tuple"}],"name":"createEdition","outputs":[{"internalType":"address","name":"allocatedEditionsProxy","type":"address"}],"stateMutability":"nonpayable","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":"minFeePercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"parameters","outputs":[{"internalType":"bytes","name":"nftMetaData","type":"bytes"},{"internalType":"uint256","name":"allocation","type":"uint256"},{"internalType":"uint256","name":"quantity","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"bytes","name":"adminData","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxyRegistry","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLogic","type":"address"}],"name":"setLogic","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinFeePercentage","type":"uint256"}],"name":"setMinimumFeePercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newProxyRegistry","type":"address"}],"name":"setProxyRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newTreasuryConfig","type":"address"}],"name":"setTreasuryConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newTributaryRegistry","type":"address"}],"name":"setTributaryRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"nextOwner_","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasuryConfig","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tributaryRegistry","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

608060405260fa6008553480156200001657600080fd5b5060405162002cef38038062002cef833981016040819052620000399162000163565b600080546001600160a01b0319166001600160a01b03871690811782556040518792839283929091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506200009381620000ea565b5050600980546001600160a01b039586166001600160a01b031991821617909155600a805494861694821694909417909355600b805492851692841692909217909155600c805491909316911617905550620001d3565b6002546040516001600160a01b038084169216907fde4b3f61490b74c0ed6237523974fe299126bbbf8a8a7482fd220104c59b0c8490600090a3600280546001600160a01b0319166001600160a01b0392909216919091179055565b80516001600160a01b03811681146200015e57600080fd5b919050565b600080600080600060a086880312156200017c57600080fd5b620001878662000146565b9450620001976020870162000146565b9350620001a76040870162000146565b9250620001b76060870162000146565b9150620001c76080870162000146565b90509295509295909350565b612b0c80620001e36000396000f3fe60806040523480156200001157600080fd5b5060043610620001a15760003560e01c8063c7af335211620000e9578063e4c0aaf41162000097578063f2fde38b116200006e578063f2fde38b146200034c578063f927691e1462000363578063ff39e710146200037a57600080fd5b8063e4c0aaf4146200030a578063ed459df21462000321578063f1fe1663146200033557600080fd5b8063d321de7311620000cc578063d321de7314620002cb578063d6811b6f14620002e2578063d7dfa0dd14620002f657600080fd5b8063c7af335214620002a3578063cfd7b0df14620002b757600080fd5b806379ba509711620001535780638f32d59b116200012a5780638f32d59b1462000258578063adfdeef91462000278578063b50cbd9f146200028f57600080fd5b806379ba5097146200021d5780638903573014620002275780638da5cb5b146200024457600080fd5b80632a0b17ee11620001885780632a0b17ee14620001e3578063715018a614620001fc57806371857000146200020657600080fd5b80630c340a2414620001a657806323452b9c14620001d7575b600080fd5b600254620001ba906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b620001e162000391565b005b620001ed60085481565b604051908152602001620001ce565b620001e162000410565b620001e162000217366004620011b8565b62000478565b620001e162000519565b62000231620005f0565b604051620001ce9594939291906200138e565b600054620001ba906001600160a01b031681565b6000546001600160a01b031633145b6040519015158152602001620001ce565b620001e162000289366004620011b8565b62000732565b600c54620001ba906001600160a01b031681565b6002546001600160a01b0316331462000267565b600b54620001ba906001600160a01b031681565b620001e1620002dc366004620011b8565b620007d3565b600a54620001ba906001600160a01b031681565b600954620001ba906001600160a01b031681565b620001e16200031b366004620011b8565b62000874565b6001546001600160a01b0316331462000267565b620001e162000346366004620011b8565b620008f4565b620001e16200035d366004620011b8565b62000995565b620001ba62000374366004620011df565b62000a78565b620001e16200038b366004620012d6565b62000e19565b6000546001600160a01b03163314620003f15760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e000000000000000060448201526064015b60405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b031633146200046c5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e00000000000000006044820152606401620003e8565b6200047662000e90565b565b6000546001600160a01b03163314806200049c57506002546001600160a01b031633145b620004ea5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e636500000000000000006044820152606401620003e8565b6009805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001546001600160a01b031633146200059b5760405162461bcd60e51b815260206004820152602c60248201527f63757272656e74206f776e6572206d757374207365742063616c6c657220617360448201527f206e657874206f776e65722e00000000000000000000000000000000000000006064820152608401620003e8565b6001805473ffffffffffffffffffffffffffffffffffffffff19908116909155600080543392168217815560405182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3565b600380548190620006019062001482565b80601f01602080910402602001604051908101604052809291908181526020018280546200062f9062001482565b8015620006805780601f10620006545761010080835404028352916020019162000680565b820191906000526020600020905b8154815290600101906020018083116200066257829003601f168201915b505050505090806001015490806002015490806003015490806004018054620006a99062001482565b80601f0160208091040260200160405190810160405280929190818152602001828054620006d79062001482565b8015620007285780601f10620006fc5761010080835404028352916020019162000728565b820191906000526020600020905b8154815290600101906020018083116200070a57829003601f168201915b5050505050905085565b6000546001600160a01b03163314806200075657506002546001600160a01b031633145b620007a45760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e636500000000000000006044820152606401620003e8565b600c805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b0316331480620007f757506002546001600160a01b031633145b620008455760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e636500000000000000006044820152606401620003e8565b600a805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b03163314806200089857506002546001600160a01b031633145b620008e65760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e636500000000000000006044820152606401620003e8565b620008f18162000ed9565b50565b6000546001600160a01b03163314806200091857506002546001600160a01b031633145b620009665760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e636500000000000000006044820152606401620003e8565b600b805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b03163314620009f15760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e00000000000000006044820152606401620003e8565b6001600160a01b03811662000a495760405162461bcd60e51b815260206004820152601f60248201527f4e657874206f776e657220697320746865207a65726f20616464726573732e006044820152606401620003e8565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b60006008548260800151101562000ad25760405162461bcd60e51b815260206004820152600e60248201527f66656520697320746f6f206c6f770000000000000000000000000000000000006044820152606401620003e8565b82516020840151111562000b4f5760405162461bcd60e51b815260206004820152602560248201527f616c6c6f636174696f6e206d757374206265206c657373207468616e2071756160448201527f6e746974790000000000000000000000000000000000000000000000000000006064820152608401620003e8565b6040805160a081018252855160208701519287015160608801519293849362000b7e93929060c0860162001405565b60408051601f198184030181529181529082526020868101518382015286518383015286820151606080850191909152865187830151888501518984015160808b810151600b5489516001600160a01b039788169981019990995298880194909452918416948601949094529282168484015260a084015290921660c082015291019060e00160408051601f1981840301815291905290528051805160039162000c2e9183916020019062000f42565b50602082810151600183015560408301516002830155606083015160038301556080830151805162000c67926004850192019062000f42565b50505060208085015183518483015160405162000c859401620013d5565b60408051601f198184030181529082905280516020909101208351600254600c54929391926001600160a01b039182169291169062000cc49062000fd1565b6001600160a01b039384168152918316602083015290911660408201526060018190604051809103906000f590508015801562000d05573d6000803e3d6000fd5b5090506003600062000d18828262000fdf565b60018201600090556002820160009055600382016000905560048201600062000d42919062000fdf565b50508351602085015183516040517f2c007ada21c8c0377b62b3a89ab19fef8b635a04c21af1b44b569982a4ffbff49362000d84938693919290919062001340565b60405180910390a1600a5460408381015190517f3d2a6f770000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301529182166024820152911690633d2a6f7790604401600060405180830381600087803b15801562000df957600080fd5b505af115801562000e0e573d6000803e3d6000fd5b505050509392505050565b6000546001600160a01b031633148062000e3d57506002546001600160a01b031633145b62000e8b5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e636500000000000000006044820152606401620003e8565b600855565b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6002546040516001600160a01b038084169216907fde4b3f61490b74c0ed6237523974fe299126bbbf8a8a7482fd220104c59b0c8490600090a36002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b82805462000f509062001482565b90600052602060002090601f01602090048101928262000f74576000855562000fbf565b82601f1062000f8f57805160ff191683800117855562000fbf565b8280016001018555821562000fbf579182015b8281111562000fbf57825182559160200191906001019062000fa2565b5062000fcd92915062001019565b5090565b6115b9806200151e83390190565b50805462000fed9062001482565b6000825580601f1062000ffe575050565b601f016020900490600052602060002090810190620008f191905b5b8082111562000fcd57600081556001016200101a565b600082601f8301126200104257600080fd5b813567ffffffffffffffff80821115620010605762001060620014d8565b604051601f8301601f19908116603f011681019082821181831017156200108b576200108b620014d8565b81604052838152866020858801011115620010a557600080fd5b836020870160208301376000602085830101528094505050505092915050565b600060a08284031215620010d857600080fd5b60405160a0810181811067ffffffffffffffff82111715620010fe57620010fe620014d8565b6040529050808235620011118162001507565b81526020838101359082015260408301356200112d8162001507565b60408201526060830135620011428162001507565b6060820152608092830135920191909152919050565b6000606082840312156200116b57600080fd5b6040516060810181811067ffffffffffffffff82111715620011915762001191620014d8565b80604052508091508235815260208301356020820152604083013560408201525092915050565b600060208284031215620011cb57600080fd5b8135620011d88162001507565b9392505050565b60008060006101208486031215620011f657600080fd5b833567ffffffffffffffff808211156200120f57600080fd5b90850190608082880312156200122457600080fd5b6200122e62001456565b8235828111156200123e57600080fd5b6200124c8982860162001030565b8252506020830135828111156200126257600080fd5b620012708982860162001030565b6020830152506040830135828111156200128957600080fd5b620012978982860162001030565b60408301525060608301356060820152809550505050620012bc856020860162001158565b9150620012cd8560808601620010c5565b90509250925092565b600060208284031215620012e957600080fd5b5035919050565b6000815180845260005b818110156200131857602081850181015186830182015201620012fa565b818111156200132b576000602083870101525b50601f01601f19169290920160200192915050565b60006001600160a01b03808716835260806020840152620013656080840187620012f0565b8381036040850152620013798187620012f0565b92505080841660608401525095945050505050565b60a081526000620013a360a0830188620012f0565b8660208401528560408401528460608401528281036080840152620013c98185620012f0565b98975050505050505050565b606081526000620013ea6060830186620012f0565b6001600160a01b039490941660208301525060400152919050565b6080815260006200141a6080830187620012f0565b82810360208401526200142e8187620012f0565b90508281036040840152620014448186620012f0565b91505082606083015295945050505050565b6040516080810167ffffffffffffffff811182821017156200147c576200147c620014d8565b60405290565b600181811c908216806200149757607f821691505b60208210811415620014d2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6001600160a01b0381168114620008f157600080fdfe60806040526000600b819055601755601c805460ff191660011790553480156200002857600080fd5b50604051620015b9380380620015b98339810160408190526200004b916200059a565b601c8054610100600160a81b0319166101006001600160a01b0386811682029290921792839055604051600193879387938593920416906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620000b6816200033e565b505080601e60146101000a81548160ff021916908315150217905550506000336001600160a01b031663d7dfa0dd6040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156200011157600080fd5b505af115801562000126573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200014c9190620004f7565b9050807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55806001600160a01b03167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a2601280546001600160a01b0319166001600160a01b03841617905560408051630890357360e41b8152905160609182913391638903573091600480830192600092919082900301818387803b1580156200020057600080fd5b505af115801562000215573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200023f9190810190620005ee565b600491909155600391909155600291909155815191935091506200026d908301602090810190840162000675565b60018190558151601f90600090602090829062000290908290888501906200039a565b50508551620002a5919060208801906200039a565b50508451620002ba919060208701906200039a565b505050505080806020019051810190620002d591906200051e565b600980546001600160a01b03199081166001600160a01b039384161790915560089290925560078054831693821693909317909255600680548216938316939093179092556013929092556005805490911692909116919091179055506200077a945050505050565b601e546040516001600160a01b038084169216907fde4b3f61490b74c0ed6237523974fe299126bbbf8a8a7482fd220104c59b0c8490600090a3601e80546001600160a01b0319166001600160a01b0392909216919091179055565b828054620003a8906200070e565b90600052602060002090601f016020900481019282620003cc576000855562000417565b82601f10620003e757805160ff191683800117855562000417565b8280016001018555821562000417579182015b8281111562000417578251825591602001919060010190620003fa565b506200042592915062000429565b5090565b5b808211156200042557600081556001016200042a565b600082601f8301126200045257600080fd5b81516001600160401b03808211156200046f576200046f6200074b565b604051601f8301601f19908116603f011681019082821181831017156200049a576200049a6200074b565b81604052838152602092508683858801011115620004b757600080fd5b600091505b83821015620004db5785820183015181830184015290820190620004bc565b83821115620004ed5760008385830101525b9695505050505050565b6000602082840312156200050a57600080fd5b8151620005178162000761565b9392505050565b60008060008060008060c087890312156200053857600080fd5b8651620005458162000761565b6020880151604089015191975095506200055f8162000761565b6060880151909450620005728162000761565b608088015160a089015191945092506200058c8162000761565b809150509295509295509295565b600080600060608486031215620005b057600080fd5b8351620005bd8162000761565b6020850151909350620005d08162000761565b6040850151909250620005e38162000761565b809150509250925092565b600080600080600060a086880312156200060757600080fd5b85516001600160401b03808211156200061f57600080fd5b6200062d89838a0162000440565b965060208801519550604088015194506060880151935060808801519150808211156200065957600080fd5b50620006688882890162000440565b9150509295509295909350565b600080600080608085870312156200068c57600080fd5b84516001600160401b0380821115620006a457600080fd5b620006b28883890162000440565b95506020870151915080821115620006c957600080fd5b620006d78883890162000440565b94506040870151915080821115620006ee57600080fd5b50620006fd8782880162000440565b606096909601519497939650505050565b600181811c908216806200072357607f821691505b602082108114156200074557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146200077757600080fd5b50565b610e2f806200078a6000396000f3fe6080604052600436106101d15760003560e01c80636c0360eb116100f7578063a035b1fe11610095578063cc3c0f0611610064578063cc3c0f0614610594578063e4c0aaf4146105c4578063ed459df2146105e4578063f2fde38b14610604576101d8565b8063a035b1fe1461050a578063b50cbd9f14610520578063ba8c65ae14610540578063c7af335214610574576101d8565b806388a17bde116100d157806388a17bde146104955780638da5cb5b146104ab5780638f32d59b146104d057806395d89b41146104f5576101d8565b80636c0360eb14610456578063715018a61461046b57806379ba509714610480576101d8565b806323452b9c1161016f5780633a67d0b01161013e5780633a67d0b0146103ae578063570ca735146103ce5780635c975abb146103ee5780636bc177e814610420576101d8565b806323452b9c1461034c5780632704f9b4146103635780632eb4a7ab1461038357806338b84a0814610399576101d8565b806317fc45e2116101ab57806317fc45e2146102ab5780631a5b6279146102cf5780631bb534ba146102fc57806323250cae1461031c576101d8565b806306fdde031461021e578063099ea2d3146102495780630c340a2414610273576101d8565b366101d857005b604051366000823760008036837f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af43d806000843e81801561021a578184f35b8184fd5b34801561022a57600080fd5b50610233610624565b6040516102409190610d32565b60405180910390f35b34801561025557600080fd5b50601c546102639060ff1681565b6040519015158152602001610240565b34801561027f57600080fd5b50601e54610293906001600160a01b031681565b6040516001600160a01b039091168152602001610240565b3480156102b757600080fd5b506102c160035481565b604051908152602001610240565b3480156102db57600080fd5b506102c16102ea366004610ce9565b601a6020526000908152604090205481565b34801561030857600080fd5b50600754610293906001600160a01b031681565b34801561032857600080fd5b50610263610337366004610d19565b60186020526000908152604090205460ff1681565b34801561035857600080fd5b506103616106b2565b005b34801561036f57600080fd5b50600654610293906001600160a01b031681565b34801561038f57600080fd5b506102c160135481565b3480156103a557600080fd5b50610361610735565b3480156103ba57600080fd5b506103616103c9366004610ce9565b610806565b3480156103da57600080fd5b50600554610293906001600160a01b031681565b3480156103fa57600080fd5b50601e546102639074010000000000000000000000000000000000000000900460ff1681565b34801561042c57600080fd5b5061029361043b366004610d19565b6019602052600090815260409020546001600160a01b031681565b34801561046257600080fd5b50610233610927565b34801561047757600080fd5b50610361610934565b34801561048c57600080fd5b5061036161099d565b3480156104a157600080fd5b506102c160025481565b3480156104b757600080fd5b50601c546102939061010090046001600160a01b031681565b3480156104dc57600080fd5b50601c5461010090046001600160a01b03163314610263565b34801561050157600080fd5b50610233610aa9565b34801561051657600080fd5b506102c160045481565b34801561052c57600080fd5b50601254610293906001600160a01b031681565b34801561054c57600080fd5b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54610293565b34801561058057600080fd5b50601e546001600160a01b03163314610263565b3480156105a057600080fd5b506102636105af366004610d19565b601b6020526000908152604090205460ff1681565b3480156105d057600080fd5b506103616105df366004610ce9565b610ab6565b3480156105f057600080fd5b50601d546001600160a01b03163314610263565b34801561061057600080fd5b5061036161061f366004610ce9565b610b36565b601f805461063190610da5565b80601f016020809104026020016040519081016040528092919081815260200182805461065d90610da5565b80156106aa5780601f1061067f576101008083540402835291602001916106aa565b820191906000526020600020905b81548152906001019060200180831161068d57829003601f168201915b505050505081565b601c5461010090046001600160a01b031633146107165760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e000000000000000060448201526064015b60405180910390fd5b601d805473ffffffffffffffffffffffffffffffffffffffff19169055565b601c5461010090046001600160a01b031633148061075d5750601e546001600160a01b031633145b6107a95760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e63650000000000000000604482015260640161070d565b601c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556040514381527fe0a18c04eb8e161421aacb1263b683e6a062532260b830dc3e42869d278e504f9060200160405180910390a1565b601c5461010090046001600160a01b031633148061082e5750601e546001600160a01b031633145b61087a5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e63650000000000000000604482015260640161070d565b601c5460ff166108cc5760405162461bcd60e51b815260206004820152600e60248201527f63616e6e6f742075706772616465000000000000000000000000000000000000604482015260640161070d565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8190556040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6000805461063190610da5565b601c5461010090046001600160a01b031633146109935760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e0000000000000000604482015260640161070d565b61099b610c1a565b565b601d546001600160a01b03163314610a1d5760405162461bcd60e51b815260206004820152602c60248201527f63757272656e74206f776e6572206d757374207365742063616c6c657220617360448201527f206e657874206f776e65722e0000000000000000000000000000000000000000606482015260840161070d565b601d805473ffffffffffffffffffffffffffffffffffffffff19169055601c80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010033818102929092179283905560405191926001600160a01b0391900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3565b6020805461063190610da5565b601c5461010090046001600160a01b0316331480610ade5750601e546001600160a01b031633145b610b2a5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e63650000000000000000604482015260640161070d565b610b3381610c80565b50565b601c5461010090046001600160a01b03163314610b955760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e0000000000000000604482015260640161070d565b6001600160a01b038116610beb5760405162461bcd60e51b815260206004820152601f60248201527f4e657874206f776e657220697320746865207a65726f20616464726573732e00604482015260640161070d565b601d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b601c80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff169081905560405160009161010090046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3565b601e546040516001600160a01b038084169216907fde4b3f61490b74c0ed6237523974fe299126bbbf8a8a7482fd220104c59b0c8490600090a3601e805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b600060208284031215610cfb57600080fd5b81356001600160a01b0381168114610d1257600080fd5b9392505050565b600060208284031215610d2b57600080fd5b5035919050565b600060208083528351808285015260005b81811015610d5f57858101830151858201604001528201610d43565b81811115610d71576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600181811c90821680610db957607f821691505b60208210811415610df3577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea264697066735822122097b1df902181e22605701950373794b4302fcba53cc26fc53386bf686a44201964736f6c63430008060033a2646970667358221220377e2a31a342f693c0e1166ca0cc3fe0cd0aee3bebd55ee50500e33e53f7791064736f6c634300080600330000000000000000000000002330ee705ffd040bb0cba8cb7734dfe00e7c4b5700000000000000000000000086bea424e00ed6d742e2c81c2f9eda9567eeab5c0000000000000000000000001171b858777120a59a6cc8148edda8982f187cd800000000000000000000000021a93be569666527dae0fdbfbe7715299dec1202000000000000000000000000a5409ec958c83c3f309868babaca7c86dcb077c1

Deployed Bytecode

0x60806040523480156200001157600080fd5b5060043610620001a15760003560e01c8063c7af335211620000e9578063e4c0aaf41162000097578063f2fde38b116200006e578063f2fde38b146200034c578063f927691e1462000363578063ff39e710146200037a57600080fd5b8063e4c0aaf4146200030a578063ed459df21462000321578063f1fe1663146200033557600080fd5b8063d321de7311620000cc578063d321de7314620002cb578063d6811b6f14620002e2578063d7dfa0dd14620002f657600080fd5b8063c7af335214620002a3578063cfd7b0df14620002b757600080fd5b806379ba509711620001535780638f32d59b116200012a5780638f32d59b1462000258578063adfdeef91462000278578063b50cbd9f146200028f57600080fd5b806379ba5097146200021d5780638903573014620002275780638da5cb5b146200024457600080fd5b80632a0b17ee11620001885780632a0b17ee14620001e3578063715018a614620001fc57806371857000146200020657600080fd5b80630c340a2414620001a657806323452b9c14620001d7575b600080fd5b600254620001ba906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b620001e162000391565b005b620001ed60085481565b604051908152602001620001ce565b620001e162000410565b620001e162000217366004620011b8565b62000478565b620001e162000519565b62000231620005f0565b604051620001ce9594939291906200138e565b600054620001ba906001600160a01b031681565b6000546001600160a01b031633145b6040519015158152602001620001ce565b620001e162000289366004620011b8565b62000732565b600c54620001ba906001600160a01b031681565b6002546001600160a01b0316331462000267565b600b54620001ba906001600160a01b031681565b620001e1620002dc366004620011b8565b620007d3565b600a54620001ba906001600160a01b031681565b600954620001ba906001600160a01b031681565b620001e16200031b366004620011b8565b62000874565b6001546001600160a01b0316331462000267565b620001e162000346366004620011b8565b620008f4565b620001e16200035d366004620011b8565b62000995565b620001ba62000374366004620011df565b62000a78565b620001e16200038b366004620012d6565b62000e19565b6000546001600160a01b03163314620003f15760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e000000000000000060448201526064015b60405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b031633146200046c5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e00000000000000006044820152606401620003e8565b6200047662000e90565b565b6000546001600160a01b03163314806200049c57506002546001600160a01b031633145b620004ea5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e636500000000000000006044820152606401620003e8565b6009805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001546001600160a01b031633146200059b5760405162461bcd60e51b815260206004820152602c60248201527f63757272656e74206f776e6572206d757374207365742063616c6c657220617360448201527f206e657874206f776e65722e00000000000000000000000000000000000000006064820152608401620003e8565b6001805473ffffffffffffffffffffffffffffffffffffffff19908116909155600080543392168217815560405182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3565b600380548190620006019062001482565b80601f01602080910402602001604051908101604052809291908181526020018280546200062f9062001482565b8015620006805780601f10620006545761010080835404028352916020019162000680565b820191906000526020600020905b8154815290600101906020018083116200066257829003601f168201915b505050505090806001015490806002015490806003015490806004018054620006a99062001482565b80601f0160208091040260200160405190810160405280929190818152602001828054620006d79062001482565b8015620007285780601f10620006fc5761010080835404028352916020019162000728565b820191906000526020600020905b8154815290600101906020018083116200070a57829003601f168201915b5050505050905085565b6000546001600160a01b03163314806200075657506002546001600160a01b031633145b620007a45760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e636500000000000000006044820152606401620003e8565b600c805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b0316331480620007f757506002546001600160a01b031633145b620008455760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e636500000000000000006044820152606401620003e8565b600a805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b03163314806200089857506002546001600160a01b031633145b620008e65760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e636500000000000000006044820152606401620003e8565b620008f18162000ed9565b50565b6000546001600160a01b03163314806200091857506002546001600160a01b031633145b620009665760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e636500000000000000006044820152606401620003e8565b600b805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b03163314620009f15760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e00000000000000006044820152606401620003e8565b6001600160a01b03811662000a495760405162461bcd60e51b815260206004820152601f60248201527f4e657874206f776e657220697320746865207a65726f20616464726573732e006044820152606401620003e8565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b60006008548260800151101562000ad25760405162461bcd60e51b815260206004820152600e60248201527f66656520697320746f6f206c6f770000000000000000000000000000000000006044820152606401620003e8565b82516020840151111562000b4f5760405162461bcd60e51b815260206004820152602560248201527f616c6c6f636174696f6e206d757374206265206c657373207468616e2071756160448201527f6e746974790000000000000000000000000000000000000000000000000000006064820152608401620003e8565b6040805160a081018252855160208701519287015160608801519293849362000b7e93929060c0860162001405565b60408051601f198184030181529181529082526020868101518382015286518383015286820151606080850191909152865187830151888501518984015160808b810151600b5489516001600160a01b039788169981019990995298880194909452918416948601949094529282168484015260a084015290921660c082015291019060e00160408051601f1981840301815291905290528051805160039162000c2e9183916020019062000f42565b50602082810151600183015560408301516002830155606083015160038301556080830151805162000c67926004850192019062000f42565b50505060208085015183518483015160405162000c859401620013d5565b60408051601f198184030181529082905280516020909101208351600254600c54929391926001600160a01b039182169291169062000cc49062000fd1565b6001600160a01b039384168152918316602083015290911660408201526060018190604051809103906000f590508015801562000d05573d6000803e3d6000fd5b5090506003600062000d18828262000fdf565b60018201600090556002820160009055600382016000905560048201600062000d42919062000fdf565b50508351602085015183516040517f2c007ada21c8c0377b62b3a89ab19fef8b635a04c21af1b44b569982a4ffbff49362000d84938693919290919062001340565b60405180910390a1600a5460408381015190517f3d2a6f770000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301529182166024820152911690633d2a6f7790604401600060405180830381600087803b15801562000df957600080fd5b505af115801562000e0e573d6000803e3d6000fd5b505050509392505050565b6000546001600160a01b031633148062000e3d57506002546001600160a01b031633145b62000e8b5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e636500000000000000006044820152606401620003e8565b600855565b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6002546040516001600160a01b038084169216907fde4b3f61490b74c0ed6237523974fe299126bbbf8a8a7482fd220104c59b0c8490600090a36002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b82805462000f509062001482565b90600052602060002090601f01602090048101928262000f74576000855562000fbf565b82601f1062000f8f57805160ff191683800117855562000fbf565b8280016001018555821562000fbf579182015b8281111562000fbf57825182559160200191906001019062000fa2565b5062000fcd92915062001019565b5090565b6115b9806200151e83390190565b50805462000fed9062001482565b6000825580601f1062000ffe575050565b601f016020900490600052602060002090810190620008f191905b5b8082111562000fcd57600081556001016200101a565b600082601f8301126200104257600080fd5b813567ffffffffffffffff80821115620010605762001060620014d8565b604051601f8301601f19908116603f011681019082821181831017156200108b576200108b620014d8565b81604052838152866020858801011115620010a557600080fd5b836020870160208301376000602085830101528094505050505092915050565b600060a08284031215620010d857600080fd5b60405160a0810181811067ffffffffffffffff82111715620010fe57620010fe620014d8565b6040529050808235620011118162001507565b81526020838101359082015260408301356200112d8162001507565b60408201526060830135620011428162001507565b6060820152608092830135920191909152919050565b6000606082840312156200116b57600080fd5b6040516060810181811067ffffffffffffffff82111715620011915762001191620014d8565b80604052508091508235815260208301356020820152604083013560408201525092915050565b600060208284031215620011cb57600080fd5b8135620011d88162001507565b9392505050565b60008060006101208486031215620011f657600080fd5b833567ffffffffffffffff808211156200120f57600080fd5b90850190608082880312156200122457600080fd5b6200122e62001456565b8235828111156200123e57600080fd5b6200124c8982860162001030565b8252506020830135828111156200126257600080fd5b620012708982860162001030565b6020830152506040830135828111156200128957600080fd5b620012978982860162001030565b60408301525060608301356060820152809550505050620012bc856020860162001158565b9150620012cd8560808601620010c5565b90509250925092565b600060208284031215620012e957600080fd5b5035919050565b6000815180845260005b818110156200131857602081850181015186830182015201620012fa565b818111156200132b576000602083870101525b50601f01601f19169290920160200192915050565b60006001600160a01b03808716835260806020840152620013656080840187620012f0565b8381036040850152620013798187620012f0565b92505080841660608401525095945050505050565b60a081526000620013a360a0830188620012f0565b8660208401528560408401528460608401528281036080840152620013c98185620012f0565b98975050505050505050565b606081526000620013ea6060830186620012f0565b6001600160a01b039490941660208301525060400152919050565b6080815260006200141a6080830187620012f0565b82810360208401526200142e8187620012f0565b90508281036040840152620014448186620012f0565b91505082606083015295945050505050565b6040516080810167ffffffffffffffff811182821017156200147c576200147c620014d8565b60405290565b600181811c908216806200149757607f821691505b60208210811415620014d2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6001600160a01b0381168114620008f157600080fdfe60806040526000600b819055601755601c805460ff191660011790553480156200002857600080fd5b50604051620015b9380380620015b98339810160408190526200004b916200059a565b601c8054610100600160a81b0319166101006001600160a01b0386811682029290921792839055604051600193879387938593920416906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620000b6816200033e565b505080601e60146101000a81548160ff021916908315150217905550506000336001600160a01b031663d7dfa0dd6040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156200011157600080fd5b505af115801562000126573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200014c9190620004f7565b9050807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55806001600160a01b03167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a2601280546001600160a01b0319166001600160a01b03841617905560408051630890357360e41b8152905160609182913391638903573091600480830192600092919082900301818387803b1580156200020057600080fd5b505af115801562000215573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200023f9190810190620005ee565b600491909155600391909155600291909155815191935091506200026d908301602090810190840162000675565b60018190558151601f90600090602090829062000290908290888501906200039a565b50508551620002a5919060208801906200039a565b50508451620002ba919060208701906200039a565b505050505080806020019051810190620002d591906200051e565b600980546001600160a01b03199081166001600160a01b039384161790915560089290925560078054831693821693909317909255600680548216938316939093179092556013929092556005805490911692909116919091179055506200077a945050505050565b601e546040516001600160a01b038084169216907fde4b3f61490b74c0ed6237523974fe299126bbbf8a8a7482fd220104c59b0c8490600090a3601e80546001600160a01b0319166001600160a01b0392909216919091179055565b828054620003a8906200070e565b90600052602060002090601f016020900481019282620003cc576000855562000417565b82601f10620003e757805160ff191683800117855562000417565b8280016001018555821562000417579182015b8281111562000417578251825591602001919060010190620003fa565b506200042592915062000429565b5090565b5b808211156200042557600081556001016200042a565b600082601f8301126200045257600080fd5b81516001600160401b03808211156200046f576200046f6200074b565b604051601f8301601f19908116603f011681019082821181831017156200049a576200049a6200074b565b81604052838152602092508683858801011115620004b757600080fd5b600091505b83821015620004db5785820183015181830184015290820190620004bc565b83821115620004ed5760008385830101525b9695505050505050565b6000602082840312156200050a57600080fd5b8151620005178162000761565b9392505050565b60008060008060008060c087890312156200053857600080fd5b8651620005458162000761565b6020880151604089015191975095506200055f8162000761565b6060880151909450620005728162000761565b608088015160a089015191945092506200058c8162000761565b809150509295509295509295565b600080600060608486031215620005b057600080fd5b8351620005bd8162000761565b6020850151909350620005d08162000761565b6040850151909250620005e38162000761565b809150509250925092565b600080600080600060a086880312156200060757600080fd5b85516001600160401b03808211156200061f57600080fd5b6200062d89838a0162000440565b965060208801519550604088015194506060880151935060808801519150808211156200065957600080fd5b50620006688882890162000440565b9150509295509295909350565b600080600080608085870312156200068c57600080fd5b84516001600160401b0380821115620006a457600080fd5b620006b28883890162000440565b95506020870151915080821115620006c957600080fd5b620006d78883890162000440565b94506040870151915080821115620006ee57600080fd5b50620006fd8782880162000440565b606096909601519497939650505050565b600181811c908216806200072357607f821691505b602082108114156200074557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146200077757600080fd5b50565b610e2f806200078a6000396000f3fe6080604052600436106101d15760003560e01c80636c0360eb116100f7578063a035b1fe11610095578063cc3c0f0611610064578063cc3c0f0614610594578063e4c0aaf4146105c4578063ed459df2146105e4578063f2fde38b14610604576101d8565b8063a035b1fe1461050a578063b50cbd9f14610520578063ba8c65ae14610540578063c7af335214610574576101d8565b806388a17bde116100d157806388a17bde146104955780638da5cb5b146104ab5780638f32d59b146104d057806395d89b41146104f5576101d8565b80636c0360eb14610456578063715018a61461046b57806379ba509714610480576101d8565b806323452b9c1161016f5780633a67d0b01161013e5780633a67d0b0146103ae578063570ca735146103ce5780635c975abb146103ee5780636bc177e814610420576101d8565b806323452b9c1461034c5780632704f9b4146103635780632eb4a7ab1461038357806338b84a0814610399576101d8565b806317fc45e2116101ab57806317fc45e2146102ab5780631a5b6279146102cf5780631bb534ba146102fc57806323250cae1461031c576101d8565b806306fdde031461021e578063099ea2d3146102495780630c340a2414610273576101d8565b366101d857005b604051366000823760008036837f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af43d806000843e81801561021a578184f35b8184fd5b34801561022a57600080fd5b50610233610624565b6040516102409190610d32565b60405180910390f35b34801561025557600080fd5b50601c546102639060ff1681565b6040519015158152602001610240565b34801561027f57600080fd5b50601e54610293906001600160a01b031681565b6040516001600160a01b039091168152602001610240565b3480156102b757600080fd5b506102c160035481565b604051908152602001610240565b3480156102db57600080fd5b506102c16102ea366004610ce9565b601a6020526000908152604090205481565b34801561030857600080fd5b50600754610293906001600160a01b031681565b34801561032857600080fd5b50610263610337366004610d19565b60186020526000908152604090205460ff1681565b34801561035857600080fd5b506103616106b2565b005b34801561036f57600080fd5b50600654610293906001600160a01b031681565b34801561038f57600080fd5b506102c160135481565b3480156103a557600080fd5b50610361610735565b3480156103ba57600080fd5b506103616103c9366004610ce9565b610806565b3480156103da57600080fd5b50600554610293906001600160a01b031681565b3480156103fa57600080fd5b50601e546102639074010000000000000000000000000000000000000000900460ff1681565b34801561042c57600080fd5b5061029361043b366004610d19565b6019602052600090815260409020546001600160a01b031681565b34801561046257600080fd5b50610233610927565b34801561047757600080fd5b50610361610934565b34801561048c57600080fd5b5061036161099d565b3480156104a157600080fd5b506102c160025481565b3480156104b757600080fd5b50601c546102939061010090046001600160a01b031681565b3480156104dc57600080fd5b50601c5461010090046001600160a01b03163314610263565b34801561050157600080fd5b50610233610aa9565b34801561051657600080fd5b506102c160045481565b34801561052c57600080fd5b50601254610293906001600160a01b031681565b34801561054c57600080fd5b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54610293565b34801561058057600080fd5b50601e546001600160a01b03163314610263565b3480156105a057600080fd5b506102636105af366004610d19565b601b6020526000908152604090205460ff1681565b3480156105d057600080fd5b506103616105df366004610ce9565b610ab6565b3480156105f057600080fd5b50601d546001600160a01b03163314610263565b34801561061057600080fd5b5061036161061f366004610ce9565b610b36565b601f805461063190610da5565b80601f016020809104026020016040519081016040528092919081815260200182805461065d90610da5565b80156106aa5780601f1061067f576101008083540402835291602001916106aa565b820191906000526020600020905b81548152906001019060200180831161068d57829003601f168201915b505050505081565b601c5461010090046001600160a01b031633146107165760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e000000000000000060448201526064015b60405180910390fd5b601d805473ffffffffffffffffffffffffffffffffffffffff19169055565b601c5461010090046001600160a01b031633148061075d5750601e546001600160a01b031633145b6107a95760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e63650000000000000000604482015260640161070d565b601c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556040514381527fe0a18c04eb8e161421aacb1263b683e6a062532260b830dc3e42869d278e504f9060200160405180910390a1565b601c5461010090046001600160a01b031633148061082e5750601e546001600160a01b031633145b61087a5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e63650000000000000000604482015260640161070d565b601c5460ff166108cc5760405162461bcd60e51b815260206004820152600e60248201527f63616e6e6f742075706772616465000000000000000000000000000000000000604482015260640161070d565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8190556040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6000805461063190610da5565b601c5461010090046001600160a01b031633146109935760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e0000000000000000604482015260640161070d565b61099b610c1a565b565b601d546001600160a01b03163314610a1d5760405162461bcd60e51b815260206004820152602c60248201527f63757272656e74206f776e6572206d757374207365742063616c6c657220617360448201527f206e657874206f776e65722e0000000000000000000000000000000000000000606482015260840161070d565b601d805473ffffffffffffffffffffffffffffffffffffffff19169055601c80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010033818102929092179283905560405191926001600160a01b0391900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3565b6020805461063190610da5565b601c5461010090046001600160a01b0316331480610ade5750601e546001600160a01b031633145b610b2a5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e63650000000000000000604482015260640161070d565b610b3381610c80565b50565b601c5461010090046001600160a01b03163314610b955760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e0000000000000000604482015260640161070d565b6001600160a01b038116610beb5760405162461bcd60e51b815260206004820152601f60248201527f4e657874206f776e657220697320746865207a65726f20616464726573732e00604482015260640161070d565b601d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b601c80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff169081905560405160009161010090046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3565b601e546040516001600160a01b038084169216907fde4b3f61490b74c0ed6237523974fe299126bbbf8a8a7482fd220104c59b0c8490600090a3601e805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b600060208284031215610cfb57600080fd5b81356001600160a01b0381168114610d1257600080fd5b9392505050565b600060208284031215610d2b57600080fd5b5035919050565b600060208083528351808285015260005b81811015610d5f57858101830151858201604001528201610d43565b81811115610d71576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600181811c90821680610db957607f821691505b60208210811415610df3577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea264697066735822122097b1df902181e22605701950373794b4302fcba53cc26fc53386bf686a44201964736f6c63430008060033a2646970667358221220377e2a31a342f693c0e1166ca0cc3fe0cd0aee3bebd55ee50500e33e53f7791064736f6c63430008060033

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

0000000000000000000000002330ee705ffd040bb0cba8cb7734dfe00e7c4b5700000000000000000000000086bea424e00ed6d742e2c81c2f9eda9567eeab5c0000000000000000000000001171b858777120a59a6cc8148edda8982f187cd800000000000000000000000021a93be569666527dae0fdbfbe7715299dec1202000000000000000000000000a5409ec958c83c3f309868babaca7c86dcb077c1

-----Decoded View---------------
Arg [0] : owner_ (address): 0x2330ee705fFD040bB0cbA8CB7734Dfe00E7C4b57
Arg [1] : logic_ (address): 0x86beA424E00ed6d742E2C81c2F9EDA9567eeab5c
Arg [2] : tributaryRegistry_ (address): 0x1171B858777120a59a6cc8148eDda8982F187Cd8
Arg [3] : treasuryConfig_ (address): 0x21A93bE569666527dAe0FDBFbe7715299dEC1202
Arg [4] : proxyRegistry_ (address): 0xa5409ec958C83C3f309868babACA7c86DCB077c1

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 0000000000000000000000002330ee705ffd040bb0cba8cb7734dfe00e7c4b57
Arg [1] : 00000000000000000000000086bea424e00ed6d742e2c81c2f9eda9567eeab5c
Arg [2] : 0000000000000000000000001171b858777120a59a6cc8148edda8982f187cd8
Arg [3] : 00000000000000000000000021a93be569666527dae0fdbfbe7715299dec1202
Arg [4] : 000000000000000000000000a5409ec958c83c3f309868babaca7c86dcb077c1


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.