@kuestcom/clob-client 5.8.1

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 (87) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +101 -0
  3. package/dist/client.d.ts +164 -0
  4. package/dist/client.js +967 -0
  5. package/dist/client.js.map +1 -0
  6. package/dist/config.d.ts +12 -0
  7. package/dist/config.js +28 -0
  8. package/dist/config.js.map +1 -0
  9. package/dist/constants.d.ts +3 -0
  10. package/dist/constants.js +7 -0
  11. package/dist/constants.js.map +1 -0
  12. package/dist/endpoints.d.ts +67 -0
  13. package/dist/endpoints.js +82 -0
  14. package/dist/endpoints.js.map +1 -0
  15. package/dist/errors.d.ts +10 -0
  16. package/dist/errors.js +16 -0
  17. package/dist/errors.js.map +1 -0
  18. package/dist/headers/index.d.ts +6 -0
  19. package/dist/headers/index.js +42 -0
  20. package/dist/headers/index.js.map +1 -0
  21. package/dist/http-helpers/index.d.ts +21 -0
  22. package/dist/http-helpers/index.js +151 -0
  23. package/dist/http-helpers/index.js.map +1 -0
  24. package/dist/index.d.ts +11 -0
  25. package/dist/index.js +10 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/order-builder/builder.d.ts +29 -0
  28. package/dist/order-builder/builder.js +52 -0
  29. package/dist/order-builder/builder.js.map +1 -0
  30. package/dist/order-builder/helpers.d.ts +50 -0
  31. package/dist/order-builder/helpers.js +276 -0
  32. package/dist/order-builder/helpers.js.map +1 -0
  33. package/dist/order-builder/index.d.ts +1 -0
  34. package/dist/order-builder/index.js +2 -0
  35. package/dist/order-builder/index.js.map +1 -0
  36. package/dist/order-utils/exchange.order.builder.d.ts +31 -0
  37. package/dist/order-utils/exchange.order.builder.js +120 -0
  38. package/dist/order-utils/exchange.order.builder.js.map +1 -0
  39. package/dist/order-utils/exchange.order.const.d.ts +13 -0
  40. package/dist/order-utils/exchange.order.const.js +28 -0
  41. package/dist/order-utils/exchange.order.const.js.map +1 -0
  42. package/dist/order-utils/index.d.ts +6 -0
  43. package/dist/order-utils/index.js +7 -0
  44. package/dist/order-utils/index.js.map +1 -0
  45. package/dist/order-utils/model/eip712.model.d.ts +25 -0
  46. package/dist/order-utils/model/eip712.model.js +2 -0
  47. package/dist/order-utils/model/eip712.model.js.map +1 -0
  48. package/dist/order-utils/model/order-side.model.d.ts +4 -0
  49. package/dist/order-utils/model/order-side.model.js +6 -0
  50. package/dist/order-utils/model/order-side.model.js.map +1 -0
  51. package/dist/order-utils/model/order.model.d.ts +112 -0
  52. package/dist/order-utils/model/order.model.js +2 -0
  53. package/dist/order-utils/model/order.model.js.map +1 -0
  54. package/dist/order-utils/model/signature-types.model.d.ts +14 -0
  55. package/dist/order-utils/model/signature-types.model.js +16 -0
  56. package/dist/order-utils/model/signature-types.model.js.map +1 -0
  57. package/dist/order-utils/utils.d.ts +1 -0
  58. package/dist/order-utils/utils.js +4 -0
  59. package/dist/order-utils/utils.js.map +1 -0
  60. package/dist/rfq-client.d.ts +64 -0
  61. package/dist/rfq-client.js +403 -0
  62. package/dist/rfq-client.js.map +1 -0
  63. package/dist/rfq-deps.d.ts +44 -0
  64. package/dist/rfq-deps.js +2 -0
  65. package/dist/rfq-deps.js.map +1 -0
  66. package/dist/signer.d.ts +22 -0
  67. package/dist/signer.js +50 -0
  68. package/dist/signer.js.map +1 -0
  69. package/dist/signing/constants.d.ts +14 -0
  70. package/dist/signing/constants.js +16 -0
  71. package/dist/signing/constants.js.map +1 -0
  72. package/dist/signing/eip712.d.ts +9 -0
  73. package/dist/signing/eip712.js +40 -0
  74. package/dist/signing/eip712.js.map +1 -0
  75. package/dist/signing/hmac.d.ts +9 -0
  76. package/dist/signing/hmac.js +58 -0
  77. package/dist/signing/hmac.js.map +1 -0
  78. package/dist/signing/index.d.ts +2 -0
  79. package/dist/signing/index.js +3 -0
  80. package/dist/signing/index.js.map +1 -0
  81. package/dist/types.d.ts +667 -0
  82. package/dist/types.js +37 -0
  83. package/dist/types.js.map +1 -0
  84. package/dist/utilities.d.ts +16 -0
  85. package/dist/utilities.js +93 -0
  86. package/dist/utilities.js.map +1 -0
  87. package/package.json +85 -0
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Builds the canonical Kuest CLOB HMAC signature
3
+ * @param signer
4
+ * @param key
5
+ * @param secret
6
+ * @param passphrase
7
+ * @returns string
8
+ */
9
+ export declare const buildKuestHmacSignature: (secret: string, timestamp: number, method: string, requestPath: string, body?: string) => Promise<string>;
@@ -0,0 +1,58 @@
1
+ function replaceAll(s, search, replace) {
2
+ return s.split(search).join(replace);
3
+ }
4
+ /**
5
+ * Converts base64 string to ArrayBuffer
6
+ */
7
+ function base64ToArrayBuffer(base64) {
8
+ const sanitizedBase64 = base64
9
+ // Convert base64url to base64 – some secrets routinely come in as base64url: https://stackoverflow.com/q/5234581
10
+ .replace(/-/g, "+")
11
+ .replace(/_/g, "/")
12
+ // Remove any non-base64 characters, for backwards compatibility with Node.js Buffer.from()
13
+ .replace(/[^A-Za-z0-9+/=]/g, "");
14
+ const binaryString = atob(sanitizedBase64);
15
+ const bytes = new Uint8Array(binaryString.length);
16
+ for (let i = 0; i < binaryString.length; i++) {
17
+ bytes[i] = binaryString.charCodeAt(i);
18
+ }
19
+ return bytes.buffer;
20
+ }
21
+ /**
22
+ * Converts ArrayBuffer to base64 string
23
+ */
24
+ function arrayBufferToBase64(buffer) {
25
+ const bytes = new Uint8Array(buffer);
26
+ let binary = "";
27
+ for (let i = 0; i < bytes.byteLength; i++) {
28
+ binary += String.fromCharCode(bytes[i]);
29
+ }
30
+ return btoa(binary);
31
+ }
32
+ /**
33
+ * Builds the canonical Kuest CLOB HMAC signature
34
+ * @param signer
35
+ * @param key
36
+ * @param secret
37
+ * @param passphrase
38
+ * @returns string
39
+ */
40
+ export const buildKuestHmacSignature = async (secret, timestamp, method, requestPath, body) => {
41
+ let message = timestamp + method + requestPath;
42
+ if (body !== undefined) {
43
+ message += body;
44
+ }
45
+ // Import the secret key from base64
46
+ const keyData = base64ToArrayBuffer(secret);
47
+ const cryptoKey = await globalThis.crypto.subtle.importKey("raw", keyData, { name: "HMAC", hash: "SHA-256" }, false, ["sign"]);
48
+ // Sign the message
49
+ const messageBuffer = new TextEncoder().encode(message);
50
+ const signatureBuffer = await globalThis.crypto.subtle.sign("HMAC", cryptoKey, messageBuffer);
51
+ const sig = arrayBufferToBase64(signatureBuffer);
52
+ // NOTE: Must be url safe base64 encoding, but keep base64 "=" suffix
53
+ // Convert '+' to '-'
54
+ // Convert '/' to '_'
55
+ const sigUrlSafe = replaceAll(replaceAll(sig, "+", "-"), "/", "_");
56
+ return sigUrlSafe;
57
+ };
58
+ //# sourceMappingURL=hmac.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hmac.js","sourceRoot":"","sources":["../../src/signing/hmac.ts"],"names":[],"mappings":"AAAA,SAAS,UAAU,CAAC,CAAS,EAAE,MAAc,EAAE,OAAe;IAC1D,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,MAAc;IACvC,MAAM,eAAe,GAAG,MAAM;QAC1B,iHAAiH;SAChH,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;SAClB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;QACnB,2FAA2F;SAC1F,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IACrC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,MAAmB;IAC5C,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACxB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EACxC,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,CAAC;QACrB,OAAO,IAAI,IAAI,CAAC;IACpB,CAAC;IAED,oCAAoC;IACpC,MAAM,OAAO,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CACtD,KAAK,EACL,OAAO,EACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EACjC,KAAK,EACL,CAAC,MAAM,CAAC,CACX,CAAC;IAEF,mBAAmB;IACnB,MAAM,aAAa,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAC9F,MAAM,GAAG,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;IAEjD,qEAAqE;IACrE,qBAAqB;IACrB,qBAAqB;IACrB,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACnE,OAAO,UAAU,CAAC;AACtB,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./eip712.ts";
2
+ export * from "./hmac.ts";
@@ -0,0 +1,3 @@
1
+ export * from "./eip712.js";
2
+ export * from "./hmac.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/signing/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC"}