Streaming Fees

StreamingFeeModule.sol

accrueFee

Calculates total inflation percentage then mints new Sets to the fee recipient. Position units are then adjusted down (in magnitude) in order to ensure full collateralization. Callable by anyone.

function accrueFee(ISetToken _setToken) public
  • _setToken Address of SetToken

initialize

Initialize module with SetToken and set the fee state for the SetToken. Passed _settings will have lastStreamingFeeTimestamp over-written.

function initialize (ISetToken _setToken, FeeState memory _settings) external
  • _setToken Address of SetToken

  • _settings FeeState struct defining fee parameters

removeModule

Removes this module from the SetToken, via call by the SetToken. Manager's feeState is deleted. Fees are not accrued in case reason for removing module is related to fee accrual. Only callable by the SetToken's manager.

function removeModule() external

updateStreamingFee

Set new streaming fee. Fees accrue at current rate then new rate is set. Fees are accrued to prevent the manager from unfairly accruing a larger percentage. Only callable by the SetToken's manager.

function updateStreamingFee(ISetToken _setToken, uint256 _newFee) external
  • _setToken Address of SetToken

  • _newFee New streaming fee 18 decimal precision

updateFeeRecipient

Set new fee recipient.

function updateFeeRecipient(ISetToken _setToken, address _newFeeRecipient) external
  • _setToken Address of SetToken

  • _newFeeRecipient New fee recipient

getFee

Calculates total inflation percentage in order to accrue fees to manager.

function getFee(ISetToken _setToken) external view returns (uint256)
  • _setToken Address of SetToken

  • return uint256 Percent inflation of supply

Last updated