/** * 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 { MPL_TOKEN_AUTH_RULES_PROGRAM_ADDRESS } from "../programs/index.ts"; /** NumericalOverflow: Numerical Overflow */ export const MPL_TOKEN_AUTH_RULES_ERROR__NUMERICAL_OVERFLOW = 0x0; // 0 /** DataTypeMismatch: Data type mismatch */ export const MPL_TOKEN_AUTH_RULES_ERROR__DATA_TYPE_MISMATCH = 0x1; // 1 /** DataSliceUnexpectedIndexError: Data slice unexpected index error */ export const MPL_TOKEN_AUTH_RULES_ERROR__DATA_SLICE_UNEXPECTED_INDEX_ERROR = 0x2; // 2 /** IncorrectOwner: Incorrect account owner */ export const MPL_TOKEN_AUTH_RULES_ERROR__INCORRECT_OWNER = 0x3; // 3 /** PayloadVecIndexError: Could not index into PayloadVec */ export const MPL_TOKEN_AUTH_RULES_ERROR__PAYLOAD_VEC_INDEX_ERROR = 0x4; // 4 /** DerivedKeyInvalid: Derived key invalid */ export const MPL_TOKEN_AUTH_RULES_ERROR__DERIVED_KEY_INVALID = 0x5; // 5 /** PayerIsNotSigner: Payer is not a signer */ export const MPL_TOKEN_AUTH_RULES_ERROR__PAYER_IS_NOT_SIGNER = 0x6; // 6 /** NotImplemented: Not implemented */ export const MPL_TOKEN_AUTH_RULES_ERROR__NOT_IMPLEMENTED = 0x7; // 7 /** BorshSerializationError: Borsh serialization error */ export const MPL_TOKEN_AUTH_RULES_ERROR__BORSH_SERIALIZATION_ERROR = 0x8; // 8 /** BorshDeserializationError: Borsh deserialization error */ export const MPL_TOKEN_AUTH_RULES_ERROR__BORSH_DESERIALIZATION_ERROR = 0x9; // 9 /** ValueOccupied: Value in Payload or RuleSet is occupied */ export const MPL_TOKEN_AUTH_RULES_ERROR__VALUE_OCCUPIED = 0xa; // 10 /** DataIsEmpty: Account data is empty */ export const MPL_TOKEN_AUTH_RULES_ERROR__DATA_IS_EMPTY = 0xb; // 11 /** MessagePackSerializationError: MessagePack serialization error */ export const MPL_TOKEN_AUTH_RULES_ERROR__MESSAGE_PACK_SERIALIZATION_ERROR = 0xc; // 12 /** MessagePackDeserializationError: MessagePack deserialization error */ export const MPL_TOKEN_AUTH_RULES_ERROR__MESSAGE_PACK_DESERIALIZATION_ERROR = 0xd; // 13 /** MissingAccount: Missing account */ export const MPL_TOKEN_AUTH_RULES_ERROR__MISSING_ACCOUNT = 0xe; // 14 /** MissingPayloadValue: Missing Payload value */ export const MPL_TOKEN_AUTH_RULES_ERROR__MISSING_PAYLOAD_VALUE = 0xf; // 15 /** RuleSetOwnerMismatch: RuleSet owner must be payer */ export const MPL_TOKEN_AUTH_RULES_ERROR__RULE_SET_OWNER_MISMATCH = 0x10; // 16 /** NameTooLong: Name too long */ export const MPL_TOKEN_AUTH_RULES_ERROR__NAME_TOO_LONG = 0x11; // 17 /** OperationNotFound: The operation retrieved is not in the selected RuleSet */ export const MPL_TOKEN_AUTH_RULES_ERROR__OPERATION_NOT_FOUND = 0x12; // 18 /** RuleAuthorityIsNotSigner: Rule authority is not signer */ export const MPL_TOKEN_AUTH_RULES_ERROR__RULE_AUTHORITY_IS_NOT_SIGNER = 0x13; // 19 /** UnsupportedRuleSetRevMapVersion: Unsupported RuleSet revision map version */ export const MPL_TOKEN_AUTH_RULES_ERROR__UNSUPPORTED_RULE_SET_REV_MAP_VERSION = 0x14; // 20 /** UnsupportedRuleSetVersion: Unsupported RuleSet version */ export const MPL_TOKEN_AUTH_RULES_ERROR__UNSUPPORTED_RULE_SET_VERSION = 0x15; // 21 /** UnexpectedRuleSetFailure: Unexpected RuleSet failure */ export const MPL_TOKEN_AUTH_RULES_ERROR__UNEXPECTED_RULE_SET_FAILURE = 0x16; // 22 /** RuleSetRevisionNotAvailable: RuleSet revision not available */ export const MPL_TOKEN_AUTH_RULES_ERROR__RULE_SET_REVISION_NOT_AVAILABLE = 0x17; // 23 /** AdditionalSignerCheckFailed: Additional Signer check failed */ export const MPL_TOKEN_AUTH_RULES_ERROR__ADDITIONAL_SIGNER_CHECK_FAILED = 0x18; // 24 /** PubkeyMatchCheckFailed: Pubkey Match check failed */ export const MPL_TOKEN_AUTH_RULES_ERROR__PUBKEY_MATCH_CHECK_FAILED = 0x19; // 25 /** PubkeyListMatchCheckFailed: Pubkey List Match check failed */ export const MPL_TOKEN_AUTH_RULES_ERROR__PUBKEY_LIST_MATCH_CHECK_FAILED = 0x1a; // 26 /** PubkeyTreeMatchCheckFailed: Pubkey Tree Match check failed */ export const MPL_TOKEN_AUTH_RULES_ERROR__PUBKEY_TREE_MATCH_CHECK_FAILED = 0x1b; // 27 /** PDAMatchCheckFailed: PDA Match check failed */ export const MPL_TOKEN_AUTH_RULES_ERROR__P_D_A_MATCH_CHECK_FAILED = 0x1c; // 28 /** ProgramOwnedCheckFailed: Program Owned check failed */ export const MPL_TOKEN_AUTH_RULES_ERROR__PROGRAM_OWNED_CHECK_FAILED = 0x1d; // 29 /** ProgramOwnedListCheckFailed: Program Owned List check failed */ export const MPL_TOKEN_AUTH_RULES_ERROR__PROGRAM_OWNED_LIST_CHECK_FAILED = 0x1e; // 30 /** ProgramOwnedTreeCheckFailed: Program Owned Tree check failed */ export const MPL_TOKEN_AUTH_RULES_ERROR__PROGRAM_OWNED_TREE_CHECK_FAILED = 0x1f; // 31 /** AmountCheckFailed: Amount checked failed */ export const MPL_TOKEN_AUTH_RULES_ERROR__AMOUNT_CHECK_FAILED = 0x20; // 32 /** FrequencyCheckFailed: Frequency check failed */ export const MPL_TOKEN_AUTH_RULES_ERROR__FREQUENCY_CHECK_FAILED = 0x21; // 33 /** IsWalletCheckFailed: IsWallet check failed */ export const MPL_TOKEN_AUTH_RULES_ERROR__IS_WALLET_CHECK_FAILED = 0x22; // 34 /** ProgramOwnedSetCheckFailed: Program Owned Set check failed */ export const MPL_TOKEN_AUTH_RULES_ERROR__PROGRAM_OWNED_SET_CHECK_FAILED = 0x23; // 35 /** InvalidCompareOp: Invalid compare operator */ export const MPL_TOKEN_AUTH_RULES_ERROR__INVALID_COMPARE_OP = 0x24; // 36 /** InvalidConstraintType: Invalid constraint type value */ export const MPL_TOKEN_AUTH_RULES_ERROR__INVALID_CONSTRAINT_TYPE = 0x25; // 37 /** RuleSetReadFailed: Failed to read the rule set */ export const MPL_TOKEN_AUTH_RULES_ERROR__RULE_SET_READ_FAILED = 0x26; // 38 /** DuplicatedOperationName: Duplicated operation name */ export const MPL_TOKEN_AUTH_RULES_ERROR__DUPLICATED_OPERATION_NAME = 0x27; // 39 /** AlignmentError: Could not determine alignemnt */ export const MPL_TOKEN_AUTH_RULES_ERROR__ALIGNMENT_ERROR = 0x28; // 40 export type MplTokenAuthRulesError = | typeof MPL_TOKEN_AUTH_RULES_ERROR__ADDITIONAL_SIGNER_CHECK_FAILED | typeof MPL_TOKEN_AUTH_RULES_ERROR__ALIGNMENT_ERROR | typeof MPL_TOKEN_AUTH_RULES_ERROR__AMOUNT_CHECK_FAILED | typeof MPL_TOKEN_AUTH_RULES_ERROR__BORSH_DESERIALIZATION_ERROR | typeof MPL_TOKEN_AUTH_RULES_ERROR__BORSH_SERIALIZATION_ERROR | typeof MPL_TOKEN_AUTH_RULES_ERROR__DATA_IS_EMPTY | typeof MPL_TOKEN_AUTH_RULES_ERROR__DATA_SLICE_UNEXPECTED_INDEX_ERROR | typeof MPL_TOKEN_AUTH_RULES_ERROR__DATA_TYPE_MISMATCH | typeof MPL_TOKEN_AUTH_RULES_ERROR__DERIVED_KEY_INVALID | typeof MPL_TOKEN_AUTH_RULES_ERROR__DUPLICATED_OPERATION_NAME | typeof MPL_TOKEN_AUTH_RULES_ERROR__FREQUENCY_CHECK_FAILED | typeof MPL_TOKEN_AUTH_RULES_ERROR__INCORRECT_OWNER | typeof MPL_TOKEN_AUTH_RULES_ERROR__INVALID_COMPARE_OP | typeof MPL_TOKEN_AUTH_RULES_ERROR__INVALID_CONSTRAINT_TYPE | typeof MPL_TOKEN_AUTH_RULES_ERROR__IS_WALLET_CHECK_FAILED | typeof MPL_TOKEN_AUTH_RULES_ERROR__MESSAGE_PACK_DESERIALIZATION_ERROR | typeof MPL_TOKEN_AUTH_RULES_ERROR__MESSAGE_PACK_SERIALIZATION_ERROR | typeof MPL_TOKEN_AUTH_RULES_ERROR__MISSING_ACCOUNT | typeof MPL_TOKEN_AUTH_RULES_ERROR__MISSING_PAYLOAD_VALUE | typeof MPL_TOKEN_AUTH_RULES_ERROR__NAME_TOO_LONG | typeof MPL_TOKEN_AUTH_RULES_ERROR__NOT_IMPLEMENTED | typeof MPL_TOKEN_AUTH_RULES_ERROR__NUMERICAL_OVERFLOW | typeof MPL_TOKEN_AUTH_RULES_ERROR__OPERATION_NOT_FOUND | typeof MPL_TOKEN_AUTH_RULES_ERROR__PAYER_IS_NOT_SIGNER | typeof MPL_TOKEN_AUTH_RULES_ERROR__PAYLOAD_VEC_INDEX_ERROR | typeof MPL_TOKEN_AUTH_RULES_ERROR__P_D_A_MATCH_CHECK_FAILED | typeof MPL_TOKEN_AUTH_RULES_ERROR__PROGRAM_OWNED_CHECK_FAILED | typeof MPL_TOKEN_AUTH_RULES_ERROR__PROGRAM_OWNED_LIST_CHECK_FAILED | typeof MPL_TOKEN_AUTH_RULES_ERROR__PROGRAM_OWNED_SET_CHECK_FAILED | typeof MPL_TOKEN_AUTH_RULES_ERROR__PROGRAM_OWNED_TREE_CHECK_FAILED | typeof MPL_TOKEN_AUTH_RULES_ERROR__PUBKEY_LIST_MATCH_CHECK_FAILED | typeof MPL_TOKEN_AUTH_RULES_ERROR__PUBKEY_MATCH_CHECK_FAILED | typeof MPL_TOKEN_AUTH_RULES_ERROR__PUBKEY_TREE_MATCH_CHECK_FAILED | typeof MPL_TOKEN_AUTH_RULES_ERROR__RULE_AUTHORITY_IS_NOT_SIGNER | typeof MPL_TOKEN_AUTH_RULES_ERROR__RULE_SET_OWNER_MISMATCH | typeof MPL_TOKEN_AUTH_RULES_ERROR__RULE_SET_READ_FAILED | typeof MPL_TOKEN_AUTH_RULES_ERROR__RULE_SET_REVISION_NOT_AVAILABLE | typeof MPL_TOKEN_AUTH_RULES_ERROR__UNEXPECTED_RULE_SET_FAILURE | typeof MPL_TOKEN_AUTH_RULES_ERROR__UNSUPPORTED_RULE_SET_REV_MAP_VERSION | typeof MPL_TOKEN_AUTH_RULES_ERROR__UNSUPPORTED_RULE_SET_VERSION | typeof MPL_TOKEN_AUTH_RULES_ERROR__VALUE_OCCUPIED; let mplTokenAuthRulesErrorMessages: | Record | undefined; if (process.env["NODE_ENV"] !== "production") { mplTokenAuthRulesErrorMessages = { [MPL_TOKEN_AUTH_RULES_ERROR__ADDITIONAL_SIGNER_CHECK_FAILED]: `Additional Signer check failed`, [MPL_TOKEN_AUTH_RULES_ERROR__ALIGNMENT_ERROR]: `Could not determine alignemnt`, [MPL_TOKEN_AUTH_RULES_ERROR__AMOUNT_CHECK_FAILED]: `Amount checked failed`, [MPL_TOKEN_AUTH_RULES_ERROR__BORSH_DESERIALIZATION_ERROR]: `Borsh deserialization error`, [MPL_TOKEN_AUTH_RULES_ERROR__BORSH_SERIALIZATION_ERROR]: `Borsh serialization error`, [MPL_TOKEN_AUTH_RULES_ERROR__DATA_IS_EMPTY]: `Account data is empty`, [MPL_TOKEN_AUTH_RULES_ERROR__DATA_SLICE_UNEXPECTED_INDEX_ERROR]: `Data slice unexpected index error`, [MPL_TOKEN_AUTH_RULES_ERROR__DATA_TYPE_MISMATCH]: `Data type mismatch`, [MPL_TOKEN_AUTH_RULES_ERROR__DERIVED_KEY_INVALID]: `Derived key invalid`, [MPL_TOKEN_AUTH_RULES_ERROR__DUPLICATED_OPERATION_NAME]: `Duplicated operation name`, [MPL_TOKEN_AUTH_RULES_ERROR__FREQUENCY_CHECK_FAILED]: `Frequency check failed`, [MPL_TOKEN_AUTH_RULES_ERROR__INCORRECT_OWNER]: `Incorrect account owner`, [MPL_TOKEN_AUTH_RULES_ERROR__INVALID_COMPARE_OP]: `Invalid compare operator`, [MPL_TOKEN_AUTH_RULES_ERROR__INVALID_CONSTRAINT_TYPE]: `Invalid constraint type value`, [MPL_TOKEN_AUTH_RULES_ERROR__IS_WALLET_CHECK_FAILED]: `IsWallet check failed`, [MPL_TOKEN_AUTH_RULES_ERROR__MESSAGE_PACK_DESERIALIZATION_ERROR]: `MessagePack deserialization error`, [MPL_TOKEN_AUTH_RULES_ERROR__MESSAGE_PACK_SERIALIZATION_ERROR]: `MessagePack serialization error`, [MPL_TOKEN_AUTH_RULES_ERROR__MISSING_ACCOUNT]: `Missing account`, [MPL_TOKEN_AUTH_RULES_ERROR__MISSING_PAYLOAD_VALUE]: `Missing Payload value`, [MPL_TOKEN_AUTH_RULES_ERROR__NAME_TOO_LONG]: `Name too long`, [MPL_TOKEN_AUTH_RULES_ERROR__NOT_IMPLEMENTED]: `Not implemented`, [MPL_TOKEN_AUTH_RULES_ERROR__NUMERICAL_OVERFLOW]: `Numerical Overflow`, [MPL_TOKEN_AUTH_RULES_ERROR__OPERATION_NOT_FOUND]: `The operation retrieved is not in the selected RuleSet`, [MPL_TOKEN_AUTH_RULES_ERROR__PAYER_IS_NOT_SIGNER]: `Payer is not a signer`, [MPL_TOKEN_AUTH_RULES_ERROR__PAYLOAD_VEC_INDEX_ERROR]: `Could not index into PayloadVec`, [MPL_TOKEN_AUTH_RULES_ERROR__P_D_A_MATCH_CHECK_FAILED]: `PDA Match check failed`, [MPL_TOKEN_AUTH_RULES_ERROR__PROGRAM_OWNED_CHECK_FAILED]: `Program Owned check failed`, [MPL_TOKEN_AUTH_RULES_ERROR__PROGRAM_OWNED_LIST_CHECK_FAILED]: `Program Owned List check failed`, [MPL_TOKEN_AUTH_RULES_ERROR__PROGRAM_OWNED_SET_CHECK_FAILED]: `Program Owned Set check failed`, [MPL_TOKEN_AUTH_RULES_ERROR__PROGRAM_OWNED_TREE_CHECK_FAILED]: `Program Owned Tree check failed`, [MPL_TOKEN_AUTH_RULES_ERROR__PUBKEY_LIST_MATCH_CHECK_FAILED]: `Pubkey List Match check failed`, [MPL_TOKEN_AUTH_RULES_ERROR__PUBKEY_MATCH_CHECK_FAILED]: `Pubkey Match check failed`, [MPL_TOKEN_AUTH_RULES_ERROR__PUBKEY_TREE_MATCH_CHECK_FAILED]: `Pubkey Tree Match check failed`, [MPL_TOKEN_AUTH_RULES_ERROR__RULE_AUTHORITY_IS_NOT_SIGNER]: `Rule authority is not signer`, [MPL_TOKEN_AUTH_RULES_ERROR__RULE_SET_OWNER_MISMATCH]: `RuleSet owner must be payer`, [MPL_TOKEN_AUTH_RULES_ERROR__RULE_SET_READ_FAILED]: `Failed to read the rule set`, [MPL_TOKEN_AUTH_RULES_ERROR__RULE_SET_REVISION_NOT_AVAILABLE]: `RuleSet revision not available`, [MPL_TOKEN_AUTH_RULES_ERROR__UNEXPECTED_RULE_SET_FAILURE]: `Unexpected RuleSet failure`, [MPL_TOKEN_AUTH_RULES_ERROR__UNSUPPORTED_RULE_SET_REV_MAP_VERSION]: `Unsupported RuleSet revision map version`, [MPL_TOKEN_AUTH_RULES_ERROR__UNSUPPORTED_RULE_SET_VERSION]: `Unsupported RuleSet version`, [MPL_TOKEN_AUTH_RULES_ERROR__VALUE_OCCUPIED]: `Value in Payload or RuleSet is occupied`, }; } export function getMplTokenAuthRulesErrorMessage( code: MplTokenAuthRulesError, ): string { if (process.env["NODE_ENV"] !== "production") { return ( mplTokenAuthRulesErrorMessages as Record )[code]; } return "Error message not available in production bundles."; } export function isMplTokenAuthRulesError< TProgramErrorCode extends MplTokenAuthRulesError, >( error: unknown, transactionMessage: { instructions: Record; }, code?: TProgramErrorCode, ): error is SolanaError & Readonly<{ context: Readonly<{ code: TProgramErrorCode }> }> { return isProgramError( error, transactionMessage, MPL_TOKEN_AUTH_RULES_PROGRAM_ADDRESS, code, ); }