Add Flaunch PositionManager hook on unichain#1121
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
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(notDYNAMIC_FEE_FLAG). The_beforeSwapreturn's third value (fee override) is not explicitly set (returns 0). Fees are captured viaafterSwapReturnsDeltaand the FeeDistributor's_captureSwapFees, not via Uniswap's native dynamic fee mechanism. NoupdateDynamicLPFee()calls found. -
upgradeable: false ✓ — Regular non-upgradeable contract.
source_meta.jsonconfirmsproxy: false. No proxy patterns, delegatecall, or SELFDESTRUCT. -
requiresCustomSwapData: false ✓ —
hookDatais used solely for optional referrer fees._distributeReferrerFees()has an early return atif (_hookData.length == 0). Swaps work correctly without hookData. -
vanillaSwap: false ✓ — Correctly false:
beforeSwapReturnsDeltaandafterSwapReturnsDeltaare both true, and the hook materially changes swap execution via the internal swap pool (_processInternalSwap) and fee capture. -
swapAccess: "temporal" ✓ —
_beforeSwapchecksflaunchesAt[poolId]againstblock.timestampand reverts withTokenNotFlaunchedif the scheduled timestamp has not yet passed. This is temporal gating.
Metadata
- chainId: 130 ✓ — Matches
unichaininchains.json. - verifiedSource: true ✓ —
source_meta.jsonconfirmsverified: true. - name: "Flaunch PositionManager" ✓ — Contract is
PositionManagerinsrc/contracts/PositionManager.sol; the "Flaunch" qualifier is substantiated by the@flaunchimport 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 →
flaunchesAtmapping,_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()
- Memecoin pool launches →
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
left a comment
There was a problem hiding this comment.
Bot review verified. Flaunch PositionManager (unichain). Full lifecycle hook: beforeInitialize, afterAdd/RemoveLiquidity, before/afterSwap (+returnsDelta), afterDonate. LGTM.
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
Properties
Warnings
Closes #1113