{"version":3,"sources":["../src/solana/core/constants.ts","../src/solana/core/pda.ts"],"names":["address","getAddressCodec","SYSTEM_PROGRAM_ADDRESS","getProgramDerivedAddress"],"mappings":"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","file":"chunk-O2Z5ORGF.cjs","sourcesContent":["import { address, type Address } from '@solana/kit';\nexport {\n  TOKEN_PROGRAM_ADDRESS,\n  ASSOCIATED_TOKEN_PROGRAM_ADDRESS,\n} from '@solana-program/token';\nexport { SYSTEM_PROGRAM_ADDRESS } from '@solana-program/system';\nexport { SYSVAR_RENT_ADDRESS } from '@solana/sysvars';\n\nexport const TOKEN_2022_PROGRAM_ADDRESS: Address = address(\n  'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb',\n);\nexport const SYSVAR_INSTRUCTIONS_ADDRESS: Address = address(\n  'Sysvar1nstructions1111111111111111111111111',\n);\n\n/**\n * CPMM AMM program ID for the default devnet deployment.\n */\nexport const DEVNET_CPMM_PROGRAM_ID: Address = address(\n  '9PSxVPoPfnbZ8Q1uQhgS6ZxvBjFboZtebNsu34umxkgQ',\n);\n\n/**\n * @deprecated Use DEVNET_CPMM_PROGRAM_ID or pass an explicit deployment.\n */\nexport const CPMM_PROGRAM_ID = DEVNET_CPMM_PROGRAM_ID;\n\n/**\n * Metaplex Token Metadata Program ID\n */\nexport const TOKEN_METADATA_PROGRAM_ID: Address = address(\n  'metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s',\n);\n\n// ============================================================================\n// Math Constants\n// ============================================================================\n\n/** Basis points denominator (10,000 = 100%) */\nexport const BPS_DENOM = 10_000n;\n\n/** Q64.64 fixed-point representation of 1.0 (2^64) */\nexport const Q64_ONE = 1n << 64n;\n\n/** Current account version */\nexport const ACCOUNT_VERSION = 1;\n\n// ============================================================================\n// Array Size Constants\n// ============================================================================\n\n/** Maximum number of programs in hook allowlist */\nexport const MAX_HOOK_ALLOWLIST = 32;\n\n/** Maximum number of oracle observations (TWAP buffer size) */\nexport const MAX_ORACLE_OBSERVATIONS = 64;\n\n// ============================================================================\n// PDA Seeds\n// ============================================================================\n\n/** Seed for AmmConfig PDA: ['config'] */\nexport const SEED_CONFIG = 'config';\n\n/** Seed prefix for launch-migrated Pool PDA: ['pool', token0_mint, token1_mint] */\nexport const SEED_POOL = 'pool';\n\n/** Seed prefix for spot Pool PDA: ['spot_pool', token0_mint, token1_mint, swap_fee_bps] */\nexport const SEED_SPOT_POOL = 'spot_pool';\n\n/** Seed prefix for pool authority PDA: ['authority', pool] */\nexport const SEED_AUTHORITY = 'authority';\n\n/** Seed prefix for token0 vault PDA: ['vault0', pool] */\nexport const SEED_VAULT0 = 'vault0';\n\n/** Seed prefix for token1 vault PDA: ['vault1', pool] */\nexport const SEED_VAULT1 = 'vault1';\n\n/** Seed prefix for Position PDA: ['position', pool, owner, position_id] */\nexport const SEED_POSITION = 'position';\n\n/** Seed prefix for OracleState PDA: ['oracle', pool] */\nexport const SEED_ORACLE = 'oracle';\n\n/** Seed prefix for protocol fee owner PDA: ['protocol_fee_owner', pool] */\nexport const SEED_PROTOCOL_FEE_OWNER = 'protocol_fee_owner';\n\n// ============================================================================\n// Hook Flags\n// ============================================================================\n\n/** Hook: called before swap */\nexport const HF_BEFORE_SWAP = 1 << 0;\n\n/** Hook: called after swap */\nexport const HF_AFTER_SWAP = 1 << 1;\n\n/** Hook flags supported by immutable spot pools */\nexport const SPOT_HOOK_FLAG_MASK = HF_BEFORE_SWAP | HF_AFTER_SWAP;\n\n/** Hook: called before add liquidity */\nexport const HF_BEFORE_ADD_LIQ = 1 << 2;\n\n/** Hook: called after add liquidity */\nexport const HF_AFTER_ADD_LIQ = 1 << 3;\n\n/** Hook: called before remove liquidity */\nexport const HF_BEFORE_REMOVE_LIQ = 1 << 4;\n\n/** Hook: called after remove liquidity */\nexport const HF_AFTER_REMOVE_LIQ = 1 << 5;\n\n/** Require an oracle account when invoking hooks */\nexport const HF_REQUIRE_ORACLE = 1 << 6;\n\n/** Preserve readonly signer metas when forwarding remaining accounts to hooks */\nexport const HF_FORWARD_READONLY_SIGNERS = 1 << 7;\n\n/** Hook return value indicating \"no change\" to fee parameter */\nexport const HOOK_NO_CHANGE = 0xffff;\n\n// ============================================================================\n// Instruction Discriminators (Anchor 8-byte hashes)\n// ============================================================================\n\n/**\n * Anchor instruction discriminator (first 8 bytes of SHA256(\"global:<instruction_name>\"))\n * These are computed at build time from the instruction names.\n */\nexport const INSTRUCTION_DISCRIMINATORS = {\n  // SHA256(\"global:initialize_config\")[0:8]\n  initializeConfig: new Uint8Array([\n    0xd0, 0x7f, 0x15, 0x01, 0xc2, 0xbe, 0xc4, 0x46,\n  ]),\n  // SHA256(\"global:initialize_pool\")[0:8]\n  initializePool: new Uint8Array([\n    0x5f, 0xb4, 0x0a, 0xac, 0x54, 0xae, 0xe8, 0x28,\n  ]),\n  // SHA256(\"global:initialize_oracle\")[0:8]\n  initializeOracle: new Uint8Array([\n    0x90, 0xdf, 0x83, 0x78, 0xc4, 0xfd, 0xb5, 0x63,\n  ]),\n  // SHA256(\"global:create_position\")[0:8]\n  createPosition: new Uint8Array([\n    0x30, 0xd7, 0xc5, 0x99, 0x60, 0xcb, 0xb4, 0x85,\n  ]),\n  // SHA256(\"global:add_liquidity\")[0:8]\n  addLiquidity: new Uint8Array([\n    0xb5, 0x9d, 0x59, 0x43, 0x8f, 0xb6, 0x34, 0x48,\n  ]),\n  // SHA256(\"global:remove_liquidity\")[0:8]\n  removeLiquidity: new Uint8Array([\n    0x50, 0x55, 0xd1, 0x48, 0x18, 0xce, 0xb1, 0x6c,\n  ]),\n  // SHA256(\"global:swap_exact_in\")[0:8]\n  swapExactIn: new Uint8Array([0x68, 0x68, 0x83, 0x56, 0xa1, 0xbd, 0xb4, 0xd8]),\n  // SHA256(\"global:collect_fees\")[0:8]\n  collectFees: new Uint8Array([0xa4, 0x98, 0xcf, 0x63, 0x1e, 0xba, 0x13, 0xb6]),\n  // SHA256(\"global:collect_protocol_fees\")[0:8]\n  collectProtocolFees: new Uint8Array([\n    0x16, 0x43, 0x17, 0x62, 0x96, 0xb2, 0x46, 0xdc,\n  ]),\n  // SHA256(\"global:close_position\")[0:8]\n  closePosition: new Uint8Array([\n    0x7b, 0x86, 0x51, 0x00, 0x31, 0x44, 0x62, 0x62,\n  ]),\n  // SHA256(\"global:oracle_update\")[0:8]\n  oracleUpdate: new Uint8Array([\n    0x55, 0xd1, 0xf8, 0x8e, 0xba, 0xf9, 0x78, 0xef,\n  ]),\n  // SHA256(\"global:oracle_consult\")[0:8]\n  oracleConsult: new Uint8Array([\n    0xef, 0xed, 0xff, 0xb1, 0x8e, 0x48, 0x60, 0xaf,\n  ]),\n  // SHA256(\"global:set_hook\")[0:8]\n  setHook: new Uint8Array([0xaf, 0x10, 0xbb, 0xfc, 0x13, 0x36, 0x6f, 0xdd]),\n  // SHA256(\"global:set_fees\")[0:8]\n  setFees: new Uint8Array([0x89, 0xb2, 0x31, 0x3a, 0x00, 0xf5, 0xf2, 0xbe]),\n  // SHA256(\"global:transfer_admin\")[0:8]\n  transferAdmin: new Uint8Array([\n    0x2a, 0xf2, 0x42, 0x6a, 0xe4, 0x0a, 0x6f, 0x9c,\n  ]),\n  // SHA256(\"global:pause\")[0:8]\n  pause: new Uint8Array([0xd3, 0x16, 0xdd, 0xfb, 0x4a, 0x79, 0xc1, 0x2f]),\n  // SHA256(\"global:unpause\")[0:8]\n  unpause: new Uint8Array([0xa9, 0x90, 0x04, 0x26, 0x0a, 0x8d, 0xbc, 0xff]),\n  // SHA256(\"global:withdraw_vault_excess\")[0:8]\n  withdrawVaultExcess: new Uint8Array([\n    0xeb, 0xc5, 0xf7, 0xb1, 0x89, 0x48, 0x87, 0x71,\n  ]),\n} as const;\n\n// ============================================================================\n// Account Discriminators (Anchor 8-byte hashes)\n// ============================================================================\n\n/**\n * Anchor account discriminator (first 8 bytes of SHA256(\"account:<AccountName>\"))\n */\nexport const ACCOUNT_DISCRIMINATORS = {\n  // SHA256(\"account:AmmConfig\")[0:8]\n  AmmConfig: new Uint8Array([0xda, 0xf4, 0x21, 0x68, 0xcb, 0xcb, 0x2b, 0x6f]),\n  // SHA256(\"account:Pool\")[0:8]\n  Pool: new Uint8Array([0xf1, 0x9a, 0x6d, 0x04, 0x11, 0xb1, 0x6d, 0xbc]),\n  // SHA256(\"account:Position\")[0:8]\n  Position: new Uint8Array([0xaa, 0xbc, 0x8f, 0xe4, 0x7a, 0x40, 0xf7, 0xd0]),\n  // SHA256(\"account:OracleState\")[0:8]\n  OracleState: new Uint8Array([0x61, 0x9c, 0x9d, 0xbd, 0xc2, 0x49, 0x08, 0x0f]),\n} as const;\n","import {\n  type Address,\n  type ProgramDerivedAddress,\n  getAddressCodec,\n  getProgramDerivedAddress,\n} from '@solana/kit';\nimport {\n  CPMM_PROGRAM_ID,\n  SEED_CONFIG,\n  SEED_POOL,\n  SEED_SPOT_POOL,\n  SEED_AUTHORITY,\n  SEED_VAULT0,\n  SEED_VAULT1,\n  SEED_POSITION,\n  SEED_ORACLE,\n  SEED_PROTOCOL_FEE_OWNER,\n  HF_BEFORE_SWAP,\n  HF_AFTER_SWAP,\n  SPOT_HOOK_FLAG_MASK,\n  SYSTEM_PROGRAM_ADDRESS,\n} from './constants.js';\n\nconst addressCodec = getAddressCodec();\nconst textEncoder = new TextEncoder();\n\nfunction u16Seed(value: number): Uint8Array {\n  if (!Number.isInteger(value) || value < 0 || value > 0xffff) {\n    throw new RangeError('u16 value must be between 0 and 65535');\n  }\n\n  const bytes = new Uint8Array(2);\n  new DataView(bytes.buffer).setUint16(0, value, true);\n  return bytes;\n}\n\nfunction u32Seed(value: number): Uint8Array {\n  if (!Number.isInteger(value) || value < 0 || value > 0xffffffff) {\n    throw new RangeError('u32 value must be between 0 and 4294967295');\n  }\n\n  const bytes = new Uint8Array(4);\n  new DataView(bytes.buffer).setUint32(0, value, true);\n  return bytes;\n}\n\nfunction assertHookedSpotPoolConfig(\n  hookProgram: Address,\n  hookFlags: number,\n): void {\n  if (hookProgram === SYSTEM_PROGRAM_ADDRESS) {\n    throw new Error('hookProgram must identify a non-default program');\n  }\n\n  u32Seed(hookFlags);\n  if (\n    hookFlags !== HF_BEFORE_SWAP &&\n    hookFlags !== HF_AFTER_SWAP &&\n    hookFlags !== SPOT_HOOK_FLAG_MASK\n  ) {\n    throw new Error(\n      'hookFlags must enable before-swap, after-swap, or both for a spot pool',\n    );\n  }\n}\n\n// ============================================================================\n// Token Sorting\n// ============================================================================\n\n/**\n * Sort two mints into canonical order (token0 < token1 by bytes)\n * This is required for Pool PDA derivation and instruction ordering.\n *\n * @param mint0 - First mint address\n * @param mint1 - Second mint address\n * @returns Tuple of [token0, token1] in canonical order\n * @throws Error if mints are equal\n */\nexport function sortMints(mint0: Address, mint1: Address): [Address, Address] {\n  const bytesA = addressCodec.encode(mint0);\n  const bytesB = addressCodec.encode(mint1);\n\n  for (let i = 0; i < 32; i++) {\n    if (bytesA[i] < bytesB[i]) {\n      return [mint0, mint1];\n    }\n    if (bytesA[i] > bytesB[i]) {\n      return [mint1, mint0];\n    }\n  }\n\n  throw new Error('Mints are equal - cannot create pool with identical tokens');\n}\n\n/**\n * Check if mints are in canonical order\n */\nexport function areMintsOrdered(mint0: Address, mint1: Address): boolean {\n  const bytes0 = addressCodec.encode(mint0);\n  const bytes1 = addressCodec.encode(mint1);\n\n  for (let i = 0; i < 32; i++) {\n    if (bytes0[i] < bytes1[i]) return true;\n    if (bytes0[i] > bytes1[i]) return false;\n  }\n  return false; // equal\n}\n\n// ============================================================================\n// PDA Derivation Functions\n// ============================================================================\n\n/**\n * Derive the AmmConfig PDA address\n * Seeds: ['config']\n */\nexport async function getConfigAddress(\n  programId: Address = CPMM_PROGRAM_ID,\n): Promise<ProgramDerivedAddress> {\n  return getProgramDerivedAddress({\n    programAddress: programId,\n    seeds: [textEncoder.encode(SEED_CONFIG)],\n  });\n}\n\n/**\n * Derive the Pool PDA address for a token pair\n * Seeds: ['pool', token0_mint, token1_mint]\n *\n * Note: Mints will be automatically sorted if not in canonical order.\n */\nexport async function getPoolAddress(\n  mint0: Address,\n  mint1: Address,\n  programId: Address = CPMM_PROGRAM_ID,\n): Promise<ProgramDerivedAddress> {\n  const [token0, token1] = sortMints(mint0, mint1);\n  return getProgramDerivedAddress({\n    programAddress: programId,\n    seeds: [\n      textEncoder.encode(SEED_POOL),\n      addressCodec.encode(token0),\n      addressCodec.encode(token1),\n    ],\n  });\n}\n\n/**\n * Derive the spot Pool PDA address for a token pair and immutable fee tier.\n * Seeds: ['spot_pool', token0_mint, token1_mint, swap_fee_bps_le]\n *\n * Note: Mints will be automatically sorted if not in canonical order.\n */\nexport async function getSpotPoolAddress(\n  mint0: Address,\n  mint1: Address,\n  swapFeeBps: number,\n  programId: Address = CPMM_PROGRAM_ID,\n): Promise<ProgramDerivedAddress> {\n  const [token0, token1] = sortMints(mint0, mint1);\n  return getProgramDerivedAddress({\n    programAddress: programId,\n    seeds: [\n      textEncoder.encode(SEED_SPOT_POOL),\n      addressCodec.encode(token0),\n      addressCodec.encode(token1),\n      u16Seed(swapFeeBps),\n    ],\n  });\n}\n\n/**\n * Derive the hooked spot Pool PDA for a token pair, fee tier, and immutable\n * swap-hook configuration.\n * Seeds: ['spot_pool', token0_mint, token1_mint, swap_fee_bps_le, hook_program, hook_flags_le]\n *\n * Note: Mints will be automatically sorted if not in canonical order.\n */\nexport async function getHookedSpotPoolAddress(\n  mint0: Address,\n  mint1: Address,\n  swapFeeBps: number,\n  hookProgram: Address,\n  hookFlags: number,\n  programId: Address = CPMM_PROGRAM_ID,\n): Promise<ProgramDerivedAddress> {\n  const [token0, token1] = sortMints(mint0, mint1);\n  assertHookedSpotPoolConfig(hookProgram, hookFlags);\n\n  return getProgramDerivedAddress({\n    programAddress: programId,\n    seeds: [\n      textEncoder.encode(SEED_SPOT_POOL),\n      addressCodec.encode(token0),\n      addressCodec.encode(token1),\n      u16Seed(swapFeeBps),\n      addressCodec.encode(hookProgram),\n      u32Seed(hookFlags),\n    ],\n  });\n}\n\n/**\n * Derive the Pool authority PDA (vault owner)\n * Seeds: ['authority', pool]\n */\nexport async function getPoolAuthorityAddress(\n  pool: Address,\n  programId: Address = CPMM_PROGRAM_ID,\n): Promise<ProgramDerivedAddress> {\n  return getProgramDerivedAddress({\n    programAddress: programId,\n    seeds: [textEncoder.encode(SEED_AUTHORITY), addressCodec.encode(pool)],\n  });\n}\n\n/**\n * Derive the token0 vault PDA.\n * Seeds: ['vault0', pool]\n */\nexport async function getPoolVault0Address(\n  pool: Address,\n  programId: Address = CPMM_PROGRAM_ID,\n): Promise<ProgramDerivedAddress> {\n  return getProgramDerivedAddress({\n    programAddress: programId,\n    seeds: [textEncoder.encode(SEED_VAULT0), addressCodec.encode(pool)],\n  });\n}\n\n/**\n * Derive the token1 vault PDA.\n * Seeds: ['vault1', pool]\n */\nexport async function getPoolVault1Address(\n  pool: Address,\n  programId: Address = CPMM_PROGRAM_ID,\n): Promise<ProgramDerivedAddress> {\n  return getProgramDerivedAddress({\n    programAddress: programId,\n    seeds: [textEncoder.encode(SEED_VAULT1), addressCodec.encode(pool)],\n  });\n}\n\n/**\n * Derive the Position PDA address\n * Seeds: ['position', pool, owner, position_id_le_bytes]\n */\nexport async function getPositionAddress(\n  pool: Address,\n  owner: Address,\n  positionId: bigint,\n  programId: Address = CPMM_PROGRAM_ID,\n): Promise<ProgramDerivedAddress> {\n  const positionIdBytes = new Uint8Array(8);\n  const view = new DataView(positionIdBytes.buffer);\n  view.setBigUint64(0, positionId, true); // little-endian\n\n  return getProgramDerivedAddress({\n    programAddress: programId,\n    seeds: [\n      textEncoder.encode(SEED_POSITION),\n      addressCodec.encode(pool),\n      addressCodec.encode(owner),\n      positionIdBytes,\n    ],\n  });\n}\n\n/**\n * Derive the OracleState PDA address\n * Seeds: ['oracle', pool]\n */\nexport async function getOracleAddress(\n  pool: Address,\n  programId: Address = CPMM_PROGRAM_ID,\n): Promise<ProgramDerivedAddress> {\n  return getProgramDerivedAddress({\n    programAddress: programId,\n    seeds: [textEncoder.encode(SEED_ORACLE), addressCodec.encode(pool)],\n  });\n}\n\n/**\n * Derive the protocol fee owner PDA address\n * Seeds: ['protocol_fee_owner', pool]\n */\nexport async function getProtocolFeeOwnerAddress(\n  pool: Address,\n  programId: Address = CPMM_PROGRAM_ID,\n): Promise<ProgramDerivedAddress> {\n  return getProgramDerivedAddress({\n    programAddress: programId,\n    seeds: [\n      textEncoder.encode(SEED_PROTOCOL_FEE_OWNER),\n      addressCodec.encode(pool),\n    ],\n  });\n}\n\n/**\n * Derive the protocol fee position PDA address.\n * Seeds: ['position', pool, protocol_fee_owner, 0]\n */\nexport async function getProtocolFeePositionAddress(\n  pool: Address,\n  programId: Address = CPMM_PROGRAM_ID,\n): Promise<ProgramDerivedAddress> {\n  const [protocolFeeOwner] = await getProtocolFeeOwnerAddress(pool, programId);\n  return getPositionAddress(pool, protocolFeeOwner, 0n, programId);\n}\n\n// ============================================================================\n// Batch PDA Derivation\n// ============================================================================\n\n/**\n * Derive all PDAs needed for pool initialization\n */\nexport async function getPoolInitAddresses(\n  mint0: Address,\n  mint1: Address,\n  programId: Address = CPMM_PROGRAM_ID,\n): Promise<{\n  token0: Address;\n  token1: Address;\n  pool: ProgramDerivedAddress;\n  authority: ProgramDerivedAddress;\n  vault0: ProgramDerivedAddress;\n  vault1: ProgramDerivedAddress;\n  config: ProgramDerivedAddress;\n  protocolFeeOwner: ProgramDerivedAddress;\n  protocolFeePosition: ProgramDerivedAddress;\n}> {\n  const [token0, token1] = sortMints(mint0, mint1);\n  const [config, pool] = await Promise.all([\n    getConfigAddress(programId),\n    getPoolAddress(token0, token1, programId),\n  ]);\n  const [authority, vault0, vault1, protocolFeeOwner] = await Promise.all([\n    getPoolAuthorityAddress(pool[0], programId),\n    getPoolVault0Address(pool[0], programId),\n    getPoolVault1Address(pool[0], programId),\n    getProtocolFeeOwnerAddress(pool[0], programId),\n  ]);\n  const protocolFeePosition = await getPositionAddress(\n    pool[0],\n    protocolFeeOwner[0],\n    0n,\n    programId,\n  );\n\n  return {\n    token0,\n    token1,\n    pool,\n    authority,\n    vault0,\n    vault1,\n    config,\n    protocolFeeOwner,\n    protocolFeePosition,\n  };\n}\n\n/**\n * Derive all PDAs needed for swap operation\n */\nexport async function getSwapAddresses(\n  pool: Address,\n  programId: Address = CPMM_PROGRAM_ID,\n): Promise<{\n  config: ProgramDerivedAddress;\n  authority: ProgramDerivedAddress;\n  oracle: ProgramDerivedAddress;\n}> {\n  const [config, authority, oracle] = await Promise.all([\n    getConfigAddress(programId),\n    getPoolAuthorityAddress(pool, programId),\n    getOracleAddress(pool, programId),\n  ]);\n\n  return { config, authority, oracle };\n}\n\n/**\n * Derive all PDAs needed for liquidity operations\n */\nexport async function getLiquidityAddresses(\n  pool: Address,\n  owner: Address,\n  positionId: bigint,\n  programId: Address = CPMM_PROGRAM_ID,\n): Promise<{\n  config: ProgramDerivedAddress;\n  authority: ProgramDerivedAddress;\n  position: ProgramDerivedAddress;\n  protocolFeeOwner: ProgramDerivedAddress;\n  protocolFeePosition: ProgramDerivedAddress;\n  oracle: ProgramDerivedAddress;\n}> {\n  const [config, authority, position, protocolFeeOwner, oracle] =\n    await Promise.all([\n      getConfigAddress(programId),\n      getPoolAuthorityAddress(pool, programId),\n      getPositionAddress(pool, owner, positionId, programId),\n      getProtocolFeeOwnerAddress(pool, programId),\n      getOracleAddress(pool, programId),\n    ]);\n  const protocolFeePosition = await getPositionAddress(\n    pool,\n    protocolFeeOwner[0],\n    0n,\n    programId,\n  );\n\n  return {\n    config,\n    authority,\n    position,\n    protocolFeeOwner,\n    protocolFeePosition,\n    oracle,\n  };\n}\n"]}