Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR updates the swap fee accounting approach used by Solvers. Under the old architecture, swap fees are aggregated along with other pool deposits. This accounting approach is simple, but introduces three limitations:
Updates
This PR adds explicit swap fee balances to each Solver market to more accurately track accrued swap fees. To account for the different fee balances accrued by depositors over time, we introduce a new 'fee per share' accumulator variable, similar to the fee factor used in our core AMM implementation (or Uniswap V3's seconds per liquidity).
This also results in a number of consequential changes to the contract interfaces and emitted events, which we have updated documentation for.
Testing