@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
@@ -1,5 +1,5 @@
1
1
  /**
2
- * EventSubscriber — streams and parses Drift program events from transaction logs.
2
+ * EventSubscriber — streams and parses Velocity program events from transaction logs.
3
3
  *
4
4
  * Decodes all program events (OrderActionRecord, DepositRecord, LiquidationRecord,
5
5
  * FundingPaymentRecord, etc.) from `state/events.rs` into typed TypeScript objects.
@@ -21,6 +21,7 @@ import {
21
21
  LogProviderType,
22
22
  StreamingLogProviderConfig,
23
23
  PollingLogProviderConfig,
24
+ LogProviderConfig,
24
25
  } from './types';
25
26
  import { TxEventCache } from './txEventCache';
26
27
  import { EventList } from './eventList';
@@ -39,12 +40,21 @@ export class EventSubscriber {
39
40
  private txEventCache: TxEventCache;
40
41
  private awaitTxPromises = new Map<string, Promise<void>>();
41
42
  private awaitTxResolver = new Map<string, () => void>();
42
- private logProvider: LogProvider;
43
+ private _logProvider?: LogProvider;
43
44
  private _currentProviderType: LogProviderType;
44
45
  public eventEmitter: StrictEventEmitter<EventEmitter, EventSubscriberEvents>;
45
- private lastSeenSlot: number;
46
+ private lastSeenSlot: number | undefined;
46
47
  private lastSeenBlockTime: number | undefined;
47
- public lastSeenTxSig: string;
48
+ public lastSeenTxSig: string | undefined;
49
+
50
+ private get logProvider(): LogProvider {
51
+ if (!this._logProvider) {
52
+ throw new Error(
53
+ 'EventSubscriber: logProvider accessed before initializeLogProvider()'
54
+ );
55
+ }
56
+ return this._logProvider;
57
+ }
48
58
 
49
59
  public constructor(
50
60
  private connection: Connection,
@@ -57,26 +67,38 @@ export class EventSubscriber {
57
67
  this.eventListMap = new Map<EventType, EventList<EventType>>();
58
68
  this.eventEmitter = new EventEmitter();
59
69
 
60
- this._currentProviderType = this.options.logProviderConfig.type;
70
+ this._currentProviderType = this.getLogProviderConfig().type;
61
71
  this.initializeLogProvider();
62
72
  }
63
73
 
74
+ private getLogProviderConfig(): LogProviderConfig {
75
+ if (this.options.logProviderConfig === undefined) {
76
+ throw new Error('EventSubscriber: logProviderConfig is not set');
77
+ }
78
+ return this.options.logProviderConfig;
79
+ }
80
+
81
+ private getEventTypes(): EventType[] {
82
+ if (this.options.eventTypes === undefined) {
83
+ throw new Error('EventSubscriber: eventTypes is not set');
84
+ }
85
+ return this.options.eventTypes;
86
+ }
87
+
64
88
  get currentProviderType() {
65
89
  return this._currentProviderType;
66
90
  }
67
91
 
68
92
  private initializeLogProvider(subscribe = false) {
69
- const logProviderConfig = this.options.logProviderConfig;
93
+ const logProviderConfig = this.getLogProviderConfig();
70
94
 
71
95
  if (this._currentProviderType === 'websocket') {
72
- this.logProvider = new WebSocketLogProvider(
96
+ this._logProvider = new WebSocketLogProvider(
73
97
  // @ts-ignore
74
98
  this.connection,
75
99
  this.address,
76
- this.options.commitment,
77
- (
78
- this.options.logProviderConfig as WebSocketLogProviderConfig
79
- ).resubTimeoutMs
100
+ this.options.commitment ?? 'confirmed',
101
+ (logProviderConfig as WebSocketLogProviderConfig).resubTimeoutMs
80
102
  );
81
103
  } else if (this._currentProviderType === 'polling') {
82
104
  const frequency =
@@ -88,18 +110,18 @@ export class EventSubscriber {
88
110
  ? (logProviderConfig as PollingLogProviderConfig).batchSize
89
111
  : (logProviderConfig as StreamingLogProviderConfig).fallbackBatchSize;
90
112
 
91
- this.logProvider = new PollingLogProvider(
113
+ this._logProvider = new PollingLogProvider(
92
114
  // @ts-ignore
93
115
  this.connection,
94
116
  this.address,
95
- this.options.commitment,
117
+ this.options.commitment ?? 'confirmed',
96
118
  frequency,
97
119
  batchSize
98
120
  );
99
121
  } else if (this._currentProviderType === 'events-server') {
100
- this.logProvider = new EventsServerLogProvider(
122
+ this._logProvider = new EventsServerLogProvider(
101
123
  (logProviderConfig as EventsServerLogProviderConfig).url,
102
- this.options.eventTypes,
124
+ this.getEventTypes(),
103
125
  this.options.address ? this.options.address.toString() : undefined
104
126
  );
105
127
  } else {
@@ -126,14 +148,26 @@ export class EventSubscriber {
126
148
  }
127
149
 
128
150
  private populateInitialEventListMap() {
129
- for (const eventType of this.options.eventTypes) {
151
+ const maxEventsPerType = this.options.maxEventsPerType;
152
+ const orderBy = this.options.orderBy;
153
+ const orderDir = this.options.orderDir;
154
+ if (
155
+ maxEventsPerType === undefined ||
156
+ orderBy === undefined ||
157
+ orderDir === undefined
158
+ ) {
159
+ throw new Error(
160
+ 'EventSubscriber: maxEventsPerType, orderBy and orderDir must be set'
161
+ );
162
+ }
163
+ for (const eventType of this.getEventTypes()) {
130
164
  this.eventListMap.set(
131
165
  eventType,
132
166
  new EventList(
133
167
  eventType,
134
- this.options.maxEventsPerType,
135
- getSortFn(this.options.orderBy, this.options.orderDir),
136
- this.options.orderDir
168
+ maxEventsPerType,
169
+ getSortFn(orderBy, orderDir),
170
+ orderDir
137
171
  )
138
172
  );
139
173
  }
@@ -175,30 +209,33 @@ export class EventSubscriber {
175
209
  this.populateInitialEventListMap();
176
210
 
177
211
  if (
178
- this.options.logProviderConfig.type === 'websocket' ||
179
- this.options.logProviderConfig.type === 'events-server'
212
+ this.getLogProviderConfig().type === 'websocket' ||
213
+ this.getLogProviderConfig().type === 'events-server'
180
214
  ) {
181
- const logProviderConfig = this.options
182
- .logProviderConfig as StreamingLogProviderConfig;
183
-
184
- if (this.logProvider.eventEmitter) {
185
- this.logProvider.eventEmitter.on(
186
- 'reconnect',
187
- async (reconnectAttempts) => {
188
- if (reconnectAttempts > logProviderConfig.maxReconnectAttempts) {
189
- console.log(
190
- `EventSubscriber: Reconnect attempts ${reconnectAttempts}/${logProviderConfig.maxReconnectAttempts}, reconnecting...`
191
- );
192
- this.logProvider.eventEmitter.removeAllListeners('reconnect');
193
- await this.unsubscribe();
194
- this.updateFallbackProviderType(
195
- reconnectAttempts,
196
- logProviderConfig.maxReconnectAttempts
197
- );
198
- this.initializeLogProvider(true);
199
- }
215
+ const logProviderConfig =
216
+ this.getLogProviderConfig() as StreamingLogProviderConfig;
217
+ // `maxReconnectAttempts` is optional; when unset the original
218
+ // `reconnectAttempts > undefined` comparison was always false, so
219
+ // fall back to Infinity to preserve that never-trigger behavior.
220
+ const maxReconnectAttempts =
221
+ logProviderConfig.maxReconnectAttempts ?? Infinity;
222
+
223
+ const eventEmitter = this.logProvider.eventEmitter;
224
+ if (eventEmitter) {
225
+ eventEmitter.on('reconnect', async (reconnectAttempts) => {
226
+ if (reconnectAttempts > maxReconnectAttempts) {
227
+ console.log(
228
+ `EventSubscriber: Reconnect attempts ${reconnectAttempts}/${maxReconnectAttempts}, reconnecting...`
229
+ );
230
+ eventEmitter.removeAllListeners('reconnect');
231
+ await this.unsubscribe();
232
+ this.updateFallbackProviderType(
233
+ reconnectAttempts,
234
+ maxReconnectAttempts
235
+ );
236
+ this.initializeLogProvider(true);
200
237
  }
201
- );
238
+ });
202
239
  }
203
240
  }
204
241
  this.logProvider.subscribe(
@@ -243,7 +280,13 @@ export class EventSubscriber {
243
280
  );
244
281
 
245
282
  for (const wrappedEvent of wrappedEvents) {
246
- this.eventListMap.get(wrappedEvent.eventType).insert(wrappedEvent);
283
+ const eventList = this.eventListMap.get(wrappedEvent.eventType);
284
+ if (eventList === undefined) {
285
+ throw new Error(
286
+ `EventSubscriber: no EventList for eventType ${wrappedEvent.eventType}`
287
+ );
288
+ }
289
+ eventList.insert(wrappedEvent);
247
290
  }
248
291
 
249
292
  // dont emit event till we've added all the events to the eventListMap
@@ -253,7 +296,10 @@ export class EventSubscriber {
253
296
 
254
297
  if (this.awaitTxPromises.has(txSig)) {
255
298
  this.awaitTxPromises.delete(txSig);
256
- this.awaitTxResolver.get(txSig)();
299
+ const resolver = this.awaitTxResolver.get(txSig);
300
+ if (resolver !== undefined) {
301
+ resolver();
302
+ }
257
303
  this.awaitTxResolver.delete(txSig);
258
304
  }
259
305
 
@@ -264,7 +310,8 @@ export class EventSubscriber {
264
310
 
265
311
  if (
266
312
  this.lastSeenBlockTime === undefined ||
267
- mostRecentBlockTime > this.lastSeenBlockTime
313
+ (mostRecentBlockTime !== undefined &&
314
+ mostRecentBlockTime > this.lastSeenBlockTime)
268
315
  ) {
269
316
  this.lastSeenBlockTime = mostRecentBlockTime;
270
317
  }
@@ -278,9 +325,13 @@ export class EventSubscriber {
278
325
  }
279
326
 
280
327
  let txFetched = 0;
281
- let beforeTx: TransactionSignature = undefined;
282
- const untilTx: TransactionSignature = this.options.untilTx;
283
- while (txFetched < this.options.maxTx) {
328
+ let beforeTx: TransactionSignature | undefined = undefined;
329
+ const untilTx: TransactionSignature | undefined = this.options.untilTx;
330
+ const maxTx = this.options.maxTx;
331
+ if (maxTx === undefined) {
332
+ throw new Error('EventSubscriber: maxTx is not set');
333
+ }
334
+ while (txFetched < maxTx) {
284
335
  const response = await fetchLogs(
285
336
  // @ts-ignore
286
337
  this.connection,
@@ -343,8 +394,9 @@ export class EventSubscriber {
343
394
  }
344
395
 
345
396
  public awaitTx(txSig: TransactionSignature): Promise<void> {
346
- if (this.awaitTxPromises.has(txSig)) {
347
- return this.awaitTxPromises.get(txSig);
397
+ const existingPromise = this.awaitTxPromises.get(txSig);
398
+ if (existingPromise !== undefined) {
399
+ return existingPromise;
348
400
  }
349
401
 
350
402
  if (this.txEventCache.has(txSig)) {
@@ -373,7 +425,13 @@ export class EventSubscriber {
373
425
  public getEventsArray<Type extends EventType>(
374
426
  eventType: Type
375
427
  ): EventMap[Type][] {
376
- return this.eventListMap.get(eventType).toArray() as EventMap[Type][];
428
+ const eventList = this.eventListMap.get(eventType);
429
+ if (eventList === undefined) {
430
+ throw new Error(
431
+ `EventSubscriber: no EventList for eventType ${eventType}`
432
+ );
433
+ }
434
+ return eventList.toArray() as EventMap[Type][];
377
435
  }
378
436
 
379
437
  public getEventsByTx(txSig: TransactionSignature): WrappedEvents | undefined {
@@ -21,15 +21,13 @@ export class EventsServerLogProvider implements LogProvider {
21
21
  private lastHeartbeat = 0;
22
22
  private timeoutId?: ReturnType<typeof setTimeout>;
23
23
  private reconnectAttempts = 0;
24
- eventEmitter?: EventEmitter;
24
+ eventEmitter: EventEmitter = new EventEmitter();
25
25
 
26
26
  public constructor(
27
27
  private readonly url: string,
28
28
  private readonly eventTypes: EventType[],
29
29
  private readonly userAccount?: string
30
- ) {
31
- this.eventEmitter = new EventEmitter();
32
- }
30
+ ) {}
33
31
 
34
32
  public isSubscribed(): boolean {
35
33
  return this.ws !== undefined;
@@ -39,24 +37,29 @@ export class EventsServerLogProvider implements LogProvider {
39
37
  if (this.ws !== undefined) {
40
38
  return true;
41
39
  }
42
- this.ws = new WebSocketImpl(this.url);
40
+ const ws = new WebSocketImpl(this.url);
41
+ this.ws = ws;
43
42
 
44
43
  this.callback = callback;
45
- this.ws.addEventListener('open', () => {
44
+ ws.addEventListener('open', () => {
46
45
  for (const channel of this.eventTypes) {
47
- const subscribeMessage = {
46
+ const subscribeMessage: {
47
+ type: string;
48
+ channel: EventType;
49
+ user?: string;
50
+ } = {
48
51
  type: 'subscribe',
49
52
  channel: channel,
50
53
  };
51
54
  if (this.userAccount) {
52
- subscribeMessage['user'] = this.userAccount;
55
+ subscribeMessage.user = this.userAccount;
53
56
  }
54
- this.ws.send(JSON.stringify(subscribeMessage));
57
+ ws.send(JSON.stringify(subscribeMessage));
55
58
  }
56
59
  this.reconnectAttempts = 0;
57
60
  });
58
61
 
59
- this.ws.addEventListener('message', (data) => {
62
+ ws.addEventListener('message', (data) => {
60
63
  try {
61
64
  if (!this.isUnsubscribing) {
62
65
  clearTimeout(this.timeoutId);
@@ -78,13 +81,16 @@ export class EventsServerLogProvider implements LogProvider {
78
81
  return;
79
82
  }
80
83
  const event = JSON.parse(parsedData.data);
84
+ if (this.callback === undefined) {
85
+ return;
86
+ }
81
87
  this.callback(
82
88
  event.txSig,
83
89
  event.slot,
84
90
  [
85
- 'Program dRiftyHA39MWEi3m9aunc5MzRF1JYuBsbn6VPcn33UH invoke [1]',
91
+ 'Program vELoC1audYbSYVRXn1vPaV8Axoa9oU6BYmNGZZBDZ1P invoke [1]',
86
92
  event.rawLog,
87
- 'Program dRiftyHA39MWEi3m9aunc5MzRF1JYuBsbn6VPcn33UH success',
93
+ 'Program vELoC1audYbSYVRXn1vPaV8Axoa9oU6BYmNGZZBDZ1P success',
88
94
  ],
89
95
  undefined,
90
96
  event.txSigIndex
@@ -94,11 +100,11 @@ export class EventsServerLogProvider implements LogProvider {
94
100
  }
95
101
  });
96
102
 
97
- this.ws.addEventListener('close', () => {
103
+ ws.addEventListener('close', () => {
98
104
  console.log('eventsServerLogProvider: WebSocket closed');
99
105
  });
100
106
 
101
- this.ws.addEventListener('error', (error) => {
107
+ ws.addEventListener('error', (error) => {
102
108
  console.error('eventsServerLogProvider: WebSocket error:', error);
103
109
  });
104
110
 
@@ -142,10 +148,13 @@ export class EventsServerLogProvider implements LogProvider {
142
148
  this.reconnectAttempts + 1
143
149
  }`
144
150
  );
151
+ const callback = this.callback;
145
152
  await this.unsubscribe();
146
153
  this.reconnectAttempts++;
147
154
  this.eventEmitter.emit('reconnect', this.reconnectAttempts);
148
- this.subscribe(this.callback);
155
+ if (callback !== undefined) {
156
+ this.subscribe(callback);
157
+ }
149
158
  }
150
159
  }, EVENT_SERVER_HEARTBEAT_INTERVAL_MS * 2);
151
160
  }
@@ -27,7 +27,7 @@ function mapTransactionResponseToLog(
27
27
  return {
28
28
  txSig: transaction.transaction.signatures[0],
29
29
  slot: transaction.slot,
30
- logs: transaction.meta.logMessages,
30
+ logs: transaction.meta?.logMessages ?? [],
31
31
  };
32
32
  }
33
33
 
@@ -39,7 +39,7 @@ export async function fetchLogs(
39
39
  untilTx?: TransactionSignature,
40
40
  limit?: number,
41
41
  batchSize = 25
42
- ): Promise<FetchLogsResponse> {
42
+ ): Promise<FetchLogsResponse | undefined> {
43
43
  const signatures = await connection.getSignaturesForAddress(
44
44
  address,
45
45
  {
@@ -85,7 +85,7 @@ export async function fetchLogs(
85
85
  mostRecentTx: mostRecent.signature,
86
86
  earliestSlot: earliest.slot,
87
87
  mostRecentSlot: mostRecent.slot,
88
- mostRecentBlockTime: mostRecent.blockTime,
88
+ mostRecentBlockTime: mostRecent.blockTime ?? undefined,
89
89
  };
90
90
  }
91
91
 
@@ -1,7 +1,7 @@
1
1
  import { Program, Event } from '../isomorphic/anchor';
2
2
  import { CuUsageEvent } from './types';
3
3
 
4
- const driftProgramId = 'dRiftyHA39MWEi3m9aunc5MzRF1JYuBsbn6VPcn33UH';
4
+ const velocityProgramId = 'vELoC1audYbSYVRXn1vPaV8Axoa9oU6BYmNGZZBDZ1P';
5
5
  const PROGRAM_LOG = 'Program log: ';
6
6
  const PROGRAM_INSTRUCTION = 'Program log: Instruction: ';
7
7
  const PROGRAM_DATA = 'Program data: ';
@@ -12,7 +12,7 @@ const PROGRAM_INSTRUCTION_START_INDEX = PROGRAM_INSTRUCTION.length;
12
12
  export function parseLogs(
13
13
  program: Program,
14
14
  logs: string[],
15
- programId = driftProgramId
15
+ programId = velocityProgramId
16
16
  ): Event[] {
17
17
  const { events } = parseLogsWithRaw(program, logs, programId);
18
18
  return events;
@@ -21,7 +21,7 @@ export function parseLogs(
21
21
  export function parseLogsWithRaw(
22
22
  program: Program,
23
23
  logs: string[],
24
- programId = driftProgramId
24
+ programId = velocityProgramId
25
25
  ): { events: Event[]; rawLogs: string[] } {
26
26
  const events = [];
27
27
  const rawLogs = [];
@@ -55,23 +55,23 @@ function handleLog(
55
55
  execution: ExecutionContext,
56
56
  log: string,
57
57
  program: Program,
58
- programId = driftProgramId
58
+ programId = velocityProgramId
59
59
  ): [Event | null, string | null, boolean] {
60
- // Executing program is drift program.
60
+ // Executing program is velocity program.
61
61
  if (execution.stack.length > 0 && execution.program() === programId) {
62
62
  return handleProgramLog(log, program, programId);
63
63
  }
64
- // Executing program is not drift program.
64
+ // Executing program is not velocity program.
65
65
  else {
66
66
  return [null, ...handleSystemLog(log, programId)];
67
67
  }
68
68
  }
69
69
 
70
- // Handles logs from *drift* program.
70
+ // Handles logs from *velocity* program.
71
71
  function handleProgramLog(
72
72
  log: string,
73
73
  program: Program,
74
- programId = driftProgramId
74
+ programId = velocityProgramId
75
75
  ): [Event | null, string | null, boolean] {
76
76
  // This is a `msg!` log or a `sol_log_data` log.
77
77
  if (log.startsWith(PROGRAM_LOG)) {
@@ -87,10 +87,10 @@ function handleProgramLog(
87
87
  }
88
88
  }
89
89
 
90
- // Handles logs when the current program being executing is *not* drift.
90
+ // Handles logs when the current program being executing is *not* velocity.
91
91
  function handleSystemLog(
92
92
  log: string,
93
- programId = driftProgramId
93
+ programId = velocityProgramId
94
94
  ): [string | null, boolean] {
95
95
  // System component.
96
96
  const logStart = log.split(':')[0];
@@ -153,7 +153,7 @@ class ExecutionContext {
153
153
 
154
154
  export function parseLogsForCuUsage(
155
155
  logs: string[],
156
- programId = driftProgramId
156
+ programId = velocityProgramId
157
157
  ): Event<any, CuUsageEvent>[] {
158
158
  const cuUsageEvents: Event<any, CuUsageEvent>[] = [];
159
159
 
@@ -194,7 +194,7 @@ export function parseLogsForCuUsage(
194
194
  function handleLogForCuUsage(
195
195
  execution: ExecutionContext,
196
196
  log: string,
197
- programId = driftProgramId
197
+ programId = velocityProgramId
198
198
  ): [string | null, string | null, boolean, number | null] {
199
199
  if (execution.stack.length > 0 && execution.program() === programId) {
200
200
  return handleProgramLogForCuUsage(log, programId);
@@ -205,7 +205,7 @@ function handleLogForCuUsage(
205
205
 
206
206
  function handleProgramLogForCuUsage(
207
207
  log: string,
208
- programId = driftProgramId
208
+ programId = velocityProgramId
209
209
  ): [string | null, string | null, boolean, number | null] {
210
210
  if (log.startsWith(PROGRAM_INSTRUCTION)) {
211
211
  const ixStr = log.slice(PROGRAM_INSTRUCTION_START_INDEX);
@@ -217,7 +217,7 @@ function handleProgramLogForCuUsage(
217
217
 
218
218
  function handleSystemLogForCuUsage(
219
219
  log: string,
220
- programId = driftProgramId
220
+ programId = velocityProgramId
221
221
  ): [string | null, string | null, boolean, number | null] {
222
222
  // System component.
223
223
  const logStart = log.split(':')[0];
@@ -10,9 +10,9 @@ import { fetchLogs } from './fetchLogs';
10
10
 
11
11
  export class PollingLogProvider implements LogProvider {
12
12
  private finality: Finality;
13
- private intervalId: ReturnType<typeof setTimeout>;
13
+ private intervalId?: ReturnType<typeof setTimeout>;
14
14
  private mostRecentSeenTx?: TransactionSignature;
15
- private mutex: number;
15
+ private mutex = 0;
16
16
  private firstFetch = true;
17
17
 
18
18
  public constructor(
@@ -24,8 +24,14 @@ export class TxEventCache {
24
24
  this.detach(existingNode);
25
25
  this.size--;
26
26
  } else if (this.size === this.maxTx) {
27
- delete this.cacheMap[this.tail.key];
28
- this.detach(this.tail);
27
+ const tail = this.tail;
28
+ if (tail === undefined) {
29
+ throw new Error(
30
+ 'TxEventCache.add: cache at capacity but tail is unset'
31
+ );
32
+ }
33
+ delete this.cacheMap[tail.key];
34
+ this.detach(tail);
29
35
  this.size--;
30
36
  }
31
37
 
@@ -11,13 +11,11 @@ import {
11
11
  InsuranceFundRecord,
12
12
  SpotInterestRecord,
13
13
  InsuranceFundStakeRecord,
14
- CurveRecord,
14
+ AmmCurveChanged,
15
15
  SwapRecord,
16
16
  SpotMarketVaultDepositRecord,
17
17
  SignedMsgOrderRecord,
18
18
  DeleteUserRecord,
19
- InsuranceFundSwapRecord,
20
- TransferProtocolIfSharesToRevenuePoolRecord,
21
19
  LPMintRedeemRecord,
22
20
  LPSettleRecord,
23
21
  LPSwapRecord,
@@ -52,13 +50,11 @@ export const DefaultEventSubscriptionOptions: EventSubscriptionOptions = {
52
50
  'InsuranceFundRecord',
53
51
  'SpotInterestRecord',
54
52
  'InsuranceFundStakeRecord',
55
- 'CurveRecord',
53
+ 'AmmCurveChanged',
56
54
  'SwapRecord',
57
55
  'SpotMarketVaultDepositRecord',
58
56
  'SignedMsgOrderRecord',
59
57
  'DeleteUserRecord',
60
- 'InsuranceFundSwapRecord',
61
- 'TransferProtocolIfSharesToRevenuePoolRecord',
62
58
  'LPMintRedeemRecord',
63
59
  'LPSettleRecord',
64
60
  'LPSwapRecord',
@@ -101,13 +97,11 @@ export type EventMap = {
101
97
  InsuranceFundRecord: Event<InsuranceFundRecord>;
102
98
  SpotInterestRecord: Event<SpotInterestRecord>;
103
99
  InsuranceFundStakeRecord: Event<InsuranceFundStakeRecord>;
104
- CurveRecord: Event<CurveRecord>;
100
+ AmmCurveChanged: Event<AmmCurveChanged>;
105
101
  SwapRecord: Event<SwapRecord>;
106
102
  SpotMarketVaultDepositRecord: Event<SpotMarketVaultDepositRecord>;
107
103
  SignedMsgOrderRecord: Event<SignedMsgOrderRecord>;
108
104
  DeleteUserRecord: Event<DeleteUserRecord>;
109
- InsuranceFundSwapRecord: Event<InsuranceFundSwapRecord>;
110
- TransferProtocolIfSharesToRevenuePoolRecord: Event<TransferProtocolIfSharesToRevenuePoolRecord>;
111
105
  LPSettleRecord: Event<LPSettleRecord>;
112
106
  LPMintRedeemRecord: Event<LPMintRedeemRecord>;
113
107
  LPSwapRecord: Event<LPSwapRecord>;
@@ -127,22 +121,17 @@ export type VelocityEvent =
127
121
  | Event<InsuranceFundRecord>
128
122
  | Event<SpotInterestRecord>
129
123
  | Event<InsuranceFundStakeRecord>
130
- | Event<CurveRecord>
124
+ | Event<AmmCurveChanged>
131
125
  | Event<SwapRecord>
132
126
  | Event<SpotMarketVaultDepositRecord>
133
127
  | Event<SignedMsgOrderRecord>
134
128
  | Event<DeleteUserRecord>
135
- | Event<InsuranceFundSwapRecord>
136
- | Event<TransferProtocolIfSharesToRevenuePoolRecord>
137
129
  | Event<LPSettleRecord>
138
130
  | Event<LPMintRedeemRecord>
139
131
  | Event<LPSwapRecord>
140
132
  | Event<LPBorrowLendDepositRecord>
141
133
  | Event<CuUsage>;
142
134
 
143
- /** @deprecated Use `VelocityEvent` instead. `DriftEvent` will be removed in a future major. */
144
- export type DriftEvent = VelocityEvent;
145
-
146
135
  export interface EventSubscriberEvents {
147
136
  newEvent: (event: WrappedEvent<EventType>) => void;
148
137
  }
@@ -9,7 +9,7 @@ import {
9
9
  import { EventEmitter } from 'events';
10
10
 
11
11
  export class WebSocketLogProvider implements LogProvider {
12
- private subscriptionId: number;
12
+ private subscriptionId?: number;
13
13
  private isUnsubscribing = false;
14
14
  private externalUnsubscribe = false;
15
15
  private receivingData = false;
@@ -113,8 +113,10 @@ export class WebSocketLogProvider implements LogProvider {
113
113
  await this.unsubscribe();
114
114
  this.receivingData = false;
115
115
  this.reconnectAttempts++;
116
- this.eventEmitter.emit('reconnect', this.reconnectAttempts);
117
- this.subscribe(this.callback);
116
+ this.eventEmitter?.emit('reconnect', this.reconnectAttempts);
117
+ if (this.callback) {
118
+ this.subscribe(this.callback);
119
+ }
118
120
  }
119
121
  }, this.resubTimeoutMs);
120
122
  }
@@ -259,7 +259,7 @@ export class BigNum {
259
259
  ).split(BigNum.delim);
260
260
 
261
261
  let formattedLeftSide = leftSide;
262
- let formattedRightSide = rightSide;
262
+ let formattedRightSide: string | undefined = rightSide;
263
263
 
264
264
  // Apply decimal override if specified
265
265
  if (decimalOverride !== undefined) {
@@ -658,7 +658,7 @@ export class BigNum {
658
658
  precision?: BN | number | string
659
659
  ): BigNum {
660
660
  assert(
661
- new BN(precision).lt(new BN(100)),
661
+ new BN(precision ?? 0).lt(new BN(100)),
662
662
  'Tried to create a bignum with precision higher than 10^100'
663
663
  );
664
664
  return new BigNum(val, precision);