Repository navigation
Add Ring FewV2 Shell Hook hook on ethereum - #10546
Merged
Ponx merged 1 commit intoOct 13, 2026
Merged
Conversation
Contributor
There was a problem hiding this comment.
Review: hooks/ethereum/0x59255cbc688e402ef980b84668ba1d1c708b6088.json
Address Bitmask (0x6088)
Decoded bits 13–0: beforeInitialize=1, afterInitialize=0, beforeAddLiquidity=0, afterAddLiquidity=0, beforeRemoveLiquidity=0, afterRemoveLiquidity=0, beforeSwap=1, afterSwap=0, beforeDonate=0, afterDonate=0, beforeSwapReturnsDelta=1, afterSwapReturnsDelta=0, afterAddLiquidityReturnsDelta=0, afterRemoveLiquidityReturnsDelta=0.
All 14 flags match the flags section exactly. Confirmed also by getHookPermissions() in FewV2ShellHookBase.
Properties
- dynamicFee: false ✓ —
_beforeSwapreturnsfeeOverride = 0; noupdateDynamicLPFeecall exists. - upgradeable: false ✓ —
source_meta.jsonconfirmsproxy: false. All factories and dependencies areimmutable. No delegatecall to any mutable address. No SELFDESTRUCT. - requiresCustomSwapData: false ✓ — The
hookDataparameter is unnamed and never read inFewV2ShellHookBase._beforeSwap; swaps function without it. - vanillaSwap: false ✓ —
beforeSwapReturnsDeltais true, and the hook fully replaces swap execution by routing through an external FewV2 AMM pair and returning a customBeforeSwapDelta. - swapAccess: "governance" ✓ —
_beforeSwapis guarded bywhenNotPaused(OpenZeppelinPausable). Thepause()function is callable byonlyGuardianOrOwner, andunpause()byonlyOwner. This is a boolean admin flag matching the"governance"classification.
Metadata
- verifiedSource: true ✓ —
source_meta.jsonconfirmsverified: true. - chainId: 1 ✓ — Correct for
ethereumperchains.json. - name: "Ring FewV2 Shell Hook" ✓ — Project-qualified label for
FewV2ShellHook. No audit/safety/endorsement language. - description ✓ — Every technical claim is verified in source: 1:1 FewToken wrapping (
_wrapExactTo/_approveAndWrapTo), FewV2 swap at live reserves (_executeFewV2ExactInput/_executeFewV2ExactOutputusingFewV2Math.getAmountOut), unwrap + PoolManager settlement (_unwrapAndSettleExact), no hookData use (unnamed parameter), no hook fee (feeOverride = 0), Ownable2Step two-step owner, time-locked allowlist (proposeUnderlying+commitUnderlyingwith immutableaddTimelockDelay), guardian/owner pause, liquidity operations unaffected (no liquidity hook flags).
All checks pass.
Ponx
approved these changes
Oct 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
Uniswap v4 hook that executes each swap on the canonical Ring Swap v2 (FewV2) FewToken pair: it wraps the input 1:1 into its FewToken, swaps on the pair at live reserves, unwraps the output and settles through PoolManager. It needs no hookData and adds no hook fee. A two-step owner manages a time-locked token allowlist, and a guardian or the owner can pause swaps without blocking liquidity withdrawal.
Flags
Properties
Warnings
None
Closes #10545