@velocity-exchange/sdk 0.1.0 → 0.2.1

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 (761) hide show
  1. package/CHANGELOG.md +4 -32
  2. package/lib/browser/accounts/basicUserAccountSubscriber.d.ts +5 -3
  3. package/lib/browser/accounts/basicUserAccountSubscriber.js +4 -3
  4. package/lib/browser/accounts/basicUserStatsAccountSubscriber.d.ts +5 -3
  5. package/lib/browser/accounts/basicUserStatsAccountSubscriber.js +4 -3
  6. package/lib/browser/accounts/bulkAccountLoader.d.ts +5 -5
  7. package/lib/browser/accounts/bulkAccountLoader.js +12 -1
  8. package/lib/browser/accounts/grpcAccountSubscriber.d.ts +2 -1
  9. package/lib/browser/accounts/grpcAccountSubscriber.js +8 -2
  10. package/lib/browser/accounts/grpcMultiAccountSubscriber.d.ts +3 -2
  11. package/lib/browser/accounts/grpcMultiAccountSubscriber.js +13 -5
  12. package/lib/browser/accounts/grpcMultiUserAccountSubscriber.d.ts +2 -1
  13. package/lib/browser/accounts/grpcMultiUserAccountSubscriber.js +12 -8
  14. package/lib/browser/accounts/grpcProgramAccountSubscriber.d.ts +2 -1
  15. package/lib/browser/accounts/grpcProgramAccountSubscriber.js +8 -2
  16. package/lib/browser/accounts/grpcVelocityClientAccountSubscriber.js +18 -3
  17. package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +1 -1
  18. package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.js +40 -17
  19. package/lib/browser/accounts/laserProgramAccountSubscriber.js +3 -0
  20. package/lib/browser/accounts/oneShotUserAccountSubscriber.js +4 -3
  21. package/lib/browser/accounts/oneShotUserStatsAccountSubscriber.js +7 -3
  22. package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +4 -2
  23. package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.js +3 -3
  24. package/lib/browser/accounts/pollingOracleAccountSubscriber.d.ts +0 -2
  25. package/lib/browser/accounts/pollingOracleAccountSubscriber.js +16 -5
  26. package/lib/browser/accounts/pollingTokenAccountSubscriber.d.ts +0 -2
  27. package/lib/browser/accounts/pollingTokenAccountSubscriber.js +16 -5
  28. package/lib/browser/accounts/pollingUserAccountSubscriber.d.ts +8 -4
  29. package/lib/browser/accounts/pollingUserAccountSubscriber.js +17 -11
  30. package/lib/browser/accounts/pollingUserStatsAccountSubscriber.d.ts +4 -2
  31. package/lib/browser/accounts/pollingUserStatsAccountSubscriber.js +6 -6
  32. package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.d.ts +7 -1
  33. package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.js +64 -28
  34. package/lib/browser/accounts/types.d.ts +4 -4
  35. package/lib/browser/accounts/utils.d.ts +1 -0
  36. package/lib/browser/accounts/utils.js +8 -1
  37. package/lib/browser/accounts/webSocketAccountSubscriber.d.ts +4 -2
  38. package/lib/browser/accounts/webSocketAccountSubscriber.js +17 -5
  39. package/lib/browser/accounts/webSocketAccountSubscriberV2.d.ts +4 -2
  40. package/lib/browser/accounts/webSocketAccountSubscriberV2.js +17 -6
  41. package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +4 -2
  42. package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +9 -0
  43. package/lib/browser/accounts/webSocketProgramAccountSubscriber.d.ts +3 -1
  44. package/lib/browser/accounts/webSocketProgramAccountSubscriber.js +14 -3
  45. package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.d.ts +3 -1
  46. package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.js +15 -3
  47. package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.d.ts +3 -1
  48. package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.js +14 -4
  49. package/lib/browser/accounts/webSocketUserAccountSubscriber.d.ts +4 -2
  50. package/lib/browser/accounts/webSocketUserAccountSubscriber.js +9 -0
  51. package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.d.ts +4 -2
  52. package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.js +9 -0
  53. package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.d.ts +4 -4
  54. package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.js +48 -20
  55. package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +7 -3
  56. package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.js +45 -14
  57. package/lib/browser/accounts/websocketProgramUserAccountSubscriber.d.ts +1 -1
  58. package/lib/browser/accounts/websocketProgramUserAccountSubscriber.js +0 -3
  59. package/lib/browser/addresses/marketAddresses.js +3 -2
  60. package/lib/browser/addresses/pda.d.ts +0 -2
  61. package/lib/browser/addresses/pda.js +1 -14
  62. package/lib/browser/adminClient.d.ts +24 -29
  63. package/lib/browser/adminClient.js +156 -157
  64. package/lib/browser/auctionSubscriber/auctionSubscriber.d.ts +1 -1
  65. package/lib/browser/auctionSubscriber/auctionSubscriber.js +6 -4
  66. package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.d.ts +1 -1
  67. package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.js +9 -4
  68. package/lib/browser/bankrun/bankrunConnection.d.ts +8 -5
  69. package/lib/browser/bankrun/bankrunConnection.js +92 -32
  70. package/lib/browser/blockhashSubscriber/BlockhashSubscriber.d.ts +1 -1
  71. package/lib/browser/blockhashSubscriber/BlockhashSubscriber.js +3 -2
  72. package/lib/browser/clock/clockSubscriber.d.ts +6 -6
  73. package/lib/browser/clock/clockSubscriber.js +4 -3
  74. package/lib/browser/config.d.ts +1 -1
  75. package/lib/browser/config.js +8 -4
  76. package/lib/browser/constants/index.d.ts +1 -2
  77. package/lib/browser/constants/index.js +1 -2
  78. package/lib/browser/constants/numericConstants.d.ts +1 -2
  79. package/lib/browser/constants/numericConstants.js +7 -5
  80. package/lib/browser/constants/spotMarkets.d.ts +0 -1
  81. package/lib/browser/constituentMap/constituentMap.js +5 -1
  82. package/lib/browser/constituentMap/pollingConstituentAccountSubscriber.js +3 -2
  83. package/lib/browser/constituentMap/webSocketConstituentAccountSubscriber.d.ts +2 -3
  84. package/lib/browser/constituentMap/webSocketConstituentAccountSubscriber.js +10 -3
  85. package/lib/browser/core/VelocityCore.d.ts +0 -1
  86. package/lib/browser/core/instructions/deposit.d.ts +0 -1
  87. package/lib/browser/core/instructions/perpOrders.d.ts +14 -0
  88. package/lib/browser/core/instructions/perpOrders.js +14 -0
  89. package/lib/browser/core/instructions/withdraw.d.ts +0 -1
  90. package/lib/browser/core/remainingAccounts.d.ts +2 -2
  91. package/lib/browser/core/remainingAccounts.js +2 -2
  92. package/lib/browser/decode/user.js +9 -1
  93. package/lib/browser/dlob/DLOB.d.ts +6 -2
  94. package/lib/browser/dlob/DLOB.js +201 -138
  95. package/lib/browser/dlob/DLOBNode.d.ts +5 -3
  96. package/lib/browser/dlob/DLOBNode.js +7 -0
  97. package/lib/browser/dlob/DLOBSubscriber.d.ts +0 -1
  98. package/lib/browser/dlob/DLOBSubscriber.js +37 -32
  99. package/lib/browser/dlob/NodeList.d.ts +0 -1
  100. package/lib/browser/dlob/NodeList.js +8 -7
  101. package/lib/browser/dlob/orderBookLevels.d.ts +0 -1
  102. package/lib/browser/dlob/orderBookLevels.js +19 -12
  103. package/lib/browser/events/eventList.d.ts +3 -3
  104. package/lib/browser/events/eventList.js +4 -1
  105. package/lib/browser/events/eventSubscriber.d.ts +5 -2
  106. package/lib/browser/events/eventSubscriber.js +75 -26
  107. package/lib/browser/events/eventsServerLogProvider.d.ts +2 -2
  108. package/lib/browser/events/eventsServerLogProvider.js +15 -8
  109. package/lib/browser/events/fetchLogs.d.ts +1 -1
  110. package/lib/browser/events/fetchLogs.js +4 -2
  111. package/lib/browser/events/pollingLogProvider.d.ts +2 -2
  112. package/lib/browser/events/pollingLogProvider.js +1 -0
  113. package/lib/browser/events/txEventCache.d.ts +3 -3
  114. package/lib/browser/events/txEventCache.js +6 -2
  115. package/lib/browser/events/types.d.ts +2 -4
  116. package/lib/browser/events/types.js +0 -2
  117. package/lib/browser/events/webSocketLogProvider.d.ts +2 -2
  118. package/lib/browser/events/webSocketLogProvider.js +5 -2
  119. package/lib/browser/factory/bigNum.d.ts +0 -1
  120. package/lib/browser/factory/bigNum.js +1 -1
  121. package/lib/browser/idl/velocity.d.ts +1243 -1586
  122. package/lib/browser/idl/velocity.json +1234 -1577
  123. package/lib/browser/index.d.ts +0 -2
  124. package/lib/browser/index.js +0 -2
  125. package/lib/browser/indicative-quotes/indicativeQuotesSender.d.ts +0 -1
  126. package/lib/browser/jupiter/jupiterClient.d.ts +1 -2
  127. package/lib/browser/jupiter/jupiterClient.js +18 -8
  128. package/lib/browser/marginCalculation.d.ts +0 -1
  129. package/lib/browser/marginCalculation.js +1 -0
  130. package/lib/browser/marinade/index.d.ts +2 -3
  131. package/lib/browser/marinade/index.js +5 -0
  132. package/lib/browser/math/amm.d.ts +31 -14
  133. package/lib/browser/math/amm.js +77 -22
  134. package/lib/browser/math/auction.d.ts +0 -1
  135. package/lib/browser/math/bankruptcy.js +1 -1
  136. package/lib/browser/math/conversion.d.ts +0 -1
  137. package/lib/browser/math/funding.d.ts +0 -1
  138. package/lib/browser/math/funding.js +6 -6
  139. package/lib/browser/math/insurance.d.ts +1 -2
  140. package/lib/browser/math/insurance.js +4 -5
  141. package/lib/browser/math/liquidation.d.ts +0 -1
  142. package/lib/browser/math/margin.d.ts +1 -10
  143. package/lib/browser/math/margin.js +3 -62
  144. package/lib/browser/math/market.d.ts +4 -13
  145. package/lib/browser/math/market.js +6 -40
  146. package/lib/browser/math/oracles.d.ts +0 -4
  147. package/lib/browser/math/oracles.js +1 -14
  148. package/lib/browser/math/orders.d.ts +0 -6
  149. package/lib/browser/math/orders.js +2 -74
  150. package/lib/browser/math/position.d.ts +1 -6
  151. package/lib/browser/math/position.js +5 -10
  152. package/lib/browser/math/repeg.d.ts +0 -2
  153. package/lib/browser/math/repeg.js +1 -23
  154. package/lib/browser/math/spotBalance.d.ts +4 -5
  155. package/lib/browser/math/spotBalance.js +6 -6
  156. package/lib/browser/math/spotMarket.d.ts +0 -7
  157. package/lib/browser/math/spotMarket.js +1 -16
  158. package/lib/browser/math/spotPosition.d.ts +4 -5
  159. package/lib/browser/math/state.d.ts +0 -3
  160. package/lib/browser/math/state.js +1 -9
  161. package/lib/browser/math/superStake.d.ts +3 -54
  162. package/lib/browser/math/superStake.js +16 -13
  163. package/lib/browser/math/trade.d.ts +2 -3
  164. package/lib/browser/math/trade.js +6 -6
  165. package/lib/browser/math/utils.d.ts +0 -1
  166. package/lib/browser/memcmp.d.ts +0 -1
  167. package/lib/browser/memcmp.js +1 -10
  168. package/lib/browser/oracles/oracleClientCache.d.ts +1 -1
  169. package/lib/browser/oracles/prelaunchOracleClient.js +3 -2
  170. package/lib/browser/oracles/pythClient.d.ts +0 -1
  171. package/lib/browser/oracles/pythClient.js +9 -3
  172. package/lib/browser/oracles/pythLazerClient.d.ts +0 -1
  173. package/lib/browser/oracles/pythLazerClient.js +3 -2
  174. package/lib/browser/oracles/strictOraclePrice.d.ts +0 -1
  175. package/lib/browser/oracles/types.d.ts +0 -1
  176. package/lib/browser/oracles/utils.d.ts +4 -1
  177. package/lib/browser/oracles/utils.js +9 -1
  178. package/lib/browser/orderParams.d.ts +0 -1
  179. package/lib/browser/orderSubscriber/OrderSubscriber.d.ts +1 -1
  180. package/lib/browser/orderSubscriber/OrderSubscriber.js +8 -2
  181. package/lib/browser/priorityFee/heliusPriorityFeeMethod.d.ts +1 -1
  182. package/lib/browser/priorityFee/priorityFeeSubscriber.d.ts +1 -1
  183. package/lib/browser/priorityFee/priorityFeeSubscriber.js +32 -8
  184. package/lib/browser/priorityFee/solanaPriorityFeeMethod.d.ts +1 -1
  185. package/lib/browser/pyth/types.d.ts +0 -1
  186. package/lib/browser/slot/SlotSubscriber.d.ts +1 -1
  187. package/lib/browser/slot/SlotSubscriber.js +2 -1
  188. package/lib/browser/slot/SlothashSubscriber.d.ts +3 -2
  189. package/lib/browser/slot/SlothashSubscriber.js +11 -4
  190. package/lib/browser/swap/UnifiedSwapClient.d.ts +0 -1
  191. package/lib/browser/swift/grpcSignedMsgUserAccountSubscriber.d.ts +0 -3
  192. package/lib/browser/swift/grpcSignedMsgUserAccountSubscriber.js +5 -5
  193. package/lib/browser/swift/signedMsgUserAccountSubscriber.d.ts +3 -2
  194. package/lib/browser/swift/signedMsgUserAccountSubscriber.js +13 -5
  195. package/lib/browser/swift/swiftOrderSubscriber.d.ts +1 -1
  196. package/lib/browser/swift/swiftOrderSubscriber.js +10 -5
  197. package/lib/browser/testClient.js +3 -2
  198. package/lib/browser/titan/titanClient.d.ts +0 -1
  199. package/lib/browser/tokenFaucet.d.ts +0 -1
  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 +9 -3
  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 +25 -69
  217. package/lib/browser/types.js +2 -2
  218. package/lib/browser/user.d.ts +21 -8
  219. package/lib/browser/user.js +156 -132
  220. package/lib/browser/userMap/WebsocketSubscription.d.ts +1 -1
  221. package/lib/browser/userMap/grpcSubscription.d.ts +1 -1
  222. package/lib/browser/userMap/referrerMap.js +10 -3
  223. package/lib/browser/userMap/revenueShareEscrowMap.js +4 -0
  224. package/lib/browser/userMap/userMap.d.ts +1 -1
  225. package/lib/browser/userMap/userMap.js +36 -23
  226. package/lib/browser/userMap/userStatsMap.d.ts +1 -1
  227. package/lib/browser/userMap/userStatsMap.js +18 -13
  228. package/lib/browser/userStats.d.ts +7 -2
  229. package/lib/browser/userStats.js +18 -4
  230. package/lib/browser/util/TransactionConfirmationManager.js +4 -2
  231. package/lib/browser/util/chainClock.d.ts +1 -1
  232. package/lib/browser/util/computeUnits.d.ts +1 -1
  233. package/lib/browser/util/computeUnits.js +6 -1
  234. package/lib/browser/velocityClient.d.ts +93 -36
  235. package/lib/browser/velocityClient.js +414 -280
  236. package/lib/node/accounts/basicUserAccountSubscriber.d.ts +5 -3
  237. package/lib/node/accounts/basicUserAccountSubscriber.d.ts.map +1 -1
  238. package/lib/node/accounts/basicUserAccountSubscriber.js +4 -3
  239. package/lib/node/accounts/basicUserStatsAccountSubscriber.d.ts +5 -3
  240. package/lib/node/accounts/basicUserStatsAccountSubscriber.d.ts.map +1 -1
  241. package/lib/node/accounts/basicUserStatsAccountSubscriber.js +4 -3
  242. package/lib/node/accounts/bulkAccountLoader.d.ts +5 -5
  243. package/lib/node/accounts/bulkAccountLoader.d.ts.map +1 -1
  244. package/lib/node/accounts/bulkAccountLoader.js +12 -1
  245. package/lib/node/accounts/grpcAccountSubscriber.d.ts +2 -1
  246. package/lib/node/accounts/grpcAccountSubscriber.d.ts.map +1 -1
  247. package/lib/node/accounts/grpcAccountSubscriber.js +8 -2
  248. package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts +3 -2
  249. package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts.map +1 -1
  250. package/lib/node/accounts/grpcMultiAccountSubscriber.js +13 -5
  251. package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts +2 -1
  252. package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts.map +1 -1
  253. package/lib/node/accounts/grpcMultiUserAccountSubscriber.js +12 -8
  254. package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts +2 -1
  255. package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts.map +1 -1
  256. package/lib/node/accounts/grpcProgramAccountSubscriber.js +8 -2
  257. package/lib/node/accounts/grpcVelocityClientAccountSubscriber.d.ts.map +1 -1
  258. package/lib/node/accounts/grpcVelocityClientAccountSubscriber.js +18 -3
  259. package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +1 -1
  260. package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts.map +1 -1
  261. package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.js +40 -17
  262. package/lib/node/accounts/laserProgramAccountSubscriber.d.ts.map +1 -1
  263. package/lib/node/accounts/laserProgramAccountSubscriber.js +3 -0
  264. package/lib/node/accounts/oneShotUserAccountSubscriber.d.ts.map +1 -1
  265. package/lib/node/accounts/oneShotUserAccountSubscriber.js +4 -3
  266. package/lib/node/accounts/oneShotUserStatsAccountSubscriber.d.ts.map +1 -1
  267. package/lib/node/accounts/oneShotUserStatsAccountSubscriber.js +7 -3
  268. package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +4 -2
  269. package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
  270. package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.js +3 -3
  271. package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts +0 -2
  272. package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts.map +1 -1
  273. package/lib/node/accounts/pollingOracleAccountSubscriber.js +16 -5
  274. package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts +0 -2
  275. package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts.map +1 -1
  276. package/lib/node/accounts/pollingTokenAccountSubscriber.js +16 -5
  277. package/lib/node/accounts/pollingUserAccountSubscriber.d.ts +8 -4
  278. package/lib/node/accounts/pollingUserAccountSubscriber.d.ts.map +1 -1
  279. package/lib/node/accounts/pollingUserAccountSubscriber.js +17 -11
  280. package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts +4 -2
  281. package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts.map +1 -1
  282. package/lib/node/accounts/pollingUserStatsAccountSubscriber.js +6 -6
  283. package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts +7 -1
  284. package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts.map +1 -1
  285. package/lib/node/accounts/pollingVelocityClientAccountSubscriber.js +64 -28
  286. package/lib/node/accounts/types.d.ts +4 -4
  287. package/lib/node/accounts/types.d.ts.map +1 -1
  288. package/lib/node/accounts/utils.d.ts +1 -0
  289. package/lib/node/accounts/utils.d.ts.map +1 -1
  290. package/lib/node/accounts/utils.js +8 -1
  291. package/lib/node/accounts/webSocketAccountSubscriber.d.ts +4 -2
  292. package/lib/node/accounts/webSocketAccountSubscriber.d.ts.map +1 -1
  293. package/lib/node/accounts/webSocketAccountSubscriber.js +17 -5
  294. package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts +4 -2
  295. package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts.map +1 -1
  296. package/lib/node/accounts/webSocketAccountSubscriberV2.js +17 -6
  297. package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +4 -2
  298. package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
  299. package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +9 -0
  300. package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts +3 -1
  301. package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts.map +1 -1
  302. package/lib/node/accounts/webSocketProgramAccountSubscriber.js +14 -3
  303. package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts +3 -1
  304. package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts.map +1 -1
  305. package/lib/node/accounts/webSocketProgramAccountSubscriberV2.js +15 -3
  306. package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts +3 -1
  307. package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts.map +1 -1
  308. package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.js +14 -4
  309. package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts +4 -2
  310. package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts.map +1 -1
  311. package/lib/node/accounts/webSocketUserAccountSubscriber.js +9 -0
  312. package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts +4 -2
  313. package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts.map +1 -1
  314. package/lib/node/accounts/webSocketUserStatsAccountSubsriber.js +9 -0
  315. package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts +4 -4
  316. package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts.map +1 -1
  317. package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.js +48 -20
  318. package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +7 -3
  319. package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts.map +1 -1
  320. package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.js +45 -14
  321. package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts +1 -1
  322. package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts.map +1 -1
  323. package/lib/node/accounts/websocketProgramUserAccountSubscriber.js +0 -3
  324. package/lib/node/addresses/marketAddresses.d.ts.map +1 -1
  325. package/lib/node/addresses/marketAddresses.js +3 -2
  326. package/lib/node/addresses/pda.d.ts +0 -2
  327. package/lib/node/addresses/pda.d.ts.map +1 -1
  328. package/lib/node/addresses/pda.js +1 -14
  329. package/lib/node/adminClient.d.ts +24 -29
  330. package/lib/node/adminClient.d.ts.map +1 -1
  331. package/lib/node/adminClient.js +156 -157
  332. package/lib/node/auctionSubscriber/auctionSubscriber.d.ts +1 -1
  333. package/lib/node/auctionSubscriber/auctionSubscriber.d.ts.map +1 -1
  334. package/lib/node/auctionSubscriber/auctionSubscriber.js +6 -4
  335. package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts +1 -1
  336. package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts.map +1 -1
  337. package/lib/node/auctionSubscriber/auctionSubscriberGrpc.js +9 -4
  338. package/lib/node/bankrun/bankrunConnection.d.ts +8 -5
  339. package/lib/node/bankrun/bankrunConnection.d.ts.map +1 -1
  340. package/lib/node/bankrun/bankrunConnection.js +92 -32
  341. package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts +1 -1
  342. package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts.map +1 -1
  343. package/lib/node/blockhashSubscriber/BlockhashSubscriber.js +3 -2
  344. package/lib/node/clock/clockSubscriber.d.ts +6 -6
  345. package/lib/node/clock/clockSubscriber.d.ts.map +1 -1
  346. package/lib/node/clock/clockSubscriber.js +4 -3
  347. package/lib/node/config.d.ts +1 -1
  348. package/lib/node/config.d.ts.map +1 -1
  349. package/lib/node/config.js +8 -4
  350. package/lib/node/constants/index.d.ts +1 -2
  351. package/lib/node/constants/index.d.ts.map +1 -1
  352. package/lib/node/constants/index.js +1 -2
  353. package/lib/node/constants/numericConstants.d.ts +1 -2
  354. package/lib/node/constants/numericConstants.d.ts.map +1 -1
  355. package/lib/node/constants/numericConstants.js +7 -5
  356. package/lib/node/constants/spotMarkets.d.ts +0 -1
  357. package/lib/node/constants/spotMarkets.d.ts.map +1 -1
  358. package/lib/node/constituentMap/constituentMap.d.ts.map +1 -1
  359. package/lib/node/constituentMap/constituentMap.js +5 -1
  360. package/lib/node/constituentMap/pollingConstituentAccountSubscriber.d.ts.map +1 -1
  361. package/lib/node/constituentMap/pollingConstituentAccountSubscriber.js +3 -2
  362. package/lib/node/constituentMap/webSocketConstituentAccountSubscriber.d.ts +2 -3
  363. package/lib/node/constituentMap/webSocketConstituentAccountSubscriber.d.ts.map +1 -1
  364. package/lib/node/constituentMap/webSocketConstituentAccountSubscriber.js +10 -3
  365. package/lib/node/core/VelocityCore.d.ts +0 -1
  366. package/lib/node/core/VelocityCore.d.ts.map +1 -1
  367. package/lib/node/core/instructions/deposit.d.ts +0 -1
  368. package/lib/node/core/instructions/deposit.d.ts.map +1 -1
  369. package/lib/node/core/instructions/perpOrders.d.ts +14 -0
  370. package/lib/node/core/instructions/perpOrders.d.ts.map +1 -1
  371. package/lib/node/core/instructions/perpOrders.js +14 -0
  372. package/lib/node/core/instructions/withdraw.d.ts +0 -1
  373. package/lib/node/core/instructions/withdraw.d.ts.map +1 -1
  374. package/lib/node/core/remainingAccounts.d.ts +2 -2
  375. package/lib/node/core/remainingAccounts.d.ts.map +1 -1
  376. package/lib/node/core/remainingAccounts.js +2 -2
  377. package/lib/node/decode/user.d.ts.map +1 -1
  378. package/lib/node/decode/user.js +9 -1
  379. package/lib/node/dlob/DLOB.d.ts +6 -2
  380. package/lib/node/dlob/DLOB.d.ts.map +1 -1
  381. package/lib/node/dlob/DLOB.js +201 -138
  382. package/lib/node/dlob/DLOBNode.d.ts +5 -3
  383. package/lib/node/dlob/DLOBNode.d.ts.map +1 -1
  384. package/lib/node/dlob/DLOBNode.js +7 -0
  385. package/lib/node/dlob/DLOBSubscriber.d.ts +0 -1
  386. package/lib/node/dlob/DLOBSubscriber.d.ts.map +1 -1
  387. package/lib/node/dlob/DLOBSubscriber.js +37 -32
  388. package/lib/node/dlob/NodeList.d.ts +0 -1
  389. package/lib/node/dlob/NodeList.d.ts.map +1 -1
  390. package/lib/node/dlob/NodeList.js +8 -7
  391. package/lib/node/dlob/orderBookLevels.d.ts +0 -1
  392. package/lib/node/dlob/orderBookLevels.d.ts.map +1 -1
  393. package/lib/node/dlob/orderBookLevels.js +19 -12
  394. package/lib/node/events/eventList.d.ts +3 -3
  395. package/lib/node/events/eventList.d.ts.map +1 -1
  396. package/lib/node/events/eventList.js +4 -1
  397. package/lib/node/events/eventSubscriber.d.ts +5 -2
  398. package/lib/node/events/eventSubscriber.d.ts.map +1 -1
  399. package/lib/node/events/eventSubscriber.js +75 -26
  400. package/lib/node/events/eventsServerLogProvider.d.ts +2 -2
  401. package/lib/node/events/eventsServerLogProvider.d.ts.map +1 -1
  402. package/lib/node/events/eventsServerLogProvider.js +15 -8
  403. package/lib/node/events/fetchLogs.d.ts +1 -1
  404. package/lib/node/events/fetchLogs.d.ts.map +1 -1
  405. package/lib/node/events/fetchLogs.js +4 -2
  406. package/lib/node/events/pollingLogProvider.d.ts +2 -2
  407. package/lib/node/events/pollingLogProvider.d.ts.map +1 -1
  408. package/lib/node/events/pollingLogProvider.js +1 -0
  409. package/lib/node/events/txEventCache.d.ts +3 -3
  410. package/lib/node/events/txEventCache.d.ts.map +1 -1
  411. package/lib/node/events/txEventCache.js +6 -2
  412. package/lib/node/events/types.d.ts +2 -4
  413. package/lib/node/events/types.d.ts.map +1 -1
  414. package/lib/node/events/types.js +0 -2
  415. package/lib/node/events/webSocketLogProvider.d.ts +2 -2
  416. package/lib/node/events/webSocketLogProvider.d.ts.map +1 -1
  417. package/lib/node/events/webSocketLogProvider.js +5 -2
  418. package/lib/node/factory/bigNum.d.ts +0 -1
  419. package/lib/node/factory/bigNum.d.ts.map +1 -1
  420. package/lib/node/factory/bigNum.js +1 -1
  421. package/lib/node/idl/velocity.d.ts +1243 -1586
  422. package/lib/node/idl/velocity.d.ts.map +1 -1
  423. package/lib/node/idl/velocity.json +1234 -1577
  424. package/lib/node/index.d.ts +0 -2
  425. package/lib/node/index.d.ts.map +1 -1
  426. package/lib/node/index.js +0 -2
  427. package/lib/node/indicative-quotes/indicativeQuotesSender.d.ts +0 -1
  428. package/lib/node/indicative-quotes/indicativeQuotesSender.d.ts.map +1 -1
  429. package/lib/node/jupiter/jupiterClient.d.ts +1 -2
  430. package/lib/node/jupiter/jupiterClient.d.ts.map +1 -1
  431. package/lib/node/jupiter/jupiterClient.js +18 -8
  432. package/lib/node/marginCalculation.d.ts +0 -1
  433. package/lib/node/marginCalculation.d.ts.map +1 -1
  434. package/lib/node/marginCalculation.js +1 -0
  435. package/lib/node/marinade/index.d.ts +2 -3
  436. package/lib/node/marinade/index.d.ts.map +1 -1
  437. package/lib/node/marinade/index.js +5 -0
  438. package/lib/node/math/amm.d.ts +31 -14
  439. package/lib/node/math/amm.d.ts.map +1 -1
  440. package/lib/node/math/amm.js +77 -22
  441. package/lib/node/math/auction.d.ts +0 -1
  442. package/lib/node/math/auction.d.ts.map +1 -1
  443. package/lib/node/math/bankruptcy.js +1 -1
  444. package/lib/node/math/conversion.d.ts +0 -1
  445. package/lib/node/math/conversion.d.ts.map +1 -1
  446. package/lib/node/math/funding.d.ts +0 -1
  447. package/lib/node/math/funding.d.ts.map +1 -1
  448. package/lib/node/math/funding.js +6 -6
  449. package/lib/node/math/insurance.d.ts +1 -2
  450. package/lib/node/math/insurance.d.ts.map +1 -1
  451. package/lib/node/math/insurance.js +4 -5
  452. package/lib/node/math/liquidation.d.ts +0 -1
  453. package/lib/node/math/liquidation.d.ts.map +1 -1
  454. package/lib/node/math/margin.d.ts +1 -10
  455. package/lib/node/math/margin.d.ts.map +1 -1
  456. package/lib/node/math/margin.js +3 -62
  457. package/lib/node/math/market.d.ts +4 -13
  458. package/lib/node/math/market.d.ts.map +1 -1
  459. package/lib/node/math/market.js +6 -40
  460. package/lib/node/math/oracles.d.ts +0 -4
  461. package/lib/node/math/oracles.d.ts.map +1 -1
  462. package/lib/node/math/oracles.js +1 -14
  463. package/lib/node/math/orders.d.ts +0 -6
  464. package/lib/node/math/orders.d.ts.map +1 -1
  465. package/lib/node/math/orders.js +2 -74
  466. package/lib/node/math/position.d.ts +1 -6
  467. package/lib/node/math/position.d.ts.map +1 -1
  468. package/lib/node/math/position.js +5 -10
  469. package/lib/node/math/repeg.d.ts +0 -2
  470. package/lib/node/math/repeg.d.ts.map +1 -1
  471. package/lib/node/math/repeg.js +1 -23
  472. package/lib/node/math/spotBalance.d.ts +4 -5
  473. package/lib/node/math/spotBalance.d.ts.map +1 -1
  474. package/lib/node/math/spotBalance.js +6 -6
  475. package/lib/node/math/spotMarket.d.ts +0 -7
  476. package/lib/node/math/spotMarket.d.ts.map +1 -1
  477. package/lib/node/math/spotMarket.js +1 -16
  478. package/lib/node/math/spotPosition.d.ts +4 -5
  479. package/lib/node/math/spotPosition.d.ts.map +1 -1
  480. package/lib/node/math/state.d.ts +0 -3
  481. package/lib/node/math/state.d.ts.map +1 -1
  482. package/lib/node/math/state.js +1 -9
  483. package/lib/node/math/superStake.d.ts +3 -54
  484. package/lib/node/math/superStake.d.ts.map +1 -1
  485. package/lib/node/math/superStake.js +16 -13
  486. package/lib/node/math/trade.d.ts +2 -3
  487. package/lib/node/math/trade.d.ts.map +1 -1
  488. package/lib/node/math/trade.js +6 -6
  489. package/lib/node/math/utils.d.ts +0 -1
  490. package/lib/node/math/utils.d.ts.map +1 -1
  491. package/lib/node/memcmp.d.ts +0 -1
  492. package/lib/node/memcmp.d.ts.map +1 -1
  493. package/lib/node/memcmp.js +1 -10
  494. package/lib/node/oracles/oracleClientCache.d.ts +1 -1
  495. package/lib/node/oracles/prelaunchOracleClient.d.ts.map +1 -1
  496. package/lib/node/oracles/prelaunchOracleClient.js +3 -2
  497. package/lib/node/oracles/pythClient.d.ts +0 -1
  498. package/lib/node/oracles/pythClient.d.ts.map +1 -1
  499. package/lib/node/oracles/pythClient.js +9 -3
  500. package/lib/node/oracles/pythLazerClient.d.ts +0 -1
  501. package/lib/node/oracles/pythLazerClient.d.ts.map +1 -1
  502. package/lib/node/oracles/pythLazerClient.js +3 -2
  503. package/lib/node/oracles/strictOraclePrice.d.ts +0 -1
  504. package/lib/node/oracles/strictOraclePrice.d.ts.map +1 -1
  505. package/lib/node/oracles/types.d.ts +0 -1
  506. package/lib/node/oracles/types.d.ts.map +1 -1
  507. package/lib/node/oracles/utils.d.ts +4 -1
  508. package/lib/node/oracles/utils.d.ts.map +1 -1
  509. package/lib/node/oracles/utils.js +9 -1
  510. package/lib/node/orderParams.d.ts +0 -1
  511. package/lib/node/orderParams.d.ts.map +1 -1
  512. package/lib/node/orderSubscriber/OrderSubscriber.d.ts +1 -1
  513. package/lib/node/orderSubscriber/OrderSubscriber.d.ts.map +1 -1
  514. package/lib/node/orderSubscriber/OrderSubscriber.js +8 -2
  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 +1 -1
  518. package/lib/node/priorityFee/priorityFeeSubscriber.d.ts.map +1 -1
  519. package/lib/node/priorityFee/priorityFeeSubscriber.js +32 -8
  520. package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts +1 -1
  521. package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts.map +1 -1
  522. package/lib/node/pyth/types.d.ts +0 -1
  523. package/lib/node/pyth/types.d.ts.map +1 -1
  524. package/lib/node/slot/SlotSubscriber.d.ts +1 -1
  525. package/lib/node/slot/SlotSubscriber.d.ts.map +1 -1
  526. package/lib/node/slot/SlotSubscriber.js +2 -1
  527. package/lib/node/slot/SlothashSubscriber.d.ts +3 -2
  528. package/lib/node/slot/SlothashSubscriber.d.ts.map +1 -1
  529. package/lib/node/slot/SlothashSubscriber.js +11 -4
  530. package/lib/node/swap/UnifiedSwapClient.d.ts +0 -1
  531. package/lib/node/swap/UnifiedSwapClient.d.ts.map +1 -1
  532. package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.d.ts +0 -3
  533. package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.d.ts.map +1 -1
  534. package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.js +5 -5
  535. package/lib/node/swift/signedMsgUserAccountSubscriber.d.ts +3 -2
  536. package/lib/node/swift/signedMsgUserAccountSubscriber.d.ts.map +1 -1
  537. package/lib/node/swift/signedMsgUserAccountSubscriber.js +13 -5
  538. package/lib/node/swift/swiftOrderSubscriber.d.ts +1 -1
  539. package/lib/node/swift/swiftOrderSubscriber.d.ts.map +1 -1
  540. package/lib/node/swift/swiftOrderSubscriber.js +10 -5
  541. package/lib/node/testClient.js +3 -2
  542. package/lib/node/titan/titanClient.d.ts +0 -1
  543. package/lib/node/titan/titanClient.d.ts.map +1 -1
  544. package/lib/node/tokenFaucet.d.ts +0 -1
  545. package/lib/node/tokenFaucet.d.ts.map +1 -1
  546. package/lib/node/tokenFaucet.js +16 -2
  547. package/lib/node/tx/baseTxSender.d.ts +4 -4
  548. package/lib/node/tx/baseTxSender.d.ts.map +1 -1
  549. package/lib/node/tx/baseTxSender.js +5 -4
  550. package/lib/node/tx/fastSingleTxSender.d.ts +3 -3
  551. package/lib/node/tx/fastSingleTxSender.d.ts.map +1 -1
  552. package/lib/node/tx/fastSingleTxSender.js +9 -5
  553. package/lib/node/tx/reportTransactionError.d.ts +2 -2
  554. package/lib/node/tx/reportTransactionError.d.ts.map +1 -1
  555. package/lib/node/tx/reportTransactionError.js +5 -1
  556. package/lib/node/tx/retryTxSender.d.ts +1 -1
  557. package/lib/node/tx/retryTxSender.d.ts.map +1 -1
  558. package/lib/node/tx/retryTxSender.js +4 -2
  559. package/lib/node/tx/txHandler.d.ts +9 -3
  560. package/lib/node/tx/txHandler.d.ts.map +1 -1
  561. package/lib/node/tx/txHandler.js +54 -40
  562. package/lib/node/tx/txParamProcessor.d.ts +4 -1
  563. package/lib/node/tx/txParamProcessor.d.ts.map +1 -1
  564. package/lib/node/tx/txParamProcessor.js +6 -0
  565. package/lib/node/tx/types.d.ts +1 -1
  566. package/lib/node/tx/types.d.ts.map +1 -1
  567. package/lib/node/tx/whileValidTxSender.d.ts +1 -6
  568. package/lib/node/tx/whileValidTxSender.d.ts.map +1 -1
  569. package/lib/node/tx/whileValidTxSender.js +35 -13
  570. package/lib/node/types.d.ts +25 -69
  571. package/lib/node/types.d.ts.map +1 -1
  572. package/lib/node/types.js +2 -2
  573. package/lib/node/user.d.ts +21 -8
  574. package/lib/node/user.d.ts.map +1 -1
  575. package/lib/node/user.js +156 -132
  576. package/lib/node/userMap/WebsocketSubscription.d.ts +1 -1
  577. package/lib/node/userMap/WebsocketSubscription.d.ts.map +1 -1
  578. package/lib/node/userMap/grpcSubscription.d.ts +1 -1
  579. package/lib/node/userMap/grpcSubscription.d.ts.map +1 -1
  580. package/lib/node/userMap/referrerMap.d.ts.map +1 -1
  581. package/lib/node/userMap/referrerMap.js +10 -3
  582. package/lib/node/userMap/revenueShareEscrowMap.d.ts.map +1 -1
  583. package/lib/node/userMap/revenueShareEscrowMap.js +4 -0
  584. package/lib/node/userMap/userMap.d.ts +1 -1
  585. package/lib/node/userMap/userMap.d.ts.map +1 -1
  586. package/lib/node/userMap/userMap.js +36 -23
  587. package/lib/node/userMap/userStatsMap.d.ts +1 -1
  588. package/lib/node/userMap/userStatsMap.d.ts.map +1 -1
  589. package/lib/node/userMap/userStatsMap.js +18 -13
  590. package/lib/node/userStats.d.ts +7 -2
  591. package/lib/node/userStats.d.ts.map +1 -1
  592. package/lib/node/userStats.js +18 -4
  593. package/lib/node/util/TransactionConfirmationManager.d.ts.map +1 -1
  594. package/lib/node/util/TransactionConfirmationManager.js +4 -2
  595. package/lib/node/util/chainClock.d.ts +1 -1
  596. package/lib/node/util/chainClock.d.ts.map +1 -1
  597. package/lib/node/util/computeUnits.d.ts +1 -1
  598. package/lib/node/util/computeUnits.d.ts.map +1 -1
  599. package/lib/node/util/computeUnits.js +6 -1
  600. package/lib/node/velocityClient.d.ts +93 -36
  601. package/lib/node/velocityClient.d.ts.map +1 -1
  602. package/lib/node/velocityClient.js +414 -280
  603. package/package.json +15 -8
  604. package/src/accounts/basicUserAccountSubscriber.ts +7 -5
  605. package/src/accounts/basicUserStatsAccountSubscriber.ts +9 -5
  606. package/src/accounts/bulkAccountLoader.ts +20 -7
  607. package/src/accounts/grpcAccountSubscriber.ts +11 -3
  608. package/src/accounts/grpcMultiAccountSubscriber.ts +24 -9
  609. package/src/accounts/grpcMultiUserAccountSubscriber.ts +16 -12
  610. package/src/accounts/grpcProgramAccountSubscriber.ts +11 -3
  611. package/src/accounts/grpcVelocityClientAccountSubscriber.ts +17 -7
  612. package/src/accounts/grpcVelocityClientAccountSubscriberV2.ts +66 -39
  613. package/src/accounts/laserProgramAccountSubscriber.ts +3 -0
  614. package/src/accounts/oneShotUserAccountSubscriber.ts +5 -3
  615. package/src/accounts/oneShotUserStatsAccountSubscriber.ts +8 -3
  616. package/src/accounts/pollingInsuranceFundStakeAccountSubscriber.ts +11 -5
  617. package/src/accounts/pollingOracleAccountSubscriber.ts +17 -10
  618. package/src/accounts/pollingTokenAccountSubscriber.ts +17 -10
  619. package/src/accounts/pollingUserAccountSubscriber.ts +26 -20
  620. package/src/accounts/pollingUserStatsAccountSubscriber.ts +12 -10
  621. package/src/accounts/pollingVelocityClientAccountSubscriber.ts +76 -30
  622. package/src/accounts/types.ts +6 -4
  623. package/src/accounts/utils.ts +10 -0
  624. package/src/accounts/webSocketAccountSubscriber.ts +23 -10
  625. package/src/accounts/webSocketAccountSubscriberV2.ts +23 -8
  626. package/src/accounts/webSocketInsuranceFundStakeAccountSubscriber.ts +17 -2
  627. package/src/accounts/webSocketProgramAccountSubscriber.ts +29 -4
  628. package/src/accounts/webSocketProgramAccountSubscriberV2.ts +30 -4
  629. package/src/accounts/webSocketProgramAccountsSubscriberV2.ts +29 -4
  630. package/src/accounts/webSocketUserAccountSubscriber.ts +11 -2
  631. package/src/accounts/webSocketUserStatsAccountSubsriber.ts +15 -2
  632. package/src/accounts/webSocketVelocityClientAccountSubscriber.ts +76 -48
  633. package/src/accounts/webSocketVelocityClientAccountSubscriberV2.ts +74 -35
  634. package/src/accounts/websocketProgramUserAccountSubscriber.ts +1 -6
  635. package/src/addresses/marketAddresses.ts +3 -2
  636. package/src/addresses/pda.ts +0 -25
  637. package/src/adminClient.ts +273 -303
  638. package/src/auctionSubscriber/auctionSubscriber.ts +7 -5
  639. package/src/auctionSubscriber/auctionSubscriberGrpc.ts +12 -5
  640. package/src/bankrun/bankrunConnection.ts +110 -40
  641. package/src/blockhashSubscriber/BlockhashSubscriber.ts +5 -4
  642. package/src/clock/clockSubscriber.ts +10 -9
  643. package/src/config.ts +8 -3
  644. package/src/constants/index.ts +1 -2
  645. package/src/constants/numericConstants.ts +8 -4
  646. package/src/constituentMap/constituentMap.ts +8 -1
  647. package/src/constituentMap/pollingConstituentAccountSubscriber.ts +4 -2
  648. package/src/constituentMap/webSocketConstituentAccountSubscriber.ts +13 -4
  649. package/src/core/instructions/perpOrders.ts +14 -0
  650. package/src/core/remainingAccounts.ts +4 -4
  651. package/src/decode/user.ts +8 -1
  652. package/src/dlob/DLOB.ts +296 -172
  653. package/src/dlob/DLOBNode.ts +23 -3
  654. package/src/dlob/DLOBSubscriber.ts +51 -34
  655. package/src/dlob/NodeList.ts +8 -7
  656. package/src/dlob/orderBookLevels.ts +45 -25
  657. package/src/events/eventList.ts +4 -1
  658. package/src/events/eventSubscriber.ts +107 -49
  659. package/src/events/eventsServerLogProvider.ts +22 -13
  660. package/src/events/fetchLogs.ts +3 -3
  661. package/src/events/pollingLogProvider.ts +2 -2
  662. package/src/events/txEventCache.ts +8 -2
  663. package/src/events/types.ts +0 -8
  664. package/src/events/webSocketLogProvider.ts +5 -3
  665. package/src/factory/bigNum.ts +2 -2
  666. package/src/idl/velocity.json +1234 -1577
  667. package/src/idl/velocity.ts +1234 -1577
  668. package/src/index.ts +0 -2
  669. package/src/jupiter/jupiterClient.ts +30 -10
  670. package/src/marginCalculation.ts +1 -0
  671. package/src/marinade/index.ts +11 -2
  672. package/src/math/amm.ts +188 -33
  673. package/src/math/bankruptcy.ts +1 -1
  674. package/src/math/funding.ts +7 -6
  675. package/src/math/insurance.ts +6 -8
  676. package/src/math/margin.ts +5 -112
  677. package/src/math/market.ts +6 -96
  678. package/src/math/oracles.ts +0 -17
  679. package/src/math/orders.ts +1 -110
  680. package/src/math/position.ts +4 -16
  681. package/src/math/repeg.ts +0 -29
  682. package/src/math/spotBalance.ts +14 -10
  683. package/src/math/spotMarket.ts +2 -28
  684. package/src/math/spotPosition.ts +4 -4
  685. package/src/math/state.ts +0 -8
  686. package/src/math/superStake.ts +19 -65
  687. package/src/math/trade.ts +2 -6
  688. package/src/memcmp.ts +0 -9
  689. package/src/oracles/prelaunchOracleClient.ts +7 -2
  690. package/src/oracles/pythClient.ts +12 -3
  691. package/src/oracles/pythLazerClient.ts +7 -2
  692. package/src/oracles/utils.ts +15 -0
  693. package/src/orderSubscriber/OrderSubscriber.ts +10 -4
  694. package/src/priorityFee/heliusPriorityFeeMethod.ts +1 -1
  695. package/src/priorityFee/priorityFeeSubscriber.ts +45 -9
  696. package/src/priorityFee/solanaPriorityFeeMethod.ts +1 -1
  697. package/src/pyth/types.ts +0 -2
  698. package/src/slot/SlotSubscriber.ts +3 -3
  699. package/src/slot/SlothashSubscriber.ts +17 -6
  700. package/src/swift/grpcSignedMsgUserAccountSubscriber.ts +5 -6
  701. package/src/swift/signedMsgUserAccountSubscriber.ts +16 -8
  702. package/src/swift/swiftOrderSubscriber.ts +10 -9
  703. package/src/testClient.ts +2 -2
  704. package/src/tokenFaucet.ts +22 -3
  705. package/src/tx/baseTxSender.ts +10 -10
  706. package/src/tx/fastSingleTxSender.ts +12 -8
  707. package/src/tx/reportTransactionError.ts +12 -7
  708. package/src/tx/retryTxSender.ts +6 -4
  709. package/src/tx/txHandler.ts +88 -43
  710. package/src/tx/txParamProcessor.ts +18 -3
  711. package/src/tx/types.ts +1 -1
  712. package/src/tx/whileValidTxSender.ts +51 -22
  713. package/src/types.ts +39 -75
  714. package/src/user.ts +200 -152
  715. package/src/userMap/WebsocketSubscription.ts +1 -1
  716. package/src/userMap/grpcSubscription.ts +1 -1
  717. package/src/userMap/referrerMap.ts +14 -10
  718. package/src/userMap/revenueShareEscrowMap.ts +8 -3
  719. package/src/userMap/userMap.ts +43 -25
  720. package/src/userMap/userStatsMap.ts +32 -19
  721. package/src/userStats.ts +21 -8
  722. package/src/util/TransactionConfirmationManager.ts +10 -2
  723. package/src/util/chainClock.ts +1 -1
  724. package/src/util/computeUnits.ts +7 -3
  725. package/src/velocityClient.ts +536 -383
  726. package/tests/VelocityCore/remainingAccounts.test.ts +4 -5
  727. package/tests/accounts/customizedCadenceBulkAccountLoader.test.ts +19 -11
  728. package/tests/amm/test.ts +300 -95
  729. package/tests/decode/userAccountBufferStrings.ts +100 -100
  730. package/tests/dlob/helpers.ts +162 -173
  731. package/tests/dlob/test.ts +155 -106
  732. package/tests/tx/TransactionConfirmationManager.test.ts +9 -2
  733. package/tests/user/getMarginCalculation.ts +1 -1
  734. package/tests/user/helpers.ts +3 -4
  735. package/tests/user/marginCalculations.test.ts +2 -2
  736. package/tests/user/test.ts +3 -3
  737. package/tsconfig.browser.json +3 -1
  738. package/tsconfig.json +21 -2
  739. package/.yarn/install-state.gz +0 -0
  740. package/VERSION +0 -1
  741. package/bun.lock +0 -1885
  742. package/lib/browser/constants/insuranceFund.d.ts +0 -5
  743. package/lib/browser/constants/insuranceFund.js +0 -9
  744. package/lib/browser/tx/forwardOnlyTxSender.d.ts +0 -37
  745. package/lib/browser/tx/forwardOnlyTxSender.js +0 -92
  746. package/lib/browser/util/tps.d.ts +0 -2
  747. package/lib/browser/util/tps.js +0 -16
  748. package/lib/node/constants/insuranceFund.d.ts +0 -6
  749. package/lib/node/constants/insuranceFund.d.ts.map +0 -1
  750. package/lib/node/constants/insuranceFund.js +0 -9
  751. package/lib/node/tx/forwardOnlyTxSender.d.ts +0 -38
  752. package/lib/node/tx/forwardOnlyTxSender.d.ts.map +0 -1
  753. package/lib/node/tx/forwardOnlyTxSender.js +0 -92
  754. package/lib/node/util/tps.d.ts +0 -3
  755. package/lib/node/util/tps.d.ts.map +0 -1
  756. package/lib/node/util/tps.js +0 -16
  757. package/scripts/updateVersion.js +0 -28
  758. package/src/constants/insuranceFund.ts +0 -8
  759. package/src/tx/forwardOnlyTxSender.ts +0 -145
  760. package/src/util/tps.ts +0 -27
  761. package/tests/decode/phoenix.ts +0 -71
package/CHANGELOG.md CHANGED
@@ -1,35 +1,7 @@
1
- # Changelog
1
+ # @velocity-exchange/sdk
2
2
 
3
- ## [0.1.0](https://github.com/drift-labs/protocol-v2-shadow/compare/sdk-v0.0.5...sdk-v0.1.0) (2026-06-11)
3
+ ## 0.2.1
4
4
 
5
+ ### Patch Changes
5
6
 
6
- ### Features
7
-
8
- * add builder codes on non swift ([#68](https://github.com/drift-labs/protocol-v2-shadow/issues/68)) ([2df4034](https://github.com/drift-labs/protocol-v2-shadow/commit/2df4034b2162f0df060b21453a16566f9de24f4f))
9
- * add transfer deposit by delegate ([16386ca](https://github.com/drift-labs/protocol-v2-shadow/commit/16386cad98a2a48d9a8a249ff75c9ce646e9fcac))
10
- * decouple AMM from rest of codebase ([84aba6d](https://github.com/drift-labs/protocol-v2-shadow/commit/84aba6d0c17ef97069185d82b74671bde6619919))
11
- * rebrand drift to velocity ([9c330b1](https://github.com/drift-labs/protocol-v2-shadow/commit/9c330b17cda7170482cc8b75ad3d1b3c137a8d32))
12
-
13
-
14
- ### Bug Fixes
15
-
16
- * resolve eslint unused-var and prettier formatting failures ([a3a1e3e](https://github.com/drift-labs/protocol-v2-shadow/commit/a3a1e3e1cbf68f35a7c39ea335927d0136c5bce1))
17
-
18
-
19
- ### Refactors
20
-
21
- * gather vAMM and hedge into a single VLP module ([905edc3](https://github.com/drift-labs/protocol-v2-shadow/commit/905edc338b453a1ce0ebb4dd9a13be97c66aa66d))
22
-
23
- ## [0.0.5](https://github.com/drift-labs/protocol-v2-shadow/compare/sdk-v0.0.4...sdk-v0.0.5) (2026-05-28)
24
-
25
-
26
- ### Refactors
27
-
28
- * increase oracle_price_offset to i64 ([#51](https://github.com/drift-labs/protocol-v2-shadow/issues/51)) ([d04039a](https://github.com/drift-labs/protocol-v2-shadow/commit/d04039a22b2ff37d05afd8fe271b9913d66689e1))
29
-
30
- ## [0.0.4](https://github.com/drift-labs/protocol-v2-shadow/compare/sdk-v0.0.3...sdk-v0.0.4) (2026-05-28)
31
-
32
-
33
- ### Refactors
34
-
35
- * increase oracle_price_offset to i64 ([#51](https://github.com/drift-labs/protocol-v2-shadow/issues/51)) ([d04039a](https://github.com/drift-labs/protocol-v2-shadow/commit/d04039a22b2ff37d05afd8fe271b9913d66689e1))
7
+ - [`4fd7462`](https://github.com/drift-labs/protocol-v2-shadow/commit/4fd7462bfa3c55e31e3457b1b65f519cf052a6fa) Thanks [@ChewingGlass](https://github.com/ChewingGlass)! - Testing new changelog based package publishing flow
@@ -14,14 +14,16 @@ export declare class BasicUserAccountSubscriber implements UserAccountSubscriber
14
14
  userAccountPublicKey: PublicKey;
15
15
  callbackId?: string;
16
16
  errorCallbackId?: string;
17
- user: DataAndSlot<UserAccount>;
17
+ user?: DataAndSlot<UserAccount>;
18
18
  constructor(userAccountPublicKey: PublicKey, data?: UserAccount, slot?: number);
19
19
  subscribe(_userAccount?: UserAccount): Promise<boolean>;
20
20
  addToAccountLoader(): Promise<void>;
21
21
  fetch(): Promise<void>;
22
- doesAccountExist(): boolean;
22
+ doesAccountExist(): this is {
23
+ user: DataAndSlot<UserAccount>;
24
+ };
23
25
  unsubscribe(): Promise<void>;
24
26
  assertIsSubscribed(): void;
25
- getUserAccountAndSlot(): DataAndSlot<UserAccount>;
27
+ getUserAccountAndSlot(): DataAndSlot<UserAccount> | undefined;
26
28
  updateData(userAccount: UserAccount, slot: number): void;
27
29
  }
@@ -11,7 +11,9 @@ class BasicUserAccountSubscriber {
11
11
  this.isSubscribed = true;
12
12
  this.eventEmitter = new events_1.EventEmitter();
13
13
  this.userAccountPublicKey = userAccountPublicKey;
14
- this.user = { data, slot };
14
+ // `slot ?? 0` keeps {data, slot} atomic: a seeded account always carries a
15
+ // slot (0 = oldest-possible sentinel, overwritten by the first real fetch).
16
+ this.user = data ? { data, slot: slot !== null && slot !== void 0 ? slot : 0 } : undefined;
15
17
  }
16
18
  async subscribe(_userAccount) {
17
19
  return true;
@@ -27,8 +29,7 @@ class BasicUserAccountSubscriber {
27
29
  return this.user;
28
30
  }
29
31
  updateData(userAccount, slot) {
30
- var _a;
31
- if (!this.user || slot >= ((_a = this.user.slot) !== null && _a !== void 0 ? _a : 0)) {
32
+ if (!this.user || slot >= this.user.slot) {
32
33
  this.user = { data: userAccount, slot };
33
34
  this.eventEmitter.emit('userAccountUpdate', userAccount);
34
35
  this.eventEmitter.emit('update');
@@ -14,14 +14,16 @@ export declare class BasicUserStatsAccountSubscriber implements UserStatsAccount
14
14
  userStatsAccountPublicKey: PublicKey;
15
15
  callbackId?: string;
16
16
  errorCallbackId?: string;
17
- userStats: DataAndSlot<UserStatsAccount>;
17
+ userStats?: DataAndSlot<UserStatsAccount>;
18
18
  constructor(userStatsAccountPublicKey: PublicKey, data?: UserStatsAccount, slot?: number);
19
19
  subscribe(_userStatsAccount?: UserStatsAccount): Promise<boolean>;
20
20
  addToAccountLoader(): Promise<void>;
21
21
  fetch(): Promise<void>;
22
- doesAccountExist(): boolean;
22
+ doesAccountExist(): this is {
23
+ userStats: DataAndSlot<UserStatsAccount>;
24
+ };
23
25
  unsubscribe(): Promise<void>;
24
26
  assertIsSubscribed(): void;
25
- getUserStatsAccountAndSlot(): DataAndSlot<UserStatsAccount>;
27
+ getUserStatsAccountAndSlot(): DataAndSlot<UserStatsAccount> | undefined;
26
28
  updateData(userStatsAccount: UserStatsAccount, slot: number): void;
27
29
  }
@@ -11,7 +11,9 @@ class BasicUserStatsAccountSubscriber {
11
11
  this.isSubscribed = true;
12
12
  this.eventEmitter = new events_1.EventEmitter();
13
13
  this.userStatsAccountPublicKey = userStatsAccountPublicKey;
14
- this.userStats = { data, slot };
14
+ // `slot ?? 0` keeps {data, slot} atomic: a seeded account always carries a
15
+ // slot (0 = oldest-possible sentinel, overwritten by the first real fetch).
16
+ this.userStats = data ? { data, slot: slot !== null && slot !== void 0 ? slot : 0 } : undefined;
15
17
  }
16
18
  async subscribe(_userStatsAccount) {
17
19
  return true;
@@ -27,8 +29,7 @@ class BasicUserStatsAccountSubscriber {
27
29
  return this.userStats;
28
30
  }
29
31
  updateData(userStatsAccount, slot) {
30
- var _a;
31
- if (!this.userStats || slot >= ((_a = this.userStats.slot) !== null && _a !== void 0 ? _a : 0)) {
32
+ if (!this.userStats || slot >= this.userStats.slot) {
32
33
  this.userStats = { data: userStatsAccount, slot };
33
34
  this.eventEmitter.emit('userStatsAccountUpdate', userStatsAccount);
34
35
  this.eventEmitter.emit('update');
@@ -13,21 +13,21 @@ export declare class BulkAccountLoader {
13
13
  pollingFrequency: number;
14
14
  accountsToLoad: Map<string, AccountToLoad>;
15
15
  bufferAndSlotMap: Map<string, BufferAndSlot>;
16
- errorCallbacks: Map<string, (e: any) => void>;
16
+ errorCallbacks: Map<string, (e: Error) => void>;
17
17
  intervalId?: ReturnType<typeof setTimeout>;
18
18
  loadPromise?: Promise<void>;
19
- loadPromiseResolver: () => void;
19
+ private loadPromiseResolver;
20
20
  lastTimeLoadingPromiseCleared: number;
21
21
  mostRecentSlot: number;
22
22
  constructor(connection: Connection, commitment: Commitment, pollingFrequency: number);
23
23
  addAccount(publicKey: PublicKey, callback: (buffer: Buffer, slot: number) => void): Promise<string>;
24
- removeAccount(publicKey: PublicKey, callbackId: string): void;
24
+ removeAccount(publicKey: PublicKey, callbackId: string | undefined): void;
25
25
  addErrorCallbacks(callback: (error: Error) => void): string;
26
- removeErrorCallbacks(callbackId: string): void;
26
+ removeErrorCallbacks(callbackId: string | undefined): void;
27
27
  chunks<T>(array: readonly T[], size: number): T[][];
28
28
  load(): Promise<void>;
29
29
  loadChunk(accountsToLoadChunks: AccountToLoad[][]): Promise<void>;
30
- handleAccountCallbacks(accountToLoad: AccountToLoad, buffer: Buffer, slot: number): void;
30
+ handleAccountCallbacks(accountToLoad: AccountToLoad, buffer: Buffer | undefined, slot: number): void;
31
31
  getBufferAndSlot(publicKey: PublicKey): BufferAndSlot | undefined;
32
32
  getSlot(): number;
33
33
  startPolling(): void;
@@ -10,6 +10,7 @@ class BulkAccountLoader {
10
10
  this.accountsToLoad = new Map();
11
11
  this.bufferAndSlotMap = new Map();
12
12
  this.errorCallbacks = new Map();
13
+ this.loadPromiseResolver = () => { };
13
14
  this.lastTimeLoadingPromiseCleared = Date.now();
14
15
  this.mostRecentSlot = 0;
15
16
  this.connection = connection;
@@ -43,6 +44,9 @@ class BulkAccountLoader {
43
44
  return callbackId;
44
45
  }
45
46
  removeAccount(publicKey, callbackId) {
47
+ if (callbackId === undefined) {
48
+ return;
49
+ }
46
50
  const existingAccountToLoad = this.accountsToLoad.get(publicKey.toString());
47
51
  if (existingAccountToLoad) {
48
52
  existingAccountToLoad.callbacks.delete(callbackId);
@@ -61,6 +65,9 @@ class BulkAccountLoader {
61
65
  return callbackId;
62
66
  }
63
67
  removeErrorCallbacks(callbackId) {
68
+ if (callbackId === undefined) {
69
+ return;
70
+ }
64
71
  this.errorCallbacks.delete(callbackId);
65
72
  }
66
73
  chunks(array, size) {
@@ -92,8 +99,9 @@ class BulkAccountLoader {
92
99
  catch (e) {
93
100
  console.error(`Error in bulkAccountLoader.load()`);
94
101
  console.error(e);
102
+ const error = e instanceof Error ? e : new Error(String(e));
95
103
  for (const [_, callback] of this.errorCallbacks) {
96
- callback(e);
104
+ callback(error);
97
105
  }
98
106
  }
99
107
  finally {
@@ -174,6 +182,9 @@ class BulkAccountLoader {
174
182
  });
175
183
  }
176
184
  handleAccountCallbacks(accountToLoad, buffer, slot) {
185
+ if (buffer === undefined) {
186
+ return;
187
+ }
177
188
  for (const [_, callback] of accountToLoad.callbacks) {
178
189
  try {
179
190
  callback(buffer, slot);
@@ -7,7 +7,8 @@ import { WebSocketAccountSubscriber } from './webSocketAccountSubscriber';
7
7
  import { Client } from '../isomorphic/grpc';
8
8
  export declare class grpcAccountSubscriber<T> extends WebSocketAccountSubscriber<T> {
9
9
  private client;
10
- private stream;
10
+ private _stream?;
11
+ private get stream();
11
12
  private commitmentLevel;
12
13
  listenerId?: number;
13
14
  private constructor();
@@ -29,6 +29,12 @@ const Buffer = __importStar(require("buffer"));
29
29
  const webSocketAccountSubscriber_1 = require("./webSocketAccountSubscriber");
30
30
  const grpc_1 = require("../isomorphic/grpc");
31
31
  class grpcAccountSubscriber extends webSocketAccountSubscriber_1.WebSocketAccountSubscriber {
32
+ get stream() {
33
+ if (!this._stream) {
34
+ throw new Error('grpcAccountSubscriber: stream accessed before subscribe()');
35
+ }
36
+ return this._stream;
37
+ }
32
38
  constructor(client, commitmentLevel, accountName, program, accountPublicKey, decodeBuffer, resubOpts) {
33
39
  super(accountName, program, accountPublicKey, decodeBuffer, resubOpts);
34
40
  this.client = client;
@@ -53,7 +59,7 @@ class grpcAccountSubscriber extends webSocketAccountSubscriber_1.WebSocketAccoun
53
59
  await this.fetch();
54
60
  }
55
61
  // Subscribe with grpc
56
- this.stream =
62
+ this._stream =
57
63
  (await this.client.subscribe());
58
64
  const request = {
59
65
  slots: {},
@@ -74,7 +80,7 @@ class grpcAccountSubscriber extends webSocketAccountSubscriber_1.WebSocketAccoun
74
80
  };
75
81
  this.stream.on('data', (chunk) => {
76
82
  var _a;
77
- if (!chunk.account) {
83
+ if (!chunk.account || !chunk.account.account) {
78
84
  return;
79
85
  }
80
86
  const slot = Number(chunk.account.slot);
@@ -6,7 +6,8 @@ import { Client } from '../isomorphic/grpc';
6
6
  import { DataAndSlot, GrpcConfigs, ResubOpts } from './types';
7
7
  export declare class grpcMultiAccountSubscriber<T, U = undefined> {
8
8
  private client;
9
- private stream;
9
+ private _stream?;
10
+ private get stream();
10
11
  private commitmentLevel;
11
12
  private program;
12
13
  private accountName;
@@ -28,7 +29,7 @@ export declare class grpcMultiAccountSubscriber<T, U = undefined> {
28
29
  getAccountData(accountPubkey: string): DataAndSlot<T> | undefined;
29
30
  getAccountDataMap(): Map<string, DataAndSlot<T>>;
30
31
  fetch(): Promise<void>;
31
- subscribe(accounts: PublicKey[], onChange: (accountId: PublicKey, data: T, context: Context, buffer: Buffer, accountProps: U) => void): Promise<void>;
32
+ subscribe(accounts: PublicKey[], onChange: (accountId: PublicKey, data: T, context: Context, buffer: Buffer, accountProps: U | undefined) => void): Promise<void>;
32
33
  addAccounts(accounts: PublicKey[]): Promise<void>;
33
34
  removeAccounts(accounts: PublicKey[]): Promise<void>;
34
35
  unsubscribe(): Promise<void>;
@@ -44,6 +44,12 @@ function commitmentLevelToCommitment(commitmentLevel) {
44
44
  }
45
45
  }
46
46
  class grpcMultiAccountSubscriber {
47
+ get stream() {
48
+ if (!this._stream) {
49
+ throw new Error('grpcMultiAccountSubscriber: stream accessed before subscribe()');
50
+ }
51
+ return this._stream;
52
+ }
47
53
  constructor(client, commitmentLevel, accountName, program, decodeBuffer, resubOpts, onUnsubscribe, accountPropsMap) {
48
54
  this.isUnsubscribing = false;
49
55
  this.receivingData = false;
@@ -59,7 +65,9 @@ class grpcMultiAccountSubscriber {
59
65
  this.decodeBufferFn = decodeBuffer;
60
66
  this.resubOpts = resubOpts;
61
67
  this.onUnsubscribe = onUnsubscribe;
62
- this.accountPropsMap = accountPropsMap;
68
+ if (accountPropsMap) {
69
+ this.accountPropsMap = accountPropsMap;
70
+ }
63
71
  }
64
72
  static async create(grpcConfigs, accountName, program, decodeBuffer, resubOpts, clientProp, onUnsubscribe, accountPropsMap) {
65
73
  var _a, _b;
@@ -72,7 +80,7 @@ class grpcMultiAccountSubscriber {
72
80
  return new grpcMultiAccountSubscriber(client, commitmentLevel, accountName, program, decodeBuffer, resubOpts, onUnsubscribe, accountPropsMap);
73
81
  }
74
82
  setAccountData(accountPubkey, data, slot) {
75
- this.dataMap.set(accountPubkey, { data, slot });
83
+ this.dataMap.set(accountPubkey, { data, slot: slot !== null && slot !== void 0 ? slot : 0 });
76
84
  }
77
85
  getAccountData(accountPubkey) {
78
86
  return this.dataMap.get(accountPubkey);
@@ -146,7 +154,7 @@ class grpcMultiAccountSubscriber {
146
154
  onChange(new web3_js_1.PublicKey(key), data, ctx, buffer, accountProps);
147
155
  });
148
156
  }
149
- this.stream =
157
+ this._stream =
150
158
  (await this.client.subscribe());
151
159
  const request = {
152
160
  slots: {},
@@ -167,7 +175,7 @@ class grpcMultiAccountSubscriber {
167
175
  };
168
176
  this.stream.on('data', (chunk) => {
169
177
  var _a, _b;
170
- if (!chunk.account) {
178
+ if (!chunk.account || !chunk.account.account) {
171
179
  return;
172
180
  }
173
181
  const slot = Number(chunk.account.slot);
@@ -212,7 +220,7 @@ class grpcMultiAccountSubscriber {
212
220
  const handleDataBuffer = (context, buffer, accountProps) => {
213
221
  const data = this.decodeBufferFn
214
222
  ? this.decodeBufferFn(buffer, accountPubkey, accountProps)
215
- : this.program.account[this.accountName].coder.accounts.decode(this.capitalize(this.accountName), buffer);
223
+ : this.program.coder.accounts.decode(this.capitalize(this.accountName), buffer);
216
224
  const handler = this.onChangeMap.get(accountPubkey);
217
225
  if (handler) {
218
226
  handler(data, context, buffer, accountProps);
@@ -5,7 +5,8 @@ import { VelocityProgram } from '../config';
5
5
  import { grpcMultiAccountSubscriber } from './grpcMultiAccountSubscriber';
6
6
  export declare class grpcMultiUserAccountSubscriber {
7
7
  private program;
8
- private multiSubscriber;
8
+ private _multiSubscriber?;
9
+ private get multiSubscriber();
9
10
  private userData;
10
11
  private listeners;
11
12
  private keyToPk;
@@ -6,6 +6,12 @@ const events_1 = require("events");
6
6
  const web3_js_1 = require("@solana/web3.js");
7
7
  const grpcMultiAccountSubscriber_1 = require("./grpcMultiAccountSubscriber");
8
8
  class grpcMultiUserAccountSubscriber {
9
+ get multiSubscriber() {
10
+ if (!this._multiSubscriber) {
11
+ throw new Error('grpcMultiUserAccountSubscriber: multiSubscriber accessed before subscribe()');
12
+ }
13
+ return this._multiSubscriber;
14
+ }
9
15
  constructor(program, grpcConfigs, resubOpts, multiSubscriber) {
10
16
  this.userData = new Map();
11
17
  this.listeners = new Map();
@@ -26,13 +32,15 @@ class grpcMultiUserAccountSubscriber {
26
32
  }
27
33
  };
28
34
  this.program = program;
29
- this.multiSubscriber = multiSubscriber;
35
+ if (multiSubscriber) {
36
+ this._multiSubscriber = multiSubscriber;
37
+ }
30
38
  this.grpcConfigs = grpcConfigs;
31
39
  this.resubOpts = resubOpts;
32
40
  }
33
41
  async subscribe() {
34
- if (!this.multiSubscriber) {
35
- this.multiSubscriber =
42
+ if (!this._multiSubscriber) {
43
+ this._multiSubscriber =
36
44
  await grpcMultiAccountSubscriber_1.grpcMultiAccountSubscriber.create(this.grpcConfigs, 'user', this.program, undefined, this.resubOpts);
37
45
  }
38
46
  // Subscribe all per-user subscribers first
@@ -138,11 +146,7 @@ class grpcMultiUserAccountSubscriber {
138
146
  isSubscribed = false;
139
147
  },
140
148
  getUserAccountAndSlot() {
141
- const das = parent.userData.get(key);
142
- if (!das) {
143
- throw new types_1.NotSubscribedError('Must subscribe before getting user account data');
144
- }
145
- return das;
149
+ return parent.userData.get(key);
146
150
  },
147
151
  };
148
152
  this.userAccountSubscribers.set(userAccountPublicKey.toBase58(), perUser);
@@ -6,7 +6,8 @@ import { VelocityProgram } from '../config';
6
6
  import { WebSocketProgramAccountSubscriber } from './webSocketProgramAccountSubscriber';
7
7
  export declare class grpcProgramAccountSubscriber<T> extends WebSocketProgramAccountSubscriber<T> {
8
8
  private client;
9
- private stream;
9
+ private _stream?;
10
+ private get stream();
10
11
  private commitmentLevel;
11
12
  listenerId?: number;
12
13
  private constructor();
@@ -29,6 +29,12 @@ const Buffer = __importStar(require("buffer"));
29
29
  const webSocketProgramAccountSubscriber_1 = require("./webSocketProgramAccountSubscriber");
30
30
  const grpc_1 = require("../isomorphic/grpc");
31
31
  class grpcProgramAccountSubscriber extends webSocketProgramAccountSubscriber_1.WebSocketProgramAccountSubscriber {
32
+ get stream() {
33
+ if (!this._stream) {
34
+ throw new Error('grpcProgramAccountSubscriber: stream accessed before subscribe()');
35
+ }
36
+ return this._stream;
37
+ }
32
38
  constructor(client, commitmentLevel, subscriptionName, accountDiscriminator, program, decodeBufferFn, options = {
33
39
  filters: [],
34
40
  }, resubOpts) {
@@ -57,7 +63,7 @@ class grpcProgramAccountSubscriber extends webSocketProgramAccountSubscriber_1.W
57
63
  }
58
64
  this.onChange = onChange;
59
65
  // Subscribe with grpc
60
- this.stream = await this.client.subscribe();
66
+ this._stream = await this.client.subscribe();
61
67
  const filters = this.options.filters.map((filter) => {
62
68
  return {
63
69
  memcmp: {
@@ -85,7 +91,7 @@ class grpcProgramAccountSubscriber extends webSocketProgramAccountSubscriber_1.W
85
91
  };
86
92
  this.stream.on('data', (chunk) => {
87
93
  var _a;
88
- if (!chunk.account) {
94
+ if (!chunk.account || !chunk.account.account) {
89
95
  return;
90
96
  }
91
97
  const slot = Number(chunk.account.slot);
@@ -60,9 +60,13 @@ class grpcVelocityClientAccountSubscriber extends webSocketVelocityClientAccount
60
60
  return true;
61
61
  }
62
62
  async subscribeToSpotMarketAccount(marketIndex) {
63
+ var _a;
63
64
  const marketPublicKey = await (0, pda_1.getSpotMarketPublicKey)(this.program.programId, marketIndex);
64
65
  const accountSubscriber = await grpcAccountSubscriber_1.grpcAccountSubscriber.create(this.grpcConfigs, 'spotMarket', this.program, marketPublicKey, undefined, this.resubOpts);
65
- accountSubscriber.setData(this.initialSpotMarketAccountData.get(marketIndex));
66
+ const initialSpotMarketData = (_a = this.initialSpotMarketAccountData) === null || _a === void 0 ? void 0 : _a.get(marketIndex);
67
+ if (initialSpotMarketData) {
68
+ accountSubscriber.setData(initialSpotMarketData);
69
+ }
66
70
  await accountSubscriber.subscribe((data) => {
67
71
  this.eventEmitter.emit('spotMarketAccountUpdate', data);
68
72
  this.eventEmitter.emit('update');
@@ -71,9 +75,13 @@ class grpcVelocityClientAccountSubscriber extends webSocketVelocityClientAccount
71
75
  return true;
72
76
  }
73
77
  async subscribeToPerpMarketAccount(marketIndex) {
78
+ var _a;
74
79
  const perpMarketPublicKey = await (0, pda_1.getPerpMarketPublicKey)(this.program.programId, marketIndex);
75
80
  const accountSubscriber = await grpcAccountSubscriber_1.grpcAccountSubscriber.create(this.grpcConfigs, 'perpMarket', this.program, perpMarketPublicKey, undefined, this.resubOpts);
76
- accountSubscriber.setData(this.initialPerpMarketAccountData.get(marketIndex));
81
+ const initialPerpMarketData = (_a = this.initialPerpMarketAccountData) === null || _a === void 0 ? void 0 : _a.get(marketIndex);
82
+ if (initialPerpMarketData) {
83
+ accountSubscriber.setData(initialPerpMarketData);
84
+ }
77
85
  await accountSubscriber.subscribe((data) => {
78
86
  this.eventEmitter.emit('perpMarketAccountUpdate', data);
79
87
  this.eventEmitter.emit('update');
@@ -82,12 +90,19 @@ class grpcVelocityClientAccountSubscriber extends webSocketVelocityClientAccount
82
90
  return true;
83
91
  }
84
92
  async subscribeToOracle(oracleInfo) {
93
+ var _a;
85
94
  const oracleId = (0, oracleId_1.getOracleId)(oracleInfo.publicKey, oracleInfo.source);
86
95
  const client = this.oracleClientCache.get(oracleInfo.source, this.program.provider.connection, this.program);
96
+ if (!client) {
97
+ return false;
98
+ }
87
99
  const accountSubscriber = await grpcAccountSubscriber_1.grpcAccountSubscriber.create(this.grpcConfigs, 'oracle', this.program, oracleInfo.publicKey, (buffer) => {
88
100
  return client.getOraclePriceDataFromBuffer(buffer);
89
101
  }, this.resubOpts);
90
- accountSubscriber.setData(this.initialOraclePriceData.get(oracleId));
102
+ const initialOraclePriceData = (_a = this.initialOraclePriceData) === null || _a === void 0 ? void 0 : _a.get(oracleId);
103
+ if (initialOraclePriceData) {
104
+ accountSubscriber.setData(initialOraclePriceData);
105
+ }
91
106
  await accountSubscriber.subscribe((data) => {
92
107
  this.eventEmitter.emit('oraclePriceUpdate', oracleInfo.publicKey, oracleInfo.source, data);
93
108
  this.eventEmitter.emit('update');
@@ -34,8 +34,8 @@ export declare class grpcVelocityClientAccountSubscriberV2 implements VelocityCl
34
34
  stateAccountSubscriber?: AccountSubscriber<StateAccount>;
35
35
  oracleClientCache: OracleClientCache;
36
36
  private resubOpts?;
37
+ private subscriptionPromiseResolver;
37
38
  private subscriptionPromise;
38
- protected subscriptionPromiseResolver: (val: boolean) => void;
39
39
  constructor(grpcConfigs: GrpcConfigs, program: VelocityProgram, perpMarketIndexes: number[], spotMarketIndexes: number[], oracleInfos: OracleInfo[], shouldFindAllMarketsAndOracles: boolean, delistedMarketSetting: DelistedMarketSetting, resubOpts?: ResubOpts);
40
40
  chunks: <T>(array: readonly T[], size: number) => T[][];
41
41
  setInitialData(): Promise<void>;
@@ -21,6 +21,8 @@ class grpcVelocityClientAccountSubscriberV2 {
21
21
  this.spotOracleStringMap = new Map();
22
22
  this.oracleIdToOracleDataMap = new Map();
23
23
  this.oracleClientCache = new oracleClientCache_1.OracleClientCache();
24
+ this.subscriptionPromiseResolver = () => { };
25
+ this.subscriptionPromise = Promise.resolve(false);
24
26
  this.chunks = (array, size) => {
25
27
  return new Array(Math.ceil(array.length / size))
26
28
  .fill(null)
@@ -75,11 +77,15 @@ class grpcVelocityClientAccountSubscriberV2 {
75
77
  const oracleAccountPubkeyChunks = this.chunks(this.oracleInfos.map((oracleInfo) => oracleInfo.publicKey), 75);
76
78
  const oracleAccountInfos = (await Promise.all(oracleAccountPubkeyChunks.map((oracleAccountPublicKeysChunk) => connection.getMultipleAccountsInfo(oracleAccountPublicKeysChunk)))).flat();
77
79
  this.initialOraclePriceData = new Map(this.oracleInfos.reduce((result, oracleInfo, i) => {
78
- if (!oracleAccountInfos[i]) {
80
+ const oracleAccountInfo = oracleAccountInfos[i];
81
+ if (!oracleAccountInfo) {
79
82
  return result;
80
83
  }
81
84
  const oracleClient = this.oracleClientCache.get(oracleInfo.source, connection, this.program);
82
- const oraclePriceData = oracleClient.getOraclePriceDataFromBuffer(oracleAccountInfos[i].data);
85
+ if (!oracleClient) {
86
+ return result;
87
+ }
88
+ const oraclePriceData = oracleClient.getOraclePriceDataFromBuffer(oracleAccountInfo.data);
83
89
  result.push([
84
90
  (0, oracleId_1.getOracleId)(oracleInfo.publicKey, oracleInfo.source),
85
91
  oraclePriceData,
@@ -187,11 +193,19 @@ class grpcVelocityClientAccountSubscriberV2 {
187
193
  }
188
194
  getMarketAccountAndSlot(marketIndex) {
189
195
  var _a;
190
- return (_a = this.perpMarketsSubscriber) === null || _a === void 0 ? void 0 : _a.getAccountData(this.perpMarketIndexToAccountPubkeyMap.get(marketIndex));
196
+ const accountPubkey = this.perpMarketIndexToAccountPubkeyMap.get(marketIndex);
197
+ if (!accountPubkey) {
198
+ return undefined;
199
+ }
200
+ return (_a = this.perpMarketsSubscriber) === null || _a === void 0 ? void 0 : _a.getAccountData(accountPubkey);
191
201
  }
192
202
  getSpotMarketAccountAndSlot(marketIndex) {
193
203
  var _a;
194
- return (_a = this.spotMarketsSubscriber) === null || _a === void 0 ? void 0 : _a.getAccountData(this.spotMarketIndexToAccountPubkeyMap.get(marketIndex));
204
+ const accountPubkey = this.spotMarketIndexToAccountPubkeyMap.get(marketIndex);
205
+ if (!accountPubkey) {
206
+ return undefined;
207
+ }
208
+ return (_a = this.spotMarketsSubscriber) === null || _a === void 0 ? void 0 : _a.getAccountData(accountPubkey);
195
209
  }
196
210
  getOraclePriceDataAndSlot(oracleId) {
197
211
  this.assertIsSubscribed();
@@ -206,8 +220,8 @@ class grpcVelocityClientAccountSubscriberV2 {
206
220
  if (!perpMarketAccount || !oracleId) {
207
221
  return undefined;
208
222
  }
209
- if (!perpMarketAccount.data.oracle.equals(oracle)) {
210
- // If the oracle has changed, we need to update the oracle map in background
223
+ if (!oracle || !perpMarketAccount.data.oracle.equals(oracle)) {
224
+ // If the oracle has changed (or not yet cached), update the oracle map in background
211
225
  this.setPerpOracleMap();
212
226
  }
213
227
  return this.getOraclePriceDataAndSlot(oracleId);
@@ -219,16 +233,16 @@ class grpcVelocityClientAccountSubscriberV2 {
219
233
  if (!spotMarketAccount || !oracleId) {
220
234
  return undefined;
221
235
  }
222
- if (!spotMarketAccount.data.oracle.equals(oracle)) {
223
- // If the oracle has changed, we need to update the oracle map in background
236
+ if (!oracle || !spotMarketAccount.data.oracle.equals(oracle)) {
237
+ // If the oracle has changed (or not yet cached), update the oracle map in background
224
238
  this.setSpotOracleMap();
225
239
  }
226
240
  return this.getOraclePriceDataAndSlot(oracleId);
227
241
  }
228
242
  async setPerpOracleMap() {
229
- var _a, _c;
243
+ var _a, _c, _d;
230
244
  const perpMarketsMap = (_a = this.perpMarketsSubscriber) === null || _a === void 0 ? void 0 : _a.getAccountDataMap();
231
- const perpMarkets = Array.from(perpMarketsMap.values());
245
+ const perpMarkets = Array.from((_c = perpMarketsMap === null || perpMarketsMap === void 0 ? void 0 : perpMarketsMap.values()) !== null && _c !== void 0 ? _c : []);
232
246
  const addOraclePromises = [];
233
247
  for (const perpMarket of perpMarkets) {
234
248
  if (!perpMarket || !perpMarket.data) {
@@ -238,7 +252,7 @@ class grpcVelocityClientAccountSubscriberV2 {
238
252
  const perpMarketIndex = perpMarketAccount.marketIndex;
239
253
  const oracle = perpMarketAccount.oracle;
240
254
  const oracleId = (0, oracleId_1.getOracleId)(oracle, perpMarket.data.oracleSource);
241
- if (!((_c = this.oracleMultiSubscriber) === null || _c === void 0 ? void 0 : _c.getAccountDataMap().has(oracleId))) {
255
+ if (!((_d = this.oracleMultiSubscriber) === null || _d === void 0 ? void 0 : _d.getAccountDataMap().has(oracleId))) {
242
256
  addOraclePromises.push(this.addOracle({
243
257
  publicKey: oracle,
244
258
  source: perpMarket.data.oracleSource,
@@ -250,9 +264,9 @@ class grpcVelocityClientAccountSubscriberV2 {
250
264
  await Promise.all(addOraclePromises);
251
265
  }
252
266
  async setSpotOracleMap() {
253
- var _a, _c;
267
+ var _a, _c, _d;
254
268
  const spotMarketsMap = (_a = this.spotMarketsSubscriber) === null || _a === void 0 ? void 0 : _a.getAccountDataMap();
255
- const spotMarkets = Array.from(spotMarketsMap.values());
269
+ const spotMarkets = Array.from((_c = spotMarketsMap === null || spotMarketsMap === void 0 ? void 0 : spotMarketsMap.values()) !== null && _c !== void 0 ? _c : []);
256
270
  const addOraclePromises = [];
257
271
  for (const spotMarket of spotMarkets) {
258
272
  if (!spotMarket || !spotMarket.data) {
@@ -262,7 +276,7 @@ class grpcVelocityClientAccountSubscriberV2 {
262
276
  const spotMarketIndex = spotMarketAccount.marketIndex;
263
277
  const oracle = spotMarketAccount.oracle;
264
278
  const oracleId = (0, oracleId_1.getOracleId)(oracle, spotMarketAccount.oracleSource);
265
- if (!((_c = this.oracleMultiSubscriber) === null || _c === void 0 ? void 0 : _c.getAccountDataMap().has(oracleId))) {
279
+ if (!((_d = this.oracleMultiSubscriber) === null || _d === void 0 ? void 0 : _d.getAccountDataMap().has(oracleId))) {
266
280
  addOraclePromises.push(this.addOracle({
267
281
  publicKey: oracle,
268
282
  source: spotMarketAccount.oracleSource,
@@ -361,7 +375,13 @@ class grpcVelocityClientAccountSubscriberV2 {
361
375
  if (!pubkey) {
362
376
  throw new Error('Oracle pubkey missing in decode');
363
377
  }
378
+ if (!accountProps) {
379
+ throw new Error('Oracle accountProps missing in decode');
380
+ }
364
381
  const client = this.oracleClientCache.get(accountProps.source, this.program.provider.connection, this.program);
382
+ if (!client) {
383
+ throw new Error('Oracle client missing in decode');
384
+ }
365
385
  const price = client.getOraclePriceDataFromBuffer(buffer);
366
386
  return price;
367
387
  }, this.resubOpts, undefined, async () => {
@@ -385,6 +405,9 @@ class grpcVelocityClientAccountSubscriberV2 {
385
405
  });
386
406
  }
387
407
  await this.oracleMultiSubscriber.subscribe(oraclePubkeys, (accountId, data, context, _b, accountProps) => {
408
+ if (accountProps === undefined) {
409
+ return;
410
+ }
388
411
  const oracleId = (0, oracleId_1.getOracleId)(accountId, accountProps.source);
389
412
  this.oracleIdToOracleDataMap.set(oracleId, {
390
413
  data,
@@ -396,7 +419,7 @@ class grpcVelocityClientAccountSubscriberV2 {
396
419
  return true;
397
420
  }
398
421
  async handleDelistedMarkets() {
399
- var _a, _c;
422
+ var _a, _c, _d, _e;
400
423
  if (this.delistedMarketSetting === types_1.DelistedMarketSetting.Subscribe) {
401
424
  return;
402
425
  }
@@ -412,11 +435,11 @@ class grpcVelocityClientAccountSubscriberV2 {
412
435
  const oraclePubkeysToRemove = oracles.map((oracle) => oracle.publicKey);
413
436
  // Remove accounts in batches - perp markets
414
437
  if (perpMarketPubkeysToRemove.length > 0) {
415
- await this.perpMarketsSubscriber.removeAccounts(perpMarketPubkeysToRemove);
438
+ await ((_d = this.perpMarketsSubscriber) === null || _d === void 0 ? void 0 : _d.removeAccounts(perpMarketPubkeysToRemove));
416
439
  }
417
440
  // Remove accounts in batches - oracles
418
441
  if (oraclePubkeysToRemove.length > 0) {
419
- await this.oracleMultiSubscriber.removeAccounts(oraclePubkeysToRemove);
442
+ await ((_e = this.oracleMultiSubscriber) === null || _e === void 0 ? void 0 : _e.removeAccounts(oraclePubkeysToRemove));
420
443
  }
421
444
  }
422
445
  removeInitialData() {
@@ -94,6 +94,9 @@ class LaserstreamProgramAccountSubscriber extends webSocketProgramAccountSubscri
94
94
  if (update.account) {
95
95
  const slot = Number(update.account.slot);
96
96
  const acc = update.account.account;
97
+ if (!acc) {
98
+ return;
99
+ }
97
100
  const accountInfo = {
98
101
  owner: new web3_js_1.PublicKey(acc.owner),
99
102
  lamports: Number(acc.lamports),