Skip to content

feat(liquidity-launcher-sdk): instant-launch pool shape — the 2026-08-05 redeploy mints at tick spacing 25 - #683

Open
marktoda wants to merge 3 commits into
mainfrom
fix/instant-launch-pool-shape-redeploy
Open

feat(liquidity-launcher-sdk): instant-launch pool shape — the 2026-08-05 redeploy mints at tick spacing 25#683
marktoda wants to merge 3 commits into
mainfrom
fix/instant-launch-pool-shape-redeploy

Conversation

@marktoda

@marktoda marktoda commented Aug 6, 2026

Copy link
Copy Markdown
Collaborator

Why

1.9.0 shipped the quick-launch graduation-pool spacing (50 → 25, #680) but the instant-launch side has the same problem and was missed: the SDK still says INSTANT_LAUNCH_POOL_TICK_SPACING = 60, documented as "unchanged across deploys". The 2026-08-05 chain-4663 full redeploy did NOT re-pin the 3e05da8 strategy unchanged — it recompiled it with a new pool shape.

On-chain evidence (Robinhood RPC, 2026-08-05)

Read back from every registered strategy's getters:

Strategy Generation TICK_SPACING() initialTick() MIN_LAUNCH_TICK()
0x23f82095… fees-on, 0xAD44D55E… fees-off 2026-08-05 full redeploy (current) 25 198,050 -160,100
all eight earlier strategies (c3f9506, 8e40a35, 3e05da8, v3.1.1 pairs) pre-redeploy 60 198,060 -208,980

LP_FEE() is 2500 on all ten — genuinely unchanged.

Live confirmation: TokenLaunched events from the new strategies carry pool keys (2500, 25, hookless) — e.g. token 0x91F1c022… at block 28,897,813, poolId 0x2d5e17e0…, now a golden test vector.

What changed

  • INSTANT_LAUNCH_POOL_TICK_SPACING 60 → 25; new INSTANT_LAUNCH_ALLOWED_POOL_TICK_SPACINGS = [25, 60] grandfather set (same shape as the quick-launch one — pools are permanent, consumers race every entry).
  • INSTANT_LAUNCH_INITIAL_TICK 198,060 → 198,050; INSTANT_LAUNCH_MIN_LAUNCH_TICK -208,980 → -160,100.
  • InstantLaunchDeployment.tickSpacing / .minLaunchTick — new per-generation registry fields beside the existing initialTick, which is now correctly 198,050 on the redeploy pair (it was wrong for those two entries).
  • getInstantLaunchPoolKey / getInstantLaunchPoolId take an optional tickSpacing (default: current generation); new getInstantLaunchPoolKeys returns all candidate keys newest-first; QuoteInstantLaunchBuyParams.tickSpacing threads the override through quoting. Pre-redeploy tokens keep deriving their real (spacing-60) pools.
  • Fixed the stale "unchanged across deploys" / "pure re-pin" / "every generation opens at 198,060" comments and the two 2026-08-05 registry descriptions.

Testing

  • bun test: 225 pass. Two golden vectors: the pre-redeploy TTT token pinned at spacing 60 (unchanged poolId) and the new post-redeploy token at the default (poolId from its on-chain TokenLaunched event).
  • typecheck + lint clean.

🤖 Generated with Claude Code

github-actions Bot and others added 2 commits August 5, 2026 17:30
…-05 redeploy mints at tick spacing 25

The full redeploy recompiled InstantLaunchStrategy (TICK_SPACING 60 -> 25,
initialTick 198,060 -> 198,050, MIN_LAUNCH_TICK -208,980 -> -160,100); the SDK
still described all three as unchanged across deploys. All values read back
on-chain from all ten deployed strategies' getters.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@marktoda
marktoda requested a review from a team as a code owner August 6, 2026 01:09
@github-actions

github-actions Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

● Reviewed · 2026-08-06 01:17 UTC · view run ↗

Approved.

Fixes the instant-launch pool shape for the 2026-08-05 chain-4663 redeploy: tick spacing 60 → 25, initial tick 198,060 → 198,050, min launch tick -208,980 → -160,100, with a [25, 60] grandfather set and per-generation registry fields so pre-redeploy tokens keep deriving their spacing-60 pools.

Assessment

This mirrors the quick-launch fix from #680 on the instant-launch side that was missed: same *_ALLOWED_POOL_TICK_SPACINGS grandfather set, per-generation tickSpacing/minLaunchTick beside the existing initialTick, an optional tickSpacing override threaded through getInstantLaunchPoolKey/getInstantLaunchPoolId/quoting, and a getInstantLaunchPoolKeys plural that races candidates newest-first. The registry fields are populated consistently across all ten deployment entries, and the previously-wrong initialTick on the redeploy pair is corrected to 198,050. Defaulting the override to the current generation (25) means quoting a pre-redeploy token without the override queries an uninitialized pool and returns an empty quote rather than a mispriced fill — documented and handled via candidate-racing. Stale comments ("unchanged across deploys", "pure re-pin", "opens at 198,060") were corrected alongside the constants.

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

Note

Approved — see full review in the sticky comment ↑

@graphite-app
graphite-app Bot requested review from a team August 6, 2026 01:13
@graphite-app

graphite-app Bot commented Aug 6, 2026

Copy link
Copy Markdown

Graphite Automations

"Request reviewers once CI passes on sdks monorepo" took an action on this PR • (08/06/26)

3 reviewers were added and 1 assignee was added to this PR based on Siyu Jiang (See-You John)'s automation.

@marktoda
marktoda requested review from brnunes and plondon August 6, 2026 01:16
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.

1 participant