UNPKG

@parcl-finance/product-sdk

Version:

TypeScript SDK for interacting with Parcl's product APIs

72 lines 2.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Quote = void 0; const utils_1 = require("./utils"); const httpClient_1 = require("./httpClient"); class Quote { baseUrl; headers; client; constructor(baseUrl, accessToken) { const headers = {}; if (accessToken !== undefined) { headers["Authorization"] = "Bearer " + accessToken; } this.headers = headers; this.baseUrl = baseUrl.concat("/quote"); this.client = new httpClient_1.HttpClient(this.baseUrl, this.headers); } async getAddLiquidityQuote(params) { const { quote } = await this.client.get({ path: "/add-liquidity", params: { ...params, input: (0, utils_1.parseCollateralAmount)(params.input) }, }); return (0, utils_1.formatAddLiquidityQuote)(quote); } async getRemoveLiquidityQuote(params) { const { quote } = await this.client.get({ path: "/remove-liquidity", params: { ...params, input: (0, utils_1.parseCollateralAmount)(params.input) }, }); return (0, utils_1.formatRemoveLiquidityQuote)(quote); } async getWithdrawMarginQuote(params) { const { quote } = await this.client.get({ path: "/withdraw-margin", params, }); return { maxWithdrawableAmount: (0, utils_1.formatCollateralAmount)(quote.maxWithdrawableAmount) }; } async getModifyPositionQuote(payload, params) { // all inputs must be gt 0 (0, utils_1.validateModifyPositionInput)(payload.input); const input = (0, utils_1.parseModifyPositionInput)(payload.input, payload.inputKind); const { quote } = await this.client.post({ path: "modify-position", params, body: { ...payload, input }, }); return (0, utils_1.formatModifyPositionQuote)(quote); } async getClosePositionQuote(payload, params) { // all inputs must be gt 0 (0, utils_1.validateClosePositionInput)(payload.input); const input = (0, utils_1.parseClosePositionInput)(payload.input, payload.inputKind); const { quote } = await this.client.post({ path: "close-position", params, body: { ...payload, input }, }); return (0, utils_1.formatModifyPositionQuote)(quote); } async getPositionModificationLimitsQuote(payload, params) { const { quote } = await this.client.post({ path: "position-modification-limits", params, body: payload, }); return (0, utils_1.formatPositionModificationLimitsQuote)(quote); } } exports.Quote = Quote; //# sourceMappingURL=quote.js.map