@robertprp/intents-sdk
Version:
Shogun Network Intent-based cross-chain swaps SDK
141 lines (133 loc) • 8.13 kB
text/typescript
/**
* 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 { type Address } from '@solana/kit';
import { type SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM, type SolanaError } from '@solana/kit';
import { isProgramError } from '@solana/kit';
import { SINGLE_CHAIN_GUARD_PROGRAM_ADDRESS } from '../programs/index.js';
/** NotUpgradeAuthority: Account is not upgrade authority */
export const SINGLE_CHAIN_GUARD_ERROR__NOT_UPGRADE_AUTHORITY = 0x1770; // 6000
/** NotAdmin: Account is not Admin */
export const SINGLE_CHAIN_GUARD_ERROR__NOT_ADMIN = 0x1771; // 6001
/** NotPendingAdmin: Account is not Pending Admin */
export const SINGLE_CHAIN_GUARD_ERROR__NOT_PENDING_ADMIN = 0x1772; // 6002
/** NotASolver: Account is not a Solver */
export const SINGLE_CHAIN_GUARD_ERROR__NOT_A_SOLVER = 0x1773; // 6003
/** NotAUser: Account is not a User */
export const SINGLE_CHAIN_GUARD_ERROR__NOT_A_USER = 0x1774; // 6004
/** ZeroAmount: Amount must not be zero */
export const SINGLE_CHAIN_GUARD_ERROR__ZERO_AMOUNT = 0x1775; // 6005
/** ZeroAmountIn: Amount IN must not be zero */
export const SINGLE_CHAIN_GUARD_ERROR__ZERO_AMOUNT_IN = 0x1776; // 6006
/** WrongOrder: Wrong order */
export const SINGLE_CHAIN_GUARD_ERROR__WRONG_ORDER = 0x1777; // 6007
/** InvalidGuard: Invalid Guard */
export const SINGLE_CHAIN_GUARD_ERROR__INVALID_GUARD = 0x1778; // 6008
/** ExpiredDeadline: Expired deadline */
export const SINGLE_CHAIN_GUARD_ERROR__EXPIRED_DEADLINE = 0x1779; // 6009
/** InvalidStartPermission: Invalid permission */
export const SINGLE_CHAIN_GUARD_ERROR__INVALID_START_PERMISSION = 0x177a; // 6010
/** SystemProgramNotProvided: System program not provided */
export const SINGLE_CHAIN_GUARD_ERROR__SYSTEM_PROGRAM_NOT_PROVIDED = 0x177b; // 6011
/** TokenOutAccountNotProvided: Token OUT account not provided */
export const SINGLE_CHAIN_GUARD_ERROR__TOKEN_OUT_ACCOUNT_NOT_PROVIDED = 0x177c; // 6012
/** ExtraTransferAccountNotProvided: Extra transfer account not provided */
export const SINGLE_CHAIN_GUARD_ERROR__EXTRA_TRANSFER_ACCOUNT_NOT_PROVIDED = 0x177d; // 6013
/** InvalidExtraTransferAccount: Invalid extra transfer account */
export const SINGLE_CHAIN_GUARD_ERROR__INVALID_EXTRA_TRANSFER_ACCOUNT = 0x177e; // 6014
/** CpiCallNotAllowed: CPI call is not allowed */
export const SINGLE_CHAIN_GUARD_ERROR__CPI_CALL_NOT_ALLOWED = 0x177f; // 6015
/** FeeTransferNotAllowed: Fee transfer not allowed */
export const SINGLE_CHAIN_GUARD_ERROR__FEE_TRANSFER_NOT_ALLOWED = 0x1780; // 6016
/** BelowMinAmountOut: Below minimum amount OUT */
export const SINGLE_CHAIN_GUARD_ERROR__BELOW_MIN_AMOUNT_OUT = 0x1781; // 6017
/** SecretHashMismatch: Secret hash mismatch */
export const SINGLE_CHAIN_GUARD_ERROR__SECRET_HASH_MISMATCH = 0x1782; // 6018
/** InvalidIntervalDuration: Invalid interval duration */
export const SINGLE_CHAIN_GUARD_ERROR__INVALID_INTERVAL_DURATION = 0x1783; // 6019
/** InvalidDcaOrder: Invalid DCA order */
export const SINGLE_CHAIN_GUARD_ERROR__INVALID_DCA_ORDER = 0x1784; // 6020
/** IntervalIsFulfilled: Interval is already fulfilled */
export const SINGLE_CHAIN_GUARD_ERROR__INTERVAL_IS_FULFILLED = 0x1785; // 6021
/** InstructionNotFound: Ed25519Program instruction */
export const SINGLE_CHAIN_GUARD_ERROR__INSTRUCTION_NOT_FOUND = 0x1786; // 6022
/** SigVerificationFailed: Signature verification failed */
export const SINGLE_CHAIN_GUARD_ERROR__SIG_VERIFICATION_FAILED = 0x1787; // 6023
/** InvalidSigner: Invalid signer */
export const SINGLE_CHAIN_GUARD_ERROR__INVALID_SIGNER = 0x1788; // 6024
export type SingleChainGuardError =
| typeof SINGLE_CHAIN_GUARD_ERROR__BELOW_MIN_AMOUNT_OUT
| typeof SINGLE_CHAIN_GUARD_ERROR__CPI_CALL_NOT_ALLOWED
| typeof SINGLE_CHAIN_GUARD_ERROR__EXPIRED_DEADLINE
| typeof SINGLE_CHAIN_GUARD_ERROR__EXTRA_TRANSFER_ACCOUNT_NOT_PROVIDED
| typeof SINGLE_CHAIN_GUARD_ERROR__FEE_TRANSFER_NOT_ALLOWED
| typeof SINGLE_CHAIN_GUARD_ERROR__INSTRUCTION_NOT_FOUND
| typeof SINGLE_CHAIN_GUARD_ERROR__INTERVAL_IS_FULFILLED
| typeof SINGLE_CHAIN_GUARD_ERROR__INVALID_DCA_ORDER
| typeof SINGLE_CHAIN_GUARD_ERROR__INVALID_EXTRA_TRANSFER_ACCOUNT
| typeof SINGLE_CHAIN_GUARD_ERROR__INVALID_GUARD
| typeof SINGLE_CHAIN_GUARD_ERROR__INVALID_INTERVAL_DURATION
| typeof SINGLE_CHAIN_GUARD_ERROR__INVALID_SIGNER
| typeof SINGLE_CHAIN_GUARD_ERROR__INVALID_START_PERMISSION
| typeof SINGLE_CHAIN_GUARD_ERROR__NOT_ADMIN
| typeof SINGLE_CHAIN_GUARD_ERROR__NOT_A_SOLVER
| typeof SINGLE_CHAIN_GUARD_ERROR__NOT_A_USER
| typeof SINGLE_CHAIN_GUARD_ERROR__NOT_PENDING_ADMIN
| typeof SINGLE_CHAIN_GUARD_ERROR__NOT_UPGRADE_AUTHORITY
| typeof SINGLE_CHAIN_GUARD_ERROR__SECRET_HASH_MISMATCH
| typeof SINGLE_CHAIN_GUARD_ERROR__SIG_VERIFICATION_FAILED
| typeof SINGLE_CHAIN_GUARD_ERROR__SYSTEM_PROGRAM_NOT_PROVIDED
| typeof SINGLE_CHAIN_GUARD_ERROR__TOKEN_OUT_ACCOUNT_NOT_PROVIDED
| typeof SINGLE_CHAIN_GUARD_ERROR__WRONG_ORDER
| typeof SINGLE_CHAIN_GUARD_ERROR__ZERO_AMOUNT
| typeof SINGLE_CHAIN_GUARD_ERROR__ZERO_AMOUNT_IN;
let singleChainGuardErrorMessages: Record<SingleChainGuardError, string> | undefined;
if (process.env.NODE_ENV !== 'production') {
singleChainGuardErrorMessages = {
[]: `Below minimum amount OUT`,
[]: `CPI call is not allowed`,
[]: `Expired deadline`,
[]: `Extra transfer account not provided`,
[]: `Fee transfer not allowed`,
[]: `Ed25519Program instruction`,
[]: `Interval is already fulfilled`,
[]: `Invalid DCA order`,
[]: `Invalid extra transfer account`,
[]: `Invalid Guard`,
[]: `Invalid interval duration`,
[]: `Invalid signer`,
[]: `Invalid permission`,
[]: `Account is not Admin`,
[]: `Account is not a Solver`,
[]: `Account is not a User`,
[]: `Account is not Pending Admin`,
[]: `Account is not upgrade authority`,
[]: `Secret hash mismatch`,
[]: `Signature verification failed`,
[]: `System program not provided`,
[]: `Token OUT account not provided`,
[]: `Wrong order`,
[]: `Amount must not be zero`,
[]: `Amount IN must not be zero`,
};
}
export function getSingleChainGuardErrorMessage(code: SingleChainGuardError): string {
if (process.env.NODE_ENV !== 'production') {
return (singleChainGuardErrorMessages as Record<SingleChainGuardError, string>)[code];
}
return 'Error message not available in production bundles.';
}
export function isSingleChainGuardError<TProgramErrorCode extends SingleChainGuardError>(
error: unknown,
transactionMessage: {
instructions: Record<number, { programAddress: Address }>;
},
code?: TProgramErrorCode,
): error is SolanaError<typeof SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM> &
Readonly<{ context: Readonly<{ code: TProgramErrorCode }> }> {
return isProgramError<TProgramErrorCode>(error, transactionMessage, SINGLE_CHAIN_GUARD_PROGRAM_ADDRESS, code);
}