UNPKG

@f5i23q999d/cow-sdk

Version:

<p align="center"> <img width="400" src="https://github.com/cowprotocol/cow-sdk/raw/main/docs/images/CoW.png" /> </p>

98 lines 4.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TradingSdk = void 0; const postSwapOrder_1 = require("./postSwapOrder.js"); const postLimitOrder_1 = require("./postLimitOrder.js"); const getQuote_1 = require("./getQuote.js"); const postSellNativeCurrencyOrder_1 = require("./postSellNativeCurrencyOrder.js"); const utils_1 = require("./utils.js"); const getPreSignTransaction_1 = require("./getPreSignTransaction.js"); const log_1 = require("../common/utils/log.js"); const wallet_1 = require("../common/utils/wallet.js"); class TradingSdk { traderParams; options; constructor(traderParams = {}, options = {}) { this.traderParams = traderParams; this.options = options; if (options.enableLogging !== undefined) { (0, log_1.enableLogging)(options.enableLogging); } } setTraderParams(params) { this.traderParams = { ...this.traderParams, ...params }; return this; } async getQuote(params, advancedSettings) { const quoteResults = await (0, getQuote_1.getQuoteWithSigner)(this.mergeParams(params), advancedSettings, this.options.orderBookApi); return { quoteResults: quoteResults.result, postSwapOrderFromQuote: (advancedSettings) => (0, postSwapOrder_1.postSwapOrderFromQuote)({ ...quoteResults, result: { ...quoteResults.result, tradeParameters: (0, utils_1.getTradeParametersAfterQuote)({ quoteParameters: quoteResults.result.tradeParameters, orderParameters: params, }), }, }, advancedSettings), }; } async getQuoteResults(params, advancedSettings) { return (0, getQuote_1.getQuoteWithSigner)(this.mergeParams(params), advancedSettings, this.options.orderBookApi); } async postSwapOrder(params, advancedSettings) { return (0, postSwapOrder_1.postSwapOrder)(this.mergeParams(params), advancedSettings, this.options.orderBookApi); } async postLimitOrder(params, advancedSettings) { return (0, postLimitOrder_1.postLimitOrder)(this.mergeParams(params), advancedSettings, this.options.orderBookApi); } async postSellNativeCurrencyOrder(params, advancedSettings) { const quoteResults = await (0, getQuote_1.getQuoteWithSigner)(this.mergeParams(params), advancedSettings, this.options.orderBookApi); const { tradeParameters, quoteResponse } = quoteResults.result; return (0, postSellNativeCurrencyOrder_1.postSellNativeCurrencyOrder)(quoteResults.orderBookApi, quoteResults.result.signer, quoteResults.result.appDataInfo, // Quote response response always has an id // eslint-disable-next-line @typescript-eslint/no-non-null-assertion (0, utils_1.swapParamsToLimitOrderParams)((0, utils_1.getTradeParametersAfterQuote)({ quoteParameters: tradeParameters, orderParameters: params }), quoteResponse), advancedSettings?.additionalParams); } async getPreSignTransaction(params) { const traderParams = this.mergeParams(params); const signer = (0, wallet_1.getSigner)(traderParams.signer); return (0, getPreSignTransaction_1.getPreSignTransaction)(signer, traderParams.chainId, params.account, params.orderId); } mergeParams(params) { const { chainId, signer, appCode, env } = params; const traderParams = { chainId: chainId || this.traderParams.chainId, signer: signer || this.traderParams.signer, appCode: appCode || this.traderParams.appCode, env: env || this.traderParams.env, }; assertTraderParams(traderParams); return { ...params, ...traderParams, }; } } exports.TradingSdk = TradingSdk; function assertTraderParams(params) { if (!isTraderParameters(params)) { throw new Error('Missing trader parameters: ' + getMissingTraderParams(params).join(', ')); } } function getMissingTraderParams(params) { const missingParams = []; if (!params.chainId) missingParams.push('chainId'); if (!params.signer) missingParams.push('signer'); if (!params.appCode) missingParams.push('appCode'); return missingParams; } function isTraderParameters(params) { return getMissingTraderParams(params).length === 0; } //# sourceMappingURL=tradingSdk.js.map