associatedToken.ts 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /**
  2. * This code was AUTOGENERATED using the kinobi library.
  3. * Please DO NOT EDIT THIS FILE, instead use visitors
  4. * to add features, then rerun kinobi to update it.
  5. *
  6. * @see https://github.com/kinobi-so/kinobi
  7. */
  8. import {
  9. isProgramError,
  10. type Address,
  11. type SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM,
  12. type SolanaError,
  13. } from '@solana/web3.js';
  14. import { ASSOCIATED_TOKEN_PROGRAM_ADDRESS } from '../programs';
  15. /** InvalidOwner: Associated token account owner does not match address derivation */
  16. export const ASSOCIATED_TOKEN_ERROR__INVALID_OWNER = 0x0; // 0
  17. export type AssociatedTokenError = typeof ASSOCIATED_TOKEN_ERROR__INVALID_OWNER;
  18. let associatedTokenErrorMessages:
  19. | Record<AssociatedTokenError, string>
  20. | undefined;
  21. if (process.env.NODE_ENV !== 'production') {
  22. associatedTokenErrorMessages = {
  23. [ASSOCIATED_TOKEN_ERROR__INVALID_OWNER]: `Associated token account owner does not match address derivation`,
  24. };
  25. }
  26. export function getAssociatedTokenErrorMessage(
  27. code: AssociatedTokenError
  28. ): string {
  29. if (process.env.NODE_ENV !== 'production') {
  30. return (
  31. associatedTokenErrorMessages as Record<AssociatedTokenError, string>
  32. )[code];
  33. }
  34. return 'Error message not available in production bundles.';
  35. }
  36. export function isAssociatedTokenError<
  37. TProgramErrorCode extends AssociatedTokenError,
  38. >(
  39. error: unknown,
  40. transactionMessage: {
  41. instructions: Record<number, { programAddress: Address }>;
  42. },
  43. code?: TProgramErrorCode
  44. ): error is SolanaError<typeof SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM> &
  45. Readonly<{ context: Readonly<{ code: TProgramErrorCode }> }> {
  46. return isProgramError<TProgramErrorCode>(
  47. error,
  48. transactionMessage,
  49. ASSOCIATED_TOKEN_PROGRAM_ADDRESS,
  50. code
  51. );
  52. }