ETH Price: $3,885.13 (-0.99%)

Contract

0x1556e8043903A020fcdc2B262189a4c510dd673D
 

Overview

ETH Balance

0.035 ETH

Eth Value

$135.98 (@ $3,885.13/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer From133361002021-10-01 22:19:481168 days ago1633126788IN
0x1556e804...510dd673D
0 ETH0.0042829780.76971943
Transfer From133217082021-09-29 16:18:541170 days ago1632932334IN
0x1556e804...510dd673D
0 ETH0.03316868625.50564071
Transfer From133170432021-09-28 22:51:431171 days ago1632869503IN
0x1556e804...510dd673D
0 ETH0.0036786369.37285376
Transfer From133046952021-09-27 0:36:101173 days ago1632702970IN
0x1556e804...510dd673D
0 ETH0.0025030249.0588011
Transfer From133046342021-09-27 0:24:411173 days ago1632702281IN
0x1556e804...510dd673D
0 ETH0.0034749768.0926353
Transfer From133043742021-09-26 23:25:121173 days ago1632698712IN
0x1556e804...510dd673D
0 ETH0.0025131747.39428809
Transfer From133043612021-09-26 23:22:111173 days ago1632698531IN
0x1556e804...510dd673D
0 ETH0.0023145643.64888619
Transfer From133043562021-09-26 23:20:031173 days ago1632698403IN
0x1556e804...510dd673D
0 ETH0.0026697535.6314146
Transfer From133042372021-09-26 22:57:251173 days ago1632697045IN
0x1556e804...510dd673D
0 ETH0.0025164849.31086424
Transfer From133042302021-09-26 22:56:231173 days ago1632696983IN
0x1556e804...510dd673D
0 ETH0.0027246153.38935114
Transfer From133042222021-09-26 22:54:531173 days ago1632696893IN
0x1556e804...510dd673D
0 ETH0.0042872974.14003856
Transfer From133042202021-09-26 22:53:591173 days ago1632696839IN
0x1556e804...510dd673D
0 ETH0.0039407768.14767365
Transfer From133042182021-09-26 22:53:441173 days ago1632696824IN
0x1556e804...510dd673D
0 ETH0.0039967469.11559614
Transfer From133042042021-09-26 22:49:331173 days ago1632696573IN
0x1556e804...510dd673D
0 ETH0.0031265858.96203931
Transfer From133039202021-09-26 21:46:281173 days ago1632692788IN
0x1556e804...510dd673D
0 ETH0.0046023267.54919345
Transfer From133037422021-09-26 21:07:191173 days ago1632690439IN
0x1556e804...510dd673D
0 ETH0.0032857561.96388687
Transfer From133034552021-09-26 20:00:081173 days ago1632686408IN
0x1556e804...510dd673D
0 ETH0.0038740375.91235025
Transfer From133031172021-09-26 18:45:081173 days ago1632681908IN
0x1556e804...510dd673D
0 ETH0.0039226557.57355296
Transfer From133029852021-09-26 18:18:001173 days ago1632680280IN
0x1556e804...510dd673D
0 ETH0.0027232453.36250376
Transfer From133029142021-09-26 18:04:191173 days ago1632679459IN
0x1556e804...510dd673D
0 ETH0.0031599261.9192424
Transfer From133028732021-09-26 17:54:581173 days ago1632678898IN
0x1556e804...510dd673D
0 ETH0.0025053349.09247082
Transfer From133028472021-09-26 17:50:301173 days ago1632678630IN
0x1556e804...510dd673D
0 ETH0.002473148.46097209
Transfer From133028092021-09-26 17:43:201173 days ago1632678200IN
0x1556e804...510dd673D
0 ETH0.0027365953.62399377
Transfer From133027162021-09-26 17:21:331173 days ago1632676893IN
0x1556e804...510dd673D
0 ETH0.0038434856.41147368
Transfer From133026942021-09-26 17:17:091173 days ago1632676629IN
0x1556e804...510dd673D
0 ETH0.0025611550.18625871
View all transactions

Latest 5 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
131283642021-08-30 17:57:381200 days ago1630346258
0x1556e804...510dd673D
76.05 ETH
131283642021-08-30 17:57:381200 days ago1630346258
0x1556e804...510dd673D
1.95 ETH
131277982021-08-30 15:48:111200 days ago1630338491
0x1556e804...510dd673D
1.95 ETH
131277982021-08-30 15:48:111200 days ago1630338491
0x1556e804...510dd673D
0.05 ETH
131242812021-08-30 2:56:191201 days ago1630292179  Contract Creation0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
AllocatedEditionsProxy

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
Yes with 2000 runs

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

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

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

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

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

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

        emit Upgraded(implementation);

        proxyRegistry = proxyRegistry_;

        bytes memory nftMetaData;
        bytes memory adminData;

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

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

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

        if (allocation > 0) {
            nextTokenId = allocation;

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

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

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

    receive() external payable {}
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

File 5 of 10 : Governable.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 Governable is Ownable, IGovernable {
    // ============ Mutable Storage ============

    // Mirror governance contract.
    address public override governor;

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

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

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

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

    constructor(address owner_) Ownable(owner_) {}

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

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

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

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

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

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

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

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

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

    // Modifiers

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

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

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

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

    function _pause() internal whenNotPaused {
        paused = true;

        emit Paused(msg.sender);
    }

    function _unpause() internal whenPaused {
        paused = false;

        emit Unpaused(msg.sender);
    }
}

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

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

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

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

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

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

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

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

    function approve(address to, uint256 tokenId) external;

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

    function setApprovalForAll(address operator, bool _approved) external;

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

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

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

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

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

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

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

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

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

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

contract Ownable {
    address public owner;
    address private nextOwner;

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

    // modifiers

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

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

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

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

        nextOwner = nextOwner_;
    }

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

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

        owner = msg.sender;

        emit OwnershipTransferred(owner, msg.sender);
    }

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

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

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

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

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

interface IGovernable {
    function changeGovernor(address governor_) external;

    function isGovernor() external view returns (bool);

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

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

Contract Security Audit

Contract ABI

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

60806040526000600b553480156200001657600080fd5b506040516200113b3803806200113b833981016040819052620000399162000566565b601480546001600160a01b0319166001600160a01b03841690811790915560405160019184918291906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3505080601660146101000a81548160ff021916908315150217905550506000336001600160a01b031663d7dfa0dd6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015620000e557600080fd5b505af1158015620000fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001209190620004cb565b9050807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55806001600160a01b03167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a2601380546001600160a01b0319166001600160a01b03841617905560408051630890357360e41b8152905160609182913391638903573091600480830192600092919082900301818387803b158015620001d457600080fd5b505af1158015620001e9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620002139190810190620005a5565b600491909155600391909155600291909155815191935091506200024190830160209081019084016200062c565b6001819055815160179060009060189082906200026590829060208901906200036e565b505085516200027a919060208801906200036e565b505084516200028f919060208701906200036e565b505050505080806020019051810190620002aa9190620004f2565b600980546001600160a01b03199081166001600160a01b03938416179091556008929092556007805483169382169390931790925560068054821693831693909317909255600580549092169216919091179055600254156200036357600254600a8190556005546001600160a01b03169060009081907fdeaa91b6123d068f5821d0fb0678463d1a8a6079fe8af5de3ce5e896dcf9133d906200035190600190620006c5565b60405190815260200160405180910390a45b505050505062000757565b8280546200037c90620006eb565b90600052602060002090601f016020900481019282620003a05760008555620003eb565b82601f10620003bb57805160ff1916838001178555620003eb565b82800160010185558215620003eb579182015b82811115620003eb578251825591602001919060010190620003ce565b50620003f9929150620003fd565b5090565b5b80821115620003f95760008155600101620003fe565b600082601f8301126200042657600080fd5b81516001600160401b038082111562000443576200044362000728565b604051601f8301601f19908116603f011681019082821181831017156200046e576200046e62000728565b816040528381526020925086838588010111156200048b57600080fd5b600091505b83821015620004af578582018301518183018401529082019062000490565b83821115620004c15760008385830101525b9695505050505050565b600060208284031215620004de57600080fd5b8151620004eb816200073e565b9392505050565b600080600080600060a086880312156200050b57600080fd5b855162000518816200073e565b60208701519095506200052b816200073e565b60408701519094506200053e816200073e565b60608701516080880151919450925062000558816200073e565b809150509295509295909350565b600080604083850312156200057a57600080fd5b825162000587816200073e565b60208401519092506200059a816200073e565b809150509250929050565b600080600080600060a08688031215620005be57600080fd5b85516001600160401b0380821115620005d657600080fd5b620005e489838a0162000414565b965060208801519550604088015194506060880151935060808801519150808211156200061057600080fd5b506200061f8882890162000414565b9150509295509295909350565b600080600080608085870312156200064357600080fd5b84516001600160401b03808211156200065b57600080fd5b620006698883890162000414565b955060208701519150808211156200068057600080fd5b6200068e8883890162000414565b94506040870151915080821115620006a557600080fd5b50620006b48782880162000414565b606096909601519497939650505050565b600082821015620006e657634e487b7160e01b600052601160045260246000fd5b500390565b600181811c908216806200070057607f821691505b602082108114156200072257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146200075457600080fd5b50565b6109d480620007676000396000f3fe6080604052600436106101795760003560e01c806388a17bde116100cb578063b50cbd9f1161007f578063e4c0aaf411610059578063e4c0aaf414610426578063ed459df214610446578063f2fde38b1461046657610180565b8063b50cbd9f146103c6578063c7af3352146103e6578063d7dfa0dd1461040657610180565b80638f32d59b116100b05780638f32d59b1461037b57806395d89b411461039b578063a035b1fe146103b057610180565b806388a17bde146103455780638da5cb5b1461035b57610180565b80632704f9b41161012d5780636c0360eb116101075780636c0360eb14610306578063715018a61461031b57806379ba50971461033057610180565b80632704f9b414610284578063570ca735146102a45780635c975abb146102c457610180565b806317fc45e21161015e57806317fc45e2146102295780631bb534ba1461024d57806323452b9c1461026d57610180565b806306fdde03146101c65780630c340a24146101f157610180565b3661018057005b604051366000823760008036837f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af43d806000843e8180156101c2578184f35b8184fd5b3480156101d257600080fd5b506101db610486565b6040516101e891906108d7565b60405180910390f35b3480156101fd57600080fd5b50601654610211906001600160a01b031681565b6040516001600160a01b0390911681526020016101e8565b34801561023557600080fd5b5061023f60035481565b6040519081526020016101e8565b34801561025957600080fd5b50600754610211906001600160a01b031681565b34801561027957600080fd5b50610282610514565b005b34801561029057600080fd5b50600654610211906001600160a01b031681565b3480156102b057600080fd5b50600554610211906001600160a01b031681565b3480156102d057600080fd5b506016546102f69074010000000000000000000000000000000000000000900460ff1681565b60405190151581526020016101e8565b34801561031257600080fd5b506101db610592565b34801561032757600080fd5b5061028261059f565b34801561033c57600080fd5b50610282610645565b34801561035157600080fd5b5061023f60025481565b34801561036757600080fd5b50601454610211906001600160a01b031681565b34801561038757600080fd5b506014546001600160a01b031633146102f6565b3480156103a757600080fd5b506101db61071d565b3480156103bc57600080fd5b5061023f60045481565b3480156103d257600080fd5b50601354610211906001600160a01b031681565b3480156103f257600080fd5b506016546001600160a01b031633146102f6565b34801561041257600080fd5b50601254610211906001600160a01b031681565b34801561043257600080fd5b506102826104413660046108a7565b61072a565b34801561045257600080fd5b506015546001600160a01b031633146102f6565b34801561047257600080fd5b506102826104813660046108a7565b6107c8565b601780546104939061094a565b80601f01602080910402602001604051908101604052809291908181526020018280546104bf9061094a565b801561050c5780601f106104e15761010080835404028352916020019161050c565b820191906000526020600020905b8154815290600101906020018083116104ef57829003601f168201915b505050505081565b6014546001600160a01b031633146105735760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e000000000000000060448201526064015b60405180910390fd5b6015805473ffffffffffffffffffffffffffffffffffffffff19169055565b600080546104939061094a565b6014546001600160a01b031633146105f95760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e0000000000000000604482015260640161056a565b6014805473ffffffffffffffffffffffffffffffffffffffff1916905560405160009081907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6015546001600160a01b031633146106c55760405162461bcd60e51b815260206004820152602c60248201527f63757272656e74206f776e6572206d757374207365742063616c6c657220617360448201527f206e657874206f776e65722e0000000000000000000000000000000000000000606482015260840161056a565b6015805473ffffffffffffffffffffffffffffffffffffffff19908116909155601480543392168217905560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3565b601880546104939061094a565b6014546001600160a01b031633148061074d57506016546001600160a01b031633145b6107995760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e63650000000000000000604482015260640161056a565b6016805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6014546001600160a01b031633146108225760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e0000000000000000604482015260640161056a565b6001600160a01b0381166108785760405162461bcd60e51b815260206004820152601f60248201527f4e657874206f776e657220697320746865207a65726f20616464726573732e00604482015260640161056a565b6015805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000602082840312156108b957600080fd5b81356001600160a01b03811681146108d057600080fd5b9392505050565b600060208083528351808285015260005b81811015610904578581018301518582016040015282016108e8565b81811115610916576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600181811c9082168061095e57607f821691505b60208210811415610998577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea26469706673582212209717985960ad7c863c837b456edd091ebf93838dce2a6077e7410c5316afcf4a64736f6c63430008060033000000000000000000000000467aadc88d99b4e978a8d3d4f0a9017dcaecaabf000000000000000000000000a5409ec958c83c3f309868babaca7c86dcb077c1

Deployed Bytecode

0x6080604052600436106101795760003560e01c806388a17bde116100cb578063b50cbd9f1161007f578063e4c0aaf411610059578063e4c0aaf414610426578063ed459df214610446578063f2fde38b1461046657610180565b8063b50cbd9f146103c6578063c7af3352146103e6578063d7dfa0dd1461040657610180565b80638f32d59b116100b05780638f32d59b1461037b57806395d89b411461039b578063a035b1fe146103b057610180565b806388a17bde146103455780638da5cb5b1461035b57610180565b80632704f9b41161012d5780636c0360eb116101075780636c0360eb14610306578063715018a61461031b57806379ba50971461033057610180565b80632704f9b414610284578063570ca735146102a45780635c975abb146102c457610180565b806317fc45e21161015e57806317fc45e2146102295780631bb534ba1461024d57806323452b9c1461026d57610180565b806306fdde03146101c65780630c340a24146101f157610180565b3661018057005b604051366000823760008036837f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af43d806000843e8180156101c2578184f35b8184fd5b3480156101d257600080fd5b506101db610486565b6040516101e891906108d7565b60405180910390f35b3480156101fd57600080fd5b50601654610211906001600160a01b031681565b6040516001600160a01b0390911681526020016101e8565b34801561023557600080fd5b5061023f60035481565b6040519081526020016101e8565b34801561025957600080fd5b50600754610211906001600160a01b031681565b34801561027957600080fd5b50610282610514565b005b34801561029057600080fd5b50600654610211906001600160a01b031681565b3480156102b057600080fd5b50600554610211906001600160a01b031681565b3480156102d057600080fd5b506016546102f69074010000000000000000000000000000000000000000900460ff1681565b60405190151581526020016101e8565b34801561031257600080fd5b506101db610592565b34801561032757600080fd5b5061028261059f565b34801561033c57600080fd5b50610282610645565b34801561035157600080fd5b5061023f60025481565b34801561036757600080fd5b50601454610211906001600160a01b031681565b34801561038757600080fd5b506014546001600160a01b031633146102f6565b3480156103a757600080fd5b506101db61071d565b3480156103bc57600080fd5b5061023f60045481565b3480156103d257600080fd5b50601354610211906001600160a01b031681565b3480156103f257600080fd5b506016546001600160a01b031633146102f6565b34801561041257600080fd5b50601254610211906001600160a01b031681565b34801561043257600080fd5b506102826104413660046108a7565b61072a565b34801561045257600080fd5b506015546001600160a01b031633146102f6565b34801561047257600080fd5b506102826104813660046108a7565b6107c8565b601780546104939061094a565b80601f01602080910402602001604051908101604052809291908181526020018280546104bf9061094a565b801561050c5780601f106104e15761010080835404028352916020019161050c565b820191906000526020600020905b8154815290600101906020018083116104ef57829003601f168201915b505050505081565b6014546001600160a01b031633146105735760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e000000000000000060448201526064015b60405180910390fd5b6015805473ffffffffffffffffffffffffffffffffffffffff19169055565b600080546104939061094a565b6014546001600160a01b031633146105f95760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e0000000000000000604482015260640161056a565b6014805473ffffffffffffffffffffffffffffffffffffffff1916905560405160009081907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6015546001600160a01b031633146106c55760405162461bcd60e51b815260206004820152602c60248201527f63757272656e74206f776e6572206d757374207365742063616c6c657220617360448201527f206e657874206f776e65722e0000000000000000000000000000000000000000606482015260840161056a565b6015805473ffffffffffffffffffffffffffffffffffffffff19908116909155601480543392168217905560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3565b601880546104939061094a565b6014546001600160a01b031633148061074d57506016546001600160a01b031633145b6107995760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e63650000000000000000604482015260640161056a565b6016805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6014546001600160a01b031633146108225760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e0000000000000000604482015260640161056a565b6001600160a01b0381166108785760405162461bcd60e51b815260206004820152601f60248201527f4e657874206f776e657220697320746865207a65726f20616464726573732e00604482015260640161056a565b6015805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000602082840312156108b957600080fd5b81356001600160a01b03811681146108d057600080fd5b9392505050565b600060208083528351808285015260005b81811015610904578581018301518582016040015282016108e8565b81811115610916576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600181811c9082168061095e57607f821691505b60208210811415610998577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea26469706673582212209717985960ad7c863c837b456edd091ebf93838dce2a6077e7410c5316afcf4a64736f6c63430008060033

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

000000000000000000000000467aadc88d99b4e978a8d3d4f0a9017dcaecaabf000000000000000000000000a5409ec958c83c3f309868babaca7c86dcb077c1

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

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


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.