Skip to content

Add RiversLaunchHook hook on robinhood#1092

Merged
Ponx merged 1 commit into
mainfrom
hooks/robinhood/0x12783b423b9cf1a136bd7e0f8baca5944f5baacc
Jul 16, 2026
Merged

Add RiversLaunchHook hook on robinhood#1092
Ponx merged 1 commit into
mainfrom
hooks/robinhood/0x12783b423b9cf1a136bd7e0f8baca5944f5baacc

Conversation

@hooklist-generator

Copy link
Copy Markdown
Contributor

Summary

A singleton Uniswap v4 hook for the Rivers protocol that manages phased token launches. Restricts swaps to the controller before fee activation, dynamically overrides LP fees based on pool phase (pre/post-graduation), and collects protocol trade fees from public swaps via beforeSwap/afterSwap deltas.

Flags

Flag Value
beforeInitialize true
afterInitialize false
beforeAddLiquidity true
afterAddLiquidity false
beforeRemoveLiquidity true
afterRemoveLiquidity false
beforeSwap true
afterSwap true
beforeDonate false
afterDonate false
beforeSwapReturnsDelta true
afterSwapReturnsDelta true
afterAddLiquidityReturnsDelta false
afterRemoveLiquidityReturnsDelta false

Properties

Property Value
dynamicFee true
upgradeable false
requiresCustomSwapData false
vanillaSwap false
swapAccess governance

Warnings

  • Submitter did not provide a description. Using AI-generated description.

Closes #1084

@vercel

vercel Bot commented Jul 16, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
hooklist Ready Ready Preview, Comment Jul 16, 2026 2:40pm

Request Review

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review: hooks/robinhood/0x12783b423b9cf1a136bd7e0f8baca5944f5baacc.json

Contract: LaunchHook (source verified on Robinhood chain)

Address Flag Verification

Address ends in 0xaacc = 1010 1010 1100 1100 binary. Lowest 14 bits:

Bit Flag Address JSON
13 beforeInitialize 1 true ✓
12 afterInitialize 0 false ✓
11 beforeAddLiquidity 1 true ✓
10 afterAddLiquidity 0 false ✓
9 beforeRemoveLiquidity 1 true ✓
8 afterRemoveLiquidity 0 false ✓
7 beforeSwap 1 true ✓
6 afterSwap 1 true ✓
5 beforeDonate 0 false ✓
4 afterDonate 0 false ✓
3 beforeSwapReturnsDelta 1 true ✓
2 afterSwapReturnsDelta 1 true ✓
1 afterAddLiquidityReturnsDelta 0 false ✓
0 afterRemoveLiquidityReturnsDelta 0 false ✓

All flags match.

Properties Verification

  • dynamicFee: true ✓ — beforeSwap returns lpFee | LPFeeLibrary.OVERRIDE_FEE_FLAG, switching between PRE_GRADUATION_LP_FEE and POST_GRADUATION_LP_FEE based on the pool phase.

  • upgradeable: false ✓ — No proxy pattern, no delegatecall, no mutable implementation storage, no SELFDESTRUCT. Uses immutable for poolManager and feeController.

  • requiresCustomSwapData: false ✓ — Public swaps (when fee-active) work with empty hookData; the hook just charges protocol + creator fees. hookData is only checked to grant fee exemptions or identify special internal swap types (e.g., GRADUATION_CROSSING_MARKER). A normal swap with empty hookData executes and charges fees without reverting.

  • vanillaSwap: false ✓ — Correctly false: dynamicFee is true, beforeSwapReturnsDelta and afterSwapReturnsDelta are both true, and the hook actively extracts trade fees via poolManager.take().

  • swapAccess: "governance" ✓ — beforeSwap gates on _feeActive(config.phase), which is a boolean flag derived from the pool's phase state (set by the controller via activateBootstrap, finalizeGraduation, etc.). Before graduation, only the controller can swap. This is a governance-flag pattern.

Metadata Verification

  • chainId: 4663 ✓ — Matches chains.json entry for "robinhood".
  • verifiedSource: true ✓ — Confirmed by source_meta.json ("verified": true).
  • name: "RiversLaunchHook" ✓ — LaunchHook is the contract name; "Rivers" is substantiated by the NatSpec ("Singleton v4 hook serving registered Rivers launch pools") and by constants like RIVERS_AUTOMATIC_SETTLEMENT and RIVERS_GRADUATION_CROSSING. No promotional language.
  • description ✓ — All claims are substantiated: singleton pattern (NatSpec), phased launches (Phase enum with 6 states), controller-only swaps before graduation (!feeActive && sender != config.controller → revert), dynamic LP fee override, and fee collection via beforeSwap/afterSwap deltas (_takeTradeFees, toBeforeSwapDelta, unspecifiedFeeDelta). No marketing or audit language.

Conclusion

All flags, properties, and metadata are accurate and consistent with the verified on-chain source code.

@Ponx
Ponx merged commit 0b8e2e1 into main Jul 16, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

hook: RiversLaunchHook on Robinhood Chain

1 participant