Latest 15 from a total of 15 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Distribute Balan... | 24507040 | 14 days ago | IN | 0 ETH | 0.00011875 | ||||
| Distribute Balan... | 24078509 | 74 days ago | IN | 0 ETH | 0.00011753 | ||||
| Distribute Balan... | 23751373 | 120 days ago | IN | 0 ETH | 0.00012626 | ||||
| Distribute Balan... | 23374341 | 172 days ago | IN | 0 ETH | 0.00017708 | ||||
| Distribute Balan... | 22941958 | 233 days ago | IN | 0 ETH | 0.00047213 | ||||
| Distribute Balan... | 22377215 | 312 days ago | IN | 0 ETH | 0.00014902 | ||||
| Distribute Balan... | 21916713 | 376 days ago | IN | 0 ETH | 0.00021002 | ||||
| Distribute Balan... | 21607391 | 419 days ago | IN | 0 ETH | 0.00026322 | ||||
| Distribute Balan... | 21102572 | 490 days ago | IN | 0 ETH | 0.0004832 | ||||
| Set Use Latest D... | 21102547 | 490 days ago | IN | 0 ETH | 0.00021064 | ||||
| Distribute Balan... | 20620311 | 557 days ago | IN | 0 ETH | 0.00032762 | ||||
| Distribute Balan... | 20207274 | 615 days ago | IN | 0 ETH | 0.00045411 | ||||
| Distribute Balan... | 19606674 | 699 days ago | IN | 0 ETH | 0.00165364 | ||||
| Distribute Balan... | 18901443 | 798 days ago | IN | 0 ETH | 0.00146752 | ||||
| Stake | 17336446 | 1017 days ago | IN | 0 ETH | 0.01104408 |
Latest 25 internal transactions (View All)
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 24507040 | 14 days ago | 0.04260404 ETH | ||||
| Transfer | 24464473 | 20 days ago | 0.01081547 ETH | ||||
| Transfer | 24406499 | 28 days ago | 0.01085393 ETH | ||||
| Transfer | 24396188 | 29 days ago | 0.05573794 ETH | ||||
| Transfer | 24078509 | 74 days ago | 0.04791071 ETH | ||||
| Transfer | 24036702 | 80 days ago | 0.01133245 ETH | ||||
| Transfer | 23974787 | 88 days ago | 0.01137045 ETH | ||||
| Transfer | 23912465 | 97 days ago | 0.01150917 ETH | ||||
| Transfer | 23849794 | 106 days ago | 0.04138705 ETH | ||||
| Transfer | 23787514 | 115 days ago | 0.0114499 ETH | ||||
| Transfer | 23751373 | 120 days ago | 0.0390268 ETH | ||||
| Transfer | 23730985 | 122 days ago | 0.01148837 ETH | ||||
| Transfer | 23662137 | 132 days ago | 0.01163822 ETH | ||||
| Transfer | 23598719 | 141 days ago | 0.01182209 ETH | ||||
| Transfer | 23533929 | 150 days ago | 0.01190822 ETH | ||||
| Transfer | 23471399 | 159 days ago | 0.0119844 ETH | ||||
| Transfer | 23403209 | 168 days ago | 0.01206653 ETH | ||||
| Transfer | 23374341 | 172 days ago | 0.05753605 ETH | ||||
| Transfer | 23337238 | 177 days ago | 0.01216536 ETH | ||||
| Transfer | 23270526 | 187 days ago | 0.01232818 ETH | ||||
| Transfer | 23202876 | 196 days ago | 0.04260009 ETH | ||||
| Transfer | 23134682 | 206 days ago | 0.01246741 ETH | ||||
| Transfer | 23066310 | 215 days ago | 0.01248803 ETH | ||||
| Transfer | 22997817 | 225 days ago | 0.01248825 ETH | ||||
| Transfer | 22941958 | 233 days ago | 0.061474 ETH |
Cross-Chain Transactions
Withdrawals
Latest 25 from a total of 116 withdrawals (2.525736348 ETH withdrawn)
| Validator Index | Block | Amount | |
|---|---|---|---|
| 677623 | 24581365 | 3 days ago | 0.016525673 ETH |
| 677623 | 24521909 | 12 days ago | 0.016599303 ETH |
| 677623 | 24462251 | 20 days ago | 0.016768175 ETH |
| 677623 | 24402150 | 29 days ago | 0.0168278 ETH |
| 677623 | 24341912 | 37 days ago | 0.016925962 ETH |
| 677623 | 24281662 | 45 days ago | 0.017087338 ETH |
| 677623 | 24221190 | 54 days ago | 0.017251737 ETH |
| 677623 | 24160322 | 62 days ago | 0.017499197 ETH |
| 677623 | 24098825 | 71 days ago | 0.017651191 ETH |
| 677623 | 24036701 | 80 days ago | 0.017569703 ETH |
| 677623 | 23974780 | 88 days ago | 0.017628612 ETH |
| 677623 | 23912464 | 97 days ago | 0.017843676 ETH |
| 677623 | 23849793 | 106 days ago | 0.06416598 ETH |
| 677623 | 23787513 | 115 days ago | 0.017751791 ETH |
| 677623 | 23724949 | 123 days ago | 0.017811436 ETH |
| 677623 | 23662135 | 132 days ago | 0.018043758 ETH |
| 677623 | 23598444 | 141 days ago | 0.018328827 ETH |
| 677623 | 23533788 | 150 days ago | 0.018462367 ETH |
| 677623 | 23468603 | 159 days ago | 0.01858047 ETH |
| 677623 | 23403208 | 168 days ago | 0.018707801 ETH |
| 677623 | 23337237 | 177 days ago | 0.018861025 ETH |
| 677623 | 23270521 | 187 days ago | 0.019113461 ETH |
| 677623 | 23202875 | 196 days ago | 0.066046656 ETH |
| 677623 | 23134676 | 206 days ago | 0.01932933 ETH |
| 677623 | 23066309 | 215 days ago | 0.019361299 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% | $1,949.01 | 0.0331 | $64.56 |
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.