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>

51 lines 2.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.mergeAppDataDoc = exports.generateAppDataFromDoc = exports.buildAppData = void 0; const tslib_1 = require("tslib"); const app_data_1 = require("@cowprotocol/app-data"); const utils_1 = require("ethers/lib/utils"); const deepmerge_1 = tslib_1.__importDefault(require("deepmerge")); const metadataApiSdk = new app_data_1.MetadataApi(); async function buildAppData({ slippageBps, appCode, orderClass: orderClassName, partnerFee }, advancedParams) { const quoteParams = { slippageBips: slippageBps }; const orderClass = { orderClass: orderClassName }; const doc = await metadataApiSdk.generateAppDataDoc((0, deepmerge_1.default)({ appCode, metadata: { quote: quoteParams, orderClass, partnerFee, }, }, advancedParams || {})); const { fullAppData, appDataKeccak256 } = await generateAppDataFromDoc(doc); return { doc, fullAppData, appDataKeccak256 }; } exports.buildAppData = buildAppData; async function generateAppDataFromDoc(doc) { const fullAppData = await (0, app_data_1.stringifyDeterministic)(doc); const appDataKeccak256 = (0, utils_1.keccak256)((0, utils_1.toUtf8Bytes)(fullAppData)); return { fullAppData, appDataKeccak256 }; } exports.generateAppDataFromDoc = generateAppDataFromDoc; async function mergeAppDataDoc(_doc, appDataOverride) { // Do not merge hooks if there are overrides // Otherwise we will just append hooks instead of overriding const doc = appDataOverride.metadata?.hooks ? { ..._doc, metadata: { ..._doc.metadata, hooks: {}, }, } : _doc; const appData = (appDataOverride ? (0, deepmerge_1.default)(doc, appDataOverride) : doc); const { fullAppData, appDataKeccak256 } = await generateAppDataFromDoc(appData); return { fullAppData, appDataKeccak256, doc: appData, }; } exports.mergeAppDataDoc = mergeAppDataDoc; //# sourceMappingURL=appDataUtils.js.map