@polymarket/clob-client-v2 0.0.3 → 0.2.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 (126) hide show
  1. package/dist/client.d.ts +15 -29
  2. package/dist/client.js +723 -862
  3. package/dist/client.js.map +1 -1
  4. package/dist/config.js +5 -10
  5. package/dist/config.js.map +1 -1
  6. package/dist/constants.js +6 -9
  7. package/dist/constants.js.map +1 -1
  8. package/dist/endpoints.d.ts +1 -0
  9. package/dist/endpoints.js +54 -56
  10. package/dist/endpoints.js.map +1 -1
  11. package/dist/errors.js +2 -5
  12. package/dist/errors.js.map +1 -1
  13. package/dist/headers/index.d.ts +4 -5
  14. package/dist/headers/index.js +10 -15
  15. package/dist/headers/index.js.map +1 -1
  16. package/dist/http-helpers/index.d.ts +1 -1
  17. package/dist/http-helpers/index.js +41 -53
  18. package/dist/http-helpers/index.js.map +1 -1
  19. package/dist/index.d.ts +7 -7
  20. package/dist/index.js +7 -10
  21. package/dist/index.js.map +1 -1
  22. package/dist/order-builder/helpers/buildMarketOrderCreationArgs.d.ts +2 -2
  23. package/dist/order-builder/helpers/buildMarketOrderCreationArgs.js +12 -19
  24. package/dist/order-builder/helpers/buildMarketOrderCreationArgs.js.map +1 -1
  25. package/dist/order-builder/helpers/buildOrder.d.ts +5 -6
  26. package/dist/order-builder/helpers/buildOrder.js +11 -18
  27. package/dist/order-builder/helpers/buildOrder.js.map +1 -1
  28. package/dist/order-builder/helpers/buildOrderCreationArgs.d.ts +2 -2
  29. package/dist/order-builder/helpers/buildOrderCreationArgs.js +13 -19
  30. package/dist/order-builder/helpers/buildOrderCreationArgs.js.map +1 -1
  31. package/dist/order-builder/helpers/calculateBuyMarketPrice.d.ts +1 -1
  32. package/dist/order-builder/helpers/calculateBuyMarketPrice.js +3 -7
  33. package/dist/order-builder/helpers/calculateBuyMarketPrice.js.map +1 -1
  34. package/dist/order-builder/helpers/calculateSellMarketPrice.d.ts +1 -1
  35. package/dist/order-builder/helpers/calculateSellMarketPrice.js +3 -7
  36. package/dist/order-builder/helpers/calculateSellMarketPrice.js.map +1 -1
  37. package/dist/order-builder/helpers/createMarketOrder.d.ts +5 -6
  38. package/dist/order-builder/helpers/createMarketOrder.js +15 -19
  39. package/dist/order-builder/helpers/createMarketOrder.js.map +1 -1
  40. package/dist/order-builder/helpers/createOrder.d.ts +5 -6
  41. package/dist/order-builder/helpers/createOrder.js +15 -19
  42. package/dist/order-builder/helpers/createOrder.js.map +1 -1
  43. package/dist/order-builder/helpers/getMarketOrderRawAmounts.d.ts +1 -1
  44. package/dist/order-builder/helpers/getMarketOrderRawAmounts.js +17 -21
  45. package/dist/order-builder/helpers/getMarketOrderRawAmounts.js.map +1 -1
  46. package/dist/order-builder/helpers/getOrderRawAmounts.d.ts +1 -1
  47. package/dist/order-builder/helpers/getOrderRawAmounts.js +17 -21
  48. package/dist/order-builder/helpers/getOrderRawAmounts.js.map +1 -1
  49. package/dist/order-builder/helpers/index.d.ts +10 -10
  50. package/dist/order-builder/helpers/index.js +10 -23
  51. package/dist/order-builder/helpers/index.js.map +1 -1
  52. package/dist/order-builder/helpers/roundingConfig.d.ts +1 -1
  53. package/dist/order-builder/helpers/roundingConfig.js +1 -4
  54. package/dist/order-builder/helpers/roundingConfig.js.map +1 -1
  55. package/dist/order-builder/index.d.ts +1 -1
  56. package/dist/order-builder/index.js +1 -4
  57. package/dist/order-builder/index.js.map +1 -1
  58. package/dist/order-builder/orderBuilder.d.ts +5 -6
  59. package/dist/order-builder/orderBuilder.js +34 -29
  60. package/dist/order-builder/orderBuilder.js.map +1 -1
  61. package/dist/order-utils/abi/ExchangeV1.js +1 -4
  62. package/dist/order-utils/abi/ExchangeV1.js.map +1 -1
  63. package/dist/order-utils/abi/ExchangeV2.d.ts +186 -43
  64. package/dist/order-utils/abi/ExchangeV2.js +234 -53
  65. package/dist/order-utils/abi/ExchangeV2.js.map +1 -1
  66. package/dist/order-utils/exchangeOrderBuilderV1.d.ts +5 -6
  67. package/dist/order-utils/exchangeOrderBuilderV1.js +82 -77
  68. package/dist/order-utils/exchangeOrderBuilderV1.js.map +1 -1
  69. package/dist/order-utils/exchangeOrderBuilderV2.d.ts +6 -7
  70. package/dist/order-utils/exchangeOrderBuilderV2.js +55 -50
  71. package/dist/order-utils/exchangeOrderBuilderV2.js.map +1 -1
  72. package/dist/order-utils/index.d.ts +2703 -0
  73. package/dist/order-utils/index.js +11 -11
  74. package/dist/order-utils/index.js.map +1 -1
  75. package/dist/order-utils/model/abi.js +1 -2
  76. package/dist/order-utils/model/ctfExchangeV1TypedData.js +3 -6
  77. package/dist/order-utils/model/ctfExchangeV1TypedData.js.map +1 -1
  78. package/dist/order-utils/model/ctfExchangeV2TypedData.js +3 -6
  79. package/dist/order-utils/model/ctfExchangeV2TypedData.js.map +1 -1
  80. package/dist/order-utils/model/eip712.js +1 -4
  81. package/dist/order-utils/model/eip712.js.map +1 -1
  82. package/dist/order-utils/model/order.js +1 -2
  83. package/dist/order-utils/model/orderDataV1.d.ts +4 -4
  84. package/dist/order-utils/model/orderDataV1.js +1 -2
  85. package/dist/order-utils/model/orderDataV2.d.ts +12 -13
  86. package/dist/order-utils/model/orderDataV2.js +1 -2
  87. package/dist/order-utils/model/side.js +2 -5
  88. package/dist/order-utils/model/side.js.map +1 -1
  89. package/dist/order-utils/model/signatureTypeV1.js +2 -5
  90. package/dist/order-utils/model/signatureTypeV1.js.map +1 -1
  91. package/dist/order-utils/model/signatureTypeV2.js +2 -5
  92. package/dist/order-utils/model/signatureTypeV2.js.map +1 -1
  93. package/dist/order-utils/utils.js +1 -4
  94. package/dist/order-utils/utils.js.map +1 -1
  95. package/dist/signing/constants.js +7 -10
  96. package/dist/signing/constants.js.map +1 -1
  97. package/dist/signing/eip712.d.ts +3 -4
  98. package/dist/signing/eip712.js +13 -12
  99. package/dist/signing/eip712.js.map +1 -1
  100. package/dist/signing/hmac.js +3 -8
  101. package/dist/signing/hmac.js.map +1 -1
  102. package/dist/signing/index.d.ts +3 -2
  103. package/dist/signing/index.js +3 -5
  104. package/dist/signing/index.js.map +1 -1
  105. package/dist/signing/signer.d.ts +22 -0
  106. package/dist/signing/signer.js +50 -0
  107. package/dist/signing/signer.js.map +1 -0
  108. package/dist/types/clob.d.ts +19 -6
  109. package/dist/types/clob.js +10 -13
  110. package/dist/types/clob.js.map +1 -1
  111. package/dist/types/index.d.ts +4 -4
  112. package/dist/types/index.js +4 -7
  113. package/dist/types/index.js.map +1 -1
  114. package/dist/types/ordersV1.d.ts +3 -2
  115. package/dist/types/ordersV1.js +22 -2
  116. package/dist/types/ordersV1.js.map +1 -1
  117. package/dist/types/ordersV2.d.ts +14 -5
  118. package/dist/types/ordersV2.js +23 -2
  119. package/dist/types/ordersV2.js.map +1 -1
  120. package/dist/types/unifiedOrder.d.ts +4 -4
  121. package/dist/types/unifiedOrder.js +1 -4
  122. package/dist/types/unifiedOrder.js.map +1 -1
  123. package/dist/utilities.d.ts +1 -5
  124. package/dist/utilities.js +15 -72
  125. package/dist/utilities.js.map +1 -1
  126. package/package.json +24 -18
@@ -1,15 +1,16 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ExchangeOrderBuilderV1 = void 0;
4
- const tslib_1 = require("tslib");
5
- const viem_1 = require("viem");
6
- const ctfExchangeV1TypedData_1 = require("./model/ctfExchangeV1TypedData");
7
- const eip712_1 = require("./model/eip712");
8
- const signatureTypeV1_js_1 = require("./model/signatureTypeV1.js");
9
- const utils_1 = require("./utils");
1
+ import { hashTypedData } from "viem";
2
+ import { getSignerAddress, signTypedDataWithSigner } from "../signing/signer.js";
3
+ import { CTF_EXCHANGE_V1_DOMAIN_NAME, CTF_EXCHANGE_V1_DOMAIN_VERSION, CTF_EXCHANGE_V1_ORDER_STRUCT, } from "./model/ctfExchangeV1TypedData.js";
4
+ import { EIP712_DOMAIN } from "./model/eip712.js";
5
+ import { SignatureTypeV1 } from "./model/signatureTypeV1.js";
6
+ import { generateOrderSalt } from "./utils.js";
10
7
  const ZERO_ADDRESS = "0x0000000000000000000000000000000000000000";
11
- class ExchangeOrderBuilderV1 {
12
- constructor(contractAddress, chainId, signer, generateSalt = utils_1.generateOrderSalt) {
8
+ export class ExchangeOrderBuilderV1 {
9
+ contractAddress;
10
+ chainId;
11
+ signer;
12
+ generateSalt;
13
+ constructor(contractAddress, chainId, signer, generateSalt = generateOrderSalt) {
13
14
  this.contractAddress = contractAddress;
14
15
  this.chainId = chainId;
15
16
  this.signer = signer;
@@ -20,71 +21,70 @@ class ExchangeOrderBuilderV1 {
20
21
  * @param orderData
21
22
  * @returns a SignedOrder object (order + signature)
22
23
  */
23
- buildSignedOrder(orderData) {
24
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
25
- const order = yield this.buildOrder(orderData);
26
- const orderTypedData = this.buildOrderTypedData(order);
27
- const orderSignature = yield this.buildOrderSignature(orderTypedData);
28
- return Object.assign(Object.assign({}, order), { signature: orderSignature });
29
- });
24
+ async buildSignedOrder(orderData) {
25
+ const order = await this.buildOrder(orderData);
26
+ const orderTypedData = this.buildOrderTypedData(order);
27
+ const orderSignature = await this.buildOrderSignature(orderTypedData);
28
+ return {
29
+ ...order,
30
+ signature: orderSignature,
31
+ };
30
32
  }
31
33
  /**
32
34
  * Creates an Order object from order data.
33
35
  * @param OrderData
34
36
  * @returns a Order object (not signed)
35
37
  */
36
- buildOrder(_a) {
37
- return tslib_1.__awaiter(this, arguments, void 0, function* ({ maker, taker, tokenId, makerAmount, takerAmount, side, feeRateBps, nonce, signer, expiration, signatureType, }) {
38
- if (!signer) {
39
- signer = maker;
40
- }
41
- const signerAddress = yield this.signer.getAddress();
42
- if (signer !== signerAddress) {
43
- throw new Error("signer does not match");
44
- }
45
- if (!expiration) {
46
- expiration = "0";
47
- }
48
- if (!signatureType) {
49
- // Default to EOA 712 sig type
50
- signatureType = signatureTypeV1_js_1.SignatureTypeV1.EOA;
51
- }
52
- let takerAddress;
53
- if (typeof taker !== "undefined" && taker) {
54
- takerAddress = taker;
55
- }
56
- else {
57
- takerAddress = ZERO_ADDRESS;
58
- }
59
- let feeRateBpsResolved;
60
- if (typeof feeRateBps !== "undefined" && feeRateBps) {
61
- feeRateBpsResolved = feeRateBps.toString();
62
- }
63
- else {
64
- feeRateBpsResolved = "0";
65
- }
66
- let nonceResolved;
67
- if (typeof nonce !== "undefined" && nonce) {
68
- nonceResolved = nonce.toString();
69
- }
70
- else {
71
- nonceResolved = "0";
72
- }
73
- return {
74
- salt: this.generateSalt(),
75
- maker,
76
- signer,
77
- taker: takerAddress,
78
- tokenId,
79
- makerAmount,
80
- takerAmount,
81
- expiration,
82
- nonce: nonceResolved,
83
- feeRateBps: feeRateBpsResolved,
84
- side,
85
- signatureType,
86
- };
87
- });
38
+ async buildOrder({ maker, taker, tokenId, makerAmount, takerAmount, side, feeRateBps, nonce, signer, expiration, signatureType, }) {
39
+ if (!signer) {
40
+ signer = maker;
41
+ }
42
+ const signerAddress = await getSignerAddress(this.signer);
43
+ if (signer !== signerAddress) {
44
+ throw new Error("signer does not match");
45
+ }
46
+ if (!expiration) {
47
+ expiration = "0";
48
+ }
49
+ if (!signatureType) {
50
+ // Default to EOA 712 sig type
51
+ signatureType = SignatureTypeV1.EOA;
52
+ }
53
+ let takerAddress;
54
+ if (typeof taker !== "undefined" && taker) {
55
+ takerAddress = taker;
56
+ }
57
+ else {
58
+ takerAddress = ZERO_ADDRESS;
59
+ }
60
+ let feeRateBpsResolved;
61
+ if (typeof feeRateBps !== "undefined" && feeRateBps) {
62
+ feeRateBpsResolved = feeRateBps.toString();
63
+ }
64
+ else {
65
+ feeRateBpsResolved = "0";
66
+ }
67
+ let nonceResolved;
68
+ if (typeof nonce !== "undefined" && nonce) {
69
+ nonceResolved = nonce.toString();
70
+ }
71
+ else {
72
+ nonceResolved = "0";
73
+ }
74
+ return {
75
+ salt: this.generateSalt(),
76
+ maker,
77
+ signer,
78
+ taker: takerAddress,
79
+ tokenId,
80
+ makerAmount,
81
+ takerAmount,
82
+ expiration,
83
+ nonce: nonceResolved,
84
+ feeRateBps: feeRateBpsResolved,
85
+ side,
86
+ signatureType,
87
+ };
88
88
  }
89
89
  /**
90
90
  * Parses an Order object to EIP712 typed data
@@ -95,12 +95,12 @@ class ExchangeOrderBuilderV1 {
95
95
  return {
96
96
  primaryType: "Order",
97
97
  types: {
98
- EIP712Domain: eip712_1.EIP712_DOMAIN,
99
- Order: ctfExchangeV1TypedData_1.CTF_EXCHANGE_V1_ORDER_STRUCT,
98
+ EIP712Domain: EIP712_DOMAIN,
99
+ Order: CTF_EXCHANGE_V1_ORDER_STRUCT,
100
100
  },
101
101
  domain: {
102
- name: ctfExchangeV1TypedData_1.CTF_EXCHANGE_V1_DOMAIN_NAME,
103
- version: ctfExchangeV1TypedData_1.CTF_EXCHANGE_V1_DOMAIN_VERSION,
102
+ name: CTF_EXCHANGE_V1_DOMAIN_NAME,
103
+ version: CTF_EXCHANGE_V1_DOMAIN_VERSION,
104
104
  chainId: this.chainId,
105
105
  verifyingContract: this.contractAddress,
106
106
  },
@@ -127,7 +127,13 @@ class ExchangeOrderBuilderV1 {
127
127
  */
128
128
  buildOrderSignature(typedData) {
129
129
  delete typedData.types.EIP712Domain;
130
- return this.signer._signTypedData(typedData.domain, typedData.types, typedData.message);
130
+ return signTypedDataWithSigner({
131
+ signer: this.signer,
132
+ domain: typedData.domain,
133
+ types: typedData.types,
134
+ value: typedData.message,
135
+ primaryType: typedData.primaryType,
136
+ });
131
137
  }
132
138
  /**
133
139
  * Generates the hash of the order from a EIP712TypedData object.
@@ -135,9 +141,8 @@ class ExchangeOrderBuilderV1 {
135
141
  * @returns a OrderHash that is an string
136
142
  */
137
143
  buildOrderHash(orderTypedData) {
138
- const digest = (0, viem_1.hashTypedData)(orderTypedData);
144
+ const digest = hashTypedData(orderTypedData);
139
145
  return digest;
140
146
  }
141
147
  }
142
- exports.ExchangeOrderBuilderV1 = ExchangeOrderBuilderV1;
143
148
  //# sourceMappingURL=exchangeOrderBuilderV1.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"exchangeOrderBuilderV1.js","sourceRoot":"","sources":["../../src/order-utils/exchangeOrderBuilderV1.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exchangeOrderBuilderV1.js","sourceRoot":"","sources":["../../src/order-utils/exchangeOrderBuilderV1.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,14 @@
1
- import type { JsonRpcSigner } from "@ethersproject/providers";
2
- import type { Wallet } from "@ethersproject/wallet";
3
- import { type EIP712TypedData } from "./model/eip712";
4
- import type { OrderHash, OrderSignature } from "./model/order";
1
+ import { type ClobSigner } from "../signing/signer.js";
2
+ import { type EIP712TypedData } from "./model/eip712.js";
3
+ import type { OrderHash, OrderSignature } from "./model/order.js";
5
4
  import type { OrderDataV2, OrderV2, SignedOrderV2 } from "./model/orderDataV2.js";
6
- import { generateOrderSalt } from "./utils";
5
+ import { generateOrderSalt } from "./utils.js";
7
6
  export declare class ExchangeOrderBuilderV2 {
8
7
  private readonly contractAddress;
9
8
  private readonly chainId;
10
9
  private readonly signer;
11
10
  private readonly generateSalt;
12
- constructor(contractAddress: string, chainId: number, signer: Wallet | JsonRpcSigner, generateSalt?: typeof generateOrderSalt);
11
+ constructor(contractAddress: string, chainId: number, signer: ClobSigner, generateSalt?: typeof generateOrderSalt);
13
12
  /**
14
13
  * build an order object including the signature.
15
14
  * @param orderData
@@ -21,7 +20,7 @@ export declare class ExchangeOrderBuilderV2 {
21
20
  * @param OrderData
22
21
  * @returns a Order object (not signed)
23
22
  */
24
- buildOrder({ maker, tokenId, makerAmount, takerAmount, side, signer, expiration, signatureType, timestamp, metadata, builder, }: OrderDataV2): Promise<OrderV2>;
23
+ buildOrder({ maker, tokenId, makerAmount, takerAmount, side, signer, signatureType, timestamp, metadata, builder, expiration, }: OrderDataV2): Promise<OrderV2>;
25
24
  /**
26
25
  * Parses an Order object to EIP712 typed data
27
26
  * @param order
@@ -1,15 +1,16 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ExchangeOrderBuilderV2 = void 0;
4
- const tslib_1 = require("tslib");
5
- const viem_1 = require("viem");
6
- const constants_1 = require("../constants");
7
- const ctfExchangeV2TypedData_1 = require("./model/ctfExchangeV2TypedData");
8
- const eip712_1 = require("./model/eip712");
9
- const signatureTypeV2_js_1 = require("./model/signatureTypeV2.js");
10
- const utils_1 = require("./utils");
11
- class ExchangeOrderBuilderV2 {
12
- constructor(contractAddress, chainId, signer, generateSalt = utils_1.generateOrderSalt) {
1
+ import { hashTypedData } from "viem";
2
+ import { bytes32Zero } from "../constants.js";
3
+ import { getSignerAddress, signTypedDataWithSigner } from "../signing/signer.js";
4
+ import { CTF_EXCHANGE_V2_DOMAIN_NAME, CTF_EXCHANGE_V2_DOMAIN_VERSION, CTF_EXCHANGE_V2_ORDER_STRUCT, } from "./model/ctfExchangeV2TypedData.js";
5
+ import { EIP712_DOMAIN } from "./model/eip712.js";
6
+ import { SignatureTypeV2 } from "./model/signatureTypeV2.js";
7
+ import { generateOrderSalt } from "./utils.js";
8
+ export class ExchangeOrderBuilderV2 {
9
+ contractAddress;
10
+ chainId;
11
+ signer;
12
+ generateSalt;
13
+ constructor(contractAddress, chainId, signer, generateSalt = generateOrderSalt) {
13
14
  this.contractAddress = contractAddress;
14
15
  this.chainId = chainId;
15
16
  this.signer = signer;
@@ -20,43 +21,42 @@ class ExchangeOrderBuilderV2 {
20
21
  * @param orderData
21
22
  * @returns a SignedOrder object (order + signature)
22
23
  */
23
- buildSignedOrder(orderData) {
24
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
25
- const order = yield this.buildOrder(orderData);
26
- const orderTypedData = this.buildOrderTypedData(order);
27
- const orderSignature = yield this.buildOrderSignature(orderTypedData);
28
- return Object.assign(Object.assign({}, order), { signature: orderSignature });
29
- });
24
+ async buildSignedOrder(orderData) {
25
+ const order = await this.buildOrder(orderData);
26
+ const orderTypedData = this.buildOrderTypedData(order);
27
+ const orderSignature = await this.buildOrderSignature(orderTypedData);
28
+ return {
29
+ ...order,
30
+ signature: orderSignature,
31
+ };
30
32
  }
31
33
  /**
32
34
  * Creates an Order object from order data.
33
35
  * @param OrderData
34
36
  * @returns a Order object (not signed)
35
37
  */
36
- buildOrder(_a) {
37
- return tslib_1.__awaiter(this, arguments, void 0, function* ({ maker, tokenId, makerAmount, takerAmount, side, signer, expiration, signatureType, timestamp, metadata, builder, }) {
38
- if (!signer) {
39
- signer = maker;
40
- }
41
- const signerAddress = yield this.signer.getAddress();
42
- if (signer !== signerAddress) {
43
- throw new Error("signer does not match");
44
- }
45
- return {
46
- salt: this.generateSalt(),
47
- maker,
48
- signer,
49
- tokenId,
50
- makerAmount,
51
- takerAmount,
52
- side,
53
- expiration: expiration !== null && expiration !== void 0 ? expiration : "0",
54
- signatureType: signatureType !== null && signatureType !== void 0 ? signatureType : signatureTypeV2_js_1.SignatureTypeV2.EOA,
55
- metadata: metadata !== null && metadata !== void 0 ? metadata : constants_1.bytes32Zero,
56
- builder: builder !== null && builder !== void 0 ? builder : constants_1.bytes32Zero,
57
- timestamp: timestamp !== null && timestamp !== void 0 ? timestamp : Math.floor(Date.now() / 1000).toString(),
58
- };
59
- });
38
+ async buildOrder({ maker, tokenId, makerAmount, takerAmount, side, signer, signatureType, timestamp, metadata, builder, expiration, }) {
39
+ if (!signer) {
40
+ signer = maker;
41
+ }
42
+ const signerAddress = await getSignerAddress(this.signer);
43
+ if (signer !== signerAddress) {
44
+ throw new Error("signer does not match");
45
+ }
46
+ return {
47
+ salt: this.generateSalt(),
48
+ maker,
49
+ signer,
50
+ tokenId,
51
+ makerAmount,
52
+ takerAmount,
53
+ side,
54
+ signatureType: signatureType ?? SignatureTypeV2.EOA,
55
+ metadata: metadata ?? bytes32Zero,
56
+ builder: builder ?? bytes32Zero,
57
+ timestamp: timestamp ?? Date.now().toString(),
58
+ expiration: expiration ?? "0",
59
+ };
60
60
  }
61
61
  /**
62
62
  * Parses an Order object to EIP712 typed data
@@ -67,12 +67,12 @@ class ExchangeOrderBuilderV2 {
67
67
  return {
68
68
  primaryType: "Order",
69
69
  types: {
70
- EIP712Domain: eip712_1.EIP712_DOMAIN,
71
- Order: ctfExchangeV2TypedData_1.CTF_EXCHANGE_V2_ORDER_STRUCT,
70
+ EIP712Domain: EIP712_DOMAIN,
71
+ Order: CTF_EXCHANGE_V2_ORDER_STRUCT,
72
72
  },
73
73
  domain: {
74
- name: ctfExchangeV2TypedData_1.CTF_EXCHANGE_V2_DOMAIN_NAME,
75
- version: ctfExchangeV2TypedData_1.CTF_EXCHANGE_V2_DOMAIN_VERSION,
74
+ name: CTF_EXCHANGE_V2_DOMAIN_NAME,
75
+ version: CTF_EXCHANGE_V2_DOMAIN_VERSION,
76
76
  chainId: this.chainId,
77
77
  verifyingContract: this.contractAddress,
78
78
  },
@@ -98,7 +98,13 @@ class ExchangeOrderBuilderV2 {
98
98
  */
99
99
  buildOrderSignature(typedData) {
100
100
  delete typedData.types.EIP712Domain;
101
- return this.signer._signTypedData(typedData.domain, typedData.types, typedData.message);
101
+ return signTypedDataWithSigner({
102
+ signer: this.signer,
103
+ domain: typedData.domain,
104
+ types: typedData.types,
105
+ value: typedData.message,
106
+ primaryType: typedData.primaryType,
107
+ });
102
108
  }
103
109
  /**
104
110
  * Generates the hash of the order from a EIP712TypedData object.
@@ -106,9 +112,8 @@ class ExchangeOrderBuilderV2 {
106
112
  * @returns a OrderHash that is an string
107
113
  */
108
114
  buildOrderHash(orderTypedData) {
109
- const digest = (0, viem_1.hashTypedData)(orderTypedData);
115
+ const digest = hashTypedData(orderTypedData);
110
116
  return digest;
111
117
  }
112
118
  }
113
- exports.ExchangeOrderBuilderV2 = ExchangeOrderBuilderV2;
114
119
  //# sourceMappingURL=exchangeOrderBuilderV2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"exchangeOrderBuilderV2.js","sourceRoot":"","sources":["../../src/order-utils/exchangeOrderBuilderV2.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exchangeOrderBuilderV2.js","sourceRoot":"","sources":["../../src/order-utils/exchangeOrderBuilderV2.ts"],"names":[],"mappings":"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"}