Skip to main content

VaultViewer

VaultViewer is a read-only utility contract designed to simplify querying aggregated data about staking vaults managed by the VaultHub.

Currently, these are view-only contracts, designed to provide easy read access to staking data.

Upgradability

This contract is not upgradable and is intended solely for efficient on-chain data aggregation and access.

Data Structures

VaultData

Holds aggregated data for a vault:

FieldType
vaultAddressaddress
connectionVaultHub.VaultConnection
recordVaultHub.VaultRecord
totalValueuint256
liabilityStETHuint256
nodeOperatorFeeRateuint256
isReportFreshbool

VaultMembers

Holds information about members related to a vault:

FieldType
vaultaddress
owneraddress
nodeOperatoraddress
membersaddress[][]

Methods

vaultsConnected

Returns all connected vaults registered in the VaultHub.

function vaultsConnected() view returns(IStakingVault[])

vaultsConnectedBound

Returns connected vaults within a specified index range and number of leftover vaults.

function vaultsConnectedBound(uint256 _from, uint256 _to)
view returns(IStakingVault[] memory, uint256)

vaultsByOwner

Returns vaults owned by a specific address.

function vaultsByOwner(address _owner) view returns(IStakingVault[])

vaultsByOwnerBound

Returns vaults owned by an address within a specific range and leftover count.

function vaultsByOwnerBound(address _owner, uint256 _from, uint256 _to)
view returns(IStakingVault[] memory, uint256)

vaultsByRole

Returns vaults where a member holds a specific role on the vault's owner contract.

function vaultsByRole(bytes32 _role, address _member) view returns(IStakingVault[])

vaultsByRoleBound

Returns vaults for a role and member within a range and leftover count.

function vaultsByRoleBound(bytes32 _role, address _member, uint256 _from, uint256 _to)
view returns(IStakingVault[] memory, uint256)

getVaultData

Returns aggregated data for a specific vault, including value, liabilities, and operator fee.

function getVaultData(address vault)
view returns(
VaultData {
address vaultAddress;
VaultHub.VaultConnection connection;
VaultHub.VaultRecord record;
uint256 totalValue;
uint256 liabilityStETH;
uint256 nodeOperatorFeeRate;
bool isReportFresh;
}
)

getVaultsDataBound

Returns aggregated data for connected vaults within a range.

function getVaultsDataBound(uint256 _from, uint256 _to)
view returns(VaultData[] memory, uint256)

getRoleMembers

Returns detailed role members data for a vault owner.

function getRoleMembers(address vaultAddress, bytes32[] calldata roles)
view returns(
VaultMembers {
address vault;
address owner;
address nodeOperator;
address[][] members;
}
)

getRoleMembersBatch

Returns role members data for multiple vaults.

function getRoleMembersBatch(address[] calldata vaultAddresses, bytes32[] calldata roles)
view returns(VaultMembers[] memory)