Latest 25 from a total of 25 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Distribute Balan... | 24509023 | 19 days ago | IN | 0 ETH | 0.0000077 | ||||
| Set Use Latest D... | 24484555 | 22 days ago | IN | 0 ETH | 0.00000743 | ||||
| Distribute Balan... | 23890774 | 105 days ago | IN | 0 ETH | 0.00001266 | ||||
| Distribute Balan... | 23601322 | 146 days ago | IN | 0 ETH | 0.00001473 | ||||
| Distribute Balan... | 23252911 | 195 days ago | IN | 0 ETH | 0.0000193 | ||||
| Distribute Balan... | 23107701 | 215 days ago | IN | 0 ETH | 0.00003737 | ||||
| Distribute Balan... | 22950790 | 237 days ago | IN | 0 ETH | 0.00007033 | ||||
| Distribute Balan... | 22703581 | 271 days ago | IN | 0 ETH | 0.00004392 | ||||
| Distribute Balan... | 22507094 | 299 days ago | IN | 0 ETH | 0.00003762 | ||||
| Distribute Balan... | 22349763 | 321 days ago | IN | 0 ETH | 0.00005025 | ||||
| Distribute Balan... | 22052039 | 362 days ago | IN | 0 ETH | 0.00003566 | ||||
| Distribute Balan... | 21855962 | 390 days ago | IN | 0 ETH | 0.00006338 | ||||
| Distribute Balan... | 21734228 | 407 days ago | IN | 0 ETH | 0.00012155 | ||||
| Distribute Balan... | 21484123 | 442 days ago | IN | 0 ETH | 0.0003268 | ||||
| Distribute Balan... | 21289868 | 469 days ago | IN | 0 ETH | 0.00041033 | ||||
| Reduce Bond Amou... | 21064084 | 500 days ago | IN | 0 ETH | 0.0052803 | ||||
| Distribute Balan... | 21025734 | 506 days ago | IN | 0 ETH | 0.00041228 | ||||
| Distribute Balan... | 20454853 | 585 days ago | IN | 0 ETH | 0.00026415 | ||||
| Distribute Balan... | 20207999 | 620 days ago | IN | 0 ETH | 0.00034989 | ||||
| Distribute Balan... | 19852636 | 670 days ago | IN | 0 ETH | 0.00050017 | ||||
| Distribute Balan... | 19494280 | 720 days ago | IN | 0 ETH | 0.00164914 | ||||
| Distribute Balan... | 19051908 | 782 days ago | IN | 0 ETH | 0.00106027 | ||||
| Distribute Balan... | 18866314 | 808 days ago | IN | 0 ETH | 0.00126967 | ||||
| Distribute Balan... | 18104537 | 915 days ago | IN | 0 ETH | 0.00074211 | ||||
| Stake | 17390939 | 1015 days ago | IN | 0 ETH | 0.00552416 |
Latest 25 internal transactions (View All)
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 24509023 | 19 days ago | 0.06271954 ETH | ||||
| Transfer | 24464400 | 25 days ago | 0.01195127 ETH | ||||
| Transfer | 24403238 | 34 days ago | 0.01202426 ETH | ||||
| Transfer | 24399726 | 34 days ago | 0.04823315 ETH | ||||
| Transfer | 24143519 | 70 days ago | 0.0125892 ETH | ||||
| Transfer | 24037809 | 85 days ago | 0.01255446 ETH | ||||
| Transfer | 23975881 | 93 days ago | 0.01199064 ETH | ||||
| Transfer | 23913573 | 102 days ago | 0.04609238 ETH | ||||
| Transfer | 23890774 | 105 days ago | 0.02025657 ETH | ||||
| Transfer | 23850914 | 111 days ago | 0.01251139 ETH | ||||
| Transfer | 23788623 | 120 days ago | 0.01249073 ETH | ||||
| Transfer | 23730686 | 128 days ago | 0.01247895 ETH | ||||
| Transfer | 23663246 | 137 days ago | 0.01271998 ETH | ||||
| Transfer | 23601322 | 146 days ago | 0.04556434 ETH | ||||
| Transfer | 23599554 | 146 days ago | 0.04673277 ETH | ||||
| Transfer | 23534903 | 155 days ago | 0.01301011 ETH | ||||
| Transfer | 23471026 | 164 days ago | 0.01312903 ETH | ||||
| Transfer | 23404342 | 173 days ago | 0.01320623 ETH | ||||
| Transfer | 23338375 | 183 days ago | 0.01328217 ETH | ||||
| Transfer | 23271665 | 192 days ago | 0.01356 ETH | ||||
| Transfer | 23252911 | 195 days ago | 0.06323586 ETH | ||||
| Transfer | 23204032 | 201 days ago | 0.0136602 ETH | ||||
| Transfer | 23135836 | 211 days ago | 0.14305477 ETH | ||||
| Transfer | 23107701 | 215 days ago | 0.01110883 ETH | ||||
| Transfer | 23067469 | 220 days ago | 0.01374197 ETH |
Cross-Chain Transactions
Withdrawals
Latest 25 from a total of 115 withdrawals (2.857591915 ETH withdrawn)
| Validator Index | Block | Amount | |
|---|---|---|---|
| 715565 | 24641881 | 20 hrs ago | 0.016468132 ETH |
| 715565 | 24582406 | 9 days ago | 0.0159526 ETH |
| 715565 | 24522951 | 17 days ago | 0.016620933 ETH |
| 715565 | 24463293 | 25 days ago | 0.016773717 ETH |
| 715565 | 24403200 | 34 days ago | 0.016876156 ETH |
| 715565 | 24342970 | 42 days ago | 0.015872412 ETH |
| 715565 | 24282719 | 50 days ago | 0.017084995 ETH |
| 715565 | 24222257 | 59 days ago | 0.017274956 ETH |
| 715565 | 24161404 | 67 days ago | 0.017463293 ETH |
| 715565 | 24099921 | 76 days ago | 0.017669062 ETH |
| 715565 | 24037808 | 85 days ago | 0.017620298 ETH |
| 715565 | 23975880 | 93 days ago | 0.016828981 ETH |
| 715565 | 23913572 | 102 days ago | 0.064691065 ETH |
| 715565 | 23850901 | 111 days ago | 0.017559856 ETH |
| 715565 | 23788621 | 120 days ago | 0.017530858 ETH |
| 715565 | 23726058 | 128 days ago | 0.017514322 ETH |
| 715565 | 23663245 | 137 days ago | 0.017852608 ETH |
| 715565 | 23599553 | 146 days ago | 0.065589853 ETH |
| 715565 | 23534897 | 155 days ago | 0.018259813 ETH |
| 715565 | 23469731 | 164 days ago | 0.01842671 ETH |
| 715565 | 23404340 | 173 days ago | 0.018535063 ETH |
| 715565 | 23338374 | 183 days ago | 0.018641656 ETH |
| 715565 | 23271664 | 192 days ago | 0.01903158 ETH |
| 715565 | 23204031 | 201 days ago | 0.019172218 ETH |
| 715565 | 23135835 | 211 days ago | 0.200778628 ETH |
Minimal Proxy Contract for 0x560656c8947564363497e9c78a8bdeff8d3eff33
Contract Source Code (Solidity Standard Json-Input format)
/**
* .
* / \
* |.'.|
* |'.'|
* ,'| |`.
* |,-'-|-'-.|
* __|_| | _ _ _____ _
* | ___ \| | | | | | ___ \ | |
* | |_/ /|__ ___| | _____| |_ | |_/ /__ ___ | |
* | // _ \ / __| |/ / _ \ __| | __/ _ \ / _ \| |
* | |\ \ (_) | (__| < __/ |_ | | | (_) | (_) | |
* \_| \_\___/ \___|_|\_\___|\__| \_| \___/ \___/|_|
* +---------------------------------------------------+
* | 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
*
*/
// SPDX-License-Identifier: GPL-3.0-only
pragma solidity 0.7.6;
import "./RocketMinipoolStorageLayout.sol";
import "../../interface/RocketStorageInterface.sol";
import "../../interface/minipool/RocketMinipoolBaseInterface.sol";
/// @notice Contains the initialisation and delegate upgrade logic for minipools
contract RocketMinipoolBase is RocketMinipoolBaseInterface, 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);
// Store a reference to the address of RocketMinipoolBase itself to prevent direct calls to this contract
address immutable self;
constructor () {
self = address(this);
}
/// @dev Prevent direct calls to this contract
modifier notSelf() {
require(address(this) != self);
_;
}
/// @dev 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");
_;
}
/// @notice Sets up starting delegate contract and then delegates initialisation to it
function initialise(address _rocketStorage, address _nodeAddress) external override notSelf {
// Check input
require(_nodeAddress != address(0), "Invalid node address");
require(storageState == StorageState.Undefined, "Already initialised");
// Set storage state to uninitialised
storageState = StorageState.Uninitialised;
// Set rocketStorage
rocketStorage = RocketStorageInterface(_rocketStorage);
// 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)', _nodeAddress));
if (!success) { revert(getRevertMessage(data)); }
}
/// @notice Receive an ETH deposit
receive() external payable notSelf {
// Emit ether received event
emit EtherReceived(msg.sender, msg.value, block.timestamp);
}
/// @notice Upgrade this minipool to the latest network delegate contract
function delegateUpgrade() external override onlyMinipoolOwner notSelf {
// 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);
}
/// @notice Rollback to previous delegate contract
function delegateRollback() external override onlyMinipoolOwner notSelf {
// 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);
}
/// @notice Sets the flag to automatically use the latest delegate contract or not
/// @param _setting If true, will always use the latest delegate contract
function setUseLatestDelegate(bool _setting) external override onlyMinipoolOwner notSelf {
useLatestDelegate = _setting;
}
/// @notice Returns true if this minipool always uses the latest delegate contract
function getUseLatestDelegate() external override view returns (bool) {
return useLatestDelegate;
}
/// @notice Returns the address of the minipool's stored delegate
function getDelegate() external override view returns (address) {
return rocketMinipoolDelegate;
}
/// @notice Returns the address of the minipool's previous delegate (or address(0) if not set)
function getPreviousDelegate() external override view returns (address) {
return rocketMinipoolDelegatePrev;
}
/// @notice Returns the delegate which will be used when calling this minipool taking into account useLatestDelegate setting
function getEffectiveDelegate() external override view returns (address) {
return useLatestDelegate ? getContractAddress("rocketMinipoolDelegate") : rocketMinipoolDelegate;
}
/// @notice Delegates all calls to minipool delegate contract (or latest if flag is set)
fallback(bytes calldata _input) external payable notSelf 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;
}
/// @dev 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;
}
/// @dev 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));
}
/// @dev 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 view returns (bool) {
uint32 codeSize;
assembly {
codeSize := extcodesize(_contractAddress)
}
return codeSize > 0;
}
}/**
* .
* / \
* |.'.|
* |'.'|
* ,'| |`.
* |,-'-|-'-.|
* __|_| | _ _ _____ _
* | ___ \| | | | | | ___ \ | |
* | |_/ /|__ ___| | _____| |_ | |_/ /__ ___ | |
* | // _ \ / __| |/ / _ \ __| | __/ _ \ / _ \| |
* | |\ \ (_) | (__| < __/ |_ | | | (_) | (_) | |
* \_| \_\___/ \___|_|\_\___|\__| \_| \___/ \___/|_|
* +---------------------------------------------------+
* | 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;
}/**
* .
* / \
* |.'.|
* |'.'|
* ,'| |`.
* |,-'-|-'-.|
* __|_| | _ _ _____ _
* | ___ \| | | | | | ___ \ | |
* | |_/ /|__ ___| | _____| |_ | |_/ /__ ___ | |
* | // _ \ / __| |/ / _ \ __| | __/ _ \ / _ \| |
* | |\ \ (_) | (__| < __/ |_ | | | (_) | (_) | |
* \_| \_\___/ \___|_|\_\___|\__| \_| \___/ \___/|_|
* +---------------------------------------------------+
* | 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)
Variable // Indicates this minipool is of the new generation that supports a variable deposit amount
}/**
* .
* / \
* |.'.|
* |'.'|
* ,'| |`.
* |,-'-|-'-.|
* __|_| | _ _ _____ _
* | ___ \| | | | | | ___ \ | |
* | |_/ /|__ ___| | _____| |_ | |_/ /__ ___ | |
* | // _ \ / __| |/ / _ \ __| | __/ _ \ / _ \| |
* | |\ \ (_) | (__| < __/ |_ | | | (_) | (_) | |
* \_| \_\___/ \___|_|\_\___|\__| \_| \___/ \___/|_|
* +---------------------------------------------------+
* | 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, // NO LONGER USED
Dissolved // The minipool has been dissolved and its user deposited ETH has been returned to the deposit pool
}/**
* .
* / \
* |.'.|
* |'.'|
* ,'| |`.
* |,-'-|-'-.|
* __|_| | _ _ _____ _
* | ___ \| | | | | | ___ \ | |
* | |_/ /|__ ___| | _____| |_ | |_/ /__ ___ | |
* | // _ \ / __| |/ / _ \ __| | __/ _ \ / _ \| |
* | |\ \ (_) | (__| < __/ |_ | | | (_) | (_) | |
* \_| \_\___/ \___|_|\_\___|\__| \_| \___/ \___/|_|
* +---------------------------------------------------+
* | 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; // NO LONGER IN USE
uint256 internal nodeRefundBalance;
uint256 internal nodeSlashBalance;
// User deposit details
uint256 internal userDepositBalanceLegacy;
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 internal storageState = StorageState.Undefined;
// Whether node operator has finalised the pool
bool internal finalised;
// Trusted member scrub votes
mapping(address => bool) internal memberScrubVotes;
uint256 internal totalScrubVotes;
// Variable minipool
uint256 internal preLaunchValue;
uint256 internal userDepositBalance;
// Vacant minipool
bool internal vacant;
uint256 internal preMigrationBalance;
// User distribution
bool internal userDistributed;
uint256 internal userDistributeTime;
}/**
* .
* / \
* |.'.|
* |'.'|
* ,'| |`.
* |,-'-|-'-.|
* __|_| | _ _ _____ _
* | ___ \| | | | | | ___ \ | |
* | |_/ /|__ ___| | _____| |_ | |_/ /__ ___ | |
* | // _ \ / __| |/ / _ \ __| | __/ _ \ / _ \| |
* | |\ \ (_) | (__| < __/ |_ | | | (_) | (_) | |
* \_| \_\___/ \___|_|\_\___|\__| \_| \___/ \___/|_|
* +---------------------------------------------------+
* | 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 RocketMinipoolBaseInterface {
function initialise(address _rocketStorage, address _nodeAddress) external;
function delegateUpgrade() external;
function delegateRollback() external;
function setUseLatestDelegate(bool _setting) external;
function getUseLatestDelegate() external view returns (bool);
function getDelegate() external view returns (address);
function getPreviousDelegate() external view returns (address);
function getEffectiveDelegate() external view returns (address);
}{
"optimizer": {
"enabled": true,
"runs": 15000
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}Contract ABI
API[{"inputs":[],"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":"address","name":"_rocketStorage","type":"address"},{"internalType":"address","name":"_nodeAddress","type":"address"}],"name":"initialise","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_setting","type":"bool"}],"name":"setUseLatestDelegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Net Worth in USD
Net Worth in ETH
Token Allocations
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $2,128.41 | 0.049 | $104.38 |
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.