@polymarket/clob-client 5.3.0 → 5.7.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.
Files changed (40) hide show
  1. package/README.md +25 -6
  2. package/dist/client.d.ts +6 -8
  3. package/dist/client.js +33 -28
  4. package/dist/client.js.map +1 -1
  5. package/dist/endpoints.js.map +1 -1
  6. package/dist/errors.js.map +1 -1
  7. package/dist/headers/index.d.ts +4 -5
  8. package/dist/headers/index.js +3 -2
  9. package/dist/headers/index.js.map +1 -1
  10. package/dist/http-helpers/index.js +8 -9
  11. package/dist/http-helpers/index.js.map +1 -1
  12. package/dist/index.d.ts +5 -4
  13. package/dist/index.js +3 -3
  14. package/dist/index.js.map +1 -1
  15. package/dist/order-builder/builder.d.ts +6 -7
  16. package/dist/order-builder/builder.js +2 -2
  17. package/dist/order-builder/builder.js.map +1 -1
  18. package/dist/order-builder/helpers.d.ts +8 -9
  19. package/dist/order-builder/helpers.js +34 -37
  20. package/dist/order-builder/helpers.js.map +1 -1
  21. package/dist/order-utils/exchange.order.builder.d.ts +2 -3
  22. package/dist/order-utils/exchange.order.builder.js +19 -8
  23. package/dist/order-utils/exchange.order.builder.js.map +1 -1
  24. package/dist/order-utils/model/order-side.model.js.map +1 -1
  25. package/dist/order-utils/model/signature-types.model.js.map +1 -1
  26. package/dist/rfq-client.d.ts +1 -1
  27. package/dist/rfq-client.js +29 -23
  28. package/dist/rfq-client.js.map +1 -1
  29. package/dist/rfq-deps.d.ts +4 -5
  30. package/dist/signer.d.ts +22 -0
  31. package/dist/signer.js +50 -0
  32. package/dist/signer.js.map +1 -0
  33. package/dist/signing/eip712.d.ts +2 -3
  34. package/dist/signing/eip712.js +9 -3
  35. package/dist/signing/eip712.js.map +1 -1
  36. package/dist/types.js.map +1 -1
  37. package/dist/utilities.d.ts +1 -1
  38. package/dist/utilities.js +4 -4
  39. package/dist/utilities.js.map +1 -1
  40. package/package.json +16 -32
package/dist/index.d.ts CHANGED
@@ -1,10 +1,11 @@
1
1
  export * from "./client.ts";
2
- export * from "./types.ts";
3
- export * from "./order-builder/index.ts";
4
2
  export * from "./config.ts";
5
3
  export * from "./errors.ts";
6
4
  export * from "./headers/index.ts";
5
+ export * from "./order-builder/index.ts";
6
+ export type { EIP712Object, EIP712ObjectValue, EIP712Parameter, EIP712TypedData, EIP712Types, Order, OrderData, OrderHash, OrderSignature, SignedOrder, } from "./order-utils/index.ts";
7
+ export { ExchangeOrderBuilder, Side as OrderSide, SignatureType } from "./order-utils/index.ts";
7
8
  export * from "./rfq-client.ts";
8
9
  export * from "./rfq-deps.ts";
9
- export { ExchangeOrderBuilder, SignatureType, Side as OrderSide } from "./order-utils/index.ts";
10
- export type { EIP712Object, EIP712ObjectValue, EIP712Parameter, EIP712TypedData, EIP712Types, Order, OrderData, OrderHash, OrderSignature, SignedOrder, } from "./order-utils/index.ts";
10
+ export type { ClobSigner } from "./signer.ts";
11
+ export * from "./types.ts";
package/dist/index.js CHANGED
@@ -1,10 +1,10 @@
1
1
  export * from "./client.js";
2
- export * from "./types.js";
3
- export * from "./order-builder/index.js";
4
2
  export * from "./config.js";
5
3
  export * from "./errors.js";
6
4
  export * from "./headers/index.js";
5
+ export * from "./order-builder/index.js";
6
+ export { ExchangeOrderBuilder, Side as OrderSide, SignatureType } from "./order-utils/index.js";
7
7
  export * from "./rfq-client.js";
8
8
  export * from "./rfq-deps.js";
9
- export { ExchangeOrderBuilder, SignatureType, Side as OrderSide } from "./order-utils/index.js";
9
+ export * from "./types.js";
10
10
  //# sourceMappingURL=index.js.map
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,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,wBAAwB,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;AAazC,OAAO,EAAE,oBAAoB,EAAE,IAAI,IAAI,SAAS,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAChG,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAE9B,cAAc,YAAY,CAAC"}
@@ -1,10 +1,9 @@
1
- import type { Wallet } from "@ethersproject/wallet";
2
- import type { JsonRpcSigner } from "@ethersproject/providers";
3
- import { SignatureType } from "../order-utils/index.ts";
4
1
  import type { SignedOrder } from "../order-utils/index.ts";
2
+ import { SignatureType } from "../order-utils/index.ts";
3
+ import type { ClobSigner } from "../signer.ts";
5
4
  import type { Chain, CreateOrderOptions, UserMarketOrder, UserOrder } from "../types.ts";
6
5
  export declare class OrderBuilder {
7
- readonly signer: Wallet | JsonRpcSigner;
6
+ readonly signer: ClobSigner;
8
7
  readonly chainId: Chain;
9
8
  readonly signatureType: SignatureType;
10
9
  readonly funderAddress?: string;
@@ -12,13 +11,13 @@ export declare class OrderBuilder {
12
11
  * Optional function to dynamically resolve the signer.
13
12
  * If provided, this function will be called to obtain a fresh signer instance
14
13
  * (e.g., for smart contract wallets or when the signer may change).
15
- * Should return a Wallet or JsonRpcSigner, or a Promise resolving to one.
14
+ * Should return an ethers-compatible signer or WalletClient, or a Promise resolving to one.
16
15
  * If not provided, the static `signer` property is used.
17
16
  */
18
17
  private getSigner?;
19
- constructor(signer: Wallet | JsonRpcSigner, chainId: Chain, signatureType?: SignatureType, funderAddress?: string, getSigner?: () => Promise<Wallet | JsonRpcSigner> | (Wallet | JsonRpcSigner));
18
+ constructor(signer: ClobSigner, chainId: Chain, signatureType?: SignatureType, funderAddress?: string, getSigner?: () => Promise<ClobSigner> | ClobSigner);
20
19
  /**
21
- * Generate and sign a order
20
+ * Generate and sign an order
22
21
  */
23
22
  buildOrder(userOrder: UserOrder, options: CreateOrderOptions): Promise<SignedOrder>;
24
23
  /**
@@ -13,7 +13,7 @@ export class OrderBuilder {
13
13
  * Optional function to dynamically resolve the signer.
14
14
  * If provided, this function will be called to obtain a fresh signer instance
15
15
  * (e.g., for smart contract wallets or when the signer may change).
16
- * Should return a Wallet or JsonRpcSigner, or a Promise resolving to one.
16
+ * Should return an ethers-compatible signer or WalletClient, or a Promise resolving to one.
17
17
  * If not provided, the static `signer` property is used.
18
18
  */
19
19
  getSigner;
@@ -25,7 +25,7 @@ export class OrderBuilder {
25
25
  this.getSigner = getSigner;
26
26
  }
27
27
  /**
28
- * Generate and sign a order
28
+ * Generate and sign an order
29
29
  */
30
30
  async buildOrder(userOrder, options) {
31
31
  const signer = await this.resolveSigner();
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/order-builder/builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG9D,MAAM,OAAO,YAAY;IACZ,MAAM,CAAyB;IAE/B,OAAO,CAAQ;IAExB,wDAAwD;IAC/C,aAAa,CAAgB;IAEtC,wCAAwC;IACxC,qEAAqE;IACrE,uDAAuD;IAC9C,aAAa,CAAU;IAEhC;;;;;;OAMG;IACK,SAAS,CAAoE;IAErF,YACI,MAA8B,EAC9B,OAAc,EACd,aAA6B,EAC7B,aAAsB,EACtB,SAA4E;QAE5E,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC;QACrF,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,UAAU,CACnB,SAAoB,EACpB,OAA2B;QAE3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC1C,OAAO,WAAW,CACd,MAAM,EACN,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,aAAa,EAClB,SAAS,EACT,OAAO,CACV,CAAC;IACN,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,gBAAgB,CACzB,eAAgC,EAChC,OAA2B;QAE3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC1C,OAAO,iBAAiB,CACpB,MAAM,EACN,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,aAAa,EAClB,eAAe,EACf,OAAO,CACV,CAAC;IACN,CAAC;IAED,oDAAoD;IAC5C,KAAK,CAAC,aAAa;QACvB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;YAC3E,OAAO,CAAC,CAAC;QACb,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;CACJ"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/order-builder/builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE9D,MAAM,OAAO,YAAY;IACZ,MAAM,CAAa;IAEnB,OAAO,CAAQ;IAExB,wDAAwD;IAC/C,aAAa,CAAgB;IAEtC,wCAAwC;IACxC,qEAAqE;IACrE,uDAAuD;IAC9C,aAAa,CAAU;IAEhC;;;;;;OAMG;IACK,SAAS,CAA0C;IAE3D,YACI,MAAkB,EAClB,OAAc,EACd,aAA6B,EAC7B,aAAsB,EACtB,SAAkD;QAElD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC;QACrF,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,UAAU,CACnB,SAAoB,EACpB,OAA2B;QAE3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC1C,OAAO,WAAW,CACd,MAAM,EACN,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,aAAa,EAClB,SAAS,EACT,OAAO,CACV,CAAC;IACN,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,gBAAgB,CACzB,eAAgC,EAChC,OAA2B;QAE3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC1C,OAAO,iBAAiB,CACpB,MAAM,EACN,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,aAAa,EAClB,eAAe,EACf,OAAO,CACV,CAAC;IACN,CAAC;IAED,oDAAoD;IAC5C,KAAK,CAAC,aAAa;QACvB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;YAC3E,OAAO,CAAC,CAAC;QACb,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;CACJ"}
@@ -1,12 +1,11 @@
1
- import type { JsonRpcSigner } from "@ethersproject/providers";
2
- import type { Wallet } from "@ethersproject/wallet";
3
- import { SignatureType, Side as UtilsSide } from "../order-utils/index.ts";
4
1
  import type { OrderData, SignedOrder } from "../order-utils/index.ts";
5
- import { Side, OrderType } from "../types.ts";
6
- import type { UserOrder, Chain, UserMarketOrder, TickSize, RoundConfig, CreateOrderOptions, OrderSummary } from "../types.ts";
2
+ import { type SignatureType, Side as UtilsSide } from "../order-utils/index.ts";
3
+ import type { ClobSigner } from "../signer.ts";
4
+ import type { Chain, CreateOrderOptions, OrderSummary, RoundConfig, TickSize, UserMarketOrder, UserOrder } from "../types.ts";
5
+ import { OrderType, Side } from "../types.ts";
7
6
  export declare const ROUNDING_CONFIG: Record<TickSize, RoundConfig>;
8
7
  /**
9
- * Generate and sign a order
8
+ * Generate and sign an order
10
9
  *
11
10
  * @param signer
12
11
  * @param exchangeAddress ctf exchange contract address
@@ -14,7 +13,7 @@ export declare const ROUNDING_CONFIG: Record<TickSize, RoundConfig>;
14
13
  * @param OrderData
15
14
  * @returns SignedOrder
16
15
  */
17
- export declare const buildOrder: (signer: Wallet | JsonRpcSigner, exchangeAddress: string, chainId: number, orderData: OrderData) => Promise<SignedOrder>;
16
+ export declare const buildOrder: (signer: ClobSigner, exchangeAddress: string, chainId: number, orderData: OrderData) => Promise<SignedOrder>;
18
17
  export declare const getOrderRawAmounts: (side: Side, size: number, price: number, roundConfig: RoundConfig) => {
19
18
  side: UtilsSide;
20
19
  rawMakerAmt: number;
@@ -24,7 +23,7 @@ export declare const getOrderRawAmounts: (side: Side, size: number, price: numbe
24
23
  * Translate simple user order to args used to generate Orders
25
24
  */
26
25
  export declare const buildOrderCreationArgs: (signer: string, maker: string, signatureType: SignatureType, userOrder: UserOrder, roundConfig: RoundConfig) => Promise<OrderData>;
27
- export declare const createOrder: (eoaSigner: Wallet | JsonRpcSigner, chainId: Chain, signatureType: SignatureType, funderAddress: string | undefined, userOrder: UserOrder, options: CreateOrderOptions) => Promise<SignedOrder>;
26
+ export declare const createOrder: (eoaSigner: ClobSigner, chainId: Chain, signatureType: SignatureType, funderAddress: string | undefined, userOrder: UserOrder, options: CreateOrderOptions) => Promise<SignedOrder>;
28
27
  export declare const getMarketOrderRawAmounts: (side: Side, amount: number, price: number, roundConfig: RoundConfig) => {
29
28
  side: UtilsSide;
30
29
  rawMakerAmt: number;
@@ -34,7 +33,7 @@ export declare const getMarketOrderRawAmounts: (side: Side, amount: number, pric
34
33
  * Translate simple user market order to args used to generate Orders
35
34
  */
36
35
  export declare const buildMarketOrderCreationArgs: (signer: string, maker: string, signatureType: SignatureType, userMarketOrder: UserMarketOrder, roundConfig: RoundConfig) => Promise<OrderData>;
37
- export declare const createMarketOrder: (eoaSigner: Wallet | JsonRpcSigner, chainId: Chain, signatureType: SignatureType, funderAddress: string | undefined, userMarketOrder: UserMarketOrder, options: CreateOrderOptions) => Promise<SignedOrder>;
36
+ export declare const createMarketOrder: (eoaSigner: ClobSigner, chainId: Chain, signatureType: SignatureType, funderAddress: string | undefined, userMarketOrder: UserMarketOrder, options: CreateOrderOptions) => Promise<SignedOrder>;
38
37
  /**
39
38
  * calculateBuyMarketPrice calculates the market price to buy a $$ amount
40
39
  * @param positions
@@ -1,8 +1,9 @@
1
- import { parseUnits } from "@ethersproject/units";
2
- import { ExchangeOrderBuilder, SignatureType, Side as UtilsSide, } from "../order-utils/index.js";
3
- import { Side, OrderType } from "../types.js";
4
- import { decimalPlaces, roundDown, roundNormal, roundUp } from "../utilities.js";
1
+ import { parseUnits } from "viem";
5
2
  import { COLLATERAL_TOKEN_DECIMALS, getContractConfig } from "../config.js";
3
+ import { ExchangeOrderBuilder, Side as UtilsSide, } from "../order-utils/index.js";
4
+ import { getSignerAddress } from "../signer.js";
5
+ import { OrderType, Side } from "../types.js";
6
+ import { decimalPlaces, roundDown, roundNormal, roundUp } from "../utilities.js";
6
7
  export const ROUNDING_CONFIG = {
7
8
  "0.1": {
8
9
  price: 1,
@@ -26,7 +27,7 @@ export const ROUNDING_CONFIG = {
26
27
  },
27
28
  };
28
29
  /**
29
- * Generate and sign a order
30
+ * Generate and sign an order
30
31
  *
31
32
  * @param signer
32
33
  * @param exchangeAddress ctf exchange contract address
@@ -56,21 +57,19 @@ export const getOrderRawAmounts = (side, size, price, roundConfig) => {
56
57
  rawTakerAmt,
57
58
  };
58
59
  }
59
- else {
60
- const rawMakerAmt = roundDown(size, roundConfig.size);
61
- let rawTakerAmt = rawMakerAmt * rawPrice;
60
+ const rawMakerAmt = roundDown(size, roundConfig.size);
61
+ let rawTakerAmt = rawMakerAmt * rawPrice;
62
+ if (decimalPlaces(rawTakerAmt) > roundConfig.amount) {
63
+ rawTakerAmt = roundUp(rawTakerAmt, roundConfig.amount + 4);
62
64
  if (decimalPlaces(rawTakerAmt) > roundConfig.amount) {
63
- rawTakerAmt = roundUp(rawTakerAmt, roundConfig.amount + 4);
64
- if (decimalPlaces(rawTakerAmt) > roundConfig.amount) {
65
- rawTakerAmt = roundDown(rawTakerAmt, roundConfig.amount);
66
- }
65
+ rawTakerAmt = roundDown(rawTakerAmt, roundConfig.amount);
67
66
  }
68
- return {
69
- side: UtilsSide.SELL,
70
- rawMakerAmt,
71
- rawTakerAmt,
72
- };
73
67
  }
68
+ return {
69
+ side: UtilsSide.SELL,
70
+ rawMakerAmt,
71
+ rawTakerAmt,
72
+ };
74
73
  };
75
74
  /**
76
75
  * Translate simple user order to args used to generate Orders
@@ -115,7 +114,7 @@ export const buildOrderCreationArgs = async (signer, maker, signatureType, userO
115
114
  };
116
115
  };
117
116
  export const createOrder = async (eoaSigner, chainId, signatureType, funderAddress, userOrder, options) => {
118
- const eoaSignerAddress = await eoaSigner.getAddress();
117
+ const eoaSignerAddress = await getSignerAddress(eoaSigner);
119
118
  // If funder address is not given, use the signer address
120
119
  const maker = funderAddress === undefined ? eoaSignerAddress : funderAddress;
121
120
  const contractConfig = getContractConfig(chainId);
@@ -143,21 +142,19 @@ export const getMarketOrderRawAmounts = (side, amount, price, roundConfig) => {
143
142
  rawTakerAmt,
144
143
  };
145
144
  }
146
- else {
147
- const rawMakerAmt = roundDown(amount, roundConfig.size);
148
- let rawTakerAmt = rawMakerAmt * rawPrice;
145
+ const rawMakerAmt = roundDown(amount, roundConfig.size);
146
+ let rawTakerAmt = rawMakerAmt * rawPrice;
147
+ if (decimalPlaces(rawTakerAmt) > roundConfig.amount) {
148
+ rawTakerAmt = roundUp(rawTakerAmt, roundConfig.amount + 4);
149
149
  if (decimalPlaces(rawTakerAmt) > roundConfig.amount) {
150
- rawTakerAmt = roundUp(rawTakerAmt, roundConfig.amount + 4);
151
- if (decimalPlaces(rawTakerAmt) > roundConfig.amount) {
152
- rawTakerAmt = roundDown(rawTakerAmt, roundConfig.amount);
153
- }
150
+ rawTakerAmt = roundDown(rawTakerAmt, roundConfig.amount);
154
151
  }
155
- return {
156
- side: UtilsSide.SELL,
157
- rawMakerAmt,
158
- rawTakerAmt,
159
- };
160
152
  }
153
+ return {
154
+ side: UtilsSide.SELL,
155
+ rawMakerAmt,
156
+ rawTakerAmt,
157
+ };
161
158
  };
162
159
  /**
163
160
  * Translate simple user market order to args used to generate Orders
@@ -202,7 +199,7 @@ export const buildMarketOrderCreationArgs = async (signer, maker, signatureType,
202
199
  };
203
200
  };
204
201
  export const createMarketOrder = async (eoaSigner, chainId, signatureType, funderAddress, userMarketOrder, options) => {
205
- const eoaSignerAddress = await eoaSigner.getAddress();
202
+ const eoaSignerAddress = await getSignerAddress(eoaSigner);
206
203
  // If funder address is not given, use the signer address
207
204
  const maker = funderAddress === undefined ? eoaSignerAddress : funderAddress;
208
205
  const contractConfig = getContractConfig(chainId);
@@ -234,15 +231,15 @@ export const calculateBuyMarketPrice = (positions, amountToMatch, orderType) =>
234
231
  */
235
232
  for (let i = positions.length - 1; i >= 0; i--) {
236
233
  const p = positions[i];
237
- sum += parseFloat(p.size) * parseFloat(p.price);
234
+ sum += Number.parseFloat(p.size) * Number.parseFloat(p.price);
238
235
  if (sum >= amountToMatch) {
239
- return parseFloat(p.price);
236
+ return Number.parseFloat(p.price);
240
237
  }
241
238
  }
242
239
  if (orderType === OrderType.FOK) {
243
240
  throw new Error("no match");
244
241
  }
245
- return parseFloat(positions[0].price);
242
+ return Number.parseFloat(positions[0].price);
246
243
  };
247
244
  /**
248
245
  * calculateSellMarketPrice calculates the market price to sell a shares
@@ -266,14 +263,14 @@ export const calculateSellMarketPrice = (positions, amountToMatch, orderType) =>
266
263
  */
267
264
  for (let i = positions.length - 1; i >= 0; i--) {
268
265
  const p = positions[i];
269
- sum += parseFloat(p.size);
266
+ sum += Number.parseFloat(p.size);
270
267
  if (sum >= amountToMatch) {
271
- return parseFloat(p.price);
268
+ return Number.parseFloat(p.price);
272
269
  }
273
270
  }
274
271
  if (orderType === OrderType.FOK) {
275
272
  throw new Error("no match");
276
273
  }
277
- return parseFloat(positions[0].price);
274
+ return Number.parseFloat(positions[0].price);
278
275
  };
279
276
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/order-builder/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/order-builder/helpers.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import type { JsonRpcSigner } from "@ethersproject/providers";
2
- import type { Wallet } from "@ethersproject/wallet";
1
+ import type { ClobSigner } from "../signer.ts";
3
2
  import type { EIP712TypedData } from "./model/eip712.model.ts";
4
3
  import type { Order, OrderData, OrderHash, OrderSignature, SignedOrder } from "./model/order.model.ts";
5
4
  import { generateOrderSalt } from "./utils.ts";
@@ -8,7 +7,7 @@ export declare class ExchangeOrderBuilder {
8
7
  private readonly chainId;
9
8
  private readonly signer;
10
9
  private readonly generateSalt;
11
- constructor(contractAddress: string, chainId: number, signer: Wallet | JsonRpcSigner, generateSalt?: typeof generateOrderSalt);
10
+ constructor(contractAddress: string, chainId: number, signer: ClobSigner, generateSalt?: typeof generateOrderSalt);
12
11
  /**
13
12
  * Build an order object including the signature.
14
13
  */
@@ -1,4 +1,5 @@
1
- import { ethers } from "ethers";
1
+ import { hashTypedData } from "viem";
2
+ import { getSignerAddress, signTypedDataWithSigner } from "../signer.js";
2
3
  import { EIP712_DOMAIN, ORDER_STRUCTURE, PROTOCOL_NAME, PROTOCOL_VERSION, } from "./exchange.order.const.js";
3
4
  import { SignatureType } from "./model/signature-types.model.js";
4
5
  import { generateOrderSalt } from "./utils.js";
@@ -32,7 +33,7 @@ export class ExchangeOrderBuilder {
32
33
  if (typeof signer === "undefined" || !signer) {
33
34
  signer = maker;
34
35
  }
35
- const signerAddress = await this.signer.getAddress();
36
+ const signerAddress = await getSignerAddress(this.signer);
36
37
  if (signer !== signerAddress) {
37
38
  throw new Error("signer does not match");
38
39
  }
@@ -93,17 +94,27 @@ export class ExchangeOrderBuilder {
93
94
  /**
94
95
  * Generates order signature from EIP712 typed data.
95
96
  */
96
- buildOrderSignature(typedData) {
97
- delete typedData.types.EIP712Domain;
98
- return this.signer._signTypedData(typedData.domain, typedData.types, typedData.message);
97
+ async buildOrderSignature(typedData) {
98
+ const { EIP712Domain: _, ...orderTypes } = typedData.types;
99
+ return signTypedDataWithSigner({
100
+ signer: this.signer,
101
+ domain: typedData.domain,
102
+ types: orderTypes,
103
+ value: typedData.message,
104
+ primaryType: typedData.primaryType,
105
+ });
99
106
  }
100
107
  /**
101
108
  * Generates the hash of the order from EIP712 typed data.
102
109
  */
103
110
  buildOrderHash(orderTypedData) {
104
- const orderTypes = { ...orderTypedData.types };
105
- delete orderTypes.EIP712Domain;
106
- return ethers.utils._TypedDataEncoder.hash(orderTypedData.domain, orderTypes, orderTypedData.message);
111
+ const { EIP712Domain: _, ...orderTypes } = orderTypedData.types;
112
+ return hashTypedData({
113
+ domain: orderTypedData.domain,
114
+ types: orderTypes,
115
+ primaryType: orderTypedData.primaryType,
116
+ message: orderTypedData.message,
117
+ });
107
118
  }
108
119
  }
109
120
  //# sourceMappingURL=exchange.order.builder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"exchange.order.builder.js","sourceRoot":"","sources":["../../src/order-utils/exchange.order.builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exchange.order.builder.js","sourceRoot":"","sources":["../../src/order-utils/exchange.order.builder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"order-side.model.js","sourceRoot":"","sources":["../../../src/order-utils/model/order-side.model.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,IAIX;AAJD,WAAY,IAAI;IACZ,6BAAG,CAAA;IAEH,+BAAI,CAAA;AACR,CAAC,EAJW,IAAI,KAAJ,IAAI,QAIf"}
1
+ {"version":3,"file":"order-side.model.js","sourceRoot":"","sources":["../../../src/order-utils/model/order-side.model.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,IAIX;AAJD,WAAY,IAAI;IACZ,6BAAO,CAAA;IAEP,+BAAQ,CAAA;AACZ,CAAC,EAJW,IAAI,KAAJ,IAAI,QAIf"}
@@ -1 +1 @@
1
- {"version":3,"file":"signature-types.model.js","sourceRoot":"","sources":["../../../src/order-utils/model/signature-types.model.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,aAeX;AAfD,WAAY,aAAa;IACrB;;OAEG;IACH,+CAAG,CAAA;IAEH;;OAEG;IACH,6DAAU,CAAA;IAEV;;OAEG;IACH,yEAAgB,CAAA;AACpB,CAAC,EAfW,aAAa,KAAb,aAAa,QAexB"}
1
+ {"version":3,"file":"signature-types.model.js","sourceRoot":"","sources":["../../../src/order-utils/model/signature-types.model.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,aAeX;AAfD,WAAY,aAAa;IACrB;;OAEG;IACH,+CAAO,CAAA;IAEP;;OAEG;IACH,6DAAc,CAAA;IAEd;;OAEG;IACH,yEAAoB,CAAA;AACxB,CAAC,EAfW,aAAa,KAAb,aAAa,QAexB"}
@@ -1,5 +1,5 @@
1
- import type { CreateOrderOptions, RfqUserOrder, RfqUserQuote, CancelRfqQuoteParams, GetRfqQuotesParams, GetRfqBestQuoteParams, CancelRfqRequestParams, AcceptQuoteParams, ApproveOrderParams, GetRfqRequestsParams, RfqRequestsResponse, RfqQuotesResponse, RfqRequestResponse, RfqQuoteResponse, RfqQuote } from "./types.ts";
2
1
  import type { IRfqClient, RfqDeps } from "./rfq-deps.ts";
2
+ import type { AcceptQuoteParams, ApproveOrderParams, CancelRfqQuoteParams, CancelRfqRequestParams, CreateOrderOptions, GetRfqBestQuoteParams, GetRfqQuotesParams, GetRfqRequestsParams, RfqQuote, RfqQuoteResponse, RfqQuotesResponse, RfqRequestResponse, RfqRequestsResponse, RfqUserOrder, RfqUserQuote } from "./types.ts";
3
3
  /**
4
4
  * RfqClient provides RFQ (Request for Quote) functionality on top of a CLOB client.
5
5
  */
@@ -1,12 +1,12 @@
1
- import { RfqMatchType, Side } from "./types.js";
1
+ import { parseUnits } from "viem";
2
+ import { COLLATERAL_TOKEN_DECIMALS } from "./config.js";
3
+ import { CANCEL_RFQ_QUOTE, CANCEL_RFQ_REQUEST, CREATE_RFQ_QUOTE, CREATE_RFQ_REQUEST, GET_RFQ_BEST_QUOTE, GET_RFQ_QUOTER_QUOTES, GET_RFQ_REQUESTER_QUOTES, GET_RFQ_REQUESTS, RFQ_CONFIG, RFQ_QUOTE_APPROVE, RFQ_REQUESTS_ACCEPT, } from "./endpoints.js";
4
+ import { L1_AUTH_UNAVAILABLE_ERROR, L2_AUTH_NOT_AVAILABLE } from "./errors.js";
2
5
  import { createL2Headers } from "./headers/index.js";
3
6
  import { DELETE, GET, POST } from "./http-helpers/index.js";
4
- import { CANCEL_RFQ_REQUEST, CREATE_RFQ_QUOTE, GET_RFQ_REQUESTER_QUOTES, GET_RFQ_QUOTER_QUOTES, GET_RFQ_BEST_QUOTE, CANCEL_RFQ_QUOTE, CREATE_RFQ_REQUEST, RFQ_CONFIG, GET_RFQ_REQUESTS, RFQ_REQUESTS_ACCEPT, RFQ_QUOTE_APPROVE, } from "./endpoints.js";
5
7
  import { ROUNDING_CONFIG } from "./order-builder/helpers.js";
8
+ import { RfqMatchType, Side } from "./types.js";
6
9
  import { roundDown, roundNormal } from "./utilities.js";
7
- import { parseUnits } from "@ethersproject/units";
8
- import { COLLATERAL_TOKEN_DECIMALS } from "./config.js";
9
- import { L1_AUTH_UNAVAILABLE_ERROR, L2_AUTH_NOT_AVAILABLE } from "./errors.js";
10
10
  // RFQ list params need to be repeated e.g. quoteIds=...&quoteIds=...
11
11
  const buildRepeatedQuery = (params) => {
12
12
  const sp = new URLSearchParams();
@@ -17,7 +17,8 @@ const buildRepeatedQuery = (params) => {
17
17
  return;
18
18
  }
19
19
  if (Array.isArray(value)) {
20
- value.forEach((v) => sp.append(key, String(v)));
20
+ for (const v of value)
21
+ sp.append(key, String(v));
21
22
  }
22
23
  else {
23
24
  sp.append(key, String(value));
@@ -45,8 +46,8 @@ export class RfqClient {
45
46
  const roundedPrice = roundNormal(price, roundConfig.price).toFixed(roundConfig.price);
46
47
  const roundedSize = roundDown(size, roundConfig.size).toFixed(roundConfig.size);
47
48
  // Calculate amounts based on side
48
- const sizeNum = parseFloat(roundedSize);
49
- const priceNum = parseFloat(roundedPrice);
49
+ const sizeNum = Number.parseFloat(roundedSize);
50
+ const priceNum = Number.parseFloat(roundedPrice);
50
51
  let amountIn;
51
52
  let amountOut;
52
53
  let assetIn;
@@ -107,7 +108,9 @@ export class RfqClient {
107
108
  };
108
109
  const headers = await createL2Headers(this.deps.signer, this.deps.creds, l2HeaderArgs, this.deps.useServerTime ? await this.deps.getServerTime() : undefined);
109
110
  const query = buildRepeatedQuery(params);
110
- const url = query ? `${this.deps.host}${endpoint}?${query}` : `${this.deps.host}${endpoint}`;
111
+ const url = query
112
+ ? `${this.deps.host}${endpoint}?${query}`
113
+ : `${this.deps.host}${endpoint}`;
111
114
  return this.deps.get(url, { headers });
112
115
  }
113
116
  /**
@@ -122,8 +125,8 @@ export class RfqClient {
122
125
  const roundedPrice = roundNormal(price, roundConfig.price).toFixed(roundConfig.price);
123
126
  const roundedSize = roundDown(size, roundConfig.size).toFixed(roundConfig.size);
124
127
  // Calculate amounts based on side
125
- const sizeNum = parseFloat(roundedSize);
126
- const priceNum = parseFloat(roundedPrice);
128
+ const sizeNum = Number.parseFloat(roundedSize);
129
+ const priceNum = Number.parseFloat(roundedPrice);
127
130
  let amountIn;
128
131
  let amountOut;
129
132
  let assetIn;
@@ -176,7 +179,9 @@ export class RfqClient {
176
179
  };
177
180
  const headers = await createL2Headers(this.deps.signer, this.deps.creds, l2HeaderArgs, this.deps.useServerTime ? await this.deps.getServerTime() : undefined);
178
181
  const query = buildRepeatedQuery(params);
179
- const url = query ? `${this.deps.host}${endpoint}?${query}` : `${this.deps.host}${endpoint}`;
182
+ const url = query
183
+ ? `${this.deps.host}${endpoint}?${query}`
184
+ : `${this.deps.host}${endpoint}`;
180
185
  return this.deps.get(url, { headers });
181
186
  }
182
187
  /**
@@ -192,7 +197,9 @@ export class RfqClient {
192
197
  };
193
198
  const headers = await createL2Headers(this.deps.signer, this.deps.creds, l2HeaderArgs, this.deps.useServerTime ? await this.deps.getServerTime() : undefined);
194
199
  const query = buildRepeatedQuery(params);
195
- const url = query ? `${this.deps.host}${endpoint}?${query}` : `${this.deps.host}${endpoint}`;
200
+ const url = query
201
+ ? `${this.deps.host}${endpoint}?${query}`
202
+ : `${this.deps.host}${endpoint}`;
196
203
  return this.deps.get(url, { headers });
197
204
  }
198
205
  /**
@@ -263,7 +270,7 @@ export class RfqClient {
263
270
  const order = await this.deps.createOrder({
264
271
  tokenID: token,
265
272
  price: orderPayload.price,
266
- size: parseFloat(size),
273
+ size: Number.parseFloat(size),
267
274
  side: orderSide,
268
275
  expiration: payload.expiration,
269
276
  });
@@ -275,9 +282,9 @@ export class RfqClient {
275
282
  quoteId: payload.quoteId,
276
283
  owner: this.deps.creds.key,
277
284
  ...order,
278
- expiration: parseInt(order.expiration),
285
+ expiration: Number.parseInt(order.expiration, 10),
279
286
  side: orderSide,
280
- salt: parseInt(order.salt.toString())
287
+ salt: Number.parseInt(order.salt.toString(), 10),
281
288
  };
282
289
  const endpoint = RFQ_REQUESTS_ACCEPT;
283
290
  const l2HeaderArgs = {
@@ -310,12 +317,11 @@ export class RfqClient {
310
317
  const rfqQuote = rfqQuotes.data[0];
311
318
  // Create an order based on the quote details
312
319
  const side = rfqQuote.side === "BUY" ? Side.BUY : Side.SELL;
313
- const size = rfqQuote.side === "BUY" ?
314
- rfqQuote.sizeIn : rfqQuote.sizeOut;
320
+ const size = rfqQuote.side === "BUY" ? rfqQuote.sizeIn : rfqQuote.sizeOut;
315
321
  const order = await this.deps.createOrder({
316
322
  tokenID: rfqQuote.token,
317
323
  price: rfqQuote.price,
318
- size: parseFloat(size),
324
+ size: Number.parseFloat(size),
319
325
  side: side,
320
326
  expiration: payload.expiration,
321
327
  });
@@ -327,9 +333,9 @@ export class RfqClient {
327
333
  quoteId: payload.quoteId,
328
334
  owner: this.deps.creds.key,
329
335
  ...order,
330
- expiration: parseInt(order.expiration),
336
+ expiration: Number.parseInt(order.expiration, 10),
331
337
  side: side,
332
- salt: parseInt(order.salt.toString())
338
+ salt: Number.parseInt(order.salt.toString(), 10),
333
339
  };
334
340
  const endpoint = RFQ_QUOTE_APPROVE;
335
341
  const l2HeaderArgs = {
@@ -364,7 +370,7 @@ export class RfqClient {
364
370
  // the order side is opposite the quote side
365
371
  side = quoteSide === "BUY" ? Side.SELL : Side.BUY;
366
372
  token = quote.token;
367
- size = side == Side.BUY ? quote.sizeOut : quote.sizeIn;
373
+ size = side === Side.BUY ? quote.sizeOut : quote.sizeIn;
368
374
  price = quote.price;
369
375
  return {
370
376
  token,
@@ -378,7 +384,7 @@ export class RfqClient {
378
384
  // the order side is the same as the quote side
379
385
  side = quoteSide === "BUY" ? Side.BUY : Side.SELL;
380
386
  token = quote.complement;
381
- size = side == Side.BUY ? quote.sizeIn : quote.sizeOut;
387
+ size = side === Side.BUY ? quote.sizeIn : quote.sizeOut;
382
388
  // For a MINT or a MERGE, the requester price is the inverse of the quote price
383
389
  // 95c Quote to BUY NO, implies that the Requester is buying YES at 5c
384
390
  // 45c Quote to SELL NO, implies the Requester is selling YES at 55c