@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
@@ -19,14 +19,10 @@ import {
19
19
  } from './velocityPriorityFeeMethod';
20
20
 
21
21
  export class PriorityFeeSubscriber {
22
- connection: Connection;
22
+ connection?: Connection;
23
23
  frequencyMs: number;
24
24
  addresses: string[];
25
25
  velocityMarkets?: VelocityMarketInfo[];
26
- /** @deprecated Use `velocityMarkets` instead. `driftMarkets` will be removed in a future major. */
27
- public get driftMarkets(): VelocityMarketInfo[] | undefined {
28
- return this.velocityMarkets;
29
- }
30
26
  customStrategy?: PriorityFeeStrategy;
31
27
  averageStrategy = new AverageOverSlotsStrategy();
32
28
  maxStrategy = new MaxOverSlotsStrategy();
@@ -36,10 +32,6 @@ export class PriorityFeeSubscriber {
36
32
  priorityFeeMultiplier?: number;
37
33
 
38
34
  velocityPriorityFeeEndpoint?: string;
39
- /** @deprecated Use `velocityPriorityFeeEndpoint` instead. `driftPriorityFeeEndpoint` will be removed in a future major. */
40
- public get driftPriorityFeeEndpoint(): string | undefined {
41
- return this.velocityPriorityFeeEndpoint;
42
- }
43
35
  heliusRpcUrl?: string;
44
36
  lastHeliusSample?: HeliusPriorityFeeLevels;
45
37
 
@@ -58,7 +50,7 @@ export class PriorityFeeSubscriber {
58
50
  this.addresses = config.addresses
59
51
  ? config.addresses.map((address) => address.toBase58())
60
52
  : [];
61
- this.velocityMarkets = config.velocityMarkets ?? config.driftMarkets;
53
+ this.velocityMarkets = config.velocityMarkets;
62
54
 
63
55
  if (config.customStrategy) {
64
56
  this.customStrategy = config.customStrategy;
@@ -72,7 +64,7 @@ export class PriorityFeeSubscriber {
72
64
 
73
65
  if (this.priorityFeeMethod === PriorityFeeMethod.HELIUS) {
74
66
  if (config.heliusRpcUrl === undefined) {
75
- if (this.connection.rpcEndpoint.includes('helius')) {
67
+ if (this.connection?.rpcEndpoint.includes('helius')) {
76
68
  this.heliusRpcUrl = this.connection.rpcEndpoint;
77
69
  } else {
78
70
  throw new Error(
@@ -84,7 +76,8 @@ export class PriorityFeeSubscriber {
84
76
  }
85
77
  } else if (this.priorityFeeMethod === PriorityFeeMethod.VELOCITY) {
86
78
  this.velocityPriorityFeeEndpoint =
87
- config.velocityPriorityFeeEndpoint ?? config.driftPriorityFeeEndpoint;
79
+ config.velocityPriorityFeeEndpoint ??
80
+ config.velocityPriorityFeeEndpoint;
88
81
  }
89
82
  }
90
83
 
@@ -110,11 +103,19 @@ export class PriorityFeeSubscriber {
110
103
  }
111
104
 
112
105
  private async loadForSolana(): Promise<void> {
106
+ if (this.connection === undefined) {
107
+ throw new Error(
108
+ 'connection must be provided to use SOLANA priority fee API'
109
+ );
110
+ }
113
111
  const samples = await fetchSolanaPriorityFee(
114
- this.connection!,
112
+ this.connection,
115
113
  this.lookbackDistance,
116
114
  this.addresses
117
115
  );
116
+ if (samples === undefined) {
117
+ throw new Error('fetchSolanaPriorityFee returned no samples');
118
+ }
118
119
  if (samples.length > 0) {
119
120
  this.latestPriorityFee = samples[0].prioritizationFee;
120
121
  this.lastSlotSeen = samples[0].slot;
@@ -128,6 +129,11 @@ export class PriorityFeeSubscriber {
128
129
  }
129
130
 
130
131
  private async loadForHelius(): Promise<void> {
132
+ if (this.heliusRpcUrl === undefined) {
133
+ throw new Error(
134
+ 'heliusRpcUrl must be provided to use PriorityFeeMethod.HELIUS'
135
+ );
136
+ }
131
137
  const sample = await fetchHeliusPriorityFee(
132
138
  this.heliusRpcUrl,
133
139
  this.lookbackDistance,
@@ -135,31 +141,54 @@ export class PriorityFeeSubscriber {
135
141
  );
136
142
  this.lastHeliusSample = sample?.result?.priorityFeeLevels ?? undefined;
137
143
 
138
- if (this.lastHeliusSample) {
144
+ if (sample !== undefined && this.lastHeliusSample) {
139
145
  this.lastAvgStrategyResult =
140
146
  this.lastHeliusSample[HeliusPriorityLevel.MEDIUM];
141
147
  this.lastMaxStrategyResult =
142
148
  this.lastHeliusSample[HeliusPriorityLevel.UNSAFE_MAX];
143
149
  if (this.customStrategy) {
144
- this.lastCustomStrategyResult = this.customStrategy.calculate(sample!);
150
+ this.lastCustomStrategyResult = this.customStrategy.calculate(sample);
145
151
  }
146
152
  }
147
153
  }
148
154
 
149
- private async loadForDrift(): Promise<void> {
155
+ private async loadForVelocity(): Promise<void> {
150
156
  if (!this.velocityMarkets) {
151
157
  return;
152
158
  }
159
+ if (this.velocityPriorityFeeEndpoint === undefined) {
160
+ throw new Error(
161
+ 'velocityPriorityFeeEndpoint must be provided to use PriorityFeeMethod.VELOCITY'
162
+ );
163
+ }
153
164
  const sample = await fetchVelocityPriorityFee(
154
- this.velocityPriorityFeeEndpoint!,
165
+ this.velocityPriorityFeeEndpoint,
155
166
  this.velocityMarkets.map((m) => m.marketType),
156
167
  this.velocityMarkets.map((m) => m.marketIndex)
157
168
  );
158
169
  if (sample.length > 0) {
159
- this.lastAvgStrategyResult = sample[HeliusPriorityLevel.MEDIUM];
160
- this.lastMaxStrategyResult = sample[HeliusPriorityLevel.UNSAFE_MAX];
170
+ // The endpoint returns one fee-level set per requested market. Take the
171
+ // max level across markets so a transaction touching several markets is
172
+ // covered by the most expensive one. (Base indexed the array itself with
173
+ // a string enum key — `sample['medium']` — which yielded `undefined` and
174
+ // produced NaN strategy results; the missing per-element index is fixed
175
+ // here.)
176
+ this.lastAvgStrategyResult = Math.max(
177
+ ...sample.map((s) => s[HeliusPriorityLevel.MEDIUM])
178
+ );
179
+ this.lastMaxStrategyResult = Math.max(
180
+ ...sample.map((s) => s[HeliusPriorityLevel.UNSAFE_MAX])
181
+ );
161
182
  if (this.customStrategy) {
162
- this.lastCustomStrategyResult = this.customStrategy.calculate(sample);
183
+ // Custom strategies expect `{ slot, prioritizationFee }[]`; map each
184
+ // market's medium level into that shape so they aggregate real values
185
+ // instead of summing the absent `prioritizationFee` field (NaN).
186
+ this.lastCustomStrategyResult = this.customStrategy.calculate(
187
+ sample.map((s) => ({
188
+ slot: 0,
189
+ prioritizationFee: s[HeliusPriorityLevel.MEDIUM],
190
+ }))
191
+ );
163
192
  }
164
193
  }
165
194
  }
@@ -228,7 +257,7 @@ export class PriorityFeeSubscriber {
228
257
  } else if (this.priorityFeeMethod === PriorityFeeMethod.HELIUS) {
229
258
  await this.loadForHelius();
230
259
  } else if (this.priorityFeeMethod === PriorityFeeMethod.VELOCITY) {
231
- await this.loadForDrift();
260
+ await this.loadForVelocity();
232
261
  } else {
233
262
  throw new Error(`${this.priorityFeeMethod} load not implemented`);
234
263
  }
@@ -17,15 +17,7 @@ export class PriorityFeeSubscriberMap {
17
17
  intervalId?: ReturnType<typeof setTimeout>;
18
18
 
19
19
  velocityMarkets?: VelocityMarketInfo[];
20
- /** @deprecated Use `velocityMarkets` instead. `driftMarkets` will be removed in a future major. */
21
- public get driftMarkets(): VelocityMarketInfo[] | undefined {
22
- return this.velocityMarkets;
23
- }
24
20
  velocityPriorityFeeEndpoint: string;
25
- /** @deprecated Use `velocityPriorityFeeEndpoint` instead. `driftPriorityFeeEndpoint` will be removed in a future major. */
26
- public get driftPriorityFeeEndpoint(): string {
27
- return this.velocityPriorityFeeEndpoint;
28
- }
29
21
  feesMap: Map<string, Map<number, VelocityPriorityFeeLevels>>; // marketType -> marketIndex -> priority fee
30
22
 
31
23
  public constructor(config: PriorityFeeSubscriberMapConfig) {
@@ -33,8 +25,8 @@ export class PriorityFeeSubscriberMap {
33
25
  config.frequencyMs ?? DEFAULT_PRIORITY_FEE_MAP_FREQUENCY_MS;
34
26
  // Type-system guarantees at least one of the two is supplied.
35
27
  this.velocityPriorityFeeEndpoint = (config.velocityPriorityFeeEndpoint ??
36
- config.driftPriorityFeeEndpoint)!;
37
- this.velocityMarkets = config.velocityMarkets ?? config.driftMarkets;
28
+ config.velocityPriorityFeeEndpoint)!;
29
+ this.velocityMarkets = config.velocityMarkets;
38
30
  this.feesMap = new Map<string, Map<number, VelocityPriorityFeeLevels>>();
39
31
  this.feesMap.set('perp', new Map<number, VelocityPriorityFeeLevels>());
40
32
  this.feesMap.set('spot', new Map<number, VelocityPriorityFeeLevels>());
@@ -9,7 +9,7 @@ export async function fetchSolanaPriorityFee(
9
9
  connection: Connection,
10
10
  lookbackDistance: number,
11
11
  addresses: string[]
12
- ): Promise<SolanaPriorityFeeResponse[]> {
12
+ ): Promise<SolanaPriorityFeeResponse[] | undefined> {
13
13
  try {
14
14
  // @ts-ignore
15
15
  const rpcJSONResponse: any = await connection._rpcRequest(
@@ -5,7 +5,6 @@ import {
5
5
  VelocityMarketInfo,
6
6
  VelocityPriorityFeeResponse,
7
7
  } from './velocityPriorityFeeMethod';
8
- import { AtLeastOne } from '../util/deprecatedAlias';
9
8
 
10
9
  export const DEFAULT_PRIORITY_FEE_MAP_FREQUENCY_MS = 10_000;
11
10
 
@@ -35,8 +34,6 @@ export type PriorityFeeSubscriberConfig = {
35
34
  addresses?: PublicKey[];
36
35
  /// market type and index, optionally provide at initialization time if using priorityFeeMethod.VELOCITY
37
36
  velocityMarkets?: VelocityMarketInfo[];
38
- /** @deprecated Use `velocityMarkets` instead. `driftMarkets` will be removed in a future major. */
39
- driftMarkets?: VelocityMarketInfo[];
40
37
  /// custom strategy to calculate priority fees, defaults to AVERAGE
41
38
  customStrategy?: PriorityFeeStrategy;
42
39
  /// method for fetching priority fee samples
@@ -47,8 +44,6 @@ export type PriorityFeeSubscriberConfig = {
47
44
  heliusRpcUrl?: string;
48
45
  /// url for Velocity cached priority fee endpoint, required if using priorityFeeMethod.VELOCITY
49
46
  velocityPriorityFeeEndpoint?: string;
50
- /** @deprecated Use `velocityPriorityFeeEndpoint` instead. `driftPriorityFeeEndpoint` will be removed in a future major. */
51
- driftPriorityFeeEndpoint?: string;
52
47
  /// clamp any returned priority fee value to this value.
53
48
  maxFeeMicroLamports?: number;
54
49
  /// multiplier applied to priority fee before maxFeeMicroLamports, defaults to 1.0
@@ -60,15 +55,10 @@ type PriorityFeeSubscriberMapConfigBase = {
60
55
  frequencyMs?: number;
61
56
  /// market type and associated market index to query
62
57
  velocityMarkets?: VelocityMarketInfo[];
63
- /** @deprecated Use `velocityMarkets` instead. `driftMarkets` will be removed in a future major. */
64
- driftMarkets?: VelocityMarketInfo[];
65
58
  };
66
59
 
67
60
  /// url for Velocity cached priority fee endpoint
68
61
  export type PriorityFeeSubscriberMapConfig =
69
- PriorityFeeSubscriberMapConfigBase &
70
- AtLeastOne<
71
- 'velocityPriorityFeeEndpoint',
72
- 'driftPriorityFeeEndpoint',
73
- string
74
- >;
62
+ PriorityFeeSubscriberMapConfigBase & {
63
+ velocityPriorityFeeEndpoint: string;
64
+ };
@@ -6,9 +6,6 @@ export type VelocityMarketInfo = {
6
6
  marketIndex: number;
7
7
  };
8
8
 
9
- /** @deprecated Use `VelocityMarketInfo` instead. `DriftMarketInfo` will be removed in a future major. */
10
- export type DriftMarketInfo = VelocityMarketInfo;
11
-
12
9
  export type VelocityPriorityFeeLevels = {
13
10
  [key in HeliusPriorityLevel]: number;
14
11
  } & {
@@ -16,14 +13,8 @@ export type VelocityPriorityFeeLevels = {
16
13
  marketIndex: number;
17
14
  };
18
15
 
19
- /** @deprecated Use `VelocityPriorityFeeLevels` instead. `DriftPriorityFeeLevels` will be removed in a future major. */
20
- export type DriftPriorityFeeLevels = VelocityPriorityFeeLevels;
21
-
22
16
  export type VelocityPriorityFeeResponse = VelocityPriorityFeeLevels[];
23
17
 
24
- /** @deprecated Use `VelocityPriorityFeeResponse` instead. `DriftPriorityFeeResponse` will be removed in a future major. */
25
- export type DriftPriorityFeeResponse = VelocityPriorityFeeResponse;
26
-
27
18
  export async function fetchVelocityPriorityFee(
28
19
  url: string,
29
20
  marketTypes: string[],
@@ -49,6 +40,3 @@ export async function fetchVelocityPriorityFee(
49
40
 
50
41
  return [];
51
42
  }
52
-
53
- /** @deprecated Use `fetchVelocityPriorityFee` instead. `fetchDriftPriorityFee` will be removed in a future major. */
54
- export const fetchDriftPriorityFee = fetchVelocityPriorityFee;
@@ -50,7 +50,7 @@ export class PythLazerSubscriber {
50
50
  * @param endpoints - Array of WebSocket endpoint URLs for Pyth Lazer
51
51
  * @param token - Authentication token for Pyth Lazer API
52
52
  * @param priceFeedArrays - Array of price feed configurations to subscribe to
53
- * @param env - Drift environment (mainnet-beta, devnet, etc.)
53
+ * @param env - Velocity environment (mainnet-beta, devnet, etc.)
54
54
  * @param resubTimeoutMs - Milliseconds to wait before resubscribing on data timeout
55
55
  * @param sdkLogging - Whether to log Pyth SDK logs to the console. This is very noisy but could be useful for debugging.
56
56
  * @param feedProperties - Price feed properties to request. Must include both 'price' and 'exponent' (required for getPriceFromMarketIndex). Defaults to ['price', 'bestAskPrice', 'bestBidPrice', 'exponent']. Stored by copy so caller mutation does not affect this instance.
package/src/pyth/types.ts CHANGED
@@ -4445,8 +4445,6 @@ export const IDL: PythSolanaReceiver = {
4445
4445
  },
4446
4446
  ],
4447
4447
  };
4448
-
4449
- export declare const PYTH_SOLANA_RECEIVER_IDL: PythSolanaReceiver;
4450
4448
  //# sourceMappingURL=pyth_solana_receiver.d.ts.map
4451
4449
 
4452
4450
  export type PriceUpdateAccount =
@@ -12,8 +12,8 @@ export interface SlotSubscriberEvents {
12
12
  }
13
13
 
14
14
  export class SlotSubscriber {
15
- currentSlot: number;
16
- subscriptionId: number;
15
+ currentSlot = 0;
16
+ subscriptionId?: number;
17
17
  eventEmitter: StrictEventEmitter<EventEmitter, SlotSubscriberEvents>;
18
18
 
19
19
  // Reconnection
@@ -28,7 +28,7 @@ export class SlotSubscriber {
28
28
  ) {
29
29
  this.eventEmitter = new EventEmitter();
30
30
  this.resubTimeoutMs = config?.resubTimeoutMs;
31
- if (this.resubTimeoutMs < 1000) {
31
+ if (this.resubTimeoutMs !== undefined && this.resubTimeoutMs < 1000) {
32
32
  console.log(
33
33
  'resubTimeoutMs should be at least 1000ms to avoid spamming resub'
34
34
  );
@@ -18,8 +18,16 @@ export type Slothash = {
18
18
  };
19
19
 
20
20
  export class SlothashSubscriber {
21
- currentSlothash: Slothash;
22
- subscriptionId: number;
21
+ private _currentSlothash?: Slothash;
22
+ private get currentSlothash(): Slothash {
23
+ if (!this._currentSlothash) {
24
+ throw new Error(
25
+ 'SlothashSubscriber: slothash accessed before subscribe()'
26
+ );
27
+ }
28
+ return this._currentSlothash;
29
+ }
30
+ subscriptionId?: number;
23
31
  commitment: Commitment;
24
32
 
25
33
  // Reconnection
@@ -34,7 +42,7 @@ export class SlothashSubscriber {
34
42
  ) {
35
43
  this.resubTimeoutMs = config?.resubTimeoutMs;
36
44
  this.commitment = config?.commitment ?? 'processed';
37
- if (this.resubTimeoutMs < 1000) {
45
+ if (this.resubTimeoutMs != null && this.resubTimeoutMs < 1000) {
38
46
  console.log(
39
47
  'resubTimeoutMs should be at least 1000ms to avoid spamming resub'
40
48
  );
@@ -53,18 +61,21 @@ export class SlothashSubscriber {
53
61
  if (currentAccountData == null) {
54
62
  throw new Error('Failed to retrieve current slot hash');
55
63
  }
56
- this.currentSlothash = deserializeSlothash(currentAccountData.data);
64
+ this._currentSlothash = deserializeSlothash(currentAccountData.data);
57
65
 
58
66
  this.subscriptionId = this.connection.onAccountChange(
59
67
  SYSVAR_SLOT_HASHES_PUBKEY,
60
68
  (slothashInfo, context) => {
61
- if (!this.currentSlothash || this.currentSlothash.slot < context.slot) {
69
+ if (
70
+ !this._currentSlothash ||
71
+ this._currentSlothash.slot < context.slot
72
+ ) {
62
73
  if (this.resubTimeoutMs && !this.isUnsubscribing) {
63
74
  this.receivingData = true;
64
75
  clearTimeout(this.timeoutId);
65
76
  this.setTimeout();
66
77
  }
67
- this.currentSlothash = deserializeSlothash(slothashInfo.data);
78
+ this._currentSlothash = deserializeSlothash(slothashInfo.data);
68
79
  }
69
80
  },
70
81
  this.commitment
@@ -270,7 +270,7 @@ export class UnifiedSwapClient {
270
270
  slippageBps,
271
271
  swapMode: isExactOut ? TitanSwapMode.ExactOut : TitanSwapMode.ExactIn,
272
272
  onlyDirectRoutes,
273
- sizeConstraint: sizeConstraint || 1280 - 375, // MAX_TX_BYTE_SIZE - buffer for drift instructions
273
+ sizeConstraint: sizeConstraint || 1280 - 375, // MAX_TX_BYTE_SIZE - buffer for velocity instructions
274
274
  });
275
275
 
276
276
  swapInstructions = titanClient.getTitanInstructions({
@@ -10,7 +10,6 @@ import {
10
10
 
11
11
  export class grpcSignedMsgUserOrdersAccountSubscriber extends SignedMsgUserOrdersAccountSubscriber {
12
12
  private grpcConfigs: GrpcConfigs;
13
- override subscriber: grpcProgramAccountSubscriber<SignedMsgUserOrdersAccount>;
14
13
 
15
14
  constructor({
16
15
  grpcConfigs,
@@ -23,8 +22,8 @@ export class grpcSignedMsgUserOrdersAccountSubscriber extends SignedMsgUserOrder
23
22
  }
24
23
 
25
24
  public async subscribe(): Promise<void> {
26
- if (!this.subscriber) {
27
- this.subscriber =
25
+ if (!this._subscriber) {
26
+ this._subscriber =
28
27
  await grpcProgramAccountSubscriber.create<SignedMsgUserOrdersAccount>(
29
28
  this.grpcConfigs,
30
29
  'SingedMsgUserOrdersAccountMap',
@@ -71,9 +70,9 @@ export class grpcSignedMsgUserOrdersAccountSubscriber extends SignedMsgUserOrder
71
70
  }
72
71
 
73
72
  public async unsubscribe(): Promise<void> {
74
- if (!this.subscriber) return;
75
- await this.subscriber.unsubscribe();
76
- this.subscriber = undefined;
73
+ if (!this._subscriber) return;
74
+ await this._subscriber.unsubscribe();
75
+ this._subscriber = undefined;
77
76
  if (this.resyncTimeoutId !== undefined) {
78
77
  clearTimeout(this.resyncTimeoutId);
79
78
  this.resyncTimeoutId = undefined;
@@ -4,7 +4,6 @@ import { SignedMsgOrderId, SignedMsgUserOrdersAccount } from '../types';
4
4
  import { Commitment, Context, PublicKey } from '@solana/web3.js';
5
5
  import { ResubOpts } from '../accounts/types';
6
6
  import { VelocityClient } from '../velocityClient';
7
- import { AtLeastOne } from '../util/deprecatedAlias';
8
7
  import StrictEventEmitter from 'strict-event-emitter-types';
9
8
  import { EventEmitter } from 'events';
10
9
 
@@ -13,7 +12,7 @@ export type SignedMsgUserOrdersAccountSubscriberConfig = {
13
12
  resubOpts?: ResubOpts;
14
13
  decodeFn?: (name: string, data: Buffer) => SignedMsgUserOrdersAccount;
15
14
  resyncIntervalMs?: number;
16
- } & AtLeastOne<'velocityClient', 'driftClient', VelocityClient>;
15
+ } & { velocityClient: VelocityClient };
17
16
 
18
17
  export interface SignedMsgUserOrdersAccountSubscriberEvents {
19
18
  onAccountUpdate: (
@@ -31,10 +30,6 @@ export interface SignedMsgUserOrdersAccountSubscriberEvents {
31
30
 
32
31
  export class SignedMsgUserOrdersAccountSubscriber {
33
32
  protected velocityClient: VelocityClient;
34
- /** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
35
- protected get driftClient(): VelocityClient {
36
- return this.velocityClient;
37
- }
38
33
  protected commitment: Commitment;
39
34
  protected resubOpts?: ResubOpts;
40
35
  protected resyncTimeoutId?: ReturnType<typeof setTimeout>;
@@ -47,12 +42,20 @@ export class SignedMsgUserOrdersAccountSubscriber {
47
42
  string,
48
43
  { slot: number; signedMsgUserOrdersAccount: SignedMsgUserOrdersAccount }
49
44
  >();
50
- mostRecentSlot: number;
45
+ mostRecentSlot = 0;
51
46
 
52
47
  fetchPromise?: Promise<void>;
53
- fetchPromiseResolver: () => void;
48
+ private fetchPromiseResolver: () => void = () => {};
54
49
 
55
- protected subscriber: WebSocketProgramAccountSubscriber<SignedMsgUserOrdersAccount>;
50
+ protected _subscriber?: WebSocketProgramAccountSubscriber<SignedMsgUserOrdersAccount>;
51
+ protected get subscriber(): WebSocketProgramAccountSubscriber<SignedMsgUserOrdersAccount> {
52
+ if (!this._subscriber) {
53
+ throw new Error(
54
+ 'SignedMsgUserOrdersAccountSubscriber: subscriber accessed before subscribe()'
55
+ );
56
+ }
57
+ return this._subscriber;
58
+ }
56
59
  public eventEmitter: StrictEventEmitter<
57
60
  EventEmitter,
58
61
  SignedMsgUserOrdersAccountSubscriberEvents
@@ -60,7 +63,6 @@ export class SignedMsgUserOrdersAccountSubscriber {
60
63
 
61
64
  constructor({
62
65
  velocityClient,
63
- driftClient,
64
66
  commitment,
65
67
  resubOpts,
66
68
  decodeFn,
@@ -69,7 +71,7 @@ export class SignedMsgUserOrdersAccountSubscriber {
69
71
  this.commitment = commitment ?? 'confirmed';
70
72
  this.resubOpts = resubOpts;
71
73
  // Type-system guarantees at least one of the two is supplied.
72
- this.velocityClient = (velocityClient ?? driftClient)!;
74
+ this.velocityClient = velocityClient!;
73
75
  this.decodeFn =
74
76
  decodeFn ??
75
77
  (
@@ -84,9 +86,9 @@ export class SignedMsgUserOrdersAccountSubscriber {
84
86
  }
85
87
 
86
88
  public async subscribe(): Promise<void> {
87
- if (!this.subscriber) {
89
+ if (!this._subscriber) {
88
90
  const filters = [getSignedMsgUserOrdersFilter()];
89
- this.subscriber =
91
+ this._subscriber =
90
92
  new WebSocketProgramAccountSubscriber<SignedMsgUserOrdersAccount>(
91
93
  'SingedMsgUserOrdersAccountMap',
92
94
  'signedMsgUserOrders',
@@ -238,9 +240,9 @@ export class SignedMsgUserOrdersAccountSubscriber {
238
240
  }
239
241
 
240
242
  public async unsubscribe(): Promise<void> {
241
- if (!this.subscriber) return;
242
- await this.subscriber.unsubscribe();
243
- this.subscriber = undefined;
243
+ if (!this._subscriber) return;
244
+ await this._subscriber.unsubscribe();
245
+ this._subscriber = undefined;
244
246
  if (this.resyncTimeoutId !== undefined) {
245
247
  clearTimeout(this.resyncTimeoutId);
246
248
  this.resyncTimeoutId = undefined;
@@ -4,7 +4,6 @@ import {
4
4
  } from '../constants/perpMarkets';
5
5
  import { VelocityClient } from '../velocityClient';
6
6
  import { VelocityEnv } from '../config';
7
- import { AtLeastOne } from '../util/deprecatedAlias';
8
7
  import {
9
8
  getUserAccountPublicKey,
10
9
  getUserStatsAccountPublicKey,
@@ -33,16 +32,16 @@ type SwiftOrderSubscriberConfigBase = {
33
32
  endpoint?: string;
34
33
  marketIndexes: number[];
35
34
  /**
36
- In the future, this will be used for verifying $DRIFT stake as we add
35
+ In the future, this will be used for verifying $VELOCITY stake as we add
37
36
  authentication for delegate signers
38
37
  For now, pass a new keypair or a keypair to an empty wallet
39
38
  */
40
39
  keypair: Keypair;
41
40
  };
42
41
 
43
- export type SwiftOrderSubscriberConfig = SwiftOrderSubscriberConfigBase &
44
- AtLeastOne<'velocityEnv', 'driftEnv', VelocityEnv> &
45
- AtLeastOne<'velocityClient', 'driftClient', VelocityClient>;
42
+ export type SwiftOrderSubscriberConfig = SwiftOrderSubscriberConfigBase & {
43
+ velocityEnv: VelocityEnv;
44
+ } & { velocityClient: VelocityClient };
46
45
 
47
46
  /**
48
47
  * Swift order message received from WebSocket
@@ -74,12 +73,8 @@ export class SwiftOrderSubscriber {
74
73
  private readonly heartbeatIntervalMs = 60000;
75
74
  private ws: WebSocket | null = null;
76
75
  private velocityClient: VelocityClient;
77
- /** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
78
- private get driftClient(): VelocityClient {
79
- return this.velocityClient;
80
- }
81
76
  public userAccountGetter?: AccountGetter; // In practice, this for now is just an OrderSubscriber or a UserMap
82
- public onOrder: (
77
+ public onOrder?: (
83
78
  orderMessageRaw: SwiftOrderMessage,
84
79
  signedMessage:
85
80
  | SignedMsgOrderParamsMessage
@@ -91,21 +86,21 @@ export class SwiftOrderSubscriber {
91
86
 
92
87
  constructor(private config: SwiftOrderSubscriberConfig) {
93
88
  // Type-system guarantees at least one of the two is supplied.
94
- this.velocityClient = (config.velocityClient ?? config.driftClient)!;
89
+ this.velocityClient = config.velocityClient!;
95
90
  this.userAccountGetter = config.userAccountGetter;
96
91
  }
97
92
 
98
93
  unsubscribe() {
99
94
  if (this.subscribed) {
100
- this.ws.removeAllListeners();
101
- this.ws.terminate();
95
+ this.ws?.removeAllListeners();
96
+ this.ws?.terminate();
102
97
  this.ws = null;
103
98
  this.subscribed = false;
104
99
  }
105
100
  }
106
101
 
107
102
  getSymbolForMarketIndex(marketIndex: number): string {
108
- const env = this.config.velocityEnv ?? this.config.driftEnv;
103
+ const env = this.config.velocityEnv;
109
104
  const markets = env === 'devnet' ? DevnetPerpMarkets : MainnetPerpMarkets;
110
105
  return markets[marketIndex].symbol;
111
106
  }
@@ -162,7 +157,7 @@ export class SwiftOrderSubscriber {
162
157
  ): Promise<void> {
163
158
  this.onOrder = onOrder;
164
159
 
165
- const env = this.config.velocityEnv ?? this.config.driftEnv;
160
+ const env = this.config.velocityEnv;
166
161
  const endpoint =
167
162
  this.config.endpoint ??
168
163
  (env === 'devnet'
@@ -250,11 +245,8 @@ export class SwiftOrderSubscriber {
250
245
  }, 5000);
251
246
  });
252
247
 
253
- ws.on('error', async (request, response) => {
254
- console.error(
255
- 'WS closed from error, reconnecting in 1s:',
256
- response.statusCode
257
- );
248
+ ws.on('error', async (error: Error) => {
249
+ console.error('WS closed from error, reconnecting in 1s:', error);
258
250
  setTimeout(() => {
259
251
  if (this.heartbeatTimeout) clearTimeout(this.heartbeatTimeout);
260
252
  this.reconnect();
@@ -348,8 +340,12 @@ export class SwiftOrderSubscriber {
348
340
  }
349
341
 
350
342
  console.log('Reconnecting to WebSocket...');
343
+ const onOrder = this.onOrder;
344
+ if (!onOrder) {
345
+ throw new Error('onOrder callback function must be set');
346
+ }
351
347
  setTimeout(() => {
352
- this.subscribe(this.onOrder);
348
+ this.subscribe(onOrder);
353
349
  }, 1000);
354
350
  }
355
351
  }
package/src/testClient.ts CHANGED
@@ -7,7 +7,7 @@ import { VelocityClientConfig } from './velocityClientConfig';
7
7
  export class TestClient extends AdminClient {
8
8
  public constructor(config: VelocityClientConfig) {
9
9
  config.txVersion = 'legacy';
10
- if (config.accountSubscription.type !== 'polling') {
10
+ if (config.accountSubscription?.type !== 'polling') {
11
11
  throw new Error('Test client must be polling');
12
12
  }
13
13
  super(config);
@@ -30,7 +30,7 @@ export class TestClient extends AdminClient {
30
30
  this.accountSubscriber as PollingVelocityClientAccountSubscriber
31
31
  ).accountLoader.mostRecentSlot;
32
32
  await this.fetchAccounts();
33
- while (lastFetchedSlot < slot) {
33
+ while (slot !== undefined && lastFetchedSlot < slot) {
34
34
  await this.fetchAccounts();
35
35
  lastFetchedSlot = (
36
36
  this.accountSubscriber as PollingVelocityClientAccountSubscriber