@polymarket/clob-client-v2 1.0.4 → 1.0.6-pr79.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 (200) hide show
  1. package/README.md +3 -0
  2. package/dist/_virtual/rolldown_runtime.cjs +29 -0
  3. package/dist/client.cjs +886 -0
  4. package/dist/client.cjs.map +1 -0
  5. package/dist/client.d.cts +165 -0
  6. package/dist/client.d.ts +167 -0
  7. package/dist/client.js +886 -0
  8. package/dist/client.js.map +1 -0
  9. package/dist/config.cjs +37 -0
  10. package/dist/config.cjs.map +1 -0
  11. package/dist/config.d.cts +17 -0
  12. package/dist/config.d.ts +17 -0
  13. package/dist/config.js +34 -0
  14. package/dist/config.js.map +1 -0
  15. package/dist/constants.cjs +15 -0
  16. package/dist/constants.cjs.map +1 -0
  17. package/dist/constants.js +10 -0
  18. package/dist/constants.js.map +1 -0
  19. package/dist/endpoints.cjs +125 -0
  20. package/dist/endpoints.cjs.map +1 -0
  21. package/dist/endpoints.js +65 -0
  22. package/dist/endpoints.js.map +1 -0
  23. package/dist/errors.cjs +20 -0
  24. package/dist/errors.cjs.map +1 -0
  25. package/dist/errors.d.cts +11 -0
  26. package/dist/errors.d.ts +11 -0
  27. package/dist/errors.js +17 -0
  28. package/dist/errors.js.map +1 -0
  29. package/dist/fees/index.cjs +21 -0
  30. package/dist/fees/index.cjs.map +1 -0
  31. package/dist/fees/index.d.cts +5 -0
  32. package/dist/fees/index.d.ts +5 -0
  33. package/dist/fees/index.js +19 -0
  34. package/dist/fees/index.js.map +1 -0
  35. package/dist/headers/index.cjs +34 -0
  36. package/dist/headers/index.cjs.map +1 -0
  37. package/dist/headers/index.d.cts +9 -0
  38. package/dist/headers/index.d.ts +11 -0
  39. package/dist/headers/index.js +33 -0
  40. package/dist/headers/index.js.map +1 -0
  41. package/dist/http-helpers/index.cjs +109 -0
  42. package/dist/http-helpers/index.cjs.map +1 -0
  43. package/dist/http-helpers/index.js +101 -0
  44. package/dist/http-helpers/index.js.map +1 -0
  45. package/dist/index.cjs +35 -2600
  46. package/dist/index.d.cts +14 -1039
  47. package/dist/index.d.ts +16 -1039
  48. package/dist/index.js +15 -2543
  49. package/dist/order-builder/helpers/buildMarketOrderCreationArgs.cjs +43 -0
  50. package/dist/order-builder/helpers/buildMarketOrderCreationArgs.cjs.map +1 -0
  51. package/dist/order-builder/helpers/buildMarketOrderCreationArgs.js +42 -0
  52. package/dist/order-builder/helpers/buildMarketOrderCreationArgs.js.map +1 -0
  53. package/dist/order-builder/helpers/buildOrder.cjs +34 -0
  54. package/dist/order-builder/helpers/buildOrder.cjs.map +1 -0
  55. package/dist/order-builder/helpers/buildOrder.js +34 -0
  56. package/dist/order-builder/helpers/buildOrder.js.map +1 -0
  57. package/dist/order-builder/helpers/buildOrderCreationArgs.cjs +45 -0
  58. package/dist/order-builder/helpers/buildOrderCreationArgs.cjs.map +1 -0
  59. package/dist/order-builder/helpers/buildOrderCreationArgs.js +44 -0
  60. package/dist/order-builder/helpers/buildOrderCreationArgs.js.map +1 -0
  61. package/dist/order-builder/helpers/calculateBuyMarketPrice.cjs +24 -0
  62. package/dist/order-builder/helpers/calculateBuyMarketPrice.cjs.map +1 -0
  63. package/dist/order-builder/helpers/calculateBuyMarketPrice.js +24 -0
  64. package/dist/order-builder/helpers/calculateBuyMarketPrice.js.map +1 -0
  65. package/dist/order-builder/helpers/calculateSellMarketPrice.cjs +24 -0
  66. package/dist/order-builder/helpers/calculateSellMarketPrice.cjs.map +1 -0
  67. package/dist/order-builder/helpers/calculateSellMarketPrice.js +24 -0
  68. package/dist/order-builder/helpers/calculateSellMarketPrice.js.map +1 -0
  69. package/dist/order-builder/helpers/createMarketOrder.cjs +34 -0
  70. package/dist/order-builder/helpers/createMarketOrder.cjs.map +1 -0
  71. package/dist/order-builder/helpers/createMarketOrder.js +34 -0
  72. package/dist/order-builder/helpers/createMarketOrder.js.map +1 -0
  73. package/dist/order-builder/helpers/createOrder.cjs +34 -0
  74. package/dist/order-builder/helpers/createOrder.cjs.map +1 -0
  75. package/dist/order-builder/helpers/createOrder.js +34 -0
  76. package/dist/order-builder/helpers/createOrder.js.map +1 -0
  77. package/dist/order-builder/helpers/getMarketOrderRawAmounts.cjs +36 -0
  78. package/dist/order-builder/helpers/getMarketOrderRawAmounts.cjs.map +1 -0
  79. package/dist/order-builder/helpers/getMarketOrderRawAmounts.js +36 -0
  80. package/dist/order-builder/helpers/getMarketOrderRawAmounts.js.map +1 -0
  81. package/dist/order-builder/helpers/getOrderRawAmounts.cjs +36 -0
  82. package/dist/order-builder/helpers/getOrderRawAmounts.cjs.map +1 -0
  83. package/dist/order-builder/helpers/getOrderRawAmounts.js +36 -0
  84. package/dist/order-builder/helpers/getOrderRawAmounts.js.map +1 -0
  85. package/dist/order-builder/helpers/roundingConfig.cjs +28 -0
  86. package/dist/order-builder/helpers/roundingConfig.cjs.map +1 -0
  87. package/dist/order-builder/helpers/roundingConfig.js +27 -0
  88. package/dist/order-builder/helpers/roundingConfig.js.map +1 -0
  89. package/dist/order-builder/index.d.ts +1 -0
  90. package/dist/order-builder/orderBuilder.cjs +51 -0
  91. package/dist/order-builder/orderBuilder.cjs.map +1 -0
  92. package/dist/order-builder/orderBuilder.d.cts +37 -0
  93. package/dist/order-builder/orderBuilder.d.ts +39 -0
  94. package/dist/order-builder/orderBuilder.js +51 -0
  95. package/dist/order-builder/orderBuilder.js.map +1 -0
  96. package/dist/order-utils/exchangeOrderBuilderV1.cjs +128 -0
  97. package/dist/order-utils/exchangeOrderBuilderV1.cjs.map +1 -0
  98. package/dist/order-utils/exchangeOrderBuilderV1.d.ts +2 -0
  99. package/dist/order-utils/exchangeOrderBuilderV1.js +127 -0
  100. package/dist/order-utils/exchangeOrderBuilderV1.js.map +1 -0
  101. package/dist/order-utils/exchangeOrderBuilderV2.cjs +196 -0
  102. package/dist/order-utils/exchangeOrderBuilderV2.cjs.map +1 -0
  103. package/dist/order-utils/exchangeOrderBuilderV2.d.ts +2 -0
  104. package/dist/order-utils/exchangeOrderBuilderV2.js +194 -0
  105. package/dist/order-utils/exchangeOrderBuilderV2.js.map +1 -0
  106. package/dist/order-utils/index.d.ts +7 -0
  107. package/dist/order-utils/model/ctfExchangeV1TypedData.cjs +60 -0
  108. package/dist/order-utils/model/ctfExchangeV1TypedData.cjs.map +1 -0
  109. package/dist/order-utils/model/ctfExchangeV1TypedData.js +57 -0
  110. package/dist/order-utils/model/ctfExchangeV1TypedData.js.map +1 -0
  111. package/dist/order-utils/model/ctfExchangeV2TypedData.cjs +58 -0
  112. package/dist/order-utils/model/ctfExchangeV2TypedData.cjs.map +1 -0
  113. package/dist/order-utils/model/ctfExchangeV2TypedData.js +54 -0
  114. package/dist/order-utils/model/ctfExchangeV2TypedData.js.map +1 -0
  115. package/dist/order-utils/model/eip712.cjs +24 -0
  116. package/dist/order-utils/model/eip712.cjs.map +1 -0
  117. package/dist/order-utils/model/eip712.d.cts +9 -0
  118. package/dist/order-utils/model/eip712.d.ts +9 -0
  119. package/dist/order-utils/model/eip712.js +23 -0
  120. package/dist/order-utils/model/eip712.js.map +1 -0
  121. package/dist/order-utils/model/order.d.cts +5 -0
  122. package/dist/order-utils/model/order.d.ts +5 -0
  123. package/dist/order-utils/model/orderDataV1.d.cts +68 -0
  124. package/dist/order-utils/model/orderDataV1.d.ts +69 -0
  125. package/dist/order-utils/model/orderDataV2.d.cts +68 -0
  126. package/dist/order-utils/model/orderDataV2.d.ts +69 -0
  127. package/dist/order-utils/model/side.cjs +11 -0
  128. package/dist/order-utils/model/side.cjs.map +1 -0
  129. package/dist/order-utils/model/side.d.cts +8 -0
  130. package/dist/order-utils/model/side.d.ts +8 -0
  131. package/dist/order-utils/model/side.js +10 -0
  132. package/dist/order-utils/model/side.js.map +1 -0
  133. package/dist/order-utils/model/signatureTypeV1.cjs +21 -0
  134. package/dist/order-utils/model/signatureTypeV1.cjs.map +1 -0
  135. package/dist/order-utils/model/signatureTypeV1.d.cts +18 -0
  136. package/dist/order-utils/model/signatureTypeV1.d.ts +18 -0
  137. package/dist/order-utils/model/signatureTypeV1.js +20 -0
  138. package/dist/order-utils/model/signatureTypeV1.js.map +1 -0
  139. package/dist/order-utils/model/signatureTypeV2.cjs +25 -0
  140. package/dist/order-utils/model/signatureTypeV2.cjs.map +1 -0
  141. package/dist/order-utils/model/signatureTypeV2.d.cts +22 -0
  142. package/dist/order-utils/model/signatureTypeV2.d.ts +22 -0
  143. package/dist/order-utils/model/signatureTypeV2.js +24 -0
  144. package/dist/order-utils/model/signatureTypeV2.js.map +1 -0
  145. package/dist/order-utils/utils.cjs +9 -0
  146. package/dist/order-utils/utils.cjs.map +1 -0
  147. package/dist/order-utils/utils.js +8 -0
  148. package/dist/order-utils/utils.js.map +1 -0
  149. package/dist/signing/constants.cjs +7 -0
  150. package/dist/signing/constants.cjs.map +1 -0
  151. package/dist/signing/constants.js +6 -0
  152. package/dist/signing/constants.js.map +1 -0
  153. package/dist/signing/eip712.cjs +51 -0
  154. package/dist/signing/eip712.cjs.map +1 -0
  155. package/dist/signing/eip712.d.ts +2 -0
  156. package/dist/signing/eip712.js +51 -0
  157. package/dist/signing/eip712.js.map +1 -0
  158. package/dist/signing/hmac.cjs +40 -0
  159. package/dist/signing/hmac.cjs.map +1 -0
  160. package/dist/signing/hmac.js +39 -0
  161. package/dist/signing/hmac.js.map +1 -0
  162. package/dist/signing/index.d.ts +2 -0
  163. package/dist/signing/signer.cjs +41 -0
  164. package/dist/signing/signer.cjs.map +1 -0
  165. package/dist/signing/signer.d.cts +17 -0
  166. package/dist/signing/signer.d.ts +17 -0
  167. package/dist/signing/signer.js +39 -0
  168. package/dist/signing/signer.js.map +1 -0
  169. package/dist/types/clob.cjs +35 -0
  170. package/dist/types/clob.cjs.map +1 -0
  171. package/dist/types/clob.d.cts +427 -0
  172. package/dist/types/clob.d.ts +427 -0
  173. package/dist/types/clob.js +32 -0
  174. package/dist/types/clob.js.map +1 -0
  175. package/dist/types/index.d.ts +5 -0
  176. package/dist/types/ordersV1.cjs +29 -0
  177. package/dist/types/ordersV1.cjs.map +1 -0
  178. package/dist/types/ordersV1.d.cts +115 -0
  179. package/dist/types/ordersV1.d.ts +116 -0
  180. package/dist/types/ordersV1.js +28 -0
  181. package/dist/types/ordersV1.js.map +1 -0
  182. package/dist/types/ordersV2.cjs +30 -0
  183. package/dist/types/ordersV2.cjs.map +1 -0
  184. package/dist/types/ordersV2.d.cts +113 -0
  185. package/dist/types/ordersV2.d.ts +114 -0
  186. package/dist/types/ordersV2.js +29 -0
  187. package/dist/types/ordersV2.js.map +1 -0
  188. package/dist/types/unifiedOrder.cjs +10 -0
  189. package/dist/types/unifiedOrder.cjs.map +1 -0
  190. package/dist/types/unifiedOrder.d.cts +56 -0
  191. package/dist/types/unifiedOrder.d.ts +57 -0
  192. package/dist/types/unifiedOrder.js +9 -0
  193. package/dist/types/unifiedOrder.js.map +1 -0
  194. package/dist/utilities.cjs +50 -0
  195. package/dist/utilities.cjs.map +1 -0
  196. package/dist/utilities.js +43 -0
  197. package/dist/utilities.js.map +1 -0
  198. package/package.json +3 -3
  199. package/dist/index.cjs.map +0 -1
  200. package/dist/index.js.map +0 -1
@@ -0,0 +1,43 @@
1
+ const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
+ const require_constants = require('../../constants.cjs');
3
+ const require_config = require('../../config.cjs');
4
+ const require_getMarketOrderRawAmounts = require('./getMarketOrderRawAmounts.cjs');
5
+ let viem = require("viem");
6
+
7
+ //#region src/order-builder/helpers/buildMarketOrderCreationArgs.ts
8
+ async function buildMarketOrderCreationArgs(signer, maker, signatureType, userMarketOrder, roundConfig, version = 2) {
9
+ const { side, rawMakerAmt, rawTakerAmt } = require_getMarketOrderRawAmounts.getMarketOrderRawAmounts(userMarketOrder.side, userMarketOrder.amount, userMarketOrder.price || 1, roundConfig);
10
+ const makerAmount = (0, viem.parseUnits)(rawMakerAmt.toString(), require_config.COLLATERAL_TOKEN_DECIMALS).toString();
11
+ const takerAmount = (0, viem.parseUnits)(rawTakerAmt.toString(), require_config.COLLATERAL_TOKEN_DECIMALS).toString();
12
+ if (version === 1) {
13
+ const v1Order = userMarketOrder;
14
+ return {
15
+ maker,
16
+ taker: v1Order.taker ?? viem.zeroAddress,
17
+ tokenId: userMarketOrder.tokenID,
18
+ makerAmount,
19
+ takerAmount,
20
+ side,
21
+ signer,
22
+ signatureType,
23
+ feeRateBps: v1Order.feeRateBps?.toString() ?? "0",
24
+ nonce: v1Order.nonce?.toString() ?? "0"
25
+ };
26
+ }
27
+ return {
28
+ maker,
29
+ tokenId: userMarketOrder.tokenID,
30
+ makerAmount,
31
+ takerAmount,
32
+ side,
33
+ signer,
34
+ signatureType,
35
+ timestamp: Date.now().toString(),
36
+ metadata: "metadata" in userMarketOrder ? userMarketOrder.metadata ?? require_constants.bytes32Zero : require_constants.bytes32Zero,
37
+ builder: userMarketOrder.builderCode ?? require_constants.bytes32Zero
38
+ };
39
+ }
40
+
41
+ //#endregion
42
+ exports.buildMarketOrderCreationArgs = buildMarketOrderCreationArgs;
43
+ //# sourceMappingURL=buildMarketOrderCreationArgs.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildMarketOrderCreationArgs.cjs","names":["getMarketOrderRawAmounts","COLLATERAL_TOKEN_DECIMALS","zeroAddress","bytes32Zero"],"sources":["../../../src/order-builder/helpers/buildMarketOrderCreationArgs.ts"],"sourcesContent":["import { parseUnits, zeroAddress } from \"viem\";\n\nimport { COLLATERAL_TOKEN_DECIMALS } from \"../../config.js\";\nimport { bytes32Zero } from \"../../constants.js\";\nimport type {\n\tOrderDataV1,\n\tOrderDataV2,\n\tSignatureTypeV1,\n\tSignatureTypeV2,\n} from \"../../order-utils/index.js\";\nimport type { RoundConfig, UserMarketOrderV1, UserMarketOrderV2 } from \"../../types/index.js\";\n\nimport { getMarketOrderRawAmounts } from \"./index.js\";\n\nexport async function buildMarketOrderCreationArgs(\n\tsigner: string,\n\tmaker: string,\n\tsignatureType: SignatureTypeV2,\n\tuserMarketOrder: UserMarketOrderV1 | UserMarketOrderV2,\n\troundConfig: RoundConfig,\n\tversion: 1,\n): Promise<OrderDataV1>;\nexport async function buildMarketOrderCreationArgs(\n\tsigner: string,\n\tmaker: string,\n\tsignatureType: SignatureTypeV2,\n\tuserMarketOrder: UserMarketOrderV1 | UserMarketOrderV2,\n\troundConfig: RoundConfig,\n\tversion?: 2,\n): Promise<OrderDataV2>;\nexport async function buildMarketOrderCreationArgs(\n\tsigner: string,\n\tmaker: string,\n\tsignatureType: SignatureTypeV2,\n\tuserMarketOrder: UserMarketOrderV1 | UserMarketOrderV2,\n\troundConfig: RoundConfig,\n\tversion: 3,\n): Promise<OrderDataV2>;\nexport async function buildMarketOrderCreationArgs(\n\tsigner: string,\n\tmaker: string,\n\tsignatureType: SignatureTypeV2,\n\tuserMarketOrder: UserMarketOrderV1 | UserMarketOrderV2,\n\troundConfig: RoundConfig,\n\tversion: number,\n): Promise<OrderDataV1 | OrderDataV2>;\nexport async function buildMarketOrderCreationArgs(\n\tsigner: string,\n\tmaker: string,\n\tsignatureType: SignatureTypeV2,\n\tuserMarketOrder: UserMarketOrderV1 | UserMarketOrderV2,\n\troundConfig: RoundConfig,\n\tversion: number = 2,\n): Promise<OrderDataV1 | OrderDataV2> {\n\tconst { side, rawMakerAmt, rawTakerAmt } = getMarketOrderRawAmounts(\n\t\tuserMarketOrder.side,\n\t\tuserMarketOrder.amount,\n\t\tuserMarketOrder.price || 1,\n\t\troundConfig,\n\t);\n\n\tconst makerAmount = parseUnits(rawMakerAmt.toString(), COLLATERAL_TOKEN_DECIMALS).toString();\n\tconst takerAmount = parseUnits(rawTakerAmt.toString(), COLLATERAL_TOKEN_DECIMALS).toString();\n\n\tif (version === 1) {\n\t\tconst v1Order = userMarketOrder as UserMarketOrderV1;\n\t\treturn {\n\t\t\tmaker,\n\t\t\ttaker: v1Order.taker ?? zeroAddress,\n\t\t\ttokenId: userMarketOrder.tokenID,\n\t\t\tmakerAmount,\n\t\t\ttakerAmount,\n\t\t\tside,\n\t\t\tsigner,\n\t\t\tsignatureType: signatureType as unknown as SignatureTypeV1,\n\t\t\tfeeRateBps: v1Order.feeRateBps?.toString() ?? \"0\",\n\t\t\tnonce: v1Order.nonce?.toString() ?? \"0\",\n\t\t};\n\t}\n\n\treturn {\n\t\tmaker,\n\t\ttokenId: userMarketOrder.tokenID,\n\t\tmakerAmount,\n\t\ttakerAmount,\n\t\tside,\n\t\tsigner,\n\t\tsignatureType,\n\t\ttimestamp: Date.now().toString(),\n\t\tmetadata:\n\t\t\t\"metadata\" in userMarketOrder ? (userMarketOrder.metadata ?? bytes32Zero) : bytes32Zero,\n\t\tbuilder: userMarketOrder.builderCode ?? bytes32Zero,\n\t};\n}\n"],"mappings":";;;;;;;AA8CA,eAAsB,6BACrB,QACA,OACA,eACA,iBACA,aACA,UAAkB,GACmB;CACrC,MAAM,EAAE,MAAM,aAAa,gBAAgBA,0DAC1C,gBAAgB,MAChB,gBAAgB,QAChB,gBAAgB,SAAS,GACzB,YACA;CAED,MAAM,mCAAyB,YAAY,UAAU,EAAEC,yCAA0B,CAAC,UAAU;CAC5F,MAAM,mCAAyB,YAAY,UAAU,EAAEA,yCAA0B,CAAC,UAAU;AAE5F,KAAI,YAAY,GAAG;EAClB,MAAM,UAAU;AAChB,SAAO;GACN;GACA,OAAO,QAAQ,SAASC;GACxB,SAAS,gBAAgB;GACzB;GACA;GACA;GACA;GACe;GACf,YAAY,QAAQ,YAAY,UAAU,IAAI;GAC9C,OAAO,QAAQ,OAAO,UAAU,IAAI;GACpC;;AAGF,QAAO;EACN;EACA,SAAS,gBAAgB;EACzB;EACA;EACA;EACA;EACA;EACA,WAAW,KAAK,KAAK,CAAC,UAAU;EAChC,UACC,cAAc,kBAAmB,gBAAgB,YAAYC,gCAAeA;EAC7E,SAAS,gBAAgB,eAAeA;EACxC"}
@@ -0,0 +1,42 @@
1
+ import { bytes32Zero } from "../../constants.js";
2
+ import { COLLATERAL_TOKEN_DECIMALS } from "../../config.js";
3
+ import { getMarketOrderRawAmounts } from "./getMarketOrderRawAmounts.js";
4
+ import { parseUnits, zeroAddress } from "viem";
5
+
6
+ //#region src/order-builder/helpers/buildMarketOrderCreationArgs.ts
7
+ async function buildMarketOrderCreationArgs(signer, maker, signatureType, userMarketOrder, roundConfig, version = 2) {
8
+ const { side, rawMakerAmt, rawTakerAmt } = getMarketOrderRawAmounts(userMarketOrder.side, userMarketOrder.amount, userMarketOrder.price || 1, roundConfig);
9
+ const makerAmount = parseUnits(rawMakerAmt.toString(), COLLATERAL_TOKEN_DECIMALS).toString();
10
+ const takerAmount = parseUnits(rawTakerAmt.toString(), COLLATERAL_TOKEN_DECIMALS).toString();
11
+ if (version === 1) {
12
+ const v1Order = userMarketOrder;
13
+ return {
14
+ maker,
15
+ taker: v1Order.taker ?? zeroAddress,
16
+ tokenId: userMarketOrder.tokenID,
17
+ makerAmount,
18
+ takerAmount,
19
+ side,
20
+ signer,
21
+ signatureType,
22
+ feeRateBps: v1Order.feeRateBps?.toString() ?? "0",
23
+ nonce: v1Order.nonce?.toString() ?? "0"
24
+ };
25
+ }
26
+ return {
27
+ maker,
28
+ tokenId: userMarketOrder.tokenID,
29
+ makerAmount,
30
+ takerAmount,
31
+ side,
32
+ signer,
33
+ signatureType,
34
+ timestamp: Date.now().toString(),
35
+ metadata: "metadata" in userMarketOrder ? userMarketOrder.metadata ?? bytes32Zero : bytes32Zero,
36
+ builder: userMarketOrder.builderCode ?? bytes32Zero
37
+ };
38
+ }
39
+
40
+ //#endregion
41
+ export { buildMarketOrderCreationArgs };
42
+ //# sourceMappingURL=buildMarketOrderCreationArgs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildMarketOrderCreationArgs.js","names":[],"sources":["../../../src/order-builder/helpers/buildMarketOrderCreationArgs.ts"],"sourcesContent":["import { parseUnits, zeroAddress } from \"viem\";\n\nimport { COLLATERAL_TOKEN_DECIMALS } from \"../../config.js\";\nimport { bytes32Zero } from \"../../constants.js\";\nimport type {\n\tOrderDataV1,\n\tOrderDataV2,\n\tSignatureTypeV1,\n\tSignatureTypeV2,\n} from \"../../order-utils/index.js\";\nimport type { RoundConfig, UserMarketOrderV1, UserMarketOrderV2 } from \"../../types/index.js\";\n\nimport { getMarketOrderRawAmounts } from \"./index.js\";\n\nexport async function buildMarketOrderCreationArgs(\n\tsigner: string,\n\tmaker: string,\n\tsignatureType: SignatureTypeV2,\n\tuserMarketOrder: UserMarketOrderV1 | UserMarketOrderV2,\n\troundConfig: RoundConfig,\n\tversion: 1,\n): Promise<OrderDataV1>;\nexport async function buildMarketOrderCreationArgs(\n\tsigner: string,\n\tmaker: string,\n\tsignatureType: SignatureTypeV2,\n\tuserMarketOrder: UserMarketOrderV1 | UserMarketOrderV2,\n\troundConfig: RoundConfig,\n\tversion?: 2,\n): Promise<OrderDataV2>;\nexport async function buildMarketOrderCreationArgs(\n\tsigner: string,\n\tmaker: string,\n\tsignatureType: SignatureTypeV2,\n\tuserMarketOrder: UserMarketOrderV1 | UserMarketOrderV2,\n\troundConfig: RoundConfig,\n\tversion: 3,\n): Promise<OrderDataV2>;\nexport async function buildMarketOrderCreationArgs(\n\tsigner: string,\n\tmaker: string,\n\tsignatureType: SignatureTypeV2,\n\tuserMarketOrder: UserMarketOrderV1 | UserMarketOrderV2,\n\troundConfig: RoundConfig,\n\tversion: number,\n): Promise<OrderDataV1 | OrderDataV2>;\nexport async function buildMarketOrderCreationArgs(\n\tsigner: string,\n\tmaker: string,\n\tsignatureType: SignatureTypeV2,\n\tuserMarketOrder: UserMarketOrderV1 | UserMarketOrderV2,\n\troundConfig: RoundConfig,\n\tversion: number = 2,\n): Promise<OrderDataV1 | OrderDataV2> {\n\tconst { side, rawMakerAmt, rawTakerAmt } = getMarketOrderRawAmounts(\n\t\tuserMarketOrder.side,\n\t\tuserMarketOrder.amount,\n\t\tuserMarketOrder.price || 1,\n\t\troundConfig,\n\t);\n\n\tconst makerAmount = parseUnits(rawMakerAmt.toString(), COLLATERAL_TOKEN_DECIMALS).toString();\n\tconst takerAmount = parseUnits(rawTakerAmt.toString(), COLLATERAL_TOKEN_DECIMALS).toString();\n\n\tif (version === 1) {\n\t\tconst v1Order = userMarketOrder as UserMarketOrderV1;\n\t\treturn {\n\t\t\tmaker,\n\t\t\ttaker: v1Order.taker ?? zeroAddress,\n\t\t\ttokenId: userMarketOrder.tokenID,\n\t\t\tmakerAmount,\n\t\t\ttakerAmount,\n\t\t\tside,\n\t\t\tsigner,\n\t\t\tsignatureType: signatureType as unknown as SignatureTypeV1,\n\t\t\tfeeRateBps: v1Order.feeRateBps?.toString() ?? \"0\",\n\t\t\tnonce: v1Order.nonce?.toString() ?? \"0\",\n\t\t};\n\t}\n\n\treturn {\n\t\tmaker,\n\t\ttokenId: userMarketOrder.tokenID,\n\t\tmakerAmount,\n\t\ttakerAmount,\n\t\tside,\n\t\tsigner,\n\t\tsignatureType,\n\t\ttimestamp: Date.now().toString(),\n\t\tmetadata:\n\t\t\t\"metadata\" in userMarketOrder ? (userMarketOrder.metadata ?? bytes32Zero) : bytes32Zero,\n\t\tbuilder: userMarketOrder.builderCode ?? bytes32Zero,\n\t};\n}\n"],"mappings":";;;;;;AA8CA,eAAsB,6BACrB,QACA,OACA,eACA,iBACA,aACA,UAAkB,GACmB;CACrC,MAAM,EAAE,MAAM,aAAa,gBAAgB,yBAC1C,gBAAgB,MAChB,gBAAgB,QAChB,gBAAgB,SAAS,GACzB,YACA;CAED,MAAM,cAAc,WAAW,YAAY,UAAU,EAAE,0BAA0B,CAAC,UAAU;CAC5F,MAAM,cAAc,WAAW,YAAY,UAAU,EAAE,0BAA0B,CAAC,UAAU;AAE5F,KAAI,YAAY,GAAG;EAClB,MAAM,UAAU;AAChB,SAAO;GACN;GACA,OAAO,QAAQ,SAAS;GACxB,SAAS,gBAAgB;GACzB;GACA;GACA;GACA;GACe;GACf,YAAY,QAAQ,YAAY,UAAU,IAAI;GAC9C,OAAO,QAAQ,OAAO,UAAU,IAAI;GACpC;;AAGF,QAAO;EACN;EACA,SAAS,gBAAgB;EACzB;EACA;EACA;EACA;EACA;EACA,WAAW,KAAK,KAAK,CAAC,UAAU;EAChC,UACC,cAAc,kBAAmB,gBAAgB,YAAY,cAAe;EAC7E,SAAS,gBAAgB,eAAe;EACxC"}
@@ -0,0 +1,34 @@
1
+ const require_exchangeOrderBuilderV1 = require('../../order-utils/exchangeOrderBuilderV1.cjs');
2
+ const require_exchangeOrderBuilderV2 = require('../../order-utils/exchangeOrderBuilderV2.cjs');
3
+
4
+ //#region src/order-builder/helpers/buildOrder.ts
5
+ /**
6
+ * Generate and sign a order
7
+ *
8
+ * @param signer
9
+ * @param exchangeAddress ctf exchange contract address
10
+ * @param chainId
11
+ * @param OrderData
12
+ * @returns SignedOrder
13
+ */
14
+ const buildOrder = async (signer, exchangeAddress, chainId, orderData, version = 2) => {
15
+ switch (version) {
16
+ case 1: return buildOrderV1(signer, exchangeAddress, chainId, orderData);
17
+ case 2: return buildOrderV2(signer, exchangeAddress, chainId, orderData);
18
+ case 3: return buildOrderV3(signer, exchangeAddress, chainId, orderData);
19
+ default: throw new Error(`unsupported order version ${version}`);
20
+ }
21
+ };
22
+ const buildOrderV1 = async (signer, exchangeAddress, chainId, orderData) => {
23
+ return new require_exchangeOrderBuilderV1.ExchangeOrderBuilderV1(exchangeAddress, chainId, signer).buildSignedOrder(orderData);
24
+ };
25
+ const buildOrderV2 = async (signer, exchangeAddress, chainId, orderData) => {
26
+ return new require_exchangeOrderBuilderV2.ExchangeOrderBuilderV2(exchangeAddress, chainId, signer).buildSignedOrder(orderData);
27
+ };
28
+ const buildOrderV3 = async (signer, exchangeAddress, chainId, orderData) => {
29
+ return new require_exchangeOrderBuilderV2.ExchangeOrderBuilderV3(exchangeAddress, chainId, signer).buildSignedOrder(orderData);
30
+ };
31
+
32
+ //#endregion
33
+ exports.buildOrder = buildOrder;
34
+ //# sourceMappingURL=buildOrder.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildOrder.cjs","names":["ExchangeOrderBuilderV1","ExchangeOrderBuilderV2","ExchangeOrderBuilderV3"],"sources":["../../../src/order-builder/helpers/buildOrder.ts"],"sourcesContent":["import {\n\tExchangeOrderBuilderV1,\n\tExchangeOrderBuilderV2,\n\tExchangeOrderBuilderV3,\n\ttype OrderDataV1,\n\ttype OrderDataV2,\n\ttype SignedOrderV1,\n\ttype SignedOrderV2,\n} from \"../../order-utils/index.js\";\nimport type { ClobSigner } from \"../../signing/signer.js\";\n\n/**\n * Generate and sign a order\n *\n * @param signer\n * @param exchangeAddress ctf exchange contract address\n * @param chainId\n * @param OrderData\n * @returns SignedOrder\n */\nexport const buildOrder = async (\n\tsigner: ClobSigner,\n\texchangeAddress: string,\n\tchainId: number,\n\torderData: OrderDataV1 | OrderDataV2,\n\tversion: number = 2,\n): Promise<SignedOrderV1 | SignedOrderV2> => {\n\tswitch (version) {\n\t\tcase 1:\n\t\t\treturn buildOrderV1(signer, exchangeAddress, chainId, orderData as OrderDataV1);\n\t\tcase 2:\n\t\t\treturn buildOrderV2(signer, exchangeAddress, chainId, orderData as OrderDataV2);\n\t\tcase 3:\n\t\t\treturn buildOrderV3(signer, exchangeAddress, chainId, orderData as OrderDataV2);\n\t\tdefault:\n\t\t\tthrow new Error(`unsupported order version ${version}`);\n\t}\n};\n\nexport const buildOrderV1 = async (\n\tsigner: ClobSigner,\n\texchangeAddress: string,\n\tchainId: number,\n\torderData: OrderDataV1,\n): Promise<SignedOrderV1> => {\n\tconst ctfExchangeOrderBuilder = new ExchangeOrderBuilderV1(exchangeAddress, chainId, signer);\n\treturn ctfExchangeOrderBuilder.buildSignedOrder(orderData);\n};\n\nexport const buildOrderV2 = async (\n\tsigner: ClobSigner,\n\texchangeAddress: string,\n\tchainId: number,\n\torderData: OrderDataV2,\n): Promise<SignedOrderV2> => {\n\tconst ctfExchangeOrderBuilder = new ExchangeOrderBuilderV2(exchangeAddress, chainId, signer);\n\treturn ctfExchangeOrderBuilder.buildSignedOrder(orderData);\n};\n\nexport const buildOrderV3 = async (\n\tsigner: ClobSigner,\n\texchangeAddress: string,\n\tchainId: number,\n\torderData: OrderDataV2,\n): Promise<SignedOrderV2> => {\n\tconst ctfExchangeOrderBuilder = new ExchangeOrderBuilderV3(exchangeAddress, chainId, signer);\n\treturn ctfExchangeOrderBuilder.buildSignedOrder(orderData);\n};\n"],"mappings":";;;;;;;;;;;;;AAoBA,MAAa,aAAa,OACzB,QACA,iBACA,SACA,WACA,UAAkB,MAC0B;AAC5C,SAAQ,SAAR;EACC,KAAK,EACJ,QAAO,aAAa,QAAQ,iBAAiB,SAAS,UAAyB;EAChF,KAAK,EACJ,QAAO,aAAa,QAAQ,iBAAiB,SAAS,UAAyB;EAChF,KAAK,EACJ,QAAO,aAAa,QAAQ,iBAAiB,SAAS,UAAyB;EAChF,QACC,OAAM,IAAI,MAAM,6BAA6B,UAAU;;;AAI1D,MAAa,eAAe,OAC3B,QACA,iBACA,SACA,cAC4B;AAE5B,QADgC,IAAIA,sDAAuB,iBAAiB,SAAS,OAAO,CAC7D,iBAAiB,UAAU;;AAG3D,MAAa,eAAe,OAC3B,QACA,iBACA,SACA,cAC4B;AAE5B,QADgC,IAAIC,sDAAuB,iBAAiB,SAAS,OAAO,CAC7D,iBAAiB,UAAU;;AAG3D,MAAa,eAAe,OAC3B,QACA,iBACA,SACA,cAC4B;AAE5B,QADgC,IAAIC,sDAAuB,iBAAiB,SAAS,OAAO,CAC7D,iBAAiB,UAAU"}
@@ -0,0 +1,34 @@
1
+ import { ExchangeOrderBuilderV1 } from "../../order-utils/exchangeOrderBuilderV1.js";
2
+ import { ExchangeOrderBuilderV2, ExchangeOrderBuilderV3 } from "../../order-utils/exchangeOrderBuilderV2.js";
3
+
4
+ //#region src/order-builder/helpers/buildOrder.ts
5
+ /**
6
+ * Generate and sign a order
7
+ *
8
+ * @param signer
9
+ * @param exchangeAddress ctf exchange contract address
10
+ * @param chainId
11
+ * @param OrderData
12
+ * @returns SignedOrder
13
+ */
14
+ const buildOrder = async (signer, exchangeAddress, chainId, orderData, version = 2) => {
15
+ switch (version) {
16
+ case 1: return buildOrderV1(signer, exchangeAddress, chainId, orderData);
17
+ case 2: return buildOrderV2(signer, exchangeAddress, chainId, orderData);
18
+ case 3: return buildOrderV3(signer, exchangeAddress, chainId, orderData);
19
+ default: throw new Error(`unsupported order version ${version}`);
20
+ }
21
+ };
22
+ const buildOrderV1 = async (signer, exchangeAddress, chainId, orderData) => {
23
+ return new ExchangeOrderBuilderV1(exchangeAddress, chainId, signer).buildSignedOrder(orderData);
24
+ };
25
+ const buildOrderV2 = async (signer, exchangeAddress, chainId, orderData) => {
26
+ return new ExchangeOrderBuilderV2(exchangeAddress, chainId, signer).buildSignedOrder(orderData);
27
+ };
28
+ const buildOrderV3 = async (signer, exchangeAddress, chainId, orderData) => {
29
+ return new ExchangeOrderBuilderV3(exchangeAddress, chainId, signer).buildSignedOrder(orderData);
30
+ };
31
+
32
+ //#endregion
33
+ export { buildOrder };
34
+ //# sourceMappingURL=buildOrder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildOrder.js","names":[],"sources":["../../../src/order-builder/helpers/buildOrder.ts"],"sourcesContent":["import {\n\tExchangeOrderBuilderV1,\n\tExchangeOrderBuilderV2,\n\tExchangeOrderBuilderV3,\n\ttype OrderDataV1,\n\ttype OrderDataV2,\n\ttype SignedOrderV1,\n\ttype SignedOrderV2,\n} from \"../../order-utils/index.js\";\nimport type { ClobSigner } from \"../../signing/signer.js\";\n\n/**\n * Generate and sign a order\n *\n * @param signer\n * @param exchangeAddress ctf exchange contract address\n * @param chainId\n * @param OrderData\n * @returns SignedOrder\n */\nexport const buildOrder = async (\n\tsigner: ClobSigner,\n\texchangeAddress: string,\n\tchainId: number,\n\torderData: OrderDataV1 | OrderDataV2,\n\tversion: number = 2,\n): Promise<SignedOrderV1 | SignedOrderV2> => {\n\tswitch (version) {\n\t\tcase 1:\n\t\t\treturn buildOrderV1(signer, exchangeAddress, chainId, orderData as OrderDataV1);\n\t\tcase 2:\n\t\t\treturn buildOrderV2(signer, exchangeAddress, chainId, orderData as OrderDataV2);\n\t\tcase 3:\n\t\t\treturn buildOrderV3(signer, exchangeAddress, chainId, orderData as OrderDataV2);\n\t\tdefault:\n\t\t\tthrow new Error(`unsupported order version ${version}`);\n\t}\n};\n\nexport const buildOrderV1 = async (\n\tsigner: ClobSigner,\n\texchangeAddress: string,\n\tchainId: number,\n\torderData: OrderDataV1,\n): Promise<SignedOrderV1> => {\n\tconst ctfExchangeOrderBuilder = new ExchangeOrderBuilderV1(exchangeAddress, chainId, signer);\n\treturn ctfExchangeOrderBuilder.buildSignedOrder(orderData);\n};\n\nexport const buildOrderV2 = async (\n\tsigner: ClobSigner,\n\texchangeAddress: string,\n\tchainId: number,\n\torderData: OrderDataV2,\n): Promise<SignedOrderV2> => {\n\tconst ctfExchangeOrderBuilder = new ExchangeOrderBuilderV2(exchangeAddress, chainId, signer);\n\treturn ctfExchangeOrderBuilder.buildSignedOrder(orderData);\n};\n\nexport const buildOrderV3 = async (\n\tsigner: ClobSigner,\n\texchangeAddress: string,\n\tchainId: number,\n\torderData: OrderDataV2,\n): Promise<SignedOrderV2> => {\n\tconst ctfExchangeOrderBuilder = new ExchangeOrderBuilderV3(exchangeAddress, chainId, signer);\n\treturn ctfExchangeOrderBuilder.buildSignedOrder(orderData);\n};\n"],"mappings":";;;;;;;;;;;;;AAoBA,MAAa,aAAa,OACzB,QACA,iBACA,SACA,WACA,UAAkB,MAC0B;AAC5C,SAAQ,SAAR;EACC,KAAK,EACJ,QAAO,aAAa,QAAQ,iBAAiB,SAAS,UAAyB;EAChF,KAAK,EACJ,QAAO,aAAa,QAAQ,iBAAiB,SAAS,UAAyB;EAChF,KAAK,EACJ,QAAO,aAAa,QAAQ,iBAAiB,SAAS,UAAyB;EAChF,QACC,OAAM,IAAI,MAAM,6BAA6B,UAAU;;;AAI1D,MAAa,eAAe,OAC3B,QACA,iBACA,SACA,cAC4B;AAE5B,QADgC,IAAI,uBAAuB,iBAAiB,SAAS,OAAO,CAC7D,iBAAiB,UAAU;;AAG3D,MAAa,eAAe,OAC3B,QACA,iBACA,SACA,cAC4B;AAE5B,QADgC,IAAI,uBAAuB,iBAAiB,SAAS,OAAO,CAC7D,iBAAiB,UAAU;;AAG3D,MAAa,eAAe,OAC3B,QACA,iBACA,SACA,cAC4B;AAE5B,QADgC,IAAI,uBAAuB,iBAAiB,SAAS,OAAO,CAC7D,iBAAiB,UAAU"}
@@ -0,0 +1,45 @@
1
+ const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
+ const require_constants = require('../../constants.cjs');
3
+ const require_config = require('../../config.cjs');
4
+ const require_getOrderRawAmounts = require('./getOrderRawAmounts.cjs');
5
+ let viem = require("viem");
6
+
7
+ //#region src/order-builder/helpers/buildOrderCreationArgs.ts
8
+ async function buildOrderCreationArgs(signer, maker, signatureType, userOrder, roundConfig, version = 2) {
9
+ const { side, rawMakerAmt, rawTakerAmt } = require_getOrderRawAmounts.getOrderRawAmounts(userOrder.side, userOrder.size, userOrder.price, roundConfig);
10
+ const makerAmount = (0, viem.parseUnits)(rawMakerAmt.toString(), require_config.COLLATERAL_TOKEN_DECIMALS).toString();
11
+ const takerAmount = (0, viem.parseUnits)(rawTakerAmt.toString(), require_config.COLLATERAL_TOKEN_DECIMALS).toString();
12
+ if (version === 1) {
13
+ const v1Order = userOrder;
14
+ return {
15
+ maker,
16
+ taker: v1Order.taker ?? viem.zeroAddress,
17
+ tokenId: userOrder.tokenID,
18
+ makerAmount,
19
+ takerAmount,
20
+ side,
21
+ signer,
22
+ signatureType,
23
+ feeRateBps: v1Order.feeRateBps?.toString() ?? "0",
24
+ nonce: v1Order.nonce?.toString() ?? "0",
25
+ expiration: userOrder.expiration !== void 0 ? userOrder.expiration.toString() : "0"
26
+ };
27
+ }
28
+ return {
29
+ maker,
30
+ tokenId: userOrder.tokenID,
31
+ makerAmount,
32
+ takerAmount,
33
+ side,
34
+ signer,
35
+ signatureType,
36
+ timestamp: Date.now().toString(),
37
+ metadata: "metadata" in userOrder ? userOrder.metadata ?? require_constants.bytes32Zero : require_constants.bytes32Zero,
38
+ builder: userOrder.builderCode ?? require_constants.bytes32Zero,
39
+ expiration: userOrder.expiration !== void 0 ? userOrder.expiration.toString() : "0"
40
+ };
41
+ }
42
+
43
+ //#endregion
44
+ exports.buildOrderCreationArgs = buildOrderCreationArgs;
45
+ //# sourceMappingURL=buildOrderCreationArgs.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildOrderCreationArgs.cjs","names":["getOrderRawAmounts","COLLATERAL_TOKEN_DECIMALS","zeroAddress","bytes32Zero"],"sources":["../../../src/order-builder/helpers/buildOrderCreationArgs.ts"],"sourcesContent":["import { parseUnits, zeroAddress } from \"viem\";\n\nimport { COLLATERAL_TOKEN_DECIMALS } from \"../../config.js\";\nimport { bytes32Zero } from \"../../constants.js\";\nimport type {\n\tOrderDataV1,\n\tOrderDataV2,\n\tSignatureTypeV1,\n\tSignatureTypeV2,\n} from \"../../order-utils/index.js\";\nimport type { RoundConfig, UserOrderV1, UserOrderV2 } from \"../../types/index.js\";\n\nimport { getOrderRawAmounts } from \"./getOrderRawAmounts.js\";\n\nexport async function buildOrderCreationArgs(\n\tsigner: string,\n\tmaker: string,\n\tsignatureType: SignatureTypeV2,\n\tuserOrder: UserOrderV1 | UserOrderV2,\n\troundConfig: RoundConfig,\n\tversion: 1,\n): Promise<OrderDataV1>;\nexport async function buildOrderCreationArgs(\n\tsigner: string,\n\tmaker: string,\n\tsignatureType: SignatureTypeV2,\n\tuserOrder: UserOrderV1 | UserOrderV2,\n\troundConfig: RoundConfig,\n\tversion?: 2,\n): Promise<OrderDataV2>;\nexport async function buildOrderCreationArgs(\n\tsigner: string,\n\tmaker: string,\n\tsignatureType: SignatureTypeV2,\n\tuserOrder: UserOrderV1 | UserOrderV2,\n\troundConfig: RoundConfig,\n\tversion: 3,\n): Promise<OrderDataV2>;\nexport async function buildOrderCreationArgs(\n\tsigner: string,\n\tmaker: string,\n\tsignatureType: SignatureTypeV2,\n\tuserOrder: UserOrderV1 | UserOrderV2,\n\troundConfig: RoundConfig,\n\tversion: number,\n): Promise<OrderDataV1 | OrderDataV2>;\nexport async function buildOrderCreationArgs(\n\tsigner: string,\n\tmaker: string,\n\tsignatureType: SignatureTypeV2,\n\tuserOrder: UserOrderV1 | UserOrderV2,\n\troundConfig: RoundConfig,\n\tversion: number = 2,\n): Promise<OrderDataV1 | OrderDataV2> {\n\tconst { side, rawMakerAmt, rawTakerAmt } = getOrderRawAmounts(\n\t\tuserOrder.side,\n\t\tuserOrder.size,\n\t\tuserOrder.price,\n\t\troundConfig,\n\t);\n\n\tconst makerAmount = parseUnits(rawMakerAmt.toString(), COLLATERAL_TOKEN_DECIMALS).toString();\n\tconst takerAmount = parseUnits(rawTakerAmt.toString(), COLLATERAL_TOKEN_DECIMALS).toString();\n\n\tif (version === 1) {\n\t\tconst v1Order = userOrder as UserOrderV1;\n\t\treturn {\n\t\t\tmaker,\n\t\t\ttaker: v1Order.taker ?? zeroAddress,\n\t\t\ttokenId: userOrder.tokenID,\n\t\t\tmakerAmount,\n\t\t\ttakerAmount,\n\t\t\tside,\n\t\t\tsigner,\n\t\t\tsignatureType: signatureType as unknown as SignatureTypeV1,\n\t\t\tfeeRateBps: v1Order.feeRateBps?.toString() ?? \"0\",\n\t\t\tnonce: v1Order.nonce?.toString() ?? \"0\",\n\t\t\texpiration: userOrder.expiration !== undefined ? userOrder.expiration.toString() : \"0\",\n\t\t};\n\t}\n\n\treturn {\n\t\tmaker,\n\t\ttokenId: userOrder.tokenID,\n\t\tmakerAmount,\n\t\ttakerAmount,\n\t\tside,\n\t\tsigner,\n\t\tsignatureType,\n\t\ttimestamp: Date.now().toString(),\n\t\tmetadata: \"metadata\" in userOrder ? (userOrder.metadata ?? bytes32Zero) : bytes32Zero,\n\t\tbuilder: userOrder.builderCode ?? bytes32Zero,\n\t\texpiration: userOrder.expiration !== undefined ? userOrder.expiration.toString() : \"0\",\n\t};\n}\n"],"mappings":";;;;;;;AA8CA,eAAsB,uBACrB,QACA,OACA,eACA,WACA,aACA,UAAkB,GACmB;CACrC,MAAM,EAAE,MAAM,aAAa,gBAAgBA,8CAC1C,UAAU,MACV,UAAU,MACV,UAAU,OACV,YACA;CAED,MAAM,mCAAyB,YAAY,UAAU,EAAEC,yCAA0B,CAAC,UAAU;CAC5F,MAAM,mCAAyB,YAAY,UAAU,EAAEA,yCAA0B,CAAC,UAAU;AAE5F,KAAI,YAAY,GAAG;EAClB,MAAM,UAAU;AAChB,SAAO;GACN;GACA,OAAO,QAAQ,SAASC;GACxB,SAAS,UAAU;GACnB;GACA;GACA;GACA;GACe;GACf,YAAY,QAAQ,YAAY,UAAU,IAAI;GAC9C,OAAO,QAAQ,OAAO,UAAU,IAAI;GACpC,YAAY,UAAU,eAAe,SAAY,UAAU,WAAW,UAAU,GAAG;GACnF;;AAGF,QAAO;EACN;EACA,SAAS,UAAU;EACnB;EACA;EACA;EACA;EACA;EACA,WAAW,KAAK,KAAK,CAAC,UAAU;EAChC,UAAU,cAAc,YAAa,UAAU,YAAYC,gCAAeA;EAC1E,SAAS,UAAU,eAAeA;EAClC,YAAY,UAAU,eAAe,SAAY,UAAU,WAAW,UAAU,GAAG;EACnF"}
@@ -0,0 +1,44 @@
1
+ import { bytes32Zero } from "../../constants.js";
2
+ import { COLLATERAL_TOKEN_DECIMALS } from "../../config.js";
3
+ import { getOrderRawAmounts } from "./getOrderRawAmounts.js";
4
+ import { parseUnits, zeroAddress } from "viem";
5
+
6
+ //#region src/order-builder/helpers/buildOrderCreationArgs.ts
7
+ async function buildOrderCreationArgs(signer, maker, signatureType, userOrder, roundConfig, version = 2) {
8
+ const { side, rawMakerAmt, rawTakerAmt } = getOrderRawAmounts(userOrder.side, userOrder.size, userOrder.price, roundConfig);
9
+ const makerAmount = parseUnits(rawMakerAmt.toString(), COLLATERAL_TOKEN_DECIMALS).toString();
10
+ const takerAmount = parseUnits(rawTakerAmt.toString(), COLLATERAL_TOKEN_DECIMALS).toString();
11
+ if (version === 1) {
12
+ const v1Order = userOrder;
13
+ return {
14
+ maker,
15
+ taker: v1Order.taker ?? zeroAddress,
16
+ tokenId: userOrder.tokenID,
17
+ makerAmount,
18
+ takerAmount,
19
+ side,
20
+ signer,
21
+ signatureType,
22
+ feeRateBps: v1Order.feeRateBps?.toString() ?? "0",
23
+ nonce: v1Order.nonce?.toString() ?? "0",
24
+ expiration: userOrder.expiration !== void 0 ? userOrder.expiration.toString() : "0"
25
+ };
26
+ }
27
+ return {
28
+ maker,
29
+ tokenId: userOrder.tokenID,
30
+ makerAmount,
31
+ takerAmount,
32
+ side,
33
+ signer,
34
+ signatureType,
35
+ timestamp: Date.now().toString(),
36
+ metadata: "metadata" in userOrder ? userOrder.metadata ?? bytes32Zero : bytes32Zero,
37
+ builder: userOrder.builderCode ?? bytes32Zero,
38
+ expiration: userOrder.expiration !== void 0 ? userOrder.expiration.toString() : "0"
39
+ };
40
+ }
41
+
42
+ //#endregion
43
+ export { buildOrderCreationArgs };
44
+ //# sourceMappingURL=buildOrderCreationArgs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildOrderCreationArgs.js","names":[],"sources":["../../../src/order-builder/helpers/buildOrderCreationArgs.ts"],"sourcesContent":["import { parseUnits, zeroAddress } from \"viem\";\n\nimport { COLLATERAL_TOKEN_DECIMALS } from \"../../config.js\";\nimport { bytes32Zero } from \"../../constants.js\";\nimport type {\n\tOrderDataV1,\n\tOrderDataV2,\n\tSignatureTypeV1,\n\tSignatureTypeV2,\n} from \"../../order-utils/index.js\";\nimport type { RoundConfig, UserOrderV1, UserOrderV2 } from \"../../types/index.js\";\n\nimport { getOrderRawAmounts } from \"./getOrderRawAmounts.js\";\n\nexport async function buildOrderCreationArgs(\n\tsigner: string,\n\tmaker: string,\n\tsignatureType: SignatureTypeV2,\n\tuserOrder: UserOrderV1 | UserOrderV2,\n\troundConfig: RoundConfig,\n\tversion: 1,\n): Promise<OrderDataV1>;\nexport async function buildOrderCreationArgs(\n\tsigner: string,\n\tmaker: string,\n\tsignatureType: SignatureTypeV2,\n\tuserOrder: UserOrderV1 | UserOrderV2,\n\troundConfig: RoundConfig,\n\tversion?: 2,\n): Promise<OrderDataV2>;\nexport async function buildOrderCreationArgs(\n\tsigner: string,\n\tmaker: string,\n\tsignatureType: SignatureTypeV2,\n\tuserOrder: UserOrderV1 | UserOrderV2,\n\troundConfig: RoundConfig,\n\tversion: 3,\n): Promise<OrderDataV2>;\nexport async function buildOrderCreationArgs(\n\tsigner: string,\n\tmaker: string,\n\tsignatureType: SignatureTypeV2,\n\tuserOrder: UserOrderV1 | UserOrderV2,\n\troundConfig: RoundConfig,\n\tversion: number,\n): Promise<OrderDataV1 | OrderDataV2>;\nexport async function buildOrderCreationArgs(\n\tsigner: string,\n\tmaker: string,\n\tsignatureType: SignatureTypeV2,\n\tuserOrder: UserOrderV1 | UserOrderV2,\n\troundConfig: RoundConfig,\n\tversion: number = 2,\n): Promise<OrderDataV1 | OrderDataV2> {\n\tconst { side, rawMakerAmt, rawTakerAmt } = getOrderRawAmounts(\n\t\tuserOrder.side,\n\t\tuserOrder.size,\n\t\tuserOrder.price,\n\t\troundConfig,\n\t);\n\n\tconst makerAmount = parseUnits(rawMakerAmt.toString(), COLLATERAL_TOKEN_DECIMALS).toString();\n\tconst takerAmount = parseUnits(rawTakerAmt.toString(), COLLATERAL_TOKEN_DECIMALS).toString();\n\n\tif (version === 1) {\n\t\tconst v1Order = userOrder as UserOrderV1;\n\t\treturn {\n\t\t\tmaker,\n\t\t\ttaker: v1Order.taker ?? zeroAddress,\n\t\t\ttokenId: userOrder.tokenID,\n\t\t\tmakerAmount,\n\t\t\ttakerAmount,\n\t\t\tside,\n\t\t\tsigner,\n\t\t\tsignatureType: signatureType as unknown as SignatureTypeV1,\n\t\t\tfeeRateBps: v1Order.feeRateBps?.toString() ?? \"0\",\n\t\t\tnonce: v1Order.nonce?.toString() ?? \"0\",\n\t\t\texpiration: userOrder.expiration !== undefined ? userOrder.expiration.toString() : \"0\",\n\t\t};\n\t}\n\n\treturn {\n\t\tmaker,\n\t\ttokenId: userOrder.tokenID,\n\t\tmakerAmount,\n\t\ttakerAmount,\n\t\tside,\n\t\tsigner,\n\t\tsignatureType,\n\t\ttimestamp: Date.now().toString(),\n\t\tmetadata: \"metadata\" in userOrder ? (userOrder.metadata ?? bytes32Zero) : bytes32Zero,\n\t\tbuilder: userOrder.builderCode ?? bytes32Zero,\n\t\texpiration: userOrder.expiration !== undefined ? userOrder.expiration.toString() : \"0\",\n\t};\n}\n"],"mappings":";;;;;;AA8CA,eAAsB,uBACrB,QACA,OACA,eACA,WACA,aACA,UAAkB,GACmB;CACrC,MAAM,EAAE,MAAM,aAAa,gBAAgB,mBAC1C,UAAU,MACV,UAAU,MACV,UAAU,OACV,YACA;CAED,MAAM,cAAc,WAAW,YAAY,UAAU,EAAE,0BAA0B,CAAC,UAAU;CAC5F,MAAM,cAAc,WAAW,YAAY,UAAU,EAAE,0BAA0B,CAAC,UAAU;AAE5F,KAAI,YAAY,GAAG;EAClB,MAAM,UAAU;AAChB,SAAO;GACN;GACA,OAAO,QAAQ,SAAS;GACxB,SAAS,UAAU;GACnB;GACA;GACA;GACA;GACe;GACf,YAAY,QAAQ,YAAY,UAAU,IAAI;GAC9C,OAAO,QAAQ,OAAO,UAAU,IAAI;GACpC,YAAY,UAAU,eAAe,SAAY,UAAU,WAAW,UAAU,GAAG;GACnF;;AAGF,QAAO;EACN;EACA,SAAS,UAAU;EACnB;EACA;EACA;EACA;EACA;EACA,WAAW,KAAK,KAAK,CAAC,UAAU;EAChC,UAAU,cAAc,YAAa,UAAU,YAAY,cAAe;EAC1E,SAAS,UAAU,eAAe;EAClC,YAAY,UAAU,eAAe,SAAY,UAAU,WAAW,UAAU,GAAG;EACnF"}
@@ -0,0 +1,24 @@
1
+ const require_clob = require('../../types/clob.cjs');
2
+
3
+ //#region src/order-builder/helpers/calculateBuyMarketPrice.ts
4
+ /**
5
+ * calculateBuyMarketPrice calculates the market price to buy a $$ amount
6
+ * @param positions
7
+ * @param amountToMatch worth to buy
8
+ * @returns
9
+ */
10
+ const calculateBuyMarketPrice = (positions, amountToMatch, orderType) => {
11
+ if (!positions.length) throw new Error("no match");
12
+ let sum = 0;
13
+ for (let i = positions.length - 1; i >= 0; i--) {
14
+ const p = positions[i];
15
+ sum += parseFloat(p.size) * parseFloat(p.price);
16
+ if (sum >= amountToMatch) return parseFloat(p.price);
17
+ }
18
+ if (orderType === require_clob.OrderType.FOK) throw new Error("no match");
19
+ return parseFloat(positions[0].price);
20
+ };
21
+
22
+ //#endregion
23
+ exports.calculateBuyMarketPrice = calculateBuyMarketPrice;
24
+ //# sourceMappingURL=calculateBuyMarketPrice.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculateBuyMarketPrice.cjs","names":["OrderType"],"sources":["../../../src/order-builder/helpers/calculateBuyMarketPrice.ts"],"sourcesContent":["import { type OrderSummary, OrderType } from \"../../types/index.js\";\n\n/**\n * calculateBuyMarketPrice calculates the market price to buy a $$ amount\n * @param positions\n * @param amountToMatch worth to buy\n * @returns\n */\nexport const calculateBuyMarketPrice = (\n\tpositions: OrderSummary[],\n\tamountToMatch: number,\n\torderType: OrderType,\n) => {\n\tif (!positions.length) {\n\t\tthrow new Error(\"no match\");\n\t}\n\tlet sum = 0;\n\t/*\n Asks:\n [\n { price: '0.6', size: '100' },\n { price: '0.55', size: '100' },\n { price: '0.5', size: '100' }\n ]\n So, if the amount to match is $150 that will be reached at first position so price will be 0.6\n */\n\tfor (let i = positions.length - 1; i >= 0; i--) {\n\t\tconst p = positions[i];\n\t\tsum += parseFloat(p.size) * parseFloat(p.price);\n\t\tif (sum >= amountToMatch) {\n\t\t\treturn parseFloat(p.price);\n\t\t}\n\t}\n\tif (orderType === OrderType.FOK) {\n\t\tthrow new Error(\"no match\");\n\t}\n\treturn parseFloat(positions[0].price);\n};\n"],"mappings":";;;;;;;;;AAQA,MAAa,2BACZ,WACA,eACA,cACI;AACJ,KAAI,CAAC,UAAU,OACd,OAAM,IAAI,MAAM,WAAW;CAE5B,IAAI,MAAM;AAUV,MAAK,IAAI,IAAI,UAAU,SAAS,GAAG,KAAK,GAAG,KAAK;EAC/C,MAAM,IAAI,UAAU;AACpB,SAAO,WAAW,EAAE,KAAK,GAAG,WAAW,EAAE,MAAM;AAC/C,MAAI,OAAO,cACV,QAAO,WAAW,EAAE,MAAM;;AAG5B,KAAI,cAAcA,uBAAU,IAC3B,OAAM,IAAI,MAAM,WAAW;AAE5B,QAAO,WAAW,UAAU,GAAG,MAAM"}
@@ -0,0 +1,24 @@
1
+ import { OrderType } from "../../types/clob.js";
2
+
3
+ //#region src/order-builder/helpers/calculateBuyMarketPrice.ts
4
+ /**
5
+ * calculateBuyMarketPrice calculates the market price to buy a $$ amount
6
+ * @param positions
7
+ * @param amountToMatch worth to buy
8
+ * @returns
9
+ */
10
+ const calculateBuyMarketPrice = (positions, amountToMatch, orderType) => {
11
+ if (!positions.length) throw new Error("no match");
12
+ let sum = 0;
13
+ for (let i = positions.length - 1; i >= 0; i--) {
14
+ const p = positions[i];
15
+ sum += parseFloat(p.size) * parseFloat(p.price);
16
+ if (sum >= amountToMatch) return parseFloat(p.price);
17
+ }
18
+ if (orderType === OrderType.FOK) throw new Error("no match");
19
+ return parseFloat(positions[0].price);
20
+ };
21
+
22
+ //#endregion
23
+ export { calculateBuyMarketPrice };
24
+ //# sourceMappingURL=calculateBuyMarketPrice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculateBuyMarketPrice.js","names":[],"sources":["../../../src/order-builder/helpers/calculateBuyMarketPrice.ts"],"sourcesContent":["import { type OrderSummary, OrderType } from \"../../types/index.js\";\n\n/**\n * calculateBuyMarketPrice calculates the market price to buy a $$ amount\n * @param positions\n * @param amountToMatch worth to buy\n * @returns\n */\nexport const calculateBuyMarketPrice = (\n\tpositions: OrderSummary[],\n\tamountToMatch: number,\n\torderType: OrderType,\n) => {\n\tif (!positions.length) {\n\t\tthrow new Error(\"no match\");\n\t}\n\tlet sum = 0;\n\t/*\n Asks:\n [\n { price: '0.6', size: '100' },\n { price: '0.55', size: '100' },\n { price: '0.5', size: '100' }\n ]\n So, if the amount to match is $150 that will be reached at first position so price will be 0.6\n */\n\tfor (let i = positions.length - 1; i >= 0; i--) {\n\t\tconst p = positions[i];\n\t\tsum += parseFloat(p.size) * parseFloat(p.price);\n\t\tif (sum >= amountToMatch) {\n\t\t\treturn parseFloat(p.price);\n\t\t}\n\t}\n\tif (orderType === OrderType.FOK) {\n\t\tthrow new Error(\"no match\");\n\t}\n\treturn parseFloat(positions[0].price);\n};\n"],"mappings":";;;;;;;;;AAQA,MAAa,2BACZ,WACA,eACA,cACI;AACJ,KAAI,CAAC,UAAU,OACd,OAAM,IAAI,MAAM,WAAW;CAE5B,IAAI,MAAM;AAUV,MAAK,IAAI,IAAI,UAAU,SAAS,GAAG,KAAK,GAAG,KAAK;EAC/C,MAAM,IAAI,UAAU;AACpB,SAAO,WAAW,EAAE,KAAK,GAAG,WAAW,EAAE,MAAM;AAC/C,MAAI,OAAO,cACV,QAAO,WAAW,EAAE,MAAM;;AAG5B,KAAI,cAAc,UAAU,IAC3B,OAAM,IAAI,MAAM,WAAW;AAE5B,QAAO,WAAW,UAAU,GAAG,MAAM"}
@@ -0,0 +1,24 @@
1
+ const require_clob = require('../../types/clob.cjs');
2
+
3
+ //#region src/order-builder/helpers/calculateSellMarketPrice.ts
4
+ /**
5
+ * calculateSellMarketPrice calculates the market price to sell a shares
6
+ * @param positions
7
+ * @param amountToMatch sells to share
8
+ * @returns
9
+ */
10
+ const calculateSellMarketPrice = (positions, amountToMatch, orderType) => {
11
+ if (!positions.length) throw new Error("no match");
12
+ let sum = 0;
13
+ for (let i = positions.length - 1; i >= 0; i--) {
14
+ const p = positions[i];
15
+ sum += parseFloat(p.size);
16
+ if (sum >= amountToMatch) return parseFloat(p.price);
17
+ }
18
+ if (orderType === require_clob.OrderType.FOK) throw new Error("no match");
19
+ return parseFloat(positions[0].price);
20
+ };
21
+
22
+ //#endregion
23
+ exports.calculateSellMarketPrice = calculateSellMarketPrice;
24
+ //# sourceMappingURL=calculateSellMarketPrice.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculateSellMarketPrice.cjs","names":["OrderType"],"sources":["../../../src/order-builder/helpers/calculateSellMarketPrice.ts"],"sourcesContent":["import { type OrderSummary, OrderType } from \"../../types/index.js\";\n\n/**\n * calculateSellMarketPrice calculates the market price to sell a shares\n * @param positions\n * @param amountToMatch sells to share\n * @returns\n */\nexport const calculateSellMarketPrice = (\n\tpositions: OrderSummary[],\n\tamountToMatch: number,\n\torderType: OrderType,\n) => {\n\tif (!positions.length) {\n\t\tthrow new Error(\"no match\");\n\t}\n\tlet sum = 0;\n\t/*\n Bids:\n [\n { price: '0.4', size: '100' },\n { price: '0.45', size: '100' },\n { price: '0.5', size: '100' }\n ]\n So, if the amount to match is 300 that will be reached at the first position so price will be 0.4\n */\n\tfor (let i = positions.length - 1; i >= 0; i--) {\n\t\tconst p = positions[i];\n\t\tsum += parseFloat(p.size);\n\t\tif (sum >= amountToMatch) {\n\t\t\treturn parseFloat(p.price);\n\t\t}\n\t}\n\tif (orderType === OrderType.FOK) {\n\t\tthrow new Error(\"no match\");\n\t}\n\treturn parseFloat(positions[0].price);\n};\n"],"mappings":";;;;;;;;;AAQA,MAAa,4BACZ,WACA,eACA,cACI;AACJ,KAAI,CAAC,UAAU,OACd,OAAM,IAAI,MAAM,WAAW;CAE5B,IAAI,MAAM;AAUV,MAAK,IAAI,IAAI,UAAU,SAAS,GAAG,KAAK,GAAG,KAAK;EAC/C,MAAM,IAAI,UAAU;AACpB,SAAO,WAAW,EAAE,KAAK;AACzB,MAAI,OAAO,cACV,QAAO,WAAW,EAAE,MAAM;;AAG5B,KAAI,cAAcA,uBAAU,IAC3B,OAAM,IAAI,MAAM,WAAW;AAE5B,QAAO,WAAW,UAAU,GAAG,MAAM"}
@@ -0,0 +1,24 @@
1
+ import { OrderType } from "../../types/clob.js";
2
+
3
+ //#region src/order-builder/helpers/calculateSellMarketPrice.ts
4
+ /**
5
+ * calculateSellMarketPrice calculates the market price to sell a shares
6
+ * @param positions
7
+ * @param amountToMatch sells to share
8
+ * @returns
9
+ */
10
+ const calculateSellMarketPrice = (positions, amountToMatch, orderType) => {
11
+ if (!positions.length) throw new Error("no match");
12
+ let sum = 0;
13
+ for (let i = positions.length - 1; i >= 0; i--) {
14
+ const p = positions[i];
15
+ sum += parseFloat(p.size);
16
+ if (sum >= amountToMatch) return parseFloat(p.price);
17
+ }
18
+ if (orderType === OrderType.FOK) throw new Error("no match");
19
+ return parseFloat(positions[0].price);
20
+ };
21
+
22
+ //#endregion
23
+ export { calculateSellMarketPrice };
24
+ //# sourceMappingURL=calculateSellMarketPrice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculateSellMarketPrice.js","names":[],"sources":["../../../src/order-builder/helpers/calculateSellMarketPrice.ts"],"sourcesContent":["import { type OrderSummary, OrderType } from \"../../types/index.js\";\n\n/**\n * calculateSellMarketPrice calculates the market price to sell a shares\n * @param positions\n * @param amountToMatch sells to share\n * @returns\n */\nexport const calculateSellMarketPrice = (\n\tpositions: OrderSummary[],\n\tamountToMatch: number,\n\torderType: OrderType,\n) => {\n\tif (!positions.length) {\n\t\tthrow new Error(\"no match\");\n\t}\n\tlet sum = 0;\n\t/*\n Bids:\n [\n { price: '0.4', size: '100' },\n { price: '0.45', size: '100' },\n { price: '0.5', size: '100' }\n ]\n So, if the amount to match is 300 that will be reached at the first position so price will be 0.4\n */\n\tfor (let i = positions.length - 1; i >= 0; i--) {\n\t\tconst p = positions[i];\n\t\tsum += parseFloat(p.size);\n\t\tif (sum >= amountToMatch) {\n\t\t\treturn parseFloat(p.price);\n\t\t}\n\t}\n\tif (orderType === OrderType.FOK) {\n\t\tthrow new Error(\"no match\");\n\t}\n\treturn parseFloat(positions[0].price);\n};\n"],"mappings":";;;;;;;;;AAQA,MAAa,4BACZ,WACA,eACA,cACI;AACJ,KAAI,CAAC,UAAU,OACd,OAAM,IAAI,MAAM,WAAW;CAE5B,IAAI,MAAM;AAUV,MAAK,IAAI,IAAI,UAAU,SAAS,GAAG,KAAK,GAAG,KAAK;EAC/C,MAAM,IAAI,UAAU;AACpB,SAAO,WAAW,EAAE,KAAK;AACzB,MAAI,OAAO,cACV,QAAO,WAAW,EAAE,MAAM;;AAG5B,KAAI,cAAc,UAAU,IAC3B,OAAM,IAAI,MAAM,WAAW;AAE5B,QAAO,WAAW,UAAU,GAAG,MAAM"}
@@ -0,0 +1,34 @@
1
+ const require_signer = require('../../signing/signer.cjs');
2
+ const require_config = require('../../config.cjs');
3
+ const require_buildMarketOrderCreationArgs = require('./buildMarketOrderCreationArgs.cjs');
4
+ const require_signatureTypeV2 = require('../../order-utils/model/signatureTypeV2.cjs');
5
+ const require_buildOrder = require('./buildOrder.cjs');
6
+ const require_roundingConfig = require('./roundingConfig.cjs');
7
+
8
+ //#region src/order-builder/helpers/createMarketOrder.ts
9
+ const createMarketOrder = async (eoaSigner, chainId, signatureType, funderAddress, userMarketOrder, options, version) => {
10
+ const eoaSignerAddress = await require_signer.getSignerAddress(eoaSigner);
11
+ const maker = funderAddress === void 0 ? eoaSignerAddress : funderAddress;
12
+ const signerForOrder = signatureType === require_signatureTypeV2.SignatureTypeV2.POLY_1271 ? maker : eoaSignerAddress;
13
+ const contractConfig = require_config.getContractConfig(chainId);
14
+ const orderData = await require_buildMarketOrderCreationArgs.buildMarketOrderCreationArgs(signerForOrder, maker, signatureType, userMarketOrder, require_roundingConfig.ROUNDING_CONFIG[options.tickSize], version);
15
+ let exchangeContract;
16
+ switch (version) {
17
+ case 1:
18
+ if (signatureType === require_signatureTypeV2.SignatureTypeV2.POLY_1271) throw new Error(`signature type POLY_1271 is not supported for v1 orders`);
19
+ exchangeContract = options.negRisk ? contractConfig.negRiskExchange : contractConfig.exchange;
20
+ break;
21
+ case 2:
22
+ exchangeContract = options.negRisk ? contractConfig.negRiskExchangeV2 : contractConfig.exchangeV2;
23
+ break;
24
+ case 3:
25
+ exchangeContract = contractConfig.exchangeV3;
26
+ break;
27
+ default: throw new Error(`unsupported order version ${version}`);
28
+ }
29
+ return require_buildOrder.buildOrder(eoaSigner, exchangeContract, chainId, orderData, version);
30
+ };
31
+
32
+ //#endregion
33
+ exports.createMarketOrder = createMarketOrder;
34
+ //# sourceMappingURL=createMarketOrder.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createMarketOrder.cjs","names":["getSignerAddress","SignatureTypeV2","getContractConfig","buildMarketOrderCreationArgs","ROUNDING_CONFIG","exchangeContract: string","buildOrder"],"sources":["../../../src/order-builder/helpers/createMarketOrder.ts"],"sourcesContent":["import { getContractConfig } from \"../../config.js\";\nimport type { SignedOrderV1, SignedOrderV2 } from \"../../order-utils/index.js\";\nimport { SignatureTypeV2 } from \"../../order-utils/index.js\";\nimport { type ClobSigner, getSignerAddress } from \"../../signing/signer.js\";\nimport type {\n\tChain,\n\tCreateOrderOptions,\n\tUserMarketOrderV1,\n\tUserMarketOrderV2,\n} from \"../../types/index.js\";\nimport { buildMarketOrderCreationArgs } from \"./buildMarketOrderCreationArgs.js\";\nimport { buildOrder } from \"./buildOrder.js\";\nimport { ROUNDING_CONFIG } from \"./roundingConfig.js\";\n\nexport const createMarketOrder = async (\n\teoaSigner: ClobSigner,\n\tchainId: Chain,\n\tsignatureType: SignatureTypeV2,\n\tfunderAddress: string | undefined,\n\tuserMarketOrder: UserMarketOrderV1 | UserMarketOrderV2,\n\toptions: CreateOrderOptions,\n\tversion: number,\n): Promise<SignedOrderV1 | SignedOrderV2> => {\n\tconst eoaSignerAddress = await getSignerAddress(eoaSigner);\n\n\t// If funder address is not given, use the signer address\n\tconst maker = funderAddress === undefined ? eoaSignerAddress : funderAddress;\n\n\t// For POLY_1271, both maker and signer in the order are the wallet address\n\tconst signerForOrder = signatureType === SignatureTypeV2.POLY_1271 ? maker : eoaSignerAddress;\n\tconst contractConfig = getContractConfig(chainId);\n\n\tconst orderData = await buildMarketOrderCreationArgs(\n\t\tsignerForOrder,\n\t\tmaker,\n\t\tsignatureType,\n\t\tuserMarketOrder,\n\t\tROUNDING_CONFIG[options.tickSize],\n\t\tversion,\n\t);\n\n\tlet exchangeContract: string;\n\tswitch (version) {\n\t\tcase 1:\n\t\t\tif (signatureType === SignatureTypeV2.POLY_1271) {\n\t\t\t\tthrow new Error(`signature type POLY_1271 is not supported for v1 orders`);\n\t\t\t}\n\t\t\texchangeContract = options.negRisk\n\t\t\t\t? contractConfig.negRiskExchange\n\t\t\t\t: contractConfig.exchange;\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\texchangeContract = options.negRisk\n\t\t\t\t? contractConfig.negRiskExchangeV2\n\t\t\t\t: contractConfig.exchangeV2;\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\texchangeContract = contractConfig.exchangeV3;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tthrow new Error(`unsupported order version ${version}`);\n\t}\n\n\treturn buildOrder(eoaSigner, exchangeContract, chainId, orderData, version);\n};\n"],"mappings":";;;;;;;;AAcA,MAAa,oBAAoB,OAChC,WACA,SACA,eACA,eACA,iBACA,SACA,YAC4C;CAC5C,MAAM,mBAAmB,MAAMA,gCAAiB,UAAU;CAG1D,MAAM,QAAQ,kBAAkB,SAAY,mBAAmB;CAG/D,MAAM,iBAAiB,kBAAkBC,wCAAgB,YAAY,QAAQ;CAC7E,MAAM,iBAAiBC,iCAAkB,QAAQ;CAEjD,MAAM,YAAY,MAAMC,kEACvB,gBACA,OACA,eACA,iBACAC,uCAAgB,QAAQ,WACxB,QACA;CAED,IAAIC;AACJ,SAAQ,SAAR;EACC,KAAK;AACJ,OAAI,kBAAkBJ,wCAAgB,UACrC,OAAM,IAAI,MAAM,0DAA0D;AAE3E,sBAAmB,QAAQ,UACxB,eAAe,kBACf,eAAe;AAClB;EACD,KAAK;AACJ,sBAAmB,QAAQ,UACxB,eAAe,oBACf,eAAe;AAClB;EACD,KAAK;AACJ,sBAAmB,eAAe;AAClC;EACD,QACC,OAAM,IAAI,MAAM,6BAA6B,UAAU;;AAGzD,QAAOK,8BAAW,WAAW,kBAAkB,SAAS,WAAW,QAAQ"}
@@ -0,0 +1,34 @@
1
+ import { getSignerAddress } from "../../signing/signer.js";
2
+ import { getContractConfig } from "../../config.js";
3
+ import { buildMarketOrderCreationArgs } from "./buildMarketOrderCreationArgs.js";
4
+ import { SignatureTypeV2 } from "../../order-utils/model/signatureTypeV2.js";
5
+ import { buildOrder } from "./buildOrder.js";
6
+ import { ROUNDING_CONFIG } from "./roundingConfig.js";
7
+
8
+ //#region src/order-builder/helpers/createMarketOrder.ts
9
+ const createMarketOrder = async (eoaSigner, chainId, signatureType, funderAddress, userMarketOrder, options, version) => {
10
+ const eoaSignerAddress = await getSignerAddress(eoaSigner);
11
+ const maker = funderAddress === void 0 ? eoaSignerAddress : funderAddress;
12
+ const signerForOrder = signatureType === SignatureTypeV2.POLY_1271 ? maker : eoaSignerAddress;
13
+ const contractConfig = getContractConfig(chainId);
14
+ const orderData = await buildMarketOrderCreationArgs(signerForOrder, maker, signatureType, userMarketOrder, ROUNDING_CONFIG[options.tickSize], version);
15
+ let exchangeContract;
16
+ switch (version) {
17
+ case 1:
18
+ if (signatureType === SignatureTypeV2.POLY_1271) throw new Error(`signature type POLY_1271 is not supported for v1 orders`);
19
+ exchangeContract = options.negRisk ? contractConfig.negRiskExchange : contractConfig.exchange;
20
+ break;
21
+ case 2:
22
+ exchangeContract = options.negRisk ? contractConfig.negRiskExchangeV2 : contractConfig.exchangeV2;
23
+ break;
24
+ case 3:
25
+ exchangeContract = contractConfig.exchangeV3;
26
+ break;
27
+ default: throw new Error(`unsupported order version ${version}`);
28
+ }
29
+ return buildOrder(eoaSigner, exchangeContract, chainId, orderData, version);
30
+ };
31
+
32
+ //#endregion
33
+ export { createMarketOrder };
34
+ //# sourceMappingURL=createMarketOrder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createMarketOrder.js","names":["exchangeContract: string"],"sources":["../../../src/order-builder/helpers/createMarketOrder.ts"],"sourcesContent":["import { getContractConfig } from \"../../config.js\";\nimport type { SignedOrderV1, SignedOrderV2 } from \"../../order-utils/index.js\";\nimport { SignatureTypeV2 } from \"../../order-utils/index.js\";\nimport { type ClobSigner, getSignerAddress } from \"../../signing/signer.js\";\nimport type {\n\tChain,\n\tCreateOrderOptions,\n\tUserMarketOrderV1,\n\tUserMarketOrderV2,\n} from \"../../types/index.js\";\nimport { buildMarketOrderCreationArgs } from \"./buildMarketOrderCreationArgs.js\";\nimport { buildOrder } from \"./buildOrder.js\";\nimport { ROUNDING_CONFIG } from \"./roundingConfig.js\";\n\nexport const createMarketOrder = async (\n\teoaSigner: ClobSigner,\n\tchainId: Chain,\n\tsignatureType: SignatureTypeV2,\n\tfunderAddress: string | undefined,\n\tuserMarketOrder: UserMarketOrderV1 | UserMarketOrderV2,\n\toptions: CreateOrderOptions,\n\tversion: number,\n): Promise<SignedOrderV1 | SignedOrderV2> => {\n\tconst eoaSignerAddress = await getSignerAddress(eoaSigner);\n\n\t// If funder address is not given, use the signer address\n\tconst maker = funderAddress === undefined ? eoaSignerAddress : funderAddress;\n\n\t// For POLY_1271, both maker and signer in the order are the wallet address\n\tconst signerForOrder = signatureType === SignatureTypeV2.POLY_1271 ? maker : eoaSignerAddress;\n\tconst contractConfig = getContractConfig(chainId);\n\n\tconst orderData = await buildMarketOrderCreationArgs(\n\t\tsignerForOrder,\n\t\tmaker,\n\t\tsignatureType,\n\t\tuserMarketOrder,\n\t\tROUNDING_CONFIG[options.tickSize],\n\t\tversion,\n\t);\n\n\tlet exchangeContract: string;\n\tswitch (version) {\n\t\tcase 1:\n\t\t\tif (signatureType === SignatureTypeV2.POLY_1271) {\n\t\t\t\tthrow new Error(`signature type POLY_1271 is not supported for v1 orders`);\n\t\t\t}\n\t\t\texchangeContract = options.negRisk\n\t\t\t\t? contractConfig.negRiskExchange\n\t\t\t\t: contractConfig.exchange;\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\texchangeContract = options.negRisk\n\t\t\t\t? contractConfig.negRiskExchangeV2\n\t\t\t\t: contractConfig.exchangeV2;\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\texchangeContract = contractConfig.exchangeV3;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tthrow new Error(`unsupported order version ${version}`);\n\t}\n\n\treturn buildOrder(eoaSigner, exchangeContract, chainId, orderData, version);\n};\n"],"mappings":";;;;;;;;AAcA,MAAa,oBAAoB,OAChC,WACA,SACA,eACA,eACA,iBACA,SACA,YAC4C;CAC5C,MAAM,mBAAmB,MAAM,iBAAiB,UAAU;CAG1D,MAAM,QAAQ,kBAAkB,SAAY,mBAAmB;CAG/D,MAAM,iBAAiB,kBAAkB,gBAAgB,YAAY,QAAQ;CAC7E,MAAM,iBAAiB,kBAAkB,QAAQ;CAEjD,MAAM,YAAY,MAAM,6BACvB,gBACA,OACA,eACA,iBACA,gBAAgB,QAAQ,WACxB,QACA;CAED,IAAIA;AACJ,SAAQ,SAAR;EACC,KAAK;AACJ,OAAI,kBAAkB,gBAAgB,UACrC,OAAM,IAAI,MAAM,0DAA0D;AAE3E,sBAAmB,QAAQ,UACxB,eAAe,kBACf,eAAe;AAClB;EACD,KAAK;AACJ,sBAAmB,QAAQ,UACxB,eAAe,oBACf,eAAe;AAClB;EACD,KAAK;AACJ,sBAAmB,eAAe;AAClC;EACD,QACC,OAAM,IAAI,MAAM,6BAA6B,UAAU;;AAGzD,QAAO,WAAW,WAAW,kBAAkB,SAAS,WAAW,QAAQ"}
@@ -0,0 +1,34 @@
1
+ const require_signer = require('../../signing/signer.cjs');
2
+ const require_config = require('../../config.cjs');
3
+ const require_signatureTypeV2 = require('../../order-utils/model/signatureTypeV2.cjs');
4
+ const require_buildOrder = require('./buildOrder.cjs');
5
+ const require_buildOrderCreationArgs = require('./buildOrderCreationArgs.cjs');
6
+ const require_roundingConfig = require('./roundingConfig.cjs');
7
+
8
+ //#region src/order-builder/helpers/createOrder.ts
9
+ const createOrder = async (eoaSigner, chainId, signatureType, funderAddress, userOrder, options, version) => {
10
+ const eoaSignerAddress = await require_signer.getSignerAddress(eoaSigner);
11
+ const maker = funderAddress === void 0 ? eoaSignerAddress : funderAddress;
12
+ const signerForOrder = signatureType === require_signatureTypeV2.SignatureTypeV2.POLY_1271 ? maker : eoaSignerAddress;
13
+ const contractConfig = require_config.getContractConfig(chainId);
14
+ const orderData = await require_buildOrderCreationArgs.buildOrderCreationArgs(signerForOrder, maker, signatureType, userOrder, require_roundingConfig.ROUNDING_CONFIG[options.tickSize], version);
15
+ let exchangeContract;
16
+ switch (version) {
17
+ case 1:
18
+ if (signatureType === require_signatureTypeV2.SignatureTypeV2.POLY_1271) throw new Error(`signature type POLY_1271 is not supported for v1 orders`);
19
+ exchangeContract = options.negRisk ? contractConfig.negRiskExchange : contractConfig.exchange;
20
+ break;
21
+ case 2:
22
+ exchangeContract = options.negRisk ? contractConfig.negRiskExchangeV2 : contractConfig.exchangeV2;
23
+ break;
24
+ case 3:
25
+ exchangeContract = contractConfig.exchangeV3;
26
+ break;
27
+ default: throw new Error(`unsupported order version ${version}`);
28
+ }
29
+ return require_buildOrder.buildOrder(eoaSigner, exchangeContract, chainId, orderData, version);
30
+ };
31
+
32
+ //#endregion
33
+ exports.createOrder = createOrder;
34
+ //# sourceMappingURL=createOrder.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createOrder.cjs","names":["getSignerAddress","SignatureTypeV2","getContractConfig","buildOrderCreationArgs","ROUNDING_CONFIG","exchangeContract: string","buildOrder"],"sources":["../../../src/order-builder/helpers/createOrder.ts"],"sourcesContent":["import { getContractConfig } from \"../../config.js\";\nimport type { SignedOrderV1, SignedOrderV2 } from \"../../order-utils/index.js\";\nimport { SignatureTypeV2 } from \"../../order-utils/index.js\";\nimport { type ClobSigner, getSignerAddress } from \"../../signing/signer.js\";\nimport type { Chain, CreateOrderOptions, UserOrderV1, UserOrderV2 } from \"../../types/index.js\";\nimport { buildOrder } from \"./buildOrder.js\";\nimport { buildOrderCreationArgs } from \"./buildOrderCreationArgs.js\";\nimport { ROUNDING_CONFIG } from \"./roundingConfig.js\";\n\nexport const createOrder = async (\n\teoaSigner: ClobSigner,\n\tchainId: Chain,\n\tsignatureType: SignatureTypeV2,\n\tfunderAddress: string | undefined,\n\tuserOrder: UserOrderV1 | UserOrderV2,\n\toptions: CreateOrderOptions,\n\tversion: number,\n): Promise<SignedOrderV1 | SignedOrderV2> => {\n\tconst eoaSignerAddress = await getSignerAddress(eoaSigner);\n\n\t// If funder address is not given, use the signer address\n\tconst maker = funderAddress === undefined ? eoaSignerAddress : funderAddress;\n\n\t// For POLY_1271, both maker and signer in the order are the wallet address\n\tconst signerForOrder = signatureType === SignatureTypeV2.POLY_1271 ? maker : eoaSignerAddress;\n\tconst contractConfig = getContractConfig(chainId);\n\n\tconst orderData = await buildOrderCreationArgs(\n\t\tsignerForOrder,\n\t\tmaker,\n\t\tsignatureType,\n\t\tuserOrder,\n\t\tROUNDING_CONFIG[options.tickSize],\n\t\tversion,\n\t);\n\tlet exchangeContract: string;\n\tswitch (version) {\n\t\tcase 1:\n\t\t\tif (signatureType === SignatureTypeV2.POLY_1271) {\n\t\t\t\tthrow new Error(`signature type POLY_1271 is not supported for v1 orders`);\n\t\t\t}\n\t\t\texchangeContract = options.negRisk\n\t\t\t\t? contractConfig.negRiskExchange\n\t\t\t\t: contractConfig.exchange;\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\texchangeContract = options.negRisk\n\t\t\t\t? contractConfig.negRiskExchangeV2\n\t\t\t\t: contractConfig.exchangeV2;\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\texchangeContract = contractConfig.exchangeV3;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tthrow new Error(`unsupported order version ${version}`);\n\t}\n\treturn buildOrder(eoaSigner, exchangeContract, chainId, orderData, version);\n};\n"],"mappings":";;;;;;;;AASA,MAAa,cAAc,OAC1B,WACA,SACA,eACA,eACA,WACA,SACA,YAC4C;CAC5C,MAAM,mBAAmB,MAAMA,gCAAiB,UAAU;CAG1D,MAAM,QAAQ,kBAAkB,SAAY,mBAAmB;CAG/D,MAAM,iBAAiB,kBAAkBC,wCAAgB,YAAY,QAAQ;CAC7E,MAAM,iBAAiBC,iCAAkB,QAAQ;CAEjD,MAAM,YAAY,MAAMC,sDACvB,gBACA,OACA,eACA,WACAC,uCAAgB,QAAQ,WACxB,QACA;CACD,IAAIC;AACJ,SAAQ,SAAR;EACC,KAAK;AACJ,OAAI,kBAAkBJ,wCAAgB,UACrC,OAAM,IAAI,MAAM,0DAA0D;AAE3E,sBAAmB,QAAQ,UACxB,eAAe,kBACf,eAAe;AAClB;EACD,KAAK;AACJ,sBAAmB,QAAQ,UACxB,eAAe,oBACf,eAAe;AAClB;EACD,KAAK;AACJ,sBAAmB,eAAe;AAClC;EACD,QACC,OAAM,IAAI,MAAM,6BAA6B,UAAU;;AAEzD,QAAOK,8BAAW,WAAW,kBAAkB,SAAS,WAAW,QAAQ"}
@@ -0,0 +1,34 @@
1
+ import { getSignerAddress } from "../../signing/signer.js";
2
+ import { getContractConfig } from "../../config.js";
3
+ import { SignatureTypeV2 } from "../../order-utils/model/signatureTypeV2.js";
4
+ import { buildOrder } from "./buildOrder.js";
5
+ import { buildOrderCreationArgs } from "./buildOrderCreationArgs.js";
6
+ import { ROUNDING_CONFIG } from "./roundingConfig.js";
7
+
8
+ //#region src/order-builder/helpers/createOrder.ts
9
+ const createOrder = async (eoaSigner, chainId, signatureType, funderAddress, userOrder, options, version) => {
10
+ const eoaSignerAddress = await getSignerAddress(eoaSigner);
11
+ const maker = funderAddress === void 0 ? eoaSignerAddress : funderAddress;
12
+ const signerForOrder = signatureType === SignatureTypeV2.POLY_1271 ? maker : eoaSignerAddress;
13
+ const contractConfig = getContractConfig(chainId);
14
+ const orderData = await buildOrderCreationArgs(signerForOrder, maker, signatureType, userOrder, ROUNDING_CONFIG[options.tickSize], version);
15
+ let exchangeContract;
16
+ switch (version) {
17
+ case 1:
18
+ if (signatureType === SignatureTypeV2.POLY_1271) throw new Error(`signature type POLY_1271 is not supported for v1 orders`);
19
+ exchangeContract = options.negRisk ? contractConfig.negRiskExchange : contractConfig.exchange;
20
+ break;
21
+ case 2:
22
+ exchangeContract = options.negRisk ? contractConfig.negRiskExchangeV2 : contractConfig.exchangeV2;
23
+ break;
24
+ case 3:
25
+ exchangeContract = contractConfig.exchangeV3;
26
+ break;
27
+ default: throw new Error(`unsupported order version ${version}`);
28
+ }
29
+ return buildOrder(eoaSigner, exchangeContract, chainId, orderData, version);
30
+ };
31
+
32
+ //#endregion
33
+ export { createOrder };
34
+ //# sourceMappingURL=createOrder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createOrder.js","names":["exchangeContract: string"],"sources":["../../../src/order-builder/helpers/createOrder.ts"],"sourcesContent":["import { getContractConfig } from \"../../config.js\";\nimport type { SignedOrderV1, SignedOrderV2 } from \"../../order-utils/index.js\";\nimport { SignatureTypeV2 } from \"../../order-utils/index.js\";\nimport { type ClobSigner, getSignerAddress } from \"../../signing/signer.js\";\nimport type { Chain, CreateOrderOptions, UserOrderV1, UserOrderV2 } from \"../../types/index.js\";\nimport { buildOrder } from \"./buildOrder.js\";\nimport { buildOrderCreationArgs } from \"./buildOrderCreationArgs.js\";\nimport { ROUNDING_CONFIG } from \"./roundingConfig.js\";\n\nexport const createOrder = async (\n\teoaSigner: ClobSigner,\n\tchainId: Chain,\n\tsignatureType: SignatureTypeV2,\n\tfunderAddress: string | undefined,\n\tuserOrder: UserOrderV1 | UserOrderV2,\n\toptions: CreateOrderOptions,\n\tversion: number,\n): Promise<SignedOrderV1 | SignedOrderV2> => {\n\tconst eoaSignerAddress = await getSignerAddress(eoaSigner);\n\n\t// If funder address is not given, use the signer address\n\tconst maker = funderAddress === undefined ? eoaSignerAddress : funderAddress;\n\n\t// For POLY_1271, both maker and signer in the order are the wallet address\n\tconst signerForOrder = signatureType === SignatureTypeV2.POLY_1271 ? maker : eoaSignerAddress;\n\tconst contractConfig = getContractConfig(chainId);\n\n\tconst orderData = await buildOrderCreationArgs(\n\t\tsignerForOrder,\n\t\tmaker,\n\t\tsignatureType,\n\t\tuserOrder,\n\t\tROUNDING_CONFIG[options.tickSize],\n\t\tversion,\n\t);\n\tlet exchangeContract: string;\n\tswitch (version) {\n\t\tcase 1:\n\t\t\tif (signatureType === SignatureTypeV2.POLY_1271) {\n\t\t\t\tthrow new Error(`signature type POLY_1271 is not supported for v1 orders`);\n\t\t\t}\n\t\t\texchangeContract = options.negRisk\n\t\t\t\t? contractConfig.negRiskExchange\n\t\t\t\t: contractConfig.exchange;\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\texchangeContract = options.negRisk\n\t\t\t\t? contractConfig.negRiskExchangeV2\n\t\t\t\t: contractConfig.exchangeV2;\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\texchangeContract = contractConfig.exchangeV3;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tthrow new Error(`unsupported order version ${version}`);\n\t}\n\treturn buildOrder(eoaSigner, exchangeContract, chainId, orderData, version);\n};\n"],"mappings":";;;;;;;;AASA,MAAa,cAAc,OAC1B,WACA,SACA,eACA,eACA,WACA,SACA,YAC4C;CAC5C,MAAM,mBAAmB,MAAM,iBAAiB,UAAU;CAG1D,MAAM,QAAQ,kBAAkB,SAAY,mBAAmB;CAG/D,MAAM,iBAAiB,kBAAkB,gBAAgB,YAAY,QAAQ;CAC7E,MAAM,iBAAiB,kBAAkB,QAAQ;CAEjD,MAAM,YAAY,MAAM,uBACvB,gBACA,OACA,eACA,WACA,gBAAgB,QAAQ,WACxB,QACA;CACD,IAAIA;AACJ,SAAQ,SAAR;EACC,KAAK;AACJ,OAAI,kBAAkB,gBAAgB,UACrC,OAAM,IAAI,MAAM,0DAA0D;AAE3E,sBAAmB,QAAQ,UACxB,eAAe,kBACf,eAAe;AAClB;EACD,KAAK;AACJ,sBAAmB,QAAQ,UACxB,eAAe,oBACf,eAAe;AAClB;EACD,KAAK;AACJ,sBAAmB,eAAe;AAClC;EACD,QACC,OAAM,IAAI,MAAM,6BAA6B,UAAU;;AAEzD,QAAO,WAAW,WAAW,kBAAkB,SAAS,WAAW,QAAQ"}