SSVNetwork

The SSVNetwork contract is the main contract for operations and management.

Repository

Operator Methods

registerOperator (publicKey, operatorFee)

Description: Registers a new operator (key) with a set fee, fails if fee is less than the minimal fee.

removeOperator (operatorId)

Description: Permanently removes the operator from the network (irreversible).

withdrawOperatorEarnings (operatorId)

Description: Withdraws a specified amount of SSV tokens from provided operator balance to msg.sender, will fail if msg.sender is not the operator owner.

withdrawOperatorEarnings (operatorId)

Description: Withdraws all SSV tokens earnings from provided operator balance to msg.sender, will fail if msg.sender is not the operator owner.

setOperatorWhitelist (operatorId, whitelisted)

Description: Sets a whitelisted address that can select him as their operator (setting a whitelist address transitions the operator from public to permissioned).

declareOperatorFee (operatorId, operatorFee)

Description: Initiates the first step of the operator fee update cycle - declaration of a new fee. After specified time window operator will be able to change to the new fee with executeOperatorFee().

executeOperatorFee ()

Description: Activates operator’s fee change specified in previously called declareOperatorFee(). This function needs to be called within a certain time window following declareOperatorFee().

cancelDeclaredOperatorFee (operatorId)

Description: Cancels operator’s fee change requested in previously called declareOperatorFee().

reduceOperatorFee (operatorId, fee)

Description: Reduce the operator fee, does not abide by the restrictions of fee increase

Account Methods

setFeeRecipientAddress (feeRecipientAddress)

Description: sets a fee recipient address to receive tips from user transactions (part block proposal rewards). This address will be set for all the account’s validators (all clusters).

Cluster Methods

registerValidator (publicKey, operatorIds, shares, amount, cluster)

Description: Registers new validator to a cluster of provided operators (ids + shares), fails if number of operatorIds is greater than 13..

removeValidator (publicKey, operatorIds, cluster)

Description: Removes validator from the SSV network.

deposit (owner, operatorIds, amount, cluster)

Description: Deposits SSV token into a cluster, will fail if not enough tokens are approved.

withdraw (operatorIds, amount, cluster)

Description: Withdraws a specified amount of SSV tokens from cluster of msg.sender, will fail if msg.sender tries to withdraw more than the cluster’s liquidation collateral. To withdraw the entire cluster balance and stop its operation use liquidate().

reactivate(operatorIds, amount, cluster)

Description: Reactivates a liquidated cluster, will fail if insufficient SSV tokens to cover the cluster’s liquidation collateral have been deposited.

Liquidator Methods

Write methods for liquidators

liquidate (owner, operatorIds, cluster)

Description: Liquidates a cluster sends their balances to the msg.sender (the Liquidator), will fail if the cluster is not liquidatable (see isLiquidatable()).

Governance Methods

updateNetworkFee (networkFee)

Description: Updates network fee.

withdrawNetworkEarnings (amount)

Description: Withdraws accumulated network fees in SSV token to DAO treasury.

updateLiquidationThresholdPeriod (blocks)

Description: Sets the minimum period (in blocks) after which a cluster can be liquidated.

updateMinimumLiquidationCollateral (amount)

Description: Sets the minimum collateral (in $SSV) each cluster must keep in his balance.

updateOperatorFeeIncreaseLimit (newOperatorMaxFeeIncrease)

Description: Sets the max amount by which operators can increase fees in each fee update cycle. This does not limit max operator fee, only the rate (%) by which it can be increased within each fee update cycle.

updateDeclareOperatorFeePeriod (seconds)

Description: Sets the time window (in seconds) between the declaration and activation of a new operator fee.

updateExecuteOperatorFeePeriod (seconds)

Description: Sets the time window (in seconds) in which an operator can activate a new fee.

Last updated