@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
JavaScript
;
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