Pool Manager
Last updated
Last updated
poolManager
is the role responsible for assembling the most fundamental modules in the pool. The poolManager
also has the ability to update certain pool-level parameters, such as applying an optional Pool Manager Fee.
Only poolManager
can call the following functions in Sovereign Pool:
setALM
Sets the Liquidity Module. To be called only once.
setSwapFeeModule
Sets the Swap Fee Module. This can be called once every 3 days.
setSovereignOracle
Sets the Oracle Module. This can be called only once.
setPoolManager
can assign the Pool Manager role to another address, or revoke the manager altogether to create an immutable Sovereign Pool implementation. In this case the poolManager
is reset to the zero address, manager fees are set to 0, and any unclaimed manager fees are transferred to msg.sender
.
setPoolManagerFeeBips
Sets basis point amount of swap fees to be assigned to poolManager
. This is represented as a percentage of the fees calculated by the Swap Fee Module. Pool Manager Fees cannot exceed 50% of fees earned by LPs.
claimPoolManagerFees
Claim all portion of trading fees which are due for poolManager
. Upon calling this function, the poolManager
can optionally share a portion of the claimable fees to the pool's gauge
. There will be a Valantis Protocol gauge
implementation that allows a pool to participate in VAL-incentive mechanisms. Custom gauges implementations allows the pool to participate in any external scheme that relies on fee collection/measurement. NOTE: This method works differently in case of rebase tokens:
If reserves are not meant to be stored in the pool (sovereignVault ≠ address(this)
, and the token to be claimed is a rebase token, this method will not work since earned swap fees are not tracked in the pool. In this scenario, sovereignVault
would need to implement a custom method to allow poolManager
to claim due amount of rebase token fees.
If reserves are meant to be stored in the pool (sovereignVault == address(this)
), the pool manager fees would be transferred on every swap, hence no need to use a claim function.