ETH Price: $2,040.94 (-3.68%)

Contract

0xF44880E5a2EeB8230d6C0c7DAA0b59a0DFB2cccF
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Create153863972022-08-21 21:43:281313 days ago1661118208IN
The Rug: Editions Factory
0 ETH0.004953619.50831784
Create153817822022-08-21 4:16:241314 days ago1661055384IN
The Rug: Editions Factory
0 ETH0.002595373.8124905
Create153811662022-08-21 1:48:151314 days ago1661046495IN
The Rug: Editions Factory
0 ETH0.002296824.82436748
Create153806072022-08-20 23:48:451314 days ago1661039325IN
The Rug: Editions Factory
0 ETH0.002565094.92260235
Create153785072022-08-20 15:56:591314 days ago1661011019IN
The Rug: Editions Factory
0 ETH0.0062727412.04229779
Create153784992022-08-20 15:54:031314 days ago1661010843IN
The Rug: Editions Factory
0 ETH0.004056018.51494885
Create153768782022-08-20 9:39:431314 days ago1660988383IN
The Rug: Editions Factory
0 ETH0.003182595.84928918
Create153764262022-08-20 7:55:521315 days ago1660982152IN
The Rug: Editions Factory
0 ETH0.003331027
Create153715632022-08-19 13:30:161315 days ago1660915816IN
The Rug: Editions Factory
0 ETH0.0064732112.42370741
Create153683892022-08-19 1:20:231316 days ago1660872023IN
The Rug: Editions Factory
0 ETH0.0194904720.02481417
Create153541702022-08-16 19:17:021318 days ago1660677422IN
The Rug: Editions Factory
0 ETH0.004757767.77108211
Create153496402022-08-16 2:05:571319 days ago1660615557IN
The Rug: Editions Factory
0 ETH0.00467429.81619883
Create153484552022-08-15 21:46:051319 days ago1660599965IN
The Rug: Editions Factory
0 ETH0.0062021413.61230186
Create153257202022-08-12 7:33:451323 days ago1660289625IN
The Rug: Editions Factory
0 ETH0.003963278.32843956
Create153138322022-08-10 10:34:381324 days ago1660127678IN
The Rug: Editions Factory
0 ETH0.0058998211.31619474
Create153138102022-08-10 10:28:181324 days ago1660127298IN
The Rug: Editions Factory
0 ETH0.007337411.97724384
Create153130942022-08-10 7:41:591325 days ago1660117319IN
The Rug: Editions Factory
0 ETH0.0075203216.50757787
Create153110952022-08-10 0:09:001325 days ago1660090140IN
The Rug: Editions Factory
0 ETH0.002855816
Create153083682022-08-09 13:53:411325 days ago1660053221IN
The Rug: Editions Factory
0 ETH0.009325513.71132223
Create153083502022-08-09 13:49:181325 days ago1660052958IN
The Rug: Editions Factory
0 ETH0.0077272811.75541366
Create153082582022-08-09 13:26:011325 days ago1660051561IN
The Rug: Editions Factory
0 ETH0.0093669514.7645461
Create153047692022-08-09 0:16:401326 days ago1660004200IN
The Rug: Editions Factory
0 ETH0.0123286725.90488316
Create153036842022-08-08 20:20:401326 days ago1659990040IN
The Rug: Editions Factory
0 ETH0.0107269818.9297035
Create152981762022-08-07 23:35:241327 days ago1659915324IN
The Rug: Editions Factory
0 ETH0.0086309610.86499603
Create152981462022-08-07 23:28:101327 days ago1659914890IN
The Rug: Editions Factory
0 ETH0.0067194610.58124234
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
0x3d602d80153863972022-08-21 21:43:281313 days ago1661118208
The Rug: Editions Factory
 Contract Creation0 ETH
0x3d602d80153817822022-08-21 4:16:241314 days ago1661055384
The Rug: Editions Factory
 Contract Creation0 ETH
0x3d602d80153811662022-08-21 1:48:151314 days ago1661046495
The Rug: Editions Factory
 Contract Creation0 ETH
0x3d602d80153806072022-08-20 23:48:451314 days ago1661039325
The Rug: Editions Factory
 Contract Creation0 ETH
0x3d602d80153785072022-08-20 15:56:591314 days ago1661011019
The Rug: Editions Factory
 Contract Creation0 ETH
0x3d602d80153784992022-08-20 15:54:031314 days ago1661010843
The Rug: Editions Factory
 Contract Creation0 ETH
0x3d602d80153768782022-08-20 9:39:431314 days ago1660988383
The Rug: Editions Factory
 Contract Creation0 ETH
0x3d602d80153764262022-08-20 7:55:521315 days ago1660982152
The Rug: Editions Factory
 Contract Creation0 ETH
0x3d602d80153715632022-08-19 13:30:161315 days ago1660915816
The Rug: Editions Factory
 Contract Creation0 ETH
0x3d602d80153683892022-08-19 1:20:231316 days ago1660872023
The Rug: Editions Factory
 Contract Creation0 ETH
0x3d602d80153541702022-08-16 19:17:021318 days ago1660677422
The Rug: Editions Factory
 Contract Creation0 ETH
0x3d602d80153496402022-08-16 2:05:571319 days ago1660615557
The Rug: Editions Factory
 Contract Creation0 ETH
0x3d602d80153484552022-08-15 21:46:051319 days ago1660599965
The Rug: Editions Factory
 Contract Creation0 ETH
0x3d602d80153257202022-08-12 7:33:451323 days ago1660289625
The Rug: Editions Factory
 Contract Creation0 ETH
0x3d602d80153138322022-08-10 10:34:381324 days ago1660127678
The Rug: Editions Factory
 Contract Creation0 ETH
0x3d602d80153138102022-08-10 10:28:181324 days ago1660127298
The Rug: Editions Factory
 Contract Creation0 ETH
0x3d602d80153130942022-08-10 7:41:591325 days ago1660117319
The Rug: Editions Factory
 Contract Creation0 ETH
0x3d602d80153110952022-08-10 0:09:001325 days ago1660090140
The Rug: Editions Factory
 Contract Creation0 ETH
0x3d602d80153083682022-08-09 13:53:411325 days ago1660053221
The Rug: Editions Factory
 Contract Creation0 ETH
0x3d602d80153083502022-08-09 13:49:181325 days ago1660052958
The Rug: Editions Factory
 Contract Creation0 ETH
0x3d602d80153082582022-08-09 13:26:011325 days ago1660051561
The Rug: Editions Factory
 Contract Creation0 ETH
0x3d602d80153047692022-08-09 0:16:401326 days ago1660004200
The Rug: Editions Factory
 Contract Creation0 ETH
0x3d602d80153036842022-08-08 20:20:401326 days ago1659990040
The Rug: Editions Factory
 Contract Creation0 ETH
0x3d602d80152981762022-08-07 23:35:241327 days ago1659915324
The Rug: Editions Factory
 Contract Creation0 ETH
0x3d602d80152981462022-08-07 23:28:101327 days ago1659914890
The Rug: Editions Factory
 Contract Creation0 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EditionsFactory

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 2000 runs

Other Settings:
default evmVersion
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.10;

import {Ownable} from "../../lib/Ownable.sol";
import {Clones} from "../../lib/Clones.sol";
import {IEditionsFactory, IEditionsFactoryEvents} from "./interface/IEditionsFactory.sol";
import {IEditions} from "./interface/IEditions.sol";

interface ITributaryRegistry {
    function registerTributary(address producer, address tributary) external;
}

/**
 * @title EditionsFactory
 * @notice The EditionsFactory contract is used to deploy edition clones.
 * @author MirrorXYZ
 */
contract EditionsFactory is Ownable, IEditionsFactoryEvents, IEditionsFactory {
    /// @notice Address that holds the implementation for Crowdfunds
    address public implementation;

    /// @notice Mirror tributary registry
    address public tributaryRegistry;

    constructor(
        address owner_,
        address implementation_,
        address tributaryRegistry_
    ) Ownable(owner_) {
        implementation = implementation_;
        tributaryRegistry = tributaryRegistry_;
    }

    // ======== Admin function =========
    function setImplementation(address implementation_)
        external
        override
        onlyOwner
    {
        require(implementation_ != address(0), "must set implementation");

        emit ImplementationSet(implementation, implementation_);

        implementation = implementation_;
    }

    function setTributaryRegistry(address tributaryRegistry_)
        external
        override
        onlyOwner
    {
        require(
            tributaryRegistry_ != address(0),
            "must set tributary registry"
        );

        emit TributaryRegistrySet(tributaryRegistry, tributaryRegistry_);

        tributaryRegistry = tributaryRegistry_;
    }

    // ======== Deploy function =========

    /// @notice Deploys a new edition (ERC721) clone, and register tributary.
    /// @param owner_ the clone owner
    /// @param tributary the tributary receive tokens in behalf of the clone fees
    /// @param name_ the name for the edition clone
    /// @param symbol_ the symbol for the edition clone
    /// @param description_ the description for the edition clone
    /// @param contentURI_ the contentURI for the edition clone
    /// @param animationURI_ the animationURI for the edition clone
    /// @param contractURI_ the contractURI for the edition clone
    /// @param edition_ the parameters for the edition sale
    /// @param nonce additional entropy for the clone salt parameter
    /// @param paused_ the pause state for the edition sale
    function create(
        address owner_,
        address tributary,
        string memory name_,
        string memory symbol_,
        string memory description_,
        string memory contentURI_,
        string memory animationURI_,
        string memory contractURI_,
        IEditions.Edition memory edition_,
        uint256 nonce,
        bool paused_
    ) external override returns (address clone) {
        clone = Clones.cloneDeterministic(
            implementation,
            keccak256(abi.encode(owner_, name_, symbol_, nonce))
        );

        IEditions(clone).initialize(
            owner_,
            name_,
            symbol_,
            description_,
            contentURI_,
            animationURI_,
            contractURI_,
            edition_,
            paused_
        );

        emit EditionsDeployed(owner_, clone, implementation);

        if (tributaryRegistry != address(0)) {
            ITributaryRegistry(tributaryRegistry).registerTributary(
                clone,
                tributary
            );
        }
    }

    function predictDeterministicAddress(address implementation_, bytes32 salt)
        external
        view
        override
        returns (address)
    {
        return
            Clones.predictDeterministicAddress(
                implementation_,
                salt,
                address(this)
            );
    }
}

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

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 {
        emit OwnershipTransferred(owner, address(0));

        owner = address(0);
    }
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (proxy/Clones.sol)

pragma solidity ^0.8.0;

/**
 * @dev Copy of OpenZeppelin's Clones contract
 * https://eips.ethereum.org/EIPS/eip-1167[EIP 1167] is a standard for
 * deploying minimal proxy contracts, also known as "clones".
 *
 * > To simply and cheaply clone contract functionality in an immutable way, this standard specifies
 * > a minimal bytecode implementation that delegates all calls to a known, fixed address.
 *
 * The library includes functions to deploy a proxy using either `create` (traditional deployment) or `create2`
 * (salted deterministic deployment). It also includes functions to predict the addresses of clones deployed using the
 * deterministic method.
 *
 * _Available since v3.4._
 */
library Clones {
    /**
     * @dev Deploys and returns the address of a clone that mimics the behaviour of `implementation`.
     *
     * This function uses the create opcode, which should never revert.
     */
    function clone(address implementation) internal returns (address instance) {
        assembly {
            let ptr := mload(0x40)
            mstore(
                ptr,
                0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000
            )
            mstore(add(ptr, 0x14), shl(0x60, implementation))
            mstore(
                add(ptr, 0x28),
                0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000
            )
            instance := create(0, ptr, 0x37)
        }
        require(instance != address(0), "ERC1167: create failed");
    }

    /**
     * @dev Deploys and returns the address of a clone that mimics the behaviour of `implementation`.
     *
     * This function uses the create2 opcode and a `salt` to deterministically deploy
     * the clone. Using the same `implementation` and `salt` multiple time will revert, since
     * the clones cannot be deployed twice at the same address.
     */
    function cloneDeterministic(address implementation, bytes32 salt)
        internal
        returns (address instance)
    {
        assembly {
            let ptr := mload(0x40)
            mstore(
                ptr,
                0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000
            )
            mstore(add(ptr, 0x14), shl(0x60, implementation))
            mstore(
                add(ptr, 0x28),
                0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000
            )
            instance := create2(0, ptr, 0x37, salt)
        }
        require(instance != address(0), "ERC1167: create2 failed");
    }

    /**
     * @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}.
     */
    function predictDeterministicAddress(
        address implementation,
        bytes32 salt,
        address deployer
    ) internal pure returns (address predicted) {
        assembly {
            let ptr := mload(0x40)
            mstore(
                ptr,
                0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000
            )
            mstore(add(ptr, 0x14), shl(0x60, implementation))
            mstore(
                add(ptr, 0x28),
                0x5af43d82803e903d91602b57fd5bf3ff00000000000000000000000000000000
            )
            mstore(add(ptr, 0x38), shl(0x60, deployer))
            mstore(add(ptr, 0x4c), salt)
            mstore(add(ptr, 0x6c), keccak256(ptr, 0x37))
            predicted := keccak256(add(ptr, 0x37), 0x55)
        }
    }

    /**
     * @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}.
     */
    function predictDeterministicAddress(address implementation, bytes32 salt)
        internal
        view
        returns (address predicted)
    {
        return predictDeterministicAddress(implementation, salt, address(this));
    }
}

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

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

interface IEditionsFactoryEvents {
    event EditionsDeployed(
        address indexed owner,
        address indexed clone,
        address indexed implementation
    );

    event TributaryRegistrySet(
        address indexed oldTributaryRegistry,
        address indexed newTributaryRegistry
    );

    event ImplementationSet(
        address indexed oldImplementation,
        address indexed newImplementation
    );
}

interface IEditionsFactory {
    function setImplementation(address implementation_) external;

    function setTributaryRegistry(address tributaryRegistry_) external;

    function create(
        address owner,
        address tributary,
        string memory name_,
        string memory symbol_,
        string memory description_,
        string memory contentURI_,
        string memory animationURI_,
        string memory contractURI_,
        IEditions.Edition memory edition_,
        uint256 nonce,
        bool paused_
    ) external returns (address clone);

    function predictDeterministicAddress(address implementation_, bytes32 salt)
        external
        view
        returns (address);
}

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

interface IEditionsEvents {
    event EditionPurchased(
        uint256 indexed tokenId,
        address indexed nftRecipient,
        uint256 amountPaid
    );

    event RoyaltyChange(
        address indexed oldRoyaltyRecipient,
        uint256 oldRoyaltyBPS,
        address indexed newRoyaltyRecipient,
        uint256 newRoyaltyBPS
    );

    event RendererSet(address indexed renderer);

    event EditionLimitSet(uint256 oldLimit, uint256 newLimit);

    event Withdrawal(address indexed recipient, uint256 amount, uint256 fee);

    event FundingRecipientSet(
        address indexed oldFundingRecipient,
        address indexed newFundingRecipient
    );

    event PriceSet(uint256 price);
}

interface IEditions {
    struct Edition {
        // Edition price
        uint256 price;
        // Edition supply limit
        uint256 limit;
    }

    // ============ Authorization ============

    function factory() external returns (address);

    // ============ Fee Configuration ============

    function feeConfig() external returns (address);

    function treasuryConfig() external returns (address);

    // ============ Edition Data ============

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

    function price() external returns (uint256);

    function limit() external returns (uint256);

    // ============ Royalty Info (ERC2981) ============

    function royaltyRecipient() external returns (address);

    function royaltyBPS() external returns (uint256);

    // ============ Rendering ============

    function renderer() external view returns (address);

    // ============ Initializing ============

    function initialize(
        address owner_,
        string memory name_,
        string memory symbol_,
        string memory description_,
        string memory contentURI_,
        string memory animationURI_,
        string memory contractURI_,
        Edition memory edition_,
        bool paused_
    ) external;

    // ============ Pause Methods ============

    function unpause() external;

    function pause() external;

    // ============ Allocation ============

    function allocate(address recipient, uint256 count) external;

    // ============ Purchase ============

    function purchase(address recipient)
        external
        payable
        returns (uint256 tokenId);

    // ============ Minting ============

    function mint(address recipient) external returns (uint256 tokenId);

    function setLimit(uint256 limit_) external;

    // ============ ERC2981 Methods ============

    function setRoyaltyInfo(
        address payable royaltyRecipient_,
        uint256 royaltyPercentage_
    ) external;

    // ============ Rendering Methods ============

    function setRenderer(address renderer_) external;

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

    // ============ Withdrawal ============

    function setPrice(uint256 price_) external;

    function withdraw(uint16 feeBPS, address fundingRecipient) external;
}

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

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"implementation_","type":"address"},{"internalType":"address","name":"tributaryRegistry_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"clone","type":"address"},{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"EditionsDeployed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldImplementation","type":"address"},{"indexed":true,"internalType":"address","name":"newImplementation","type":"address"}],"name":"ImplementationSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldTributaryRegistry","type":"address"},{"indexed":true,"internalType":"address","name":"newTributaryRegistry","type":"address"}],"name":"TributaryRegistrySet","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelOwnershipTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"tributary","type":"address"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"string","name":"description_","type":"string"},{"internalType":"string","name":"contentURI_","type":"string"},{"internalType":"string","name":"animationURI_","type":"string"},{"internalType":"string","name":"contractURI_","type":"string"},{"components":[{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"limit","type":"uint256"}],"internalType":"struct IEditions.Edition","name":"edition_","type":"tuple"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bool","name":"paused_","type":"bool"}],"name":"create","outputs":[{"internalType":"address","name":"clone","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"implementation_","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"predictDeterministicAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"implementation_","type":"address"}],"name":"setImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tributaryRegistry_","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":"tributaryRegistry","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b50604051610f57380380610f5783398101604081905261002f916100c6565b600080546001600160a01b0319166001600160a01b03851690811782556040518592907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600280546001600160a01b039384166001600160a01b0319918216179091556003805492909316911617905550610109565b80516001600160a01b03811681146100c157600080fd5b919050565b6000806000606084860312156100db57600080fd5b6100e4846100aa565b92506100f2602085016100aa565b9150610100604085016100aa565b90509250925092565b610e3f806101186000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80638da5cb5b1161008c578063d6811b6f11610066578063d6811b6f14610199578063d784d426146101ac578063ed459df2146101bf578063f2fde38b146101d257600080fd5b80638da5cb5b146101545780638f32d59b14610167578063d321de731461018657600080fd5b80636a875c11116100bd5780636a875c1114610131578063715018a61461014457806379ba50971461014c57600080fd5b806323452b9c146100e4578063360d0fad146100ee5780635c60da1b1461011e575b600080fd5b6100ec6101e5565b005b6101016100fc366004610a0f565b610263565b6040516001600160a01b0390911681526020015b60405180910390f35b600254610101906001600160a01b031681565b61010161013f366004610b54565b6102e8565b6100ec61049b565b6100ec6104ff565b600054610101906001600160a01b031681565b6000546001600160a01b031633145b6040519015158152602001610115565b6100ec610194366004610ca2565b6105d4565b600354610101906001600160a01b031681565b6100ec6101ba366004610ca2565b6106ed565b6001546001600160a01b03163314610176565b6100ec6101e0366004610ca2565b610806565b6000546001600160a01b031633146102445760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e000000000000000060448201526064015b60405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19169055565b60006102df8383306040517f3d602d80600a3d3981f3363d3d373d3d3d363d730000000000000000000000008152606093841b60148201527f5af43d82803e903d91602b57fd5bf3ff000000000000000000000000000000006028820152921b6038830152604c8201526037808220606c830152605591012090565b90505b92915050565b600254604051600091610330916001600160a01b0390911690610315908f908e908e908990602001610d0a565b604051602081830303815290604052805190602001206108e5565b6040517f583c4cfe0000000000000000000000000000000000000000000000000000000081529091506001600160a01b0382169063583c4cfe90610388908f908e908e908e908e908e908e908e908d90600401610d50565b600060405180830381600087803b1580156103a257600080fd5b505af11580156103b6573d6000803e3d6000fd5b50506002546040516001600160a01b0391821693508482169250908f16907ffea1e5bf9c3183ceb56da220d209a9e345888dcb744760aa7b18f29edfb9df1490600090a46003546001600160a01b03161561048c576003546040517f3d2a6f770000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301528d8116602483015290911690633d2a6f7790604401600060405180830381600087803b15801561047357600080fd5b505af1158015610487573d6000803e3d6000fd5b505050505b9b9a5050505050505050505050565b6000546001600160a01b031633146104f55760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e0000000000000000604482015260640161023b565b6104fd61099c565b565b6001546001600160a01b0316331461057f5760405162461bcd60e51b815260206004820152602c60248201527f63757272656e74206f776e6572206d757374207365742063616c6c657220617360448201527f206e657874206f776e65722e0000000000000000000000000000000000000000606482015260840161023b565b6001805473ffffffffffffffffffffffffffffffffffffffff19908116909155600080543392168217815560405182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3565b6000546001600160a01b0316331461062e5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e0000000000000000604482015260640161023b565b6001600160a01b0381166106845760405162461bcd60e51b815260206004820152601b60248201527f6d75737420736574207472696275746172792072656769737472790000000000604482015260640161023b565b6003546040516001600160a01b038084169216907f756c03f5bcc6dd093cf5c568f68d0cb3f49a739c4f82dda11e7aaf6802f6590790600090a36003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b031633146107475760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e0000000000000000604482015260640161023b565b6001600160a01b03811661079d5760405162461bcd60e51b815260206004820152601760248201527f6d7573742073657420696d706c656d656e746174696f6e000000000000000000604482015260640161023b565b6002546040516001600160a01b038084169216907f1acacd74b878778c66cc2abd6987699d6602bfb4b7f244c64c6ed0d61054bb5e90600090a36002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b031633146108605760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e0000000000000000604482015260640161023b565b6001600160a01b0381166108b65760405162461bcd60e51b815260206004820152601f60248201527f4e657874206f776e657220697320746865207a65726f20616464726573732e00604482015260640161023b565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b60006040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528360601b60148201527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006028820152826037826000f59150506001600160a01b0381166102e25760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c6564000000000000000000604482015260640161023b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b80356001600160a01b0381168114610a0a57600080fd5b919050565b60008060408385031215610a2257600080fd5b610a2b836109f3565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112610a7957600080fd5b813567ffffffffffffffff80821115610a9457610a94610a39565b604051601f8301601f19908116603f01168101908282118183101715610abc57610abc610a39565b81604052838152866020858801011115610ad557600080fd5b836020870160208301376000602085830101528094505050505092915050565b600060408284031215610b0757600080fd5b6040516040810181811067ffffffffffffffff82111715610b2a57610b2a610a39565b604052823581526020928301359281019290925250919050565b80358015158114610a0a57600080fd5b60008060008060008060008060008060006101808c8e031215610b7657600080fd5b610b7f8c6109f3565b9a50610b8d60208d016109f3565b995067ffffffffffffffff8060408e01351115610ba957600080fd5b610bb98e60408f01358f01610a68565b99508060608e01351115610bcc57600080fd5b610bdc8e60608f01358f01610a68565b98508060808e01351115610bef57600080fd5b610bff8e60808f01358f01610a68565b97508060a08e01351115610c1257600080fd5b610c228e60a08f01358f01610a68565b96508060c08e01351115610c3557600080fd5b610c458e60c08f01358f01610a68565b95508060e08e01351115610c5857600080fd5b50610c698d60e08e01358e01610a68565b9350610c798d6101008e01610af5565b92506101408c01359150610c906101608d01610b44565b90509295989b509295989b9093969950565b600060208284031215610cb457600080fd5b6102df826109f3565b6000815180845260005b81811015610ce357602081850181015186830182015201610cc7565b81811115610cf5576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0385168152608060208201526000610d2c6080830186610cbd565b8281036040840152610d3e8186610cbd565b91505082606083015295945050505050565b60006101406001600160a01b038c168352806020840152610d738184018c610cbd565b90508281036040840152610d87818b610cbd565b90508281036060840152610d9b818a610cbd565b90508281036080840152610daf8189610cbd565b905082810360a0840152610dc38188610cbd565b905082810360c0840152610dd78187610cbd565b915050835160e08301526020840151610100830152610dfb61012083018415159052565b9a995050505050505050505056fea264697066735822122015cd97feb0dd921a956fd8833e5942d234ee2fe7aa8589947a82e66cf60f61a164736f6c634300080a00330000000000000000000000002330ee705ffd040bb0cba8cb7734dfe00e7c4b57000000000000000000000000e9aa761f39b117d3acc627eae3728c208458423b0000000000000000000000001171b858777120a59a6cc8148edda8982f187cd8

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100df5760003560e01c80638da5cb5b1161008c578063d6811b6f11610066578063d6811b6f14610199578063d784d426146101ac578063ed459df2146101bf578063f2fde38b146101d257600080fd5b80638da5cb5b146101545780638f32d59b14610167578063d321de731461018657600080fd5b80636a875c11116100bd5780636a875c1114610131578063715018a61461014457806379ba50971461014c57600080fd5b806323452b9c146100e4578063360d0fad146100ee5780635c60da1b1461011e575b600080fd5b6100ec6101e5565b005b6101016100fc366004610a0f565b610263565b6040516001600160a01b0390911681526020015b60405180910390f35b600254610101906001600160a01b031681565b61010161013f366004610b54565b6102e8565b6100ec61049b565b6100ec6104ff565b600054610101906001600160a01b031681565b6000546001600160a01b031633145b6040519015158152602001610115565b6100ec610194366004610ca2565b6105d4565b600354610101906001600160a01b031681565b6100ec6101ba366004610ca2565b6106ed565b6001546001600160a01b03163314610176565b6100ec6101e0366004610ca2565b610806565b6000546001600160a01b031633146102445760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e000000000000000060448201526064015b60405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19169055565b60006102df8383306040517f3d602d80600a3d3981f3363d3d373d3d3d363d730000000000000000000000008152606093841b60148201527f5af43d82803e903d91602b57fd5bf3ff000000000000000000000000000000006028820152921b6038830152604c8201526037808220606c830152605591012090565b90505b92915050565b600254604051600091610330916001600160a01b0390911690610315908f908e908e908990602001610d0a565b604051602081830303815290604052805190602001206108e5565b6040517f583c4cfe0000000000000000000000000000000000000000000000000000000081529091506001600160a01b0382169063583c4cfe90610388908f908e908e908e908e908e908e908e908d90600401610d50565b600060405180830381600087803b1580156103a257600080fd5b505af11580156103b6573d6000803e3d6000fd5b50506002546040516001600160a01b0391821693508482169250908f16907ffea1e5bf9c3183ceb56da220d209a9e345888dcb744760aa7b18f29edfb9df1490600090a46003546001600160a01b03161561048c576003546040517f3d2a6f770000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301528d8116602483015290911690633d2a6f7790604401600060405180830381600087803b15801561047357600080fd5b505af1158015610487573d6000803e3d6000fd5b505050505b9b9a5050505050505050505050565b6000546001600160a01b031633146104f55760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e0000000000000000604482015260640161023b565b6104fd61099c565b565b6001546001600160a01b0316331461057f5760405162461bcd60e51b815260206004820152602c60248201527f63757272656e74206f776e6572206d757374207365742063616c6c657220617360448201527f206e657874206f776e65722e0000000000000000000000000000000000000000606482015260840161023b565b6001805473ffffffffffffffffffffffffffffffffffffffff19908116909155600080543392168217815560405182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3565b6000546001600160a01b0316331461062e5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e0000000000000000604482015260640161023b565b6001600160a01b0381166106845760405162461bcd60e51b815260206004820152601b60248201527f6d75737420736574207472696275746172792072656769737472790000000000604482015260640161023b565b6003546040516001600160a01b038084169216907f756c03f5bcc6dd093cf5c568f68d0cb3f49a739c4f82dda11e7aaf6802f6590790600090a36003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b031633146107475760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e0000000000000000604482015260640161023b565b6001600160a01b03811661079d5760405162461bcd60e51b815260206004820152601760248201527f6d7573742073657420696d706c656d656e746174696f6e000000000000000000604482015260640161023b565b6002546040516001600160a01b038084169216907f1acacd74b878778c66cc2abd6987699d6602bfb4b7f244c64c6ed0d61054bb5e90600090a36002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b031633146108605760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e0000000000000000604482015260640161023b565b6001600160a01b0381166108b65760405162461bcd60e51b815260206004820152601f60248201527f4e657874206f776e657220697320746865207a65726f20616464726573732e00604482015260640161023b565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b60006040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528360601b60148201527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006028820152826037826000f59150506001600160a01b0381166102e25760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c6564000000000000000000604482015260640161023b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b80356001600160a01b0381168114610a0a57600080fd5b919050565b60008060408385031215610a2257600080fd5b610a2b836109f3565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112610a7957600080fd5b813567ffffffffffffffff80821115610a9457610a94610a39565b604051601f8301601f19908116603f01168101908282118183101715610abc57610abc610a39565b81604052838152866020858801011115610ad557600080fd5b836020870160208301376000602085830101528094505050505092915050565b600060408284031215610b0757600080fd5b6040516040810181811067ffffffffffffffff82111715610b2a57610b2a610a39565b604052823581526020928301359281019290925250919050565b80358015158114610a0a57600080fd5b60008060008060008060008060008060006101808c8e031215610b7657600080fd5b610b7f8c6109f3565b9a50610b8d60208d016109f3565b995067ffffffffffffffff8060408e01351115610ba957600080fd5b610bb98e60408f01358f01610a68565b99508060608e01351115610bcc57600080fd5b610bdc8e60608f01358f01610a68565b98508060808e01351115610bef57600080fd5b610bff8e60808f01358f01610a68565b97508060a08e01351115610c1257600080fd5b610c228e60a08f01358f01610a68565b96508060c08e01351115610c3557600080fd5b610c458e60c08f01358f01610a68565b95508060e08e01351115610c5857600080fd5b50610c698d60e08e01358e01610a68565b9350610c798d6101008e01610af5565b92506101408c01359150610c906101608d01610b44565b90509295989b509295989b9093969950565b600060208284031215610cb457600080fd5b6102df826109f3565b6000815180845260005b81811015610ce357602081850181015186830182015201610cc7565b81811115610cf5576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0385168152608060208201526000610d2c6080830186610cbd565b8281036040840152610d3e8186610cbd565b91505082606083015295945050505050565b60006101406001600160a01b038c168352806020840152610d738184018c610cbd565b90508281036040840152610d87818b610cbd565b90508281036060840152610d9b818a610cbd565b90508281036080840152610daf8189610cbd565b905082810360a0840152610dc38188610cbd565b905082810360c0840152610dd78187610cbd565b915050835160e08301526020840151610100830152610dfb61012083018415159052565b9a995050505050505050505056fea264697066735822122015cd97feb0dd921a956fd8833e5942d234ee2fe7aa8589947a82e66cf60f61a164736f6c634300080a0033

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

0000000000000000000000002330ee705ffd040bb0cba8cb7734dfe00e7c4b57000000000000000000000000e9aa761f39b117d3acc627eae3728c208458423b0000000000000000000000001171b858777120a59a6cc8148edda8982f187cd8

-----Decoded View---------------
Arg [0] : owner_ (address): 0x2330ee705fFD040bB0cbA8CB7734Dfe00E7C4b57
Arg [1] : implementation_ (address): 0xe9aA761F39B117d3ACC627Eae3728C208458423B
Arg [2] : tributaryRegistry_ (address): 0x1171B858777120a59a6cc8148eDda8982F187Cd8

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000002330ee705ffd040bb0cba8cb7734dfe00e7c4b57
Arg [1] : 000000000000000000000000e9aa761f39b117d3acc627eae3728c208458423b
Arg [2] : 0000000000000000000000001171b858777120a59a6cc8148edda8982f187cd8


Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.