Source References: Use Doppler deployments as the contract source of truth for deployed addresses and revisions.
Doppler Hooks
When to use
- You need a top-level hook integration path for a price discovery launch
- You are using
DopplerHookInitializerto register or manage hook callbacks - You are troubleshooting hook-enabled multicurve pools and lifecycle transitions
Prerequisites
- Asset/numeraire addresses and expected pool mode (locked vs migrable)
- Hook contract addresses and intended flags
Core workflow
- Initialize pool with
InitDataincluding optionaldopplerHookand callback calldata. - Confirm stored state via
getState(asset):- pool key
- far tick
- status
- selected hook
- Validate callback execution path by flag:
ON_INITIALIZATION_FLAGON_SWAP_FLAGON_GRADUATION_FLAG
- Verify graduation / migration behavior for the configured hook path.
Supported hook modules
- Rehypothecation hook (
RehypeDopplerHook) for buybacks and fee routing ScheduledLaunchDopplerHookfor start-time gatesSwapRestrictorDopplerHookfor per-address amount ceilings
Quick facts
| Item | Detail |
|---|---|
| Initializer contract | DopplerHookInitializer |
| Base hook contract | BaseDopplerHook |
| Core callback flags | ON_INITIALIZATION_FLAG, ON_SWAP_FLAG, ON_GRADUATION_FLAG |
| Common module | Rehypothecation hook (RehypeDopplerHook) |
Failure modes
- Hook module not enabled for the target deployment
- Incorrect callback calldata encoding
- Status mismatch (
WrongPoolStatuscases) - Attempting migration without graduation conditions met
References
- WORKFLOWS.md
- STATE-MAP.md
- Source:
doppler/src/initializers/DopplerHookInitializer.sol,doppler/src/base/BaseDopplerHook.sol,doppler/docs/DopplerHookInitializer.md