Several contracts in the Tapioca protocol are extending the Pausable contract but are not implementing the pausing/unpausing functionality. This means that critical functions cannot be paused in case of emergency.
Vulnerability Detail
mTOFT.sol, TOFT.sol, Usdo.sol, AssetToSGLPLeverageExecutor.sol contracts are extending the Pausable contract but are not implementing the pausing/unpausing functionality.
GiuseppeDeLaZara
medium
Pausable is not implemented
Summary
Several contracts in the Tapioca protocol are extending the
Pausable
contract but are not implementing the pausing/unpausing functionality. This means that critical functions cannot be paused in case of emergency.Vulnerability Detail
mTOFT.sol
,TOFT.sol
,Usdo.sol
,AssetToSGLPLeverageExecutor.sol
contracts are extending thePausable
contract but are not implementing the pausing/unpausing functionality.There are numerous functions in the aforementioned contracts that use the
whenNotPaused
modifier, e.g.But pausing can never be activated as the pausing functionality is not implemented.
Impact
Critical functions cannot be paused in case of emergency as the pausing functionality is not implemented.
Code Snippet
Tool used
Manual Review
Recommendation
Recommendation
Include the following function in the contracts to implement the pausing functionality:
Duplicate of #64