@polymarket/clob-client 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/README.md +49 -0
  2. package/dist/client.d.ts +12 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/client.js +23 -0
  5. package/dist/client.js.map +1 -0
  6. package/dist/examples/createApiKey.d.ts +2 -0
  7. package/dist/examples/createApiKey.d.ts.map +1 -0
  8. package/dist/examples/createApiKey.js +19 -0
  9. package/dist/examples/createApiKey.js.map +1 -0
  10. package/dist/examples/createOrder.d.ts +2 -0
  11. package/dist/examples/createOrder.d.ts.map +1 -0
  12. package/dist/examples/createOrder.js +34 -0
  13. package/dist/examples/createOrder.js.map +1 -0
  14. package/dist/examples/getApiKeys.d.ts +2 -0
  15. package/dist/examples/getApiKeys.d.ts.map +1 -0
  16. package/dist/examples/getApiKeys.js +23 -0
  17. package/dist/examples/getApiKeys.js.map +1 -0
  18. package/dist/examples/getOpenOrders.d.ts +2 -0
  19. package/dist/examples/getOpenOrders.d.ts.map +1 -0
  20. package/dist/examples/getOpenOrders.js +23 -0
  21. package/dist/examples/getOpenOrders.js.map +1 -0
  22. package/dist/examples/getServerTime.d.ts +2 -0
  23. package/dist/examples/getServerTime.d.ts.map +1 -0
  24. package/dist/examples/getServerTime.js +11 -0
  25. package/dist/examples/getServerTime.js.map +1 -0
  26. package/dist/examples/getTradeHistory.d.ts +2 -0
  27. package/dist/examples/getTradeHistory.d.ts.map +1 -0
  28. package/dist/examples/getTradeHistory.js +23 -0
  29. package/dist/examples/getTradeHistory.js.map +1 -0
  30. package/dist/examples/marketOrder.d.ts +2 -0
  31. package/dist/examples/marketOrder.d.ts.map +1 -0
  32. package/dist/examples/marketOrder.js +42 -0
  33. package/dist/examples/marketOrder.js.map +1 -0
  34. package/dist/examples/testMarketBuy.d.ts +2 -0
  35. package/dist/examples/testMarketBuy.d.ts.map +1 -0
  36. package/dist/examples/testMarketBuy.js +50 -0
  37. package/dist/examples/testMarketBuy.js.map +1 -0
  38. package/dist/examples/testMarketSell.d.ts +2 -0
  39. package/dist/examples/testMarketSell.d.ts.map +1 -0
  40. package/dist/examples/testMarketSell.js +50 -0
  41. package/dist/examples/testMarketSell.js.map +1 -0
  42. package/dist/examples/testMultiSigMarketBuy.d.ts +2 -0
  43. package/dist/examples/testMultiSigMarketBuy.d.ts.map +1 -0
  44. package/dist/examples/testMultiSigMarketBuy.js +52 -0
  45. package/dist/examples/testMultiSigMarketBuy.js.map +1 -0
  46. package/dist/examples/testPolyProxyMarketBuy.d.ts +2 -0
  47. package/dist/examples/testPolyProxyMarketBuy.d.ts.map +1 -0
  48. package/dist/examples/testPolyProxyMarketBuy.js +52 -0
  49. package/dist/examples/testPolyProxyMarketBuy.js.map +1 -0
  50. package/dist/examples/testPolyProxyMarketSell.d.ts +2 -0
  51. package/dist/examples/testPolyProxyMarketSell.d.ts.map +1 -0
  52. package/dist/examples/testPolyProxyMarketSell.js +52 -0
  53. package/dist/examples/testPolyProxyMarketSell.js.map +1 -0
  54. package/dist/helpers/index.d.ts +5 -0
  55. package/dist/helpers/index.d.ts.map +1 -0
  56. package/dist/helpers/index.js +16 -0
  57. package/dist/helpers/index.js.map +1 -0
  58. package/dist/index.d.ts +3 -0
  59. package/dist/index.d.ts.map +1 -0
  60. package/dist/index.js +3 -0
  61. package/dist/index.js.map +1 -0
  62. package/dist/keys.ts/index.d.ts +4 -0
  63. package/dist/keys.ts/index.d.ts.map +1 -0
  64. package/dist/keys.ts/index.js +14 -0
  65. package/dist/keys.ts/index.js.map +1 -0
  66. package/dist/signing/constants.d.ts +15 -0
  67. package/dist/signing/constants.d.ts.map +1 -0
  68. package/dist/signing/constants.js +16 -0
  69. package/dist/signing/constants.js.map +1 -0
  70. package/dist/signing/eip712.d.ts +10 -0
  71. package/dist/signing/eip712.d.ts.map +1 -0
  72. package/dist/signing/eip712.js +32 -0
  73. package/dist/signing/eip712.js.map +1 -0
  74. package/dist/signing/hmac.d.ts +10 -0
  75. package/dist/signing/hmac.d.ts.map +1 -0
  76. package/dist/signing/hmac.js +25 -0
  77. package/dist/signing/hmac.js.map +1 -0
  78. package/dist/signing/index.d.ts +3 -0
  79. package/dist/signing/index.d.ts.map +1 -0
  80. package/dist/signing/index.js +3 -0
  81. package/dist/signing/index.js.map +1 -0
  82. package/dist/src/client.d.ts +26 -0
  83. package/dist/src/client.d.ts.map +1 -0
  84. package/dist/src/client.js +134 -0
  85. package/dist/src/client.js.map +1 -0
  86. package/dist/src/constants.d.ts +2 -0
  87. package/dist/src/constants.d.ts.map +1 -0
  88. package/dist/src/constants.js +5 -0
  89. package/dist/src/constants.js.map +1 -0
  90. package/dist/src/contracts/index.d.ts +9 -0
  91. package/dist/src/contracts/index.d.ts.map +1 -0
  92. package/dist/src/contracts/index.js +21 -0
  93. package/dist/src/contracts/index.js.map +1 -0
  94. package/dist/src/endpoints.d.ts +9 -0
  95. package/dist/src/endpoints.d.ts.map +1 -0
  96. package/dist/src/endpoints.js +9 -0
  97. package/dist/src/endpoints.js.map +1 -0
  98. package/dist/src/errors.d.ts +3 -0
  99. package/dist/src/errors.d.ts.map +1 -0
  100. package/dist/src/errors.js +3 -0
  101. package/dist/src/errors.js.map +1 -0
  102. package/dist/src/headers/index.d.ts +6 -0
  103. package/dist/src/headers/index.d.ts.map +1 -0
  104. package/dist/src/headers/index.js +26 -0
  105. package/dist/src/headers/index.js.map +1 -0
  106. package/dist/src/http_helpers/index.d.ts +5 -0
  107. package/dist/src/http_helpers/index.d.ts.map +1 -0
  108. package/dist/src/http_helpers/index.js +27 -0
  109. package/dist/src/http_helpers/index.js.map +1 -0
  110. package/dist/src/index.d.ts +3 -0
  111. package/dist/src/index.d.ts.map +1 -0
  112. package/dist/src/index.js +3 -0
  113. package/dist/src/index.js.map +1 -0
  114. package/dist/src/order-builder/builder.d.ts +19 -0
  115. package/dist/src/order-builder/builder.d.ts.map +1 -0
  116. package/dist/src/order-builder/builder.js +22 -0
  117. package/dist/src/order-builder/builder.js.map +1 -0
  118. package/dist/src/order-builder/constants.d.ts +3 -0
  119. package/dist/src/order-builder/constants.d.ts.map +1 -0
  120. package/dist/src/order-builder/constants.js +3 -0
  121. package/dist/src/order-builder/constants.js.map +1 -0
  122. package/dist/src/order-builder/helpers.d.ts +15 -0
  123. package/dist/src/order-builder/helpers.d.ts.map +1 -0
  124. package/dist/src/order-builder/helpers.js +221 -0
  125. package/dist/src/order-builder/helpers.js.map +1 -0
  126. package/dist/src/order-builder/index.d.ts +3 -0
  127. package/dist/src/order-builder/index.d.ts.map +1 -0
  128. package/dist/src/order-builder/index.js +3 -0
  129. package/dist/src/order-builder/index.js.map +1 -0
  130. package/dist/src/order-builder/utils.d.ts +5 -0
  131. package/dist/src/order-builder/utils.d.ts.map +1 -0
  132. package/dist/src/order-builder/utils.js +21 -0
  133. package/dist/src/order-builder/utils.js.map +1 -0
  134. package/dist/src/signing/constants.d.ts +15 -0
  135. package/dist/src/signing/constants.d.ts.map +1 -0
  136. package/dist/src/signing/constants.js +16 -0
  137. package/dist/src/signing/constants.js.map +1 -0
  138. package/dist/src/signing/eip712.d.ts +10 -0
  139. package/dist/src/signing/eip712.d.ts.map +1 -0
  140. package/dist/src/signing/eip712.js +32 -0
  141. package/dist/src/signing/eip712.js.map +1 -0
  142. package/dist/src/signing/hmac.d.ts +10 -0
  143. package/dist/src/signing/hmac.d.ts.map +1 -0
  144. package/dist/src/signing/hmac.js +25 -0
  145. package/dist/src/signing/hmac.js.map +1 -0
  146. package/dist/src/signing/index.d.ts +3 -0
  147. package/dist/src/signing/index.d.ts.map +1 -0
  148. package/dist/src/signing/index.js +3 -0
  149. package/dist/src/signing/index.js.map +1 -0
  150. package/dist/src/types.d.ts +71 -0
  151. package/dist/src/types.d.ts.map +1 -0
  152. package/dist/src/types.js +7 -0
  153. package/dist/src/types.js.map +1 -0
  154. package/dist/src/utilities.d.ts +4 -0
  155. package/dist/src/utilities.d.ts.map +1 -0
  156. package/dist/src/utilities.js +37 -0
  157. package/dist/src/utilities.js.map +1 -0
  158. package/dist/types.d.ts +18 -0
  159. package/dist/types.d.ts.map +1 -0
  160. package/dist/types.js +1 -0
  161. package/dist/types.js.map +1 -0
  162. package/package.json +59 -0
@@ -0,0 +1,26 @@
1
+ import { buildClobEip712Signature, buildPolyHmacSignature } from "../signing";
2
+ export const createL1Headers = async (signer) => {
3
+ const now = Math.floor(Date.now() / 1000);
4
+ const sig = await buildClobEip712Signature(signer, now);
5
+ const address = await signer.getAddress();
6
+ const headers = {
7
+ POLY_ADDRESS: address,
8
+ POLY_SIGNATURE: sig,
9
+ POLY_TIMESTAMP: `${now}`,
10
+ };
11
+ return headers;
12
+ };
13
+ export const createL2Headers = async (signer, creds, l2HeaderArgs) => {
14
+ const address = await signer.getAddress();
15
+ const ts = Math.floor(Date.now() / 1000);
16
+ const sig = await buildPolyHmacSignature(creds.secret, ts, l2HeaderArgs.method, l2HeaderArgs.requestPath, l2HeaderArgs.body);
17
+ const headers = {
18
+ POLY_ADDRESS: address,
19
+ POLY_SIGNATURE: sig,
20
+ POLY_TIMESTAMP: `${ts}`,
21
+ POLY_API_KEY: creds.key,
22
+ POLY_PASSPHRASE: creds.passphrase,
23
+ };
24
+ return headers;
25
+ };
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/headers/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAG9E,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,MAA8B,EAAyB,EAAE;IAC3F,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,MAAM,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAE1C,MAAM,OAAO,GAAG;QACZ,YAAY,EAAE,OAAO;QACrB,cAAc,EAAE,GAAG;QACnB,cAAc,EAAE,GAAG,GAAG,EAAE;KAC3B,CAAC;IACF,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAChC,MAA8B,EAC9B,KAAkB,EAClB,YAA0B,EACL,EAAE;IACvB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAEzC,MAAM,GAAG,GAAG,MAAM,sBAAsB,CACpC,KAAK,CAAC,MAAM,EACZ,EAAE,EACF,YAAY,CAAC,MAAM,EACnB,YAAY,CAAC,WAAW,EACxB,YAAY,CAAC,IAAI,CACpB,CAAC;IAEF,MAAM,OAAO,GAAG;QACZ,YAAY,EAAE,OAAO;QACrB,cAAc,EAAE,GAAG;QACnB,cAAc,EAAE,GAAG,EAAE,EAAE;QACvB,YAAY,EAAE,KAAK,CAAC,GAAG;QACvB,eAAe,EAAE,KAAK,CAAC,UAAU;KACpC,CAAC;IAEF,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Method } from "axios";
2
+ export declare const request: (endpoint: string, method: Method, headers?: any, data?: any) => Promise<any>;
3
+ export declare const post: (endpoint: string, headers: any, data?: any) => Promise<any>;
4
+ export declare const get: (endpoint: string, headers?: any, data?: any) => Promise<any>;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/http_helpers/index.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEtC,eAAO,MAAM,OAAO,aAAoB,MAAM,UAAU,MAAM,YAAY,GAAG,SAAS,GAAG,KAAG,OAAO,CAAC,GAAG,CActG,CAAC;AAEF,eAAO,MAAM,IAAI,aAAoB,MAAM,WAAW,GAAG,SAAS,GAAG,KAAG,OAAO,CAAC,GAAG,CAGlF,CAAC;AAEF,eAAO,MAAM,GAAG,aAAoB,MAAM,YAAY,GAAG,SAAS,GAAG,KAAG,OAAO,CAAC,GAAG,CAGlF,CAAC"}
@@ -0,0 +1,27 @@
1
+ import axios from "axios";
2
+ export const request = async (endpoint, method, headers, data) => {
3
+ try {
4
+ const response = await axios({ method, url: endpoint, headers, data });
5
+ return response;
6
+ }
7
+ catch (err) {
8
+ if (axios.isAxiosError(err)) {
9
+ console.error(err.response?.status);
10
+ console.error(err.response?.statusText);
11
+ console.error(err.response?.data);
12
+ }
13
+ else {
14
+ console.error(err);
15
+ }
16
+ return null;
17
+ }
18
+ };
19
+ export const post = async (endpoint, headers, data) => {
20
+ const resp = await request(endpoint, "POST", headers, data);
21
+ return resp !== null ? resp.data : null;
22
+ };
23
+ export const get = async (endpoint, headers, data) => {
24
+ const resp = await request(endpoint, "GET", headers, data);
25
+ return resp !== null ? resp.data : null;
26
+ };
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/http_helpers/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAiB,MAAM,OAAO,CAAC;AAEtC,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAAE,QAAgB,EAAE,MAAc,EAAE,OAAa,EAAE,IAAU,EAAgB,EAAE;IACvG,IAAI;QACA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE,OAAO,QAAQ,CAAC;KACnB;IAAC,OAAO,GAAG,EAAE;QACV,IAAI,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE;YACzB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACxC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;SACrC;aAAM;YACH,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACtB;QACD,OAAO,IAAI,CAAC;KACf;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,EAAE,QAAgB,EAAE,OAAY,EAAE,IAAU,EAAgB,EAAE;IACnF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC5D,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,EAAE,QAAgB,EAAE,OAAa,EAAE,IAAU,EAAgB,EAAE;IACnF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3D,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5C,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./client";
2
+ export * from "./types";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./client";
2
+ export * from "./types";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { Wallet } from "@ethersproject/wallet";
2
+ import { JsonRpcSigner } from "@ethersproject/providers";
3
+ import { LimitOrderAndSignature, MarketOrderAndSignature, SignatureType } from "@polymarket/order-utils";
4
+ import { UserLimitOrder, UserMarketOrder } from "../types";
5
+ export declare class OrderBuilder {
6
+ readonly signer: Wallet | JsonRpcSigner;
7
+ readonly signatureType: SignatureType;
8
+ readonly funderAddress?: string;
9
+ constructor(signer: Wallet | JsonRpcSigner, signatureType?: SignatureType, funderAddress?: string);
10
+ /**
11
+ * Generate and sign a limit order
12
+ */
13
+ buildLimitOrder(userOrder: UserLimitOrder): Promise<LimitOrderAndSignature>;
14
+ /**
15
+ *
16
+ */
17
+ buildMarketOrder(userOrder: UserMarketOrder): Promise<MarketOrderAndSignature>;
18
+ }
19
+ //# sourceMappingURL=builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/order-builder/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAEzG,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3D,qBAAa,YAAY;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAGxC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAKtC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;gBAEpB,MAAM,EAAE,MAAM,GAAG,aAAa,EAAE,aAAa,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE,MAAM;IAMjG;;OAEG;IACU,eAAe,CAAC,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAIxF;;OAEG;IACU,gBAAgB,CAAC,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,uBAAuB,CAAC;CAG9F"}
@@ -0,0 +1,22 @@
1
+ import { SignatureType } from "@polymarket/order-utils";
2
+ import { createLimitOrder, createMarketOrder } from "./helpers";
3
+ export class OrderBuilder {
4
+ constructor(signer, signatureType, funderAddress) {
5
+ this.signer = signer;
6
+ this.signatureType = signatureType === undefined ? SignatureType.EOA : signatureType;
7
+ this.funderAddress = funderAddress;
8
+ }
9
+ /**
10
+ * Generate and sign a limit order
11
+ */
12
+ async buildLimitOrder(userOrder) {
13
+ return createLimitOrder(this.signer, this.signatureType, this.funderAddress, userOrder);
14
+ }
15
+ /**
16
+ *
17
+ */
18
+ async buildMarketOrder(userOrder) {
19
+ return createMarketOrder(this.signer, this.signatureType, this.funderAddress, userOrder);
20
+ }
21
+ }
22
+ //# sourceMappingURL=builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/order-builder/builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmD,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACzG,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAGhE,MAAM,OAAO,YAAY;IAWrB,YAAY,MAA8B,EAAE,aAA6B,EAAE,aAAsB;QAC7F,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC;QACrF,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACvC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,eAAe,CAAC,SAAyB;QAClD,OAAO,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAC5F,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,gBAAgB,CAAC,SAA0B;QACpD,OAAO,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAC7F,CAAC;CACJ"}
@@ -0,0 +1,3 @@
1
+ export declare const COLLATERAL_TOKEN_DECIMALS = 6;
2
+ export declare const CONDITIONAL_TOKEN_DECIMALS = 18;
3
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/order-builder/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,0BAA0B,KAAK,CAAC"}
@@ -0,0 +1,3 @@
1
+ export const COLLATERAL_TOKEN_DECIMALS = 6;
2
+ export const CONDITIONAL_TOKEN_DECIMALS = 18;
3
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/order-builder/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAC3C,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { JsonRpcSigner } from "@ethersproject/providers";
2
+ import { Wallet } from "@ethersproject/wallet";
3
+ import { SignatureType } from "@polymarket/order-utils";
4
+ import { OrderCreationArgs, UserMarketOrder, UserLimitOrder, MarketOrderCreationArgs } from "../types";
5
+ /**
6
+ * Translate simple user order to args used to generate LimitOrders
7
+ */
8
+ export declare const buildLimitOrderCreationArgs: (signer: string, maker: string, chainID: number, exchange: string, collateral: string, signatureType: SignatureType, userOrder: UserLimitOrder) => Promise<OrderCreationArgs>;
9
+ /**
10
+ * Translate simple user order to args used to generate MarketOrders
11
+ */
12
+ export declare const buildMarketOrderCreationArgs: (signer: string, maker: string, chainID: number, exchange: string, collateral: string, signatureType: SignatureType, userOrder: UserMarketOrder) => Promise<MarketOrderCreationArgs>;
13
+ export declare const createLimitOrder: (eoaSigner: Wallet | JsonRpcSigner, signatureType: SignatureType, funderAddress: string | undefined, userOrder: UserLimitOrder) => Promise<any>;
14
+ export declare const createMarketOrder: (eoaSigner: Wallet | JsonRpcSigner, signatureType: SignatureType, funderAddress: string | undefined, userMarketOrder: UserMarketOrder) => Promise<any>;
15
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/order-builder/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAUH,aAAa,EAChB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,cAAc,EAAE,uBAAuB,EAAQ,MAAM,UAAU,CAAC;AAI7G;;GAEG;AACH,eAAO,MAAM,2BAA2B,WAC5B,MAAM,SACP,MAAM,WACJ,MAAM,YACL,MAAM,cACJ,MAAM,iBACH,aAAa,aACjB,cAAc,KAC1B,OAAO,CAAC,iBAAiB,CA8C3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4BAA4B,WAC7B,MAAM,SACP,MAAM,WACJ,MAAM,YACL,MAAM,cACJ,MAAM,iBACH,aAAa,aACjB,eAAe,KAC3B,OAAO,CAAC,uBAAuB,CAuCjC,CAAC;AAsHF,eAAO,MAAM,gBAAgB,cACd,MAAM,GAAG,aAAa,iBAClB,aAAa,iBACb,MAAM,GAAG,SAAS,aACtB,cAAc,KAC1B,OAAO,CAAC,GAAG,CAwBb,CAAC;AAEF,eAAO,MAAM,iBAAiB,cACf,MAAM,GAAG,aAAa,iBAClB,aAAa,iBACb,MAAM,GAAG,SAAS,mBAChB,eAAe,KACjC,OAAO,CAAC,GAAG,CAyBb,CAAC"}
@@ -0,0 +1,221 @@
1
+ import { EthersProviderConnector, getContracts, LimitOrderBuilder, MarketOrderBuilder, SignatureType, } from "@polymarket/order-utils";
2
+ import { ethers } from "ethers";
3
+ import { Side } from "../types";
4
+ import { COLLATERAL_TOKEN_DECIMALS } from "./constants";
5
+ import { getJsonRpcSigner, getTokenID } from "./utils";
6
+ /**
7
+ * Translate simple user order to args used to generate LimitOrders
8
+ */
9
+ export const buildLimitOrderCreationArgs = async (signer, maker, chainID, exchange, collateral, signatureType, userOrder) => {
10
+ let makerAsset;
11
+ let takerAsset;
12
+ let makerAssetID;
13
+ let takerAssetID;
14
+ let makerAmount;
15
+ let takerAmount;
16
+ const price = userOrder.price;
17
+ if (userOrder.side === Side.BUY) {
18
+ makerAsset = collateral;
19
+ takerAsset = userOrder.asset.address;
20
+ makerAssetID = undefined;
21
+ takerAssetID = getTokenID(userOrder.asset.condition);
22
+ // force 2 decimals places
23
+ const rawMakerAmt = parseFloat((price * userOrder.size).toFixed(2));
24
+ makerAmount = ethers.utils.parseUnits(rawMakerAmt.toString(), COLLATERAL_TOKEN_DECIMALS).toString();
25
+ const rawTakerAmt = parseFloat(userOrder.size.toFixed(2));
26
+ takerAmount = ethers.utils.parseEther(rawTakerAmt.toString()).toString();
27
+ }
28
+ else {
29
+ makerAsset = userOrder.asset.address;
30
+ takerAsset = collateral;
31
+ makerAssetID = getTokenID(userOrder.asset.condition);
32
+ takerAssetID = undefined;
33
+ const rawMakerAmt = parseFloat(userOrder.size.toFixed(2));
34
+ makerAmount = ethers.utils.parseEther(rawMakerAmt.toString()).toString();
35
+ const rawTakerAmt = parseFloat((price * userOrder.size).toFixed(2));
36
+ takerAmount = ethers.utils.parseUnits(rawTakerAmt.toString(), COLLATERAL_TOKEN_DECIMALS).toString();
37
+ }
38
+ return {
39
+ chainID,
40
+ exchange,
41
+ signer,
42
+ maker,
43
+ makerAsset,
44
+ makerAmount,
45
+ makerAssetID,
46
+ takerAsset,
47
+ takerAmount,
48
+ takerAssetID,
49
+ signatureType,
50
+ };
51
+ };
52
+ /**
53
+ * Translate simple user order to args used to generate MarketOrders
54
+ */
55
+ export const buildMarketOrderCreationArgs = async (signer, maker, chainID, exchange, collateral, signatureType, userOrder) => {
56
+ let makerAsset;
57
+ let takerAsset;
58
+ let makerAssetID;
59
+ let takerAssetID;
60
+ let makerAmount;
61
+ if (userOrder.side === Side.BUY) {
62
+ // market buy
63
+ makerAsset = collateral; // Set maker asset to collateral if market buy
64
+ takerAsset = userOrder.asset.address; // taker Asset to ConditionalToken
65
+ makerAssetID = undefined;
66
+ takerAssetID = getTokenID(userOrder.asset.condition);
67
+ // We always round sizes to 2 decimal places
68
+ const roundedMakerAmt = userOrder.size.toFixed(2).toString();
69
+ makerAmount = ethers.utils.parseUnits(roundedMakerAmt, COLLATERAL_TOKEN_DECIMALS).toString();
70
+ }
71
+ else {
72
+ // market sell
73
+ makerAsset = userOrder.asset.address;
74
+ takerAsset = collateral;
75
+ makerAssetID = getTokenID(userOrder.asset.condition);
76
+ takerAssetID = undefined;
77
+ const roundedMakerAmt = userOrder.size.toFixed(2).toString();
78
+ makerAmount = ethers.utils.parseEther(roundedMakerAmt).toString();
79
+ }
80
+ return {
81
+ chainID,
82
+ exchange,
83
+ signer,
84
+ maker,
85
+ makerAsset,
86
+ makerAmount,
87
+ makerAssetID,
88
+ takerAsset,
89
+ takerAssetID,
90
+ signatureType,
91
+ };
92
+ };
93
+ /**
94
+ * Generate and sign a limit order
95
+ *
96
+ * @param signer
97
+ * @param makerAmount
98
+ * @param takerAmount
99
+ * @param makerAssetType
100
+ * @param takerAssetType
101
+ * @param makerAssetID
102
+ * @param takerAssetID
103
+ * @returns
104
+ */
105
+ const buildOrder = async (signer, args) => {
106
+ console.log(`Building Limit order signed by: ${args.maker}...`);
107
+ const jsonRpcSigner = await getJsonRpcSigner(signer, args.chainID);
108
+ const connector = new EthersProviderConnector(jsonRpcSigner);
109
+ const limitOrderBuilder = new LimitOrderBuilder(args.exchange, args.chainID, connector);
110
+ const limitOrderData = {
111
+ exchangeAddress: args.exchange,
112
+ makerAssetAddress: args.makerAsset,
113
+ takerAssetAddress: args.takerAsset,
114
+ makerAddress: args.maker,
115
+ makerAmount: args.makerAmount,
116
+ takerAmount: args.takerAmount,
117
+ signer: args.signer,
118
+ sigType: args.signatureType,
119
+ };
120
+ if (args.makerAssetID !== undefined) {
121
+ limitOrderData.makerAssetID = args.makerAssetID;
122
+ }
123
+ if (args.takerAssetID !== undefined) {
124
+ limitOrderData.takerAssetID = args.takerAssetID;
125
+ }
126
+ // Create order
127
+ const limitOrder = limitOrderBuilder.buildLimitOrder(limitOrderData);
128
+ // And sign it with the maker address
129
+ const limitOrderTypedData = limitOrderBuilder.buildLimitOrderTypedData(limitOrder);
130
+ const limitOrderSignature = await limitOrderBuilder.buildOrderSignature(jsonRpcSigner._address, limitOrderTypedData);
131
+ const orderAndSignature = {
132
+ order: limitOrder,
133
+ signature: limitOrderSignature,
134
+ orderType: "limit",
135
+ };
136
+ return orderAndSignature;
137
+ };
138
+ /**
139
+ *
140
+ * @param signer
141
+ * @param args
142
+ */
143
+ const buildMarketOrder = async (signer, args) => {
144
+ console.log(`Building Market order signed by: ${args.maker}...`);
145
+ const jsonRpcSigner = await getJsonRpcSigner(signer, args.chainID);
146
+ const connector = new EthersProviderConnector(jsonRpcSigner);
147
+ const marketOrderBuilder = new MarketOrderBuilder(args.exchange, args.chainID, connector);
148
+ const marketOrderData = {
149
+ exchangeAddress: args.exchange,
150
+ makerAssetAddress: args.makerAsset,
151
+ takerAssetAddress: args.takerAsset,
152
+ makerAddress: args.maker,
153
+ makerAmount: args.makerAmount,
154
+ signer: args.signer,
155
+ sigType: args.signatureType,
156
+ };
157
+ if (args.makerAssetID !== undefined) {
158
+ marketOrderData.makerAssetID = args.makerAssetID;
159
+ }
160
+ if (args.takerAssetID !== undefined) {
161
+ marketOrderData.takerAssetID = args.takerAssetID;
162
+ }
163
+ // Create order
164
+ const marketOrder = marketOrderBuilder.buildMarketOrder(marketOrderData);
165
+ // And sign it with the maker address
166
+ const typedData = marketOrderBuilder.buildOrderTypedData(marketOrder);
167
+ const sig = await marketOrderBuilder.buildOrderSignature(jsonRpcSigner._address, typedData);
168
+ const orderAndSignature = {
169
+ order: marketOrder,
170
+ signature: sig,
171
+ };
172
+ console.log(`Market order and signature:`);
173
+ console.log(orderAndSignature);
174
+ return orderAndSignature;
175
+ };
176
+ const getSigner = (eoa, makerAddress, sigType) => {
177
+ switch (sigType) {
178
+ case SignatureType.EOA:
179
+ // signer is always the EOA address for EOA sigs
180
+ return eoa;
181
+ case SignatureType.CONTRACT:
182
+ // signer is the contract address/ funder address
183
+ return makerAddress;
184
+ case SignatureType.POLY_PROXY:
185
+ // signer is the eoa
186
+ return eoa;
187
+ default:
188
+ throw new Error("invalid signature type");
189
+ }
190
+ };
191
+ export const createLimitOrder = async (eoaSigner, signatureType, funderAddress, userOrder) => {
192
+ const chainID = await eoaSigner.getChainId();
193
+ const eoaSignerAddress = await eoaSigner.getAddress();
194
+ // If funder address is not given, use the signer address
195
+ const maker = funderAddress === undefined ? eoaSignerAddress : funderAddress;
196
+ const signerAddress = getSigner(eoaSignerAddress, maker, signatureType);
197
+ const clobContracts = getContracts(chainID);
198
+ const exchange = clobContracts.Exchange;
199
+ const collateral = clobContracts.Collateral;
200
+ const orderArgs = await buildLimitOrderCreationArgs(signerAddress, maker, chainID, exchange, collateral, signatureType, userOrder);
201
+ const orderAndSig = await buildOrder(eoaSigner, orderArgs);
202
+ console.log(`Generated limit order!`);
203
+ console.log(orderAndSig);
204
+ return orderAndSig;
205
+ };
206
+ export const createMarketOrder = async (eoaSigner, signatureType, funderAddress, userMarketOrder) => {
207
+ const chainID = await eoaSigner.getChainId();
208
+ const eoaSignerAddress = await eoaSigner.getAddress();
209
+ // If funder address is not given, use the signer address
210
+ const maker = funderAddress === undefined ? eoaSignerAddress : funderAddress;
211
+ const signerAddress = getSigner(eoaSignerAddress, maker, signatureType);
212
+ const clobContracts = getContracts(chainID);
213
+ const exchange = clobContracts.Exchange;
214
+ const collateral = clobContracts.Collateral;
215
+ const marketOrderArgs = await buildMarketOrderCreationArgs(signerAddress, maker, chainID, exchange, collateral, signatureType, userMarketOrder);
216
+ const marketOrderAndSig = await buildMarketOrder(eoaSigner, marketOrderArgs);
217
+ console.log(`Generated market ${userMarketOrder.side} order!`);
218
+ console.log(marketOrderAndSig);
219
+ return marketOrderAndSig;
220
+ };
221
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/order-builder/helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from "./builder";
2
+ export * from "./utils";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/order-builder/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./builder";
2
+ export * from "./utils";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/order-builder/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { JsonRpcSigner } from "@ethersproject/providers";
2
+ import { Wallet } from "@ethersproject/wallet";
3
+ export declare const getTokenID: (condition: string) => number;
4
+ export declare const getJsonRpcSigner: (signer: Wallet | JsonRpcSigner, chainID: number) => Promise<JsonRpcSigner>;
5
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/order-builder/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,eAAO,MAAM,UAAU,cAAe,MAAM,KAAG,MAW9C,CAAC;AAEF,eAAO,MAAM,gBAAgB,WAAkB,MAAM,GAAG,aAAa,WAAW,MAAM,KAAG,OAAO,CAAC,aAAa,CAK7G,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { getSignerFromWallet } from "@polymarket/order-utils";
2
+ import { Wallet } from "@ethersproject/wallet";
3
+ export const getTokenID = (condition) => {
4
+ switch (condition.toLowerCase()) {
5
+ // TODO: assuming YES = 0, NO = 1, following the [Yes, No] structure
6
+ // will be a problem for scalars, non binary markets, figure out fix
7
+ case "yes":
8
+ return 0;
9
+ case "no":
10
+ return 1;
11
+ default:
12
+ throw new Error("Invalid asset condition");
13
+ }
14
+ };
15
+ export const getJsonRpcSigner = async (signer, chainID) => {
16
+ if (signer instanceof Wallet) {
17
+ return getSignerFromWallet(signer, chainID, signer.provider);
18
+ }
19
+ return signer;
20
+ };
21
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/order-builder/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,SAAiB,EAAU,EAAE;IACpD,QAAQ,SAAS,CAAC,WAAW,EAAE,EAAE;QAC7B,oEAAoE;QACpE,oEAAoE;QACpE,KAAK,KAAK;YACN,OAAO,CAAC,CAAC;QACb,KAAK,IAAI;YACL,OAAO,CAAC,CAAC;QACb;YACI,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAClD;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,MAA8B,EAAE,OAAe,EAA0B,EAAE;IAC9G,IAAI,MAAM,YAAY,MAAM,EAAE;QAC1B,OAAO,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,QAA2B,CAAC,CAAC;KACnF;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ export declare const CLOB_DOMAIN_NAME = "ClobAuthDomain";
2
+ export declare const CLOB_VERSION = "1";
3
+ export declare const MSG_TO_SIGN = "This message attests that I control the given wallet";
4
+ export declare const CLOB_DOMAIN: {
5
+ name: string;
6
+ version: string;
7
+ chainId: number;
8
+ };
9
+ export declare const CLOB_TYPES: {
10
+ ClobAuth: {
11
+ name: string;
12
+ type: string;
13
+ }[];
14
+ };
15
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/signing/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,mBAAmB,CAAC;AACjD,eAAO,MAAM,YAAY,MAAM,CAAC;AAChC,eAAO,MAAM,WAAW,yDAAyD,CAAC;AAElF,eAAO,MAAM,WAAW;;;;CAIvB,CAAC;AAEF,eAAO,MAAM,UAAU;;;;;CAMtB,CAAC"}
@@ -0,0 +1,16 @@
1
+ export const CLOB_DOMAIN_NAME = "ClobAuthDomain";
2
+ export const CLOB_VERSION = "1";
3
+ export const MSG_TO_SIGN = "This message attests that I control the given wallet";
4
+ export const CLOB_DOMAIN = {
5
+ name: CLOB_DOMAIN_NAME,
6
+ version: CLOB_VERSION,
7
+ chainId: 1,
8
+ };
9
+ export const CLOB_TYPES = {
10
+ ClobAuth: [
11
+ { name: "address", type: "address" },
12
+ { name: "timestamp", type: "string" },
13
+ { name: "message", type: "string" },
14
+ ],
15
+ };
16
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/signing/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AACjD,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC;AAChC,MAAM,CAAC,MAAM,WAAW,GAAG,sDAAsD,CAAC;AAElF,MAAM,CAAC,MAAM,WAAW,GAAG;IACvB,IAAI,EAAE,gBAAgB;IACtB,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,CAAC;CACb,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG;IACtB,QAAQ,EAAE;QACN,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;QACpC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE;QACrC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;KACtC;CACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { Wallet } from "@ethersproject/wallet";
2
+ import { JsonRpcSigner } from "@ethersproject/providers";
3
+ /**
4
+ * Builds the canonical Polymarket CLOB EIP712 signature
5
+ * @param signer
6
+ * @param ts
7
+ * @returns string
8
+ */
9
+ export declare const buildClobEip712Signature: (signer: Wallet | JsonRpcSigner, timestamp: number) => Promise<string>;
10
+ //# sourceMappingURL=eip712.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eip712.d.ts","sourceRoot":"","sources":["../../../src/signing/eip712.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,WAAkB,MAAM,GAAG,aAAa,aAAa,MAAM,KAAG,OAAO,CAAC,MAAM,CAyBhH,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { MSG_TO_SIGN } from "./constants";
2
+ /**
3
+ * Builds the canonical Polymarket CLOB EIP712 signature
4
+ * @param signer
5
+ * @param ts
6
+ * @returns string
7
+ */
8
+ export const buildClobEip712Signature = async (signer, timestamp) => {
9
+ const address = await signer.getAddress();
10
+ const ts = `${timestamp}`;
11
+ const domain = {
12
+ name: "ClobAuthDomain",
13
+ version: "1",
14
+ chainId: 1,
15
+ };
16
+ const types = {
17
+ ClobAuth: [
18
+ { name: "address", type: "address" },
19
+ { name: "timestamp", type: "string" },
20
+ { name: "message", type: "string" },
21
+ ],
22
+ };
23
+ const value = {
24
+ address,
25
+ timestamp: ts,
26
+ message: MSG_TO_SIGN,
27
+ };
28
+ // eslint-disable-next-line no-underscore-dangle
29
+ const sig = await signer._signTypedData(domain, types, value);
30
+ return sig;
31
+ };
32
+ //# sourceMappingURL=eip712.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eip712.js","sourceRoot":"","sources":["../../../src/signing/eip712.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAAE,MAA8B,EAAE,SAAiB,EAAmB,EAAE;IACjH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,EAAE,GAAG,GAAG,SAAS,EAAE,CAAC;IAE1B,MAAM,MAAM,GAAG;QACX,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,GAAG;QACZ,OAAO,EAAE,CAAC;KACb,CAAC;IAEF,MAAM,KAAK,GAAG;QACV,QAAQ,EAAE;YACN,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;YACpC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE;YACrC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;SACtC;KACJ,CAAC;IACF,MAAM,KAAK,GAAG;QACV,OAAO;QACP,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,WAAW;KACvB,CAAC;IACF,gDAAgD;IAChD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC9D,OAAO,GAAG,CAAC;AACf,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Builds the canonical Polymarket CLOB HMAC signature
3
+ * @param signer
4
+ * @param key
5
+ * @param secret
6
+ * @param passphrase
7
+ * @returns string
8
+ */
9
+ export declare const buildPolyHmacSignature: (secret: string, timestamp: number, method: string, requestPath: string, body?: string | undefined) => Promise<string>;
10
+ //# sourceMappingURL=hmac.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hmac.d.ts","sourceRoot":"","sources":["../../../src/signing/hmac.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,WACvB,MAAM,aACH,MAAM,UACT,MAAM,eACD,MAAM,gCAEpB,OAAO,CAAC,MAAM,CAchB,CAAC"}
@@ -0,0 +1,25 @@
1
+ /* eslint-disable import/no-extraneous-dependencies */
2
+ import crypto from "crypto";
3
+ /**
4
+ * Builds the canonical Polymarket CLOB HMAC signature
5
+ * @param signer
6
+ * @param key
7
+ * @param secret
8
+ * @param passphrase
9
+ * @returns string
10
+ */
11
+ export const buildPolyHmacSignature = async (secret, timestamp, method, requestPath, body) => {
12
+ let message = timestamp + method + requestPath;
13
+ if (body !== undefined) {
14
+ message += body;
15
+ }
16
+ const base64Secret = Buffer.from(secret, "base64");
17
+ const hmac = crypto.createHmac("sha256", base64Secret);
18
+ const sig = hmac.update(message).digest("base64");
19
+ // NOTE: Must be url safe base64 encoding, but keep base64 "=" suffix
20
+ const sigUrlSafe = sig
21
+ .replaceAll(/\+/g, "-") // Convert '+' to '-'
22
+ .replaceAll(/\//g, "_"); // Convert '/' to '_'
23
+ return sigUrlSafe;
24
+ };
25
+ //# sourceMappingURL=hmac.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hmac.js","sourceRoot":"","sources":["../../../src/signing/hmac.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EACvC,MAAc,EACd,SAAiB,EACjB,MAAc,EACd,WAAmB,EACnB,IAAa,EACE,EAAE;IACjB,IAAI,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,WAAW,CAAC;IAC/C,IAAI,IAAI,KAAK,SAAS,EAAE;QACpB,OAAO,IAAI,IAAI,CAAC;KACnB;IACD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAElD,qEAAqE;IACrE,MAAM,UAAU,GAAG,GAAG;SACjB,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,qBAAqB;SAC5C,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,qBAAqB;IAClD,OAAO,UAAU,CAAC;AACtB,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./eip712";
2
+ export * from "./hmac";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/signing/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./eip712";
2
+ export * from "./hmac";
3
+ //# sourceMappingURL=index.js.map