@velocity-exchange/sdk 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1046) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/lib/browser/accounts/basicUserAccountSubscriber.d.ts +18 -0
  3. package/lib/browser/accounts/basicUserAccountSubscriber.js +18 -0
  4. package/lib/browser/accounts/basicUserStatsAccountSubscriber.d.ts +18 -0
  5. package/lib/browser/accounts/basicUserStatsAccountSubscriber.js +18 -0
  6. package/lib/browser/accounts/bulkAccountLoader.d.ts +52 -0
  7. package/lib/browser/accounts/bulkAccountLoader.js +51 -0
  8. package/lib/browser/accounts/bulkUserStatsSubscription.d.ts +9 -2
  9. package/lib/browser/accounts/bulkUserStatsSubscription.js +9 -2
  10. package/lib/browser/accounts/bulkUserSubscription.d.ts +8 -2
  11. package/lib/browser/accounts/bulkUserSubscription.js +8 -2
  12. package/lib/browser/accounts/customizedCadenceBulkAccountLoader.d.ts +37 -0
  13. package/lib/browser/accounts/customizedCadenceBulkAccountLoader.js +37 -0
  14. package/lib/browser/accounts/fetch.d.ts +59 -2
  15. package/lib/browser/accounts/fetch.js +57 -2
  16. package/lib/browser/accounts/grpcAccountSubscriber.d.ts +30 -0
  17. package/lib/browser/accounts/grpcAccountSubscriber.js +30 -0
  18. package/lib/browser/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts +16 -0
  19. package/lib/browser/accounts/grpcInsuranceFundStakeAccountSubscriber.js +16 -0
  20. package/lib/browser/accounts/grpcMultiAccountSubscriber.d.ts +60 -1
  21. package/lib/browser/accounts/grpcMultiAccountSubscriber.js +118 -37
  22. package/lib/browser/accounts/grpcMultiUserAccountSubscriber.d.ts +32 -0
  23. package/lib/browser/accounts/grpcMultiUserAccountSubscriber.js +40 -12
  24. package/lib/browser/accounts/grpcProgramAccountSubscriber.d.ts +33 -0
  25. package/lib/browser/accounts/grpcProgramAccountSubscriber.js +33 -0
  26. package/lib/browser/accounts/grpcUserAccountSubscriber.d.ts +15 -0
  27. package/lib/browser/accounts/grpcUserAccountSubscriber.js +15 -0
  28. package/lib/browser/accounts/grpcUserStatsAccountSubscriber.d.ts +15 -0
  29. package/lib/browser/accounts/grpcUserStatsAccountSubscriber.js +15 -0
  30. package/lib/browser/accounts/grpcVelocityClientAccountSubscriber.d.ts +41 -0
  31. package/lib/browser/accounts/grpcVelocityClientAccountSubscriber.js +41 -0
  32. package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +116 -0
  33. package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.js +152 -1
  34. package/lib/browser/accounts/laserProgramAccountSubscriber.d.ts +34 -0
  35. package/lib/browser/accounts/laserProgramAccountSubscriber.js +34 -0
  36. package/lib/browser/accounts/oneShotUserAccountSubscriber.d.ts +19 -0
  37. package/lib/browser/accounts/oneShotUserAccountSubscriber.js +19 -0
  38. package/lib/browser/accounts/oneShotUserStatsAccountSubscriber.d.ts +19 -0
  39. package/lib/browser/accounts/oneShotUserStatsAccountSubscriber.js +19 -0
  40. package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +31 -0
  41. package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.js +31 -0
  42. package/lib/browser/accounts/pollingOracleAccountSubscriber.d.ts +19 -0
  43. package/lib/browser/accounts/pollingOracleAccountSubscriber.js +21 -2
  44. package/lib/browser/accounts/pollingTokenAccountSubscriber.d.ts +22 -0
  45. package/lib/browser/accounts/pollingTokenAccountSubscriber.js +22 -0
  46. package/lib/browser/accounts/pollingUserAccountSubscriber.d.ts +32 -0
  47. package/lib/browser/accounts/pollingUserAccountSubscriber.js +32 -0
  48. package/lib/browser/accounts/pollingUserStatsAccountSubscriber.d.ts +22 -0
  49. package/lib/browser/accounts/pollingUserStatsAccountSubscriber.js +22 -0
  50. package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.d.ts +83 -0
  51. package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.js +84 -1
  52. package/lib/browser/accounts/testBulkAccountLoader.d.ts +8 -0
  53. package/lib/browser/accounts/testBulkAccountLoader.js +8 -0
  54. package/lib/browser/accounts/types.d.ts +149 -0
  55. package/lib/browser/accounts/types.js +13 -0
  56. package/lib/browser/accounts/utils.d.ts +18 -0
  57. package/lib/browser/accounts/utils.js +32 -16
  58. package/lib/browser/accounts/webSocketAccountSubscriber.d.ts +41 -0
  59. package/lib/browser/accounts/webSocketAccountSubscriber.js +41 -0
  60. package/lib/browser/accounts/webSocketAccountSubscriberV2.d.ts +31 -0
  61. package/lib/browser/accounts/webSocketAccountSubscriberV2.js +31 -23
  62. package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +27 -0
  63. package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +27 -0
  64. package/lib/browser/accounts/webSocketProgramAccountSubscriber.d.ts +36 -0
  65. package/lib/browser/accounts/webSocketProgramAccountSubscriber.js +36 -0
  66. package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.d.ts +21 -0
  67. package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.js +25 -0
  68. package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.d.ts +21 -0
  69. package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.js +21 -0
  70. package/lib/browser/accounts/webSocketUserAccountSubscriber.d.ts +26 -0
  71. package/lib/browser/accounts/webSocketUserAccountSubscriber.js +26 -0
  72. package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.d.ts +20 -0
  73. package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.js +20 -0
  74. package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.d.ts +121 -0
  75. package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.js +123 -2
  76. package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +96 -0
  77. package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.js +108 -0
  78. package/lib/browser/accounts/websocketProgramUserAccountSubscriber.d.ts +28 -0
  79. package/lib/browser/accounts/websocketProgramUserAccountSubscriber.js +33 -0
  80. package/lib/browser/addresses/marketAddresses.d.ts +10 -0
  81. package/lib/browser/addresses/marketAddresses.js +10 -0
  82. package/lib/browser/addresses/pda.d.ts +214 -2
  83. package/lib/browser/addresses/pda.js +217 -5
  84. package/lib/browser/adminClient.d.ts +2136 -4
  85. package/lib/browser/adminClient.js +2150 -4
  86. package/lib/browser/auctionSubscriber/auctionSubscriber.d.ts +15 -0
  87. package/lib/browser/auctionSubscriber/auctionSubscriber.js +15 -0
  88. package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.d.ts +19 -0
  89. package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.js +19 -0
  90. package/lib/browser/auctionSubscriber/index.d.ts +6 -0
  91. package/lib/browser/auctionSubscriber/index.js +6 -0
  92. package/lib/browser/auctionSubscriber/types.d.ts +7 -0
  93. package/lib/browser/blockhashSubscriber/BlockhashSubscriber.d.ts +33 -0
  94. package/lib/browser/blockhashSubscriber/BlockhashSubscriber.js +33 -0
  95. package/lib/browser/blockhashSubscriber/index.d.ts +5 -0
  96. package/lib/browser/blockhashSubscriber/index.js +5 -0
  97. package/lib/browser/blockhashSubscriber/types.d.ts +5 -0
  98. package/lib/browser/clock/clockSubscriber.d.ts +24 -0
  99. package/lib/browser/clock/clockSubscriber.js +22 -0
  100. package/lib/browser/config.d.ts +58 -4
  101. package/lib/browser/config.js +88 -21
  102. package/lib/browser/constants/numericConstants.d.ts +67 -0
  103. package/lib/browser/constants/numericConstants.js +68 -1
  104. package/lib/browser/constants/perpMarkets.d.ts +10 -0
  105. package/lib/browser/constants/perpMarkets.js +40 -908
  106. package/lib/browser/constants/spotMarkets.d.ts +13 -0
  107. package/lib/browser/constants/spotMarkets.js +16 -742
  108. package/lib/browser/constants/txConstants.d.ts +1 -0
  109. package/lib/browser/constants/txConstants.js +1 -0
  110. package/lib/browser/core/VelocityCore.d.ts +285 -8
  111. package/lib/browser/core/VelocityCore.js +281 -8
  112. package/lib/browser/core/instructions/deposit.d.ts +22 -0
  113. package/lib/browser/core/instructions/deposit.js +22 -0
  114. package/lib/browser/core/instructions/fill.d.ts +17 -0
  115. package/lib/browser/core/instructions/fill.js +17 -0
  116. package/lib/browser/core/instructions/funding.d.ts +12 -0
  117. package/lib/browser/core/instructions/funding.js +12 -0
  118. package/lib/browser/core/instructions/liquidation.d.ts +18 -0
  119. package/lib/browser/core/instructions/liquidation.js +18 -0
  120. package/lib/browser/core/instructions/orders.d.ts +28 -0
  121. package/lib/browser/core/instructions/orders.js +28 -0
  122. package/lib/browser/core/instructions/perpOrders.d.ts +106 -0
  123. package/lib/browser/core/instructions/perpOrders.js +106 -0
  124. package/lib/browser/core/instructions/settlement.d.ts +14 -0
  125. package/lib/browser/core/instructions/settlement.js +14 -0
  126. package/lib/browser/core/instructions/trigger.d.ts +15 -0
  127. package/lib/browser/core/instructions/trigger.js +15 -0
  128. package/lib/browser/core/instructions/withdraw.d.ts +21 -0
  129. package/lib/browser/core/instructions/withdraw.js +21 -0
  130. package/lib/browser/core/remainingAccounts.d.ts +47 -3
  131. package/lib/browser/core/remainingAccounts.js +20 -0
  132. package/lib/browser/core/signedMsg.d.ts +38 -0
  133. package/lib/browser/core/signedMsg.js +33 -0
  134. package/lib/browser/decode/customCoder.d.ts +39 -3
  135. package/lib/browser/decode/customCoder.js +45 -3
  136. package/lib/browser/decode/user.d.ts +22 -0
  137. package/lib/browser/decode/user.js +22 -0
  138. package/lib/browser/dlob/DLOB.d.ts +502 -53
  139. package/lib/browser/dlob/DLOB.js +540 -98
  140. package/lib/browser/dlob/DLOBNode.d.ts +86 -4
  141. package/lib/browser/dlob/DLOBNode.js +37 -4
  142. package/lib/browser/dlob/DLOBSubscriber.d.ts +39 -12
  143. package/lib/browser/dlob/DLOBSubscriber.js +42 -12
  144. package/lib/browser/dlob/NodeList.d.ts +69 -0
  145. package/lib/browser/dlob/NodeList.js +66 -0
  146. package/lib/browser/dlob/orderBookLevels.d.ts +106 -13
  147. package/lib/browser/dlob/orderBookLevels.js +84 -14
  148. package/lib/browser/dlob/types.d.ts +15 -0
  149. package/lib/browser/events/eventList.d.ts +14 -0
  150. package/lib/browser/events/eventList.js +14 -0
  151. package/lib/browser/events/eventSubscriber.d.ts +87 -10
  152. package/lib/browser/events/eventSubscriber.js +93 -8
  153. package/lib/browser/events/eventsServerLogProvider.d.ts +22 -0
  154. package/lib/browser/events/eventsServerLogProvider.js +27 -0
  155. package/lib/browser/events/fetchLogs.d.ts +31 -0
  156. package/lib/browser/events/fetchLogs.js +46 -1
  157. package/lib/browser/events/parse.d.ts +23 -0
  158. package/lib/browser/events/parse.js +23 -0
  159. package/lib/browser/events/pollingLogProvider.d.ts +24 -0
  160. package/lib/browser/events/pollingLogProvider.js +24 -0
  161. package/lib/browser/events/sort.d.ts +11 -0
  162. package/lib/browser/events/sort.js +12 -0
  163. package/lib/browser/events/txEventCache.d.ts +13 -3
  164. package/lib/browser/events/txEventCache.js +19 -7
  165. package/lib/browser/events/types.d.ts +118 -2
  166. package/lib/browser/events/types.js +11 -0
  167. package/lib/browser/events/webSocketLogProvider.d.ts +23 -0
  168. package/lib/browser/events/webSocketLogProvider.js +28 -0
  169. package/lib/browser/factory/oracleClient.js +2 -2
  170. package/lib/browser/idl/velocity.d.ts +4 -4
  171. package/lib/browser/idl/velocity.json +4 -4
  172. package/lib/browser/keypair.d.ts +8 -0
  173. package/lib/browser/keypair.js +8 -0
  174. package/lib/browser/marginCalculation.d.ts +134 -2
  175. package/lib/browser/marginCalculation.js +121 -0
  176. package/lib/browser/math/amm.d.ts +348 -29
  177. package/lib/browser/math/amm.js +310 -32
  178. package/lib/browser/math/auction.d.ts +95 -19
  179. package/lib/browser/math/auction.js +118 -28
  180. package/lib/browser/math/bankruptcy.d.ts +46 -0
  181. package/lib/browser/math/bankruptcy.js +89 -1
  182. package/lib/browser/math/builder.d.ts +64 -8
  183. package/lib/browser/math/builder.js +71 -9
  184. package/lib/browser/math/conversion.d.ts +21 -0
  185. package/lib/browser/math/conversion.js +21 -0
  186. package/lib/browser/math/exchangeStatus.d.ts +91 -0
  187. package/lib/browser/math/exchangeStatus.js +106 -3
  188. package/lib/browser/math/funding.d.ts +57 -20
  189. package/lib/browser/math/funding.js +63 -23
  190. package/lib/browser/math/insurance.d.ts +62 -0
  191. package/lib/browser/math/insurance.js +62 -0
  192. package/lib/browser/math/liquidation.d.ts +127 -11
  193. package/lib/browser/math/liquidation.js +182 -19
  194. package/lib/browser/math/margin.d.ts +79 -13
  195. package/lib/browser/math/margin.js +80 -14
  196. package/lib/browser/math/market.d.ts +135 -15
  197. package/lib/browser/math/market.js +145 -17
  198. package/lib/browser/math/oracles.d.ts +113 -0
  199. package/lib/browser/math/oracles.js +118 -1
  200. package/lib/browser/math/orders.d.ts +115 -10
  201. package/lib/browser/math/orders.js +130 -19
  202. package/lib/browser/math/position.d.ts +80 -33
  203. package/lib/browser/math/position.js +80 -33
  204. package/lib/browser/math/repeg.d.ts +48 -10
  205. package/lib/browser/math/repeg.js +48 -10
  206. package/lib/browser/math/spotBalance.d.ts +200 -5
  207. package/lib/browser/math/spotBalance.js +239 -10
  208. package/lib/browser/math/spotMarket.d.ts +36 -3
  209. package/lib/browser/math/spotMarket.js +36 -3
  210. package/lib/browser/math/spotPosition.d.ts +72 -0
  211. package/lib/browser/math/spotPosition.js +62 -0
  212. package/lib/browser/math/state.d.ts +31 -0
  213. package/lib/browser/math/state.js +31 -0
  214. package/lib/browser/math/superStake.d.ts +126 -2
  215. package/lib/browser/math/superStake.js +123 -3
  216. package/lib/browser/math/tiers.d.ts +29 -0
  217. package/lib/browser/math/tiers.js +29 -0
  218. package/lib/browser/math/trade.d.ts +102 -51
  219. package/lib/browser/math/trade.js +101 -55
  220. package/lib/browser/math/utils.d.ts +71 -9
  221. package/lib/browser/math/utils.js +71 -9
  222. package/lib/browser/memcmp.d.ts +94 -0
  223. package/lib/browser/memcmp.js +103 -2
  224. package/lib/browser/oracles/oracleClientCache.d.ts +16 -0
  225. package/lib/browser/oracles/oracleClientCache.js +16 -0
  226. package/lib/browser/oracles/oracleId.d.ts +31 -0
  227. package/lib/browser/oracles/oracleId.js +39 -8
  228. package/lib/browser/oracles/prelaunchOracleClient.d.ts +20 -0
  229. package/lib/browser/oracles/prelaunchOracleClient.js +20 -0
  230. package/lib/browser/oracles/pythClient.d.ts +31 -0
  231. package/lib/browser/oracles/pythClient.js +32 -1
  232. package/lib/browser/oracles/pythLazerClient.d.ts +34 -0
  233. package/lib/browser/oracles/pythLazerClient.js +35 -1
  234. package/lib/browser/oracles/quoteAssetOracleClient.d.ts +18 -0
  235. package/lib/browser/oracles/quoteAssetOracleClient.js +18 -0
  236. package/lib/browser/oracles/strictOraclePrice.d.ts +21 -0
  237. package/lib/browser/oracles/strictOraclePrice.js +21 -0
  238. package/lib/browser/oracles/types.d.ts +45 -0
  239. package/lib/browser/oracles/utils.d.ts +20 -0
  240. package/lib/browser/oracles/utils.js +20 -0
  241. package/lib/browser/orderParams.d.ts +42 -4
  242. package/lib/browser/orderParams.js +42 -4
  243. package/lib/browser/orderSubscriber/OrderSubscriber.d.ts +56 -0
  244. package/lib/browser/orderSubscriber/OrderSubscriber.js +56 -0
  245. package/lib/browser/orderSubscriber/PollingSubscription.d.ts +11 -0
  246. package/lib/browser/orderSubscriber/PollingSubscription.js +11 -0
  247. package/lib/browser/orderSubscriber/WebsocketSubscription.d.ts +18 -0
  248. package/lib/browser/orderSubscriber/WebsocketSubscription.js +18 -0
  249. package/lib/browser/orderSubscriber/grpcSubscription.d.ts +16 -0
  250. package/lib/browser/orderSubscriber/grpcSubscription.js +16 -0
  251. package/lib/browser/orderSubscriber/types.d.ts +9 -0
  252. package/lib/browser/priorityFee/averageOverSlotsStrategy.d.ts +1 -0
  253. package/lib/browser/priorityFee/averageOverSlotsStrategy.js +1 -0
  254. package/lib/browser/priorityFee/averageStrategy.d.ts +1 -0
  255. package/lib/browser/priorityFee/averageStrategy.js +1 -0
  256. package/lib/browser/priorityFee/ewmaStrategy.d.ts +10 -0
  257. package/lib/browser/priorityFee/ewmaStrategy.js +10 -0
  258. package/lib/browser/priorityFee/heliusPriorityFeeMethod.d.ts +13 -0
  259. package/lib/browser/priorityFee/heliusPriorityFeeMethod.js +9 -2
  260. package/lib/browser/priorityFee/maxOverSlotsStrategy.d.ts +1 -0
  261. package/lib/browser/priorityFee/maxOverSlotsStrategy.js +1 -0
  262. package/lib/browser/priorityFee/maxStrategy.d.ts +1 -0
  263. package/lib/browser/priorityFee/maxStrategy.js +1 -0
  264. package/lib/browser/priorityFee/priorityFeeSubscriber.d.ts +39 -0
  265. package/lib/browser/priorityFee/priorityFeeSubscriber.js +39 -0
  266. package/lib/browser/priorityFee/priorityFeeSubscriberMap.d.ts +20 -1
  267. package/lib/browser/priorityFee/priorityFeeSubscriberMap.js +21 -2
  268. package/lib/browser/priorityFee/solanaPriorityFeeMethod.d.ts +12 -0
  269. package/lib/browser/priorityFee/solanaPriorityFeeMethod.js +10 -0
  270. package/lib/browser/priorityFee/types.d.ts +32 -0
  271. package/lib/browser/priorityFee/types.js +5 -0
  272. package/lib/browser/priorityFee/velocityPriorityFeeMethod.d.ts +11 -0
  273. package/lib/browser/priorityFee/velocityPriorityFeeMethod.js +8 -0
  274. package/lib/browser/slot/SlotSubscriber.d.ts +18 -0
  275. package/lib/browser/slot/SlotSubscriber.js +16 -0
  276. package/lib/browser/slot/SlothashSubscriber.d.ts +26 -0
  277. package/lib/browser/slot/SlothashSubscriber.js +25 -1
  278. package/lib/browser/tx/baseTxSender.d.ts +163 -0
  279. package/lib/browser/tx/baseTxSender.js +174 -6
  280. package/lib/browser/tx/blockhashFetcher/baseBlockhashFetcher.d.ts +12 -0
  281. package/lib/browser/tx/blockhashFetcher/baseBlockhashFetcher.js +12 -0
  282. package/lib/browser/tx/blockhashFetcher/cachedBlockhashFetcher.d.ts +15 -0
  283. package/lib/browser/tx/blockhashFetcher/cachedBlockhashFetcher.js +15 -0
  284. package/lib/browser/tx/blockhashFetcher/types.d.ts +4 -0
  285. package/lib/browser/tx/fastSingleTxSender.d.ts +47 -0
  286. package/lib/browser/tx/fastSingleTxSender.js +48 -1
  287. package/lib/browser/tx/forwardOnlyTxSender.d.ts +48 -0
  288. package/lib/browser/tx/forwardOnlyTxSender.js +48 -0
  289. package/lib/browser/tx/reportTransactionError.d.ts +18 -6
  290. package/lib/browser/tx/reportTransactionError.js +18 -6
  291. package/lib/browser/tx/retryTxSender.d.ts +40 -0
  292. package/lib/browser/tx/retryTxSender.js +39 -0
  293. package/lib/browser/tx/txHandler.d.ts +146 -35
  294. package/lib/browser/tx/txHandler.js +132 -32
  295. package/lib/browser/tx/txParamProcessor.d.ts +47 -0
  296. package/lib/browser/tx/txParamProcessor.js +47 -0
  297. package/lib/browser/tx/types.d.ts +46 -0
  298. package/lib/browser/tx/types.js +5 -0
  299. package/lib/browser/tx/utils.d.ts +26 -0
  300. package/lib/browser/tx/utils.js +26 -0
  301. package/lib/browser/tx/whileValidTxSender.d.ts +82 -0
  302. package/lib/browser/tx/whileValidTxSender.js +81 -0
  303. package/lib/browser/types.d.ts +781 -13
  304. package/lib/browser/types.js +126 -9
  305. package/lib/browser/user.d.ts +645 -84
  306. package/lib/browser/user.js +779 -96
  307. package/lib/browser/userMap/PollingSubscription.d.ts +10 -0
  308. package/lib/browser/userMap/PollingSubscription.js +14 -2
  309. package/lib/browser/userMap/WebsocketSubscription.d.ts +9 -0
  310. package/lib/browser/userMap/WebsocketSubscription.js +9 -0
  311. package/lib/browser/userMap/grpcSubscription.d.ts +8 -0
  312. package/lib/browser/userMap/grpcSubscription.js +8 -0
  313. package/lib/browser/userMap/referrerMap.d.ts +72 -2
  314. package/lib/browser/userMap/referrerMap.js +84 -2
  315. package/lib/browser/userMap/revenueShareEscrowMap.d.ts +37 -10
  316. package/lib/browser/userMap/revenueShareEscrowMap.js +38 -11
  317. package/lib/browser/userMap/userMap.d.ts +81 -3
  318. package/lib/browser/userMap/userMap.js +81 -4
  319. package/lib/browser/userMap/userMapConfig.d.ts +23 -0
  320. package/lib/browser/userMap/userStatsMap.d.ts +22 -0
  321. package/lib/browser/userMap/userStatsMap.js +22 -0
  322. package/lib/browser/userName.d.ts +16 -0
  323. package/lib/browser/userName.js +16 -0
  324. package/lib/browser/userStats.d.ts +28 -1
  325. package/lib/browser/userStats.js +28 -1
  326. package/lib/browser/util/TransactionConfirmationManager.d.ts +33 -0
  327. package/lib/browser/util/TransactionConfirmationManager.js +33 -0
  328. package/lib/browser/util/chainClock.d.ts +24 -0
  329. package/lib/browser/util/chainClock.js +20 -0
  330. package/lib/browser/util/computeUnits.d.ts +32 -0
  331. package/lib/browser/util/computeUnits.js +32 -0
  332. package/lib/browser/util/digest.d.ts +17 -0
  333. package/lib/browser/util/digest.js +17 -0
  334. package/lib/browser/util/ed25519Utils.d.ts +12 -2
  335. package/lib/browser/util/ed25519Utils.js +12 -2
  336. package/lib/browser/util/promiseTimeout.d.ts +9 -0
  337. package/lib/browser/util/promiseTimeout.js +9 -0
  338. package/lib/browser/velocityClient.d.ts +3322 -215
  339. package/lib/browser/velocityClient.js +3412 -245
  340. package/lib/browser/wallet.d.ts +37 -0
  341. package/lib/browser/wallet.js +37 -0
  342. package/lib/node/accounts/basicUserAccountSubscriber.d.ts +18 -0
  343. package/lib/node/accounts/basicUserAccountSubscriber.d.ts.map +1 -1
  344. package/lib/node/accounts/basicUserAccountSubscriber.js +18 -0
  345. package/lib/node/accounts/basicUserStatsAccountSubscriber.d.ts +18 -0
  346. package/lib/node/accounts/basicUserStatsAccountSubscriber.d.ts.map +1 -1
  347. package/lib/node/accounts/basicUserStatsAccountSubscriber.js +18 -0
  348. package/lib/node/accounts/bulkAccountLoader.d.ts +52 -0
  349. package/lib/node/accounts/bulkAccountLoader.d.ts.map +1 -1
  350. package/lib/node/accounts/bulkAccountLoader.js +51 -0
  351. package/lib/node/accounts/bulkUserStatsSubscription.d.ts +9 -2
  352. package/lib/node/accounts/bulkUserStatsSubscription.d.ts.map +1 -1
  353. package/lib/node/accounts/bulkUserStatsSubscription.js +9 -2
  354. package/lib/node/accounts/bulkUserSubscription.d.ts +8 -2
  355. package/lib/node/accounts/bulkUserSubscription.d.ts.map +1 -1
  356. package/lib/node/accounts/bulkUserSubscription.js +8 -2
  357. package/lib/node/accounts/customizedCadenceBulkAccountLoader.d.ts +37 -0
  358. package/lib/node/accounts/customizedCadenceBulkAccountLoader.d.ts.map +1 -1
  359. package/lib/node/accounts/customizedCadenceBulkAccountLoader.js +37 -0
  360. package/lib/node/accounts/fetch.d.ts +59 -2
  361. package/lib/node/accounts/fetch.d.ts.map +1 -1
  362. package/lib/node/accounts/fetch.js +57 -2
  363. package/lib/node/accounts/grpcAccountSubscriber.d.ts +30 -0
  364. package/lib/node/accounts/grpcAccountSubscriber.d.ts.map +1 -1
  365. package/lib/node/accounts/grpcAccountSubscriber.js +30 -0
  366. package/lib/node/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts +16 -0
  367. package/lib/node/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
  368. package/lib/node/accounts/grpcInsuranceFundStakeAccountSubscriber.js +16 -0
  369. package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts +60 -1
  370. package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts.map +1 -1
  371. package/lib/node/accounts/grpcMultiAccountSubscriber.js +118 -37
  372. package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts +32 -0
  373. package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts.map +1 -1
  374. package/lib/node/accounts/grpcMultiUserAccountSubscriber.js +40 -12
  375. package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts +33 -0
  376. package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts.map +1 -1
  377. package/lib/node/accounts/grpcProgramAccountSubscriber.js +33 -0
  378. package/lib/node/accounts/grpcUserAccountSubscriber.d.ts +15 -0
  379. package/lib/node/accounts/grpcUserAccountSubscriber.d.ts.map +1 -1
  380. package/lib/node/accounts/grpcUserAccountSubscriber.js +15 -0
  381. package/lib/node/accounts/grpcUserStatsAccountSubscriber.d.ts +15 -0
  382. package/lib/node/accounts/grpcUserStatsAccountSubscriber.d.ts.map +1 -1
  383. package/lib/node/accounts/grpcUserStatsAccountSubscriber.js +15 -0
  384. package/lib/node/accounts/grpcVelocityClientAccountSubscriber.d.ts +41 -0
  385. package/lib/node/accounts/grpcVelocityClientAccountSubscriber.d.ts.map +1 -1
  386. package/lib/node/accounts/grpcVelocityClientAccountSubscriber.js +41 -0
  387. package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +116 -0
  388. package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts.map +1 -1
  389. package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.js +152 -1
  390. package/lib/node/accounts/laserProgramAccountSubscriber.d.ts +34 -0
  391. package/lib/node/accounts/laserProgramAccountSubscriber.d.ts.map +1 -1
  392. package/lib/node/accounts/laserProgramAccountSubscriber.js +34 -0
  393. package/lib/node/accounts/oneShotUserAccountSubscriber.d.ts +19 -0
  394. package/lib/node/accounts/oneShotUserAccountSubscriber.d.ts.map +1 -1
  395. package/lib/node/accounts/oneShotUserAccountSubscriber.js +19 -0
  396. package/lib/node/accounts/oneShotUserStatsAccountSubscriber.d.ts +19 -0
  397. package/lib/node/accounts/oneShotUserStatsAccountSubscriber.d.ts.map +1 -1
  398. package/lib/node/accounts/oneShotUserStatsAccountSubscriber.js +19 -0
  399. package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +31 -0
  400. package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
  401. package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.js +31 -0
  402. package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts +19 -0
  403. package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts.map +1 -1
  404. package/lib/node/accounts/pollingOracleAccountSubscriber.js +21 -2
  405. package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts +22 -0
  406. package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts.map +1 -1
  407. package/lib/node/accounts/pollingTokenAccountSubscriber.js +22 -0
  408. package/lib/node/accounts/pollingUserAccountSubscriber.d.ts +32 -0
  409. package/lib/node/accounts/pollingUserAccountSubscriber.d.ts.map +1 -1
  410. package/lib/node/accounts/pollingUserAccountSubscriber.js +32 -0
  411. package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts +22 -0
  412. package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts.map +1 -1
  413. package/lib/node/accounts/pollingUserStatsAccountSubscriber.js +22 -0
  414. package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts +83 -0
  415. package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts.map +1 -1
  416. package/lib/node/accounts/pollingVelocityClientAccountSubscriber.js +84 -1
  417. package/lib/node/accounts/testBulkAccountLoader.d.ts +8 -0
  418. package/lib/node/accounts/testBulkAccountLoader.d.ts.map +1 -1
  419. package/lib/node/accounts/testBulkAccountLoader.js +8 -0
  420. package/lib/node/accounts/types.d.ts +149 -0
  421. package/lib/node/accounts/types.d.ts.map +1 -1
  422. package/lib/node/accounts/types.js +13 -0
  423. package/lib/node/accounts/utils.d.ts +18 -0
  424. package/lib/node/accounts/utils.d.ts.map +1 -1
  425. package/lib/node/accounts/utils.js +32 -16
  426. package/lib/node/accounts/webSocketAccountSubscriber.d.ts +41 -0
  427. package/lib/node/accounts/webSocketAccountSubscriber.d.ts.map +1 -1
  428. package/lib/node/accounts/webSocketAccountSubscriber.js +41 -0
  429. package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts +31 -0
  430. package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts.map +1 -1
  431. package/lib/node/accounts/webSocketAccountSubscriberV2.js +31 -23
  432. package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +27 -0
  433. package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
  434. package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +27 -0
  435. package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts +36 -0
  436. package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts.map +1 -1
  437. package/lib/node/accounts/webSocketProgramAccountSubscriber.js +36 -0
  438. package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts +21 -0
  439. package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts.map +1 -1
  440. package/lib/node/accounts/webSocketProgramAccountSubscriberV2.js +25 -0
  441. package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts +21 -0
  442. package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts.map +1 -1
  443. package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.js +21 -0
  444. package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts +26 -0
  445. package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts.map +1 -1
  446. package/lib/node/accounts/webSocketUserAccountSubscriber.js +26 -0
  447. package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts +20 -0
  448. package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts.map +1 -1
  449. package/lib/node/accounts/webSocketUserStatsAccountSubsriber.js +20 -0
  450. package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts +121 -0
  451. package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts.map +1 -1
  452. package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.js +123 -2
  453. package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +96 -0
  454. package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts.map +1 -1
  455. package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.js +108 -0
  456. package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts +28 -0
  457. package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts.map +1 -1
  458. package/lib/node/accounts/websocketProgramUserAccountSubscriber.js +33 -0
  459. package/lib/node/addresses/marketAddresses.d.ts +10 -0
  460. package/lib/node/addresses/marketAddresses.d.ts.map +1 -1
  461. package/lib/node/addresses/marketAddresses.js +10 -0
  462. package/lib/node/addresses/pda.d.ts +214 -2
  463. package/lib/node/addresses/pda.d.ts.map +1 -1
  464. package/lib/node/addresses/pda.js +217 -5
  465. package/lib/node/adminClient.d.ts +2136 -4
  466. package/lib/node/adminClient.d.ts.map +1 -1
  467. package/lib/node/adminClient.js +2150 -4
  468. package/lib/node/auctionSubscriber/auctionSubscriber.d.ts +15 -0
  469. package/lib/node/auctionSubscriber/auctionSubscriber.d.ts.map +1 -1
  470. package/lib/node/auctionSubscriber/auctionSubscriber.js +15 -0
  471. package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts +19 -0
  472. package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts.map +1 -1
  473. package/lib/node/auctionSubscriber/auctionSubscriberGrpc.js +19 -0
  474. package/lib/node/auctionSubscriber/index.d.ts +6 -0
  475. package/lib/node/auctionSubscriber/index.d.ts.map +1 -1
  476. package/lib/node/auctionSubscriber/index.js +6 -0
  477. package/lib/node/auctionSubscriber/types.d.ts +7 -0
  478. package/lib/node/auctionSubscriber/types.d.ts.map +1 -1
  479. package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts +33 -0
  480. package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts.map +1 -1
  481. package/lib/node/blockhashSubscriber/BlockhashSubscriber.js +33 -0
  482. package/lib/node/blockhashSubscriber/index.d.ts +5 -0
  483. package/lib/node/blockhashSubscriber/index.d.ts.map +1 -1
  484. package/lib/node/blockhashSubscriber/index.js +5 -0
  485. package/lib/node/blockhashSubscriber/types.d.ts +5 -0
  486. package/lib/node/blockhashSubscriber/types.d.ts.map +1 -1
  487. package/lib/node/clock/clockSubscriber.d.ts +24 -0
  488. package/lib/node/clock/clockSubscriber.d.ts.map +1 -1
  489. package/lib/node/clock/clockSubscriber.js +22 -0
  490. package/lib/node/config.d.ts +58 -4
  491. package/lib/node/config.d.ts.map +1 -1
  492. package/lib/node/config.js +88 -21
  493. package/lib/node/constants/numericConstants.d.ts +67 -0
  494. package/lib/node/constants/numericConstants.d.ts.map +1 -1
  495. package/lib/node/constants/numericConstants.js +68 -1
  496. package/lib/node/constants/perpMarkets.d.ts +10 -0
  497. package/lib/node/constants/perpMarkets.d.ts.map +1 -1
  498. package/lib/node/constants/perpMarkets.js +40 -908
  499. package/lib/node/constants/spotMarkets.d.ts +13 -0
  500. package/lib/node/constants/spotMarkets.d.ts.map +1 -1
  501. package/lib/node/constants/spotMarkets.js +16 -742
  502. package/lib/node/constants/txConstants.d.ts +1 -0
  503. package/lib/node/constants/txConstants.d.ts.map +1 -1
  504. package/lib/node/constants/txConstants.js +1 -0
  505. package/lib/node/core/VelocityCore.d.ts +285 -8
  506. package/lib/node/core/VelocityCore.d.ts.map +1 -1
  507. package/lib/node/core/VelocityCore.js +281 -8
  508. package/lib/node/core/instructions/deposit.d.ts +22 -0
  509. package/lib/node/core/instructions/deposit.d.ts.map +1 -1
  510. package/lib/node/core/instructions/deposit.js +22 -0
  511. package/lib/node/core/instructions/fill.d.ts +17 -0
  512. package/lib/node/core/instructions/fill.d.ts.map +1 -1
  513. package/lib/node/core/instructions/fill.js +17 -0
  514. package/lib/node/core/instructions/funding.d.ts +12 -0
  515. package/lib/node/core/instructions/funding.d.ts.map +1 -1
  516. package/lib/node/core/instructions/funding.js +12 -0
  517. package/lib/node/core/instructions/liquidation.d.ts +18 -0
  518. package/lib/node/core/instructions/liquidation.d.ts.map +1 -1
  519. package/lib/node/core/instructions/liquidation.js +18 -0
  520. package/lib/node/core/instructions/orders.d.ts +28 -0
  521. package/lib/node/core/instructions/orders.d.ts.map +1 -1
  522. package/lib/node/core/instructions/orders.js +28 -0
  523. package/lib/node/core/instructions/perpOrders.d.ts +106 -0
  524. package/lib/node/core/instructions/perpOrders.d.ts.map +1 -1
  525. package/lib/node/core/instructions/perpOrders.js +106 -0
  526. package/lib/node/core/instructions/settlement.d.ts +14 -0
  527. package/lib/node/core/instructions/settlement.d.ts.map +1 -1
  528. package/lib/node/core/instructions/settlement.js +14 -0
  529. package/lib/node/core/instructions/trigger.d.ts +15 -0
  530. package/lib/node/core/instructions/trigger.d.ts.map +1 -1
  531. package/lib/node/core/instructions/trigger.js +15 -0
  532. package/lib/node/core/instructions/withdraw.d.ts +21 -0
  533. package/lib/node/core/instructions/withdraw.d.ts.map +1 -1
  534. package/lib/node/core/instructions/withdraw.js +21 -0
  535. package/lib/node/core/remainingAccounts.d.ts +47 -3
  536. package/lib/node/core/remainingAccounts.d.ts.map +1 -1
  537. package/lib/node/core/remainingAccounts.js +20 -0
  538. package/lib/node/core/signedMsg.d.ts +38 -0
  539. package/lib/node/core/signedMsg.d.ts.map +1 -1
  540. package/lib/node/core/signedMsg.js +33 -0
  541. package/lib/node/decode/customCoder.d.ts +39 -3
  542. package/lib/node/decode/customCoder.d.ts.map +1 -1
  543. package/lib/node/decode/customCoder.js +45 -3
  544. package/lib/node/decode/user.d.ts +22 -0
  545. package/lib/node/decode/user.d.ts.map +1 -1
  546. package/lib/node/decode/user.js +22 -0
  547. package/lib/node/dlob/DLOB.d.ts +502 -53
  548. package/lib/node/dlob/DLOB.d.ts.map +1 -1
  549. package/lib/node/dlob/DLOB.js +540 -98
  550. package/lib/node/dlob/DLOBNode.d.ts +86 -4
  551. package/lib/node/dlob/DLOBNode.d.ts.map +1 -1
  552. package/lib/node/dlob/DLOBNode.js +37 -4
  553. package/lib/node/dlob/DLOBSubscriber.d.ts +39 -12
  554. package/lib/node/dlob/DLOBSubscriber.d.ts.map +1 -1
  555. package/lib/node/dlob/DLOBSubscriber.js +42 -12
  556. package/lib/node/dlob/NodeList.d.ts +69 -0
  557. package/lib/node/dlob/NodeList.d.ts.map +1 -1
  558. package/lib/node/dlob/NodeList.js +66 -0
  559. package/lib/node/dlob/orderBookLevels.d.ts +106 -13
  560. package/lib/node/dlob/orderBookLevels.d.ts.map +1 -1
  561. package/lib/node/dlob/orderBookLevels.js +84 -14
  562. package/lib/node/dlob/types.d.ts +15 -0
  563. package/lib/node/dlob/types.d.ts.map +1 -1
  564. package/lib/node/events/eventList.d.ts +14 -0
  565. package/lib/node/events/eventList.d.ts.map +1 -1
  566. package/lib/node/events/eventList.js +14 -0
  567. package/lib/node/events/eventSubscriber.d.ts +87 -10
  568. package/lib/node/events/eventSubscriber.d.ts.map +1 -1
  569. package/lib/node/events/eventSubscriber.js +93 -8
  570. package/lib/node/events/eventsServerLogProvider.d.ts +22 -0
  571. package/lib/node/events/eventsServerLogProvider.d.ts.map +1 -1
  572. package/lib/node/events/eventsServerLogProvider.js +27 -0
  573. package/lib/node/events/fetchLogs.d.ts +31 -0
  574. package/lib/node/events/fetchLogs.d.ts.map +1 -1
  575. package/lib/node/events/fetchLogs.js +46 -1
  576. package/lib/node/events/parse.d.ts +23 -0
  577. package/lib/node/events/parse.d.ts.map +1 -1
  578. package/lib/node/events/parse.js +23 -0
  579. package/lib/node/events/pollingLogProvider.d.ts +24 -0
  580. package/lib/node/events/pollingLogProvider.d.ts.map +1 -1
  581. package/lib/node/events/pollingLogProvider.js +24 -0
  582. package/lib/node/events/sort.d.ts +11 -0
  583. package/lib/node/events/sort.d.ts.map +1 -1
  584. package/lib/node/events/sort.js +12 -0
  585. package/lib/node/events/txEventCache.d.ts +13 -3
  586. package/lib/node/events/txEventCache.d.ts.map +1 -1
  587. package/lib/node/events/txEventCache.js +19 -7
  588. package/lib/node/events/types.d.ts +118 -2
  589. package/lib/node/events/types.d.ts.map +1 -1
  590. package/lib/node/events/types.js +11 -0
  591. package/lib/node/events/webSocketLogProvider.d.ts +23 -0
  592. package/lib/node/events/webSocketLogProvider.d.ts.map +1 -1
  593. package/lib/node/events/webSocketLogProvider.js +28 -0
  594. package/lib/node/factory/oracleClient.js +2 -2
  595. package/lib/node/idl/velocity.d.ts +4 -4
  596. package/lib/node/idl/velocity.d.ts.map +1 -1
  597. package/lib/node/idl/velocity.json +4 -4
  598. package/lib/node/keypair.d.ts +8 -0
  599. package/lib/node/keypair.d.ts.map +1 -1
  600. package/lib/node/keypair.js +8 -0
  601. package/lib/node/marginCalculation.d.ts +134 -2
  602. package/lib/node/marginCalculation.d.ts.map +1 -1
  603. package/lib/node/marginCalculation.js +121 -0
  604. package/lib/node/math/amm.d.ts +348 -29
  605. package/lib/node/math/amm.d.ts.map +1 -1
  606. package/lib/node/math/amm.js +310 -32
  607. package/lib/node/math/auction.d.ts +95 -19
  608. package/lib/node/math/auction.d.ts.map +1 -1
  609. package/lib/node/math/auction.js +118 -28
  610. package/lib/node/math/bankruptcy.d.ts +46 -0
  611. package/lib/node/math/bankruptcy.d.ts.map +1 -1
  612. package/lib/node/math/bankruptcy.js +89 -1
  613. package/lib/node/math/builder.d.ts +64 -8
  614. package/lib/node/math/builder.d.ts.map +1 -1
  615. package/lib/node/math/builder.js +71 -9
  616. package/lib/node/math/conversion.d.ts +21 -0
  617. package/lib/node/math/conversion.d.ts.map +1 -1
  618. package/lib/node/math/conversion.js +21 -0
  619. package/lib/node/math/exchangeStatus.d.ts +91 -0
  620. package/lib/node/math/exchangeStatus.d.ts.map +1 -1
  621. package/lib/node/math/exchangeStatus.js +106 -3
  622. package/lib/node/math/funding.d.ts +57 -20
  623. package/lib/node/math/funding.d.ts.map +1 -1
  624. package/lib/node/math/funding.js +63 -23
  625. package/lib/node/math/insurance.d.ts +62 -0
  626. package/lib/node/math/insurance.d.ts.map +1 -1
  627. package/lib/node/math/insurance.js +62 -0
  628. package/lib/node/math/liquidation.d.ts +127 -11
  629. package/lib/node/math/liquidation.d.ts.map +1 -1
  630. package/lib/node/math/liquidation.js +182 -19
  631. package/lib/node/math/margin.d.ts +79 -13
  632. package/lib/node/math/margin.d.ts.map +1 -1
  633. package/lib/node/math/margin.js +80 -14
  634. package/lib/node/math/market.d.ts +135 -15
  635. package/lib/node/math/market.d.ts.map +1 -1
  636. package/lib/node/math/market.js +145 -17
  637. package/lib/node/math/oracles.d.ts +113 -0
  638. package/lib/node/math/oracles.d.ts.map +1 -1
  639. package/lib/node/math/oracles.js +118 -1
  640. package/lib/node/math/orders.d.ts +115 -10
  641. package/lib/node/math/orders.d.ts.map +1 -1
  642. package/lib/node/math/orders.js +130 -19
  643. package/lib/node/math/position.d.ts +80 -33
  644. package/lib/node/math/position.d.ts.map +1 -1
  645. package/lib/node/math/position.js +80 -33
  646. package/lib/node/math/repeg.d.ts +48 -10
  647. package/lib/node/math/repeg.d.ts.map +1 -1
  648. package/lib/node/math/repeg.js +48 -10
  649. package/lib/node/math/spotBalance.d.ts +200 -5
  650. package/lib/node/math/spotBalance.d.ts.map +1 -1
  651. package/lib/node/math/spotBalance.js +239 -10
  652. package/lib/node/math/spotMarket.d.ts +36 -3
  653. package/lib/node/math/spotMarket.d.ts.map +1 -1
  654. package/lib/node/math/spotMarket.js +36 -3
  655. package/lib/node/math/spotPosition.d.ts +72 -0
  656. package/lib/node/math/spotPosition.d.ts.map +1 -1
  657. package/lib/node/math/spotPosition.js +62 -0
  658. package/lib/node/math/state.d.ts +31 -0
  659. package/lib/node/math/state.d.ts.map +1 -1
  660. package/lib/node/math/state.js +31 -0
  661. package/lib/node/math/superStake.d.ts +126 -2
  662. package/lib/node/math/superStake.d.ts.map +1 -1
  663. package/lib/node/math/superStake.js +123 -3
  664. package/lib/node/math/tiers.d.ts +29 -0
  665. package/lib/node/math/tiers.d.ts.map +1 -1
  666. package/lib/node/math/tiers.js +29 -0
  667. package/lib/node/math/trade.d.ts +102 -51
  668. package/lib/node/math/trade.d.ts.map +1 -1
  669. package/lib/node/math/trade.js +101 -55
  670. package/lib/node/math/utils.d.ts +71 -9
  671. package/lib/node/math/utils.d.ts.map +1 -1
  672. package/lib/node/math/utils.js +71 -9
  673. package/lib/node/memcmp.d.ts +94 -0
  674. package/lib/node/memcmp.d.ts.map +1 -1
  675. package/lib/node/memcmp.js +103 -2
  676. package/lib/node/oracles/oracleClientCache.d.ts +16 -0
  677. package/lib/node/oracles/oracleClientCache.d.ts.map +1 -1
  678. package/lib/node/oracles/oracleClientCache.js +16 -0
  679. package/lib/node/oracles/oracleId.d.ts +31 -0
  680. package/lib/node/oracles/oracleId.d.ts.map +1 -1
  681. package/lib/node/oracles/oracleId.js +39 -8
  682. package/lib/node/oracles/prelaunchOracleClient.d.ts +20 -0
  683. package/lib/node/oracles/prelaunchOracleClient.d.ts.map +1 -1
  684. package/lib/node/oracles/prelaunchOracleClient.js +20 -0
  685. package/lib/node/oracles/pythClient.d.ts +31 -0
  686. package/lib/node/oracles/pythClient.d.ts.map +1 -1
  687. package/lib/node/oracles/pythClient.js +32 -1
  688. package/lib/node/oracles/pythLazerClient.d.ts +34 -0
  689. package/lib/node/oracles/pythLazerClient.d.ts.map +1 -1
  690. package/lib/node/oracles/pythLazerClient.js +35 -1
  691. package/lib/node/oracles/quoteAssetOracleClient.d.ts +18 -0
  692. package/lib/node/oracles/quoteAssetOracleClient.d.ts.map +1 -1
  693. package/lib/node/oracles/quoteAssetOracleClient.js +18 -0
  694. package/lib/node/oracles/strictOraclePrice.d.ts +21 -0
  695. package/lib/node/oracles/strictOraclePrice.d.ts.map +1 -1
  696. package/lib/node/oracles/strictOraclePrice.js +21 -0
  697. package/lib/node/oracles/types.d.ts +45 -0
  698. package/lib/node/oracles/types.d.ts.map +1 -1
  699. package/lib/node/oracles/utils.d.ts +20 -0
  700. package/lib/node/oracles/utils.d.ts.map +1 -1
  701. package/lib/node/oracles/utils.js +20 -0
  702. package/lib/node/orderParams.d.ts +42 -4
  703. package/lib/node/orderParams.d.ts.map +1 -1
  704. package/lib/node/orderParams.js +42 -4
  705. package/lib/node/orderSubscriber/OrderSubscriber.d.ts +56 -0
  706. package/lib/node/orderSubscriber/OrderSubscriber.d.ts.map +1 -1
  707. package/lib/node/orderSubscriber/OrderSubscriber.js +56 -0
  708. package/lib/node/orderSubscriber/PollingSubscription.d.ts +11 -0
  709. package/lib/node/orderSubscriber/PollingSubscription.d.ts.map +1 -1
  710. package/lib/node/orderSubscriber/PollingSubscription.js +11 -0
  711. package/lib/node/orderSubscriber/WebsocketSubscription.d.ts +18 -0
  712. package/lib/node/orderSubscriber/WebsocketSubscription.d.ts.map +1 -1
  713. package/lib/node/orderSubscriber/WebsocketSubscription.js +18 -0
  714. package/lib/node/orderSubscriber/grpcSubscription.d.ts +16 -0
  715. package/lib/node/orderSubscriber/grpcSubscription.d.ts.map +1 -1
  716. package/lib/node/orderSubscriber/grpcSubscription.js +16 -0
  717. package/lib/node/orderSubscriber/types.d.ts +9 -0
  718. package/lib/node/orderSubscriber/types.d.ts.map +1 -1
  719. package/lib/node/priorityFee/averageOverSlotsStrategy.d.ts +1 -0
  720. package/lib/node/priorityFee/averageOverSlotsStrategy.d.ts.map +1 -1
  721. package/lib/node/priorityFee/averageOverSlotsStrategy.js +1 -0
  722. package/lib/node/priorityFee/averageStrategy.d.ts +1 -0
  723. package/lib/node/priorityFee/averageStrategy.d.ts.map +1 -1
  724. package/lib/node/priorityFee/averageStrategy.js +1 -0
  725. package/lib/node/priorityFee/ewmaStrategy.d.ts +10 -0
  726. package/lib/node/priorityFee/ewmaStrategy.d.ts.map +1 -1
  727. package/lib/node/priorityFee/ewmaStrategy.js +10 -0
  728. package/lib/node/priorityFee/heliusPriorityFeeMethod.d.ts +13 -0
  729. package/lib/node/priorityFee/heliusPriorityFeeMethod.d.ts.map +1 -1
  730. package/lib/node/priorityFee/heliusPriorityFeeMethod.js +9 -2
  731. package/lib/node/priorityFee/maxOverSlotsStrategy.d.ts +1 -0
  732. package/lib/node/priorityFee/maxOverSlotsStrategy.d.ts.map +1 -1
  733. package/lib/node/priorityFee/maxOverSlotsStrategy.js +1 -0
  734. package/lib/node/priorityFee/maxStrategy.d.ts +1 -0
  735. package/lib/node/priorityFee/maxStrategy.d.ts.map +1 -1
  736. package/lib/node/priorityFee/maxStrategy.js +1 -0
  737. package/lib/node/priorityFee/priorityFeeSubscriber.d.ts +39 -0
  738. package/lib/node/priorityFee/priorityFeeSubscriber.d.ts.map +1 -1
  739. package/lib/node/priorityFee/priorityFeeSubscriber.js +39 -0
  740. package/lib/node/priorityFee/priorityFeeSubscriberMap.d.ts +20 -1
  741. package/lib/node/priorityFee/priorityFeeSubscriberMap.d.ts.map +1 -1
  742. package/lib/node/priorityFee/priorityFeeSubscriberMap.js +21 -2
  743. package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts +12 -0
  744. package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts.map +1 -1
  745. package/lib/node/priorityFee/solanaPriorityFeeMethod.js +10 -0
  746. package/lib/node/priorityFee/types.d.ts +32 -0
  747. package/lib/node/priorityFee/types.d.ts.map +1 -1
  748. package/lib/node/priorityFee/types.js +5 -0
  749. package/lib/node/priorityFee/velocityPriorityFeeMethod.d.ts +11 -0
  750. package/lib/node/priorityFee/velocityPriorityFeeMethod.d.ts.map +1 -1
  751. package/lib/node/priorityFee/velocityPriorityFeeMethod.js +8 -0
  752. package/lib/node/slot/SlotSubscriber.d.ts +18 -0
  753. package/lib/node/slot/SlotSubscriber.d.ts.map +1 -1
  754. package/lib/node/slot/SlotSubscriber.js +16 -0
  755. package/lib/node/slot/SlothashSubscriber.d.ts +26 -0
  756. package/lib/node/slot/SlothashSubscriber.d.ts.map +1 -1
  757. package/lib/node/slot/SlothashSubscriber.js +25 -1
  758. package/lib/node/tx/baseTxSender.d.ts +163 -0
  759. package/lib/node/tx/baseTxSender.d.ts.map +1 -1
  760. package/lib/node/tx/baseTxSender.js +174 -6
  761. package/lib/node/tx/blockhashFetcher/baseBlockhashFetcher.d.ts +12 -0
  762. package/lib/node/tx/blockhashFetcher/baseBlockhashFetcher.d.ts.map +1 -1
  763. package/lib/node/tx/blockhashFetcher/baseBlockhashFetcher.js +12 -0
  764. package/lib/node/tx/blockhashFetcher/cachedBlockhashFetcher.d.ts +15 -0
  765. package/lib/node/tx/blockhashFetcher/cachedBlockhashFetcher.d.ts.map +1 -1
  766. package/lib/node/tx/blockhashFetcher/cachedBlockhashFetcher.js +15 -0
  767. package/lib/node/tx/blockhashFetcher/types.d.ts +4 -0
  768. package/lib/node/tx/blockhashFetcher/types.d.ts.map +1 -1
  769. package/lib/node/tx/fastSingleTxSender.d.ts +47 -0
  770. package/lib/node/tx/fastSingleTxSender.d.ts.map +1 -1
  771. package/lib/node/tx/fastSingleTxSender.js +48 -1
  772. package/lib/node/tx/forwardOnlyTxSender.d.ts +48 -0
  773. package/lib/node/tx/forwardOnlyTxSender.d.ts.map +1 -1
  774. package/lib/node/tx/forwardOnlyTxSender.js +48 -0
  775. package/lib/node/tx/reportTransactionError.d.ts +18 -6
  776. package/lib/node/tx/reportTransactionError.d.ts.map +1 -1
  777. package/lib/node/tx/reportTransactionError.js +18 -6
  778. package/lib/node/tx/retryTxSender.d.ts +40 -0
  779. package/lib/node/tx/retryTxSender.d.ts.map +1 -1
  780. package/lib/node/tx/retryTxSender.js +39 -0
  781. package/lib/node/tx/txHandler.d.ts +146 -35
  782. package/lib/node/tx/txHandler.d.ts.map +1 -1
  783. package/lib/node/tx/txHandler.js +132 -32
  784. package/lib/node/tx/txParamProcessor.d.ts +47 -0
  785. package/lib/node/tx/txParamProcessor.d.ts.map +1 -1
  786. package/lib/node/tx/txParamProcessor.js +47 -0
  787. package/lib/node/tx/types.d.ts +46 -0
  788. package/lib/node/tx/types.d.ts.map +1 -1
  789. package/lib/node/tx/types.js +5 -0
  790. package/lib/node/tx/utils.d.ts +26 -0
  791. package/lib/node/tx/utils.d.ts.map +1 -1
  792. package/lib/node/tx/utils.js +26 -0
  793. package/lib/node/tx/whileValidTxSender.d.ts +82 -0
  794. package/lib/node/tx/whileValidTxSender.d.ts.map +1 -1
  795. package/lib/node/tx/whileValidTxSender.js +81 -0
  796. package/lib/node/types.d.ts +781 -13
  797. package/lib/node/types.d.ts.map +1 -1
  798. package/lib/node/types.js +126 -9
  799. package/lib/node/user.d.ts +645 -84
  800. package/lib/node/user.d.ts.map +1 -1
  801. package/lib/node/user.js +779 -96
  802. package/lib/node/userMap/PollingSubscription.d.ts +10 -0
  803. package/lib/node/userMap/PollingSubscription.d.ts.map +1 -1
  804. package/lib/node/userMap/PollingSubscription.js +14 -2
  805. package/lib/node/userMap/WebsocketSubscription.d.ts +9 -0
  806. package/lib/node/userMap/WebsocketSubscription.d.ts.map +1 -1
  807. package/lib/node/userMap/WebsocketSubscription.js +9 -0
  808. package/lib/node/userMap/grpcSubscription.d.ts +8 -0
  809. package/lib/node/userMap/grpcSubscription.d.ts.map +1 -1
  810. package/lib/node/userMap/grpcSubscription.js +8 -0
  811. package/lib/node/userMap/referrerMap.d.ts +72 -2
  812. package/lib/node/userMap/referrerMap.d.ts.map +1 -1
  813. package/lib/node/userMap/referrerMap.js +84 -2
  814. package/lib/node/userMap/revenueShareEscrowMap.d.ts +37 -10
  815. package/lib/node/userMap/revenueShareEscrowMap.d.ts.map +1 -1
  816. package/lib/node/userMap/revenueShareEscrowMap.js +38 -11
  817. package/lib/node/userMap/userMap.d.ts +81 -3
  818. package/lib/node/userMap/userMap.d.ts.map +1 -1
  819. package/lib/node/userMap/userMap.js +81 -4
  820. package/lib/node/userMap/userMapConfig.d.ts +23 -0
  821. package/lib/node/userMap/userMapConfig.d.ts.map +1 -1
  822. package/lib/node/userMap/userStatsMap.d.ts +22 -0
  823. package/lib/node/userMap/userStatsMap.d.ts.map +1 -1
  824. package/lib/node/userMap/userStatsMap.js +22 -0
  825. package/lib/node/userName.d.ts +16 -0
  826. package/lib/node/userName.d.ts.map +1 -1
  827. package/lib/node/userName.js +16 -0
  828. package/lib/node/userStats.d.ts +28 -1
  829. package/lib/node/userStats.d.ts.map +1 -1
  830. package/lib/node/userStats.js +28 -1
  831. package/lib/node/util/TransactionConfirmationManager.d.ts +33 -0
  832. package/lib/node/util/TransactionConfirmationManager.d.ts.map +1 -1
  833. package/lib/node/util/TransactionConfirmationManager.js +33 -0
  834. package/lib/node/util/chainClock.d.ts +24 -0
  835. package/lib/node/util/chainClock.d.ts.map +1 -1
  836. package/lib/node/util/chainClock.js +20 -0
  837. package/lib/node/util/computeUnits.d.ts +32 -0
  838. package/lib/node/util/computeUnits.d.ts.map +1 -1
  839. package/lib/node/util/computeUnits.js +32 -0
  840. package/lib/node/util/digest.d.ts +17 -0
  841. package/lib/node/util/digest.d.ts.map +1 -1
  842. package/lib/node/util/digest.js +17 -0
  843. package/lib/node/util/ed25519Utils.d.ts +12 -2
  844. package/lib/node/util/ed25519Utils.d.ts.map +1 -1
  845. package/lib/node/util/ed25519Utils.js +12 -2
  846. package/lib/node/util/promiseTimeout.d.ts +9 -0
  847. package/lib/node/util/promiseTimeout.d.ts.map +1 -1
  848. package/lib/node/util/promiseTimeout.js +9 -0
  849. package/lib/node/velocityClient.d.ts +3322 -215
  850. package/lib/node/velocityClient.d.ts.map +1 -1
  851. package/lib/node/velocityClient.js +3412 -245
  852. package/lib/node/wallet.d.ts +37 -0
  853. package/lib/node/wallet.d.ts.map +1 -1
  854. package/lib/node/wallet.js +37 -0
  855. package/package.json +2 -1
  856. package/src/accounts/basicUserAccountSubscriber.ts +18 -0
  857. package/src/accounts/basicUserStatsAccountSubscriber.ts +18 -0
  858. package/src/accounts/bulkAccountLoader.ts +52 -0
  859. package/src/accounts/bulkUserStatsSubscription.ts +9 -2
  860. package/src/accounts/bulkUserSubscription.ts +8 -2
  861. package/src/accounts/customizedCadenceBulkAccountLoader.ts +37 -0
  862. package/src/accounts/fetch.ts +59 -2
  863. package/src/accounts/grpcAccountSubscriber.ts +30 -0
  864. package/src/accounts/grpcInsuranceFundStakeAccountSubscriber.ts +16 -0
  865. package/src/accounts/grpcMultiAccountSubscriber.ts +121 -38
  866. package/src/accounts/grpcMultiUserAccountSubscriber.ts +49 -11
  867. package/src/accounts/grpcProgramAccountSubscriber.ts +33 -0
  868. package/src/accounts/grpcUserAccountSubscriber.ts +15 -0
  869. package/src/accounts/grpcUserStatsAccountSubscriber.ts +15 -0
  870. package/src/accounts/grpcVelocityClientAccountSubscriber.ts +41 -0
  871. package/src/accounts/grpcVelocityClientAccountSubscriberV2.ts +160 -1
  872. package/src/accounts/laserProgramAccountSubscriber.ts +34 -0
  873. package/src/accounts/oneShotUserAccountSubscriber.ts +19 -0
  874. package/src/accounts/oneShotUserStatsAccountSubscriber.ts +19 -0
  875. package/src/accounts/pollingInsuranceFundStakeAccountSubscriber.ts +31 -0
  876. package/src/accounts/pollingOracleAccountSubscriber.ts +21 -2
  877. package/src/accounts/pollingTokenAccountSubscriber.ts +22 -0
  878. package/src/accounts/pollingUserAccountSubscriber.ts +32 -0
  879. package/src/accounts/pollingUserStatsAccountSubscriber.ts +22 -0
  880. package/src/accounts/pollingVelocityClientAccountSubscriber.ts +84 -1
  881. package/src/accounts/testBulkAccountLoader.ts +8 -0
  882. package/src/accounts/types.ts +149 -0
  883. package/src/accounts/utils.ts +42 -24
  884. package/src/accounts/webSocketAccountSubscriber.ts +41 -0
  885. package/src/accounts/webSocketAccountSubscriberV2.ts +31 -23
  886. package/src/accounts/webSocketInsuranceFundStakeAccountSubscriber.ts +27 -0
  887. package/src/accounts/webSocketProgramAccountSubscriber.ts +36 -0
  888. package/src/accounts/webSocketProgramAccountSubscriberV2.ts +26 -0
  889. package/src/accounts/webSocketProgramAccountsSubscriberV2.ts +21 -0
  890. package/src/accounts/webSocketUserAccountSubscriber.ts +26 -0
  891. package/src/accounts/webSocketUserStatsAccountSubsriber.ts +20 -0
  892. package/src/accounts/webSocketVelocityClientAccountSubscriber.ts +127 -2
  893. package/src/accounts/webSocketVelocityClientAccountSubscriberV2.ts +110 -0
  894. package/src/accounts/websocketProgramUserAccountSubscriber.ts +33 -0
  895. package/src/addresses/marketAddresses.ts +10 -0
  896. package/src/addresses/pda.ts +228 -12
  897. package/src/adminClient.ts +2156 -4
  898. package/src/auctionSubscriber/auctionSubscriber.ts +15 -0
  899. package/src/auctionSubscriber/auctionSubscriberGrpc.ts +19 -0
  900. package/src/auctionSubscriber/index.ts +6 -0
  901. package/src/auctionSubscriber/types.ts +7 -0
  902. package/src/blockhashSubscriber/BlockhashSubscriber.ts +33 -0
  903. package/src/blockhashSubscriber/index.ts +5 -0
  904. package/src/blockhashSubscriber/types.ts +5 -4
  905. package/src/clock/clockSubscriber.ts +24 -0
  906. package/src/config.ts +109 -22
  907. package/src/constants/numericConstants.ts +70 -0
  908. package/src/constants/perpMarkets.ts +45 -960
  909. package/src/constants/spotMarkets.ts +23 -793
  910. package/src/constants/txConstants.ts +1 -0
  911. package/src/core/VelocityCore.ts +286 -8
  912. package/src/core/instructions/deposit.ts +22 -0
  913. package/src/core/instructions/fill.ts +17 -0
  914. package/src/core/instructions/funding.ts +12 -0
  915. package/src/core/instructions/liquidation.ts +18 -0
  916. package/src/core/instructions/orders.ts +28 -0
  917. package/src/core/instructions/perpOrders.ts +106 -0
  918. package/src/core/instructions/settlement.ts +14 -0
  919. package/src/core/instructions/trigger.ts +15 -0
  920. package/src/core/instructions/withdraw.ts +21 -0
  921. package/src/core/remainingAccounts.ts +47 -3
  922. package/src/core/signedMsg.ts +38 -0
  923. package/src/decode/customCoder.ts +46 -3
  924. package/src/decode/user.ts +22 -0
  925. package/src/dlob/DLOB.ts +668 -97
  926. package/src/dlob/DLOBNode.ts +98 -6
  927. package/src/dlob/DLOBSubscriber.ts +49 -12
  928. package/src/dlob/NodeList.ts +69 -0
  929. package/src/dlob/orderBookLevels.ts +108 -14
  930. package/src/dlob/types.ts +15 -0
  931. package/src/events/eventList.ts +14 -0
  932. package/src/events/eventSubscriber.ts +100 -19
  933. package/src/events/eventsServerLogProvider.ts +28 -0
  934. package/src/events/fetchLogs.ts +52 -2
  935. package/src/events/parse.ts +23 -0
  936. package/src/events/pollingLogProvider.ts +24 -0
  937. package/src/events/sort.ts +12 -0
  938. package/src/events/txEventCache.ts +19 -7
  939. package/src/events/types.ts +131 -11
  940. package/src/events/webSocketLogProvider.ts +29 -0
  941. package/src/factory/oracleClient.ts +2 -2
  942. package/src/idl/velocity.json +4 -4
  943. package/src/idl/velocity.ts +4 -4
  944. package/src/keypair.ts +8 -0
  945. package/src/marginCalculation.ts +153 -2
  946. package/src/math/amm.ts +371 -36
  947. package/src/math/auction.ts +139 -30
  948. package/src/math/bankruptcy.ts +104 -1
  949. package/src/math/builder.ts +74 -8
  950. package/src/math/conversion.ts +21 -0
  951. package/src/math/exchangeStatus.ts +117 -2
  952. package/src/math/funding.ts +63 -23
  953. package/src/math/insurance.ts +62 -0
  954. package/src/math/liquidation.ts +227 -17
  955. package/src/math/margin.ts +80 -14
  956. package/src/math/market.ts +148 -17
  957. package/src/math/oracles.ts +124 -0
  958. package/src/math/orders.ts +141 -19
  959. package/src/math/position.ts +80 -33
  960. package/src/math/repeg.ts +48 -10
  961. package/src/math/spotBalance.ts +252 -12
  962. package/src/math/spotMarket.ts +36 -3
  963. package/src/math/spotPosition.ts +72 -0
  964. package/src/math/state.ts +31 -0
  965. package/src/math/superStake.ts +126 -3
  966. package/src/math/tiers.ts +29 -0
  967. package/src/math/trade.ts +125 -55
  968. package/src/math/utils.ts +71 -9
  969. package/src/memcmp.ts +104 -2
  970. package/src/oracles/oracleClientCache.ts +16 -0
  971. package/src/oracles/oracleId.ts +39 -6
  972. package/src/oracles/prelaunchOracleClient.ts +20 -0
  973. package/src/oracles/pythClient.ts +32 -1
  974. package/src/oracles/pythLazerClient.ts +35 -1
  975. package/src/oracles/quoteAssetOracleClient.ts +18 -0
  976. package/src/oracles/strictOraclePrice.ts +21 -0
  977. package/src/oracles/types.ts +45 -0
  978. package/src/oracles/utils.ts +20 -0
  979. package/src/orderParams.ts +42 -4
  980. package/src/orderSubscriber/OrderSubscriber.ts +56 -0
  981. package/src/orderSubscriber/PollingSubscription.ts +11 -0
  982. package/src/orderSubscriber/WebsocketSubscription.ts +18 -0
  983. package/src/orderSubscriber/grpcSubscription.ts +16 -0
  984. package/src/orderSubscriber/types.ts +9 -0
  985. package/src/priorityFee/averageOverSlotsStrategy.ts +1 -0
  986. package/src/priorityFee/averageStrategy.ts +1 -0
  987. package/src/priorityFee/ewmaStrategy.ts +10 -0
  988. package/src/priorityFee/heliusPriorityFeeMethod.ts +13 -2
  989. package/src/priorityFee/maxOverSlotsStrategy.ts +1 -0
  990. package/src/priorityFee/maxStrategy.ts +1 -0
  991. package/src/priorityFee/priorityFeeSubscriber.ts +39 -0
  992. package/src/priorityFee/priorityFeeSubscriberMap.ts +21 -2
  993. package/src/priorityFee/solanaPriorityFeeMethod.ts +12 -0
  994. package/src/priorityFee/types.ts +33 -15
  995. package/src/priorityFee/velocityPriorityFeeMethod.ts +11 -0
  996. package/src/slot/SlotSubscriber.ts +18 -0
  997. package/src/slot/SlothashSubscriber.ts +27 -1
  998. package/src/tx/baseTxSender.ts +185 -5
  999. package/src/tx/blockhashFetcher/baseBlockhashFetcher.ts +12 -0
  1000. package/src/tx/blockhashFetcher/cachedBlockhashFetcher.ts +15 -0
  1001. package/src/tx/blockhashFetcher/types.ts +4 -0
  1002. package/src/tx/fastSingleTxSender.ts +58 -4
  1003. package/src/tx/forwardOnlyTxSender.ts +48 -0
  1004. package/src/tx/reportTransactionError.ts +18 -6
  1005. package/src/tx/retryTxSender.ts +40 -0
  1006. package/src/tx/txHandler.ts +146 -35
  1007. package/src/tx/txParamProcessor.ts +47 -0
  1008. package/src/tx/types.ts +46 -0
  1009. package/src/tx/utils.ts +26 -0
  1010. package/src/tx/whileValidTxSender.ts +82 -0
  1011. package/src/types.ts +777 -24
  1012. package/src/user.ts +869 -110
  1013. package/src/userMap/PollingSubscription.ts +16 -2
  1014. package/src/userMap/WebsocketSubscription.ts +9 -0
  1015. package/src/userMap/grpcSubscription.ts +8 -0
  1016. package/src/userMap/referrerMap.ts +92 -3
  1017. package/src/userMap/revenueShareEscrowMap.ts +38 -11
  1018. package/src/userMap/userMap.ts +82 -4
  1019. package/src/userMap/userMapConfig.ts +23 -10
  1020. package/src/userMap/userStatsMap.ts +22 -0
  1021. package/src/userName.ts +16 -0
  1022. package/src/userStats.ts +28 -1
  1023. package/src/util/TransactionConfirmationManager.ts +33 -0
  1024. package/src/util/chainClock.ts +24 -0
  1025. package/src/util/computeUnits.ts +32 -0
  1026. package/src/util/digest.ts +17 -0
  1027. package/src/util/ed25519Utils.ts +12 -2
  1028. package/src/util/promiseTimeout.ts +9 -0
  1029. package/src/velocityClient.ts +3439 -249
  1030. package/src/wallet.ts +37 -0
  1031. package/tests/VelocityCore/builder_escrow.test.ts +121 -0
  1032. package/tests/amm/test.ts +102 -0
  1033. package/tests/builder/builderFee.test.ts +42 -0
  1034. package/tests/dlob/tickSizeStandardization.ts +545 -0
  1035. package/tests/exchangeStatus/test.ts +45 -0
  1036. package/tests/liquidation/test.ts +125 -0
  1037. package/tests/oracles/mmOracleGate.test.ts +379 -0
  1038. package/tests/oracles/pythPegSnap.test.ts +76 -0
  1039. package/tests/sdkParity/enumParity.test.ts +84 -0
  1040. package/tests/sdkParity/marginCategoryFill.test.ts +143 -0
  1041. package/tests/sdkParity/memcmpOffsets.test.ts +139 -0
  1042. package/tests/spot/test.ts +55 -0
  1043. package/tests/user/bankruptcy.ts +165 -0
  1044. package/tests/user/feeAndWithdrawLimits.ts +284 -0
  1045. package/tests/user/getMarginCalculation.ts +226 -1
  1046. package/tests/user/test.ts +8 -4
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAGN,gBAAgB,EAEhB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,gBAAgB,EAIhB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAkB,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEhD,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,cAAc,CAAC;AAEpD,gGAAgG;AAChG,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEvD,MAAM,WAAW,cAAc;IAC9B,GAAG,EAAE,WAAW,CAAC;IACjB,2BAA2B,EAAE,MAAM,CAAC;IACpC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,2BAA2B,EAAE,MAAM,CAAC;IACpC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,4BAA4B,EAAE,MAAM,CAAC;IACrC,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,2CAA2C;IAC3C,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,gBAAgB,EAAE,SAAS,CAAC;CAC5B;AAED,eAAO,MAAM,mBAAmB,gDACc,CAAC;AAE/C,eAAO,MAAM,0BAA0B,gDACO,CAAC;AAE/C,eAAO,MAAM,2BAA2B,iDACO,CAAC;AAEhD,eAAO,MAAM,qBAAqB,gDACY,CAAC;AAE/C,eAAO,MAAM,uBAAuB,WAEnC,CAAC;AACF,eAAO,MAAM,wBAAwB,WAEpC,CAAC;AACF,eAAO,MAAM,8BAA8B,WAE1C,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,cAGvC,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE;KAAG,GAAG,IAAI,WAAW,GAAG,cAAc;CAoC3D,CAAC;AAIF,eAAO,MAAM,SAAS,QAAO,cAA+B,CAAC;AAE7D;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,UAAW;IACjC,GAAG,EAAE,iBAAiB,CAAC;IACvB,WAAW,CAAC,EAAE,QAAQ,cAAc,CAAC,CAAC;CACtC,KAAG,cAOH,CAAC;AAEF,wBAAgB,mCAAmC,CAClD,GAAG,EAAE,WAAW,EAChB,WAAW,CAAC,EAAE,gBAAgB,EAAE,EAChC,WAAW,CAAC,EAAE,gBAAgB,EAAE,GAC9B;IACF,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,WAAW,EAAE,UAAU,EAAE,CAAC;CAC1B,CAmCA;AAED,wBAAsB,uBAAuB,CAC5C,OAAO,EAAE,eAAe,GACtB,OAAO,CAAC;IACV,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;CACxC,CAAC,CAyCD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
@@ -2,20 +2,30 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.findAllMarketAndOracles = exports.getMarketsAndOraclesForSubscription = exports.initialize = exports.getConfig = exports.configs = exports.DEFAULT_CONFIRMATION_OPTS = exports.PYTH_LAZER_STORAGE_ACCOUNT_KEY = exports.SB_ON_DEMAND_MAINNET_PID = exports.SB_ON_DEMAND_DEVNET_PID = exports.PYTH_LAZER_PROGRAM_ID = exports.VELOCITY_ORACLE_RECEIVER_ID = exports.VELOCITY_DEVNET_PROGRAM_ID = exports.VELOCITY_PROGRAM_ID = void 0;
4
4
  const web3_js_1 = require("@solana/web3.js");
5
+ const types_1 = require("./types");
5
6
  const perpMarkets_1 = require("./constants/perpMarkets");
6
7
  const spotMarkets_1 = require("./constants/spotMarkets");
7
8
  const oracleId_1 = require("./oracles/oracleId");
9
+ /** Mainnet-beta velocity program id, base58. */
8
10
  exports.VELOCITY_PROGRAM_ID = 'vELoC1audYbSYVRXn1vPaV8Axoa9oU6BYmNGZZBDZ1P';
11
+ /** Devnet velocity program id, base58. */
9
12
  exports.VELOCITY_DEVNET_PROGRAM_ID = 'vELoC1audYbSYVRXn1vPaV8Axoa9oU6BYmNGZZBDZ1P';
13
+ /** Velocity's oracle-receiver program id, base58 (same across devnet and mainnet-beta). */
10
14
  exports.VELOCITY_ORACLE_RECEIVER_ID = 'G6EoTTTgpkNBtVXo96EQp2m6uwwVh2Kt6YidjkmQqoha';
15
+ /** Pyth Lazer program id, base58. */
11
16
  exports.PYTH_LAZER_PROGRAM_ID = 'pytd2yyk641x7ak7mkaasSJVXh6YYZnC7wTmtgAyxPt';
17
+ /** Switchboard On-Demand program id on devnet. */
12
18
  exports.SB_ON_DEMAND_DEVNET_PID = new web3_js_1.PublicKey('Aio4gaXjXzJNVLtzwtNVmSqGKpANtXhybbkhtAC94ji2');
19
+ /** Switchboard On-Demand program id on mainnet-beta. */
13
20
  exports.SB_ON_DEMAND_MAINNET_PID = new web3_js_1.PublicKey('SBondMDrcV3K4kxZR1HNVT7osZxAHVHgYXL5Ze1oMUv');
21
+ /** Pyth Lazer storage account holding feed metadata, shared across environments. */
14
22
  exports.PYTH_LAZER_STORAGE_ACCOUNT_KEY = new web3_js_1.PublicKey('3rdJbqfnagQ4yx9HXJViD4zc4xpiSqmFsKpPuSCQVyQL');
23
+ /** Default `ConfirmOptions` (both preflight and confirmation at `'confirmed'` commitment) used across the SDK's tx senders unless overridden. */
15
24
  exports.DEFAULT_CONFIRMATION_OPTS = {
16
25
  preflightCommitment: 'confirmed',
17
26
  commitment: 'confirmed',
18
27
  };
28
+ /** Built-in `VelocityConfig` presets for each supported environment. */
19
29
  exports.configs = {
20
30
  devnet: {
21
31
  ENV: 'devnet',
@@ -37,7 +47,9 @@ exports.configs = {
37
47
  PYTH_ORACLE_MAPPING_ADDRESS: 'AHtgzX45WTKfkPG53L6WYhGEXwQkN1BVknET3sVsLL8J',
38
48
  VELOCITY_PROGRAM_ID: exports.VELOCITY_PROGRAM_ID,
39
49
  JIT_PROXY_PROGRAM_ID: 'J1TnP8zvVxbtF5KFp5xRmWuvG9McnhzmBd9XGfCyuxFP',
40
- QUOTE_MINT_ADDRESS: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
50
+ // Relaunch quote market (spot 0) is USDT — see
51
+ // deploy-scripts/params/relaunch-spot-markets.json.
52
+ QUOTE_MINT_ADDRESS: 'Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB',
41
53
  V2_ALPHA_TICKET_MINT_ADDRESS: 'Cmvhycb6LQvvzaShGw4iDHRLzeSSryioAsU98DSSkMNa',
42
54
  PERP_MARKETS: perpMarkets_1.MainnetPerpMarkets,
43
55
  SPOT_MARKETS: spotMarkets_1.MainnetSpotMarkets,
@@ -51,15 +63,24 @@ exports.configs = {
51
63
  SB_ON_DEMAND_PID: exports.SB_ON_DEMAND_MAINNET_PID,
52
64
  },
53
65
  };
66
+ /** Module-level active config; defaults to the `devnet` preset until `initialize()` is called. */
54
67
  let currentConfig = exports.configs.devnet;
68
+ /**
69
+ * Returns the SDK's currently active `VelocityConfig` (the `devnet` preset by default, or
70
+ * whatever was last set via `initialize()`).
71
+ * @returns The active config.
72
+ */
55
73
  const getConfig = () => currentConfig;
56
74
  exports.getConfig = getConfig;
57
75
  /**
58
- * Allows customization of the SDK's environment and endpoints. You can pass individual settings to override the settings with your own presets.
76
+ * Sets the SDK's active environment/config, read thereafter via `getConfig()`. This mutates
77
+ * process-wide module state — call it once at startup before constructing clients, not
78
+ * concurrently with multiple environments in the same process.
59
79
  *
60
- * Defaults to master environment if you don't use this function.
61
- * @param props
62
- * @returns
80
+ * Defaults to the `devnet` preset if you never call this function.
81
+ * @param props.env - Environment to activate; `'master'` is accepted as a legacy alias for `'devnet'`.
82
+ * @param props.overrideEnv - Partial fields to overlay on top of the selected preset (e.g. a custom `VELOCITY_PROGRAM_ID`).
83
+ * @returns The resulting active `VelocityConfig` (preset merged with `overrideEnv`).
63
84
  */
64
85
  const initialize = (props) => {
65
86
  var _a;
@@ -69,6 +90,34 @@ const initialize = (props) => {
69
90
  return currentConfig;
70
91
  };
71
92
  exports.initialize = initialize;
93
+ /**
94
+ * Whether the SDK can construct an `OracleClient` for `source` — mirrors the throwing branches in
95
+ * `getOracleClient`. Markets whose oracle source is unsupported (retired Switchboard feeds and
96
+ * removed Pyth pull feeds) are still listed/indexed, but their oracles must not be added to
97
+ * subscription lists, since building a client for them throws and would abort the whole subscribe.
98
+ */
99
+ function isOracleSourceSubscribable(source) {
100
+ return !((0, types_1.isVariant)(source, 'deprecatedSwitchboard') ||
101
+ (0, types_1.isVariant)(source, 'deprecatedSwitchboardOnDemand') ||
102
+ (0, types_1.isVariant)(source, 'pythPull') ||
103
+ (0, types_1.isVariant)(source, 'pyth1KPull') ||
104
+ (0, types_1.isVariant)(source, 'pyth1MPull') ||
105
+ (0, types_1.isVariant)(source, 'pythStableCoinPull'));
106
+ }
107
+ /**
108
+ * Builds the market-index and oracle-subscription lists a `VelocityClient` needs to subscribe to,
109
+ * from static market configs (no RPC calls) — the fast, offline alternative to
110
+ * `findAllMarketAndOracles`. Oracles are de-duplicated by `getOracleId` (pubkey + source), so a
111
+ * pubkey shared across multiple markets under the same source only appears once.
112
+ * @param env - Environment whose built-in market lists (`PerpMarkets[env]`/`SpotMarkets[env]`) are
113
+ * used as the fallback when `perpMarkets`/`spotMarkets` aren't supplied.
114
+ * @param perpMarkets - Explicit perp market configs to use instead of the environment default; if
115
+ * omitted or empty, falls back to `PerpMarkets[env]`.
116
+ * @param spotMarkets - Explicit spot market configs to use instead of the environment default; if
117
+ * omitted or empty, falls back to `SpotMarkets[env]`.
118
+ * @returns `perpMarketIndexes`/`spotMarketIndexes` for every market considered, and the
119
+ * de-duplicated `oracleInfos` needed to subscribe to their oracles.
120
+ */
72
121
  function getMarketsAndOraclesForSubscription(env, perpMarkets, spotMarkets) {
73
122
  const perpMarketsToUse = perpMarkets !== undefined && perpMarkets.length > 0
74
123
  ? perpMarkets
@@ -81,17 +130,21 @@ function getMarketsAndOraclesForSubscription(env, perpMarkets, spotMarkets) {
81
130
  const oracleInfos = new Map();
82
131
  for (const market of perpMarketsToUse) {
83
132
  perpMarketIndexes.push(market.marketIndex);
84
- oracleInfos.set((0, oracleId_1.getOracleId)(market.oracle, market.oracleSource), {
85
- publicKey: market.oracle,
86
- source: market.oracleSource,
87
- });
133
+ if (isOracleSourceSubscribable(market.oracleSource)) {
134
+ oracleInfos.set((0, oracleId_1.getOracleId)(market.oracle, market.oracleSource), {
135
+ publicKey: market.oracle,
136
+ source: market.oracleSource,
137
+ });
138
+ }
88
139
  }
89
140
  for (const spotMarket of spotMarketsToUse) {
90
141
  spotMarketIndexes.push(spotMarket.marketIndex);
91
- oracleInfos.set((0, oracleId_1.getOracleId)(spotMarket.oracle, spotMarket.oracleSource), {
92
- publicKey: spotMarket.oracle,
93
- source: spotMarket.oracleSource,
94
- });
142
+ if (isOracleSourceSubscribable(spotMarket.oracleSource)) {
143
+ oracleInfos.set((0, oracleId_1.getOracleId)(spotMarket.oracle, spotMarket.oracleSource), {
144
+ publicKey: spotMarket.oracle,
145
+ source: spotMarket.oracleSource,
146
+ });
147
+ }
95
148
  }
96
149
  return {
97
150
  perpMarketIndexes: perpMarketIndexes,
@@ -100,6 +153,16 @@ function getMarketsAndOraclesForSubscription(env, perpMarkets, spotMarkets) {
100
153
  };
101
154
  }
102
155
  exports.getMarketsAndOraclesForSubscription = getMarketsAndOraclesForSubscription;
156
+ /**
157
+ * Discovers every perp/spot market currently deployed under `program`'s program id via
158
+ * `getProgramAccounts` (`perpMarket.all()`/`spotMarket.all()`), rather than relying on a static
159
+ * config list — use this to pick up markets added after the SDK's bundled configs were published,
160
+ * or when running against a custom/unlisted deployment. Oracles are de-duplicated by `getOracleId`
161
+ * (pubkey + source).
162
+ * @param program - Anchor program client used to fetch all `PerpMarket`/`SpotMarket` accounts.
163
+ * @returns Market indexes and full decoded accounts for every discovered perp/spot market, plus
164
+ * the de-duplicated `oracleInfos` needed to subscribe to their oracles.
165
+ */
103
166
  async function findAllMarketAndOracles(program) {
104
167
  const perpMarketIndexes = [];
105
168
  const spotMarketIndexes = [];
@@ -109,18 +172,22 @@ async function findAllMarketAndOracles(program) {
109
172
  for (const perpMarketProgramAccount of perpMarketProgramAccounts) {
110
173
  const perpMarket = perpMarketProgramAccount.account;
111
174
  perpMarketIndexes.push(perpMarket.marketIndex);
112
- oracleInfos.set((0, oracleId_1.getOracleId)(perpMarket.oracle, perpMarket.oracleSource), {
113
- publicKey: perpMarket.oracle,
114
- source: perpMarket.oracleSource,
115
- });
175
+ if (isOracleSourceSubscribable(perpMarket.oracleSource)) {
176
+ oracleInfos.set((0, oracleId_1.getOracleId)(perpMarket.oracle, perpMarket.oracleSource), {
177
+ publicKey: perpMarket.oracle,
178
+ source: perpMarket.oracleSource,
179
+ });
180
+ }
116
181
  }
117
182
  for (const spotMarketProgramAccount of spotMarketProgramAccounts) {
118
183
  const spotMarket = spotMarketProgramAccount.account;
119
184
  spotMarketIndexes.push(spotMarket.marketIndex);
120
- oracleInfos.set((0, oracleId_1.getOracleId)(spotMarket.oracle, spotMarket.oracleSource), {
121
- publicKey: spotMarket.oracle,
122
- source: spotMarket.oracleSource,
123
- });
185
+ if (isOracleSourceSubscribable(spotMarket.oracleSource)) {
186
+ oracleInfos.set((0, oracleId_1.getOracleId)(spotMarket.oracle, spotMarket.oracleSource), {
187
+ publicKey: spotMarket.oracle,
188
+ source: spotMarket.oracleSource,
189
+ });
190
+ }
124
191
  }
125
192
  return {
126
193
  perpMarketIndexes,
@@ -1,4 +1,5 @@
1
1
  import { BN } from '../isomorphic/anchor';
2
+ /** Precision constants used throughout the SDK. Each mirrors an on-chain fixed-point scale — a raw `BN` amount at that precision represents `amount / 10^exponent` in human units (e.g. `PRICE_PRECISION` = 1e6, so a raw price of `1_500_000` is `$1.50`). Values must stay numerically identical to the Rust program's `math::constants` — a mismatch here silently mis-scales every derived SDK computation. */
2
3
  export declare const ZERO: BN;
3
4
  export declare const ONE: BN;
4
5
  export declare const TWO: BN;
@@ -11,64 +12,130 @@ export declare const EIGHT: BN;
11
12
  export declare const NINE: BN;
12
13
  export declare const TEN: BN;
13
14
  export declare const TEN_THOUSAND: BN;
15
+ /** Largest value safely representable as a JS `number` (2^53 - 1), wrapped in a `BN`; used as a practical "infinite" ceiling, not an on-chain limit. */
14
16
  export declare const BN_MAX: BN;
15
17
  export declare const TEN_MILLION: BN;
18
+ /** Default max leverage (5x) used by SDK helpers when a market's actual `marginRatioInitial` isn't available. */
16
19
  export declare const MAX_LEVERAGE: BN;
20
+ /** `u64::MAX`; sentinel order size meaning "close the whole position" in reduce-only market-order helpers. */
17
21
  export declare const MAX_LEVERAGE_ORDER_SIZE: BN;
22
+ /** Exponent for `PERCENTAGE_PRECISION` (1e6). */
18
23
  export declare const PERCENTAGE_PRECISION_EXP: BN;
24
+ /** 1e6; precision for percentage/fraction fields (e.g. AMM concentration coefficient, funding ramp slope, LP pool volatility). */
19
25
  export declare const PERCENTAGE_PRECISION: BN;
26
+ /** Alias of `PERCENTAGE_PRECISION` (1e6) for the AMM's `concentrationCoef` field. */
20
27
  export declare const CONCENTRATION_PRECISION: BN;
28
+ /** Exponent for `QUOTE_PRECISION` (1e6). */
21
29
  export declare const QUOTE_PRECISION_EXP: BN;
30
+ /** Exponent for `FUNDING_RATE_BUFFER_PRECISION` (1e3) — the extra precision funding rates carry beyond `PRICE_PRECISION`. */
22
31
  export declare const FUNDING_RATE_BUFFER_PRECISION_EXP: BN;
32
+ /** Exponent for `PRICE_PRECISION` (1e6). */
23
33
  export declare const PRICE_PRECISION_EXP: BN;
34
+ /** Exponent for `FUNDING_RATE_PRECISION` (1e9) = `PRICE_PRECISION_EXP` + `FUNDING_RATE_BUFFER_PRECISION_EXP`. */
24
35
  export declare const FUNDING_RATE_PRECISION_EXP: BN;
36
+ /** Exponent for `PEG_PRECISION` (1e6). */
25
37
  export declare const PEG_PRECISION_EXP: BN;
38
+ /** Exponent for `AMM_RESERVE_PRECISION` / `BASE_PRECISION` (1e9). */
26
39
  export declare const AMM_RESERVE_PRECISION_EXP: BN;
40
+ /** Exponent for `SPOT_MARKET_RATE_PRECISION` (1e6). */
27
41
  export declare const SPOT_MARKET_RATE_PRECISION_EXP: BN;
42
+ /** 1e6; precision for spot market interest-rate fields (`optimalBorrowRate`, `maxBorrowRate`). */
28
43
  export declare const SPOT_MARKET_RATE_PRECISION: BN;
44
+ /** Exponent for `SPOT_MARKET_CUMULATIVE_INTEREST_PRECISION` (1e10). */
29
45
  export declare const SPOT_MARKET_CUMULATIVE_INTEREST_PRECISION_EXP: BN;
46
+ /** 1e10; precision for `SpotMarketAccount.cumulativeDepositInterest`/`cumulativeBorrowInterest`. */
30
47
  export declare const SPOT_MARKET_CUMULATIVE_INTEREST_PRECISION: BN;
48
+ /** Exponent for `SPOT_MARKET_UTILIZATION_PRECISION` (1e6). */
31
49
  export declare const SPOT_MARKET_UTILIZATION_PRECISION_EXP: BN;
50
+ /** 1e6; precision for spot market utilization fields (`optimalUtilization`, `utilizationTwap`). */
32
51
  export declare const SPOT_MARKET_UTILIZATION_PRECISION: BN;
52
+ /** 1e4; precision for spot asset/liability weight fields (`initialAssetWeight`, `maintenanceLiabilityWeight`, etc). Same scale as `MARGIN_PRECISION`. */
33
53
  export declare const SPOT_MARKET_WEIGHT_PRECISION: BN;
54
+ /** Exponent for `SPOT_MARKET_BALANCE_PRECISION` (1e9). */
34
55
  export declare const SPOT_MARKET_BALANCE_PRECISION_EXP: BN;
56
+ /** 1e9; precision for scaled spot balances (`SpotPosition.scaledBalance`, `PoolBalance.scaledBalance`, `depositBalance`/`borrowBalance`). Multiply by the market's cumulative interest to get the token amount. */
35
57
  export declare const SPOT_MARKET_BALANCE_PRECISION: BN;
58
+ /** Exponent for `SPOT_MARKET_IMF_PRECISION` (1e6). */
36
59
  export declare const SPOT_MARKET_IMF_PRECISION_EXP: BN;
60
+ /** 1e6; precision for `imfFactor`-style fields (deprecated alias — most `imfFactor` fields use `MARGIN_PRECISION`, 1e4). */
37
61
  export declare const SPOT_MARKET_IMF_PRECISION: BN;
62
+ /** 1e6; precision for `liquidatorFee`/`ifLiquidationFee`/`protocolLiquidationFee` fields on perp and spot markets. */
38
63
  export declare const LIQUIDATION_FEE_PRECISION: BN;
64
+ /** 1e6; precision for quote-asset (USD-denominated) amounts — pnl, deposits/withdraws, fees, collateral. The protocol's most widely used precision. */
39
65
  export declare const QUOTE_PRECISION: BN;
66
+ /** 1e6; precision for prices (`Order.price`, oracle prices, TWAPs, `oraclePriceOffset`). */
40
67
  export declare const PRICE_PRECISION: BN;
68
+ /** 1e9; precision for funding-rate fields (`cumulativeFundingRateLong/Short`, `lastFundingRate`, `FundingRateRecord.fundingRate`). Unit is quote per base. */
41
69
  export declare const FUNDING_RATE_PRECISION: BN;
70
+ /** 1e3; the extra scale factor between `PRICE_PRECISION` and `FUNDING_RATE_PRECISION`. */
42
71
  export declare const FUNDING_RATE_BUFFER_PRECISION: BN;
72
+ /** 1e6; precision for `AMM.pegMultiplier`, normalizing the AMM's quote reserve. */
43
73
  export declare const PEG_PRECISION: BN;
74
+ /** 1e9; precision for AMM constant-product reserves (`baseAssetReserve`, `quoteAssetReserve`, `sqrtK`, etc). Same scale as `BASE_PRECISION`. */
44
75
  export declare const AMM_RESERVE_PRECISION: BN;
76
+ /** 1e9; precision for perp base-asset amounts (position size, `Order.baseAssetAmount`, open interest). Alias of `AMM_RESERVE_PRECISION`. */
45
77
  export declare const BASE_PRECISION: BN;
46
78
  export declare const BASE_PRECISION_EXP: BN;
79
+ /** 1e3; ratio to convert an `AMM_RESERVE_PRECISION` amount into `QUOTE_PRECISION` units (at peg = 1). */
47
80
  export declare const AMM_TO_QUOTE_PRECISION_RATIO: BN;
81
+ /** 1e1 (=10); ratio between `PRICE_PRECISION` and `PEG_PRECISION`. */
48
82
  export declare const PRICE_DIV_PEG: BN;
83
+ /** 1e1 (=10); ratio between `PRICE_PRECISION` and `QUOTE_PRECISION`. */
49
84
  export declare const PRICE_TO_QUOTE_PRECISION: BN;
85
+ /** 1e9; combined `AMM_RESERVE_PRECISION * PEG_PRECISION / QUOTE_PRECISION` conversion ratio used in AMM quote-value math. */
50
86
  export declare const AMM_TIMES_PEG_TO_QUOTE_PRECISION_RATIO: BN;
87
+ /** 1e4; precision for margin-ratio fields (`marginRatioInitial`, `marginRatioMaintenance`, `imfFactor`, `maxMarginRatio`, `StateAccount.liquidationMarginBufferRatio`). */
51
88
  export declare const MARGIN_PRECISION: BN;
89
+ /** 1e4; precision for basis-point fields where 1 unit = 1 bp (e.g. `PerpMarketAccount.fundingClampThreshold`). */
52
90
  export declare const BPS_PRECISION: BN;
91
+ /** 1e6; precision for AMM bid/ask spread fields (`baseSpread`, `maxSpread`, `longSpread`, `shortSpread`, `lastOracleReservePriceSpreadPct`). */
53
92
  export declare const BID_ASK_SPREAD_PRECISION: BN;
93
+ /** 1e4; precision for `StateAccount.initialPctToLiquidate`, the fraction of a position liquidated per partial-liquidation pass. */
54
94
  export declare const LIQUIDATION_PCT_PRECISION: BN;
95
+ /** Denominator (3333) used to derive `FUNDING_RATE_OFFSET_PERCENTAGE`; yields ~10.95% annualized when applied hourly. */
55
96
  export declare const FUNDING_RATE_OFFSET_DENOMINATOR: BN;
97
+ /** `FUNDING_RATE_PRECISION / FUNDING_RATE_OFFSET_DENOMINATOR`; the default funding-rate offset floor/ceiling nudge. */
56
98
  export declare const FUNDING_RATE_OFFSET_PERCENTAGE: BN;
99
+ /** Denominator (2000, i.e. 0.05%) used to clamp per-update funding-rate changes. */
57
100
  export declare const FUNDING_RATE_CLAMP_DENOMINATOR: BN;
101
+ /** `PRICE_PRECISION * AMM_TO_QUOTE_PRECISION_RATIO`; combined conversion ratio used when pricing AMM reserve amounts directly in quote terms. */
58
102
  export declare const PRICE_TIMES_AMM_TO_QUOTE_PRECISION_RATIO: BN;
103
+ /** 300 seconds. */
59
104
  export declare const FIVE_MINUTE: BN;
105
+ /** 3600 seconds. */
60
106
  export declare const ONE_HOUR: BN;
107
+ /** 31,536,000 seconds (365 days). */
61
108
  export declare const ONE_YEAR: BN;
109
+ /** Market index of the protocol's quote spot market (USDC on mainnet). */
62
110
  export declare const QUOTE_SPOT_MARKET_INDEX = 0;
111
+ /** 1e9 (`LAMPORTS_PER_SOL`); token-mint precision for wrapped SOL spot markets. */
63
112
  export declare const LAMPORTS_PRECISION: BN;
113
+ /** 9; decimal exponent for `LAMPORTS_PRECISION`. */
64
114
  export declare const LAMPORTS_EXP: BN;
115
+ /** `QUOTE_PRECISION / 100` = $0.01; per-open-order margin requirement reserved against free collateral. */
65
116
  export declare const OPEN_ORDER_MARGIN_REQUIREMENT: BN;
117
+ /** -$25 (`QUOTE_PRECISION`); default floor for `AMM.netRevenueSinceLastFunding` below which the funding-rate spread retreats, damping the AMM from over-widening its spread after a large one-off loss. */
66
118
  export declare const DEFAULT_REVENUE_SINCE_LAST_FUNDING_SPREAD_RETREAT: BN;
119
+ /** 13 days in seconds; minimum account age before an idle user account becomes eligible for keeper-initiated deletion. */
67
120
  export declare const ACCOUNT_AGE_DELETION_CUTOFF_SECONDS: number;
121
+ /** Slots of inactivity (~1 week at `SLOT_TIME_ESTIMATE_MS`) after which a user account is eligible to be marked idle. */
68
122
  export declare const IDLE_TIME_SLOTS = 9000;
123
+ /** Approximate Solana slot duration in milliseconds, used by the SDK to convert between slots and wall-clock time. */
69
124
  export declare const SLOT_TIME_ESTIMATE_MS = 400;
125
+ /** `QUOTE_PRECISION / 100` = $0.01; a perp position smaller than this is treated as dust (safe to ignore/close for free). */
70
126
  export declare const DUST_POSITION_SIZE: BN;
127
+ /**
128
+ * $100 (`QUOTE_PRECISION`); the cap on a user's unrealized positive perp PnL that may count toward
129
+ * *initial* margin (free collateral for opening/increasing positions). Unrealized profit beyond
130
+ * this amount is not double-counted as collateral for new risk — it still counts in full for
131
+ * maintenance-margin (liquidation) calculations. Mirrors the Rust
132
+ * `MAX_POSITIVE_UPNL_FOR_INITIAL_MARGIN` constant; keep both in sync.
133
+ */
134
+ export declare const MAX_POSITIVE_UPNL_FOR_INITIAL_MARGIN: BN;
135
+ /** Max number of pubkeys per `getMultipleAccounts` RPC call the SDK will batch (RPC-imposed ceiling is 100; kept at 99 for headroom). */
71
136
  export declare const GET_MULTIPLE_ACCOUNTS_CHUNK_SIZE = 99;
137
+ /** `i64::MAX` (9223372036854775807). */
72
138
  export declare const MAX_I64: BN;
139
+ /** `i64::MIN` (-9223372036854775808). */
73
140
  export declare const MIN_I64: BN;
74
141
  //# sourceMappingURL=numericConstants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"numericConstants.d.ts","sourceRoot":"","sources":["../../../src/constants/numericConstants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"numericConstants.d.ts","sourceRoot":"","sources":["../../../src/constants/numericConstants.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MARGIN_PRECISION = exports.AMM_TIMES_PEG_TO_QUOTE_PRECISION_RATIO = exports.PRICE_TO_QUOTE_PRECISION = exports.PRICE_DIV_PEG = exports.AMM_TO_QUOTE_PRECISION_RATIO = exports.BASE_PRECISION_EXP = exports.BASE_PRECISION = exports.AMM_RESERVE_PRECISION = exports.PEG_PRECISION = exports.FUNDING_RATE_BUFFER_PRECISION = exports.FUNDING_RATE_PRECISION = exports.PRICE_PRECISION = exports.QUOTE_PRECISION = exports.LIQUIDATION_FEE_PRECISION = exports.SPOT_MARKET_IMF_PRECISION = exports.SPOT_MARKET_IMF_PRECISION_EXP = exports.SPOT_MARKET_BALANCE_PRECISION = exports.SPOT_MARKET_BALANCE_PRECISION_EXP = exports.SPOT_MARKET_WEIGHT_PRECISION = exports.SPOT_MARKET_UTILIZATION_PRECISION = exports.SPOT_MARKET_UTILIZATION_PRECISION_EXP = exports.SPOT_MARKET_CUMULATIVE_INTEREST_PRECISION = exports.SPOT_MARKET_CUMULATIVE_INTEREST_PRECISION_EXP = exports.SPOT_MARKET_RATE_PRECISION = exports.SPOT_MARKET_RATE_PRECISION_EXP = exports.AMM_RESERVE_PRECISION_EXP = exports.PEG_PRECISION_EXP = exports.FUNDING_RATE_PRECISION_EXP = exports.PRICE_PRECISION_EXP = exports.FUNDING_RATE_BUFFER_PRECISION_EXP = exports.QUOTE_PRECISION_EXP = exports.CONCENTRATION_PRECISION = exports.PERCENTAGE_PRECISION = exports.PERCENTAGE_PRECISION_EXP = exports.MAX_LEVERAGE_ORDER_SIZE = exports.MAX_LEVERAGE = exports.TEN_MILLION = exports.BN_MAX = exports.TEN_THOUSAND = exports.TEN = exports.NINE = exports.EIGHT = exports.SEVEN = exports.SIX = exports.FIVE = exports.FOUR = exports.THREE = exports.TWO = exports.ONE = exports.ZERO = void 0;
4
- exports.MIN_I64 = exports.MAX_I64 = exports.GET_MULTIPLE_ACCOUNTS_CHUNK_SIZE = exports.DUST_POSITION_SIZE = exports.SLOT_TIME_ESTIMATE_MS = exports.IDLE_TIME_SLOTS = exports.ACCOUNT_AGE_DELETION_CUTOFF_SECONDS = exports.DEFAULT_REVENUE_SINCE_LAST_FUNDING_SPREAD_RETREAT = exports.OPEN_ORDER_MARGIN_REQUIREMENT = exports.LAMPORTS_EXP = exports.LAMPORTS_PRECISION = exports.QUOTE_SPOT_MARKET_INDEX = exports.ONE_YEAR = exports.ONE_HOUR = exports.FIVE_MINUTE = exports.PRICE_TIMES_AMM_TO_QUOTE_PRECISION_RATIO = exports.FUNDING_RATE_CLAMP_DENOMINATOR = exports.FUNDING_RATE_OFFSET_PERCENTAGE = exports.FUNDING_RATE_OFFSET_DENOMINATOR = exports.LIQUIDATION_PCT_PRECISION = exports.BID_ASK_SPREAD_PRECISION = exports.BPS_PRECISION = void 0;
4
+ exports.MIN_I64 = exports.MAX_I64 = exports.GET_MULTIPLE_ACCOUNTS_CHUNK_SIZE = exports.MAX_POSITIVE_UPNL_FOR_INITIAL_MARGIN = exports.DUST_POSITION_SIZE = exports.SLOT_TIME_ESTIMATE_MS = exports.IDLE_TIME_SLOTS = exports.ACCOUNT_AGE_DELETION_CUTOFF_SECONDS = exports.DEFAULT_REVENUE_SINCE_LAST_FUNDING_SPREAD_RETREAT = exports.OPEN_ORDER_MARGIN_REQUIREMENT = exports.LAMPORTS_EXP = exports.LAMPORTS_PRECISION = exports.QUOTE_SPOT_MARKET_INDEX = exports.ONE_YEAR = exports.ONE_HOUR = exports.FIVE_MINUTE = exports.PRICE_TIMES_AMM_TO_QUOTE_PRECISION_RATIO = exports.FUNDING_RATE_CLAMP_DENOMINATOR = exports.FUNDING_RATE_OFFSET_PERCENTAGE = exports.FUNDING_RATE_OFFSET_DENOMINATOR = exports.LIQUIDATION_PCT_PRECISION = exports.BID_ASK_SPREAD_PRECISION = exports.BPS_PRECISION = void 0;
5
5
  const web3_js_1 = require("@solana/web3.js");
6
6
  const anchor_1 = require("../isomorphic/anchor");
7
+ /** Precision constants used throughout the SDK. Each mirrors an on-chain fixed-point scale — a raw `BN` amount at that precision represents `amount / 10^exponent` in human units (e.g. `PRICE_PRECISION` = 1e6, so a raw price of `1_500_000` is `$1.50`). Values must stay numerically identical to the Rust program's `math::constants` — a mismatch here silently mis-scales every derived SDK computation. */
7
8
  exports.ZERO = new anchor_1.BN(0);
8
9
  exports.ONE = new anchor_1.BN(1);
9
10
  exports.TWO = new anchor_1.BN(2);
@@ -16,67 +17,133 @@ exports.EIGHT = new anchor_1.BN(8);
16
17
  exports.NINE = new anchor_1.BN(9);
17
18
  exports.TEN = new anchor_1.BN(10);
18
19
  exports.TEN_THOUSAND = new anchor_1.BN(10000);
20
+ /** Largest value safely representable as a JS `number` (2^53 - 1), wrapped in a `BN`; used as a practical "infinite" ceiling, not an on-chain limit. */
19
21
  exports.BN_MAX = new anchor_1.BN(Number.MAX_SAFE_INTEGER);
20
22
  exports.TEN_MILLION = exports.TEN_THOUSAND.mul(exports.TEN_THOUSAND);
23
+ /** Default max leverage (5x) used by SDK helpers when a market's actual `marginRatioInitial` isn't available. */
21
24
  exports.MAX_LEVERAGE = new anchor_1.BN(5);
25
+ /** `u64::MAX`; sentinel order size meaning "close the whole position" in reduce-only market-order helpers. */
22
26
  exports.MAX_LEVERAGE_ORDER_SIZE = new anchor_1.BN('18446744073709551615');
27
+ /** Exponent for `PERCENTAGE_PRECISION` (1e6). */
23
28
  exports.PERCENTAGE_PRECISION_EXP = new anchor_1.BN(6);
29
+ /** 1e6; precision for percentage/fraction fields (e.g. AMM concentration coefficient, funding ramp slope, LP pool volatility). */
24
30
  exports.PERCENTAGE_PRECISION = new anchor_1.BN(10).pow(exports.PERCENTAGE_PRECISION_EXP);
31
+ /** Alias of `PERCENTAGE_PRECISION` (1e6) for the AMM's `concentrationCoef` field. */
25
32
  exports.CONCENTRATION_PRECISION = exports.PERCENTAGE_PRECISION;
33
+ /** Exponent for `QUOTE_PRECISION` (1e6). */
26
34
  exports.QUOTE_PRECISION_EXP = new anchor_1.BN(6);
35
+ /** Exponent for `FUNDING_RATE_BUFFER_PRECISION` (1e3) — the extra precision funding rates carry beyond `PRICE_PRECISION`. */
27
36
  exports.FUNDING_RATE_BUFFER_PRECISION_EXP = new anchor_1.BN(3);
37
+ /** Exponent for `PRICE_PRECISION` (1e6). */
28
38
  exports.PRICE_PRECISION_EXP = new anchor_1.BN(6);
39
+ /** Exponent for `FUNDING_RATE_PRECISION` (1e9) = `PRICE_PRECISION_EXP` + `FUNDING_RATE_BUFFER_PRECISION_EXP`. */
29
40
  exports.FUNDING_RATE_PRECISION_EXP = exports.PRICE_PRECISION_EXP.add(exports.FUNDING_RATE_BUFFER_PRECISION_EXP);
41
+ /** Exponent for `PEG_PRECISION` (1e6). */
30
42
  exports.PEG_PRECISION_EXP = new anchor_1.BN(6);
43
+ /** Exponent for `AMM_RESERVE_PRECISION` / `BASE_PRECISION` (1e9). */
31
44
  exports.AMM_RESERVE_PRECISION_EXP = new anchor_1.BN(9);
45
+ /** Exponent for `SPOT_MARKET_RATE_PRECISION` (1e6). */
32
46
  exports.SPOT_MARKET_RATE_PRECISION_EXP = new anchor_1.BN(6);
47
+ /** 1e6; precision for spot market interest-rate fields (`optimalBorrowRate`, `maxBorrowRate`). */
33
48
  exports.SPOT_MARKET_RATE_PRECISION = new anchor_1.BN(10).pow(exports.SPOT_MARKET_RATE_PRECISION_EXP);
49
+ /** Exponent for `SPOT_MARKET_CUMULATIVE_INTEREST_PRECISION` (1e10). */
34
50
  exports.SPOT_MARKET_CUMULATIVE_INTEREST_PRECISION_EXP = new anchor_1.BN(10);
51
+ /** 1e10; precision for `SpotMarketAccount.cumulativeDepositInterest`/`cumulativeBorrowInterest`. */
35
52
  exports.SPOT_MARKET_CUMULATIVE_INTEREST_PRECISION = new anchor_1.BN(10).pow(exports.SPOT_MARKET_CUMULATIVE_INTEREST_PRECISION_EXP);
53
+ /** Exponent for `SPOT_MARKET_UTILIZATION_PRECISION` (1e6). */
36
54
  exports.SPOT_MARKET_UTILIZATION_PRECISION_EXP = new anchor_1.BN(6);
55
+ /** 1e6; precision for spot market utilization fields (`optimalUtilization`, `utilizationTwap`). */
37
56
  exports.SPOT_MARKET_UTILIZATION_PRECISION = new anchor_1.BN(10).pow(exports.SPOT_MARKET_UTILIZATION_PRECISION_EXP);
57
+ /** 1e4; precision for spot asset/liability weight fields (`initialAssetWeight`, `maintenanceLiabilityWeight`, etc). Same scale as `MARGIN_PRECISION`. */
38
58
  exports.SPOT_MARKET_WEIGHT_PRECISION = new anchor_1.BN(10000);
59
+ /** Exponent for `SPOT_MARKET_BALANCE_PRECISION` (1e9). */
39
60
  exports.SPOT_MARKET_BALANCE_PRECISION_EXP = new anchor_1.BN(9);
61
+ /** 1e9; precision for scaled spot balances (`SpotPosition.scaledBalance`, `PoolBalance.scaledBalance`, `depositBalance`/`borrowBalance`). Multiply by the market's cumulative interest to get the token amount. */
40
62
  exports.SPOT_MARKET_BALANCE_PRECISION = new anchor_1.BN(10).pow(exports.SPOT_MARKET_BALANCE_PRECISION_EXP);
63
+ /** Exponent for `SPOT_MARKET_IMF_PRECISION` (1e6). */
41
64
  exports.SPOT_MARKET_IMF_PRECISION_EXP = new anchor_1.BN(6);
65
+ /** 1e6; precision for `imfFactor`-style fields (deprecated alias — most `imfFactor` fields use `MARGIN_PRECISION`, 1e4). */
42
66
  exports.SPOT_MARKET_IMF_PRECISION = new anchor_1.BN(10).pow(exports.SPOT_MARKET_IMF_PRECISION_EXP);
67
+ /** 1e6; precision for `liquidatorFee`/`ifLiquidationFee`/`protocolLiquidationFee` fields on perp and spot markets. */
43
68
  exports.LIQUIDATION_FEE_PRECISION = new anchor_1.BN(1000000);
69
+ /** 1e6; precision for quote-asset (USD-denominated) amounts — pnl, deposits/withdraws, fees, collateral. The protocol's most widely used precision. */
44
70
  exports.QUOTE_PRECISION = new anchor_1.BN(10).pow(exports.QUOTE_PRECISION_EXP);
71
+ /** 1e6; precision for prices (`Order.price`, oracle prices, TWAPs, `oraclePriceOffset`). */
45
72
  exports.PRICE_PRECISION = new anchor_1.BN(10).pow(exports.PRICE_PRECISION_EXP);
73
+ /** 1e9; precision for funding-rate fields (`cumulativeFundingRateLong/Short`, `lastFundingRate`, `FundingRateRecord.fundingRate`). Unit is quote per base. */
46
74
  exports.FUNDING_RATE_PRECISION = new anchor_1.BN(10).pow(exports.FUNDING_RATE_PRECISION_EXP);
75
+ /** 1e3; the extra scale factor between `PRICE_PRECISION` and `FUNDING_RATE_PRECISION`. */
47
76
  exports.FUNDING_RATE_BUFFER_PRECISION = new anchor_1.BN(10).pow(exports.FUNDING_RATE_BUFFER_PRECISION_EXP);
77
+ /** 1e6; precision for `AMM.pegMultiplier`, normalizing the AMM's quote reserve. */
48
78
  exports.PEG_PRECISION = new anchor_1.BN(10).pow(exports.PEG_PRECISION_EXP);
79
+ /** 1e9; precision for AMM constant-product reserves (`baseAssetReserve`, `quoteAssetReserve`, `sqrtK`, etc). Same scale as `BASE_PRECISION`. */
49
80
  exports.AMM_RESERVE_PRECISION = new anchor_1.BN(10).pow(exports.AMM_RESERVE_PRECISION_EXP);
81
+ /** 1e9; precision for perp base-asset amounts (position size, `Order.baseAssetAmount`, open interest). Alias of `AMM_RESERVE_PRECISION`. */
50
82
  exports.BASE_PRECISION = exports.AMM_RESERVE_PRECISION;
51
83
  exports.BASE_PRECISION_EXP = exports.AMM_RESERVE_PRECISION_EXP;
84
+ /** 1e3; ratio to convert an `AMM_RESERVE_PRECISION` amount into `QUOTE_PRECISION` units (at peg = 1). */
52
85
  exports.AMM_TO_QUOTE_PRECISION_RATIO = exports.AMM_RESERVE_PRECISION.div(exports.QUOTE_PRECISION); // 10^3
86
+ /** 1e1 (=10); ratio between `PRICE_PRECISION` and `PEG_PRECISION`. */
53
87
  exports.PRICE_DIV_PEG = exports.PRICE_PRECISION.div(exports.PEG_PRECISION); //10^1
88
+ /** 1e1 (=10); ratio between `PRICE_PRECISION` and `QUOTE_PRECISION`. */
54
89
  exports.PRICE_TO_QUOTE_PRECISION = exports.PRICE_PRECISION.div(exports.QUOTE_PRECISION); // 10^1
90
+ /** 1e9; combined `AMM_RESERVE_PRECISION * PEG_PRECISION / QUOTE_PRECISION` conversion ratio used in AMM quote-value math. */
55
91
  exports.AMM_TIMES_PEG_TO_QUOTE_PRECISION_RATIO = exports.AMM_RESERVE_PRECISION.mul(exports.PEG_PRECISION).div(exports.QUOTE_PRECISION); // 10^9
92
+ /** 1e4; precision for margin-ratio fields (`marginRatioInitial`, `marginRatioMaintenance`, `imfFactor`, `maxMarginRatio`, `StateAccount.liquidationMarginBufferRatio`). */
56
93
  exports.MARGIN_PRECISION = exports.TEN_THOUSAND;
94
+ /** 1e4; precision for basis-point fields where 1 unit = 1 bp (e.g. `PerpMarketAccount.fundingClampThreshold`). */
57
95
  exports.BPS_PRECISION = exports.TEN_THOUSAND; // 1 unit = 1bp
96
+ /** 1e6; precision for AMM bid/ask spread fields (`baseSpread`, `maxSpread`, `longSpread`, `shortSpread`, `lastOracleReservePriceSpreadPct`). */
58
97
  exports.BID_ASK_SPREAD_PRECISION = new anchor_1.BN(1000000); // 10^6
98
+ /** 1e4; precision for `StateAccount.initialPctToLiquidate`, the fraction of a position liquidated per partial-liquidation pass. */
59
99
  exports.LIQUIDATION_PCT_PRECISION = exports.TEN_THOUSAND;
100
+ /** Denominator (3333) used to derive `FUNDING_RATE_OFFSET_PERCENTAGE`; yields ~10.95% annualized when applied hourly. */
60
101
  exports.FUNDING_RATE_OFFSET_DENOMINATOR = new anchor_1.BN(3333);
102
+ /** `FUNDING_RATE_PRECISION / FUNDING_RATE_OFFSET_DENOMINATOR`; the default funding-rate offset floor/ceiling nudge. */
61
103
  exports.FUNDING_RATE_OFFSET_PERCENTAGE = exports.FUNDING_RATE_PRECISION.div(exports.FUNDING_RATE_OFFSET_DENOMINATOR);
104
+ /** Denominator (2000, i.e. 0.05%) used to clamp per-update funding-rate changes. */
62
105
  exports.FUNDING_RATE_CLAMP_DENOMINATOR = new anchor_1.BN(2000);
106
+ /** `PRICE_PRECISION * AMM_TO_QUOTE_PRECISION_RATIO`; combined conversion ratio used when pricing AMM reserve amounts directly in quote terms. */
63
107
  exports.PRICE_TIMES_AMM_TO_QUOTE_PRECISION_RATIO = exports.PRICE_PRECISION.mul(exports.AMM_TO_QUOTE_PRECISION_RATIO);
108
+ /** 300 seconds. */
64
109
  exports.FIVE_MINUTE = new anchor_1.BN(60 * 5);
110
+ /** 3600 seconds. */
65
111
  exports.ONE_HOUR = new anchor_1.BN(60 * 60);
112
+ /** 31,536,000 seconds (365 days). */
66
113
  exports.ONE_YEAR = new anchor_1.BN(31536000);
114
+ /** Market index of the protocol's quote spot market (USDC on mainnet). */
67
115
  exports.QUOTE_SPOT_MARKET_INDEX = 0;
116
+ /** 1e9 (`LAMPORTS_PER_SOL`); token-mint precision for wrapped SOL spot markets. */
68
117
  exports.LAMPORTS_PRECISION = new anchor_1.BN(web3_js_1.LAMPORTS_PER_SOL);
118
+ /** 9; decimal exponent for `LAMPORTS_PRECISION`. */
69
119
  exports.LAMPORTS_EXP = new anchor_1.BN(Math.log10(web3_js_1.LAMPORTS_PER_SOL));
120
+ /** `QUOTE_PRECISION / 100` = $0.01; per-open-order margin requirement reserved against free collateral. */
70
121
  exports.OPEN_ORDER_MARGIN_REQUIREMENT = exports.QUOTE_PRECISION.div(new anchor_1.BN(100));
122
+ /** -$25 (`QUOTE_PRECISION`); default floor for `AMM.netRevenueSinceLastFunding` below which the funding-rate spread retreats, damping the AMM from over-widening its spread after a large one-off loss. */
71
123
  exports.DEFAULT_REVENUE_SINCE_LAST_FUNDING_SPREAD_RETREAT = new anchor_1.BN(-25).mul(exports.QUOTE_PRECISION);
124
+ /** 13 days in seconds; minimum account age before an idle user account becomes eligible for keeper-initiated deletion. */
72
125
  exports.ACCOUNT_AGE_DELETION_CUTOFF_SECONDS = 60 * 60 * 24 * 13; // 13 days
126
+ /** Slots of inactivity (~1 week at `SLOT_TIME_ESTIMATE_MS`) after which a user account is eligible to be marked idle. */
73
127
  exports.IDLE_TIME_SLOTS = 9000;
128
+ /** Approximate Solana slot duration in milliseconds, used by the SDK to convert between slots and wall-clock time. */
74
129
  exports.SLOT_TIME_ESTIMATE_MS = 400;
130
+ /** `QUOTE_PRECISION / 100` = $0.01; a perp position smaller than this is treated as dust (safe to ignore/close for free). */
75
131
  exports.DUST_POSITION_SIZE = exports.QUOTE_PRECISION.divn(100); // Dust position is any position smaller than 1c
132
+ /**
133
+ * $100 (`QUOTE_PRECISION`); the cap on a user's unrealized positive perp PnL that may count toward
134
+ * *initial* margin (free collateral for opening/increasing positions). Unrealized profit beyond
135
+ * this amount is not double-counted as collateral for new risk — it still counts in full for
136
+ * maintenance-margin (liquidation) calculations. Mirrors the Rust
137
+ * `MAX_POSITIVE_UPNL_FOR_INITIAL_MARGIN` constant; keep both in sync.
138
+ */
139
+ exports.MAX_POSITIVE_UPNL_FOR_INITIAL_MARGIN = new anchor_1.BN(100).mul(exports.QUOTE_PRECISION); // max upnl for initial margin calc
140
+ /** Max number of pubkeys per `getMultipleAccounts` RPC call the SDK will batch (RPC-imposed ceiling is 100; kept at 99 for headroom). */
76
141
  exports.GET_MULTIPLE_ACCOUNTS_CHUNK_SIZE = 99;
77
142
  // integer constants
78
143
  // Built with `BN` directly (not `BigNum.fromPrint`) to avoid a module-load
79
144
  // circular dependency: `bigNum.ts` imports `ZERO` from this file, so importing
80
145
  // `bigNum.ts` first leaves `BigNum` undefined while this module body evaluates.
146
+ /** `i64::MAX` (9223372036854775807). */
81
147
  exports.MAX_I64 = new anchor_1.BN('9223372036854775807');
148
+ /** `i64::MIN` (-9223372036854775808). */
82
149
  exports.MIN_I64 = new anchor_1.BN('-9223372036854775808');
@@ -1,21 +1,31 @@
1
1
  import { PublicKey } from '@solana/web3.js';
2
2
  import { MarketStatus, OracleSource } from '../types';
3
3
  import { VelocityEnv } from '../config';
4
+ /** Static off-chain metadata for one deployed perp market, keyed by `marketIndex`. This is a client-side registry (symbol/oracle wiring for UIs and SDK bootstrapping) — it is not decoded from chain and can drift from the live `PerpMarketAccount` if not kept in sync with deployments. */
4
5
  export type PerpMarketConfig = {
5
6
  fullName?: string;
6
7
  category?: string[];
7
8
  symbol: string;
8
9
  baseAssetSymbol: string;
9
10
  marketIndex: number;
11
+ /** unix ms timestamp the market launched */
10
12
  launchTs: number;
11
13
  oracle: PublicKey;
12
14
  oracleSource: OracleSource;
15
+ /** Pyth price-feed id (hex), for the legacy Pyth push/pull oracle path */
13
16
  pythFeedId?: string;
17
+ /** Pyth Lazer feed id, for `OracleSource.PYTH_LAZER*` markets */
14
18
  pythLazerId?: number;
19
+ /** current known on-chain status; omitted means `ACTIVE`. Kept here so tooling can filter out delisted markets without an RPC round-trip */
15
20
  marketStatus?: MarketStatus;
16
21
  };
22
+ /**
23
+ * Reflects what is actually deployed on devnet (per on-chain enumeration of
24
+ * `StateAccount.numberOfMarkets`). Update when devnet adds/changes a perp market.
25
+ */
17
26
  export declare const DevnetPerpMarkets: PerpMarketConfig[];
18
27
  export declare const MainnetPerpMarkets: PerpMarketConfig[];
28
+ /** Perp market registries keyed by `VelocityEnv`, for looking up a deployment's markets without hardcoding the environment. */
19
29
  export declare const PerpMarkets: {
20
30
  [key in VelocityEnv]: PerpMarketConfig[];
21
31
  };
@@ -1 +1 @@
1
- {"version":3,"file":"perpMarkets.d.ts","sourceRoot":"","sources":["../../../src/constants/perpMarkets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,MAAM,gBAAgB,GAAG;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC5B,CAAC;AAIF,eAAO,MAAM,iBAAiB,EAAE,gBAAgB,EAY/C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,gBAAgB,EA0+BhD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE;KAAG,GAAG,IAAI,WAAW,GAAG,gBAAgB,EAAE;CAGnE,CAAC"}
1
+ {"version":3,"file":"perpMarkets.d.ts","sourceRoot":"","sources":["../../../src/constants/perpMarkets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,+RAA+R;AAC/R,MAAM,MAAM,gBAAgB,GAAG;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;IAC3B,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4IAA4I;IAC5I,YAAY,CAAC,EAAE,YAAY,CAAC;CAC5B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,gBAAgB,EAkC/C,CAAC;AAMF,eAAO,MAAM,kBAAkB,EAAE,gBAAgB,EAqDhD,CAAC;AAEF,+HAA+H;AAC/H,eAAO,MAAM,WAAW,EAAE;KAAG,GAAG,IAAI,WAAW,GAAG,gBAAgB,EAAE;CAGnE,CAAC"}