SafetyModule
Inherits: ISafetyModule, IncreAccessControl, Pausable, ReentrancyGuard
Author: webthethird
Handles reward accrual and distribution for staked tokens, and allows governance to auction a percentage of user funds in the event of an insolvency in the vault
State Variables
governance
Address of the governance contract
auctionModule
Address of the auction module, which sells user funds in the event of an insolvency
smRewardDistributor
Address of the SMRewardDistributor contract, which distributes rewards to stakers
stakedTokens
Array of staked tokens that are registered with the SafetyModule
stakedTokenByAuctionId
Mapping from auction ID to staked token that was slashed for the auction
Functions
onlyAuctionModule
Modifier for functions that can only be called by the AuctionModule contract, i.e., auctionEnded
constructor
SafetyModule constructor
Parameters
getStakedTokens
Returns the full list of staked tokens registered in the SafetyModule
Returns
getNumStakedTokens
Gets the number of staked tokens registered in the SafetyModule
Returns
getStakedTokenIdx
Returns the index of the staked token in the stakedTokens
array
Reverts with SafetyModule_InvalidStakedToken
if the staked token is not registered
Parameters
Returns
auctionEnded
Called by the AuctionModule when an auction ends, and returns the remaining balance of underlying tokens from the auction to the StakedToken
Only callable by the auction module
Parameters
slashAndStartAuction
Slashes a portion of all users' staked tokens, capped by maxPercentUserLoss, then transfers the underlying tokens to the AuctionModule and starts an auction to sell them
Only callable by governance
Parameters
Returns
terminateAuction
Terminates an auction early and returns any remaining underlying tokens to the StakedToken
Only callable by governance
Parameters
withdrawFundsRaisedFromAuction
Sends payment tokens raised in auctions from the AuctionModule to the governance treasury
Only callable by governance
Parameters
setAuctionModule
Sets the address of the AuctionModule contract
Only callable by governance
Parameters
setRewardDistributor
Sets the address of the SMRewardDistributor contract
Only callable by governance
Parameters
addStakedToken
Adds a new staked token to the SafetyModule's stakedTokens array
Only callable by governance, reverts if the staked token is already registered
Parameters
pause
Pause the contract
Only callable by governance
unpause
Unpause the contract
Only callable by governance
_returnFunds
_settleSlashing
Last updated