Error Codes Reference
Table of Contents
Error Handling Overview
import {
ThetanutsError,
isThetanutsError,
ContractRevertError,
InsufficientAllowanceError,
OrderExpiredError,
KeyNotFoundError,
InvalidKeyError,
EncryptionError,
DecryptionError,
} from '@thetanuts-finance/thetanuts-client';
try {
await client.optionBook.fillOrder(order);
} catch (error) {
// Option 1: Check error code
if (isThetanutsError(error)) {
switch (error.code) {
case 'INSUFFICIENT_ALLOWANCE':
console.log('Need to approve tokens first');
break;
case 'ORDER_EXPIRED':
console.log('Order has expired');
break;
}
}
// Option 2: Use instanceof for typed handling
if (error instanceof InsufficientAllowanceError) {
await client.erc20.approve(token, spender, amount);
// Retry...
}
if (error instanceof OrderExpiredError) {
const freshOrders = await client.api.fetchOrders();
// Retry with fresh order...
}
}SDK Error Codes
Code
Description
Typical Cause
Error Classes
Base Class
API Errors
Contract Errors
Client Errors
RFQ Key Errors
Error Class
Code
Description
Contract Revert Reasons
OptionFactory Contract
Revert Reason
Cause
Solution
OptionBook Contract
Revert Reason
Cause
Solution
ERC20 Errors
Revert Reason
Cause
Solution
Option Contract
Revert Reason
Cause
Solution
Common Issues & Solutions
Issue 1: INSUFFICIENT_ALLOWANCE
Issue 2: ORDER_EXPIRED
Issue 3: SIGNER_REQUIRED
Issue 4: RFQ collateralAmount Error
Issue 5: Strike Precision Errors
Issue 6: Rate Limiting
Issue 7: WebSocket Disconnection
Issue 8: KEY_NOT_FOUND Error
Issue 9: DECRYPTION_FAILED Error
Issue 10: INVALID_KEY Error
Issue 11: ENCRYPTION_FAILED Error
Debugging Tips
1. Enable Debug Logging
2. Inspect Error Details
3. Verify Contract State
4. Verify Token State
5. Use callStatic for Simulation
6. Check Gas Estimation
See Also
Last updated

