-
-
Notifications
You must be signed in to change notification settings - Fork 290
Expand file tree
/
Copy pathperpsErrorCodes.ts
More file actions
81 lines (80 loc) · 3.59 KB
/
Copy pathperpsErrorCodes.ts
File metadata and controls
81 lines (80 loc) · 3.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/**
* Error codes for PerpsController
* These codes are returned to the UI layer for translation
* Extracted to separate file to avoid circular dependencies with translatePerpsError
*/
export const PERPS_ERROR_CODES = {
CLIENT_NOT_INITIALIZED: 'CLIENT_NOT_INITIALIZED',
CLIENT_REINITIALIZING: 'CLIENT_REINITIALIZING',
PROVIDER_NOT_AVAILABLE: 'PROVIDER_NOT_AVAILABLE',
TOKEN_NOT_SUPPORTED: 'TOKEN_NOT_SUPPORTED',
BRIDGE_CONTRACT_NOT_FOUND: 'BRIDGE_CONTRACT_NOT_FOUND',
WITHDRAW_FAILED: 'WITHDRAW_FAILED',
POSITIONS_FAILED: 'POSITIONS_FAILED',
ACCOUNT_STATE_FAILED: 'ACCOUNT_STATE_FAILED',
MARKETS_FAILED: 'MARKETS_FAILED',
UNKNOWN_ERROR: 'UNKNOWN_ERROR',
// Provider-agnostic order errors
ORDER_LEVERAGE_REDUCTION_FAILED: 'ORDER_LEVERAGE_REDUCTION_FAILED',
// HyperLiquid-specific order errors
IOC_CANCEL: 'IOC_CANCEL', // Order could not immediately match (insufficient liquidity)
// Connection errors
CONNECTION_TIMEOUT: 'CONNECTION_TIMEOUT',
// Validation errors - withdraw
WITHDRAW_ASSET_ID_REQUIRED: 'WITHDRAW_ASSET_ID_REQUIRED',
WITHDRAW_AMOUNT_REQUIRED: 'WITHDRAW_AMOUNT_REQUIRED',
WITHDRAW_AMOUNT_POSITIVE: 'WITHDRAW_AMOUNT_POSITIVE',
WITHDRAW_INVALID_DESTINATION: 'WITHDRAW_INVALID_DESTINATION',
WITHDRAW_ASSET_NOT_SUPPORTED: 'WITHDRAW_ASSET_NOT_SUPPORTED',
WITHDRAW_INSUFFICIENT_BALANCE: 'WITHDRAW_INSUFFICIENT_BALANCE',
// Validation errors - deposit
DEPOSIT_ASSET_ID_REQUIRED: 'DEPOSIT_ASSET_ID_REQUIRED',
DEPOSIT_AMOUNT_REQUIRED: 'DEPOSIT_AMOUNT_REQUIRED',
DEPOSIT_AMOUNT_POSITIVE: 'DEPOSIT_AMOUNT_POSITIVE',
DEPOSIT_MINIMUM_AMOUNT: 'DEPOSIT_MINIMUM_AMOUNT',
// Validation errors - order
ORDER_COIN_REQUIRED: 'ORDER_COIN_REQUIRED',
ORDER_LIMIT_PRICE_REQUIRED: 'ORDER_LIMIT_PRICE_REQUIRED',
ORDER_PRICE_POSITIVE: 'ORDER_PRICE_POSITIVE',
ORDER_UNKNOWN_COIN: 'ORDER_UNKNOWN_COIN',
ORDER_SIZE_POSITIVE: 'ORDER_SIZE_POSITIVE',
ORDER_PRICE_REQUIRED: 'ORDER_PRICE_REQUIRED',
ORDER_SIZE_MIN: 'ORDER_SIZE_MIN',
ORDER_LEVERAGE_INVALID: 'ORDER_LEVERAGE_INVALID',
ORDER_LEVERAGE_BELOW_POSITION: 'ORDER_LEVERAGE_BELOW_POSITION',
ORDER_MAX_VALUE_EXCEEDED: 'ORDER_MAX_VALUE_EXCEEDED',
// HyperLiquid client/service errors
EXCHANGE_CLIENT_NOT_AVAILABLE: 'EXCHANGE_CLIENT_NOT_AVAILABLE',
INFO_CLIENT_NOT_AVAILABLE: 'INFO_CLIENT_NOT_AVAILABLE',
SUBSCRIPTION_CLIENT_NOT_AVAILABLE: 'SUBSCRIPTION_CLIENT_NOT_AVAILABLE',
// Wallet/account errors
NO_ACCOUNT_SELECTED: 'NO_ACCOUNT_SELECTED',
KEYRING_LOCKED: 'KEYRING_LOCKED',
INVALID_ADDRESS_FORMAT: 'INVALID_ADDRESS_FORMAT',
// Transfer/swap errors
TRANSFER_FAILED: 'TRANSFER_FAILED',
SWAP_FAILED: 'SWAP_FAILED',
SPOT_PAIR_NOT_FOUND: 'SPOT_PAIR_NOT_FOUND',
PRICE_UNAVAILABLE: 'PRICE_UNAVAILABLE',
// Market/collateral errors
UNSUPPORTED_COLLATERAL: 'UNSUPPORTED_COLLATERAL', // DEX collateral token is not USDC (TAT-3304)
// Batch operation errors
BATCH_CANCEL_FAILED: 'BATCH_CANCEL_FAILED',
BATCH_CLOSE_FAILED: 'BATCH_CLOSE_FAILED',
// Position/margin errors
INSUFFICIENT_MARGIN: 'INSUFFICIENT_MARGIN',
INSUFFICIENT_BALANCE: 'INSUFFICIENT_BALANCE',
REDUCE_ONLY_VIOLATION: 'REDUCE_ONLY_VIOLATION',
POSITION_WOULD_FLIP: 'POSITION_WOULD_FLIP',
MARGIN_ADJUSTMENT_FAILED: 'MARGIN_ADJUSTMENT_FAILED',
TPSL_UPDATE_FAILED: 'TPSL_UPDATE_FAILED',
// Order execution errors
ORDER_REJECTED: 'ORDER_REJECTED',
SLIPPAGE_EXCEEDED: 'SLIPPAGE_EXCEEDED',
RATE_LIMIT_EXCEEDED: 'RATE_LIMIT_EXCEEDED',
// Network/service errors
SERVICE_UNAVAILABLE: 'SERVICE_UNAVAILABLE',
NETWORK_ERROR: 'NETWORK_ERROR',
} as const;
export type PerpsErrorCode =
(typeof PERPS_ERROR_CODES)[keyof typeof PERPS_ERROR_CODES];