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