@velocity-exchange/sdk 0.0.5 → 0.2.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 (815) hide show
  1. package/.prettierignore +1 -1
  2. package/CHANGELOG.md +35 -0
  3. package/README.md +30 -30
  4. package/bun.lock +24 -2
  5. package/lib/browser/accounts/basicUserAccountSubscriber.d.ts +5 -3
  6. package/lib/browser/accounts/basicUserAccountSubscriber.js +4 -3
  7. package/lib/browser/accounts/basicUserStatsAccountSubscriber.d.ts +5 -3
  8. package/lib/browser/accounts/basicUserStatsAccountSubscriber.js +4 -3
  9. package/lib/browser/accounts/bulkAccountLoader.d.ts +5 -5
  10. package/lib/browser/accounts/bulkAccountLoader.js +12 -1
  11. package/lib/browser/accounts/grpcAccountSubscriber.d.ts +2 -1
  12. package/lib/browser/accounts/grpcAccountSubscriber.js +8 -2
  13. package/lib/browser/accounts/grpcMultiAccountSubscriber.d.ts +3 -2
  14. package/lib/browser/accounts/grpcMultiAccountSubscriber.js +13 -5
  15. package/lib/browser/accounts/grpcMultiUserAccountSubscriber.d.ts +2 -1
  16. package/lib/browser/accounts/grpcMultiUserAccountSubscriber.js +12 -8
  17. package/lib/browser/accounts/grpcProgramAccountSubscriber.d.ts +2 -1
  18. package/lib/browser/accounts/grpcProgramAccountSubscriber.js +9 -3
  19. package/lib/browser/accounts/grpcVelocityClientAccountSubscriber.d.ts +0 -4
  20. package/lib/browser/accounts/grpcVelocityClientAccountSubscriber.js +19 -6
  21. package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +1 -5
  22. package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.js +44 -23
  23. package/lib/browser/accounts/laserProgramAccountSubscriber.js +4 -1
  24. package/lib/browser/accounts/oneShotUserAccountSubscriber.js +4 -3
  25. package/lib/browser/accounts/oneShotUserStatsAccountSubscriber.js +7 -3
  26. package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +4 -2
  27. package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.js +3 -3
  28. package/lib/browser/accounts/pollingOracleAccountSubscriber.d.ts +0 -2
  29. package/lib/browser/accounts/pollingOracleAccountSubscriber.js +16 -5
  30. package/lib/browser/accounts/pollingTokenAccountSubscriber.d.ts +0 -2
  31. package/lib/browser/accounts/pollingTokenAccountSubscriber.js +16 -5
  32. package/lib/browser/accounts/pollingUserAccountSubscriber.d.ts +8 -4
  33. package/lib/browser/accounts/pollingUserAccountSubscriber.js +17 -11
  34. package/lib/browser/accounts/pollingUserStatsAccountSubscriber.d.ts +4 -2
  35. package/lib/browser/accounts/pollingUserStatsAccountSubscriber.js +6 -6
  36. package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.d.ts +7 -5
  37. package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.js +69 -35
  38. package/lib/browser/accounts/types.d.ts +6 -12
  39. package/lib/browser/accounts/utils.d.ts +1 -0
  40. package/lib/browser/accounts/utils.js +10 -3
  41. package/lib/browser/accounts/webSocketAccountSubscriber.d.ts +4 -2
  42. package/lib/browser/accounts/webSocketAccountSubscriber.js +17 -5
  43. package/lib/browser/accounts/webSocketAccountSubscriberV2.d.ts +4 -2
  44. package/lib/browser/accounts/webSocketAccountSubscriberV2.js +17 -6
  45. package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +4 -2
  46. package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +9 -0
  47. package/lib/browser/accounts/webSocketProgramAccountSubscriber.d.ts +3 -1
  48. package/lib/browser/accounts/webSocketProgramAccountSubscriber.js +14 -3
  49. package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.d.ts +3 -1
  50. package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.js +15 -3
  51. package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.d.ts +3 -1
  52. package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.js +14 -4
  53. package/lib/browser/accounts/webSocketUserAccountSubscriber.d.ts +4 -2
  54. package/lib/browser/accounts/webSocketUserAccountSubscriber.js +9 -0
  55. package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.d.ts +4 -2
  56. package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.js +9 -0
  57. package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.d.ts +4 -8
  58. package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.js +52 -26
  59. package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +7 -7
  60. package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.js +49 -20
  61. package/lib/browser/accounts/websocketProgramUserAccountSubscriber.d.ts +1 -1
  62. package/lib/browser/accounts/websocketProgramUserAccountSubscriber.js +0 -3
  63. package/lib/browser/addresses/marketAddresses.js +3 -2
  64. package/lib/browser/addresses/pda.d.ts +1 -9
  65. package/lib/browser/addresses/pda.js +4 -23
  66. package/lib/browser/adminClient.d.ts +25 -29
  67. package/lib/browser/adminClient.js +168 -169
  68. package/lib/browser/auctionSubscriber/auctionSubscriber.d.ts +2 -4
  69. package/lib/browser/auctionSubscriber/auctionSubscriber.js +8 -10
  70. package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.d.ts +2 -4
  71. package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.js +11 -10
  72. package/lib/browser/auctionSubscriber/types.d.ts +3 -2
  73. package/lib/browser/bankrun/bankrunConnection.d.ts +6 -4
  74. package/lib/browser/bankrun/bankrunConnection.js +69 -31
  75. package/lib/browser/blockhashSubscriber/BlockhashSubscriber.d.ts +1 -1
  76. package/lib/browser/blockhashSubscriber/BlockhashSubscriber.js +3 -2
  77. package/lib/browser/clock/clockSubscriber.d.ts +6 -6
  78. package/lib/browser/clock/clockSubscriber.js +4 -3
  79. package/lib/browser/config.d.ts +11 -20
  80. package/lib/browser/config.js +13 -36
  81. package/lib/browser/constants/index.d.ts +1 -2
  82. package/lib/browser/constants/index.js +1 -2
  83. package/lib/browser/constants/numericConstants.d.ts +1 -3
  84. package/lib/browser/constants/numericConstants.js +3 -5
  85. package/lib/browser/constituentMap/constituentMap.d.ts +0 -2
  86. package/lib/browser/constituentMap/constituentMap.js +10 -6
  87. package/lib/browser/constituentMap/pollingConstituentAccountSubscriber.js +3 -2
  88. package/lib/browser/constituentMap/webSocketConstituentAccountSubscriber.d.ts +2 -3
  89. package/lib/browser/constituentMap/webSocketConstituentAccountSubscriber.js +10 -3
  90. package/lib/browser/core/VelocityCore.d.ts +9 -15
  91. package/lib/browser/core/VelocityCore.js +5 -7
  92. package/lib/browser/core/instructions/perpOrders.d.ts +14 -0
  93. package/lib/browser/core/instructions/perpOrders.js +14 -0
  94. package/lib/browser/core/instructions/withdraw.d.ts +1 -1
  95. package/lib/browser/core/instructions/withdraw.js +1 -1
  96. package/lib/browser/core/remainingAccounts.d.ts +2 -2
  97. package/lib/browser/core/remainingAccounts.js +5 -5
  98. package/lib/browser/decode/user.js +9 -1
  99. package/lib/browser/dlob/DLOB.d.ts +7 -2
  100. package/lib/browser/dlob/DLOB.js +205 -142
  101. package/lib/browser/dlob/DLOBNode.d.ts +5 -2
  102. package/lib/browser/dlob/DLOBNode.js +7 -0
  103. package/lib/browser/dlob/DLOBSubscriber.d.ts +0 -2
  104. package/lib/browser/dlob/DLOBSubscriber.js +39 -39
  105. package/lib/browser/dlob/NodeList.js +8 -7
  106. package/lib/browser/dlob/orderBookLevels.js +24 -17
  107. package/lib/browser/dlob/types.d.ts +0 -2
  108. package/lib/browser/events/eventList.js +4 -1
  109. package/lib/browser/events/eventSubscriber.d.ts +6 -3
  110. package/lib/browser/events/eventSubscriber.js +75 -26
  111. package/lib/browser/events/eventsServerLogProvider.d.ts +1 -1
  112. package/lib/browser/events/eventsServerLogProvider.js +17 -10
  113. package/lib/browser/events/fetchLogs.d.ts +1 -1
  114. package/lib/browser/events/fetchLogs.js +4 -2
  115. package/lib/browser/events/parse.js +14 -14
  116. package/lib/browser/events/pollingLogProvider.d.ts +1 -1
  117. package/lib/browser/events/pollingLogProvider.js +1 -0
  118. package/lib/browser/events/txEventCache.js +6 -2
  119. package/lib/browser/events/types.d.ts +3 -7
  120. package/lib/browser/events/types.js +1 -3
  121. package/lib/browser/events/webSocketLogProvider.d.ts +1 -1
  122. package/lib/browser/events/webSocketLogProvider.js +5 -2
  123. package/lib/browser/factory/bigNum.js +1 -1
  124. package/lib/{node/idl/drift.d.ts → browser/idl/velocity.d.ts} +2412 -2481
  125. package/lib/browser/idl/{drift.json → velocity.json} +2265 -2333
  126. package/lib/browser/index.d.ts +1 -3
  127. package/lib/browser/index.js +1 -4
  128. package/lib/browser/jupiter/jupiterClient.d.ts +1 -1
  129. package/lib/browser/jupiter/jupiterClient.js +18 -8
  130. package/lib/browser/marginCalculation.js +1 -0
  131. package/lib/browser/math/amm.d.ts +31 -13
  132. package/lib/browser/math/amm.js +87 -31
  133. package/lib/browser/math/auction.js +16 -12
  134. package/lib/browser/math/bankruptcy.js +1 -1
  135. package/lib/browser/math/builder.d.ts +18 -1
  136. package/lib/browser/math/builder.js +32 -1
  137. package/lib/browser/math/funding.js +30 -30
  138. package/lib/browser/math/insurance.d.ts +1 -1
  139. package/lib/browser/math/insurance.js +4 -5
  140. package/lib/browser/math/margin.d.ts +3 -11
  141. package/lib/browser/math/margin.js +10 -69
  142. package/lib/browser/math/market.d.ts +4 -12
  143. package/lib/browser/math/market.js +12 -46
  144. package/lib/browser/math/oracles.d.ts +4 -7
  145. package/lib/browser/math/oracles.js +24 -37
  146. package/lib/browser/math/orders.d.ts +2 -7
  147. package/lib/browser/math/orders.js +9 -81
  148. package/lib/browser/math/position.d.ts +0 -4
  149. package/lib/browser/math/position.js +6 -11
  150. package/lib/browser/math/repeg.d.ts +0 -1
  151. package/lib/browser/math/repeg.js +1 -23
  152. package/lib/browser/math/spotBalance.d.ts +4 -4
  153. package/lib/browser/math/spotBalance.js +6 -6
  154. package/lib/browser/math/spotMarket.d.ts +0 -6
  155. package/lib/browser/math/spotMarket.js +1 -16
  156. package/lib/browser/math/spotPosition.d.ts +4 -4
  157. package/lib/browser/math/state.d.ts +0 -2
  158. package/lib/browser/math/state.js +1 -9
  159. package/lib/browser/math/superStake.d.ts +11 -63
  160. package/lib/browser/math/superStake.js +29 -28
  161. package/lib/browser/math/trade.js +7 -7
  162. package/lib/browser/math/utils.d.ts +1 -1
  163. package/lib/browser/math/utils.js +1 -1
  164. package/lib/browser/memcmp.d.ts +0 -1
  165. package/lib/browser/memcmp.js +1 -10
  166. package/lib/browser/oracles/prelaunchOracleClient.js +3 -2
  167. package/lib/browser/oracles/pythClient.js +9 -3
  168. package/lib/browser/oracles/pythLazerClient.js +5 -4
  169. package/lib/browser/oracles/utils.d.ts +4 -0
  170. package/lib/browser/oracles/utils.js +9 -1
  171. package/lib/browser/orderSubscriber/OrderSubscriber.d.ts +1 -3
  172. package/lib/browser/orderSubscriber/OrderSubscriber.js +16 -14
  173. package/lib/browser/orderSubscriber/WebsocketSubscription.js +1 -1
  174. package/lib/browser/orderSubscriber/grpcSubscription.js +2 -2
  175. package/lib/browser/orderSubscriber/types.d.ts +0 -2
  176. package/lib/browser/priorityFee/heliusPriorityFeeMethod.d.ts +1 -1
  177. package/lib/browser/priorityFee/priorityFeeSubscriber.d.ts +2 -6
  178. package/lib/browser/priorityFee/priorityFeeSubscriber.js +34 -18
  179. package/lib/browser/priorityFee/priorityFeeSubscriberMap.d.ts +0 -4
  180. package/lib/browser/priorityFee/priorityFeeSubscriberMap.js +3 -11
  181. package/lib/browser/priorityFee/solanaPriorityFeeMethod.d.ts +1 -1
  182. package/lib/browser/priorityFee/types.d.ts +3 -8
  183. package/lib/browser/priorityFee/velocityPriorityFeeMethod.d.ts +0 -8
  184. package/lib/browser/priorityFee/velocityPriorityFeeMethod.js +1 -3
  185. package/lib/browser/pyth/pythLazerSubscriber.d.ts +1 -1
  186. package/lib/browser/pyth/pythLazerSubscriber.js +1 -1
  187. package/lib/browser/pyth/types.d.ts +0 -1
  188. package/lib/browser/slot/SlotSubscriber.d.ts +1 -1
  189. package/lib/browser/slot/SlotSubscriber.js +2 -1
  190. package/lib/browser/slot/SlothashSubscriber.d.ts +3 -2
  191. package/lib/browser/slot/SlothashSubscriber.js +11 -4
  192. package/lib/browser/swap/UnifiedSwapClient.js +1 -1
  193. package/lib/browser/swift/grpcSignedMsgUserAccountSubscriber.d.ts +0 -3
  194. package/lib/browser/swift/grpcSignedMsgUserAccountSubscriber.js +5 -5
  195. package/lib/browser/swift/signedMsgUserAccountSubscriber.d.ts +7 -7
  196. package/lib/browser/swift/signedMsgUserAccountSubscriber.js +14 -10
  197. package/lib/browser/swift/swiftOrderSubscriber.d.ts +7 -6
  198. package/lib/browser/swift/swiftOrderSubscriber.js +15 -16
  199. package/lib/browser/testClient.js +3 -2
  200. package/lib/browser/tokenFaucet.js +16 -2
  201. package/lib/browser/tx/baseTxSender.d.ts +4 -4
  202. package/lib/browser/tx/baseTxSender.js +5 -4
  203. package/lib/browser/tx/fastSingleTxSender.d.ts +3 -3
  204. package/lib/browser/tx/fastSingleTxSender.js +9 -5
  205. package/lib/browser/tx/reportTransactionError.d.ts +2 -2
  206. package/lib/browser/tx/reportTransactionError.js +5 -1
  207. package/lib/browser/tx/retryTxSender.d.ts +1 -1
  208. package/lib/browser/tx/retryTxSender.js +4 -2
  209. package/lib/browser/tx/txHandler.d.ts +7 -1
  210. package/lib/browser/tx/txHandler.js +54 -40
  211. package/lib/browser/tx/txParamProcessor.d.ts +4 -1
  212. package/lib/browser/tx/txParamProcessor.js +6 -0
  213. package/lib/browser/tx/types.d.ts +1 -1
  214. package/lib/browser/tx/whileValidTxSender.d.ts +1 -6
  215. package/lib/browser/tx/whileValidTxSender.js +35 -13
  216. package/lib/browser/types.d.ts +102 -157
  217. package/lib/browser/types.js +6 -2
  218. package/lib/browser/user.d.ts +22 -10
  219. package/lib/browser/user.js +174 -154
  220. package/lib/browser/userConfig.d.ts +3 -2
  221. package/lib/browser/userMap/WebsocketSubscription.d.ts +1 -1
  222. package/lib/browser/userMap/WebsocketSubscription.js +1 -1
  223. package/lib/browser/userMap/grpcSubscription.d.ts +1 -1
  224. package/lib/browser/userMap/grpcSubscription.js +1 -1
  225. package/lib/browser/userMap/referrerMap.d.ts +0 -2
  226. package/lib/browser/userMap/referrerMap.js +10 -7
  227. package/lib/browser/userMap/revenueShareEscrowMap.d.ts +0 -2
  228. package/lib/browser/userMap/revenueShareEscrowMap.js +4 -4
  229. package/lib/browser/userMap/userMap.d.ts +3 -5
  230. package/lib/browser/userMap/userMap.js +39 -30
  231. package/lib/browser/userMap/userMapConfig.d.ts +3 -2
  232. package/lib/browser/userMap/userStatsMap.d.ts +1 -3
  233. package/lib/browser/userMap/userStatsMap.js +18 -17
  234. package/lib/browser/userStats.d.ts +7 -4
  235. package/lib/browser/userStats.js +28 -18
  236. package/lib/browser/userStatsConfig.d.ts +3 -2
  237. package/lib/browser/util/TransactionConfirmationManager.js +4 -2
  238. package/lib/browser/util/chainClock.d.ts +1 -1
  239. package/lib/browser/util/computeUnits.d.ts +1 -1
  240. package/lib/browser/util/computeUnits.js +6 -1
  241. package/lib/browser/util/ed25519Utils.d.ts +1 -1
  242. package/lib/browser/util/ed25519Utils.js +1 -1
  243. package/lib/browser/velocityClient.d.ts +144 -71
  244. package/lib/browser/velocityClient.js +653 -457
  245. package/lib/browser/velocityClientConfig.d.ts +0 -8
  246. package/lib/node/accounts/basicUserAccountSubscriber.d.ts +5 -3
  247. package/lib/node/accounts/basicUserAccountSubscriber.d.ts.map +1 -1
  248. package/lib/node/accounts/basicUserAccountSubscriber.js +4 -3
  249. package/lib/node/accounts/basicUserStatsAccountSubscriber.d.ts +5 -3
  250. package/lib/node/accounts/basicUserStatsAccountSubscriber.d.ts.map +1 -1
  251. package/lib/node/accounts/basicUserStatsAccountSubscriber.js +4 -3
  252. package/lib/node/accounts/bulkAccountLoader.d.ts +5 -5
  253. package/lib/node/accounts/bulkAccountLoader.d.ts.map +1 -1
  254. package/lib/node/accounts/bulkAccountLoader.js +12 -1
  255. package/lib/node/accounts/grpcAccountSubscriber.d.ts +2 -1
  256. package/lib/node/accounts/grpcAccountSubscriber.d.ts.map +1 -1
  257. package/lib/node/accounts/grpcAccountSubscriber.js +8 -2
  258. package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts +3 -2
  259. package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts.map +1 -1
  260. package/lib/node/accounts/grpcMultiAccountSubscriber.js +13 -5
  261. package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts +2 -1
  262. package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts.map +1 -1
  263. package/lib/node/accounts/grpcMultiUserAccountSubscriber.js +12 -8
  264. package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts +2 -1
  265. package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts.map +1 -1
  266. package/lib/node/accounts/grpcProgramAccountSubscriber.js +9 -3
  267. package/lib/node/accounts/grpcVelocityClientAccountSubscriber.d.ts +0 -4
  268. package/lib/node/accounts/grpcVelocityClientAccountSubscriber.d.ts.map +1 -1
  269. package/lib/node/accounts/grpcVelocityClientAccountSubscriber.js +19 -6
  270. package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +1 -5
  271. package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts.map +1 -1
  272. package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.js +44 -23
  273. package/lib/node/accounts/laserProgramAccountSubscriber.d.ts.map +1 -1
  274. package/lib/node/accounts/laserProgramAccountSubscriber.js +4 -1
  275. package/lib/node/accounts/oneShotUserAccountSubscriber.d.ts.map +1 -1
  276. package/lib/node/accounts/oneShotUserAccountSubscriber.js +4 -3
  277. package/lib/node/accounts/oneShotUserStatsAccountSubscriber.d.ts.map +1 -1
  278. package/lib/node/accounts/oneShotUserStatsAccountSubscriber.js +7 -3
  279. package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +4 -2
  280. package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
  281. package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.js +3 -3
  282. package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts +0 -2
  283. package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts.map +1 -1
  284. package/lib/node/accounts/pollingOracleAccountSubscriber.js +16 -5
  285. package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts +0 -2
  286. package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts.map +1 -1
  287. package/lib/node/accounts/pollingTokenAccountSubscriber.js +16 -5
  288. package/lib/node/accounts/pollingUserAccountSubscriber.d.ts +8 -4
  289. package/lib/node/accounts/pollingUserAccountSubscriber.d.ts.map +1 -1
  290. package/lib/node/accounts/pollingUserAccountSubscriber.js +17 -11
  291. package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts +4 -2
  292. package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts.map +1 -1
  293. package/lib/node/accounts/pollingUserStatsAccountSubscriber.js +6 -6
  294. package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts +7 -5
  295. package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts.map +1 -1
  296. package/lib/node/accounts/pollingVelocityClientAccountSubscriber.js +69 -35
  297. package/lib/node/accounts/types.d.ts +6 -12
  298. package/lib/node/accounts/types.d.ts.map +1 -1
  299. package/lib/node/accounts/utils.d.ts +1 -0
  300. package/lib/node/accounts/utils.d.ts.map +1 -1
  301. package/lib/node/accounts/utils.js +10 -3
  302. package/lib/node/accounts/webSocketAccountSubscriber.d.ts +4 -2
  303. package/lib/node/accounts/webSocketAccountSubscriber.d.ts.map +1 -1
  304. package/lib/node/accounts/webSocketAccountSubscriber.js +17 -5
  305. package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts +4 -2
  306. package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts.map +1 -1
  307. package/lib/node/accounts/webSocketAccountSubscriberV2.js +17 -6
  308. package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +4 -2
  309. package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
  310. package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +9 -0
  311. package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts +3 -1
  312. package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts.map +1 -1
  313. package/lib/node/accounts/webSocketProgramAccountSubscriber.js +14 -3
  314. package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts +3 -1
  315. package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts.map +1 -1
  316. package/lib/node/accounts/webSocketProgramAccountSubscriberV2.js +15 -3
  317. package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts +3 -1
  318. package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts.map +1 -1
  319. package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.js +14 -4
  320. package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts +4 -2
  321. package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts.map +1 -1
  322. package/lib/node/accounts/webSocketUserAccountSubscriber.js +9 -0
  323. package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts +4 -2
  324. package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts.map +1 -1
  325. package/lib/node/accounts/webSocketUserStatsAccountSubsriber.js +9 -0
  326. package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts +4 -8
  327. package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts.map +1 -1
  328. package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.js +52 -26
  329. package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +7 -7
  330. package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts.map +1 -1
  331. package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.js +49 -20
  332. package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts +1 -1
  333. package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts.map +1 -1
  334. package/lib/node/accounts/websocketProgramUserAccountSubscriber.js +0 -3
  335. package/lib/node/addresses/marketAddresses.d.ts.map +1 -1
  336. package/lib/node/addresses/marketAddresses.js +3 -2
  337. package/lib/node/addresses/pda.d.ts +1 -9
  338. package/lib/node/addresses/pda.d.ts.map +1 -1
  339. package/lib/node/addresses/pda.js +4 -23
  340. package/lib/node/adminClient.d.ts +25 -29
  341. package/lib/node/adminClient.d.ts.map +1 -1
  342. package/lib/node/adminClient.js +168 -169
  343. package/lib/node/auctionSubscriber/auctionSubscriber.d.ts +2 -4
  344. package/lib/node/auctionSubscriber/auctionSubscriber.d.ts.map +1 -1
  345. package/lib/node/auctionSubscriber/auctionSubscriber.js +8 -10
  346. package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts +2 -4
  347. package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts.map +1 -1
  348. package/lib/node/auctionSubscriber/auctionSubscriberGrpc.js +11 -10
  349. package/lib/node/auctionSubscriber/types.d.ts +3 -2
  350. package/lib/node/auctionSubscriber/types.d.ts.map +1 -1
  351. package/lib/node/bankrun/bankrunConnection.d.ts +6 -4
  352. package/lib/node/bankrun/bankrunConnection.d.ts.map +1 -1
  353. package/lib/node/bankrun/bankrunConnection.js +69 -31
  354. package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts +1 -1
  355. package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts.map +1 -1
  356. package/lib/node/blockhashSubscriber/BlockhashSubscriber.js +3 -2
  357. package/lib/node/clock/clockSubscriber.d.ts +6 -6
  358. package/lib/node/clock/clockSubscriber.d.ts.map +1 -1
  359. package/lib/node/clock/clockSubscriber.js +4 -3
  360. package/lib/node/config.d.ts +11 -20
  361. package/lib/node/config.d.ts.map +1 -1
  362. package/lib/node/config.js +13 -36
  363. package/lib/node/constants/index.d.ts +1 -2
  364. package/lib/node/constants/index.d.ts.map +1 -1
  365. package/lib/node/constants/index.js +1 -2
  366. package/lib/node/constants/numericConstants.d.ts +1 -3
  367. package/lib/node/constants/numericConstants.d.ts.map +1 -1
  368. package/lib/node/constants/numericConstants.js +3 -5
  369. package/lib/node/constituentMap/constituentMap.d.ts +0 -2
  370. package/lib/node/constituentMap/constituentMap.d.ts.map +1 -1
  371. package/lib/node/constituentMap/constituentMap.js +10 -6
  372. package/lib/node/constituentMap/pollingConstituentAccountSubscriber.d.ts.map +1 -1
  373. package/lib/node/constituentMap/pollingConstituentAccountSubscriber.js +3 -2
  374. package/lib/node/constituentMap/webSocketConstituentAccountSubscriber.d.ts +2 -3
  375. package/lib/node/constituentMap/webSocketConstituentAccountSubscriber.d.ts.map +1 -1
  376. package/lib/node/constituentMap/webSocketConstituentAccountSubscriber.js +10 -3
  377. package/lib/node/core/VelocityCore.d.ts +9 -15
  378. package/lib/node/core/VelocityCore.d.ts.map +1 -1
  379. package/lib/node/core/VelocityCore.js +5 -7
  380. package/lib/node/core/instructions/perpOrders.d.ts +14 -0
  381. package/lib/node/core/instructions/perpOrders.d.ts.map +1 -1
  382. package/lib/node/core/instructions/perpOrders.js +14 -0
  383. package/lib/node/core/instructions/withdraw.d.ts +1 -1
  384. package/lib/node/core/instructions/withdraw.d.ts.map +1 -1
  385. package/lib/node/core/instructions/withdraw.js +1 -1
  386. package/lib/node/core/remainingAccounts.d.ts +2 -2
  387. package/lib/node/core/remainingAccounts.d.ts.map +1 -1
  388. package/lib/node/core/remainingAccounts.js +5 -5
  389. package/lib/node/decode/user.d.ts.map +1 -1
  390. package/lib/node/decode/user.js +9 -1
  391. package/lib/node/dlob/DLOB.d.ts +7 -2
  392. package/lib/node/dlob/DLOB.d.ts.map +1 -1
  393. package/lib/node/dlob/DLOB.js +205 -142
  394. package/lib/node/dlob/DLOBNode.d.ts +5 -2
  395. package/lib/node/dlob/DLOBNode.d.ts.map +1 -1
  396. package/lib/node/dlob/DLOBNode.js +7 -0
  397. package/lib/node/dlob/DLOBSubscriber.d.ts +0 -2
  398. package/lib/node/dlob/DLOBSubscriber.d.ts.map +1 -1
  399. package/lib/node/dlob/DLOBSubscriber.js +39 -39
  400. package/lib/node/dlob/NodeList.d.ts.map +1 -1
  401. package/lib/node/dlob/NodeList.js +8 -7
  402. package/lib/node/dlob/orderBookLevels.d.ts.map +1 -1
  403. package/lib/node/dlob/orderBookLevels.js +24 -17
  404. package/lib/node/dlob/types.d.ts +0 -2
  405. package/lib/node/dlob/types.d.ts.map +1 -1
  406. package/lib/node/events/eventList.d.ts +3 -3
  407. package/lib/node/events/eventList.d.ts.map +1 -1
  408. package/lib/node/events/eventList.js +4 -1
  409. package/lib/node/events/eventSubscriber.d.ts +6 -3
  410. package/lib/node/events/eventSubscriber.d.ts.map +1 -1
  411. package/lib/node/events/eventSubscriber.js +75 -26
  412. package/lib/node/events/eventsServerLogProvider.d.ts +2 -2
  413. package/lib/node/events/eventsServerLogProvider.d.ts.map +1 -1
  414. package/lib/node/events/eventsServerLogProvider.js +17 -10
  415. package/lib/node/events/fetchLogs.d.ts +1 -1
  416. package/lib/node/events/fetchLogs.d.ts.map +1 -1
  417. package/lib/node/events/fetchLogs.js +4 -2
  418. package/lib/node/events/parse.d.ts.map +1 -1
  419. package/lib/node/events/parse.js +14 -14
  420. package/lib/node/events/pollingLogProvider.d.ts +2 -2
  421. package/lib/node/events/pollingLogProvider.d.ts.map +1 -1
  422. package/lib/node/events/pollingLogProvider.js +1 -0
  423. package/lib/node/events/txEventCache.d.ts +3 -3
  424. package/lib/node/events/txEventCache.d.ts.map +1 -1
  425. package/lib/node/events/txEventCache.js +6 -2
  426. package/lib/node/events/types.d.ts +3 -7
  427. package/lib/node/events/types.d.ts.map +1 -1
  428. package/lib/node/events/types.js +1 -3
  429. package/lib/node/events/webSocketLogProvider.d.ts +2 -2
  430. package/lib/node/events/webSocketLogProvider.d.ts.map +1 -1
  431. package/lib/node/events/webSocketLogProvider.js +5 -2
  432. package/lib/node/factory/bigNum.js +1 -1
  433. package/lib/{browser/idl/drift.d.ts → node/idl/velocity.d.ts} +2413 -2480
  434. package/lib/node/idl/velocity.d.ts.map +1 -0
  435. package/lib/node/idl/{drift.json → velocity.json} +2265 -2333
  436. package/lib/node/index.d.ts +1 -3
  437. package/lib/node/index.d.ts.map +1 -1
  438. package/lib/node/index.js +1 -4
  439. package/lib/node/jupiter/jupiterClient.d.ts +1 -1
  440. package/lib/node/jupiter/jupiterClient.d.ts.map +1 -1
  441. package/lib/node/jupiter/jupiterClient.js +18 -8
  442. package/lib/node/marginCalculation.d.ts.map +1 -1
  443. package/lib/node/marginCalculation.js +1 -0
  444. package/lib/node/math/amm.d.ts +31 -13
  445. package/lib/node/math/amm.d.ts.map +1 -1
  446. package/lib/node/math/amm.js +87 -31
  447. package/lib/node/math/auction.d.ts.map +1 -1
  448. package/lib/node/math/auction.js +16 -12
  449. package/lib/node/math/bankruptcy.js +1 -1
  450. package/lib/node/math/builder.d.ts +18 -1
  451. package/lib/node/math/builder.d.ts.map +1 -1
  452. package/lib/node/math/builder.js +32 -1
  453. package/lib/node/math/funding.d.ts.map +1 -1
  454. package/lib/node/math/funding.js +30 -30
  455. package/lib/node/math/insurance.d.ts +1 -1
  456. package/lib/node/math/insurance.d.ts.map +1 -1
  457. package/lib/node/math/insurance.js +4 -5
  458. package/lib/node/math/margin.d.ts +3 -11
  459. package/lib/node/math/margin.d.ts.map +1 -1
  460. package/lib/node/math/margin.js +10 -69
  461. package/lib/node/math/market.d.ts +4 -12
  462. package/lib/node/math/market.d.ts.map +1 -1
  463. package/lib/node/math/market.js +12 -46
  464. package/lib/node/math/oracles.d.ts +4 -7
  465. package/lib/node/math/oracles.d.ts.map +1 -1
  466. package/lib/node/math/oracles.js +24 -37
  467. package/lib/node/math/orders.d.ts +2 -7
  468. package/lib/node/math/orders.d.ts.map +1 -1
  469. package/lib/node/math/orders.js +9 -81
  470. package/lib/node/math/position.d.ts +1 -5
  471. package/lib/node/math/position.d.ts.map +1 -1
  472. package/lib/node/math/position.js +6 -11
  473. package/lib/node/math/repeg.d.ts +0 -1
  474. package/lib/node/math/repeg.d.ts.map +1 -1
  475. package/lib/node/math/repeg.js +1 -23
  476. package/lib/node/math/spotBalance.d.ts +4 -4
  477. package/lib/node/math/spotBalance.d.ts.map +1 -1
  478. package/lib/node/math/spotBalance.js +6 -6
  479. package/lib/node/math/spotMarket.d.ts +0 -6
  480. package/lib/node/math/spotMarket.d.ts.map +1 -1
  481. package/lib/node/math/spotMarket.js +1 -16
  482. package/lib/node/math/spotPosition.d.ts +4 -4
  483. package/lib/node/math/spotPosition.d.ts.map +1 -1
  484. package/lib/node/math/state.d.ts +0 -2
  485. package/lib/node/math/state.d.ts.map +1 -1
  486. package/lib/node/math/state.js +1 -9
  487. package/lib/node/math/superStake.d.ts +11 -63
  488. package/lib/node/math/superStake.d.ts.map +1 -1
  489. package/lib/node/math/superStake.js +29 -28
  490. package/lib/node/math/trade.d.ts +2 -2
  491. package/lib/node/math/trade.d.ts.map +1 -1
  492. package/lib/node/math/trade.js +7 -7
  493. package/lib/node/math/utils.d.ts +1 -1
  494. package/lib/node/math/utils.js +1 -1
  495. package/lib/node/memcmp.d.ts +0 -1
  496. package/lib/node/memcmp.d.ts.map +1 -1
  497. package/lib/node/memcmp.js +1 -10
  498. package/lib/node/oracles/oracleClientCache.d.ts +1 -1
  499. package/lib/node/oracles/prelaunchOracleClient.d.ts.map +1 -1
  500. package/lib/node/oracles/prelaunchOracleClient.js +3 -2
  501. package/lib/node/oracles/pythClient.d.ts.map +1 -1
  502. package/lib/node/oracles/pythClient.js +9 -3
  503. package/lib/node/oracles/pythLazerClient.d.ts.map +1 -1
  504. package/lib/node/oracles/pythLazerClient.js +5 -4
  505. package/lib/node/oracles/utils.d.ts +4 -0
  506. package/lib/node/oracles/utils.d.ts.map +1 -1
  507. package/lib/node/oracles/utils.js +9 -1
  508. package/lib/node/orderSubscriber/OrderSubscriber.d.ts +1 -3
  509. package/lib/node/orderSubscriber/OrderSubscriber.d.ts.map +1 -1
  510. package/lib/node/orderSubscriber/OrderSubscriber.js +16 -14
  511. package/lib/node/orderSubscriber/WebsocketSubscription.js +1 -1
  512. package/lib/node/orderSubscriber/grpcSubscription.js +2 -2
  513. package/lib/node/orderSubscriber/types.d.ts +0 -2
  514. package/lib/node/orderSubscriber/types.d.ts.map +1 -1
  515. package/lib/node/priorityFee/heliusPriorityFeeMethod.d.ts +1 -1
  516. package/lib/node/priorityFee/heliusPriorityFeeMethod.d.ts.map +1 -1
  517. package/lib/node/priorityFee/priorityFeeSubscriber.d.ts +2 -6
  518. package/lib/node/priorityFee/priorityFeeSubscriber.d.ts.map +1 -1
  519. package/lib/node/priorityFee/priorityFeeSubscriber.js +34 -18
  520. package/lib/node/priorityFee/priorityFeeSubscriberMap.d.ts +0 -4
  521. package/lib/node/priorityFee/priorityFeeSubscriberMap.d.ts.map +1 -1
  522. package/lib/node/priorityFee/priorityFeeSubscriberMap.js +3 -11
  523. package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts +1 -1
  524. package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts.map +1 -1
  525. package/lib/node/priorityFee/types.d.ts +3 -8
  526. package/lib/node/priorityFee/types.d.ts.map +1 -1
  527. package/lib/node/priorityFee/velocityPriorityFeeMethod.d.ts +0 -8
  528. package/lib/node/priorityFee/velocityPriorityFeeMethod.d.ts.map +1 -1
  529. package/lib/node/priorityFee/velocityPriorityFeeMethod.js +1 -3
  530. package/lib/node/pyth/pythLazerSubscriber.d.ts +1 -1
  531. package/lib/node/pyth/pythLazerSubscriber.js +1 -1
  532. package/lib/node/pyth/types.d.ts +0 -1
  533. package/lib/node/pyth/types.d.ts.map +1 -1
  534. package/lib/node/slot/SlotSubscriber.d.ts +1 -1
  535. package/lib/node/slot/SlotSubscriber.d.ts.map +1 -1
  536. package/lib/node/slot/SlotSubscriber.js +2 -1
  537. package/lib/node/slot/SlothashSubscriber.d.ts +3 -2
  538. package/lib/node/slot/SlothashSubscriber.d.ts.map +1 -1
  539. package/lib/node/slot/SlothashSubscriber.js +11 -4
  540. package/lib/node/swap/UnifiedSwapClient.js +1 -1
  541. package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.d.ts +0 -3
  542. package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.d.ts.map +1 -1
  543. package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.js +5 -5
  544. package/lib/node/swift/signedMsgUserAccountSubscriber.d.ts +7 -7
  545. package/lib/node/swift/signedMsgUserAccountSubscriber.d.ts.map +1 -1
  546. package/lib/node/swift/signedMsgUserAccountSubscriber.js +14 -10
  547. package/lib/node/swift/swiftOrderSubscriber.d.ts +7 -6
  548. package/lib/node/swift/swiftOrderSubscriber.d.ts.map +1 -1
  549. package/lib/node/swift/swiftOrderSubscriber.js +15 -16
  550. package/lib/node/testClient.js +3 -2
  551. package/lib/node/tokenFaucet.d.ts.map +1 -1
  552. package/lib/node/tokenFaucet.js +16 -2
  553. package/lib/node/tx/baseTxSender.d.ts +4 -4
  554. package/lib/node/tx/baseTxSender.d.ts.map +1 -1
  555. package/lib/node/tx/baseTxSender.js +5 -4
  556. package/lib/node/tx/fastSingleTxSender.d.ts +3 -3
  557. package/lib/node/tx/fastSingleTxSender.d.ts.map +1 -1
  558. package/lib/node/tx/fastSingleTxSender.js +9 -5
  559. package/lib/node/tx/reportTransactionError.d.ts +2 -2
  560. package/lib/node/tx/reportTransactionError.d.ts.map +1 -1
  561. package/lib/node/tx/reportTransactionError.js +5 -1
  562. package/lib/node/tx/retryTxSender.d.ts +1 -1
  563. package/lib/node/tx/retryTxSender.d.ts.map +1 -1
  564. package/lib/node/tx/retryTxSender.js +4 -2
  565. package/lib/node/tx/txHandler.d.ts +9 -3
  566. package/lib/node/tx/txHandler.d.ts.map +1 -1
  567. package/lib/node/tx/txHandler.js +54 -40
  568. package/lib/node/tx/txParamProcessor.d.ts +4 -1
  569. package/lib/node/tx/txParamProcessor.d.ts.map +1 -1
  570. package/lib/node/tx/txParamProcessor.js +6 -0
  571. package/lib/node/tx/types.d.ts +1 -1
  572. package/lib/node/tx/types.d.ts.map +1 -1
  573. package/lib/node/tx/whileValidTxSender.d.ts +1 -6
  574. package/lib/node/tx/whileValidTxSender.d.ts.map +1 -1
  575. package/lib/node/tx/whileValidTxSender.js +35 -13
  576. package/lib/node/types.d.ts +100 -155
  577. package/lib/node/types.d.ts.map +1 -1
  578. package/lib/node/types.js +6 -2
  579. package/lib/node/user.d.ts +22 -10
  580. package/lib/node/user.d.ts.map +1 -1
  581. package/lib/node/user.js +174 -154
  582. package/lib/node/userConfig.d.ts +3 -2
  583. package/lib/node/userConfig.d.ts.map +1 -1
  584. package/lib/node/userMap/WebsocketSubscription.d.ts +1 -1
  585. package/lib/node/userMap/WebsocketSubscription.d.ts.map +1 -1
  586. package/lib/node/userMap/WebsocketSubscription.js +1 -1
  587. package/lib/node/userMap/grpcSubscription.d.ts +1 -1
  588. package/lib/node/userMap/grpcSubscription.d.ts.map +1 -1
  589. package/lib/node/userMap/grpcSubscription.js +1 -1
  590. package/lib/node/userMap/referrerMap.d.ts +0 -2
  591. package/lib/node/userMap/referrerMap.d.ts.map +1 -1
  592. package/lib/node/userMap/referrerMap.js +10 -7
  593. package/lib/node/userMap/revenueShareEscrowMap.d.ts +0 -2
  594. package/lib/node/userMap/revenueShareEscrowMap.d.ts.map +1 -1
  595. package/lib/node/userMap/revenueShareEscrowMap.js +4 -4
  596. package/lib/node/userMap/userMap.d.ts +3 -5
  597. package/lib/node/userMap/userMap.d.ts.map +1 -1
  598. package/lib/node/userMap/userMap.js +39 -30
  599. package/lib/node/userMap/userMapConfig.d.ts +3 -2
  600. package/lib/node/userMap/userMapConfig.d.ts.map +1 -1
  601. package/lib/node/userMap/userStatsMap.d.ts +1 -3
  602. package/lib/node/userMap/userStatsMap.d.ts.map +1 -1
  603. package/lib/node/userMap/userStatsMap.js +18 -17
  604. package/lib/node/userStats.d.ts +7 -4
  605. package/lib/node/userStats.d.ts.map +1 -1
  606. package/lib/node/userStats.js +28 -18
  607. package/lib/node/userStatsConfig.d.ts +3 -2
  608. package/lib/node/userStatsConfig.d.ts.map +1 -1
  609. package/lib/node/util/TransactionConfirmationManager.d.ts.map +1 -1
  610. package/lib/node/util/TransactionConfirmationManager.js +4 -2
  611. package/lib/node/util/chainClock.d.ts +1 -1
  612. package/lib/node/util/chainClock.d.ts.map +1 -1
  613. package/lib/node/util/computeUnits.d.ts +1 -1
  614. package/lib/node/util/computeUnits.d.ts.map +1 -1
  615. package/lib/node/util/computeUnits.js +6 -1
  616. package/lib/node/util/ed25519Utils.d.ts +1 -1
  617. package/lib/node/util/ed25519Utils.js +1 -1
  618. package/lib/node/velocityClient.d.ts +145 -72
  619. package/lib/node/velocityClient.d.ts.map +1 -1
  620. package/lib/node/velocityClient.js +653 -457
  621. package/lib/node/velocityClientConfig.d.ts +0 -8
  622. package/lib/node/velocityClientConfig.d.ts.map +1 -1
  623. package/package.json +10 -9
  624. package/scripts/deposit-isolated-positions.ts +2 -2
  625. package/scripts/find-flagged-users.ts +1 -1
  626. package/scripts/grpc-client-test-comparison.ts +4 -4
  627. package/scripts/grpc-multiuser-client-test-comparison.ts +2 -2
  628. package/scripts/single-grpc-client-test.ts +3 -3
  629. package/scripts/updateVersion.js +4 -4
  630. package/scripts/withdraw-isolated-positions.ts +2 -2
  631. package/src/accounts/basicUserAccountSubscriber.ts +7 -5
  632. package/src/accounts/basicUserStatsAccountSubscriber.ts +9 -5
  633. package/src/accounts/bulkAccountLoader.ts +20 -7
  634. package/src/accounts/grpcAccountSubscriber.ts +11 -3
  635. package/src/accounts/grpcMultiAccountSubscriber.ts +24 -9
  636. package/src/accounts/grpcMultiUserAccountSubscriber.ts +16 -12
  637. package/src/accounts/grpcProgramAccountSubscriber.ts +12 -4
  638. package/src/accounts/grpcVelocityClientAccountSubscriber.ts +17 -14
  639. package/src/accounts/grpcVelocityClientAccountSubscriberV2.ts +69 -49
  640. package/src/accounts/laserProgramAccountSubscriber.ts +4 -1
  641. package/src/accounts/oneShotUserAccountSubscriber.ts +5 -3
  642. package/src/accounts/oneShotUserStatsAccountSubscriber.ts +8 -3
  643. package/src/accounts/pollingInsuranceFundStakeAccountSubscriber.ts +11 -5
  644. package/src/accounts/pollingOracleAccountSubscriber.ts +17 -10
  645. package/src/accounts/pollingTokenAccountSubscriber.ts +17 -10
  646. package/src/accounts/pollingUserAccountSubscriber.ts +26 -20
  647. package/src/accounts/pollingUserStatsAccountSubscriber.ts +12 -10
  648. package/src/accounts/pollingVelocityClientAccountSubscriber.ts +80 -41
  649. package/src/accounts/types.ts +8 -13
  650. package/src/accounts/utils.ts +12 -2
  651. package/src/accounts/webSocketAccountSubscriber.ts +23 -10
  652. package/src/accounts/webSocketAccountSubscriberV2.ts +23 -8
  653. package/src/accounts/webSocketInsuranceFundStakeAccountSubscriber.ts +17 -2
  654. package/src/accounts/webSocketProgramAccountSubscriber.ts +29 -4
  655. package/src/accounts/webSocketProgramAccountSubscriberV2.ts +30 -4
  656. package/src/accounts/webSocketProgramAccountsSubscriberV2.ts +29 -4
  657. package/src/accounts/webSocketUserAccountSubscriber.ts +11 -2
  658. package/src/accounts/webSocketUserStatsAccountSubsriber.ts +15 -2
  659. package/src/accounts/webSocketVelocityClientAccountSubscriber.ts +79 -58
  660. package/src/accounts/webSocketVelocityClientAccountSubscriberV2.ts +77 -45
  661. package/src/accounts/websocketProgramUserAccountSubscriber.ts +1 -6
  662. package/src/addresses/marketAddresses.ts +3 -2
  663. package/src/addresses/pda.ts +3 -38
  664. package/src/adminClient.ts +285 -315
  665. package/src/auctionSubscriber/auctionSubscriber.ts +8 -11
  666. package/src/auctionSubscriber/auctionSubscriberGrpc.ts +13 -11
  667. package/src/auctionSubscriber/types.ts +3 -3
  668. package/src/bankrun/bankrunConnection.ts +83 -39
  669. package/src/blockhashSubscriber/BlockhashSubscriber.ts +5 -4
  670. package/src/clock/clockSubscriber.ts +10 -9
  671. package/src/config.ts +16 -70
  672. package/src/constants/index.ts +1 -2
  673. package/src/constants/numericConstants.ts +3 -3
  674. package/src/constituentMap/constituentMap.ts +10 -7
  675. package/src/constituentMap/pollingConstituentAccountSubscriber.ts +4 -2
  676. package/src/constituentMap/webSocketConstituentAccountSubscriber.ts +13 -4
  677. package/src/core/VelocityCore.ts +11 -20
  678. package/src/core/instructions/perpOrders.ts +14 -0
  679. package/src/core/instructions/withdraw.ts +2 -2
  680. package/src/core/remainingAccounts.ts +7 -7
  681. package/src/decode/user.ts +8 -1
  682. package/src/dlob/DLOB.ts +300 -176
  683. package/src/dlob/DLOBNode.ts +23 -3
  684. package/src/dlob/DLOBSubscriber.ts +53 -42
  685. package/src/dlob/NodeList.ts +8 -7
  686. package/src/dlob/orderBookLevels.ts +51 -25
  687. package/src/dlob/types.ts +0 -2
  688. package/src/events/eventList.ts +4 -1
  689. package/src/events/eventSubscriber.ts +108 -50
  690. package/src/events/eventsServerLogProvider.ts +24 -15
  691. package/src/events/fetchLogs.ts +3 -3
  692. package/src/events/parse.ts +14 -14
  693. package/src/events/pollingLogProvider.ts +2 -2
  694. package/src/events/txEventCache.ts +8 -2
  695. package/src/events/types.ts +4 -15
  696. package/src/events/webSocketLogProvider.ts +5 -3
  697. package/src/factory/bigNum.ts +2 -2
  698. package/src/idl/{drift.json → velocity.json} +2265 -2333
  699. package/src/idl/{drift.ts → velocity.ts} +2267 -2335
  700. package/src/index.ts +1 -6
  701. package/src/jupiter/jupiterClient.ts +30 -10
  702. package/src/margin/README.md +2 -2
  703. package/src/marginCalculation.ts +1 -0
  704. package/src/math/amm.ts +217 -40
  705. package/src/math/auction.ts +16 -12
  706. package/src/math/bankruptcy.ts +1 -1
  707. package/src/math/builder.ts +45 -1
  708. package/src/math/funding.ts +51 -47
  709. package/src/math/insurance.ts +6 -8
  710. package/src/math/margin.ts +12 -119
  711. package/src/math/market.ts +16 -98
  712. package/src/math/oracles.ts +29 -43
  713. package/src/math/orders.ts +13 -109
  714. package/src/math/position.ts +6 -12
  715. package/src/math/repeg.ts +0 -29
  716. package/src/math/spotBalance.ts +14 -10
  717. package/src/math/spotMarket.ts +2 -28
  718. package/src/math/spotPosition.ts +4 -4
  719. package/src/math/state.ts +0 -8
  720. package/src/math/superStake.ts +36 -85
  721. package/src/math/trade.ts +7 -3
  722. package/src/math/utils.ts +1 -1
  723. package/src/memcmp.ts +0 -9
  724. package/src/oracles/prelaunchOracleClient.ts +7 -2
  725. package/src/oracles/pythClient.ts +12 -3
  726. package/src/oracles/pythLazerClient.ts +10 -5
  727. package/src/oracles/utils.ts +15 -0
  728. package/src/orderSubscriber/OrderSubscriber.ts +12 -12
  729. package/src/orderSubscriber/WebsocketSubscription.ts +1 -1
  730. package/src/orderSubscriber/grpcSubscription.ts +2 -2
  731. package/src/orderSubscriber/types.ts +0 -2
  732. package/src/priorityFee/heliusPriorityFeeMethod.ts +1 -1
  733. package/src/priorityFee/priorityFeeSubscriber.ts +50 -21
  734. package/src/priorityFee/priorityFeeSubscriberMap.ts +2 -10
  735. package/src/priorityFee/solanaPriorityFeeMethod.ts +1 -1
  736. package/src/priorityFee/types.ts +3 -13
  737. package/src/priorityFee/velocityPriorityFeeMethod.ts +0 -12
  738. package/src/pyth/pythLazerSubscriber.ts +1 -1
  739. package/src/pyth/types.ts +0 -2
  740. package/src/slot/SlotSubscriber.ts +3 -3
  741. package/src/slot/SlothashSubscriber.ts +17 -6
  742. package/src/swap/UnifiedSwapClient.ts +1 -1
  743. package/src/swift/grpcSignedMsgUserAccountSubscriber.ts +5 -6
  744. package/src/swift/signedMsgUserAccountSubscriber.ts +18 -16
  745. package/src/swift/swiftOrderSubscriber.ts +17 -21
  746. package/src/testClient.ts +2 -2
  747. package/src/tokenFaucet.ts +22 -3
  748. package/src/tx/baseTxSender.ts +10 -10
  749. package/src/tx/fastSingleTxSender.ts +12 -8
  750. package/src/tx/reportTransactionError.ts +12 -7
  751. package/src/tx/retryTxSender.ts +6 -4
  752. package/src/tx/txHandler.ts +88 -43
  753. package/src/tx/txParamProcessor.ts +18 -3
  754. package/src/tx/types.ts +1 -1
  755. package/src/tx/whileValidTxSender.ts +51 -22
  756. package/src/types.ts +119 -173
  757. package/src/user.ts +208 -165
  758. package/src/userConfig.ts +1 -3
  759. package/src/userMap/WebsocketSubscription.ts +2 -2
  760. package/src/userMap/grpcSubscription.ts +2 -2
  761. package/src/userMap/referrerMap.ts +13 -13
  762. package/src/userMap/revenueShareEscrowMap.ts +6 -5
  763. package/src/userMap/userMap.ts +46 -32
  764. package/src/userMap/userMapConfig.ts +3 -3
  765. package/src/userMap/userStatsMap.ts +32 -23
  766. package/src/userStats.ts +22 -13
  767. package/src/userStatsConfig.ts +3 -3
  768. package/src/util/TransactionConfirmationManager.ts +10 -2
  769. package/src/util/chainClock.ts +1 -1
  770. package/src/util/computeUnits.ts +7 -3
  771. package/src/util/ed25519Utils.ts +1 -1
  772. package/src/velocityClient.ts +867 -600
  773. package/src/velocityClientConfig.ts +0 -10
  774. package/tests/{DriftCore → VelocityCore}/decode.test.ts +1 -1
  775. package/tests/{DriftCore → VelocityCore}/fill_trigger.test.ts +1 -1
  776. package/tests/{DriftCore → VelocityCore}/instructions.test.ts +1 -1
  777. package/tests/{DriftCore → VelocityCore}/pdas.test.ts +4 -2
  778. package/tests/amm/test.ts +138 -0
  779. package/tests/ci/verifyConstants.ts +24 -27
  780. package/tests/decode/test.ts +2 -2
  781. package/tests/dlob/helpers.ts +11 -10
  782. package/tests/events/parseLogsForCuUsage.ts +15 -15
  783. package/tests/user/helpers.ts +9 -9
  784. package/tests/user/test.ts +13 -10
  785. package/tsconfig.json +1 -0
  786. package/lib/browser/constants/insuranceFund.d.ts +0 -5
  787. package/lib/browser/constants/insuranceFund.js +0 -9
  788. package/lib/browser/tx/forwardOnlyTxSender.d.ts +0 -37
  789. package/lib/browser/tx/forwardOnlyTxSender.js +0 -92
  790. package/lib/browser/util/deprecatedAlias.d.ts +0 -26
  791. package/lib/browser/util/deprecatedAlias.js +0 -10
  792. package/lib/browser/util/tps.d.ts +0 -2
  793. package/lib/browser/util/tps.js +0 -16
  794. package/lib/node/constants/insuranceFund.d.ts +0 -6
  795. package/lib/node/constants/insuranceFund.d.ts.map +0 -1
  796. package/lib/node/constants/insuranceFund.js +0 -9
  797. package/lib/node/idl/drift.d.ts.map +0 -1
  798. package/lib/node/tx/forwardOnlyTxSender.d.ts +0 -38
  799. package/lib/node/tx/forwardOnlyTxSender.d.ts.map +0 -1
  800. package/lib/node/tx/forwardOnlyTxSender.js +0 -92
  801. package/lib/node/util/deprecatedAlias.d.ts +0 -27
  802. package/lib/node/util/deprecatedAlias.d.ts.map +0 -1
  803. package/lib/node/util/deprecatedAlias.js +0 -10
  804. package/lib/node/util/tps.d.ts +0 -3
  805. package/lib/node/util/tps.d.ts.map +0 -1
  806. package/lib/node/util/tps.js +0 -16
  807. package/src/constants/insuranceFund.ts +0 -8
  808. package/src/tx/forwardOnlyTxSender.ts +0 -145
  809. package/src/util/deprecatedAlias.ts +0 -21
  810. package/src/util/tps.ts +0 -27
  811. /package/lib/browser/idl/{drift.js → velocity.js} +0 -0
  812. /package/lib/node/idl/{drift.js → velocity.js} +0 -0
  813. /package/tests/{DriftCore → VelocityCore}/perp_orders.test.ts +0 -0
  814. /package/tests/{DriftCore → VelocityCore}/remainingAccounts.test.ts +0 -0
  815. /package/tests/{DriftCore → VelocityCore}/settlement_liquidation.test.ts +0 -0
@@ -5,12 +5,13 @@ import { GrpcConfigs, UserAccountSubscriber } from './accounts/types';
5
5
  import { WebSocketProgramAccountSubscriber } from './accounts/webSocketProgramAccountSubscriber';
6
6
  import { UserAccount } from './types';
7
7
  import { grpcMultiUserAccountSubscriber } from './accounts/grpcMultiUserAccountSubscriber';
8
- import { AtLeastOne } from './util/deprecatedAlias';
9
8
  type UserConfigBase = {
10
9
  accountSubscription?: UserSubscriptionConfig;
11
10
  userAccountPublicKey: PublicKey;
12
11
  };
13
- export type UserConfig = UserConfigBase & AtLeastOne<'velocityClient', 'driftClient', VelocityClient>;
12
+ export type UserConfig = UserConfigBase & {
13
+ velocityClient: VelocityClient;
14
+ };
14
15
  export type UserSubscriptionConfig = {
15
16
  type: 'grpc';
16
17
  resubTimeoutMs?: number;
@@ -12,7 +12,7 @@ export declare class WebsocketSubscription {
12
12
  private includeIdle?;
13
13
  private additionalFilters?;
14
14
  private decodeFn;
15
- private subscriber;
15
+ private subscriber?;
16
16
  constructor({ userMap, commitment, skipInitialLoad, resubOpts, includeIdle, decodeFn, additionalFilters, }: {
17
17
  userMap: UserMap;
18
18
  commitment: Commitment;
@@ -22,7 +22,7 @@ class WebsocketSubscription {
22
22
  if (this.additionalFilters) {
23
23
  filters.push(...this.additionalFilters);
24
24
  }
25
- this.subscriber = new webSocketProgramAccountSubscriber_1.WebSocketProgramAccountSubscriber('UserMap', 'user', this.userMap.driftClient.program, this.decodeFn, {
25
+ this.subscriber = new webSocketProgramAccountSubscriber_1.WebSocketProgramAccountSubscriber('UserMap', 'user', this.userMap.velocityClient.program, this.decodeFn, {
26
26
  filters,
27
27
  commitment: this.commitment,
28
28
  }, this.resubOpts);
@@ -12,7 +12,7 @@ export declare class grpcSubscription {
12
12
  private includeIdle?;
13
13
  private additionalFilters?;
14
14
  private decodeFn;
15
- private subscriber;
15
+ private subscriber?;
16
16
  constructor({ grpcConfigs, userMap, skipInitialLoad, resubOpts, includeIdle, decodeFn, additionalFilters, }: {
17
17
  grpcConfigs: GrpcConfigs;
18
18
  userMap: UserMap;
@@ -22,7 +22,7 @@ class grpcSubscription {
22
22
  if (this.additionalFilters) {
23
23
  filters.push(...this.additionalFilters);
24
24
  }
25
- this.subscriber = await grpcProgramAccountSubscriber_1.grpcProgramAccountSubscriber.create(this.grpcConfigs, 'UserMap', 'user', this.userMap.driftClient.program, this.decodeFn, {
25
+ this.subscriber = await grpcProgramAccountSubscriber_1.grpcProgramAccountSubscriber.create(this.grpcConfigs, 'UserMap', 'user', this.userMap.velocityClient.program, this.decodeFn, {
26
26
  filters,
27
27
  }, this.resubOpts);
28
28
  }
@@ -12,8 +12,6 @@ export declare class ReferrerMap {
12
12
  */
13
13
  private referrerReferrerInfoMap;
14
14
  private velocityClient;
15
- /** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
16
- private get driftClient();
17
15
  private parallelSync;
18
16
  private fetchPromise?;
19
17
  private fetchPromiseResolver;
@@ -10,10 +10,6 @@ const memcmp_1 = require("../memcmp");
10
10
  const bs58_1 = __importDefault(require("bs58"));
11
11
  const DEFAULT_PUBLIC_KEY = web3_js_1.PublicKey.default.toBase58();
12
12
  class ReferrerMap {
13
- /** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
14
- get driftClient() {
15
- return this.velocityClient;
16
- }
17
13
  /**
18
14
  * Creates a new UserStatsMap instance.
19
15
  *
@@ -29,6 +25,7 @@ class ReferrerMap {
29
25
  * Will be undefined if the referrer is not in the map yet.
30
26
  */
31
27
  this.referrerReferrerInfoMap = new Map();
28
+ this.fetchPromiseResolver = () => { };
32
29
  this.velocityClient = velocityClient;
33
30
  this.parallelSync = parallelSync !== undefined ? parallelSync : true;
34
31
  }
@@ -54,7 +51,11 @@ class ReferrerMap {
54
51
  }
55
52
  else if (referrer === undefined) {
56
53
  const userStatsAccountPublicKey = (0, pda_1.getUserStatsAccountPublicKey)(this.velocityClient.program.programId, new web3_js_1.PublicKey(authority));
57
- const buffer = (await this.velocityClient.connection.getAccountInfo(userStatsAccountPublicKey, 'processed')).data;
54
+ const accountInfo = await this.velocityClient.connection.getAccountInfo(userStatsAccountPublicKey, 'processed');
55
+ if (!accountInfo) {
56
+ throw new Error(`ReferrerMap: UserStats account not found for authority ${authority}`);
57
+ }
58
+ const buffer = accountInfo.data;
58
59
  const referrer = bs58_1.default.encode(buffer.subarray(40, 72));
59
60
  this.addReferrer(authority, referrer);
60
61
  }
@@ -124,10 +125,11 @@ class ReferrerMap {
124
125
  }
125
126
  }
126
127
  async syncAll() {
128
+ var _a;
127
129
  const rpcRequestArgs = [
128
130
  this.velocityClient.program.programId.toBase58(),
129
131
  {
130
- commitment: this.velocityClient.opts.commitment,
132
+ commitment: (_a = this.velocityClient.opts) === null || _a === void 0 ? void 0 : _a.commitment,
131
133
  filters: [(0, memcmp_1.getUserStatsFilter)()],
132
134
  encoding: 'base64',
133
135
  dataSlice: {
@@ -150,10 +152,11 @@ class ReferrerMap {
150
152
  }
151
153
  }
152
154
  async syncReferrer(referrerFilter) {
155
+ var _a;
153
156
  const rpcRequestArgs = [
154
157
  this.velocityClient.program.programId.toBase58(),
155
158
  {
156
- commitment: this.velocityClient.opts.commitment,
159
+ commitment: (_a = this.velocityClient.opts) === null || _a === void 0 ? void 0 : _a.commitment,
157
160
  filters: [(0, memcmp_1.getUserStatsFilter)(), referrerFilter],
158
161
  encoding: 'base64',
159
162
  dataSlice: {
@@ -6,8 +6,6 @@ export declare class RevenueShareEscrowMap {
6
6
  */
7
7
  private authorityEscrowMap;
8
8
  private velocityClient;
9
- /** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
10
- private get driftClient();
11
9
  private parallelSync;
12
10
  private fetchPromise?;
13
11
  private fetchPromiseResolver;
@@ -5,10 +5,6 @@ const web3_js_1 = require("@solana/web3.js");
5
5
  const pda_1 = require("../addresses/pda");
6
6
  const memcmp_1 = require("../memcmp");
7
7
  class RevenueShareEscrowMap {
8
- /** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
9
- get driftClient() {
10
- return this.velocityClient;
11
- }
12
8
  /**
13
9
  * Creates a new RevenueShareEscrowMap instance.
14
10
  *
@@ -20,6 +16,7 @@ class RevenueShareEscrowMap {
20
16
  * map from authority pubkey to RevenueShareEscrow account data.
21
17
  */
22
18
  this.authorityEscrowMap = new Map();
19
+ this.fetchPromiseResolver = () => { };
23
20
  this.velocityClient = velocityClient;
24
21
  this.parallelSync = parallelSync !== undefined ? parallelSync : true;
25
22
  }
@@ -93,6 +90,9 @@ class RevenueShareEscrowMap {
93
90
  }
94
91
  for (const authority of this.authorityEscrowMap.keys()) {
95
92
  const accountInfo = await this.velocityClient.connection.getAccountInfo((0, pda_1.getRevenueShareEscrowAccountPublicKey)(this.velocityClient.program.programId, new web3_js_1.PublicKey(authority)), 'confirmed');
93
+ if (accountInfo === null) {
94
+ throw new Error(`RevenueShareEscrow account not found for authority ${authority} during slowSync`);
95
+ }
96
96
  const escrowNew = this.velocityClient.program.account.revenueShareEscrow.coder.accounts.decode('revenueShareEscrow', accountInfo.data);
97
97
  this.authorityEscrowMap.set(authority, escrowNew);
98
98
  }
@@ -30,8 +30,6 @@ export interface UserMapInterface {
30
30
  export declare class UserMap implements UserMapInterface {
31
31
  private userMap;
32
32
  velocityClient: VelocityClient;
33
- /** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
34
- get driftClient(): VelocityClient;
35
33
  eventEmitter: StrictEventEmitter<EventEmitter, UserEvents>;
36
34
  private connection;
37
35
  private commitment;
@@ -39,7 +37,7 @@ export declare class UserMap implements UserMapInterface {
39
37
  private filterByPoolId?;
40
38
  private additionalFilters?;
41
39
  private disableSyncOnTotalAccountsChange;
42
- private lastNumberOfSubAccounts;
40
+ private lastNumberOfSubAccounts?;
43
41
  private subscription;
44
42
  private stateAccountUpdateCallback;
45
43
  private decode;
@@ -99,13 +97,13 @@ export declare class UserMap implements UserMapInterface {
99
97
  private getFilters;
100
98
  /**
101
99
  * Syncs the UserMap using the default sync method (single getProgramAccounts call with filters).
102
- * This method may fail when drift has too many users. (nodejs response size limits)
100
+ * This method may fail when velocity has too many users. (nodejs response size limits)
103
101
  * @returns
104
102
  */
105
103
  private defaultSync;
106
104
  /**
107
105
  * Syncs the UserMap using the paginated sync method (multiple getMultipleAccounts calls with filters).
108
- * This method is more reliable when drift has many users.
106
+ * This method is more reliable when velocity has many users.
109
107
  * @returns
110
108
  */
111
109
  private paginatedSync;
@@ -15,25 +15,23 @@ const grpcSubscription_1 = require("./grpcSubscription");
15
15
  const events_1 = require("events");
16
16
  const MAX_USER_ACCOUNT_SIZE_BYTES = 4376;
17
17
  class UserMap {
18
- /** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
19
- get driftClient() {
20
- return this.velocityClient;
21
- }
22
18
  /**
23
19
  * Constructs a new UserMap instance.
24
20
  */
25
21
  constructor(config) {
26
- var _a, _b, _c, _d, _e, _f, _g;
22
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
27
23
  this.userMap = new Map();
28
24
  this.stateAccountUpdateCallback = async (state) => {
29
- if (!state.numberOfSubAccounts.eq(this.lastNumberOfSubAccounts)) {
25
+ if (this.lastNumberOfSubAccounts === undefined ||
26
+ !state.numberOfSubAccounts.eq(this.lastNumberOfSubAccounts)) {
30
27
  await this.sync();
31
28
  this.lastNumberOfSubAccounts = state.numberOfSubAccounts;
32
29
  }
33
30
  };
34
31
  this.mostRecentSlot = 0;
32
+ this.syncPromiseResolver = () => { };
35
33
  // Type-system guarantees at least one of the two is supplied.
36
- this.velocityClient = ((_a = config.velocityClient) !== null && _a !== void 0 ? _a : config.driftClient);
34
+ this.velocityClient = config.velocityClient;
37
35
  if (config.connection) {
38
36
  this.connection = config.connection;
39
37
  }
@@ -41,18 +39,18 @@ class UserMap {
41
39
  this.connection = this.velocityClient.connection;
42
40
  }
43
41
  this.commitment =
44
- config.subscriptionConfig.type === 'websocket' ||
42
+ (_d = (config.subscriptionConfig.type === 'websocket' ||
45
43
  config.subscriptionConfig.type === 'polling'
46
- ? (_b = config.subscriptionConfig.commitment) !== null && _b !== void 0 ? _b : this.velocityClient.opts.commitment
47
- : this.velocityClient.opts.commitment;
48
- this.includeIdle = (_c = config.includeIdle) !== null && _c !== void 0 ? _c : false;
44
+ ? (_a = config.subscriptionConfig.commitment) !== null && _a !== void 0 ? _a : (_b = this.velocityClient.opts) === null || _b === void 0 ? void 0 : _b.commitment
45
+ : (_c = this.velocityClient.opts) === null || _c === void 0 ? void 0 : _c.commitment)) !== null && _d !== void 0 ? _d : 'confirmed';
46
+ this.includeIdle = (_e = config.includeIdle) !== null && _e !== void 0 ? _e : false;
49
47
  this.filterByPoolId = config.filterByPoolId;
50
48
  this.additionalFilters = config.additionalFilters;
51
49
  this.disableSyncOnTotalAccountsChange =
52
- (_d = config.disableSyncOnTotalAccountsChange) !== null && _d !== void 0 ? _d : false;
50
+ (_f = config.disableSyncOnTotalAccountsChange) !== null && _f !== void 0 ? _f : false;
53
51
  let decodeFn;
54
- if ((_e = config.fastDecode) !== null && _e !== void 0 ? _e : true) {
55
- decodeFn = (name, buffer) => (0, user_2.decodeUser)(buffer);
52
+ if ((_g = config.fastDecode) !== null && _g !== void 0 ? _g : true) {
53
+ decodeFn = (_name, buffer) => (0, user_2.decodeUser)(buffer);
56
54
  }
57
55
  else {
58
56
  decodeFn = this.velocityClient.program.account.user.coder.accounts.decodeUnchecked.bind(this.velocityClient.program.account.user.coder.accounts);
@@ -89,11 +87,11 @@ class UserMap {
89
87
  decodeFn,
90
88
  });
91
89
  }
92
- this.syncConfig = (_f = config.syncConfig) !== null && _f !== void 0 ? _f : {
90
+ this.syncConfig = (_h = config.syncConfig) !== null && _h !== void 0 ? _h : {
93
91
  type: 'default',
94
92
  };
95
93
  // Whether to throw an error if the userMap fails to sync. Defaults to false.
96
- this.throwOnFailedSync = (_g = config.throwOnFailedSync) !== null && _g !== void 0 ? _g : false;
94
+ this.throwOnFailedSync = (_j = config.throwOnFailedSync) !== null && _j !== void 0 ? _j : false;
97
95
  this.eventEmitter = new events_1.EventEmitter();
98
96
  }
99
97
  async subscribe() {
@@ -120,9 +118,13 @@ class UserMap {
120
118
  },
121
119
  });
122
120
  await user.subscribe(userAccount);
121
+ const resolvedSlot = slot !== null && slot !== void 0 ? slot : (_a = user.getUserAccountAndSlot()) === null || _a === void 0 ? void 0 : _a.slot;
122
+ if (resolvedSlot === undefined) {
123
+ throw new Error('UserMap.addPubkey: no slot available after subscribing user account');
124
+ }
123
125
  this.userMap.set(userAccountPublicKey.toString(), {
124
126
  data: user,
125
- slot: slot !== null && slot !== void 0 ? slot : (_a = user.getUserAccountAndSlot()) === null || _a === void 0 ? void 0 : _a.slot,
127
+ slot: resolvedSlot,
126
128
  });
127
129
  this.eventEmitter.emit('userUpdate', user);
128
130
  }
@@ -150,17 +152,25 @@ class UserMap {
150
152
  if (!this.has(key)) {
151
153
  await this.addPubkey(new web3_js_1.PublicKey(key), undefined, undefined, accountSubscription);
152
154
  }
153
- return this.userMap.get(key).data;
155
+ const userWithSlot = this.userMap.get(key);
156
+ if (!userWithSlot) {
157
+ throw new Error(`UserMap.mustGet: no user found for ${key}`);
158
+ }
159
+ return userWithSlot.data;
154
160
  }
155
161
  async mustGetWithSlot(key, accountSubscription) {
156
162
  if (!this.has(key)) {
157
163
  await this.addPubkey(new web3_js_1.PublicKey(key), undefined, undefined, accountSubscription);
158
164
  }
159
- return this.userMap.get(key);
165
+ const userWithSlot = this.userMap.get(key);
166
+ if (!userWithSlot) {
167
+ throw new Error(`UserMap.mustGetWithSlot: no user found for ${key}`);
168
+ }
169
+ return userWithSlot;
160
170
  }
161
171
  async mustGetUserAccount(key) {
162
172
  const user = await this.mustGet(key);
163
- return user.getUserAccount();
173
+ return user.getUserAccountOrThrow();
164
174
  }
165
175
  /**
166
176
  * gets the Authority for a particular userAccountPublicKey, if no User exists, undefined is returned
@@ -168,11 +178,12 @@ class UserMap {
168
178
  * @returns authority PublicKey | undefined
169
179
  */
170
180
  getUserAuthority(key) {
181
+ var _a;
171
182
  const user = this.userMap.get(key);
172
183
  if (!user) {
173
184
  return undefined;
174
185
  }
175
- return user.data.getUserAccount().authority;
186
+ return (_a = user.data.getUserAccount()) === null || _a === void 0 ? void 0 : _a.authority;
176
187
  }
177
188
  /**
178
189
  * implements the {@link DLOBSource} interface
@@ -251,13 +262,13 @@ class UserMap {
251
262
  */
252
263
  getUniqueAuthorities(filterCriteria) {
253
264
  const usersMeetingCriteria = Array.from(this.values()).filter((user) => {
254
- let pass = true;
265
+ const userAccount = user.getUserAccountOrThrow();
255
266
  if (filterCriteria && filterCriteria.hasOpenOrders) {
256
- pass = pass && user.getUserAccount().hasOpenOrder;
267
+ return userAccount.hasOpenOrder;
257
268
  }
258
- return pass;
269
+ return true;
259
270
  });
260
- const userAuths = new Set(usersMeetingCriteria.map((user) => user.getUserAccount().authority.toBase58()));
271
+ const userAuths = new Set(usersMeetingCriteria.map((user) => user.getUserAccountOrThrow().authority.toBase58()));
261
272
  const userAuthKeys = Array.from(userAuths).map((userAuth) => new web3_js_1.PublicKey(userAuth));
262
273
  return userAuthKeys;
263
274
  }
@@ -284,7 +295,7 @@ class UserMap {
284
295
  }
285
296
  /**
286
297
  * Syncs the UserMap using the default sync method (single getProgramAccounts call with filters).
287
- * This method may fail when drift has too many users. (nodejs response size limits)
298
+ * This method may fail when velocity has too many users. (nodejs response size limits)
288
299
  * @returns
289
300
  */
290
301
  async defaultSync() {
@@ -357,7 +368,7 @@ class UserMap {
357
368
  }
358
369
  /**
359
370
  * Syncs the UserMap using the paginated sync method (multiple getMultipleAccounts calls with filters).
360
- * This method is more reliable when drift has many users.
371
+ * This method is more reliable when velocity has many users.
361
372
  * @returns
362
373
  */
363
374
  async paginatedSync() {
@@ -445,9 +456,7 @@ class UserMap {
445
456
  }
446
457
  }
447
458
  finally {
448
- if (this.syncPromiseResolver) {
449
- this.syncPromiseResolver();
450
- }
459
+ this.syncPromiseResolver();
451
460
  this.syncPromise = undefined;
452
461
  }
453
462
  }
@@ -1,7 +1,6 @@
1
1
  import { Commitment, Connection, MemcmpFilter } from '@solana/web3.js';
2
2
  import { VelocityClient } from '../velocityClient';
3
3
  import { GrpcConfigs } from '../accounts/types';
4
- import { AtLeastOne } from '../util/deprecatedAlias';
5
4
  export type UserAccountFilterCriteria = {
6
5
  hasOpenOrders: boolean;
7
6
  };
@@ -38,5 +37,7 @@ type UserMapConfigBase = {
38
37
  filterByPoolId?: number;
39
38
  additionalFilters?: MemcmpFilter[];
40
39
  };
41
- export type UserMapConfig = UserMapConfigBase & AtLeastOne<'velocityClient', 'driftClient', VelocityClient>;
40
+ export type UserMapConfig = UserMapConfigBase & {
41
+ velocityClient: VelocityClient;
42
+ };
42
43
  export {};
@@ -12,8 +12,6 @@ export declare class UserStatsMap {
12
12
  */
13
13
  private userStatsMap;
14
14
  private velocityClient;
15
- /** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
16
- private get driftClient();
17
15
  private bulkAccountLoader;
18
16
  private decode;
19
17
  private syncConfig;
@@ -37,7 +35,7 @@ export declare class UserStatsMap {
37
35
  updateWithOrderRecord(record: OrderRecord, userMap: UserMap): Promise<void>;
38
36
  updateWithEventRecord(record: WrappedEvent<any>, userMap?: UserMap): Promise<void>;
39
37
  has(authorityPublicKey: string): boolean;
40
- get(authorityPublicKey: string): UserStats;
38
+ get(authorityPublicKey: string): UserStats | undefined;
41
39
  /**
42
40
  * Enforce that a UserStats will exist for the given authorityPublicKey,
43
41
  * reading one from the blockchain if necessary.
@@ -7,10 +7,6 @@ const bulkAccountLoader_1 = require("../accounts/bulkAccountLoader");
7
7
  const memcmp_1 = require("../memcmp");
8
8
  const web3_js_1 = require("@solana/web3.js");
9
9
  class UserStatsMap {
10
- /** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
11
- get driftClient() {
12
- return this.velocityClient;
13
- }
14
10
  /**
15
11
  * Creates a new UserStatsMap instance.
16
12
  *
@@ -18,13 +14,15 @@ class UserStatsMap {
18
14
  * @param {BulkAccountLoader} [bulkAccountLoader] - If not provided, a new BulkAccountLoader with polling disabled will be created.
19
15
  */
20
16
  constructor(velocityClient, bulkAccountLoader, syncConfig) {
17
+ var _a, _b;
21
18
  /**
22
19
  * map from authority pubkey to UserStats
23
20
  */
24
21
  this.userStatsMap = new Map();
22
+ this.syncPromiseResolver = () => { };
25
23
  this.velocityClient = velocityClient;
26
24
  if (!bulkAccountLoader) {
27
- bulkAccountLoader = new bulkAccountLoader_1.BulkAccountLoader(velocityClient.connection, velocityClient.opts.commitment, 0);
25
+ bulkAccountLoader = new bulkAccountLoader_1.BulkAccountLoader(velocityClient.connection, (_b = (_a = velocityClient.opts) === null || _a === void 0 ? void 0 : _a.commitment) !== null && _b !== void 0 ? _b : 'confirmed', 0);
28
26
  }
29
27
  this.bulkAccountLoader = bulkAccountLoader;
30
28
  this.syncConfig = syncConfig !== null && syncConfig !== void 0 ? syncConfig : {
@@ -64,8 +62,8 @@ class UserStatsMap {
64
62
  }
65
63
  async updateWithOrderRecord(record, userMap) {
66
64
  const user = await userMap.mustGet(record.user.toString());
67
- if (!this.has(user.getUserAccount().authority.toString())) {
68
- await this.addUserStat(user.getUserAccount().authority, undefined, false);
65
+ if (!this.has(user.getUserAccountOrThrow().authority.toString())) {
66
+ await this.addUserStat(user.getUserAccountOrThrow().authority, undefined, false);
69
67
  }
70
68
  }
71
69
  async updateWithEventRecord(record, userMap) {
@@ -83,9 +81,9 @@ class UserStatsMap {
83
81
  }
84
82
  const liqRecord = record;
85
83
  const user = await userMap.mustGet(liqRecord.user.toString());
86
- await this.mustGet(user.getUserAccount().authority.toString());
84
+ await this.mustGet(user.getUserAccountOrThrow().authority.toString());
87
85
  const liquidatorUser = await userMap.mustGet(liqRecord.liquidator.toString());
88
- await this.mustGet(liquidatorUser.getUserAccount().authority.toString());
86
+ await this.mustGet(liquidatorUser.getUserAccountOrThrow().authority.toString());
89
87
  }
90
88
  else if (record.eventType === 'OrderRecord') {
91
89
  if (!userMap) {
@@ -101,11 +99,11 @@ class UserStatsMap {
101
99
  const actionRecord = record;
102
100
  if (actionRecord.taker) {
103
101
  const taker = await userMap.mustGet(actionRecord.taker.toString());
104
- await this.mustGet(taker.getUserAccount().authority.toString());
102
+ await this.mustGet(taker.getUserAccountOrThrow().authority.toString());
105
103
  }
106
104
  if (actionRecord.maker) {
107
105
  const maker = await userMap.mustGet(actionRecord.maker.toString());
108
- await this.mustGet(maker.getUserAccount().authority.toString());
106
+ await this.mustGet(maker.getUserAccountOrThrow().authority.toString());
109
107
  }
110
108
  }
111
109
  else if (record.eventType === 'SettlePnlRecord') {
@@ -114,7 +112,7 @@ class UserStatsMap {
114
112
  }
115
113
  const settlePnlRecord = record;
116
114
  const user = await userMap.mustGet(settlePnlRecord.user.toString());
117
- await this.mustGet(user.getUserAccount().authority.toString());
115
+ await this.mustGet(user.getUserAccountOrThrow().authority.toString());
118
116
  }
119
117
  else if (record.eventType === 'NewUserRecord') {
120
118
  const newUserRecord = record;
@@ -141,7 +139,11 @@ class UserStatsMap {
141
139
  if (!this.has(authorityPublicKey)) {
142
140
  await this.addUserStat(new web3_js_1.PublicKey(authorityPublicKey), undefined, false);
143
141
  }
144
- return this.get(authorityPublicKey);
142
+ const userStats = this.get(authorityPublicKey);
143
+ if (!userStats) {
144
+ throw new Error(`UserStatsMap: UserStats missing for authority ${authorityPublicKey} after addUserStat`);
145
+ }
146
+ return userStats;
145
147
  }
146
148
  values() {
147
149
  return this.userStatsMap.values();
@@ -220,8 +222,9 @@ class UserStatsMap {
220
222
  for (let i = 0; i < accountsToLoad.length; i += chunkSize) {
221
223
  const chunk = accountsToLoad.slice(i, i + chunkSize);
222
224
  tasks.push(async () => {
225
+ var _a;
223
226
  const accountInfos = await this.velocityClient.connection.getMultipleAccountsInfoAndContext(chunk, {
224
- commitment: this.velocityClient.opts.commitment,
227
+ commitment: (_a = this.velocityClient.opts) === null || _a === void 0 ? void 0 : _a.commitment,
225
228
  });
226
229
  for (let j = 0; j < accountInfos.value.length; j += 1) {
227
230
  const accountInfo = accountInfos.value[j];
@@ -254,9 +257,7 @@ class UserStatsMap {
254
257
  console.error(`Error in UserStatsMap.paginatedSync():`, err);
255
258
  }
256
259
  finally {
257
- if (this.syncPromiseResolver) {
258
- this.syncPromiseResolver();
259
- }
260
+ this.syncPromiseResolver();
260
261
  this.syncPromise = undefined;
261
262
  }
262
263
  }
@@ -10,8 +10,6 @@ import { UserStatsConfig } from './userStatsConfig';
10
10
  import { ReferrerInfo, UserStatsAccount } from './types';
11
11
  export declare class UserStats {
12
12
  velocityClient: VelocityClient;
13
- /** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
14
- get driftClient(): VelocityClient;
15
13
  userStatsAccountPublicKey: PublicKey;
16
14
  accountSubscriber: UserStatsAccountSubscriber;
17
15
  isSubscribed: boolean;
@@ -19,8 +17,13 @@ export declare class UserStats {
19
17
  subscribe(userStatsAccount?: UserStatsAccount): Promise<boolean>;
20
18
  fetchAccounts(): Promise<void>;
21
19
  unsubscribe(): Promise<void>;
22
- getAccountAndSlot(): DataAndSlot<UserStatsAccount>;
23
- getAccount(): UserStatsAccount;
20
+ getAccountAndSlot(): DataAndSlot<UserStatsAccount> | undefined;
21
+ getAccount(): UserStatsAccount | undefined;
22
+ /**
23
+ * Like {@link getAccount} but throws a named error instead of returning
24
+ * `undefined` when the stats account has not been loaded yet.
25
+ */
26
+ getAccountOrThrow(): UserStatsAccount;
24
27
  getReferrerInfo(): ReferrerInfo | undefined;
25
28
  static getOldestActionTs(account: UserStatsAccount): number;
26
29
  }
@@ -7,32 +7,29 @@ const webSocketUserStatsAccountSubsriber_1 = require("./accounts/webSocketUserSt
7
7
  const pda_1 = require("./addresses/pda");
8
8
  const grpcUserStatsAccountSubscriber_1 = require("./accounts/grpcUserStatsAccountSubscriber");
9
9
  class UserStats {
10
- /** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
11
- get driftClient() {
12
- return this.velocityClient;
13
- }
14
10
  constructor(config) {
15
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
11
+ var _a, _b, _c, _d, _e, _f, _g, _h;
12
+ this.isSubscribed = false;
16
13
  // Type-system guarantees at least one of the two is supplied.
17
- const velocityClient = ((_a = config.velocityClient) !== null && _a !== void 0 ? _a : config.driftClient);
14
+ const velocityClient = config.velocityClient;
18
15
  this.velocityClient = velocityClient;
19
16
  this.userStatsAccountPublicKey = config.userStatsAccountPublicKey;
20
- if (((_b = config.accountSubscription) === null || _b === void 0 ? void 0 : _b.type) === 'polling') {
17
+ if (((_a = config.accountSubscription) === null || _a === void 0 ? void 0 : _a.type) === 'polling') {
21
18
  this.accountSubscriber = new pollingUserStatsAccountSubscriber_1.PollingUserStatsAccountSubscriber(velocityClient.program, config.userStatsAccountPublicKey, config.accountSubscription.accountLoader);
22
19
  }
23
- else if (((_c = config.accountSubscription) === null || _c === void 0 ? void 0 : _c.type) === 'grpc') {
20
+ else if (((_b = config.accountSubscription) === null || _b === void 0 ? void 0 : _b.type) === 'grpc') {
24
21
  this.accountSubscriber = new grpcUserStatsAccountSubscriber_1.grpcUserStatsAccountSubscriber(config.accountSubscription.grpcConfigs, velocityClient.program, config.userStatsAccountPublicKey, {
25
- resubTimeoutMs: (_d = config.accountSubscription) === null || _d === void 0 ? void 0 : _d.resubTimeoutMs,
26
- logResubMessages: (_e = config.accountSubscription) === null || _e === void 0 ? void 0 : _e.logResubMessages,
22
+ resubTimeoutMs: (_c = config.accountSubscription) === null || _c === void 0 ? void 0 : _c.resubTimeoutMs,
23
+ logResubMessages: (_d = config.accountSubscription) === null || _d === void 0 ? void 0 : _d.logResubMessages,
27
24
  });
28
25
  }
29
- else if (((_f = config.accountSubscription) === null || _f === void 0 ? void 0 : _f.type) === 'websocket') {
26
+ else if (((_e = config.accountSubscription) === null || _e === void 0 ? void 0 : _e.type) === 'websocket') {
30
27
  this.accountSubscriber = new webSocketUserStatsAccountSubsriber_1.WebSocketUserStatsAccountSubscriber(velocityClient.program, config.userStatsAccountPublicKey, {
31
- resubTimeoutMs: (_g = config.accountSubscription) === null || _g === void 0 ? void 0 : _g.resubTimeoutMs,
32
- logResubMessages: (_h = config.accountSubscription) === null || _h === void 0 ? void 0 : _h.logResubMessages,
28
+ resubTimeoutMs: (_f = config.accountSubscription) === null || _f === void 0 ? void 0 : _f.resubTimeoutMs,
29
+ logResubMessages: (_g = config.accountSubscription) === null || _g === void 0 ? void 0 : _g.logResubMessages,
33
30
  }, config.accountSubscription.commitment);
34
31
  }
35
- else if (((_j = config.accountSubscription) === null || _j === void 0 ? void 0 : _j.type) === 'custom') {
32
+ else if (((_h = config.accountSubscription) === null || _h === void 0 ? void 0 : _h.type) === 'custom') {
36
33
  this.accountSubscriber =
37
34
  config.accountSubscription.userStatsAccountSubscriber;
38
35
  }
@@ -56,16 +53,29 @@ class UserStats {
56
53
  return this.accountSubscriber.getUserStatsAccountAndSlot();
57
54
  }
58
55
  getAccount() {
59
- return this.accountSubscriber.getUserStatsAccountAndSlot().data;
56
+ var _a;
57
+ return (_a = this.accountSubscriber.getUserStatsAccountAndSlot()) === null || _a === void 0 ? void 0 : _a.data;
58
+ }
59
+ /**
60
+ * Like {@link getAccount} but throws a named error instead of returning
61
+ * `undefined` when the stats account has not been loaded yet.
62
+ */
63
+ getAccountOrThrow() {
64
+ const account = this.getAccount();
65
+ if (!account) {
66
+ throw new Error('UserStats account not loaded');
67
+ }
68
+ return account;
60
69
  }
61
70
  getReferrerInfo() {
62
- if (this.getAccount().referrer.equals(web3_js_1.PublicKey.default)) {
71
+ const account = this.getAccount();
72
+ if (!account || account.referrer.equals(web3_js_1.PublicKey.default)) {
63
73
  return undefined;
64
74
  }
65
75
  else {
66
76
  return {
67
- referrer: (0, pda_1.getUserAccountPublicKeySync)(this.velocityClient.program.programId, this.getAccount().referrer, 0),
68
- referrerStats: (0, pda_1.getUserStatsAccountPublicKey)(this.velocityClient.program.programId, this.getAccount().referrer),
77
+ referrer: (0, pda_1.getUserAccountPublicKeySync)(this.velocityClient.program.programId, account.referrer, 0),
78
+ referrerStats: (0, pda_1.getUserStatsAccountPublicKey)(this.velocityClient.program.programId, account.referrer),
69
79
  };
70
80
  }
71
81
  }
@@ -2,12 +2,13 @@ import { VelocityClient } from './velocityClient';
2
2
  import { Commitment, PublicKey } from '@solana/web3.js';
3
3
  import { BulkAccountLoader } from './accounts/bulkAccountLoader';
4
4
  import { GrpcConfigs, UserStatsAccountSubscriber } from './accounts/types';
5
- import { AtLeastOne } from './util/deprecatedAlias';
6
5
  type UserStatsConfigBase = {
7
6
  accountSubscription?: UserStatsSubscriptionConfig;
8
7
  userStatsAccountPublicKey: PublicKey;
9
8
  };
10
- export type UserStatsConfig = UserStatsConfigBase & AtLeastOne<'velocityClient', 'driftClient', VelocityClient>;
9
+ export type UserStatsConfig = UserStatsConfigBase & {
10
+ velocityClient: VelocityClient;
11
+ };
11
12
  export type UserStatsSubscriptionConfig = {
12
13
  type: 'websocket';
13
14
  resubTimeoutMs?: number;