Skip to content

link staking contracts

OperatorStakingPool: Node Operator LST Balances

The OperatorStakingPool tracks node operator LST balances for the purpose of differentiating from community LST balances. Node operators are required to stake their LSTs into this contract.

Returns the address of the liquid staking token supported by this pool

function lst() external view returns (address)
Name Type Description
lst address address of LST

Returns the max amount of deposits per operator

function depositLimit() external view returns (uint256)
Name Type Description
depositLimit uint256 max amount of deposits per operator

Returns a list of all operators

function getOperators() external view returns (address[])
Name Type Description
operators address[] list of operators

Returns an operator’s principal staked balance

function getOperatorPrincipal(address _operator) public view returns (uint256)
Name Type Description
_operator address address of operator
Name Type Description
operatorPrincipal uint256 operator principal staked amount

Returns an operator’s total staked balance

function getOperatorStaked(address _operator) public view returns (uint256)
Name Type Description
_operator address address of operator
Name Type Description
operatorStaked uint256 operator staked amount

Returns the total principal staked amount

function getTotalPrincipal() external view returns (uint256)
Name Type Description
totalPrincipal uint256 total principal staked amount

Returns the total staked amount

function getTotalStaked() external view returns (uint256)
Name Type Description
totalStaked uint256 total staked amount

Returns whether an account is an operator

function isOperator(address _account) public view returns (bool)
Name Type Description
isOperator bool true if account is operator, false otherwise

ERC677 implementation to receive deposits

function onTokenTransfer(address _sender, uint256 _value, bytes) external
Name Type Description
_sender address address of sender
_value uint256 amount of tokens to deposit
bytes

Withdraws tokens

function withdraw(uint256 _amount) external
Name Type Description
_amount uint256 amount to withdraw

Adds new operators

function addOperators(address[] _operators) external
Name Type Description
_operators address[] list of operators to add

Removes existing operators

function removeOperators(address[] _operators) external
Name Type Description
_operators address[] list of operators to remove

Sets the max amount of deposits per operator

function setDepositLimit(uint256 _depositLimit) external
Name Type Description
_depositLimit uint256 max amount of deposits per operator