@lightconexyz/lightcone-sdk 0.6.1 → 0.8.1-rc.2

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 (222) hide show
  1. package/README.md +26 -2
  2. package/dist/auth/client.d.ts +3 -3
  3. package/dist/auth/client.d.ts.map +1 -1
  4. package/dist/auth/client.js +19 -36
  5. package/dist/auth/client.js.map +1 -1
  6. package/dist/auth/index.d.ts +102 -46
  7. package/dist/auth/index.d.ts.map +1 -1
  8. package/dist/auth/index.js +91 -7
  9. package/dist/auth/index.js.map +1 -1
  10. package/dist/client.d.ts +17 -9
  11. package/dist/client.d.ts.map +1 -1
  12. package/dist/client.js +36 -17
  13. package/dist/client.js.map +1 -1
  14. package/dist/context.d.ts +7 -1
  15. package/dist/context.d.ts.map +1 -1
  16. package/dist/context.js +60 -6
  17. package/dist/context.js.map +1 -1
  18. package/dist/domain/index.d.ts +0 -1
  19. package/dist/domain/index.d.ts.map +1 -1
  20. package/dist/domain/index.js +1 -2
  21. package/dist/domain/index.js.map +1 -1
  22. package/dist/domain/market/client.js +1 -1
  23. package/dist/domain/market/client.js.map +1 -1
  24. package/dist/domain/market/convert.js +1 -1
  25. package/dist/domain/market/convert.js.map +1 -1
  26. package/dist/domain/market/index.d.ts +8 -1
  27. package/dist/domain/market/index.d.ts.map +1 -1
  28. package/dist/domain/market/index.js +12 -0
  29. package/dist/domain/market/index.js.map +1 -1
  30. package/dist/domain/market/outcome.d.ts +1 -0
  31. package/dist/domain/market/outcome.d.ts.map +1 -1
  32. package/dist/domain/market/outcome.js +1 -0
  33. package/dist/domain/market/outcome.js.map +1 -1
  34. package/dist/domain/market/tokens.d.ts +4 -0
  35. package/dist/domain/market/tokens.d.ts.map +1 -1
  36. package/dist/domain/market/tokens.js +14 -1
  37. package/dist/domain/market/tokens.js.map +1 -1
  38. package/dist/domain/market/wire.d.ts +24 -2
  39. package/dist/domain/market/wire.d.ts.map +1 -1
  40. package/dist/domain/market/wire.js +5 -0
  41. package/dist/domain/market/wire.js.map +1 -1
  42. package/dist/domain/metrics/client.d.ts +11 -5
  43. package/dist/domain/metrics/client.d.ts.map +1 -1
  44. package/dist/domain/metrics/client.js +52 -5
  45. package/dist/domain/metrics/client.js.map +1 -1
  46. package/dist/domain/metrics/wire.d.ts +112 -5
  47. package/dist/domain/metrics/wire.d.ts.map +1 -1
  48. package/dist/domain/metrics/wire.js.map +1 -1
  49. package/dist/domain/notification/client.d.ts +2 -2
  50. package/dist/domain/notification/client.d.ts.map +1 -1
  51. package/dist/domain/notification/client.js +3 -3
  52. package/dist/domain/notification/client.js.map +1 -1
  53. package/dist/domain/notification/index.d.ts +3 -1
  54. package/dist/domain/notification/index.d.ts.map +1 -1
  55. package/dist/domain/notification/index.js.map +1 -1
  56. package/dist/domain/order/client.d.ts +14 -10
  57. package/dist/domain/order/client.d.ts.map +1 -1
  58. package/dist/domain/order/client.js +20 -13
  59. package/dist/domain/order/client.js.map +1 -1
  60. package/dist/domain/order/convert.d.ts +1 -1
  61. package/dist/domain/order/convert.d.ts.map +1 -1
  62. package/dist/domain/order/convert.js +2 -2
  63. package/dist/domain/order/convert.js.map +1 -1
  64. package/dist/domain/order/index.d.ts +2 -1
  65. package/dist/domain/order/index.d.ts.map +1 -1
  66. package/dist/domain/order/index.js +11 -3
  67. package/dist/domain/order/index.js.map +1 -1
  68. package/dist/domain/orderbook/aggregation.d.ts +50 -0
  69. package/dist/domain/orderbook/aggregation.d.ts.map +1 -0
  70. package/dist/domain/orderbook/aggregation.js +85 -0
  71. package/dist/domain/orderbook/aggregation.js.map +1 -0
  72. package/dist/domain/orderbook/client.d.ts +17 -3
  73. package/dist/domain/orderbook/client.d.ts.map +1 -1
  74. package/dist/domain/orderbook/client.js +41 -3
  75. package/dist/domain/orderbook/client.js.map +1 -1
  76. package/dist/domain/orderbook/index.d.ts +1 -0
  77. package/dist/domain/orderbook/index.d.ts.map +1 -1
  78. package/dist/domain/orderbook/index.js +1 -0
  79. package/dist/domain/orderbook/index.js.map +1 -1
  80. package/dist/domain/orderbook/state.d.ts +29 -31
  81. package/dist/domain/orderbook/state.d.ts.map +1 -1
  82. package/dist/domain/orderbook/state.js +20 -67
  83. package/dist/domain/orderbook/state.js.map +1 -1
  84. package/dist/domain/orderbook/wire.d.ts +32 -0
  85. package/dist/domain/orderbook/wire.d.ts.map +1 -1
  86. package/dist/domain/orderbook/wire.js.map +1 -1
  87. package/dist/domain/position/builders.d.ts +11 -8
  88. package/dist/domain/position/builders.d.ts.map +1 -1
  89. package/dist/domain/position/builders.js +31 -25
  90. package/dist/domain/position/builders.js.map +1 -1
  91. package/dist/domain/position/client.d.ts +21 -15
  92. package/dist/domain/position/client.d.ts.map +1 -1
  93. package/dist/domain/position/client.js +43 -22
  94. package/dist/domain/position/client.js.map +1 -1
  95. package/dist/domain/referral/client.d.ts +2 -2
  96. package/dist/domain/referral/client.d.ts.map +1 -1
  97. package/dist/domain/referral/client.js +3 -3
  98. package/dist/domain/referral/client.js.map +1 -1
  99. package/dist/domain/trade/client.d.ts +1 -0
  100. package/dist/domain/trade/client.d.ts.map +1 -1
  101. package/dist/domain/trade/client.js +14 -0
  102. package/dist/domain/trade/client.js.map +1 -1
  103. package/dist/domain/trade/wire.d.ts +6 -0
  104. package/dist/domain/trade/wire.d.ts.map +1 -1
  105. package/dist/domain/trade/wire.js.map +1 -1
  106. package/dist/env.d.ts +24 -4
  107. package/dist/env.d.ts.map +1 -1
  108. package/dist/env.js +47 -13
  109. package/dist/env.js.map +1 -1
  110. package/dist/http/client.d.ts +8 -11
  111. package/dist/http/client.d.ts.map +1 -1
  112. package/dist/http/client.js +71 -34
  113. package/dist/http/client.js.map +1 -1
  114. package/dist/index.d.ts +3 -2
  115. package/dist/index.d.ts.map +1 -1
  116. package/dist/index.js +8 -1
  117. package/dist/index.js.map +1 -1
  118. package/dist/prelude.d.ts +15 -13
  119. package/dist/prelude.d.ts.map +1 -1
  120. package/dist/prelude.js +26 -9
  121. package/dist/prelude.js.map +1 -1
  122. package/dist/privy/index.d.ts +1 -1
  123. package/dist/privy/index.js.map +1 -1
  124. package/dist/program/accounts.d.ts +12 -7
  125. package/dist/program/accounts.d.ts.map +1 -1
  126. package/dist/program/accounts.js +38 -16
  127. package/dist/program/accounts.js.map +1 -1
  128. package/dist/program/builder.d.ts +0 -4
  129. package/dist/program/builder.d.ts.map +1 -1
  130. package/dist/program/builder.js +0 -8
  131. package/dist/program/builder.js.map +1 -1
  132. package/dist/program/constants.d.ts +20 -7
  133. package/dist/program/constants.d.ts.map +1 -1
  134. package/dist/program/constants.js +21 -8
  135. package/dist/program/constants.js.map +1 -1
  136. package/dist/program/error.d.ts +25 -1
  137. package/dist/program/error.d.ts.map +1 -1
  138. package/dist/program/error.js +72 -0
  139. package/dist/program/error.js.map +1 -1
  140. package/dist/program/index.d.ts +7 -7
  141. package/dist/program/index.d.ts.map +1 -1
  142. package/dist/program/index.js +36 -9
  143. package/dist/program/index.js.map +1 -1
  144. package/dist/program/instructions.d.ts +184 -71
  145. package/dist/program/instructions.d.ts.map +1 -1
  146. package/dist/program/instructions.js +573 -140
  147. package/dist/program/instructions.js.map +1 -1
  148. package/dist/program/orders.js +2 -2
  149. package/dist/program/orders.js.map +1 -1
  150. package/dist/program/pda.d.ts +21 -3
  151. package/dist/program/pda.d.ts.map +1 -1
  152. package/dist/program/pda.js +43 -6
  153. package/dist/program/pda.js.map +1 -1
  154. package/dist/program/types.d.ts +139 -21
  155. package/dist/program/types.d.ts.map +1 -1
  156. package/dist/program/types.js.map +1 -1
  157. package/dist/program/utils.d.ts +31 -2
  158. package/dist/program/utils.d.ts.map +1 -1
  159. package/dist/program/utils.js +132 -5
  160. package/dist/program/utils.js.map +1 -1
  161. package/dist/rpc.d.ts +6 -1
  162. package/dist/rpc.d.ts.map +1 -1
  163. package/dist/rpc.js +9 -7
  164. package/dist/rpc.js.map +1 -1
  165. package/dist/rpcFailover.d.ts +22 -0
  166. package/dist/rpcFailover.d.ts.map +1 -0
  167. package/dist/rpcFailover.js +71 -0
  168. package/dist/rpcFailover.js.map +1 -0
  169. package/dist/shared/fmt/constants.d.ts +5 -0
  170. package/dist/shared/fmt/constants.d.ts.map +1 -0
  171. package/dist/shared/fmt/constants.js +25 -0
  172. package/dist/shared/fmt/constants.js.map +1 -0
  173. package/dist/shared/fmt/decimal.d.ts +7 -0
  174. package/dist/shared/fmt/decimal.d.ts.map +1 -1
  175. package/dist/shared/fmt/decimal.js +28 -20
  176. package/dist/shared/fmt/decimal.js.map +1 -1
  177. package/dist/shared/fmt/index.d.ts +1 -0
  178. package/dist/shared/fmt/index.d.ts.map +1 -1
  179. package/dist/shared/fmt/index.js +2 -1
  180. package/dist/shared/fmt/index.js.map +1 -1
  181. package/dist/shared/fmt/num.d.ts +7 -0
  182. package/dist/shared/fmt/num.d.ts.map +1 -1
  183. package/dist/shared/fmt/num.js +27 -15
  184. package/dist/shared/fmt/num.js.map +1 -1
  185. package/dist/shared/fmt/str.d.ts +8 -0
  186. package/dist/shared/fmt/str.d.ts.map +1 -0
  187. package/dist/shared/fmt/str.js +17 -0
  188. package/dist/shared/fmt/str.js.map +1 -0
  189. package/dist/shared/index.d.ts +1 -1
  190. package/dist/shared/index.d.ts.map +1 -1
  191. package/dist/shared/index.js +11 -1
  192. package/dist/shared/index.js.map +1 -1
  193. package/dist/shared/rejection.d.ts.map +1 -1
  194. package/dist/shared/rejection.js +11 -0
  195. package/dist/shared/rejection.js.map +1 -1
  196. package/dist/shared/types.d.ts +41 -0
  197. package/dist/shared/types.d.ts.map +1 -1
  198. package/dist/shared/types.js +85 -1
  199. package/dist/shared/types.js.map +1 -1
  200. package/dist/ws/client.node.js +1 -1
  201. package/dist/ws/client.node.js.map +1 -1
  202. package/dist/ws/index.d.ts +25 -2
  203. package/dist/ws/index.d.ts.map +1 -1
  204. package/dist/ws/index.js +23 -2
  205. package/dist/ws/index.js.map +1 -1
  206. package/dist/ws/subscriptions.d.ts +12 -0
  207. package/dist/ws/subscriptions.d.ts.map +1 -1
  208. package/dist/ws/subscriptions.js +14 -4
  209. package/dist/ws/subscriptions.js.map +1 -1
  210. package/package.json +1 -1
  211. package/dist/domain/admin/client.d.ts +0 -53
  212. package/dist/domain/admin/client.d.ts.map +0 -1
  213. package/dist/domain/admin/client.js +0 -199
  214. package/dist/domain/admin/client.js.map +0 -1
  215. package/dist/domain/admin/index.d.ts +0 -16
  216. package/dist/domain/admin/index.d.ts.map +0 -1
  217. package/dist/domain/admin/index.js +0 -19
  218. package/dist/domain/admin/index.js.map +0 -1
  219. package/dist/domain/admin/wire.d.ts +0 -425
  220. package/dist/domain/admin/wire.d.ts.map +0 -1
  221. package/dist/domain/admin/wire.js +0 -3
  222. package/dist/domain/admin/wire.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/market/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACd,MAAM,UAAU,CAAC;AAElB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,0BAA0B,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE3G,oBAAY,MAAM;IAChB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,SAAS,cAAc;CACxB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAahE;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B;;;OAGG;IACH,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAC9C;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;gBAEf,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;CAMpD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/market/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACd,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,QAAQ,CAAC;AAEvD,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,0BAA0B,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE3G,oBAAY,MAAM;IAChB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,SAAS,cAAc;CACxB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAahE;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B;;;OAGG;IACH,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,yBAAyB;IACxC,UAAU,CAAC,EAAE,wBAAwB,GAAG,IAAI,CAAC;CAC9C;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAE3E;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,yBAAyB,GAChC,MAAM,GAAG,SAAS,CAEpB;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAET;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;gBAEf,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;CAMpD"}
@@ -16,6 +16,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.MarketValidationError = exports.Status = exports.resolveIconUrls = exports.tryMarketFromWire = exports.marketFromWire = exports.globalDepositAssetFromWire = void 0;
18
18
  exports.statusFromWire = statusFromWire;
19
+ exports.isMarketResolved = isMarketResolved;
20
+ exports.singleWinningOutcome = singleWinningOutcome;
21
+ exports.hasSingleWinningOutcome = hasSingleWinningOutcome;
19
22
  __exportStar(require("./client"), exports);
20
23
  __exportStar(require("./wire"), exports);
21
24
  __exportStar(require("./outcome"), exports);
@@ -46,6 +49,15 @@ function statusFromWire(value) {
46
49
  return undefined;
47
50
  }
48
51
  }
52
+ function isMarketResolved(market) {
53
+ return market.resolution !== undefined && market.resolution !== null;
54
+ }
55
+ function singleWinningOutcome(market) {
56
+ return market.resolution?.single_winning_outcome ?? undefined;
57
+ }
58
+ function hasSingleWinningOutcome(market) {
59
+ return singleWinningOutcome(market) !== undefined;
60
+ }
49
61
  class MarketValidationError extends Error {
50
62
  marketPubkey;
51
63
  details;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/market/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAuBA,wCAaC;AA1BD,2CAAyB;AACzB,yCAAuB;AACvB,4CAA0B;AAC1B,2CAAyB;AACzB,qCAA2G;AAAlG,qHAAA,0BAA0B,OAAA;AAAE,yGAAA,cAAc,OAAA;AAAE,4GAAA,iBAAiB,OAAA;AAAE,0GAAA,eAAe,OAAA;AAEvF,IAAY,MAKX;AALD,WAAY,MAAM;IAChB,6BAAmB,CAAA;IACnB,2BAAiB,CAAA;IACjB,+BAAqB,CAAA;IACrB,iCAAuB,CAAA;AACzB,CAAC,EALW,MAAM,sBAAN,MAAM,QAKjB;AAED,SAAgB,cAAc,CAAC,KAAa;IAC1C,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,MAAM,CAAC,OAAO;YACjB,OAAO,MAAM,CAAC,OAAO,CAAC;QACxB,KAAK,MAAM,CAAC,MAAM;YAChB,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,KAAK,MAAM,CAAC,QAAQ;YAClB,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,KAAK,MAAM,CAAC,SAAS;YACnB,OAAO,MAAM,CAAC,SAAS,CAAC;QAC1B;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAqCD,MAAa,qBAAsB,SAAQ,KAAK;IACrC,YAAY,CAAS;IACrB,OAAO,CAAW;IAE3B,YAAY,YAAoB,EAAE,OAAiB;QACjD,KAAK,CAAC,6BAA6B,YAAY,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAVD,sDAUC","sourcesContent":["import type { OrderBookId, PubkeyStr } from \"../../shared\";\nimport type { OrderBookPair } from \"../orderbook\";\nimport type { Outcome } from \"./outcome\";\nimport type {\n ConditionalToken,\n DepositAsset,\n DepositAssetPair,\n TokenMetadata,\n} from \"./tokens\";\n\nexport * from \"./client\";\nexport * from \"./wire\";\nexport * from \"./outcome\";\nexport * from \"./tokens\";\nexport { globalDepositAssetFromWire, marketFromWire, tryMarketFromWire, resolveIconUrls } from \"./convert\";\n\nexport enum Status {\n Pending = \"Pending\",\n Active = \"Active\",\n Resolved = \"Resolved\",\n Cancelled = \"Cancelled\",\n}\n\nexport function statusFromWire(value: string): Status | undefined {\n switch (value) {\n case Status.Pending:\n return Status.Pending;\n case Status.Active:\n return Status.Active;\n case Status.Resolved:\n return Status.Resolved;\n case Status.Cancelled:\n return Status.Cancelled;\n default:\n return undefined;\n }\n}\n\nexport interface Market {\n id: number;\n pubkey: PubkeyStr;\n name: string;\n bannerImageUrlLow: string;\n bannerImageUrlMedium: string;\n bannerImageUrlHigh: string;\n iconUrlLow: string;\n iconUrlMedium: string;\n iconUrlHigh: string;\n featuredRank?: number;\n volume: string;\n slug: string;\n status: Status;\n createdAt: Date;\n activatedAt?: Date;\n settledAt?: Date;\n winningOutcome?: number;\n description: string;\n definition: string;\n category?: string;\n tags: string[];\n depositAssets: DepositAsset[];\n /**\n * Unique base/quote deposit-asset pairs derived from `orderbookPairs`\n * during wire→domain conversion. Deduplicated by `(base, quote)` pubkey.\n */\n depositAssetPairs: DepositAssetPair[];\n conditionalTokens: ConditionalToken[];\n outcomes: Outcome[];\n orderbookPairs: OrderBookPair[];\n orderbookIds: OrderBookId[];\n tokenMetadata: Record<string, TokenMetadata>;\n}\n\nexport class MarketValidationError extends Error {\n readonly marketPubkey: string;\n readonly details: string[];\n\n constructor(marketPubkey: string, details: string[]) {\n super(`Market validation errors (${marketPubkey}): ${details.join(\"; \")}`);\n this.name = \"MarketValidationError\";\n this.marketPubkey = marketPubkey;\n this.details = details;\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/market/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAwBA,wCAaC;AAyCD,4CAEC;AAED,oDAIC;AAED,0DAIC;AAjFD,2CAAyB;AACzB,yCAAuB;AACvB,4CAA0B;AAC1B,2CAAyB;AACzB,qCAA2G;AAAlG,qHAAA,0BAA0B,OAAA;AAAE,yGAAA,cAAc,OAAA;AAAE,4GAAA,iBAAiB,OAAA;AAAE,0GAAA,eAAe,OAAA;AAEvF,IAAY,MAKX;AALD,WAAY,MAAM;IAChB,6BAAmB,CAAA;IACnB,2BAAiB,CAAA;IACjB,+BAAqB,CAAA;IACrB,iCAAuB,CAAA;AACzB,CAAC,EALW,MAAM,sBAAN,MAAM,QAKjB;AAED,SAAgB,cAAc,CAAC,KAAa;IAC1C,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,MAAM,CAAC,OAAO;YACjB,OAAO,MAAM,CAAC,OAAO,CAAC;QACxB,KAAK,MAAM,CAAC,MAAM;YAChB,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,KAAK,MAAM,CAAC,QAAQ;YAClB,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,KAAK,MAAM,CAAC,SAAS;YACnB,OAAO,MAAM,CAAC,SAAS,CAAC;QAC1B;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAyCD,SAAgB,gBAAgB,CAAC,MAAiC;IAChE,OAAO,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC;AACvE,CAAC;AAED,SAAgB,oBAAoB,CAClC,MAAiC;IAEjC,OAAO,MAAM,CAAC,UAAU,EAAE,sBAAsB,IAAI,SAAS,CAAC;AAChE,CAAC;AAED,SAAgB,uBAAuB,CACrC,MAAiC;IAEjC,OAAO,oBAAoB,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC;AACpD,CAAC;AAED,MAAa,qBAAsB,SAAQ,KAAK;IACrC,YAAY,CAAS;IACrB,OAAO,CAAW;IAE3B,YAAY,YAAoB,EAAE,OAAiB;QACjD,KAAK,CAAC,6BAA6B,YAAY,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAVD,sDAUC","sourcesContent":["import type { OrderBookId, PubkeyStr } from \"../../shared\";\nimport type { OrderBookPair } from \"../orderbook\";\nimport type { Outcome } from \"./outcome\";\nimport type {\n ConditionalToken,\n DepositAsset,\n DepositAssetPair,\n TokenMetadata,\n} from \"./tokens\";\nimport type { MarketResolutionResponse } from \"./wire\";\n\nexport * from \"./client\";\nexport * from \"./wire\";\nexport * from \"./outcome\";\nexport * from \"./tokens\";\nexport { globalDepositAssetFromWire, marketFromWire, tryMarketFromWire, resolveIconUrls } from \"./convert\";\n\nexport enum Status {\n Pending = \"Pending\",\n Active = \"Active\",\n Resolved = \"Resolved\",\n Cancelled = \"Cancelled\",\n}\n\nexport function statusFromWire(value: string): Status | undefined {\n switch (value) {\n case Status.Pending:\n return Status.Pending;\n case Status.Active:\n return Status.Active;\n case Status.Resolved:\n return Status.Resolved;\n case Status.Cancelled:\n return Status.Cancelled;\n default:\n return undefined;\n }\n}\n\nexport interface Market {\n id: number;\n pubkey: PubkeyStr;\n name: string;\n bannerImageUrlLow: string;\n bannerImageUrlMedium: string;\n bannerImageUrlHigh: string;\n iconUrlLow: string;\n iconUrlMedium: string;\n iconUrlHigh: string;\n featuredRank?: number;\n volume: string;\n slug: string;\n status: Status;\n createdAt: Date;\n activatedAt?: Date;\n settledAt?: Date;\n resolution?: MarketResolutionResponse;\n description: string;\n definition: string;\n category?: string;\n tags: string[];\n depositAssets: DepositAsset[];\n /**\n * Unique base/quote deposit-asset pairs derived from `orderbookPairs`\n * during wire→domain conversion. Deduplicated by `(base, quote)` pubkey.\n */\n depositAssetPairs: DepositAssetPair[];\n conditionalTokens: ConditionalToken[];\n outcomes: Outcome[];\n orderbookPairs: OrderBookPair[];\n orderbookIds: OrderBookId[];\n tokenMetadata: Record<string, TokenMetadata>;\n}\n\nexport interface MarketResolutionContainer {\n resolution?: MarketResolutionResponse | null;\n}\n\nexport function isMarketResolved(market: MarketResolutionContainer): boolean {\n return market.resolution !== undefined && market.resolution !== null;\n}\n\nexport function singleWinningOutcome(\n market: MarketResolutionContainer\n): number | undefined {\n return market.resolution?.single_winning_outcome ?? undefined;\n}\n\nexport function hasSingleWinningOutcome(\n market: MarketResolutionContainer\n): boolean {\n return singleWinningOutcome(market) !== undefined;\n}\n\nexport class MarketValidationError extends Error {\n readonly marketPubkey: string;\n readonly details: string[];\n\n constructor(marketPubkey: string, details: string[]) {\n super(`Market validation errors (${marketPubkey}): ${details.join(\"; \")}`);\n this.name = \"MarketValidationError\";\n this.marketPubkey = marketPubkey;\n this.details = details;\n }\n}\n"]}
@@ -5,6 +5,7 @@ export interface Outcome {
5
5
  iconUrlMedium: string;
6
6
  iconUrlHigh: string;
7
7
  name: string;
8
+ nameLong?: string;
8
9
  }
9
10
  export declare class OutcomeValidationError extends Error {
10
11
  readonly details: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"outcome.d.ts","sourceRoot":"","sources":["../../../src/domain/market/outcome.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAE9C,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;gBAEf,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;CAK5C;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAahE"}
1
+ {"version":3,"file":"outcome.d.ts","sourceRoot":"","sources":["../../../src/domain/market/outcome.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAE9C,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;gBAEf,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;CAK5C;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAchE"}
@@ -23,6 +23,7 @@ function outcomeFromWire(source) {
23
23
  iconUrlMedium: iconUrls.medium,
24
24
  iconUrlHigh: iconUrls.high,
25
25
  name: source.name,
26
+ nameLong: source.name_long,
26
27
  };
27
28
  }
28
29
  //# sourceMappingURL=outcome.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"outcome.js","sourceRoot":"","sources":["../../../src/domain/market/outcome.ts"],"names":[],"mappings":";;;AAqBA,0CAaC;AAlCD,iCAAyC;AAWzC,MAAa,sBAAuB,SAAQ,KAAK;IACtC,OAAO,CAAW;IAE3B,YAAY,IAAY,EAAE,OAAiB;QACzC,KAAK,CAAC,8BAA8B,IAAI,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AARD,wDAQC;AAED,SAAgB,eAAe,CAAC,MAAuB;IACrD,MAAM,QAAQ,GAAG,IAAA,sBAAe,EAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IACpG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,sBAAsB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,UAAU,EAAE,QAAQ,CAAC,GAAG;QACxB,aAAa,EAAE,QAAQ,CAAC,MAAM;QAC9B,WAAW,EAAE,QAAQ,CAAC,IAAI;QAC1B,IAAI,EAAE,MAAM,CAAC,IAAI;KAClB,CAAC;AACJ,CAAC","sourcesContent":["import { resolveIconUrls } from \"./icon\";\nimport type { OutcomeResponse } from \"./wire\";\n\nexport interface Outcome {\n index: number;\n iconUrlLow: string;\n iconUrlMedium: string;\n iconUrlHigh: string;\n name: string;\n}\n\nexport class OutcomeValidationError extends Error {\n readonly details: string[];\n\n constructor(name: string, details: string[]) {\n super(`Outcome validation errors (${name}): ${details.join(\"; \")}`);\n this.name = \"OutcomeValidationError\";\n this.details = details;\n }\n}\n\nexport function outcomeFromWire(source: OutcomeResponse): Outcome {\n const iconUrls = resolveIconUrls(source.icon_url_low, source.icon_url_medium, source.icon_url_high);\n if (!iconUrls) {\n throw new OutcomeValidationError(source.name, [\"Missing icon URL\"]);\n }\n\n return {\n index: source.index,\n iconUrlLow: iconUrls.low,\n iconUrlMedium: iconUrls.medium,\n iconUrlHigh: iconUrls.high,\n name: source.name,\n };\n}\n"]}
1
+ {"version":3,"file":"outcome.js","sourceRoot":"","sources":["../../../src/domain/market/outcome.ts"],"names":[],"mappings":";;;AAsBA,0CAcC;AApCD,iCAAyC;AAYzC,MAAa,sBAAuB,SAAQ,KAAK;IACtC,OAAO,CAAW;IAE3B,YAAY,IAAY,EAAE,OAAiB;QACzC,KAAK,CAAC,8BAA8B,IAAI,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AARD,wDAQC;AAED,SAAgB,eAAe,CAAC,MAAuB;IACrD,MAAM,QAAQ,GAAG,IAAA,sBAAe,EAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IACpG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,sBAAsB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,UAAU,EAAE,QAAQ,CAAC,GAAG;QACxB,aAAa,EAAE,QAAQ,CAAC,MAAM;QAC9B,WAAW,EAAE,QAAQ,CAAC,IAAI;QAC1B,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ,EAAE,MAAM,CAAC,SAAS;KAC3B,CAAC;AACJ,CAAC","sourcesContent":["import { resolveIconUrls } from \"./icon\";\nimport type { OutcomeResponse } from \"./wire\";\n\nexport interface Outcome {\n index: number;\n iconUrlLow: string;\n iconUrlMedium: string;\n iconUrlHigh: string;\n name: string;\n nameLong?: string;\n}\n\nexport class OutcomeValidationError extends Error {\n readonly details: string[];\n\n constructor(name: string, details: string[]) {\n super(`Outcome validation errors (${name}): ${details.join(\"; \")}`);\n this.name = \"OutcomeValidationError\";\n this.details = details;\n }\n}\n\nexport function outcomeFromWire(source: OutcomeResponse): Outcome {\n const iconUrls = resolveIconUrls(source.icon_url_low, source.icon_url_medium, source.icon_url_high);\n if (!iconUrls) {\n throw new OutcomeValidationError(source.name, [\"Missing icon URL\"]);\n }\n\n return {\n index: source.index,\n iconUrlLow: iconUrls.low,\n iconUrlMedium: iconUrls.medium,\n iconUrlHigh: iconUrls.high,\n name: source.name,\n nameLong: source.name_long,\n };\n}\n"]}
@@ -1,3 +1,4 @@
1
+ import Decimal from "decimal.js";
1
2
  import type { PubkeyStr } from "../../shared";
2
3
  import type { DepositAssetResponse, GlobalDepositAssetResponse } from "./wire";
3
4
  export interface Token {
@@ -5,6 +6,7 @@ export interface Token {
5
6
  pubkey: PubkeyStr;
6
7
  name: string;
7
8
  symbol: string;
9
+ shortSymbol: string;
8
10
  description?: string;
9
11
  decimals: number;
10
12
  iconUrlLow: string;
@@ -43,6 +45,7 @@ export interface DepositAsset extends Token {
43
45
  marketPda: PubkeyStr;
44
46
  depositAsset: PubkeyStr;
45
47
  numOutcomes: number;
48
+ minOrderSize?: Decimal;
46
49
  }
47
50
  /**
48
51
  * A base/quote pairing of two `DepositAsset`s.
@@ -70,6 +73,7 @@ export interface GlobalDepositAsset extends Token {
70
73
  export interface TokenMetadata {
71
74
  pubkey: PubkeyStr;
72
75
  symbol: string;
76
+ shortSymbol: string;
73
77
  decimals: number;
74
78
  iconUrlLow: string;
75
79
  iconUrlMedium: string;
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../src/domain/market/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,KAAK,EAEV,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,QAAQ,CAAC;AAEhB,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,MAAM,CAazE;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,GACvB,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,GACrB;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;CAAE,CAAC;AAM7C;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,eAAe,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,CAYzF;AAED,MAAM,WAAW,gBAAiB,SAAQ,KAAK;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,SAAS,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAa,SAAQ,KAAK;IACzC,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,SAAS,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oEAAoE;IACpE,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,YAAY,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAmB,SAAQ,KAAK;IAC/C,YAAY,EAAE,SAAS,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,YAAY,CAAC;IACpB,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACzC;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;gBAEf,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;CAK5C;AAMD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,GAAG,GAAG,CAEvD;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,oBAAoB,GAAG,eAAe,CA+DrF;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,0BAA0B,GACjC,kBAAkB,CAgCpB"}
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../src/domain/market/tokens.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.TokenValidationError = void 0;
4
7
  exports.tokenDisplayPriority = tokenDisplayPriority;
@@ -7,6 +10,7 @@ exports.isUsdStablecoin = isUsdStablecoin;
7
10
  exports.currencySymbol = currencySymbol;
8
11
  exports.validatedTokensFromWire = validatedTokensFromWire;
9
12
  exports.globalDepositAssetFromWire = globalDepositAssetFromWire;
13
+ const decimal_js_1 = __importDefault(require("decimal.js"));
10
14
  const shared_1 = require("../../shared");
11
15
  const icon_1 = require("./icon");
12
16
  /**
@@ -77,6 +81,9 @@ function validatedTokensFromWire(source) {
77
81
  const name = source.display_name;
78
82
  const symbol = source.symbol;
79
83
  const decimals = source.decimals;
84
+ const minOrderSize = source.min_order_size === undefined || source.min_order_size === null
85
+ ? undefined
86
+ : new decimal_js_1.default(source.min_order_size);
80
87
  if (!iconUrls)
81
88
  errors.push("Missing icon URL");
82
89
  if (!name)
@@ -91,6 +98,7 @@ function validatedTokensFromWire(source) {
91
98
  metadata[source.deposit_asset] = {
92
99
  pubkey: depositPubkey,
93
100
  symbol: symbol ?? "",
101
+ shortSymbol: name ?? "",
94
102
  decimals: decimals ?? 0,
95
103
  iconUrlLow: iconUrls?.low ?? "",
96
104
  iconUrlMedium: iconUrls?.medium ?? "",
@@ -102,6 +110,7 @@ function validatedTokensFromWire(source) {
102
110
  metadata[conditional.pubkey] = {
103
111
  pubkey: conditional.pubkey,
104
112
  symbol: conditional.symbol,
113
+ shortSymbol: conditional.shortSymbol,
105
114
  decimals: conditional.decimals,
106
115
  iconUrlLow: conditional.iconUrlLow,
107
116
  iconUrlMedium: conditional.iconUrlMedium,
@@ -118,8 +127,10 @@ function validatedTokensFromWire(source) {
118
127
  pubkey: depositPubkey,
119
128
  name: name ?? "",
120
129
  symbol: symbol ?? "",
130
+ shortSymbol: name ?? "",
121
131
  description: source.description,
122
132
  decimals: decimals ?? 0,
133
+ minOrderSize,
123
134
  iconUrlLow: iconUrls?.low ?? "",
124
135
  iconUrlMedium: iconUrls?.medium ?? "",
125
136
  iconUrlHigh: iconUrls?.high ?? "",
@@ -152,6 +163,7 @@ function globalDepositAssetFromWire(source) {
152
163
  depositAsset,
153
164
  name: name ?? "",
154
165
  symbol: symbol ?? "",
166
+ shortSymbol: name ?? "",
155
167
  description: source.description,
156
168
  decimals: decimals ?? 0,
157
169
  iconUrlLow: iconUrls?.low ?? "",
@@ -184,7 +196,8 @@ function conditionalFromWire(source, depositAsset, depositSymbol, parentIconUrlL
184
196
  depositSymbol,
185
197
  pubkey: (0, shared_1.asPubkeyStr)(source.token_address),
186
198
  name: source.outcome ?? "",
187
- symbol: source.short_symbol ?? "",
199
+ symbol: source.symbol ?? source.short_symbol ?? "",
200
+ shortSymbol: source.short_symbol ?? source.symbol ?? "",
188
201
  description: source.description,
189
202
  decimals: source.decimals ?? 0,
190
203
  iconUrlLow: resolvedIconUrlLow,
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../src/domain/market/tokens.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PubkeyStr } from \"../../shared\";\nimport { asPubkeyStr } from \"../../shared\";\nimport { resolveIconUrls } from \"./icon\";\nimport type {\n ConditionalTokenResponse,\n DepositAssetResponse,\n GlobalDepositAssetResponse,\n} from \"./wire\";\n\nexport interface Token {\n id: number;\n pubkey: PubkeyStr;\n name: string;\n symbol: string;\n description?: string;\n decimals: number;\n iconUrlLow: string;\n iconUrlMedium: string;\n iconUrlHigh: string;\n}\n\n/**\n * Display priority for sorting: lower values come first. BTC/WBTC tie at 0,\n * ETH/WETH tie at 1, SOL at 2; everything else falls to the alphabetical tail.\n */\nexport function tokenDisplayPriority(token: Pick<Token, \"symbol\">): number {\n switch (token.symbol) {\n case \"BTC\":\n case \"WBTC\":\n return 0;\n case \"ETH\":\n case \"WETH\":\n return 1;\n case \"SOL\":\n return 2;\n default:\n return 255;\n }\n}\n\n/**\n * Shape accepted by {@link sortByDisplayPriority}. Either a token with a\n * top-level `symbol`, or a composite (e.g. `DepositAssetPair`, `OrderBookPair`)\n * that carries its display token on `base`.\n */\nexport type DisplaySortable =\n | Pick<Token, \"symbol\">\n | { readonly base: Pick<Token, \"symbol\"> };\n\nfunction displaySymbol(item: DisplaySortable): string {\n return \"symbol\" in item ? item.symbol : item.base.symbol;\n}\n\n/**\n * Returns a new array ordered for display: priority groups first\n * (BTC/WBTC → ETH/WETH → SOL), then all remaining items alphabetically by the\n * display token's symbol.\n *\n * Accepts both pure tokens and composite types whose display token lives on\n * `base` (e.g. `DepositAssetPair`, `OrderBookPair`).\n */\nexport function sortByDisplayPriority<T extends DisplaySortable>(items: readonly T[]): T[] {\n const copy = [...items];\n copy.sort((left, right) => {\n const leftSymbol = displaySymbol(left);\n const rightSymbol = displaySymbol(right);\n const priorityDelta =\n tokenDisplayPriority({ symbol: leftSymbol }) -\n tokenDisplayPriority({ symbol: rightSymbol });\n if (priorityDelta !== 0) return priorityDelta;\n return leftSymbol.localeCompare(rightSymbol);\n });\n return copy;\n}\n\nexport interface ConditionalToken extends Token {\n outcomeIndex: number;\n outcome: string;\n depositAsset: PubkeyStr;\n depositSymbol: string;\n}\n\nexport interface DepositAsset extends Token {\n marketPda: PubkeyStr;\n depositAsset: PubkeyStr;\n numOutcomes: number;\n}\n\n/**\n * A base/quote pairing of two `DepositAsset`s.\n *\n * Populated on `Market.depositAssetPairs` during wire→domain conversion —\n * one entry per unique base/quote combination across the market's orderbook\n * pairs.\n */\nexport interface DepositAssetPair {\n /** Stable identifier of the form `\"{basePubkey}-{quotePubkey}\"`. */\n id: string;\n base: DepositAsset;\n quote: DepositAsset;\n}\n\n/**\n * A globally whitelisted deposit asset (platform-scoped, not market-bound).\n *\n * Distinct from `DepositAsset`, which is bound to a specific market.\n */\nexport interface GlobalDepositAsset extends Token {\n depositAsset: PubkeyStr;\n whitelistIndex: number;\n active: boolean;\n}\n\nexport interface TokenMetadata {\n pubkey: PubkeyStr;\n symbol: string;\n decimals: number;\n iconUrlLow: string;\n iconUrlMedium: string;\n iconUrlHigh: string;\n name: string;\n}\n\nexport interface ValidatedTokens {\n token: DepositAsset;\n conditionals: ConditionalToken[];\n metadata: Record<string, TokenMetadata>;\n}\n\nexport class TokenValidationError extends Error {\n readonly details: string[];\n\n constructor(mint: string, details: string[]) {\n super(`Token validation errors (${mint}): ${details.join(\"; \")}`);\n this.name = \"TokenValidationError\";\n this.details = details;\n }\n}\n\nconst USDC_MAINNET = \"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v\";\nconst USDT_MAINNET = \"Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB\";\nconst USDC_DEVNET_LC = \"7SrxsoXjNR7Y8T3koJCt1yV4FrNUumoAUrJExDt6tQez\";\n\nexport function isUsdStablecoin(pubkey: string): boolean {\n return pubkey === USDC_MAINNET || pubkey === USDT_MAINNET || pubkey === USDC_DEVNET_LC;\n}\n\nexport function currencySymbol(pubkey: string): \"\" | \"$\" {\n return isUsdStablecoin(pubkey) ? \"$\" : \"\";\n}\n\nexport function validatedTokensFromWire(source: DepositAssetResponse): ValidatedTokens {\n const errors: string[] = [];\n const metadata: Record<string, TokenMetadata> = {};\n\n const depositPubkey = asPubkeyStr(source.deposit_asset);\n const iconUrls = resolveIconUrls(source.icon_url_low, source.icon_url_medium, source.icon_url_high);\n const name = source.display_name;\n const symbol = source.symbol;\n const decimals = source.decimals;\n\n if (!iconUrls) errors.push(\"Missing icon URL\");\n if (!name) errors.push(\"Missing display name\");\n if (!symbol) errors.push(\"Missing symbol\");\n if (decimals === undefined) errors.push(\"Missing decimals\");\n\n if (errors.length > 0) {\n throw new TokenValidationError(source.deposit_asset, errors);\n }\n\n metadata[source.deposit_asset] = {\n pubkey: depositPubkey,\n symbol: symbol ?? \"\",\n decimals: decimals ?? 0,\n iconUrlLow: iconUrls?.low ?? \"\",\n iconUrlMedium: iconUrls?.medium ?? \"\",\n iconUrlHigh: iconUrls?.high ?? \"\",\n name: name ?? \"\",\n };\n\n const conditionals = source.conditional_mints.map((conditional) =>\n conditionalFromWire(conditional, source.deposit_asset, symbol ?? \"\", iconUrls?.low ?? \"\", iconUrls?.medium ?? \"\", iconUrls?.high ?? \"\")\n );\n\n for (const conditional of conditionals) {\n metadata[conditional.pubkey] = {\n pubkey: conditional.pubkey,\n symbol: conditional.symbol,\n decimals: conditional.decimals,\n iconUrlLow: conditional.iconUrlLow,\n iconUrlMedium: conditional.iconUrlMedium,\n iconUrlHigh: conditional.iconUrlHigh,\n name: conditional.name,\n };\n }\n\n return {\n token: {\n id: source.id,\n marketPda: asPubkeyStr(source.market_pubkey),\n depositAsset: depositPubkey,\n numOutcomes: source.num_outcomes,\n pubkey: depositPubkey,\n name: name ?? \"\",\n symbol: symbol ?? \"\",\n description: source.description,\n decimals: decimals ?? 0,\n iconUrlLow: iconUrls?.low ?? \"\",\n iconUrlMedium: iconUrls?.medium ?? \"\",\n iconUrlHigh: iconUrls?.high ?? \"\",\n },\n conditionals,\n metadata,\n };\n}\n\nexport function globalDepositAssetFromWire(\n source: GlobalDepositAssetResponse\n): GlobalDepositAsset {\n const errors: string[] = [];\n\n const name = source.display_name;\n const symbol = source.symbol;\n const iconUrls = resolveIconUrls(source.icon_url_low, source.icon_url_medium, source.icon_url_high);\n const decimals = source.decimals;\n\n if (!name) errors.push(\"Missing display name\");\n if (!symbol) errors.push(\"Missing symbol\");\n if (!iconUrls) errors.push(\"Missing icon URL\");\n if (decimals === undefined || decimals === null) errors.push(\"Missing decimals\");\n\n if (errors.length > 0) {\n throw new TokenValidationError(source.mint, errors);\n }\n\n const depositAsset = asPubkeyStr(source.mint);\n return {\n id: source.id,\n pubkey: depositAsset,\n depositAsset,\n name: name ?? \"\",\n symbol: symbol ?? \"\",\n description: source.description,\n decimals: decimals ?? 0,\n iconUrlLow: iconUrls?.low ?? \"\",\n iconUrlMedium: iconUrls?.medium ?? \"\",\n iconUrlHigh: iconUrls?.high ?? \"\",\n whitelistIndex: source.whitelist_index,\n active: source.active,\n };\n}\n\nfunction conditionalFromWire(\n source: ConditionalTokenResponse,\n depositAsset: string,\n depositSymbol: string,\n parentIconUrlLow: string,\n parentIconUrlMedium: string,\n parentIconUrlHigh: string\n): ConditionalToken {\n const errors: string[] = [];\n if (source.decimals === undefined) errors.push(\"Missing decimals\");\n if (!source.short_symbol) errors.push(\"Missing short_symbol\");\n if (!source.outcome) errors.push(\"Missing outcome\");\n\n if (errors.length > 0) {\n throw new TokenValidationError(source.token_address, errors);\n }\n\n const ownIconUrls = resolveIconUrls(source.icon_url_low, source.icon_url_medium, source.icon_url_high);\n const resolvedIconUrlLow = ownIconUrls?.low ?? parentIconUrlLow;\n const resolvedIconUrlMedium = ownIconUrls?.medium ?? parentIconUrlMedium;\n const resolvedIconUrlHigh = ownIconUrls?.high ?? parentIconUrlHigh;\n\n return {\n id: source.id,\n outcomeIndex: source.outcome_index,\n outcome: source.outcome ?? \"\",\n depositAsset: asPubkeyStr(depositAsset),\n depositSymbol,\n pubkey: asPubkeyStr(source.token_address),\n name: source.outcome ?? \"\",\n symbol: source.short_symbol ?? \"\",\n description: source.description,\n decimals: source.decimals ?? 0,\n iconUrlLow: resolvedIconUrlLow,\n iconUrlMedium: resolvedIconUrlMedium,\n iconUrlHigh: resolvedIconUrlHigh,\n };\n}\n"]}
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../src/domain/market/tokens.ts"],"names":[],"mappings":"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","sourcesContent":["import Decimal from \"decimal.js\";\nimport type { PubkeyStr } from \"../../shared\";\nimport { asPubkeyStr } from \"../../shared\";\nimport { resolveIconUrls } from \"./icon\";\nimport type {\n ConditionalTokenResponse,\n DepositAssetResponse,\n GlobalDepositAssetResponse,\n} from \"./wire\";\n\nexport interface Token {\n id: number;\n pubkey: PubkeyStr;\n name: string;\n symbol: string;\n shortSymbol: string;\n description?: string;\n decimals: number;\n iconUrlLow: string;\n iconUrlMedium: string;\n iconUrlHigh: string;\n}\n\n/**\n * Display priority for sorting: lower values come first. BTC/WBTC tie at 0,\n * ETH/WETH tie at 1, SOL at 2; everything else falls to the alphabetical tail.\n */\nexport function tokenDisplayPriority(token: Pick<Token, \"symbol\">): number {\n switch (token.symbol) {\n case \"BTC\":\n case \"WBTC\":\n return 0;\n case \"ETH\":\n case \"WETH\":\n return 1;\n case \"SOL\":\n return 2;\n default:\n return 255;\n }\n}\n\n/**\n * Shape accepted by {@link sortByDisplayPriority}. Either a token with a\n * top-level `symbol`, or a composite (e.g. `DepositAssetPair`, `OrderBookPair`)\n * that carries its display token on `base`.\n */\nexport type DisplaySortable =\n | Pick<Token, \"symbol\">\n | { readonly base: Pick<Token, \"symbol\"> };\n\nfunction displaySymbol(item: DisplaySortable): string {\n return \"symbol\" in item ? item.symbol : item.base.symbol;\n}\n\n/**\n * Returns a new array ordered for display: priority groups first\n * (BTC/WBTC → ETH/WETH → SOL), then all remaining items alphabetically by the\n * display token's symbol.\n *\n * Accepts both pure tokens and composite types whose display token lives on\n * `base` (e.g. `DepositAssetPair`, `OrderBookPair`).\n */\nexport function sortByDisplayPriority<T extends DisplaySortable>(items: readonly T[]): T[] {\n const copy = [...items];\n copy.sort((left, right) => {\n const leftSymbol = displaySymbol(left);\n const rightSymbol = displaySymbol(right);\n const priorityDelta =\n tokenDisplayPriority({ symbol: leftSymbol }) -\n tokenDisplayPriority({ symbol: rightSymbol });\n if (priorityDelta !== 0) return priorityDelta;\n return leftSymbol.localeCompare(rightSymbol);\n });\n return copy;\n}\n\nexport interface ConditionalToken extends Token {\n outcomeIndex: number;\n outcome: string;\n depositAsset: PubkeyStr;\n depositSymbol: string;\n}\n\nexport interface DepositAsset extends Token {\n marketPda: PubkeyStr;\n depositAsset: PubkeyStr;\n numOutcomes: number;\n minOrderSize?: Decimal;\n}\n\n/**\n * A base/quote pairing of two `DepositAsset`s.\n *\n * Populated on `Market.depositAssetPairs` during wire→domain conversion —\n * one entry per unique base/quote combination across the market's orderbook\n * pairs.\n */\nexport interface DepositAssetPair {\n /** Stable identifier of the form `\"{basePubkey}-{quotePubkey}\"`. */\n id: string;\n base: DepositAsset;\n quote: DepositAsset;\n}\n\n/**\n * A globally whitelisted deposit asset (platform-scoped, not market-bound).\n *\n * Distinct from `DepositAsset`, which is bound to a specific market.\n */\nexport interface GlobalDepositAsset extends Token {\n depositAsset: PubkeyStr;\n whitelistIndex: number;\n active: boolean;\n}\n\nexport interface TokenMetadata {\n pubkey: PubkeyStr;\n symbol: string;\n shortSymbol: string;\n decimals: number;\n iconUrlLow: string;\n iconUrlMedium: string;\n iconUrlHigh: string;\n name: string;\n}\n\nexport interface ValidatedTokens {\n token: DepositAsset;\n conditionals: ConditionalToken[];\n metadata: Record<string, TokenMetadata>;\n}\n\nexport class TokenValidationError extends Error {\n readonly details: string[];\n\n constructor(mint: string, details: string[]) {\n super(`Token validation errors (${mint}): ${details.join(\"; \")}`);\n this.name = \"TokenValidationError\";\n this.details = details;\n }\n}\n\nconst USDC_MAINNET = \"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v\";\nconst USDT_MAINNET = \"Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB\";\nconst USDC_DEVNET_LC = \"7SrxsoXjNR7Y8T3koJCt1yV4FrNUumoAUrJExDt6tQez\";\n\nexport function isUsdStablecoin(pubkey: string): boolean {\n return pubkey === USDC_MAINNET || pubkey === USDT_MAINNET || pubkey === USDC_DEVNET_LC;\n}\n\nexport function currencySymbol(pubkey: string): \"\" | \"$\" {\n return isUsdStablecoin(pubkey) ? \"$\" : \"\";\n}\n\nexport function validatedTokensFromWire(source: DepositAssetResponse): ValidatedTokens {\n const errors: string[] = [];\n const metadata: Record<string, TokenMetadata> = {};\n\n const depositPubkey = asPubkeyStr(source.deposit_asset);\n const iconUrls = resolveIconUrls(source.icon_url_low, source.icon_url_medium, source.icon_url_high);\n const name = source.display_name;\n const symbol = source.symbol;\n const decimals = source.decimals;\n const minOrderSize =\n source.min_order_size === undefined || source.min_order_size === null\n ? undefined\n : new Decimal(source.min_order_size);\n\n if (!iconUrls) errors.push(\"Missing icon URL\");\n if (!name) errors.push(\"Missing display name\");\n if (!symbol) errors.push(\"Missing symbol\");\n if (decimals === undefined) errors.push(\"Missing decimals\");\n\n if (errors.length > 0) {\n throw new TokenValidationError(source.deposit_asset, errors);\n }\n\n metadata[source.deposit_asset] = {\n pubkey: depositPubkey,\n symbol: symbol ?? \"\",\n shortSymbol: name ?? \"\",\n decimals: decimals ?? 0,\n iconUrlLow: iconUrls?.low ?? \"\",\n iconUrlMedium: iconUrls?.medium ?? \"\",\n iconUrlHigh: iconUrls?.high ?? \"\",\n name: name ?? \"\",\n };\n\n const conditionals = source.conditional_mints.map((conditional) =>\n conditionalFromWire(conditional, source.deposit_asset, symbol ?? \"\", iconUrls?.low ?? \"\", iconUrls?.medium ?? \"\", iconUrls?.high ?? \"\")\n );\n\n for (const conditional of conditionals) {\n metadata[conditional.pubkey] = {\n pubkey: conditional.pubkey,\n symbol: conditional.symbol,\n shortSymbol: conditional.shortSymbol,\n decimals: conditional.decimals,\n iconUrlLow: conditional.iconUrlLow,\n iconUrlMedium: conditional.iconUrlMedium,\n iconUrlHigh: conditional.iconUrlHigh,\n name: conditional.name,\n };\n }\n\n return {\n token: {\n id: source.id,\n marketPda: asPubkeyStr(source.market_pubkey),\n depositAsset: depositPubkey,\n numOutcomes: source.num_outcomes,\n pubkey: depositPubkey,\n name: name ?? \"\",\n symbol: symbol ?? \"\",\n shortSymbol: name ?? \"\",\n description: source.description,\n decimals: decimals ?? 0,\n minOrderSize,\n iconUrlLow: iconUrls?.low ?? \"\",\n iconUrlMedium: iconUrls?.medium ?? \"\",\n iconUrlHigh: iconUrls?.high ?? \"\",\n },\n conditionals,\n metadata,\n };\n}\n\nexport function globalDepositAssetFromWire(\n source: GlobalDepositAssetResponse\n): GlobalDepositAsset {\n const errors: string[] = [];\n\n const name = source.display_name;\n const symbol = source.symbol;\n const iconUrls = resolveIconUrls(source.icon_url_low, source.icon_url_medium, source.icon_url_high);\n const decimals = source.decimals;\n\n if (!name) errors.push(\"Missing display name\");\n if (!symbol) errors.push(\"Missing symbol\");\n if (!iconUrls) errors.push(\"Missing icon URL\");\n if (decimals === undefined || decimals === null) errors.push(\"Missing decimals\");\n\n if (errors.length > 0) {\n throw new TokenValidationError(source.mint, errors);\n }\n\n const depositAsset = asPubkeyStr(source.mint);\n return {\n id: source.id,\n pubkey: depositAsset,\n depositAsset,\n name: name ?? \"\",\n symbol: symbol ?? \"\",\n shortSymbol: name ?? \"\",\n description: source.description,\n decimals: decimals ?? 0,\n iconUrlLow: iconUrls?.low ?? \"\",\n iconUrlMedium: iconUrls?.medium ?? \"\",\n iconUrlHigh: iconUrls?.high ?? \"\",\n whitelistIndex: source.whitelist_index,\n active: source.active,\n };\n}\n\nfunction conditionalFromWire(\n source: ConditionalTokenResponse,\n depositAsset: string,\n depositSymbol: string,\n parentIconUrlLow: string,\n parentIconUrlMedium: string,\n parentIconUrlHigh: string\n): ConditionalToken {\n const errors: string[] = [];\n if (source.decimals === undefined) errors.push(\"Missing decimals\");\n if (!source.short_symbol) errors.push(\"Missing short_symbol\");\n if (!source.outcome) errors.push(\"Missing outcome\");\n\n if (errors.length > 0) {\n throw new TokenValidationError(source.token_address, errors);\n }\n\n const ownIconUrls = resolveIconUrls(source.icon_url_low, source.icon_url_medium, source.icon_url_high);\n const resolvedIconUrlLow = ownIconUrls?.low ?? parentIconUrlLow;\n const resolvedIconUrlMedium = ownIconUrls?.medium ?? parentIconUrlMedium;\n const resolvedIconUrlHigh = ownIconUrls?.high ?? parentIconUrlHigh;\n\n return {\n id: source.id,\n outcomeIndex: source.outcome_index,\n outcome: source.outcome ?? \"\",\n depositAsset: asPubkeyStr(depositAsset),\n depositSymbol,\n pubkey: asPubkeyStr(source.token_address),\n name: source.outcome ?? \"\",\n symbol: source.symbol ?? source.short_symbol ?? \"\",\n shortSymbol: source.short_symbol ?? source.symbol ?? \"\",\n description: source.description,\n decimals: source.decimals ?? 0,\n iconUrlLow: resolvedIconUrlLow,\n iconUrlMedium: resolvedIconUrlMedium,\n iconUrlHigh: resolvedIconUrlHigh,\n };\n}\n"]}
@@ -3,6 +3,7 @@ import type { Status } from "./index";
3
3
  export interface OutcomeResponse {
4
4
  index: number;
5
5
  name: string;
6
+ name_long?: string;
6
7
  icon_url_low?: string;
7
8
  icon_url_medium?: string;
8
9
  icon_url_high?: string;
@@ -39,9 +40,25 @@ export interface DepositAssetResponse {
39
40
  icon_url_high?: string;
40
41
  metadata_uri?: string;
41
42
  decimals?: number;
43
+ min_order_size?: string | null;
42
44
  conditional_mints: ConditionalTokenResponse[];
43
45
  created_at: string;
44
46
  }
47
+ export declare const MarketResolutionKind: {
48
+ readonly SingleWinner: "single_winner";
49
+ readonly Scalar: "scalar";
50
+ };
51
+ export type MarketResolutionKind = (typeof MarketResolutionKind)[keyof typeof MarketResolutionKind];
52
+ export interface MarketResolutionPayout {
53
+ outcome_index: number;
54
+ payout_numerator: number;
55
+ }
56
+ export interface MarketResolutionResponse {
57
+ kind: MarketResolutionKind;
58
+ payout_denominator: number;
59
+ payouts: MarketResolutionPayout[];
60
+ single_winning_outcome: number | null;
61
+ }
45
62
  export interface MarketResponse {
46
63
  market_name?: string;
47
64
  slug?: string;
@@ -63,8 +80,7 @@ export interface MarketResponse {
63
80
  question_id: string;
64
81
  condition_id: string;
65
82
  market_status: string;
66
- winning_outcome?: number;
67
- has_winning_outcome: boolean;
83
+ resolution?: MarketResolutionResponse;
68
84
  created_at: string;
69
85
  activated_at?: string;
70
86
  settled_at?: string;
@@ -82,6 +98,7 @@ export interface SingleMarketResponse {
82
98
  export interface SearchOrderbook {
83
99
  orderbook_id: OrderBookId;
84
100
  outcome_name: string;
101
+ outcome_name_long?: string;
85
102
  outcome_index: number;
86
103
  deposit_base_asset: PubkeyStr;
87
104
  deposit_quote_asset: PubkeyStr;
@@ -95,6 +112,11 @@ export interface SearchOrderbook {
95
112
  quote_icon_url_high?: string;
96
113
  conditional_base_mint: PubkeyStr;
97
114
  conditional_quote_mint: PubkeyStr;
115
+ outcome_icon_url_low?: string;
116
+ outcome_icon_url_medium?: string;
117
+ outcome_icon_url_high?: string;
118
+ conditional_base_symbol?: string;
119
+ conditional_quote_symbol?: string;
98
120
  latest_mid_price?: string;
99
121
  }
100
122
  export interface MarketSearchResult {
@@ -1 +1 @@
1
- {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../../src/domain/market/wire.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../../src/domain/market/wire.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MarketResolutionKind = void 0;
4
+ exports.MarketResolutionKind = {
5
+ SingleWinner: "single_winner",
6
+ Scalar: "scalar",
7
+ };
3
8
  //# sourceMappingURL=wire.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../src/domain/market/wire.ts"],"names":[],"mappings":"","sourcesContent":["import type { OrderBookId, PubkeyStr } from \"../../shared\";\nimport type { Status } from \"./index\";\n\nexport interface OutcomeResponse {\n index: number;\n name: string;\n icon_url_low?: string;\n icon_url_medium?: string;\n icon_url_high?: string;\n}\n\nexport interface ConditionalTokenResponse {\n id: number;\n outcome_index: number;\n token_address: string;\n symbol?: string;\n uri?: string;\n outcome?: string;\n deposit_symbol?: string;\n short_symbol?: string;\n description?: string;\n icon_url_low?: string;\n icon_url_medium?: string;\n icon_url_high?: string;\n metadata_uri?: string;\n decimals?: number;\n created_at: string;\n}\n\nexport interface DepositAssetResponse {\n display_name?: string;\n token_symbol?: string;\n symbol?: string;\n deposit_asset: string;\n id: number;\n market_pubkey: string;\n vault: string;\n num_outcomes: number;\n description?: string;\n icon_url_low?: string;\n icon_url_medium?: string;\n icon_url_high?: string;\n metadata_uri?: string;\n decimals?: number;\n conditional_mints: ConditionalTokenResponse[];\n created_at: string;\n}\n\nexport interface MarketResponse {\n market_name?: string;\n slug?: string;\n description?: string;\n definition?: string;\n outcomes: OutcomeResponse[];\n banner_image_url_low?: string;\n banner_image_url_medium?: string;\n banner_image_url_high?: string;\n icon_url_low?: string;\n icon_url_medium?: string;\n icon_url_high?: string;\n category?: string;\n tags?: string[];\n featured_rank?: number;\n market_pubkey: string;\n market_id: number;\n oracle: string;\n question_id: string;\n condition_id: string;\n market_status: string;\n winning_outcome?: number;\n has_winning_outcome: boolean;\n created_at: string;\n activated_at?: string;\n settled_at?: string;\n deposit_assets: DepositAssetResponse[];\n orderbooks: import(\"../orderbook/wire\").OrderbookResponse[];\n}\n\nexport interface MarketsResponse {\n markets: MarketResponse[];\n next_cursor?: number;\n has_more?: boolean;\n}\n\nexport interface SingleMarketResponse {\n market: MarketResponse;\n}\n\nexport interface SearchOrderbook {\n orderbook_id: OrderBookId;\n outcome_name: string;\n outcome_index: number;\n deposit_base_asset: PubkeyStr;\n deposit_quote_asset: PubkeyStr;\n deposit_base_symbol: string;\n deposit_quote_symbol: string;\n base_icon_url_low?: string;\n base_icon_url_medium?: string;\n base_icon_url_high?: string;\n quote_icon_url_low?: string;\n quote_icon_url_medium?: string;\n quote_icon_url_high?: string;\n conditional_base_mint: PubkeyStr;\n conditional_quote_mint: PubkeyStr;\n latest_mid_price?: string;\n}\n\nexport interface MarketSearchResult {\n slug: string;\n market_name: string;\n market_status: Status;\n category?: string;\n tags: string[];\n featured_rank: number;\n description?: string;\n icon_url_low?: string;\n icon_url_medium?: string;\n icon_url_high?: string;\n orderbooks: SearchOrderbook[];\n}\n\nexport type MarketEvent =\n | { event_type: \"settled\"; market_pubkey: string }\n | { event_type: \"created\"; market_pubkey: string }\n | { event_type: \"opened\"; market_pubkey: string }\n | { event_type: \"paused\"; market_pubkey: string }\n | { event_type: \"orderbook_created\"; market_pubkey: string; orderbook_id: string };\n\nexport interface DepositMintsResponse {\n market_pubkey: string;\n deposit_assets: DepositAssetResponse[];\n total: number;\n}\n\nexport interface GlobalDepositAssetResponse {\n id: number;\n mint: string;\n display_name?: string;\n symbol?: string;\n description?: string;\n icon_url_low?: string;\n icon_url_medium?: string;\n icon_url_high?: string;\n decimals: number | null;\n whitelist_index: number;\n active: boolean;\n}\n\nexport interface GlobalDepositAssetsListResponse {\n assets: GlobalDepositAssetResponse[];\n total: number;\n}\n"]}
1
+ {"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../src/domain/market/wire.ts"],"names":[],"mappings":";;;AAkDa,QAAA,oBAAoB,GAAG;IAClC,YAAY,EAAE,eAAe;IAC7B,MAAM,EAAE,QAAQ;CACR,CAAC","sourcesContent":["import type { OrderBookId, PubkeyStr } from \"../../shared\";\nimport type { Status } from \"./index\";\n\nexport interface OutcomeResponse {\n index: number;\n name: string;\n name_long?: string;\n icon_url_low?: string;\n icon_url_medium?: string;\n icon_url_high?: string;\n}\n\nexport interface ConditionalTokenResponse {\n id: number;\n outcome_index: number;\n token_address: string;\n symbol?: string;\n uri?: string;\n outcome?: string;\n deposit_symbol?: string;\n short_symbol?: string;\n description?: string;\n icon_url_low?: string;\n icon_url_medium?: string;\n icon_url_high?: string;\n metadata_uri?: string;\n decimals?: number;\n created_at: string;\n}\n\nexport interface DepositAssetResponse {\n display_name?: string;\n token_symbol?: string;\n symbol?: string;\n deposit_asset: string;\n id: number;\n market_pubkey: string;\n vault: string;\n num_outcomes: number;\n description?: string;\n icon_url_low?: string;\n icon_url_medium?: string;\n icon_url_high?: string;\n metadata_uri?: string;\n decimals?: number;\n min_order_size?: string | null;\n conditional_mints: ConditionalTokenResponse[];\n created_at: string;\n}\n\nexport const MarketResolutionKind = {\n SingleWinner: \"single_winner\",\n Scalar: \"scalar\",\n} as const;\n\nexport type MarketResolutionKind =\n (typeof MarketResolutionKind)[keyof typeof MarketResolutionKind];\n\nexport interface MarketResolutionPayout {\n outcome_index: number;\n payout_numerator: number;\n}\n\nexport interface MarketResolutionResponse {\n kind: MarketResolutionKind;\n payout_denominator: number;\n payouts: MarketResolutionPayout[];\n single_winning_outcome: number | null;\n}\n\nexport interface MarketResponse {\n market_name?: string;\n slug?: string;\n description?: string;\n definition?: string;\n outcomes: OutcomeResponse[];\n banner_image_url_low?: string;\n banner_image_url_medium?: string;\n banner_image_url_high?: string;\n icon_url_low?: string;\n icon_url_medium?: string;\n icon_url_high?: string;\n category?: string;\n tags?: string[];\n featured_rank?: number;\n market_pubkey: string;\n market_id: number;\n oracle: string;\n question_id: string;\n condition_id: string;\n market_status: string;\n resolution?: MarketResolutionResponse;\n created_at: string;\n activated_at?: string;\n settled_at?: string;\n deposit_assets: DepositAssetResponse[];\n orderbooks: import(\"../orderbook/wire\").OrderbookResponse[];\n}\n\nexport interface MarketsResponse {\n markets: MarketResponse[];\n next_cursor?: number;\n has_more?: boolean;\n}\n\nexport interface SingleMarketResponse {\n market: MarketResponse;\n}\n\nexport interface SearchOrderbook {\n orderbook_id: OrderBookId;\n outcome_name: string;\n outcome_name_long?: string;\n outcome_index: number;\n deposit_base_asset: PubkeyStr;\n deposit_quote_asset: PubkeyStr;\n deposit_base_symbol: string;\n deposit_quote_symbol: string;\n base_icon_url_low?: string;\n base_icon_url_medium?: string;\n base_icon_url_high?: string;\n quote_icon_url_low?: string;\n quote_icon_url_medium?: string;\n quote_icon_url_high?: string;\n conditional_base_mint: PubkeyStr;\n conditional_quote_mint: PubkeyStr;\n outcome_icon_url_low?: string;\n outcome_icon_url_medium?: string;\n outcome_icon_url_high?: string;\n conditional_base_symbol?: string;\n conditional_quote_symbol?: string;\n latest_mid_price?: string;\n}\n\nexport interface MarketSearchResult {\n slug: string;\n market_name: string;\n market_status: Status;\n category?: string;\n tags: string[];\n featured_rank: number;\n description?: string;\n icon_url_low?: string;\n icon_url_medium?: string;\n icon_url_high?: string;\n orderbooks: SearchOrderbook[];\n}\n\nexport type MarketEvent =\n | { event_type: \"settled\"; market_pubkey: string }\n | { event_type: \"created\"; market_pubkey: string }\n | { event_type: \"opened\"; market_pubkey: string }\n | { event_type: \"paused\"; market_pubkey: string }\n | { event_type: \"orderbook_created\"; market_pubkey: string; orderbook_id: string };\n\nexport interface DepositMintsResponse {\n market_pubkey: string;\n deposit_assets: DepositAssetResponse[];\n total: number;\n}\n\nexport interface GlobalDepositAssetResponse {\n id: number;\n mint: string;\n display_name?: string;\n symbol?: string;\n description?: string;\n icon_url_low?: string;\n icon_url_medium?: string;\n icon_url_high?: string;\n decimals: number | null;\n whitelist_index: number;\n active: boolean;\n}\n\nexport interface GlobalDepositAssetsListResponse {\n assets: GlobalDepositAssetResponse[];\n total: number;\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import type { ClientContext } from "../../context";
2
- import type { OrderBookId, PubkeyStr } from "../../shared";
3
- import type { CategoriesMetrics, CategoryVolumeMetrics, DepositTokensMetrics, Leaderboard, MarketDetailMetrics, MarketsMetrics, MetricsHistory, MetricsHistoryQuery, OrderbookTickersResponse, OrderbookVolumeMetrics, PlatformMetrics, UserMetrics } from "./wire";
2
+ import { type OrderBookId, type PubkeyStr } from "../../shared";
3
+ import type { CategoriesMetrics, CategoryVolumeMetrics, DepositTokenVolumeHistory, DepositTokenVolumeHistoryQuery, DepositTokensMetrics, Leaderboard, MarketDetailMetrics, MarketsMetrics, MetricsHistory, MetricsHistoryQuery, OpenInterestHistory, OpenInterestHistoryQuery, OrderbookTickersResponse, OrderbookVolumeMetrics, PlatformMetrics, UniqueTradersHistory, UniqueTradersHistoryQuery, UserMetrics } from "./wire";
4
4
  /**
5
5
  * Metrics sub-client — platform / market / orderbook / category / deposit-token
6
6
  * volume metrics, market leaderboard, and time-series history.
@@ -33,6 +33,12 @@ export declare class Metrics {
33
33
  category(category: string): Promise<CategoryVolumeMetrics>;
34
34
  /** `GET /api/metrics/deposit-tokens` */
35
35
  depositTokens(): Promise<DepositTokensMetrics>;
36
+ /** `GET /api/metrics/deposit-tokens/volume-history` */
37
+ depositTokensVolumeHistory(query?: DepositTokenVolumeHistoryQuery): Promise<DepositTokenVolumeHistory>;
38
+ /** `GET /api/metrics/open-interest/history` */
39
+ openInterestHistory(query?: OpenInterestHistoryQuery): Promise<OpenInterestHistory>;
40
+ /** `GET /api/metrics/unique-traders/history` */
41
+ uniqueTradersHistory(query?: UniqueTradersHistoryQuery): Promise<UniqueTradersHistory>;
36
42
  /** `GET /api/metrics/leaderboard/markets` */
37
43
  leaderboard(limit?: number): Promise<Leaderboard>;
38
44
  /**
@@ -46,17 +52,17 @@ export declare class Metrics {
46
52
  * user: distinct outcomes traded, total USD volume across all the
47
53
  * wallet's trades, and the number of times the wallet's referral codes
48
54
  * have been redeemed. The wallet is resolved server-side from the
49
- * `auth_token` cookie.
55
+ * auth cookie.
50
56
  *
51
57
  * `GET /api/metrics/user`
52
58
  */
53
59
  user(): Promise<UserMetrics>;
54
60
  /**
55
- * Same as {@link user} but uses the supplied `authToken` for this call
61
+ * Same as {@link user} but uses the supplied `cookieHeader` for this call
56
62
  * instead of the SDK's process-wide cookie store. For server-side cookie
57
63
  * forwarding (SSR / route handlers).
58
64
  */
59
- userWithAuth(authToken: string): Promise<UserMetrics>;
65
+ userWithCookies(cookieHeader: string): Promise<UserMetrics>;
60
66
  /**
61
67
  * Public variant of {@link user}. Takes the user's wallet via the URL
62
68
  * path (`GET /api/metrics/user/{wallet_address}`) and requires no auth.
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/domain/metrics/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EACV,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,EACtB,eAAe,EACf,WAAW,EACZ,MAAM,QAAQ,CAAC;AAEhB;;;;;GAKG;AACH,qBAAa,OAAO;IACN,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAElD,kCAAkC;IAC5B,QAAQ,IAAI,OAAO,CAAC,eAAe,CAAC;IAK1C,iCAAiC;IAC3B,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC;IAKxC,iDAAiD;IAC3C,MAAM,CAAC,YAAY,EAAE,SAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAKnE;;;;;;;OAOG;IACG,gBAAgB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAShF,mDAAmD;IAC7C,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAK1E,oCAAoC;IAC9B,UAAU,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAK9C,+CAA+C;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAKhE,wCAAwC;IAClC,aAAa,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAKpD,6CAA6C;IACvC,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQvD;;;;OAIG;IACG,OAAO,CACX,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,mBAAwB,GAC9B,OAAO,CAAC,cAAc,CAAC;IAW1B;;;;;;;;OAQG;IACG,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC;IAKlC;;;;OAIG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAS3D;;;OAGG;IACG,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAIhE"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/domain/metrics/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAc,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,KAAK,EACV,iBAAiB,EACjB,qBAAqB,EACrB,yBAAyB,EACzB,8BAA8B,EAC9B,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,eAAe,EACf,oBAAoB,EACpB,yBAAyB,EACzB,WAAW,EACZ,MAAM,QAAQ,CAAC;AAEhB;;;;;GAKG;AACH,qBAAa,OAAO;IACN,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAElD,kCAAkC;IAC5B,QAAQ,IAAI,OAAO,CAAC,eAAe,CAAC;IAK1C,iCAAiC;IAC3B,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC;IAKxC,iDAAiD;IAC3C,MAAM,CAAC,YAAY,EAAE,SAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAKnE;;;;;;;OAOG;IACG,gBAAgB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAShF,mDAAmD;IAC7C,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAK1E,oCAAoC;IAC9B,UAAU,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAK9C,+CAA+C;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAKhE,wCAAwC;IAClC,aAAa,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAKpD,uDAAuD;IACjD,0BAA0B,CAC9B,KAAK,GAAE,8BAAmC,GACzC,OAAO,CAAC,yBAAyB,CAAC;IAgBrC,+CAA+C;IACzC,mBAAmB,CACvB,KAAK,GAAE,wBAA6B,GACnC,OAAO,CAAC,mBAAmB,CAAC;IAgB/B,gDAAgD;IAC1C,oBAAoB,CACxB,KAAK,GAAE,yBAA8B,GACpC,OAAO,CAAC,oBAAoB,CAAC;IAkBhC,6CAA6C;IACvC,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQvD;;;;OAIG;IACG,OAAO,CACX,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,mBAAwB,GAC9B,OAAO,CAAC,cAAc,CAAC;IAW1B;;;;;;;;OAQG;IACG,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC;IAKlC;;;;OAIG;IACG,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IASjE;;;OAGG;IACG,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAIhE"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Metrics = void 0;
4
4
  const http_1 = require("../../http");
5
+ const shared_1 = require("../../shared");
5
6
  /**
6
7
  * Metrics sub-client — platform / market / orderbook / category / deposit-token
7
8
  * volume metrics, market leaderboard, and time-series history.
@@ -64,6 +65,52 @@ class Metrics {
64
65
  const url = `${this.client.http.baseUrl()}/api/metrics/deposit-tokens`;
65
66
  return this.client.http.get(url, http_1.RetryPolicy.Idempotent);
66
67
  }
68
+ /** `GET /api/metrics/deposit-tokens/volume-history` */
69
+ async depositTokensVolumeHistory(query = {}) {
70
+ const search = new URLSearchParams();
71
+ if (query.from !== undefined)
72
+ search.set("from", String(query.from));
73
+ if (query.to !== undefined)
74
+ search.set("to", String(query.to));
75
+ if (query.limit !== undefined)
76
+ search.set("limit", String(query.limit));
77
+ const qs = search.toString();
78
+ const url = `${this.client.http.baseUrl()}/api/metrics/deposit-tokens/volume-history` +
79
+ (qs ? `?${qs}` : "");
80
+ return this.client.http.get(url, http_1.RetryPolicy.Idempotent);
81
+ }
82
+ /** `GET /api/metrics/open-interest/history` */
83
+ async openInterestHistory(query = {}) {
84
+ const search = new URLSearchParams();
85
+ if (query.from !== undefined)
86
+ search.set("from", String(query.from));
87
+ if (query.to !== undefined)
88
+ search.set("to", String(query.to));
89
+ if (query.limit !== undefined)
90
+ search.set("limit", String(query.limit));
91
+ const qs = search.toString();
92
+ const url = `${this.client.http.baseUrl()}/api/metrics/open-interest/history` +
93
+ (qs ? `?${qs}` : "");
94
+ return this.client.http.get(url, http_1.RetryPolicy.Idempotent);
95
+ }
96
+ /** `GET /api/metrics/unique-traders/history` */
97
+ async uniqueTradersHistory(query = {}) {
98
+ const search = new URLSearchParams();
99
+ if (query.scope !== undefined)
100
+ search.set("scope", query.scope);
101
+ if (query.scope_key !== undefined)
102
+ search.set("scope_key", query.scope_key);
103
+ if (query.from !== undefined)
104
+ search.set("from", String(query.from));
105
+ if (query.to !== undefined)
106
+ search.set("to", String(query.to));
107
+ if (query.limit !== undefined)
108
+ search.set("limit", String(query.limit));
109
+ const qs = search.toString();
110
+ const url = `${this.client.http.baseUrl()}/api/metrics/unique-traders/history` +
111
+ (qs ? `?${qs}` : "");
112
+ return this.client.http.get(url, http_1.RetryPolicy.Idempotent);
113
+ }
67
114
  /** `GET /api/metrics/leaderboard/markets` */
68
115
  async leaderboard(limit) {
69
116
  let url = `${this.client.http.baseUrl()}/api/metrics/leaderboard/markets`;
@@ -79,7 +126,7 @@ class Metrics {
79
126
  */
80
127
  async history(scope, scopeKey, query = {}) {
81
128
  const search = new URLSearchParams();
82
- search.set("resolution", query.resolution ?? "1h");
129
+ search.set("resolution", query.resolution ?? shared_1.Resolution.Hour1);
83
130
  if (query.from !== undefined)
84
131
  search.set("from", String(query.from));
85
132
  if (query.to !== undefined)
@@ -94,7 +141,7 @@ class Metrics {
94
141
  * user: distinct outcomes traded, total USD volume across all the
95
142
  * wallet's trades, and the number of times the wallet's referral codes
96
143
  * have been redeemed. The wallet is resolved server-side from the
97
- * `auth_token` cookie.
144
+ * auth cookie.
98
145
  *
99
146
  * `GET /api/metrics/user`
100
147
  */
@@ -103,13 +150,13 @@ class Metrics {
103
150
  return this.client.http.get(url, http_1.RetryPolicy.Idempotent);
104
151
  }
105
152
  /**
106
- * Same as {@link user} but uses the supplied `authToken` for this call
153
+ * Same as {@link user} but uses the supplied `cookieHeader` for this call
107
154
  * instead of the SDK's process-wide cookie store. For server-side cookie
108
155
  * forwarding (SSR / route handlers).
109
156
  */
110
- async userWithAuth(authToken) {
157
+ async userWithCookies(cookieHeader) {
111
158
  const url = `${this.client.http.baseUrl()}/api/metrics/user`;
112
- return this.client.http.getWithAuth(url, http_1.RetryPolicy.Idempotent, authToken);
159
+ return this.client.http.getWithCookies(url, http_1.RetryPolicy.Idempotent, cookieHeader);
113
160
  }
114
161
  /**
115
162
  * Public variant of {@link user}. Takes the user's wallet via the URL