@nktkas/hyperliquid 0.30.0 → 0.30.3

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 (514) hide show
  1. package/README.md +83 -19
  2. package/esm/bin/cli.js +10 -0
  3. package/esm/bin/cli.js.map +1 -1
  4. package/esm/deps/jsr.io/@std/async/1.1.0/unstable_semaphore.d.ts +94 -0
  5. package/esm/deps/jsr.io/@std/async/1.1.0/unstable_semaphore.d.ts.map +1 -0
  6. package/esm/deps/jsr.io/@std/async/1.1.0/unstable_semaphore.js +138 -0
  7. package/esm/deps/jsr.io/@std/async/1.1.0/unstable_semaphore.js.map +1 -0
  8. package/esm/src/api/_schemas.d.ts +4 -4
  9. package/esm/src/api/_schemas.d.ts.map +1 -1
  10. package/esm/src/api/_schemas.js +8 -4
  11. package/esm/src/api/_schemas.js.map +1 -1
  12. package/esm/src/api/exchange/_methods/_base/_nonce.d.ts +3 -2
  13. package/esm/src/api/exchange/_methods/_base/_nonce.d.ts.map +1 -1
  14. package/esm/src/api/exchange/_methods/_base/_nonce.js +3 -2
  15. package/esm/src/api/exchange/_methods/_base/_nonce.js.map +1 -1
  16. package/esm/src/api/exchange/_methods/_base/_semaphore.d.ts +7 -6
  17. package/esm/src/api/exchange/_methods/_base/_semaphore.d.ts.map +1 -1
  18. package/esm/src/api/exchange/_methods/_base/_semaphore.js +34 -47
  19. package/esm/src/api/exchange/_methods/_base/_semaphore.js.map +1 -1
  20. package/esm/src/api/exchange/_methods/_base/execute.js +3 -3
  21. package/esm/src/api/exchange/_methods/_base/execute.js.map +1 -1
  22. package/esm/src/api/exchange/_methods/agentEnableDexAbstraction.d.ts +2 -2
  23. package/esm/src/api/exchange/_methods/approveAgent.d.ts +24 -13
  24. package/esm/src/api/exchange/_methods/approveAgent.d.ts.map +1 -1
  25. package/esm/src/api/exchange/_methods/approveAgent.js +21 -3
  26. package/esm/src/api/exchange/_methods/approveAgent.js.map +1 -1
  27. package/esm/src/api/exchange/_methods/approveBuilderFee.d.ts +4 -4
  28. package/esm/src/api/exchange/_methods/batchModify.d.ts +29 -29
  29. package/esm/src/api/exchange/_methods/borrowLend.d.ts +173 -0
  30. package/esm/src/api/exchange/_methods/borrowLend.d.ts.map +1 -0
  31. package/esm/src/api/exchange/_methods/borrowLend.js +75 -0
  32. package/esm/src/api/exchange/_methods/borrowLend.js.map +1 -0
  33. package/esm/src/api/exchange/_methods/cDeposit.d.ts +7 -7
  34. package/esm/src/api/exchange/_methods/cSignerAction.d.ts +2 -2
  35. package/esm/src/api/exchange/_methods/cValidatorAction.d.ts +11 -11
  36. package/esm/src/api/exchange/_methods/cWithdraw.d.ts +7 -7
  37. package/esm/src/api/exchange/_methods/cancel.d.ts +8 -8
  38. package/esm/src/api/exchange/_methods/cancelByCloid.d.ts +5 -5
  39. package/esm/src/api/exchange/_methods/claimRewards.d.ts +2 -2
  40. package/esm/src/api/exchange/_methods/convertToMultiSigUser.d.ts +10 -10
  41. package/esm/src/api/exchange/_methods/createSubAccount.d.ts +2 -2
  42. package/esm/src/api/exchange/_methods/createVault.d.ts +8 -8
  43. package/esm/src/api/exchange/_methods/evmUserModify.d.ts +2 -2
  44. package/esm/src/api/exchange/_methods/linkStakingUser.d.ts +4 -4
  45. package/esm/src/api/exchange/_methods/modify.d.ts +19 -19
  46. package/esm/src/api/exchange/_methods/noop.d.ts +2 -2
  47. package/esm/src/api/exchange/_methods/order.d.ts +31 -31
  48. package/esm/src/api/exchange/_methods/order.d.ts.map +1 -1
  49. package/esm/src/api/exchange/_methods/order.js +4 -2
  50. package/esm/src/api/exchange/_methods/order.js.map +1 -1
  51. package/esm/src/api/exchange/_methods/perpDeploy.d.ts +53 -53
  52. package/esm/src/api/exchange/_methods/registerReferrer.d.ts +2 -2
  53. package/esm/src/api/exchange/_methods/reserveRequestWeight.d.ts +5 -5
  54. package/esm/src/api/exchange/_methods/scheduleCancel.d.ts +5 -5
  55. package/esm/src/api/exchange/_methods/sendAsset.d.ts +17 -17
  56. package/esm/src/api/exchange/_methods/setDisplayName.d.ts +2 -2
  57. package/esm/src/api/exchange/_methods/setReferrer.d.ts +2 -2
  58. package/esm/src/api/exchange/_methods/spotDeploy.d.ts +53 -53
  59. package/esm/src/api/exchange/_methods/spotSend.d.ts +12 -12
  60. package/esm/src/api/exchange/_methods/spotUser.d.ts +2 -2
  61. package/esm/src/api/exchange/_methods/subAccountModify.d.ts +2 -2
  62. package/esm/src/api/exchange/_methods/subAccountSpotTransfer.d.ts +5 -5
  63. package/esm/src/api/exchange/_methods/subAccountTransfer.d.ts +5 -5
  64. package/esm/src/api/exchange/_methods/tokenDelegate.d.ts +7 -7
  65. package/esm/src/api/exchange/_methods/twapCancel.d.ts +8 -8
  66. package/esm/src/api/exchange/_methods/twapOrder.d.ts +12 -12
  67. package/esm/src/api/exchange/_methods/updateIsolatedMargin.d.ts +8 -8
  68. package/esm/src/api/exchange/_methods/updateLeverage.d.ts +8 -8
  69. package/esm/src/api/exchange/_methods/usdClassTransfer.d.ts +7 -7
  70. package/esm/src/api/exchange/_methods/usdSend.d.ts +12 -12
  71. package/esm/src/api/exchange/_methods/userDexAbstraction.d.ts +4 -4
  72. package/esm/src/api/exchange/_methods/userPortfolioMargin.d.ts +193 -0
  73. package/esm/src/api/exchange/_methods/userPortfolioMargin.d.ts.map +1 -0
  74. package/esm/src/api/exchange/_methods/userPortfolioMargin.js +92 -0
  75. package/esm/src/api/exchange/_methods/userPortfolioMargin.js.map +1 -0
  76. package/esm/src/api/exchange/_methods/validatorL1Stream.d.ts +5 -5
  77. package/esm/src/api/exchange/_methods/vaultDistribute.d.ts +5 -5
  78. package/esm/src/api/exchange/_methods/vaultModify.d.ts +2 -2
  79. package/esm/src/api/exchange/_methods/vaultTransfer.d.ts +5 -5
  80. package/esm/src/api/exchange/_methods/withdraw3.d.ts +12 -12
  81. package/esm/src/api/exchange/client.d.ts +8 -0
  82. package/esm/src/api/exchange/client.d.ts.map +1 -1
  83. package/esm/src/api/exchange/client.js +10 -0
  84. package/esm/src/api/exchange/client.js.map +1 -1
  85. package/esm/src/api/exchange/mod.d.ts +2 -0
  86. package/esm/src/api/exchange/mod.d.ts.map +1 -1
  87. package/esm/src/api/exchange/mod.js +2 -0
  88. package/esm/src/api/exchange/mod.js.map +1 -1
  89. package/esm/src/api/info/_methods/_base/commonSchemas.d.ts +43 -43
  90. package/esm/src/api/info/_methods/activeAssetData.d.ts +6 -6
  91. package/esm/src/api/info/_methods/activeAssetData.js +2 -2
  92. package/esm/src/api/info/_methods/activeAssetData.js.map +1 -1
  93. package/esm/src/api/info/_methods/alignedQuoteTokenInfo.d.ts +5 -5
  94. package/esm/src/api/info/_methods/allBorrowLendReserveStates.d.ts +71 -0
  95. package/esm/src/api/info/_methods/allBorrowLendReserveStates.d.ts.map +1 -0
  96. package/esm/src/api/info/_methods/allBorrowLendReserveStates.js +56 -0
  97. package/esm/src/api/info/_methods/allBorrowLendReserveStates.js.map +1 -0
  98. package/esm/src/api/info/_methods/allMids.d.ts +1 -1
  99. package/esm/src/api/info/_methods/allPerpMetas.d.ts +7 -7
  100. package/esm/src/api/info/_methods/blockDetails.d.ts +6 -6
  101. package/esm/src/api/info/_methods/borrowLendReserveState.d.ts +79 -0
  102. package/esm/src/api/info/_methods/borrowLendReserveState.d.ts.map +1 -0
  103. package/esm/src/api/info/_methods/borrowLendReserveState.js +76 -0
  104. package/esm/src/api/info/_methods/borrowLendReserveState.js.map +1 -0
  105. package/esm/src/api/info/_methods/borrowLendUserState.d.ts +103 -0
  106. package/esm/src/api/info/_methods/borrowLendUserState.d.ts.map +1 -0
  107. package/esm/src/api/info/_methods/borrowLendUserState.js +85 -0
  108. package/esm/src/api/info/_methods/borrowLendUserState.js.map +1 -0
  109. package/esm/src/api/info/_methods/candleSnapshot.d.ts +10 -10
  110. package/esm/src/api/info/_methods/clearinghouseState.d.ts +25 -25
  111. package/esm/src/api/info/_methods/clearinghouseState.js +3 -3
  112. package/esm/src/api/info/_methods/clearinghouseState.js.map +1 -1
  113. package/esm/src/api/info/_methods/delegations.d.ts +2 -2
  114. package/esm/src/api/info/_methods/delegatorHistory.d.ts +4 -4
  115. package/esm/src/api/info/_methods/delegatorRewards.d.ts +2 -2
  116. package/esm/src/api/info/_methods/delegatorSummary.d.ts +4 -4
  117. package/esm/src/api/info/_methods/exchangeStatus.d.ts +1 -1
  118. package/esm/src/api/info/_methods/extraAgents.d.ts +1 -1
  119. package/esm/src/api/info/_methods/frontendOpenOrders.d.ts +6 -6
  120. package/esm/src/api/info/_methods/fundingHistory.d.ts +5 -5
  121. package/esm/src/api/info/_methods/historicalOrders.d.ts +7 -7
  122. package/esm/src/api/info/_methods/l2Book.d.ts +7 -7
  123. package/esm/src/api/info/_methods/marginTable.d.ts +3 -3
  124. package/esm/src/api/info/_methods/maxMarketOrderNtls.d.ts +1 -1
  125. package/esm/src/api/info/_methods/maxMarketOrderNtls.d.ts.map +1 -1
  126. package/esm/src/api/info/_methods/meta.d.ts +7 -7
  127. package/esm/src/api/info/_methods/metaAndAssetCtxs.d.ts +16 -16
  128. package/esm/src/api/info/_methods/openOrders.d.ts +5 -5
  129. package/esm/src/api/info/_methods/orderStatus.d.ts +8 -8
  130. package/esm/src/api/info/_methods/perpDeployAuctionStatus.d.ts +5 -5
  131. package/esm/src/api/info/_methods/perpDexLimits.d.ts +4 -4
  132. package/esm/src/api/info/_methods/perpDexStatus.d.ts +1 -1
  133. package/esm/src/api/info/_methods/perpDexs.d.ts +6 -2
  134. package/esm/src/api/info/_methods/perpDexs.d.ts.map +1 -1
  135. package/esm/src/api/info/_methods/perpDexs.js +3 -1
  136. package/esm/src/api/info/_methods/perpDexs.js.map +1 -1
  137. package/esm/src/api/info/_methods/portfolio.d.ts +24 -24
  138. package/esm/src/api/info/_methods/preTransferCheck.d.ts +1 -1
  139. package/esm/src/api/info/_methods/predictedFundings.d.ts +3 -3
  140. package/esm/src/api/info/_methods/recentTrades.d.ts +4 -4
  141. package/esm/src/api/info/_methods/referral.d.ts +23 -23
  142. package/esm/src/api/info/_methods/spotClearinghouseState.d.ts +6 -6
  143. package/esm/src/api/info/_methods/spotDeployState.d.ts +15 -15
  144. package/esm/src/api/info/_methods/spotMeta.d.ts +43 -7
  145. package/esm/src/api/info/_methods/spotMeta.d.ts.map +1 -1
  146. package/esm/src/api/info/_methods/spotMeta.js +16 -0
  147. package/esm/src/api/info/_methods/spotMeta.js.map +1 -1
  148. package/esm/src/api/info/_methods/spotMetaAndAssetCtxs.d.ts +52 -14
  149. package/esm/src/api/info/_methods/spotMetaAndAssetCtxs.d.ts.map +1 -1
  150. package/esm/src/api/info/_methods/spotPairDeployAuctionStatus.d.ts +5 -5
  151. package/esm/src/api/info/_methods/subAccounts.d.ts +31 -31
  152. package/esm/src/api/info/_methods/subAccounts2.d.ts +31 -31
  153. package/esm/src/api/info/_methods/tokenDetails.d.ts +12 -12
  154. package/esm/src/api/info/_methods/twapHistory.d.ts +7 -7
  155. package/esm/src/api/info/_methods/txDetails.d.ts +2 -2
  156. package/esm/src/api/info/_methods/userBorrowLendInterest.d.ts +73 -0
  157. package/esm/src/api/info/_methods/userBorrowLendInterest.d.ts.map +1 -0
  158. package/esm/src/api/info/_methods/userBorrowLendInterest.js +72 -0
  159. package/esm/src/api/info/_methods/userBorrowLendInterest.js.map +1 -0
  160. package/esm/src/api/info/_methods/userDetails.d.ts +2 -2
  161. package/esm/src/api/info/_methods/userFees.d.ts +25 -25
  162. package/esm/src/api/info/_methods/userFills.d.ts +10 -10
  163. package/esm/src/api/info/_methods/userFillsByTime.d.ts +12 -12
  164. package/esm/src/api/info/_methods/userFunding.d.ts +9 -9
  165. package/esm/src/api/info/_methods/userFunding.js +2 -2
  166. package/esm/src/api/info/_methods/userFunding.js.map +1 -1
  167. package/esm/src/api/info/_methods/userNonFundingLedgerUpdates.d.ts +93 -36
  168. package/esm/src/api/info/_methods/userNonFundingLedgerUpdates.d.ts.map +1 -1
  169. package/esm/src/api/info/_methods/userNonFundingLedgerUpdates.js +33 -0
  170. package/esm/src/api/info/_methods/userNonFundingLedgerUpdates.js.map +1 -1
  171. package/esm/src/api/info/_methods/userRateLimit.d.ts +4 -4
  172. package/esm/src/api/info/_methods/userToMultiSigSigners.d.ts +1 -1
  173. package/esm/src/api/info/_methods/userTwapSliceFills.d.ts +10 -10
  174. package/esm/src/api/info/_methods/userTwapSliceFillsByTime.d.ts +12 -12
  175. package/esm/src/api/info/_methods/userVaultEquities.d.ts +2 -2
  176. package/esm/src/api/info/_methods/validatorL1Votes.d.ts +1 -1
  177. package/esm/src/api/info/_methods/validatorSummaries.d.ts +9 -9
  178. package/esm/src/api/info/_methods/vaultDetails.d.ts +36 -36
  179. package/esm/src/api/info/_methods/vaultSummaries.d.ts +2 -2
  180. package/esm/src/api/info/_methods/webData2.d.ts +70 -70
  181. package/esm/src/api/info/client.d.ts +16 -0
  182. package/esm/src/api/info/client.d.ts.map +1 -1
  183. package/esm/src/api/info/client.js +20 -0
  184. package/esm/src/api/info/client.js.map +1 -1
  185. package/esm/src/api/info/mod.d.ts +4 -0
  186. package/esm/src/api/info/mod.d.ts.map +1 -1
  187. package/esm/src/api/info/mod.js +4 -0
  188. package/esm/src/api/info/mod.js.map +1 -1
  189. package/esm/src/api/subscription/_methods/activeAssetCtx.d.ts +9 -9
  190. package/esm/src/api/subscription/_methods/activeAssetData.d.ts +6 -6
  191. package/esm/src/api/subscription/_methods/activeSpotAssetCtx.d.ts +7 -7
  192. package/esm/src/api/subscription/_methods/allDexsAssetCtxs.d.ts +9 -9
  193. package/esm/src/api/subscription/_methods/allDexsClearinghouseState.d.ts +25 -25
  194. package/esm/src/api/subscription/_methods/allMids.d.ts +1 -1
  195. package/esm/src/api/subscription/_methods/assetCtxs.d.ts +11 -9
  196. package/esm/src/api/subscription/_methods/assetCtxs.d.ts.map +1 -1
  197. package/esm/src/api/subscription/_methods/assetCtxs.js.map +1 -1
  198. package/esm/src/api/subscription/_methods/bbo.d.ts +7 -7
  199. package/esm/src/api/subscription/_methods/candle.d.ts +8 -8
  200. package/esm/src/api/subscription/_methods/clearinghouseState.d.ts +27 -25
  201. package/esm/src/api/subscription/_methods/clearinghouseState.d.ts.map +1 -1
  202. package/esm/src/api/subscription/_methods/clearinghouseState.js +2 -0
  203. package/esm/src/api/subscription/_methods/clearinghouseState.js.map +1 -1
  204. package/esm/src/api/subscription/_methods/explorerBlock.d.ts +5 -3
  205. package/esm/src/api/subscription/_methods/explorerBlock.d.ts.map +1 -1
  206. package/esm/src/api/subscription/_methods/explorerBlock.js +2 -0
  207. package/esm/src/api/subscription/_methods/explorerBlock.js.map +1 -1
  208. package/esm/src/api/subscription/_methods/explorerTxs.d.ts +4 -2
  209. package/esm/src/api/subscription/_methods/explorerTxs.d.ts.map +1 -1
  210. package/esm/src/api/subscription/_methods/explorerTxs.js +2 -0
  211. package/esm/src/api/subscription/_methods/explorerTxs.js.map +1 -1
  212. package/esm/src/api/subscription/_methods/l2Book.d.ts +9 -9
  213. package/esm/src/api/subscription/_methods/openOrders.d.ts +6 -6
  214. package/esm/src/api/subscription/_methods/orderUpdates.d.ts +6 -6
  215. package/esm/src/api/subscription/_methods/spotAssetCtxs.d.ts +7 -7
  216. package/esm/src/api/subscription/_methods/spotState.d.ts +6 -6
  217. package/esm/src/api/subscription/_methods/trades.d.ts +4 -4
  218. package/esm/src/api/subscription/_methods/twapStates.d.ts +11 -6
  219. package/esm/src/api/subscription/_methods/twapStates.d.ts.map +1 -1
  220. package/esm/src/api/subscription/_methods/twapStates.js +6 -1
  221. package/esm/src/api/subscription/_methods/twapStates.js.map +1 -1
  222. package/esm/src/api/subscription/_methods/userEvents.d.ts +35 -35
  223. package/esm/src/api/subscription/_methods/userFills.d.ts +10 -10
  224. package/esm/src/api/subscription/_methods/userFundings.d.ts +5 -5
  225. package/esm/src/api/subscription/_methods/userHistoricalOrders.d.ts +7 -7
  226. package/esm/src/api/subscription/_methods/userNonFundingLedgerUpdates.d.ts +109 -34
  227. package/esm/src/api/subscription/_methods/userNonFundingLedgerUpdates.d.ts.map +1 -1
  228. package/esm/src/api/subscription/_methods/userTwapHistory.d.ts +7 -7
  229. package/esm/src/api/subscription/_methods/userTwapSliceFills.d.ts +10 -10
  230. package/esm/src/api/subscription/_methods/webData2.d.ts +70 -70
  231. package/esm/src/api/subscription/_methods/webData3.d.ts +4 -4
  232. package/esm/src/signing/mod.js +1 -1
  233. package/esm/src/signing/mod.js.map +1 -1
  234. package/package.json +2 -2
  235. package/script/bin/cli.js +10 -0
  236. package/script/bin/cli.js.map +1 -1
  237. package/script/deps/jsr.io/@std/async/1.1.0/unstable_semaphore.d.ts +94 -0
  238. package/script/deps/jsr.io/@std/async/1.1.0/unstable_semaphore.d.ts.map +1 -0
  239. package/script/deps/jsr.io/@std/async/1.1.0/unstable_semaphore.js +142 -0
  240. package/script/deps/jsr.io/@std/async/1.1.0/unstable_semaphore.js.map +1 -0
  241. package/script/src/api/_schemas.d.ts +4 -4
  242. package/script/src/api/_schemas.d.ts.map +1 -1
  243. package/script/src/api/_schemas.js +8 -4
  244. package/script/src/api/_schemas.js.map +1 -1
  245. package/script/src/api/exchange/_methods/_base/_nonce.d.ts +3 -2
  246. package/script/src/api/exchange/_methods/_base/_nonce.d.ts.map +1 -1
  247. package/script/src/api/exchange/_methods/_base/_nonce.js +4 -3
  248. package/script/src/api/exchange/_methods/_base/_nonce.js.map +1 -1
  249. package/script/src/api/exchange/_methods/_base/_semaphore.d.ts +7 -6
  250. package/script/src/api/exchange/_methods/_base/_semaphore.d.ts.map +1 -1
  251. package/script/src/api/exchange/_methods/_base/_semaphore.js +35 -50
  252. package/script/src/api/exchange/_methods/_base/_semaphore.js.map +1 -1
  253. package/script/src/api/exchange/_methods/_base/execute.js +2 -2
  254. package/script/src/api/exchange/_methods/_base/execute.js.map +1 -1
  255. package/script/src/api/exchange/_methods/agentEnableDexAbstraction.d.ts +2 -2
  256. package/script/src/api/exchange/_methods/approveAgent.d.ts +24 -13
  257. package/script/src/api/exchange/_methods/approveAgent.d.ts.map +1 -1
  258. package/script/src/api/exchange/_methods/approveAgent.js +21 -3
  259. package/script/src/api/exchange/_methods/approveAgent.js.map +1 -1
  260. package/script/src/api/exchange/_methods/approveBuilderFee.d.ts +4 -4
  261. package/script/src/api/exchange/_methods/batchModify.d.ts +29 -29
  262. package/script/src/api/exchange/_methods/borrowLend.d.ts +173 -0
  263. package/script/src/api/exchange/_methods/borrowLend.d.ts.map +1 -0
  264. package/script/src/api/exchange/_methods/borrowLend.js +112 -0
  265. package/script/src/api/exchange/_methods/borrowLend.js.map +1 -0
  266. package/script/src/api/exchange/_methods/cDeposit.d.ts +7 -7
  267. package/script/src/api/exchange/_methods/cSignerAction.d.ts +2 -2
  268. package/script/src/api/exchange/_methods/cValidatorAction.d.ts +11 -11
  269. package/script/src/api/exchange/_methods/cWithdraw.d.ts +7 -7
  270. package/script/src/api/exchange/_methods/cancel.d.ts +8 -8
  271. package/script/src/api/exchange/_methods/cancelByCloid.d.ts +5 -5
  272. package/script/src/api/exchange/_methods/claimRewards.d.ts +2 -2
  273. package/script/src/api/exchange/_methods/convertToMultiSigUser.d.ts +10 -10
  274. package/script/src/api/exchange/_methods/createSubAccount.d.ts +2 -2
  275. package/script/src/api/exchange/_methods/createVault.d.ts +8 -8
  276. package/script/src/api/exchange/_methods/evmUserModify.d.ts +2 -2
  277. package/script/src/api/exchange/_methods/linkStakingUser.d.ts +4 -4
  278. package/script/src/api/exchange/_methods/modify.d.ts +19 -19
  279. package/script/src/api/exchange/_methods/noop.d.ts +2 -2
  280. package/script/src/api/exchange/_methods/order.d.ts +31 -31
  281. package/script/src/api/exchange/_methods/order.d.ts.map +1 -1
  282. package/script/src/api/exchange/_methods/order.js +4 -2
  283. package/script/src/api/exchange/_methods/order.js.map +1 -1
  284. package/script/src/api/exchange/_methods/perpDeploy.d.ts +53 -53
  285. package/script/src/api/exchange/_methods/registerReferrer.d.ts +2 -2
  286. package/script/src/api/exchange/_methods/reserveRequestWeight.d.ts +5 -5
  287. package/script/src/api/exchange/_methods/scheduleCancel.d.ts +5 -5
  288. package/script/src/api/exchange/_methods/sendAsset.d.ts +17 -17
  289. package/script/src/api/exchange/_methods/setDisplayName.d.ts +2 -2
  290. package/script/src/api/exchange/_methods/setReferrer.d.ts +2 -2
  291. package/script/src/api/exchange/_methods/spotDeploy.d.ts +53 -53
  292. package/script/src/api/exchange/_methods/spotSend.d.ts +12 -12
  293. package/script/src/api/exchange/_methods/spotUser.d.ts +2 -2
  294. package/script/src/api/exchange/_methods/subAccountModify.d.ts +2 -2
  295. package/script/src/api/exchange/_methods/subAccountSpotTransfer.d.ts +5 -5
  296. package/script/src/api/exchange/_methods/subAccountTransfer.d.ts +5 -5
  297. package/script/src/api/exchange/_methods/tokenDelegate.d.ts +7 -7
  298. package/script/src/api/exchange/_methods/twapCancel.d.ts +8 -8
  299. package/script/src/api/exchange/_methods/twapOrder.d.ts +12 -12
  300. package/script/src/api/exchange/_methods/updateIsolatedMargin.d.ts +8 -8
  301. package/script/src/api/exchange/_methods/updateLeverage.d.ts +8 -8
  302. package/script/src/api/exchange/_methods/usdClassTransfer.d.ts +7 -7
  303. package/script/src/api/exchange/_methods/usdSend.d.ts +12 -12
  304. package/script/src/api/exchange/_methods/userDexAbstraction.d.ts +4 -4
  305. package/script/src/api/exchange/_methods/userPortfolioMargin.d.ts +193 -0
  306. package/script/src/api/exchange/_methods/userPortfolioMargin.d.ts.map +1 -0
  307. package/script/src/api/exchange/_methods/userPortfolioMargin.js +129 -0
  308. package/script/src/api/exchange/_methods/userPortfolioMargin.js.map +1 -0
  309. package/script/src/api/exchange/_methods/validatorL1Stream.d.ts +5 -5
  310. package/script/src/api/exchange/_methods/vaultDistribute.d.ts +5 -5
  311. package/script/src/api/exchange/_methods/vaultModify.d.ts +2 -2
  312. package/script/src/api/exchange/_methods/vaultTransfer.d.ts +5 -5
  313. package/script/src/api/exchange/_methods/withdraw3.d.ts +12 -12
  314. package/script/src/api/exchange/client.d.ts +8 -0
  315. package/script/src/api/exchange/client.d.ts.map +1 -1
  316. package/script/src/api/exchange/client.js +10 -0
  317. package/script/src/api/exchange/client.js.map +1 -1
  318. package/script/src/api/exchange/mod.d.ts +2 -0
  319. package/script/src/api/exchange/mod.d.ts.map +1 -1
  320. package/script/src/api/exchange/mod.js +2 -0
  321. package/script/src/api/exchange/mod.js.map +1 -1
  322. package/script/src/api/info/_methods/_base/commonSchemas.d.ts +43 -43
  323. package/script/src/api/info/_methods/activeAssetData.d.ts +6 -6
  324. package/script/src/api/info/_methods/activeAssetData.js +1 -1
  325. package/script/src/api/info/_methods/activeAssetData.js.map +1 -1
  326. package/script/src/api/info/_methods/alignedQuoteTokenInfo.d.ts +5 -5
  327. package/script/src/api/info/_methods/allBorrowLendReserveStates.d.ts +71 -0
  328. package/script/src/api/info/_methods/allBorrowLendReserveStates.d.ts.map +1 -0
  329. package/script/src/api/info/_methods/allBorrowLendReserveStates.js +93 -0
  330. package/script/src/api/info/_methods/allBorrowLendReserveStates.js.map +1 -0
  331. package/script/src/api/info/_methods/allMids.d.ts +1 -1
  332. package/script/src/api/info/_methods/allPerpMetas.d.ts +7 -7
  333. package/script/src/api/info/_methods/blockDetails.d.ts +6 -6
  334. package/script/src/api/info/_methods/borrowLendReserveState.d.ts +79 -0
  335. package/script/src/api/info/_methods/borrowLendReserveState.d.ts.map +1 -0
  336. package/script/src/api/info/_methods/borrowLendReserveState.js +113 -0
  337. package/script/src/api/info/_methods/borrowLendReserveState.js.map +1 -0
  338. package/script/src/api/info/_methods/borrowLendUserState.d.ts +103 -0
  339. package/script/src/api/info/_methods/borrowLendUserState.d.ts.map +1 -0
  340. package/script/src/api/info/_methods/borrowLendUserState.js +122 -0
  341. package/script/src/api/info/_methods/borrowLendUserState.js.map +1 -0
  342. package/script/src/api/info/_methods/candleSnapshot.d.ts +10 -10
  343. package/script/src/api/info/_methods/clearinghouseState.d.ts +25 -25
  344. package/script/src/api/info/_methods/clearinghouseState.js +3 -3
  345. package/script/src/api/info/_methods/clearinghouseState.js.map +1 -1
  346. package/script/src/api/info/_methods/delegations.d.ts +2 -2
  347. package/script/src/api/info/_methods/delegatorHistory.d.ts +4 -4
  348. package/script/src/api/info/_methods/delegatorRewards.d.ts +2 -2
  349. package/script/src/api/info/_methods/delegatorSummary.d.ts +4 -4
  350. package/script/src/api/info/_methods/exchangeStatus.d.ts +1 -1
  351. package/script/src/api/info/_methods/extraAgents.d.ts +1 -1
  352. package/script/src/api/info/_methods/frontendOpenOrders.d.ts +6 -6
  353. package/script/src/api/info/_methods/fundingHistory.d.ts +5 -5
  354. package/script/src/api/info/_methods/historicalOrders.d.ts +7 -7
  355. package/script/src/api/info/_methods/l2Book.d.ts +7 -7
  356. package/script/src/api/info/_methods/marginTable.d.ts +3 -3
  357. package/script/src/api/info/_methods/maxMarketOrderNtls.d.ts +1 -1
  358. package/script/src/api/info/_methods/maxMarketOrderNtls.d.ts.map +1 -1
  359. package/script/src/api/info/_methods/meta.d.ts +7 -7
  360. package/script/src/api/info/_methods/metaAndAssetCtxs.d.ts +16 -16
  361. package/script/src/api/info/_methods/openOrders.d.ts +5 -5
  362. package/script/src/api/info/_methods/orderStatus.d.ts +8 -8
  363. package/script/src/api/info/_methods/perpDeployAuctionStatus.d.ts +5 -5
  364. package/script/src/api/info/_methods/perpDexLimits.d.ts +4 -4
  365. package/script/src/api/info/_methods/perpDexStatus.d.ts +1 -1
  366. package/script/src/api/info/_methods/perpDexs.d.ts +6 -2
  367. package/script/src/api/info/_methods/perpDexs.d.ts.map +1 -1
  368. package/script/src/api/info/_methods/perpDexs.js +3 -1
  369. package/script/src/api/info/_methods/perpDexs.js.map +1 -1
  370. package/script/src/api/info/_methods/portfolio.d.ts +24 -24
  371. package/script/src/api/info/_methods/preTransferCheck.d.ts +1 -1
  372. package/script/src/api/info/_methods/predictedFundings.d.ts +3 -3
  373. package/script/src/api/info/_methods/recentTrades.d.ts +4 -4
  374. package/script/src/api/info/_methods/referral.d.ts +23 -23
  375. package/script/src/api/info/_methods/spotClearinghouseState.d.ts +6 -6
  376. package/script/src/api/info/_methods/spotDeployState.d.ts +15 -15
  377. package/script/src/api/info/_methods/spotMeta.d.ts +43 -7
  378. package/script/src/api/info/_methods/spotMeta.d.ts.map +1 -1
  379. package/script/src/api/info/_methods/spotMeta.js +16 -0
  380. package/script/src/api/info/_methods/spotMeta.js.map +1 -1
  381. package/script/src/api/info/_methods/spotMetaAndAssetCtxs.d.ts +52 -14
  382. package/script/src/api/info/_methods/spotMetaAndAssetCtxs.d.ts.map +1 -1
  383. package/script/src/api/info/_methods/spotPairDeployAuctionStatus.d.ts +5 -5
  384. package/script/src/api/info/_methods/subAccounts.d.ts +31 -31
  385. package/script/src/api/info/_methods/subAccounts2.d.ts +31 -31
  386. package/script/src/api/info/_methods/tokenDetails.d.ts +12 -12
  387. package/script/src/api/info/_methods/twapHistory.d.ts +7 -7
  388. package/script/src/api/info/_methods/txDetails.d.ts +2 -2
  389. package/script/src/api/info/_methods/userBorrowLendInterest.d.ts +73 -0
  390. package/script/src/api/info/_methods/userBorrowLendInterest.d.ts.map +1 -0
  391. package/script/src/api/info/_methods/userBorrowLendInterest.js +109 -0
  392. package/script/src/api/info/_methods/userBorrowLendInterest.js.map +1 -0
  393. package/script/src/api/info/_methods/userDetails.d.ts +2 -2
  394. package/script/src/api/info/_methods/userFees.d.ts +25 -25
  395. package/script/src/api/info/_methods/userFills.d.ts +10 -10
  396. package/script/src/api/info/_methods/userFillsByTime.d.ts +12 -12
  397. package/script/src/api/info/_methods/userFunding.d.ts +9 -9
  398. package/script/src/api/info/_methods/userFunding.js +2 -2
  399. package/script/src/api/info/_methods/userFunding.js.map +1 -1
  400. package/script/src/api/info/_methods/userNonFundingLedgerUpdates.d.ts +93 -36
  401. package/script/src/api/info/_methods/userNonFundingLedgerUpdates.d.ts.map +1 -1
  402. package/script/src/api/info/_methods/userNonFundingLedgerUpdates.js +33 -0
  403. package/script/src/api/info/_methods/userNonFundingLedgerUpdates.js.map +1 -1
  404. package/script/src/api/info/_methods/userRateLimit.d.ts +4 -4
  405. package/script/src/api/info/_methods/userToMultiSigSigners.d.ts +1 -1
  406. package/script/src/api/info/_methods/userTwapSliceFills.d.ts +10 -10
  407. package/script/src/api/info/_methods/userTwapSliceFillsByTime.d.ts +12 -12
  408. package/script/src/api/info/_methods/userVaultEquities.d.ts +2 -2
  409. package/script/src/api/info/_methods/validatorL1Votes.d.ts +1 -1
  410. package/script/src/api/info/_methods/validatorSummaries.d.ts +9 -9
  411. package/script/src/api/info/_methods/vaultDetails.d.ts +36 -36
  412. package/script/src/api/info/_methods/vaultSummaries.d.ts +2 -2
  413. package/script/src/api/info/_methods/webData2.d.ts +70 -70
  414. package/script/src/api/info/client.d.ts +16 -0
  415. package/script/src/api/info/client.d.ts.map +1 -1
  416. package/script/src/api/info/client.js +20 -0
  417. package/script/src/api/info/client.js.map +1 -1
  418. package/script/src/api/info/mod.d.ts +4 -0
  419. package/script/src/api/info/mod.d.ts.map +1 -1
  420. package/script/src/api/info/mod.js +4 -0
  421. package/script/src/api/info/mod.js.map +1 -1
  422. package/script/src/api/subscription/_methods/activeAssetCtx.d.ts +9 -9
  423. package/script/src/api/subscription/_methods/activeAssetData.d.ts +6 -6
  424. package/script/src/api/subscription/_methods/activeSpotAssetCtx.d.ts +7 -7
  425. package/script/src/api/subscription/_methods/allDexsAssetCtxs.d.ts +9 -9
  426. package/script/src/api/subscription/_methods/allDexsClearinghouseState.d.ts +25 -25
  427. package/script/src/api/subscription/_methods/allMids.d.ts +1 -1
  428. package/script/src/api/subscription/_methods/assetCtxs.d.ts +11 -9
  429. package/script/src/api/subscription/_methods/assetCtxs.d.ts.map +1 -1
  430. package/script/src/api/subscription/_methods/assetCtxs.js.map +1 -1
  431. package/script/src/api/subscription/_methods/bbo.d.ts +7 -7
  432. package/script/src/api/subscription/_methods/candle.d.ts +8 -8
  433. package/script/src/api/subscription/_methods/clearinghouseState.d.ts +27 -25
  434. package/script/src/api/subscription/_methods/clearinghouseState.d.ts.map +1 -1
  435. package/script/src/api/subscription/_methods/clearinghouseState.js +2 -0
  436. package/script/src/api/subscription/_methods/clearinghouseState.js.map +1 -1
  437. package/script/src/api/subscription/_methods/explorerBlock.d.ts +5 -3
  438. package/script/src/api/subscription/_methods/explorerBlock.d.ts.map +1 -1
  439. package/script/src/api/subscription/_methods/explorerBlock.js +2 -0
  440. package/script/src/api/subscription/_methods/explorerBlock.js.map +1 -1
  441. package/script/src/api/subscription/_methods/explorerTxs.d.ts +4 -2
  442. package/script/src/api/subscription/_methods/explorerTxs.d.ts.map +1 -1
  443. package/script/src/api/subscription/_methods/explorerTxs.js +2 -0
  444. package/script/src/api/subscription/_methods/explorerTxs.js.map +1 -1
  445. package/script/src/api/subscription/_methods/l2Book.d.ts +9 -9
  446. package/script/src/api/subscription/_methods/openOrders.d.ts +6 -6
  447. package/script/src/api/subscription/_methods/orderUpdates.d.ts +6 -6
  448. package/script/src/api/subscription/_methods/spotAssetCtxs.d.ts +7 -7
  449. package/script/src/api/subscription/_methods/spotState.d.ts +6 -6
  450. package/script/src/api/subscription/_methods/trades.d.ts +4 -4
  451. package/script/src/api/subscription/_methods/twapStates.d.ts +11 -6
  452. package/script/src/api/subscription/_methods/twapStates.d.ts.map +1 -1
  453. package/script/src/api/subscription/_methods/twapStates.js +6 -1
  454. package/script/src/api/subscription/_methods/twapStates.js.map +1 -1
  455. package/script/src/api/subscription/_methods/userEvents.d.ts +35 -35
  456. package/script/src/api/subscription/_methods/userFills.d.ts +10 -10
  457. package/script/src/api/subscription/_methods/userFundings.d.ts +5 -5
  458. package/script/src/api/subscription/_methods/userHistoricalOrders.d.ts +7 -7
  459. package/script/src/api/subscription/_methods/userNonFundingLedgerUpdates.d.ts +109 -34
  460. package/script/src/api/subscription/_methods/userNonFundingLedgerUpdates.d.ts.map +1 -1
  461. package/script/src/api/subscription/_methods/userTwapHistory.d.ts +7 -7
  462. package/script/src/api/subscription/_methods/userTwapSliceFills.d.ts +10 -10
  463. package/script/src/api/subscription/_methods/webData2.d.ts +70 -70
  464. package/script/src/api/subscription/_methods/webData3.d.ts +4 -4
  465. package/script/src/signing/mod.js +2 -2
  466. package/script/src/signing/mod.js.map +1 -1
  467. package/src/bin/cli.ts +10 -0
  468. package/src/deps/jsr.io/@std/async/1.1.0/unstable_semaphore.ts +147 -0
  469. package/src/src/api/_schemas.ts +4 -0
  470. package/src/src/api/exchange/_methods/_base/_nonce.ts +3 -2
  471. package/src/src/api/exchange/_methods/_base/_semaphore.ts +34 -59
  472. package/src/src/api/exchange/_methods/_base/execute.ts +3 -3
  473. package/src/src/api/exchange/_methods/approveAgent.ts +25 -5
  474. package/src/src/api/exchange/_methods/borrowLend.ts +133 -0
  475. package/src/src/api/exchange/_methods/order.ts +5 -3
  476. package/src/src/api/exchange/_methods/userPortfolioMargin.ts +156 -0
  477. package/src/src/api/exchange/client.ts +34 -0
  478. package/src/src/api/exchange/mod.ts +2 -0
  479. package/src/src/api/info/_methods/activeAssetData.ts +2 -2
  480. package/src/src/api/info/_methods/allBorrowLendReserveStates.ts +82 -0
  481. package/src/src/api/info/_methods/borrowLendReserveState.ts +131 -0
  482. package/src/src/api/info/_methods/borrowLendUserState.ts +144 -0
  483. package/src/src/api/info/_methods/clearinghouseState.ts +3 -3
  484. package/src/src/api/info/_methods/perpDexs.ts +6 -1
  485. package/src/src/api/info/_methods/spotMeta.ts +41 -0
  486. package/src/src/api/info/_methods/userBorrowLendInterest.ts +122 -0
  487. package/src/src/api/info/_methods/userFunding.ts +2 -2
  488. package/src/src/api/info/_methods/userNonFundingLedgerUpdates.ts +69 -0
  489. package/src/src/api/info/client.ts +60 -0
  490. package/src/src/api/info/mod.ts +4 -0
  491. package/src/src/api/subscription/_methods/assetCtxs.ts +2 -0
  492. package/src/src/api/subscription/_methods/clearinghouseState.ts +2 -0
  493. package/src/src/api/subscription/_methods/explorerBlock.ts +2 -0
  494. package/src/src/api/subscription/_methods/explorerTxs.ts +2 -0
  495. package/src/src/api/subscription/_methods/twapStates.ts +9 -1
  496. package/src/src/signing/mod.ts +1 -1
  497. package/esm/deps/jsr.io/@std/msgpack/1.0.3/decode.d.ts +0 -21
  498. package/esm/deps/jsr.io/@std/msgpack/1.0.3/decode.d.ts.map +0 -1
  499. package/esm/deps/jsr.io/@std/msgpack/1.0.3/decode.js +0 -292
  500. package/esm/deps/jsr.io/@std/msgpack/1.0.3/decode.js.map +0 -1
  501. package/esm/deps/jsr.io/@std/msgpack/1.0.3/mod.d.ts +0 -44
  502. package/esm/deps/jsr.io/@std/msgpack/1.0.3/mod.d.ts.map +0 -1
  503. package/esm/deps/jsr.io/@std/msgpack/1.0.3/mod.js +0 -46
  504. package/esm/deps/jsr.io/@std/msgpack/1.0.3/mod.js.map +0 -1
  505. package/script/deps/jsr.io/@std/msgpack/1.0.3/decode.d.ts +0 -21
  506. package/script/deps/jsr.io/@std/msgpack/1.0.3/decode.d.ts.map +0 -1
  507. package/script/deps/jsr.io/@std/msgpack/1.0.3/decode.js +0 -295
  508. package/script/deps/jsr.io/@std/msgpack/1.0.3/decode.js.map +0 -1
  509. package/script/deps/jsr.io/@std/msgpack/1.0.3/mod.d.ts +0 -44
  510. package/script/deps/jsr.io/@std/msgpack/1.0.3/mod.d.ts.map +0 -1
  511. package/script/deps/jsr.io/@std/msgpack/1.0.3/mod.js +0 -62
  512. package/script/deps/jsr.io/@std/msgpack/1.0.3/mod.js.map +0 -1
  513. package/src/deps/jsr.io/@std/msgpack/1.0.3/decode.ts +0 -391
  514. package/src/deps/jsr.io/@std/msgpack/1.0.3/mod.ts +0 -47
@@ -0,0 +1,147 @@
1
+ // Copyright 2018-2026 the Deno authors. MIT license.
2
+ // This module is browser compatible.
3
+
4
+ /** Internal node for the FIFO waiting queue. */
5
+ interface Node {
6
+ res: () => void;
7
+ next: Node | undefined;
8
+ }
9
+
10
+ /**
11
+ * A counting semaphore for limiting concurrent access to a resource.
12
+ *
13
+ * @experimental **UNSTABLE**: New API, yet to be vetted.
14
+ *
15
+ * @example Usage
16
+ * ```ts
17
+ * import { Semaphore } from "@std/async/unstable-semaphore";
18
+ *
19
+ * const sem = new Semaphore(2);
20
+ * {
21
+ * using _permit = await sem.acquire();
22
+ * // critical section
23
+ * } // permit is automatically released when exiting the block
24
+ * ```
25
+ */
26
+ export class Semaphore {
27
+ #max: number;
28
+ /** Current number of available permits. */
29
+ #count: number;
30
+ /** Head of the waiting queue. */
31
+ #head: Node | undefined;
32
+ /** Tail of the waiting queue. */
33
+ #tail: Node | undefined;
34
+
35
+ /**
36
+ * Creates a new semaphore with the specified number of permits.
37
+ *
38
+ * @param max Maximum concurrent permits. Defaults to 1 (mutex).
39
+ * @throws {TypeError} If `max` is not a positive integer.
40
+ */
41
+ constructor(max: number = 1) {
42
+ if (!Number.isInteger(max) || max < 1) {
43
+ throw new TypeError(
44
+ `Cannot create semaphore as 'max' must be a positive integer: received ${max}`,
45
+ );
46
+ }
47
+ this.#count = this.#max = max;
48
+ }
49
+
50
+ /**
51
+ * Acquires a permit, waiting if none are available.
52
+ *
53
+ * @example Usage
54
+ * ```ts no-assert
55
+ * import { Semaphore } from "@std/async/unstable-semaphore";
56
+ *
57
+ * const sem = new Semaphore(1);
58
+ * await sem.acquire();
59
+ * try {
60
+ * // critical section
61
+ * } finally {
62
+ * sem.release();
63
+ * }
64
+ * ```
65
+ *
66
+ * @example Using `using` statement
67
+ * ```ts no-assert
68
+ * import { Semaphore } from "@std/async/unstable-semaphore";
69
+ *
70
+ * const sem = new Semaphore(1);
71
+ * {
72
+ * using _permit = await sem.acquire();
73
+ * // critical section
74
+ * } // permit is automatically released when exiting the block
75
+ * ```
76
+ *
77
+ * @returns A promise that resolves to a {@linkcode Disposable} when a permit is acquired.
78
+ */
79
+ acquire(): Promise<Disposable> {
80
+ const disposable: Disposable = { [Symbol.dispose]: () => this.release() };
81
+ if (this.#count > 0) {
82
+ this.#count--;
83
+ return Promise.resolve(disposable);
84
+ }
85
+ return new Promise((res) => {
86
+ const node: Node = { res: () => res(disposable), next: undefined };
87
+ if (this.#tail) {
88
+ this.#tail = this.#tail.next = node;
89
+ } else {
90
+ this.#head = this.#tail = node;
91
+ }
92
+ });
93
+ }
94
+
95
+ /**
96
+ * Tries to acquire a permit without waiting.
97
+ *
98
+ * @example Usage
99
+ * ```ts no-assert
100
+ * import { Semaphore } from "@std/async/unstable-semaphore";
101
+ *
102
+ * const sem = new Semaphore(1);
103
+ * const permit = sem.tryAcquire();
104
+ * if (permit) {
105
+ * using _ = permit;
106
+ * // critical section
107
+ * } else {
108
+ * // resource is busy
109
+ * }
110
+ * ```
111
+ *
112
+ * @returns A {@linkcode Disposable} if a permit was acquired, `undefined` otherwise.
113
+ */
114
+ tryAcquire(): Disposable | undefined {
115
+ if (this.#count > 0) {
116
+ this.#count--;
117
+ return { [Symbol.dispose]: () => this.release() };
118
+ }
119
+ return undefined;
120
+ }
121
+
122
+ /**
123
+ * Releases a permit, allowing the next waiter to proceed.
124
+ *
125
+ * @example Usage
126
+ * ```ts no-assert
127
+ * import { Semaphore } from "@std/async/unstable-semaphore";
128
+ *
129
+ * const sem = new Semaphore(1);
130
+ * await sem.acquire();
131
+ * try {
132
+ * // critical section
133
+ * } finally {
134
+ * sem.release();
135
+ * }
136
+ * ```
137
+ */
138
+ release(): void {
139
+ if (this.#head) {
140
+ this.#head.res();
141
+ this.#head = this.#head.next;
142
+ if (!this.#head) this.#tail = undefined;
143
+ } else if (this.#count < this.#max) {
144
+ this.#count++;
145
+ }
146
+ }
147
+ }
@@ -10,6 +10,7 @@ export const UnsignedDecimal = /* @__PURE__ */ (() => {
10
10
  return v.pipe(
11
11
  v.union([v.string(), v.number()]),
12
12
  v.toString(),
13
+ v.string(), // HACK: for correct JSONSchema generation
13
14
  v.transform((value) => formatDecimalString(value)),
14
15
  v.regex(/^[0-9]+(\.[0-9]+)?$/),
15
16
  );
@@ -20,6 +21,7 @@ export const Decimal = /* @__PURE__ */ (() => {
20
21
  return v.pipe(
21
22
  v.union([v.string(), v.number()]),
22
23
  v.toString(),
24
+ v.string(), // HACK: for correct JSONSchema generation
23
25
  v.transform((value) => formatDecimalString(value)),
24
26
  v.regex(/^-?[0-9]+(\.[0-9]+)?$/),
25
27
  );
@@ -30,6 +32,7 @@ export const Integer = /* @__PURE__ */ (() => {
30
32
  return v.pipe(
31
33
  v.union([v.string(), v.number()]),
32
34
  v.toNumber(),
35
+ v.number(), // HACK: for correct JSONSchema generation
33
36
  v.safeInteger(),
34
37
  );
35
38
  })();
@@ -39,6 +42,7 @@ export const UnsignedInteger = /* @__PURE__ */ (() => {
39
42
  return v.pipe(
40
43
  v.union([v.string(), v.number()]),
41
44
  v.toNumber(),
45
+ v.number(), // HACK: for correct JSONSchema generation
42
46
  v.safeInteger(),
43
47
  v.minValue(0),
44
48
  );
@@ -1,5 +1,6 @@
1
1
  /**
2
2
  * Nonce manager for generating unique nonces per wallet address and network.
3
+ *
3
4
  * Uses lazy cleanup: removes entries when Date.now() > lastNonce.
4
5
  */
5
6
  class NonceManager {
@@ -24,5 +25,5 @@ class NonceManager {
24
25
  }
25
26
  }
26
27
 
27
- /** Default nonce manager, used when custom nonceManager is not provided in config. */
28
- export const defaultNonceManager = /* @__PURE__ */ new NonceManager();
28
+ /** Global nonce manager instance. */
29
+ export const globalNonceManager = /* @__PURE__ */ new NonceManager();
@@ -1,67 +1,32 @@
1
- // ============================================================
2
- // Semaphore
3
- // ============================================================
4
-
5
- // TODO: Replace with @std/async/semaphore if the PR (https://github.com/denoland/std/pull/6894) will be merged
6
-
7
- interface Node {
8
- res: () => void;
9
- next: Node | undefined;
10
- }
11
-
12
- export class Semaphore {
13
- #max: number;
14
- #count: number;
15
- #head: Node | undefined;
16
- #tail: Node | undefined;
17
-
18
- constructor(max: number = 1) {
19
- if (max < 1) {
20
- throw new TypeError(
21
- `Cannot create semaphore as 'max' must be at least 1: current value is ${max}`,
22
- );
23
- }
24
- this.#count = this.#max = max;
25
- }
26
-
27
- acquire(): Promise<void> {
28
- if (this.#count > 0) {
29
- this.#count--;
30
- return Promise.resolve();
31
- }
32
- return new Promise((res) => {
33
- const node: Node = { res, next: undefined };
34
- if (this.#tail) {
35
- this.#tail = this.#tail.next = node;
36
- } else {
37
- this.#head = this.#tail = node;
38
- }
39
- });
40
- }
41
-
42
- release(): void {
43
- if (this.#head) {
44
- this.#head.res();
45
- this.#head = this.#head.next;
46
- if (!this.#head) this.#tail = undefined;
47
- } else if (this.#count < this.#max) {
48
- this.#count++;
49
- }
50
- }
51
- }
52
-
53
- // ============================================================
54
- // RefCounted Registry
55
- // ============================================================
1
+ import { Semaphore } from "../../../../../deps/jsr.io/@std/async/1.1.0/unstable_semaphore.js";
56
2
 
3
+ /**
4
+ * A reference-counted registry for lazily creating and reusing per-key values.
5
+ *
6
+ * @template K - Map key type.
7
+ * @template V - Stored value type.
8
+ */
57
9
  class RefCountedRegistry<K, V> {
58
10
  #map = new Map<K, { value: V; refs: number }>();
59
11
  #factory: () => V;
60
12
 
13
+ /**
14
+ * Creates a new registry instance.
15
+ *
16
+ * @param factory - Factory function used to create a new value when a key is first referenced.
17
+ */
61
18
  constructor(factory: () => V) {
62
19
  this.#factory = factory;
63
20
  }
64
21
 
22
+ /**
23
+ * Increments the reference count for a key and returns its value.
24
+ *
25
+ * If the key is not present, a new value is created via the factory.
26
+ *
27
+ * @param key - Registry key.
28
+ * @returns The value associated with the key.
29
+ */
65
30
  ref(key: K): V {
66
31
  let entry = this.#map.get(key);
67
32
  if (!entry) {
@@ -72,6 +37,13 @@ class RefCountedRegistry<K, V> {
72
37
  return entry.value;
73
38
  }
74
39
 
40
+ /**
41
+ * Decrements the reference count for a key.
42
+ *
43
+ * When the count reaches zero, the entry is removed.
44
+ *
45
+ * @param key - Registry key.
46
+ */
75
47
  unref(key: K): void {
76
48
  const entry = this.#map.get(key);
77
49
  if (!entry) return;
@@ -81,12 +53,15 @@ class RefCountedRegistry<K, V> {
81
53
  }
82
54
  }
83
55
 
84
- // ============================================================
85
- // Helper
86
- // ============================================================
87
-
88
56
  const semaphores = new RefCountedRegistry(() => new Semaphore(1));
89
57
 
58
+ /**
59
+ * Acquires a lock for the given key, executes the provided async function, and releases the lock.
60
+ *
61
+ * @param key The key to lock on.
62
+ * @param fn The async function to execute while holding the lock.
63
+ * @returns The result of the async function.
64
+ */
90
65
  export async function withLock<K, T>(key: K, fn: () => Promise<T>): Promise<T> {
91
66
  const semaphore = semaphores.ref(key);
92
67
  await semaphore.acquire();
@@ -10,7 +10,7 @@ import {
10
10
  signUserSignedAction,
11
11
  } from "../../../../signing/mod.js";
12
12
  import { assertSuccessResponse } from "./errors.js";
13
- import { defaultNonceManager } from "./_nonce.js";
13
+ import { globalNonceManager } from "./_nonce.js";
14
14
  import { withLock } from "./_semaphore.js";
15
15
  import type { SignatureSchema } from "./commonSchemas.js";
16
16
 
@@ -108,7 +108,7 @@ export async function executeL1Action<T>(
108
108
  // Semaphore ensures requests arrive at server in nonce order (prevents out-of-order delivery)
109
109
  const key = `${walletAddress}:${transport.isTestnet}`;
110
110
  return await withLock(key, async () => {
111
- const nonce = await (config.nonceManager?.(walletAddress) ?? defaultNonceManager.getNonce(key));
111
+ const nonce = await (config.nonceManager?.(walletAddress) ?? globalNonceManager.getNonce(key));
112
112
 
113
113
  // Validate and resolve options
114
114
  const vaultAddress = v.parse(
@@ -186,7 +186,7 @@ export async function executeUserSignedAction<T>(
186
186
  // Semaphore ensures requests arrive at server in nonce order (prevents out-of-order delivery)
187
187
  const key = `${walletAddress}:${transport.isTestnet}`;
188
188
  return withLock(key, async () => {
189
- const nonce = await (config.nonceManager?.(walletAddress) ?? defaultNonceManager.getNonce(key));
189
+ const nonce = await (config.nonceManager?.(walletAddress) ?? globalNonceManager.getNonce(key));
190
190
  const signal = options?.signal;
191
191
 
192
192
  // Add system fields for user-signed actions
@@ -37,17 +37,26 @@ export const ApproveAgentRequest = /* @__PURE__ */ (() => {
37
37
  Address,
38
38
  v.description("Agent address."),
39
39
  ),
40
- /** Agent name or null for unnamed agent. */
40
+ /** Agent name (min 1 and max 16 characters) or null for unnamed agent. */
41
41
  agentName: v.pipe(
42
42
  v.nullish(
43
43
  v.pipe(
44
44
  v.string(),
45
- v.minLength(1),
46
- v.maxLength(17),
45
+ v.check(
46
+ (input) => {
47
+ // Ignore trailing ` valid_until <timestamp>` when checking length
48
+ const baseName = input.replace(/ valid_until \d+$/, "");
49
+ return baseName.length >= 1 && baseName.length <= 16;
50
+ },
51
+ (issue) => {
52
+ const baseName = issue.input.replace(/ valid_until \d+$/, "");
53
+ return `Invalid length: Expected >= 1 and <= 16 but received ${baseName.length}`;
54
+ },
55
+ ),
47
56
  ),
48
57
  null,
49
58
  ),
50
- v.description("Agent name or null for unnamed agent."),
59
+ v.description("Agent name (min 1 and max 16 characters) or null for unnamed agent."),
51
60
  ),
52
61
  /** Nonce (timestamp in ms) used to prevent replay attacks. */
53
62
  nonce: v.pipe(
@@ -140,9 +149,20 @@ export const ApproveAgentTypes = {
140
149
  * const wallet = privateKeyToAccount("0x..."); // viem or ethers
141
150
  * const transport = new HttpTransport(); // or `WebSocketTransport`
142
151
  *
152
+ * // Basic usage
143
153
  * await approveAgent(
144
154
  * { transport, wallet },
145
- * { agentAddress: "0x...", agentName: "..." },
155
+ * { agentAddress: "0x...", agentName: "myAgent" },
156
+ * );
157
+ *
158
+ * // With expiration timestamp
159
+ * const expirationTimestamp = Date.now() + 24 * 60 * 60 * 1000;
160
+ * await approveAgent(
161
+ * { transport, wallet },
162
+ * {
163
+ * agentAddress: "0x...",
164
+ * agentName: `myAgent valid_until ${expirationTimestamp}`,
165
+ * },
146
166
  * );
147
167
  * ```
148
168
  *
@@ -0,0 +1,133 @@
1
+ import * as v from "valibot";
2
+
3
+ // ============================================================
4
+ // API Schemas
5
+ // ============================================================
6
+
7
+ import { Address, UnsignedDecimal, UnsignedInteger } from "../../_schemas.js";
8
+ import { ErrorResponse, SignatureSchema, SuccessResponse } from "./_base/commonSchemas.js";
9
+
10
+ /** Borrow or lend assets. */
11
+ export const BorrowLendRequest = /* @__PURE__ */ (() => {
12
+ return v.pipe(
13
+ v.object({
14
+ /** Action to perform. */
15
+ action: v.pipe(
16
+ v.object({
17
+ /** Type of action. */
18
+ type: v.pipe(
19
+ v.literal("borrowLend"),
20
+ v.description("Type of action."),
21
+ ),
22
+ /** Operation type. */
23
+ operation: v.pipe(
24
+ v.picklist(["supply", "withdraw", "repay", "borrow"]),
25
+ v.description("Operation type."),
26
+ ),
27
+ /** Token ID. */
28
+ token: v.pipe(
29
+ UnsignedInteger,
30
+ v.description("Token ID."),
31
+ ),
32
+ /** Amount to supply/withdraw (null = full). */
33
+ amount: v.pipe(
34
+ v.nullable(UnsignedDecimal),
35
+ v.description("Amount to supply/withdraw (null = full)."),
36
+ ),
37
+ }),
38
+ v.description("Action to perform."),
39
+ ),
40
+ /** Nonce (timestamp in ms) used to prevent replay attacks. */
41
+ nonce: v.pipe(
42
+ UnsignedInteger,
43
+ v.description("Nonce (timestamp in ms) used to prevent replay attacks."),
44
+ ),
45
+ /** ECDSA signature components. */
46
+ signature: v.pipe(
47
+ SignatureSchema,
48
+ v.description("ECDSA signature components."),
49
+ ),
50
+ /** Vault address (for vault trading). */
51
+ vaultAddress: v.pipe(
52
+ v.optional(Address),
53
+ v.description("Vault address (for vault trading)."),
54
+ ),
55
+ /** Expiration time of the action. */
56
+ expiresAfter: v.pipe(
57
+ v.optional(UnsignedInteger),
58
+ v.description("Expiration time of the action."),
59
+ ),
60
+ }),
61
+ v.description("Borrow or lend assets."),
62
+ );
63
+ })();
64
+ export type BorrowLendRequest = v.InferOutput<typeof BorrowLendRequest>;
65
+
66
+ /** Successful response without specific data or error response. */
67
+ export const BorrowLendResponse = /* @__PURE__ */ (() => {
68
+ return v.pipe(
69
+ v.union([SuccessResponse, ErrorResponse]),
70
+ v.description("Successful response without specific data or error response."),
71
+ );
72
+ })();
73
+ export type BorrowLendResponse = v.InferOutput<typeof BorrowLendResponse>;
74
+
75
+ // ============================================================
76
+ // Execution Logic
77
+ // ============================================================
78
+
79
+ import { type ExchangeConfig, executeL1Action, type ExtractRequestOptions } from "./_base/execute.js";
80
+ import type { ExcludeErrorResponse } from "./_base/errors.js";
81
+
82
+ /** Schema for user-provided action parameters (excludes system fields). */
83
+ const BorrowLendParameters = /* @__PURE__ */ (() => {
84
+ return v.omit(
85
+ v.object(BorrowLendRequest.entries.action.entries),
86
+ ["type"],
87
+ );
88
+ })();
89
+ /** Action parameters for the {@linkcode borrowLend} function. */
90
+ export type BorrowLendParameters = v.InferInput<typeof BorrowLendParameters>;
91
+
92
+ /** Request options for the {@linkcode borrowLend} function. */
93
+ export type BorrowLendOptions = ExtractRequestOptions<v.InferInput<typeof BorrowLendRequest>>;
94
+
95
+ /** Successful variant of {@linkcode BorrowLendResponse} without errors. */
96
+ export type BorrowLendSuccessResponse = ExcludeErrorResponse<BorrowLendResponse>;
97
+
98
+ /**
99
+ * Borrow or lend assets.
100
+ *
101
+ * @param config - General configuration for Exchange API requests.
102
+ * @param params - Parameters specific to the API request.
103
+ * @param opts - Request execution options.
104
+ *
105
+ * @returns Successful response without specific data.
106
+ *
107
+ * @throws {ValiError} When the request parameters fail validation (before sending).
108
+ * @throws {TransportError} When the transport layer throws an error.
109
+ * @throws {ApiRequestError} When the API returns an unsuccessful response.
110
+ *
111
+ * @example
112
+ * ```ts
113
+ * import { HttpTransport } from "@nktkas/hyperliquid";
114
+ * import { borrowLend } from "@nktkas/hyperliquid/api/exchange";
115
+ * import { privateKeyToAccount } from "npm:viem/accounts";
116
+ *
117
+ * const wallet = privateKeyToAccount("0x..."); // viem or ethers
118
+ * const transport = new HttpTransport(); // or `WebSocketTransport`
119
+ *
120
+ * const data = await borrowLend(
121
+ * { transport, wallet },
122
+ * { operation: "supply", token: 0, amount: "20" },
123
+ * );
124
+ * ```
125
+ */
126
+ export function borrowLend(
127
+ config: ExchangeConfig,
128
+ params: BorrowLendParameters,
129
+ opts?: BorrowLendOptions,
130
+ ): Promise<BorrowLendSuccessResponse> {
131
+ const action = v.parse(BorrowLendParameters, params);
132
+ return executeL1Action(config, { type: "borrowLend", ...action }, opts);
133
+ }
@@ -141,11 +141,11 @@ export const OrderRequest = /* @__PURE__ */ (() => {
141
141
  Address,
142
142
  v.description("Builder address."),
143
143
  ),
144
- /** Builder fee in 0.1bps (1 = 0.0001%). */
144
+ /** Builder fee in 0.1bps (1 = 0.0001%). Max 100 for perps (0.1%), 1000 for spot (1%). */
145
145
  f: v.pipe(
146
146
  UnsignedInteger,
147
- v.maxValue(100),
148
- v.description("Builder fee in 0.1bps (1 = 0.0001%)."),
147
+ v.maxValue(1000),
148
+ v.description("Builder fee in 0.1bps (1 = 0.0001%). Max 100 for perps (0.1%), 1000 for spot (1%)."),
149
149
  ),
150
150
  })),
151
151
  v.description("Builder fee."),
@@ -259,6 +259,8 @@ export const OrderResponse = /* @__PURE__ */ (() => {
259
259
  v.description("Error message."),
260
260
  ),
261
261
  }),
262
+ v.literal("waitingForFill"),
263
+ v.literal("waitingForTrigger"),
262
264
  ]),
263
265
  ),
264
266
  v.description("Array of statuses for each placed order."),