@nktkas/hyperliquid 0.13.0 → 0.13.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 (206) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +42 -17
  3. package/esm/deps/jsr.io/@std/bytes/1.0.5/_types.d.ts +9 -0
  4. package/esm/deps/jsr.io/@std/bytes/1.0.5/_types.d.ts.map +1 -0
  5. package/esm/deps/jsr.io/@std/bytes/1.0.5/_types.js +2 -0
  6. package/esm/deps/jsr.io/@std/bytes/{1.0.4 → 1.0.5}/concat.d.ts +3 -1
  7. package/esm/deps/jsr.io/@std/bytes/1.0.5/concat.d.ts.map +1 -0
  8. package/esm/deps/jsr.io/@std/bytes/{1.0.4 → 1.0.5}/concat.js +1 -1
  9. package/esm/deps/jsr.io/@std/encoding/1.0.7/_types.d.ts +9 -0
  10. package/esm/deps/jsr.io/@std/encoding/1.0.7/_types.d.ts.map +1 -0
  11. package/esm/deps/jsr.io/@std/encoding/1.0.7/_types.js +2 -0
  12. package/esm/deps/jsr.io/@std/encoding/{1.0.6 → 1.0.7}/_validate_binary_like.d.ts.map +1 -1
  13. package/esm/deps/jsr.io/@std/encoding/{1.0.6 → 1.0.7}/_validate_binary_like.js +1 -1
  14. package/{script/deps/jsr.io/@std/encoding/1.0.6 → esm/deps/jsr.io/@std/encoding/1.0.7}/hex.d.ts +3 -1
  15. package/esm/deps/jsr.io/@std/encoding/1.0.7/hex.d.ts.map +1 -0
  16. package/esm/deps/jsr.io/@std/encoding/{1.0.6 → 1.0.7}/hex.js +1 -1
  17. package/esm/deps/jsr.io/@std/msgpack/1.0.3/_types.d.ts +9 -0
  18. package/esm/deps/jsr.io/@std/msgpack/1.0.3/_types.d.ts.map +1 -0
  19. package/esm/deps/jsr.io/@std/msgpack/1.0.3/_types.js +2 -0
  20. package/esm/deps/jsr.io/@std/msgpack/{1.0.2 → 1.0.3}/encode.d.ts +3 -1
  21. package/esm/deps/jsr.io/@std/msgpack/1.0.3/encode.d.ts.map +1 -0
  22. package/esm/deps/jsr.io/@std/msgpack/{1.0.2 → 1.0.3}/encode.js +2 -2
  23. package/esm/mod.d.ts +15 -14
  24. package/esm/mod.d.ts.map +1 -1
  25. package/esm/src/clients/event.d.ts +64 -21
  26. package/esm/src/clients/event.d.ts.map +1 -1
  27. package/esm/src/clients/event.js +76 -18
  28. package/esm/src/clients/public.d.ts +244 -52
  29. package/esm/src/clients/public.d.ts.map +1 -1
  30. package/esm/src/clients/public.js +243 -47
  31. package/esm/src/clients/wallet.d.ts +122 -53
  32. package/esm/src/clients/wallet.d.ts.map +1 -1
  33. package/esm/src/clients/wallet.js +201 -65
  34. package/esm/src/transports/http/http_transport.d.ts.map +1 -1
  35. package/esm/src/transports/http/http_transport.js +4 -1
  36. package/esm/src/transports/websocket/hyperliquid_event_target.d.ts +27 -21
  37. package/esm/src/transports/websocket/hyperliquid_event_target.d.ts.map +1 -1
  38. package/esm/src/transports/websocket/hyperliquid_event_target.js +37 -0
  39. package/esm/src/transports/websocket/websocket_request_dispatcher.d.ts.map +1 -1
  40. package/esm/src/transports/websocket/websocket_request_dispatcher.js +4 -4
  41. package/esm/src/transports/websocket/websocket_transport.d.ts +7 -10
  42. package/esm/src/transports/websocket/websocket_transport.d.ts.map +1 -1
  43. package/esm/src/transports/websocket/websocket_transport.js +41 -35
  44. package/esm/src/types/common.d.ts +3 -0
  45. package/esm/src/types/common.d.ts.map +1 -0
  46. package/esm/src/types/common.js +1 -0
  47. package/esm/src/types/exchange/common.d.ts +36 -0
  48. package/esm/src/types/exchange/common.d.ts.map +1 -0
  49. package/esm/src/types/exchange/common.js +1 -0
  50. package/esm/src/types/exchange/requests.d.ts +502 -0
  51. package/esm/src/types/exchange/requests.d.ts.map +1 -0
  52. package/esm/src/types/exchange/requests.js +1 -0
  53. package/esm/src/types/exchange/responses.d.ts +141 -0
  54. package/esm/src/types/exchange/responses.d.ts.map +1 -0
  55. package/esm/src/types/exchange/responses.js +1 -0
  56. package/esm/src/types/explorer/common.d.ts +37 -0
  57. package/esm/src/types/explorer/common.d.ts.map +1 -0
  58. package/esm/src/types/explorer/common.js +1 -0
  59. package/esm/src/types/explorer/requests.d.ts +35 -0
  60. package/esm/src/types/explorer/requests.d.ts.map +1 -0
  61. package/esm/src/types/explorer/requests.js +1 -0
  62. package/esm/src/types/explorer/responses.d.ts +23 -0
  63. package/esm/src/types/explorer/responses.d.ts.map +1 -0
  64. package/esm/src/types/explorer/responses.js +1 -0
  65. package/esm/src/types/info/accounts.d.ts +489 -0
  66. package/esm/src/types/info/accounts.d.ts.map +1 -0
  67. package/esm/src/types/info/accounts.js +1 -0
  68. package/esm/src/types/info/assets.d.ts +275 -0
  69. package/esm/src/types/info/assets.d.ts.map +1 -0
  70. package/esm/src/types/info/assets.js +1 -0
  71. package/esm/src/types/info/delegations.d.ts +117 -0
  72. package/esm/src/types/info/delegations.d.ts.map +1 -0
  73. package/esm/src/types/info/delegations.js +1 -0
  74. package/esm/src/types/info/orders.d.ts +209 -0
  75. package/esm/src/types/info/orders.d.ts.map +1 -0
  76. package/esm/src/types/info/orders.js +1 -0
  77. package/esm/src/types/info/requests.d.ts +445 -0
  78. package/esm/src/types/info/requests.d.ts.map +1 -0
  79. package/esm/src/types/info/requests.js +1 -0
  80. package/esm/src/types/info/vaults.d.ts +90 -0
  81. package/esm/src/types/info/vaults.d.ts.map +1 -0
  82. package/esm/src/types/info/vaults.js +1 -0
  83. package/esm/src/types/subscriptions/common.d.ts +208 -0
  84. package/esm/src/types/subscriptions/common.d.ts.map +1 -0
  85. package/esm/src/types/subscriptions/common.js +1 -0
  86. package/esm/src/types/subscriptions/requests.d.ts +134 -0
  87. package/esm/src/types/subscriptions/requests.d.ts.map +1 -0
  88. package/esm/src/types/subscriptions/requests.js +1 -0
  89. package/esm/src/utils/key_sort.d.ts +3 -3
  90. package/esm/src/utils/key_sort.d.ts.map +1 -1
  91. package/esm/src/utils/signing.d.ts +1 -1
  92. package/esm/src/utils/signing.js +2 -2
  93. package/package.json +2 -2
  94. package/script/deps/jsr.io/@derzade/typescript-event-target/1.1.1/mod.js +13 -3
  95. package/script/deps/jsr.io/@derzade/typescript-event-target/1.1.1/src/TypedEventTarget.js +23 -13
  96. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/_assert.js +55 -45
  97. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/_u64.js +97 -87
  98. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/crypto.js +14 -4
  99. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/sha3.js +288 -278
  100. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/utils.js +238 -228
  101. package/script/deps/jsr.io/@std/bytes/1.0.5/_types.d.ts +9 -0
  102. package/script/deps/jsr.io/@std/bytes/1.0.5/_types.d.ts.map +1 -0
  103. package/script/deps/jsr.io/@std/bytes/1.0.5/_types.js +13 -0
  104. package/script/deps/jsr.io/@std/bytes/{1.0.4 → 1.0.5}/concat.d.ts +3 -1
  105. package/script/deps/jsr.io/@std/bytes/1.0.5/concat.d.ts.map +1 -0
  106. package/script/deps/jsr.io/@std/bytes/1.0.5/concat.js +45 -0
  107. package/script/deps/jsr.io/@std/encoding/1.0.7/_types.d.ts +9 -0
  108. package/script/deps/jsr.io/@std/encoding/1.0.7/_types.d.ts.map +1 -0
  109. package/script/deps/jsr.io/@std/encoding/1.0.7/_types.js +13 -0
  110. package/script/deps/jsr.io/@std/encoding/{1.0.6 → 1.0.7}/_validate_binary_like.d.ts.map +1 -1
  111. package/script/deps/jsr.io/@std/encoding/1.0.7/_validate_binary_like.js +39 -0
  112. package/{esm/deps/jsr.io/@std/encoding/1.0.6 → script/deps/jsr.io/@std/encoding/1.0.7}/hex.d.ts +3 -1
  113. package/script/deps/jsr.io/@std/encoding/1.0.7/hex.d.ts.map +1 -0
  114. package/script/deps/jsr.io/@std/encoding/1.0.7/hex.js +123 -0
  115. package/script/deps/jsr.io/@std/msgpack/1.0.3/_types.d.ts +9 -0
  116. package/script/deps/jsr.io/@std/msgpack/1.0.3/_types.d.ts.map +1 -0
  117. package/script/deps/jsr.io/@std/msgpack/1.0.3/_types.js +13 -0
  118. package/script/deps/jsr.io/@std/msgpack/{1.0.2 → 1.0.3}/encode.d.ts +3 -1
  119. package/script/deps/jsr.io/@std/msgpack/1.0.3/encode.d.ts.map +1 -0
  120. package/script/deps/jsr.io/@std/msgpack/1.0.3/encode.js +250 -0
  121. package/script/mod.d.ts +15 -14
  122. package/script/mod.d.ts.map +1 -1
  123. package/script/mod.js +23 -13
  124. package/script/src/clients/event.d.ts +64 -21
  125. package/script/src/clients/event.d.ts.map +1 -1
  126. package/script/src/clients/event.js +551 -483
  127. package/script/src/clients/public.d.ts +244 -52
  128. package/script/src/clients/public.d.ts.map +1 -1
  129. package/script/src/clients/public.js +914 -708
  130. package/script/src/clients/wallet.d.ts +122 -53
  131. package/script/src/clients/wallet.d.ts.map +1 -1
  132. package/script/src/clients/wallet.js +1121 -975
  133. package/script/src/transports/base.js +25 -15
  134. package/script/src/transports/http/http_transport.d.ts.map +1 -1
  135. package/script/src/transports/http/http_transport.js +174 -161
  136. package/script/src/transports/websocket/hyperliquid_event_target.d.ts +27 -21
  137. package/script/src/transports/websocket/hyperliquid_event_target.d.ts.map +1 -1
  138. package/script/src/transports/websocket/hyperliquid_event_target.js +80 -33
  139. package/script/src/transports/websocket/reconnecting_websocket.js +364 -354
  140. package/script/src/transports/websocket/websocket_request_dispatcher.d.ts.map +1 -1
  141. package/script/src/transports/websocket/websocket_request_dispatcher.js +196 -186
  142. package/script/src/transports/websocket/websocket_transport.d.ts +7 -10
  143. package/script/src/transports/websocket/websocket_transport.d.ts.map +1 -1
  144. package/script/src/transports/websocket/websocket_transport.js +236 -220
  145. package/script/src/types/common.d.ts +3 -0
  146. package/script/src/types/common.d.ts.map +1 -0
  147. package/script/src/types/common.js +12 -0
  148. package/script/src/types/exchange/common.d.ts +36 -0
  149. package/script/src/types/exchange/common.d.ts.map +1 -0
  150. package/script/src/types/exchange/common.js +12 -0
  151. package/script/src/types/exchange/requests.d.ts +502 -0
  152. package/script/src/types/exchange/requests.d.ts.map +1 -0
  153. package/script/src/types/exchange/requests.js +12 -0
  154. package/script/src/types/exchange/responses.d.ts +141 -0
  155. package/script/src/types/exchange/responses.d.ts.map +1 -0
  156. package/script/src/types/exchange/responses.js +12 -0
  157. package/script/src/types/explorer/common.d.ts +37 -0
  158. package/script/src/types/explorer/common.d.ts.map +1 -0
  159. package/script/src/types/explorer/common.js +12 -0
  160. package/script/src/types/explorer/requests.d.ts +35 -0
  161. package/script/src/types/explorer/requests.d.ts.map +1 -0
  162. package/script/src/types/explorer/requests.js +12 -0
  163. package/script/src/types/explorer/responses.d.ts +23 -0
  164. package/script/src/types/explorer/responses.d.ts.map +1 -0
  165. package/script/src/types/explorer/responses.js +12 -0
  166. package/script/src/types/info/accounts.d.ts +489 -0
  167. package/script/src/types/info/accounts.d.ts.map +1 -0
  168. package/script/src/types/info/accounts.js +12 -0
  169. package/script/src/types/info/assets.d.ts +275 -0
  170. package/script/src/types/info/assets.d.ts.map +1 -0
  171. package/script/src/types/info/assets.js +12 -0
  172. package/script/src/types/info/delegations.d.ts +117 -0
  173. package/script/src/types/info/delegations.d.ts.map +1 -0
  174. package/script/src/types/info/delegations.js +12 -0
  175. package/script/src/types/info/orders.d.ts +209 -0
  176. package/script/src/types/info/orders.d.ts.map +1 -0
  177. package/script/src/types/info/orders.js +12 -0
  178. package/script/src/types/info/requests.d.ts +445 -0
  179. package/script/src/types/info/requests.d.ts.map +1 -0
  180. package/script/src/types/info/requests.js +12 -0
  181. package/script/src/types/info/vaults.d.ts +90 -0
  182. package/script/src/types/info/vaults.d.ts.map +1 -0
  183. package/script/src/types/info/vaults.js +12 -0
  184. package/script/src/types/subscriptions/common.d.ts +208 -0
  185. package/script/src/types/subscriptions/common.d.ts.map +1 -0
  186. package/script/src/types/subscriptions/common.js +12 -0
  187. package/script/src/types/subscriptions/requests.d.ts +134 -0
  188. package/script/src/types/subscriptions/requests.d.ts.map +1 -0
  189. package/script/src/types/subscriptions/requests.js +12 -0
  190. package/script/src/utils/key_sort.d.ts +3 -3
  191. package/script/src/utils/key_sort.d.ts.map +1 -1
  192. package/script/src/utils/key_sort.js +133 -123
  193. package/script/src/utils/signing.d.ts +1 -1
  194. package/script/src/utils/signing.js +172 -162
  195. package/esm/deps/jsr.io/@std/bytes/1.0.4/concat.d.ts.map +0 -1
  196. package/esm/deps/jsr.io/@std/encoding/1.0.6/hex.d.ts.map +0 -1
  197. package/esm/deps/jsr.io/@std/msgpack/1.0.2/encode.d.ts.map +0 -1
  198. package/script/deps/jsr.io/@std/bytes/1.0.4/concat.d.ts.map +0 -1
  199. package/script/deps/jsr.io/@std/bytes/1.0.4/concat.js +0 -35
  200. package/script/deps/jsr.io/@std/encoding/1.0.6/_validate_binary_like.js +0 -29
  201. package/script/deps/jsr.io/@std/encoding/1.0.6/hex.d.ts.map +0 -1
  202. package/script/deps/jsr.io/@std/encoding/1.0.6/hex.js +0 -113
  203. package/script/deps/jsr.io/@std/msgpack/1.0.2/encode.d.ts.map +0 -1
  204. package/script/deps/jsr.io/@std/msgpack/1.0.2/encode.js +0 -240
  205. /package/esm/deps/jsr.io/@std/encoding/{1.0.6 → 1.0.7}/_validate_binary_like.d.ts +0 -0
  206. /package/script/deps/jsr.io/@std/encoding/{1.0.6 → 1.0.7}/_validate_binary_like.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"hyperliquid_event_target.d.ts","sourceRoot":"","sources":["../../../../src/src/transports/websocket/hyperliquid_event_target.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oEAAoE,CAAC;AAYtG;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,yCAAyC;IACzC,oBAAoB,EAAE,WAAW,CAAC;QAC9B,qCAAqC;QACrC,MAAM,EAAE,WAAW,GAAG,aAAa,CAAC;QACpC,oCAAoC;QACpC,YAAY,EAAE,OAAO,CAAC;KACzB,CAAC,CAAC;IAEH,qCAAqC;IACrC,IAAI,EAAE,WAAW,CAAC;QACd,gCAAgC;QAChC,EAAE,EAAE,MAAM,CAAC;QACX,sBAAsB;QACtB,QAAQ;QACJ,gDAAgD;QAC9C;YACE,uDAAuD;YACvD,IAAI,EAAE,MAAM,CAAC;YACb,oCAAoC;YACpC,OAAO,EAAE;gBACL,yCAAyC;gBACzC,IAAI,EAAE,MAAM,CAAC;gBACb,gCAAgC;gBAChC,IAAI,EAAE,OAAO,CAAC;aACjB,CAAC;SACL;QACD,wCAAwC;WACtC;YACE,gDAAgD;YAChD,IAAI,EAAE,QAAQ,CAAC;YACf,sCAAsC;YACtC,OAAO,EAAE;gBACL,kEAAkE;gBAClE,MAAM,EAAE,IAAI,GAAG,KAAK,CAAC;gBACrB,oCAAoC;gBACpC,QAAQ,EACF;oBACE,wBAAwB;oBACxB,IAAI,EAAE,MAAM,CAAC;oBACb,sCAAsC;oBACtC,IAAI,CAAC,EAAE,OAAO,CAAC;iBAClB,GACC,MAAM,CAAC;aAChB,CAAC;SACL,CAAC;KACT,CAAC,CAAC;IAEH,uCAAuC;IACvC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAE3B,0BAA0B;IAC1B,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAE7B,gCAAgC;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,gBAAgB,CAAC,mBAAmB,CAAC;IAC7E;;;OAGG;gBACS,MAAM,EAAE,SAAS;CAahC"}
1
+ {"version":3,"file":"hyperliquid_event_target.d.ts","sourceRoot":"","sources":["../../../../src/src/transports/websocket/hyperliquid_event_target.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oEAAoE,CAAC;AACtG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAY1E;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,0CAA0C;IAC1C,oBAAoB,EAAE,WAAW,CAAC;QAC9B,sCAAsC;QACtC,MAAM,EAAE,WAAW,GAAG,aAAa,CAAC;QACpC,qCAAqC;QACrC,YAAY,EAAE,OAAO,CAAC;KACzB,CAAC,CAAC;IAEH,sCAAsC;IACtC,IAAI,EAAE,WAAW,CAAC;QACd,iCAAiC;QACjC,EAAE,EAAE,MAAM,CAAC;QACX,uBAAuB;QACvB,QAAQ;QACJ,iDAAiD;QAC/C;YACE,wDAAwD;YACxD,IAAI,EAAE,MAAM,CAAC;YACb,qCAAqC;YACrC,OAAO,EAAE;gBACL,0CAA0C;gBAC1C,IAAI,EAAE,MAAM,CAAC;gBACb,iCAAiC;gBACjC,IAAI,EAAE,OAAO,CAAC;aACjB,CAAC;SACL;QACD,yCAAyC;WACvC;YACE,iDAAiD;YACjD,IAAI,EAAE,QAAQ,CAAC;YACf,uCAAuC;YACvC,OAAO,EAAE;gBACL,mEAAmE;gBACnE,MAAM,EAAE,IAAI,GAAG,KAAK,CAAC;gBACrB,qCAAqC;gBACrC,QAAQ,EACF;oBACE,yBAAyB;oBACzB,IAAI,EAAE,MAAM,CAAC;oBACb,uCAAuC;oBACvC,IAAI,CAAC,EAAE,OAAO,CAAC;iBAClB,GACC,MAAM,CAAC;aAChB,CAAC;SACL,CAAC;KACT,CAAC,CAAC;IAEH,wCAAwC;IACxC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAE3B,2BAA2B;IAC3B,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAE7B,mCAAmC;IACnC,cAAc,EAAE,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC;IAE9C,yCAAyC;IACzC,YAAY,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC;IAEvC,gCAAgC;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,gBAAgB,CAAC,mBAAmB,CAAC;IAC7E;;;OAGG;gBACS,MAAM,EAAE,SAAS;CAiBhC"}
@@ -15,6 +15,12 @@ export class HyperliquidEventTarget extends TypedEventTarget {
15
15
  if (isHyperliquidMsg(msg)) {
16
16
  this.dispatchEvent(new CustomEvent(msg.channel, { detail: msg.data }));
17
17
  }
18
+ else if (isExplorerBlockMsg(msg)) {
19
+ this.dispatchEvent(new CustomEvent("_explorerBlock", { detail: msg }));
20
+ }
21
+ else if (isExplorerTxsMsg(msg)) {
22
+ this.dispatchEvent(new CustomEvent("_explorerTxs", { detail: msg }));
23
+ }
18
24
  }
19
25
  catch {
20
26
  // Ignore JSON parsing errors
@@ -31,3 +37,34 @@ function isHyperliquidMsg(value) {
31
37
  return typeof value === "object" && value !== null &&
32
38
  "channel" in value && typeof value.channel === "string";
33
39
  }
40
+ /**
41
+ * Type guard for explorer block messages.
42
+ * @param value - The value to check.
43
+ * @returns True if the value is an array of block details.
44
+ */
45
+ function isExplorerBlockMsg(value) {
46
+ return Array.isArray(value) && value.length > 0 &&
47
+ value.every((block) => typeof block === "object" && block !== null && !Array.isArray(block) &&
48
+ "height" in block && typeof block.height === "number" &&
49
+ "blockTime" in block && typeof block.blockTime === "number" &&
50
+ "hash" in block && typeof block.hash === "string" &&
51
+ "proposer" in block && typeof block.proposer === "string" &&
52
+ "numTxs" in block && typeof block.numTxs === "number");
53
+ }
54
+ /**
55
+ * Type guard for explorer transactions messages.
56
+ * @param value - The value to check.
57
+ * @returns True if the value is an array of transaction details.
58
+ */
59
+ function isExplorerTxsMsg(value) {
60
+ return Array.isArray(value) && value.length > 0 &&
61
+ value.every((tx) => {
62
+ return typeof tx === "object" && tx !== null && !Array.isArray(tx) &&
63
+ "action" in tx && typeof tx.action === "object" && tx.action !== null &&
64
+ "block" in tx && typeof tx.block === "number" &&
65
+ "error" in tx && (typeof tx.error === "string" || tx.error === null) &&
66
+ "hash" in tx && typeof tx.hash === "string" &&
67
+ "time" in tx && typeof tx.time === "number" &&
68
+ "user" in tx && typeof tx.user === "string";
69
+ });
70
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"websocket_request_dispatcher.d.ts","sourceRoot":"","sources":["../../../../src/src/transports/websocket/websocket_request_dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAE5E;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,cAAc;IACrD;;;OAGG;gBACS,OAAO,EAAE,MAAM;CAI9B;AAED;;;GAGG;AACH,qBAAa,0BAA0B;IAevB,SAAS,CAAC,MAAM,EAAE,SAAS;IAdvC,2BAA2B;IAC3B,SAAS,CAAC,MAAM,EAAE,MAAM,CAAK;IAE7B,oDAAoD;IACpD,SAAS,CAAC,OAAO,EAAE,GAAG,CAClB,MAAM,GAAG,MAAM,EACf;QAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;QAAC,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;KAAE,CAC3E,CAAa;IAEd;;;;OAIG;gBACmB,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,sBAAsB;IAkDzE,+BAA+B;IAC/B,SAAS,KAAK,MAAM,IAAI,MAAM,CAE7B;IAED;;;;;;OAMG;IACH,OAAO,CACH,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,aAAa,EAC5C,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,OAAO,CAAC;IAkCnB;;;;OAIG;IACH,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAK5D;;;;OAIG;IACH,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAK5D;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;CAK7C"}
1
+ {"version":3,"file":"websocket_request_dispatcher.d.ts","sourceRoot":"","sources":["../../../../src/src/transports/websocket/websocket_request_dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAE5E;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,cAAc;IACrD;;;OAGG;gBACS,OAAO,EAAE,MAAM;CAI9B;AAED;;;GAGG;AACH,qBAAa,0BAA0B;IAevB,SAAS,CAAC,MAAM,EAAE,SAAS;IAdvC,2BAA2B;IAC3B,SAAS,CAAC,MAAM,EAAE,MAAM,CAAK;IAE7B,oDAAoD;IACpD,SAAS,CAAC,OAAO,EAAE,GAAG,CAClB,MAAM,GAAG,MAAM,EACf;QAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;QAAC,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;KAAE,CAC3E,CAAa;IAEd;;;;OAIG;gBACmB,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,sBAAsB;IA2DzE,+BAA+B;IAC/B,SAAS,KAAK,MAAM,IAAI,MAAM,CAE7B;IAED;;;;;;OAMG;IACH,OAAO,CACH,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,aAAa,EAC5C,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,OAAO,CAAC;IAkCnB;;;;OAIG;IACH,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAK5D;;;;OAIG;IACH,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAK5D;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;CAK7C"}
@@ -65,19 +65,19 @@ export class WebSocketRequestDispatcher {
65
65
  const parsedRequest = JSON.parse(request);
66
66
  if ("id" in parsedRequest && typeof parsedRequest.id === "number") {
67
67
  // If a post request was sent, it is possible to get the id from the request
68
- this.reject(parsedRequest.id, new WebSocketRequestError(event.detail));
68
+ this.reject(parsedRequest.id, new WebSocketRequestError(`Cannot complete WebSocket request: ${event.detail}`));
69
69
  }
70
70
  else if ("subscription" in parsedRequest &&
71
71
  typeof parsedRequest.subscription === "object" &&
72
72
  parsedRequest.subscription !== null) {
73
73
  // If a subscription/unsubscribe request was sent, use the request as an id
74
74
  const id = WebSocketRequestDispatcher.requestToId(parsedRequest.subscription);
75
- this.reject(id, new WebSocketRequestError(event.detail));
75
+ this.reject(id, new WebSocketRequestError(`Cannot complete WebSocket request: ${event.detail}`));
76
76
  }
77
77
  else {
78
78
  // If the request is not recognized, use the parsed request as an id
79
79
  const id = WebSocketRequestDispatcher.requestToId(parsedRequest);
80
- this.reject(id, new WebSocketRequestError(event.detail));
80
+ this.reject(id, new WebSocketRequestError(`Cannot complete WebSocket request: ${event.detail}`));
81
81
  }
82
82
  }
83
83
  }
@@ -88,7 +88,7 @@ export class WebSocketRequestDispatcher {
88
88
  // Throws all pending requests if the connection is dropped
89
89
  socket.addEventListener("close", () => {
90
90
  this.pending.forEach(({ reject }) => {
91
- reject(new WebSocketRequestError("The WebSocket connection has been closed."));
91
+ reject(new WebSocketRequestError("Cannot complete WebSocket request: connection is closed"));
92
92
  });
93
93
  this.pending.clear();
94
94
  });
@@ -48,12 +48,15 @@ export declare class WebSocketTransport implements IRequestTransport, ISubscript
48
48
  protected _hlEvents: HyperliquidEventTarget;
49
49
  /**
50
50
  * Map of active subscriptions.
51
- * - Key: Unique subscription identifier (stringified payload)
52
- * - Value: Subscription info containing payload and listener mappings
51
+ * - Key: Unique subscription identifier based on payload
52
+ * - Value: Subscription info containing the subscription request promise
53
+ * and a map of listeners to their metadata (channel + unsubscribe function).
53
54
  */
54
55
  protected _subscriptions: Map<string, {
55
- channel: string;
56
- listeners: Map<(data: CustomEvent) => void, () => Promise<void>>;
56
+ listeners: Map<(data: CustomEvent) => void, {
57
+ channel: string;
58
+ unsubscribe: (signal?: AbortSignal) => Promise<void>;
59
+ }>;
57
60
  requestPromise: Promise<unknown>;
58
61
  }>;
59
62
  /**
@@ -107,11 +110,5 @@ export declare class WebSocketTransport implements IRequestTransport, ISubscript
107
110
  * @returns A promise that resolves when the connection is fully closed.
108
111
  */
109
112
  close(signal?: AbortSignal): Promise<void>;
110
- /**
111
- * Combines timeout and user-provided signal.
112
- * @param signal - A user-provided signal.
113
- * @returns An AbortSignal that triggers when either the timeout or user-provided signal aborts.
114
- */
115
- protected combineSignals(signal?: AbortSignal): AbortSignal;
116
113
  }
117
114
  //# sourceMappingURL=websocket_transport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"websocket_transport.d.ts","sourceRoot":"","sources":["../../../../src/src/transports/websocket/websocket_transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,KAAK,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AACvG,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1F;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACtC;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IAEnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB;;;OAGG;IACH,SAAS,CAAC,EAAE;QACR;;;;WAIG;QACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5B,CAAC;IAEF;;OAEG;IACH,SAAS,CAAC,EAAE,4BAA4B,CAAC;CAC5C;AAED;;GAEG;AACH,qBAAa,kBAAmB,YAAW,iBAAiB,EAAE,sBAAsB;IAChF,qDAAqD;IACrD,SAAS,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9C,iDAAiD;IACjD,SAAS,CAAC,YAAY,EAAE,0BAA0B,CAAC;IAEnD,6CAA6C;IAC7C,SAAS,CAAC,SAAS,EAAE,sBAAsB,CAAC;IAE5C;;;;OAIG;IACH,SAAS,CAAC,cAAc,EAAE,GAAG,CACzB,MAAM,EACN;QACI,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACjE,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;KACpC,CACJ,CAUG;IAEJ;;;OAGG;IACH,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvB,yCAAyC;IACzC,QAAQ,CAAC,SAAS,EAAE;QAChB;;;WAGG;QACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;KACpC,CAAC;IAEF,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IAEvC;;;OAGG;gBACS,OAAO,CAAC,EAAE,yBAAyB;IAwC/C;;;;;;;;OAQG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAUvG;;;;;;;OAOG;IACG,SAAS,CACX,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,EACrC,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,YAAY,CAAC;IAqDxB;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB1C;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB1C;;;;OAIG;IACH,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,WAAW;CAM9D"}
1
+ {"version":3,"file":"websocket_transport.d.ts","sourceRoot":"","sources":["../../../../src/src/transports/websocket/websocket_transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,KAAK,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AACvG,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1F;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACtC;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IAEnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB;;;OAGG;IACH,SAAS,CAAC,EAAE;QACR;;;;WAIG;QACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5B,CAAC;IAEF;;OAEG;IACH,SAAS,CAAC,EAAE,4BAA4B,CAAC;CAC5C;AAED;;GAEG;AACH,qBAAa,kBAAmB,YAAW,iBAAiB,EAAE,sBAAsB;IAChF,qDAAqD;IACrD,SAAS,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9C,iDAAiD;IACjD,SAAS,CAAC,YAAY,EAAE,0BAA0B,CAAC;IAEnD,6CAA6C;IAC7C,SAAS,CAAC,SAAS,EAAE,sBAAsB,CAAC;IAE5C;;;;;OAKG;IACH,SAAS,CAAC,cAAc,EAAE,GAAG,CACzB,MAAM,EACN;QACI,SAAS,EAAE,GAAG,CACV,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,EAC3B;YACI,OAAO,EAAE,MAAM,CAAC;YAChB,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;SACxD,CACJ,CAAC;QACF,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;KACpC,CACJ,CAAa;IAEd;;;OAGG;IACH,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvB,yCAAyC;IACzC,QAAQ,CAAC,SAAS,EAAE;QAChB;;;WAGG;QACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;KACpC,CAAC;IAEF,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IAEvC;;;OAGG;gBACS,OAAO,CAAC,EAAE,yBAAyB;IAwC/C;;;;;;;;OAQG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAevG;;;;;;;OAOG;IACG,SAAS,CACX,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,EACrC,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,YAAY,CAAC;IAwExB;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB1C;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAoB7C"}
@@ -33,8 +33,9 @@ export class WebSocketTransport {
33
33
  });
34
34
  /**
35
35
  * Map of active subscriptions.
36
- * - Key: Unique subscription identifier (stringified payload)
37
- * - Value: Subscription info containing payload and listener mappings
36
+ * - Key: Unique subscription identifier based on payload
37
+ * - Value: Subscription info containing the subscription request promise
38
+ * and a map of listeners to their metadata (channel + unsubscribe function).
38
39
  */
39
40
  Object.defineProperty(this, "_subscriptions", {
40
41
  enumerable: true,
@@ -89,8 +90,8 @@ export class WebSocketTransport {
89
90
  this._keepAliveTimer = undefined;
90
91
  }
91
92
  // Clear all subscriptions
92
- for (const [_, { channel, listeners }] of this._subscriptions.entries()) {
93
- for (const [listener] of listeners) {
93
+ for (const subscriptionInfo of this._subscriptions.values()) {
94
+ for (const [listener, { channel }] of subscriptionInfo.listeners) {
94
95
  this._hlEvents.removeEventListener(channel, listener);
95
96
  }
96
97
  }
@@ -112,7 +113,11 @@ export class WebSocketTransport {
112
113
  throw new Error("Explorer requests are not supported in the Hyperliquid WebSocket API.");
113
114
  }
114
115
  // Send the request and wait for a response
115
- return this._wsRequester.request("post", { type, payload }, this.combineSignals(signal));
116
+ const timeoutSignal = this.timeout ? AbortSignal.timeout(this.timeout) : undefined;
117
+ const combinedSignal = timeoutSignal && signal
118
+ ? AbortSignal.any([timeoutSignal, signal])
119
+ : timeoutSignal ?? signal;
120
+ return this._wsRequester.request("post", { type, payload }, combinedSignal);
116
121
  }
117
122
  /**
118
123
  * Subscribes to a Hyperliquid event channel.
@@ -124,48 +129,62 @@ export class WebSocketTransport {
124
129
  */
125
130
  async subscribe(channel, payload, listener, signal) {
126
131
  // Create a unique identifier for the subscription
127
- const id = `${channel}::${WebSocketRequestDispatcher.requestToId(payload)}`;
132
+ const id = WebSocketRequestDispatcher.requestToId(payload);
128
133
  // Initialize new subscription, if it doesn't exist
129
134
  let subscriptionInfo = this._subscriptions.get(id);
130
135
  if (!subscriptionInfo) {
131
136
  // Send subscription request
132
- const requestPromise = this._wsRequester.request("subscribe", payload, this.combineSignals(signal))
133
- .catch((error) => {
134
- this._subscriptions.delete(id);
135
- throw error;
136
- });
137
+ const timeoutSignal = this.timeout ? AbortSignal.timeout(this.timeout) : undefined;
138
+ const combinedSignal = timeoutSignal && signal
139
+ ? AbortSignal.any([timeoutSignal, signal])
140
+ : timeoutSignal ?? signal;
141
+ const requestPromise = this._wsRequester.request("subscribe", payload, combinedSignal);
137
142
  // Cache subscription info
138
- subscriptionInfo = { channel, listeners: new Map(), requestPromise };
143
+ subscriptionInfo = { listeners: new Map(), requestPromise };
139
144
  this._subscriptions.set(id, subscriptionInfo);
140
145
  }
141
- // Check if we already have an unsubscribe function for this listener
142
- let unsubscribe = subscriptionInfo.listeners.get(listener);
143
- if (!unsubscribe) {
144
- // Create new unsubscribe function if none exists
145
- unsubscribe = async (signal) => {
146
+ // Initialize new listener, if it doesn't exist
147
+ let listenerInfo = subscriptionInfo.listeners.get(listener);
148
+ if (!listenerInfo) {
149
+ // Create new unsubscribe function
150
+ const unsubscribe = async (signal) => {
146
151
  // Remove listener and cleanup
147
152
  this._hlEvents.removeEventListener(channel, listener);
148
153
  const isDeleted = subscriptionInfo.listeners.delete(listener);
149
154
  // If no listeners remain, remove subscription entirely
150
155
  // `isDeleted` means that the map had a listener before and became 0 after that
151
156
  if (subscriptionInfo.listeners.size === 0 && isDeleted) {
157
+ // Cleanup subscription
152
158
  this._subscriptions.delete(id);
153
- await this._wsRequester.request("unsubscribe", payload, this.combineSignals(signal));
159
+ // Send unsubscription request
160
+ const timeoutSignal = this.timeout ? AbortSignal.timeout(this.timeout) : undefined;
161
+ const combinedSignal = timeoutSignal && signal
162
+ ? AbortSignal.any([timeoutSignal, signal])
163
+ : timeoutSignal ?? signal;
164
+ await this._wsRequester.request("unsubscribe", payload, combinedSignal);
154
165
  }
155
166
  };
156
- // Add event listener & Cache unsubscribe function
167
+ // Cache listener info
168
+ listenerInfo = { channel, unsubscribe };
169
+ subscriptionInfo.listeners.set(listener, listenerInfo);
170
+ // Add event listener
157
171
  this._hlEvents.addEventListener(channel, listener);
158
- subscriptionInfo.listeners.set(listener, unsubscribe);
159
172
  }
160
173
  // Wait for the initial subscription request to complete
161
174
  await subscriptionInfo.requestPromise.catch((error) => {
162
- // Cleanup the subscription and rethrow the error
175
+ // Remove listener and cleanup
163
176
  this._hlEvents.removeEventListener(channel, listener);
164
177
  subscriptionInfo.listeners.delete(listener);
178
+ // If no listeners remain, remove subscription entirely
179
+ if (subscriptionInfo.listeners.size === 0)
180
+ this._subscriptions.delete(id);
181
+ // Rethrow the error
165
182
  throw error;
166
183
  });
167
184
  // Return subscription control object
168
- return { unsubscribe };
185
+ return {
186
+ unsubscribe: listenerInfo.unsubscribe,
187
+ };
169
188
  }
170
189
  /**
171
190
  * Waits until the WebSocket connection is ready.
@@ -217,17 +236,4 @@ export class WebSocketTransport {
217
236
  this.socket.close();
218
237
  });
219
238
  }
220
- /**
221
- * Combines timeout and user-provided signal.
222
- * @param signal - A user-provided signal.
223
- * @returns An AbortSignal that triggers when either the timeout or user-provided signal aborts.
224
- */
225
- combineSignals(signal) {
226
- const signals = [];
227
- if (this.timeout)
228
- signals.push(AbortSignal.timeout(this.timeout));
229
- if (signal)
230
- signals.push(signal);
231
- return signals.length > 1 ? AbortSignal.any(signals) : signals[0];
232
- }
233
239
  }
@@ -0,0 +1,3 @@
1
+ /** Hexadecimal string starting with `0x`. */
2
+ export type Hex = `0x${string}`;
3
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/src/types/common.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,MAAM,MAAM,GAAG,GAAG,KAAK,MAAM,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,36 @@
1
+ import type { Hex } from "../common.js";
2
+ import type { TIF } from "../info/orders.js";
3
+ /** Order parameters. */
4
+ export type OrderParams = {
5
+ /** Asset ID. */
6
+ a: number;
7
+ /** Position side (`true` for long, `false` for short). */
8
+ b: boolean;
9
+ /** Price. */
10
+ p: string;
11
+ /** Size (in base currency units). */
12
+ s: string;
13
+ /** Is reduce-only? */
14
+ r: boolean;
15
+ /** Order type. */
16
+ t: {
17
+ /** Limit order parameters. */
18
+ limit: {
19
+ /** Time-in-force. */
20
+ tif: TIF;
21
+ };
22
+ } | {
23
+ /** Trigger order parameters. */
24
+ trigger: {
25
+ /** Is market order? */
26
+ isMarket: boolean;
27
+ /** Trigger price. */
28
+ triggerPx: string;
29
+ /** Indicates whether it is take profit or stop loss. */
30
+ tpsl: "tp" | "sl";
31
+ };
32
+ };
33
+ /** Client Order ID. */
34
+ c?: Hex;
35
+ };
36
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/src/types/exchange/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAE7C,wBAAwB;AACxB,MAAM,MAAM,WAAW,GAAG;IACtB,gBAAgB;IAChB,CAAC,EAAE,MAAM,CAAC;IACV,0DAA0D;IAC1D,CAAC,EAAE,OAAO,CAAC;IACX,aAAa;IACb,CAAC,EAAE,MAAM,CAAC;IACV,qCAAqC;IACrC,CAAC,EAAE,MAAM,CAAC;IACV,sBAAsB;IACtB,CAAC,EAAE,OAAO,CAAC;IACX,kBAAkB;IAClB,CAAC,EACK;QACE,8BAA8B;QAC9B,KAAK,EAAE;YACH,qBAAqB;YACrB,GAAG,EAAE,GAAG,CAAC;SACZ,CAAC;KACL,GACC;QACE,gCAAgC;QAChC,OAAO,EAAE;YACL,uBAAuB;YACvB,QAAQ,EAAE,OAAO,CAAC;YAClB,qBAAqB;YACrB,SAAS,EAAE,MAAM,CAAC;YAClB,wDAAwD;YACxD,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;SACrB,CAAC;KACL,CAAC;IACN,uBAAuB;IACvB,CAAC,CAAC,EAAE,GAAG,CAAC;CACX,CAAC"}
@@ -0,0 +1 @@
1
+ export {};