Add Doppler hook on robinhood#1091
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Review: hooks/robinhood/0x4e3468951d49f2eea976ed0d6e75ffcb44a9a544.json
Contract: DopplerHookInitializer (verified on Robinhood chain, chainId 4663)
Address Flags
Lowest 14 bits of 0x...a9a544 = 0xa544 mod 0x4000 = 9540 = 10 0101 0100 0100₂:
| Bit | Flag | Address | File | Match |
|---|---|---|---|---|
| 13 | beforeInitialize | 1 | true | ✓ |
| 12 | afterInitialize | 0 | false | ✓ |
| 11 | beforeAddLiquidity | 0 | false | ✓ |
| 10 | afterAddLiquidity | 1 | true | ✓ |
| 9 | beforeRemoveLiquidity | 0 | false | ✓ |
| 8 | afterRemoveLiquidity | 1 | true | ✓ |
| 7 | beforeSwap | 0 | false | ✓ |
| 6 | afterSwap | 1 | true | ✓ |
| 5 | beforeDonate | 0 | false | ✓ |
| 4 | afterDonate | 0 | false | ✓ |
| 3 | beforeSwapReturnsDelta | 0 | false | ✓ |
| 2 | afterSwapReturnsDelta | 1 | true | ✓ |
| 1 | afterAddLiquidityReturnsDelta | 0 | false | ✓ |
| 0 | afterRemoveLiquidityReturnsDelta | 0 | false | ✓ |
All flags match getHookPermissions() in source (lines 563–580). ✓
Properties
-
dynamicFee: true — Correct. The contract calls
poolManager.updateDynamicLPFee()ininitialize()(line 238) when a Doppler hook is configured, and exposesupdateDynamicLPFee()(line 425–431) for the Doppler hook to call. The pool key also usesLPFeeLibrary.DYNAMIC_FEE_FLAGwhen a Doppler hook is set (line 277). ✓ -
upgradeable: false — Correct. The contract is a plain implementation with no proxy pattern, no
delegatecall, no mutable implementation pointer, and noSELFDESTRUCT. ✓ -
requiresCustomSwapData: false — Correct. The
_afterSwapfunction only usesdatawhen a Doppler hook withON_SWAP_FLAGis configured. Swaps with emptyhookDataexecute normally; there is no revert path triggered by absent hookData. ✓ -
vanillaSwap: false — Correct.
afterSwapReturnsDeltais true and_afterSwapcan return a non-zerodelta(fee taken by the Doppler hook viapoolManager.take). This modifies the effective swap output, so the swap is not vanilla. ✓ -
swapAccess: "none" — Correct. The hook has no
beforeSwapflag, so there is no swap-time access control. ✓
Metadata
-
name: "Doppler" — Reasonable project-qualified label. The NatSpec title is "Doppler Hook Uniswap V4 Multicurve Initializer" (line 177) and the contract name is
DopplerHookInitializer. No promotional, audit, or endorsement language. ✓ -
description — Accurate. Claims (bonding curve / Multicurve liquidity distribution, dynamic LP fees, optional Doppler Hook callbacks on initialization and swaps, fee collection via afterSwap delta) are all substantiated by the source code. ✓
-
verifiedSource: true — Confirmed by
source_meta.json("verified": true). ✓ -
chainId: 4663 — Matches
chains.jsonrobinhoodentry. ✓
All checks pass.
Summary
Uniswap v4 pool initializer that distributes liquidity across multiple positions using a bonding curve (Multicurve). Supports dynamic LP fees, optional Doppler Hook callbacks on initialization and swaps, and fee collection via afterSwap delta returns.
Flags
Properties
Warnings
Closes #1087