@polymarket/clob-client-v2 0.2.7 → 1.0.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/client.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { OrderBuilder } from "./order-builder/index.js";
2
2
  import type { SignatureTypeV2 } from "./order-utils/model/signatureTypeV2.js";
3
3
  import type { ClobSigner } from "./signing/signer.js";
4
- import type { ApiKeyCreds, ApiKeysResponse, BalanceAllowanceParams, BalanceAllowanceResponse, BanStatus, BookParams, BuilderApiKey, BuilderApiKeyResponse, BuilderConfig, BuilderFeeRates, BuilderTradeParams, BuilderTradesResponse, Chain, CreateOrderOptions, DropNotificationParams, FeeInfos, MarketDetails, MarketPrice, MarketReward, MarketTradeEvent, NegRisk, Notification, OpenOrder, OpenOrderParams, OpenOrdersResponse, OrderBookSummary, OrderMarketCancelParams, OrderPayload, OrderScoring, OrderScoringParams, OrdersScoring, OrdersScoringParams, PaginationPayload, PostOrdersArgs, PreMigrationOrdersResponse, PriceHistoryFilterParams, ReadonlyApiKeyResponse, RewardsPercentages, TickSize, TickSizes, TotalUserEarning, Trade, TradeParams, TradesPaginatedResponse, UserEarning, UserMarketOrderV2, UserOrderV2, UserRewardsEarning } from "./types/index.js";
4
+ import type { ApiKeyCreds, ApiKeysResponse, BalanceAllowanceParams, BalanceAllowanceResponse, BanStatus, BookParams, BuilderApiKey, BuilderApiKeyResponse, BuilderConfig, BuilderFeeRates, BuilderTradeParams, BuilderTradesResponse, Chain, CreateOrderOptions, DropNotificationParams, FeeInfos, FeeRates, MarketDetails, MarketPrice, MarketReward, MarketTradeEvent, NegRisk, Notification, OpenOrder, OpenOrderParams, OpenOrdersResponse, OrderBookSummary, OrderMarketCancelParams, OrderPayload, OrderScoring, OrderScoringParams, OrdersScoring, OrdersScoringParams, PaginationPayload, PostOrdersArgs, PreMigrationOrdersResponse, PriceHistoryFilterParams, ReadonlyApiKeyResponse, RewardsPercentages, TickSize, TickSizes, TotalUserEarning, Trade, TradeParams, TradesPaginatedResponse, UserEarning, UserMarketOrderV1, UserMarketOrderV2, UserOrderV1, UserOrderV2, UserRewardsEarning } from "./types/index.js";
5
5
  import { OrderType, Side } from "./types/index.js";
6
6
  import { type SignedOrder } from "./types/unifiedOrder.js";
7
7
  export declare function adjustBuyAmountForFees(amount: number, price: number, userUSDCBalance: number, feeRate: number, feeExponent: number, builderTakerFeeRate: number): number;
@@ -16,6 +16,7 @@ export interface ClobClientOptions {
16
16
  builderConfig?: BuilderConfig;
17
17
  getSigner?: () => Promise<ClobSigner> | ClobSigner;
18
18
  retryOnError?: boolean;
19
+ throwOnError?: boolean;
19
20
  }
20
21
  export declare class ClobClient {
21
22
  readonly host: string;
@@ -26,13 +27,15 @@ export declare class ClobClient {
26
27
  readonly tickSizes: TickSizes;
27
28
  readonly negRisk: NegRisk;
28
29
  readonly feeInfos: FeeInfos;
30
+ readonly feeRates: FeeRates;
29
31
  readonly builderFeeRates: BuilderFeeRates;
30
32
  private readonly tokenConditionMap;
31
33
  readonly useServerTime?: boolean;
32
34
  readonly builderConfig?: BuilderConfig;
33
35
  private cachedVersion?;
34
36
  readonly retryOnError?: boolean;
35
- constructor({ host, chain, signer, creds, signatureType, funderAddress, useServerTime, builderConfig, getSigner, retryOnError, }: ClobClientOptions);
37
+ readonly throwOnError?: boolean;
38
+ constructor({ host, chain, signer, creds, signatureType, funderAddress, useServerTime, builderConfig, getSigner, retryOnError, throwOnError, }: ClobClientOptions);
36
39
  getOk(): Promise<any>;
37
40
  postHeartbeat(heartbeatId?: string): Promise<{
38
41
  heartbeat_id: string;
@@ -94,10 +97,10 @@ export declare class ClobClient {
94
97
  dropNotifications(params?: DropNotificationParams): Promise<void>;
95
98
  getBalanceAllowance(params?: BalanceAllowanceParams): Promise<BalanceAllowanceResponse>;
96
99
  updateBalanceAllowance(params?: BalanceAllowanceParams): Promise<void>;
97
- createOrder(userOrder: UserOrderV2, options?: Partial<CreateOrderOptions>): Promise<SignedOrder>;
98
- createMarketOrder(userMarketOrder: UserMarketOrderV2, options?: Partial<CreateOrderOptions>): Promise<SignedOrder>;
99
- createAndPostOrder<T extends OrderType.GTC | OrderType.GTD = OrderType.GTC>(userOrder: UserOrderV2, options?: Partial<CreateOrderOptions>, orderType?: T, postOnly?: boolean, deferExec?: boolean): Promise<any>;
100
- createAndPostMarketOrder<T extends OrderType.FOK | OrderType.FAK = OrderType.FOK>(userMarketOrder: UserMarketOrderV2, options?: Partial<CreateOrderOptions>, orderType?: T, deferExec?: boolean): Promise<any>;
100
+ createOrder(userOrder: UserOrderV1 | UserOrderV2, options?: Partial<CreateOrderOptions>): Promise<SignedOrder>;
101
+ createMarketOrder(userMarketOrder: UserMarketOrderV1 | UserMarketOrderV2, options?: Partial<CreateOrderOptions>): Promise<SignedOrder>;
102
+ createAndPostOrder<T extends OrderType.GTC | OrderType.GTD = OrderType.GTC>(userOrder: UserOrderV1 | UserOrderV2, options?: Partial<CreateOrderOptions>, orderType?: T, postOnly?: boolean, deferExec?: boolean): Promise<any>;
103
+ createAndPostMarketOrder<T extends OrderType.FOK | OrderType.FAK = OrderType.FOK>(userMarketOrder: UserMarketOrderV1 | UserMarketOrderV2, options?: Partial<CreateOrderOptions>, orderType?: T, deferExec?: boolean): Promise<any>;
101
104
  getOpenOrders(params?: OpenOrderParams, only_first_page?: boolean, next_cursor?: string): Promise<OpenOrdersResponse>;
102
105
  getPreMigrationOrders(only_first_page?: boolean, next_cursor?: string): Promise<PreMigrationOrdersResponse>;
103
106
  postOrder<T extends OrderType = OrderType.GTC>(order: SignedOrder, orderType?: T, postOnly?: boolean, deferExec?: boolean): Promise<any>;
@@ -125,9 +128,11 @@ export declare class ClobClient {
125
128
  private _ensureMarketInfoCached;
126
129
  private ensureBuilderFeeRateCached;
127
130
  private _resolveTickSize;
131
+ private _resolveFeeRateBps;
128
132
  private resolveVersion;
129
133
  private _retryOnVersionUpdate;
130
134
  private _isOrderVersionMismatch;
135
+ private throwIfError;
131
136
  private get;
132
137
  private post;
133
138
  private del;
package/dist/client.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { BUILDER_FEES_BPS, bytes32Zero, END_CURSOR, INITIAL_CURSOR, ORDER_VERSION_MISMATCH_ERROR, } from "./constants.js";
2
2
  import { ARE_ORDERS_SCORING, CANCEL_ALL, CANCEL_MARKET_ORDERS, CANCEL_ORDER, CANCEL_ORDERS, CLOSED_ONLY, CREATE_API_KEY, CREATE_BUILDER_API_KEY, CREATE_READONLY_API_KEY, DELETE_API_KEY, DELETE_READONLY_API_KEY, DERIVE_API_KEY, DROP_NOTIFICATIONS, GET_API_KEYS, GET_BALANCE_ALLOWANCE, GET_BUILDER_API_KEYS, GET_BUILDER_FEES, GET_BUILDER_TRADES, GET_CLOB_MARKET, GET_EARNINGS_FOR_USER_FOR_DAY, GET_FEE_RATE, GET_LAST_TRADE_PRICE, GET_LAST_TRADES_PRICES, GET_LIQUIDITY_REWARD_PERCENTAGES, GET_MARKET, GET_MARKET_BY_TOKEN, GET_MARKET_TRADES_EVENTS, GET_MARKETS, GET_MIDPOINT, GET_MIDPOINTS, GET_NEG_RISK, GET_NOTIFICATIONS, GET_OPEN_ORDERS, GET_ORDER, GET_ORDER_BOOK, GET_ORDER_BOOKS, GET_PRE_MIGRATION_ORDERS, GET_PRICE, GET_PRICES, GET_PRICES_HISTORY, GET_READONLY_API_KEYS, GET_REWARDS_EARNINGS_PERCENTAGES, GET_REWARDS_MARKETS, GET_REWARDS_MARKETS_CURRENT, GET_SAMPLING_MARKETS, GET_SAMPLING_SIMPLIFIED_MARKETS, GET_SIMPLIFIED_MARKETS, GET_SPREAD, GET_SPREADS, GET_TICK_SIZE, GET_TOTAL_EARNINGS_FOR_USER_FOR_DAY, GET_TRADES, HEARTBEAT, IS_ORDER_SCORING, OK, POST_ORDER, POST_ORDERS, REVOKE_BUILDER_API_KEY, TIME, UPDATE_BALANCE_ALLOWANCE, } from "./endpoints.js";
3
- import { L1_AUTH_UNAVAILABLE_ERROR, L2_AUTH_NOT_AVAILABLE } from "./errors.js";
3
+ import { ApiError, L1_AUTH_UNAVAILABLE_ERROR, L2_AUTH_NOT_AVAILABLE } from "./errors.js";
4
4
  import { createL1Headers, createL2Headers } from "./headers/index.js";
5
5
  import { DELETE, del, GET, get, POST, parseDropNotificationParams, post, } from "./http-helpers/index.js";
6
6
  import { calculateBuyMarketPrice, calculateSellMarketPrice, } from "./order-builder/helpers/index.js";
@@ -28,13 +28,16 @@ export class ClobClient {
28
28
  tickSizes;
29
29
  negRisk;
30
30
  feeInfos;
31
+ // Fee rate bps data for CLOB V1
32
+ feeRates;
31
33
  builderFeeRates;
32
34
  tokenConditionMap;
33
35
  useServerTime;
34
36
  builderConfig;
35
37
  cachedVersion;
36
38
  retryOnError;
37
- constructor({ host, chain, signer, creds, signatureType, funderAddress, useServerTime, builderConfig, getSigner, retryOnError, }) {
39
+ throwOnError;
40
+ constructor({ host, chain, signer, creds, signatureType, funderAddress, useServerTime, builderConfig, getSigner, retryOnError, throwOnError, }) {
38
41
  this.host = host.endsWith("/") ? host.slice(0, -1) : host;
39
42
  this.chainId = chain;
40
43
  if (signer !== undefined) {
@@ -46,10 +49,12 @@ export class ClobClient {
46
49
  this.orderBuilder = new OrderBuilder(signer, chain, signatureType, funderAddress, getSigner);
47
50
  this.tickSizes = {};
48
51
  this.negRisk = {};
52
+ this.feeRates = {};
49
53
  this.feeInfos = {};
50
54
  this.builderFeeRates = {};
51
55
  this.tokenConditionMap = {};
52
56
  this.retryOnError = retryOnError;
57
+ this.throwOnError = throwOnError;
53
58
  this.useServerTime = useServerTime;
54
59
  if (builderConfig !== undefined) {
55
60
  this.builderConfig = builderConfig;
@@ -157,18 +162,14 @@ export class ClobClient {
157
162
  return this.negRisk[tokenID];
158
163
  }
159
164
  async getFeeRateBps(tokenID) {
160
- if (tokenID in this.feeInfos) {
161
- return this.feeInfos[tokenID].rate;
162
- }
163
- if (tokenID in this.tokenConditionMap) {
164
- await this.getClobMarketInfo(this.tokenConditionMap[tokenID]);
165
- return this.feeInfos[tokenID].rate;
165
+ if (tokenID in this.feeRates) {
166
+ return this.feeRates[tokenID];
166
167
  }
167
168
  const result = await this.get(`${this.host}${GET_FEE_RATE}`, {
168
169
  params: { token_id: tokenID },
169
170
  });
170
- this.feeInfos[tokenID] = { rate: result.base_fee, exponent: 0 };
171
- return this.feeInfos[tokenID].rate;
171
+ this.feeRates[tokenID] = result.base_fee;
172
+ return this.feeRates[tokenID];
172
173
  }
173
174
  async getFeeExponent(tokenID) {
174
175
  if (tokenID in this.feeInfos) {
@@ -464,16 +465,17 @@ export class ClobClient {
464
465
  orderToSign.builderCode = this.builderConfig.builderCode;
465
466
  }
466
467
  const { tokenID } = orderToSign;
467
- // const tickSize = await this._resolveTickSize(tokenID, options?.tickSize);
468
- if (!options?.tickSize) {
469
- throw new Error("tickSize is required in options");
470
- }
471
- const tickSize = options.tickSize;
468
+ const tickSize = await this._resolveTickSize(tokenID, options?.tickSize);
472
469
  if (!priceValid(orderToSign.price, tickSize)) {
473
470
  throw new Error(`invalid price (${orderToSign.price}), min: ${parseFloat(tickSize)} - max: ${1 - parseFloat(tickSize)}`);
474
471
  }
475
472
  const negRisk = options?.negRisk ?? (await this.getNegRisk(tokenID));
476
473
  const version = await this.resolveVersion();
474
+ if (version === 1) {
475
+ const userFeeRateBps = "feeRateBps" in orderToSign ? orderToSign.feeRateBps : undefined;
476
+ const feeRateBps = await this._resolveFeeRateBps(tokenID, userFeeRateBps);
477
+ orderToSign.feeRateBps = feeRateBps;
478
+ }
477
479
  return this.orderBuilder.buildOrder(orderToSign, {
478
480
  tickSize,
479
481
  negRisk,
@@ -495,16 +497,26 @@ export class ClobClient {
495
497
  orderToSign.builderCode = this.builderConfig.builderCode;
496
498
  }
497
499
  await this.ensureBuilderFeeRateCached(orderToSign.builderCode);
498
- if (orderToSign.side === Side.BUY && orderToSign.userUSDCBalance !== undefined) {
500
+ if (orderToSign.side === Side.BUY &&
501
+ "userUSDCBalance" in orderToSign &&
502
+ orderToSign.userUSDCBalance !== undefined) {
499
503
  // biome-ignore lint/style/noNonNullAssertion: price is validated above
500
504
  const price = orderToSign.price;
505
+ const { userUSDCBalance } = orderToSign;
501
506
  const builderTakerFeeRate = this.isBuilderOrder(orderToSign.builderCode)
502
507
  ? (this.builderFeeRates[orderToSign.builderCode ?? ""]?.taker ?? 0)
503
508
  : 0;
504
- orderToSign.amount = adjustBuyAmountForFees(orderToSign.amount, price, orderToSign.userUSDCBalance, this.feeInfos[tokenID].rate, this.feeInfos[tokenID].exponent, builderTakerFeeRate);
509
+ orderToSign.amount = adjustBuyAmountForFees(orderToSign.amount, price, userUSDCBalance, this.feeInfos[tokenID].rate, this.feeInfos[tokenID].exponent, builderTakerFeeRate);
505
510
  }
506
511
  const negRisk = options?.negRisk ?? (await this.getNegRisk(tokenID));
507
512
  const version = await this.resolveVersion();
513
+ if (version === 1) {
514
+ const userFeeRateBps = "feeRateBps" in orderToSign
515
+ ? orderToSign.feeRateBps
516
+ : undefined;
517
+ const feeRateBps = await this._resolveFeeRateBps(tokenID, userFeeRateBps);
518
+ orderToSign.feeRateBps = feeRateBps;
519
+ }
508
520
  return this.orderBuilder.buildMarketOrder(orderToSign, {
509
521
  tickSize,
510
522
  negRisk,
@@ -589,10 +601,10 @@ export class ClobClient {
589
601
  const res = await this.post(`${this.host}${endpoint}`, {
590
602
  headers,
591
603
  data: orderPayload,
592
- });
604
+ }, true);
593
605
  if (this._isOrderVersionMismatch(res))
594
606
  await this.resolveVersion(true);
595
- return res;
607
+ return this.throwIfError(res);
596
608
  }
597
609
  async postOrders(args, postOnly = false, deferExec = false) {
598
610
  this.canL2Auth();
@@ -619,10 +631,10 @@ export class ClobClient {
619
631
  const res = await this.post(`${this.host}${endpoint}`, {
620
632
  headers,
621
633
  data: ordersPayload,
622
- });
634
+ }, true);
623
635
  if (this._isOrderVersionMismatch(res))
624
636
  await this.resolveVersion(true);
625
- return res;
637
+ return this.throwIfError(res);
626
638
  }
627
639
  async cancelOrder(payload) {
628
640
  this.canL2Auth();
@@ -902,6 +914,15 @@ export class ClobClient {
902
914
  }
903
915
  return tickSize;
904
916
  }
917
+ async _resolveFeeRateBps(tokenID, userFeeRateBps) {
918
+ const marketFeeRateBps = await this.getFeeRateBps(tokenID);
919
+ if (marketFeeRateBps > 0 &&
920
+ userFeeRateBps !== undefined &&
921
+ userFeeRateBps !== marketFeeRateBps) {
922
+ throw new Error(`invalid user provided fee rate: ${userFeeRateBps}, fee rate for the market must be ${marketFeeRateBps}`);
923
+ }
924
+ return marketFeeRateBps;
925
+ }
905
926
  async resolveVersion(forceUpdate = false) {
906
927
  // Use cached version if given
907
928
  if (!forceUpdate && this.cachedVersion !== undefined) {
@@ -928,15 +949,25 @@ export class ClobClient {
928
949
  const message = typeof error === "string" ? error : JSON.stringify(error);
929
950
  return message.includes(ORDER_VERSION_MISMATCH_ERROR);
930
951
  }
952
+ throwIfError(result) {
953
+ if (this.throwOnError && result && typeof result === "object" && "error" in result) {
954
+ const msg = typeof result.error === "string" ? result.error : JSON.stringify(result.error);
955
+ throw new ApiError(msg, result.status, result);
956
+ }
957
+ return result;
958
+ }
931
959
  // http methods
932
- async get(endpoint, options) {
933
- return get(endpoint, options);
960
+ async get(endpoint, options, skipThrow = false) {
961
+ const result = await get(endpoint, options);
962
+ return skipThrow ? result : this.throwIfError(result);
934
963
  }
935
- async post(endpoint, options) {
936
- return post(endpoint, options, this.retryOnError);
964
+ async post(endpoint, options, skipThrow = false) {
965
+ const result = await post(endpoint, options, this.retryOnError);
966
+ return skipThrow ? result : this.throwIfError(result);
937
967
  }
938
- async del(endpoint, options) {
939
- return del(endpoint, options);
968
+ async del(endpoint, options, skipThrow = false) {
969
+ const result = await del(endpoint, options);
970
+ return skipThrow ? result : this.throwIfError(result);
940
971
  }
941
972
  }
942
973
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -1,2 +1,7 @@
1
1
  export declare const L1_AUTH_UNAVAILABLE_ERROR: Error;
2
2
  export declare const L2_AUTH_NOT_AVAILABLE: Error;
3
+ export declare class ApiError extends Error {
4
+ readonly status?: number;
5
+ readonly data?: unknown;
6
+ constructor(message: string, status?: number, data?: unknown);
7
+ }
package/dist/errors.js CHANGED
@@ -1,3 +1,13 @@
1
1
  export const L1_AUTH_UNAVAILABLE_ERROR = new Error("Signer is needed to interact with this endpoint!");
2
2
  export const L2_AUTH_NOT_AVAILABLE = new Error("API Credentials are needed to interact with this endpoint!");
3
+ export class ApiError extends Error {
4
+ status;
5
+ data;
6
+ constructor(message, status, data) {
7
+ super(message);
8
+ this.name = "ApiError";
9
+ this.status = status;
10
+ this.data = data;
11
+ }
12
+ }
3
13
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,KAAK,CACjD,kDAAkD,CAClD,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,KAAK,CAC7C,4DAA4D,CAC5D,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,KAAK,CACjD,kDAAkD,CAClD,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,KAAK,CAC7C,4DAA4D,CAC5D,CAAC;AAEF,MAAM,OAAO,QAAS,SAAQ,KAAK;IACzB,MAAM,CAAU;IAChB,IAAI,CAAW;IAExB,YAAY,OAAe,EAAE,MAAe,EAAE,IAAc;QAC3D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;CACD"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from "./client.js";
2
2
  export * from "./config.js";
3
+ export * from "./errors.js";
3
4
  export * from "./headers/index.js";
4
5
  export * from "./order-builder/index.js";
5
6
  export * from "./order-utils/model/signatureTypeV1.js";
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from "./client.js";
2
2
  export * from "./config.js";
3
+ export * from "./errors.js";
3
4
  export * from "./headers/index.js";
4
5
  export * from "./order-builder/index.js";
5
6
  export * from "./order-utils/model/signatureTypeV1.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,kBAAkB,CAAC"}
@@ -1,6 +1,5 @@
1
- import type { OrderDataV2, SignatureTypeV2 } from "../../order-utils/index.js";
2
- import type { RoundConfig, UserMarketOrderV2 } from "../../types/index.js";
3
- /**
4
- * Translate simple user market order to args used to generate Orders
5
- */
6
- export declare const buildMarketOrderCreationArgs: (signer: string, maker: string, signatureType: SignatureTypeV2, userMarketOrder: UserMarketOrderV2, roundConfig: RoundConfig) => Promise<OrderDataV2>;
1
+ import type { OrderDataV1, OrderDataV2, SignatureTypeV2 } from "../../order-utils/index.js";
2
+ import type { RoundConfig, UserMarketOrderV1, UserMarketOrderV2 } from "../../types/index.js";
3
+ export declare function buildMarketOrderCreationArgs(signer: string, maker: string, signatureType: SignatureTypeV2, userMarketOrder: UserMarketOrderV1 | UserMarketOrderV2, roundConfig: RoundConfig, version: 1): Promise<OrderDataV1>;
4
+ export declare function buildMarketOrderCreationArgs(signer: string, maker: string, signatureType: SignatureTypeV2, userMarketOrder: UserMarketOrderV1 | UserMarketOrderV2, roundConfig: RoundConfig, version?: 2): Promise<OrderDataV2>;
5
+ export declare function buildMarketOrderCreationArgs(signer: string, maker: string, signatureType: SignatureTypeV2, userMarketOrder: UserMarketOrderV1 | UserMarketOrderV2, roundConfig: RoundConfig, version: number): Promise<OrderDataV1 | OrderDataV2>;
@@ -1,14 +1,26 @@
1
- import { parseUnits } from "viem";
1
+ import { parseUnits, zeroAddress } from "viem";
2
2
  import { COLLATERAL_TOKEN_DECIMALS } from "../../config.js";
3
3
  import { bytes32Zero } from "../../constants.js";
4
4
  import { getMarketOrderRawAmounts } from "./index.js";
5
- /**
6
- * Translate simple user market order to args used to generate Orders
7
- */
8
- export const buildMarketOrderCreationArgs = async (signer, maker, signatureType, userMarketOrder, roundConfig) => {
5
+ export async function buildMarketOrderCreationArgs(signer, maker, signatureType, userMarketOrder, roundConfig, version = 2) {
9
6
  const { side, rawMakerAmt, rawTakerAmt } = getMarketOrderRawAmounts(userMarketOrder.side, userMarketOrder.amount, userMarketOrder.price || 1, roundConfig);
10
7
  const makerAmount = parseUnits(rawMakerAmt.toString(), COLLATERAL_TOKEN_DECIMALS).toString();
11
8
  const takerAmount = parseUnits(rawTakerAmt.toString(), COLLATERAL_TOKEN_DECIMALS).toString();
9
+ if (version === 1) {
10
+ const v1Order = userMarketOrder;
11
+ return {
12
+ maker,
13
+ taker: v1Order.taker ?? zeroAddress,
14
+ tokenId: userMarketOrder.tokenID,
15
+ makerAmount,
16
+ takerAmount,
17
+ side,
18
+ signer,
19
+ signatureType: signatureType,
20
+ feeRateBps: v1Order.feeRateBps?.toString() ?? "0",
21
+ nonce: v1Order.nonce?.toString() ?? "0",
22
+ };
23
+ }
12
24
  return {
13
25
  maker,
14
26
  tokenId: userMarketOrder.tokenID,
@@ -18,8 +30,8 @@ export const buildMarketOrderCreationArgs = async (signer, maker, signatureType,
18
30
  signer,
19
31
  signatureType,
20
32
  timestamp: Date.now().toString(),
21
- metadata: userMarketOrder.metadata ?? bytes32Zero,
33
+ metadata: "metadata" in userMarketOrder ? (userMarketOrder.metadata ?? bytes32Zero) : bytes32Zero,
22
34
  builder: userMarketOrder.builderCode ?? bytes32Zero,
23
35
  };
24
- };
36
+ }
25
37
  //# sourceMappingURL=buildMarketOrderCreationArgs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"buildMarketOrderCreationArgs.js","sourceRoot":"","sources":["../../../src/order-builder/helpers/buildMarketOrderCreationArgs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAEtD;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,EAChD,MAAc,EACd,KAAa,EACb,aAA8B,EAC9B,eAAkC,EAClC,WAAwB,EACD,EAAE;IACzB,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,wBAAwB,CAClE,eAAe,CAAC,IAAI,EACpB,eAAe,CAAC,MAAM,EACtB,eAAe,CAAC,KAAK,IAAI,CAAC,EAC1B,WAAW,CACX,CAAC;IAEF,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,yBAAyB,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC7F,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,yBAAyB,CAAC,CAAC,QAAQ,EAAE,CAAC;IAE7F,OAAO;QACN,KAAK;QACL,OAAO,EAAE,eAAe,CAAC,OAAO;QAChC,WAAW;QACX,WAAW;QACX,IAAI;QACJ,MAAM;QACN,aAAa;QACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QAChC,QAAQ,EAAE,eAAe,CAAC,QAAQ,IAAI,WAAW;QACjD,OAAO,EAAE,eAAe,CAAC,WAAW,IAAI,WAAW;KACnD,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"buildMarketOrderCreationArgs.js","sourceRoot":"","sources":["../../../src/order-builder/helpers/buildMarketOrderCreationArgs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAE/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AASjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AA0BtD,MAAM,CAAC,KAAK,UAAU,4BAA4B,CACjD,MAAc,EACd,KAAa,EACb,aAA8B,EAC9B,eAAsD,EACtD,WAAwB,EACxB,UAAkB,CAAC;IAEnB,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,wBAAwB,CAClE,eAAe,CAAC,IAAI,EACpB,eAAe,CAAC,MAAM,EACtB,eAAe,CAAC,KAAK,IAAI,CAAC,EAC1B,WAAW,CACX,CAAC;IAEF,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,yBAAyB,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC7F,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,yBAAyB,CAAC,CAAC,QAAQ,EAAE,CAAC;IAE7F,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,eAAoC,CAAC;QACrD,OAAO;YACN,KAAK;YACL,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,WAAW;YACnC,OAAO,EAAE,eAAe,CAAC,OAAO;YAChC,WAAW;YACX,WAAW;YACX,IAAI;YACJ,MAAM;YACN,aAAa,EAAE,aAA2C;YAC1D,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,GAAG;YACjD,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,GAAG;SACvC,CAAC;IACH,CAAC;IAED,OAAO;QACN,KAAK;QACL,OAAO,EAAE,eAAe,CAAC,OAAO;QAChC,WAAW;QACX,WAAW;QACX,IAAI;QACJ,MAAM;QACN,aAAa;QACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QAChC,QAAQ,EACP,UAAU,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW;QACxF,OAAO,EAAE,eAAe,CAAC,WAAW,IAAI,WAAW;KACnD,CAAC;AACH,CAAC"}
@@ -1,6 +1,5 @@
1
- import type { OrderDataV2, SignatureTypeV2 } from "../../order-utils/index.js";
2
- import type { RoundConfig, UserOrderV2 } from "../../types/index.js";
3
- /**
4
- * Translate simple user order to args used to generate Orders
5
- */
6
- export declare const buildOrderCreationArgs: (signer: string, maker: string, signatureType: SignatureTypeV2, userOrder: UserOrderV2, roundConfig: RoundConfig) => Promise<OrderDataV2>;
1
+ import type { OrderDataV1, OrderDataV2, SignatureTypeV2 } from "../../order-utils/index.js";
2
+ import type { RoundConfig, UserOrderV1, UserOrderV2 } from "../../types/index.js";
3
+ export declare function buildOrderCreationArgs(signer: string, maker: string, signatureType: SignatureTypeV2, userOrder: UserOrderV1 | UserOrderV2, roundConfig: RoundConfig, version: 1): Promise<OrderDataV1>;
4
+ export declare function buildOrderCreationArgs(signer: string, maker: string, signatureType: SignatureTypeV2, userOrder: UserOrderV1 | UserOrderV2, roundConfig: RoundConfig, version?: 2): Promise<OrderDataV2>;
5
+ export declare function buildOrderCreationArgs(signer: string, maker: string, signatureType: SignatureTypeV2, userOrder: UserOrderV1 | UserOrderV2, roundConfig: RoundConfig, version: number): Promise<OrderDataV1 | OrderDataV2>;
@@ -1,14 +1,27 @@
1
- import { parseUnits } from "viem";
1
+ import { parseUnits, zeroAddress } from "viem";
2
2
  import { COLLATERAL_TOKEN_DECIMALS } from "../../config.js";
3
3
  import { bytes32Zero } from "../../constants.js";
4
4
  import { getOrderRawAmounts } from "./getOrderRawAmounts.js";
5
- /**
6
- * Translate simple user order to args used to generate Orders
7
- */
8
- export const buildOrderCreationArgs = async (signer, maker, signatureType, userOrder, roundConfig) => {
5
+ export async function buildOrderCreationArgs(signer, maker, signatureType, userOrder, roundConfig, version = 2) {
9
6
  const { side, rawMakerAmt, rawTakerAmt } = getOrderRawAmounts(userOrder.side, userOrder.size, userOrder.price, roundConfig);
10
7
  const makerAmount = parseUnits(rawMakerAmt.toString(), COLLATERAL_TOKEN_DECIMALS).toString();
11
8
  const takerAmount = parseUnits(rawTakerAmt.toString(), COLLATERAL_TOKEN_DECIMALS).toString();
9
+ if (version === 1) {
10
+ const v1Order = userOrder;
11
+ return {
12
+ maker,
13
+ taker: v1Order.taker ?? zeroAddress,
14
+ tokenId: userOrder.tokenID,
15
+ makerAmount,
16
+ takerAmount,
17
+ side,
18
+ signer,
19
+ signatureType: signatureType,
20
+ feeRateBps: v1Order.feeRateBps?.toString() ?? "0",
21
+ nonce: v1Order.nonce?.toString() ?? "0",
22
+ expiration: userOrder.expiration !== undefined ? userOrder.expiration.toString() : "0",
23
+ };
24
+ }
12
25
  return {
13
26
  maker,
14
27
  tokenId: userOrder.tokenID,
@@ -18,9 +31,9 @@ export const buildOrderCreationArgs = async (signer, maker, signatureType, userO
18
31
  signer,
19
32
  signatureType,
20
33
  timestamp: Date.now().toString(),
21
- metadata: userOrder.metadata ?? bytes32Zero,
34
+ metadata: "metadata" in userOrder ? (userOrder.metadata ?? bytes32Zero) : bytes32Zero,
22
35
  builder: userOrder.builderCode ?? bytes32Zero,
23
36
  expiration: userOrder.expiration !== undefined ? userOrder.expiration.toString() : "0",
24
37
  };
25
- };
38
+ }
26
39
  //# sourceMappingURL=buildOrderCreationArgs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"buildOrderCreationArgs.js","sourceRoot":"","sources":["../../../src/order-builder/helpers/buildOrderCreationArgs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAC1C,MAAc,EACd,KAAa,EACb,aAA8B,EAC9B,SAAsB,EACtB,WAAwB,EACD,EAAE;IACzB,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,kBAAkB,CAC5D,SAAS,CAAC,IAAI,EACd,SAAS,CAAC,IAAI,EACd,SAAS,CAAC,KAAK,EACf,WAAW,CACX,CAAC;IAEF,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,yBAAyB,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC7F,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,yBAAyB,CAAC,CAAC,QAAQ,EAAE,CAAC;IAE7F,OAAO;QACN,KAAK;QACL,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,WAAW;QACX,WAAW;QACX,IAAI;QACJ,MAAM;QACN,aAAa;QACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QAChC,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,WAAW;QAC3C,OAAO,EAAE,SAAS,CAAC,WAAW,IAAI,WAAW;QAC7C,UAAU,EAAE,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG;KACtF,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"buildOrderCreationArgs.js","sourceRoot":"","sources":["../../../src/order-builder/helpers/buildOrderCreationArgs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAE/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AASjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AA0B7D,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC3C,MAAc,EACd,KAAa,EACb,aAA8B,EAC9B,SAAoC,EACpC,WAAwB,EACxB,UAAkB,CAAC;IAEnB,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,kBAAkB,CAC5D,SAAS,CAAC,IAAI,EACd,SAAS,CAAC,IAAI,EACd,SAAS,CAAC,KAAK,EACf,WAAW,CACX,CAAC;IAEF,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,yBAAyB,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC7F,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,yBAAyB,CAAC,CAAC,QAAQ,EAAE,CAAC;IAE7F,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,SAAwB,CAAC;QACzC,OAAO;YACN,KAAK;YACL,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,WAAW;YACnC,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,WAAW;YACX,WAAW;YACX,IAAI;YACJ,MAAM;YACN,aAAa,EAAE,aAA2C;YAC1D,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,GAAG;YACjD,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,GAAG;YACvC,UAAU,EAAE,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG;SACtF,CAAC;IACH,CAAC;IAED,OAAO;QACN,KAAK;QACL,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,WAAW;QACX,WAAW;QACX,IAAI;QACJ,MAAM;QACN,aAAa;QACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QAChC,QAAQ,EAAE,UAAU,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW;QACrF,OAAO,EAAE,SAAS,CAAC,WAAW,IAAI,WAAW;QAC7C,UAAU,EAAE,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG;KACtF,CAAC;AACH,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { SignedOrderV1, SignedOrderV2 } from "../../order-utils/index.js";
2
2
  import { SignatureTypeV2 } from "../../order-utils/index.js";
3
3
  import { type ClobSigner } from "../../signing/signer.js";
4
- import type { Chain, CreateOrderOptions, UserMarketOrderV2 } from "../../types/index.js";
5
- export declare const createMarketOrder: (eoaSigner: ClobSigner, chainId: Chain, signatureType: SignatureTypeV2, funderAddress: string | undefined, userMarketOrder: UserMarketOrderV2, options: CreateOrderOptions, version: number) => Promise<SignedOrderV1 | SignedOrderV2>;
4
+ import type { Chain, CreateOrderOptions, UserMarketOrderV1, UserMarketOrderV2 } from "../../types/index.js";
5
+ export declare const createMarketOrder: (eoaSigner: ClobSigner, chainId: Chain, signatureType: SignatureTypeV2, funderAddress: string | undefined, userMarketOrder: UserMarketOrderV1 | UserMarketOrderV2, options: CreateOrderOptions, version: number) => Promise<SignedOrderV1 | SignedOrderV2>;
@@ -1,4 +1,3 @@
1
- import { zeroAddress } from "viem";
2
1
  import { getContractConfig } from "../../config.js";
3
2
  import { SignatureTypeV2 } from "../../order-utils/index.js";
4
3
  import { getSignerAddress } from "../../signing/signer.js";
@@ -10,7 +9,7 @@ export const createMarketOrder = async (eoaSigner, chainId, signatureType, funde
10
9
  // If funder address is not given, use the signer address
11
10
  const maker = funderAddress === undefined ? eoaSignerAddress : funderAddress;
12
11
  const contractConfig = getContractConfig(chainId);
13
- const orderData = await buildMarketOrderCreationArgs(eoaSignerAddress, maker, signatureType, userMarketOrder, ROUNDING_CONFIG[options.tickSize]);
12
+ const orderData = await buildMarketOrderCreationArgs(eoaSignerAddress, maker, signatureType, userMarketOrder, ROUNDING_CONFIG[options.tickSize], version);
14
13
  let exchangeContract;
15
14
  switch (version) {
16
15
  case 1:
@@ -20,8 +19,6 @@ export const createMarketOrder = async (eoaSigner, chainId, signatureType, funde
20
19
  exchangeContract = options.negRisk
21
20
  ? contractConfig.negRiskExchange
22
21
  : contractConfig.exchange;
23
- // Add taker field for V1 orders (V1 requires it, V2 does not)
24
- orderData.taker = zeroAddress;
25
22
  break;
26
23
  case 2:
27
24
  exchangeContract = options.negRisk
@@ -1 +1 @@
1
- {"version":3,"file":"createMarketOrder.js","sourceRoot":"","sources":["../../../src/order-builder/helpers/createMarketOrder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAmB,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACrC,SAAqB,EACrB,OAAc,EACd,aAA8B,EAC9B,aAAiC,EACjC,eAAkC,EAClC,OAA2B,EAC3B,OAAe,EAC0B,EAAE;IAC3C,MAAM,gBAAgB,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAE3D,yDAAyD;IACzD,MAAM,KAAK,GAAG,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC;IAC7E,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAElD,MAAM,SAAS,GAAG,MAAM,4BAA4B,CACnD,gBAAgB,EAChB,KAAK,EACL,aAAa,EACb,eAAe,EACf,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CACjC,CAAC;IAEF,IAAI,gBAAwB,CAAC;IAC7B,QAAQ,OAAO,EAAE,CAAC;QACjB,KAAK,CAAC;YACL,IAAI,aAAa,KAAK,eAAe,CAAC,SAAS,EAAE,CAAC;gBACjD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;YAC5E,CAAC;YACD,gBAAgB,GAAG,OAAO,CAAC,OAAO;gBACjC,CAAC,CAAC,cAAc,CAAC,eAAe;gBAChC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC;YAC3B,8DAA8D;YAC7D,SAAyB,CAAC,KAAK,GAAG,WAAW,CAAC;YAC/C,MAAM;QACP,KAAK,CAAC;YACL,gBAAgB,GAAG,OAAO,CAAC,OAAO;gBACjC,CAAC,CAAC,cAAc,CAAC,iBAAiB;gBAClC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC;YAC7B,MAAM;QACP;YACC,MAAM,IAAI,KAAK,CAAC,6BAA6B,OAAO,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,UAAU,CAAC,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAC7E,CAAC,CAAC"}
1
+ {"version":3,"file":"createMarketOrder.js","sourceRoot":"","sources":["../../../src/order-builder/helpers/createMarketOrder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAmB,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAO5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACrC,SAAqB,EACrB,OAAc,EACd,aAA8B,EAC9B,aAAiC,EACjC,eAAsD,EACtD,OAA2B,EAC3B,OAAe,EAC0B,EAAE;IAC3C,MAAM,gBAAgB,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAE3D,yDAAyD;IACzD,MAAM,KAAK,GAAG,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC;IAC7E,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAElD,MAAM,SAAS,GAAG,MAAM,4BAA4B,CACnD,gBAAgB,EAChB,KAAK,EACL,aAAa,EACb,eAAe,EACf,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,EACjC,OAAO,CACP,CAAC;IAEF,IAAI,gBAAwB,CAAC;IAC7B,QAAQ,OAAO,EAAE,CAAC;QACjB,KAAK,CAAC;YACL,IAAI,aAAa,KAAK,eAAe,CAAC,SAAS,EAAE,CAAC;gBACjD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;YAC5E,CAAC;YACD,gBAAgB,GAAG,OAAO,CAAC,OAAO;gBACjC,CAAC,CAAC,cAAc,CAAC,eAAe;gBAChC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC;YAC3B,MAAM;QACP,KAAK,CAAC;YACL,gBAAgB,GAAG,OAAO,CAAC,OAAO;gBACjC,CAAC,CAAC,cAAc,CAAC,iBAAiB;gBAClC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC;YAC7B,MAAM;QACP;YACC,MAAM,IAAI,KAAK,CAAC,6BAA6B,OAAO,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,UAAU,CAAC,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAC7E,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { SignedOrderV1, SignedOrderV2 } from "../../order-utils/index.js";
2
2
  import { SignatureTypeV2 } from "../../order-utils/index.js";
3
3
  import { type ClobSigner } from "../../signing/signer.js";
4
- import type { Chain, CreateOrderOptions, UserOrderV2 } from "../../types/index.js";
5
- export declare const createOrder: (eoaSigner: ClobSigner, chainId: Chain, signatureType: SignatureTypeV2, funderAddress: string | undefined, userOrder: UserOrderV2, options: CreateOrderOptions, version: number) => Promise<SignedOrderV1 | SignedOrderV2>;
4
+ import type { Chain, CreateOrderOptions, UserOrderV1, UserOrderV2 } from "../../types/index.js";
5
+ export declare const createOrder: (eoaSigner: ClobSigner, chainId: Chain, signatureType: SignatureTypeV2, funderAddress: string | undefined, userOrder: UserOrderV1 | UserOrderV2, options: CreateOrderOptions, version: number) => Promise<SignedOrderV1 | SignedOrderV2>;
@@ -1,4 +1,3 @@
1
- import { zeroAddress } from "viem";
2
1
  import { getContractConfig } from "../../config.js";
3
2
  import { SignatureTypeV2 } from "../../order-utils/index.js";
4
3
  import { getSignerAddress } from "../../signing/signer.js";
@@ -10,7 +9,7 @@ export const createOrder = async (eoaSigner, chainId, signatureType, funderAddre
10
9
  // If funder address is not given, use the signer address
11
10
  const maker = funderAddress === undefined ? eoaSignerAddress : funderAddress;
12
11
  const contractConfig = getContractConfig(chainId);
13
- const orderData = await buildOrderCreationArgs(eoaSignerAddress, maker, signatureType, userOrder, ROUNDING_CONFIG[options.tickSize]);
12
+ const orderData = await buildOrderCreationArgs(eoaSignerAddress, maker, signatureType, userOrder, ROUNDING_CONFIG[options.tickSize], version);
14
13
  let exchangeContract;
15
14
  switch (version) {
16
15
  case 1:
@@ -20,8 +19,6 @@ export const createOrder = async (eoaSigner, chainId, signatureType, funderAddre
20
19
  exchangeContract = options.negRisk
21
20
  ? contractConfig.negRiskExchange
22
21
  : contractConfig.exchange;
23
- // Add taker field for V1 orders (V1 requires it, V2 does not)
24
- orderData.taker = zeroAddress;
25
22
  break;
26
23
  case 2:
27
24
  exchangeContract = options.negRisk
@@ -1 +1 @@
1
- {"version":3,"file":"createOrder.js","sourceRoot":"","sources":["../../../src/order-builder/helpers/createOrder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAmB,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE5E,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAC/B,SAAqB,EACrB,OAAc,EACd,aAA8B,EAC9B,aAAiC,EACjC,SAAsB,EACtB,OAA2B,EAC3B,OAAe,EAC0B,EAAE;IAC3C,MAAM,gBAAgB,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAE3D,yDAAyD;IACzD,MAAM,KAAK,GAAG,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC;IAC7E,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAElD,MAAM,SAAS,GAAG,MAAM,sBAAsB,CAC7C,gBAAgB,EAChB,KAAK,EACL,aAAa,EACb,SAAS,EACT,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CACjC,CAAC;IACF,IAAI,gBAAwB,CAAC;IAC7B,QAAQ,OAAO,EAAE,CAAC;QACjB,KAAK,CAAC;YACL,IAAI,aAAa,KAAK,eAAe,CAAC,SAAS,EAAE,CAAC;gBACjD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;YAC5E,CAAC;YACD,gBAAgB,GAAG,OAAO,CAAC,OAAO;gBACjC,CAAC,CAAC,cAAc,CAAC,eAAe;gBAChC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC;YAC3B,8DAA8D;YAC7D,SAAyB,CAAC,KAAK,GAAG,WAAW,CAAC;YAC/C,MAAM;QACP,KAAK,CAAC;YACL,gBAAgB,GAAG,OAAO,CAAC,OAAO;gBACjC,CAAC,CAAC,cAAc,CAAC,iBAAiB;gBAClC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC;YAC7B,MAAM;QACP;YACC,MAAM,IAAI,KAAK,CAAC,6BAA6B,OAAO,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,UAAU,CAAC,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAC7E,CAAC,CAAC"}
1
+ {"version":3,"file":"createOrder.js","sourceRoot":"","sources":["../../../src/order-builder/helpers/createOrder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAmB,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE5E,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAC/B,SAAqB,EACrB,OAAc,EACd,aAA8B,EAC9B,aAAiC,EACjC,SAAoC,EACpC,OAA2B,EAC3B,OAAe,EAC0B,EAAE;IAC3C,MAAM,gBAAgB,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAE3D,yDAAyD;IACzD,MAAM,KAAK,GAAG,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC;IAC7E,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAElD,MAAM,SAAS,GAAG,MAAM,sBAAsB,CAC7C,gBAAgB,EAChB,KAAK,EACL,aAAa,EACb,SAAS,EACT,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,EACjC,OAAO,CACP,CAAC;IACF,IAAI,gBAAwB,CAAC;IAC7B,QAAQ,OAAO,EAAE,CAAC;QACjB,KAAK,CAAC;YACL,IAAI,aAAa,KAAK,eAAe,CAAC,SAAS,EAAE,CAAC;gBACjD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;YAC5E,CAAC;YACD,gBAAgB,GAAG,OAAO,CAAC,OAAO;gBACjC,CAAC,CAAC,cAAc,CAAC,eAAe;gBAChC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC;YAC3B,MAAM;QACP,KAAK,CAAC;YACL,gBAAgB,GAAG,OAAO,CAAC,OAAO;gBACjC,CAAC,CAAC,cAAc,CAAC,iBAAiB;gBAClC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC;YAC7B,MAAM;QACP;YACC,MAAM,IAAI,KAAK,CAAC,6BAA6B,OAAO,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,UAAU,CAAC,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAC7E,CAAC,CAAC"}
@@ -209,6 +209,9 @@ export interface RoundConfig {
209
209
  export interface TickSizes {
210
210
  [tokenId: string]: TickSize;
211
211
  }
212
+ export interface FeeRates {
213
+ [tokenId: string]: number;
214
+ }
212
215
  export interface NegRisk {
213
216
  [tokenId: string]: boolean;
214
217
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@polymarket/clob-client-v2",
3
3
  "description": "TypeScript client for Polymarket's CLOB",
4
- "version": "0.2.7",
4
+ "version": "1.0.0",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",