/** * 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 { containsBytes, getU8Encoder, type Address, type ReadonlyUint8Array, } from '@solana/kit'; import { type ParsedClearPaymentInstruction, type ParsedClosePaymentInstruction, type ParsedCreateOperatorInstruction, type ParsedEmitEventInstruction, type ParsedInitializeMerchantInstruction, type ParsedInitializeMerchantOperatorConfigInstruction, type ParsedMakePaymentInstruction, type ParsedRefundPaymentInstruction, type ParsedUpdateMerchantAuthorityInstruction, type ParsedUpdateMerchantSettlementWalletInstruction, type ParsedUpdateOperatorAuthorityInstruction, } from '../instructions'; export const COMMERCE_PROGRAM_PROGRAM_ADDRESS = 'commkU28d52cwo2Ma3Marxz4Qr9REtfJtuUfqnDnbhT' as Address<'commkU28d52cwo2Ma3Marxz4Qr9REtfJtuUfqnDnbhT'>; export enum CommerceProgramAccount { Merchant, MerchantOperatorConfig, Operator, Payment, } export enum CommerceProgramInstruction { InitializeMerchant, CreateOperator, InitializeMerchantOperatorConfig, MakePayment, ClearPayment, RefundPayment, UpdateMerchantSettlementWallet, UpdateMerchantAuthority, UpdateOperatorAuthority, ClosePayment, EmitEvent, } export function identifyCommerceProgramInstruction( instruction: { data: ReadonlyUint8Array } | ReadonlyUint8Array ): CommerceProgramInstruction { const data = 'data' in instruction ? instruction.data : instruction; if (containsBytes(data, getU8Encoder().encode(0), 0)) { return CommerceProgramInstruction.InitializeMerchant; } if (containsBytes(data, getU8Encoder().encode(1), 0)) { return CommerceProgramInstruction.CreateOperator; } if (containsBytes(data, getU8Encoder().encode(2), 0)) { return CommerceProgramInstruction.InitializeMerchantOperatorConfig; } if (containsBytes(data, getU8Encoder().encode(3), 0)) { return CommerceProgramInstruction.MakePayment; } if (containsBytes(data, getU8Encoder().encode(4), 0)) { return CommerceProgramInstruction.ClearPayment; } if (containsBytes(data, getU8Encoder().encode(5), 0)) { return CommerceProgramInstruction.RefundPayment; } if (containsBytes(data, getU8Encoder().encode(6), 0)) { return CommerceProgramInstruction.UpdateMerchantSettlementWallet; } if (containsBytes(data, getU8Encoder().encode(7), 0)) { return CommerceProgramInstruction.UpdateMerchantAuthority; } if (containsBytes(data, getU8Encoder().encode(8), 0)) { return CommerceProgramInstruction.UpdateOperatorAuthority; } if (containsBytes(data, getU8Encoder().encode(9), 0)) { return CommerceProgramInstruction.ClosePayment; } if (containsBytes(data, getU8Encoder().encode(228), 0)) { return CommerceProgramInstruction.EmitEvent; } throw new Error( 'The provided instruction could not be identified as a commerceProgram instruction.' ); } export type ParsedCommerceProgramInstruction< TProgram extends string = 'commkU28d52cwo2Ma3Marxz4Qr9REtfJtuUfqnDnbhT', > = | ({ instructionType: CommerceProgramInstruction.InitializeMerchant; } & ParsedInitializeMerchantInstruction) | ({ instructionType: CommerceProgramInstruction.CreateOperator; } & ParsedCreateOperatorInstruction) | ({ instructionType: CommerceProgramInstruction.InitializeMerchantOperatorConfig; } & ParsedInitializeMerchantOperatorConfigInstruction) | ({ instructionType: CommerceProgramInstruction.MakePayment; } & ParsedMakePaymentInstruction) | ({ instructionType: CommerceProgramInstruction.ClearPayment; } & ParsedClearPaymentInstruction) | ({ instructionType: CommerceProgramInstruction.RefundPayment; } & ParsedRefundPaymentInstruction) | ({ instructionType: CommerceProgramInstruction.UpdateMerchantSettlementWallet; } & ParsedUpdateMerchantSettlementWalletInstruction) | ({ instructionType: CommerceProgramInstruction.UpdateMerchantAuthority; } & ParsedUpdateMerchantAuthorityInstruction) | ({ instructionType: CommerceProgramInstruction.UpdateOperatorAuthority; } & ParsedUpdateOperatorAuthorityInstruction) | ({ instructionType: CommerceProgramInstruction.ClosePayment; } & ParsedClosePaymentInstruction) | ({ instructionType: CommerceProgramInstruction.EmitEvent; } & ParsedEmitEventInstruction);