@@ -117,9 +117,14 @@ contract FeeSplitExtension is BaseExtension, TimeLockUpgrade, MutualUpgrade {
117
117
*
118
118
* This method is called after invoking `replaceProtectedModule` or `emergencyReplaceProtectedModule`
119
119
* to configure the replacement streaming fee module's fee settings.
120
+ *
121
+ * @param _maxManagerFee Max size of issuance and redeem fees in precise units (10^16 = 1%).
122
+ * @param _managerIssueFee Manager issuance fees in precise units (10^16 = 1%)
123
+ * @param _managerRedeemFee Manager redeem fees in precise units (10^16 = 1%)
124
+ * @param _feeRecipient Address that receives all manager issue and redeem fees
125
+ * @param _managerIssuanceHook Address of manager defined hook contract
120
126
*/
121
127
function initializeIssuanceModule (
122
- ISetToken _setToken ,
123
128
uint256 _maxManagerFee ,
124
129
uint256 _managerIssueFee ,
125
130
uint256 _managerRedeemFee ,
@@ -148,6 +153,17 @@ contract FeeSplitExtension is BaseExtension, TimeLockUpgrade, MutualUpgrade {
148
153
*
149
154
* This method is called after invoking `replaceProtectedModule` or `emergencyReplaceProtectedModule`
150
155
* to configure the replacement streaming fee module's fee settings.
156
+ *
157
+ * @dev FeeState settings encode the following struct
158
+ * ```
159
+ * struct FeeState {
160
+ * address feeRecipient; // Address to accrue fees to
161
+ * uint256 maxStreamingFeePercentage; // Max streaming fee maanager commits to using (1% = 1e16, 100% = 1e18)
162
+ * uint256 streamingFeePercentage; // Percent of Set accruing to manager annually (1% = 1e16, 100% = 1e18)
163
+ * uint256 lastStreamingFeeTimestamp; // Timestamp last streaming fee was accrued
164
+ *}
165
+ *```
166
+ * @param _settings FeeModule.FeeState settings
151
167
*/
152
168
function initializeStreamingFeeModule (IStreamingFeeModule.FeeState memory _settings )
153
169
external
@@ -167,7 +183,12 @@ contract FeeSplitExtension is BaseExtension, TimeLockUpgrade, MutualUpgrade {
167
183
* this function to execute the update. Because the method is timelocked, each party must call it twice:
168
184
* once to set the lock and once to execute.
169
185
*
186
+ * Method is timelocked to protect token owners from sudden changes in fee structure which
187
+ * they would rather not bear. The delay gives them a chance to exit their positions without penalty.
188
+ *
170
189
* NOTE: This will accrue streaming fees though not send to operator fee recipient and methodologist.
190
+ *
191
+ * @param _newFee Percent of Set accruing to fee extension annually (1% = 1e16, 100% = 1e18)
171
192
*/
172
193
function updateStreamingFee (uint256 _newFee )
173
194
external
@@ -182,6 +203,11 @@ contract FeeSplitExtension is BaseExtension, TimeLockUpgrade, MutualUpgrade {
182
203
* MUTUAL UPGRADE: Updates issue fee on IssuanceModule. Only is executed once time lock has passed.
183
204
* Operator and Methodologist must each call this function to execute the update. Because the method
184
205
* is timelocked, each party must call it twice: once to set the lock and once to execute.
206
+ *
207
+ * Method is timelocked to protect token owners from sudden changes in fee structure which
208
+ * they would rather not bear. The delay gives them a chance to exit their positions without penalty.
209
+ *
210
+ * @param _newFee New issue fee percentage in precise units (1% = 1e16, 100% = 1e18)
185
211
*/
186
212
function updateIssueFee (uint256 _newFee )
187
213
external
@@ -196,6 +222,11 @@ contract FeeSplitExtension is BaseExtension, TimeLockUpgrade, MutualUpgrade {
196
222
* MUTUAL UPGRADE: Updates redeem fee on IssuanceModule. Only is executed once time lock has passed.
197
223
* Operator and Methodologist must each call this function to execute the update. Because the method is
198
224
* timelocked, each party must call it twice: once to set the lock and once to execute.
225
+ *
226
+ * Method is timelocked to protect token owners from sudden changes in fee structure which
227
+ * they would rather not bear. The delay gives them a chance to exit their positions without penalty.
228
+ *
229
+ * @param _newFee New redeem fee percentage in precise units (1% = 1e16, 100% = 1e18)
199
230
*/
200
231
function updateRedeemFee (uint256 _newFee )
201
232
external
@@ -208,6 +239,8 @@ contract FeeSplitExtension is BaseExtension, TimeLockUpgrade, MutualUpgrade {
208
239
209
240
/**
210
241
* MUTUAL UPGRADE: Updates fee recipient on both streaming fee and issuance modules.
242
+ *
243
+ * @param _newFeeRecipient Address of new fee recipient. This should be the address of the fee extension itself.
211
244
*/
212
245
function updateFeeRecipient (address _newFeeRecipient )
213
246
external
@@ -220,6 +253,8 @@ contract FeeSplitExtension is BaseExtension, TimeLockUpgrade, MutualUpgrade {
220
253
221
254
/**
222
255
* MUTUAL UPGRADE: Updates fee split between operator and methodologist. Split defined in precise units (1% = 10^16).
256
+ *
257
+ * @param _newFeeSplit Percent of fees in precise units (10^16 = 1%) sent to operator, (rest go to the methodologist).
223
258
*/
224
259
function updateFeeSplit (uint256 _newFeeSplit )
225
260
external
@@ -232,6 +267,8 @@ contract FeeSplitExtension is BaseExtension, TimeLockUpgrade, MutualUpgrade {
232
267
233
268
/**
234
269
* OPERATOR ONLY: Updates the address that receives the operator's share of the fees (see IIP-72)
270
+ *
271
+ * @param _newOperatorFeeRecipient Address to send operator's fees to.
235
272
*/
236
273
function updateOperatorFeeRecipient (address _newOperatorFeeRecipient )
237
274
external
0 commit comments