{"version":3,"sources":["../../../src/raydium/launchpad/type.ts"],"sourcesContent":["import { PublicKey, Signer } from \"@solana/web3.js\";\nimport { ComputeBudgetConfig, TxTipConfig } from \"../type\";\nimport { TxVersion } from \"@/common\";\nimport BN from \"bn.js\";\nimport { LaunchpadPool, LaunchpadConfig, PlatformConfig } from \"./layout\";\nimport { TransferFeeConfig } from \"@solana/spl-token\";\n\nexport interface CreateLaunchPad<T = TxVersion.LEGACY> {\n  mintA: PublicKey;\n  name: string;\n  symbol: string;\n  buyAmount: BN;\n  platformId?: PublicKey;\n\n  programId?: PublicKey; // default mainnet\n  authProgramId?: PublicKey; // default mainnet\n  decimals?: number; // default 6\n  mintBDecimals?: number; // default 9\n  curType?: number; // default 0\n  configId: PublicKey;\n  configInfo?: LaunchpadConfigInfo;\n\n  minMintAAmount?: BN; // default calculated by realtime rpc data\n  slippage?: BN;\n\n  uri: string;\n  migrateType: \"amm\" | \"cpmm\";\n\n  supply?: BN;\n  totalSellA?: BN;\n  totalFundRaisingB?: BN;\n  totalLockedAmount?: BN;\n  cliffPeriod?: BN;\n  unlockPeriod?: BN;\n\n  shareFeeRate?: BN;\n  shareFeeReceiver?: PublicKey;\n  platformFeeRate?: BN; // for preload usage\n  platformVestingScale?: BN; // for preload usage\n\n  createOnly?: boolean;\n\n  computeBudgetConfig?: ComputeBudgetConfig;\n  txTipConfig?: TxTipConfig;\n  txVersion?: T;\n  feePayer?: PublicKey;\n  associatedOnly?: boolean;\n  checkCreateATAOwner?: boolean;\n  extraSigners?: Signer[];\n\n  token2022?: boolean;\n  transferFeeExtensionParams?: { transferFeeBasePoints: number; maxinumFee: BN };\n  creatorFeeOn?: CpmmCreatorFeeOn;\n  platformConfigAccess?: boolean;\n}\n\nexport interface BuyToken<T = TxVersion.LEGACY> {\n  mintA: PublicKey;\n  mintAProgram?: PublicKey;\n  buyAmount: BN;\n\n  programId?: PublicKey; // default mainnet\n  authProgramId?: PublicKey; // default mainnet\n  mintB?: PublicKey; // default SOL\n  poolInfo?: LaunchpadPoolInfo; // default calculated from mint\n  minMintAAmount?: BN; // default calculated by realtime rpc data\n  slippage?: BN;\n  shareFeeRate?: BN;\n  shareFeeReceiver?: PublicKey;\n\n  configInfo?: LaunchpadConfigInfo; // for preload usage\n  platformFeeRate?: BN; // for preload usage\n\n  computeBudgetConfig?: ComputeBudgetConfig;\n  txTipConfig?: TxTipConfig;\n  txVersion?: T;\n  feePayer?: PublicKey;\n  associatedOnly?: boolean;\n  checkCreateATAOwner?: boolean;\n  transferFeeConfigA?: TransferFeeConfig | undefined;\n  skipCheckMintA?: boolean;\n  fromCreate?: boolean;\n}\n\nexport interface BuyTokenExactOut<T = TxVersion.LEGACY>\n  extends Omit<BuyToken, \"buyAmount\" | \"minMintAAmount\" | \"txVersion\"> {\n  maxBuyAmount?: BN;\n  outAmount: BN;\n  txVersion?: T;\n}\n\nexport interface SellToken<T = TxVersion.LEGACY> {\n  mintA: PublicKey;\n  mintAProgram?: PublicKey;\n  sellAmount: BN;\n  slippage?: BN;\n\n  programId?: PublicKey; // default mainnet\n  authProgramId?: PublicKey; // default mainnet\n  poolInfo?: LaunchpadPoolInfo; // default calculated from mint\n  mintB?: PublicKey; // default SOL\n  minAmountB?: BN; // default SOL decimals 9\n\n  shareFeeRate?: BN;\n  shareFeeReceiver?: PublicKey;\n\n  configInfo?: LaunchpadConfigInfo; // for preload usage\n  platformFeeRate?: BN; // for preload usage\n\n  computeBudgetConfig?: ComputeBudgetConfig;\n  txTipConfig?: TxTipConfig;\n  txVersion?: T;\n  feePayer?: PublicKey;\n  associatedOnly?: boolean;\n  checkCreateATAOwner?: boolean;\n  skipCheckMintA?: boolean;\n}\n\nexport interface SellTokenExactOut<T = TxVersion.LEGACY> extends Omit<SellToken, \"sellAmount\" | \"txVersion\"> {\n  maxSellAmount?: BN;\n  inAmount: BN;\n  txVersion?: T;\n}\n\nexport interface CreatePlatform<T = TxVersion.LEGACY> {\n  programId?: PublicKey;\n\n  platformAdmin: PublicKey;\n  platformClaimFeeWallet: PublicKey;\n  platformLockNftWallet: PublicKey;\n  platformVestingWallet: PublicKey;\n  cpConfigId: PublicKey;\n\n  migrateCpLockNftScale: {\n    platformScale: BN;\n    creatorScale: BN;\n    burnScale: BN;\n  };\n\n  transferFeeExtensionAuth: PublicKey;\n  creatorFeeRate: BN;\n  feeRate: BN;\n  name: string;\n  web: string;\n  img: string;\n  platformVestingScale?: BN;\n\n  computeBudgetConfig?: ComputeBudgetConfig;\n  txTipConfig?: TxTipConfig;\n  txVersion?: T;\n  feePayer?: PublicKey;\n}\n\nexport interface UpdatePlatform<T = TxVersion.LEGACY> {\n  programId?: PublicKey;\n\n  platformAdmin: PublicKey;\n  platformId?: PublicKey;\n\n  updateInfo:\n    | { type: \"updateClaimFeeWallet\" | \"updateLockNftWallet\"; value: PublicKey }\n    | { type: \"updateFeeRate\"; value: BN }\n    | { type: \"updateName\" | \"updateImg\" | \"updateWeb\"; value: string }\n    | { type: \"migrateCpLockNftScale\"; value: { platformScale: BN; creatorScale: BN; burnScale: BN } }\n    | { type: \"updateCpConfigId\"; value: PublicKey }\n    | { type: \"updateVestingWallet\"; value: PublicKey }\n    | { type: \"updatePlatformVestingScale\"; value: BN }\n    | { type: \"updatePlatformCpCreator\"; value: PublicKey }\n    | {\n        type: \"updateAll\";\n        value: {\n          platformClaimFeeWallet: PublicKey;\n          platformLockNftWallet: PublicKey;\n          platformVestingWallet: PublicKey;\n          cpConfigId: PublicKey;\n          migrateCpLockNftScale: {\n            platformScale: BN;\n            creatorScale: BN;\n            burnScale: BN;\n          };\n          feeRate: BN;\n          name: string;\n          web: string;\n          img: string;\n          transferFeeExtensionAuth: PublicKey;\n          creatorFeeRate: BN;\n          platformVestingScale: BN;\n        };\n      };\n\n  computeBudgetConfig?: ComputeBudgetConfig;\n  txTipConfig?: TxTipConfig;\n  txVersion?: T;\n  feePayer?: PublicKey;\n}\n\nexport interface CreatePlatformVestingAccount<T = TxVersion.LEGACY> {\n  programId?: PublicKey;\n\n  platformVestingWallet: PublicKey;\n  beneficiary: PublicKey;\n  platformId: PublicKey;\n  poolId: PublicKey;\n  vestingRecord?: PublicKey;\n\n  computeBudgetConfig?: ComputeBudgetConfig;\n  txTipConfig?: TxTipConfig;\n  txVersion?: T;\n  feePayer?: PublicKey;\n}\nexport interface ClaimPlatformFee<T = TxVersion.LEGACY> {\n  programId?: PublicKey;\n  authProgramId?: PublicKey;\n  platformId: PublicKey;\n  platformClaimFeeWallet: PublicKey;\n  poolId: PublicKey;\n\n  mintB?: PublicKey;\n  vaultB?: PublicKey;\n  mintBProgram?: PublicKey;\n\n  computeBudgetConfig?: ComputeBudgetConfig;\n  txTipConfig?: TxTipConfig;\n  txVersion?: T;\n  feePayer?: PublicKey;\n}\n\nexport interface ClaimAllPlatformFee<T = TxVersion.LEGACY> {\n  programId?: PublicKey;\n  authProgramId?: PublicKey;\n  platformId: PublicKey;\n  platformClaimFeeWallet: PublicKey;\n\n  computeBudgetConfig?: ComputeBudgetConfig;\n  txTipConfig?: TxTipConfig;\n  txVersion?: T;\n  feePayer?: PublicKey;\n}\n\nexport interface CreateVesting<T = TxVersion.LEGACY> {\n  programId?: PublicKey;\n  poolId: PublicKey;\n  beneficiary: PublicKey;\n  shareAmount: BN;\n\n  computeBudgetConfig?: ComputeBudgetConfig;\n  txTipConfig?: TxTipConfig;\n  txVersion?: T;\n  feePayer?: PublicKey;\n}\n\nexport interface CreateMultipleVesting<T = TxVersion.LEGACY> {\n  programId?: PublicKey;\n  poolId: PublicKey;\n  beneficiaryList: {\n    wallet: PublicKey;\n    shareAmount: BN;\n  }[];\n\n  computeBudgetConfig?: ComputeBudgetConfig;\n  txVersion?: T;\n  feePayer?: PublicKey;\n}\n\nexport interface ClaimVesting<T = TxVersion.LEGACY> {\n  programId?: PublicKey;\n\n  poolId: PublicKey;\n  vestingRecord?: PublicKey;\n  poolInfo?: LaunchpadPoolInfo;\n\n  computeBudgetConfig?: ComputeBudgetConfig;\n  txTipConfig?: TxTipConfig;\n  txVersion?: T;\n  feePayer?: PublicKey;\n}\n\nexport interface ClaimMultiVesting<T = TxVersion.LEGACY> {\n  programId?: PublicKey;\n  poolIdList: PublicKey[];\n  vestingRecords?: Record<string, PublicKey>;\n  poolsInfo?: Record<\n    string,\n    {\n      mintA: PublicKey;\n      vaultA: PublicKey;\n    }\n  >;\n\n  computeBudgetConfig?: ComputeBudgetConfig;\n  txVersion?: T;\n  feePayer?: PublicKey;\n}\n\nexport interface ClaimVaultPlatformFee<T = TxVersion.LEGACY> {\n  programId?: PublicKey;\n\n  platformId: PublicKey;\n  mintB: PublicKey;\n  mintBProgram?: PublicKey;\n\n  claimFeeWallet?: PublicKey;\n\n  computeBudgetConfig?: ComputeBudgetConfig;\n  txTipConfig?: TxTipConfig;\n  txVersion?: T;\n  feePayer?: PublicKey;\n}\n\nexport interface ClaimMultipleVaultPlatformFee<T = TxVersion.LEGACY> {\n  programId?: PublicKey;\n\n  platformList: {\n    id: PublicKey;\n    mintB: PublicKey;\n    mintBProgram?: PublicKey;\n    claimFeeWallet?: PublicKey;\n  }[];\n\n  unwrapSol?: boolean;\n  computeBudgetConfig?: ComputeBudgetConfig;\n  txVersion?: T;\n  feePayer?: PublicKey;\n  associatedOnly?: boolean;\n  checkCreateATAOwner?: boolean;\n}\n\nexport interface ClaimCreatorFee<T = TxVersion.LEGACY> {\n  programId?: PublicKey;\n  mintB: PublicKey;\n  mintBProgram?: PublicKey;\n  computeBudgetConfig?: ComputeBudgetConfig;\n  txTipConfig?: TxTipConfig;\n  txVersion?: T;\n  feePayer?: PublicKey;\n}\n\nexport interface ClaimMultiCreatorFee<T = TxVersion.LEGACY> {\n  programId?: PublicKey;\n  mintBList: {\n    pubKey: PublicKey;\n    programId?: PublicKey;\n  }[];\n  computeBudgetConfig?: ComputeBudgetConfig;\n  txTipConfig?: TxTipConfig;\n  txVersion?: T;\n  feePayer?: PublicKey;\n}\n\nexport type LaunchpadPoolInfo = ReturnType<typeof LaunchpadPool.decode>;\nexport type LaunchpadConfigInfo = ReturnType<typeof LaunchpadConfig.decode>;\nexport type LaunchpadPlatformInfo = ReturnType<typeof PlatformConfig.decode>;\nexport enum CpmmCreatorFeeOn {\n  OnlyTokenB,\n  BothToken,\n}\n"],"mappings":"AAgWO,GAAK,GAAL,CAAK,GACV,gCACA,6BAFU","names":[]}