@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,93 @@
1
+ import { Side as UtilsSide } from "./order-utils/index.js";
2
+ import { OrderType, Side } from "./types.js";
3
+ export function orderToJson(order, owner, orderType, deferExec = false, postOnly) {
4
+ if (postOnly === true && orderType !== OrderType.GTC && orderType !== OrderType.GTD) {
5
+ throw new Error("postOnly is only supported for GTC and GTD orders");
6
+ }
7
+ let side = Side.BUY;
8
+ if (order.side === UtilsSide.BUY) {
9
+ side = Side.BUY;
10
+ }
11
+ else {
12
+ side = Side.SELL;
13
+ }
14
+ return {
15
+ deferExec,
16
+ order: {
17
+ salt: Number.parseInt(order.salt, 10),
18
+ maker: order.maker,
19
+ signer: order.signer,
20
+ taker: order.taker,
21
+ tokenId: order.tokenId,
22
+ makerAmount: order.makerAmount,
23
+ takerAmount: order.takerAmount,
24
+ side,
25
+ expiration: order.expiration,
26
+ nonce: order.nonce,
27
+ feeRateBps: order.feeRateBps,
28
+ signatureType: order.signatureType,
29
+ signature: order.signature,
30
+ },
31
+ owner,
32
+ orderType,
33
+ ...(typeof postOnly === "boolean" ? { postOnly } : {}),
34
+ };
35
+ }
36
+ export const roundNormal = (num, decimals) => {
37
+ if (decimalPlaces(num) <= decimals) {
38
+ return num;
39
+ }
40
+ return Math.round((num + Number.EPSILON) * 10 ** decimals) / 10 ** decimals;
41
+ };
42
+ export const roundDown = (num, decimals) => {
43
+ if (decimalPlaces(num) <= decimals) {
44
+ return num;
45
+ }
46
+ return Math.floor(num * 10 ** decimals) / 10 ** decimals;
47
+ };
48
+ export const roundUp = (num, decimals) => {
49
+ if (decimalPlaces(num) <= decimals) {
50
+ return num;
51
+ }
52
+ return Math.ceil(num * 10 ** decimals) / 10 ** decimals;
53
+ };
54
+ export const decimalPlaces = (num) => {
55
+ if (Number.isInteger(num)) {
56
+ return 0;
57
+ }
58
+ const arr = num.toString().split(".");
59
+ if (arr.length <= 1) {
60
+ return 0;
61
+ }
62
+ return arr[1].length;
63
+ };
64
+ /**
65
+ * Converts ArrayBuffer to hex string
66
+ */
67
+ function arrayBufferToHex(buffer) {
68
+ const bytes = new Uint8Array(buffer);
69
+ return Array.from(bytes)
70
+ .map(b => b.toString(16).padStart(2, "0"))
71
+ .join("");
72
+ }
73
+ /**
74
+ * Calculates the hash for the given orderbook
75
+ * @param orderbook
76
+ * @returns
77
+ */
78
+ export const generateOrderBookSummaryHash = async (orderbook) => {
79
+ orderbook.hash = "";
80
+ const message = JSON.stringify(orderbook);
81
+ const messageBuffer = new TextEncoder().encode(message);
82
+ const hashBuffer = await globalThis.crypto.subtle.digest("SHA-1", messageBuffer);
83
+ const hash = arrayBufferToHex(hashBuffer);
84
+ orderbook.hash = hash;
85
+ return hash;
86
+ };
87
+ export const isTickSizeSmaller = (a, b) => {
88
+ return Number.parseFloat(a) < Number.parseFloat(b);
89
+ };
90
+ export const priceValid = (price, tickSize) => {
91
+ return price >= Number.parseFloat(tickSize) && price <= 1 - Number.parseFloat(tickSize);
92
+ };
93
+ //# sourceMappingURL=utilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utilities.js","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,85 @@
1
+ {
2
+ "name": "@kuestcom/clob-client",
3
+ "description": "Typescript client for Kuest's CLOB",
4
+ "version": "5.8.1",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/kuestcom/clob-client.git"
8
+ },
9
+ "homepage": "https://github.com/kuestcom/clob-client",
10
+ "bugs": {
11
+ "url": "https://github.com/kuestcom/clob-client/issues"
12
+ },
13
+ "contributors": [
14
+ {
15
+ "name": "Jonathan Amenechi",
16
+ "url": "https://github.com/JonathanAmenechi"
17
+ },
18
+ {
19
+ "name": "Rodrigo Calvo",
20
+ "url": "https://github.com/poly-rodr"
21
+ },
22
+ {
23
+ "name": "Matt Walker",
24
+ "url": "https://github.com/mttwlkr"
25
+ },
26
+ {
27
+ "name": "Liam Kovatch",
28
+ "url": "https://github.com/l-kov"
29
+ },
30
+ {
31
+ "name": "Mike Shrieve",
32
+ "url": "https://github.com/mshrieve"
33
+ },
34
+ {
35
+ "name": "Danny Dresner",
36
+ "url": "https://github.com/ddresner-pm"
37
+ },
38
+ {
39
+ "name": "Bruno Maciel",
40
+ "url": "https://github.com/ibruno"
41
+ }
42
+ ],
43
+ "main": "dist/index.js",
44
+ "types": "dist/index.d.ts",
45
+ "type": "module",
46
+ "files": [
47
+ "/dist"
48
+ ],
49
+ "sideEffects": false,
50
+ "keywords": [
51
+ "blockchain",
52
+ "ethereum"
53
+ ],
54
+ "engines": {
55
+ "node": ">=20.10"
56
+ },
57
+ "license": "MIT",
58
+ "packageManager": "pnpm@10.30.3",
59
+ "scripts": {
60
+ "build": "rm -rf dist && tsc -p tsconfig.build.json",
61
+ "typecheck": "tsc -p tsconfig.test.json --noEmit",
62
+ "test": "pnpm typecheck && vitest run --coverage",
63
+ "lint": "biome check ./src",
64
+ "ci": "pnpm lint && pnpm test && pnpm build",
65
+ "deploy": "pnpm build && npm publish --access public --provenance"
66
+ },
67
+ "dependencies": {
68
+ "@kuestcom/builder-signing-sdk": "^1.0.0",
69
+ "axios": "1.14.0",
70
+ "browser-or-node": "^2.1.1",
71
+ "viem": "^2.46.3"
72
+ },
73
+ "devDependencies": {
74
+ "@biomejs/biome": "^2.4.5",
75
+ "@ethersproject/wallet": "^5.8.0",
76
+ "@types/node": "^22.19.1",
77
+ "@types/ws": "^8.5.3",
78
+ "@vitest/coverage-v8": "^4.0.18",
79
+ "dotenv": "^17.3.1",
80
+ "ethers": "^5.8.0",
81
+ "typescript": "^6.0.0",
82
+ "vitest": "^4.0.18",
83
+ "ws": "^8.11.0"
84
+ }
85
+ }