ETH Price: $1,975.82 (+0.69%)
 

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Amount:Between 1-100
Reset Filter

Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

Amount:Between 1-100
Reset Filter

Showing the last 25 internal transactions (View Advanced Filter)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer150969892022-07-07 18:18:491325 days ago1657217929
Mirror: Treasury
1 ETH
Transfer150364172022-06-27 21:38:011335 days ago1656365881
Mirror: Treasury
1 ETH
-148443072022-05-25 21:58:481368 days ago1653515928
Mirror: Treasury
36.54900207 ETH
-146231582022-04-20 17:08:581403 days ago1650474538
Mirror: Treasury
2.625 ETH
-146196742022-04-20 4:07:351404 days ago1650427655
Mirror: Treasury
5.77137877 ETH
-143416282022-03-07 19:30:161447 days ago1646681416
Mirror: Treasury
3.75 ETH
-142852592022-02-27 1:30:001456 days ago1645925400
Mirror: Treasury
5.14747627 ETH
-142073072022-02-14 23:51:241468 days ago1644882684
Mirror: Treasury
1.25 ETH
-140719842022-01-25 2:01:331489 days ago1643076093
Mirror: Treasury
4.31769525 ETH
-140453182022-01-20 22:58:411493 days ago1642719521
Mirror: Treasury
4.8 ETH
-140065022022-01-14 23:07:481499 days ago1642201668
Mirror: Treasury
1.6 ETH
-140059012022-01-14 20:55:091499 days ago1642193709
Mirror: Treasury
3.375 ETH
-136974622021-11-27 17:46:511547 days ago1638035211
Mirror: Treasury
25.0051277 ETH
-136790792021-11-24 19:33:001550 days ago1637782380
Mirror: Treasury
1.014475 ETH
-136471112021-11-19 18:24:081555 days ago1637346248
Mirror: Treasury
2.85 ETH
-136469912021-11-19 17:52:411555 days ago1637344361
Mirror: Treasury
7.36875 ETH
-136415552021-11-18 20:44:461556 days ago1637268286
Mirror: Treasury
2.625 ETH
-136294492021-11-16 23:20:151558 days ago1637104815
Mirror: Treasury
1.875 ETH
-136239902021-11-16 2:24:081559 days ago1637029448
Mirror: Treasury
6 ETH
-135845642021-11-09 21:30:371565 days ago1636493437
Mirror: Treasury
1.125 ETH
-135633262021-11-06 13:50:221568 days ago1636206622
Mirror: Treasury
4.125 ETH
-135132292021-10-29 17:03:001576 days ago1635526980
Mirror: Treasury
1.01875 ETH
-134686152021-10-22 17:00:141583 days ago1634922014
Mirror: Treasury
12.75 ETH
-134686022021-10-22 16:56:041583 days ago1634921764
Mirror: Treasury
25.375 ETH
-134685802021-10-22 16:51:211583 days ago1634921481
Mirror: Treasury
1 ETH
VIEW ADVANCED FILTER
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:
MirrorTreasury

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
Yes with 2000 runs

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

import {IDistributionLogic} from "../distribution/interface/IDistributionLogic.sol";
import {ITributaryRegistry} from "../interface/ITributaryRegistry.sol";
import {ITreasuryConfig} from "../interface/ITreasuryConfig.sol";
import {IMirrorTreasury} from "../interface/IMirrorTreasury.sol";
import {Governable} from "../lib/Governable.sol";

interface IERC20 {
    function transfer(address to, uint256 value) external returns (bool);
}

contract MirrorTreasury is IMirrorTreasury, Governable {
    // ============ Treasury Configuration ============

    // Used to pull the active distribution model.
    address public treasuryConfig;

    // ============ Tributary Registry ============

    // Used to find tributary addresses associated with Economic Producers.
    address public tributaryRegistry;

    // ============ Structs ============

    // Allows governance to execute generic functions.
    struct Call {
        // The target of the transaction.
        address target;
        // The value passed into the transaction.
        uint96 value;
        // Any data passed with the call.
        bytes data;
    }

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

    // Emitted when the treasury transfers ETH.
    event Transfer(address indexed from, address indexed to, uint256 value);
    // Emitted when the treasury transfers an ERC20 token.
    event ERC20Transfer(
        address indexed token,
        address indexed from,
        address indexed to,
        uint256 amount
    );

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

    // NOTE: Once deployed, tributaryRegistry and treasuryConfig should be set.
    constructor(address owner_) Governable(owner_) {}

    // ============ Treasury Contributions ============

    /**
     * A safe, public function for making contributions to the treasury.
     * If a tributary is registered for the contributor, then governance
     * tokens will be allocated according to the active distribution model.
     */
    function contribute(uint256 amount) public payable override {
        require(msg.value == amount, "msg.value != amount");
        _allocateGovernance(msg.sender, amount);
    }

    // Allows directly contributing with a specify treasury, but the sender
    // must be registered as a "singleton producer" - e.g. auctions house.
    function contributeWithTributary(address tributary)
        public
        payable
        override
    {
        // Here we don't revert, but instead just don't allocate goverance
        // if the call isn't registered as an economic producer.
        if (
            ITributaryRegistry(tributaryRegistry).singletonProducer(msg.sender)
        ) {
            _allocateGovernanceToTributary(tributary, msg.value);
        }
    }

    /**
     * Allows receiving ETH, and can mint treasury governance tokens in
     * exchange. Uses a registry to specify which addresses are allowed
     * to receive gov tokens in exchange for contributing ETH.
     */
    receive() external payable {
        _allocateGovernance(msg.sender, msg.value);
    }

    // ============ Treasury Configuration ============

    function setTreasuryConfig(address treasuryConfig_) public onlyGovernance {
        treasuryConfig = treasuryConfig_;
    }

    // ============ Tributary Registry Configuration ============

    function setTributaryRegistry(address tributaryRegistry_)
        public
        onlyGovernance
    {
        tributaryRegistry = tributaryRegistry_;
    }

    // ============ Funds Administration ============

    function transferFunds(address payable to, uint256 value)
        external
        override
        onlyGovernance
    {
        _sendFunds(to, value);
        emit Transfer(address(this), to, value);
    }

    function transferERC20(
        address token,
        address to,
        uint256 amount
    ) external override onlyGovernance {
        IERC20(token).transfer(to, amount);
        emit ERC20Transfer(token, address(this), to, amount);
    }

    // ============ Generic Call Execution ============

    function executeGeneric(Call memory call) public onlyGovernance {
        (bool ok, ) = call.target.call{value: uint256(call.value)}(call.data);

        require(ok, "execute transaction failed");
    }

    // ============ Private Utils ============

    function _sendFunds(address payable recipient, uint256 amount) private {
        require(
            address(this).balance >= amount,
            "Insufficient balance for send"
        );

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Unable to send value: recipient may have reverted");
    }

    function _allocateGovernance(address producer, uint256 amount) private {
        // Get the tributary that was registered for the given producer.
        address tributary = ITributaryRegistry(tributaryRegistry)
            .producerToTributary(producer);

        _allocateGovernanceToTributary(tributary, amount);
    }

    function _allocateGovernanceToTributary(address tributary, uint256 amount)
        private
    {
        // If there is a registered tributary to mint Mirror tokens for,
        // then, here, we go and mint those tokens! Else, just accept ETH, no sweat.
        if (tributary != address(0)) {
            address distributionModel = ITreasuryConfig(treasuryConfig)
                .distributionModel();

            IDistributionLogic(distributionModel).distribute(tributary, amount);
        }
    }
}

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

interface IDistributionLogic {
    function version() external returns (uint256);

    function distribute(address tributary, uint256 contribution) external;

    function claim(address claimant) external;

    function claimable(address claimant) external view returns (uint256);

    function increaseAwards(address member, uint256 amount) external;
}

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

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

interface ITreasuryConfig {
    function treasury() external returns (address payable);

    function distributionModel() external returns (address);
}

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

interface IMirrorTreasury {
    function transferFunds(address payable to, uint256 value) external;

    function transferERC20(
        address token,
        address to,
        uint256 value
    ) external;

    function contributeWithTributary(address tributary) external payable;

    function contribute(uint256 amount) external payable;
}

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

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

// 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

API
[{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ERC20Transfer","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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"contribute","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"tributary","type":"address"}],"name":"contributeWithTributary","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint96","name":"value","type":"uint96"},{"internalType":"bytes","name":"data","type":"bytes"}],"internalType":"struct MirrorTreasury.Call","name":"call","type":"tuple"}],"name":"executeGeneric","outputs":[],"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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"treasuryConfig_","type":"address"}],"name":"setTreasuryConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tributaryRegistry_","type":"address"}],"name":"setTributaryRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFunds","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"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b5060405161135e38038061135e83398101604081905261002f91610081565b600080546001600160a01b0319166001600160a01b038316908117825560405183928392917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35050506100b1565b60006020828403121561009357600080fd5b81516001600160a01b03811681146100aa57600080fd5b9392505050565b61129e806100c06000396000f3fe6080604052600436106101485760003560e01c8063c1cbbca7116100c0578063e4c0aaf411610074578063ed459df211610059578063ed459df21461034c578063f1fe16631461036c578063f2fde38b1461038c57600080fd5b8063e4c0aaf414610319578063e75cb3021461033957600080fd5b8063cfd7b0df116100a5578063cfd7b0df146102b9578063d321de73146102d9578063d6811b6f146102f957600080fd5b8063c1cbbca714610286578063c7af33521461029957600080fd5b806379ba5097116101175780638f32d59b116100fc5780638f32d59b1461021a578063990dc9db146102465780639db5dbe41461026657600080fd5b806379ba5097146101e55780638da5cb5b146101fa57600080fd5b806303f411191461015e5780630c340a241461017e57806323452b9c146101bb578063715018a6146101d057600080fd5b366101595761015733346103ac565b005b600080fd5b34801561016a57600080fd5b5061015761017936600461107e565b61045b565b34801561018a57600080fd5b5060025461019e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101c757600080fd5b5061015761059b565b3480156101dc57600080fd5b50610157610614565b3480156101f157600080fd5b506101576106b7565b34801561020657600080fd5b5060005461019e906001600160a01b031681565b34801561022657600080fd5b506000546001600160a01b031633145b60405190151581526020016101b2565b34801561025257600080fd5b50610157610261366004610fef565b61078c565b34801561027257600080fd5b5061015761028136600461101b565b610849565b610157610294366004611176565b6109b0565b3480156102a557600080fd5b506002546001600160a01b03163314610236565b3480156102c557600080fd5b5060035461019e906001600160a01b031681565b3480156102e557600080fd5b506101576102f4366004610fae565b610a0c565b34801561030557600080fd5b5060045461019e906001600160a01b031681565b34801561032557600080fd5b50610157610334366004610fae565b610aaa565b610157610347366004610fae565b610b48565b34801561035857600080fd5b506001546001600160a01b03163314610236565b34801561037857600080fd5b50610157610387366004610fae565b610bee565b34801561039857600080fd5b506101576103a7366004610fae565b610c8c565b600480546040517fa57518560000000000000000000000000000000000000000000000000000000081526001600160a01b03858116938201939093526000929091169063a575185690602401602060405180830381600087803b15801561041257600080fd5b505af1158015610426573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044a9190610fd2565b90506104568183610d6b565b505050565b6000546001600160a01b031633148061047e57506002546001600160a01b031633145b6104cf5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e6365000000000000000060448201526064015b60405180910390fd5b600081600001516001600160a01b031682602001516bffffffffffffffffffffffff168360400151604051610504919061118f565b60006040518083038185875af1925050503d8060008114610541576040519150601f19603f3d011682016040523d82523d6000602084013e610546565b606091505b50509050806105975760405162461bcd60e51b815260206004820152601a60248201527f65786563757465207472616e73616374696f6e206661696c656400000000000060448201526064016104c6565b5050565b6000546001600160a01b031633146105f55760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e000000000000000060448201526064016104c6565b6001805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b0316331461066e5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e000000000000000060448201526064016104c6565b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6001546001600160a01b031633146107375760405162461bcd60e51b815260206004820152602c60248201527f63757272656e74206f776e6572206d757374207365742063616c6c657220617360448201527f206e657874206f776e65722e000000000000000000000000000000000000000060648201526084016104c6565b6001805473ffffffffffffffffffffffffffffffffffffffff19908116909155600080543392168217815560405182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3565b6000546001600160a01b03163314806107af57506002546001600160a01b031633145b6107fb5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e6365000000000000000060448201526064016104c6565b6108058282610e95565b6040518181526001600160a01b0383169030907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6000546001600160a01b031633148061086c57506002546001600160a01b031633145b6108b85760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e6365000000000000000060448201526064016104c6565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401602060405180830381600087803b15801561091b57600080fd5b505af115801561092f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610953919061105c565b50816001600160a01b0316306001600160a01b0316846001600160a01b03167f16e1b64802081839623a4bec223b20b6ee097d9edd8fcef3d4ceb3a94271306e846040516109a391815260200190565b60405180910390a4505050565b8034146109ff5760405162461bcd60e51b815260206004820152601360248201527f6d73672e76616c756520213d20616d6f756e740000000000000000000000000060448201526064016104c6565b610a0933826103ac565b50565b6000546001600160a01b0316331480610a2f57506002546001600160a01b031633145b610a7b5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e6365000000000000000060448201526064016104c6565b6004805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b0316331480610acd57506002546001600160a01b031633145b610b195760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e6365000000000000000060448201526064016104c6565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b600480546040517fad0a44a100000000000000000000000000000000000000000000000000000000815233928101929092526001600160a01b03169063ad0a44a190602401602060405180830381600087803b158015610ba757600080fd5b505af1158015610bbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bdf919061105c565b15610a0957610a098134610d6b565b6000546001600160a01b0316331480610c1157506002546001600160a01b031633145b610c5d5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e6365000000000000000060448201526064016104c6565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610ce65760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e000000000000000060448201526064016104c6565b6001600160a01b038116610d3c5760405162461bcd60e51b815260206004820152601f60248201527f4e657874206f776e657220697320746865207a65726f20616464726573732e0060448201526064016104c6565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b0382161561059757600354604080517f3174044800000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691633174044891600480830192602092919082900301818787803b158015610dd957600080fd5b505af1158015610ded573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e119190610fd2565b6040517ffb9321080000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018590529192509082169063fb93210890604401600060405180830381600087803b158015610e7857600080fd5b505af1158015610e8c573d6000803e3d6000fd5b50505050505050565b80471015610ee55760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e742062616c616e636520666f722073656e6400000060448201526064016104c6565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610f32576040519150601f19603f3d011682016040523d82523d6000602084013e610f37565b606091505b50509050806104565760405162461bcd60e51b815260206004820152603160248201527f556e61626c6520746f2073656e642076616c75653a20726563697069656e742060448201527f6d6179206861766520726576657274656400000000000000000000000000000060648201526084016104c6565b600060208284031215610fc057600080fd5b8135610fcb81611253565b9392505050565b600060208284031215610fe457600080fd5b8151610fcb81611253565b6000806040838503121561100257600080fd5b823561100d81611253565b946020939093013593505050565b60008060006060848603121561103057600080fd5b833561103b81611253565b9250602084013561104b81611253565b929592945050506040919091013590565b60006020828403121561106e57600080fd5b81518015158114610fcb57600080fd5b6000602080838503121561109157600080fd5b823567ffffffffffffffff808211156110a957600080fd5b90840190606082870312156110bd57600080fd5b6110c56111ca565b82356110d081611253565b8152828401356bffffffffffffffffffffffff811681146110f057600080fd5b8185015260408301358281111561110657600080fd5b80840193505086601f84011261111b57600080fd5b82358281111561112d5761112d611224565b61113f85601f19601f840116016111f3565b9250808352878582860101111561115557600080fd5b80858501868501376000908301909401939093526040830152509392505050565b60006020828403121561118857600080fd5b5035919050565b6000825160005b818110156111b05760208186018101518583015201611196565b818111156111bf576000828501525b509190910192915050565b6040516060810167ffffffffffffffff811182821017156111ed576111ed611224565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561121c5761121c611224565b604052919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6001600160a01b0381168114610a0957600080fdfea26469706673582212207f68092614ab73a35f04d9e9a58f6d3ded23fabc603aba3f1de5fc1cc61c3eef64736f6c634300080600330000000000000000000000002330ee705ffd040bb0cba8cb7734dfe00e7c4b57

Deployed Bytecode

0x6080604052600436106101485760003560e01c8063c1cbbca7116100c0578063e4c0aaf411610074578063ed459df211610059578063ed459df21461034c578063f1fe16631461036c578063f2fde38b1461038c57600080fd5b8063e4c0aaf414610319578063e75cb3021461033957600080fd5b8063cfd7b0df116100a5578063cfd7b0df146102b9578063d321de73146102d9578063d6811b6f146102f957600080fd5b8063c1cbbca714610286578063c7af33521461029957600080fd5b806379ba5097116101175780638f32d59b116100fc5780638f32d59b1461021a578063990dc9db146102465780639db5dbe41461026657600080fd5b806379ba5097146101e55780638da5cb5b146101fa57600080fd5b806303f411191461015e5780630c340a241461017e57806323452b9c146101bb578063715018a6146101d057600080fd5b366101595761015733346103ac565b005b600080fd5b34801561016a57600080fd5b5061015761017936600461107e565b61045b565b34801561018a57600080fd5b5060025461019e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101c757600080fd5b5061015761059b565b3480156101dc57600080fd5b50610157610614565b3480156101f157600080fd5b506101576106b7565b34801561020657600080fd5b5060005461019e906001600160a01b031681565b34801561022657600080fd5b506000546001600160a01b031633145b60405190151581526020016101b2565b34801561025257600080fd5b50610157610261366004610fef565b61078c565b34801561027257600080fd5b5061015761028136600461101b565b610849565b610157610294366004611176565b6109b0565b3480156102a557600080fd5b506002546001600160a01b03163314610236565b3480156102c557600080fd5b5060035461019e906001600160a01b031681565b3480156102e557600080fd5b506101576102f4366004610fae565b610a0c565b34801561030557600080fd5b5060045461019e906001600160a01b031681565b34801561032557600080fd5b50610157610334366004610fae565b610aaa565b610157610347366004610fae565b610b48565b34801561035857600080fd5b506001546001600160a01b03163314610236565b34801561037857600080fd5b50610157610387366004610fae565b610bee565b34801561039857600080fd5b506101576103a7366004610fae565b610c8c565b600480546040517fa57518560000000000000000000000000000000000000000000000000000000081526001600160a01b03858116938201939093526000929091169063a575185690602401602060405180830381600087803b15801561041257600080fd5b505af1158015610426573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044a9190610fd2565b90506104568183610d6b565b505050565b6000546001600160a01b031633148061047e57506002546001600160a01b031633145b6104cf5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e6365000000000000000060448201526064015b60405180910390fd5b600081600001516001600160a01b031682602001516bffffffffffffffffffffffff168360400151604051610504919061118f565b60006040518083038185875af1925050503d8060008114610541576040519150601f19603f3d011682016040523d82523d6000602084013e610546565b606091505b50509050806105975760405162461bcd60e51b815260206004820152601a60248201527f65786563757465207472616e73616374696f6e206661696c656400000000000060448201526064016104c6565b5050565b6000546001600160a01b031633146105f55760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e000000000000000060448201526064016104c6565b6001805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b0316331461066e5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e000000000000000060448201526064016104c6565b6000805473ffffffffffffffffffffffffffffffffffffffff1916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6001546001600160a01b031633146107375760405162461bcd60e51b815260206004820152602c60248201527f63757272656e74206f776e6572206d757374207365742063616c6c657220617360448201527f206e657874206f776e65722e000000000000000000000000000000000000000060648201526084016104c6565b6001805473ffffffffffffffffffffffffffffffffffffffff19908116909155600080543392168217815560405182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3565b6000546001600160a01b03163314806107af57506002546001600160a01b031633145b6107fb5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e6365000000000000000060448201526064016104c6565b6108058282610e95565b6040518181526001600160a01b0383169030907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6000546001600160a01b031633148061086c57506002546001600160a01b031633145b6108b85760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e6365000000000000000060448201526064016104c6565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401602060405180830381600087803b15801561091b57600080fd5b505af115801561092f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610953919061105c565b50816001600160a01b0316306001600160a01b0316846001600160a01b03167f16e1b64802081839623a4bec223b20b6ee097d9edd8fcef3d4ceb3a94271306e846040516109a391815260200190565b60405180910390a4505050565b8034146109ff5760405162461bcd60e51b815260206004820152601360248201527f6d73672e76616c756520213d20616d6f756e740000000000000000000000000060448201526064016104c6565b610a0933826103ac565b50565b6000546001600160a01b0316331480610a2f57506002546001600160a01b031633145b610a7b5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e6365000000000000000060448201526064016104c6565b6004805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b0316331480610acd57506002546001600160a01b031633145b610b195760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e6365000000000000000060448201526064016104c6565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b600480546040517fad0a44a100000000000000000000000000000000000000000000000000000000815233928101929092526001600160a01b03169063ad0a44a190602401602060405180830381600087803b158015610ba757600080fd5b505af1158015610bbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bdf919061105c565b15610a0957610a098134610d6b565b6000546001600160a01b0316331480610c1157506002546001600160a01b031633145b610c5d5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e6365000000000000000060448201526064016104c6565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610ce65760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e000000000000000060448201526064016104c6565b6001600160a01b038116610d3c5760405162461bcd60e51b815260206004820152601f60248201527f4e657874206f776e657220697320746865207a65726f20616464726573732e0060448201526064016104c6565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b0382161561059757600354604080517f3174044800000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691633174044891600480830192602092919082900301818787803b158015610dd957600080fd5b505af1158015610ded573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e119190610fd2565b6040517ffb9321080000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018590529192509082169063fb93210890604401600060405180830381600087803b158015610e7857600080fd5b505af1158015610e8c573d6000803e3d6000fd5b50505050505050565b80471015610ee55760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e742062616c616e636520666f722073656e6400000060448201526064016104c6565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610f32576040519150601f19603f3d011682016040523d82523d6000602084013e610f37565b606091505b50509050806104565760405162461bcd60e51b815260206004820152603160248201527f556e61626c6520746f2073656e642076616c75653a20726563697069656e742060448201527f6d6179206861766520726576657274656400000000000000000000000000000060648201526084016104c6565b600060208284031215610fc057600080fd5b8135610fcb81611253565b9392505050565b600060208284031215610fe457600080fd5b8151610fcb81611253565b6000806040838503121561100257600080fd5b823561100d81611253565b946020939093013593505050565b60008060006060848603121561103057600080fd5b833561103b81611253565b9250602084013561104b81611253565b929592945050506040919091013590565b60006020828403121561106e57600080fd5b81518015158114610fcb57600080fd5b6000602080838503121561109157600080fd5b823567ffffffffffffffff808211156110a957600080fd5b90840190606082870312156110bd57600080fd5b6110c56111ca565b82356110d081611253565b8152828401356bffffffffffffffffffffffff811681146110f057600080fd5b8185015260408301358281111561110657600080fd5b80840193505086601f84011261111b57600080fd5b82358281111561112d5761112d611224565b61113f85601f19601f840116016111f3565b9250808352878582860101111561115557600080fd5b80858501868501376000908301909401939093526040830152509392505050565b60006020828403121561118857600080fd5b5035919050565b6000825160005b818110156111b05760208186018101518583015201611196565b818111156111bf576000828501525b509190910192915050565b6040516060810167ffffffffffffffff811182821017156111ed576111ed611224565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561121c5761121c611224565b604052919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6001600160a01b0381168114610a0957600080fdfea26469706673582212207f68092614ab73a35f04d9e9a58f6d3ded23fabc603aba3f1de5fc1cc61c3eef64736f6c63430008060033

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

0000000000000000000000002330ee705ffd040bb0cba8cb7734dfe00e7c4b57

-----Decoded View---------------
Arg [0] : owner_ (address): 0x2330ee705fFD040bB0cbA8CB7734Dfe00E7C4b57

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000002330ee705ffd040bb0cba8cb7734dfe00e7c4b57


Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

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