@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
@@ -67,6 +67,15 @@ const bs58_1 = __importDefault(require("bs58"));
67
67
  * and processed concurrently.
68
68
  */
69
69
  class WebSocketProgramAccountsSubscriberV2 {
70
+ get onChange() {
71
+ if (!this._onChange) {
72
+ throw new Error('onChange callback function must be set');
73
+ }
74
+ return this._onChange;
75
+ }
76
+ set onChange(onChange) {
77
+ this._onChange = onChange;
78
+ }
70
79
  constructor(subscriptionName, accountDiscriminator, program, decodeBufferFn, options = {
71
80
  filters: [],
72
81
  }, resubOpts, accountsToMonitor // Optional list of accounts to poll
@@ -94,7 +103,8 @@ class WebSocketProgramAccountsSubscriberV2 {
94
103
  usePollingInsteadOfResub: true,
95
104
  logResubMessages: false,
96
105
  };
97
- if (((_a = this.resubOpts) === null || _a === void 0 ? void 0 : _a.resubTimeoutMs) < 1000) {
106
+ if (((_a = this.resubOpts) === null || _a === void 0 ? void 0 : _a.resubTimeoutMs) !== undefined &&
107
+ this.resubOpts.resubTimeoutMs < 1000) {
98
108
  console.log('resubTimeoutMs should be at least 1000ms to avoid spamming resub');
99
109
  }
100
110
  this.options = options;
@@ -212,7 +222,7 @@ class WebSocketProgramAccountsSubscriberV2 {
212
222
  }
213
223
  setTimeout() {
214
224
  var _a;
215
- if (!this.onChange) {
225
+ if (!this._onChange) {
216
226
  throw new Error('onChange callback function must be set');
217
227
  }
218
228
  this.timeoutId = setTimeout(async () => {
@@ -262,7 +272,9 @@ class WebSocketProgramAccountsSubscriberV2 {
262
272
  this.lastWsNotificationTime.set(accountIdString, Date.now());
263
273
  // If this account was being polled, stop polling it if the buffer has changed
264
274
  if (this.accountsCurrentlyPolling.has(accountIdString) &&
265
- !(existingBufferAndSlot === null || existingBufferAndSlot === void 0 ? void 0 : existingBufferAndSlot.buffer.equals(newBuffer))) {
275
+ newBuffer &&
276
+ (!(existingBufferAndSlot === null || existingBufferAndSlot === void 0 ? void 0 : existingBufferAndSlot.buffer) ||
277
+ !newBuffer.equals(existingBufferAndSlot.buffer))) {
266
278
  this.accountsCurrentlyPolling.delete(accountIdString);
267
279
  // If no more accounts are being polled, stop batch polling
268
280
  if (this.accountsCurrentlyPolling.size === 0 &&
@@ -69,7 +69,9 @@ export declare class WebSocketProgramAccountsSubscriberV2<T> implements ProgramA
69
69
  bufferAndSlotMap: Map<string, BufferAndSlot>;
70
70
  program: VelocityProgram;
71
71
  decodeBuffer: (accountName: string, ix: Buffer) => T;
72
- onChange: (accountId: PublicKey, data: T, context: Context, buffer: Buffer) => void;
72
+ private _onChange?;
73
+ get onChange(): (accountId: PublicKey, data: T, context: Context, buffer: Buffer) => void;
74
+ set onChange(onChange: (accountId: PublicKey, data: T, context: Context, buffer: Buffer) => void);
73
75
  listenerId?: number;
74
76
  resubOpts: ResubOpts;
75
77
  isUnsubscribing: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"webSocketProgramAccountsSubscriberV2.d.ts","sourceRoot":"","sources":["../../../src/accounts/webSocketProgramAccountsSubscriberV2.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webSocketProgramAccountsSubscriberV2.d.ts","sourceRoot":"","sources":["../../../src/accounts/webSocketProgramAccountsSubscriberV2.ts"],"names":[],"mappings":"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"}
@@ -67,11 +67,19 @@ const bs58_1 = __importDefault(require("bs58"));
67
67
  * and processed concurrently.
68
68
  */
69
69
  class WebSocketProgramAccountsSubscriberV2 {
70
+ get onChange() {
71
+ if (!this._onChange) {
72
+ throw new Error('onChange callback function must be set');
73
+ }
74
+ return this._onChange;
75
+ }
76
+ set onChange(onChange) {
77
+ this._onChange = onChange;
78
+ }
70
79
  constructor(subscriptionName, accountDiscriminator, program, decodeBufferFn, options = {
71
80
  filters: [],
72
81
  }, resubOpts, accountsToMonitor // Optional list of accounts to poll
73
82
  ) {
74
- var _a;
75
83
  this.bufferAndSlotMap = new Map();
76
84
  this.isUnsubscribing = false;
77
85
  this.receivingData = false;
@@ -94,7 +102,8 @@ class WebSocketProgramAccountsSubscriberV2 {
94
102
  usePollingInsteadOfResub: true,
95
103
  logResubMessages: false,
96
104
  };
97
- if (((_a = this.resubOpts) === null || _a === void 0 ? void 0 : _a.resubTimeoutMs) < 1000) {
105
+ if (this.resubOpts.resubTimeoutMs != null &&
106
+ this.resubOpts.resubTimeoutMs < 1000) {
98
107
  console.log('resubTimeoutMs should be at least 1000ms to avoid spamming resub');
99
108
  }
100
109
  this.options = options;
@@ -212,7 +221,7 @@ class WebSocketProgramAccountsSubscriberV2 {
212
221
  }
213
222
  setTimeout() {
214
223
  var _a;
215
- if (!this.onChange) {
224
+ if (!this._onChange) {
216
225
  throw new Error('onChange callback function must be set');
217
226
  }
218
227
  this.timeoutId = setTimeout(async () => {
@@ -262,7 +271,8 @@ class WebSocketProgramAccountsSubscriberV2 {
262
271
  this.lastWsNotificationTime.set(accountIdString, Date.now());
263
272
  // If this account was being polled, stop polling it if the buffer has changed
264
273
  if (this.accountsCurrentlyPolling.has(accountIdString) &&
265
- !(existingBufferAndSlot === null || existingBufferAndSlot === void 0 ? void 0 : existingBufferAndSlot.buffer.equals(newBuffer))) {
274
+ (!(existingBufferAndSlot === null || existingBufferAndSlot === void 0 ? void 0 : existingBufferAndSlot.buffer) ||
275
+ (newBuffer != null && !existingBufferAndSlot.buffer.equals(newBuffer)))) {
266
276
  this.accountsCurrentlyPolling.delete(accountIdString);
267
277
  // If no more accounts are being polled, stop batch polling
268
278
  if (this.accountsCurrentlyPolling.size === 0 &&
@@ -12,13 +12,15 @@ export declare class WebSocketUserAccountSubscriber implements UserAccountSubscr
12
12
  program: VelocityProgram;
13
13
  eventEmitter: StrictEventEmitter<EventEmitter, UserAccountEvents>;
14
14
  userAccountPublicKey: PublicKey;
15
- userDataAccountSubscriber: AccountSubscriber<UserAccount>;
15
+ private _userDataAccountSubscriber?;
16
+ get userDataAccountSubscriber(): AccountSubscriber<UserAccount>;
17
+ set userDataAccountSubscriber(subscriber: AccountSubscriber<UserAccount>);
16
18
  constructor(program: VelocityProgram, userAccountPublicKey: PublicKey, resubOpts?: ResubOpts, commitment?: Commitment);
17
19
  subscribe(userAccount?: UserAccount): Promise<boolean>;
18
20
  fetch(): Promise<void>;
19
21
  unsubscribe(): Promise<void>;
20
22
  assertIsSubscribed(): void;
21
- getUserAccountAndSlot(): DataAndSlot<UserAccount>;
23
+ getUserAccountAndSlot(): DataAndSlot<UserAccount> | undefined;
22
24
  updateData(userAccount: UserAccount, slot: number): void;
23
25
  }
24
26
  //# sourceMappingURL=webSocketUserAccountSubscriber.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"webSocketUserAccountSubscriber.d.ts","sourceRoot":"","sources":["../../../src/accounts/webSocketUserAccountSubscriber.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,WAAW,EACX,iBAAiB,EAEjB,iBAAiB,EACjB,qBAAqB,EACrB,SAAS,EACT,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,kBAAkB,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,qBAAa,8BAA+B,YAAW,qBAAqB;IAC3E,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,OAAO,EAAE,eAAe,CAAC;IACzB,YAAY,EAAE,kBAAkB,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IAClE,oBAAoB,EAAE,SAAS,CAAC;IAEhC,yBAAyB,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;gBAGzD,OAAO,EAAE,eAAe,EACxB,oBAAoB,EAAE,SAAS,EAC/B,SAAS,CAAC,EAAE,SAAS,EACrB,UAAU,CAAC,EAAE,UAAU;IAUlB,SAAS,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IA4BtD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAUlC,kBAAkB,IAAI,IAAI;IAQnB,qBAAqB,IAAI,WAAW,CAAC,WAAW,CAAC;IAKjD,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM;CASxD"}
1
+ {"version":3,"file":"webSocketUserAccountSubscriber.d.ts","sourceRoot":"","sources":["../../../src/accounts/webSocketUserAccountSubscriber.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,WAAW,EACX,iBAAiB,EAEjB,iBAAiB,EACjB,qBAAqB,EACrB,SAAS,EACT,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,kBAAkB,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,qBAAa,8BAA+B,YAAW,qBAAqB;IAC3E,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,OAAO,EAAE,eAAe,CAAC;IACzB,YAAY,EAAE,kBAAkB,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IAClE,oBAAoB,EAAE,SAAS,CAAC;IAEhC,OAAO,CAAC,0BAA0B,CAAC,CAAiC;IACpE,IAAI,yBAAyB,IAAI,iBAAiB,CAAC,WAAW,CAAC,CAK9D;IACD,IAAI,yBAAyB,CAAC,UAAU,EAAE,iBAAiB,CAAC,WAAW,CAAC,EAEvE;gBAGA,OAAO,EAAE,eAAe,EACxB,oBAAoB,EAAE,SAAS,EAC/B,SAAS,CAAC,EAAE,SAAS,EACrB,UAAU,CAAC,EAAE,UAAU;IAUlB,SAAS,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IA4BtD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAUlC,kBAAkB,IAAI,IAAI;IAQnB,qBAAqB,IAAI,WAAW,CAAC,WAAW,CAAC,GAAG,SAAS;IAK7D,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM;CASxD"}
@@ -5,6 +5,15 @@ const types_1 = require("./types");
5
5
  const events_1 = require("events");
6
6
  const webSocketAccountSubscriber_1 = require("./webSocketAccountSubscriber");
7
7
  class WebSocketUserAccountSubscriber {
8
+ get userDataAccountSubscriber() {
9
+ if (!this._userDataAccountSubscriber) {
10
+ throw new Error('userDataAccountSubscriber accessed before subscribe()');
11
+ }
12
+ return this._userDataAccountSubscriber;
13
+ }
14
+ set userDataAccountSubscriber(subscriber) {
15
+ this._userDataAccountSubscriber = subscriber;
16
+ }
8
17
  constructor(program, userAccountPublicKey, resubOpts, commitment) {
9
18
  this.isSubscribed = false;
10
19
  this.program = program;
@@ -12,12 +12,14 @@ export declare class WebSocketUserStatsAccountSubscriber implements UserStatsAcc
12
12
  program: VelocityProgram;
13
13
  eventEmitter: StrictEventEmitter<EventEmitter, UserStatsAccountEvents>;
14
14
  userStatsAccountPublicKey: PublicKey;
15
- userStatsAccountSubscriber: AccountSubscriber<UserStatsAccount>;
15
+ private _userStatsAccountSubscriber?;
16
+ get userStatsAccountSubscriber(): AccountSubscriber<UserStatsAccount>;
17
+ set userStatsAccountSubscriber(subscriber: AccountSubscriber<UserStatsAccount>);
16
18
  constructor(program: VelocityProgram, userStatsAccountPublicKey: PublicKey, resubOpts?: ResubOpts, commitment?: Commitment);
17
19
  subscribe(userStatsAccount?: UserStatsAccount): Promise<boolean>;
18
20
  fetch(): Promise<void>;
19
21
  unsubscribe(): Promise<void>;
20
22
  assertIsSubscribed(): void;
21
- getUserStatsAccountAndSlot(): DataAndSlot<UserStatsAccount>;
23
+ getUserStatsAccountAndSlot(): DataAndSlot<UserStatsAccount> | undefined;
22
24
  }
23
25
  //# sourceMappingURL=webSocketUserStatsAccountSubsriber.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"webSocketUserStatsAccountSubsriber.d.ts","sourceRoot":"","sources":["../../../src/accounts/webSocketUserStatsAccountSubsriber.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,WAAW,EACX,iBAAiB,EAEjB,0BAA0B,EAC1B,sBAAsB,EACtB,SAAS,EACT,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,kBAAkB,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,qBAAa,mCACZ,YAAW,0BAA0B;IAErC,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,OAAO,EAAE,eAAe,CAAC;IACzB,YAAY,EAAE,kBAAkB,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;IACvE,yBAAyB,EAAE,SAAS,CAAC;IAErC,0BAA0B,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;gBAG/D,OAAO,EAAE,eAAe,EACxB,yBAAyB,EAAE,SAAS,EACpC,SAAS,CAAC,EAAE,SAAS,EACrB,UAAU,CAAC,EAAE,UAAU;IAUlB,SAAS,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IA8BhE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAUlC,kBAAkB,IAAI,IAAI;IAQnB,0BAA0B,IAAI,WAAW,CAAC,gBAAgB,CAAC;CAIlE"}
1
+ {"version":3,"file":"webSocketUserStatsAccountSubsriber.d.ts","sourceRoot":"","sources":["../../../src/accounts/webSocketUserStatsAccountSubsriber.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,WAAW,EACX,iBAAiB,EAEjB,0BAA0B,EAC1B,sBAAsB,EACtB,SAAS,EACT,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,kBAAkB,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,qBAAa,mCACZ,YAAW,0BAA0B;IAErC,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,OAAO,EAAE,eAAe,CAAC;IACzB,YAAY,EAAE,kBAAkB,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;IACvE,yBAAyB,EAAE,SAAS,CAAC;IAErC,OAAO,CAAC,2BAA2B,CAAC,CAAsC;IAC1E,IAAI,0BAA0B,IAAI,iBAAiB,CAAC,gBAAgB,CAAC,CAKpE;IACD,IAAI,0BAA0B,CAC7B,UAAU,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,EAG/C;gBAGA,OAAO,EAAE,eAAe,EACxB,yBAAyB,EAAE,SAAS,EACpC,SAAS,CAAC,EAAE,SAAS,EACrB,UAAU,CAAC,EAAE,UAAU;IAUlB,SAAS,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IA8BhE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAUlC,kBAAkB,IAAI,IAAI;IAQnB,0BAA0B,IAC9B,WAAW,CAAC,gBAAgB,CAAC,GAC7B,SAAS;CAIZ"}
@@ -5,6 +5,15 @@ const types_1 = require("./types");
5
5
  const events_1 = require("events");
6
6
  const webSocketAccountSubscriber_1 = require("./webSocketAccountSubscriber");
7
7
  class WebSocketUserStatsAccountSubscriber {
8
+ get userStatsAccountSubscriber() {
9
+ if (!this._userStatsAccountSubscriber) {
10
+ throw new Error('userStatsAccountSubscriber accessed before subscribe()');
11
+ }
12
+ return this._userStatsAccountSubscriber;
13
+ }
14
+ set userStatsAccountSubscriber(subscriber) {
15
+ this._userStatsAccountSubscriber = subscriber;
16
+ }
8
17
  constructor(program, userStatsAccountPublicKey, resubOpts, commitment) {
9
18
  this.isSubscribed = false;
10
19
  this.program = program;
@@ -31,14 +31,14 @@ export declare class WebSocketVelocityClientAccountSubscriber implements Velocit
31
31
  spotOracleStringMap: Map<number, string>;
32
32
  oracleSubscribers: Map<string, AccountSubscriber<OraclePriceData>>;
33
33
  delistedMarketSetting: DelistedMarketSetting;
34
- initialPerpMarketAccountData: Map<number, PerpMarketAccount>;
35
- initialSpotMarketAccountData: Map<number, SpotMarketAccount>;
36
- initialOraclePriceData: Map<string, OraclePriceData>;
34
+ initialPerpMarketAccountData?: Map<number, PerpMarketAccount>;
35
+ initialSpotMarketAccountData?: Map<number, SpotMarketAccount>;
36
+ initialOraclePriceData?: Map<string, OraclePriceData>;
37
37
  customPerpMarketAccountSubscriber?: new (accountName: string, program: VelocityProgram, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => any, resubOpts?: ResubOpts, commitment?: Commitment) => AccountSubscriber<any>;
38
38
  customOracleAccountSubscriber?: new (accountName: string, program: VelocityProgram, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => any, resubOpts?: ResubOpts, commitment?: Commitment) => AccountSubscriber<any>;
39
39
  protected isSubscribing: boolean;
40
- protected subscriptionPromise: Promise<boolean>;
41
40
  protected subscriptionPromiseResolver: (val: boolean) => void;
41
+ protected subscriptionPromise: Promise<boolean>;
42
42
  constructor(program: VelocityProgram, perpMarketIndexes: number[], spotMarketIndexes: number[], oracleInfos: OracleInfo[], shouldFindAllMarketsAndOracles: boolean, delistedMarketSetting: DelistedMarketSetting, resubOpts?: ResubOpts, commitment?: Commitment, customPerpMarketAccountSubscriber?: new (accountName: string, program: VelocityProgram, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => any, resubOpts?: ResubOpts, commitment?: Commitment) => WebSocketAccountSubscriberV2<any> | WebSocketAccountSubscriber<any>, customOracleAccountSubscriber?: new (accountName: string, program: VelocityProgram, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => any, resubOpts?: ResubOpts, commitment?: Commitment) => WebSocketAccountSubscriberV2<any> | WebSocketAccountSubscriber<any>);
43
43
  subscribe(): Promise<boolean>;
44
44
  chunks: <T>(array: readonly T[], size: number) => T[][];
@@ -1 +1 @@
1
- {"version":3,"file":"webSocketVelocityClientAccountSubscriber.d.ts","sourceRoot":"","sources":["../../../src/accounts/webSocketVelocityClientAccountSubscriber.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webSocketVelocityClientAccountSubscriber.d.ts","sourceRoot":"","sources":["../../../src/accounts/webSocketVelocityClientAccountSubscriber.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,8 @@ class WebSocketVelocityClientAccountSubscriber {
42
42
  this.spotOracleStringMap = new Map();
43
43
  this.oracleSubscribers = new Map();
44
44
  this.isSubscribing = false;
45
+ this.subscriptionPromiseResolver = () => { };
46
+ this.subscriptionPromise = Promise.resolve(false);
45
47
  this.chunks = (array, size) => {
46
48
  return new Array(Math.ceil(array.length / size))
47
49
  .fill(null)
@@ -135,11 +137,15 @@ class WebSocketVelocityClientAccountSubscriber {
135
137
  const oracleAccountPubkeyChunks = this.chunks(this.oracleInfos.map((oracleInfo) => oracleInfo.publicKey), 75);
136
138
  const oracleAccountInfos = (await Promise.all(oracleAccountPubkeyChunks.map((oracleAccountPublicKeysChunk) => connection.getMultipleAccountsInfo(oracleAccountPublicKeysChunk)))).flat();
137
139
  this.initialOraclePriceData = new Map(this.oracleInfos.reduce((result, oracleInfo, i) => {
138
- if (!oracleAccountInfos[i]) {
140
+ const oracleAccountInfo = oracleAccountInfos[i];
141
+ if (!oracleAccountInfo) {
139
142
  return result;
140
143
  }
141
144
  const oracleClient = this.oracleClientCache.get(oracleInfo.source, connection, this.program);
142
- const oraclePriceData = oracleClient.getOraclePriceDataFromBuffer(oracleAccountInfos[i].data);
145
+ if (!oracleClient) {
146
+ return result;
147
+ }
148
+ const oraclePriceData = oracleClient.getOraclePriceDataFromBuffer(oracleAccountInfo.data);
143
149
  result.push([
144
150
  (0, oracleId_1.getOracleId)(oracleInfo.publicKey, oracleInfo.source),
145
151
  oraclePriceData,
@@ -157,10 +163,11 @@ class WebSocketVelocityClientAccountSubscriber {
157
163
  return true;
158
164
  }
159
165
  async subscribeToPerpMarketAccount(marketIndex) {
166
+ var _a;
160
167
  const perpMarketPublicKey = await (0, pda_1.getPerpMarketPublicKey)(this.program.programId, marketIndex);
161
168
  const AccountSubscriberClass = this.customPerpMarketAccountSubscriber || webSocketAccountSubscriber_1.WebSocketAccountSubscriber;
162
169
  const accountSubscriber = new AccountSubscriberClass('perpMarket', this.program, perpMarketPublicKey, undefined, this.resubOpts, this.commitment);
163
- const initialPerpMarketData = this.initialPerpMarketAccountData.get(marketIndex);
170
+ const initialPerpMarketData = (_a = this.initialPerpMarketAccountData) === null || _a === void 0 ? void 0 : _a.get(marketIndex);
164
171
  if (initialPerpMarketData) {
165
172
  accountSubscriber.setData(initialPerpMarketData);
166
173
  }
@@ -177,9 +184,10 @@ class WebSocketVelocityClientAccountSubscriber {
177
184
  return true;
178
185
  }
179
186
  async subscribeToSpotMarketAccount(marketIndex) {
187
+ var _a;
180
188
  const marketPublicKey = await (0, pda_1.getSpotMarketPublicKey)(this.program.programId, marketIndex);
181
189
  const accountSubscriber = new webSocketAccountSubscriber_1.WebSocketAccountSubscriber('spotMarket', this.program, marketPublicKey, undefined, this.resubOpts, this.commitment);
182
- const initialSpotMarketData = this.initialSpotMarketAccountData.get(marketIndex);
190
+ const initialSpotMarketData = (_a = this.initialSpotMarketAccountData) === null || _a === void 0 ? void 0 : _a.get(marketIndex);
183
191
  if (initialSpotMarketData) {
184
192
  accountSubscriber.setData(initialSpotMarketData);
185
193
  }
@@ -198,13 +206,17 @@ class WebSocketVelocityClientAccountSubscriber {
198
206
  return true;
199
207
  }
200
208
  async subscribeToOracle(oracleInfo) {
209
+ var _a;
201
210
  const oracleId = (0, oracleId_1.getOracleId)(oracleInfo.publicKey, oracleInfo.source);
202
211
  const client = this.oracleClientCache.get(oracleInfo.source, this.program.provider.connection, this.program);
212
+ if (!client) {
213
+ return false;
214
+ }
203
215
  const AccountSubscriberClass = this.customOracleAccountSubscriber || webSocketAccountSubscriber_1.WebSocketAccountSubscriber;
204
216
  const accountSubscriber = new AccountSubscriberClass('oracle', this.program, oracleInfo.publicKey, (buffer) => {
205
217
  return client.getOraclePriceDataFromBuffer(buffer);
206
218
  }, this.resubOpts, this.commitment);
207
- const initialOraclePriceData = this.initialOraclePriceData.get(oracleId);
219
+ const initialOraclePriceData = (_a = this.initialOraclePriceData) === null || _a === void 0 ? void 0 : _a.get(oracleId);
208
220
  if (initialOraclePriceData) {
209
221
  accountSubscriber.setData(initialOraclePriceData);
210
222
  }
@@ -229,16 +241,20 @@ class WebSocketVelocityClientAccountSubscriber {
229
241
  if (!this.isSubscribed) {
230
242
  return;
231
243
  }
244
+ if (!this.stateAccountSubscriber) {
245
+ return;
246
+ }
232
247
  const promises = [this.stateAccountSubscriber.fetch()]
233
248
  .concat(Array.from(this.perpMarketAccountSubscribers.values()).map((subscriber) => subscriber.fetch()))
234
249
  .concat(Array.from(this.spotMarketAccountSubscribers.values()).map((subscriber) => subscriber.fetch()));
235
250
  await Promise.all(promises);
236
251
  }
237
252
  async unsubscribe() {
253
+ var _a;
238
254
  if (!this.isSubscribed) {
239
255
  return;
240
256
  }
241
- await this.stateAccountSubscriber.unsubscribe();
257
+ await ((_a = this.stateAccountSubscriber) === null || _a === void 0 ? void 0 : _a.unsubscribe());
242
258
  await this.unsubscribeFromMarketAccounts();
243
259
  await this.unsubscribeFromSpotMarketAccounts();
244
260
  await this.unsubscribeFromOracles();
@@ -315,21 +331,21 @@ class WebSocketVelocityClientAccountSubscriber {
315
331
  await Promise.all(addOraclePromises);
316
332
  }
317
333
  async handleDelistedMarkets() {
334
+ var _a, _b;
318
335
  if (this.delistedMarketSetting === types_1.DelistedMarketSetting.Subscribe) {
319
336
  return;
320
337
  }
321
338
  const { perpMarketIndexes, oracles } = (0, utils_1.findDelistedPerpMarketsAndOracles)(this.getMarketAccountsAndSlots(), this.getSpotMarketAccountsAndSlots());
322
339
  for (const perpMarketIndex of perpMarketIndexes) {
323
- await this.perpMarketAccountSubscribers
324
- .get(perpMarketIndex)
325
- .unsubscribe();
340
+ await ((_a = this.perpMarketAccountSubscribers
341
+ .get(perpMarketIndex)) === null || _a === void 0 ? void 0 : _a.unsubscribe());
326
342
  if (this.delistedMarketSetting === types_1.DelistedMarketSetting.Discard) {
327
343
  this.perpMarketAccountSubscribers.delete(perpMarketIndex);
328
344
  }
329
345
  }
330
346
  for (const oracle of oracles) {
331
347
  const oracleId = (0, oracleId_1.getOracleId)(oracle.publicKey, oracle.source);
332
- await this.oracleSubscribers.get(oracleId).unsubscribe();
348
+ await ((_b = this.oracleSubscribers.get(oracleId)) === null || _b === void 0 ? void 0 : _b.unsubscribe());
333
349
  if (this.delistedMarketSetting === types_1.DelistedMarketSetting.Discard) {
334
350
  this.oracleSubscribers.delete(oracleId);
335
351
  }
@@ -341,24 +357,36 @@ class WebSocketVelocityClientAccountSubscriber {
341
357
  }
342
358
  }
343
359
  getStateAccountAndSlot() {
360
+ var _a;
344
361
  this.assertIsSubscribed();
345
- return this.stateAccountSubscriber.dataAndSlot;
362
+ const dataAndSlot = (_a = this.stateAccountSubscriber) === null || _a === void 0 ? void 0 : _a.dataAndSlot;
363
+ if (!dataAndSlot) {
364
+ throw new Error('State account data not available');
365
+ }
366
+ return dataAndSlot;
346
367
  }
347
368
  getMarketAccountAndSlot(marketIndex) {
369
+ var _a;
348
370
  this.assertIsSubscribed();
349
- return this.perpMarketAccountSubscribers.get(marketIndex).dataAndSlot;
371
+ return (_a = this.perpMarketAccountSubscribers.get(marketIndex)) === null || _a === void 0 ? void 0 : _a.dataAndSlot;
350
372
  }
351
373
  getMarketAccountsAndSlots() {
352
- return Array.from(this.perpMarketAccountSubscribers.values()).map((subscriber) => subscriber.dataAndSlot);
374
+ return Array.from(this.perpMarketAccountSubscribers.values())
375
+ .map((subscriber) => subscriber.dataAndSlot)
376
+ .filter((dataAndSlot) => dataAndSlot !== undefined);
353
377
  }
354
378
  getSpotMarketAccountAndSlot(marketIndex) {
379
+ var _a;
355
380
  this.assertIsSubscribed();
356
- return this.spotMarketAccountSubscribers.get(marketIndex).dataAndSlot;
381
+ return (_a = this.spotMarketAccountSubscribers.get(marketIndex)) === null || _a === void 0 ? void 0 : _a.dataAndSlot;
357
382
  }
358
383
  getSpotMarketAccountsAndSlots() {
359
- return Array.from(this.spotMarketAccountSubscribers.values()).map((subscriber) => subscriber.dataAndSlot);
384
+ return Array.from(this.spotMarketAccountSubscribers.values())
385
+ .map((subscriber) => subscriber.dataAndSlot)
386
+ .filter((dataAndSlot) => dataAndSlot !== undefined);
360
387
  }
361
388
  getOraclePriceDataAndSlot(oracleId) {
389
+ var _a;
362
390
  this.assertIsSubscribed();
363
391
  if (oracleId === ORACLE_DEFAULT_ID) {
364
392
  return {
@@ -366,7 +394,7 @@ class WebSocketVelocityClientAccountSubscriber {
366
394
  slot: 0,
367
395
  };
368
396
  }
369
- return this.oracleSubscribers.get(oracleId).dataAndSlot;
397
+ return (_a = this.oracleSubscribers.get(oracleId)) === null || _a === void 0 ? void 0 : _a.dataAndSlot;
370
398
  }
371
399
  getOraclePriceDataAndSlotForPerpMarket(marketIndex) {
372
400
  const perpMarketAccount = this.getMarketAccountAndSlot(marketIndex);
@@ -375,8 +403,8 @@ class WebSocketVelocityClientAccountSubscriber {
375
403
  if (!perpMarketAccount || !oracleId) {
376
404
  return undefined;
377
405
  }
378
- if (!perpMarketAccount.data.oracle.equals(oracle)) {
379
- // If the oracle has changed, we need to update the oracle map in background
406
+ if (!oracle || !perpMarketAccount.data.oracle.equals(oracle)) {
407
+ // If the oracle has changed (or not yet cached), update the oracle map in background
380
408
  this.setPerpOracleMap();
381
409
  }
382
410
  return this.getOraclePriceDataAndSlot(oracleId);
@@ -388,8 +416,8 @@ class WebSocketVelocityClientAccountSubscriber {
388
416
  if (!spotMarketAccount || !oracleId) {
389
417
  return undefined;
390
418
  }
391
- if (!spotMarketAccount.data.oracle.equals(oracle)) {
392
- // If the oracle has changed, we need to update the oracle map in background
419
+ if (!oracle || !spotMarketAccount.data.oracle.equals(oracle)) {
420
+ // If the oracle has changed (or not yet cached), update the oracle map in background
393
421
  this.setSpotOracleMap();
394
422
  }
395
423
  return this.getOraclePriceDataAndSlot(oracleId);
@@ -23,9 +23,13 @@ export declare class WebSocketVelocityClientAccountSubscriberV2 implements Veloc
23
23
  skipInitialData: boolean;
24
24
  eventEmitter: StrictEventEmitter<EventEmitter, VelocityClientAccountEvents>;
25
25
  stateAccountSubscriber?: WebSocketAccountSubscriberV2<StateAccount>;
26
- perpMarketAllAccountsSubscriber: WebSocketProgramAccountsSubscriberV2<PerpMarketAccount>;
26
+ private _perpMarketAllAccountsSubscriber?;
27
+ get perpMarketAllAccountsSubscriber(): WebSocketProgramAccountsSubscriberV2<PerpMarketAccount>;
28
+ set perpMarketAllAccountsSubscriber(subscriber: WebSocketProgramAccountsSubscriberV2<PerpMarketAccount>);
27
29
  perpMarketAccountLatestData: Map<number, DataAndSlot<PerpMarketAccount>>;
28
- spotMarketAllAccountsSubscriber: WebSocketProgramAccountsSubscriberV2<SpotMarketAccount>;
30
+ private _spotMarketAllAccountsSubscriber?;
31
+ get spotMarketAllAccountsSubscriber(): WebSocketProgramAccountsSubscriberV2<SpotMarketAccount>;
32
+ set spotMarketAllAccountsSubscriber(subscriber: WebSocketProgramAccountsSubscriberV2<SpotMarketAccount>);
29
33
  spotMarketAccountLatestData: Map<number, DataAndSlot<SpotMarketAccount>>;
30
34
  perpOracleMap: Map<number, PublicKey>;
31
35
  perpOracleStringMap: Map<number, string>;
@@ -37,8 +41,8 @@ export declare class WebSocketVelocityClientAccountSubscriberV2 implements Veloc
37
41
  initialSpotMarketAccountData: Map<number, SpotMarketAccount>;
38
42
  initialOraclePriceData: Map<string, OraclePriceData>;
39
43
  protected isSubscribing: boolean;
44
+ private subscriptionPromiseResolver;
40
45
  protected subscriptionPromise: Promise<boolean>;
41
- protected subscriptionPromiseResolver: (val: boolean) => void;
42
46
  private rpc;
43
47
  private rpcSubscriptions;
44
48
  constructor(program: VelocityProgram, perpMarketIndexes: number[], spotMarketIndexes: number[], oracleInfos: OracleInfo[], shouldFindAllMarketsAndOracles: boolean, delistedMarketSetting: DelistedMarketSetting, resubOpts?: ResubOpts, commitment?: Commitment, skipInitialData?: boolean);
@@ -1 +1 @@
1
- {"version":3,"file":"webSocketVelocityClientAccountSubscriberV2.d.ts","sourceRoot":"","sources":["../../../src/accounts/webSocketVelocityClientAccountSubscriberV2.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webSocketVelocityClientAccountSubscriberV2.d.ts","sourceRoot":"","sources":["../../../src/accounts/webSocketVelocityClientAccountSubscriberV2.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WebSocketVelocityClientAccountSubscriberV2 = void 0;
4
4
  const types_1 = require("./types");
5
+ const utils_1 = require("./utils");
5
6
  const types_2 = require("../types");
6
7
  const events_1 = require("events");
7
8
  const pda_1 = require("../addresses/pda");
@@ -10,7 +11,7 @@ const gill_1 = require("gill");
10
11
  const oracleClientCache_1 = require("../oracles/oracleClientCache");
11
12
  const quoteAssetOracleClient_1 = require("../oracles/quoteAssetOracleClient");
12
13
  const config_1 = require("../config");
13
- const utils_1 = require("./utils");
14
+ const utils_2 = require("./utils");
14
15
  const oracleId_1 = require("../oracles/oracleId");
15
16
  const types_3 = require("../types");
16
17
  const memcmp_1 = require("../memcmp");
@@ -18,6 +19,24 @@ const webSocketProgramAccountsSubscriberV2_1 = require("./webSocketProgramAccoun
18
19
  const webSocketAccountSubscriberV2_1 = require("./webSocketAccountSubscriberV2");
19
20
  const ORACLE_DEFAULT_ID = (0, oracleId_1.getOracleId)(web3_js_1.PublicKey.default, types_3.OracleSource.QUOTE_ASSET);
20
21
  class WebSocketVelocityClientAccountSubscriberV2 {
22
+ get perpMarketAllAccountsSubscriber() {
23
+ if (!this._perpMarketAllAccountsSubscriber) {
24
+ throw new Error('perpMarketAllAccountsSubscriber accessed before subscribe()');
25
+ }
26
+ return this._perpMarketAllAccountsSubscriber;
27
+ }
28
+ set perpMarketAllAccountsSubscriber(subscriber) {
29
+ this._perpMarketAllAccountsSubscriber = subscriber;
30
+ }
31
+ get spotMarketAllAccountsSubscriber() {
32
+ if (!this._spotMarketAllAccountsSubscriber) {
33
+ throw new Error('spotMarketAllAccountsSubscriber accessed before subscribe()');
34
+ }
35
+ return this._spotMarketAllAccountsSubscriber;
36
+ }
37
+ set spotMarketAllAccountsSubscriber(subscriber) {
38
+ this._spotMarketAllAccountsSubscriber = subscriber;
39
+ }
21
40
  constructor(program, perpMarketIndexes, spotMarketIndexes, oracleInfos, shouldFindAllMarketsAndOracles, delistedMarketSetting, resubOpts, commitment, skipInitialData) {
22
41
  this.oracleClientCache = new oracleClientCache_1.OracleClientCache();
23
42
  this.skipInitialData = true;
@@ -28,7 +47,12 @@ class WebSocketVelocityClientAccountSubscriberV2 {
28
47
  this.spotOracleMap = new Map();
29
48
  this.spotOracleStringMap = new Map();
30
49
  this.oracleSubscribers = new Map();
50
+ this.initialPerpMarketAccountData = new Map();
51
+ this.initialSpotMarketAccountData = new Map();
52
+ this.initialOraclePriceData = new Map();
31
53
  this.isSubscribing = false;
54
+ this.subscriptionPromiseResolver = () => { };
55
+ this.subscriptionPromise = Promise.resolve(false);
32
56
  this.chunks = (array, size) => {
33
57
  const result = [];
34
58
  for (let i = 0; i < array.length; i += size) {
@@ -177,9 +201,7 @@ class WebSocketVelocityClientAccountSubscriberV2 {
177
201
  this.isSubscribed = true;
178
202
  this.isSubscribing = false;
179
203
  // Before calling subscriptionPromiseResolver, check if it's defined
180
- if (this.subscriptionPromiseResolver) {
181
- this.subscriptionPromiseResolver(true);
182
- }
204
+ this.subscriptionPromiseResolver(true);
183
205
  return true;
184
206
  }
185
207
  catch (error) {
@@ -223,11 +245,15 @@ class WebSocketVelocityClientAccountSubscriberV2 {
223
245
  const oracleAccountPubkeyChunks = this.chunks(this.oracleInfos.map((oracleInfo) => oracleInfo.publicKey), 100);
224
246
  const oracleAccountInfos = (await Promise.all(oracleAccountPubkeyChunks.map((oracleAccountPublicKeysChunk) => connection.getMultipleAccountsInfo(oracleAccountPublicKeysChunk)))).flat();
225
247
  this.initialOraclePriceData = new Map(this.oracleInfos.reduce((result, oracleInfo, i) => {
226
- if (!oracleAccountInfos[i]) {
248
+ const oracleAccountInfo = oracleAccountInfos[i];
249
+ if (!oracleAccountInfo) {
227
250
  return result;
228
251
  }
229
252
  const oracleClient = this.oracleClientCache.get(oracleInfo.source, connection, this.program);
230
- const oraclePriceData = oracleClient.getOraclePriceDataFromBuffer(oracleAccountInfos[i].data);
253
+ if (!oracleClient) {
254
+ return result;
255
+ }
256
+ const oraclePriceData = oracleClient.getOraclePriceDataFromBuffer(oracleAccountInfo.data);
231
257
  result.push([
232
258
  (0, oracleId_1.getOracleId)(oracleInfo.publicKey, oracleInfo.source),
233
259
  oraclePriceData,
@@ -265,6 +291,9 @@ class WebSocketVelocityClientAccountSubscriberV2 {
265
291
  try {
266
292
  const oracleId = (0, oracleId_1.getOracleId)(oracleInfo.publicKey, oracleInfo.source);
267
293
  const client = this.oracleClientCache.get(oracleInfo.source, this.program.provider.connection, this.program);
294
+ if (!client) {
295
+ return false;
296
+ }
268
297
  const accountSubscriber = new webSocketAccountSubscriberV2_1.WebSocketAccountSubscriberV2('oracle', this.program, oracleInfo.publicKey, (buffer) => {
269
298
  return client.getOraclePriceDataFromBuffer(buffer);
270
299
  }, this.resubOpts, this.commitment, this.rpcSubscriptions, this.rpc);
@@ -369,11 +398,12 @@ class WebSocketVelocityClientAccountSubscriberV2 {
369
398
  if (this.delistedMarketSetting === types_1.DelistedMarketSetting.Subscribe) {
370
399
  return;
371
400
  }
372
- const { oracles } = (0, utils_1.findDelistedPerpMarketsAndOracles)(this.getMarketAccountsAndSlots(), this.getSpotMarketAccountsAndSlots());
401
+ const { oracles } = (0, utils_2.findDelistedPerpMarketsAndOracles)(this.getMarketAccountsAndSlots(), this.getSpotMarketAccountsAndSlots());
373
402
  for (const oracle of oracles) {
374
403
  const oracleId = (0, oracleId_1.getOracleId)(oracle.publicKey, oracle.source);
375
- if (this.oracleSubscribers.has(oracleId)) {
376
- await this.oracleSubscribers.get(oracleId).unsubscribe();
404
+ const subscriber = this.oracleSubscribers.get(oracleId);
405
+ if (subscriber) {
406
+ await subscriber.unsubscribe();
377
407
  if (this.delistedMarketSetting === types_1.DelistedMarketSetting.Discard) {
378
408
  this.oracleSubscribers.delete(oracleId);
379
409
  }
@@ -386,8 +416,9 @@ class WebSocketVelocityClientAccountSubscriberV2 {
386
416
  }
387
417
  }
388
418
  getStateAccountAndSlot() {
419
+ var _a;
389
420
  this.assertIsSubscribed();
390
- return this.stateAccountSubscriber.dataAndSlot;
421
+ return (0, utils_1.assertDataAndSlot)((_a = this.stateAccountSubscriber) === null || _a === void 0 ? void 0 : _a.dataAndSlot, 'State account data not available');
391
422
  }
392
423
  getMarketAccountAndSlot(marketIndex) {
393
424
  this.assertIsSubscribed();
@@ -421,8 +452,8 @@ class WebSocketVelocityClientAccountSubscriberV2 {
421
452
  if (!perpMarketAccount || !oracleId) {
422
453
  return undefined;
423
454
  }
424
- if (!perpMarketAccount.data.oracle.equals(oracle)) {
425
- // If the oracle has changed, we need to update the oracle map in background
455
+ if (!oracle || !perpMarketAccount.data.oracle.equals(oracle)) {
456
+ // If the oracle has changed (or not yet cached), update the oracle map in background
426
457
  this.setPerpOracleMap();
427
458
  }
428
459
  return this.getOraclePriceDataAndSlot(oracleId);
@@ -434,8 +465,8 @@ class WebSocketVelocityClientAccountSubscriberV2 {
434
465
  if (!spotMarketAccount || !oracleId) {
435
466
  return undefined;
436
467
  }
437
- if (!spotMarketAccount.data.oracle.equals(oracle)) {
438
- // If the oracle has changed, we need to update the oracle map in background
468
+ if (!oracle || !spotMarketAccount.data.oracle.equals(oracle)) {
469
+ // If the oracle has changed (or not yet cached), update the oracle map in background
439
470
  this.setSpotOracleMap();
440
471
  }
441
472
  return this.getOraclePriceDataAndSlot(oracleId);