@black-market/sdk 0.6.3 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/README.md +28 -4
  2. package/dist/addresses.d.ts +1 -1
  3. package/dist/addresses.js +4 -4
  4. package/dist/launch.d.ts +61 -0
  5. package/dist/launch.d.ts.map +1 -1
  6. package/dist/launch.js +171 -6
  7. package/dist/launch.js.map +1 -1
  8. package/dist/lifecycle/abi.d.ts +1999 -253
  9. package/dist/lifecycle/abi.d.ts.map +1 -1
  10. package/dist/lifecycle/abi.js +43 -14
  11. package/dist/lifecycle/abi.js.map +1 -1
  12. package/dist/lifecycle/allocations.d.ts +11 -0
  13. package/dist/lifecycle/allocations.d.ts.map +1 -0
  14. package/dist/lifecycle/allocations.js +36 -0
  15. package/dist/lifecycle/allocations.js.map +1 -0
  16. package/dist/lifecycle/calibration.d.ts +19 -0
  17. package/dist/lifecycle/calibration.d.ts.map +1 -0
  18. package/dist/lifecycle/calibration.js +65 -0
  19. package/dist/lifecycle/calibration.js.map +1 -0
  20. package/dist/lifecycle/deployments/fixed-fee-pool-hook-v1-20261008.d.ts +11 -0
  21. package/dist/lifecycle/deployments/fixed-fee-pool-hook-v1-20261008.d.ts.map +1 -0
  22. package/dist/lifecycle/deployments/fixed-fee-pool-hook-v1-20261008.js +10 -0
  23. package/dist/lifecycle/deployments/fixed-fee-pool-hook-v1-20261008.js.map +1 -0
  24. package/dist/lifecycle/index.d.ts +4 -2
  25. package/dist/lifecycle/index.d.ts.map +1 -1
  26. package/dist/lifecycle/index.js +4 -2
  27. package/dist/lifecycle/index.js.map +1 -1
  28. package/dist/lifecycle/markets.d.ts +170 -6
  29. package/dist/lifecycle/markets.d.ts.map +1 -1
  30. package/dist/lifecycle/markets.js +164 -37
  31. package/dist/lifecycle/markets.js.map +1 -1
  32. package/dist/lifecycle/planner.d.ts +7 -14
  33. package/dist/lifecycle/planner.d.ts.map +1 -1
  34. package/dist/lifecycle/planner.js +355 -392
  35. package/dist/lifecycle/planner.js.map +1 -1
  36. package/dist/lifecycle/presets.d.ts +62 -0
  37. package/dist/lifecycle/presets.d.ts.map +1 -0
  38. package/dist/lifecycle/presets.js +195 -0
  39. package/dist/lifecycle/presets.js.map +1 -0
  40. package/dist/lifecycle/progress.d.ts +5 -1
  41. package/dist/lifecycle/progress.d.ts.map +1 -1
  42. package/dist/lifecycle/progress.js +286 -118
  43. package/dist/lifecycle/progress.js.map +1 -1
  44. package/dist/lifecycle/rpc.d.ts +13 -2
  45. package/dist/lifecycle/rpc.d.ts.map +1 -1
  46. package/dist/lifecycle/rpc.js +92 -8
  47. package/dist/lifecycle/rpc.js.map +1 -1
  48. package/dist/lifecycle/simulation.d.ts +14 -1
  49. package/dist/lifecycle/simulation.d.ts.map +1 -1
  50. package/dist/lifecycle/simulation.js +400 -100
  51. package/dist/lifecycle/simulation.js.map +1 -1
  52. package/dist/lifecycle/transactions.d.ts +6 -0
  53. package/dist/lifecycle/transactions.d.ts.map +1 -0
  54. package/dist/lifecycle/transactions.js +40 -0
  55. package/dist/lifecycle/transactions.js.map +1 -0
  56. package/dist/lifecycle/types.d.ts +39 -2
  57. package/dist/lifecycle/types.d.ts.map +1 -1
  58. package/dist/lifecycle/types.js.map +1 -1
  59. package/docs/launch-lifecycle.md +236 -39
  60. package/examples/README.md +108 -18
  61. package/examples/generate-lifecycle-commitment-fixture.mjs +3 -1
  62. package/examples/launch-example-support.mjs +1 -1
  63. package/examples/launch-example.mjs +73 -26
  64. package/examples/launch-lifecycle-smoke.mjs +13 -11
  65. package/examples/launch.mjs +12 -11
  66. package/examples/quickstart.mjs +1 -1
  67. package/package.json +1 -1
  68. package/src/addresses.ts +4 -4
  69. package/src/launch.ts +213 -6
  70. package/src/lifecycle/abi.ts +43 -14
  71. package/src/lifecycle/allocations.ts +35 -0
  72. package/src/lifecycle/calibration.ts +59 -0
  73. package/src/lifecycle/deployments/fixed-fee-pool-hook-v1-20261008.ts +11 -0
  74. package/src/lifecycle/index.ts +4 -2
  75. package/src/lifecycle/markets.ts +169 -35
  76. package/src/lifecycle/planner.ts +326 -321
  77. package/src/lifecycle/presets.ts +243 -0
  78. package/src/lifecycle/progress.ts +254 -102
  79. package/src/lifecycle/rpc.ts +97 -9
  80. package/src/lifecycle/simulation.ts +391 -94
  81. package/src/lifecycle/transactions.ts +34 -0
  82. package/src/lifecycle/types.ts +35 -3
package/README.md CHANGED
@@ -40,10 +40,34 @@ Launch examples spend real funds and publish to your configured API.
40
40
  Plans, transaction hashes, receipts, and errors are saved in `launch-results/`.
41
41
  Keep `.env` and private recovery files out of Git.
42
42
 
43
- Lifecycle planning proves exact stateful execution without requiring a policy service.
44
- Robinhood admission reads native Nitro compute/poster evidence; optional caller caps
45
- only tighten it. Build-next can separately preflight the immediate unsigned envelope
46
- with an active `submissionClient`. Execution proof is not guaranteed wallet submission.
43
+ The local, unpublished `0.7.0` candidate is a breaking lifecycle cutover.
44
+ `prepareAndPlanLifecycleLaunch` combines bound-hook preparation and complete admission;
45
+ `preparePoolBoundLifecyclePlan` and `PlannedLaunch.atomicAttempt` are removed.
46
+ Only the explicitly requested execution mode is simulated. Independent `planLaunch`,
47
+ recovery and build-next operations acquire fresh authority.
48
+
49
+ Known deployments/profiles/hooks ship as frozen construction presets selected by
50
+ typed keys without remote discovery. Explicit live discovery and unlisted profiles
51
+ remain supported. The current October8 mined graph supports pool-bound config6/V2
52
+ construction; historical config5 evidence is never reused or relabeled as that graph.
53
+ Creator minimum/maximum hook fees and upward-price sensitivity are independent
54
+ per-pool values frozen at launch. Optional `buySlippageBps` protects all ordered buys in one SDK
55
+ operation, returning only the final proved commitment. Pure transaction compilation
56
+ reports exact calldata sizes. Position recipes use Black Market's Early Scarcity,
57
+ Staircase and Smooth Ramp weights, widths and gaps with exact allocation maxima.
58
+ Position maxima sum to each market budget; market budgets sum to minted supply.
59
+ Actual mint-rounding residuals burn before buys, with no creator reserve.
60
+ Staircase can explicitly use adjacent shelf boundaries instead of source gaps;
61
+ this retains its weights and widths without zero-liquidity price jumps.
62
+ Only an explicit final-tail option extends the last band to the finite usable
63
+ protocol boundary; arbitrary equal-tick extrapolation is not a preset. See the API
64
+ guide for preset and admission scopes.
65
+
66
+ Lifecycle planning admits execution only after exact stateful proof. Robinhood
67
+ admission reads native Nitro compute/poster evidence; optional caller caps only
68
+ tighten it. Build-next can freshly prove an optional untrusted `reviewedTransaction`
69
+ without changing its exact gas/price, and separately preflight that immediate
70
+ envelope with an active `submissionClient`. Execution proof is not wallet submission.
47
71
 
48
72
  [Example setup](https://github.com/abysshopper/black-market-node-sdk/tree/main/examples)
49
73
  · [API guide](https://github.com/abysshopper/black-market-node-sdk/blob/main/docs/launch-lifecycle.md)
@@ -200,7 +200,7 @@ export declare const robinhoodMainnet: {
200
200
  };
201
201
  /** Canonical replacement: abyss/deployments/4663/abyss-canonical-replacement-20260830/deployment.json. */
202
202
  export declare const robinhoodAbyssInfrastructure: AbyssInfrastructureAddresses;
203
- /** Mined pool-launch-v1 deployment, 20261005T053747Z-b5a7b88 (manifest.json). */
203
+ /** Mined pool-launch-v1 deployment, 20261008T000141Z-e174ce6 (manifest.json). */
204
204
  export declare const robinhoodLaunchApplication: LaunchApplicationAddresses;
205
205
  export declare const addresses: Record<SupportedChainId, ProtocolAddresses>;
206
206
  export declare const chains: Record<SupportedChainId, Chain>;
package/dist/addresses.js CHANGED
@@ -108,11 +108,11 @@ export const robinhoodAbyssInfrastructure = {
108
108
  abyssFeeRouterImplementation: "0xB35b85db23fEF3A146Fbd755D76be12F9e1eBfFC",
109
109
  abyssFeeRouter: "0x2c3B1b6fe0EDa8e10C0445567b47e66E825B34cd",
110
110
  };
111
- /** Mined pool-launch-v1 deployment, 20261005T053747Z-b5a7b88 (manifest.json). */
111
+ /** Mined pool-launch-v1 deployment, 20261008T000141Z-e174ce6 (manifest.json). */
112
112
  export const robinhoodLaunchApplication = {
113
- launchOrchestrator: "0xb75CBD17b9aecb7305B4DFcDa69595F783341c0E",
114
- launchImplementationRegistry: "0xaa8a410709B79cBA6F118F1be1FF568877A3B8Ee",
115
- launchFeeOwnerRegistry: "0x15778Aad08e12D458B2848F035860e2a8c2a0725",
113
+ launchOrchestrator: "0x91560876033d568d25CDe98C78c33ff8FC43962c",
114
+ launchImplementationRegistry: "0xB2B0f9F36617810D67b8fC175153Aa10024C1358",
115
+ launchFeeOwnerRegistry: "0x64b5ca1f21B8E84305b0e4D847924dca39Eb1fcb",
116
116
  };
117
117
  /** Robinhood-mainnet fork lending defaults; launch deployment remains explicit. */
118
118
  const workbenchDefaults = {
package/dist/launch.d.ts CHANGED
@@ -25,16 +25,77 @@ export type LaunchPoolRecipe = {
25
25
  tickLower: number;
26
26
  tickUpper: number;
27
27
  };
28
+ export type LaunchPositionRangesInput = {
29
+ /** Exact, spacing-aligned opening ratio, as returned by deriveLaunchPoolRecipe. */
30
+ launchSqrtPriceX96: bigint;
31
+ /** Existing launch convention: true means the launched token is token0. */
32
+ launchedTokenIsQuote: boolean;
33
+ /** Raw launch-token units allocated to ONE pool, not the entire launch supply. */
34
+ tokenBudget: bigint;
35
+ tickSpacing: number;
36
+ venue: "abyss" | "uniswap-v4";
37
+ /** Source-defined Black Market inventory weights, widths and gaps. */
38
+ distributionPreset: "early-scarcity" | "staircase" | "smooth-ramp";
39
+ positionCount?: number;
40
+ /** Defaults to source-gaps; adjacent removes only Staircase's empty shelf gaps. */
41
+ staircaseBoundaries?: "source-gaps" | "adjacent";
42
+ /** Defaults to false; extends only the final band's far endpoint. */
43
+ extendFinalRangeToBoundary?: boolean;
44
+ };
45
+ export type LaunchPositionRange = {
46
+ tickLower: number;
47
+ tickUpper: number;
48
+ sqrtPriceLowerX96: bigint;
49
+ sqrtPriceUpperX96: bigint;
50
+ inventoryBps: number;
51
+ /** Intended inventory allocation, including any rounding dust burned before buys. */
52
+ allocatedTokenAmount: bigint;
53
+ liquidity: bigint;
54
+ /** Admitted maximum: equals allocatedTokenAmount, not the smaller actual mint debit. */
55
+ maxTokenAmount: bigint;
56
+ maxQuoteAmount: 0n;
57
+ };
58
+ export type LaunchPositionRanges = {
59
+ launchTick: number;
60
+ launchSqrtPriceX96: bigint;
61
+ boundaryTick: number;
62
+ boundarySqrtPriceX96: bigint;
63
+ positions: readonly LaunchPositionRange[];
64
+ tokenAmountMaximum: bigint;
65
+ /** Expected rounding residual burned before buys; not an unallocated creator reserve. */
66
+ unspentTokenAmount: bigint;
67
+ totalLiquidity: bigint;
68
+ openingActiveLiquidity: bigint;
69
+ buySideLiquidity: bigint;
70
+ maxLiquidityPerTick: bigint;
71
+ };
28
72
  export type LaunchBuySqrtPriceLimitInput = {
29
73
  launchSqrtPriceX96: bigint;
30
74
  launchedTokenIsQuote: boolean;
31
75
  slippageBps?: number;
32
76
  };
77
+ /** Canonical Q64.96 endpoint ratio, rounded up; MAX is not a usable swap limit. */
78
+ export declare function getSqrtRatioAtTick(tick: number): bigint;
33
79
  /**
34
80
  * Derives one-sided launch geometry from explicit supply, budget and fully diluted market cap.
35
81
  * The raw price remains a rational bigint until the canonical Q64.96 square root conversion.
36
82
  */
37
83
  export declare function deriveLaunchPoolRecipe(input: LaunchPoolRecipeInput): LaunchPoolRecipe;
84
+ /**
85
+ * Source-defined one-sided Black Market presets, ordered toward higher launch-token
86
+ * prices. The first position starts at launch; later bands are contiguous or leave
87
+ * the preset's intentional gaps. Only an explicit final-tail adaptation reaches
88
+ * the usable protocol boundary; no equal-tick extrapolation is applied.
89
+ * Supply allocation across pools belongs to the caller: pass each pool's share.
90
+ * Budget caps floor all but the final allocation, which receives the remainder.
91
+ * Exact rational funding floors guarantee canonical rounded-up mint debits fit
92
+ * their caps, without a percentage liquidity reserve or creator allocation.
93
+ * Gross liquidity is checked at each endpoint, including adjacent shared ticks.
94
+ * Active liquidity follows [lower, upper); the first downward token1 buy crosses
95
+ * the opening upper endpoint and activates only the first reachable band.
96
+ * Boundary ratios are position endpoints, not exclusive swap-price guards.
97
+ */
98
+ export declare function deriveLaunchPositionRanges(input: LaunchPositionRangesInput): LaunchPositionRanges;
38
99
  export type LaunchInitialBuyEstimateInput = {
39
100
  launchSqrtPriceX96: bigint;
40
101
  liquidity: bigint;
@@ -1 +1 @@
1
- {"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../src/launch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG7C,eAAO,MAAM,sBAAsB,QAAmB,CAAC;AAEvD,+HAA+H;AAC/H,eAAO,MAAM,uBAAuB,EAClC,oEAA6E,CAAC;AAChF,eAAO,MAAM,uBAAuB,QAAU,CAAC;AAC/C,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,oCAAoC,OAAQ,CAAC;AAG1D,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC;AAEvE,MAAM,MAAM,qBAAqB,GAAG;IAClC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,GAAG,EAAE,YAAY,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC7D,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B,EAAE,MAAM,CAAC;IACnC,wBAAwB,EAAE,EAAE,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAwKF;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,qBAAqB,GAC3B,gBAAgB,CA6ClB;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC1C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,yBAAyB,EAAE,MAAM,CAAC;IAClC,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,6BAA6B,GACnC,wBAAwB,CAyC1B;AAOD;;;GAGG;AACH,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,4BAA4B,GAClC,MAAM,CAoBR"}
1
+ {"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../src/launch.ts"],"names":[],"mappings":"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"}
package/dist/launch.js CHANGED
@@ -9,6 +9,7 @@ export const DEFAULT_LAUNCH_TARGET_MARKET_CAP_USD = 5_000;
9
9
  const Q32 = 1n << 32n;
10
10
  const Q96 = 1n << 96n;
11
11
  const MAX_UINT128 = (1n << 128n) - 1n;
12
+ const MAX_INT128 = (1n << 127n) - 1n;
12
13
  const MAX_UINT160 = (1n << 160n) - 1n;
13
14
  const MAX_UINT256 = (1n << 256n) - 1n;
14
15
  const MIN_INT24 = -(1 << 23);
@@ -89,7 +90,8 @@ function integerSqrt(value) {
89
90
  }
90
91
  return x0;
91
92
  }
92
- function getSqrtRatioAtTick(tick) {
93
+ /** Canonical Q64.96 endpoint ratio, rounded up; MAX is not a usable swap limit. */
94
+ export function getSqrtRatioAtTick(tick) {
93
95
  if (!Number.isInteger(tick) || tick < MIN_TICK || tick > MAX_TICK) {
94
96
  throw new Error("Tick is outside the canonical TickMath range");
95
97
  }
@@ -119,14 +121,12 @@ function getTickAtSqrtRatio(sqrtPriceX96) {
119
121
  }
120
122
  return low;
121
123
  }
122
- // Signed-remainder alignment matches the canonical Solidity range geometry.
124
+ // Usable endpoints require mathematical floor/ceil, including negative ticks.
123
125
  function alignDown(tick, tickSpacing) {
124
- const remainder = tick % tickSpacing;
125
- return remainder === 0 ? tick : tick - remainder;
126
+ return Math.floor(tick / tickSpacing) * tickSpacing;
126
127
  }
127
128
  function alignUp(tick, tickSpacing) {
128
- const remainder = tick % tickSpacing;
129
- return remainder === 0 ? tick : tick + (tickSpacing - remainder);
129
+ return Math.ceil(tick / tickSpacing) * tickSpacing;
130
130
  }
131
131
  function launchBand(launchTick, tickSpacing, launchedTokenIsQuote) {
132
132
  const tickLower = launchedTokenIsQuote
@@ -148,6 +148,13 @@ function liquidityForAmount0(amount0, sqrtLowerX96, sqrtUpperX96) {
148
148
  function liquidityForAmount1(amount1, sqrtLowerX96, sqrtUpperX96) {
149
149
  return (amount1 * Q96) / (sqrtUpperX96 - sqrtLowerX96);
150
150
  }
151
+ function divideRoundingUp(numerator, denominator) {
152
+ return (numerator + denominator - 1n) / denominator;
153
+ }
154
+ // Canonical SqrtPriceMath.getAmount0Delta(..., true) uses two ceiling divisions.
155
+ function amount0ForLiquidityRoundingUp(liquidity, sqrtLowerX96, sqrtUpperX96) {
156
+ return divideRoundingUp(divideRoundingUp((liquidity << 96n) * (sqrtUpperX96 - sqrtLowerX96), sqrtUpperX96), sqrtLowerX96);
157
+ }
151
158
  /**
152
159
  * Derives one-sided launch geometry from explicit supply, budget and fully diluted market cap.
153
160
  * The raw price remains a rational bigint until the canonical Q64.96 square root conversion.
@@ -195,6 +202,164 @@ export function deriveLaunchPoolRecipe(input) {
195
202
  tickLower, tickUpper,
196
203
  };
197
204
  }
205
+ // Black Market apps/web/src/lib/launch.ts uses cumulative rounding for both
206
+ // preset inventory weights (10,000 bps) and active widths (64 spacing steps).
207
+ function apportionLaunchInventory(total, scores) {
208
+ const sum = scores.reduce((value, score) => value + score, 0);
209
+ let cumulative = 0;
210
+ let allocated = 0;
211
+ return scores.map((score) => {
212
+ cumulative += score;
213
+ const next = Math.round((total * cumulative) / sum);
214
+ const share = next - allocated;
215
+ allocated = next;
216
+ return share;
217
+ });
218
+ }
219
+ /**
220
+ * Source-defined one-sided Black Market presets, ordered toward higher launch-token
221
+ * prices. The first position starts at launch; later bands are contiguous or leave
222
+ * the preset's intentional gaps. Only an explicit final-tail adaptation reaches
223
+ * the usable protocol boundary; no equal-tick extrapolation is applied.
224
+ * Supply allocation across pools belongs to the caller: pass each pool's share.
225
+ * Budget caps floor all but the final allocation, which receives the remainder.
226
+ * Exact rational funding floors guarantee canonical rounded-up mint debits fit
227
+ * their caps, without a percentage liquidity reserve or creator allocation.
228
+ * Gross liquidity is checked at each endpoint, including adjacent shared ticks.
229
+ * Active liquidity follows [lower, upper); the first downward token1 buy crosses
230
+ * the opening upper endpoint and activates only the first reachable band.
231
+ * Boundary ratios are position endpoints, not exclusive swap-price guards.
232
+ */
233
+ export function deriveLaunchPositionRanges(input) {
234
+ assertCanonicalSqrtPrice(input.launchSqrtPriceX96, "launchSqrtPriceX96");
235
+ assertPositiveUint(input.tokenBudget, MAX_UINT256, "tokenBudget");
236
+ if (typeof input.launchedTokenIsQuote !== "boolean")
237
+ throw new Error("launchedTokenIsQuote must be a boolean");
238
+ const { tickSpacing, venue, distributionPreset } = input;
239
+ if (!Number.isInteger(tickSpacing) || tickSpacing < 1 || tickSpacing > 32767)
240
+ throw new Error("tickSpacing must be 1..32767");
241
+ if (venue !== "abyss" && venue !== "uniswap-v4")
242
+ throw new Error("venue must be abyss or uniswap-v4");
243
+ if (distributionPreset !== "early-scarcity" && distributionPreset !== "staircase" && distributionPreset !== "smooth-ramp") {
244
+ throw new Error("distributionPreset must be early-scarcity, staircase or smooth-ramp");
245
+ }
246
+ const positionCount = input.positionCount ?? 5;
247
+ if (!Number.isInteger(positionCount) || positionCount < 2 || positionCount > 16)
248
+ throw new Error("positionCount must be 2..16");
249
+ const extendFinalRangeToBoundary = input.extendFinalRangeToBoundary ?? false;
250
+ if (typeof extendFinalRangeToBoundary !== "boolean")
251
+ throw new Error("extendFinalRangeToBoundary must be a boolean");
252
+ const staircaseBoundaries = input.staircaseBoundaries === undefined ? "source-gaps" : input.staircaseBoundaries;
253
+ if (staircaseBoundaries !== "source-gaps" && staircaseBoundaries !== "adjacent") {
254
+ throw new Error("staircaseBoundaries must be source-gaps or adjacent");
255
+ }
256
+ if (input.staircaseBoundaries !== undefined && distributionPreset !== "staircase") {
257
+ throw new Error("staircaseBoundaries is only valid for the staircase preset");
258
+ }
259
+ const launchTick = getTickAtSqrtRatio(input.launchSqrtPriceX96);
260
+ if (launchTick % tickSpacing !== 0 || getSqrtRatioAtTick(launchTick) !== input.launchSqrtPriceX96) {
261
+ throw new Error("Opening sqrt price must be an exact spacing-aligned tick");
262
+ }
263
+ const band = launchBand(launchTick, tickSpacing, input.launchedTokenIsQuote);
264
+ const boundaryTick = input.launchedTokenIsQuote ? band.tickUpper : band.tickLower;
265
+ const inventoryBps = apportionLaunchInventory(10_000, Array.from({ length: positionCount }, (_, index) => {
266
+ if (distributionPreset === "early-scarcity")
267
+ return (positionCount - 1) ** 2 + 15 * index ** 2;
268
+ if (distributionPreset === "staircase")
269
+ return (Math.floor((index * 4) / positionCount) + 1) ** 2;
270
+ return positionCount + 2 * index;
271
+ }));
272
+ const widths = apportionLaunchInventory(64, inventoryBps.map((_, index) => {
273
+ if (distributionPreset === "early-scarcity")
274
+ return positionCount - 1 + 3 * index;
275
+ if (distributionPreset === "staircase")
276
+ return Math.floor((index * 4) / positionCount) + 1;
277
+ return 2 * positionCount - index;
278
+ }));
279
+ // V4 Pool.sol floors the negative tick INDEX; Abyss Tick.sol truncates toward
280
+ // zero, equivalent to ceil here. The resulting canonical capacities differ.
281
+ const minimumTickIndex = venue === "uniswap-v4" ? Math.floor(MIN_TICK / tickSpacing) : Math.ceil(MIN_TICK / tickSpacing);
282
+ const maximumTickIndex = Math.floor(MAX_TICK / tickSpacing);
283
+ const maxLiquidityPerTick = MAX_UINT128 / BigInt(maximumTickIndex - minimumTickIndex + 1);
284
+ const positions = [];
285
+ const grossLiquidityByTick = new Map();
286
+ const direction = input.launchedTokenIsQuote ? 1 : -1;
287
+ let distance = 0;
288
+ let allocated = 0n;
289
+ let totalLiquidity = 0n;
290
+ let tokenAmountMaximum = 0n;
291
+ let tokenAmountSpent = 0n;
292
+ let openingActiveLiquidity = 0n;
293
+ for (let index = 0; index < positionCount; index += 1) {
294
+ const weight = inventoryBps[index];
295
+ const allocatedTokenAmount = index === positionCount - 1
296
+ ? input.tokenBudget - allocated
297
+ : (input.tokenBudget * BigInt(weight)) / 10000n;
298
+ if (allocatedTokenAmount <= 0n)
299
+ throw new Error("Every position must have a positive allocated token cap");
300
+ allocated += allocatedTokenAmount;
301
+ if (index > 0) {
302
+ if (distributionPreset === "early-scarcity") {
303
+ distance += 2 + Math.floor((4 * index) / (positionCount - 1));
304
+ }
305
+ else if (distributionPreset === "staircase" && staircaseBoundaries === "source-gaps" &&
306
+ Math.floor((index * 4) / positionCount) !== Math.floor(((index - 1) * 4) / positionCount)) {
307
+ distance += 3;
308
+ }
309
+ }
310
+ const start = launchTick + direction * distance * tickSpacing;
311
+ distance += widths[index];
312
+ const canonicalEnd = launchTick + direction * distance * tickSpacing;
313
+ if (Math.min(start, canonicalEnd) < band.tickLower || Math.max(start, canonicalEnd) > band.tickUpper) {
314
+ throw new Error("The launch tick leaves too little room for this distribution preset");
315
+ }
316
+ const end = extendFinalRangeToBoundary && index === positionCount - 1 ? boundaryTick : canonicalEnd;
317
+ const tickLower = Math.min(start, end);
318
+ const tickUpper = Math.max(start, end);
319
+ const sqrtLowerX96 = tickLower === launchTick ? input.launchSqrtPriceX96 : getSqrtRatioAtTick(tickLower);
320
+ const sqrtUpperX96 = tickUpper === launchTick ? input.launchSqrtPriceX96 : getSqrtRatioAtTick(tickUpper);
321
+ // For integer caps, flooring the exact rational inverse guarantees the
322
+ // two-ceiling amount0 debit (or one-ceiling amount1 debit) cannot exceed cap.
323
+ const liquidity = input.launchedTokenIsQuote
324
+ ? (allocatedTokenAmount * sqrtLowerX96 * sqrtUpperX96) / (Q96 * (sqrtUpperX96 - sqrtLowerX96))
325
+ : liquidityForAmount1(allocatedTokenAmount, sqrtLowerX96, sqrtUpperX96);
326
+ if (liquidity <= 0n || liquidity > MAX_INT128)
327
+ throw new Error("Derived position liquidity is outside the positive int128 mint range");
328
+ const mintDebit = input.launchedTokenIsQuote
329
+ ? amount0ForLiquidityRoundingUp(liquidity, sqrtLowerX96, sqrtUpperX96)
330
+ : divideRoundingUp(liquidity * (sqrtUpperX96 - sqrtLowerX96), Q96);
331
+ if (mintDebit <= 0n || mintDebit > allocatedTokenAmount || (venue === "uniswap-v4" && mintDebit > MAX_INT128)) {
332
+ throw new Error("Derived position mint debit exceeds its budget or settlement range");
333
+ }
334
+ const lowerGross = (grossLiquidityByTick.get(tickLower) ?? 0n) + liquidity;
335
+ const upperGross = (grossLiquidityByTick.get(tickUpper) ?? 0n) + liquidity;
336
+ if (lowerGross > maxLiquidityPerTick || upperGross > maxLiquidityPerTick) {
337
+ throw new Error(`Gross position liquidity exceeds the tick capacity at ${lowerGross > maxLiquidityPerTick ? tickLower : tickUpper}`);
338
+ }
339
+ grossLiquidityByTick.set(tickLower, lowerGross);
340
+ grossLiquidityByTick.set(tickUpper, upperGross);
341
+ totalLiquidity += liquidity;
342
+ tokenAmountMaximum += allocatedTokenAmount;
343
+ tokenAmountSpent += mintDebit;
344
+ if (tickLower <= launchTick && launchTick < tickUpper)
345
+ openingActiveLiquidity += liquidity;
346
+ positions.push({ tickLower, tickUpper, sqrtPriceLowerX96: sqrtLowerX96, sqrtPriceUpperX96: sqrtUpperX96,
347
+ inventoryBps: weight, allocatedTokenAmount, liquidity, maxTokenAmount: allocatedTokenAmount, maxQuoteAmount: 0n });
348
+ }
349
+ return {
350
+ launchTick,
351
+ launchSqrtPriceX96: input.launchSqrtPriceX96,
352
+ boundaryTick,
353
+ boundarySqrtPriceX96: getSqrtRatioAtTick(boundaryTick),
354
+ positions,
355
+ tokenAmountMaximum,
356
+ unspentTokenAmount: input.tokenBudget - tokenAmountSpent,
357
+ totalLiquidity,
358
+ openingActiveLiquidity,
359
+ buySideLiquidity: positions[0].liquidity,
360
+ maxLiquidityPerTick,
361
+ };
362
+ }
198
363
  /**
199
364
  * Pure estimate for the first exact-input buy against a fresh one-sided
200
365
  * launch position. No wallet balance, allowance, pool deployment, or RPC state.
@@ -1 +1 @@
1
- {"version":3,"file":"launch.js","sourceRoot":"","sources":["../src/launch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"launch.js","sourceRoot":"","sources":["../src/launch.ts"],"names":[],"mappings":"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"}