@nktkas/hyperliquid 0.13.1 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +334 -107
  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 +4 -12
  24. package/esm/mod.d.ts.map +1 -1
  25. package/esm/mod.js +2 -2
  26. package/{script/src/transports → esm/src}/base.d.ts +10 -13
  27. package/esm/src/base.d.ts.map +1 -0
  28. package/esm/src/base.js +14 -0
  29. package/esm/src/clients/event.d.ts +59 -18
  30. package/esm/src/clients/event.d.ts.map +1 -1
  31. package/esm/src/clients/event.js +74 -18
  32. package/esm/src/clients/public.d.ts +348 -53
  33. package/esm/src/clients/public.d.ts.map +1 -1
  34. package/esm/src/clients/public.js +349 -50
  35. package/esm/src/clients/wallet.d.ts +345 -73
  36. package/esm/src/clients/wallet.d.ts.map +1 -1
  37. package/esm/src/clients/wallet.js +979 -229
  38. package/esm/src/signing.d.ts +135 -0
  39. package/esm/src/signing.d.ts.map +1 -0
  40. package/esm/src/signing.js +188 -0
  41. package/esm/src/transports/http/http_transport.d.ts +1 -1
  42. package/esm/src/transports/http/http_transport.d.ts.map +1 -1
  43. package/esm/src/transports/http/http_transport.js +1 -1
  44. package/esm/src/transports/websocket/_hyperliquid_event_target.d.ts +64 -0
  45. package/esm/src/transports/websocket/_hyperliquid_event_target.d.ts.map +1 -0
  46. package/esm/src/transports/websocket/_hyperliquid_event_target.js +52 -0
  47. package/esm/src/transports/websocket/{reconnecting_websocket.d.ts → _reconnecting_websocket.d.ts} +26 -26
  48. package/esm/src/transports/websocket/_reconnecting_websocket.d.ts.map +1 -0
  49. package/esm/src/transports/websocket/{reconnecting_websocket.js → _reconnecting_websocket.js} +91 -76
  50. package/{script/src/transports/websocket/websocket_request_dispatcher.d.ts → esm/src/transports/websocket/_websocket_request_dispatcher.d.ts} +3 -7
  51. package/esm/src/transports/websocket/_websocket_request_dispatcher.d.ts.map +1 -0
  52. package/esm/src/transports/websocket/{websocket_request_dispatcher.js → _websocket_request_dispatcher.js} +6 -10
  53. package/esm/src/transports/websocket/websocket_transport.d.ts +15 -21
  54. package/esm/src/transports/websocket/websocket_transport.d.ts.map +1 -1
  55. package/esm/src/transports/websocket/websocket_transport.js +55 -52
  56. package/esm/src/types/exchange/requests.d.ts +298 -79
  57. package/esm/src/types/exchange/requests.d.ts.map +1 -1
  58. package/esm/src/types/exchange/responses.d.ts +38 -38
  59. package/esm/src/types/exchange/responses.d.ts.map +1 -1
  60. package/esm/src/types/explorer/requests.d.ts +23 -10
  61. package/esm/src/types/explorer/requests.d.ts.map +1 -1
  62. package/esm/src/types/explorer/responses.d.ts +45 -3
  63. package/esm/src/types/explorer/responses.d.ts.map +1 -1
  64. package/esm/src/types/info/accounts.d.ts +279 -189
  65. package/esm/src/types/info/accounts.d.ts.map +1 -1
  66. package/esm/src/types/info/assets.d.ts +191 -185
  67. package/esm/src/types/info/assets.d.ts.map +1 -1
  68. package/esm/src/types/info/delegations.d.ts +117 -0
  69. package/esm/src/types/info/delegations.d.ts.map +1 -0
  70. package/esm/src/types/info/orders.d.ts +94 -94
  71. package/esm/src/types/info/orders.d.ts.map +1 -1
  72. package/esm/src/types/info/requests.d.ts +192 -64
  73. package/esm/src/types/info/requests.d.ts.map +1 -1
  74. package/esm/src/types/info/vaults.d.ts +42 -85
  75. package/esm/src/types/info/vaults.d.ts.map +1 -1
  76. package/esm/src/types/mod.d.ts +14 -0
  77. package/esm/src/types/mod.d.ts.map +1 -0
  78. package/esm/src/types/subscriptions/requests.d.ts +11 -1
  79. package/esm/src/types/subscriptions/requests.d.ts.map +1 -1
  80. package/{script/src/types/subscriptions/common.d.ts → esm/src/types/subscriptions/responses.d.ts} +18 -3
  81. package/esm/src/types/subscriptions/responses.d.ts.map +1 -0
  82. package/package.json +20 -4
  83. package/script/deps/jsr.io/@derzade/typescript-event-target/1.1.1/mod.js +13 -3
  84. package/script/deps/jsr.io/@derzade/typescript-event-target/1.1.1/src/TypedEventTarget.js +23 -13
  85. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/_assert.js +55 -45
  86. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/_u64.js +97 -87
  87. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/crypto.js +14 -4
  88. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/sha3.js +288 -278
  89. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/utils.js +238 -228
  90. package/script/deps/jsr.io/@std/bytes/1.0.5/_types.d.ts +9 -0
  91. package/script/deps/jsr.io/@std/bytes/1.0.5/_types.d.ts.map +1 -0
  92. package/script/deps/jsr.io/@std/bytes/1.0.5/_types.js +13 -0
  93. package/script/deps/jsr.io/@std/bytes/{1.0.4 → 1.0.5}/concat.d.ts +3 -1
  94. package/script/deps/jsr.io/@std/bytes/1.0.5/concat.d.ts.map +1 -0
  95. package/script/deps/jsr.io/@std/bytes/1.0.5/concat.js +45 -0
  96. package/script/deps/jsr.io/@std/encoding/1.0.7/_types.d.ts +9 -0
  97. package/script/deps/jsr.io/@std/encoding/1.0.7/_types.d.ts.map +1 -0
  98. package/script/deps/jsr.io/@std/encoding/1.0.7/_types.js +13 -0
  99. package/script/deps/jsr.io/@std/encoding/{1.0.6 → 1.0.7}/_validate_binary_like.d.ts.map +1 -1
  100. package/script/deps/jsr.io/@std/encoding/1.0.7/_validate_binary_like.js +39 -0
  101. package/{esm/deps/jsr.io/@std/encoding/1.0.6 → script/deps/jsr.io/@std/encoding/1.0.7}/hex.d.ts +3 -1
  102. package/script/deps/jsr.io/@std/encoding/1.0.7/hex.d.ts.map +1 -0
  103. package/script/deps/jsr.io/@std/encoding/1.0.7/hex.js +123 -0
  104. package/script/deps/jsr.io/@std/msgpack/1.0.3/_types.d.ts +9 -0
  105. package/script/deps/jsr.io/@std/msgpack/1.0.3/_types.d.ts.map +1 -0
  106. package/script/deps/jsr.io/@std/msgpack/1.0.3/_types.js +13 -0
  107. package/script/deps/jsr.io/@std/msgpack/{1.0.2 → 1.0.3}/encode.d.ts +3 -1
  108. package/script/deps/jsr.io/@std/msgpack/1.0.3/encode.d.ts.map +1 -0
  109. package/script/deps/jsr.io/@std/msgpack/1.0.3/encode.js +250 -0
  110. package/script/mod.d.ts +4 -12
  111. package/script/mod.d.ts.map +1 -1
  112. package/script/mod.js +21 -13
  113. package/{esm/src/transports → script/src}/base.d.ts +10 -13
  114. package/script/src/base.d.ts.map +1 -0
  115. package/script/src/base.js +29 -0
  116. package/script/src/clients/event.d.ts +59 -18
  117. package/script/src/clients/event.d.ts.map +1 -1
  118. package/script/src/clients/event.js +551 -485
  119. package/script/src/clients/public.d.ts +348 -53
  120. package/script/src/clients/public.d.ts.map +1 -1
  121. package/script/src/clients/public.js +1017 -708
  122. package/script/src/clients/wallet.d.ts +345 -73
  123. package/script/src/clients/wallet.d.ts.map +1 -1
  124. package/script/src/clients/wallet.js +1737 -977
  125. package/script/src/signing.d.ts +135 -0
  126. package/script/src/signing.d.ts.map +1 -0
  127. package/script/src/signing.js +203 -0
  128. package/script/src/transports/http/http_transport.d.ts +1 -1
  129. package/script/src/transports/http/http_transport.d.ts.map +1 -1
  130. package/script/src/transports/http/http_transport.js +174 -164
  131. package/script/src/transports/websocket/_hyperliquid_event_target.d.ts +64 -0
  132. package/script/src/transports/websocket/_hyperliquid_event_target.d.ts.map +1 -0
  133. package/script/src/transports/websocket/_hyperliquid_event_target.js +66 -0
  134. package/script/src/transports/websocket/{reconnecting_websocket.d.ts → _reconnecting_websocket.d.ts} +26 -26
  135. package/script/src/transports/websocket/_reconnecting_websocket.d.ts.map +1 -0
  136. package/script/src/transports/websocket/_reconnecting_websocket.js +400 -0
  137. package/{esm/src/transports/websocket/websocket_request_dispatcher.d.ts → script/src/transports/websocket/_websocket_request_dispatcher.d.ts} +3 -7
  138. package/script/src/transports/websocket/_websocket_request_dispatcher.d.ts.map +1 -0
  139. package/script/src/transports/websocket/_websocket_request_dispatcher.js +212 -0
  140. package/script/src/transports/websocket/websocket_transport.d.ts +15 -21
  141. package/script/src/transports/websocket/websocket_transport.d.ts.map +1 -1
  142. package/script/src/transports/websocket/websocket_transport.js +235 -222
  143. package/script/src/types/exchange/requests.d.ts +298 -79
  144. package/script/src/types/exchange/requests.d.ts.map +1 -1
  145. package/script/src/types/exchange/requests.js +12 -2
  146. package/script/src/types/exchange/responses.d.ts +38 -38
  147. package/script/src/types/exchange/responses.d.ts.map +1 -1
  148. package/script/src/types/exchange/responses.js +12 -2
  149. package/script/src/types/explorer/requests.d.ts +23 -10
  150. package/script/src/types/explorer/requests.d.ts.map +1 -1
  151. package/script/src/types/explorer/requests.js +12 -2
  152. package/script/src/types/explorer/responses.d.ts +45 -3
  153. package/script/src/types/explorer/responses.d.ts.map +1 -1
  154. package/script/src/types/explorer/responses.js +12 -2
  155. package/script/src/types/info/accounts.d.ts +279 -189
  156. package/script/src/types/info/accounts.d.ts.map +1 -1
  157. package/script/src/types/info/accounts.js +12 -2
  158. package/script/src/types/info/assets.d.ts +191 -185
  159. package/script/src/types/info/assets.d.ts.map +1 -1
  160. package/script/src/types/info/assets.js +12 -2
  161. package/script/src/types/info/delegations.d.ts +117 -0
  162. package/script/src/types/info/delegations.d.ts.map +1 -0
  163. package/script/src/types/info/delegations.js +12 -0
  164. package/script/src/types/info/orders.d.ts +94 -94
  165. package/script/src/types/info/orders.d.ts.map +1 -1
  166. package/script/src/types/info/orders.js +12 -2
  167. package/script/src/types/info/requests.d.ts +192 -64
  168. package/script/src/types/info/requests.d.ts.map +1 -1
  169. package/script/src/types/info/requests.js +12 -2
  170. package/script/src/types/info/vaults.d.ts +42 -85
  171. package/script/src/types/info/vaults.d.ts.map +1 -1
  172. package/script/src/types/info/vaults.js +12 -2
  173. package/script/src/types/mod.d.ts +14 -0
  174. package/script/src/types/mod.d.ts.map +1 -0
  175. package/script/src/types/mod.js +12 -0
  176. package/script/src/types/subscriptions/requests.d.ts +11 -1
  177. package/script/src/types/subscriptions/requests.d.ts.map +1 -1
  178. package/script/src/types/subscriptions/requests.js +12 -2
  179. package/{esm/src/types/subscriptions/common.d.ts → script/src/types/subscriptions/responses.d.ts} +18 -3
  180. package/script/src/types/subscriptions/responses.d.ts.map +1 -0
  181. package/script/src/types/subscriptions/responses.js +12 -0
  182. package/esm/deps/jsr.io/@std/bytes/1.0.4/concat.d.ts.map +0 -1
  183. package/esm/deps/jsr.io/@std/encoding/1.0.6/hex.d.ts.map +0 -1
  184. package/esm/deps/jsr.io/@std/msgpack/1.0.2/encode.d.ts.map +0 -1
  185. package/esm/src/transports/base.d.ts.map +0 -1
  186. package/esm/src/transports/base.js +0 -14
  187. package/esm/src/transports/websocket/hyperliquid_event_target.d.ts +0 -66
  188. package/esm/src/transports/websocket/hyperliquid_event_target.d.ts.map +0 -1
  189. package/esm/src/transports/websocket/hyperliquid_event_target.js +0 -33
  190. package/esm/src/transports/websocket/reconnecting_websocket.d.ts.map +0 -1
  191. package/esm/src/transports/websocket/websocket_request_dispatcher.d.ts.map +0 -1
  192. package/esm/src/types/common.d.ts +0 -3
  193. package/esm/src/types/common.d.ts.map +0 -1
  194. package/esm/src/types/exchange/common.d.ts +0 -36
  195. package/esm/src/types/exchange/common.d.ts.map +0 -1
  196. package/esm/src/types/explorer/common.d.ts +0 -37
  197. package/esm/src/types/explorer/common.d.ts.map +0 -1
  198. package/esm/src/types/subscriptions/common.d.ts.map +0 -1
  199. package/esm/src/types/subscriptions/common.js +0 -1
  200. package/esm/src/utils/key_sort.d.ts +0 -21
  201. package/esm/src/utils/key_sort.d.ts.map +0 -1
  202. package/esm/src/utils/key_sort.js +0 -124
  203. package/esm/src/utils/signing.d.ts +0 -109
  204. package/esm/src/utils/signing.d.ts.map +0 -1
  205. package/esm/src/utils/signing.js +0 -164
  206. package/script/deps/jsr.io/@std/bytes/1.0.4/concat.d.ts.map +0 -1
  207. package/script/deps/jsr.io/@std/bytes/1.0.4/concat.js +0 -35
  208. package/script/deps/jsr.io/@std/encoding/1.0.6/_validate_binary_like.js +0 -29
  209. package/script/deps/jsr.io/@std/encoding/1.0.6/hex.d.ts.map +0 -1
  210. package/script/deps/jsr.io/@std/encoding/1.0.6/hex.js +0 -113
  211. package/script/deps/jsr.io/@std/msgpack/1.0.2/encode.d.ts.map +0 -1
  212. package/script/deps/jsr.io/@std/msgpack/1.0.2/encode.js +0 -240
  213. package/script/src/transports/base.d.ts.map +0 -1
  214. package/script/src/transports/base.js +0 -18
  215. package/script/src/transports/websocket/hyperliquid_event_target.d.ts +0 -66
  216. package/script/src/transports/websocket/hyperliquid_event_target.d.ts.map +0 -1
  217. package/script/src/transports/websocket/hyperliquid_event_target.js +0 -37
  218. package/script/src/transports/websocket/reconnecting_websocket.d.ts.map +0 -1
  219. package/script/src/transports/websocket/reconnecting_websocket.js +0 -374
  220. package/script/src/transports/websocket/websocket_request_dispatcher.d.ts.map +0 -1
  221. package/script/src/transports/websocket/websocket_request_dispatcher.js +0 -206
  222. package/script/src/types/common.d.ts +0 -3
  223. package/script/src/types/common.d.ts.map +0 -1
  224. package/script/src/types/common.js +0 -2
  225. package/script/src/types/exchange/common.d.ts +0 -36
  226. package/script/src/types/exchange/common.d.ts.map +0 -1
  227. package/script/src/types/exchange/common.js +0 -2
  228. package/script/src/types/explorer/common.d.ts +0 -37
  229. package/script/src/types/explorer/common.d.ts.map +0 -1
  230. package/script/src/types/explorer/common.js +0 -2
  231. package/script/src/types/subscriptions/common.d.ts.map +0 -1
  232. package/script/src/types/subscriptions/common.js +0 -2
  233. package/script/src/utils/key_sort.d.ts +0 -21
  234. package/script/src/utils/key_sort.d.ts.map +0 -1
  235. package/script/src/utils/key_sort.js +0 -127
  236. package/script/src/utils/signing.d.ts +0 -109
  237. package/script/src/utils/signing.d.ts.map +0 -1
  238. package/script/src/utils/signing.js +0 -172
  239. /package/esm/deps/jsr.io/@std/encoding/{1.0.6 → 1.0.7}/_validate_binary_like.d.ts +0 -0
  240. /package/esm/src/types/{common.js → info/delegations.js} +0 -0
  241. /package/esm/src/types/{exchange/common.js → mod.js} +0 -0
  242. /package/esm/src/types/{explorer/common.js → subscriptions/responses.js} +0 -0
  243. /package/script/deps/jsr.io/@std/encoding/{1.0.6 → 1.0.7}/_validate_binary_like.d.ts +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/src/types/subscriptions/common.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,21 +0,0 @@
1
- import type { BatchModifyRequest, CancelByCloidRequest, CancelRequest, CreateSubAccountRequest, ModifyRequest, OrderRequest, ScheduleCancelRequest, SetReferrerRequest, SubAccountTransferRequest, TwapCancelRequest, TwapOrderRequest, UpdateIsolatedMarginRequest, UpdateLeverageRequest, VaultTransferRequest } from "../types/exchange/requests.js";
2
- import type { OrderParms } from "../types/exchange/common.js";
3
- /** Record of action types and their corresponding sorters. */
4
- export declare const sorters: {
5
- batchModify: (action: BatchModifyRequest["action"]) => BatchModifyRequest["action"];
6
- cancel: (action: CancelRequest["action"]) => CancelRequest["action"];
7
- cancelByCloid: (action: CancelByCloidRequest["action"]) => CancelByCloidRequest["action"];
8
- createSubAccount: (action: CreateSubAccountRequest["action"]) => CreateSubAccountRequest["action"];
9
- modify: (action: ModifyRequest["action"]) => ModifyRequest["action"];
10
- order: (action: OrderRequest["action"]) => OrderRequest["action"];
11
- scheduleCancel: (action: ScheduleCancelRequest["action"]) => ScheduleCancelRequest["action"];
12
- setReferrer: (action: SetReferrerRequest["action"]) => SetReferrerRequest["action"];
13
- subAccountTransfer: (action: SubAccountTransferRequest["action"]) => SubAccountTransferRequest["action"];
14
- twapCancel: (action: TwapCancelRequest["action"]) => TwapCancelRequest["action"];
15
- twapOrder: (action: TwapOrderRequest["action"]) => TwapOrderRequest["action"];
16
- updateIsolatedMargin: (action: UpdateIsolatedMarginRequest["action"]) => UpdateIsolatedMarginRequest["action"];
17
- updateLeverage: (action: UpdateLeverageRequest["action"]) => UpdateLeverageRequest["action"];
18
- vaultTransfer: (action: VaultTransferRequest["action"]) => VaultTransferRequest["action"];
19
- _order: (order: OrderParms) => OrderParms;
20
- };
21
- //# sourceMappingURL=key_sort.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"key_sort.d.ts","sourceRoot":"","sources":["../../../src/src/utils/key_sort.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,uBAAuB,EACvB,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,kBAAkB,EAClB,yBAAyB,EACzB,iBAAiB,EACjB,gBAAgB,EAChB,2BAA2B,EAC3B,qBAAqB,EACrB,oBAAoB,EACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D,8DAA8D;AAE9D,eAAO,MAAM,OAAO;0BACM,kBAAkB,CAAC,QAAQ,CAAC,KAAG,kBAAkB,CAAC,QAAQ,CAAC;qBAOhE,aAAa,CAAC,QAAQ,CAAC,KAAG,aAAa,CAAC,QAAQ,CAAC;4BAO1C,oBAAoB,CAAC,QAAQ,CAAC,KAAG,oBAAoB,CAAC,QAAQ,CAAC;+BAO5D,uBAAuB,CAAC,QAAQ,CAAC,KAAG,uBAAuB,CAAC,QAAQ,CAAC;qBAI/E,aAAa,CAAC,QAAQ,CAAC,KAAG,aAAa,CAAC,QAAQ,CAAC;oBAKlD,YAAY,CAAC,QAAQ,CAAC,KAAG,YAAY,CAAC,QAAQ,CAAC;6BAUtC,qBAAqB,CAAC,QAAQ,CAAC,KAAG,qBAAqB,CAAC,QAAQ,CAAC;0BAQpE,kBAAkB,CAAC,QAAQ,CAAC,KAAG,kBAAkB,CAAC,QAAQ,CAAC;iCAIpD,yBAAyB,CAAC,QAAQ,CAAC,KAAG,yBAAyB,CAAC,QAAQ,CAAC;yBAMjF,iBAAiB,CAAC,QAAQ,CAAC,KAAG,iBAAiB,CAAC,QAAQ,CAAC;wBAK1D,gBAAgB,CAAC,QAAQ,CAAC,KAAG,gBAAgB,CAAC,QAAQ,CAAC;mCAW5C,2BAA2B,CAAC,QAAQ,CAAC,KAAG,2BAA2B,CAAC,QAAQ,CAAC;6BAMnF,qBAAqB,CAAC,QAAQ,CAAC,KAAG,qBAAqB,CAAC,QAAQ,CAAC;4BAMlE,oBAAoB,CAAC,QAAQ,CAAC,KAAG,oBAAoB,CAAC,QAAQ,CAAC;oBAOvE,UAAU,KAAG,UAAU;CAyB1C,CAAC"}
@@ -1,124 +0,0 @@
1
- /** Record of action types and their corresponding sorters. */
2
- // NOTE: An object after sorting must not contain undefined values.
3
- export const sorters = {
4
- batchModify: (action) => ({
5
- type: action.type,
6
- modifies: action.modifies.map((m) => ({
7
- oid: m.oid,
8
- order: sorters._order(m.order),
9
- })),
10
- }),
11
- cancel: (action) => ({
12
- type: action.type,
13
- cancels: action.cancels.map((c) => ({
14
- a: c.a,
15
- o: c.o,
16
- })),
17
- }),
18
- cancelByCloid: (action) => ({
19
- type: action.type,
20
- cancels: action.cancels.map((cancel) => ({
21
- asset: cancel.asset,
22
- cloid: cancel.cloid,
23
- })),
24
- }),
25
- createSubAccount: (action) => ({
26
- type: action.type,
27
- name: action.name,
28
- }),
29
- modify: (action) => ({
30
- type: action.type,
31
- oid: action.oid,
32
- order: sorters._order(action.order),
33
- }),
34
- order: (action) => {
35
- const sortedAction = {
36
- type: action.type,
37
- orders: action.orders.map(sorters._order),
38
- grouping: action.grouping,
39
- builder: action.builder ? { b: action.builder.b, f: action.builder.f } : undefined,
40
- };
41
- if (action.builder === undefined)
42
- delete sortedAction.builder;
43
- return sortedAction;
44
- },
45
- scheduleCancel: (action) => {
46
- const sortedAction = {
47
- type: action.type,
48
- time: action.time,
49
- };
50
- if (action.time === undefined)
51
- delete sortedAction.time;
52
- return sortedAction;
53
- },
54
- setReferrer: (action) => ({
55
- type: action.type,
56
- code: action.code,
57
- }),
58
- subAccountTransfer: (action) => ({
59
- type: action.type,
60
- subAccountUser: action.subAccountUser,
61
- isDeposit: action.isDeposit,
62
- usd: action.usd,
63
- }),
64
- twapCancel: (action) => ({
65
- type: action.type,
66
- a: action.a,
67
- t: action.t,
68
- }),
69
- twapOrder: (action) => ({
70
- type: action.type,
71
- twap: {
72
- a: action.twap.a,
73
- b: action.twap.b,
74
- s: action.twap.s,
75
- r: action.twap.r,
76
- m: action.twap.m,
77
- t: action.twap.t,
78
- },
79
- }),
80
- updateIsolatedMargin: (action) => ({
81
- type: action.type,
82
- asset: action.asset,
83
- isBuy: action.isBuy,
84
- ntli: action.ntli,
85
- }),
86
- updateLeverage: (action) => ({
87
- type: action.type,
88
- asset: action.asset,
89
- isCross: action.isCross,
90
- leverage: action.leverage,
91
- }),
92
- vaultTransfer: (action) => ({
93
- type: action.type,
94
- vaultAddress: action.vaultAddress,
95
- isDeposit: action.isDeposit,
96
- usd: action.usd,
97
- }),
98
- _order: (order) => {
99
- const sortedOrder = {
100
- a: order.a,
101
- b: order.b,
102
- p: order.p,
103
- s: order.s,
104
- r: order.r,
105
- t: "limit" in order.t
106
- ? {
107
- limit: {
108
- tif: order.t.limit.tif,
109
- },
110
- }
111
- : {
112
- trigger: {
113
- isMarket: order.t.trigger.isMarket,
114
- triggerPx: order.t.trigger.triggerPx,
115
- tpsl: order.t.trigger.tpsl,
116
- },
117
- },
118
- c: order.c,
119
- };
120
- if (order.c === undefined)
121
- delete sortedOrder.c;
122
- return sortedOrder;
123
- },
124
- };
@@ -1,109 +0,0 @@
1
- import { type ValueType } from "../../deps/jsr.io/@std/msgpack/1.0.2/encode.js";
2
- type Hex = `0x${string}`;
3
- /** Abstract interface for a [ethers.js](https://docs.ethers.org/v6/api/providers/#Signer) signer. */
4
- export interface AbstractEthersSigner {
5
- signTypedData(domain: {
6
- name: string;
7
- version: string;
8
- chainId: number;
9
- verifyingContract: string;
10
- }, types: {
11
- [key: string]: {
12
- name: string;
13
- type: string;
14
- }[];
15
- }, value: Record<string, unknown>): Promise<string>;
16
- }
17
- /** Abstract interface for a [ethers.js v5](https://docs.ethers.org/v5/api/providers/#Signer) signer. */
18
- export interface AbstractEthersV5Signer {
19
- _signTypedData(domain: {
20
- name: string;
21
- version: string;
22
- chainId: number;
23
- verifyingContract: string;
24
- }, types: {
25
- [key: string]: {
26
- name: string;
27
- type: string;
28
- }[];
29
- }, value: Record<string, unknown>): Promise<string>;
30
- }
31
- /** Abstract interface for a [viem](https://viem.sh/docs/clients/wallet) wallet client. */
32
- export interface AbstractViemWalletClient {
33
- signTypedData(params: {
34
- domain: {
35
- name: string;
36
- version: string;
37
- chainId: number;
38
- verifyingContract: Hex;
39
- };
40
- types: {
41
- [key: string]: {
42
- name: string;
43
- type: string;
44
- }[];
45
- };
46
- primaryType: string;
47
- message: Record<string, unknown>;
48
- }): Promise<Hex>;
49
- }
50
- /**
51
- * Create a hash of the action.
52
- * @param action - The action to hash.
53
- * @param nonce - The nonce of the action.
54
- * @param vaultAddress - Optional vault address.
55
- * @returns The hash of the action.
56
- */
57
- export declare function createActionHash(action: ValueType, nonce: number, vaultAddress?: Hex): Hex;
58
- /**
59
- * Sign an L1 action.
60
- * @param wallet - The wallet to sign with.
61
- * @param isTestnet - A boolean indicating if the action is for the testnet.
62
- * @param action - The action to sign.
63
- * @param nonce - The nonce of the action.
64
- * @param vaultAddress - Optional vault address.
65
- * @returns The signature.
66
- */
67
- export declare function signL1Action(wallet: AbstractEthersSigner | AbstractEthersV5Signer | AbstractViemWalletClient, isTestnet: boolean, action: ValueType, nonce: number, vaultAddress?: Hex): Promise<{
68
- r: Hex;
69
- s: Hex;
70
- v: number;
71
- }>;
72
- /**
73
- * Sign a user-signed action.
74
- * @param wallet - The wallet to sign with.
75
- * @param action - The action to sign.
76
- * @param types - The types of the action.
77
- * @param chainId - The chain ID of the action.
78
- * @returns The signature.
79
- */
80
- export declare function signUserSignedAction(wallet: AbstractEthersSigner | AbstractEthersV5Signer | AbstractViemWalletClient, action: Record<string, unknown>, types: {
81
- [key: string]: {
82
- name: string;
83
- type: string;
84
- }[];
85
- }, chainId: number): Promise<{
86
- r: Hex;
87
- s: Hex;
88
- v: number;
89
- }>;
90
- /**
91
- * Checks if the given client is an abstract signer (ethers.js).
92
- * @param client - The client to check.
93
- * @returns A boolean indicating if the client is an abstract signer.
94
- */
95
- export declare function isAbstractEthersSigner(client: unknown): client is AbstractEthersSigner;
96
- /**
97
- * Checks if the given client is an abstract signer (ethers.js v5).
98
- * @param client - The client to check.
99
- * @returns A boolean indicating if the client is an abstract signer.
100
- */
101
- export declare function isAbstractEthersV5Signer(client: unknown): client is AbstractEthersV5Signer;
102
- /**
103
- * Checks if the given client is an abstract wallet client (viem).
104
- * @param client - The client to check.
105
- * @returns A boolean indicating if the client is an abstract wallet client.
106
- */
107
- export declare function isAbstractViemWalletClient(client: unknown): client is AbstractViemWalletClient;
108
- export {};
109
- //# sourceMappingURL=signing.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signing.d.ts","sourceRoot":"","sources":["../../../src/src/utils/signing.ts"],"names":[],"mappings":"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"}
@@ -1,164 +0,0 @@
1
- import { keccak_256 } from "../../deps/jsr.io/@noble/hashes/1.7.1/src/sha3.js";
2
- import { encode } from "../../deps/jsr.io/@std/msgpack/1.0.2/encode.js";
3
- import { decodeHex, encodeHex } from "../../deps/jsr.io/@std/encoding/1.0.6/hex.js";
4
- /**
5
- * Create a hash of the action.
6
- * @param action - The action to hash.
7
- * @param nonce - The nonce of the action.
8
- * @param vaultAddress - Optional vault address.
9
- * @returns The hash of the action.
10
- */
11
- export function createActionHash(action, nonce, vaultAddress) {
12
- const normalizedAction = normalizeIntegersForMsgPack(action);
13
- const msgPackBytes = encode(normalizedAction);
14
- const additionalBytesLength = vaultAddress ? 29 : 9;
15
- const data = new Uint8Array(msgPackBytes.length + additionalBytesLength);
16
- data.set(msgPackBytes);
17
- const view = new DataView(data.buffer);
18
- view.setBigUint64(msgPackBytes.length, BigInt(nonce));
19
- if (vaultAddress) {
20
- view.setUint8(msgPackBytes.length + 8, 1);
21
- const normalizedVaultAddress = vaultAddress.startsWith("0x") ? vaultAddress.slice(2) : vaultAddress;
22
- data.set(decodeHex(normalizedVaultAddress), msgPackBytes.length + 9);
23
- }
24
- else {
25
- view.setUint8(msgPackBytes.length + 8, 0);
26
- }
27
- return `0x${encodeHex(keccak_256(data))}`;
28
- }
29
- /**
30
- * Layer to make {@link https://jsr.io/@std/msgpack | @std/msgpack} compatible with {@link https://github.com/msgpack/msgpack-javascript | @msgpack/msgpack}.
31
- * @returns A new object with integers normalized.
32
- */
33
- function normalizeIntegersForMsgPack(obj) {
34
- const THIRTY_ONE_BITS = 2147483648;
35
- const THIRTY_TWO_BITS = 4294967296;
36
- if (typeof obj === "number" && Number.isInteger(obj) &&
37
- obj <= Number.MAX_SAFE_INTEGER && obj >= Number.MIN_SAFE_INTEGER &&
38
- (obj >= THIRTY_TWO_BITS || obj < -THIRTY_ONE_BITS)) {
39
- return BigInt(obj);
40
- }
41
- if (Array.isArray(obj)) {
42
- return obj.map(normalizeIntegersForMsgPack);
43
- }
44
- if (obj && typeof obj === "object" && obj !== null) {
45
- return Object.fromEntries(Object.entries(obj).map(([key, value]) => [key, normalizeIntegersForMsgPack(value)]));
46
- }
47
- return obj;
48
- }
49
- /**
50
- * Sign an L1 action.
51
- * @param wallet - The wallet to sign with.
52
- * @param isTestnet - A boolean indicating if the action is for the testnet.
53
- * @param action - The action to sign.
54
- * @param nonce - The nonce of the action.
55
- * @param vaultAddress - Optional vault address.
56
- * @returns The signature.
57
- */
58
- export async function signL1Action(wallet, isTestnet, action, nonce, vaultAddress) {
59
- const domain = {
60
- name: "Exchange",
61
- version: "1",
62
- chainId: 1337,
63
- verifyingContract: "0x0000000000000000000000000000000000000000",
64
- };
65
- const types = {
66
- Agent: [
67
- { name: "source", type: "string" },
68
- { name: "connectionId", type: "bytes32" },
69
- ],
70
- };
71
- const actionHash = createActionHash(action, nonce, vaultAddress);
72
- const message = {
73
- source: isTestnet ? "b" : "a",
74
- connectionId: actionHash,
75
- };
76
- let signature;
77
- if (isAbstractViemWalletClient(wallet)) {
78
- signature = await wallet.signTypedData({ domain, types, primaryType: "Agent", message });
79
- }
80
- else if (isAbstractEthersSigner(wallet)) {
81
- signature = await wallet.signTypedData(domain, types, message);
82
- }
83
- else if (isAbstractEthersV5Signer(wallet)) {
84
- signature = await wallet._signTypedData(domain, types, message);
85
- }
86
- else {
87
- throw new Error("Unsupported wallet for signing typed data", { cause: wallet });
88
- }
89
- return parseSignature(signature);
90
- }
91
- /**
92
- * Sign a user-signed action.
93
- * @param wallet - The wallet to sign with.
94
- * @param action - The action to sign.
95
- * @param types - The types of the action.
96
- * @param chainId - The chain ID of the action.
97
- * @returns The signature.
98
- */
99
- export async function signUserSignedAction(wallet, action, types, chainId) {
100
- const domain = {
101
- name: "HyperliquidSignTransaction",
102
- version: "1",
103
- chainId,
104
- verifyingContract: "0x0000000000000000000000000000000000000000",
105
- };
106
- let signature;
107
- if (isAbstractViemWalletClient(wallet)) {
108
- const primaryType = Object.keys(types)[0];
109
- signature = await wallet.signTypedData({ domain, types, primaryType, message: action });
110
- }
111
- else if (isAbstractEthersSigner(wallet)) {
112
- signature = await wallet.signTypedData(domain, types, action);
113
- }
114
- else if (isAbstractEthersV5Signer(wallet)) {
115
- signature = await wallet._signTypedData(domain, types, action);
116
- }
117
- else {
118
- throw new Error("Unsupported wallet for signing typed data", { cause: wallet });
119
- }
120
- return parseSignature(signature);
121
- }
122
- /**
123
- * Parses a signature hexadecimal string into its components.
124
- */
125
- function parseSignature(signature) {
126
- const normalizedSignature = signature.startsWith("0x") ? signature.slice(2) : signature;
127
- if (normalizedSignature.length !== 130) {
128
- throw new Error(`Invalid signature length. Expected 130 characters. Received ${normalizedSignature.length}.`);
129
- }
130
- const r = `0x${normalizedSignature.slice(0, 64)}`;
131
- const s = `0x${normalizedSignature.slice(64, 128)}`;
132
- const v = parseInt(normalizedSignature.slice(128, 130), 16);
133
- return { r, s, v };
134
- }
135
- /**
136
- * Checks if the given client is an abstract signer (ethers.js).
137
- * @param client - The client to check.
138
- * @returns A boolean indicating if the client is an abstract signer.
139
- */
140
- export function isAbstractEthersSigner(client) {
141
- return typeof client === "object" && client !== null &&
142
- "signTypedData" in client && typeof client.signTypedData === "function" &&
143
- client.signTypedData.length === 3;
144
- }
145
- /**
146
- * Checks if the given client is an abstract signer (ethers.js v5).
147
- * @param client - The client to check.
148
- * @returns A boolean indicating if the client is an abstract signer.
149
- */
150
- export function isAbstractEthersV5Signer(client) {
151
- return typeof client === "object" && client !== null &&
152
- "_signTypedData" in client && typeof client._signTypedData === "function" &&
153
- client._signTypedData.length === 3;
154
- }
155
- /**
156
- * Checks if the given client is an abstract wallet client (viem).
157
- * @param client - The client to check.
158
- * @returns A boolean indicating if the client is an abstract wallet client.
159
- */
160
- export function isAbstractViemWalletClient(client) {
161
- return typeof client === "object" && client !== null &&
162
- "signTypedData" in client && typeof client.signTypedData === "function" &&
163
- client.signTypedData.length === 1;
164
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"concat.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/bytes/1.0.4/concat.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,UAAU,CAaxD"}
@@ -1,35 +0,0 @@
1
- "use strict";
2
- // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
3
- // This module is browser compatible.
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.concat = concat;
6
- /**
7
- * Concatenate an array of byte slices into a single slice.
8
- *
9
- * @param buffers Array of byte slices to concatenate.
10
- * @returns A new byte slice containing all the input slices concatenated.
11
- *
12
- * @example Basic usage
13
- * ```ts
14
- * import { concat } from "@std/bytes/concat";
15
- * import { assertEquals } from "@std/assert";
16
- *
17
- * const a = new Uint8Array([0, 1, 2]);
18
- * const b = new Uint8Array([3, 4, 5]);
19
- *
20
- * assertEquals(concat([a, b]), new Uint8Array([0, 1, 2, 3, 4, 5]));
21
- * ```
22
- */
23
- function concat(buffers) {
24
- let length = 0;
25
- for (const buffer of buffers) {
26
- length += buffer.length;
27
- }
28
- const output = new Uint8Array(length);
29
- let index = 0;
30
- for (const buffer of buffers) {
31
- output.set(buffer, index);
32
- index += buffer.length;
33
- }
34
- return output;
35
- }
@@ -1,29 +0,0 @@
1
- "use strict";
2
- // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.validateBinaryLike = validateBinaryLike;
5
- const encoder = new TextEncoder();
6
- function getTypeName(value) {
7
- const type = typeof value;
8
- if (type !== "object") {
9
- return type;
10
- }
11
- else if (value === null) {
12
- return "null";
13
- }
14
- else {
15
- return value?.constructor?.name ?? "object";
16
- }
17
- }
18
- function validateBinaryLike(source) {
19
- if (typeof source === "string") {
20
- return encoder.encode(source);
21
- }
22
- else if (source instanceof Uint8Array) {
23
- return source;
24
- }
25
- else if (source instanceof ArrayBuffer) {
26
- return new Uint8Array(source);
27
- }
28
- throw new TypeError(`Cannot validate the input as it must be a Uint8Array, a string, or an ArrayBuffer: received a value of the type ${getTypeName(source)}`);
29
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"hex.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/encoding/1.0.6/hex.ts"],"names":[],"mappings":"AAwDA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,MAAM,CAUxE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAiBjD"}
@@ -1,113 +0,0 @@
1
- "use strict";
2
- // Copyright 2009 The Go Authors. All rights reserved.
3
- // https://github.com/golang/go/blob/master/LICENSE
4
- // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
5
- // This module is browser compatible.
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.encodeHex = encodeHex;
8
- exports.decodeHex = decodeHex;
9
- /**
10
- * Port of the Go
11
- * {@link https://github.com/golang/go/blob/go1.12.5/src/encoding/hex/hex.go | encoding/hex}
12
- * library.
13
- *
14
- * ```ts
15
- * import {
16
- * decodeHex,
17
- * encodeHex,
18
- * } from "@std/encoding/hex";
19
- * import { assertEquals } from "@std/assert";
20
- *
21
- * assertEquals(encodeHex("abc"), "616263");
22
- *
23
- * assertEquals(
24
- * decodeHex("616263"),
25
- * new TextEncoder().encode("abc"),
26
- * );
27
- * ```
28
- *
29
- * @module
30
- */
31
- const _validate_binary_like_js_1 = require("./_validate_binary_like.js");
32
- const hexTable = new TextEncoder().encode("0123456789abcdef");
33
- const textEncoder = new TextEncoder();
34
- const textDecoder = new TextDecoder();
35
- function errInvalidByte(byte) {
36
- return new TypeError(`Invalid byte '${String.fromCharCode(byte)}'`);
37
- }
38
- function errLength(len) {
39
- return new RangeError(`Cannot decode the hex string as the input length should be even: length is ${len}`);
40
- }
41
- /** Converts a hex character into its value. */
42
- function fromHexChar(byte) {
43
- // '0' <= byte && byte <= '9'
44
- if (48 <= byte && byte <= 57)
45
- return byte - 48;
46
- // 'a' <= byte && byte <= 'f'
47
- if (97 <= byte && byte <= 102)
48
- return byte - 97 + 10;
49
- // 'A' <= byte && byte <= 'F'
50
- if (65 <= byte && byte <= 70)
51
- return byte - 65 + 10;
52
- throw errInvalidByte(byte);
53
- }
54
- /**
55
- * Converts data into a hex-encoded string.
56
- *
57
- * @param src The data to encode.
58
- *
59
- * @returns The hex-encoded string.
60
- *
61
- * @example Usage
62
- * ```ts
63
- * import { encodeHex } from "@std/encoding/hex";
64
- * import { assertEquals } from "@std/assert";
65
- *
66
- * assertEquals(encodeHex("abc"), "616263");
67
- * ```
68
- */
69
- function encodeHex(src) {
70
- const u8 = (0, _validate_binary_like_js_1.validateBinaryLike)(src);
71
- const dst = new Uint8Array(u8.length * 2);
72
- for (let i = 0; i < u8.length; i++) {
73
- const v = u8[i];
74
- dst[i * 2] = hexTable[v >> 4];
75
- dst[i * 2 + 1] = hexTable[v & 0x0f];
76
- }
77
- return textDecoder.decode(dst);
78
- }
79
- /**
80
- * Decodes the given hex-encoded string. If the input is malformed, an error is
81
- * thrown.
82
- *
83
- * @param src The hex-encoded string to decode.
84
- *
85
- * @returns The decoded data.
86
- *
87
- * @example Usage
88
- * ```ts
89
- * import { decodeHex } from "@std/encoding/hex";
90
- * import { assertEquals } from "@std/assert";
91
- *
92
- * assertEquals(
93
- * decodeHex("616263"),
94
- * new TextEncoder().encode("abc"),
95
- * );
96
- * ```
97
- */
98
- function decodeHex(src) {
99
- const u8 = textEncoder.encode(src);
100
- const dst = new Uint8Array(u8.length / 2);
101
- for (let i = 0; i < dst.length; i++) {
102
- const a = fromHexChar(u8[i * 2]);
103
- const b = fromHexChar(u8[i * 2 + 1]);
104
- dst[i] = (a << 4) | b;
105
- }
106
- if (u8.length % 2 === 1) {
107
- // Check for invalid char before reporting bad length,
108
- // since the invalid char (if present) is an earlier problem.
109
- fromHexChar(u8[dst.length * 2]);
110
- throw errLength(u8.length);
111
- }
112
- return dst;
113
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/msgpack/1.0.2/encode.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,UAAU,GACV,SAAS,SAAS,EAAE,GACpB,QAAQ,CAAC;AAEb;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,sBAAsB;IACtB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACrC;AAeD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,CAIpD"}