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>

45 lines 2.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.postLimitOrder = void 0; const order_book_1 = require("../order-book/index.js"); const appDataUtils_1 = require("./appDataUtils.js"); const postCoWProtocolTrade_1 = require("./postCoWProtocolTrade.js"); const wallet_1 = require("../common/utils/wallet.js"); const log_1 = require("../common/utils/log.js"); async function postLimitOrder(params, advancedSettings, _orderBookApi) { const appDataSlippage = advancedSettings?.appData?.metadata?.quote?.slippageBips; const partnerFeeOverride = advancedSettings?.appData?.metadata?.partnerFee; /** * Special case for CoW Swap where we have smart slippage * We update appData slippage without refetching quote */ if (typeof appDataSlippage !== 'undefined') { params.slippageBps = appDataSlippage; } /** * Same as above, in case if partnerFee dynamically changed */ if (partnerFeeOverride) { params.partnerFee = partnerFeeOverride; } if (!params.slippageBps) { params.slippageBps = 0; } if (!params.env) { params.env = 'prod'; } const { appCode, chainId, sellToken, buyToken, sellAmount, buyAmount, partnerFee } = params; (0, log_1.log)(`Limit order ${sellAmount} ${sellToken} for ${buyAmount} ${buyToken} on chain ${chainId}`); const signer = (0, wallet_1.getSigner)(params.signer); const orderBookApi = _orderBookApi || new order_book_1.OrderBookApi({ chainId, env: params.env }); (0, log_1.log)('Building app data...'); const appDataInfo = await (0, appDataUtils_1.buildAppData)({ slippageBps: params.slippageBps, orderClass: 'limit', appCode, partnerFee, }, advancedSettings?.appData); return (0, postCoWProtocolTrade_1.postCoWProtocolTrade)(orderBookApi, signer, appDataInfo, params, advancedSettings?.additionalParams); } exports.postLimitOrder = postLimitOrder; //# sourceMappingURL=postLimitOrder.js.map