• Builds the full deployment as ordered transactions: graduate bundled with the first atomicOpens opens, then batches of opensPerFollowUp opens. The defaults (2 and 3) are the measured maximums under the runtime's 64-entry instruction trace limit, so an 8-position launch is exactly 3 transactions — one Jito bundle for all-or-nothing deployment with no sandwich window. When the configured pool seed index was squatted, pass repointToSeedIndex to prepend the post-finalize amendment to the first transaction, keeping the amend and the graduate atomic.

    Every account is derived before graduation executes (position PDAs come from the predicted anchor tick), which is what makes the atomic bundle possible. The first transaction does not fit a legacy transaction: create an address lookup table over the builders' accounts and send as v0 (see atomicGraduateAndOpenClmmPositions.test.ts for a worked example). If the prediction inputs could change before landing (e.g. an uncapped raise still accepting deposits), the bundle simply fails and can be rebuilt — nothing partial lands.

    Already-graduated buckets get an opens-only plan for the remaining positions, derived from the recorded graduation tick.

    Parameters

    • umi: Umi
    • ctx: ClmmGraduationContext
    • options: {
          atomicOpens?: number;
          authority?: Signer;
          backendSigner?: Signer;
          computeUnitLimit?: number;
          graduationTick?: number;
          opensPerFollowUp?: number;
          payer?: null | Signer;
          repointToSeedIndex?: number;
      } = {}
      • Optional atomicOpens?: number

        Opens bundled with graduate (default 2, the atomic maximum).

      • Optional authority?: Signer

        Signs the repoint amendment; defaults to the umi identity.

      • Optional backendSigner?: Signer

        Required only when the bucket has a backend signer extension.

      • Optional computeUnitLimit?: number

        Compute unit limit per transaction (default 1.4M).

      • Optional graduationTick?: number

        Override the anchor tick (e.g. from a custom prediction).

      • Optional opensPerFollowUp?: number

        Opens per follow-up transaction (default 3, the measured maximum).

      • Optional payer?: null | Signer

        On-chain rent payer (deferred pool-creation cost on graduate, position rent top-ups on opens). Defaults to the umi identity; pass null to omit, in which case the bucket signer must already hold enough lamports.

      • Optional repointToSeedIndex?: number

        Repoint the bucket to this pool seed index and graduate atomically: prepends updateRaydiumClmmBucketV2PostFinalize (keeping the configured position plan) to the graduation transaction and derives every pool account from the new index. This is the recovery path when the configured index was squatted by another launch of the same mint pair + amm config (checkClmmLaunchReadiness reports it): pick a random fresh index with findAvailableClmmPoolSeedIndex and land the amend and the graduate in one transaction/bundle, so the new index is never visible on-chain before the pool exists. Must be in 1..MAX_CLMM_POOL_SEED_INDEX.

    Returns ClmmGraduationPlan

Generated using TypeDoc