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>

52 lines 2.53 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.postCoWProtocolTrade = void 0; const order_book_1 = require("../order-book/index.js"); const consts_1 = require("./consts.js"); const order_signing_1 = require("../order-signing/index.js"); const getOrderToSign_1 = require("./getOrderToSign.js"); const postSellNativeCurrencyOrder_1 = require("./postSellNativeCurrencyOrder.js"); const utils_1 = require("./utils.js"); const log_1 = require("../common/utils/log.js"); async function postCoWProtocolTrade(orderBookApi, signer, appData, params, additionalParams = {}) { const { networkCostsAmount = '0', signingScheme: _signingScheme = order_book_1.SigningScheme.EIP712 } = additionalParams; if ((0, utils_1.getIsEthFlowOrder)(params)) { const quoteId = params.quoteId; if (typeof quoteId === 'number') { return (0, postSellNativeCurrencyOrder_1.postSellNativeCurrencyOrder)(orderBookApi, signer, appData, { ...params, quoteId }, additionalParams); } else { throw new Error('quoteId is required for EthFlow orders'); } } const { quoteId = null, owner } = params; const { appDataKeccak256, fullAppData } = appData; const chainId = orderBookApi.context.chainId; const from = owner || (await signer.getAddress()); const orderToSign = (0, getOrderToSign_1.getOrderToSign)({ from, networkCostsAmount }, params, appData.appDataKeccak256); (0, log_1.log)('Signing order...'); const { signature, signingScheme } = await (async () => { if (_signingScheme === order_book_1.SigningScheme.PRESIGN) { return { signature: from, signingScheme: order_book_1.SigningScheme.PRESIGN }; } else { const signingResult = await order_signing_1.OrderSigningUtils.signOrder(orderToSign, chainId, signer); return { signature: signingResult.signature, signingScheme: consts_1.SIGN_SCHEME_MAP[signingResult.signingScheme] }; } })(); const orderBody = { ...orderToSign, from, signature, signingScheme, quoteId, appData: fullAppData, appDataHash: appDataKeccak256, }; (0, log_1.log)('Posting order...'); const orderId = await orderBookApi.sendOrder(orderBody); (0, log_1.log)(`Order created, id: ${orderId}`); return { orderId, signature, signingScheme, orderToSign }; } exports.postCoWProtocolTrade = postCoWProtocolTrade; //# sourceMappingURL=postCoWProtocolTrade.js.map