@cowprotocol/sdk-trading 0.5.3 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -389,6 +389,16 @@ interface SuggestSlippageBps {
389
389
  */
390
390
  declare function suggestSlippageBps(params: SuggestSlippageBps): number;
391
391
 
392
+ /**
393
+ * Get default UTM parameters for developer attribution tracking
394
+ */
395
+ declare function getDefaultUtmParams(): {
396
+ utmCampaign: string;
397
+ utmContent: string;
398
+ utmMedium: string;
399
+ utmSource: string;
400
+ utmTerm: string;
401
+ };
392
402
  declare function buildAppData({ slippageBps, appCode, orderClass: orderClassName, partnerFee }: BuildAppDataParams, advancedParams?: AppDataParams): Promise<TradingAppDataInfo>;
393
403
  declare function generateAppDataFromDoc(doc: AppDataRootSchema): Promise<Pick<TradingAppDataInfo, 'fullAppData' | 'appDataKeccak256'>>;
394
404
  declare function mergeAppDataDoc(_doc: LatestAppDataDocVersion, appDataOverride: AppDataParams): Promise<TradingAppDataInfo>;
@@ -408,4 +418,4 @@ declare function getTradeParametersAfterQuote({ quoteParameters, sellToken, }: {
408
418
  sellToken: string;
409
419
  }): TradeParameters;
410
420
 
411
- export { type AppDataRootSchema, type BuildAppDataParams, type EthFlowOrderExistsCallback, type LimitOrderAdvancedSettings, type LimitOrderParameters, type LimitTradeParameters, type LimitTradeParametersFromQuote, type OrderPostingResult, type OrderTraderParams, type OrderTypedData, type PostTradeAdditionalParams, type QuoteAndPost, type QuoteResults, type QuoteResultsSerialized, type QuoteResultsWithSigner, type QuoterParameters, type SigningStepManager, type SlippageToleranceRequest, type SlippageToleranceResponse, type SwapAdvancedSettings, type SwapParameters, type TradeBaseParameters, type TradeOptionalParameters, type TradeParameters, type TraderParameters, type TradingAppDataInfo, TradingSdk, type TradingSdkOptions, type TradingTransactionParams, type WithPartialTraderParams, buildAppData, calculateUniqueOrderId, generateAppDataFromDoc, getEthFlowContract, getEthFlowTransaction, getOrderToSign, getPartnerFeeBps, getPreSignTransaction, getQuote, getQuoteWithSigner, getTradeParametersAfterQuote, mapQuoteAmountsAndCosts, mergeAppDataDoc, postCoWProtocolTrade, postLimitOrder, postSellNativeCurrencyOrder, postSwapOrder, postSwapOrderFromQuote, suggestSlippageBps, swapParamsToLimitOrderParams };
421
+ export { type AppDataRootSchema, type BuildAppDataParams, type EthFlowOrderExistsCallback, type LimitOrderAdvancedSettings, type LimitOrderParameters, type LimitTradeParameters, type LimitTradeParametersFromQuote, type OrderPostingResult, type OrderTraderParams, type OrderTypedData, type PostTradeAdditionalParams, type QuoteAndPost, type QuoteResults, type QuoteResultsSerialized, type QuoteResultsWithSigner, type QuoterParameters, type SigningStepManager, type SlippageToleranceRequest, type SlippageToleranceResponse, type SwapAdvancedSettings, type SwapParameters, type TradeBaseParameters, type TradeOptionalParameters, type TradeParameters, type TraderParameters, type TradingAppDataInfo, TradingSdk, type TradingSdkOptions, type TradingTransactionParams, type WithPartialTraderParams, buildAppData, calculateUniqueOrderId, generateAppDataFromDoc, getDefaultUtmParams, getEthFlowContract, getEthFlowTransaction, getOrderToSign, getPartnerFeeBps, getPreSignTransaction, getQuote, getQuoteWithSigner, getTradeParametersAfterQuote, mapQuoteAmountsAndCosts, mergeAppDataDoc, postCoWProtocolTrade, postLimitOrder, postSellNativeCurrencyOrder, postSwapOrder, postSwapOrderFromQuote, suggestSlippageBps, swapParamsToLimitOrderParams };
package/dist/index.d.ts CHANGED
@@ -389,6 +389,16 @@ interface SuggestSlippageBps {
389
389
  */
390
390
  declare function suggestSlippageBps(params: SuggestSlippageBps): number;
391
391
 
392
+ /**
393
+ * Get default UTM parameters for developer attribution tracking
394
+ */
395
+ declare function getDefaultUtmParams(): {
396
+ utmCampaign: string;
397
+ utmContent: string;
398
+ utmMedium: string;
399
+ utmSource: string;
400
+ utmTerm: string;
401
+ };
392
402
  declare function buildAppData({ slippageBps, appCode, orderClass: orderClassName, partnerFee }: BuildAppDataParams, advancedParams?: AppDataParams): Promise<TradingAppDataInfo>;
393
403
  declare function generateAppDataFromDoc(doc: AppDataRootSchema): Promise<Pick<TradingAppDataInfo, 'fullAppData' | 'appDataKeccak256'>>;
394
404
  declare function mergeAppDataDoc(_doc: LatestAppDataDocVersion, appDataOverride: AppDataParams): Promise<TradingAppDataInfo>;
@@ -408,4 +418,4 @@ declare function getTradeParametersAfterQuote({ quoteParameters, sellToken, }: {
408
418
  sellToken: string;
409
419
  }): TradeParameters;
410
420
 
411
- export { type AppDataRootSchema, type BuildAppDataParams, type EthFlowOrderExistsCallback, type LimitOrderAdvancedSettings, type LimitOrderParameters, type LimitTradeParameters, type LimitTradeParametersFromQuote, type OrderPostingResult, type OrderTraderParams, type OrderTypedData, type PostTradeAdditionalParams, type QuoteAndPost, type QuoteResults, type QuoteResultsSerialized, type QuoteResultsWithSigner, type QuoterParameters, type SigningStepManager, type SlippageToleranceRequest, type SlippageToleranceResponse, type SwapAdvancedSettings, type SwapParameters, type TradeBaseParameters, type TradeOptionalParameters, type TradeParameters, type TraderParameters, type TradingAppDataInfo, TradingSdk, type TradingSdkOptions, type TradingTransactionParams, type WithPartialTraderParams, buildAppData, calculateUniqueOrderId, generateAppDataFromDoc, getEthFlowContract, getEthFlowTransaction, getOrderToSign, getPartnerFeeBps, getPreSignTransaction, getQuote, getQuoteWithSigner, getTradeParametersAfterQuote, mapQuoteAmountsAndCosts, mergeAppDataDoc, postCoWProtocolTrade, postLimitOrder, postSellNativeCurrencyOrder, postSwapOrder, postSwapOrderFromQuote, suggestSlippageBps, swapParamsToLimitOrderParams };
421
+ export { type AppDataRootSchema, type BuildAppDataParams, type EthFlowOrderExistsCallback, type LimitOrderAdvancedSettings, type LimitOrderParameters, type LimitTradeParameters, type LimitTradeParametersFromQuote, type OrderPostingResult, type OrderTraderParams, type OrderTypedData, type PostTradeAdditionalParams, type QuoteAndPost, type QuoteResults, type QuoteResultsSerialized, type QuoteResultsWithSigner, type QuoterParameters, type SigningStepManager, type SlippageToleranceRequest, type SlippageToleranceResponse, type SwapAdvancedSettings, type SwapParameters, type TradeBaseParameters, type TradeOptionalParameters, type TradeParameters, type TraderParameters, type TradingAppDataInfo, TradingSdk, type TradingSdkOptions, type TradingTransactionParams, type WithPartialTraderParams, buildAppData, calculateUniqueOrderId, generateAppDataFromDoc, getDefaultUtmParams, getEthFlowContract, getEthFlowTransaction, getOrderToSign, getPartnerFeeBps, getPreSignTransaction, getQuote, getQuoteWithSigner, getTradeParametersAfterQuote, mapQuoteAmountsAndCosts, mergeAppDataDoc, postCoWProtocolTrade, postLimitOrder, postSellNativeCurrencyOrder, postSwapOrder, postSwapOrderFromQuote, suggestSlippageBps, swapParamsToLimitOrderParams };
package/dist/index.js CHANGED
@@ -34,6 +34,7 @@ __export(src_exports, {
34
34
  buildAppData: () => buildAppData,
35
35
  calculateUniqueOrderId: () => calculateUniqueOrderId,
36
36
  generateAppDataFromDoc: () => generateAppDataFromDoc,
37
+ getDefaultUtmParams: () => getDefaultUtmParams,
37
38
  getEthFlowContract: () => getEthFlowContract,
38
39
  getEthFlowTransaction: () => getEthFlowTransaction,
39
40
  getOrderToSign: () => getOrderToSign,
@@ -452,19 +453,123 @@ var import_sdk_order_book7 = require("@cowprotocol/sdk-order-book");
452
453
  var import_sdk_app_data = require("@cowprotocol/sdk-app-data");
453
454
  var import_sdk_common6 = require("@cowprotocol/sdk-common");
454
455
  var import_deepmerge = __toESM(require("deepmerge"));
456
+
457
+ // ../sdk/package.json
458
+ var package_default = {
459
+ name: "@cowprotocol/cow-sdk",
460
+ version: "7.2.0",
461
+ license: "(MIT OR Apache-2.0)",
462
+ description: "CoW Protocol SDK - get quote, configure your order, and trade",
463
+ main: "./dist/index.js",
464
+ module: "./dist/index.mjs",
465
+ types: "./dist/index.d.ts",
466
+ exports: {
467
+ ".": {
468
+ types: "./dist/index.d.ts",
469
+ import: "./dist/index.mjs",
470
+ require: "./dist/index.js"
471
+ }
472
+ },
473
+ sideEffects: false,
474
+ files: [
475
+ "dist/**"
476
+ ],
477
+ publishConfig: {
478
+ access: "public"
479
+ },
480
+ scripts: {
481
+ build: "tsup src/index.ts --format esm,cjs --dts --treeshake",
482
+ postbuild: "pnpm copy-package-json && pnpm copy-md-files",
483
+ "copy-package-json": "npx shx cp package.json dist",
484
+ "copy-md-files": 'npx cpx "*.md" dist',
485
+ lint: "eslint src/**/*.ts",
486
+ typecheck: "tsc --noEmit",
487
+ clean: "rm -rf .turbo && rm -rf node_modules && rm -rf dist",
488
+ prepublishOnly: "npm run build"
489
+ },
490
+ devDependencies: {
491
+ "@cow-sdk/typescript-config": "workspace:*",
492
+ "@types/node": "^20.17.31",
493
+ jest: "^29.7.0",
494
+ shx: "^0.3.4",
495
+ "ts-node": "^10.8.2",
496
+ tsup: "^7.2.0",
497
+ typescript: "^5.2.2"
498
+ },
499
+ dependencies: {
500
+ "@cowprotocol/sdk-app-data": "workspace:*",
501
+ "@cowprotocol/sdk-common": "workspace:*",
502
+ "@cowprotocol/sdk-config": "workspace:*",
503
+ "@cowprotocol/sdk-contracts-ts": "workspace:*",
504
+ "@cowprotocol/sdk-order-book": "workspace:*",
505
+ "@cowprotocol/sdk-order-signing": "workspace:*",
506
+ "@cowprotocol/sdk-trading": "workspace:*"
507
+ },
508
+ peerDependencies: {
509
+ "@openzeppelin/merkle-tree": "^1.x",
510
+ "cross-fetch": "^3.x",
511
+ "ipfs-only-hash": "^4.x",
512
+ multiformats: "^9.x"
513
+ },
514
+ peerDependenciesMeta: {
515
+ "cross-fetch": {
516
+ optional: false
517
+ },
518
+ "ipfs-only-hash": {
519
+ optional: true
520
+ },
521
+ multiformats: {
522
+ optional: true
523
+ },
524
+ "@openzeppelin/merkle-tree": {
525
+ optional: true
526
+ }
527
+ },
528
+ keywords: [
529
+ "cow",
530
+ "cow-protocol",
531
+ "sdk",
532
+ "crypto",
533
+ "typescript",
534
+ "subgraph"
535
+ ],
536
+ repository: {
537
+ type: "git",
538
+ url: "https://github.com/cowprotocol/cow-sdk.git",
539
+ directory: "packages/sdk"
540
+ },
541
+ bugs: {
542
+ url: "https://github.com/cowprotocol/cow-sdk/issues"
543
+ },
544
+ homepage: "https://github.com/cowprotocol/cow-sdk#readme"
545
+ };
546
+
547
+ // src/appDataUtils.ts
548
+ function getDefaultUtmParams() {
549
+ return {
550
+ utmCampaign: "developer-cohort",
551
+ utmContent: "",
552
+ utmMedium: `cow-sdk@${package_default.version}`,
553
+ utmSource: "cowmunity",
554
+ utmTerm: "js"
555
+ };
556
+ }
455
557
  async function buildAppData({ slippageBps, appCode, orderClass: orderClassName, partnerFee }, advancedParams) {
456
558
  const quoteParams = { slippageBips: slippageBps };
457
559
  const orderClass = { orderClass: orderClassName };
458
560
  const metadataApiSdk = new import_sdk_app_data.MetadataApi((0, import_sdk_common6.getGlobalAdapter)());
561
+ const shouldAddDefaultUtm = !advancedParams?.metadata?.utm;
562
+ const baseMetadata = {
563
+ quote: quoteParams,
564
+ orderClass,
565
+ partnerFee,
566
+ ...shouldAddDefaultUtm ? { utm: getDefaultUtmParams() } : {}
567
+ };
459
568
  const doc = await metadataApiSdk.generateAppDataDoc(
460
569
  (0, import_deepmerge.default)(
461
570
  {
462
571
  appCode,
463
- metadata: {
464
- quote: quoteParams,
465
- orderClass,
466
- partnerFee
467
- }
572
+ metadata: baseMetadata
468
573
  },
469
574
  advancedParams || {}
470
575
  )
@@ -1229,6 +1334,7 @@ function isTraderParameters(params) {
1229
1334
  buildAppData,
1230
1335
  calculateUniqueOrderId,
1231
1336
  generateAppDataFromDoc,
1337
+ getDefaultUtmParams,
1232
1338
  getEthFlowContract,
1233
1339
  getEthFlowTransaction,
1234
1340
  getOrderToSign,
package/dist/index.mjs CHANGED
@@ -418,19 +418,123 @@ import {
418
418
  } from "@cowprotocol/sdk-app-data";
419
419
  import { getGlobalAdapter as getGlobalAdapter4 } from "@cowprotocol/sdk-common";
420
420
  import deepmerge from "deepmerge";
421
+
422
+ // ../sdk/package.json
423
+ var package_default = {
424
+ name: "@cowprotocol/cow-sdk",
425
+ version: "7.2.0",
426
+ license: "(MIT OR Apache-2.0)",
427
+ description: "CoW Protocol SDK - get quote, configure your order, and trade",
428
+ main: "./dist/index.js",
429
+ module: "./dist/index.mjs",
430
+ types: "./dist/index.d.ts",
431
+ exports: {
432
+ ".": {
433
+ types: "./dist/index.d.ts",
434
+ import: "./dist/index.mjs",
435
+ require: "./dist/index.js"
436
+ }
437
+ },
438
+ sideEffects: false,
439
+ files: [
440
+ "dist/**"
441
+ ],
442
+ publishConfig: {
443
+ access: "public"
444
+ },
445
+ scripts: {
446
+ build: "tsup src/index.ts --format esm,cjs --dts --treeshake",
447
+ postbuild: "pnpm copy-package-json && pnpm copy-md-files",
448
+ "copy-package-json": "npx shx cp package.json dist",
449
+ "copy-md-files": 'npx cpx "*.md" dist',
450
+ lint: "eslint src/**/*.ts",
451
+ typecheck: "tsc --noEmit",
452
+ clean: "rm -rf .turbo && rm -rf node_modules && rm -rf dist",
453
+ prepublishOnly: "npm run build"
454
+ },
455
+ devDependencies: {
456
+ "@cow-sdk/typescript-config": "workspace:*",
457
+ "@types/node": "^20.17.31",
458
+ jest: "^29.7.0",
459
+ shx: "^0.3.4",
460
+ "ts-node": "^10.8.2",
461
+ tsup: "^7.2.0",
462
+ typescript: "^5.2.2"
463
+ },
464
+ dependencies: {
465
+ "@cowprotocol/sdk-app-data": "workspace:*",
466
+ "@cowprotocol/sdk-common": "workspace:*",
467
+ "@cowprotocol/sdk-config": "workspace:*",
468
+ "@cowprotocol/sdk-contracts-ts": "workspace:*",
469
+ "@cowprotocol/sdk-order-book": "workspace:*",
470
+ "@cowprotocol/sdk-order-signing": "workspace:*",
471
+ "@cowprotocol/sdk-trading": "workspace:*"
472
+ },
473
+ peerDependencies: {
474
+ "@openzeppelin/merkle-tree": "^1.x",
475
+ "cross-fetch": "^3.x",
476
+ "ipfs-only-hash": "^4.x",
477
+ multiformats: "^9.x"
478
+ },
479
+ peerDependenciesMeta: {
480
+ "cross-fetch": {
481
+ optional: false
482
+ },
483
+ "ipfs-only-hash": {
484
+ optional: true
485
+ },
486
+ multiformats: {
487
+ optional: true
488
+ },
489
+ "@openzeppelin/merkle-tree": {
490
+ optional: true
491
+ }
492
+ },
493
+ keywords: [
494
+ "cow",
495
+ "cow-protocol",
496
+ "sdk",
497
+ "crypto",
498
+ "typescript",
499
+ "subgraph"
500
+ ],
501
+ repository: {
502
+ type: "git",
503
+ url: "https://github.com/cowprotocol/cow-sdk.git",
504
+ directory: "packages/sdk"
505
+ },
506
+ bugs: {
507
+ url: "https://github.com/cowprotocol/cow-sdk/issues"
508
+ },
509
+ homepage: "https://github.com/cowprotocol/cow-sdk#readme"
510
+ };
511
+
512
+ // src/appDataUtils.ts
513
+ function getDefaultUtmParams() {
514
+ return {
515
+ utmCampaign: "developer-cohort",
516
+ utmContent: "",
517
+ utmMedium: `cow-sdk@${package_default.version}`,
518
+ utmSource: "cowmunity",
519
+ utmTerm: "js"
520
+ };
521
+ }
421
522
  async function buildAppData({ slippageBps, appCode, orderClass: orderClassName, partnerFee }, advancedParams) {
422
523
  const quoteParams = { slippageBips: slippageBps };
423
524
  const orderClass = { orderClass: orderClassName };
424
525
  const metadataApiSdk = new MetadataApi(getGlobalAdapter4());
526
+ const shouldAddDefaultUtm = !advancedParams?.metadata?.utm;
527
+ const baseMetadata = {
528
+ quote: quoteParams,
529
+ orderClass,
530
+ partnerFee,
531
+ ...shouldAddDefaultUtm ? { utm: getDefaultUtmParams() } : {}
532
+ };
425
533
  const doc = await metadataApiSdk.generateAppDataDoc(
426
534
  deepmerge(
427
535
  {
428
536
  appCode,
429
- metadata: {
430
- quote: quoteParams,
431
- orderClass,
432
- partnerFee
433
- }
537
+ metadata: baseMetadata
434
538
  },
435
539
  advancedParams || {}
436
540
  )
@@ -1200,6 +1304,7 @@ export {
1200
1304
  buildAppData,
1201
1305
  calculateUniqueOrderId,
1202
1306
  generateAppDataFromDoc,
1307
+ getDefaultUtmParams,
1203
1308
  getEthFlowContract,
1204
1309
  getEthFlowTransaction,
1205
1310
  getOrderToSign,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cowprotocol/sdk-trading",
3
- "version": "0.5.3",
3
+ "version": "0.6.0",
4
4
  "description": "CowProtocol trading",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -29,18 +29,18 @@
29
29
  "ts-jest": "^29.0.0",
30
30
  "tsx": "^4.19.4",
31
31
  "@cow-sdk/typescript-config": "0.0.0-beta.0",
32
- "@cowprotocol/sdk-ethers-v6-adapter": "0.3.0",
33
32
  "@cowprotocol/sdk-ethers-v5-adapter": "0.3.0",
33
+ "@cowprotocol/sdk-ethers-v6-adapter": "0.3.0",
34
34
  "@cowprotocol/sdk-viem-adapter": "0.3.0"
35
35
  },
36
36
  "dependencies": {
37
37
  "deepmerge": "^4.3.1",
38
38
  "@cowprotocol/sdk-common": "0.4.0",
39
- "@cowprotocol/sdk-app-data": "4.3.1",
40
- "@cowprotocol/sdk-order-book": "0.3.2",
39
+ "@cowprotocol/sdk-app-data": "4.3.2",
41
40
  "@cowprotocol/sdk-config": "0.4.1",
42
- "@cowprotocol/sdk-order-signing": "0.1.15",
43
- "@cowprotocol/sdk-contracts-ts": "0.7.1"
41
+ "@cowprotocol/sdk-order-signing": "0.1.16",
42
+ "@cowprotocol/sdk-contracts-ts": "0.7.1",
43
+ "@cowprotocol/sdk-order-book": "0.4.0"
44
44
  },
45
45
  "scripts": {
46
46
  "build": "tsup src/index.ts --format esm,cjs --dts",