RebelfiError
Copy
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
Copy
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
Copy
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
Copy
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',
}