Pool Manager

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.

Last updated