Grouping a set of observations about the fee hook contracts in one place, for tracking and to reduce duplicate reports. Items are summarized briefly and are not all confirmed. No severity is assigned here.
BaseDynamicAfterFee
- Exact-output handling —
_afterSwap treats the unspecified amount as the output, but for exact-output swaps it is the input, so the target check and fee can be applied in the wrong direction.
- Per-swap context in shared storage — The per-swap target is kept in shared contract storage rather than transient/per-swap storage, so a nested swap on the same hook can overwrite it; the apply flag is also not reset alongside the target.
BaseHookFee
- Fee side on exact-output swaps — The fee is taken from the unspecified amount, which is the input on exact-output swaps, whereas the documentation describes an output-based fee.
Sources: src/fee/.
Grouping a set of observations about the fee hook contracts in one place, for tracking and to reduce duplicate reports. Items are summarized briefly and are not all confirmed. No severity is assigned here.
BaseDynamicAfterFee_afterSwaptreats the unspecified amount as the output, but for exact-output swaps it is the input, so the target check and fee can be applied in the wrong direction.BaseHookFeeSources:
src/fee/.