Holesky Testnet

Contract

0xf04de123993761Bb9F08c9C39112b0E0b0eccE50

Overview

ETH Balance

0 ETH

Multichain Info

N/A
Transaction Hash
Method
Block
From
To
Confirm Withdraw...14029882024-04-23 10:26:00275 days ago1713867960IN
0xf04de123...0b0eccE50
0 ETH0.000049091.86158223
Confirm Withdraw...13942292024-04-22 2:31:48276 days ago1713753108IN
0xf04de123...0b0eccE50
0 ETH0.000120194.12011791
Set Withdrawal A...13627842024-04-17 5:25:24281 days ago1713331524IN
0xf04de123...0b0eccE50
0 ETH0.000202024.32157458
Set Withdrawal A...13553082024-04-16 1:47:24282 days ago1713232044IN
0xf04de123...0b0eccE50
0 ETH0.000191234.09916558
Confirm Withdraw...13550012024-04-16 0:38:00282 days ago1713227880IN
0xf04de123...0b0eccE50
0 ETH0.000152933.30507428
Set Withdrawal A...13549992024-04-16 0:37:36282 days ago1713227856IN
0xf04de123...0b0eccE50
0 ETH0.000152853.26831631
Set Withdrawal A...13546342024-04-15 23:16:36283 days ago1713222996IN
0xf04de123...0b0eccE50
0 ETH0.000187474.00854103
Set Deployed Sta...13173232024-04-10 7:13:48288 days ago1712733228IN
0xf04de123...0b0eccE50
0 ETH0.00021834.79077751
Set Uint13173222024-04-10 7:13:36288 days ago1712733216IN
0xf04de123...0b0eccE50
0 ETH0.000243894.79639938
Set String13173212024-04-10 7:13:24288 days ago1712733204IN
0xf04de123...0b0eccE50
0 ETH0.00534574.8837344
Set String13173192024-04-10 7:13:00288 days ago1712733180IN
0xf04de123...0b0eccE50
0 ETH0.004895454.8760811
Set Address13173182024-04-10 7:12:36288 days ago1712733156IN
0xf04de123...0b0eccE50
0 ETH0.000240164.70447413
Set String13173172024-04-10 7:12:24288 days ago1712733144IN
0xf04de123...0b0eccE50
0 ETH0.000238474.60733595
Set Bool13173162024-04-10 7:12:12288 days ago1712733132IN
0xf04de123...0b0eccE50
0 ETH0.000247594.86779828
Set String13173152024-04-10 7:12:00288 days ago1712733120IN
0xf04de123...0b0eccE50
0 ETH0.001665625.14814461
Set Address13173142024-04-10 7:11:48288 days ago1712733108IN
0xf04de123...0b0eccE50
0 ETH0.000272955.34673822
Set String13173132024-04-10 7:11:36288 days ago1712733096IN
0xf04de123...0b0eccE50
0 ETH0.000286175.52898229
Set Bool13173122024-04-10 7:11:24288 days ago1712733084IN
0xf04de123...0b0eccE50
0 ETH0.000264235.19248634
Set String13173112024-04-10 7:11:12288 days ago1712733072IN
0xf04de123...0b0eccE50
0 ETH0.002091215.33875472
Set Address13173102024-04-10 7:11:00288 days ago1712733060IN
0xf04de123...0b0eccE50
0 ETH0.000261375.11981495
Set String13173092024-04-10 7:10:48288 days ago1712733048IN
0xf04de123...0b0eccE50
0 ETH0.000276085.32902475
Set Bool13173082024-04-10 7:10:36288 days ago1712733036IN
0xf04de123...0b0eccE50
0 ETH0.000263775.18355328
Set String13173072024-04-10 7:10:24288 days ago1712733024IN
0xf04de123...0b0eccE50
0 ETH0.002174474.97732284
Set Address13173062024-04-10 7:10:12288 days ago1712733012IN
0xf04de123...0b0eccE50
0 ETH0.000245784.8145814
Set String13173052024-04-10 7:10:00288 days ago1712733000IN
0xf04de123...0b0eccE50
0 ETH0.000263565.08514323
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

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

Contract Name:
RocketStorage

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 15000 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 3 : RocketStorage.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 "@openzeppelin/contracts/math/SafeMath.sol";

/// @title The primary persistent storage for Rocket Pool
/// @author David Rugendyke

contract RocketStorage is RocketStorageInterface {

    // Events
    event NodeWithdrawalAddressSet(address indexed node, address indexed withdrawalAddress, uint256 time);
    event GuardianChanged(address oldGuardian, address newGuardian);

    // Libraries
    using SafeMath for uint256;

    // Storage maps
    mapping(bytes32 => string)     private stringStorage;
    mapping(bytes32 => bytes)      private bytesStorage;
    mapping(bytes32 => uint256)    private uintStorage;
    mapping(bytes32 => int256)     private intStorage;
    mapping(bytes32 => address)    private addressStorage;
    mapping(bytes32 => bool)       private booleanStorage;
    mapping(bytes32 => bytes32)    private bytes32Storage;

    // Protected storage (not accessible by network contracts)
    mapping(address => address)    private withdrawalAddresses;
    mapping(address => address)    private pendingWithdrawalAddresses;

    // Guardian address
    address guardian;
    address newGuardian;

    // Flag storage has been initialised
    bool storageInit = false;

    /// @dev Only allow access from the latest version of a contract in the Rocket Pool network after deployment
    modifier onlyLatestRocketNetworkContract() {
        if (storageInit == true) {
            // Make sure the access is permitted to only contracts in our Dapp
            require(booleanStorage[keccak256(abi.encodePacked("contract.exists", msg.sender))], "Invalid or outdated network contract");
        } else {
            // Only Dapp and the guardian account are allowed access during initialisation.
            // tx.origin is only safe to use in this case for deployment since no external contracts are interacted with
            require((
                booleanStorage[keccak256(abi.encodePacked("contract.exists", msg.sender))] || tx.origin == guardian
            ), "Invalid or outdated network contract attempting access during deployment");
        }
        _;
    }


    /// @dev Construct RocketStorage
    constructor() {
        // Set the guardian upon deployment
        guardian = msg.sender;
    }

    // Get guardian address
    function getGuardian() external override view returns (address) {
        return guardian;
    }

    // Transfers guardianship to a new address
    function setGuardian(address _newAddress) external override {
        // Check tx comes from current guardian
        require(msg.sender == guardian, "Is not guardian account");
        // Store new address awaiting confirmation
        newGuardian = _newAddress;
    }

    // Confirms change of guardian
    function confirmGuardian() external override {
        // Check tx came from new guardian address
        require(msg.sender == newGuardian, "Confirmation must come from new guardian address");
        // Store old guardian for event
        address oldGuardian = guardian;
        // Update guardian and clear storage
        guardian = newGuardian;
        delete newGuardian;
        // Emit event
        emit GuardianChanged(oldGuardian, guardian);
    }

    // Set this as being deployed now
    function getDeployedStatus() external override view returns (bool) {
        return storageInit;
    }

    // Set this as being deployed now
    function setDeployedStatus() external {
        // Only guardian can lock this down
        require(msg.sender == guardian, "Is not guardian account");
        // Set it now
        storageInit = true;
    }

    // Protected storage

    // Get a node's withdrawal address
    function getNodeWithdrawalAddress(address _nodeAddress) public override view returns (address) {
        // If no withdrawal address has been set, return the nodes address
        address withdrawalAddress = withdrawalAddresses[_nodeAddress];
        if (withdrawalAddress == address(0)) {
            return _nodeAddress;
        }
        return withdrawalAddress;
    }

    // Get a node's pending withdrawal address
    function getNodePendingWithdrawalAddress(address _nodeAddress) external override view returns (address) {
        return pendingWithdrawalAddresses[_nodeAddress];
    }

    // Set a node's withdrawal address
    function setWithdrawalAddress(address _nodeAddress, address _newWithdrawalAddress, bool _confirm) external override {
        // Check new withdrawal address
        require(_newWithdrawalAddress != address(0x0), "Invalid withdrawal address");
        // Confirm the transaction is from the node's current withdrawal address
        address withdrawalAddress = getNodeWithdrawalAddress(_nodeAddress);
        require(withdrawalAddress == msg.sender, "Only a tx from a node's withdrawal address can update it");
        // Update immediately if confirmed
        if (_confirm) {
            updateWithdrawalAddress(_nodeAddress, _newWithdrawalAddress);
        }
        // Set pending withdrawal address if not confirmed
        else {
            pendingWithdrawalAddresses[_nodeAddress] = _newWithdrawalAddress;
        }
    }

    // Confirm a node's new withdrawal address
    function confirmWithdrawalAddress(address _nodeAddress) external override {
        // Get node by pending withdrawal address
        require(pendingWithdrawalAddresses[_nodeAddress] == msg.sender, "Confirmation must come from the pending withdrawal address");
        delete pendingWithdrawalAddresses[_nodeAddress];
        // Update withdrawal address
        updateWithdrawalAddress(_nodeAddress, msg.sender);
    }

    // Update a node's withdrawal address
    function updateWithdrawalAddress(address _nodeAddress, address _newWithdrawalAddress) private {
        // Set new withdrawal address
        withdrawalAddresses[_nodeAddress] = _newWithdrawalAddress;
        // Emit withdrawal address set event
        emit NodeWithdrawalAddressSet(_nodeAddress, _newWithdrawalAddress, block.timestamp);
    }

    /// @param _key The key for the record
    function getAddress(bytes32 _key) override external view returns (address r) {
        return addressStorage[_key];
    }

    /// @param _key The key for the record
    function getUint(bytes32 _key) override external view returns (uint256 r) {
        return uintStorage[_key];
    }

    /// @param _key The key for the record
    function getString(bytes32 _key) override external view returns (string memory) {
        return stringStorage[_key];
    }

    /// @param _key The key for the record
    function getBytes(bytes32 _key) override external view returns (bytes memory) {
        return bytesStorage[_key];
    }

    /// @param _key The key for the record
    function getBool(bytes32 _key) override external view returns (bool r) {
        return booleanStorage[_key];
    }

    /// @param _key The key for the record
    function getInt(bytes32 _key) override external view returns (int r) {
        return intStorage[_key];
    }

    /// @param _key The key for the record
    function getBytes32(bytes32 _key) override external view returns (bytes32 r) {
        return bytes32Storage[_key];
    }


    /// @param _key The key for the record
    function setAddress(bytes32 _key, address _value) onlyLatestRocketNetworkContract override external {
        addressStorage[_key] = _value;
    }

    /// @param _key The key for the record
    function setUint(bytes32 _key, uint _value) onlyLatestRocketNetworkContract override external {
        uintStorage[_key] = _value;
    }

    /// @param _key The key for the record
    function setString(bytes32 _key, string calldata _value) onlyLatestRocketNetworkContract override external {
        stringStorage[_key] = _value;
    }

    /// @param _key The key for the record
    function setBytes(bytes32 _key, bytes calldata _value) onlyLatestRocketNetworkContract override external {
        bytesStorage[_key] = _value;
    }

    /// @param _key The key for the record
    function setBool(bytes32 _key, bool _value) onlyLatestRocketNetworkContract override external {
        booleanStorage[_key] = _value;
    }

    /// @param _key The key for the record
    function setInt(bytes32 _key, int _value) onlyLatestRocketNetworkContract override external {
        intStorage[_key] = _value;
    }

    /// @param _key The key for the record
    function setBytes32(bytes32 _key, bytes32 _value) onlyLatestRocketNetworkContract override external {
        bytes32Storage[_key] = _value;
    }


    /// @param _key The key for the record
    function deleteAddress(bytes32 _key) onlyLatestRocketNetworkContract override external {
        delete addressStorage[_key];
    }

    /// @param _key The key for the record
    function deleteUint(bytes32 _key) onlyLatestRocketNetworkContract override external {
        delete uintStorage[_key];
    }

    /// @param _key The key for the record
    function deleteString(bytes32 _key) onlyLatestRocketNetworkContract override external {
        delete stringStorage[_key];
    }

    /// @param _key The key for the record
    function deleteBytes(bytes32 _key) onlyLatestRocketNetworkContract override external {
        delete bytesStorage[_key];
    }

    /// @param _key The key for the record
    function deleteBool(bytes32 _key) onlyLatestRocketNetworkContract override external {
        delete booleanStorage[_key];
    }

    /// @param _key The key for the record
    function deleteInt(bytes32 _key) onlyLatestRocketNetworkContract override external {
        delete intStorage[_key];
    }

    /// @param _key The key for the record
    function deleteBytes32(bytes32 _key) onlyLatestRocketNetworkContract override external {
        delete bytes32Storage[_key];
    }


    /// @param _key The key for the record
    /// @param _amount An amount to add to the record's value
    function addUint(bytes32 _key, uint256 _amount) onlyLatestRocketNetworkContract override external {
        uintStorage[_key] = uintStorage[_key].add(_amount);
    }

    /// @param _key The key for the record
    /// @param _amount An amount to subtract from the record's value
    function subUint(bytes32 _key, uint256 _amount) onlyLatestRocketNetworkContract override external {
        uintStorage[_key] = uintStorage[_key].sub(_amount);
    }
}

File 2 of 3 : 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.5.0 <0.9.0;

// 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 3 of 3 : SafeMath.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.6.0 <0.8.0;

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        uint256 c = a + b;
        if (c < a) return (false, 0);
        return (true, c);
    }

    /**
     * @dev Returns the substraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b > a) return (false, 0);
        return (true, a - b);
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) return (true, 0);
        uint256 c = a * b;
        if (c / a != b) return (false, 0);
        return (true, c);
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a / b);
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a % b);
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) return 0;
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: division by zero");
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: modulo by zero");
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        return a - b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryDiv}.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a % b;
    }
}

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

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldGuardian","type":"address"},{"indexed":false,"internalType":"address","name":"newGuardian","type":"address"}],"name":"GuardianChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"node","type":"address"},{"indexed":true,"internalType":"address","name":"withdrawalAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"NodeWithdrawalAddressSet","type":"event"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"addUint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"confirmGuardian","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_nodeAddress","type":"address"}],"name":"confirmWithdrawalAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"deleteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"deleteBool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"deleteBytes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"deleteBytes32","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"deleteInt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"deleteString","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"deleteUint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"getAddress","outputs":[{"internalType":"address","name":"r","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"getBool","outputs":[{"internalType":"bool","name":"r","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"getBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"getBytes32","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDeployedStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getGuardian","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"getInt","outputs":[{"internalType":"int256","name":"r","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_nodeAddress","type":"address"}],"name":"getNodePendingWithdrawalAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_nodeAddress","type":"address"}],"name":"getNodeWithdrawalAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"getString","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"getUint","outputs":[{"internalType":"uint256","name":"r","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"address","name":"_value","type":"address"}],"name":"setAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"setBool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"bytes","name":"_value","type":"bytes"}],"name":"setBytes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"bytes32","name":"_value","type":"bytes32"}],"name":"setBytes32","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setDeployedStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"setGuardian","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"int256","name":"_value","type":"int256"}],"name":"setInt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"string","name":"_value","type":"string"}],"name":"setString","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setUint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_nodeAddress","type":"address"},{"internalType":"address","name":"_newWithdrawalAddress","type":"address"},{"internalType":"bool","name":"_confirm","type":"bool"}],"name":"setWithdrawalAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"subUint","outputs":[],"stateMutability":"nonpayable","type":"function"}]

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101f05760003560e01c8063a543ccea1161010f578063ca446dd9116100a2578063ebb9d8c911610071578063ebb9d8c914610702578063f6bb3cc414610725578063fd41251314610742578063febffd9914610775576101f0565b8063ca446dd91461066c578063dc97d962146106a5578063e2a4853a146106c2578063e2b202bf146106e5576101f0565b8063adb353dc116100de578063adb353dc146105dc578063bd02d0f5146105ff578063bd4391261461061c578063c031a1801461064f576101f0565b8063a543ccea1461053b578063a6ed563e14610580578063a75b87d2146105af578063abfdcced146105b7576101f0565b80634e91db08116101875780637ae1cfca116101565780637ae1cfca1461043c5780638a0dac4a146104595780638c1600951461048c578063986e791a146104a9576101f0565b80634e91db08146103525780635b49ff6214610375578063616b59f6146103a85780636e899550146103c5576101f0565b806321f8a721116101c357806321f8a721146102555780632c62ff2d1461029b5780632e28d084146102b85780633e49bed01461032f576101f0565b80630b9adc57146101f55780630e14a376146102145780631bed5241146102315780631e0ea61e1461024d575b600080fd5b6102126004803603602081101561020b57600080fd5b503561077d565b005b6102126004803603602081101561022a57600080fd5b5035610913565b610239610ace565b604080519115158252519081900360200190f35b610212610aef565b6102726004803603602081101561026b57600080fd5b5035610bd8565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610212600480360360208110156102b157600080fd5b5035610c03565b610212600480360360408110156102ce57600080fd5b813591908101906040810160208201356401000000008111156102f057600080fd5b82018360208201111561030257600080fd5b8035906020019184600183028401116401000000008311171561032457600080fd5b509092509050610dbe565b6102126004803603604081101561034557600080fd5b5080359060200135610f62565b6102126004803603604081101561036857600080fd5b50803590602001356110f9565b6102726004803603602081101561038b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611290565b610212600480360360208110156103be57600080fd5b50356112ce565b610212600480360360408110156103db57600080fd5b813591908101906040810160208201356401000000008111156103fd57600080fd5b82018360208201111561040f57600080fd5b8035906020019184600183028401116401000000008311171561043157600080fd5b50909250905061146d565b6102396004803603602081101561045257600080fd5b503561160b565b6102126004803603602081101561046f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611620565b610212600480360360208110156104a257600080fd5b50356116d3565b6104c6600480360360208110156104bf57600080fd5b5035611869565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105005781810151838201526020016104e8565b50505050905090810190601f16801561052d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102126004803603606081101561055157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001351515611926565b61059d6004803603602081101561059657600080fd5b5035611a59565b60408051918252519081900360200190f35b610272611a6b565b610212600480360360408110156105cd57600080fd5b50803590602001351515611a87565b610212600480360360408110156105f257600080fd5b5080359060200135611c4a565b61059d6004803603602081101561061557600080fd5b5035611dfe565b6102126004803603602081101561063257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611e10565b6104c66004803603602081101561066557600080fd5b5035611eca565b6102126004803603604081101561068257600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff16611f51565b61059d600480360360208110156106bb57600080fd5b5035612129565b610212600480360360408110156106d857600080fd5b508035906020013561213b565b610212600480360360208110156106fb57600080fd5b50356122d2565b6102126004803603604081101561071857600080fd5b5080359060200135612468565b6102126004803603602081101561073b57600080fd5b5035612606565b6102726004803603602081101561075857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166127a2565b6102126127cd565b600a5474010000000000000000000000000000000000000000900460ff1615156001141561084557604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166108405760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b610902565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff16806108c7575060095473ffffffffffffffffffffffffffffffffffffffff1632145b6109025760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b600090815260066020526040812055565b600a5474010000000000000000000000000000000000000000900460ff161515600114156109db57604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166109d65760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b610a98565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff1680610a5d575060095473ffffffffffffffffffffffffffffffffffffffff1632145b610a985760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b600090815260046020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600a5474010000000000000000000000000000000000000000900460ff1690565b600a5473ffffffffffffffffffffffffffffffffffffffff163314610b455760405162461bcd60e51b8152600401808060200182810382526030815260200180612afb6030913960400191505060405180910390fd5b60098054600a80547fffffffffffffffffffffffff000000000000000000000000000000000000000080841673ffffffffffffffffffffffffffffffffffffffff838116919091179586905591169091556040805192821680845293909116602083015280517fa14fc14d8620a708a896fd11392a235647d99385500a295f0d7da2a258b2e9679281900390910190a150565b60008181526004602052604090205473ffffffffffffffffffffffffffffffffffffffff165b919050565b600a5474010000000000000000000000000000000000000000900460ff16151560011415610ccb57604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff16610cc65760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b610d88565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff1680610d4d575060095473ffffffffffffffffffffffffffffffffffffffff1632145b610d885760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b600090815260056020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b600a5474010000000000000000000000000000000000000000900460ff16151560011415610e8657604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff16610e815760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b610f43565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff1680610f08575060095473ffffffffffffffffffffffffffffffffffffffff1632145b610f435760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b6000838152600160205260409020610f5c9083836129c3565b50505050565b600a5474010000000000000000000000000000000000000000900460ff1615156001141561102a57604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166110255760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b6110e7565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff16806110ac575060095473ffffffffffffffffffffffffffffffffffffffff1632145b6110e75760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b60009182526003602052604090912055565b600a5474010000000000000000000000000000000000000000900460ff161515600114156111c157604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166111bc5760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b61127e565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff1680611243575060095473ffffffffffffffffffffffffffffffffffffffff1632145b61127e5760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b60009182526006602052604090912055565b73ffffffffffffffffffffffffffffffffffffffff808216600090815260076020526040812054909116806112c85782915050610bfe565b92915050565b600a5474010000000000000000000000000000000000000000900460ff1615156001141561139657604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166113915760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b611453565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff1680611418575060095473ffffffffffffffffffffffffffffffffffffffff1632145b6114535760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b600081815260016020526040812061146a91612a6d565b50565b600a5474010000000000000000000000000000000000000000900460ff1615156001141561153557604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166115305760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b6115f2565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff16806115b7575060095473ffffffffffffffffffffffffffffffffffffffff1632145b6115f25760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b6000838152602081905260409020610f5c9083836129c3565b60009081526005602052604090205460ff1690565b60095473ffffffffffffffffffffffffffffffffffffffff16331461168c576040805162461bcd60e51b815260206004820152601760248201527f4973206e6f7420677561726469616e206163636f756e74000000000000000000604482015290519081900360640190fd5b600a80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600a5474010000000000000000000000000000000000000000900460ff1615156001141561179b57604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166117965760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b611858565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff168061181d575060095473ffffffffffffffffffffffffffffffffffffffff1632145b6118585760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b600090815260036020526040812055565b6000818152602081815260409182902080548351601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010060018616150201909316929092049182018490048402810184019094528084526060939283018282801561191a5780601f106118ef5761010080835404028352916020019161191a565b820191906000526020600020905b8154815290600101906020018083116118fd57829003601f168201915b50505050509050919050565b73ffffffffffffffffffffffffffffffffffffffff821661198e576040805162461bcd60e51b815260206004820152601a60248201527f496e76616c6964207769746864726177616c2061646472657373000000000000604482015290519081900360640190fd5b600061199984611290565b905073ffffffffffffffffffffffffffffffffffffffff811633146119ef5760405162461bcd60e51b8152600401808060200182810382526038815260200180612ac36038913960400191505060405180910390fd5b8115611a04576119ff848461287a565b610f5c565b505073ffffffffffffffffffffffffffffffffffffffff918216600090815260086020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909216179055565b60009081526006602052604090205490565b60095473ffffffffffffffffffffffffffffffffffffffff1690565b600a5474010000000000000000000000000000000000000000900460ff16151560011415611b4f57604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff16611b4a5760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b611c0c565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff1680611bd1575060095473ffffffffffffffffffffffffffffffffffffffff1632145b611c0c5760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b60009182526005602052604090912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b600a5474010000000000000000000000000000000000000000900460ff16151560011415611d1257604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff16611d0d5760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b611dcf565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff1680611d94575060095473ffffffffffffffffffffffffffffffffffffffff1632145b611dcf5760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b600082815260026020526040902054611de89082612905565b6000928352600260205260409092209190915550565b60009081526002602052604090205490565b73ffffffffffffffffffffffffffffffffffffffff818116600090815260086020526040902054163314611e755760405162461bcd60e51b815260040180806020018281038252603a815260200180612b73603a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260086020526040902080547fffffffffffffffffffffffff000000000000000000000000000000000000000016905561146a813361287a565b60008181526001602081815260409283902080548451600294821615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190911693909304601f8101839004830284018301909452838352606093909183018282801561191a5780601f106118ef5761010080835404028352916020019161191a565b600a5474010000000000000000000000000000000000000000900460ff1615156001141561201957604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166120145760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b6120d6565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff168061209b575060095473ffffffffffffffffffffffffffffffffffffffff1632145b6120d65760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b60009182526004602052604090912080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60009081526003602052604090205490565b600a5474010000000000000000000000000000000000000000900460ff1615156001141561220357604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166121fe5760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b6122c0565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff1680612285575060095473ffffffffffffffffffffffffffffffffffffffff1632145b6122c05760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b60009182526002602052604090912055565b600a5474010000000000000000000000000000000000000000900460ff1615156001141561239a57604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166123955760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b612457565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff168061241c575060095473ffffffffffffffffffffffffffffffffffffffff1632145b6124575760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b600090815260026020526040812055565b600a5474010000000000000000000000000000000000000000900460ff1615156001141561253057604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff1661252b5760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b6125ed565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff16806125b2575060095473ffffffffffffffffffffffffffffffffffffffff1632145b6125ed5760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b600082815260026020526040902054611de89082612966565b600a5474010000000000000000000000000000000000000000900460ff161515600114156126ce57604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff166126c95760405162461bcd60e51b8152600401808060200182810382526024815260200180612bad6024913960400191505060405180910390fd5b61278b565b604080517f636f6e74726163742e65786973747300000000000000000000000000000000006020808301919091523360601b602f830152825160238184030181526043909201835281519181019190912060009081526005909152205460ff1680612750575060095473ffffffffffffffffffffffffffffffffffffffff1632145b61278b5760405162461bcd60e51b8152600401808060200182810382526048815260200180612b2b6048913960600191505060405180910390fd5b600081815260208190526040812061146a91612a6d565b73ffffffffffffffffffffffffffffffffffffffff9081166000908152600860205260409020541690565b60095473ffffffffffffffffffffffffffffffffffffffff163314612839576040805162461bcd60e51b815260206004820152601760248201527f4973206e6f7420677561726469616e206163636f756e74000000000000000000604482015290519081900360640190fd5b600a80547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b73ffffffffffffffffffffffffffffffffffffffff82811660008181526007602090815260409182902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169486169485179055815142815291517fe04362a1cecc83cc66f0c6704a58da505fba1d6170f40e4543d477e76fa9175c9281900390910190a35050565b60008282018381101561295f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000828211156129bd576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826129f95760008555612a5d565b82601f10612a30578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555612a5d565b82800160010185558215612a5d579182015b82811115612a5d578235825591602001919060010190612a42565b50612a69929150612aad565b5090565b50805460018160011615610100020316600290046000825580601f10612a93575061146a565b601f01602090049060005260206000209081019061146a91905b5b80821115612a695760008155600101612aae56fe4f6e6c7920612074782066726f6d2061206e6f64652773207769746864726177616c20616464726573732063616e20757064617465206974436f6e6669726d6174696f6e206d75737420636f6d652066726f6d206e657720677561726469616e2061646472657373496e76616c6964206f72206f75746461746564206e6574776f726b20636f6e747261637420617474656d7074696e672061636365737320647572696e67206465706c6f796d656e74436f6e6669726d6174696f6e206d75737420636f6d652066726f6d207468652070656e64696e67207769746864726177616c2061646472657373496e76616c6964206f72206f75746461746564206e6574776f726b20636f6e7472616374a2646970667358221220a6aab4c70eb5aab6d329936cf2db4a95c26883cbe93588e033afb1fb38ae775f64736f6c63430007060033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.