Skip to content

Add Flaunch PositionManager hook on unichain#1121

Merged
marktoda merged 1 commit into
mainfrom
hooks/unichain/0x5cf8e499c7c466c7e2cf127bdf129f57151e65dc
Jul 21, 2026
Merged

Add Flaunch PositionManager hook on unichain#1121
marktoda merged 1 commit into
mainfrom
hooks/unichain/0x5cf8e499c7c466c7e2cf127bdf129f57151e65dc

Conversation

@hooklist-generator

Copy link
Copy Markdown
Contributor

Summary

Flaunch's core Uniswap v4 hook that manages memecoin pool launches with optional scheduled flaunch timestamps, runs an internal swap pool to fill swaps from fee inventory before hitting the Uniswap pool, captures and distributes swap fees to LPs and optional referrers via hookData, and integrates a bid wall mechanism.

Flags

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

Properties

Property Value
dynamicFee false
upgradeable false
requiresCustomSwapData false
vanillaSwap false
swapAccess temporal

Warnings

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

Closes #1113

@vercel

vercel Bot commented Jul 20, 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 20, 2026 2:42pm

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/unichain/0x5cf8e499c7c466c7e2cf127bdf129f57151e65dc.json

Address Flags

Address suffix 0x65dc & 0x3FFF = 0x25DC. Decoding all 14 bits:

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

Confirmed by getHookPermissions() NatSpec: // @dev 10 0101 1101 1100 == 25DC.

Properties

  • dynamicFee: false ✓ — The pool is initialized with fee: 0 (not DYNAMIC_FEE_FLAG). The _beforeSwap return's third value (fee override) is not explicitly set (returns 0). Fees are captured via afterSwapReturnsDelta and the FeeDistributor's _captureSwapFees, not via Uniswap's native dynamic fee mechanism. No updateDynamicLPFee() calls found.

  • upgradeable: false ✓ — Regular non-upgradeable contract. source_meta.json confirms proxy: false. No proxy patterns, delegatecall, or SELFDESTRUCT.

  • requiresCustomSwapData: false ✓ — hookData is used solely for optional referrer fees. _distributeReferrerFees() has an early return at if (_hookData.length == 0). Swaps work correctly without hookData.

  • vanillaSwap: false ✓ — Correctly false: beforeSwapReturnsDelta and afterSwapReturnsDelta are both true, and the hook materially changes swap execution via the internal swap pool (_processInternalSwap) and fee capture.

  • swapAccess: "temporal" ✓ — _beforeSwap checks flaunchesAt[poolId] against block.timestamp and reverts with TokenNotFlaunched if the scheduled timestamp has not yet passed. This is temporal gating.

Metadata

  • chainId: 130 ✓ — Matches unichain in chains.json.
  • verifiedSource: true ✓ — source_meta.json confirms verified: true.
  • name: "Flaunch PositionManager" ✓ — Contract is PositionManager in src/contracts/PositionManager.sol; the "Flaunch" qualifier is substantiated by the @flaunch import namespace throughout the source. No promotional or endorsement language.
  • description ✓ — Every claim is verifiable in the Solidity logic:
    • Memecoin pool launches → flaunch() function
    • Scheduled flaunch timestamps → flaunchesAt mapping, _params.flaunchAt > block.timestamp
    • Internal swap pool fills → _processInternalSwap() / internalSwapPool.internalSwap()
    • Fee distribution to LPs → _distributeFees(), _allocateFees()
    • Optional referrers via hookData → _distributeReferrerFees() with hookData decode
    • Bid wall mechanism → bidWall.deposit(), bidWall.checkStalePosition()

No marketing language, safety claims, or audit language present.

Verdict

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

@marktoda marktoda 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.

Bot review verified. Flaunch PositionManager (unichain). Full lifecycle hook: beforeInitialize, afterAdd/RemoveLiquidity, before/afterSwap (+returnsDelta), afterDonate. LGTM.

@marktoda
marktoda merged commit ae13673 into main Jul 21, 2026
7 checks passed
@marktoda
marktoda deleted the hooks/unichain/0x5cf8e499c7c466c7e2cf127bdf129f57151e65dc branch July 21, 2026 16:24
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: Flaunch PositionManager on Unichain

1 participant