@parcl-finance/product-sdk
Version:
TypeScript SDK for interacting with Parcl's product APIs
72 lines • 2.77 kB
JavaScript
;
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