Operator Staking Pool

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.

View Functions

lst

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

function lst() external view returns (address)

Return Values

Name
Type
Description

lst

address

address of LST

depositLimit

Returns the max amount of deposits per operator

function depositLimit() external view returns (uint256)

Return Values

Name
Type
Description

depositLimit

uint256

max amount of deposits per operator

getOperators

Returns a list of all operators

function getOperators() external view returns (address[])

Return Values

Name
Type
Description

operators

address[]

list of operators

getOperatorPrincipal

Returns an operator's principal staked balance

function getOperatorPrincipal(address _operator) public view returns (uint256)

Parameters

Name
Type
Description

_operator

address

address of operator

Return Values

Name
Type
Description

operatorPrincipal

uint256

operator principal staked amount

getOperatorStaked

Returns an operator's total staked balance

function getOperatorStaked(address _operator) public view returns (uint256)

Parameters

Name
Type
Description

_operator

address

address of operator

Return Values

Name
Type
Description

operatorStaked

uint256

operator staked amount

getTotalPrincipal

Returns the total principal staked amount

function getTotalPrincipal() external view returns (uint256)

Return Values

Name
Type
Description

totalPrincipal

uint256

total principal staked amount

getTotalStaked

Returns the total staked amount

function getTotalStaked() external view returns (uint256)

Return Values

Name
Type
Description

totalStaked

uint256

total staked amount

isOperator

Returns whether an account is an operator

function isOperator(address _account) public view returns (bool)

Return Values

Name
Type
Description

isOperator

bool

true if account is operator, false otherwise

Write Functions

onTokenTransfer

ERC677 implementation to receive deposits

function onTokenTransfer(address _sender, uint256 _value, bytes) external

Parameters

Name
Type
Description

_sender

address

address of sender

_value

uint256

amount of tokens to deposit

bytes

withdraw

Withdraws tokens

function withdraw(uint256 _amount) external

Parameters

Name
Type
Description

_amount

uint256

amount to withdraw

addOperators

Adds new operators

function addOperators(address[] _operators) external

Parameters

Name
Type
Description

_operators

address[]

list of operators to add

removeOperators

Removes existing operators

function removeOperators(address[] _operators) external

Parameters

Name
Type
Description

_operators

address[]

list of operators to remove

setDepositLimit

Sets the max amount of deposits per operator

function setDepositLimit(uint256 _depositLimit) external

Parameters

Name
Type
Description

_depositLimit

uint256

max amount of deposits per operator

Last updated