/** * 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 { COMMERCE_PROGRAM_PROGRAM_ADDRESS } from '../programs'; /** InvalidMint: Incorrect mint provided */ export const COMMERCE_PROGRAM_ERROR__INVALID_MINT = 0x0; // 0 /** InvalidPaymentStatus: Invalid payment status for the operation */ export const COMMERCE_PROGRAM_ERROR__INVALID_PAYMENT_STATUS = 0x1; // 1 /** InsufficientSettlementAmount: Insufficient settlement amount */ export const COMMERCE_PROGRAM_ERROR__INSUFFICIENT_SETTLEMENT_AMOUNT = 0x2; // 2 /** SettlementTooEarly: Settlement attempted too early */ export const COMMERCE_PROGRAM_ERROR__SETTLEMENT_TOO_EARLY = 0x3; // 3 /** RefundAmountExceedsPolicyLimit: Refund amount exceeds policy limit */ export const COMMERCE_PROGRAM_ERROR__REFUND_AMOUNT_EXCEEDS_POLICY_LIMIT = 0x4; // 4 /** RefundWindowExpired: Refund window expired */ export const COMMERCE_PROGRAM_ERROR__REFUND_WINDOW_EXPIRED = 0x5; // 5 /** InvalidEventAuthority: Invalid event authority */ export const COMMERCE_PROGRAM_ERROR__INVALID_EVENT_AUTHORITY = 0x6; // 6 /** InvalidAta: Invalid ATA */ export const COMMERCE_PROGRAM_ERROR__INVALID_ATA = 0x7; // 7 /** PaymentCloseWindowNotReached: Payment close window not reached */ export const COMMERCE_PROGRAM_ERROR__PAYMENT_CLOSE_WINDOW_NOT_REACHED = 0x8; // 8 /** MerchantOwnerMismatch: Merchant owner does not match expected owner */ export const COMMERCE_PROGRAM_ERROR__MERCHANT_OWNER_MISMATCH = 0x9; // 9 /** MerchantInvalidPda: Merchant PDA is invalid */ export const COMMERCE_PROGRAM_ERROR__MERCHANT_INVALID_PDA = 0xa; // 10 /** OperatorOwnerMismatch: Operator owner does not match expected owner */ export const COMMERCE_PROGRAM_ERROR__OPERATOR_OWNER_MISMATCH = 0xb; // 11 /** OperatorInvalidPda: Operator PDA is invalid */ export const COMMERCE_PROGRAM_ERROR__OPERATOR_INVALID_PDA = 0xc; // 12 /** OperatorMismatch: Operator does not match config operator */ export const COMMERCE_PROGRAM_ERROR__OPERATOR_MISMATCH = 0xd; // 13 /** MerchantMismatch: Merchant does not match config merchant */ export const COMMERCE_PROGRAM_ERROR__MERCHANT_MISMATCH = 0xe; // 14 /** OrderIdInvalid: Order ID is invalid or already used */ export const COMMERCE_PROGRAM_ERROR__ORDER_ID_INVALID = 0xf; // 15 /** MerchantOperatorConfigInvalidPda: MerchantOperatorConfig PDA is invalid */ export const COMMERCE_PROGRAM_ERROR__MERCHANT_OPERATOR_CONFIG_INVALID_PDA = 0x10; // 16 /** AcceptedCurrenciesEmpty: Accepted currencies is empty */ export const COMMERCE_PROGRAM_ERROR__ACCEPTED_CURRENCIES_EMPTY = 0x11; // 17 /** DuplicateMint: Duplicate mint in accepted currencies */ export const COMMERCE_PROGRAM_ERROR__DUPLICATE_MINT = 0x12; // 18 export type CommerceProgramError = | typeof COMMERCE_PROGRAM_ERROR__ACCEPTED_CURRENCIES_EMPTY | typeof COMMERCE_PROGRAM_ERROR__DUPLICATE_MINT | typeof COMMERCE_PROGRAM_ERROR__INSUFFICIENT_SETTLEMENT_AMOUNT | typeof COMMERCE_PROGRAM_ERROR__INVALID_ATA | typeof COMMERCE_PROGRAM_ERROR__INVALID_EVENT_AUTHORITY | typeof COMMERCE_PROGRAM_ERROR__INVALID_MINT | typeof COMMERCE_PROGRAM_ERROR__INVALID_PAYMENT_STATUS | typeof COMMERCE_PROGRAM_ERROR__MERCHANT_INVALID_PDA | typeof COMMERCE_PROGRAM_ERROR__MERCHANT_MISMATCH | typeof COMMERCE_PROGRAM_ERROR__MERCHANT_OPERATOR_CONFIG_INVALID_PDA | typeof COMMERCE_PROGRAM_ERROR__MERCHANT_OWNER_MISMATCH | typeof COMMERCE_PROGRAM_ERROR__OPERATOR_INVALID_PDA | typeof COMMERCE_PROGRAM_ERROR__OPERATOR_MISMATCH | typeof COMMERCE_PROGRAM_ERROR__OPERATOR_OWNER_MISMATCH | typeof COMMERCE_PROGRAM_ERROR__ORDER_ID_INVALID | typeof COMMERCE_PROGRAM_ERROR__PAYMENT_CLOSE_WINDOW_NOT_REACHED | typeof COMMERCE_PROGRAM_ERROR__REFUND_AMOUNT_EXCEEDS_POLICY_LIMIT | typeof COMMERCE_PROGRAM_ERROR__REFUND_WINDOW_EXPIRED | typeof COMMERCE_PROGRAM_ERROR__SETTLEMENT_TOO_EARLY; let commerceProgramErrorMessages: | Record | undefined; if (process.env.NODE_ENV !== 'production') { commerceProgramErrorMessages = { [COMMERCE_PROGRAM_ERROR__ACCEPTED_CURRENCIES_EMPTY]: `Accepted currencies is empty`, [COMMERCE_PROGRAM_ERROR__DUPLICATE_MINT]: `Duplicate mint in accepted currencies`, [COMMERCE_PROGRAM_ERROR__INSUFFICIENT_SETTLEMENT_AMOUNT]: `Insufficient settlement amount`, [COMMERCE_PROGRAM_ERROR__INVALID_ATA]: `Invalid ATA`, [COMMERCE_PROGRAM_ERROR__INVALID_EVENT_AUTHORITY]: `Invalid event authority`, [COMMERCE_PROGRAM_ERROR__INVALID_MINT]: `Incorrect mint provided`, [COMMERCE_PROGRAM_ERROR__INVALID_PAYMENT_STATUS]: `Invalid payment status for the operation`, [COMMERCE_PROGRAM_ERROR__MERCHANT_INVALID_PDA]: `Merchant PDA is invalid`, [COMMERCE_PROGRAM_ERROR__MERCHANT_MISMATCH]: `Merchant does not match config merchant`, [COMMERCE_PROGRAM_ERROR__MERCHANT_OPERATOR_CONFIG_INVALID_PDA]: `MerchantOperatorConfig PDA is invalid`, [COMMERCE_PROGRAM_ERROR__MERCHANT_OWNER_MISMATCH]: `Merchant owner does not match expected owner`, [COMMERCE_PROGRAM_ERROR__OPERATOR_INVALID_PDA]: `Operator PDA is invalid`, [COMMERCE_PROGRAM_ERROR__OPERATOR_MISMATCH]: `Operator does not match config operator`, [COMMERCE_PROGRAM_ERROR__OPERATOR_OWNER_MISMATCH]: `Operator owner does not match expected owner`, [COMMERCE_PROGRAM_ERROR__ORDER_ID_INVALID]: `Order ID is invalid or already used`, [COMMERCE_PROGRAM_ERROR__PAYMENT_CLOSE_WINDOW_NOT_REACHED]: `Payment close window not reached`, [COMMERCE_PROGRAM_ERROR__REFUND_AMOUNT_EXCEEDS_POLICY_LIMIT]: `Refund amount exceeds policy limit`, [COMMERCE_PROGRAM_ERROR__REFUND_WINDOW_EXPIRED]: `Refund window expired`, [COMMERCE_PROGRAM_ERROR__SETTLEMENT_TOO_EARLY]: `Settlement attempted too early`, }; } export function getCommerceProgramErrorMessage( code: CommerceProgramError ): string { if (process.env.NODE_ENV !== 'production') { return ( commerceProgramErrorMessages as Record )[code]; } return 'Error message not available in production bundles.'; } export function isCommerceProgramError< TProgramErrorCode extends CommerceProgramError, >( error: unknown, transactionMessage: { instructions: Record; }, code?: TProgramErrorCode ): error is SolanaError & Readonly<{ context: Readonly<{ code: TProgramErrorCode }> }> { return isProgramError( error, transactionMessage, COMMERCE_PROGRAM_PROGRAM_ADDRESS, code ); }