Skip to content

feat(solana): support doppler-sdk 1.0.22 launches#3

Open
Sabnock01 wants to merge 3 commits into
mainfrom
feat/solana-sdk-1-0-17
Open

feat(solana): support doppler-sdk 1.0.22 launches#3
Sabnock01 wants to merge 3 commits into
mainfrom
feat/solana-sdk-1-0-17

Conversation

@Sabnock01

@Sabnock01 Sabnock01 commented May 22, 2026

Copy link
Copy Markdown
Collaborator

Summary

Updates the Solana launch API to work with @whetstone-research/doppler-sdk@1.0.22 and tightens the public Solana launch contract for integrators.

SDK 1.0.22 compatibility

  • Bumps @whetstone-research/doppler-sdk to ^1.0.22.
  • Updates Solana launch initialization to use the current SDK account/argument shape:
    • launchFeeState
    • swapFeeBps
    • hook program fields
    • hook payload/hash fields
    • migrator init/migrate payload fields
    • fee beneficiaries
  • Keeps curveFeeBps as a backward-compatible request/response alias for swapFeeBps.

Solana CPMM migration support

  • Keeps Solana migration mode as migration.type="none" for initializer launches.
  • Adds migration.supportCpmm?: boolean.
    • false or omitted uses the system program for hook and migrator, with empty payloads and disabled hashes.
    • true uses the canonical CPMM hook and CPMM migrator.
  • Adds migration.minimumQuoteRaise?: string, required when supportCpmm=true and denominated in quote token atoms.
  • Allows nonzero economics.baseForDistribution and economics.baseForLiquidity only when supportCpmm=true.
  • Encodes CPMM migrator register/migrate payloads with:
    • CPMM config
    • minRaiseQuote
    • initial swap fee
    • fee split
    • distribution recipients
    • base distribution/liquidity amounts

Solana launch hardening and defaults

  • Defaults Solana swap fees from the on-chain initializer config.
  • Validates requested swap fees against initializer min/max bounds.
  • Uses fixed Solana base token decimals of 6; WSOL quote decimals remain 9.
  • Supports only WSOL as the Solana numeraire for now.
  • Does not expose custom hooks through the API yet.
  • Keeps execution devnet-only; solanaMainnetBeta / mainnet-beta remains scaffolded and returns 501 SOLANA_NETWORK_UNSUPPORTED.
  • Uses the API payer as launch namespace/authority and default recipient context.

Fee beneficiaries

  • Adds fee beneficiary validation:
    • max 8 beneficiaries
    • unique addresses
    • shareBps must sum to 10000
    • initializer protocol beneficiary cannot be included
    • explicit non-protocol beneficiaries are required when the configured payer is the initializer protocol beneficiary

Transaction submission

  • Builds a per-launch address lookup table before submitting the initialize transaction.
  • Compresses the initialize transaction with that lookup table.
  • Uses RPC preflight and normal retry behavior instead of forcing maxRetries: 0, which fixed dropped devnet submissions in live testing.

API/types/docs/tests

  • Adds/updates Solana Zod schemas and parsing.
  • Updates Solana response types and OpenAPI/docs for launch fee state, swap fee, fee beneficiaries, read-route hook/migrator fields, CPMM migration settings, and 6-decimal base tokens.
  • Updates integration test coverage for CPMM-gated Solana reserve splits.

Verification

  • npm run lint
  • npm run typecheck
  • npm run test:integration
  • pre-commit hook: oxfmt, oxlint, typecheck

@Sabnock01 Sabnock01 changed the title feat(solana): support doppler-sdk 1.0.17 launches feat(solana): support doppler-sdk 1.0.21 launches Jun 9, 2026
@Sabnock01 Sabnock01 changed the title feat(solana): support doppler-sdk 1.0.21 launches feat(solana): support doppler-sdk 1.0.22 launches Jun 12, 2026
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