UNPKG

xud

Version:
94 lines 4.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const grpc_1 = require("grpc"); const errors_1 = require("../lndclient/errors"); const errors_2 = require("../orderbook/errors"); const errors_3 = require("../p2p/errors"); const errors_4 = require("../service/errors"); const errors_5 = require("../swaps/errors"); const errors_6 = require("../connextclient/errors"); /** * Convert an internal xud error type into a gRPC error. * @param err an error object that should have code and message properties * @return a gRPC error with a gRPC status code */ const getGrpcError = (err) => { var _a, _b; // if we recognize this error, use a proper gRPC ServiceError with a descriptive and appropriate code let code; switch (err.code) { case errors_4.errorCodes.INVALID_ARGUMENT: case errors_3.errorCodes.ATTEMPTED_CONNECTION_TO_SELF: case errors_3.errorCodes.UNEXPECTED_NODE_PUB_KEY: case errors_3.errorCodes.NODE_TOR_ADDRESS: case errors_2.errorCodes.MIN_QUANTITY_VIOLATED: case errors_2.errorCodes.QUANTITY_DOES_NOT_MATCH: case errors_5.errorCodes.REMOTE_IDENTIFIER_MISSING: case errors_2.errorCodes.DUPLICATE_PAIR_CURRENCIES: code = grpc_1.status.INVALID_ARGUMENT; break; case errors_2.errorCodes.PAIR_DOES_NOT_EXIST: case errors_3.errorCodes.NODE_UNKNOWN: case errors_3.errorCodes.UNKNOWN_ALIAS: case errors_2.errorCodes.LOCAL_ID_DOES_NOT_EXIST: case errors_2.errorCodes.ORDER_NOT_FOUND: code = grpc_1.status.NOT_FOUND; break; case errors_2.errorCodes.DUPLICATE_ORDER: case errors_3.errorCodes.NODE_ALREADY_CONNECTED: case errors_3.errorCodes.NODE_ALREADY_BANNED: case errors_3.errorCodes.ALREADY_CONNECTING: case errors_2.errorCodes.CURRENCY_ALREADY_EXISTS: case errors_2.errorCodes.PAIR_ALREADY_EXISTS: code = grpc_1.status.ALREADY_EXISTS; break; case errors_6.errorCodes.INSUFFICIENT_BALANCE: case errors_6.errorCodes.INSUFFICIENT_COLLATERAL: case errors_3.errorCodes.NOT_CONNECTED: case errors_3.errorCodes.NODE_NOT_BANNED: case errors_3.errorCodes.NODE_IS_BANNED: case errors_1.errorCodes.DISABLED: case errors_2.errorCodes.CURRENCY_DOES_NOT_EXIST: case errors_2.errorCodes.CURRENCY_CANNOT_BE_REMOVED: case errors_2.errorCodes.MARKET_ORDERS_NOT_ALLOWED: case errors_4.errorCodes.NOMATCHING_MODE_IS_REQUIRED: case errors_5.errorCodes.INSUFFICIENT_OUTBOUND_CAPACITY: case errors_5.errorCodes.INSUFFICIENT_INBOUND_CAPACITY: case errors_2.errorCodes.QUANTITY_ON_HOLD: case errors_5.errorCodes.SWAP_CLIENT_NOT_FOUND: case errors_5.errorCodes.SWAP_CLIENT_MISCONFIGURED: case errors_4.errorCodes.NO_CHANNELS_TO_CLOSE: code = grpc_1.status.FAILED_PRECONDITION; break; case errors_1.errorCodes.UNAVAILABLE: case errors_3.errorCodes.COULD_NOT_CONNECT: code = grpc_1.status.UNAVAILABLE; break; case errors_4.errorCodes.PENDING_CALL_CONFLICT: code = grpc_1.status.RESOURCE_EXHAUSTED; break; case errors_4.errorCodes.NODE_ALREADY_EXISTS: case errors_4.errorCodes.NODE_DOES_NOT_EXIST: case errors_4.errorCodes.NO_ENCRYPT_MODE_ENABLED: code = grpc_1.status.UNIMPLEMENTED; break; case errors_3.errorCodes.POOL_CLOSED: code = grpc_1.status.ABORTED; break; case errors_3.errorCodes.RESPONSE_TIMEOUT: code = grpc_1.status.DEADLINE_EXCEEDED; break; case errors_5.errorCodes.SWAP_CLIENT_WALLET_NOT_CREATED: code = grpc_1.status.INTERNAL; break; } // return a grpc error with the code if we've assigned one, otherwise pass along the caught error as UNKNOWN const grpcError = { code: code !== null && code !== void 0 ? code : grpc_1.status.UNKNOWN, message: (_a = err.message) !== null && _a !== void 0 ? _a : (typeof err === 'string' ? err : ''), name: (_b = err.name) !== null && _b !== void 0 ? _b : 'UnknownError', }; return grpcError; }; exports.default = getGrpcError; //# sourceMappingURL=getGrpcError.js.map