Where: src/Swapper.sol lines 141-150 — no event emission. Compare with ClaimManager.recoverTokens (src/ClaimManager.sol lines 231-235) which emits TokensRecovered (defined in src/interfaces/IClaimManager.sol line 207), and CoveredVaultAdmin.rescueTokens which emits IE.TokensRescued. Swapper is the only outlier.
Fix: declare event TokensRecovered(address indexed token, address indexed to, uint256 amount); in src/interfaces/ISwapper.sol and emit it from Swapper.recoverTokens
Where: src/Swapper.sol lines 141-150 — no event emission. Compare with ClaimManager.recoverTokens (src/ClaimManager.sol lines 231-235) which emits TokensRecovered (defined in src/interfaces/IClaimManager.sol line 207), and CoveredVaultAdmin.rescueTokens which emits IE.TokensRescued. Swapper is the only outlier.
Fix: declare event TokensRecovered(address indexed token, address indexed to, uint256 amount); in src/interfaces/ISwapper.sol and emit it from Swapper.recoverTokens