IWatermarkFeeManager
Inherits: IFeeManager, ISecurityModuleReference, IMachinePeriphery
Functions
mgmtFeeRatePerSecond
Management fee rate per second, 1e18 = 100%.
function mgmtFeeRatePerSecond() external view returns (uint256);Returns
| Name | Type | Description |
|---|---|---|
| <none> | uint256 |
smFeeRatePerSecond
Security module fee rate per second, 1e18 = 100%.
function smFeeRatePerSecond() external view returns (uint256);Returns
| Name | Type | Description |
|---|---|---|
| <none> | uint256 |
perfFeeRate
Performance fee rate on profit, 1e18 = 100%.
function perfFeeRate() external view returns (uint256);Returns
| Name | Type | Description |
|---|---|---|
| <none> | uint256 |
mgmtFeeReceivers
Management fee receivers.
function mgmtFeeReceivers() external view returns (address[] memory);Returns
| Name | Type | Description |
|---|---|---|
| <none> | address[] |
mgmtFeeSplitBps
Management fee split between receivers in basis points. Values must sum to 10_000.
function mgmtFeeSplitBps() external view returns (uint256[] memory);Returns
| Name | Type | Description |
|---|---|---|
| <none> | uint256[] |
perfFeeReceivers
Performance fee receivers.
function perfFeeReceivers() external view returns (address[] memory);Returns
| Name | Type | Description |
|---|---|---|
| <none> | address[] |
perfFeeSplitBps
Performance fee split between receivers in basis points. Values must sum to 10_000.
function perfFeeSplitBps() external view returns (uint256[] memory);Returns
| Name | Type | Description |
|---|---|---|
| <none> | uint256[] |
sharePriceWatermark
Current share price high watermark for the associated Machine.
function sharePriceWatermark() external view returns (uint256);Returns
| Name | Type | Description |
|---|---|---|
| <none> | uint256 |
resetSharePriceWatermark
Resets the share price high watermark.
function resetSharePriceWatermark(uint256 sharePrice) external;Parameters
| Name | Type | Description |
|---|---|---|
| sharePrice | uint256 |
setMgmtFeeRatePerSecond
Sets the management fee rate per second.
function setMgmtFeeRatePerSecond(uint256 newMgmtFeeRatePerSecond) external;Parameters
| Name | Type | Description |
|---|---|---|
| newMgmtFeeRatePerSecond | uint256 | The new management fee rate per second. 1e18 = 100%. |
setSmFeeRatePerSecond
Sets the security module fee rate per second.
function setSmFeeRatePerSecond(uint256 newSmFeeRatePerSecond) external;Parameters
| Name | Type | Description |
|---|---|---|
| newSmFeeRatePerSecond | uint256 | The new security module fee rate per second. 1e18 = 100%. |
setPerfFeeRate
Sets the performance fee rate.
function setPerfFeeRate(uint256 newPerfFeeRate) external;Parameters
| Name | Type | Description |
|---|---|---|
| newPerfFeeRate | uint256 | The new performance fee rate on profit. 1e18 = 100%. |
setMgmtFeeSplit
Sets the management fee split and receivers.
function setMgmtFeeSplit(address[] calldata newMgmtFeeReceivers, uint256[] calldata newMgmtFeeSplitBps) external;Parameters
| Name | Type | Description |
|---|---|---|
| newMgmtFeeReceivers | address[] | The new management fee receivers. |
| newMgmtFeeSplitBps | uint256[] | The new management fee split between receivers in basis points. Values must sum to 10_000. |
setPerfFeeSplit
Sets the performance fee split and receivers.
function setPerfFeeSplit(address[] calldata newPerfFeeReceivers, uint256[] calldata newPerfFeeSplitBps) external;Parameters
| Name | Type | Description |
|---|---|---|
| newPerfFeeReceivers | address[] | The new performance fee receivers. |
| newPerfFeeSplitBps | uint256[] | The new performance fee split between receivers in basis points. Values must sum to 10_000. |
Events
MgmtFeeSplitChanged
event MgmtFeeSplitChanged();MgmtFeeRatePerSecondChanged
event MgmtFeeRatePerSecondChanged(uint256 oldRate, uint256 newRate);Parameters
| Name | Type | Description |
|---|---|---|
| oldRate | uint256 | |
| newRate | uint256 |
PerfFeeRateChanged
event PerfFeeRateChanged(uint256 oldRate, uint256 newRate);Parameters
| Name | Type | Description |
|---|---|---|
| oldRate | uint256 | |
| newRate | uint256 |
PerfFeeSplitChanged
event PerfFeeSplitChanged();SmFeeRatePerSecondChanged
event SmFeeRatePerSecondChanged(uint256 oldRate, uint256 newRate);Parameters
| Name | Type | Description |
|---|---|---|
| oldRate | uint256 | |
| newRate | uint256 |
SecurityModuleSet
event SecurityModuleSet(address indexed securityModule);Parameters
| Name | Type | Description |
|---|---|---|
| securityModule | address |
WatermarkReset
event WatermarkReset(uint256 indexed newWatermark);Parameters
| Name | Type | Description |
|---|---|---|
| newWatermark | uint256 |
Structs
WatermarkFeeManagerInitParams
Initialization parameters.
struct WatermarkFeeManagerInitParams {
uint256 initialMgmtFeeRatePerSecond;
uint256 initialSmFeeRatePerSecond;
uint256 initialPerfFeeRate;
address[] initialMgmtFeeReceivers;
uint256[] initialMgmtFeeSplitBps;
address[] initialPerfFeeReceivers;
uint256[] initialPerfFeeSplitBps;
}Properties
| Name | Type | Description |
|---|---|---|
| initialMgmtFeeRatePerSecond | uint256 | Management fee rate per second, in 18 decimals precision. |
| initialSmFeeRatePerSecond | uint256 | Security module fee rate per second, in 18 decimals precision. |
| initialPerfFeeRate | uint256 | Performance fee rate on profit, in 18 decimals precision. |
| initialMgmtFeeReceivers | address[] | Management fee receivers. |
| initialMgmtFeeSplitBps | uint256[] | Management fee split between receivers in basis points. Values must sum to 10_000. |
| initialPerfFeeReceivers | address[] | Performance fee receivers. |
| initialPerfFeeSplitBps | uint256[] | Performance fee split between receivers in basis points. Values must sum to 10_000. |