/** * This code was AUTOGENERATED using the Codama library. * Please DO NOT EDIT THIS FILE, instead use visitors * to add features, then rerun Codama to update it. * * @see https://github.com/codama-idl/codama */ import { isProgramError, type Address, type SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM, type SolanaError, } from "@solana/kit"; import { CP_AMM_PROGRAM_ADDRESS } from "../programs/index.js"; /** MathOverflow: Math operation overflow */ export const CP_AMM_ERROR__MATH_OVERFLOW = 0x1770; // 6000 /** InvalidFee: Invalid fee setup */ export const CP_AMM_ERROR__INVALID_FEE = 0x1771; // 6001 /** ExceededSlippage: Exceeded slippage tolerance */ export const CP_AMM_ERROR__EXCEEDED_SLIPPAGE = 0x1772; // 6002 /** PoolDisabled: Pool disabled */ export const CP_AMM_ERROR__POOL_DISABLED = 0x1773; // 6003 /** ExceedMaxFeeBps: Exceeded max fee bps */ export const CP_AMM_ERROR__EXCEED_MAX_FEE_BPS = 0x1774; // 6004 /** InvalidAdmin: Invalid admin */ export const CP_AMM_ERROR__INVALID_ADMIN = 0x1775; // 6005 /** AmountIsZero: Amount is zero */ export const CP_AMM_ERROR__AMOUNT_IS_ZERO = 0x1776; // 6006 /** TypeCastFailed: Type cast error */ export const CP_AMM_ERROR__TYPE_CAST_FAILED = 0x1777; // 6007 /** UnableToModifyActivationPoint: Unable to modify activation point */ export const CP_AMM_ERROR__UNABLE_TO_MODIFY_ACTIVATION_POINT = 0x1778; // 6008 /** InvalidAuthorityToCreateThePool: Invalid authority to create the pool */ export const CP_AMM_ERROR__INVALID_AUTHORITY_TO_CREATE_THE_POOL = 0x1779; // 6009 /** InvalidActivationType: Invalid activation type */ export const CP_AMM_ERROR__INVALID_ACTIVATION_TYPE = 0x177a; // 6010 /** InvalidActivationPoint: Invalid activation point */ export const CP_AMM_ERROR__INVALID_ACTIVATION_POINT = 0x177b; // 6011 /** InvalidQuoteMint: Quote token must be SOL,USDC */ export const CP_AMM_ERROR__INVALID_QUOTE_MINT = 0x177c; // 6012 /** InvalidFeeCurve: Invalid fee curve */ export const CP_AMM_ERROR__INVALID_FEE_CURVE = 0x177d; // 6013 /** InvalidPriceRange: Invalid Price Range */ export const CP_AMM_ERROR__INVALID_PRICE_RANGE = 0x177e; // 6014 /** PriceRangeViolation: Trade is over price range */ export const CP_AMM_ERROR__PRICE_RANGE_VIOLATION = 0x177f; // 6015 /** InvalidParameters: Invalid parameters */ export const CP_AMM_ERROR__INVALID_PARAMETERS = 0x1780; // 6016 /** InvalidCollectFeeMode: Invalid collect fee mode */ export const CP_AMM_ERROR__INVALID_COLLECT_FEE_MODE = 0x1781; // 6017 /** InvalidInput: Invalid input */ export const CP_AMM_ERROR__INVALID_INPUT = 0x1782; // 6018 /** CannotCreateTokenBadgeOnSupportedMint: Cannot create token badge on supported mint */ export const CP_AMM_ERROR__CANNOT_CREATE_TOKEN_BADGE_ON_SUPPORTED_MINT = 0x1783; // 6019 /** InvalidTokenBadge: Invalid token badge */ export const CP_AMM_ERROR__INVALID_TOKEN_BADGE = 0x1784; // 6020 /** InvalidMinimumLiquidity: Invalid minimum liquidity */ export const CP_AMM_ERROR__INVALID_MINIMUM_LIQUIDITY = 0x1785; // 6021 /** InvalidVestingInfo: Invalid vesting information */ export const CP_AMM_ERROR__INVALID_VESTING_INFO = 0x1786; // 6022 /** InsufficientLiquidity: Insufficient liquidity */ export const CP_AMM_ERROR__INSUFFICIENT_LIQUIDITY = 0x1787; // 6023 /** InvalidVestingAccount: Invalid vesting account */ export const CP_AMM_ERROR__INVALID_VESTING_ACCOUNT = 0x1788; // 6024 /** InvalidPoolStatus: Invalid pool status */ export const CP_AMM_ERROR__INVALID_POOL_STATUS = 0x1789; // 6025 /** UnsupportNativeMintToken2022: Unsupported native mint token2022 */ export const CP_AMM_ERROR__UNSUPPORT_NATIVE_MINT_TOKEN2022 = 0x178a; // 6026 /** InvalidRewardIndex: Invalid reward index */ export const CP_AMM_ERROR__INVALID_REWARD_INDEX = 0x178b; // 6027 /** InvalidRewardDuration: Invalid reward duration */ export const CP_AMM_ERROR__INVALID_REWARD_DURATION = 0x178c; // 6028 /** RewardInitialized: Reward already initialized */ export const CP_AMM_ERROR__REWARD_INITIALIZED = 0x178d; // 6029 /** RewardUninitialized: Reward not initialized */ export const CP_AMM_ERROR__REWARD_UNINITIALIZED = 0x178e; // 6030 /** InvalidRewardVault: Invalid reward vault */ export const CP_AMM_ERROR__INVALID_REWARD_VAULT = 0x178f; // 6031 /** MustWithdrawnIneligibleReward: Must withdraw ineligible reward */ export const CP_AMM_ERROR__MUST_WITHDRAWN_INELIGIBLE_REWARD = 0x1790; // 6032 /** IdenticalRewardDuration: Reward duration is the same */ export const CP_AMM_ERROR__IDENTICAL_REWARD_DURATION = 0x1791; // 6033 /** RewardCampaignInProgress: Reward campaign in progress */ export const CP_AMM_ERROR__REWARD_CAMPAIGN_IN_PROGRESS = 0x1792; // 6034 /** IdenticalFunder: Identical funder */ export const CP_AMM_ERROR__IDENTICAL_FUNDER = 0x1793; // 6035 /** InvalidFunder: Invalid funder */ export const CP_AMM_ERROR__INVALID_FUNDER = 0x1794; // 6036 /** RewardNotEnded: Reward not ended */ export const CP_AMM_ERROR__REWARD_NOT_ENDED = 0x1795; // 6037 /** FeeInverseIsIncorrect: Fee inverse is incorrect */ export const CP_AMM_ERROR__FEE_INVERSE_IS_INCORRECT = 0x1796; // 6038 /** PositionIsNotEmpty: Position is not empty */ export const CP_AMM_ERROR__POSITION_IS_NOT_EMPTY = 0x1797; // 6039 /** InvalidPoolCreatorAuthority: Invalid pool creator authority */ export const CP_AMM_ERROR__INVALID_POOL_CREATOR_AUTHORITY = 0x1798; // 6040 /** InvalidConfigType: Invalid config type */ export const CP_AMM_ERROR__INVALID_CONFIG_TYPE = 0x1799; // 6041 /** InvalidPoolCreator: Invalid pool creator */ export const CP_AMM_ERROR__INVALID_POOL_CREATOR = 0x179a; // 6042 /** RewardVaultFrozenSkipRequired: Reward vault is frozen, must skip reward to proceed */ export const CP_AMM_ERROR__REWARD_VAULT_FROZEN_SKIP_REQUIRED = 0x179b; // 6043 /** InvalidSplitPositionParameters: Invalid parameters for split position */ export const CP_AMM_ERROR__INVALID_SPLIT_POSITION_PARAMETERS = 0x179c; // 6044 /** UnsupportPositionHasVestingLock: Unsupported split position has vesting lock */ export const CP_AMM_ERROR__UNSUPPORT_POSITION_HAS_VESTING_LOCK = 0x179d; // 6045 /** SamePosition: Same position */ export const CP_AMM_ERROR__SAME_POSITION = 0x179e; // 6046 /** InvalidBaseFeeMode: Invalid base fee mode */ export const CP_AMM_ERROR__INVALID_BASE_FEE_MODE = 0x179f; // 6047 /** InvalidFeeRateLimiter: Invalid fee rate limiter */ export const CP_AMM_ERROR__INVALID_FEE_RATE_LIMITER = 0x17a0; // 6048 /** FailToValidateSingleSwapInstruction: Fail to validate single swap instruction in rate limiter */ export const CP_AMM_ERROR__FAIL_TO_VALIDATE_SINGLE_SWAP_INSTRUCTION = 0x17a1; // 6049 /** InvalidFeeScheduler: Invalid fee scheduler */ export const CP_AMM_ERROR__INVALID_FEE_SCHEDULER = 0x17a2; // 6050 /** UndeterminedError: Undetermined error */ export const CP_AMM_ERROR__UNDETERMINED_ERROR = 0x17a3; // 6051 /** InvalidPoolVersion: Invalid pool version */ export const CP_AMM_ERROR__INVALID_POOL_VERSION = 0x17a4; // 6052 export type CpAmmError = | typeof CP_AMM_ERROR__AMOUNT_IS_ZERO | typeof CP_AMM_ERROR__CANNOT_CREATE_TOKEN_BADGE_ON_SUPPORTED_MINT | typeof CP_AMM_ERROR__EXCEEDED_SLIPPAGE | typeof CP_AMM_ERROR__EXCEED_MAX_FEE_BPS | typeof CP_AMM_ERROR__FAIL_TO_VALIDATE_SINGLE_SWAP_INSTRUCTION | typeof CP_AMM_ERROR__FEE_INVERSE_IS_INCORRECT | typeof CP_AMM_ERROR__IDENTICAL_FUNDER | typeof CP_AMM_ERROR__IDENTICAL_REWARD_DURATION | typeof CP_AMM_ERROR__INSUFFICIENT_LIQUIDITY | typeof CP_AMM_ERROR__INVALID_ACTIVATION_POINT | typeof CP_AMM_ERROR__INVALID_ACTIVATION_TYPE | typeof CP_AMM_ERROR__INVALID_ADMIN | typeof CP_AMM_ERROR__INVALID_AUTHORITY_TO_CREATE_THE_POOL | typeof CP_AMM_ERROR__INVALID_BASE_FEE_MODE | typeof CP_AMM_ERROR__INVALID_COLLECT_FEE_MODE | typeof CP_AMM_ERROR__INVALID_CONFIG_TYPE | typeof CP_AMM_ERROR__INVALID_FEE | typeof CP_AMM_ERROR__INVALID_FEE_CURVE | typeof CP_AMM_ERROR__INVALID_FEE_RATE_LIMITER | typeof CP_AMM_ERROR__INVALID_FEE_SCHEDULER | typeof CP_AMM_ERROR__INVALID_FUNDER | typeof CP_AMM_ERROR__INVALID_INPUT | typeof CP_AMM_ERROR__INVALID_MINIMUM_LIQUIDITY | typeof CP_AMM_ERROR__INVALID_PARAMETERS | typeof CP_AMM_ERROR__INVALID_POOL_CREATOR | typeof CP_AMM_ERROR__INVALID_POOL_CREATOR_AUTHORITY | typeof CP_AMM_ERROR__INVALID_POOL_STATUS | typeof CP_AMM_ERROR__INVALID_POOL_VERSION | typeof CP_AMM_ERROR__INVALID_PRICE_RANGE | typeof CP_AMM_ERROR__INVALID_QUOTE_MINT | typeof CP_AMM_ERROR__INVALID_REWARD_DURATION | typeof CP_AMM_ERROR__INVALID_REWARD_INDEX | typeof CP_AMM_ERROR__INVALID_REWARD_VAULT | typeof CP_AMM_ERROR__INVALID_SPLIT_POSITION_PARAMETERS | typeof CP_AMM_ERROR__INVALID_TOKEN_BADGE | typeof CP_AMM_ERROR__INVALID_VESTING_ACCOUNT | typeof CP_AMM_ERROR__INVALID_VESTING_INFO | typeof CP_AMM_ERROR__MATH_OVERFLOW | typeof CP_AMM_ERROR__MUST_WITHDRAWN_INELIGIBLE_REWARD | typeof CP_AMM_ERROR__POOL_DISABLED | typeof CP_AMM_ERROR__POSITION_IS_NOT_EMPTY | typeof CP_AMM_ERROR__PRICE_RANGE_VIOLATION | typeof CP_AMM_ERROR__REWARD_CAMPAIGN_IN_PROGRESS | typeof CP_AMM_ERROR__REWARD_INITIALIZED | typeof CP_AMM_ERROR__REWARD_NOT_ENDED | typeof CP_AMM_ERROR__REWARD_UNINITIALIZED | typeof CP_AMM_ERROR__REWARD_VAULT_FROZEN_SKIP_REQUIRED | typeof CP_AMM_ERROR__SAME_POSITION | typeof CP_AMM_ERROR__TYPE_CAST_FAILED | typeof CP_AMM_ERROR__UNABLE_TO_MODIFY_ACTIVATION_POINT | typeof CP_AMM_ERROR__UNDETERMINED_ERROR | typeof CP_AMM_ERROR__UNSUPPORT_NATIVE_MINT_TOKEN2022 | typeof CP_AMM_ERROR__UNSUPPORT_POSITION_HAS_VESTING_LOCK; let cpAmmErrorMessages: Record | undefined; if (process.env["NODE_ENV"] !== "production") { cpAmmErrorMessages = { [CP_AMM_ERROR__AMOUNT_IS_ZERO]: `Amount is zero`, [CP_AMM_ERROR__CANNOT_CREATE_TOKEN_BADGE_ON_SUPPORTED_MINT]: `Cannot create token badge on supported mint`, [CP_AMM_ERROR__EXCEEDED_SLIPPAGE]: `Exceeded slippage tolerance`, [CP_AMM_ERROR__EXCEED_MAX_FEE_BPS]: `Exceeded max fee bps`, [CP_AMM_ERROR__FAIL_TO_VALIDATE_SINGLE_SWAP_INSTRUCTION]: `Fail to validate single swap instruction in rate limiter`, [CP_AMM_ERROR__FEE_INVERSE_IS_INCORRECT]: `Fee inverse is incorrect`, [CP_AMM_ERROR__IDENTICAL_FUNDER]: `Identical funder`, [CP_AMM_ERROR__IDENTICAL_REWARD_DURATION]: `Reward duration is the same`, [CP_AMM_ERROR__INSUFFICIENT_LIQUIDITY]: `Insufficient liquidity`, [CP_AMM_ERROR__INVALID_ACTIVATION_POINT]: `Invalid activation point`, [CP_AMM_ERROR__INVALID_ACTIVATION_TYPE]: `Invalid activation type`, [CP_AMM_ERROR__INVALID_ADMIN]: `Invalid admin`, [CP_AMM_ERROR__INVALID_AUTHORITY_TO_CREATE_THE_POOL]: `Invalid authority to create the pool`, [CP_AMM_ERROR__INVALID_BASE_FEE_MODE]: `Invalid base fee mode`, [CP_AMM_ERROR__INVALID_COLLECT_FEE_MODE]: `Invalid collect fee mode`, [CP_AMM_ERROR__INVALID_CONFIG_TYPE]: `Invalid config type`, [CP_AMM_ERROR__INVALID_FEE]: `Invalid fee setup`, [CP_AMM_ERROR__INVALID_FEE_CURVE]: `Invalid fee curve`, [CP_AMM_ERROR__INVALID_FEE_RATE_LIMITER]: `Invalid fee rate limiter`, [CP_AMM_ERROR__INVALID_FEE_SCHEDULER]: `Invalid fee scheduler`, [CP_AMM_ERROR__INVALID_FUNDER]: `Invalid funder`, [CP_AMM_ERROR__INVALID_INPUT]: `Invalid input`, [CP_AMM_ERROR__INVALID_MINIMUM_LIQUIDITY]: `Invalid minimum liquidity`, [CP_AMM_ERROR__INVALID_PARAMETERS]: `Invalid parameters`, [CP_AMM_ERROR__INVALID_POOL_CREATOR]: `Invalid pool creator`, [CP_AMM_ERROR__INVALID_POOL_CREATOR_AUTHORITY]: `Invalid pool creator authority`, [CP_AMM_ERROR__INVALID_POOL_STATUS]: `Invalid pool status`, [CP_AMM_ERROR__INVALID_POOL_VERSION]: `Invalid pool version`, [CP_AMM_ERROR__INVALID_PRICE_RANGE]: `Invalid Price Range`, [CP_AMM_ERROR__INVALID_QUOTE_MINT]: `Quote token must be SOL,USDC`, [CP_AMM_ERROR__INVALID_REWARD_DURATION]: `Invalid reward duration`, [CP_AMM_ERROR__INVALID_REWARD_INDEX]: `Invalid reward index`, [CP_AMM_ERROR__INVALID_REWARD_VAULT]: `Invalid reward vault`, [CP_AMM_ERROR__INVALID_SPLIT_POSITION_PARAMETERS]: `Invalid parameters for split position`, [CP_AMM_ERROR__INVALID_TOKEN_BADGE]: `Invalid token badge`, [CP_AMM_ERROR__INVALID_VESTING_ACCOUNT]: `Invalid vesting account`, [CP_AMM_ERROR__INVALID_VESTING_INFO]: `Invalid vesting information`, [CP_AMM_ERROR__MATH_OVERFLOW]: `Math operation overflow`, [CP_AMM_ERROR__MUST_WITHDRAWN_INELIGIBLE_REWARD]: `Must withdraw ineligible reward`, [CP_AMM_ERROR__POOL_DISABLED]: `Pool disabled`, [CP_AMM_ERROR__POSITION_IS_NOT_EMPTY]: `Position is not empty`, [CP_AMM_ERROR__PRICE_RANGE_VIOLATION]: `Trade is over price range`, [CP_AMM_ERROR__REWARD_CAMPAIGN_IN_PROGRESS]: `Reward campaign in progress`, [CP_AMM_ERROR__REWARD_INITIALIZED]: `Reward already initialized`, [CP_AMM_ERROR__REWARD_NOT_ENDED]: `Reward not ended`, [CP_AMM_ERROR__REWARD_UNINITIALIZED]: `Reward not initialized`, [CP_AMM_ERROR__REWARD_VAULT_FROZEN_SKIP_REQUIRED]: `Reward vault is frozen, must skip reward to proceed`, [CP_AMM_ERROR__SAME_POSITION]: `Same position`, [CP_AMM_ERROR__TYPE_CAST_FAILED]: `Type cast error`, [CP_AMM_ERROR__UNABLE_TO_MODIFY_ACTIVATION_POINT]: `Unable to modify activation point`, [CP_AMM_ERROR__UNDETERMINED_ERROR]: `Undetermined error`, [CP_AMM_ERROR__UNSUPPORT_NATIVE_MINT_TOKEN2022]: `Unsupported native mint token2022`, [CP_AMM_ERROR__UNSUPPORT_POSITION_HAS_VESTING_LOCK]: `Unsupported split position has vesting lock`, }; } export function getCpAmmErrorMessage(code: CpAmmError): string { if (process.env["NODE_ENV"] !== "production") { return (cpAmmErrorMessages as Record)[code]; } return "Error message not available in production bundles."; } export function isCpAmmError( error: unknown, transactionMessage: { instructions: Record; }, code?: TProgramErrorCode, ): error is SolanaError & Readonly<{ context: Readonly<{ code: TProgramErrorCode }> }> { return isProgramError( error, transactionMessage, CP_AMM_PROGRAM_ADDRESS, code, ); }