Repository navigation
chore: allowlist GlueHook V3 hook (replaces #1408) - #1414
lalilulel0x wants to merge 3 commits into
Conversation
Graphite Automations"Request reviewers once CI passes on routing-api repo" took an action on this PR • (09/16/26)3 reviewers were added and 1 assignee was added to this PR based on Siyu Jiang (See-You John)'s automation. |
|
V3 pools are live. Example pool on Base:
The Same PoolKey shape (
The example-pool comment is now in the allowlist file as well. |
…nichain Sepolia, Arbitrum Sepolia)
Allowlist GlueHook V3 —
0x03d482cb3ff339c2d29736818d0f72c66dd6a040— on the 11 mainnets where it is deployed and the routing API has aChainId— Ethereum, Optimism, BNB Chain, Polygon, Avalanche, Base, Arbitrum, Unichain, World Chain, Soneium, X Layer — and on the 4 testnets with aChainId: Sepolia, Base Sepolia, Unichain Sepolia, Arbitrum Sepolia (same address; landed 2026-09-16). Same address on every chain (plainCREATEfrom a nonce-0 deployer), source-verified on each explorer. Also live on Robinhood, MegaETH and Arc (5042), which have noChainIdhere yet.Address change — replaces #1408. #1408 (closed) asked for the previous GlueHook address; this PR asks for the V3 address instead:
#1408(V3 pre-release build, retired before launch) · earlier revision: V20xbb021554c5294328b04fa313669715bd201ba0400x0f41…20c80x03d482cb3ff339c2d29736818d0f72c66dd6a0400x2040The retired builds stay deployed but are not the hook new pools use, so they are not the ones we are asking to allowlist.
What the hook does. A free, keyless, general-purpose Uniswap v4 hook: every pool that adopts it gets a permissionless buyback pot that buys the pool's own token behind every swap (sized by fee × depth, volume-paced, gated on a time-weighted reference tick), plus an optional auto-compounding LP program. Site: https://gluehook.trade · source: https://github.com/glue-finance/glueHook · audit: https://github.com/glue-finance/glueHook/tree/main/audit
Why it is safe to route through. Permission bits
0x2040=beforeInitialize+afterSwaponly. NobeforeSwap, no*ReturnDeltaflags, no dynamic fees (dynamic-fee pools are refused atbeforeInitialize). The hook never touches the swapper's amounts, so the quoter's result is exactly what the swap settles; the buyback is the hook's own swap inafterSwap, run through a try/catch self-call, so no pool state can make a routed swap revert. Gas overhead is bounded (idle ~10k, a firing pump ~+88k, in-swap harvest + compound ~+111k). No owner, no upgrade path, 0% protocol fee.Why V3 (what changed vs V1/V2)
Launch write-up with the full numbers: https://x.com/glue_fi/status/2100237021264450020
0.8·f·R(0.8% of pool depth at a 1% pool), measured against its own ten-minute time-weighted reference. It buys in slices — hard into dips, pulling back as a rally runs ahead of the reference. Same money, more supply bought.dshrinks the pump tof/d, and the reference rises at most 3% a minute. Spend =0.8 · min(f·R, f·R·bucket, s(d)·B, pot)— derivations in the repo README ("The pump math").0x2040—beforeInitialize+afterSwaponly. NobeforeSwap, no return delta: the swapper's trade is the pool's plain execution and the buyback happens after it. Quotes are exact (vanilla V4 math, nothing to model), swaps cannot be blocked (every hook action is a try/catch self-call — a failing buyback is skipped, never the swap), the surface shrank.Example pool + quoter output: see the comment below (Base pool
0xa2827…8d9c,V4Quoterresult,StateViewstate, and one PoolId per chain). The example-pool line is in the allowlist file, as in #1390 / #1391.