Add SaturnOmnichainV4Hook hook on bnb - #2769
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Hook Review: hooks/bnb/0x75c19fdd847803c68ffe3b7df216b531b0a45000.json
Address Flags ✅
Address suffix 0x5000 → binary 0101 0000 0000 0000. Lowest 14 bits: bit 12 (afterInitialize) = 1, all others = 0. This matches the flags section exactly, and is consistent with getHookPermissions() in the source.
Metadata ✅ (except description)
verifiedSource: true— confirmed bysource_meta.jsonchainId: 56— matches BNB inchains.jsonname: "SaturnOmnichainV4Hook"— matchescontractNameinsource_meta.jsonand the contract definitionproxy: false— confirmed bysource_meta.jsonand source (no proxy pattern, all state fields are immutable or plain storage)
Properties ✅
dynamicFee: false— no dynamic fee logic anywhere in the contractupgradeable: false— all key addresses areimmutable; no proxy, nodelegatecallto mutable targetsrequiresCustomSwapData: false— nobeforeSwap/afterSwapflags; hook data is never inspectedvanillaSwap: true— correct per the rules: no swap flags at allswapAccess: "none"— correct; nobeforeSwapflag
Description ❌ — Factual Error
The description states:
"records the initial pool tick from a liquidity bootstrapper contract in afterInitialize"
This is incorrect. Looking at the source:
afterInitialize(line 134) is declaredexternal pureand simply returnsIHooks.afterInitialize.selector— it is a complete no-op.- The actual tick recording (
initialTick = tick; poolInitialized = true;) happens ininitializePools()(lines 85–89), which is an unrelated public external function, not a hook callback.
The description should be corrected to accurately reflect that afterInitialize is a no-op stub, and that the bootstrapper tick recording is performed by a separate initializePools() function. For example:
"A hook for the Saturn Omnichain project with only the afterInitialize permission bit set, but the afterInitialize callback is a no-op stub. Initial pool tick data is recorded by a separate initializePools() function that calls an external LiquidityBootstrapper contract. All hook callbacks are no-op stubs; the hook does not alter swap behavior."
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
Ponx
left a comment
There was a problem hiding this comment.
Verified source on-chain; entry matches deployed contract. Backfill pre-vet approval.
There was a problem hiding this comment.
Review: hooks/bnb/0x75c19fdd847803c68ffe3b7df216b531b0a45000.json
Address Flags
Address ends in 5000 = 0x5000 = 0b0101_0000_0000_0000.
Bits 13–0:
- bit 13 (beforeInitialize) = 0 ✅
- bit 12 (afterInitialize) = 1 ✅
- bits 11–0 = all 0 ✅
Confirmed by getHookPermissions() in source, which sets only afterInitialize: true.
Properties
- dynamicFee: false — No
lpFeeOverridereturn orupdateDynamicLPFee()call found. ✅ - upgradeable: false — All three key addresses (
POOL_MANAGER,TOKEN,LIQUIDITY_BOOTSTRAPPER) areimmutable; no proxy pattern ordelegatecallto mutable target.source_meta.jsonconfirmsproxy: false. ✅ - requiresCustomSwapData: false — Hook has no swap permission bits;
hookDatais never required. ✅ - vanillaSwap: true — No swap flags at all; rule mandates
true. ✅ - swapAccess: "none" — No
beforeSwapflag, no access control. ✅
Metadata
- verifiedSource: true — Confirmed by
source_meta.json("verified": true). ✅ - chainId: 56 — Correct for BNB Smart Chain. ✅
- name: "SaturnOmnichainV4Hook" — Matches
contractNamein source andsource_meta.json. ✅ - description — Accurately describes the contract:
afterInitializeis a no-op stub (returns selector only),initializePools()callsLIQUIDITY_BOOTSTRAPPER.bootstrap()to record initial tick, all other callbacks are no-op stubs. No marketing, audit, or endorsement language. ✅
All flags, properties, and metadata are correct and consistent with the on-chain verified source code.
Ponx
left a comment
There was a problem hiding this comment.
Bot re-approved after fix; entry matches on-chain source. Backfill fix approval.
Summary
A hook for the Saturn Omnichain project that records the initial pool tick from a liquidity bootstrapper contract in afterInitialize. All swap-related callbacks are no-op stubs; the hook does not alter swap behavior.
Flags
Properties
Warnings
Closes #2761