UNPKG

@bluefin-exchange/bluefin-v2-client

Version:

The Bluefin client Library allows traders to sign, create, retrieve and listen to orders on Bluefin Exchange.

112 lines 6.27 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.VaultTVLInterval = exports.APIErrorMessages = exports.VerificationStatus = exports.SuccessMessages = exports.TransformToResponseSchema = exports.handleResponse = exports.LOCKED_ERROR_MESSAGE = void 0; const library_sui_1 = require("@firefly-exchange/library-sui"); const lockErrorRetryDelayMS = 2000; const lockErrorMaxRetries = 5; exports.LOCKED_ERROR_MESSAGE = "Failed to sign transaction by a quorum of validators because of locked objects"; const handleResponse = (response, ok, customMessage) => { const mutatedResponse = { ok, data: (0, library_sui_1.getValue)(response.data, "originalError.transaction", response.data), message: customMessage || (0, library_sui_1.getValue)(response.data, "originalError.reason", response.message), code: (0, library_sui_1.getValue)(response.data, "originalError.code", response.code), stack: response.message, }; return mutatedResponse; }; exports.handleResponse = handleResponse; const TransformToResponseSchema = (contactCall, successMessage, isSponsored) => __awaiter(void 0, void 0, void 0, function* () { for (let retryNo = 0; retryNo < lockErrorMaxRetries; retryNo++) { if (!isSponsored) { const tx = yield contactCall(); if (library_sui_1.Transaction.getStatus(tx) === "success") { return (0, exports.handleResponse)({ data: tx, message: successMessage, code: 200, }, true); } if (library_sui_1.Transaction.getError(tx)) { return (0, exports.handleResponse)({ data: tx, message: library_sui_1.Transaction.getError(tx), code: 400, }, false); } const errorMessage = tx.toString(); if (errorMessage.includes("MoveAbort") && errorMessage.includes("deposit_to_asset_bank") && errorMessage.includes("1030")) { return (0, exports.handleResponse)({ data: tx, message: tx, code: 400, }, false, "Minimum deposit to Pro is 1 USDC"); } return (0, exports.handleResponse)({ data: tx, message: tx, code: 400, }, false); } const res = yield contactCall(); const obj = { data: res, code: 200, message: "", ok: true, }; return obj; } }); exports.TransformToResponseSchema = TransformToResponseSchema; var SuccessMessages; (function (SuccessMessages) { SuccessMessages["adjustLeverage"] = "Leverage Adjusted to {leverage}x."; SuccessMessages["adjustMarginAdd"] = "{amount} USDC margin Added to position."; SuccessMessages["adjustMarginRemove"] = "{amount} USDC margin Removed from position."; SuccessMessages["withdrawMargin"] = "{amount} USDC withdrawn."; SuccessMessages["claimFundsFromVault"] = "{amount} claimed from vault."; SuccessMessages["claimRewardsFromRewardPool"] = "Rewards claimed from reward pool."; SuccessMessages["withdrawFundsFromVault"] = "{amount} {symbol} withdraw request sent to pool."; SuccessMessages["approveUSDC"] = "{amount} USDC approved."; SuccessMessages["depositToBank"] = "{amount} USDC deposited to Margin Bank."; SuccessMessages["depositToVault"] = "{amount} {symbol} deposited to pool."; SuccessMessages["setSubAccounts"] = "This {address} is successfully {status} as a subaccount"; SuccessMessages["transferCoins"] = "{balance} {coin} transferred to {walletAddress}"; SuccessMessages["swapAndDepositToPro"] = "Successfully swapped and deposited {amount} USDC to Pro."; SuccessMessages["withdrawAllSwapAndDepositToPro"] = "Successfully withdrew funds, swapped, and deposited {amount} USDC to Pro."; SuccessMessages["closedDelistedPositionsSwapAndDepositToPro"] = "Successfully closed remaining positions, swapped and deposited {amount} USDC to Pro."; SuccessMessages["closedDelistedPositionsAndWithdrawMargin"] = "Successfully closed remaining positions and withdrew {amount} margin."; SuccessMessages["closeDelistedPosition"] = "Successfully closed {symbol} position."; })(SuccessMessages || (exports.SuccessMessages = SuccessMessages = {})); var VerificationStatus; (function (VerificationStatus) { VerificationStatus["Success"] = "success"; VerificationStatus["Restricted"] = "restricted"; VerificationStatus["Blocked"] = "blocked"; })(VerificationStatus || (exports.VerificationStatus = VerificationStatus = {})); var APIErrorMessages; (function (APIErrorMessages) { // eslint-disable-next-line max-len APIErrorMessages["restrictedUser"] = "This wallet address has been identified as high-risk. You will not be able to open any new positions or deposit funds on the exchange. You may, however, close out any open positions and withdraw free collateral"; })(APIErrorMessages || (exports.APIErrorMessages = APIErrorMessages = {})); var VaultTVLInterval; (function (VaultTVLInterval) { VaultTVLInterval["DAY"] = "TWENTY_MINUTES"; VaultTVLInterval["WEEK"] = "THREE_HOURS"; VaultTVLInterval["MONTH"] = "TWELVE_HOURS"; VaultTVLInterval["ALL"] = "FOUR_DAYS"; })(VaultTVLInterval || (exports.VaultTVLInterval = VaultTVLInterval = {})); //# sourceMappingURL=contractErrorHandling.service.js.map