@the-situation/sdk 0.1.0-alpha.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 (221) hide show
  1. package/dist/__integration__/setup/accounts.d.ts +38 -0
  2. package/dist/__integration__/setup/accounts.d.ts.map +1 -0
  3. package/dist/__integration__/setup/accounts.js +50 -0
  4. package/dist/__integration__/setup/accounts.js.map +1 -0
  5. package/dist/__integration__/setup/artifacts.d.ts +51 -0
  6. package/dist/__integration__/setup/artifacts.d.ts.map +1 -0
  7. package/dist/__integration__/setup/artifacts.js +72 -0
  8. package/dist/__integration__/setup/artifacts.js.map +1 -0
  9. package/dist/__integration__/setup/deploy.d.ts +152 -0
  10. package/dist/__integration__/setup/deploy.d.ts.map +1 -0
  11. package/dist/__integration__/setup/deploy.js +344 -0
  12. package/dist/__integration__/setup/deploy.js.map +1 -0
  13. package/dist/__integration__/setup/devnet.d.ts +44 -0
  14. package/dist/__integration__/setup/devnet.d.ts.map +1 -0
  15. package/dist/__integration__/setup/devnet.js +97 -0
  16. package/dist/__integration__/setup/devnet.js.map +1 -0
  17. package/dist/__integration__/setup/erc20.d.ts +58 -0
  18. package/dist/__integration__/setup/erc20.d.ts.map +1 -0
  19. package/dist/__integration__/setup/erc20.js +194 -0
  20. package/dist/__integration__/setup/erc20.js.map +1 -0
  21. package/dist/__integration__/setup/fixtures.d.ts +125 -0
  22. package/dist/__integration__/setup/fixtures.d.ts.map +1 -0
  23. package/dist/__integration__/setup/fixtures.js +206 -0
  24. package/dist/__integration__/setup/fixtures.js.map +1 -0
  25. package/dist/__integration__/setup/index.d.ts +12 -0
  26. package/dist/__integration__/setup/index.d.ts.map +1 -0
  27. package/dist/__integration__/setup/index.js +12 -0
  28. package/dist/__integration__/setup/index.js.map +1 -0
  29. package/dist/__integration__/utils/assertions.d.ts +117 -0
  30. package/dist/__integration__/utils/assertions.d.ts.map +1 -0
  31. package/dist/__integration__/utils/assertions.js +191 -0
  32. package/dist/__integration__/utils/assertions.js.map +1 -0
  33. package/dist/__integration__/utils/balance-tracker.d.ts +85 -0
  34. package/dist/__integration__/utils/balance-tracker.d.ts.map +1 -0
  35. package/dist/__integration__/utils/balance-tracker.js +139 -0
  36. package/dist/__integration__/utils/balance-tracker.js.map +1 -0
  37. package/dist/__integration__/utils/calldata.d.ts +74 -0
  38. package/dist/__integration__/utils/calldata.d.ts.map +1 -0
  39. package/dist/__integration__/utils/calldata.js +119 -0
  40. package/dist/__integration__/utils/calldata.js.map +1 -0
  41. package/dist/__integration__/utils/index.d.ts +11 -0
  42. package/dist/__integration__/utils/index.d.ts.map +1 -0
  43. package/dist/__integration__/utils/index.js +11 -0
  44. package/dist/__integration__/utils/index.js.map +1 -0
  45. package/dist/__integration__/utils/trading.d.ts +169 -0
  46. package/dist/__integration__/utils/trading.d.ts.map +1 -0
  47. package/dist/__integration__/utils/trading.js +253 -0
  48. package/dist/__integration__/utils/trading.js.map +1 -0
  49. package/dist/__integration__/utils/wait.d.ts +52 -0
  50. package/dist/__integration__/utils/wait.d.ts.map +1 -0
  51. package/dist/__integration__/utils/wait.js +88 -0
  52. package/dist/__integration__/utils/wait.js.map +1 -0
  53. package/dist/abi/amm.d.ts +96 -0
  54. package/dist/abi/amm.d.ts.map +1 -0
  55. package/dist/abi/amm.js +70 -0
  56. package/dist/abi/amm.js.map +1 -0
  57. package/dist/abi/common.d.ts +329 -0
  58. package/dist/abi/common.d.ts.map +1 -0
  59. package/dist/abi/common.js +99 -0
  60. package/dist/abi/common.js.map +1 -0
  61. package/dist/abi/factory.d.ts +69 -0
  62. package/dist/abi/factory.d.ts.map +1 -0
  63. package/dist/abi/factory.js +29 -0
  64. package/dist/abi/factory.js.map +1 -0
  65. package/dist/abi/index.d.ts +14 -0
  66. package/dist/abi/index.d.ts.map +1 -0
  67. package/dist/abi/index.js +21 -0
  68. package/dist/abi/index.js.map +1 -0
  69. package/dist/abi/math-library.d.ts +113 -0
  70. package/dist/abi/math-library.d.ts.map +1 -0
  71. package/dist/abi/math-library.js +24 -0
  72. package/dist/abi/math-library.js.map +1 -0
  73. package/dist/abi/oracle.d.ts +63 -0
  74. package/dist/abi/oracle.d.ts.map +1 -0
  75. package/dist/abi/oracle.js +26 -0
  76. package/dist/abi/oracle.js.map +1 -0
  77. package/dist/collateral/compute.d.ts +316 -0
  78. package/dist/collateral/compute.d.ts.map +1 -0
  79. package/dist/collateral/compute.js +739 -0
  80. package/dist/collateral/compute.js.map +1 -0
  81. package/dist/collateral/index.d.ts +32 -0
  82. package/dist/collateral/index.d.ts.map +1 -0
  83. package/dist/collateral/index.js +35 -0
  84. package/dist/collateral/index.js.map +1 -0
  85. package/dist/collateral/verify.d.ts +97 -0
  86. package/dist/collateral/verify.d.ts.map +1 -0
  87. package/dist/collateral/verify.js +155 -0
  88. package/dist/collateral/verify.js.map +1 -0
  89. package/dist/contracts/amm-types.d.ts +311 -0
  90. package/dist/contracts/amm-types.d.ts.map +1 -0
  91. package/dist/contracts/amm-types.js +51 -0
  92. package/dist/contracts/amm-types.js.map +1 -0
  93. package/dist/contracts/amm.d.ts +417 -0
  94. package/dist/contracts/amm.d.ts.map +1 -0
  95. package/dist/contracts/amm.js +799 -0
  96. package/dist/contracts/amm.js.map +1 -0
  97. package/dist/contracts/base.d.ts +118 -0
  98. package/dist/contracts/base.d.ts.map +1 -0
  99. package/dist/contracts/base.js +143 -0
  100. package/dist/contracts/base.js.map +1 -0
  101. package/dist/contracts/factory.d.ts +120 -0
  102. package/dist/contracts/factory.d.ts.map +1 -0
  103. package/dist/contracts/factory.js +121 -0
  104. package/dist/contracts/factory.js.map +1 -0
  105. package/dist/contracts/index.d.ts +11 -0
  106. package/dist/contracts/index.d.ts.map +1 -0
  107. package/dist/contracts/index.js +11 -0
  108. package/dist/contracts/index.js.map +1 -0
  109. package/dist/contracts/math-library.d.ts +123 -0
  110. package/dist/contracts/math-library.d.ts.map +1 -0
  111. package/dist/contracts/math-library.js +233 -0
  112. package/dist/contracts/math-library.js.map +1 -0
  113. package/dist/contracts/oracle.d.ts +137 -0
  114. package/dist/contracts/oracle.d.ts.map +1 -0
  115. package/dist/contracts/oracle.js +220 -0
  116. package/dist/contracts/oracle.js.map +1 -0
  117. package/dist/index.d.ts +15 -0
  118. package/dist/index.d.ts.map +1 -0
  119. package/dist/index.js +22 -0
  120. package/dist/index.js.map +1 -0
  121. package/dist/providers/account.d.ts +46 -0
  122. package/dist/providers/account.d.ts.map +1 -0
  123. package/dist/providers/account.js +57 -0
  124. package/dist/providers/account.js.map +1 -0
  125. package/dist/providers/base.d.ts +75 -0
  126. package/dist/providers/base.d.ts.map +1 -0
  127. package/dist/providers/base.js +92 -0
  128. package/dist/providers/base.js.map +1 -0
  129. package/dist/providers/index.d.ts +8 -0
  130. package/dist/providers/index.d.ts.map +1 -0
  131. package/dist/providers/index.js +8 -0
  132. package/dist/providers/index.js.map +1 -0
  133. package/dist/sdk/client.d.ts +176 -0
  134. package/dist/sdk/client.d.ts.map +1 -0
  135. package/dist/sdk/client.js +273 -0
  136. package/dist/sdk/client.js.map +1 -0
  137. package/dist/sdk/index.d.ts +14 -0
  138. package/dist/sdk/index.d.ts.map +1 -0
  139. package/dist/sdk/index.js +15 -0
  140. package/dist/sdk/index.js.map +1 -0
  141. package/dist/sdk/internal/conversion.d.ts +104 -0
  142. package/dist/sdk/internal/conversion.d.ts.map +1 -0
  143. package/dist/sdk/internal/conversion.js +201 -0
  144. package/dist/sdk/internal/conversion.js.map +1 -0
  145. package/dist/sdk/internal/position-utils.d.ts +76 -0
  146. package/dist/sdk/internal/position-utils.d.ts.map +1 -0
  147. package/dist/sdk/internal/position-utils.js +131 -0
  148. package/dist/sdk/internal/position-utils.js.map +1 -0
  149. package/dist/sdk/internal/trade-builder.d.ts +112 -0
  150. package/dist/sdk/internal/trade-builder.d.ts.map +1 -0
  151. package/dist/sdk/internal/trade-builder.js +112 -0
  152. package/dist/sdk/internal/trade-builder.js.map +1 -0
  153. package/dist/sdk/market-ops.d.ts +194 -0
  154. package/dist/sdk/market-ops.d.ts.map +1 -0
  155. package/dist/sdk/market-ops.js +250 -0
  156. package/dist/sdk/market-ops.js.map +1 -0
  157. package/dist/sdk/position-ops.d.ts +121 -0
  158. package/dist/sdk/position-ops.d.ts.map +1 -0
  159. package/dist/sdk/position-ops.js +163 -0
  160. package/dist/sdk/position-ops.js.map +1 -0
  161. package/dist/sdk/simple-market.d.ts +168 -0
  162. package/dist/sdk/simple-market.d.ts.map +1 -0
  163. package/dist/sdk/simple-market.js +468 -0
  164. package/dist/sdk/simple-market.js.map +1 -0
  165. package/dist/sdk/simple-position.d.ts +77 -0
  166. package/dist/sdk/simple-position.d.ts.map +1 -0
  167. package/dist/sdk/simple-position.js +125 -0
  168. package/dist/sdk/simple-position.js.map +1 -0
  169. package/dist/sdk/simple-types.d.ts +155 -0
  170. package/dist/sdk/simple-types.d.ts.map +1 -0
  171. package/dist/sdk/simple-types.js +9 -0
  172. package/dist/sdk/simple-types.js.map +1 -0
  173. package/dist/types/index.d.ts +10 -0
  174. package/dist/types/index.d.ts.map +1 -0
  175. package/dist/types/index.js +11 -0
  176. package/dist/types/index.js.map +1 -0
  177. package/dist/types/normal-distribution.d.ts +125 -0
  178. package/dist/types/normal-distribution.d.ts.map +1 -0
  179. package/dist/types/normal-distribution.js +310 -0
  180. package/dist/types/normal-distribution.js.map +1 -0
  181. package/dist/types/normal-sqrt-hints-raw.d.ts +18 -0
  182. package/dist/types/normal-sqrt-hints-raw.d.ts.map +1 -0
  183. package/dist/types/normal-sqrt-hints-raw.js +9 -0
  184. package/dist/types/normal-sqrt-hints-raw.js.map +1 -0
  185. package/dist/types/sq128-raw.d.ts +69 -0
  186. package/dist/types/sq128-raw.d.ts.map +1 -0
  187. package/dist/types/sq128-raw.js +84 -0
  188. package/dist/types/sq128-raw.js.map +1 -0
  189. package/dist/types/sq128.d.ts +191 -0
  190. package/dist/types/sq128.d.ts.map +1 -0
  191. package/dist/types/sq128.js +611 -0
  192. package/dist/types/sq128.js.map +1 -0
  193. package/dist/utils/abi-encode.d.ts +187 -0
  194. package/dist/utils/abi-encode.d.ts.map +1 -0
  195. package/dist/utils/abi-encode.js +278 -0
  196. package/dist/utils/abi-encode.js.map +1 -0
  197. package/dist/utils/cumulative.d.ts +77 -0
  198. package/dist/utils/cumulative.d.ts.map +1 -0
  199. package/dist/utils/cumulative.js +102 -0
  200. package/dist/utils/cumulative.js.map +1 -0
  201. package/dist/utils/decimal-scale.d.ts +63 -0
  202. package/dist/utils/decimal-scale.d.ts.map +1 -0
  203. package/dist/utils/decimal-scale.js +108 -0
  204. package/dist/utils/decimal-scale.js.map +1 -0
  205. package/dist/utils/hints.d.ts +78 -0
  206. package/dist/utils/hints.d.ts.map +1 -0
  207. package/dist/utils/hints.js +118 -0
  208. package/dist/utils/hints.js.map +1 -0
  209. package/dist/utils/index.d.ts +12 -0
  210. package/dist/utils/index.d.ts.map +1 -0
  211. package/dist/utils/index.js +12 -0
  212. package/dist/utils/index.js.map +1 -0
  213. package/dist/utils/math.d.ts +44 -0
  214. package/dist/utils/math.d.ts.map +1 -0
  215. package/dist/utils/math.js +85 -0
  216. package/dist/utils/math.js.map +1 -0
  217. package/dist/utils/normalize.d.ts +47 -0
  218. package/dist/utils/normalize.d.ts.map +1 -0
  219. package/dist/utils/normalize.js +69 -0
  220. package/dist/utils/normalize.js.map +1 -0
  221. package/package.json +59 -0
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Response normalization utilities for The Situation SDK.
3
+ *
4
+ * Handles conversion of snake_case keys from Starknet contract responses
5
+ * to camelCase for TypeScript consumption.
6
+ *
7
+ * @module utils/normalize
8
+ */
9
+ /**
10
+ * Converts a snake_case string to camelCase.
11
+ *
12
+ * @param str - The snake_case string to convert
13
+ * @returns The camelCase string
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * snakeToCamel('is_initialized'); // 'isInitialized'
18
+ * snakeToCamel('total_collateral_locked'); // 'totalCollateralLocked'
19
+ * ```
20
+ */
21
+ export function snakeToCamel(str) {
22
+ return str.replace(/_([a-z])/g, (_, char) => char.toUpperCase());
23
+ }
24
+ /**
25
+ * Recursively normalizes a contract response by converting all snake_case
26
+ * keys to camelCase.
27
+ *
28
+ * This function handles:
29
+ * - Objects with nested properties
30
+ * - Arrays of objects
31
+ * - Primitive values (passed through unchanged)
32
+ * - null/undefined (passed through unchanged)
33
+ * - BigInt values (passed through unchanged)
34
+ *
35
+ * @param raw - The raw response from a Starknet contract call
36
+ * @returns The normalized response with camelCase keys
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * const raw = {
41
+ * is_initialized: true,
42
+ * settlement_value: { limb0: 0n, limb1: 0n }
43
+ * };
44
+ * const normalized = normalizeResponse(raw);
45
+ * // { isInitialized: true, settlementValue: { limb0: 0n, limb1: 0n } }
46
+ * ```
47
+ */
48
+ export function normalizeResponse(raw) {
49
+ // Pass through null/undefined
50
+ if (raw === null || raw === undefined) {
51
+ return raw;
52
+ }
53
+ // Pass through primitives (string, number, boolean, bigint, symbol)
54
+ if (typeof raw !== 'object') {
55
+ return raw;
56
+ }
57
+ // Handle arrays
58
+ if (Array.isArray(raw)) {
59
+ return raw.map((item) => normalizeResponse(item));
60
+ }
61
+ // Handle objects
62
+ const result = {};
63
+ for (const [key, value] of Object.entries(raw)) {
64
+ const camelKey = snakeToCamel(key);
65
+ result[camelKey] = normalizeResponse(value);
66
+ }
67
+ return result;
68
+ }
69
+ //# sourceMappingURL=normalize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/utils/normalize.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,OAAO,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,iBAAiB,CAAI,GAAY;IAC/C,8BAA8B;IAC9B,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,GAAQ,CAAC;IAClB,CAAC;IAED,oEAAoE;IACpE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,GAAQ,CAAC;IAClB,CAAC;IAED,gBAAgB;IAChB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAM,CAAC;IACzD,CAAC;IAED,iBAAiB;IACjB,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,CAAC,QAAQ,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,MAAW,CAAC;AACrB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "@the-situation/sdk",
3
+ "version": "0.1.0-alpha.0",
4
+ "description": "TypeScript SDK for The Situation prediction market contracts on Starknet",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/index.js",
12
+ "types": "./dist/index.d.ts"
13
+ }
14
+ },
15
+ "files": [
16
+ "dist"
17
+ ],
18
+ "scripts": {
19
+ "build": "tsc",
20
+ "typecheck": "tsc --noEmit",
21
+ "test": "bun test src/types src/contracts src/providers src/utils src/abi src/sdk",
22
+ "test:coverage": "bun test --coverage src/types src/contracts src/providers src/utils src/abi src/sdk",
23
+ "test:integration": "bun test src/__integration__/scenarios --timeout 120000",
24
+ "test:integration:e2e": "bun test src/__integration__/e2e --timeout 600000",
25
+ "test:all": "bun test --timeout 120000",
26
+ "lint": "biome lint .",
27
+ "lint:fix": "biome lint --write .",
28
+ "format": "biome format --write .",
29
+ "check": "biome check .",
30
+ "check:fix": "biome check --write .",
31
+ "clean": "rm -rf dist",
32
+ "pull-artifacts": "bun run scripts/pull-artifacts.ts",
33
+ "prepublishOnly": "bun run clean && bun run build"
34
+ },
35
+ "keywords": [
36
+ "starknet",
37
+ "prediction-market",
38
+ "defi",
39
+ "cairo",
40
+ "the-situation"
41
+ ],
42
+ "author": "",
43
+ "license": "MIT",
44
+ "repository": {
45
+ "type": "git",
46
+ "url": "https://github.com/the-situation/the-situation-sdk.git"
47
+ },
48
+ "engines": {
49
+ "node": ">=18.0.0"
50
+ },
51
+ "dependencies": {
52
+ "starknet": "^9.2.1"
53
+ },
54
+ "devDependencies": {
55
+ "@biomejs/biome": "2.3.13",
56
+ "@types/bun": "^1.1.0",
57
+ "typescript": "^5.4.0"
58
+ }
59
+ }