Function: distributeReward(uint256 assets)
Distribute a reward to the OstiumVault. Normally called by OstiumTradingCallbacks to distribute the liquidation fee, but it is also callable by anyone wishing to donate to the vault.
Inputs
- assets- Control: Arbitrary. 
- Constraints: Transfer must succeed. 
- Impact: Amount of assets to distribute as rewards. 
 
Branches and code coverage
Intended branches
- Reward distribution succeeds. 
Negative behavior
- Reward distribution fails due to transfer failure. 
Function call analysis
- SafeERC20Upgradeable.safeTransferFrom(this._assetIERC20(), sender, address(this), assets)- What is controllable? Only - assets.
- If the return value is controllable, how is it used and how can it go wrong? N/A. 
- What happens if it reverts, reenters or does other unusual control flow? If the transfer fails, the call reverts. If there is reentrancy due to a future USDC upgrade that adds outgoing hooks, the state of the contract is the same and valid both before and after the transfer.