ETH Price: $2,381.77 (-4.03%)

Contract

0x3c431bcCd476F13E25910644f8D959CE52b85B3a
 

Overview

ETH Balance

0.057954086 ETH

Eth Value

$138.03 (@ $2,381.77/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Distribute Balan...206498312024-08-31 16:45:4732 days ago1725122747IN
0x3c431bcC...E52b85B3a
0 ETH0.000200132.48255142
Distribute Balan...193390042024-03-01 8:02:35215 days ago1709280155IN
0x3c431bcC...E52b85B3a
0 ETH0.0041404151.35904993
Distribute Balan...181051102023-09-10 9:34:35388 days ago1694338475IN
0x3c431bcC...E52b85B3a
0 ETH0.0008662910.74575238
Reduce Bond Amou...171288282023-04-26 7:10:11526 days ago1682493011IN
0x3c431bcC...E52b85B3a
0 ETH0.0245351851
Distribute Balan...171282652023-04-26 5:16:59526 days ago1682486219IN
0x3c431bcC...E52b85B3a
0 ETH0.0033859542
Distribute Balan...170743192023-04-18 15:02:35533 days ago1681830155IN
0x3c431bcC...E52b85B3a
0 ETH0.0050849263.07436888
Set Use Latest D...170742362023-04-18 14:45:47533 days ago1681829147IN
0x3c431bcC...E52b85B3a
0 ETH0.0022634862.27785026
Stake149709642022-06-16 2:40:11840 days ago1655347211IN
0x3c431bcC...E52b85B3a
0 ETH0.0051416923

Latest 16 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
206498312024-08-31 16:45:4732 days ago1725122747
0x3c431bcC...E52b85B3a
0.1724147 ETH
206498312024-08-31 16:45:4732 days ago1725122747
0x3c431bcC...E52b85B3a
0.31326051 ETH
193390042024-03-01 8:02:35215 days ago1709280155
0x3c431bcC...E52b85B3a
0.22900982 ETH
193390042024-03-01 8:02:35215 days ago1709280155
0x3c431bcC...E52b85B3a
0.41608826 ETH
181051102023-09-10 9:34:35388 days ago1694338475
0x3c431bcC...E52b85B3a
0.17977956 ETH
181051102023-09-10 9:34:35388 days ago1694338475
0x3c431bcC...E52b85B3a
0.32664174 ETH
171282652023-04-26 5:16:59526 days ago1682486219
0x3c431bcC...E52b85B3a
0.00700005 ETH
171282652023-04-26 5:16:59526 days ago1682486219
0x3c431bcC...E52b85B3a
0.00517395 ETH
170743192023-04-18 15:02:35533 days ago1681830155
0x3c431bcC...E52b85B3a
0.69978779 ETH
170743192023-04-18 15:02:35533 days ago1681830155
0x3c431bcC...E52b85B3a
0.51723445 ETH
149709642022-06-16 2:40:11840 days ago1655347211
0x3c431bcC...E52b85B3a
16 ETH
149634562022-06-14 19:36:47841 days ago1655235407
0x3c431bcC...E52b85B3a
16 ETH
149634292022-06-14 19:29:21841 days ago1655234961
0x3c431bcC...E52b85B3a
16 ETH
148761812022-05-31 2:21:18856 days ago1653963678
0x3c431bcC...E52b85B3a
16 ETH
148761812022-05-31 2:21:18856 days ago1653963678
0x3c431bcC...E52b85B3a
16 ETH
148761812022-05-31 2:21:18856 days ago1653963678  Contract Creation0 ETH
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x4241A990...f6707Da9B
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
RocketMinipool

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 15000 runs

Other Settings:
istanbul EvmVersion, GNU GPLv3 license
File 1 of 5 : RocketMinipool.sol
/**
  *       .
  *      / \
  *     |.'.|
  *     |'.'|
  *   ,'|   |`.
  *  |,-'-|-'-.|
  *   __|_| |         _        _      _____           _
  *  | ___ \|        | |      | |    | ___ \         | |
  *  | |_/ /|__   ___| | _____| |_   | |_/ /__   ___ | |
  *  |    // _ \ / __| |/ / _ \ __|  |  __/ _ \ / _ \| |
  *  | |\ \ (_) | (__|   <  __/ |_   | | | (_) | (_) | |
  *  \_| \_\___/ \___|_|\_\___|\__|  \_|  \___/ \___/|_|
  * +---------------------------------------------------+
  * |  DECENTRALISED STAKING PROTOCOL FOR ETHEREUM 2.0  |
  * +---------------------------------------------------+
  *
  *  Rocket Pool is a first-of-its-kind ETH2 Proof of Stake protocol, designed to be community owned,
  *  decentralised, trustless and compatible with staking in Ethereum 2.0.
  *
  *  For more information about Rocket Pool, visit https://rocketpool.net
  *
  *  Authors: David Rugendyke, Jake Pospischil, Kane Wallmann, Darren Langley, Joe Clapis, Nick Doherty
  *
  */

pragma solidity 0.7.6;

// SPDX-License-Identifier: GPL-3.0-only

import "./RocketMinipoolStorageLayout.sol";
import "../../interface/RocketStorageInterface.sol";
import "../../types/MinipoolDeposit.sol";
import "../../types/MinipoolStatus.sol";

// An individual minipool in the Rocket Pool network

contract RocketMinipool is RocketMinipoolStorageLayout {

    // Events
    event EtherReceived(address indexed from, uint256 amount, uint256 time);
    event DelegateUpgraded(address oldDelegate, address newDelegate, uint256 time);
    event DelegateRolledBack(address oldDelegate, address newDelegate, uint256 time);

    // Modifiers

    // Only allow access from the owning node address
    modifier onlyMinipoolOwner() {
        // Only the node operator can upgrade
        address withdrawalAddress = rocketStorage.getNodeWithdrawalAddress(nodeAddress);
        require(msg.sender == nodeAddress || msg.sender == withdrawalAddress, "Only the node operator can access this method");
        _;
    }

    // Construct
    constructor(RocketStorageInterface _rocketStorageAddress, address _nodeAddress, MinipoolDeposit _depositType) {
        // Initialise RocketStorage
        require(address(_rocketStorageAddress) != address(0x0), "Invalid storage address");
        rocketStorage = RocketStorageInterface(_rocketStorageAddress);
        // Set storage state to uninitialised
        storageState = StorageState.Uninitialised;
        // Set the current delegate
        address delegateAddress = getContractAddress("rocketMinipoolDelegate");
        rocketMinipoolDelegate = delegateAddress;
        // Check for contract existence
        require(contractExists(delegateAddress), "Delegate contract does not exist");
        // Call initialise on delegate
        (bool success, bytes memory data) = delegateAddress.delegatecall(abi.encodeWithSignature('initialise(address,uint8)', _nodeAddress, uint8(_depositType)));
        if (!success) { revert(getRevertMessage(data)); }
    }

    // Receive an ETH deposit
    receive() external payable {
        // Emit ether received event
        emit EtherReceived(msg.sender, msg.value, block.timestamp);
    }

    // Upgrade this minipool to the latest network delegate contract
    function delegateUpgrade() external onlyMinipoolOwner {
        // Set previous address
        rocketMinipoolDelegatePrev = rocketMinipoolDelegate;
        // Set new delegate
        rocketMinipoolDelegate = getContractAddress("rocketMinipoolDelegate");
        // Verify
        require(rocketMinipoolDelegate != rocketMinipoolDelegatePrev, "New delegate is the same as the existing one");
        // Log event
        emit DelegateUpgraded(rocketMinipoolDelegatePrev, rocketMinipoolDelegate, block.timestamp);
    }

    // Rollback to previous delegate contract
    function delegateRollback() external onlyMinipoolOwner {
        // Make sure they have upgraded before
        require(rocketMinipoolDelegatePrev != address(0x0), "Previous delegate contract is not set");
        // Store original
        address originalDelegate = rocketMinipoolDelegate;
        // Update delegate to previous and zero out previous
        rocketMinipoolDelegate = rocketMinipoolDelegatePrev;
        rocketMinipoolDelegatePrev = address(0x0);
        // Log event
        emit DelegateRolledBack(originalDelegate, rocketMinipoolDelegate, block.timestamp);
    }

    // If set to true, will automatically use the latest delegate contract
    function setUseLatestDelegate(bool _setting) external onlyMinipoolOwner {
        useLatestDelegate = _setting;
    }

    // Getter for useLatestDelegate setting
    function getUseLatestDelegate() external view returns (bool) {
        return useLatestDelegate;
    }

    // Returns the address of the minipool's stored delegate
    function getDelegate() external view returns (address) {
        return rocketMinipoolDelegate;
    }

    // Returns the address of the minipool's previous delegate (or address(0) if not set)
    function getPreviousDelegate() external view returns (address) {
        return rocketMinipoolDelegatePrev;
    }

    // Returns the delegate which will be used when calling this minipool taking into account useLatestDelegate setting
    function getEffectiveDelegate() external view returns (address) {
        return useLatestDelegate ? getContractAddress("rocketMinipoolDelegate") : rocketMinipoolDelegate;
    }

    // Delegate all other calls to minipool delegate contract
    fallback(bytes calldata _input) external payable returns (bytes memory) {
        // If useLatestDelegate is set, use the latest delegate contract
        address delegateContract = useLatestDelegate ? getContractAddress("rocketMinipoolDelegate") : rocketMinipoolDelegate;
        // Check for contract existence
        require(contractExists(delegateContract), "Delegate contract does not exist");
        // Execute delegatecall
        (bool success, bytes memory data) = delegateContract.delegatecall(_input);
        if (!success) { revert(getRevertMessage(data)); }
        return data;
    }

    // Get the address of a Rocket Pool network contract
    function getContractAddress(string memory _contractName) private view returns (address) {
        address contractAddress = rocketStorage.getAddress(keccak256(abi.encodePacked("contract.address", _contractName)));
        require(contractAddress != address(0x0), "Contract not found");
        return contractAddress;
    }

    // Get a revert message from delegatecall return data
    function getRevertMessage(bytes memory _returnData) private pure returns (string memory) {
        if (_returnData.length < 68) { return "Transaction reverted silently"; }
        assembly {
            _returnData := add(_returnData, 0x04)
        }
        return abi.decode(_returnData, (string));
    }

    // Returns true if contract exists at _contractAddress (if called during that contract's construction it will return a false negative)
    function contractExists(address _contractAddress) private returns (bool) {
        uint32 codeSize;
        assembly {
            codeSize := extcodesize(_contractAddress)
        }
        return codeSize > 0;
    }
}

File 2 of 5 : RocketMinipoolStorageLayout.sol
/**
  *       .
  *      / \
  *     |.'.|
  *     |'.'|
  *   ,'|   |`.
  *  |,-'-|-'-.|
  *   __|_| |         _        _      _____           _
  *  | ___ \|        | |      | |    | ___ \         | |
  *  | |_/ /|__   ___| | _____| |_   | |_/ /__   ___ | |
  *  |    // _ \ / __| |/ / _ \ __|  |  __/ _ \ / _ \| |
  *  | |\ \ (_) | (__|   <  __/ |_   | | | (_) | (_) | |
  *  \_| \_\___/ \___|_|\_\___|\__|  \_|  \___/ \___/|_|
  * +---------------------------------------------------+
  * |  DECENTRALISED STAKING PROTOCOL FOR ETHEREUM 2.0  |
  * +---------------------------------------------------+
  *
  *  Rocket Pool is a first-of-its-kind ETH2 Proof of Stake protocol, designed to be community owned,
  *  decentralised, trustless and compatible with staking in Ethereum 2.0.
  *
  *  For more information about Rocket Pool, visit https://rocketpool.net
  *
  *  Authors: David Rugendyke, Jake Pospischil, Kane Wallmann, Darren Langley, Joe Clapis, Nick Doherty
  *
  */

pragma solidity 0.7.6;

// SPDX-License-Identifier: GPL-3.0-only

import "../../interface/RocketStorageInterface.sol";
import "../../types/MinipoolDeposit.sol";
import "../../types/MinipoolStatus.sol";

// The RocketMinipool contract storage layout, shared by RocketMinipoolDelegate

// ******************************************************
// Note: This contract MUST NOT BE UPDATED after launch.
// All deployed minipool contracts must maintain a
// Consistent storage layout with RocketMinipoolDelegate.
// ******************************************************

abstract contract RocketMinipoolStorageLayout {
    // Storage state enum
    enum StorageState {
        Undefined,
        Uninitialised,
        Initialised
    }

	// Main Rocket Pool storage contract
    RocketStorageInterface internal rocketStorage = RocketStorageInterface(0);

    // Status
    MinipoolStatus internal status;
    uint256 internal statusBlock;
    uint256 internal statusTime;
    uint256 internal withdrawalBlock;

    // Deposit type
    MinipoolDeposit internal depositType;

    // Node details
    address internal nodeAddress;
    uint256 internal nodeFee;
    uint256 internal nodeDepositBalance;
    bool internal nodeDepositAssigned;
    uint256 internal nodeRefundBalance;
    uint256 internal nodeSlashBalance;

    // User deposit details
    uint256 internal userDepositBalance;
    uint256 internal userDepositAssignedTime;

    // Upgrade options
    bool internal useLatestDelegate = false;
    address internal rocketMinipoolDelegate;
    address internal rocketMinipoolDelegatePrev;

    // Local copy of RETH address
    address internal rocketTokenRETH;

    // Local copy of penalty contract
    address internal rocketMinipoolPenalty;

    // Used to prevent direct access to delegate and prevent calling initialise more than once
    StorageState storageState = StorageState.Undefined;

    // Whether node operator has finalised the pool
    bool internal finalised;

    // Trusted member scrub votes
    mapping(address => bool) memberScrubVotes;
    uint256 totalScrubVotes;
}

File 3 of 5 : RocketStorageInterface.sol
/**
  *       .
  *      / \
  *     |.'.|
  *     |'.'|
  *   ,'|   |`.
  *  |,-'-|-'-.|
  *   __|_| |         _        _      _____           _
  *  | ___ \|        | |      | |    | ___ \         | |
  *  | |_/ /|__   ___| | _____| |_   | |_/ /__   ___ | |
  *  |    // _ \ / __| |/ / _ \ __|  |  __/ _ \ / _ \| |
  *  | |\ \ (_) | (__|   <  __/ |_   | | | (_) | (_) | |
  *  \_| \_\___/ \___|_|\_\___|\__|  \_|  \___/ \___/|_|
  * +---------------------------------------------------+
  * |  DECENTRALISED STAKING PROTOCOL FOR ETHEREUM 2.0  |
  * +---------------------------------------------------+
  *
  *  Rocket Pool is a first-of-its-kind ETH2 Proof of Stake protocol, designed to be community owned,
  *  decentralised, trustless and compatible with staking in Ethereum 2.0.
  *
  *  For more information about Rocket Pool, visit https://rocketpool.net
  *
  *  Authors: David Rugendyke, Jake Pospischil, Kane Wallmann, Darren Langley, Joe Clapis, Nick Doherty
  *
  */

pragma solidity 0.7.6;

// SPDX-License-Identifier: GPL-3.0-only

interface RocketStorageInterface {

    // Deploy status
    function getDeployedStatus() external view returns (bool);

    // Guardian
    function getGuardian() external view returns(address);
    function setGuardian(address _newAddress) external;
    function confirmGuardian() external;

    // Getters
    function getAddress(bytes32 _key) external view returns (address);
    function getUint(bytes32 _key) external view returns (uint);
    function getString(bytes32 _key) external view returns (string memory);
    function getBytes(bytes32 _key) external view returns (bytes memory);
    function getBool(bytes32 _key) external view returns (bool);
    function getInt(bytes32 _key) external view returns (int);
    function getBytes32(bytes32 _key) external view returns (bytes32);

    // Setters
    function setAddress(bytes32 _key, address _value) external;
    function setUint(bytes32 _key, uint _value) external;
    function setString(bytes32 _key, string calldata _value) external;
    function setBytes(bytes32 _key, bytes calldata _value) external;
    function setBool(bytes32 _key, bool _value) external;
    function setInt(bytes32 _key, int _value) external;
    function setBytes32(bytes32 _key, bytes32 _value) external;

    // Deleters
    function deleteAddress(bytes32 _key) external;
    function deleteUint(bytes32 _key) external;
    function deleteString(bytes32 _key) external;
    function deleteBytes(bytes32 _key) external;
    function deleteBool(bytes32 _key) external;
    function deleteInt(bytes32 _key) external;
    function deleteBytes32(bytes32 _key) external;

    // Arithmetic
    function addUint(bytes32 _key, uint256 _amount) external;
    function subUint(bytes32 _key, uint256 _amount) external;

    // Protected storage
    function getNodeWithdrawalAddress(address _nodeAddress) external view returns (address);
    function getNodePendingWithdrawalAddress(address _nodeAddress) external view returns (address);
    function setWithdrawalAddress(address _nodeAddress, address _newWithdrawalAddress, bool _confirm) external;
    function confirmWithdrawalAddress(address _nodeAddress) external;
}

File 4 of 5 : MinipoolDeposit.sol
/**
  *       .
  *      / \
  *     |.'.|
  *     |'.'|
  *   ,'|   |`.
  *  |,-'-|-'-.|
  *   __|_| |         _        _      _____           _
  *  | ___ \|        | |      | |    | ___ \         | |
  *  | |_/ /|__   ___| | _____| |_   | |_/ /__   ___ | |
  *  |    // _ \ / __| |/ / _ \ __|  |  __/ _ \ / _ \| |
  *  | |\ \ (_) | (__|   <  __/ |_   | | | (_) | (_) | |
  *  \_| \_\___/ \___|_|\_\___|\__|  \_|  \___/ \___/|_|
  * +---------------------------------------------------+
  * |  DECENTRALISED STAKING PROTOCOL FOR ETHEREUM 2.0  |
  * +---------------------------------------------------+
  *
  *  Rocket Pool is a first-of-its-kind ETH2 Proof of Stake protocol, designed to be community owned,
  *  decentralised, trustless and compatible with staking in Ethereum 2.0.
  *
  *  For more information about Rocket Pool, visit https://rocketpool.net
  *
  *  Authors: David Rugendyke, Jake Pospischil, Kane Wallmann, Darren Langley, Joe Clapis, Nick Doherty
  *
  */

pragma solidity 0.7.6;

// SPDX-License-Identifier: GPL-3.0-only

// Represents the type of deposits required by a minipool

enum MinipoolDeposit {
    None,    // Marks an invalid deposit type
    Full,    // The minipool requires 32 ETH from the node operator, 16 ETH of which will be refinanced from user deposits
    Half,    // The minipool required 16 ETH from the node operator to be matched with 16 ETH from user deposits
    Empty    // The minipool requires 0 ETH from the node operator to be matched with 32 ETH from user deposits (trusted nodes only)
}

File 5 of 5 : MinipoolStatus.sol
/**
  *       .
  *      / \
  *     |.'.|
  *     |'.'|
  *   ,'|   |`.
  *  |,-'-|-'-.|
  *   __|_| |         _        _      _____           _
  *  | ___ \|        | |      | |    | ___ \         | |
  *  | |_/ /|__   ___| | _____| |_   | |_/ /__   ___ | |
  *  |    // _ \ / __| |/ / _ \ __|  |  __/ _ \ / _ \| |
  *  | |\ \ (_) | (__|   <  __/ |_   | | | (_) | (_) | |
  *  \_| \_\___/ \___|_|\_\___|\__|  \_|  \___/ \___/|_|
  * +---------------------------------------------------+
  * |  DECENTRALISED STAKING PROTOCOL FOR ETHEREUM 2.0  |
  * +---------------------------------------------------+
  *
  *  Rocket Pool is a first-of-its-kind ETH2 Proof of Stake protocol, designed to be community owned,
  *  decentralised, trustless and compatible with staking in Ethereum 2.0.
  *
  *  For more information about Rocket Pool, visit https://rocketpool.net
  *
  *  Authors: David Rugendyke, Jake Pospischil, Kane Wallmann, Darren Langley, Joe Clapis, Nick Doherty
  *
  */

pragma solidity 0.7.6;

// SPDX-License-Identifier: GPL-3.0-only

// Represents a minipool's status within the network

enum MinipoolStatus {
    Initialised,    // The minipool has been initialised and is awaiting a deposit of user ETH
    Prelaunch,      // The minipool has enough ETH to begin staking and is awaiting launch by the node operator
    Staking,        // The minipool is currently staking
    Withdrawable,   // The minipool has become withdrawable on the beacon chain and can be withdrawn from by the node operator
    Dissolved       // The minipool has been dissolved and its user deposited ETH has been returned to the deposit pool
}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"contract RocketStorageInterface","name":"_rocketStorageAddress","type":"address"},{"internalType":"address","name":"_nodeAddress","type":"address"},{"internalType":"enum MinipoolDeposit","name":"_depositType","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldDelegate","type":"address"},{"indexed":false,"internalType":"address","name":"newDelegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"DelegateRolledBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldDelegate","type":"address"},{"indexed":false,"internalType":"address","name":"newDelegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"DelegateUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"EtherReceived","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"delegateRollback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"delegateUpgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getDelegate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEffectiveDelegate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPreviousDelegate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUseLatestDelegate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_setting","type":"bool"}],"name":"setUseLatestDelegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

Deployed Bytecode

0x6080604052600436106100745760003560e01c80638dfe8b2d1161004e5780638dfe8b2d1461034f5780638ee7d0cb14610364578063bc7f3b501461038d578063be1d1d32146103a2576100b4565b80631dcef0bf146102ce57806326d1c0681461030c57806352def61d14610323576100b4565b366100b45760408051348152426020820152815133927f1d57945c1033a96907a78f6e0ebf6a03815725dac25f33cc806558670344ac88928290030190a2005b600c546000903690606090839060ff166100eb57600c54610100900473ffffffffffffffffffffffffffffffffffffffff16610129565b6101296040518060400160405280601681526020017f726f636b65744d696e69706f6f6c44656c6567617465000000000000000000008152506103b7565b905061013481610596565b61019f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f44656c656761746520636f6e747261637420646f6573206e6f74206578697374604482015290519081900360640190fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1686866040518083838082843760405192019450600093509091505080830381855af49150503d806000811461020a576040519150601f19603f3d011682016040523d82523d6000602084013e61020f565b606091505b5091509150816102c057610222816105a2565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561028557818101518382015260200161026d565b50505050905090810190601f1680156102b25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b805195506020019350505050f35b3480156102da57600080fd5b506102e36106b9565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561031857600080fd5b5061032161072c565b005b34801561032f57600080fd5b506103216004803603602081101561034657600080fd5b50351515610a09565b34801561035b57600080fd5b50610321610b7c565b34801561037057600080fd5b50610379610dee565b604080519115158252519081900360200190f35b34801561039957600080fd5b506102e3610df7565b3480156103ae57600080fd5b506102e3610e18565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166321f8a7218460405160200180807f636f6e74726163742e616464726573730000000000000000000000000000000081525060100182805190602001908083835b6020831061046f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610432565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156104de57600080fd5b505afa1580156104f2573d6000803e3d6000fd5b505050506040513d602081101561050857600080fd5b5051905073ffffffffffffffffffffffffffffffffffffffff811661058e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f436f6e7472616374206e6f7420666f756e640000000000000000000000000000604482015290519081900360640190fd5b90505b919050565b3b63ffffffff16151590565b60606044825110156105e8575060408051808201909152601d81527f5472616e73616374696f6e2072657665727465642073696c656e746c790000006020820152610591565b600482018051909260240190602081101561060257600080fd5b810190808051604051939291908464010000000082111561062257600080fd5b90830190602082018581111561063757600080fd5b825164010000000081118282018810171561065157600080fd5b82525081516020918201929091019080838360005b8381101561067e578181015183820152602001610666565b50505050905090810190601f1680156106ab5780820380516001836020036101000a031916815260200191505b506040525050509050919050565b600c5460009060ff166106e957600c54610100900473ffffffffffffffffffffffffffffffffffffffff16610727565b6107276040518060400160405280601681526020017f726f636b65744d696e69706f6f6c44656c6567617465000000000000000000008152506103b7565b905090565b6000805460048054604080517f5b49ff6200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff61010090930483169381019390935251921691635b49ff6291602480820192602092909190829003018186803b1580156107a957600080fd5b505afa1580156107bd573d6000803e3d6000fd5b505050506040513d60208110156107d357600080fd5b5051600454909150610100900473ffffffffffffffffffffffffffffffffffffffff1633148061081857503373ffffffffffffffffffffffffffffffffffffffff8216145b61086d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180610e86602d913960400191505060405180910390fd5b600c54600d805461010090920473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff000000000000000000000000000000000000000090921691909117905560408051808201909152601681527f726f636b65744d696e69706f6f6c44656c65676174650000000000000000000060208201526108f7906103b7565b600c80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010073ffffffffffffffffffffffffffffffffffffffff93841681029190911791829055600d548316910490911614156109a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180610e5a602c913960400191505060405180910390fd5b600d54600c546040805173ffffffffffffffffffffffffffffffffffffffff93841681526101009092049092166020820152428183015290517f720d539b7abaee498c7536b8bf9f854bcd839fb4db9dc00e7494c219b3a20d459181900360600190a150565b6000805460048054604080517f5b49ff6200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff61010090930483169381019390935251921691635b49ff6291602480820192602092909190829003018186803b158015610a8657600080fd5b505afa158015610a9a573d6000803e3d6000fd5b505050506040513d6020811015610ab057600080fd5b5051600454909150610100900473ffffffffffffffffffffffffffffffffffffffff16331480610af557503373ffffffffffffffffffffffffffffffffffffffff8216145b610b4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180610e86602d913960400191505060405180910390fd5b50600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b6000805460048054604080517f5b49ff6200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff61010090930483169381019390935251921691635b49ff6291602480820192602092909190829003018186803b158015610bf957600080fd5b505afa158015610c0d573d6000803e3d6000fd5b505050506040513d6020811015610c2357600080fd5b5051600454909150610100900473ffffffffffffffffffffffffffffffffffffffff16331480610c6857503373ffffffffffffffffffffffffffffffffffffffff8216145b610cbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180610e86602d913960400191505060405180910390fd5b600d5473ffffffffffffffffffffffffffffffffffffffff16610d2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180610e356025913960400191505060405180910390fd5b600c8054600d805473ffffffffffffffffffffffffffffffffffffffff8181166101009081027fffffffffffffffffffffff0000000000000000000000000000000000000000ff861617958690557fffffffffffffffffffffffff000000000000000000000000000000000000000090921690925560408051938290048316808552919094049091166020830152428284015291517f01d12a47982bd695d9fa134134fa172f56f650d817bb4fb0bd4ae3754d2fdca69181900360600190a15050565b600c5460ff1690565b600c54610100900473ffffffffffffffffffffffffffffffffffffffff1690565b600d5473ffffffffffffffffffffffffffffffffffffffff169056fe50726576696f75732064656c656761746520636f6e7472616374206973206e6f74207365744e65772064656c6567617465206973207468652073616d6520617320746865206578697374696e67206f6e654f6e6c7920746865206e6f6465206f70657261746f722063616e206163636573732074686973206d6574686f64a26469706673582212209a6daedd83e54e66fbfbf927322718b812db513528d0b0bf4667b671d50dbd5364736f6c63430007060033

Deployed Bytecode Sourcemap

1309:5914:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3118:53;;;3144:9;3118:53;;3155:15;3118:53;;;;;;3132:10;;3118:53;;;;;;;;1309:5914;;5686:17;;1309:5914;;;;5562:12;;1309:5914;;5686:17;;:89;;5753:22;;;;;;;5686:89;;;5706:44;;;;;;;;;;;;;;;;;;:18;:44::i;:::-;5659:116;;5833:32;5848:16;5833:14;:32::i;:::-;5825:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5945:12;5959:17;5980:16;:29;;6010:6;;5980:37;;;;;;;;;;;;;;-1:-1:-1;5980:37:0;;-1:-1:-1;5980:37:0;;-1:-1:-1;;5980:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5944:73;;;;6032:7;6027:49;;6050:22;6067:4;6050:16;:22::i;:::-;6043:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6027:49;1309:5914;;;-1:-1:-1;1309:5914:0;;;-1:-1:-1;;;;1309:5914:0;5259:177;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3253:519;;;;;;;;;;;;;:::i;:::-;;4487:117;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4487:117:0;;;;:::i;3824:582::-;;;;;;;;;;;;;:::i;4654:102::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4823:101;;;;;;;;;;;;;:::i;5020:113::-;;;;;;;;;;;;;:::i;6166:323::-;6245:7;6264:23;6290:13;;;;;;;;;;:24;;;6362:13;6325:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6315:62;;;;;;6290:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6290:88:0;;-1:-1:-1;6396:31:0;;;6388:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6467:15;-1:-1:-1;6166:323:0;;;;:::o;7004:217::-;7147:29;7202:12;;;;;7004:217::o;6553:306::-;6627:13;6677:2;6656:11;:18;:23;6652:72;;;-1:-1:-1;6683:38:0;;;;;;;;;;;;;;;;;;;6652:72;6788:4;6771:22;;6819:33;;6771:22;;6819:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6819:33:0;;;;;;;;;;-1:-1:-1;6819:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6812:40;;6553:306;;;:::o;5259:177::-;5340:17;;5314:7;;5340:17;;:89;;5407:22;;;;;;;5340:89;;;5360:44;;;;;;;;;;;;;;;;;;:18;:44::i;:::-;5333:96;;5259:177;:::o;3253:519::-;1790:25;1818:13;;1857:11;;;1818:51;;;;;;:13;;1857:11;;;;;1818:51;;;;;;;;:13;;;:38;;:51;;;;;;;;;;;;;;;:13;:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1818:51:0;1901:11;;1818:51;;-1:-1:-1;1901:11:0;;;;;1887:10;:25;;:60;;-1:-1:-1;1916:10:0;:31;;;;1887:60;1879:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3378:22:::1;::::0;3349:26:::1;:51:::0;;3378:22:::1;::::0;;::::1;;;3349:51:::0;;;::::1;::::0;;;::::1;::::0;;3463:44:::1;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;:18:::1;:44::i;:::-;3438:22;:69:::0;;;::::1;;;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;3569:26:::1;::::0;;::::1;3543:22:::0;::::1;::::0;;::::1;:52;;3535:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3697:26;::::0;3725:22:::1;::::0;3680:85:::1;::::0;;3697:26:::1;::::0;;::::1;3680:85:::0;;3697:26:::1;3725:22:::0;;::::1;::::0;;::::1;3680:85;::::0;::::1;::::0;3749:15:::1;3680:85:::0;;;;;;::::1;::::0;;;;;;;::::1;3253:519:::0;:::o;4487:117::-;1790:25;1818:13;;1857:11;;;1818:51;;;;;;:13;;1857:11;;;;;1818:51;;;;;;;;:13;;;:38;;:51;;;;;;;;;;;;;;;:13;:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1818:51:0;1901:11;;1818:51;;-1:-1:-1;1901:11:0;;;;;1887:10;:25;;:60;;-1:-1:-1;1916:10:0;:31;;;;1887:60;1879:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4569:17:0::1;:28:::0;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;4487:117::o;3824:582::-;1790:25;1818:13;;1857:11;;;1818:51;;;;;;:13;;1857:11;;;;;1818:51;;;;;;;;:13;;;:38;;:51;;;;;;;;;;;;;;;:13;:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1818:51:0;1901:11;;1818:51;;-1:-1:-1;1901:11:0;;;;;1887:10;:25;;:60;;-1:-1:-1;1916:10:0;:31;;;;1887:60;1879:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3944:26:::1;::::0;:42:::1;:26;3936:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4091:22;::::0;;4209:26:::1;::::0;;4091:22:::1;4209:26:::0;;::::1;4091:22;4184:51:::0;;::::1;::::0;;::::1;;::::0;;;;4245:41;;;::::1;::::0;;;4322:77:::1;::::0;;4091:22;;;::::1;::::0;::::1;4322:77:::0;;;4359:22;;;::::1;::::0;;::::1;4322:77;::::0;::::1;::::0;4383:15:::1;4322:77:::0;;;;;;::::1;::::0;;;;;;;::::1;2007:1;3824:582:::0;:::o;4654:102::-;4732:17;;;;4654:102;:::o;4823:101::-;4895:22;;;;;;;;4823:101::o;5020:113::-;5100:26;;;;5020:113;:::o

Swarm Source

ipfs://9a6daedd83e54e66fbfbf927322718b812db513528d0b0bf4667b671d50dbd53

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Latest 25 from a total of 76 withdrawals (2.92434497 ETH withdrawn)

Validator Index Block Amount
397261208497162024-09-28 14:25:234 days ago17275335230.019344392 ETH
397261207828352024-09-19 6:25:4714 days ago17267271470.019345149 ETH
397261207160142024-09-09 22:23:1123 days ago17259205910.019264545 ETH
397261206494282024-08-31 15:24:5932 days ago17251178990.019189496 ETH
397261205832392024-08-22 9:26:1141 days ago17243187710.065069591 ETH
397261205171802024-08-13 4:01:1151 days ago17235216710.019173262 ETH
397261204512002024-08-03 23:07:4760 days ago17227264670.019087121 ETH
397261203857412024-07-25 19:46:2369 days ago17219367830.064381265 ETH
397261203210402024-07-16 19:03:3578 days ago17211566150.018956386 ETH
397261202563752024-07-07 18:18:2387 days ago17203763030.018947812 ETH
397261201918992024-06-28 18:13:1196 days ago17195983910.018907624 ETH
397261201275902024-06-19 18:31:23105 days ago17188218830.018889119 ETH
397261200636982024-06-10 20:04:23114 days ago17180498630.018771644 ETH
397261200004002024-06-01 23:56:59123 days ago17172862190.018706584 ETH
397261199374832024-05-24 4:54:11132 days ago17165264510.018779441 ETH
397261198744362024-05-15 9:18:47140 days ago17157647270.018644411 ETH
397261198115652024-05-06 14:13:23149 days ago17150048030.018584388 ETH
397261197492472024-04-27 21:07:59158 days ago17142520790.018519262 ETH
397261196874492024-04-19 5:36:59167 days ago17135050190.018509944 ETH
397261196260102024-04-10 15:05:59175 days ago17127615590.018518873 ETH
397261195644652024-04-02 0:11:35184 days ago17120166950.018487492 ETH
397261195029272024-03-24 7:28:23192 days ago17112653030.018546714 ETH
397261194412892024-03-15 15:38:11201 days ago17105170910.018558064 ETH
397261193797862024-03-07 0:42:35210 days ago17097721550.018446729 ETH
397261193189432024-02-27 12:39:11218 days ago17090375510.018238131 ETH
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.