Assessment reports>Cega>Threat Models>Function: calculateCurrentYield(address vaultAddress)
GeneralOverview
Threat ModelsWhat are threat models?CegaState.sol
FCNProduct.solFunction: addOptionBarrier(address vaultAddress, OptionBarrier optionBarrier)Function: addToDepositQueue(uint256 amount, address receiver)Function: addToWithdrawalQueue(address vaultAddress, uint256 amountShares, address receiver)Function: calculateCurrentYield(address vaultAddress)Function: calculateVaultFinalPayoff(address vaultAddress)Function: checkBarriers(address vaultAddress)Function: createVault(string _tokenName, string _tokenSymbol, uint256 _vaultStart)Function: openVaultDeposits(address vaultAddress)Function: processDepositQueue(address vaultAddress, uint256 maxProcessCount)Function: processWithdrawalQueue(address vaultAddress, uint256 maxProcessCount)Function: receiveAssetsFromCegaState(address vaultAddress, uint256 amount)Function: removeOptionBarrier(address vaultAddress, uint256 index, string _asset)Function: removeVault(address vaultAddress)Function: rolloverVault(address vaultAddress)Function: setIsDepositQueueOpen(bool _isDepositQueueOpen)Function: setKnockInStatus(address vaultAddress, bool newState)Function: setManagementFeeBps(uint256 _managementFeeBps)Function: setMaxDepositAmountLimit(uint256 _maxDepositAmountLimit)Function: setTradeData(address vaultAddress, uint256 _tradeDate, uint256 _tradeExpiry, uint256 _aprBps, uint256 _tenorInDays)Function: setVaultMetadata(address vaultAddress, FCNVaultMetadata metadata)Function: setVaultStatus(address vaultAddress, VaultStatus _vaultStatus)Function: setYieldFeeBps(uint256 _yieldFeeBps)Function: updateOptionBarrierOracle(address vaultAddress, uint256 index, string _asset, string newOracleName)
Oracle.sol

Function: calculateCurrentYield(address vaultAddress)

Updates the metadata of the vault specified by vaultAddress to account for any yield accumulated up until the current day. The accumulated amount is stored in the metadata's totalCouponPayoff property. If the trade has already expired, then the vault's status is set to TradeExpired.

Inputs

  • vaultAddress

    • Control: Fully controlled.

    • Constraints: Vault's status must be set to Traded.

    • Impact: Updates this vault's metadata.

Branches and code coverage (including function calls)

Intended branches

  • Should set vaultStatus to TradeExpired if time is past trade expiry.

  • Should calculate the totalCouponPayoff correctly.

  • Should not calculate totalCouponPayoff if the trade has already expired.

Negative behaviour

  • Must revert if the vaultStatus is not set to Traded.

Zellic © 2024Back to top ↑