goosefx-amm-sdk
Version:
SDK for the GooseFx AMM
1 lines • 4.75 kB
Source Map (JSON)
{"version":3,"sources":["../../../src/gfx/cpmm/type.ts"],"sourcesContent":["import { EpochInfo, PublicKey } from \"@solana/web3.js\";\nimport { ConfigInfo, PoolInfo, PoolKeys } from \"@/api/type\";\nimport { TxVersion } from \"@/common/txTool/txType\";\nimport BN from \"bn.js\";\nimport { ComputeBudgetConfig, GetTransferAmountFee } from \"@/gfx/type\";\nimport { SwapResult } from \"./curve/calculator\";\nimport { Percent } from \"@/module\";\nimport { Gamma } from \"../idl/gamma.type\";\nimport Decimal from \"decimal.js\";\nimport { IdlAccounts, IdlTypes } from \"@coral-xyz/anchor\";\n\ninterface MintInfo {\n address: string;\n decimals: number;\n programId: string;\n}\n\nexport interface CreateCpmmPoolParam<T> {\n programId: PublicKey;\n poolFeeAccount: PublicKey;\n mintA: MintInfo;\n mintB: MintInfo;\n mintAAmount: BN;\n mintBAmount: BN;\n startTime: BN;\n maxTradeFeeRate: BN;\n volatilityFactor: BN;\n feeConfig: ConfigInfo;\n\n associatedOnly: boolean;\n checkCreateATAOwner?: boolean;\n\n ownerInfo: {\n feePayer?: PublicKey;\n useSOLBalance?: boolean; // if has WSOL mint\n };\n computeBudgetConfig?: ComputeBudgetConfig;\n txVersion?: T;\n}\n\nexport interface CreateCpmmPoolAddress {\n poolId: PublicKey;\n configId: PublicKey;\n authority: PublicKey;\n lpMint: PublicKey;\n vaultA: PublicKey;\n vaultB: PublicKey;\n observationId: PublicKey;\n mintA: MintInfo;\n mintB: MintInfo;\n programId: PublicKey;\n poolFeeAccount: PublicKey;\n feeConfig: ConfigInfo;\n}\n\nexport interface AddCpmmLiquidityParams<T = TxVersion.LEGACY> {\n poolInfo: PoolInfo;\n poolKeys?: PoolKeys;\n payer?: PublicKey;\n inputAmount: BN;\n baseSpecified: boolean;\n slippage: Percent;\n config?: {\n bypassAssociatedCheck?: boolean;\n checkCreateATAOwner?: boolean;\n };\n computeBudgetConfig?: ComputeBudgetConfig;\n txVersion?: T;\n computeResult?: {\n inputAmountFee: GetTransferAmountFee;\n anotherAmount: GetTransferAmountFee;\n maxAnotherAmount: GetTransferAmountFee;\n liquidity: BN;\n };\n partner?: PublicKey;\n}\n\nexport interface WithdrawCpmmLiquidityParams<T = TxVersion.LEGACY> {\n poolInfo: PoolInfo;\n poolKeys?: PoolKeys;\n payer?: PublicKey;\n lpAmount: BN;\n slippage: Percent;\n computeBudgetConfig?: ComputeBudgetConfig;\n txVersion?: T;\n}\n\nexport interface CpmmSwapWithOracleParams<T = TxVersion.LEGACY> {\n poolInfo: PoolInfo;\n poolKeys?: PoolKeys;\n payer?: PublicKey;\n zeroForOne: boolean;\n slippage?: number;\n swapResult: Pick<SwapResult, \"sourceAmountSwapped\" | \"destinationAmountSwapped\">;\n\n config?: {\n bypassAssociatedCheck?: boolean;\n checkCreateATAOwner?: boolean;\n associatedOnly?: boolean;\n };\n computeBudgetConfig?: ComputeBudgetConfig;\n txVersion?: T;\n wrapSol?: boolean;\n dflowSegmenterOptions?: {\n registeredSegmenter: PublicKey;\n registeredRegistry: PublicKey;\n } | null;\n referralAccounts?: {\n referralAccount: PublicKey;\n referralTokenAccountWithInputMint: PublicKey;\n } | null;\n}\n\nexport interface CpmmSwapParams<T = TxVersion.LEGACY> extends CpmmSwapWithOracleParams<T> {\n baseIn?: boolean;\n}\n\nexport interface ComputePairAmountParams {\n poolInfo: PoolInfo;\n baseReserve: BN;\n quoteReserve: BN;\n amount: string | Decimal;\n slippage: Percent;\n epochInfo: EpochInfo;\n baseSpecified?: boolean\n}\n\nexport type CpmmObservationState = IdlAccounts<Gamma>[\"observationState\"];\nexport type CpmmConfig = IdlAccounts<Gamma>[\"ammConfig\"];\nexport type CpmmPool = IdlAccounts<Gamma>[\"poolState\"];\nexport type CpmmPoolPartners = IdlAccounts<Gamma>[\"poolPartnerInfos\"];\nexport type CpmmRewardInfo = IdlAccounts<Gamma>[\"rewardInfo\"];\nexport type CpmmUserLiquidityAccount = IdlAccounts<Gamma>[\"userPoolLiquidity\"];\nexport type CpmmUserRewardInfo = IdlAccounts<Gamma>[\"userRewardInfo\"];\nexport type CpmmObservation = IdlTypes<Gamma>[\"observation\"];\nexport type UserLiquidityAccount = IdlAccounts<Gamma>[\"userPoolLiquidity\"];\n\nexport enum CpmmCoder {\n CPMM_POOL = \"poolState\",\n CPMM_POOL_PARTNERS = \"poolPartnerInfos\",\n}\n\nexport type CpmmRpcData = CpmmPool & {\n baseReserve: BN;\n quoteReserve: BN;\n vaultAAmount: BN;\n vaultBAmount: BN;\n configInfo?: CpmmConfig;\n partnerInfo: CpmmPoolPartners;\n observationAccount: CpmmObservationState;\n poolPrice: Decimal;\n programId: PublicKey;\n};\n\nexport type CpmmComputeData = {\n id: PublicKey;\n version: 7;\n configInfo: CpmmConfig;\n mintA: MintInfo;\n mintB: MintInfo;\n authority: PublicKey;\n} & Omit<CpmmRpcData, \"configInfo\" | \"mintA\" | \"mintB\">;\n"],"mappings":"AAyIO,IAAKA,OACVA,EAAA,UAAY,YACZA,EAAA,mBAAqB,mBAFXA,OAAA","names":["CpmmCoder"]}