Skip to main content

RebelfiError

class RebelfiError extends Error {
  constructor(
    message: string,
    public readonly statusCode: number,
    public readonly code?: ErrorCode | string,
    public readonly details?: Record<string, unknown>
  );

  /** Check if error matches a specific code */
  is(code: ErrorCode): boolean;
}

Usage

import { RebelfiError, ErrorCode } from '@rebelfi/sdk';

try {
  await client.operations.supply(request);
} catch (error) {
  if (error instanceof RebelfiError) {
    if (error.is(ErrorCode.INSUFFICIENT_BALANCE)) {
      console.error('Available:', error.details?.available);
    }
  }
}

ErrorCode Enum

enum ErrorCode {
  // Validation
  INVALID_AMOUNT = 'INVALID_AMOUNT',
  INVALID_ADDRESS = 'INVALID_ADDRESS',
  INVALID_TOKEN = 'INVALID_TOKEN',

  // Business logic
  INSUFFICIENT_BALANCE = 'INSUFFICIENT_BALANCE',
  STRATEGY_NOT_ACTIVE = 'STRATEGY_NOT_ACTIVE',
  ALLOCATION_NOT_FOUND = 'ALLOCATION_NOT_FOUND',
  OPERATION_EXPIRED = 'OPERATION_EXPIRED',
  OPERATION_ALREADY_SUBMITTED = 'OPERATION_ALREADY_SUBMITTED',
  TOKEN_MISMATCH = 'TOKEN_MISMATCH',
  INVALID_OPERATION_STATUS = 'INVALID_OPERATION_STATUS',
  OPERATION_IN_PROGRESS = 'OPERATION_IN_PROGRESS',

  // Resources
  VENUE_NOT_FOUND = 'VENUE_NOT_FOUND',
  STRATEGY_NOT_FOUND = 'STRATEGY_NOT_FOUND',
  OPERATION_NOT_FOUND = 'OPERATION_NOT_FOUND',
  TRANSACTION_NOT_FOUND = 'TRANSACTION_NOT_FOUND',
  WALLET_NOT_FOUND = 'WALLET_NOT_FOUND',
  ORGANIZATION_NOT_FOUND = 'ORGANIZATION_NOT_FOUND',
  TOKEN_NOT_FOUND = 'TOKEN_NOT_FOUND',

  // Simulation
  INSUFFICIENT_GAS = 'INSUFFICIENT_GAS',
  SIMULATION_FAILED = 'SIMULATION_FAILED',

  // Client
  INVALID_API_KEY = 'INVALID_API_KEY',
  API_KEY_DISABLED = 'API_KEY_DISABLED',
  RATE_LIMIT_EXCEEDED = 'RATE_LIMIT_EXCEEDED',
  TIMEOUT = 'TIMEOUT',
  NETWORK_ERROR = 'NETWORK_ERROR',
  UNKNOWN_ERROR = 'UNKNOWN_ERROR',
}

TransactionFailureCode Enum

enum TransactionFailureCode {
  REVERTED = 'REVERTED',
  OUT_OF_GAS = 'OUT_OF_GAS',
  TIMEOUT = 'TIMEOUT',
  NONCE_TOO_LOW = 'NONCE_TOO_LOW',
  INSUFFICIENT_FUNDS = 'INSUFFICIENT_FUNDS',
  REPLACED = 'REPLACED',
  DROPPED = 'DROPPED',
  UNKNOWN = 'UNKNOWN',
}