@hfunlabs/hyperliquid 0.29.1-hfunlabs.1 → 0.30.0-hfunlabs.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1748) hide show
  1. package/README.md +8 -2
  2. package/esm/bin/_utils.d.ts +18 -0
  3. package/esm/bin/_utils.d.ts.map +1 -1
  4. package/esm/bin/_utils.js +18 -3
  5. package/esm/bin/_utils.js.map +1 -1
  6. package/esm/bin/cli.d.ts +0 -8
  7. package/esm/bin/cli.d.ts.map +1 -1
  8. package/esm/bin/cli.js +11 -0
  9. package/esm/bin/cli.js.map +1 -1
  10. package/esm/src/_base.d.ts +5 -0
  11. package/esm/src/_base.d.ts.map +1 -0
  12. package/esm/src/_base.js +8 -0
  13. package/esm/src/_base.js.map +1 -0
  14. package/esm/src/api/_schemas.d.ts +6 -6
  15. package/esm/src/api/_schemas.d.ts.map +1 -1
  16. package/esm/src/api/_schemas.js +33 -19
  17. package/esm/src/api/_schemas.js.map +1 -1
  18. package/esm/src/api/exchange/_methods/_base/_nonce.d.ts +1 -2
  19. package/esm/src/api/exchange/_methods/_base/_nonce.d.ts.map +1 -1
  20. package/esm/src/api/exchange/_methods/_base/_nonce.js +7 -7
  21. package/esm/src/api/exchange/_methods/_base/_nonce.js.map +1 -1
  22. package/{script/src/api/exchange/_methods/_base/schemas.d.ts → esm/src/api/exchange/_methods/_base/commonSchemas.d.ts} +7 -13
  23. package/esm/src/api/exchange/_methods/_base/commonSchemas.d.ts.map +1 -0
  24. package/esm/src/api/exchange/_methods/_base/{schemas.js → commonSchemas.js} +6 -14
  25. package/esm/src/api/exchange/_methods/_base/commonSchemas.js.map +1 -0
  26. package/esm/src/api/exchange/_methods/_base/errors.d.ts +1 -1
  27. package/esm/src/api/exchange/_methods/_base/errors.d.ts.map +1 -1
  28. package/esm/src/api/exchange/_methods/_base/errors.js +1 -1
  29. package/esm/src/api/exchange/_methods/_base/errors.js.map +1 -1
  30. package/esm/src/api/exchange/_methods/_base/execute.d.ts +5 -6
  31. package/esm/src/api/exchange/_methods/_base/execute.d.ts.map +1 -1
  32. package/esm/src/api/exchange/_methods/_base/execute.js.map +1 -1
  33. package/esm/src/api/exchange/_methods/agentEnableDexAbstraction.d.ts +10 -6
  34. package/esm/src/api/exchange/_methods/agentEnableDexAbstraction.d.ts.map +1 -1
  35. package/esm/src/api/exchange/_methods/agentEnableDexAbstraction.js +4 -4
  36. package/esm/src/api/exchange/_methods/agentEnableDexAbstraction.js.map +1 -1
  37. package/esm/src/api/exchange/_methods/approveAgent.d.ts +22 -18
  38. package/esm/src/api/exchange/_methods/approveAgent.d.ts.map +1 -1
  39. package/esm/src/api/exchange/_methods/approveAgent.js +9 -9
  40. package/esm/src/api/exchange/_methods/approveAgent.js.map +1 -1
  41. package/esm/src/api/exchange/_methods/approveBuilderFee.d.ts +14 -10
  42. package/esm/src/api/exchange/_methods/approveBuilderFee.d.ts.map +1 -1
  43. package/esm/src/api/exchange/_methods/approveBuilderFee.js +7 -7
  44. package/esm/src/api/exchange/_methods/approveBuilderFee.js.map +1 -1
  45. package/esm/src/api/exchange/_methods/batchModify.d.ts +37 -33
  46. package/esm/src/api/exchange/_methods/batchModify.d.ts.map +1 -1
  47. package/esm/src/api/exchange/_methods/batchModify.js +10 -13
  48. package/esm/src/api/exchange/_methods/batchModify.js.map +1 -1
  49. package/esm/src/api/exchange/_methods/cDeposit.d.ts +19 -15
  50. package/esm/src/api/exchange/_methods/cDeposit.d.ts.map +1 -1
  51. package/esm/src/api/exchange/_methods/cDeposit.js +8 -8
  52. package/esm/src/api/exchange/_methods/cDeposit.js.map +1 -1
  53. package/esm/src/api/exchange/_methods/cSignerAction.d.ts +21 -10
  54. package/esm/src/api/exchange/_methods/cSignerAction.d.ts.map +1 -1
  55. package/esm/src/api/exchange/_methods/cSignerAction.js +15 -8
  56. package/esm/src/api/exchange/_methods/cSignerAction.js.map +1 -1
  57. package/esm/src/api/exchange/_methods/cValidatorAction.d.ts +31 -53
  58. package/esm/src/api/exchange/_methods/cValidatorAction.d.ts.map +1 -1
  59. package/esm/src/api/exchange/_methods/cValidatorAction.js +8 -34
  60. package/esm/src/api/exchange/_methods/cValidatorAction.js.map +1 -1
  61. package/esm/src/api/exchange/_methods/cWithdraw.d.ts +19 -15
  62. package/esm/src/api/exchange/_methods/cWithdraw.d.ts.map +1 -1
  63. package/esm/src/api/exchange/_methods/cWithdraw.js +8 -8
  64. package/esm/src/api/exchange/_methods/cWithdraw.js.map +1 -1
  65. package/esm/src/api/exchange/_methods/cancel.d.ts +27 -23
  66. package/esm/src/api/exchange/_methods/cancel.d.ts.map +1 -1
  67. package/esm/src/api/exchange/_methods/cancel.js +9 -9
  68. package/esm/src/api/exchange/_methods/cancel.js.map +1 -1
  69. package/esm/src/api/exchange/_methods/cancelByCloid.d.ts +22 -18
  70. package/esm/src/api/exchange/_methods/cancelByCloid.d.ts.map +1 -1
  71. package/esm/src/api/exchange/_methods/cancelByCloid.js +7 -7
  72. package/esm/src/api/exchange/_methods/cancelByCloid.js.map +1 -1
  73. package/esm/src/api/exchange/_methods/claimRewards.d.ts +9 -5
  74. package/esm/src/api/exchange/_methods/claimRewards.d.ts.map +1 -1
  75. package/esm/src/api/exchange/_methods/claimRewards.js +3 -3
  76. package/esm/src/api/exchange/_methods/claimRewards.js.map +1 -1
  77. package/esm/src/api/exchange/_methods/convertToMultiSigUser.d.ts +56 -44
  78. package/esm/src/api/exchange/_methods/convertToMultiSigUser.d.ts.map +1 -1
  79. package/esm/src/api/exchange/_methods/convertToMultiSigUser.js +32 -26
  80. package/esm/src/api/exchange/_methods/convertToMultiSigUser.js.map +1 -1
  81. package/esm/src/api/exchange/_methods/createSubAccount.d.ts +16 -18
  82. package/esm/src/api/exchange/_methods/createSubAccount.d.ts.map +1 -1
  83. package/esm/src/api/exchange/_methods/createSubAccount.js +6 -6
  84. package/esm/src/api/exchange/_methods/createSubAccount.js.map +1 -1
  85. package/esm/src/api/exchange/_methods/createVault.d.ts +30 -32
  86. package/esm/src/api/exchange/_methods/createVault.d.ts.map +1 -1
  87. package/esm/src/api/exchange/_methods/createVault.js +9 -9
  88. package/esm/src/api/exchange/_methods/createVault.js.map +1 -1
  89. package/esm/src/api/exchange/_methods/evmUserModify.d.ts +9 -5
  90. package/esm/src/api/exchange/_methods/evmUserModify.d.ts.map +1 -1
  91. package/esm/src/api/exchange/_methods/evmUserModify.js +3 -3
  92. package/esm/src/api/exchange/_methods/evmUserModify.js.map +1 -1
  93. package/esm/src/api/exchange/_methods/linkStakingUser.d.ts +15 -11
  94. package/esm/src/api/exchange/_methods/linkStakingUser.d.ts.map +1 -1
  95. package/esm/src/api/exchange/_methods/linkStakingUser.js +8 -8
  96. package/esm/src/api/exchange/_methods/linkStakingUser.js.map +1 -1
  97. package/esm/src/api/exchange/_methods/modify.d.ts +37 -33
  98. package/esm/src/api/exchange/_methods/modify.d.ts.map +1 -1
  99. package/esm/src/api/exchange/_methods/modify.js +10 -13
  100. package/esm/src/api/exchange/_methods/modify.js.map +1 -1
  101. package/esm/src/api/exchange/_methods/noop.d.ts +9 -5
  102. package/esm/src/api/exchange/_methods/noop.d.ts.map +1 -1
  103. package/esm/src/api/exchange/_methods/noop.js +3 -3
  104. package/esm/src/api/exchange/_methods/noop.js.map +1 -1
  105. package/esm/src/api/exchange/_methods/order.d.ts +47 -97
  106. package/esm/src/api/exchange/_methods/order.d.ts.map +1 -1
  107. package/esm/src/api/exchange/_methods/order.js +17 -17
  108. package/esm/src/api/exchange/_methods/order.js.map +1 -1
  109. package/esm/src/api/exchange/_methods/perpDeploy.d.ts +86 -76
  110. package/esm/src/api/exchange/_methods/perpDeploy.d.ts.map +1 -1
  111. package/esm/src/api/exchange/_methods/perpDeploy.js +40 -14
  112. package/esm/src/api/exchange/_methods/perpDeploy.js.map +1 -1
  113. package/esm/src/api/exchange/_methods/registerReferrer.d.ts +14 -10
  114. package/esm/src/api/exchange/_methods/registerReferrer.d.ts.map +1 -1
  115. package/esm/src/api/exchange/_methods/registerReferrer.js +4 -4
  116. package/esm/src/api/exchange/_methods/registerReferrer.js.map +1 -1
  117. package/esm/src/api/exchange/_methods/reserveRequestWeight.d.ts +14 -10
  118. package/esm/src/api/exchange/_methods/reserveRequestWeight.d.ts.map +1 -1
  119. package/esm/src/api/exchange/_methods/reserveRequestWeight.js +5 -4
  120. package/esm/src/api/exchange/_methods/reserveRequestWeight.js.map +1 -1
  121. package/esm/src/api/exchange/_methods/scheduleCancel.d.ts +14 -10
  122. package/esm/src/api/exchange/_methods/scheduleCancel.d.ts.map +1 -1
  123. package/esm/src/api/exchange/_methods/scheduleCancel.js +3 -3
  124. package/esm/src/api/exchange/_methods/scheduleCancel.js.map +1 -1
  125. package/esm/src/api/exchange/_methods/sendAsset.d.ts +30 -26
  126. package/esm/src/api/exchange/_methods/sendAsset.d.ts.map +1 -1
  127. package/esm/src/api/exchange/_methods/sendAsset.js +9 -9
  128. package/esm/src/api/exchange/_methods/sendAsset.js.map +1 -1
  129. package/esm/src/api/exchange/_methods/setDisplayName.d.ts +14 -13
  130. package/esm/src/api/exchange/_methods/setDisplayName.d.ts.map +1 -1
  131. package/esm/src/api/exchange/_methods/setDisplayName.js +5 -6
  132. package/esm/src/api/exchange/_methods/setDisplayName.js.map +1 -1
  133. package/esm/src/api/exchange/_methods/setReferrer.d.ts +14 -10
  134. package/esm/src/api/exchange/_methods/setReferrer.d.ts.map +1 -1
  135. package/esm/src/api/exchange/_methods/setReferrer.js +4 -4
  136. package/esm/src/api/exchange/_methods/setReferrer.js.map +1 -1
  137. package/esm/src/api/exchange/_methods/spotDeploy.d.ts +77 -73
  138. package/esm/src/api/exchange/_methods/spotDeploy.d.ts.map +1 -1
  139. package/esm/src/api/exchange/_methods/spotDeploy.js +12 -12
  140. package/esm/src/api/exchange/_methods/spotDeploy.js.map +1 -1
  141. package/esm/src/api/exchange/_methods/spotSend.d.ts +27 -23
  142. package/esm/src/api/exchange/_methods/spotSend.d.ts.map +1 -1
  143. package/esm/src/api/exchange/_methods/spotSend.js +8 -8
  144. package/esm/src/api/exchange/_methods/spotSend.js.map +1 -1
  145. package/esm/src/api/exchange/_methods/spotUser.d.ts +9 -5
  146. package/esm/src/api/exchange/_methods/spotUser.d.ts.map +1 -1
  147. package/esm/src/api/exchange/_methods/spotUser.js +3 -3
  148. package/esm/src/api/exchange/_methods/spotUser.js.map +1 -1
  149. package/esm/src/api/exchange/_methods/subAccountModify.d.ts +16 -12
  150. package/esm/src/api/exchange/_methods/subAccountModify.d.ts.map +1 -1
  151. package/esm/src/api/exchange/_methods/subAccountModify.js +6 -6
  152. package/esm/src/api/exchange/_methods/subAccountModify.js.map +1 -1
  153. package/esm/src/api/exchange/_methods/subAccountSpotTransfer.d.ts +22 -18
  154. package/esm/src/api/exchange/_methods/subAccountSpotTransfer.d.ts.map +1 -1
  155. package/esm/src/api/exchange/_methods/subAccountSpotTransfer.js +5 -5
  156. package/esm/src/api/exchange/_methods/subAccountSpotTransfer.js.map +1 -1
  157. package/esm/src/api/exchange/_methods/subAccountTransfer.d.ts +14 -10
  158. package/esm/src/api/exchange/_methods/subAccountTransfer.d.ts.map +1 -1
  159. package/esm/src/api/exchange/_methods/subAccountTransfer.js +4 -4
  160. package/esm/src/api/exchange/_methods/subAccountTransfer.js.map +1 -1
  161. package/esm/src/api/exchange/_methods/tokenDelegate.d.ts +19 -15
  162. package/esm/src/api/exchange/_methods/tokenDelegate.d.ts.map +1 -1
  163. package/esm/src/api/exchange/_methods/tokenDelegate.js +8 -8
  164. package/esm/src/api/exchange/_methods/tokenDelegate.js.map +1 -1
  165. package/esm/src/api/exchange/_methods/twapCancel.d.ts +17 -13
  166. package/esm/src/api/exchange/_methods/twapCancel.d.ts.map +1 -1
  167. package/esm/src/api/exchange/_methods/twapCancel.js +3 -3
  168. package/esm/src/api/exchange/_methods/twapCancel.js.map +1 -1
  169. package/esm/src/api/exchange/_methods/twapOrder.d.ts +21 -17
  170. package/esm/src/api/exchange/_methods/twapOrder.d.ts.map +1 -1
  171. package/esm/src/api/exchange/_methods/twapOrder.js +4 -4
  172. package/esm/src/api/exchange/_methods/twapOrder.js.map +1 -1
  173. package/esm/src/api/exchange/_methods/updateIsolatedMargin.d.ts +17 -13
  174. package/esm/src/api/exchange/_methods/updateIsolatedMargin.d.ts.map +1 -1
  175. package/esm/src/api/exchange/_methods/updateIsolatedMargin.js +3 -3
  176. package/esm/src/api/exchange/_methods/updateIsolatedMargin.js.map +1 -1
  177. package/esm/src/api/exchange/_methods/updateLeverage.d.ts +17 -13
  178. package/esm/src/api/exchange/_methods/updateLeverage.d.ts.map +1 -1
  179. package/esm/src/api/exchange/_methods/updateLeverage.js +4 -4
  180. package/esm/src/api/exchange/_methods/updateLeverage.js.map +1 -1
  181. package/esm/src/api/exchange/_methods/usdClassTransfer.d.ts +19 -15
  182. package/esm/src/api/exchange/_methods/usdClassTransfer.d.ts.map +1 -1
  183. package/esm/src/api/exchange/_methods/usdClassTransfer.js +7 -7
  184. package/esm/src/api/exchange/_methods/usdClassTransfer.js.map +1 -1
  185. package/esm/src/api/exchange/_methods/usdSend.d.ts +19 -15
  186. package/esm/src/api/exchange/_methods/usdSend.d.ts.map +1 -1
  187. package/esm/src/api/exchange/_methods/usdSend.js +7 -7
  188. package/esm/src/api/exchange/_methods/usdSend.js.map +1 -1
  189. package/esm/src/api/exchange/_methods/userDexAbstraction.d.ts +14 -10
  190. package/esm/src/api/exchange/_methods/userDexAbstraction.d.ts.map +1 -1
  191. package/esm/src/api/exchange/_methods/userDexAbstraction.js +7 -7
  192. package/esm/src/api/exchange/_methods/userDexAbstraction.js.map +1 -1
  193. package/esm/src/api/exchange/_methods/validatorL1Stream.d.ts +14 -10
  194. package/esm/src/api/exchange/_methods/validatorL1Stream.d.ts.map +1 -1
  195. package/esm/src/api/exchange/_methods/validatorL1Stream.js +3 -3
  196. package/esm/src/api/exchange/_methods/validatorL1Stream.js.map +1 -1
  197. package/esm/src/api/exchange/_methods/vaultDistribute.d.ts +14 -13
  198. package/esm/src/api/exchange/_methods/vaultDistribute.d.ts.map +1 -1
  199. package/esm/src/api/exchange/_methods/vaultDistribute.js +4 -5
  200. package/esm/src/api/exchange/_methods/vaultDistribute.js.map +1 -1
  201. package/esm/src/api/exchange/_methods/vaultModify.d.ts +21 -17
  202. package/esm/src/api/exchange/_methods/vaultModify.d.ts.map +1 -1
  203. package/esm/src/api/exchange/_methods/vaultModify.js +7 -7
  204. package/esm/src/api/exchange/_methods/vaultModify.js.map +1 -1
  205. package/esm/src/api/exchange/_methods/vaultTransfer.d.ts +14 -10
  206. package/esm/src/api/exchange/_methods/vaultTransfer.d.ts.map +1 -1
  207. package/esm/src/api/exchange/_methods/vaultTransfer.js +4 -4
  208. package/esm/src/api/exchange/_methods/vaultTransfer.js.map +1 -1
  209. package/esm/src/api/exchange/_methods/withdraw3.d.ts +19 -15
  210. package/esm/src/api/exchange/_methods/withdraw3.d.ts.map +1 -1
  211. package/esm/src/api/exchange/_methods/withdraw3.js +7 -7
  212. package/esm/src/api/exchange/_methods/withdraw3.js.map +1 -1
  213. package/esm/src/api/exchange/client.d.ts +3 -1
  214. package/esm/src/api/exchange/client.d.ts.map +1 -1
  215. package/esm/src/api/exchange/client.js +3 -1
  216. package/esm/src/api/exchange/client.js.map +1 -1
  217. package/esm/src/api/exchange/mod.d.ts +1 -1
  218. package/esm/src/api/exchange/mod.js +1 -1
  219. package/esm/src/api/info/_methods/_base/commonSchemas.d.ts +343 -0
  220. package/esm/src/api/info/_methods/_base/commonSchemas.d.ts.map +1 -0
  221. package/esm/src/api/info/_methods/_base/commonSchemas.js +341 -0
  222. package/esm/src/api/info/_methods/_base/commonSchemas.js.map +1 -0
  223. package/esm/src/api/info/_methods/_base/types.d.ts +7 -0
  224. package/esm/src/api/info/_methods/_base/types.d.ts.map +1 -0
  225. package/esm/src/api/info/_methods/_base/types.js +2 -0
  226. package/esm/src/api/info/_methods/_base/types.js.map +1 -0
  227. package/esm/src/api/info/_methods/activeAssetData.d.ts +8 -8
  228. package/esm/src/api/info/_methods/activeAssetData.d.ts.map +1 -1
  229. package/esm/src/api/info/_methods/activeAssetData.js +1 -1
  230. package/esm/src/api/info/_methods/alignedQuoteTokenInfo.d.ts +7 -7
  231. package/esm/src/api/info/_methods/alignedQuoteTokenInfo.d.ts.map +1 -1
  232. package/esm/src/api/info/_methods/alignedQuoteTokenInfo.js +5 -7
  233. package/esm/src/api/info/_methods/alignedQuoteTokenInfo.js.map +1 -1
  234. package/esm/src/api/info/_methods/allBorrowLendReserveStates.d.ts +84 -0
  235. package/esm/src/api/info/_methods/allBorrowLendReserveStates.d.ts.map +1 -0
  236. package/esm/src/api/info/_methods/allBorrowLendReserveStates.js +73 -0
  237. package/esm/src/api/info/_methods/allBorrowLendReserveStates.js.map +1 -0
  238. package/esm/src/api/info/_methods/allMids.d.ts +3 -3
  239. package/esm/src/api/info/_methods/allMids.d.ts.map +1 -1
  240. package/esm/src/api/info/_methods/allPerpMetas.d.ts +14 -33
  241. package/esm/src/api/info/_methods/allPerpMetas.d.ts.map +1 -1
  242. package/esm/src/api/info/_methods/allPerpMetas.js +1 -1
  243. package/esm/src/api/info/_methods/blockDetails.d.ts +12 -20
  244. package/esm/src/api/info/_methods/blockDetails.d.ts.map +1 -1
  245. package/esm/src/api/info/_methods/blockDetails.js +4 -21
  246. package/esm/src/api/info/_methods/blockDetails.js.map +1 -1
  247. package/esm/src/api/info/_methods/borrowLendUserState.d.ts +123 -0
  248. package/esm/src/api/info/_methods/borrowLendUserState.d.ts.map +1 -0
  249. package/esm/src/api/info/_methods/borrowLendUserState.js +84 -0
  250. package/esm/src/api/info/_methods/borrowLendUserState.js.map +1 -0
  251. package/esm/src/api/info/_methods/candleSnapshot.d.ts +14 -25
  252. package/esm/src/api/info/_methods/candleSnapshot.d.ts.map +1 -1
  253. package/esm/src/api/info/_methods/candleSnapshot.js +3 -5
  254. package/esm/src/api/info/_methods/candleSnapshot.js.map +1 -1
  255. package/esm/src/api/info/_methods/clearinghouseState.d.ts +29 -55
  256. package/esm/src/api/info/_methods/clearinghouseState.d.ts.map +1 -1
  257. package/esm/src/api/info/_methods/clearinghouseState.js +3 -5
  258. package/esm/src/api/info/_methods/clearinghouseState.js.map +1 -1
  259. package/esm/src/api/info/_methods/delegations.d.ts +6 -10
  260. package/esm/src/api/info/_methods/delegations.d.ts.map +1 -1
  261. package/esm/src/api/info/_methods/delegations.js +3 -5
  262. package/esm/src/api/info/_methods/delegations.js.map +1 -1
  263. package/esm/src/api/info/_methods/delegatorHistory.d.ts +9 -28
  264. package/esm/src/api/info/_methods/delegatorHistory.d.ts.map +1 -1
  265. package/esm/src/api/info/_methods/delegatorHistory.js +4 -6
  266. package/esm/src/api/info/_methods/delegatorHistory.js.map +1 -1
  267. package/esm/src/api/info/_methods/delegatorRewards.d.ts +6 -10
  268. package/esm/src/api/info/_methods/delegatorRewards.d.ts.map +1 -1
  269. package/esm/src/api/info/_methods/delegatorRewards.js +3 -5
  270. package/esm/src/api/info/_methods/delegatorRewards.js.map +1 -1
  271. package/esm/src/api/info/_methods/delegatorSummary.d.ts +6 -6
  272. package/esm/src/api/info/_methods/delegatorSummary.d.ts.map +1 -1
  273. package/esm/src/api/info/_methods/delegatorSummary.js +1 -1
  274. package/esm/src/api/info/_methods/exchangeStatus.d.ts +5 -4
  275. package/esm/src/api/info/_methods/exchangeStatus.d.ts.map +1 -1
  276. package/esm/src/api/info/_methods/exchangeStatus.js +3 -2
  277. package/esm/src/api/info/_methods/exchangeStatus.js.map +1 -1
  278. package/esm/src/api/info/_methods/extraAgents.d.ts +6 -10
  279. package/esm/src/api/info/_methods/extraAgents.d.ts.map +1 -1
  280. package/esm/src/api/info/_methods/extraAgents.js +4 -6
  281. package/esm/src/api/info/_methods/extraAgents.js.map +1 -1
  282. package/esm/src/api/info/_methods/frontendOpenOrders.d.ts +11 -43
  283. package/esm/src/api/info/_methods/frontendOpenOrders.d.ts.map +1 -1
  284. package/esm/src/api/info/_methods/frontendOpenOrders.js +4 -63
  285. package/esm/src/api/info/_methods/frontendOpenOrders.js.map +1 -1
  286. package/esm/src/api/info/_methods/fundingHistory.d.ts +9 -14
  287. package/esm/src/api/info/_methods/fundingHistory.d.ts.map +1 -1
  288. package/esm/src/api/info/_methods/fundingHistory.js +3 -5
  289. package/esm/src/api/info/_methods/fundingHistory.js.map +1 -1
  290. package/esm/src/api/info/_methods/gossipRootIps.d.ts +2 -2
  291. package/esm/src/api/info/_methods/gossipRootIps.d.ts.map +1 -1
  292. package/esm/src/api/info/_methods/gossipRootIps.js +1 -1
  293. package/esm/src/api/info/_methods/historicalOrders.d.ts +33 -69
  294. package/esm/src/api/info/_methods/historicalOrders.d.ts.map +1 -1
  295. package/esm/src/api/info/_methods/historicalOrders.js +7 -98
  296. package/esm/src/api/info/_methods/historicalOrders.js.map +1 -1
  297. package/esm/src/api/info/_methods/isVip.d.ts +2 -2
  298. package/esm/src/api/info/_methods/isVip.d.ts.map +1 -1
  299. package/esm/src/api/info/_methods/isVip.js +1 -1
  300. package/esm/src/api/info/_methods/l2Book.d.ts +10 -10
  301. package/esm/src/api/info/_methods/l2Book.d.ts.map +1 -1
  302. package/esm/src/api/info/_methods/l2Book.js +4 -4
  303. package/esm/src/api/info/_methods/l2Book.js.map +1 -1
  304. package/esm/src/api/info/_methods/l3Orders.d.ts +30 -30
  305. package/esm/src/api/info/_methods/l3Orders.d.ts.map +1 -1
  306. package/esm/src/api/info/_methods/l4Orders.d.ts +23 -23
  307. package/esm/src/api/info/_methods/l4Orders.d.ts.map +1 -1
  308. package/esm/src/api/info/_methods/leadingVaults.d.ts +4 -7
  309. package/esm/src/api/info/_methods/leadingVaults.d.ts.map +1 -1
  310. package/esm/src/api/info/_methods/leadingVaults.js +3 -5
  311. package/esm/src/api/info/_methods/leadingVaults.js.map +1 -1
  312. package/esm/src/api/info/_methods/legalCheck.d.ts +2 -2
  313. package/esm/src/api/info/_methods/legalCheck.d.ts.map +1 -1
  314. package/esm/src/api/info/_methods/legalCheck.js +1 -1
  315. package/esm/src/api/info/_methods/liquidatable.d.ts +6 -4
  316. package/esm/src/api/info/_methods/liquidatable.d.ts.map +1 -1
  317. package/esm/src/api/info/_methods/liquidatable.js +5 -3
  318. package/esm/src/api/info/_methods/liquidatable.js.map +1 -1
  319. package/esm/src/api/info/_methods/marginTable.d.ts +7 -10
  320. package/esm/src/api/info/_methods/marginTable.d.ts.map +1 -1
  321. package/esm/src/api/info/_methods/marginTable.js +3 -5
  322. package/esm/src/api/info/_methods/marginTable.js.map +1 -1
  323. package/esm/src/api/info/_methods/maxBuilderFee.d.ts +2 -2
  324. package/esm/src/api/info/_methods/maxBuilderFee.d.ts.map +1 -1
  325. package/esm/src/api/info/_methods/maxBuilderFee.js +1 -1
  326. package/esm/src/api/info/_methods/maxMarketOrderNtls.d.ts +4 -4
  327. package/esm/src/api/info/_methods/maxMarketOrderNtls.d.ts.map +1 -1
  328. package/esm/src/api/info/_methods/maxMarketOrderNtls.js +3 -5
  329. package/esm/src/api/info/_methods/maxMarketOrderNtls.js.map +1 -1
  330. package/esm/src/api/info/_methods/meta.d.ts +14 -33
  331. package/esm/src/api/info/_methods/meta.d.ts.map +1 -1
  332. package/esm/src/api/info/_methods/meta.js +4 -8
  333. package/esm/src/api/info/_methods/meta.js.map +1 -1
  334. package/esm/src/api/info/_methods/metaAndAssetCtxs.d.ts +27 -67
  335. package/esm/src/api/info/_methods/metaAndAssetCtxs.d.ts.map +1 -1
  336. package/esm/src/api/info/_methods/metaAndAssetCtxs.js +4 -28
  337. package/esm/src/api/info/_methods/metaAndAssetCtxs.js.map +1 -1
  338. package/esm/src/api/info/_methods/openOrders.d.ts +11 -20
  339. package/esm/src/api/info/_methods/openOrders.d.ts.map +1 -1
  340. package/esm/src/api/info/_methods/openOrders.js +4 -22
  341. package/esm/src/api/info/_methods/openOrders.js.map +1 -1
  342. package/esm/src/api/info/_methods/orderStatus.d.ts +33 -48
  343. package/esm/src/api/info/_methods/orderStatus.d.ts.map +1 -1
  344. package/esm/src/api/info/_methods/orderStatus.js +6 -105
  345. package/esm/src/api/info/_methods/orderStatus.js.map +1 -1
  346. package/esm/src/api/info/_methods/perpDeployAuctionStatus.d.ts +7 -7
  347. package/esm/src/api/info/_methods/perpDeployAuctionStatus.d.ts.map +1 -1
  348. package/esm/src/api/info/_methods/perpDeployAuctionStatus.js +1 -1
  349. package/esm/src/api/info/_methods/perpDexLimits.d.ts +6 -6
  350. package/esm/src/api/info/_methods/perpDexLimits.d.ts.map +1 -1
  351. package/esm/src/api/info/_methods/perpDexLimits.js +1 -1
  352. package/esm/src/api/info/_methods/perpDexStatus.d.ts +3 -3
  353. package/esm/src/api/info/_methods/perpDexStatus.d.ts.map +1 -1
  354. package/esm/src/api/info/_methods/perpDexStatus.js +1 -1
  355. package/esm/src/api/info/_methods/perpDexs.d.ts +3 -3
  356. package/esm/src/api/info/_methods/perpDexs.d.ts.map +1 -1
  357. package/esm/src/api/info/_methods/perpDexs.js +1 -1
  358. package/esm/src/api/info/_methods/perpsAtOpenInterestCap.d.ts +2 -2
  359. package/esm/src/api/info/_methods/perpsAtOpenInterestCap.d.ts.map +1 -1
  360. package/esm/src/api/info/_methods/portfolio.d.ts +26 -26
  361. package/esm/src/api/info/_methods/portfolio.d.ts.map +1 -1
  362. package/esm/src/api/info/_methods/portfolio.js +10 -10
  363. package/esm/src/api/info/_methods/portfolio.js.map +1 -1
  364. package/esm/src/api/info/_methods/preTransferCheck.d.ts +3 -3
  365. package/esm/src/api/info/_methods/preTransferCheck.d.ts.map +1 -1
  366. package/esm/src/api/info/_methods/preTransferCheck.js +1 -1
  367. package/esm/src/api/info/_methods/predictedFundings.d.ts +9 -25
  368. package/esm/src/api/info/_methods/predictedFundings.d.ts.map +1 -1
  369. package/esm/src/api/info/_methods/predictedFundings.js +14 -18
  370. package/esm/src/api/info/_methods/predictedFundings.js.map +1 -1
  371. package/esm/src/api/info/_methods/recentTrades.d.ts +11 -20
  372. package/esm/src/api/info/_methods/recentTrades.d.ts.map +1 -1
  373. package/esm/src/api/info/_methods/recentTrades.js +4 -6
  374. package/esm/src/api/info/_methods/recentTrades.js.map +1 -1
  375. package/esm/src/api/info/_methods/referral.d.ts +33 -58
  376. package/esm/src/api/info/_methods/referral.d.ts.map +1 -1
  377. package/esm/src/api/info/_methods/referral.js +11 -19
  378. package/esm/src/api/info/_methods/referral.js.map +1 -1
  379. package/esm/src/api/info/_methods/spotClearinghouseState.d.ts +16 -26
  380. package/esm/src/api/info/_methods/spotClearinghouseState.d.ts.map +1 -1
  381. package/esm/src/api/info/_methods/spotClearinghouseState.js +7 -9
  382. package/esm/src/api/info/_methods/spotClearinghouseState.js.map +1 -1
  383. package/esm/src/api/info/_methods/spotDeployState.d.ts +26 -36
  384. package/esm/src/api/info/_methods/spotDeployState.d.ts.map +1 -1
  385. package/esm/src/api/info/_methods/spotDeployState.js +4 -6
  386. package/esm/src/api/info/_methods/spotDeployState.js.map +1 -1
  387. package/esm/src/api/info/_methods/spotMeta.d.ts +13 -31
  388. package/esm/src/api/info/_methods/spotMeta.d.ts.map +1 -1
  389. package/esm/src/api/info/_methods/spotMeta.js +5 -9
  390. package/esm/src/api/info/_methods/spotMeta.js.map +1 -1
  391. package/esm/src/api/info/_methods/spotMetaAndAssetCtxs.d.ts +24 -59
  392. package/esm/src/api/info/_methods/spotMetaAndAssetCtxs.d.ts.map +1 -1
  393. package/esm/src/api/info/_methods/spotMetaAndAssetCtxs.js +5 -25
  394. package/esm/src/api/info/_methods/spotMetaAndAssetCtxs.js.map +1 -1
  395. package/esm/src/api/info/_methods/spotPairDeployAuctionStatus.d.ts +7 -7
  396. package/esm/src/api/info/_methods/spotPairDeployAuctionStatus.d.ts.map +1 -1
  397. package/esm/src/api/info/_methods/spotPairDeployAuctionStatus.js +1 -1
  398. package/esm/src/api/info/_methods/subAccounts.d.ts +69 -111
  399. package/esm/src/api/info/_methods/subAccounts.d.ts.map +1 -1
  400. package/esm/src/api/info/_methods/subAccounts.js +6 -8
  401. package/esm/src/api/info/_methods/subAccounts.js.map +1 -1
  402. package/esm/src/api/info/_methods/subAccounts2.d.ts +51 -136
  403. package/esm/src/api/info/_methods/subAccounts2.d.ts.map +1 -1
  404. package/esm/src/api/info/_methods/subAccounts2.js +8 -13
  405. package/esm/src/api/info/_methods/subAccounts2.js.map +1 -1
  406. package/esm/src/api/info/_methods/tokenDetails.d.ts +15 -15
  407. package/esm/src/api/info/_methods/tokenDetails.d.ts.map +1 -1
  408. package/esm/src/api/info/_methods/tokenDetails.js +2 -2
  409. package/esm/src/api/info/_methods/tokenDetails.js.map +1 -1
  410. package/esm/src/api/info/_methods/twapHistory.d.ts +26 -46
  411. package/esm/src/api/info/_methods/twapHistory.d.ts.map +1 -1
  412. package/esm/src/api/info/_methods/twapHistory.js +6 -28
  413. package/esm/src/api/info/_methods/twapHistory.js.map +1 -1
  414. package/esm/src/api/info/_methods/txDetails.d.ts +19 -16
  415. package/esm/src/api/info/_methods/txDetails.d.ts.map +1 -1
  416. package/esm/src/api/info/_methods/txDetails.js +5 -20
  417. package/esm/src/api/info/_methods/txDetails.js.map +1 -1
  418. package/esm/src/api/info/_methods/userDetails.d.ts +7 -15
  419. package/esm/src/api/info/_methods/userDetails.d.ts.map +1 -1
  420. package/esm/src/api/info/_methods/userDetails.js +4 -19
  421. package/esm/src/api/info/_methods/userDetails.js.map +1 -1
  422. package/esm/src/api/info/_methods/userDexAbstraction.d.ts +3 -3
  423. package/esm/src/api/info/_methods/userDexAbstraction.d.ts.map +1 -1
  424. package/esm/src/api/info/_methods/userDexAbstraction.js +2 -2
  425. package/esm/src/api/info/_methods/userDexAbstraction.js.map +1 -1
  426. package/esm/src/api/info/_methods/userFees.d.ts +38 -55
  427. package/esm/src/api/info/_methods/userFees.d.ts.map +1 -1
  428. package/esm/src/api/info/_methods/userFees.js +16 -22
  429. package/esm/src/api/info/_methods/userFees.js.map +1 -1
  430. package/esm/src/api/info/_methods/userFills.d.ts +36 -55
  431. package/esm/src/api/info/_methods/userFills.d.ts.map +1 -1
  432. package/esm/src/api/info/_methods/userFills.js +19 -45
  433. package/esm/src/api/info/_methods/userFills.js.map +1 -1
  434. package/esm/src/api/info/_methods/userFillsByTime.d.ts +38 -41
  435. package/esm/src/api/info/_methods/userFillsByTime.d.ts.map +1 -1
  436. package/esm/src/api/info/_methods/userFillsByTime.js +1 -1
  437. package/esm/src/api/info/_methods/userFunding.d.ts +12 -23
  438. package/esm/src/api/info/_methods/userFunding.d.ts.map +1 -1
  439. package/esm/src/api/info/_methods/userFunding.js +4 -6
  440. package/esm/src/api/info/_methods/userFunding.js.map +1 -1
  441. package/esm/src/api/info/_methods/userNonFundingLedgerUpdates.d.ts +128 -187
  442. package/esm/src/api/info/_methods/userNonFundingLedgerUpdates.d.ts.map +1 -1
  443. package/esm/src/api/info/_methods/userNonFundingLedgerUpdates.js +81 -37
  444. package/esm/src/api/info/_methods/userNonFundingLedgerUpdates.js.map +1 -1
  445. package/esm/src/api/info/_methods/userRateLimit.d.ts +6 -6
  446. package/esm/src/api/info/_methods/userRateLimit.d.ts.map +1 -1
  447. package/esm/src/api/info/_methods/userRateLimit.js +1 -1
  448. package/esm/src/api/info/_methods/userRole.d.ts +2 -2
  449. package/esm/src/api/info/_methods/userRole.d.ts.map +1 -1
  450. package/esm/src/api/info/_methods/userRole.js +1 -1
  451. package/esm/src/api/info/_methods/userToMultiSigSigners.d.ts +4 -4
  452. package/esm/src/api/info/_methods/userToMultiSigSigners.d.ts.map +1 -1
  453. package/esm/src/api/info/_methods/userToMultiSigSigners.js +2 -2
  454. package/esm/src/api/info/_methods/userToMultiSigSigners.js.map +1 -1
  455. package/esm/src/api/info/_methods/userTwapSliceFills.d.ts +23 -41
  456. package/esm/src/api/info/_methods/userTwapSliceFills.d.ts.map +1 -1
  457. package/esm/src/api/info/_methods/userTwapSliceFills.js +6 -38
  458. package/esm/src/api/info/_methods/userTwapSliceFills.js.map +1 -1
  459. package/esm/src/api/info/_methods/userTwapSliceFillsByTime.d.ts +25 -28
  460. package/esm/src/api/info/_methods/userTwapSliceFillsByTime.d.ts.map +1 -1
  461. package/esm/src/api/info/_methods/userTwapSliceFillsByTime.js +1 -1
  462. package/esm/src/api/info/_methods/userVaultEquities.d.ts +6 -10
  463. package/esm/src/api/info/_methods/userVaultEquities.d.ts.map +1 -1
  464. package/esm/src/api/info/_methods/userVaultEquities.js +3 -5
  465. package/esm/src/api/info/_methods/userVaultEquities.js.map +1 -1
  466. package/esm/src/api/info/_methods/validatorL1Votes.d.ts +5 -13
  467. package/esm/src/api/info/_methods/validatorL1Votes.d.ts.map +1 -1
  468. package/esm/src/api/info/_methods/validatorL1Votes.js +5 -5
  469. package/esm/src/api/info/_methods/validatorL1Votes.js.map +1 -1
  470. package/esm/src/api/info/_methods/validatorSummaries.d.ts +14 -38
  471. package/esm/src/api/info/_methods/validatorSummaries.d.ts.map +1 -1
  472. package/esm/src/api/info/_methods/validatorSummaries.js +8 -10
  473. package/esm/src/api/info/_methods/validatorSummaries.js.map +1 -1
  474. package/esm/src/api/info/_methods/vaultDetails.d.ts +50 -55
  475. package/esm/src/api/info/_methods/vaultDetails.d.ts.map +1 -1
  476. package/esm/src/api/info/_methods/vaultDetails.js +7 -22
  477. package/esm/src/api/info/_methods/vaultDetails.js.map +1 -1
  478. package/esm/src/api/info/_methods/vaultSummaries.d.ts +10 -22
  479. package/esm/src/api/info/_methods/vaultSummaries.d.ts.map +1 -1
  480. package/esm/src/api/info/_methods/vaultSummaries.js +5 -20
  481. package/esm/src/api/info/_methods/vaultSummaries.js.map +1 -1
  482. package/esm/src/api/info/_methods/webData2.d.ts +169 -170
  483. package/esm/src/api/info/_methods/webData2.d.ts.map +1 -1
  484. package/esm/src/api/info/_methods/webData2.js +12 -79
  485. package/esm/src/api/info/_methods/webData2.js.map +1 -1
  486. package/esm/src/api/info/client.d.ts +17 -20
  487. package/esm/src/api/info/client.d.ts.map +1 -1
  488. package/esm/src/api/info/client.js +14 -2
  489. package/esm/src/api/info/client.js.map +1 -1
  490. package/esm/src/api/info/mod.d.ts +4 -2
  491. package/esm/src/api/info/mod.d.ts.map +1 -1
  492. package/esm/src/api/info/mod.js +3 -1
  493. package/esm/src/api/info/mod.js.map +1 -1
  494. package/esm/src/api/subscription/_methods/_types.d.ts +2 -2
  495. package/esm/src/api/subscription/_methods/_types.d.ts.map +1 -1
  496. package/esm/src/api/subscription/_methods/activeAssetCtx.d.ts +24 -23
  497. package/esm/src/api/subscription/_methods/activeAssetCtx.d.ts.map +1 -1
  498. package/esm/src/api/subscription/_methods/activeAssetCtx.js +3 -24
  499. package/esm/src/api/subscription/_methods/activeAssetCtx.js.map +1 -1
  500. package/esm/src/api/subscription/_methods/activeAssetData.d.ts +9 -9
  501. package/esm/src/api/subscription/_methods/activeAssetData.d.ts.map +1 -1
  502. package/esm/src/api/subscription/_methods/activeAssetData.js +1 -1
  503. package/esm/src/api/subscription/_methods/activeSpotAssetCtx.d.ts +20 -19
  504. package/esm/src/api/subscription/_methods/activeSpotAssetCtx.d.ts.map +1 -1
  505. package/esm/src/api/subscription/_methods/activeSpotAssetCtx.js +3 -20
  506. package/esm/src/api/subscription/_methods/activeSpotAssetCtx.js.map +1 -1
  507. package/esm/src/api/subscription/_methods/allDexsAssetCtxs.d.ts +25 -24
  508. package/esm/src/api/subscription/_methods/allDexsAssetCtxs.d.ts.map +1 -1
  509. package/esm/src/api/subscription/_methods/allDexsAssetCtxs.js +3 -24
  510. package/esm/src/api/subscription/_methods/allDexsAssetCtxs.js.map +1 -1
  511. package/esm/src/api/subscription/_methods/allDexsClearinghouseState.d.ts +30 -56
  512. package/esm/src/api/subscription/_methods/allDexsClearinghouseState.d.ts.map +1 -1
  513. package/esm/src/api/subscription/_methods/allDexsClearinghouseState.js +1 -1
  514. package/esm/src/api/subscription/_methods/allMids.d.ts +8 -6
  515. package/esm/src/api/subscription/_methods/allMids.d.ts.map +1 -1
  516. package/esm/src/api/subscription/_methods/allMids.js +2 -2
  517. package/esm/src/api/subscription/_methods/allMids.js.map +1 -1
  518. package/esm/src/api/subscription/_methods/assetCtxs.d.ts +14 -24
  519. package/esm/src/api/subscription/_methods/assetCtxs.d.ts.map +1 -1
  520. package/esm/src/api/subscription/_methods/assetCtxs.js +2 -25
  521. package/esm/src/api/subscription/_methods/assetCtxs.js.map +1 -1
  522. package/esm/src/api/subscription/_methods/bbo.d.ts +10 -10
  523. package/esm/src/api/subscription/_methods/bbo.d.ts.map +1 -1
  524. package/esm/src/api/subscription/_methods/bbo.js +3 -3
  525. package/esm/src/api/subscription/_methods/bbo.js.map +1 -1
  526. package/esm/src/api/subscription/_methods/candle.d.ts +11 -11
  527. package/esm/src/api/subscription/_methods/candle.d.ts.map +1 -1
  528. package/esm/src/api/subscription/_methods/candle.js +1 -1
  529. package/esm/src/api/subscription/_methods/clearinghouseState.d.ts +51 -34
  530. package/esm/src/api/subscription/_methods/clearinghouseState.d.ts.map +1 -1
  531. package/esm/src/api/subscription/_methods/clearinghouseState.js +2 -2
  532. package/esm/src/api/subscription/_methods/clearinghouseState.js.map +1 -1
  533. package/esm/src/api/subscription/_methods/explorerBlock.d.ts +10 -16
  534. package/esm/src/api/subscription/_methods/explorerBlock.d.ts.map +1 -1
  535. package/esm/src/api/subscription/_methods/explorerBlock.js +5 -7
  536. package/esm/src/api/subscription/_methods/explorerBlock.js.map +1 -1
  537. package/esm/src/api/subscription/_methods/explorerTxs.d.ts +8 -15
  538. package/esm/src/api/subscription/_methods/explorerTxs.d.ts.map +1 -1
  539. package/esm/src/api/subscription/_methods/explorerTxs.js +4 -22
  540. package/esm/src/api/subscription/_methods/explorerTxs.js.map +1 -1
  541. package/esm/src/api/subscription/_methods/l2Book.d.ts +12 -12
  542. package/esm/src/api/subscription/_methods/l2Book.d.ts.map +1 -1
  543. package/esm/src/api/subscription/_methods/l2Book.js +3 -3
  544. package/esm/src/api/subscription/_methods/l2Book.js.map +1 -1
  545. package/esm/src/api/subscription/_methods/notification.d.ts +3 -3
  546. package/esm/src/api/subscription/_methods/notification.d.ts.map +1 -1
  547. package/esm/src/api/subscription/_methods/notification.js +1 -1
  548. package/esm/src/api/subscription/_methods/openOrders.d.ts +31 -14
  549. package/esm/src/api/subscription/_methods/openOrders.d.ts.map +1 -1
  550. package/esm/src/api/subscription/_methods/openOrders.js +2 -2
  551. package/esm/src/api/subscription/_methods/openOrders.js.map +1 -1
  552. package/esm/src/api/subscription/_methods/orderUpdates.d.ts +26 -39
  553. package/esm/src/api/subscription/_methods/orderUpdates.d.ts.map +1 -1
  554. package/esm/src/api/subscription/_methods/orderUpdates.js +7 -57
  555. package/esm/src/api/subscription/_methods/orderUpdates.js.map +1 -1
  556. package/esm/src/api/subscription/_methods/spotAssetCtxs.d.ts +21 -20
  557. package/esm/src/api/subscription/_methods/spotAssetCtxs.d.ts.map +1 -1
  558. package/esm/src/api/subscription/_methods/spotAssetCtxs.js +3 -20
  559. package/esm/src/api/subscription/_methods/spotAssetCtxs.js.map +1 -1
  560. package/esm/src/api/subscription/_methods/spotState.d.ts +25 -22
  561. package/esm/src/api/subscription/_methods/spotState.d.ts.map +1 -1
  562. package/esm/src/api/subscription/_methods/spotState.js +2 -2
  563. package/esm/src/api/subscription/_methods/spotState.js.map +1 -1
  564. package/esm/src/api/subscription/_methods/trades.d.ts +13 -22
  565. package/esm/src/api/subscription/_methods/trades.d.ts.map +1 -1
  566. package/esm/src/api/subscription/_methods/trades.js +1 -1
  567. package/esm/src/api/subscription/_methods/twapStates.d.ts +102 -0
  568. package/esm/src/api/subscription/_methods/twapStates.d.ts.map +1 -0
  569. package/esm/src/api/subscription/_methods/twapStates.js +64 -0
  570. package/esm/src/api/subscription/_methods/twapStates.js.map +1 -0
  571. package/esm/src/api/subscription/_methods/userEvents.d.ts +111 -156
  572. package/esm/src/api/subscription/_methods/userEvents.d.ts.map +1 -1
  573. package/esm/src/api/subscription/_methods/userEvents.js +18 -18
  574. package/esm/src/api/subscription/_methods/userEvents.js.map +1 -1
  575. package/esm/src/api/subscription/_methods/userFills.d.ts +51 -31
  576. package/esm/src/api/subscription/_methods/userFills.d.ts.map +1 -1
  577. package/esm/src/api/subscription/_methods/userFills.js +2 -2
  578. package/esm/src/api/subscription/_methods/userFills.js.map +1 -1
  579. package/esm/src/api/subscription/_methods/userFundings.d.ts +8 -8
  580. package/esm/src/api/subscription/_methods/userFundings.d.ts.map +1 -1
  581. package/esm/src/api/subscription/_methods/userFundings.js +1 -1
  582. package/esm/src/api/subscription/_methods/userHistoricalOrders.d.ts +37 -20
  583. package/esm/src/api/subscription/_methods/userHistoricalOrders.d.ts.map +1 -1
  584. package/esm/src/api/subscription/_methods/userHistoricalOrders.js +2 -2
  585. package/esm/src/api/subscription/_methods/userHistoricalOrders.js.map +1 -1
  586. package/esm/src/api/subscription/_methods/userNonFundingLedgerUpdates.d.ts +163 -125
  587. package/esm/src/api/subscription/_methods/userNonFundingLedgerUpdates.d.ts.map +1 -1
  588. package/esm/src/api/subscription/_methods/userNonFundingLedgerUpdates.js +2 -2
  589. package/esm/src/api/subscription/_methods/userNonFundingLedgerUpdates.js.map +1 -1
  590. package/esm/src/api/subscription/_methods/userTwapHistory.d.ts +30 -19
  591. package/esm/src/api/subscription/_methods/userTwapHistory.d.ts.map +1 -1
  592. package/esm/src/api/subscription/_methods/userTwapHistory.js +2 -2
  593. package/esm/src/api/subscription/_methods/userTwapHistory.js.map +1 -1
  594. package/esm/src/api/subscription/_methods/userTwapSliceFills.d.ts +39 -23
  595. package/esm/src/api/subscription/_methods/userTwapSliceFills.d.ts.map +1 -1
  596. package/esm/src/api/subscription/_methods/userTwapSliceFills.js +2 -2
  597. package/esm/src/api/subscription/_methods/userTwapSliceFills.js.map +1 -1
  598. package/esm/src/api/subscription/_methods/webData2.d.ts +172 -145
  599. package/esm/src/api/subscription/_methods/webData2.d.ts.map +1 -1
  600. package/esm/src/api/subscription/_methods/webData2.js +2 -2
  601. package/esm/src/api/subscription/_methods/webData2.js.map +1 -1
  602. package/esm/src/api/subscription/_methods/webData3.d.ts +14 -13
  603. package/esm/src/api/subscription/_methods/webData3.d.ts.map +1 -1
  604. package/esm/src/api/subscription/_methods/webData3.js +4 -2
  605. package/esm/src/api/subscription/_methods/webData3.js.map +1 -1
  606. package/esm/src/api/subscription/client.d.ts +39 -33
  607. package/esm/src/api/subscription/client.d.ts.map +1 -1
  608. package/esm/src/api/subscription/client.js +9 -2
  609. package/esm/src/api/subscription/client.js.map +1 -1
  610. package/esm/src/api/subscription/mod.d.ts +2 -1
  611. package/esm/src/api/subscription/mod.d.ts.map +1 -1
  612. package/esm/src/api/subscription/mod.js +2 -1
  613. package/esm/src/api/subscription/mod.js.map +1 -1
  614. package/esm/src/mod.d.ts +31 -3
  615. package/esm/src/mod.d.ts.map +1 -1
  616. package/esm/src/mod.js +31 -3
  617. package/esm/src/mod.js.map +1 -1
  618. package/esm/src/signing/_abstractWallet.d.ts +5 -5
  619. package/esm/src/signing/_abstractWallet.d.ts.map +1 -1
  620. package/esm/src/signing/_abstractWallet.js +40 -48
  621. package/esm/src/signing/_abstractWallet.js.map +1 -1
  622. package/esm/src/signing/_privateKeySigner.js +1 -1
  623. package/esm/src/signing/_privateKeySigner.js.map +1 -1
  624. package/esm/src/signing/mod.d.ts +1 -1
  625. package/esm/src/signing/mod.js +6 -6
  626. package/esm/src/signing/mod.js.map +1 -1
  627. package/esm/src/transport/_base.d.ts +51 -0
  628. package/esm/src/transport/_base.d.ts.map +1 -0
  629. package/esm/src/{_errors.js → transport/_base.js} +2 -8
  630. package/esm/src/transport/_base.js.map +1 -0
  631. package/esm/src/transport/_polyfills.d.ts +30 -0
  632. package/esm/src/transport/_polyfills.d.ts.map +1 -1
  633. package/esm/src/transport/_polyfills.js +11 -2
  634. package/esm/src/transport/_polyfills.js.map +1 -1
  635. package/esm/src/transport/http/mod.d.ts +31 -7
  636. package/esm/src/transport/http/mod.d.ts.map +1 -1
  637. package/esm/src/transport/http/mod.js +29 -5
  638. package/esm/src/transport/http/mod.js.map +1 -1
  639. package/esm/src/transport/mod.d.ts +19 -0
  640. package/esm/src/transport/mod.d.ts.map +1 -0
  641. package/esm/src/transport/mod.js +19 -0
  642. package/esm/src/transport/mod.js.map +1 -0
  643. package/esm/src/transport/websocket/_hyperliquidEventTarget.js +2 -2
  644. package/esm/src/transport/websocket/_hyperliquidEventTarget.js.map +1 -1
  645. package/esm/src/transport/websocket/_postRequest.d.ts +12 -7
  646. package/esm/src/transport/websocket/_postRequest.d.ts.map +1 -1
  647. package/esm/src/transport/websocket/_postRequest.js +79 -63
  648. package/esm/src/transport/websocket/_postRequest.js.map +1 -1
  649. package/esm/src/transport/websocket/_subscriptionManager.d.ts +6 -12
  650. package/esm/src/transport/websocket/_subscriptionManager.d.ts.map +1 -1
  651. package/esm/src/transport/websocket/_subscriptionManager.js +11 -11
  652. package/esm/src/transport/websocket/_subscriptionManager.js.map +1 -1
  653. package/esm/src/transport/websocket/mod.d.ts +38 -14
  654. package/esm/src/transport/websocket/mod.d.ts.map +1 -1
  655. package/esm/src/transport/websocket/mod.js +69 -37
  656. package/esm/src/transport/websocket/mod.js.map +1 -1
  657. package/{script/src/utils/format.d.ts → esm/src/utils/_format.d.ts} +3 -3
  658. package/esm/src/utils/_format.d.ts.map +1 -0
  659. package/esm/src/utils/{format.js → _format.js} +3 -3
  660. package/esm/src/utils/_format.js.map +1 -0
  661. package/{script/src/utils/symbolConverter.d.ts → esm/src/utils/_symbolConverter.d.ts} +12 -14
  662. package/esm/src/utils/_symbolConverter.d.ts.map +1 -0
  663. package/esm/src/utils/{symbolConverter.js → _symbolConverter.js} +41 -34
  664. package/esm/src/utils/_symbolConverter.js.map +1 -0
  665. package/esm/src/utils/mod.d.ts +26 -2
  666. package/esm/src/utils/mod.d.ts.map +1 -1
  667. package/esm/src/utils/mod.js +26 -2
  668. package/esm/src/utils/mod.js.map +1 -1
  669. package/package.json +3 -2
  670. package/script/bin/_utils.d.ts +18 -0
  671. package/script/bin/_utils.d.ts.map +1 -1
  672. package/script/bin/_utils.js +18 -3
  673. package/script/bin/_utils.js.map +1 -1
  674. package/script/bin/cli.d.ts +0 -8
  675. package/script/bin/cli.d.ts.map +1 -1
  676. package/script/bin/cli.js +15 -4
  677. package/script/bin/cli.js.map +1 -1
  678. package/script/src/_base.d.ts +5 -0
  679. package/script/src/_base.d.ts.map +1 -0
  680. package/script/src/_base.js +12 -0
  681. package/script/src/_base.js.map +1 -0
  682. package/script/src/api/_schemas.d.ts +6 -6
  683. package/script/src/api/_schemas.d.ts.map +1 -1
  684. package/script/src/api/_schemas.js +34 -20
  685. package/script/src/api/_schemas.js.map +1 -1
  686. package/script/src/api/exchange/_methods/_base/_nonce.d.ts +1 -2
  687. package/script/src/api/exchange/_methods/_base/_nonce.d.ts.map +1 -1
  688. package/script/src/api/exchange/_methods/_base/_nonce.js +7 -7
  689. package/script/src/api/exchange/_methods/_base/_nonce.js.map +1 -1
  690. package/{esm/src/api/exchange/_methods/_base/schemas.d.ts → script/src/api/exchange/_methods/_base/commonSchemas.d.ts} +7 -13
  691. package/script/src/api/exchange/_methods/_base/commonSchemas.d.ts.map +1 -0
  692. package/script/src/api/exchange/_methods/_base/{schemas.js → commonSchemas.js} +6 -14
  693. package/script/src/api/exchange/_methods/_base/commonSchemas.js.map +1 -0
  694. package/script/src/api/exchange/_methods/_base/errors.d.ts +1 -1
  695. package/script/src/api/exchange/_methods/_base/errors.d.ts.map +1 -1
  696. package/script/src/api/exchange/_methods/_base/errors.js +2 -2
  697. package/script/src/api/exchange/_methods/_base/errors.js.map +1 -1
  698. package/script/src/api/exchange/_methods/_base/execute.d.ts +5 -6
  699. package/script/src/api/exchange/_methods/_base/execute.d.ts.map +1 -1
  700. package/script/src/api/exchange/_methods/_base/execute.js.map +1 -1
  701. package/script/src/api/exchange/_methods/agentEnableDexAbstraction.d.ts +10 -6
  702. package/script/src/api/exchange/_methods/agentEnableDexAbstraction.d.ts.map +1 -1
  703. package/script/src/api/exchange/_methods/agentEnableDexAbstraction.js +5 -5
  704. package/script/src/api/exchange/_methods/agentEnableDexAbstraction.js.map +1 -1
  705. package/script/src/api/exchange/_methods/approveAgent.d.ts +22 -18
  706. package/script/src/api/exchange/_methods/approveAgent.d.ts.map +1 -1
  707. package/script/src/api/exchange/_methods/approveAgent.js +9 -9
  708. package/script/src/api/exchange/_methods/approveAgent.js.map +1 -1
  709. package/script/src/api/exchange/_methods/approveBuilderFee.d.ts +14 -10
  710. package/script/src/api/exchange/_methods/approveBuilderFee.d.ts.map +1 -1
  711. package/script/src/api/exchange/_methods/approveBuilderFee.js +7 -7
  712. package/script/src/api/exchange/_methods/approveBuilderFee.js.map +1 -1
  713. package/script/src/api/exchange/_methods/batchModify.d.ts +37 -33
  714. package/script/src/api/exchange/_methods/batchModify.d.ts.map +1 -1
  715. package/script/src/api/exchange/_methods/batchModify.js +9 -12
  716. package/script/src/api/exchange/_methods/batchModify.js.map +1 -1
  717. package/script/src/api/exchange/_methods/cDeposit.d.ts +19 -15
  718. package/script/src/api/exchange/_methods/cDeposit.d.ts.map +1 -1
  719. package/script/src/api/exchange/_methods/cDeposit.js +8 -8
  720. package/script/src/api/exchange/_methods/cDeposit.js.map +1 -1
  721. package/script/src/api/exchange/_methods/cSignerAction.d.ts +21 -10
  722. package/script/src/api/exchange/_methods/cSignerAction.d.ts.map +1 -1
  723. package/script/src/api/exchange/_methods/cSignerAction.js +16 -9
  724. package/script/src/api/exchange/_methods/cSignerAction.js.map +1 -1
  725. package/script/src/api/exchange/_methods/cValidatorAction.d.ts +31 -53
  726. package/script/src/api/exchange/_methods/cValidatorAction.d.ts.map +1 -1
  727. package/script/src/api/exchange/_methods/cValidatorAction.js +9 -35
  728. package/script/src/api/exchange/_methods/cValidatorAction.js.map +1 -1
  729. package/script/src/api/exchange/_methods/cWithdraw.d.ts +19 -15
  730. package/script/src/api/exchange/_methods/cWithdraw.d.ts.map +1 -1
  731. package/script/src/api/exchange/_methods/cWithdraw.js +8 -8
  732. package/script/src/api/exchange/_methods/cWithdraw.js.map +1 -1
  733. package/script/src/api/exchange/_methods/cancel.d.ts +27 -23
  734. package/script/src/api/exchange/_methods/cancel.d.ts.map +1 -1
  735. package/script/src/api/exchange/_methods/cancel.js +9 -9
  736. package/script/src/api/exchange/_methods/cancel.js.map +1 -1
  737. package/script/src/api/exchange/_methods/cancelByCloid.d.ts +22 -18
  738. package/script/src/api/exchange/_methods/cancelByCloid.d.ts.map +1 -1
  739. package/script/src/api/exchange/_methods/cancelByCloid.js +6 -6
  740. package/script/src/api/exchange/_methods/cancelByCloid.js.map +1 -1
  741. package/script/src/api/exchange/_methods/claimRewards.d.ts +9 -5
  742. package/script/src/api/exchange/_methods/claimRewards.d.ts.map +1 -1
  743. package/script/src/api/exchange/_methods/claimRewards.js +4 -4
  744. package/script/src/api/exchange/_methods/claimRewards.js.map +1 -1
  745. package/script/src/api/exchange/_methods/convertToMultiSigUser.d.ts +56 -44
  746. package/script/src/api/exchange/_methods/convertToMultiSigUser.d.ts.map +1 -1
  747. package/script/src/api/exchange/_methods/convertToMultiSigUser.js +32 -26
  748. package/script/src/api/exchange/_methods/convertToMultiSigUser.js.map +1 -1
  749. package/script/src/api/exchange/_methods/createSubAccount.d.ts +16 -18
  750. package/script/src/api/exchange/_methods/createSubAccount.d.ts.map +1 -1
  751. package/script/src/api/exchange/_methods/createSubAccount.js +7 -7
  752. package/script/src/api/exchange/_methods/createSubAccount.js.map +1 -1
  753. package/script/src/api/exchange/_methods/createVault.d.ts +30 -32
  754. package/script/src/api/exchange/_methods/createVault.d.ts.map +1 -1
  755. package/script/src/api/exchange/_methods/createVault.js +10 -10
  756. package/script/src/api/exchange/_methods/createVault.js.map +1 -1
  757. package/script/src/api/exchange/_methods/evmUserModify.d.ts +9 -5
  758. package/script/src/api/exchange/_methods/evmUserModify.d.ts.map +1 -1
  759. package/script/src/api/exchange/_methods/evmUserModify.js +4 -4
  760. package/script/src/api/exchange/_methods/evmUserModify.js.map +1 -1
  761. package/script/src/api/exchange/_methods/linkStakingUser.d.ts +15 -11
  762. package/script/src/api/exchange/_methods/linkStakingUser.d.ts.map +1 -1
  763. package/script/src/api/exchange/_methods/linkStakingUser.js +8 -8
  764. package/script/src/api/exchange/_methods/linkStakingUser.js.map +1 -1
  765. package/script/src/api/exchange/_methods/modify.d.ts +37 -33
  766. package/script/src/api/exchange/_methods/modify.d.ts.map +1 -1
  767. package/script/src/api/exchange/_methods/modify.js +10 -13
  768. package/script/src/api/exchange/_methods/modify.js.map +1 -1
  769. package/script/src/api/exchange/_methods/noop.d.ts +9 -5
  770. package/script/src/api/exchange/_methods/noop.d.ts.map +1 -1
  771. package/script/src/api/exchange/_methods/noop.js +4 -4
  772. package/script/src/api/exchange/_methods/noop.js.map +1 -1
  773. package/script/src/api/exchange/_methods/order.d.ts +47 -97
  774. package/script/src/api/exchange/_methods/order.d.ts.map +1 -1
  775. package/script/src/api/exchange/_methods/order.js +16 -16
  776. package/script/src/api/exchange/_methods/order.js.map +1 -1
  777. package/script/src/api/exchange/_methods/perpDeploy.d.ts +86 -76
  778. package/script/src/api/exchange/_methods/perpDeploy.d.ts.map +1 -1
  779. package/script/src/api/exchange/_methods/perpDeploy.js +41 -15
  780. package/script/src/api/exchange/_methods/perpDeploy.js.map +1 -1
  781. package/script/src/api/exchange/_methods/registerReferrer.d.ts +14 -10
  782. package/script/src/api/exchange/_methods/registerReferrer.d.ts.map +1 -1
  783. package/script/src/api/exchange/_methods/registerReferrer.js +5 -5
  784. package/script/src/api/exchange/_methods/registerReferrer.js.map +1 -1
  785. package/script/src/api/exchange/_methods/reserveRequestWeight.d.ts +14 -10
  786. package/script/src/api/exchange/_methods/reserveRequestWeight.d.ts.map +1 -1
  787. package/script/src/api/exchange/_methods/reserveRequestWeight.js +6 -5
  788. package/script/src/api/exchange/_methods/reserveRequestWeight.js.map +1 -1
  789. package/script/src/api/exchange/_methods/scheduleCancel.d.ts +14 -10
  790. package/script/src/api/exchange/_methods/scheduleCancel.d.ts.map +1 -1
  791. package/script/src/api/exchange/_methods/scheduleCancel.js +4 -4
  792. package/script/src/api/exchange/_methods/scheduleCancel.js.map +1 -1
  793. package/script/src/api/exchange/_methods/sendAsset.d.ts +30 -26
  794. package/script/src/api/exchange/_methods/sendAsset.d.ts.map +1 -1
  795. package/script/src/api/exchange/_methods/sendAsset.js +9 -9
  796. package/script/src/api/exchange/_methods/sendAsset.js.map +1 -1
  797. package/script/src/api/exchange/_methods/setDisplayName.d.ts +14 -13
  798. package/script/src/api/exchange/_methods/setDisplayName.d.ts.map +1 -1
  799. package/script/src/api/exchange/_methods/setDisplayName.js +6 -7
  800. package/script/src/api/exchange/_methods/setDisplayName.js.map +1 -1
  801. package/script/src/api/exchange/_methods/setReferrer.d.ts +14 -10
  802. package/script/src/api/exchange/_methods/setReferrer.d.ts.map +1 -1
  803. package/script/src/api/exchange/_methods/setReferrer.js +5 -5
  804. package/script/src/api/exchange/_methods/setReferrer.js.map +1 -1
  805. package/script/src/api/exchange/_methods/spotDeploy.d.ts +77 -73
  806. package/script/src/api/exchange/_methods/spotDeploy.d.ts.map +1 -1
  807. package/script/src/api/exchange/_methods/spotDeploy.js +13 -13
  808. package/script/src/api/exchange/_methods/spotDeploy.js.map +1 -1
  809. package/script/src/api/exchange/_methods/spotSend.d.ts +27 -23
  810. package/script/src/api/exchange/_methods/spotSend.d.ts.map +1 -1
  811. package/script/src/api/exchange/_methods/spotSend.js +8 -8
  812. package/script/src/api/exchange/_methods/spotSend.js.map +1 -1
  813. package/script/src/api/exchange/_methods/spotUser.d.ts +9 -5
  814. package/script/src/api/exchange/_methods/spotUser.d.ts.map +1 -1
  815. package/script/src/api/exchange/_methods/spotUser.js +4 -4
  816. package/script/src/api/exchange/_methods/spotUser.js.map +1 -1
  817. package/script/src/api/exchange/_methods/subAccountModify.d.ts +16 -12
  818. package/script/src/api/exchange/_methods/subAccountModify.d.ts.map +1 -1
  819. package/script/src/api/exchange/_methods/subAccountModify.js +7 -7
  820. package/script/src/api/exchange/_methods/subAccountModify.js.map +1 -1
  821. package/script/src/api/exchange/_methods/subAccountSpotTransfer.d.ts +22 -18
  822. package/script/src/api/exchange/_methods/subAccountSpotTransfer.d.ts.map +1 -1
  823. package/script/src/api/exchange/_methods/subAccountSpotTransfer.js +5 -5
  824. package/script/src/api/exchange/_methods/subAccountSpotTransfer.js.map +1 -1
  825. package/script/src/api/exchange/_methods/subAccountTransfer.d.ts +14 -10
  826. package/script/src/api/exchange/_methods/subAccountTransfer.d.ts.map +1 -1
  827. package/script/src/api/exchange/_methods/subAccountTransfer.js +5 -5
  828. package/script/src/api/exchange/_methods/subAccountTransfer.js.map +1 -1
  829. package/script/src/api/exchange/_methods/tokenDelegate.d.ts +19 -15
  830. package/script/src/api/exchange/_methods/tokenDelegate.d.ts.map +1 -1
  831. package/script/src/api/exchange/_methods/tokenDelegate.js +8 -8
  832. package/script/src/api/exchange/_methods/tokenDelegate.js.map +1 -1
  833. package/script/src/api/exchange/_methods/twapCancel.d.ts +17 -13
  834. package/script/src/api/exchange/_methods/twapCancel.d.ts.map +1 -1
  835. package/script/src/api/exchange/_methods/twapCancel.js +3 -3
  836. package/script/src/api/exchange/_methods/twapCancel.js.map +1 -1
  837. package/script/src/api/exchange/_methods/twapOrder.d.ts +21 -17
  838. package/script/src/api/exchange/_methods/twapOrder.d.ts.map +1 -1
  839. package/script/src/api/exchange/_methods/twapOrder.js +4 -4
  840. package/script/src/api/exchange/_methods/twapOrder.js.map +1 -1
  841. package/script/src/api/exchange/_methods/updateIsolatedMargin.d.ts +17 -13
  842. package/script/src/api/exchange/_methods/updateIsolatedMargin.d.ts.map +1 -1
  843. package/script/src/api/exchange/_methods/updateIsolatedMargin.js +4 -4
  844. package/script/src/api/exchange/_methods/updateIsolatedMargin.js.map +1 -1
  845. package/script/src/api/exchange/_methods/updateLeverage.d.ts +17 -13
  846. package/script/src/api/exchange/_methods/updateLeverage.d.ts.map +1 -1
  847. package/script/src/api/exchange/_methods/updateLeverage.js +5 -5
  848. package/script/src/api/exchange/_methods/updateLeverage.js.map +1 -1
  849. package/script/src/api/exchange/_methods/usdClassTransfer.d.ts +19 -15
  850. package/script/src/api/exchange/_methods/usdClassTransfer.d.ts.map +1 -1
  851. package/script/src/api/exchange/_methods/usdClassTransfer.js +7 -7
  852. package/script/src/api/exchange/_methods/usdClassTransfer.js.map +1 -1
  853. package/script/src/api/exchange/_methods/usdSend.d.ts +19 -15
  854. package/script/src/api/exchange/_methods/usdSend.d.ts.map +1 -1
  855. package/script/src/api/exchange/_methods/usdSend.js +7 -7
  856. package/script/src/api/exchange/_methods/usdSend.js.map +1 -1
  857. package/script/src/api/exchange/_methods/userDexAbstraction.d.ts +14 -10
  858. package/script/src/api/exchange/_methods/userDexAbstraction.d.ts.map +1 -1
  859. package/script/src/api/exchange/_methods/userDexAbstraction.js +7 -7
  860. package/script/src/api/exchange/_methods/userDexAbstraction.js.map +1 -1
  861. package/script/src/api/exchange/_methods/validatorL1Stream.d.ts +14 -10
  862. package/script/src/api/exchange/_methods/validatorL1Stream.d.ts.map +1 -1
  863. package/script/src/api/exchange/_methods/validatorL1Stream.js +4 -4
  864. package/script/src/api/exchange/_methods/validatorL1Stream.js.map +1 -1
  865. package/script/src/api/exchange/_methods/vaultDistribute.d.ts +14 -13
  866. package/script/src/api/exchange/_methods/vaultDistribute.d.ts.map +1 -1
  867. package/script/src/api/exchange/_methods/vaultDistribute.js +5 -6
  868. package/script/src/api/exchange/_methods/vaultDistribute.js.map +1 -1
  869. package/script/src/api/exchange/_methods/vaultModify.d.ts +21 -17
  870. package/script/src/api/exchange/_methods/vaultModify.d.ts.map +1 -1
  871. package/script/src/api/exchange/_methods/vaultModify.js +8 -8
  872. package/script/src/api/exchange/_methods/vaultModify.js.map +1 -1
  873. package/script/src/api/exchange/_methods/vaultTransfer.d.ts +14 -10
  874. package/script/src/api/exchange/_methods/vaultTransfer.d.ts.map +1 -1
  875. package/script/src/api/exchange/_methods/vaultTransfer.js +5 -5
  876. package/script/src/api/exchange/_methods/vaultTransfer.js.map +1 -1
  877. package/script/src/api/exchange/_methods/withdraw3.d.ts +19 -15
  878. package/script/src/api/exchange/_methods/withdraw3.d.ts.map +1 -1
  879. package/script/src/api/exchange/_methods/withdraw3.js +7 -7
  880. package/script/src/api/exchange/_methods/withdraw3.js.map +1 -1
  881. package/script/src/api/exchange/client.d.ts +3 -1
  882. package/script/src/api/exchange/client.d.ts.map +1 -1
  883. package/script/src/api/exchange/client.js +3 -1
  884. package/script/src/api/exchange/client.js.map +1 -1
  885. package/script/src/api/exchange/mod.d.ts +1 -1
  886. package/script/src/api/exchange/mod.js +1 -1
  887. package/script/src/api/info/_methods/_base/commonSchemas.d.ts +343 -0
  888. package/script/src/api/info/_methods/_base/commonSchemas.d.ts.map +1 -0
  889. package/script/src/api/info/_methods/_base/commonSchemas.js +377 -0
  890. package/script/src/api/info/_methods/_base/commonSchemas.js.map +1 -0
  891. package/script/src/api/info/_methods/_base/types.d.ts +7 -0
  892. package/script/src/api/info/_methods/_base/types.d.ts.map +1 -0
  893. package/script/src/api/info/_methods/{_types.js → _base/types.js} +1 -1
  894. package/script/src/api/info/_methods/_base/types.js.map +1 -0
  895. package/script/src/api/info/_methods/activeAssetData.d.ts +8 -8
  896. package/script/src/api/info/_methods/activeAssetData.d.ts.map +1 -1
  897. package/script/src/api/info/_methods/activeAssetData.js +1 -1
  898. package/script/src/api/info/_methods/alignedQuoteTokenInfo.d.ts +7 -7
  899. package/script/src/api/info/_methods/alignedQuoteTokenInfo.d.ts.map +1 -1
  900. package/script/src/api/info/_methods/alignedQuoteTokenInfo.js +5 -7
  901. package/script/src/api/info/_methods/alignedQuoteTokenInfo.js.map +1 -1
  902. package/script/src/api/info/_methods/allBorrowLendReserveStates.d.ts +84 -0
  903. package/script/src/api/info/_methods/allBorrowLendReserveStates.d.ts.map +1 -0
  904. package/script/src/api/info/_methods/allBorrowLendReserveStates.js +110 -0
  905. package/script/src/api/info/_methods/allBorrowLendReserveStates.js.map +1 -0
  906. package/script/src/api/info/_methods/allMids.d.ts +3 -3
  907. package/script/src/api/info/_methods/allMids.d.ts.map +1 -1
  908. package/script/src/api/info/_methods/allPerpMetas.d.ts +14 -33
  909. package/script/src/api/info/_methods/allPerpMetas.d.ts.map +1 -1
  910. package/script/src/api/info/_methods/allPerpMetas.js +1 -1
  911. package/script/src/api/info/_methods/blockDetails.d.ts +12 -20
  912. package/script/src/api/info/_methods/blockDetails.d.ts.map +1 -1
  913. package/script/src/api/info/_methods/blockDetails.js +4 -21
  914. package/script/src/api/info/_methods/blockDetails.js.map +1 -1
  915. package/script/src/api/info/_methods/borrowLendUserState.d.ts +123 -0
  916. package/script/src/api/info/_methods/borrowLendUserState.d.ts.map +1 -0
  917. package/script/src/api/info/_methods/borrowLendUserState.js +121 -0
  918. package/script/src/api/info/_methods/borrowLendUserState.js.map +1 -0
  919. package/script/src/api/info/_methods/candleSnapshot.d.ts +14 -25
  920. package/script/src/api/info/_methods/candleSnapshot.d.ts.map +1 -1
  921. package/script/src/api/info/_methods/candleSnapshot.js +3 -5
  922. package/script/src/api/info/_methods/candleSnapshot.js.map +1 -1
  923. package/script/src/api/info/_methods/clearinghouseState.d.ts +29 -55
  924. package/script/src/api/info/_methods/clearinghouseState.d.ts.map +1 -1
  925. package/script/src/api/info/_methods/clearinghouseState.js +3 -5
  926. package/script/src/api/info/_methods/clearinghouseState.js.map +1 -1
  927. package/script/src/api/info/_methods/delegations.d.ts +6 -10
  928. package/script/src/api/info/_methods/delegations.d.ts.map +1 -1
  929. package/script/src/api/info/_methods/delegations.js +3 -5
  930. package/script/src/api/info/_methods/delegations.js.map +1 -1
  931. package/script/src/api/info/_methods/delegatorHistory.d.ts +9 -28
  932. package/script/src/api/info/_methods/delegatorHistory.d.ts.map +1 -1
  933. package/script/src/api/info/_methods/delegatorHistory.js +4 -6
  934. package/script/src/api/info/_methods/delegatorHistory.js.map +1 -1
  935. package/script/src/api/info/_methods/delegatorRewards.d.ts +6 -10
  936. package/script/src/api/info/_methods/delegatorRewards.d.ts.map +1 -1
  937. package/script/src/api/info/_methods/delegatorRewards.js +3 -5
  938. package/script/src/api/info/_methods/delegatorRewards.js.map +1 -1
  939. package/script/src/api/info/_methods/delegatorSummary.d.ts +6 -6
  940. package/script/src/api/info/_methods/delegatorSummary.d.ts.map +1 -1
  941. package/script/src/api/info/_methods/delegatorSummary.js +1 -1
  942. package/script/src/api/info/_methods/exchangeStatus.d.ts +5 -4
  943. package/script/src/api/info/_methods/exchangeStatus.d.ts.map +1 -1
  944. package/script/src/api/info/_methods/exchangeStatus.js +3 -2
  945. package/script/src/api/info/_methods/exchangeStatus.js.map +1 -1
  946. package/script/src/api/info/_methods/extraAgents.d.ts +6 -10
  947. package/script/src/api/info/_methods/extraAgents.d.ts.map +1 -1
  948. package/script/src/api/info/_methods/extraAgents.js +4 -6
  949. package/script/src/api/info/_methods/extraAgents.js.map +1 -1
  950. package/script/src/api/info/_methods/frontendOpenOrders.d.ts +11 -43
  951. package/script/src/api/info/_methods/frontendOpenOrders.d.ts.map +1 -1
  952. package/script/src/api/info/_methods/frontendOpenOrders.js +3 -62
  953. package/script/src/api/info/_methods/frontendOpenOrders.js.map +1 -1
  954. package/script/src/api/info/_methods/fundingHistory.d.ts +9 -14
  955. package/script/src/api/info/_methods/fundingHistory.d.ts.map +1 -1
  956. package/script/src/api/info/_methods/fundingHistory.js +3 -5
  957. package/script/src/api/info/_methods/fundingHistory.js.map +1 -1
  958. package/script/src/api/info/_methods/gossipRootIps.d.ts +2 -2
  959. package/script/src/api/info/_methods/gossipRootIps.d.ts.map +1 -1
  960. package/script/src/api/info/_methods/gossipRootIps.js +1 -1
  961. package/script/src/api/info/_methods/historicalOrders.d.ts +33 -69
  962. package/script/src/api/info/_methods/historicalOrders.d.ts.map +1 -1
  963. package/script/src/api/info/_methods/historicalOrders.js +6 -97
  964. package/script/src/api/info/_methods/historicalOrders.js.map +1 -1
  965. package/script/src/api/info/_methods/isVip.d.ts +2 -2
  966. package/script/src/api/info/_methods/isVip.d.ts.map +1 -1
  967. package/script/src/api/info/_methods/isVip.js +1 -1
  968. package/script/src/api/info/_methods/l2Book.d.ts +10 -10
  969. package/script/src/api/info/_methods/l2Book.d.ts.map +1 -1
  970. package/script/src/api/info/_methods/l2Book.js +4 -4
  971. package/script/src/api/info/_methods/l2Book.js.map +1 -1
  972. package/script/src/api/info/_methods/l3Orders.d.ts +30 -30
  973. package/script/src/api/info/_methods/l3Orders.d.ts.map +1 -1
  974. package/script/src/api/info/_methods/l4Orders.d.ts +23 -23
  975. package/script/src/api/info/_methods/l4Orders.d.ts.map +1 -1
  976. package/script/src/api/info/_methods/leadingVaults.d.ts +4 -7
  977. package/script/src/api/info/_methods/leadingVaults.d.ts.map +1 -1
  978. package/script/src/api/info/_methods/leadingVaults.js +3 -5
  979. package/script/src/api/info/_methods/leadingVaults.js.map +1 -1
  980. package/script/src/api/info/_methods/legalCheck.d.ts +2 -2
  981. package/script/src/api/info/_methods/legalCheck.d.ts.map +1 -1
  982. package/script/src/api/info/_methods/legalCheck.js +1 -1
  983. package/script/src/api/info/_methods/liquidatable.d.ts +6 -4
  984. package/script/src/api/info/_methods/liquidatable.d.ts.map +1 -1
  985. package/script/src/api/info/_methods/liquidatable.js +5 -3
  986. package/script/src/api/info/_methods/liquidatable.js.map +1 -1
  987. package/script/src/api/info/_methods/marginTable.d.ts +7 -10
  988. package/script/src/api/info/_methods/marginTable.d.ts.map +1 -1
  989. package/script/src/api/info/_methods/marginTable.js +3 -5
  990. package/script/src/api/info/_methods/marginTable.js.map +1 -1
  991. package/script/src/api/info/_methods/maxBuilderFee.d.ts +2 -2
  992. package/script/src/api/info/_methods/maxBuilderFee.d.ts.map +1 -1
  993. package/script/src/api/info/_methods/maxBuilderFee.js +1 -1
  994. package/script/src/api/info/_methods/maxMarketOrderNtls.d.ts +4 -4
  995. package/script/src/api/info/_methods/maxMarketOrderNtls.d.ts.map +1 -1
  996. package/script/src/api/info/_methods/maxMarketOrderNtls.js +3 -5
  997. package/script/src/api/info/_methods/maxMarketOrderNtls.js.map +1 -1
  998. package/script/src/api/info/_methods/meta.d.ts +14 -33
  999. package/script/src/api/info/_methods/meta.d.ts.map +1 -1
  1000. package/script/src/api/info/_methods/meta.js +4 -8
  1001. package/script/src/api/info/_methods/meta.js.map +1 -1
  1002. package/script/src/api/info/_methods/metaAndAssetCtxs.d.ts +27 -67
  1003. package/script/src/api/info/_methods/metaAndAssetCtxs.d.ts.map +1 -1
  1004. package/script/src/api/info/_methods/metaAndAssetCtxs.js +4 -28
  1005. package/script/src/api/info/_methods/metaAndAssetCtxs.js.map +1 -1
  1006. package/script/src/api/info/_methods/openOrders.d.ts +11 -20
  1007. package/script/src/api/info/_methods/openOrders.d.ts.map +1 -1
  1008. package/script/src/api/info/_methods/openOrders.js +3 -21
  1009. package/script/src/api/info/_methods/openOrders.js.map +1 -1
  1010. package/script/src/api/info/_methods/orderStatus.d.ts +33 -48
  1011. package/script/src/api/info/_methods/orderStatus.d.ts.map +1 -1
  1012. package/script/src/api/info/_methods/orderStatus.js +5 -104
  1013. package/script/src/api/info/_methods/orderStatus.js.map +1 -1
  1014. package/script/src/api/info/_methods/perpDeployAuctionStatus.d.ts +7 -7
  1015. package/script/src/api/info/_methods/perpDeployAuctionStatus.d.ts.map +1 -1
  1016. package/script/src/api/info/_methods/perpDeployAuctionStatus.js +1 -1
  1017. package/script/src/api/info/_methods/perpDexLimits.d.ts +6 -6
  1018. package/script/src/api/info/_methods/perpDexLimits.d.ts.map +1 -1
  1019. package/script/src/api/info/_methods/perpDexLimits.js +1 -1
  1020. package/script/src/api/info/_methods/perpDexStatus.d.ts +3 -3
  1021. package/script/src/api/info/_methods/perpDexStatus.d.ts.map +1 -1
  1022. package/script/src/api/info/_methods/perpDexStatus.js +1 -1
  1023. package/script/src/api/info/_methods/perpDexs.d.ts +3 -3
  1024. package/script/src/api/info/_methods/perpDexs.d.ts.map +1 -1
  1025. package/script/src/api/info/_methods/perpDexs.js +1 -1
  1026. package/script/src/api/info/_methods/perpsAtOpenInterestCap.d.ts +2 -2
  1027. package/script/src/api/info/_methods/perpsAtOpenInterestCap.d.ts.map +1 -1
  1028. package/script/src/api/info/_methods/portfolio.d.ts +26 -26
  1029. package/script/src/api/info/_methods/portfolio.d.ts.map +1 -1
  1030. package/script/src/api/info/_methods/portfolio.js +10 -10
  1031. package/script/src/api/info/_methods/portfolio.js.map +1 -1
  1032. package/script/src/api/info/_methods/preTransferCheck.d.ts +3 -3
  1033. package/script/src/api/info/_methods/preTransferCheck.d.ts.map +1 -1
  1034. package/script/src/api/info/_methods/preTransferCheck.js +1 -1
  1035. package/script/src/api/info/_methods/predictedFundings.d.ts +9 -25
  1036. package/script/src/api/info/_methods/predictedFundings.d.ts.map +1 -1
  1037. package/script/src/api/info/_methods/predictedFundings.js +14 -18
  1038. package/script/src/api/info/_methods/predictedFundings.js.map +1 -1
  1039. package/script/src/api/info/_methods/recentTrades.d.ts +11 -20
  1040. package/script/src/api/info/_methods/recentTrades.d.ts.map +1 -1
  1041. package/script/src/api/info/_methods/recentTrades.js +4 -6
  1042. package/script/src/api/info/_methods/recentTrades.js.map +1 -1
  1043. package/script/src/api/info/_methods/referral.d.ts +33 -58
  1044. package/script/src/api/info/_methods/referral.d.ts.map +1 -1
  1045. package/script/src/api/info/_methods/referral.js +11 -19
  1046. package/script/src/api/info/_methods/referral.js.map +1 -1
  1047. package/script/src/api/info/_methods/spotClearinghouseState.d.ts +16 -26
  1048. package/script/src/api/info/_methods/spotClearinghouseState.d.ts.map +1 -1
  1049. package/script/src/api/info/_methods/spotClearinghouseState.js +7 -9
  1050. package/script/src/api/info/_methods/spotClearinghouseState.js.map +1 -1
  1051. package/script/src/api/info/_methods/spotDeployState.d.ts +26 -36
  1052. package/script/src/api/info/_methods/spotDeployState.d.ts.map +1 -1
  1053. package/script/src/api/info/_methods/spotDeployState.js +4 -6
  1054. package/script/src/api/info/_methods/spotDeployState.js.map +1 -1
  1055. package/script/src/api/info/_methods/spotMeta.d.ts +13 -31
  1056. package/script/src/api/info/_methods/spotMeta.d.ts.map +1 -1
  1057. package/script/src/api/info/_methods/spotMeta.js +5 -9
  1058. package/script/src/api/info/_methods/spotMeta.js.map +1 -1
  1059. package/script/src/api/info/_methods/spotMetaAndAssetCtxs.d.ts +24 -59
  1060. package/script/src/api/info/_methods/spotMetaAndAssetCtxs.d.ts.map +1 -1
  1061. package/script/src/api/info/_methods/spotMetaAndAssetCtxs.js +5 -25
  1062. package/script/src/api/info/_methods/spotMetaAndAssetCtxs.js.map +1 -1
  1063. package/script/src/api/info/_methods/spotPairDeployAuctionStatus.d.ts +7 -7
  1064. package/script/src/api/info/_methods/spotPairDeployAuctionStatus.d.ts.map +1 -1
  1065. package/script/src/api/info/_methods/spotPairDeployAuctionStatus.js +1 -1
  1066. package/script/src/api/info/_methods/subAccounts.d.ts +69 -111
  1067. package/script/src/api/info/_methods/subAccounts.d.ts.map +1 -1
  1068. package/script/src/api/info/_methods/subAccounts.js +6 -8
  1069. package/script/src/api/info/_methods/subAccounts.js.map +1 -1
  1070. package/script/src/api/info/_methods/subAccounts2.d.ts +51 -136
  1071. package/script/src/api/info/_methods/subAccounts2.d.ts.map +1 -1
  1072. package/script/src/api/info/_methods/subAccounts2.js +8 -13
  1073. package/script/src/api/info/_methods/subAccounts2.js.map +1 -1
  1074. package/script/src/api/info/_methods/tokenDetails.d.ts +15 -15
  1075. package/script/src/api/info/_methods/tokenDetails.d.ts.map +1 -1
  1076. package/script/src/api/info/_methods/tokenDetails.js +2 -2
  1077. package/script/src/api/info/_methods/tokenDetails.js.map +1 -1
  1078. package/script/src/api/info/_methods/twapHistory.d.ts +26 -46
  1079. package/script/src/api/info/_methods/twapHistory.d.ts.map +1 -1
  1080. package/script/src/api/info/_methods/twapHistory.js +5 -27
  1081. package/script/src/api/info/_methods/twapHistory.js.map +1 -1
  1082. package/script/src/api/info/_methods/txDetails.d.ts +19 -16
  1083. package/script/src/api/info/_methods/txDetails.d.ts.map +1 -1
  1084. package/script/src/api/info/_methods/txDetails.js +4 -19
  1085. package/script/src/api/info/_methods/txDetails.js.map +1 -1
  1086. package/script/src/api/info/_methods/userDetails.d.ts +7 -15
  1087. package/script/src/api/info/_methods/userDetails.d.ts.map +1 -1
  1088. package/script/src/api/info/_methods/userDetails.js +3 -18
  1089. package/script/src/api/info/_methods/userDetails.js.map +1 -1
  1090. package/script/src/api/info/_methods/userDexAbstraction.d.ts +3 -3
  1091. package/script/src/api/info/_methods/userDexAbstraction.d.ts.map +1 -1
  1092. package/script/src/api/info/_methods/userDexAbstraction.js +2 -2
  1093. package/script/src/api/info/_methods/userDexAbstraction.js.map +1 -1
  1094. package/script/src/api/info/_methods/userFees.d.ts +38 -55
  1095. package/script/src/api/info/_methods/userFees.d.ts.map +1 -1
  1096. package/script/src/api/info/_methods/userFees.js +16 -22
  1097. package/script/src/api/info/_methods/userFees.js.map +1 -1
  1098. package/script/src/api/info/_methods/userFills.d.ts +36 -55
  1099. package/script/src/api/info/_methods/userFills.d.ts.map +1 -1
  1100. package/script/src/api/info/_methods/userFills.js +18 -44
  1101. package/script/src/api/info/_methods/userFills.js.map +1 -1
  1102. package/script/src/api/info/_methods/userFillsByTime.d.ts +38 -41
  1103. package/script/src/api/info/_methods/userFillsByTime.d.ts.map +1 -1
  1104. package/script/src/api/info/_methods/userFillsByTime.js +1 -1
  1105. package/script/src/api/info/_methods/userFunding.d.ts +12 -23
  1106. package/script/src/api/info/_methods/userFunding.d.ts.map +1 -1
  1107. package/script/src/api/info/_methods/userFunding.js +4 -6
  1108. package/script/src/api/info/_methods/userFunding.js.map +1 -1
  1109. package/script/src/api/info/_methods/userNonFundingLedgerUpdates.d.ts +128 -187
  1110. package/script/src/api/info/_methods/userNonFundingLedgerUpdates.d.ts.map +1 -1
  1111. package/script/src/api/info/_methods/userNonFundingLedgerUpdates.js +81 -37
  1112. package/script/src/api/info/_methods/userNonFundingLedgerUpdates.js.map +1 -1
  1113. package/script/src/api/info/_methods/userRateLimit.d.ts +6 -6
  1114. package/script/src/api/info/_methods/userRateLimit.d.ts.map +1 -1
  1115. package/script/src/api/info/_methods/userRateLimit.js +1 -1
  1116. package/script/src/api/info/_methods/userRole.d.ts +2 -2
  1117. package/script/src/api/info/_methods/userRole.d.ts.map +1 -1
  1118. package/script/src/api/info/_methods/userRole.js +1 -1
  1119. package/script/src/api/info/_methods/userToMultiSigSigners.d.ts +4 -4
  1120. package/script/src/api/info/_methods/userToMultiSigSigners.d.ts.map +1 -1
  1121. package/script/src/api/info/_methods/userToMultiSigSigners.js +2 -2
  1122. package/script/src/api/info/_methods/userToMultiSigSigners.js.map +1 -1
  1123. package/script/src/api/info/_methods/userTwapSliceFills.d.ts +23 -41
  1124. package/script/src/api/info/_methods/userTwapSliceFills.d.ts.map +1 -1
  1125. package/script/src/api/info/_methods/userTwapSliceFills.js +5 -37
  1126. package/script/src/api/info/_methods/userTwapSliceFills.js.map +1 -1
  1127. package/script/src/api/info/_methods/userTwapSliceFillsByTime.d.ts +25 -28
  1128. package/script/src/api/info/_methods/userTwapSliceFillsByTime.d.ts.map +1 -1
  1129. package/script/src/api/info/_methods/userTwapSliceFillsByTime.js +1 -1
  1130. package/script/src/api/info/_methods/userVaultEquities.d.ts +6 -10
  1131. package/script/src/api/info/_methods/userVaultEquities.d.ts.map +1 -1
  1132. package/script/src/api/info/_methods/userVaultEquities.js +3 -5
  1133. package/script/src/api/info/_methods/userVaultEquities.js.map +1 -1
  1134. package/script/src/api/info/_methods/validatorL1Votes.d.ts +5 -13
  1135. package/script/src/api/info/_methods/validatorL1Votes.d.ts.map +1 -1
  1136. package/script/src/api/info/_methods/validatorL1Votes.js +5 -5
  1137. package/script/src/api/info/_methods/validatorL1Votes.js.map +1 -1
  1138. package/script/src/api/info/_methods/validatorSummaries.d.ts +14 -38
  1139. package/script/src/api/info/_methods/validatorSummaries.d.ts.map +1 -1
  1140. package/script/src/api/info/_methods/validatorSummaries.js +8 -10
  1141. package/script/src/api/info/_methods/validatorSummaries.js.map +1 -1
  1142. package/script/src/api/info/_methods/vaultDetails.d.ts +50 -55
  1143. package/script/src/api/info/_methods/vaultDetails.d.ts.map +1 -1
  1144. package/script/src/api/info/_methods/vaultDetails.js +7 -22
  1145. package/script/src/api/info/_methods/vaultDetails.js.map +1 -1
  1146. package/script/src/api/info/_methods/vaultSummaries.d.ts +10 -22
  1147. package/script/src/api/info/_methods/vaultSummaries.d.ts.map +1 -1
  1148. package/script/src/api/info/_methods/vaultSummaries.js +5 -20
  1149. package/script/src/api/info/_methods/vaultSummaries.js.map +1 -1
  1150. package/script/src/api/info/_methods/webData2.d.ts +169 -170
  1151. package/script/src/api/info/_methods/webData2.d.ts.map +1 -1
  1152. package/script/src/api/info/_methods/webData2.js +11 -78
  1153. package/script/src/api/info/_methods/webData2.js.map +1 -1
  1154. package/script/src/api/info/client.d.ts +17 -20
  1155. package/script/src/api/info/client.d.ts.map +1 -1
  1156. package/script/src/api/info/client.js +14 -2
  1157. package/script/src/api/info/client.js.map +1 -1
  1158. package/script/src/api/info/mod.d.ts +4 -2
  1159. package/script/src/api/info/mod.d.ts.map +1 -1
  1160. package/script/src/api/info/mod.js +3 -1
  1161. package/script/src/api/info/mod.js.map +1 -1
  1162. package/script/src/api/subscription/_methods/_types.d.ts +2 -2
  1163. package/script/src/api/subscription/_methods/_types.d.ts.map +1 -1
  1164. package/script/src/api/subscription/_methods/activeAssetCtx.d.ts +24 -23
  1165. package/script/src/api/subscription/_methods/activeAssetCtx.d.ts.map +1 -1
  1166. package/script/src/api/subscription/_methods/activeAssetCtx.js +3 -24
  1167. package/script/src/api/subscription/_methods/activeAssetCtx.js.map +1 -1
  1168. package/script/src/api/subscription/_methods/activeAssetData.d.ts +9 -9
  1169. package/script/src/api/subscription/_methods/activeAssetData.d.ts.map +1 -1
  1170. package/script/src/api/subscription/_methods/activeAssetData.js +1 -1
  1171. package/script/src/api/subscription/_methods/activeSpotAssetCtx.d.ts +20 -19
  1172. package/script/src/api/subscription/_methods/activeSpotAssetCtx.d.ts.map +1 -1
  1173. package/script/src/api/subscription/_methods/activeSpotAssetCtx.js +3 -20
  1174. package/script/src/api/subscription/_methods/activeSpotAssetCtx.js.map +1 -1
  1175. package/script/src/api/subscription/_methods/allDexsAssetCtxs.d.ts +25 -24
  1176. package/script/src/api/subscription/_methods/allDexsAssetCtxs.d.ts.map +1 -1
  1177. package/script/src/api/subscription/_methods/allDexsAssetCtxs.js +3 -24
  1178. package/script/src/api/subscription/_methods/allDexsAssetCtxs.js.map +1 -1
  1179. package/script/src/api/subscription/_methods/allDexsClearinghouseState.d.ts +30 -56
  1180. package/script/src/api/subscription/_methods/allDexsClearinghouseState.d.ts.map +1 -1
  1181. package/script/src/api/subscription/_methods/allDexsClearinghouseState.js +1 -1
  1182. package/script/src/api/subscription/_methods/allMids.d.ts +8 -6
  1183. package/script/src/api/subscription/_methods/allMids.d.ts.map +1 -1
  1184. package/script/src/api/subscription/_methods/allMids.js +2 -2
  1185. package/script/src/api/subscription/_methods/allMids.js.map +1 -1
  1186. package/script/src/api/subscription/_methods/assetCtxs.d.ts +14 -24
  1187. package/script/src/api/subscription/_methods/assetCtxs.d.ts.map +1 -1
  1188. package/script/src/api/subscription/_methods/assetCtxs.js +2 -25
  1189. package/script/src/api/subscription/_methods/assetCtxs.js.map +1 -1
  1190. package/script/src/api/subscription/_methods/bbo.d.ts +10 -10
  1191. package/script/src/api/subscription/_methods/bbo.d.ts.map +1 -1
  1192. package/script/src/api/subscription/_methods/bbo.js +3 -3
  1193. package/script/src/api/subscription/_methods/bbo.js.map +1 -1
  1194. package/script/src/api/subscription/_methods/candle.d.ts +11 -11
  1195. package/script/src/api/subscription/_methods/candle.d.ts.map +1 -1
  1196. package/script/src/api/subscription/_methods/candle.js +1 -1
  1197. package/script/src/api/subscription/_methods/clearinghouseState.d.ts +51 -34
  1198. package/script/src/api/subscription/_methods/clearinghouseState.d.ts.map +1 -1
  1199. package/script/src/api/subscription/_methods/clearinghouseState.js +2 -2
  1200. package/script/src/api/subscription/_methods/clearinghouseState.js.map +1 -1
  1201. package/script/src/api/subscription/_methods/explorerBlock.d.ts +10 -16
  1202. package/script/src/api/subscription/_methods/explorerBlock.d.ts.map +1 -1
  1203. package/script/src/api/subscription/_methods/explorerBlock.js +5 -7
  1204. package/script/src/api/subscription/_methods/explorerBlock.js.map +1 -1
  1205. package/script/src/api/subscription/_methods/explorerTxs.d.ts +8 -15
  1206. package/script/src/api/subscription/_methods/explorerTxs.d.ts.map +1 -1
  1207. package/script/src/api/subscription/_methods/explorerTxs.js +4 -22
  1208. package/script/src/api/subscription/_methods/explorerTxs.js.map +1 -1
  1209. package/script/src/api/subscription/_methods/l2Book.d.ts +12 -12
  1210. package/script/src/api/subscription/_methods/l2Book.d.ts.map +1 -1
  1211. package/script/src/api/subscription/_methods/l2Book.js +3 -3
  1212. package/script/src/api/subscription/_methods/l2Book.js.map +1 -1
  1213. package/script/src/api/subscription/_methods/notification.d.ts +3 -3
  1214. package/script/src/api/subscription/_methods/notification.d.ts.map +1 -1
  1215. package/script/src/api/subscription/_methods/notification.js +1 -1
  1216. package/script/src/api/subscription/_methods/openOrders.d.ts +31 -14
  1217. package/script/src/api/subscription/_methods/openOrders.d.ts.map +1 -1
  1218. package/script/src/api/subscription/_methods/openOrders.js +2 -2
  1219. package/script/src/api/subscription/_methods/openOrders.js.map +1 -1
  1220. package/script/src/api/subscription/_methods/orderUpdates.d.ts +26 -39
  1221. package/script/src/api/subscription/_methods/orderUpdates.d.ts.map +1 -1
  1222. package/script/src/api/subscription/_methods/orderUpdates.js +6 -56
  1223. package/script/src/api/subscription/_methods/orderUpdates.js.map +1 -1
  1224. package/script/src/api/subscription/_methods/spotAssetCtxs.d.ts +21 -20
  1225. package/script/src/api/subscription/_methods/spotAssetCtxs.d.ts.map +1 -1
  1226. package/script/src/api/subscription/_methods/spotAssetCtxs.js +3 -20
  1227. package/script/src/api/subscription/_methods/spotAssetCtxs.js.map +1 -1
  1228. package/script/src/api/subscription/_methods/spotState.d.ts +25 -22
  1229. package/script/src/api/subscription/_methods/spotState.d.ts.map +1 -1
  1230. package/script/src/api/subscription/_methods/spotState.js +2 -2
  1231. package/script/src/api/subscription/_methods/spotState.js.map +1 -1
  1232. package/script/src/api/subscription/_methods/trades.d.ts +13 -22
  1233. package/script/src/api/subscription/_methods/trades.d.ts.map +1 -1
  1234. package/script/src/api/subscription/_methods/trades.js +1 -1
  1235. package/script/src/api/subscription/_methods/twapStates.d.ts +102 -0
  1236. package/script/src/api/subscription/_methods/twapStates.d.ts.map +1 -0
  1237. package/script/src/api/subscription/_methods/twapStates.js +101 -0
  1238. package/script/src/api/subscription/_methods/twapStates.js.map +1 -0
  1239. package/script/src/api/subscription/_methods/userEvents.d.ts +111 -156
  1240. package/script/src/api/subscription/_methods/userEvents.d.ts.map +1 -1
  1241. package/script/src/api/subscription/_methods/userEvents.js +18 -18
  1242. package/script/src/api/subscription/_methods/userEvents.js.map +1 -1
  1243. package/script/src/api/subscription/_methods/userFills.d.ts +51 -31
  1244. package/script/src/api/subscription/_methods/userFills.d.ts.map +1 -1
  1245. package/script/src/api/subscription/_methods/userFills.js +2 -2
  1246. package/script/src/api/subscription/_methods/userFills.js.map +1 -1
  1247. package/script/src/api/subscription/_methods/userFundings.d.ts +8 -8
  1248. package/script/src/api/subscription/_methods/userFundings.d.ts.map +1 -1
  1249. package/script/src/api/subscription/_methods/userFundings.js +1 -1
  1250. package/script/src/api/subscription/_methods/userHistoricalOrders.d.ts +37 -20
  1251. package/script/src/api/subscription/_methods/userHistoricalOrders.d.ts.map +1 -1
  1252. package/script/src/api/subscription/_methods/userHistoricalOrders.js +2 -2
  1253. package/script/src/api/subscription/_methods/userHistoricalOrders.js.map +1 -1
  1254. package/script/src/api/subscription/_methods/userNonFundingLedgerUpdates.d.ts +163 -125
  1255. package/script/src/api/subscription/_methods/userNonFundingLedgerUpdates.d.ts.map +1 -1
  1256. package/script/src/api/subscription/_methods/userNonFundingLedgerUpdates.js +2 -2
  1257. package/script/src/api/subscription/_methods/userNonFundingLedgerUpdates.js.map +1 -1
  1258. package/script/src/api/subscription/_methods/userTwapHistory.d.ts +30 -19
  1259. package/script/src/api/subscription/_methods/userTwapHistory.d.ts.map +1 -1
  1260. package/script/src/api/subscription/_methods/userTwapHistory.js +2 -2
  1261. package/script/src/api/subscription/_methods/userTwapHistory.js.map +1 -1
  1262. package/script/src/api/subscription/_methods/userTwapSliceFills.d.ts +39 -23
  1263. package/script/src/api/subscription/_methods/userTwapSliceFills.d.ts.map +1 -1
  1264. package/script/src/api/subscription/_methods/userTwapSliceFills.js +2 -2
  1265. package/script/src/api/subscription/_methods/userTwapSliceFills.js.map +1 -1
  1266. package/script/src/api/subscription/_methods/webData2.d.ts +172 -145
  1267. package/script/src/api/subscription/_methods/webData2.d.ts.map +1 -1
  1268. package/script/src/api/subscription/_methods/webData2.js +2 -2
  1269. package/script/src/api/subscription/_methods/webData2.js.map +1 -1
  1270. package/script/src/api/subscription/_methods/webData3.d.ts +14 -13
  1271. package/script/src/api/subscription/_methods/webData3.d.ts.map +1 -1
  1272. package/script/src/api/subscription/_methods/webData3.js +4 -2
  1273. package/script/src/api/subscription/_methods/webData3.js.map +1 -1
  1274. package/script/src/api/subscription/client.d.ts +39 -33
  1275. package/script/src/api/subscription/client.d.ts.map +1 -1
  1276. package/script/src/api/subscription/client.js +9 -2
  1277. package/script/src/api/subscription/client.js.map +1 -1
  1278. package/script/src/api/subscription/mod.d.ts +2 -1
  1279. package/script/src/api/subscription/mod.d.ts.map +1 -1
  1280. package/script/src/api/subscription/mod.js +2 -1
  1281. package/script/src/api/subscription/mod.js.map +1 -1
  1282. package/script/src/mod.d.ts +31 -3
  1283. package/script/src/mod.d.ts.map +1 -1
  1284. package/script/src/mod.js +31 -3
  1285. package/script/src/mod.js.map +1 -1
  1286. package/script/src/signing/_abstractWallet.d.ts +5 -5
  1287. package/script/src/signing/_abstractWallet.d.ts.map +1 -1
  1288. package/script/src/signing/_abstractWallet.js +41 -49
  1289. package/script/src/signing/_abstractWallet.js.map +1 -1
  1290. package/script/src/signing/_privateKeySigner.js +3 -3
  1291. package/script/src/signing/_privateKeySigner.js.map +1 -1
  1292. package/script/src/signing/mod.d.ts +1 -1
  1293. package/script/src/signing/mod.js +6 -6
  1294. package/script/src/signing/mod.js.map +1 -1
  1295. package/script/src/transport/_base.d.ts +51 -0
  1296. package/script/src/transport/_base.d.ts.map +1 -0
  1297. package/script/src/transport/_base.js +13 -0
  1298. package/script/src/transport/_base.js.map +1 -0
  1299. package/script/src/transport/_polyfills.d.ts +30 -0
  1300. package/script/src/transport/_polyfills.d.ts.map +1 -1
  1301. package/script/src/transport/_polyfills.js +12 -3
  1302. package/script/src/transport/_polyfills.js.map +1 -1
  1303. package/script/src/transport/http/mod.d.ts +31 -7
  1304. package/script/src/transport/http/mod.d.ts.map +1 -1
  1305. package/script/src/transport/http/mod.js +31 -7
  1306. package/script/src/transport/http/mod.js.map +1 -1
  1307. package/script/src/transport/mod.d.ts +19 -0
  1308. package/script/src/transport/mod.d.ts.map +1 -0
  1309. package/script/src/transport/mod.js +35 -0
  1310. package/script/src/transport/mod.js.map +1 -0
  1311. package/script/src/transport/websocket/_hyperliquidEventTarget.js +2 -2
  1312. package/script/src/transport/websocket/_hyperliquidEventTarget.js.map +1 -1
  1313. package/script/src/transport/websocket/_postRequest.d.ts +12 -7
  1314. package/script/src/transport/websocket/_postRequest.d.ts.map +1 -1
  1315. package/script/src/transport/websocket/_postRequest.js +81 -65
  1316. package/script/src/transport/websocket/_postRequest.js.map +1 -1
  1317. package/script/src/transport/websocket/_subscriptionManager.d.ts +6 -12
  1318. package/script/src/transport/websocket/_subscriptionManager.d.ts.map +1 -1
  1319. package/script/src/transport/websocket/_subscriptionManager.js +10 -10
  1320. package/script/src/transport/websocket/_subscriptionManager.js.map +1 -1
  1321. package/script/src/transport/websocket/mod.d.ts +38 -14
  1322. package/script/src/transport/websocket/mod.d.ts.map +1 -1
  1323. package/script/src/transport/websocket/mod.js +68 -36
  1324. package/script/src/transport/websocket/mod.js.map +1 -1
  1325. package/{esm/src/utils/format.d.ts → script/src/utils/_format.d.ts} +3 -3
  1326. package/script/src/utils/_format.d.ts.map +1 -0
  1327. package/script/src/utils/{format.js → _format.js} +3 -3
  1328. package/script/src/utils/_format.js.map +1 -0
  1329. package/{esm/src/utils/symbolConverter.d.ts → script/src/utils/_symbolConverter.d.ts} +12 -14
  1330. package/script/src/utils/_symbolConverter.d.ts.map +1 -0
  1331. package/script/src/utils/{symbolConverter.js → _symbolConverter.js} +41 -34
  1332. package/script/src/utils/_symbolConverter.js.map +1 -0
  1333. package/script/src/utils/mod.d.ts +26 -2
  1334. package/script/src/utils/mod.d.ts.map +1 -1
  1335. package/script/src/utils/mod.js +26 -2
  1336. package/script/src/utils/mod.js.map +1 -1
  1337. package/src/bin/_utils.ts +19 -0
  1338. package/src/bin/cli.ts +13 -2
  1339. package/src/src/_base.ts +7 -0
  1340. package/src/src/api/_schemas.ts +41 -33
  1341. package/src/src/api/exchange/_methods/_base/_nonce.ts +7 -7
  1342. package/src/src/api/exchange/_methods/_base/{schemas.ts → commonSchemas.ts} +9 -25
  1343. package/src/src/api/exchange/_methods/_base/errors.ts +1 -1
  1344. package/src/src/api/exchange/_methods/_base/execute.ts +9 -14
  1345. package/src/src/api/exchange/_methods/agentEnableDexAbstraction.ts +10 -4
  1346. package/src/src/api/exchange/_methods/approveAgent.ts +31 -16
  1347. package/src/src/api/exchange/_methods/approveBuilderFee.ts +22 -14
  1348. package/src/src/api/exchange/_methods/batchModify.ts +18 -11
  1349. package/src/src/api/exchange/_methods/cDeposit.ts +23 -14
  1350. package/src/src/api/exchange/_methods/cSignerAction.ts +21 -8
  1351. package/src/src/api/exchange/_methods/cValidatorAction.ts +14 -34
  1352. package/src/src/api/exchange/_methods/cWithdraw.ts +23 -14
  1353. package/src/src/api/exchange/_methods/cancel.ts +15 -9
  1354. package/src/src/api/exchange/_methods/cancelByCloid.ts +13 -7
  1355. package/src/src/api/exchange/_methods/claimRewards.ts +9 -3
  1356. package/src/src/api/exchange/_methods/convertToMultiSigUser.ts +45 -31
  1357. package/src/src/api/exchange/_methods/createSubAccount.ts +33 -29
  1358. package/src/src/api/exchange/_methods/createVault.ts +39 -31
  1359. package/src/src/api/exchange/_methods/evmUserModify.ts +9 -3
  1360. package/src/src/api/exchange/_methods/linkStakingUser.ts +23 -15
  1361. package/src/src/api/exchange/_methods/modify.ts +16 -11
  1362. package/src/src/api/exchange/_methods/noop.ts +9 -3
  1363. package/src/src/api/exchange/_methods/order.ts +105 -99
  1364. package/src/src/api/exchange/_methods/perpDeploy.ts +59 -14
  1365. package/src/src/api/exchange/_methods/registerReferrer.ts +10 -3
  1366. package/src/src/api/exchange/_methods/reserveRequestWeight.ts +10 -3
  1367. package/src/src/api/exchange/_methods/scheduleCancel.ts +9 -3
  1368. package/src/src/api/exchange/_methods/sendAsset.ts +28 -17
  1369. package/src/src/api/exchange/_methods/setDisplayName.ts +11 -5
  1370. package/src/src/api/exchange/_methods/setReferrer.ts +10 -3
  1371. package/src/src/api/exchange/_methods/spotDeploy.ts +24 -14
  1372. package/src/src/api/exchange/_methods/spotSend.ts +23 -15
  1373. package/src/src/api/exchange/_methods/spotUser.ts +9 -3
  1374. package/src/src/api/exchange/_methods/subAccountModify.ts +12 -5
  1375. package/src/src/api/exchange/_methods/subAccountSpotTransfer.ts +11 -5
  1376. package/src/src/api/exchange/_methods/subAccountTransfer.ts +10 -3
  1377. package/src/src/api/exchange/_methods/tokenDelegate.ts +23 -14
  1378. package/src/src/api/exchange/_methods/twapCancel.ts +9 -3
  1379. package/src/src/api/exchange/_methods/twapOrder.ts +11 -3
  1380. package/src/src/api/exchange/_methods/updateIsolatedMargin.ts +9 -3
  1381. package/src/src/api/exchange/_methods/updateLeverage.ts +11 -4
  1382. package/src/src/api/exchange/_methods/usdClassTransfer.ts +22 -14
  1383. package/src/src/api/exchange/_methods/usdSend.ts +22 -14
  1384. package/src/src/api/exchange/_methods/userDexAbstraction.ts +22 -14
  1385. package/src/src/api/exchange/_methods/validatorL1Stream.ts +9 -3
  1386. package/src/src/api/exchange/_methods/vaultDistribute.ts +10 -5
  1387. package/src/src/api/exchange/_methods/vaultModify.ts +13 -7
  1388. package/src/src/api/exchange/_methods/vaultTransfer.ts +10 -3
  1389. package/src/src/api/exchange/_methods/withdraw3.ts +22 -14
  1390. package/src/src/api/exchange/client.ts +3 -1
  1391. package/src/src/api/exchange/mod.ts +1 -1
  1392. package/src/src/api/info/_methods/_base/commonSchemas.ts +630 -0
  1393. package/src/src/api/info/_methods/_base/types.ts +7 -0
  1394. package/src/src/api/info/_methods/activeAssetData.ts +2 -2
  1395. package/src/src/api/info/_methods/alignedQuoteTokenInfo.ts +6 -17
  1396. package/src/src/api/info/_methods/allBorrowLendReserveStates.ts +131 -0
  1397. package/src/src/api/info/_methods/allMids.ts +2 -2
  1398. package/src/src/api/info/_methods/allPerpMetas.ts +2 -2
  1399. package/src/src/api/info/_methods/blockDetails.ts +7 -49
  1400. package/src/src/api/info/_methods/borrowLendUserState.ts +151 -0
  1401. package/src/src/api/info/_methods/candleSnapshot.ts +54 -58
  1402. package/src/src/api/info/_methods/clearinghouseState.ts +114 -118
  1403. package/src/src/api/info/_methods/delegations.ts +19 -23
  1404. package/src/src/api/info/_methods/delegatorHistory.ts +75 -78
  1405. package/src/src/api/info/_methods/delegatorRewards.ts +19 -23
  1406. package/src/src/api/info/_methods/delegatorSummary.ts +2 -2
  1407. package/src/src/api/info/_methods/exchangeStatus.ts +4 -2
  1408. package/src/src/api/info/_methods/extraAgents.ts +20 -24
  1409. package/src/src/api/info/_methods/frontendOpenOrders.ts +5 -121
  1410. package/src/src/api/info/_methods/fundingHistory.ts +24 -28
  1411. package/src/src/api/info/_methods/gossipRootIps.ts +2 -2
  1412. package/src/src/api/info/_methods/historicalOrders.ts +82 -227
  1413. package/src/src/api/info/_methods/isVip.ts +2 -2
  1414. package/src/src/api/info/_methods/l2Book.ts +5 -5
  1415. package/src/src/api/info/_methods/l3Orders.ts +1 -1
  1416. package/src/src/api/info/_methods/l4Orders.ts +1 -1
  1417. package/src/src/api/info/_methods/leadingVaults.ts +14 -18
  1418. package/src/src/api/info/_methods/legalCheck.ts +2 -2
  1419. package/src/src/api/info/_methods/liquidatable.ts +6 -3
  1420. package/src/src/api/info/_methods/marginTable.ts +15 -19
  1421. package/src/src/api/info/_methods/maxBuilderFee.ts +2 -2
  1422. package/src/src/api/info/_methods/maxMarketOrderNtls.ts +5 -9
  1423. package/src/src/api/info/_methods/meta.ts +54 -62
  1424. package/src/src/api/info/_methods/metaAndAssetCtxs.ts +6 -67
  1425. package/src/src/api/info/_methods/openOrders.ts +5 -55
  1426. package/src/src/api/info/_methods/orderStatus.ts +7 -158
  1427. package/src/src/api/info/_methods/perpDeployAuctionStatus.ts +2 -2
  1428. package/src/src/api/info/_methods/perpDexLimits.ts +2 -2
  1429. package/src/src/api/info/_methods/perpDexStatus.ts +2 -2
  1430. package/src/src/api/info/_methods/perpDexs.ts +2 -2
  1431. package/src/src/api/info/_methods/perpsAtOpenInterestCap.ts +2 -2
  1432. package/src/src/api/info/_methods/portfolio.ts +12 -12
  1433. package/src/src/api/info/_methods/preTransferCheck.ts +2 -2
  1434. package/src/src/api/info/_methods/predictedFundings.ts +33 -53
  1435. package/src/src/api/info/_methods/recentTrades.ts +45 -48
  1436. package/src/src/api/info/_methods/referral.ts +105 -121
  1437. package/src/src/api/info/_methods/spotClearinghouseState.ts +38 -45
  1438. package/src/src/api/info/_methods/spotDeployState.ts +79 -80
  1439. package/src/src/api/info/_methods/spotMeta.ts +83 -91
  1440. package/src/src/api/info/_methods/spotMetaAndAssetCtxs.ts +6 -57
  1441. package/src/src/api/info/_methods/spotPairDeployAuctionStatus.ts +2 -2
  1442. package/src/src/api/info/_methods/subAccounts.ts +30 -28
  1443. package/src/src/api/info/_methods/subAccounts2.ts +33 -39
  1444. package/src/src/api/info/_methods/tokenDetails.ts +4 -3
  1445. package/src/src/api/info/_methods/twapHistory.ts +52 -106
  1446. package/src/src/api/info/_methods/txDetails.ts +8 -44
  1447. package/src/src/api/info/_methods/userDetails.ts +6 -48
  1448. package/src/src/api/info/_methods/userDexAbstraction.ts +3 -3
  1449. package/src/src/api/info/_methods/userFees.ts +84 -98
  1450. package/src/src/api/info/_methods/userFills.ts +8 -82
  1451. package/src/src/api/info/_methods/userFillsByTime.ts +2 -2
  1452. package/src/src/api/info/_methods/userFunding.ts +51 -54
  1453. package/src/src/api/info/_methods/userNonFundingLedgerUpdates.ts +445 -380
  1454. package/src/src/api/info/_methods/userRateLimit.ts +2 -2
  1455. package/src/src/api/info/_methods/userRole.ts +2 -2
  1456. package/src/src/api/info/_methods/userToMultiSigSigners.ts +3 -3
  1457. package/src/src/api/info/_methods/userTwapSliceFills.ts +16 -95
  1458. package/src/src/api/info/_methods/userTwapSliceFillsByTime.ts +2 -2
  1459. package/src/src/api/info/_methods/userVaultEquities.ts +19 -23
  1460. package/src/src/api/info/_methods/validatorL1Votes.ts +28 -30
  1461. package/src/src/api/info/_methods/validatorSummaries.ts +65 -68
  1462. package/src/src/api/info/_methods/vaultDetails.ts +43 -72
  1463. package/src/src/api/info/_methods/vaultSummaries.ts +40 -69
  1464. package/src/src/api/info/_methods/webData2.ts +29 -180
  1465. package/src/src/api/info/client.ts +35 -8
  1466. package/src/src/api/info/mod.ts +4 -2
  1467. package/src/src/api/subscription/_methods/_types.ts +2 -2
  1468. package/src/src/api/subscription/_methods/activeAssetCtx.ts +5 -56
  1469. package/src/src/api/subscription/_methods/activeAssetData.ts +3 -3
  1470. package/src/src/api/subscription/_methods/activeSpotAssetCtx.ts +5 -46
  1471. package/src/src/api/subscription/_methods/allDexsAssetCtxs.ts +5 -58
  1472. package/src/src/api/subscription/_methods/allDexsClearinghouseState.ts +3 -3
  1473. package/src/src/api/subscription/_methods/allMids.ts +10 -7
  1474. package/src/src/api/subscription/_methods/assetCtxs.ts +7 -64
  1475. package/src/src/api/subscription/_methods/bbo.ts +5 -5
  1476. package/src/src/api/subscription/_methods/candle.ts +3 -3
  1477. package/src/src/api/subscription/_methods/clearinghouseState.ts +7 -4
  1478. package/src/src/api/subscription/_methods/explorerBlock.ts +32 -35
  1479. package/src/src/api/subscription/_methods/explorerTxs.ts +6 -49
  1480. package/src/src/api/subscription/_methods/l2Book.ts +5 -5
  1481. package/src/src/api/subscription/_methods/notification.ts +3 -3
  1482. package/src/src/api/subscription/_methods/openOrders.ts +7 -4
  1483. package/src/src/api/subscription/_methods/orderUpdates.ts +83 -164
  1484. package/src/src/api/subscription/_methods/spotAssetCtxs.ts +5 -48
  1485. package/src/src/api/subscription/_methods/spotState.ts +7 -4
  1486. package/src/src/api/subscription/_methods/trades.ts +3 -3
  1487. package/src/src/api/subscription/_methods/twapStates.ts +105 -0
  1488. package/src/src/api/subscription/_methods/userEvents.ts +105 -117
  1489. package/src/src/api/subscription/_methods/userFills.ts +7 -4
  1490. package/src/src/api/subscription/_methods/userFundings.ts +3 -3
  1491. package/src/src/api/subscription/_methods/userHistoricalOrders.ts +7 -4
  1492. package/src/src/api/subscription/_methods/userNonFundingLedgerUpdates.ts +7 -4
  1493. package/src/src/api/subscription/_methods/userTwapHistory.ts +7 -4
  1494. package/src/src/api/subscription/_methods/userTwapSliceFills.ts +7 -4
  1495. package/src/src/api/subscription/_methods/webData2.ts +4 -4
  1496. package/src/src/api/subscription/_methods/webData3.ts +9 -4
  1497. package/src/src/api/subscription/client.ts +50 -35
  1498. package/src/src/api/subscription/mod.ts +2 -1
  1499. package/src/src/mod.ts +31 -4
  1500. package/src/src/signing/_abstractWallet.ts +60 -68
  1501. package/src/src/signing/_privateKeySigner.ts +1 -1
  1502. package/src/src/signing/mod.ts +5 -5
  1503. package/src/src/transport/_base.ts +57 -0
  1504. package/src/src/transport/_polyfills.ts +12 -2
  1505. package/src/src/transport/http/mod.ts +32 -11
  1506. package/src/src/transport/mod.ts +19 -0
  1507. package/src/src/transport/websocket/_hyperliquidEventTarget.ts +2 -2
  1508. package/src/src/transport/websocket/_postRequest.ts +81 -61
  1509. package/src/src/transport/websocket/_subscriptionManager.ts +13 -21
  1510. package/src/src/transport/websocket/mod.ts +81 -52
  1511. package/src/src/utils/{format.ts → _format.ts} +2 -2
  1512. package/src/src/utils/{symbolConverter.ts → _symbolConverter.ts} +44 -39
  1513. package/src/src/utils/mod.ts +27 -2
  1514. package/esm/_dnt.shims.d.ts +0 -2
  1515. package/esm/_dnt.shims.d.ts.map +0 -1
  1516. package/esm/_dnt.shims.js +0 -58
  1517. package/esm/_dnt.shims.js.map +0 -1
  1518. package/esm/deps/jsr.io/@noble/curves/2.0.1/src/abstract/curve.d.ts +0 -195
  1519. package/esm/deps/jsr.io/@noble/curves/2.0.1/src/abstract/curve.d.ts.map +0 -1
  1520. package/esm/deps/jsr.io/@noble/curves/2.0.1/src/abstract/curve.js +0 -457
  1521. package/esm/deps/jsr.io/@noble/curves/2.0.1/src/abstract/curve.js.map +0 -1
  1522. package/esm/deps/jsr.io/@noble/curves/2.0.1/src/abstract/hash-to-curve.d.ts +0 -90
  1523. package/esm/deps/jsr.io/@noble/curves/2.0.1/src/abstract/hash-to-curve.d.ts.map +0 -1
  1524. package/esm/deps/jsr.io/@noble/curves/2.0.1/src/abstract/hash-to-curve.js +0 -207
  1525. package/esm/deps/jsr.io/@noble/curves/2.0.1/src/abstract/hash-to-curve.js.map +0 -1
  1526. package/esm/deps/jsr.io/@noble/curves/2.0.1/src/abstract/modular.d.ts +0 -159
  1527. package/esm/deps/jsr.io/@noble/curves/2.0.1/src/abstract/modular.d.ts.map +0 -1
  1528. package/esm/deps/jsr.io/@noble/curves/2.0.1/src/abstract/modular.js +0 -555
  1529. package/esm/deps/jsr.io/@noble/curves/2.0.1/src/abstract/modular.js.map +0 -1
  1530. package/esm/deps/jsr.io/@noble/curves/2.0.1/src/abstract/weierstrass.d.ts +0 -325
  1531. package/esm/deps/jsr.io/@noble/curves/2.0.1/src/abstract/weierstrass.d.ts.map +0 -1
  1532. package/esm/deps/jsr.io/@noble/curves/2.0.1/src/abstract/weierstrass.js +0 -1222
  1533. package/esm/deps/jsr.io/@noble/curves/2.0.1/src/abstract/weierstrass.js.map +0 -1
  1534. package/esm/deps/jsr.io/@noble/curves/2.0.1/src/secp256k1.d.ts +0 -76
  1535. package/esm/deps/jsr.io/@noble/curves/2.0.1/src/secp256k1.d.ts.map +0 -1
  1536. package/esm/deps/jsr.io/@noble/curves/2.0.1/src/secp256k1.js +0 -283
  1537. package/esm/deps/jsr.io/@noble/curves/2.0.1/src/secp256k1.js.map +0 -1
  1538. package/esm/deps/jsr.io/@noble/curves/2.0.1/src/utils.d.ts +0 -103
  1539. package/esm/deps/jsr.io/@noble/curves/2.0.1/src/utils.d.ts.map +0 -1
  1540. package/esm/deps/jsr.io/@noble/curves/2.0.1/src/utils.js +0 -241
  1541. package/esm/deps/jsr.io/@noble/curves/2.0.1/src/utils.js.map +0 -1
  1542. package/esm/deps/jsr.io/@noble/hashes/2.0.1/src/_md.d.ts +0 -49
  1543. package/esm/deps/jsr.io/@noble/hashes/2.0.1/src/_md.d.ts.map +0 -1
  1544. package/esm/deps/jsr.io/@noble/hashes/2.0.1/src/_md.js +0 -147
  1545. package/esm/deps/jsr.io/@noble/hashes/2.0.1/src/_md.js.map +0 -1
  1546. package/esm/deps/jsr.io/@noble/hashes/2.0.1/src/_u64.d.ts +0 -55
  1547. package/esm/deps/jsr.io/@noble/hashes/2.0.1/src/_u64.d.ts.map +0 -1
  1548. package/esm/deps/jsr.io/@noble/hashes/2.0.1/src/_u64.js +0 -67
  1549. package/esm/deps/jsr.io/@noble/hashes/2.0.1/src/_u64.js.map +0 -1
  1550. package/esm/deps/jsr.io/@noble/hashes/2.0.1/src/hmac.d.ts +0 -36
  1551. package/esm/deps/jsr.io/@noble/hashes/2.0.1/src/hmac.d.ts.map +0 -1
  1552. package/esm/deps/jsr.io/@noble/hashes/2.0.1/src/hmac.js +0 -90
  1553. package/esm/deps/jsr.io/@noble/hashes/2.0.1/src/hmac.js.map +0 -1
  1554. package/esm/deps/jsr.io/@noble/hashes/2.0.1/src/sha2.d.ts +0 -199
  1555. package/esm/deps/jsr.io/@noble/hashes/2.0.1/src/sha2.d.ts.map +0 -1
  1556. package/esm/deps/jsr.io/@noble/hashes/2.0.1/src/sha2.js +0 -397
  1557. package/esm/deps/jsr.io/@noble/hashes/2.0.1/src/sha2.js.map +0 -1
  1558. package/esm/deps/jsr.io/@noble/hashes/2.0.1/src/sha3.d.ts +0 -58
  1559. package/esm/deps/jsr.io/@noble/hashes/2.0.1/src/sha3.d.ts.map +0 -1
  1560. package/esm/deps/jsr.io/@noble/hashes/2.0.1/src/sha3.js +0 -254
  1561. package/esm/deps/jsr.io/@noble/hashes/2.0.1/src/sha3.js.map +0 -1
  1562. package/esm/deps/jsr.io/@noble/hashes/2.0.1/src/utils.d.ts +0 -124
  1563. package/esm/deps/jsr.io/@noble/hashes/2.0.1/src/utils.d.ts.map +0 -1
  1564. package/esm/deps/jsr.io/@noble/hashes/2.0.1/src/utils.js +0 -243
  1565. package/esm/deps/jsr.io/@noble/hashes/2.0.1/src/utils.js.map +0 -1
  1566. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/advanced/abi-mapper.d.ts +0 -44
  1567. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/advanced/abi-mapper.d.ts.map +0 -1
  1568. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/advanced/abi-mapper.js +0 -144
  1569. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/advanced/abi-mapper.js.map +0 -1
  1570. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/address.d.ts +0 -38
  1571. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/address.d.ts.map +0 -1
  1572. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/address.js +0 -96
  1573. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/address.js.map +0 -1
  1574. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/rlp.d.ts +0 -23
  1575. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/rlp.d.ts.map +0 -1
  1576. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/rlp.js +0 -98
  1577. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/rlp.js.map +0 -1
  1578. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/tx-internal.d.ts +0 -300
  1579. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/tx-internal.d.ts.map +0 -1
  1580. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/tx-internal.js +0 -535
  1581. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/tx-internal.js.map +0 -1
  1582. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/tx.d.ts +0 -98
  1583. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/tx.d.ts.map +0 -1
  1584. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/tx.js +0 -207
  1585. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/tx.js.map +0 -1
  1586. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/typed-data.d.ts +0 -78
  1587. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/typed-data.d.ts.map +0 -1
  1588. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/typed-data.js +0 -298
  1589. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/typed-data.js.map +0 -1
  1590. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/index.d.ts +0 -6
  1591. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/index.d.ts.map +0 -1
  1592. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/index.js +0 -6
  1593. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/index.js.map +0 -1
  1594. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/utils.d.ts +0 -66
  1595. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/utils.d.ts.map +0 -1
  1596. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/utils.js +0 -180
  1597. package/esm/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/utils.js.map +0 -1
  1598. package/esm/deps/jsr.io/@paulmillr/micro-packed/0.8.0/src/index.d.ts +0 -877
  1599. package/esm/deps/jsr.io/@paulmillr/micro-packed/0.8.0/src/index.d.ts.map +0 -1
  1600. package/esm/deps/jsr.io/@paulmillr/micro-packed/0.8.0/src/index.js +0 -2001
  1601. package/esm/deps/jsr.io/@paulmillr/micro-packed/0.8.0/src/index.js.map +0 -1
  1602. package/esm/deps/jsr.io/@scure/base/2.0.0/index.d.ts +0 -294
  1603. package/esm/deps/jsr.io/@scure/base/2.0.0/index.d.ts.map +0 -1
  1604. package/esm/deps/jsr.io/@scure/base/2.0.0/index.js +0 -704
  1605. package/esm/deps/jsr.io/@scure/base/2.0.0/index.js.map +0 -1
  1606. package/esm/src/_errors.d.ts +0 -9
  1607. package/esm/src/_errors.d.ts.map +0 -1
  1608. package/esm/src/_errors.js.map +0 -1
  1609. package/esm/src/api/exchange/_methods/_base/schemas.d.ts.map +0 -1
  1610. package/esm/src/api/exchange/_methods/_base/schemas.js.map +0 -1
  1611. package/esm/src/api/info/_methods/_types.d.ts +0 -8
  1612. package/esm/src/api/info/_methods/_types.d.ts.map +0 -1
  1613. package/esm/src/api/info/_methods/_types.js +0 -2
  1614. package/esm/src/api/info/_methods/_types.js.map +0 -1
  1615. package/esm/src/utils/format.d.ts.map +0 -1
  1616. package/esm/src/utils/format.js.map +0 -1
  1617. package/esm/src/utils/symbolConverter.d.ts.map +0 -1
  1618. package/esm/src/utils/symbolConverter.js.map +0 -1
  1619. package/script/_dnt.shims.d.ts +0 -2
  1620. package/script/_dnt.shims.d.ts.map +0 -1
  1621. package/script/_dnt.shims.js +0 -61
  1622. package/script/_dnt.shims.js.map +0 -1
  1623. package/script/deps/jsr.io/@noble/curves/2.0.1/src/abstract/curve.d.ts +0 -195
  1624. package/script/deps/jsr.io/@noble/curves/2.0.1/src/abstract/curve.d.ts.map +0 -1
  1625. package/script/deps/jsr.io/@noble/curves/2.0.1/src/abstract/curve.js +0 -468
  1626. package/script/deps/jsr.io/@noble/curves/2.0.1/src/abstract/curve.js.map +0 -1
  1627. package/script/deps/jsr.io/@noble/curves/2.0.1/src/abstract/hash-to-curve.d.ts +0 -90
  1628. package/script/deps/jsr.io/@noble/curves/2.0.1/src/abstract/hash-to-curve.d.ts.map +0 -1
  1629. package/script/deps/jsr.io/@noble/curves/2.0.1/src/abstract/hash-to-curve.js +0 -215
  1630. package/script/deps/jsr.io/@noble/curves/2.0.1/src/abstract/hash-to-curve.js.map +0 -1
  1631. package/script/deps/jsr.io/@noble/curves/2.0.1/src/abstract/modular.d.ts +0 -159
  1632. package/script/deps/jsr.io/@noble/curves/2.0.1/src/abstract/modular.d.ts.map +0 -1
  1633. package/script/deps/jsr.io/@noble/curves/2.0.1/src/abstract/modular.js +0 -578
  1634. package/script/deps/jsr.io/@noble/curves/2.0.1/src/abstract/modular.js.map +0 -1
  1635. package/script/deps/jsr.io/@noble/curves/2.0.1/src/abstract/weierstrass.d.ts +0 -325
  1636. package/script/deps/jsr.io/@noble/curves/2.0.1/src/abstract/weierstrass.d.ts.map +0 -1
  1637. package/script/deps/jsr.io/@noble/curves/2.0.1/src/abstract/weierstrass.js +0 -1232
  1638. package/script/deps/jsr.io/@noble/curves/2.0.1/src/abstract/weierstrass.js.map +0 -1
  1639. package/script/deps/jsr.io/@noble/curves/2.0.1/src/secp256k1.d.ts +0 -76
  1640. package/script/deps/jsr.io/@noble/curves/2.0.1/src/secp256k1.d.ts.map +0 -1
  1641. package/script/deps/jsr.io/@noble/curves/2.0.1/src/secp256k1.js +0 -286
  1642. package/script/deps/jsr.io/@noble/curves/2.0.1/src/secp256k1.js.map +0 -1
  1643. package/script/deps/jsr.io/@noble/curves/2.0.1/src/utils.d.ts +0 -103
  1644. package/script/deps/jsr.io/@noble/curves/2.0.1/src/utils.d.ts.map +0 -1
  1645. package/script/deps/jsr.io/@noble/curves/2.0.1/src/utils.js +0 -273
  1646. package/script/deps/jsr.io/@noble/curves/2.0.1/src/utils.js.map +0 -1
  1647. package/script/deps/jsr.io/@noble/hashes/2.0.1/src/_md.d.ts +0 -49
  1648. package/script/deps/jsr.io/@noble/hashes/2.0.1/src/_md.d.ts.map +0 -1
  1649. package/script/deps/jsr.io/@noble/hashes/2.0.1/src/_md.js +0 -153
  1650. package/script/deps/jsr.io/@noble/hashes/2.0.1/src/_md.js.map +0 -1
  1651. package/script/deps/jsr.io/@noble/hashes/2.0.1/src/_u64.d.ts +0 -55
  1652. package/script/deps/jsr.io/@noble/hashes/2.0.1/src/_u64.d.ts.map +0 -1
  1653. package/script/deps/jsr.io/@noble/hashes/2.0.1/src/_u64.js +0 -90
  1654. package/script/deps/jsr.io/@noble/hashes/2.0.1/src/_u64.js.map +0 -1
  1655. package/script/deps/jsr.io/@noble/hashes/2.0.1/src/hmac.d.ts +0 -36
  1656. package/script/deps/jsr.io/@noble/hashes/2.0.1/src/hmac.d.ts.map +0 -1
  1657. package/script/deps/jsr.io/@noble/hashes/2.0.1/src/hmac.js +0 -95
  1658. package/script/deps/jsr.io/@noble/hashes/2.0.1/src/hmac.js.map +0 -1
  1659. package/script/deps/jsr.io/@noble/hashes/2.0.1/src/sha2.d.ts +0 -199
  1660. package/script/deps/jsr.io/@noble/hashes/2.0.1/src/sha2.d.ts.map +0 -1
  1661. package/script/deps/jsr.io/@noble/hashes/2.0.1/src/sha2.js +0 -439
  1662. package/script/deps/jsr.io/@noble/hashes/2.0.1/src/sha2.js.map +0 -1
  1663. package/script/deps/jsr.io/@noble/hashes/2.0.1/src/sha3.d.ts +0 -58
  1664. package/script/deps/jsr.io/@noble/hashes/2.0.1/src/sha3.d.ts.map +0 -1
  1665. package/script/deps/jsr.io/@noble/hashes/2.0.1/src/sha3.js +0 -259
  1666. package/script/deps/jsr.io/@noble/hashes/2.0.1/src/sha3.js.map +0 -1
  1667. package/script/deps/jsr.io/@noble/hashes/2.0.1/src/utils.d.ts +0 -124
  1668. package/script/deps/jsr.io/@noble/hashes/2.0.1/src/utils.d.ts.map +0 -1
  1669. package/script/deps/jsr.io/@noble/hashes/2.0.1/src/utils.js +0 -304
  1670. package/script/deps/jsr.io/@noble/hashes/2.0.1/src/utils.js.map +0 -1
  1671. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/advanced/abi-mapper.d.ts +0 -44
  1672. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/advanced/abi-mapper.d.ts.map +0 -1
  1673. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/advanced/abi-mapper.js +0 -182
  1674. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/advanced/abi-mapper.js.map +0 -1
  1675. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/address.d.ts +0 -38
  1676. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/address.d.ts.map +0 -1
  1677. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/address.js +0 -99
  1678. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/address.js.map +0 -1
  1679. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/rlp.d.ts +0 -23
  1680. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/rlp.d.ts.map +0 -1
  1681. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/rlp.js +0 -134
  1682. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/rlp.js.map +0 -1
  1683. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/tx-internal.d.ts +0 -300
  1684. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/tx-internal.d.ts.map +0 -1
  1685. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/tx-internal.js +0 -576
  1686. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/tx-internal.js.map +0 -1
  1687. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/tx.d.ts +0 -98
  1688. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/tx.d.ts.map +0 -1
  1689. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/tx.js +0 -211
  1690. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/tx.js.map +0 -1
  1691. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/typed-data.d.ts +0 -78
  1692. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/typed-data.d.ts.map +0 -1
  1693. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/typed-data.js +0 -308
  1694. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/typed-data.js.map +0 -1
  1695. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/index.d.ts +0 -6
  1696. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/index.d.ts.map +0 -1
  1697. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/index.js +0 -21
  1698. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/index.js.map +0 -1
  1699. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/utils.d.ts +0 -66
  1700. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/utils.d.ts.map +0 -1
  1701. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/utils.js +0 -195
  1702. package/script/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/utils.js.map +0 -1
  1703. package/script/deps/jsr.io/@paulmillr/micro-packed/0.8.0/src/index.d.ts +0 -877
  1704. package/script/deps/jsr.io/@paulmillr/micro-packed/0.8.0/src/index.d.ts.map +0 -1
  1705. package/script/deps/jsr.io/@paulmillr/micro-packed/0.8.0/src/index.js +0 -2032
  1706. package/script/deps/jsr.io/@paulmillr/micro-packed/0.8.0/src/index.js.map +0 -1
  1707. package/script/deps/jsr.io/@scure/base/2.0.0/index.d.ts +0 -294
  1708. package/script/deps/jsr.io/@scure/base/2.0.0/index.d.ts.map +0 -1
  1709. package/script/deps/jsr.io/@scure/base/2.0.0/index.js +0 -710
  1710. package/script/deps/jsr.io/@scure/base/2.0.0/index.js.map +0 -1
  1711. package/script/src/_errors.d.ts +0 -9
  1712. package/script/src/_errors.d.ts.map +0 -1
  1713. package/script/src/_errors.js +0 -20
  1714. package/script/src/_errors.js.map +0 -1
  1715. package/script/src/api/exchange/_methods/_base/schemas.d.ts.map +0 -1
  1716. package/script/src/api/exchange/_methods/_base/schemas.js.map +0 -1
  1717. package/script/src/api/info/_methods/_types.d.ts +0 -8
  1718. package/script/src/api/info/_methods/_types.d.ts.map +0 -1
  1719. package/script/src/api/info/_methods/_types.js.map +0 -1
  1720. package/script/src/utils/format.d.ts.map +0 -1
  1721. package/script/src/utils/format.js.map +0 -1
  1722. package/script/src/utils/symbolConverter.d.ts.map +0 -1
  1723. package/script/src/utils/symbolConverter.js.map +0 -1
  1724. package/src/_dnt.shims.ts +0 -60
  1725. package/src/deps/jsr.io/@noble/curves/2.0.1/src/abstract/curve.ts +0 -633
  1726. package/src/deps/jsr.io/@noble/curves/2.0.1/src/abstract/hash-to-curve.ts +0 -292
  1727. package/src/deps/jsr.io/@noble/curves/2.0.1/src/abstract/modular.ts +0 -621
  1728. package/src/deps/jsr.io/@noble/curves/2.0.1/src/abstract/weierstrass.ts +0 -1562
  1729. package/src/deps/jsr.io/@noble/curves/2.0.1/src/secp256k1.ts +0 -327
  1730. package/src/deps/jsr.io/@noble/curves/2.0.1/src/utils.ts +0 -306
  1731. package/src/deps/jsr.io/@noble/hashes/2.0.1/src/_md.ts +0 -156
  1732. package/src/deps/jsr.io/@noble/hashes/2.0.1/src/_u64.ts +0 -91
  1733. package/src/deps/jsr.io/@noble/hashes/2.0.1/src/hmac.ts +0 -94
  1734. package/src/deps/jsr.io/@noble/hashes/2.0.1/src/sha2.ts +0 -469
  1735. package/src/deps/jsr.io/@noble/hashes/2.0.1/src/sha3.ts +0 -295
  1736. package/src/deps/jsr.io/@noble/hashes/2.0.1/src/utils.ts +0 -340
  1737. package/src/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/advanced/abi-mapper.ts +0 -212
  1738. package/src/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/address.ts +0 -100
  1739. package/src/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/rlp.ts +0 -104
  1740. package/src/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/tx-internal.ts +0 -626
  1741. package/src/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/tx.ts +0 -274
  1742. package/src/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/core/typed-data.ts +0 -391
  1743. package/src/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/index.ts +0 -12
  1744. package/src/deps/jsr.io/@paulmillr/micro-eth-signer/0.18.1/src/utils.ts +0 -233
  1745. package/src/deps/jsr.io/@paulmillr/micro-packed/0.8.0/src/index.ts +0 -2196
  1746. package/src/deps/jsr.io/@scure/base/2.0.0/index.ts +0 -857
  1747. package/src/src/_errors.ts +0 -15
  1748. package/src/src/api/info/_methods/_types.ts +0 -8
@@ -1,2196 +0,0 @@
1
- import { hex as baseHex, utf8, type Coder as BaseCoder } from '../../../../@scure/base/2.0.0/index.js';
2
-
3
- /**
4
- * Define complex binary structures using composable primitives.
5
- * Main ideas:
6
- * - Encode / decode can be chained, same as in `scure-base`
7
- * - A complex structure can be created from an array and struct of primitive types
8
- * - Strings / bytes are arrays with specific optimizations: we can just read bytes directly
9
- * without creating plain array first and reading each byte separately.
10
- * - Types are inferred from definition
11
- * @module
12
- * @example
13
- * import * as P from 'micro-packed';
14
- * const s = P.struct({
15
- * field1: P.U32BE, // 32-bit unsigned big-endian integer
16
- * field2: P.string(P.U8), // String with U8 length prefix
17
- * field3: P.bytes(32), // 32 bytes
18
- * field4: P.array(P.U16BE, P.struct({ // Array of structs with U16BE length
19
- * subField1: P.U64BE, // 64-bit unsigned big-endian integer
20
- * subField2: P.string(10) // 10-byte string
21
- * }))
22
- * });
23
- */
24
-
25
- // TODO: remove dependency on scure-base & inline?
26
-
27
- /*
28
- Exports can be groupped like this:
29
-
30
- - Primitive types: P.bytes, P.string, P.hex, P.constant, P.pointer
31
- - Complex types: P.array, P.struct, P.tuple, P.map, P.tag, P.mappedTag
32
- - Padding, prefix, magic: P.padLeft, P.padRight, P.prefix, P.magic, P.magicBytes
33
- - Flags: P.flag, P.flagged, P.optional
34
- - Wrappers: P.apply, P.wrap, P.lazy
35
- - Bit fiddling: P.bits, P.bitset
36
- - utils: P.validate, coders.decimal
37
- - Debugger
38
- */
39
-
40
- /** Shortcut to zero-length (empty) byte array */
41
- export const EMPTY: Uint8Array = /* @__PURE__ */ Uint8Array.of();
42
- /** Shortcut to one-element (element is 0) byte array */
43
- export const NULL: Uint8Array = /* @__PURE__ */ Uint8Array.of(0);
44
-
45
- /** Checks if two Uint8Arrays are equal. Not constant-time. */
46
- function equalBytes(a: Uint8Array, b: Uint8Array): boolean {
47
- if (a.length !== b.length) return false;
48
- for (let i = 0; i < a.length; i++) if (a[i] !== b[i]) return false;
49
- return true;
50
- }
51
- /** Checks if the given value is a Uint8Array. */
52
- function isBytes(a: unknown): a is Bytes {
53
- return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');
54
- }
55
-
56
- /**
57
- * Concatenates multiple Uint8Arrays.
58
- * Engines limit functions to 65K+ arguments.
59
- * @param arrays Array of Uint8Array elements
60
- * @returns Concatenated Uint8Array
61
- */
62
- function concatBytes(...arrays: Uint8Array[]): Uint8Array {
63
- let sum = 0;
64
- for (let i = 0; i < arrays.length; i++) {
65
- const a = arrays[i];
66
- if (!isBytes(a)) throw new Error('Uint8Array expected');
67
- sum += a.length;
68
- }
69
- const res = new Uint8Array(sum);
70
- for (let i = 0, pad = 0; i < arrays.length; i++) {
71
- const a = arrays[i];
72
- res.set(a, pad);
73
- pad += a.length;
74
- }
75
- return res;
76
- }
77
- /**
78
- * Creates DataView from Uint8Array
79
- * @param arr - bytes
80
- * @returns DataView
81
- */
82
- const createView = (arr: Uint8Array) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);
83
-
84
- /**
85
- * Checks if the provided value is a plain object, not created from any class or special constructor.
86
- * Array, Uint8Array and others are not plain objects.
87
- * @param obj - The value to be checked.
88
- */
89
- function isPlainObject(obj: any): boolean {
90
- return Object.prototype.toString.call(obj) === '[object Object]';
91
- }
92
-
93
- function isNum(num: unknown): num is number {
94
- return Number.isSafeInteger(num);
95
- }
96
-
97
- export const utils: {
98
- equalBytes: typeof equalBytes;
99
- isBytes: typeof isBytes;
100
- isCoder: typeof isCoder;
101
- checkBounds: typeof checkBounds;
102
- concatBytes: typeof concatBytes;
103
- createView: (arr: Uint8Array) => DataView;
104
- isPlainObject: typeof isPlainObject;
105
- } = {
106
- equalBytes,
107
- isBytes,
108
- isCoder,
109
- checkBounds,
110
- concatBytes,
111
- createView,
112
- isPlainObject,
113
- };
114
-
115
- // Types
116
- export type Bytes = Uint8Array;
117
- export type Option<T> = T | undefined;
118
- /**
119
- * Coder encodes and decodes between two types.
120
- * @property {(from: F) => T} encode - Encodes (converts) F to T
121
- * @property {(to: T) => F} decode - Decodes (converts) T to F
122
- */
123
- export interface Coder<F, T> {
124
- encode(from: F): T;
125
- decode(to: T): F;
126
- }
127
- /**
128
- * BytesCoder converts value between a type and a byte array
129
- * @property {number} [size] - Size hint for the element.
130
- * @property {(data: T) => Bytes} encode - Encodes a value of type T to a byte array
131
- * @property {(data: Bytes, opts?: ReaderOpts) => T} decode - Decodes a byte array to a value of type T
132
- */
133
- export interface BytesCoder<T> extends Coder<T, Bytes> {
134
- size?: number; // Size hint element
135
- encode: (data: T) => Bytes;
136
- decode: (data: Bytes, opts?: ReaderOpts) => T;
137
- }
138
- /**
139
- * BytesCoderStream converts value between a type and a byte array, using streams.
140
- * @property {number} [size] - Size hint for the element.
141
- * @property {(w: Writer, value: T) => void} encodeStream - Encodes a value of type T to a byte array using a Writer stream.
142
- * @property {(r: Reader) => T} decodeStream - Decodes a byte array to a value of type T using a Reader stream.
143
- */
144
- export interface BytesCoderStream<T> {
145
- size?: number;
146
- encodeStream: (w: Writer, value: T) => void;
147
- decodeStream: (r: Reader) => T;
148
- }
149
- export type CoderType<T> = BytesCoderStream<T> & BytesCoder<T>;
150
- export type Sized<T> = CoderType<T> & { size: number };
151
- export type UnwrapCoder<T> = T extends CoderType<infer U> ? U : T;
152
- /**
153
- * Validation function. Should return value after validation.
154
- * Can be used to narrow types
155
- */
156
- export type Validate<T> = (elm: T) => T;
157
-
158
- export type Length = CoderType<number> | CoderType<bigint> | number | Bytes | string | null;
159
-
160
- // NOTE: we can't have terminator separate function, since it won't know about boundaries
161
- // E.g. array of U16LE ([1,2,3]) would be [1, 0, 2, 0, 3, 0]
162
- // But terminator will find array at index '1', which happens to be inside of an element itself
163
- /**
164
- * Can be:
165
- * - Dynamic (CoderType)
166
- * - Fixed (number)
167
- * - Terminated (usually zero): Uint8Array with terminator
168
- * - Field path to field with length (string)
169
- * - Infinity (null) - decodes until end of buffer
170
- * Used in:
171
- * - bytes (string, prefix is implementation of bytes)
172
- * - array
173
- */
174
- const lengthCoder = (len: Length) => {
175
- if (len !== null && typeof len !== 'string' && !isCoder(len) && !isBytes(len) && !isNum(len)) {
176
- throw new Error(
177
- `lengthCoder: expected null | number | Uint8Array | CoderType, got ${len} (${typeof len})`
178
- );
179
- }
180
- return {
181
- encodeStream(w: Writer, value: number | null) {
182
- if (len === null) return;
183
- if (isCoder(len)) return len.encodeStream(w, value);
184
- let byteLen;
185
- if (typeof len === 'number') byteLen = len;
186
- else if (typeof len === 'string') byteLen = Path.resolve((w as _Writer).stack, len);
187
- if (typeof byteLen === 'bigint') byteLen = Number(byteLen);
188
- if (byteLen === undefined || byteLen !== value)
189
- throw w.err(`Wrong length: ${byteLen} len=${len} exp=${value} (${typeof value})`);
190
- },
191
- decodeStream(r: Reader) {
192
- let byteLen;
193
- if (isCoder(len)) byteLen = Number(len.decodeStream(r));
194
- else if (typeof len === 'number') byteLen = len;
195
- else if (typeof len === 'string') byteLen = Path.resolve((r as _Reader).stack, len);
196
- if (typeof byteLen === 'bigint') byteLen = Number(byteLen);
197
- if (typeof byteLen !== 'number') throw r.err(`Wrong length: ${byteLen}`);
198
- return byteLen;
199
- },
200
- };
201
- };
202
-
203
- type ArrLike<T> = Array<T> | ReadonlyArray<T>;
204
- // prettier-ignore
205
- export type TypedArray =
206
- | Uint8Array | Int8Array | Uint8ClampedArray
207
- | Uint16Array | Int16Array
208
- | Uint32Array | Int32Array;
209
-
210
- /** Writable version of a type, where readonly properties are made writable. */
211
- export type Writable<T> = T extends {}
212
- ? T extends TypedArray
213
- ? T
214
- : {
215
- -readonly [P in keyof T]: Writable<T[P]>;
216
- }
217
- : T;
218
- export type Values<T> = T[keyof T];
219
- export type NonUndefinedKey<T, K extends keyof T> = T[K] extends undefined ? never : K;
220
- export type NullableKey<T, K extends keyof T> = T[K] extends NonNullable<T[K]> ? never : K;
221
- // Opt: value !== undefined, but value === T|undefined
222
- export type OptKey<T, K extends keyof T> = NullableKey<T, K> & NonUndefinedKey<T, K>;
223
- export type ReqKey<T, K extends keyof T> = T[K] extends NonNullable<T[K]> ? K : never;
224
-
225
- export type OptKeys<T> = Pick<T, { [K in keyof T]: OptKey<T, K> }[keyof T]>;
226
- export type ReqKeys<T> = Pick<T, { [K in keyof T]: ReqKey<T, K> }[keyof T]>;
227
- export type StructInput<T extends Record<string, any>> = { [P in keyof ReqKeys<T>]: T[P] } & {
228
- [P in keyof OptKeys<T>]?: T[P];
229
- };
230
- export type StructRecord<T extends Record<string, any>> = {
231
- [P in keyof T]: CoderType<T[P]>;
232
- };
233
-
234
- export type StructOut = Record<string, any>;
235
- /** Padding function that takes an index and returns a padding value. */
236
- export type PadFn = (i: number) => number;
237
-
238
- /**
239
- * Small bitset structure to store position of ranges that have been read.
240
- * Can be more efficient when internal trees are utilized at the cost of complexity.
241
- * Needs `O(N/8)` memory for parsing.
242
- * Purpose: if there are pointers in parsed structure,
243
- * they can cause read of two distinct ranges:
244
- * [0-32, 64-128], which means 'pos' is not enough to handle them
245
- */
246
- const Bitset = {
247
- BITS: 32,
248
- FULL_MASK: -1 >>> 0, // 1<<32 will overflow
249
- len: (len: number) => Math.ceil(len / 32),
250
- create: (len: number) => new Uint32Array(Bitset.len(len)),
251
- clean: (bs: Uint32Array) => bs.fill(0),
252
- debug: (bs: Uint32Array) => Array.from(bs).map((i) => (i >>> 0).toString(2).padStart(32, '0')),
253
- checkLen: (bs: Uint32Array, len: number) => {
254
- if (Bitset.len(len) === bs.length) return;
255
- throw new Error(`wrong length=${bs.length}. Expected: ${Bitset.len(len)}`);
256
- },
257
- chunkLen: (bsLen: number, pos: number, len: number) => {
258
- if (pos < 0) throw new Error(`wrong pos=${pos}`);
259
- if (pos + len > bsLen) throw new Error(`wrong range=${pos}/${len} of ${bsLen}`);
260
- },
261
- set: (bs: Uint32Array, chunk: number, value: number, allowRewrite = true) => {
262
- if (!allowRewrite && (bs[chunk] & value) !== 0) return false;
263
- bs[chunk] |= value;
264
- return true;
265
- },
266
- pos: (pos: number, i: number) => ({
267
- chunk: Math.floor((pos + i) / 32),
268
- mask: 1 << (32 - ((pos + i) % 32) - 1),
269
- }),
270
- indices: (bs: Uint32Array, len: number, invert = false) => {
271
- Bitset.checkLen(bs, len);
272
- const { FULL_MASK, BITS } = Bitset;
273
- const left = BITS - (len % BITS);
274
- const lastMask = left ? (FULL_MASK >>> left) << left : FULL_MASK;
275
- const res = [];
276
- for (let i = 0; i < bs.length; i++) {
277
- let c = bs[i];
278
- if (invert) c = ~c; // allows to gen unset elements
279
- // apply mask to last element, so we won't iterate non-existent items
280
- if (i === bs.length - 1) c &= lastMask;
281
- if (c === 0) continue; // fast-path
282
- for (let j = 0; j < BITS; j++) {
283
- const m = 1 << (BITS - j - 1);
284
- if (c & m) res.push(i * BITS + j);
285
- }
286
- }
287
- return res;
288
- },
289
- range: (arr: number[]) => {
290
- const res = [];
291
- let cur;
292
- for (const i of arr) {
293
- if (cur === undefined || i !== cur.pos + cur.length) res.push((cur = { pos: i, length: 1 }));
294
- else cur.length += 1;
295
- }
296
- return res;
297
- },
298
- rangeDebug: (bs: Uint32Array, len: number, invert = false) =>
299
- `[${Bitset.range(Bitset.indices(bs, len, invert))
300
- .map((i) => `(${i.pos}/${i.length})`)
301
- .join(', ')}]`,
302
- setRange: (bs: Uint32Array, bsLen: number, pos: number, len: number, allowRewrite = true) => {
303
- Bitset.chunkLen(bsLen, pos, len);
304
- const { FULL_MASK, BITS } = Bitset;
305
- // Try to set range with maximum efficiency:
306
- // - first chunk is always '0000[1111]' (only right ones)
307
- // - middle chunks are set to '[1111 1111]' (all ones)
308
- // - last chunk is always '[1111]0000' (only left ones)
309
- // - max operations: (N/32) + 2 (first and last)
310
- const first = pos % BITS ? Math.floor(pos / BITS) : undefined;
311
- const lastPos = pos + len;
312
- const last = lastPos % BITS ? Math.floor(lastPos / BITS) : undefined;
313
- // special case, whole range inside single chunk
314
- if (first !== undefined && first === last)
315
- return Bitset.set(
316
- bs,
317
- first,
318
- (FULL_MASK >>> (BITS - len)) << (BITS - len - pos),
319
- allowRewrite
320
- );
321
- if (first !== undefined) {
322
- if (!Bitset.set(bs, first, FULL_MASK >>> pos % BITS, allowRewrite)) return false; // first chunk
323
- }
324
- // middle chunks
325
- const start = first !== undefined ? first + 1 : pos / BITS;
326
- const end = last !== undefined ? last : lastPos / BITS;
327
- for (let i = start; i < end; i++) if (!Bitset.set(bs, i, FULL_MASK, allowRewrite)) return false;
328
- if (last !== undefined && first !== last)
329
- if (!Bitset.set(bs, last, FULL_MASK << (BITS - (lastPos % BITS)), allowRewrite)) return false; // last chunk
330
- return true;
331
- },
332
- };
333
-
334
- /** Path related utils (internal) */
335
- type Path = { obj: StructOut; field?: string };
336
- type PathStack = Path[];
337
- export type _PathObjFn = (cb: (field: string, fieldFn: Function) => void) => void;
338
- const Path = {
339
- /**
340
- * Internal method for handling stack of paths (debug, errors, dynamic fields via path)
341
- * This is looks ugly (callback), but allows us to force stack cleaning by construction (.pop always after function).
342
- * Also, this makes impossible:
343
- * - pushing field when stack is empty
344
- * - pushing field inside of field (real bug)
345
- * NOTE: we don't want to do '.pop' on error!
346
- */
347
- pushObj: (stack: PathStack, obj: StructOut, objFn: _PathObjFn): void => {
348
- const last: Path = { obj };
349
- stack.push(last);
350
- objFn((field: string, fieldFn: Function) => {
351
- last.field = field;
352
- fieldFn();
353
- last.field = undefined;
354
- });
355
- stack.pop();
356
- },
357
- path: (stack: PathStack): string => {
358
- const res = [];
359
- for (const i of stack) if (i.field !== undefined) res.push(i.field);
360
- return res.join('/');
361
- },
362
- err: (name: string, stack: PathStack, msg: string | Error): Error => {
363
- const err = new Error(
364
- `${name}(${Path.path(stack)}): ${typeof msg === 'string' ? msg : msg.message}`
365
- );
366
- if (msg instanceof Error && msg.stack) err.stack = msg.stack;
367
- return err;
368
- },
369
- resolve: (stack: PathStack, path: string): StructOut | undefined => {
370
- const parts = path.split('/');
371
- const objPath = stack.map((i) => i.obj);
372
- let i = 0;
373
- for (; i < parts.length; i++) {
374
- if (parts[i] === '..') objPath.pop();
375
- else break;
376
- }
377
- let cur = objPath.pop();
378
- for (; i < parts.length; i++) {
379
- if (!cur || cur[parts[i]] === undefined) return undefined;
380
- cur = cur[parts[i]];
381
- }
382
- return cur;
383
- },
384
- };
385
-
386
- /**
387
- * Options for the Reader class.
388
- * @property {boolean} [allowUnreadBytes: false] - If there are remaining unparsed bytes, the decoding is probably wrong.
389
- * @property {boolean} [allowMultipleReads: false] - The check enforces parser termination. If pointers can read the same region of memory multiple times, you can cause combinatorial explosion by creating an array of pointers to the same address and cause DoS.
390
- */
391
- export type ReaderOpts = {
392
- allowUnreadBytes?: boolean;
393
- allowMultipleReads?: boolean;
394
- };
395
- // These are safe API for external usage
396
- export type Reader = {
397
- // Utils
398
- /** Current position in the buffer. */
399
- readonly pos: number;
400
- /** Number of bytes left in the buffer. */
401
- readonly leftBytes: number;
402
- /** Total number of bytes in the buffer. */
403
- readonly totalBytes: number;
404
- /** Checks if the end of the buffer has been reached. */
405
- isEnd(): boolean;
406
- /**
407
- * Creates an error with the given message. Adds information about current field path.
408
- * If Error object provided, saves original stack trace.
409
- * @param msg - The error message or an Error object.
410
- * @returns The created Error object.
411
- */
412
- err(msg: string | Error): Error;
413
- /**
414
- * Reads a specified number of bytes from the buffer.
415
- *
416
- * WARNING: Uint8Array is subarray of original buffer. Do not modify.
417
- * @param n - The number of bytes to read.
418
- * @param peek - If `true`, the bytes are read without advancing the position.
419
- * @returns The read bytes as a Uint8Array.
420
- */
421
- bytes(n: number, peek?: boolean): Uint8Array;
422
- /**
423
- * Reads a single byte from the buffer.
424
- * @param peek - If `true`, the byte is read without advancing the position.
425
- * @returns The read byte as a number.
426
- */
427
- byte(peek?: boolean): number;
428
- /**
429
- * Reads a specified number of bits from the buffer.
430
- * @param bits - The number of bits to read.
431
- * @returns The read bits as a number.
432
- */
433
- bits(bits: number): number;
434
- /**
435
- * Finds the first occurrence of a needle in the buffer.
436
- * @param needle - The needle to search for.
437
- * @param pos - The starting position for the search.
438
- * @returns The position of the first occurrence of the needle, or `undefined` if not found.
439
- */
440
- find(needle: Bytes, pos?: number): number | undefined;
441
- /**
442
- * Creates a new Reader instance at the specified offset.
443
- * Complex and unsafe API: currently only used in eth ABI parsing of pointers.
444
- * Required to break pointer boundaries inside arrays for complex structure.
445
- * Please use only if absolutely necessary!
446
- * @param n - The offset to create the new Reader at.
447
- * @returns A new Reader instance at the specified offset.
448
- */
449
- offsetReader(n: number): Reader;
450
- };
451
-
452
- export type Writer = {
453
- /**
454
- * Creates an error with the given message. Adds information about current field path.
455
- * If Error object provided, saves original stack trace.
456
- * @param msg - The error message or an Error object.
457
- * @returns The created Error object.
458
- */
459
- err(msg: string | Error): Error;
460
- /**
461
- * Writes a byte array to the buffer.
462
- * @param b - The byte array to write.
463
- */
464
- bytes(b: Bytes): void;
465
- /**
466
- * Writes a single byte to the buffer.
467
- * @param b - The byte to write.
468
- */
469
- byte(b: number): void;
470
- /**
471
- * Writes a specified number of bits to the buffer.
472
- * @param value - The value to write.
473
- * @param bits - The number of bits to write.
474
- */
475
- bits(value: number, bits: number): void;
476
- };
477
-
478
- /**
479
- * Internal structure. Reader class for reading from a byte array.
480
- * `stack` is internal: for debugger and logging
481
- * @class Reader
482
- */
483
- class _Reader implements Reader {
484
- pos = 0;
485
- readonly data: Bytes;
486
- readonly opts: ReaderOpts;
487
- readonly stack: PathStack;
488
- private parent: _Reader | undefined;
489
- private parentOffset: number;
490
- private bitBuf = 0;
491
- private bitPos = 0;
492
- private bs: Uint32Array | undefined; // bitset
493
- private view: DataView;
494
- constructor(
495
- data: Bytes,
496
- opts: ReaderOpts = {},
497
- stack: PathStack = [],
498
- parent: _Reader | undefined = undefined,
499
- parentOffset: number = 0
500
- ) {
501
- this.data = data;
502
- this.opts = opts;
503
- this.stack = stack;
504
- this.parent = parent;
505
- this.parentOffset = parentOffset;
506
- this.view = createView(data);
507
- }
508
- /** Internal method for pointers. */
509
- _enablePointers(): void {
510
- if (this.parent) return this.parent._enablePointers();
511
- if (this.bs) return;
512
- this.bs = Bitset.create(this.data.length);
513
- Bitset.setRange(this.bs, this.data.length, 0, this.pos, this.opts.allowMultipleReads);
514
- }
515
- private markBytesBS(pos: number, len: number): boolean {
516
- if (this.parent) return this.parent.markBytesBS(this.parentOffset + pos, len);
517
- if (!len) return true;
518
- if (!this.bs) return true;
519
- return Bitset.setRange(this.bs, this.data.length, pos, len, false);
520
- }
521
- private markBytes(len: number): boolean {
522
- const pos = this.pos;
523
- this.pos += len;
524
- const res = this.markBytesBS(pos, len);
525
- if (!this.opts.allowMultipleReads && !res)
526
- throw this.err(`multiple read pos=${this.pos} len=${len}`);
527
- return res;
528
- }
529
-
530
- pushObj(obj: StructOut, objFn: _PathObjFn): void {
531
- return Path.pushObj(this.stack, obj, objFn);
532
- }
533
- readView(n: number, fn: (view: DataView, pos: number) => number): number {
534
- if (!Number.isFinite(n)) throw this.err(`readView: wrong length=${n}`);
535
- if (this.pos + n > this.data.length) throw this.err('readView: Unexpected end of buffer');
536
- const res = fn(this.view, this.pos);
537
- this.markBytes(n);
538
- return res;
539
- }
540
- // read bytes by absolute offset
541
- absBytes(n: number): Uint8Array {
542
- if (n > this.data.length) throw new Error('Unexpected end of buffer');
543
- return this.data.subarray(n);
544
- }
545
- finish(): void {
546
- if (this.opts.allowUnreadBytes) return;
547
- if (this.bitPos) {
548
- throw this.err(
549
- `${this.bitPos} bits left after unpack: ${baseHex.encode(this.data.slice(this.pos))}`
550
- );
551
- }
552
- if (this.bs && !this.parent) {
553
- const notRead = Bitset.indices(this.bs, this.data.length, true);
554
- if (notRead.length) {
555
- const formatted = Bitset.range(notRead)
556
- .map(
557
- ({ pos, length }) =>
558
- `(${pos}/${length})[${baseHex.encode(this.data.subarray(pos, pos + length))}]`
559
- )
560
- .join(', ');
561
- throw this.err(`unread byte ranges: ${formatted} (total=${this.data.length})`);
562
- } else return; // all bytes read, everything is ok
563
- }
564
- // Default: no pointers enabled
565
- if (!this.isEnd()) {
566
- throw this.err(
567
- `${this.leftBytes} bytes ${this.bitPos} bits left after unpack: ${baseHex.encode(
568
- this.data.slice(this.pos)
569
- )}`
570
- );
571
- }
572
- }
573
- // User methods
574
- err(msg: string | Error): Error {
575
- return Path.err('Reader', this.stack, msg);
576
- }
577
- offsetReader(n: number): _Reader {
578
- if (n > this.data.length) throw this.err('offsetReader: Unexpected end of buffer');
579
- return new _Reader(this.absBytes(n), this.opts, this.stack, this, n);
580
- }
581
- bytes(n: number, peek = false): Uint8Array {
582
- if (this.bitPos) throw this.err('readBytes: bitPos not empty');
583
- if (!Number.isFinite(n)) throw this.err(`readBytes: wrong length=${n}`);
584
- if (this.pos + n > this.data.length) throw this.err('readBytes: Unexpected end of buffer');
585
- const slice = this.data.subarray(this.pos, this.pos + n);
586
- if (!peek) this.markBytes(n);
587
- return slice;
588
- }
589
- byte(peek = false): number {
590
- if (this.bitPos) throw this.err('readByte: bitPos not empty');
591
- if (this.pos + 1 > this.data.length) throw this.err('readBytes: Unexpected end of buffer');
592
- const data = this.data[this.pos];
593
- if (!peek) this.markBytes(1);
594
- return data;
595
- }
596
- get leftBytes(): number {
597
- return this.data.length - this.pos;
598
- }
599
- get totalBytes(): number {
600
- return this.data.length;
601
- }
602
- isEnd(): boolean {
603
- return this.pos >= this.data.length && !this.bitPos;
604
- }
605
- // bits are read in BE mode (left to right): (0b1000_0000).readBits(1) == 1
606
- bits(bits: number): number {
607
- if (bits > 32) throw this.err('BitReader: cannot read more than 32 bits in single call');
608
- let out = 0;
609
- while (bits) {
610
- if (!this.bitPos) {
611
- this.bitBuf = this.byte();
612
- this.bitPos = 8;
613
- }
614
- const take = Math.min(bits, this.bitPos);
615
- this.bitPos -= take;
616
- out = (out << take) | ((this.bitBuf >> this.bitPos) & (2 ** take - 1));
617
- this.bitBuf &= 2 ** this.bitPos - 1;
618
- bits -= take;
619
- }
620
- // Fix signed integers
621
- return out >>> 0;
622
- }
623
- find(needle: Bytes, pos: number = this.pos): number | undefined {
624
- if (!isBytes(needle)) throw this.err(`find: needle is not bytes! ${needle}`);
625
- if (this.bitPos) throw this.err('findByte: bitPos not empty');
626
- if (!needle.length) throw this.err(`find: needle is empty`);
627
- // indexOf should be faster than full equalBytes check
628
- for (let idx = pos; (idx = this.data.indexOf(needle[0], idx)) !== -1; idx++) {
629
- if (idx === -1) return;
630
- const leftBytes = this.data.length - idx;
631
- if (leftBytes < needle.length) return;
632
- if (equalBytes(needle, this.data.subarray(idx, idx + needle.length))) return idx;
633
- }
634
- return;
635
- }
636
- }
637
-
638
- /**
639
- * Internal structure. Writer class for writing to a byte array.
640
- * The `stack` argument of constructor is internal, for debugging and logs.
641
- * @class Writer
642
- */
643
- class _Writer implements Writer {
644
- pos: number = 0;
645
- readonly stack: PathStack;
646
- // We could have a single buffer here and re-alloc it with
647
- // x1.5-2 size each time it full, but it will be slower:
648
- // basic/encode bench: 395ns -> 560ns
649
- private buffers: Bytes[] = [];
650
- ptrs: { pos: number; ptr: CoderType<number>; buffer: Bytes }[] = [];
651
- private bitBuf = 0;
652
- private bitPos = 0;
653
- private viewBuf = new Uint8Array(8);
654
- private view: DataView;
655
- private finished = false;
656
- constructor(stack: PathStack = []) {
657
- this.stack = stack;
658
- this.view = createView(this.viewBuf);
659
- }
660
- pushObj(obj: StructOut, objFn: _PathObjFn): void {
661
- return Path.pushObj(this.stack, obj, objFn);
662
- }
663
- writeView(len: number, fn: (view: DataView) => void): void {
664
- if (this.finished) throw this.err('buffer: finished');
665
- if (!isNum(len) || len > 8) throw new Error(`wrong writeView length=${len}`);
666
- fn(this.view);
667
- this.bytes(this.viewBuf.slice(0, len));
668
- this.viewBuf.fill(0);
669
- }
670
- // User methods
671
- err(msg: string | Error): Error {
672
- if (this.finished) throw this.err('buffer: finished');
673
- return Path.err('Reader', this.stack, msg);
674
- }
675
- bytes(b: Bytes): void {
676
- if (this.finished) throw this.err('buffer: finished');
677
- if (this.bitPos) throw this.err('writeBytes: ends with non-empty bit buffer');
678
- this.buffers.push(b);
679
- this.pos += b.length;
680
- }
681
- byte(b: number): void {
682
- if (this.finished) throw this.err('buffer: finished');
683
- if (this.bitPos) throw this.err('writeByte: ends with non-empty bit buffer');
684
- this.buffers.push(new Uint8Array([b]));
685
- this.pos++;
686
- }
687
- finish(clean = true): Bytes {
688
- if (this.finished) throw this.err('buffer: finished');
689
- if (this.bitPos) throw this.err('buffer: ends with non-empty bit buffer');
690
- // Can't use concatBytes, because it limits amount of arguments (65K).
691
- const buffers = this.buffers.concat(this.ptrs.map((i) => i.buffer));
692
- const sum = buffers.map((b) => b.length).reduce((a, b) => a + b, 0);
693
- const buf = new Uint8Array(sum);
694
- for (let i = 0, pad = 0; i < buffers.length; i++) {
695
- const a = buffers[i];
696
- buf.set(a, pad);
697
- pad += a.length;
698
- }
699
-
700
- for (let pos = this.pos, i = 0; i < this.ptrs.length; i++) {
701
- const ptr = this.ptrs[i];
702
- buf.set(ptr.ptr.encode(pos), ptr.pos);
703
- pos += ptr.buffer.length;
704
- }
705
- // Cleanup
706
- if (clean) {
707
- // We cannot cleanup buffers here, since it can be static user provided buffer.
708
- // Only '.byte' and '.bits' create buffer which we can safely clean.
709
- // for (const b of this.buffers) b.fill(0);
710
- this.buffers = [];
711
- for (const p of this.ptrs) p.buffer.fill(0);
712
- this.ptrs = [];
713
- this.finished = true;
714
- this.bitBuf = 0;
715
- }
716
- return buf;
717
- }
718
- bits(value: number, bits: number): void {
719
- if (bits > 32) throw this.err('writeBits: cannot write more than 32 bits in single call');
720
- if (value >= 2 ** bits) throw this.err(`writeBits: value (${value}) >= 2**bits (${bits})`);
721
- while (bits) {
722
- const take = Math.min(bits, 8 - this.bitPos);
723
- this.bitBuf = (this.bitBuf << take) | (value >> (bits - take));
724
- this.bitPos += take;
725
- bits -= take;
726
- value &= 2 ** bits - 1;
727
- if (this.bitPos === 8) {
728
- this.bitPos = 0;
729
- this.buffers.push(new Uint8Array([this.bitBuf]));
730
- this.pos++;
731
- }
732
- }
733
- }
734
- }
735
- // Immutable LE<->BE
736
- const swapEndianness = (b: Bytes): Bytes => Uint8Array.from(b).reverse();
737
- /** Internal function for checking bit bounds of bigint in signed/unsinged form */
738
- function checkBounds(value: bigint, bits: bigint, signed: boolean): void {
739
- if (signed) {
740
- // [-(2**(32-1)), 2**(32-1)-1]
741
- const signBit = 2n ** (bits - 1n);
742
- if (value < -signBit || value >= signBit)
743
- throw new Error(`value out of signed bounds. Expected ${-signBit} <= ${value} < ${signBit}`);
744
- } else {
745
- // [0, 2**32-1]
746
- if (0n > value || value >= 2n ** bits)
747
- throw new Error(`value out of unsigned bounds. Expected 0 <= ${value} < ${2n ** bits}`);
748
- }
749
- }
750
-
751
- function _wrap<T>(inner: BytesCoderStream<T>): CoderType<T> {
752
- return {
753
- // NOTE: we cannot export validate here, since it is likely mistake.
754
- encodeStream: inner.encodeStream,
755
- decodeStream: inner.decodeStream,
756
- size: inner.size,
757
- encode: (value: T): Bytes => {
758
- const w = new _Writer();
759
- inner.encodeStream(w, value);
760
- return w.finish();
761
- },
762
- decode: (data: Bytes, opts: ReaderOpts = {}): T => {
763
- const r = new _Reader(data, opts);
764
- const res = inner.decodeStream(r);
765
- r.finish();
766
- return res;
767
- },
768
- };
769
- }
770
-
771
- /**
772
- * Validates a value before encoding and after decoding using a provided function.
773
- * @param inner - The inner CoderType.
774
- * @param fn - The validation function.
775
- * @returns CoderType which check value with validation function.
776
- * @example
777
- * const val = (n: number) => {
778
- * if (n > 10) throw new Error(`${n} > 10`);
779
- * return n;
780
- * };
781
- *
782
- * const RangedInt = P.validate(P.U32LE, val); // Will check if value is <= 10 during encoding and decoding
783
- */
784
- export function validate<T>(inner: CoderType<T>, fn: Validate<T>): CoderType<T> {
785
- if (!isCoder(inner)) throw new Error(`validate: invalid inner value ${inner}`);
786
- if (typeof fn !== 'function') throw new Error('validate: fn should be function');
787
- return _wrap({
788
- size: inner.size,
789
- encodeStream: (w: Writer, value: T) => {
790
- let res;
791
- try {
792
- res = fn(value);
793
- } catch (e) {
794
- throw w.err(e as Error);
795
- }
796
- inner.encodeStream(w, res);
797
- },
798
- decodeStream: (r: Reader): T => {
799
- const res = inner.decodeStream(r);
800
- try {
801
- return fn(res);
802
- } catch (e) {
803
- throw r.err(e as Error);
804
- }
805
- },
806
- });
807
- }
808
-
809
- /**
810
- * Wraps a stream encoder into a generic encoder and optionally validation function
811
- * @param {inner} inner BytesCoderStream & { validate?: Validate<T> }.
812
- * @returns The wrapped CoderType.
813
- * @example
814
- * const U8 = P.wrap({
815
- * encodeStream: (w: Writer, value: number) => w.byte(value),
816
- * decodeStream: (r: Reader): number => r.byte()
817
- * });
818
- * const checkedU8 = P.wrap({
819
- * encodeStream: (w: Writer, value: number) => w.byte(value),
820
- * decodeStream: (r: Reader): number => r.byte()
821
- * validate: (n: number) => {
822
- * if (n > 10) throw new Error(`${n} > 10`);
823
- * return n;
824
- * }
825
- * });
826
- */
827
- export const wrap = <T>(inner: BytesCoderStream<T> & { validate?: Validate<T> }): CoderType<T> => {
828
- const res = _wrap(inner);
829
- return inner.validate ? validate(res, inner.validate) : res;
830
- };
831
-
832
- const isBaseCoder = (elm: any) =>
833
- isPlainObject(elm) && typeof elm.decode === 'function' && typeof elm.encode === 'function';
834
-
835
- /**
836
- * Checks if the given value is a CoderType.
837
- * @param elm - The value to check.
838
- * @returns True if the value is a CoderType, false otherwise.
839
- */
840
- export function isCoder<T>(elm: any): elm is CoderType<T> {
841
- return (
842
- isPlainObject(elm) &&
843
- isBaseCoder(elm) &&
844
- typeof elm.encodeStream === 'function' &&
845
- typeof elm.decodeStream === 'function' &&
846
- (elm.size === undefined || isNum(elm.size))
847
- );
848
- }
849
-
850
- // Coders (like in @scure/base) for common operations
851
-
852
- /**
853
- * Base coder for working with dictionaries (records, objects, key-value map)
854
- * Dictionary is dynamic type like: `[key: string, value: any][]`
855
- * @returns base coder that encodes/decodes between arrays of key-value tuples and dictionaries.
856
- * @example
857
- * const dict: P.CoderType<Record<string, number>> = P.apply(
858
- * P.array(P.U16BE, P.tuple([P.cstring, P.U32LE] as const)),
859
- * P.coders.dict()
860
- * );
861
- */
862
- function dict<T>(): BaseCoder<[string, T][], Record<string, T>> {
863
- return {
864
- encode: (from: [string, T][]): Record<string, T> => {
865
- if (!Array.isArray(from)) throw new Error('array expected');
866
- const to: Record<string, T> = {};
867
- for (const item of from) {
868
- if (!Array.isArray(item) || item.length !== 2)
869
- throw new Error(`array of two elements expected`);
870
- const name = item[0];
871
- const value = item[1];
872
- if (to[name] !== undefined) throw new Error(`key(${name}) appears twice in struct`);
873
- to[name] = value;
874
- }
875
- return to;
876
- },
877
- decode: (to: Record<string, T>): [string, T][] => {
878
- if (!isPlainObject(to)) throw new Error(`expected plain object, got ${to}`);
879
- return Object.entries(to);
880
- },
881
- };
882
- }
883
- /**
884
- * Safely converts bigint to number.
885
- * Sometimes pointers / tags use u64 or other big numbers which cannot be represented by number,
886
- * but we still can use them since real value will be smaller than u32
887
- */
888
- const numberBigint: BaseCoder<bigint, number> = {
889
- encode: (from: bigint): number => {
890
- if (typeof from !== 'bigint') throw new Error(`expected bigint, got ${typeof from}`);
891
- if (from > BigInt(Number.MAX_SAFE_INTEGER))
892
- throw new Error(`element bigger than MAX_SAFE_INTEGER=${from}`);
893
- return Number(from);
894
- },
895
- decode: (to: number): bigint => {
896
- if (!isNum(to)) throw new Error('element is not a safe integer');
897
- return BigInt(to);
898
- },
899
- };
900
- // TODO: replace map with this?
901
- type Enum = { [k: string]: number | string } & { [k: number]: string };
902
- // Doesn't return numeric keys, so it's fine
903
- type EnumKeys<T extends Enum> = keyof T;
904
- /**
905
- * Base coder for working with TypeScript enums.
906
- * @param e - TypeScript enum.
907
- * @returns base coder that encodes/decodes between numbers and enum keys.
908
- * @example
909
- * enum Color { Red, Green, Blue }
910
- * const colorCoder = P.coders.tsEnum(Color);
911
- * colorCoder.encode(Color.Red); // 'Red'
912
- * colorCoder.decode('Green'); // 1
913
- */
914
- function tsEnum<T extends Enum>(e: T): BaseCoder<number, EnumKeys<T>> {
915
- if (!isPlainObject(e)) throw new Error('plain object expected');
916
- return {
917
- encode: (from: number): string => {
918
- if (!isNum(from) || !(from in e)) throw new Error(`wrong value ${from}`);
919
- return e[from];
920
- },
921
- decode: (to: string): number => {
922
- if (typeof to !== 'string') throw new Error(`wrong value ${typeof to}`);
923
- return e[to] as number;
924
- },
925
- };
926
- }
927
- /**
928
- * Base coder for working with decimal numbers.
929
- * @param precision - Number of decimal places.
930
- * @param round - Round fraction part if bigger than precision (throws error by default)
931
- * @returns base coder that encodes/decodes between bigints and decimal strings.
932
- * @example
933
- * const decimal8 = P.coders.decimal(8);
934
- * decimal8.encode(630880845n); // '6.30880845'
935
- * decimal8.decode('6.30880845'); // 630880845n
936
- */
937
- function decimal(precision: number, round = false): Coder<bigint, string> {
938
- if (!isNum(precision)) throw new Error(`decimal/precision: wrong value ${precision}`);
939
- if (typeof round !== 'boolean')
940
- throw new Error(`decimal/round: expected boolean, got ${typeof round}`);
941
- const decimalMask = 10n ** BigInt(precision);
942
- return {
943
- encode: (from: bigint): string => {
944
- if (typeof from !== 'bigint') throw new Error(`expected bigint, got ${typeof from}`);
945
- let s = (from < 0n ? -from : from).toString(10);
946
- let sep = s.length - precision;
947
- if (sep < 0) {
948
- s = s.padStart(s.length - sep, '0');
949
- sep = 0;
950
- }
951
- let i = s.length - 1;
952
- for (; i >= sep && s[i] === '0'; i--);
953
- let int = s.slice(0, sep);
954
- let frac = s.slice(sep, i + 1);
955
- if (!int) int = '0';
956
- if (from < 0n) int = '-' + int;
957
- if (!frac) return int;
958
- return `${int}.${frac}`;
959
- },
960
- decode: (to: string): bigint => {
961
- if (typeof to !== 'string') throw new Error(`expected string, got ${typeof to}`);
962
- if (to === '-0') throw new Error(`negative zero is not allowed`);
963
- let neg = false;
964
- if (to.startsWith('-')) {
965
- neg = true;
966
- to = to.slice(1);
967
- }
968
- if (!/^(0|[1-9]\d*)(\.\d+)?$/.test(to)) throw new Error(`wrong string value=${to}`);
969
- let sep = to.indexOf('.');
970
- sep = sep === -1 ? to.length : sep;
971
- // split by separator and strip trailing zeros from fraction. always returns [string, string] (.split doesn't).
972
- const intS = to.slice(0, sep);
973
- const fracS = to.slice(sep + 1).replace(/0+$/, '');
974
- const int = BigInt(intS) * decimalMask;
975
- if (!round && fracS.length > precision) {
976
- throw new Error(
977
- `fractional part cannot be represented with this precision (num=${to}, prec=${precision})`
978
- );
979
- }
980
- const fracLen = Math.min(fracS.length, precision);
981
- const frac = BigInt(fracS.slice(0, fracLen)) * 10n ** BigInt(precision - fracLen);
982
- const value = int + frac;
983
- return neg ? -value : value;
984
- },
985
- };
986
- }
987
-
988
- // TODO: export from @scure/base?
989
- type BaseInput<F> = F extends BaseCoder<infer T, any> ? T : never;
990
- type BaseOutput<F> = F extends BaseCoder<any, infer T> ? T : never;
991
-
992
- /**
993
- * Combines multiple coders into a single coder, allowing conditional encoding/decoding based on input.
994
- * Acts as a parser combinator, splitting complex conditional coders into smaller parts.
995
- *
996
- * `encode = [Ae, Be]; decode = [Ad, Bd]`
997
- * ->
998
- * `match([{encode: Ae, decode: Ad}, {encode: Be; decode: Bd}])`
999
- *
1000
- * @param lst - Array of coders to match.
1001
- * @returns Combined coder for conditional encoding/decoding.
1002
- */
1003
- function match<
1004
- L extends BaseCoder<unknown | undefined, unknown | undefined>[],
1005
- I = { [K in keyof L]: NonNullable<BaseInput<L[K]>> }[number],
1006
- O = { [K in keyof L]: NonNullable<BaseOutput<L[K]>> }[number],
1007
- >(lst: L): BaseCoder<I, O> {
1008
- if (!Array.isArray(lst)) throw new Error(`expected array, got ${typeof lst}`);
1009
- for (const i of lst) if (!isBaseCoder(i)) throw new Error(`wrong base coder ${i}`);
1010
- return {
1011
- encode: (from: I): O => {
1012
- for (const c of lst) {
1013
- const elm = c.encode(from);
1014
- if (elm !== undefined) return elm as O;
1015
- }
1016
- throw new Error(`match/encode: cannot find match in ${from}`);
1017
- },
1018
- decode: (to: O): I => {
1019
- for (const c of lst) {
1020
- const elm = c.decode(to);
1021
- if (elm !== undefined) return elm as I;
1022
- }
1023
- throw new Error(`match/decode: cannot find match in ${to}`);
1024
- },
1025
- };
1026
- }
1027
- /** Reverses direction of coder */
1028
- const reverse = <F, T>(coder: Coder<F, T>): Coder<T, F> => {
1029
- if (!isBaseCoder(coder)) throw new Error('BaseCoder expected');
1030
- return { encode: coder.decode, decode: coder.encode };
1031
- };
1032
-
1033
- export const coders: {
1034
- dict: typeof dict;
1035
- numberBigint: BaseCoder<bigint, number>;
1036
- tsEnum: typeof tsEnum;
1037
- decimal: typeof decimal;
1038
- match: typeof match;
1039
- reverse: <F, T>(coder: Coder<F, T>) => Coder<T, F>;
1040
- } = { dict, numberBigint, tsEnum, decimal, match, reverse };
1041
-
1042
- /**
1043
- * CoderType for parsing individual bits.
1044
- * NOTE: Structure should parse whole amount of bytes before it can start parsing byte-level elements.
1045
- * @param len - Number of bits to parse.
1046
- * @returns CoderType representing the parsed bits.
1047
- * @example
1048
- * const s = P.struct({ magic: P.bits(1), version: P.bits(1), tag: P.bits(4), len: P.bits(2) });
1049
- */
1050
- export const bits = (len: number): CoderType<number> => {
1051
- if (!isNum(len)) throw new Error(`bits: wrong length ${len} (${typeof len})`);
1052
- return wrap({
1053
- encodeStream: (w: Writer, value: number) => w.bits(value, len),
1054
- decodeStream: (r: Reader): number => r.bits(len),
1055
- validate: (value) => {
1056
- if (!isNum(value)) throw new Error(`bits: wrong value ${value}`);
1057
- return value;
1058
- },
1059
- });
1060
- };
1061
-
1062
- /**
1063
- * CoderType for working with bigint values.
1064
- * Unsized bigint values should be wrapped in a container (e.g., bytes or string).
1065
- *
1066
- * `0n = Uint8Array.of()`
1067
- *
1068
- * `1n = new Uint8Array([1n])`
1069
- *
1070
- * Please open issue, if you need different behavior for zero.
1071
- *
1072
- * @param size - Size of the bigint in bytes.
1073
- * @param le - Whether to use little-endian byte order.
1074
- * @param signed - Whether the bigint is signed.
1075
- * @param sized - Whether the bigint should have a fixed size.
1076
- * @returns CoderType representing the bigint value.
1077
- * @example
1078
- * const U512BE = P.bigint(64, false, true, true); // Define a CoderType for a 512-bit unsigned big-endian integer
1079
- */
1080
- export const bigint = (
1081
- size: number,
1082
- le = false,
1083
- signed = false,
1084
- sized = true
1085
- ): CoderType<bigint> => {
1086
- if (!isNum(size)) throw new Error(`bigint/size: wrong value ${size}`);
1087
- if (typeof le !== 'boolean') throw new Error(`bigint/le: expected boolean, got ${typeof le}`);
1088
- if (typeof signed !== 'boolean')
1089
- throw new Error(`bigint/signed: expected boolean, got ${typeof signed}`);
1090
- if (typeof sized !== 'boolean')
1091
- throw new Error(`bigint/sized: expected boolean, got ${typeof sized}`);
1092
- const bLen = BigInt(size);
1093
- const signBit = 2n ** (8n * bLen - 1n);
1094
- return wrap({
1095
- size: sized ? size : undefined,
1096
- encodeStream: (w: Writer, value: bigint) => {
1097
- if (signed && value < 0) value = value | signBit;
1098
- const b = [];
1099
- for (let i = 0; i < size; i++) {
1100
- b.push(Number(value & 255n));
1101
- value >>= 8n;
1102
- }
1103
- let res = new Uint8Array(b).reverse();
1104
- if (!sized) {
1105
- let pos = 0;
1106
- for (pos = 0; pos < res.length; pos++) if (res[pos] !== 0) break;
1107
- res = res.subarray(pos); // remove leading zeros
1108
- }
1109
- w.bytes(le ? res.reverse() : res);
1110
- },
1111
- decodeStream: (r: Reader): bigint => {
1112
- // TODO: for le we can read until first zero?
1113
- const value = r.bytes(sized ? size : Math.min(size, r.leftBytes));
1114
- const b = le ? value : swapEndianness(value);
1115
- let res = 0n;
1116
- for (let i = 0; i < b.length; i++) res |= BigInt(b[i]) << (8n * BigInt(i));
1117
- if (signed && res & signBit) res = (res ^ signBit) - signBit;
1118
- return res;
1119
- },
1120
- validate: (value) => {
1121
- if (typeof value !== 'bigint') throw new Error(`bigint: invalid value: ${value}`);
1122
- checkBounds(value, 8n * bLen, !!signed);
1123
- return value;
1124
- },
1125
- });
1126
- };
1127
- /** Unsigned 256-bit little-endian integer CoderType. */
1128
- export const U256LE: CoderType<bigint> = /* @__PURE__ */ bigint(32, true);
1129
- /** Unsigned 256-bit big-endian integer CoderType. */
1130
- export const U256BE: CoderType<bigint> = /* @__PURE__ */ bigint(32, false);
1131
- /** Signed 256-bit little-endian integer CoderType. */
1132
- export const I256LE: CoderType<bigint> = /* @__PURE__ */ bigint(32, true, true);
1133
- /** Signed 256-bit big-endian integer CoderType. */
1134
- export const I256BE: CoderType<bigint> = /* @__PURE__ */ bigint(32, false, true);
1135
- /** Unsigned 128-bit little-endian integer CoderType. */
1136
- export const U128LE: CoderType<bigint> = /* @__PURE__ */ bigint(16, true);
1137
- /** Unsigned 128-bit big-endian integer CoderType. */
1138
- export const U128BE: CoderType<bigint> = /* @__PURE__ */ bigint(16, false);
1139
- /** Signed 128-bit little-endian integer CoderType. */
1140
- export const I128LE: CoderType<bigint> = /* @__PURE__ */ bigint(16, true, true);
1141
- /** Signed 128-bit big-endian integer CoderType. */
1142
- export const I128BE: CoderType<bigint> = /* @__PURE__ */ bigint(16, false, true);
1143
- /** Unsigned 64-bit little-endian integer CoderType. */
1144
- export const U64LE: CoderType<bigint> = /* @__PURE__ */ bigint(8, true);
1145
- /** Unsigned 64-bit big-endian integer CoderType. */
1146
- export const U64BE: CoderType<bigint> = /* @__PURE__ */ bigint(8, false);
1147
- /** Signed 64-bit little-endian integer CoderType. */
1148
- export const I64LE: CoderType<bigint> = /* @__PURE__ */ bigint(8, true, true);
1149
- /** Signed 64-bit big-endian integer CoderType. */
1150
- export const I64BE: CoderType<bigint> = /* @__PURE__ */ bigint(8, false, true);
1151
-
1152
- /**
1153
- * CoderType for working with numbber values (up to 6 bytes/48 bits).
1154
- * Unsized int values should be wrapped in a container (e.g., bytes or string).
1155
- *
1156
- * `0 = Uint8Array.of()`
1157
- *
1158
- * `1 = new Uint8Array([1n])`
1159
- *
1160
- * Please open issue, if you need different behavior for zero.
1161
- *
1162
- * @param size - Size of the number in bytes.
1163
- * @param le - Whether to use little-endian byte order.
1164
- * @param signed - Whether the number is signed.
1165
- * @param sized - Whether the number should have a fixed size.
1166
- * @returns CoderType representing the number value.
1167
- * @example
1168
- * const uint64BE = P.bigint(8, false, true); // Define a CoderType for a 64-bit unsigned big-endian integer
1169
- */
1170
- export const int = (size: number, le = false, signed = false, sized = true): CoderType<number> => {
1171
- if (!isNum(size)) throw new Error(`int/size: wrong value ${size}`);
1172
- if (typeof le !== 'boolean') throw new Error(`int/le: expected boolean, got ${typeof le}`);
1173
- if (typeof signed !== 'boolean')
1174
- throw new Error(`int/signed: expected boolean, got ${typeof signed}`);
1175
- if (typeof sized !== 'boolean')
1176
- throw new Error(`int/sized: expected boolean, got ${typeof sized}`);
1177
- if (size > 6) throw new Error('int supports size up to 6 bytes (48 bits): use bigints instead');
1178
- return apply(bigint(size, le, signed, sized), coders.numberBigint);
1179
- };
1180
-
1181
- type ViewCoder = {
1182
- read: (view: DataView, pos: number) => number;
1183
- write: (view: DataView, value: number) => void;
1184
- validate?: (value: number) => void;
1185
- };
1186
-
1187
- const view = (len: number, opts: ViewCoder) =>
1188
- wrap({
1189
- size: len,
1190
- encodeStream: (w, value: number) =>
1191
- (w as _Writer).writeView(len, (view) => opts.write(view, value)),
1192
- decodeStream: (r) => (r as _Reader).readView(len, opts.read),
1193
- validate: (value: number) => {
1194
- if (typeof value !== 'number')
1195
- throw new Error(`viewCoder: expected number, got ${typeof value}`);
1196
- if (opts.validate) opts.validate(value);
1197
- return value;
1198
- },
1199
- });
1200
-
1201
- const intView = (len: number, signed: boolean, opts: ViewCoder) => {
1202
- const bits = len * 8;
1203
- const signBit = 2 ** (bits - 1);
1204
- // Inlined checkBounds for integer
1205
- const validateSigned = (value: number) => {
1206
- if (!isNum(value)) throw new Error(`sintView: value is not safe integer: ${value}`);
1207
- if (value < -signBit || value >= signBit) {
1208
- throw new Error(
1209
- `sintView: value out of bounds. Expected ${-signBit} <= ${value} < ${signBit}`
1210
- );
1211
- }
1212
- };
1213
- const maxVal = 2 ** bits;
1214
- const validateUnsigned = (value: number) => {
1215
- if (!isNum(value)) throw new Error(`uintView: value is not safe integer: ${value}`);
1216
- if (0 > value || value >= maxVal) {
1217
- throw new Error(`uintView: value out of bounds. Expected 0 <= ${value} < ${maxVal}`);
1218
- }
1219
- };
1220
- return view(len, {
1221
- write: opts.write,
1222
- read: opts.read,
1223
- validate: signed ? validateSigned : validateUnsigned,
1224
- });
1225
- };
1226
-
1227
- /** Unsigned 32-bit little-endian integer CoderType. */
1228
- export const U32LE: CoderType<number> = /* @__PURE__ */ intView(4, false, {
1229
- read: (view, pos) => view.getUint32(pos, true),
1230
- write: (view, value) => view.setUint32(0, value, true),
1231
- });
1232
- /** Unsigned 32-bit big-endian integer CoderType. */
1233
- export const U32BE: CoderType<number> = /* @__PURE__ */ intView(4, false, {
1234
- read: (view, pos) => view.getUint32(pos, false),
1235
- write: (view, value) => view.setUint32(0, value, false),
1236
- });
1237
- /** Signed 32-bit little-endian integer CoderType. */
1238
- export const I32LE: CoderType<number> = /* @__PURE__ */ intView(4, true, {
1239
- read: (view, pos) => view.getInt32(pos, true),
1240
- write: (view, value) => view.setInt32(0, value, true),
1241
- });
1242
- /** Signed 32-bit big-endian integer CoderType. */
1243
- export const I32BE: CoderType<number> = /* @__PURE__ */ intView(4, true, {
1244
- read: (view, pos) => view.getInt32(pos, false),
1245
- write: (view, value) => view.setInt32(0, value, false),
1246
- });
1247
- /** Unsigned 16-bit little-endian integer CoderType. */
1248
- export const U16LE: CoderType<number> = /* @__PURE__ */ intView(2, false, {
1249
- read: (view, pos) => view.getUint16(pos, true),
1250
- write: (view, value) => view.setUint16(0, value, true),
1251
- });
1252
- /** Unsigned 16-bit big-endian integer CoderType. */
1253
- export const U16BE: CoderType<number> = /* @__PURE__ */ intView(2, false, {
1254
- read: (view, pos) => view.getUint16(pos, false),
1255
- write: (view, value) => view.setUint16(0, value, false),
1256
- });
1257
- /** Signed 16-bit little-endian integer CoderType. */
1258
- export const I16LE: CoderType<number> = /* @__PURE__ */ intView(2, true, {
1259
- read: (view, pos) => view.getInt16(pos, true),
1260
- write: (view, value) => view.setInt16(0, value, true),
1261
- });
1262
- /** Signed 16-bit big-endian integer CoderType. */
1263
- export const I16BE: CoderType<number> = /* @__PURE__ */ intView(2, true, {
1264
- read: (view, pos) => view.getInt16(pos, false),
1265
- write: (view, value) => view.setInt16(0, value, false),
1266
- });
1267
- /** Unsigned 8-bit integer CoderType. */
1268
- export const U8: CoderType<number> = /* @__PURE__ */ intView(1, false, {
1269
- read: (view, pos) => view.getUint8(pos),
1270
- write: (view, value) => view.setUint8(0, value),
1271
- });
1272
- /** Signed 8-bit integer CoderType. */
1273
- export const I8: CoderType<number> = /* @__PURE__ */ intView(1, true, {
1274
- read: (view, pos) => view.getInt8(pos),
1275
- write: (view, value) => view.setInt8(0, value),
1276
- });
1277
-
1278
- // Floats
1279
- const f32 = (le?: boolean) =>
1280
- view(4, {
1281
- read: (view, pos) => view.getFloat32(pos, le),
1282
- write: (view, value) => view.setFloat32(0, value, le),
1283
- validate: (value) => {
1284
- if (Math.fround(value) !== value && !Number.isNaN(value))
1285
- throw new Error(`f32: wrong value=${value}`);
1286
- },
1287
- });
1288
- const f64 = (le?: boolean) =>
1289
- view(8, {
1290
- read: (view, pos) => view.getFloat64(pos, le),
1291
- write: (view, value) => view.setFloat64(0, value, le),
1292
- });
1293
-
1294
- /** 32-bit big-endian floating point CoderType ("binary32", IEEE 754-2008). */
1295
- export const F32BE: CoderType<number> = /* @__PURE__ */ f32(false);
1296
- /** 32-bit little-endian floating point CoderType ("binary32", IEEE 754-2008). */
1297
- export const F32LE: CoderType<number> = /* @__PURE__ */ f32(true);
1298
- /** A 64-bit big-endian floating point type ("binary64", IEEE 754-2008). Any JS number can be encoded. */
1299
- export const F64BE: CoderType<number> = /* @__PURE__ */ f64(false);
1300
- /** A 64-bit little-endian floating point type ("binary64", IEEE 754-2008). Any JS number can be encoded. */
1301
- export const F64LE: CoderType<number> = /* @__PURE__ */ f64(true);
1302
-
1303
- /** Boolean CoderType. */
1304
- export const bool: CoderType<boolean> = /* @__PURE__ */ wrap({
1305
- size: 1,
1306
- encodeStream: (w: Writer, value: boolean) => w.byte(value ? 1 : 0),
1307
- decodeStream: (r: Reader): boolean => {
1308
- const value = r.byte();
1309
- if (value !== 0 && value !== 1) throw r.err(`bool: invalid value ${value}`);
1310
- return value === 1;
1311
- },
1312
- validate: (value) => {
1313
- if (typeof value !== 'boolean') throw new Error(`bool: invalid value ${value}`);
1314
- return value;
1315
- },
1316
- });
1317
-
1318
- /**
1319
- * Bytes CoderType with a specified length and endianness.
1320
- * The bytes can have:
1321
- * - Dynamic size (prefixed with a length CoderType like U16BE)
1322
- * - Fixed size (specified by a number)
1323
- * - Unknown size (null, will parse until end of buffer)
1324
- * - Zero-terminated (terminator can be any Uint8Array)
1325
- * @param len - CoderType, number, Uint8Array (terminator) or null
1326
- * @param le - Whether to use little-endian byte order.
1327
- * @returns CoderType representing the bytes.
1328
- * @example
1329
- * // Dynamic size bytes (prefixed with P.U16BE number of bytes length)
1330
- * const dynamicBytes = P.bytes(P.U16BE, false);
1331
- * const fixedBytes = P.bytes(32, false); // Fixed size bytes
1332
- * const unknownBytes = P.bytes(null, false); // Unknown size bytes, will parse until end of buffer
1333
- * const zeroTerminatedBytes = P.bytes(Uint8Array.of(0), false); // Zero-terminated bytes
1334
- */
1335
- const createBytes = (len: Length, le = false): CoderType<Bytes> => {
1336
- if (typeof le !== 'boolean') throw new Error(`bytes/le: expected boolean, got ${typeof le}`);
1337
- const _length = lengthCoder(len);
1338
- const _isb = isBytes(len);
1339
- return wrap({
1340
- size: typeof len === 'number' ? len : undefined,
1341
- encodeStream: (w: Writer, value: Bytes) => {
1342
- if (!_isb) _length.encodeStream(w, value.length);
1343
- w.bytes(le ? swapEndianness(value) : value);
1344
- if (_isb) w.bytes(len);
1345
- },
1346
- decodeStream: (r: Reader): Bytes => {
1347
- let bytes: Bytes;
1348
- if (_isb) {
1349
- const tPos = r.find(len);
1350
- if (!tPos) throw r.err(`bytes: cannot find terminator`);
1351
- bytes = r.bytes(tPos - r.pos);
1352
- r.bytes(len.length);
1353
- } else {
1354
- bytes = r.bytes(len === null ? r.leftBytes : _length.decodeStream(r));
1355
- }
1356
- return le ? swapEndianness(bytes) : bytes;
1357
- },
1358
- validate: (value) => {
1359
- if (!isBytes(value)) throw new Error(`bytes: invalid value ${value}`);
1360
- return value;
1361
- },
1362
- });
1363
- };
1364
-
1365
- export { createBytes as bytes, createHex as hex };
1366
-
1367
- /**
1368
- * Prefix-encoded value using a length prefix and an inner CoderType.
1369
- * The prefix can have:
1370
- * - Dynamic size (prefixed with a length CoderType like U16BE)
1371
- * - Fixed size (specified by a number)
1372
- * - Unknown size (null, will parse until end of buffer)
1373
- * - Zero-terminated (terminator can be any Uint8Array)
1374
- * @param len - Length CoderType (dynamic size), number (fixed size), Uint8Array (for terminator), or null (will parse until end of buffer)
1375
- * @param inner - CoderType for the actual value to be prefix-encoded.
1376
- * @returns CoderType representing the prefix-encoded value.
1377
- * @example
1378
- * const dynamicPrefix = P.prefix(P.U16BE, P.bytes(null)); // Dynamic size prefix (prefixed with P.U16BE number of bytes length)
1379
- * const fixedPrefix = P.prefix(10, P.bytes(null)); // Fixed size prefix (always 10 bytes)
1380
- */
1381
- export function prefix<T>(len: Length, inner: CoderType<T>): CoderType<T> {
1382
- if (!isCoder(inner)) throw new Error(`prefix: invalid inner value ${inner}`);
1383
- return apply(createBytes(len), reverse(inner)) as CoderType<T>;
1384
- }
1385
-
1386
- /**
1387
- * String CoderType with a specified length and endianness.
1388
- * The string can be:
1389
- * - Dynamic size (prefixed with a length CoderType like U16BE)
1390
- * - Fixed size (specified by a number)
1391
- * - Unknown size (null, will parse until end of buffer)
1392
- * - Zero-terminated (terminator can be any Uint8Array)
1393
- * @param len - Length CoderType (dynamic size), number (fixed size), Uint8Array (for terminator), or null (will parse until end of buffer)
1394
- * @param le - Whether to use little-endian byte order.
1395
- * @returns CoderType representing the string.
1396
- * @example
1397
- * const dynamicString = P.string(P.U16BE, false); // Dynamic size string (prefixed with P.U16BE number of string length)
1398
- * const fixedString = P.string(10, false); // Fixed size string
1399
- * const unknownString = P.string(null, false); // Unknown size string, will parse until end of buffer
1400
- * const nullTerminatedString = P.cstring; // NUL-terminated string
1401
- * const _cstring = P.string(Uint8Array.of(0)); // Same thing
1402
- */
1403
- export const string = (len: Length, le = false): CoderType<string> =>
1404
- validate(apply(createBytes(len, le), utf8), (value) => {
1405
- // TextEncoder/TextDecoder will fail on non-string, but we create more readable errors earlier
1406
- if (typeof value !== 'string') throw new Error(`expected string, got ${typeof value}`);
1407
- return value;
1408
- });
1409
-
1410
- /** NUL-terminated string CoderType. */
1411
- export const cstring: CoderType<string> = /* @__PURE__ */ string(NULL);
1412
-
1413
- type HexOpts = { isLE?: boolean; with0x?: boolean };
1414
- /**
1415
- * Hexadecimal string CoderType with a specified length, endianness, and optional 0x prefix.
1416
- * @param len - Length CoderType (dynamic size), number (fixed size), Uint8Array (for terminator), or null (will parse until end of buffer)
1417
- * @param le - Whether to use little-endian byte order.
1418
- * @param withZero - Whether to include the 0x prefix.
1419
- * @returns CoderType representing the hexadecimal string.
1420
- * @example
1421
- * const dynamicHex = P.hex(P.U16BE, {isLE: false, with0x: true}); // Hex string with 0x prefix and U16BE length
1422
- * const fixedHex = P.hex(32, {isLE: false, with0x: false}); // Fixed-length 32-byte hex string without 0x prefix
1423
- */
1424
- const createHex = (
1425
- len: Length,
1426
- options: HexOpts = { isLE: false, with0x: false }
1427
- ): CoderType<string> => {
1428
- let inner = apply(createBytes(len, options.isLE), baseHex);
1429
- const prefix = options.with0x;
1430
- if (typeof prefix !== 'boolean')
1431
- throw new Error(`hex/with0x: expected boolean, got ${typeof prefix}`);
1432
- if (prefix) {
1433
- inner = apply(inner, {
1434
- encode: (value) => `0x${value}`,
1435
- decode: (value) => {
1436
- if (!value.startsWith('0x'))
1437
- throw new Error('hex(with0x=true).encode input should start with 0x');
1438
- return value.slice(2);
1439
- },
1440
- });
1441
- }
1442
- return inner;
1443
- };
1444
-
1445
- /**
1446
- * Applies a base coder to a CoderType.
1447
- * @param inner - The inner CoderType.
1448
- * @param b - The base coder to apply.
1449
- * @returns CoderType representing the transformed value.
1450
- * @example
1451
- * import { hex } from '@scure/base';
1452
- * const hex = P.apply(P.bytes(32), hex); // will decode bytes into a hex string
1453
- */
1454
- export function apply<T, F>(inner: CoderType<T>, base: BaseCoder<T, F>): CoderType<F> {
1455
- if (!isCoder(inner)) throw new Error(`apply: invalid inner value ${inner}`);
1456
- if (!isBaseCoder(base)) throw new Error(`apply: invalid base value ${inner}`);
1457
- return wrap({
1458
- size: inner.size,
1459
- encodeStream: (w: Writer, value: F) => {
1460
- let innerValue;
1461
- try {
1462
- innerValue = base.decode(value);
1463
- } catch (e) {
1464
- throw w.err('' + e);
1465
- }
1466
- return inner.encodeStream(w, innerValue);
1467
- },
1468
- decodeStream: (r: Reader): F => {
1469
- const innerValue = inner.decodeStream(r);
1470
- try {
1471
- return base.encode(innerValue);
1472
- } catch (e) {
1473
- throw r.err('' + e);
1474
- }
1475
- },
1476
- });
1477
- }
1478
-
1479
- /**
1480
- * Lazy CoderType that is evaluated at runtime.
1481
- * @param fn - A function that returns the CoderType.
1482
- * @returns CoderType representing the lazy value.
1483
- * @example
1484
- * type Tree = { name: string; children: Tree[] };
1485
- * const tree = P.struct({
1486
- * name: P.cstring,
1487
- * children: P.array(
1488
- * P.U16BE,
1489
- * P.lazy((): P.CoderType<Tree> => tree)
1490
- * ),
1491
- * });
1492
- */
1493
- export function lazy<T>(fn: () => CoderType<T>): CoderType<T> {
1494
- if (typeof fn !== 'function') throw new Error(`lazy: expected function, got ${typeof fn}`);
1495
- return wrap({
1496
- encodeStream: (w: Writer, value: T) => fn().encodeStream(w, value),
1497
- decodeStream: (r: Reader): T => fn().decodeStream(r),
1498
- });
1499
- }
1500
-
1501
- /**
1502
- * Flag CoderType that encodes/decodes a boolean value based on the presence of a marker.
1503
- * @param flagValue - Marker value.
1504
- * @param xor - Whether to invert the flag behavior.
1505
- * @returns CoderType representing the flag value.
1506
- * @example
1507
- * const flag = P.flag(new Uint8Array([0x01, 0x02])); // Encodes true as u8a([0x01, 0x02]), false as u8a([])
1508
- * const flagXor = P.flag(new Uint8Array([0x01, 0x02]), true); // Encodes true as u8a([]), false as u8a([0x01, 0x02])
1509
- * // Conditional encoding with flagged
1510
- * const s = P.struct({ f: P.flag(new Uint8Array([0x0, 0x1])), f2: P.flagged('f', P.U32BE) });
1511
- */
1512
- export const flag = (flagValue: Bytes, xor = false): CoderType<boolean | undefined> => {
1513
- if (!isBytes(flagValue))
1514
- throw new Error(`flag/flagValue: expected Uint8Array, got ${typeof flagValue}`);
1515
- if (typeof xor !== 'boolean') throw new Error(`flag/xor: expected boolean, got ${typeof xor}`);
1516
- return wrap({
1517
- size: flagValue.length,
1518
- encodeStream: (w: Writer, value: boolean | undefined) => {
1519
- if (!!value !== xor) w.bytes(flagValue);
1520
- },
1521
- decodeStream: (r: Reader): boolean | undefined => {
1522
- let hasFlag = r.leftBytes >= flagValue.length;
1523
- if (hasFlag) {
1524
- hasFlag = equalBytes(r.bytes(flagValue.length, true), flagValue);
1525
- // Found flag, advance cursor position
1526
- if (hasFlag) r.bytes(flagValue.length);
1527
- }
1528
- return hasFlag !== xor; // hasFlag ^ xor
1529
- },
1530
- validate: (value) => {
1531
- if (value !== undefined && typeof value !== 'boolean')
1532
- throw new Error(`flag: expected boolean value or undefined, got ${typeof value}`);
1533
- return value;
1534
- },
1535
- });
1536
- };
1537
-
1538
- /**
1539
- * Conditional CoderType that encodes/decodes a value only if a flag is present.
1540
- * @param path - Path to the flag value or a CoderType for the flag.
1541
- * @param inner - Inner CoderType for the value.
1542
- * @param def - Optional default value to use if the flag is not present.
1543
- * @returns CoderType representing the conditional value.
1544
- * @example
1545
- * const s = P.struct({
1546
- * f: P.flag(new Uint8Array([0x0, 0x1])),
1547
- * f2: P.flagged('f', P.U32BE)
1548
- * });
1549
- *
1550
- * @example
1551
- * const s2 = P.struct({
1552
- * f: P.flag(new Uint8Array([0x0, 0x1])),
1553
- * f2: P.flagged('f', P.U32BE, 123)
1554
- * });
1555
- */
1556
- export function flagged<T>(
1557
- path: string | CoderType<boolean>,
1558
- inner: CoderType<T>,
1559
- def?: T
1560
- ): CoderType<Option<T>> {
1561
- if (!isCoder(inner)) throw new Error(`flagged: invalid inner value ${inner}`);
1562
- if (typeof path !== 'string' && !isCoder(inner)) throw new Error(`flagged: wrong path=${path}`);
1563
- return wrap({
1564
- encodeStream: (w: Writer, value: Option<T>) => {
1565
- if (typeof path === 'string') {
1566
- if (Path.resolve((w as _Writer).stack, path)) inner.encodeStream(w, value);
1567
- else if (def) inner.encodeStream(w, def);
1568
- } else {
1569
- path.encodeStream(w, !!value);
1570
- if (!!value) inner.encodeStream(w, value);
1571
- else if (def) inner.encodeStream(w, def);
1572
- }
1573
- },
1574
- decodeStream: (r: Reader): Option<T> => {
1575
- let hasFlag = false;
1576
- if (typeof path === 'string') hasFlag = !!Path.resolve((r as _Reader).stack, path);
1577
- else hasFlag = path.decodeStream(r);
1578
- // If there is a flag -- decode and return value
1579
- if (hasFlag) return inner.decodeStream(r);
1580
- else if (def) inner.decodeStream(r);
1581
- return;
1582
- },
1583
- });
1584
- }
1585
- /**
1586
- * Optional CoderType that encodes/decodes a value based on a flag.
1587
- * @param flag - CoderType for the flag value.
1588
- * @param inner - Inner CoderType for the value.
1589
- * @param def - Optional default value to use if the flag is not present.
1590
- * @returns CoderType representing the optional value.
1591
- * @example
1592
- * // Will decode into P.U32BE only if flag present
1593
- * const optional = P.optional(P.flag(new Uint8Array([0x0, 0x1])), P.U32BE);
1594
- *
1595
- * @example
1596
- * // If no flag present, will decode into default value
1597
- * const optionalWithDefault = P.optional(P.flag(new Uint8Array([0x0, 0x1])), P.U32BE, 123);
1598
- */
1599
- export function optional<T>(
1600
- flag: CoderType<boolean>,
1601
- inner: CoderType<T>,
1602
- def?: T
1603
- ): CoderType<Option<T>> {
1604
- if (!isCoder(flag) || !isCoder(inner))
1605
- throw new Error(`optional: invalid flag or inner value flag=${flag} inner=${inner}`);
1606
- return wrap({
1607
- size: def !== undefined && flag.size && inner.size ? flag.size + inner.size : undefined,
1608
- encodeStream: (w: Writer, value: Option<T>) => {
1609
- flag.encodeStream(w, !!value);
1610
- if (value) inner.encodeStream(w, value);
1611
- else if (def !== undefined) inner.encodeStream(w, def);
1612
- },
1613
- decodeStream: (r: Reader): Option<T> => {
1614
- if (flag.decodeStream(r)) return inner.decodeStream(r);
1615
- else if (def !== undefined) inner.decodeStream(r);
1616
- return;
1617
- },
1618
- });
1619
- }
1620
- /**
1621
- * Magic value CoderType that encodes/decodes a constant value.
1622
- * This can be used to check for a specific magic value or sequence of bytes at the beginning of a data structure.
1623
- * @param inner - Inner CoderType for the value.
1624
- * @param constant - Constant value.
1625
- * @param check - Whether to check the decoded value against the constant.
1626
- * @returns CoderType representing the magic value.
1627
- * @example
1628
- * // Always encodes constant as bytes using inner CoderType, throws if encoded value is not present
1629
- * const magicU8 = P.magic(P.U8, 0x42);
1630
- */
1631
- export function magic<T>(inner: CoderType<T>, constant: T, check = true): CoderType<undefined> {
1632
- if (!isCoder(inner)) throw new Error(`magic: invalid inner value ${inner}`);
1633
- if (typeof check !== 'boolean') throw new Error(`magic: expected boolean, got ${typeof check}`);
1634
- return wrap({
1635
- size: inner.size,
1636
- encodeStream: (w: Writer, _value: undefined) => inner.encodeStream(w, constant),
1637
- decodeStream: (r: Reader): undefined => {
1638
- const value = inner.decodeStream(r);
1639
- if (
1640
- (check && typeof value !== 'object' && value !== constant) ||
1641
- (isBytes(constant) && !equalBytes(constant, value as any))
1642
- ) {
1643
- throw r.err(`magic: invalid value: ${value} !== ${constant}`);
1644
- }
1645
- return;
1646
- },
1647
- validate: (value) => {
1648
- if (value !== undefined) throw new Error(`magic: wrong value=${typeof value}`);
1649
- return value;
1650
- },
1651
- });
1652
- }
1653
- /**
1654
- * Magic bytes CoderType that encodes/decodes a constant byte array or string.
1655
- * @param constant - Constant byte array or string.
1656
- * @returns CoderType representing the magic bytes.
1657
- * @example
1658
- * // Always encodes undefined into byte representation of string 'MAGIC'
1659
- * const magicBytes = P.magicBytes('MAGIC');
1660
- */
1661
- export const magicBytes = (constant: Bytes | string): CoderType<undefined> => {
1662
- const c = typeof constant === 'string' ? utf8.decode(constant) : constant;
1663
- return magic(createBytes(c.length), c);
1664
- };
1665
-
1666
- /**
1667
- * Creates a CoderType for a constant value. The function enforces this value during encoding,
1668
- * ensuring it matches the provided constant. During decoding, it always returns the constant value.
1669
- * The actual value is not written to or read from any byte stream; it's used only for validation.
1670
- *
1671
- * @param c - Constant value.
1672
- * @returns CoderType representing the constant value.
1673
- * @example
1674
- * // Always return 123 on decode, throws on encoding anything other than 123
1675
- * const constantU8 = P.constant(123);
1676
- */
1677
- export function constant<T>(c: T): CoderType<T> {
1678
- return wrap({
1679
- encodeStream: (_w: Writer, value: T) => {
1680
- if (value !== c) throw new Error(`constant: invalid value ${value} (exp: ${c})`);
1681
- },
1682
- decodeStream: (_r: Reader): T => c,
1683
- });
1684
- }
1685
-
1686
- function sizeof(fields: CoderType<any>[]): Option<number> {
1687
- let size: Option<number> = 0;
1688
- for (const f of fields) {
1689
- if (f.size === undefined) return;
1690
- if (!isNum(f.size)) throw new Error(`sizeof: wrong element size=${size}`);
1691
- size += f.size;
1692
- }
1693
- return size;
1694
- }
1695
- /**
1696
- * Structure of composable primitives (C/Rust struct)
1697
- * @param fields - Object mapping field names to CoderTypes.
1698
- * @returns CoderType representing the structure.
1699
- * @example
1700
- * // Define a structure with a 32-bit big-endian unsigned integer, a string, and a nested structure
1701
- * const myStruct = P.struct({
1702
- * id: P.U32BE,
1703
- * name: P.string(P.U8),
1704
- * nested: P.struct({
1705
- * flag: P.bool,
1706
- * value: P.I16LE
1707
- * })
1708
- * });
1709
- */
1710
- export function struct<T extends Record<string, any>>(
1711
- fields: StructRecord<T>
1712
- ): CoderType<StructInput<T>> {
1713
- if (!isPlainObject(fields)) throw new Error(`struct: expected plain object, got ${fields}`);
1714
- for (const name in fields) {
1715
- if (!isCoder(fields[name])) throw new Error(`struct: field ${name} is not CoderType`);
1716
- }
1717
- return wrap({
1718
- size: sizeof(Object.values(fields)),
1719
- encodeStream: (w: Writer, value: StructInput<T>) => {
1720
- (w as _Writer).pushObj(value, (fieldFn) => {
1721
- for (const name in fields)
1722
- fieldFn(name, () => fields[name].encodeStream(w, (value as T)[name]));
1723
- });
1724
- },
1725
- decodeStream: (r: Reader): StructInput<T> => {
1726
- const res: Partial<T> = {};
1727
- (r as _Reader).pushObj(res, (fieldFn) => {
1728
- for (const name in fields) fieldFn(name, () => (res[name] = fields[name].decodeStream(r)));
1729
- });
1730
- return res as T;
1731
- },
1732
- validate: (value) => {
1733
- if (typeof value !== 'object' || value === null)
1734
- throw new Error(`struct: invalid value ${value}`);
1735
- return value;
1736
- },
1737
- });
1738
- }
1739
- /**
1740
- * Tuple (unnamed structure) of CoderTypes. Same as struct but with unnamed fields.
1741
- * @param fields - Array of CoderTypes.
1742
- * @returns CoderType representing the tuple.
1743
- * @example
1744
- * const myTuple = P.tuple([P.U8, P.U16LE, P.string(P.U8)]);
1745
- */
1746
- export function tuple<
1747
- T extends ArrLike<CoderType<any>>,
1748
- O = Writable<{ [K in keyof T]: UnwrapCoder<T[K]> }>,
1749
- >(fields: T): CoderType<O> {
1750
- if (!Array.isArray(fields))
1751
- throw new Error(`Packed.Tuple: got ${typeof fields} instead of array`);
1752
- for (let i = 0; i < fields.length; i++) {
1753
- if (!isCoder(fields[i])) throw new Error(`tuple: field ${i} is not CoderType`);
1754
- }
1755
- return wrap({
1756
- size: sizeof(fields),
1757
- encodeStream: (w: Writer, value: O) => {
1758
- // TODO: fix types
1759
- if (!Array.isArray(value)) throw w.err(`tuple: invalid value ${value}`);
1760
- (w as _Writer).pushObj(value, (fieldFn) => {
1761
- for (let i = 0; i < fields.length; i++)
1762
- fieldFn(`${i}`, () => fields[i].encodeStream(w, value[i]));
1763
- });
1764
- },
1765
- decodeStream: (r: Reader): O => {
1766
- const res: any = [];
1767
- (r as _Reader).pushObj(res, (fieldFn) => {
1768
- for (let i = 0; i < fields.length; i++)
1769
- fieldFn(`${i}`, () => res.push(fields[i].decodeStream(r)));
1770
- });
1771
- return res;
1772
- },
1773
- validate: (value) => {
1774
- if (!Array.isArray(value)) throw new Error(`tuple: invalid value ${value}`);
1775
- if (value.length !== fields.length)
1776
- throw new Error(`tuple: wrong length=${value.length}, expected ${fields.length}`);
1777
- return value;
1778
- },
1779
- });
1780
- }
1781
-
1782
- /**
1783
- * Array of items (inner type) with a specified length.
1784
- * @param len - Length CoderType (dynamic size), number (fixed size), Uint8Array (for terminator), or null (will parse until end of buffer)
1785
- * @param inner - CoderType for encoding/decoding each array item.
1786
- * @returns CoderType representing the array.
1787
- * @example
1788
- * const a1 = P.array(P.U16BE, child); // Dynamic size array (prefixed with P.U16BE number of array length)
1789
- * const a2 = P.array(4, child); // Fixed size array
1790
- * const a3 = P.array(null, child); // Unknown size array, will parse until end of buffer
1791
- * const a4 = P.array(Uint8Array.of(0), child); // zero-terminated array (NOTE: terminator can be any buffer)
1792
- */
1793
- export function array<T>(len: Length, inner: CoderType<T>): CoderType<T[]> {
1794
- if (!isCoder(inner)) throw new Error(`array: invalid inner value ${inner}`);
1795
- // By construction length is inside array (otherwise there will be various incorrect stack states)
1796
- // But forcing users always write '..' seems like bad idea. Also, breaking change.
1797
- const _length = lengthCoder(typeof len === 'string' ? `../${len}` : len);
1798
- return wrap({
1799
- size: typeof len === 'number' && inner.size ? len * inner.size : undefined,
1800
- encodeStream: (w: Writer, value: T[]) => {
1801
- const _w = w as _Writer;
1802
- _w.pushObj(value, (fieldFn) => {
1803
- if (!isBytes(len)) _length.encodeStream(w, value.length);
1804
- for (let i = 0; i < value.length; i++) {
1805
- fieldFn(`${i}`, () => {
1806
- const elm = value[i];
1807
- const startPos = (w as _Writer).pos;
1808
- inner.encodeStream(w, elm);
1809
- if (isBytes(len)) {
1810
- // Terminator is bigger than elm size, so skip
1811
- if (len.length > _w.pos - startPos) return;
1812
- const data = _w.finish(false).subarray(startPos, _w.pos);
1813
- // There is still possible case when multiple elements create terminator,
1814
- // but it is hard to catch here, will be very slow
1815
- if (equalBytes(data.subarray(0, len.length), len))
1816
- throw _w.err(
1817
- `array: inner element encoding same as separator. elm=${elm} data=${data}`
1818
- );
1819
- }
1820
- });
1821
- }
1822
- });
1823
- if (isBytes(len)) w.bytes(len);
1824
- },
1825
- decodeStream: (r: Reader): T[] => {
1826
- const res: T[] = [];
1827
- (r as _Reader).pushObj(res, (fieldFn) => {
1828
- if (len === null) {
1829
- for (let i = 0; !r.isEnd(); i++) {
1830
- fieldFn(`${i}`, () => res.push(inner.decodeStream(r)));
1831
- if (inner.size && r.leftBytes < inner.size) break;
1832
- }
1833
- } else if (isBytes(len)) {
1834
- for (let i = 0; ; i++) {
1835
- if (equalBytes(r.bytes(len.length, true), len)) {
1836
- // Advance cursor position if terminator found
1837
- r.bytes(len.length);
1838
- break;
1839
- }
1840
- fieldFn(`${i}`, () => res.push(inner.decodeStream(r)));
1841
- }
1842
- } else {
1843
- let length: number;
1844
- fieldFn('arrayLen', () => (length = _length.decodeStream(r)));
1845
- for (let i = 0; i < length!; i++) fieldFn(`${i}`, () => res.push(inner.decodeStream(r)));
1846
- }
1847
- });
1848
- return res;
1849
- },
1850
- validate: (value) => {
1851
- if (!Array.isArray(value)) throw new Error(`array: invalid value ${value}`);
1852
- return value;
1853
- },
1854
- });
1855
- }
1856
- /**
1857
- * Mapping between encoded values and string representations.
1858
- * @param inner - CoderType for encoded values.
1859
- * @param variants - Object mapping string representations to encoded values.
1860
- * @returns CoderType representing the mapping.
1861
- * @example
1862
- * // Map between numbers and strings
1863
- * const numberMap = P.map(P.U8, {
1864
- * 'one': 1,
1865
- * 'two': 2,
1866
- * 'three': 3
1867
- * });
1868
- *
1869
- * // Map between byte arrays and strings
1870
- * const byteMap = P.map(P.bytes(2, false), {
1871
- * 'ab': Uint8Array.from([0x61, 0x62]),
1872
- * 'cd': Uint8Array.from([0x63, 0x64])
1873
- * });
1874
- */
1875
- export function map<T>(inner: CoderType<T>, variants: Record<string, T>): CoderType<string> {
1876
- if (!isCoder(inner)) throw new Error(`map: invalid inner value ${inner}`);
1877
- if (!isPlainObject(variants)) throw new Error(`map: variants should be plain object`);
1878
- const variantNames: Map<T, string> = new Map();
1879
- for (const k in variants) variantNames.set(variants[k], k);
1880
- return wrap({
1881
- size: inner.size,
1882
- encodeStream: (w: Writer, value: string) => inner.encodeStream(w, variants[value]),
1883
- decodeStream: (r: Reader): string => {
1884
- const variant = inner.decodeStream(r);
1885
- const name = variantNames.get(variant);
1886
- if (name === undefined)
1887
- throw r.err(`Enum: unknown value: ${variant} ${Array.from(variantNames.keys())}`);
1888
- return name;
1889
- },
1890
- validate: (value) => {
1891
- if (typeof value !== 'string') throw new Error(`map: invalid value ${value}`);
1892
- if (!(value in variants)) throw new Error(`Map: unknown variant: ${value}`);
1893
- return value;
1894
- },
1895
- });
1896
- }
1897
- /**
1898
- * Tagged union of CoderTypes, where the tag value determines which CoderType to use.
1899
- * The decoded value will have the structure `{ TAG: number, data: ... }`.
1900
- * @param tag - CoderType for the tag value.
1901
- * @param variants - Object mapping tag values to CoderTypes.
1902
- * @returns CoderType representing the tagged union.
1903
- * @example
1904
- * // Tagged union of array, string, and number
1905
- * // Depending on the value of the first byte, it will be decoded as an array, string, or number.
1906
- * const taggedUnion = P.tag(P.U8, {
1907
- * 0x01: P.array(P.U16LE, P.U8),
1908
- * 0x02: P.string(P.U8),
1909
- * 0x03: P.U32BE
1910
- * });
1911
- *
1912
- * const encoded = taggedUnion.encode({ TAG: 0x01, data: 'hello' }); // Encodes the string 'hello' with tag 0x01
1913
- * const decoded = taggedUnion.decode(encoded); // Decodes the encoded value back to { TAG: 0x01, data: 'hello' }
1914
- */
1915
- export function tag<
1916
- T extends Values<{
1917
- [P in keyof Variants]: { TAG: P; data: UnwrapCoder<Variants[P]> };
1918
- }>,
1919
- TagValue extends string | number,
1920
- Variants extends Record<TagValue, CoderType<any>>,
1921
- >(tag: CoderType<TagValue>, variants: Variants): CoderType<T> {
1922
- if (!isCoder(tag)) throw new Error(`tag: invalid tag value ${tag}`);
1923
- if (!isPlainObject(variants)) throw new Error(`tag: variants should be plain object`);
1924
- for (const name in variants) {
1925
- if (!isCoder(variants[name])) throw new Error(`tag: variant ${name} is not CoderType`);
1926
- }
1927
- return wrap({
1928
- size: tag.size,
1929
- encodeStream: (w: Writer, value: T) => {
1930
- const { TAG, data } = value;
1931
- const dataType = variants[TAG];
1932
- tag.encodeStream(w, TAG as any);
1933
- dataType.encodeStream(w, data);
1934
- },
1935
- decodeStream: (r: Reader): T => {
1936
- const TAG = tag.decodeStream(r);
1937
- const dataType = variants[TAG];
1938
- if (!dataType) throw r.err(`Tag: invalid tag ${TAG}`);
1939
- return { TAG, data: dataType.decodeStream(r) } as any;
1940
- },
1941
- validate: (value) => {
1942
- const { TAG } = value;
1943
- const dataType = variants[TAG];
1944
- if (!dataType) throw new Error(`Tag: invalid tag ${TAG.toString()}`);
1945
- return value;
1946
- },
1947
- });
1948
- }
1949
-
1950
- /**
1951
- * Mapping between encoded values, string representations, and CoderTypes using a tag CoderType.
1952
- * @param tagCoder - CoderType for the tag value.
1953
- * @param variants - Object mapping string representations to [tag value, CoderType] pairs.
1954
- * * @returns CoderType representing the mapping.
1955
- * @example
1956
- * const cborValue: P.CoderType<CborValue> = P.mappedTag(P.bits(3), {
1957
- * uint: [0, cborUint], // An unsigned integer in the range 0..264-1 inclusive.
1958
- * negint: [1, cborNegint], // A negative integer in the range -264..-1 inclusive
1959
- * bytes: [2, P.lazy(() => cborLength(P.bytes, cborValue))], // A byte string.
1960
- * string: [3, P.lazy(() => cborLength(P.string, cborValue))], // A text string (utf8)
1961
- * array: [4, cborArrLength(P.lazy(() => cborValue))], // An array of data items
1962
- * map: [5, P.lazy(() => cborArrLength(P.tuple([cborValue, cborValue])))], // A map of pairs of data items
1963
- * tag: [6, P.tuple([cborUint, P.lazy(() => cborValue)] as const)], // A tagged data item ("tag") whose tag number
1964
- * simple: [7, cborSimple], // Floating-point numbers and simple values, as well as the "break" stop code
1965
- * });
1966
- */
1967
- export function mappedTag<
1968
- T extends Values<{
1969
- [P in keyof Variants]: { TAG: P; data: UnwrapCoder<Variants[P][1]> };
1970
- }>,
1971
- TagValue extends string | number,
1972
- Variants extends Record<string, [TagValue, CoderType<any>]>,
1973
- >(tagCoder: CoderType<TagValue>, variants: Variants): CoderType<T> {
1974
- if (!isCoder(tagCoder)) throw new Error(`mappedTag: invalid tag value ${tag}`);
1975
- if (!isPlainObject(variants)) throw new Error(`mappedTag: variants should be plain object`);
1976
- const mapValue: Record<string, TagValue> = {};
1977
- const tagValue: Record<string, CoderType<any>> = {};
1978
- for (const key in variants) {
1979
- const v = variants[key];
1980
- mapValue[key] = v[0];
1981
- tagValue[key] = v[1];
1982
- }
1983
- return tag(map(tagCoder, mapValue), tagValue) as any as CoderType<T>;
1984
- }
1985
-
1986
- /**
1987
- * Bitset of boolean values with optional padding.
1988
- * @param names - An array of string names for the bitset values.
1989
- * @param pad - Whether to pad the bitset to a multiple of 8 bits.
1990
- * @returns CoderType representing the bitset.
1991
- * @template Names
1992
- * @example
1993
- * const myBitset = P.bitset(['flag1', 'flag2', 'flag3', 'flag4'], true);
1994
- */
1995
- export function bitset<Names extends readonly string[]>(
1996
- names: Names,
1997
- pad = false
1998
- ): CoderType<Record<Names[number], boolean>> {
1999
- if (typeof pad !== 'boolean') throw new Error(`bitset/pad: expected boolean, got ${typeof pad}`);
2000
- if (!Array.isArray(names)) throw new Error('bitset/names: expected array');
2001
- for (const name of names) {
2002
- if (typeof name !== 'string') throw new Error('bitset/names: expected array of strings');
2003
- }
2004
- return wrap({
2005
- encodeStream: (w: Writer, value: Record<Names[number], boolean>) => {
2006
- for (let i = 0; i < names.length; i++) w.bits(+(value as any)[names[i]], 1);
2007
- if (pad && names.length % 8) w.bits(0, 8 - (names.length % 8));
2008
- },
2009
- decodeStream: (r: Reader): Record<Names[number], boolean> => {
2010
- const out: Record<string, boolean> = {};
2011
- for (let i = 0; i < names.length; i++) out[names[i]] = !!r.bits(1);
2012
- if (pad && names.length % 8) r.bits(8 - (names.length % 8));
2013
- return out;
2014
- },
2015
- validate: (value) => {
2016
- if (!isPlainObject(value)) throw new Error(`bitset: invalid value ${value}`);
2017
- for (const v of Object.values(value)) {
2018
- if (typeof v !== 'boolean') throw new Error('expected boolean');
2019
- }
2020
- return value;
2021
- },
2022
- });
2023
- }
2024
- /** Padding function which always returns zero */
2025
- export const ZeroPad: PadFn = (_) => 0;
2026
-
2027
- function padLength(blockSize: number, len: number): number {
2028
- if (len % blockSize === 0) return 0;
2029
- return blockSize - (len % blockSize);
2030
- }
2031
- /**
2032
- * Pads a CoderType with a specified block size and padding function on the left side.
2033
- * @param blockSize - Block size for padding (positive safe integer).
2034
- * @param inner - Inner CoderType to pad.
2035
- * @param padFn - Padding function to use. If not provided, zero padding is used.
2036
- * @returns CoderType representing the padded value.
2037
- * @example
2038
- * // Pad a U32BE with a block size of 4 and zero padding
2039
- * const paddedU32BE = P.padLeft(4, P.U32BE);
2040
- *
2041
- * // Pad a string with a block size of 16 and custom padding
2042
- * const paddedString = P.padLeft(16, P.string(P.U8), (i) => i + 1);
2043
- */
2044
- export function padLeft<T>(
2045
- blockSize: number,
2046
- inner: CoderType<T>,
2047
- padFn: Option<PadFn>
2048
- ): CoderType<T> {
2049
- if (!isNum(blockSize) || blockSize <= 0) throw new Error(`padLeft: wrong blockSize=${blockSize}`);
2050
- if (!isCoder(inner)) throw new Error(`padLeft: invalid inner value ${inner}`);
2051
- if (padFn !== undefined && typeof padFn !== 'function')
2052
- throw new Error(`padLeft: wrong padFn=${typeof padFn}`);
2053
- const _padFn = padFn || ZeroPad;
2054
- if (!inner.size) throw new Error('padLeft cannot have dynamic size');
2055
- return wrap({
2056
- size: inner.size + padLength(blockSize, inner.size),
2057
- encodeStream: (w: Writer, value: T) => {
2058
- const padBytes = padLength(blockSize, inner.size!);
2059
- for (let i = 0; i < padBytes; i++) w.byte(_padFn(i));
2060
- inner.encodeStream(w, value);
2061
- },
2062
- decodeStream: (r: Reader): T => {
2063
- r.bytes(padLength(blockSize, inner.size!));
2064
- return inner.decodeStream(r);
2065
- },
2066
- });
2067
- }
2068
- /**
2069
- * Pads a CoderType with a specified block size and padding function on the right side.
2070
- * @param blockSize - Block size for padding (positive safe integer).
2071
- * @param inner - Inner CoderType to pad.
2072
- * @param padFn - Padding function to use. If not provided, zero padding is used.
2073
- * @returns CoderType representing the padded value.
2074
- * @example
2075
- * // Pad a U16BE with a block size of 2 and zero padding
2076
- * const paddedU16BE = P.padRight(2, P.U16BE);
2077
- *
2078
- * // Pad a bytes with a block size of 8 and custom padding
2079
- * const paddedBytes = P.padRight(8, P.bytes(null), (i) => i + 1);
2080
- */
2081
- export function padRight<T>(
2082
- blockSize: number,
2083
- inner: CoderType<T>,
2084
- padFn: Option<PadFn>
2085
- ): CoderType<T> {
2086
- if (!isCoder(inner)) throw new Error(`padRight: invalid inner value ${inner}`);
2087
- if (!isNum(blockSize) || blockSize <= 0) throw new Error(`padLeft: wrong blockSize=${blockSize}`);
2088
- if (padFn !== undefined && typeof padFn !== 'function')
2089
- throw new Error(`padRight: wrong padFn=${typeof padFn}`);
2090
- const _padFn = padFn || ZeroPad;
2091
- return wrap({
2092
- size: inner.size ? inner.size + padLength(blockSize, inner.size) : undefined,
2093
- encodeStream: (w: Writer, value: T) => {
2094
- const _w = w as _Writer;
2095
- const pos = _w.pos;
2096
- inner.encodeStream(w, value);
2097
- const padBytes = padLength(blockSize, _w.pos - pos);
2098
- for (let i = 0; i < padBytes; i++) w.byte(_padFn(i));
2099
- },
2100
- decodeStream: (r: Reader): T => {
2101
- const start = r.pos;
2102
- const res = inner.decodeStream(r);
2103
- r.bytes(padLength(blockSize, r.pos - start));
2104
- return res;
2105
- },
2106
- });
2107
- }
2108
- 1;
2109
- /**
2110
- * Pointer to a value using a pointer CoderType and an inner CoderType.
2111
- * Pointers are scoped, and the next pointer in the dereference chain is offset by the previous one.
2112
- * By default (if no 'allowMultipleReads' in ReaderOpts is set) is safe, since
2113
- * same region of memory cannot be read multiple times.
2114
- * @param ptr - CoderType for the pointer value.
2115
- * @param inner - CoderType for encoding/decoding the pointed value.
2116
- * @param sized - Whether the pointer should have a fixed size.
2117
- * @returns CoderType representing the pointer to the value.
2118
- * @example
2119
- * const pointerToU8 = P.pointer(P.U16BE, P.U8); // Pointer to a single U8 value
2120
- */
2121
- export function pointer<T>(
2122
- ptr: CoderType<number>,
2123
- inner: CoderType<T>,
2124
- sized = false
2125
- ): CoderType<T> {
2126
- if (!isCoder(ptr)) throw new Error(`pointer: invalid ptr value ${ptr}`);
2127
- if (!isCoder(inner)) throw new Error(`pointer: invalid inner value ${inner}`);
2128
- if (typeof sized !== 'boolean')
2129
- throw new Error(`pointer/sized: expected boolean, got ${typeof sized}`);
2130
- if (!ptr.size) throw new Error('unsized pointer');
2131
- return wrap({
2132
- size: sized ? ptr.size : undefined,
2133
- encodeStream: (w: Writer, value: T) => {
2134
- const _w = w as _Writer;
2135
- const start = _w.pos;
2136
- ptr.encodeStream(w, 0);
2137
- _w.ptrs.push({ pos: start, ptr, buffer: inner.encode(value) });
2138
- },
2139
- decodeStream: (r: Reader): T => {
2140
- const ptrVal = ptr.decodeStream(r);
2141
- (r as _Reader)._enablePointers();
2142
- return inner.decodeStream(r.offsetReader(ptrVal));
2143
- },
2144
- });
2145
- }
2146
-
2147
- // Internal methods for test purposes only
2148
- export const _TEST: {
2149
- _bitset: {
2150
- BITS: number;
2151
- FULL_MASK: number;
2152
- len: (len: number) => number;
2153
- create: (len: number) => Uint32Array;
2154
- clean: (bs: Uint32Array) => Uint32Array;
2155
- debug: (bs: Uint32Array) => string[];
2156
- checkLen: (bs: Uint32Array, len: number) => void;
2157
- chunkLen: (bsLen: number, pos: number, len: number) => void;
2158
- set: (bs: Uint32Array, chunk: number, value: number, allowRewrite?: boolean) => boolean;
2159
- pos: (
2160
- pos: number,
2161
- i: number
2162
- ) => {
2163
- chunk: number;
2164
- mask: number;
2165
- };
2166
- indices: (bs: Uint32Array, len: number, invert?: boolean) => number[];
2167
- range: (arr: number[]) => {
2168
- pos: number;
2169
- length: number;
2170
- }[];
2171
- rangeDebug: (bs: Uint32Array, len: number, invert?: boolean) => string;
2172
- setRange: (
2173
- bs: Uint32Array,
2174
- bsLen: number,
2175
- pos: number,
2176
- len: number,
2177
- allowRewrite?: boolean
2178
- ) => boolean;
2179
- };
2180
- _Reader: typeof _Reader;
2181
- _Writer: typeof _Writer;
2182
- Path: {
2183
- /**
2184
- * Internal method for handling stack of paths (debug, errors, dynamic fields via path)
2185
- * This is looks ugly (callback), but allows us to force stack cleaning by construction (.pop always after function).
2186
- * Also, this makes impossible:
2187
- * - pushing field when stack is empty
2188
- * - pushing field inside of field (real bug)
2189
- * NOTE: we don't want to do '.pop' on error!
2190
- */
2191
- pushObj: (stack: PathStack, obj: StructOut, objFn: _PathObjFn) => void;
2192
- path: (stack: PathStack) => string;
2193
- err(name: string, stack: PathStack, msg: string | Error): Error;
2194
- resolve: (stack: PathStack, path: string) => StructOut | undefined;
2195
- };
2196
- } = { _bitset: Bitset, _Reader, _Writer, Path };