I would like to discuss the idea of mapping error codes into error types.
In my TypeScript application I created an enum list for that purpose:
enum BinanceErrorCode {
UNKNOWN = -1000,
DISCONNECTED = -1001,
UNAUTHORIZED = -1002,
TOO_MANY_REQUESTS = -1003,
UNEXPECTED_RESP = -1006,
TIMEOUT = -1007,
INVALID_MESSAGE = -1013,
UNKNOWN_ORDER_COMPOSITION = -1014,
TOO_MANY_ORDERS = -1015,
SERVICE_SHUTTING_DOWN = -1016,
UNSUPPORTED_OPERATION = -1020,
INVALID_TIMESTAMP = -1021,
INVALID_SIGNATURE = -1022,
ILLEGAL_CHARS = -1100,
TOO_MANY_PARAMETERS = -1101,
MANDATORY_PARAM_EMPTY_OR_MALFORMED = -1102,
UNKNOWN_PARAM = -1103,
UNREAD_PARAMETERS = -1104,
PARAM_EMPTY = -1105,
PARAM_NOT_REQUIRED = -1106,
NO_DEPTH = -1112,
TIF_NOT_REQUIRED = -1114,
INVALID_TIF = -1115,
INVALID_ORDER_TYPE = -1116,
INVALID_SIDE = -1117,
EMPTY_NEW_CL_ORD_ID = -1118,
EMPTY_ORG_CL_ORD_ID = -1119,
BAD_INTERVAL = -1120,
BAD_SYMBOL = -1121,
INVALID_LISTEN_KEY = -1125,
MORE_THAN_XX_HOURS = -1127,
OPTIONAL_PARAMS_BAD_COMBO = -1128,
INVALID_PARAMETER = -1130,
BAD_API_ID = -2008,
DUPLICATE_API_KEY_DESC = -2009,
INSUFFICIENT_BALANCE = -2010,
CANCEL_ALL_FAIL = -2012,
NO_SUCH_ORDER = -2013,
BAD_API_KEY_FMT = -2014,
REJECTED_MBX_KEY = -2015,
}
export default BinanceErrorCode
With binance-api-node v0.7.1 it gives me the ability to do the following:
if (error.code === BinanceErrorCode.INSUFFICIENT_BALANCE) {
this.logger.warn(`Operation "SELL" for symbol "${pair.asString()}" failed. Account has insufficient balance."`)
}
Instead of maintaining my own enum list it would be great if we can expose something like this from "binance-api-node". We would need to find a smart way on how to export such list of codes.
Telling from the error documentation there should be also -9xxx error codes which I haven't seen in production yet. The docs state that these are being used for filter errors such as LOT_SIZE but I get error message "Filter failure: LOT_SIZE" along with error code "-1013" (INVALID_MESSAGE). 🐺
I would like to discuss the idea of mapping error codes into error types.
In my TypeScript application I created an enum list for that purpose:
With binance-api-node v0.7.1 it gives me the ability to do the following:
Instead of maintaining my own enum list it would be great if we can expose something like this from "binance-api-node". We would need to find a smart way on how to export such list of codes.
Telling from the error documentation there should be also
-9xxxerror codes which I haven't seen in production yet. The docs state that these are being used for filter errors such asLOT_SIZEbut I get error message "Filter failure: LOT_SIZE" along with error code "-1013" (INVALID_MESSAGE). 🐺