@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
@@ -2,6 +2,15 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WebSocketAccountSubscriber = void 0;
4
4
  class WebSocketAccountSubscriber {
5
+ get onChange() {
6
+ if (!this._onChange) {
7
+ throw new Error('onChange callback function must be set');
8
+ }
9
+ return this._onChange;
10
+ }
11
+ set onChange(onChange) {
12
+ this._onChange = onChange;
13
+ }
5
14
  constructor(accountName, program, accountPublicKey, decodeBuffer, resubOpts, commitment) {
6
15
  var _a;
7
16
  this.isUnsubscribing = false;
@@ -11,7 +20,8 @@ class WebSocketAccountSubscriber {
11
20
  this.accountPublicKey = accountPublicKey;
12
21
  this.decodeBufferFn = decodeBuffer;
13
22
  this.resubOpts = resubOpts;
14
- if (((_a = this.resubOpts) === null || _a === void 0 ? void 0 : _a.resubTimeoutMs) < 1000) {
23
+ if (((_a = this.resubOpts) === null || _a === void 0 ? void 0 : _a.resubTimeoutMs) != null &&
24
+ this.resubOpts.resubTimeoutMs < 1000) {
15
25
  console.log(`resubTimeoutMs should be at least 1000ms to avoid spamming resub ${this.logAccountName}`);
16
26
  }
17
27
  this.receivingData = false;
@@ -54,12 +64,12 @@ class WebSocketAccountSubscriber {
54
64
  }
55
65
  this.dataAndSlot = {
56
66
  data,
57
- slot,
67
+ slot: newSlot,
58
68
  };
59
69
  }
60
70
  setTimeout() {
61
71
  var _a;
62
- if (!this.onChange) {
72
+ if (!this._onChange) {
63
73
  throw new Error('onChange callback function must be set');
64
74
  }
65
75
  this.timeoutId = setTimeout(async () => {
@@ -90,8 +100,9 @@ class WebSocketAccountSubscriber {
90
100
  }, (_a = this.resubOpts) === null || _a === void 0 ? void 0 : _a.resubTimeoutMs);
91
101
  }
92
102
  async fetch() {
103
+ var _a;
93
104
  const rpcResponse = await this.program.provider.connection.getAccountInfoAndContext(this.accountPublicKey, this.program.provider.opts.commitment);
94
- this.handleRpcResponse(rpcResponse.context, rpcResponse === null || rpcResponse === void 0 ? void 0 : rpcResponse.value);
105
+ this.handleRpcResponse(rpcResponse.context, (_a = rpcResponse === null || rpcResponse === void 0 ? void 0 : rpcResponse.value) !== null && _a !== void 0 ? _a : undefined);
95
106
  }
96
107
  handleRpcResponse(context, accountInfo) {
97
108
  const newSlot = context.slot;
@@ -136,7 +147,7 @@ class WebSocketAccountSubscriber {
136
147
  return this.decodeBufferFn(buffer);
137
148
  }
138
149
  else {
139
- return this.program.account[this.accountName].coder.accounts.decode(this.accountName, buffer);
150
+ return this.program.coder.accounts.decode(this.accountName, buffer);
140
151
  }
141
152
  }
142
153
  unsubscribe(onResub = false) {
@@ -164,6 +175,7 @@ class WebSocketAccountSubscriber {
164
175
  }
165
176
  else {
166
177
  this.isUnsubscribing = false;
178
+ return Promise.resolve();
167
179
  }
168
180
  }
169
181
  }
@@ -59,8 +59,10 @@ export declare class WebSocketAccountSubscriberV2<T> implements AccountSubscribe
59
59
  logAccountName: string;
60
60
  program: VelocityProgram;
61
61
  accountPublicKey: PublicKey;
62
- decodeBufferFn: (buffer: Buffer) => T;
63
- onChange: (data: T) => void;
62
+ decodeBufferFn?: (buffer: Buffer) => T;
63
+ private _onChange?;
64
+ get onChange(): (data: T) => void;
65
+ set onChange(onChange: (data: T) => void);
64
66
  listenerId?: number;
65
67
  resubOpts: ResubOpts;
66
68
  commitment?: Commitment;
@@ -56,6 +56,15 @@ const bs58_1 = __importDefault(require("bs58"));
56
56
  * program provider’s RPC endpoint. Handles base58/base64 encoded data.
57
57
  */
58
58
  class WebSocketAccountSubscriberV2 {
59
+ get onChange() {
60
+ if (!this._onChange) {
61
+ throw new Error('onChange callback function must be set');
62
+ }
63
+ return this._onChange;
64
+ }
65
+ set onChange(onChange) {
66
+ this._onChange = onChange;
67
+ }
59
68
  /**
60
69
  * Create a single-account WebSocket subscriber with optional polling fallback.
61
70
  *
@@ -70,6 +79,7 @@ class WebSocketAccountSubscriberV2 {
70
79
  * @param rpc Optional override/injection for testing.
71
80
  */
72
81
  constructor(accountName, program, accountPublicKey, decodeBuffer, resubOpts, commitment, rpcSubscriptions, rpc) {
82
+ var _a;
73
83
  this.isUnsubscribing = false;
74
84
  this.accountName = accountName;
75
85
  this.logAccountName = `${accountName}-${accountPublicKey.toBase58()}-ws-acct-subscriber-v2`;
@@ -81,11 +91,12 @@ class WebSocketAccountSubscriberV2 {
81
91
  usePollingInsteadOfResub: true,
82
92
  logResubMessages: false,
83
93
  };
84
- if (this.resubOpts.resubTimeoutMs < 1000) {
94
+ if (this.resubOpts.resubTimeoutMs != null &&
95
+ this.resubOpts.resubTimeoutMs < 1000) {
85
96
  console.log(`resubTimeoutMs should be at least 1000ms to avoid spamming resub ${this.logAccountName}`);
86
97
  }
87
98
  this.receivingData = false;
88
- if (['recent', 'single', 'singleGossip', 'root', 'max'].includes(this.program.provider.opts.commitment)) {
99
+ if (['recent', 'single', 'singleGossip', 'root', 'max'].includes((_a = this.program.provider.opts.commitment) !== null && _a !== void 0 ? _a : '')) {
89
100
  console.warn(`using commitment ${this.program.provider.opts.commitment} that is not supported by gill, this may cause issues`);
90
101
  }
91
102
  this.commitment =
@@ -185,7 +196,7 @@ class WebSocketAccountSubscriberV2 {
185
196
  }
186
197
  this.dataAndSlot = {
187
198
  data,
188
- slot,
199
+ slot: newSlot,
189
200
  };
190
201
  }
191
202
  setTimeout() {
@@ -194,7 +205,7 @@ class WebSocketAccountSubscriberV2 {
194
205
  * `resubOpts.resubTimeoutMs` and `receivingData` is true, trigger either
195
206
  * a polling loop or a resubscribe depending on options.
196
207
  */
197
- if (!this.onChange) {
208
+ if (!this._onChange) {
198
209
  throw new Error('onChange callback function must be set');
199
210
  }
200
211
  this.timeoutId = setTimeout(async () => {
@@ -305,7 +316,7 @@ class WebSocketAccountSubscriberV2 {
305
316
  slot: Number(rpcResponse.context.slot),
306
317
  };
307
318
  const accountInfo = rpcResponse.value;
308
- this.handleRpcResponse({ slot: BigInt(context.slot) }, accountInfo);
319
+ this.handleRpcResponse({ slot: BigInt(context.slot) }, accountInfo !== null && accountInfo !== void 0 ? accountInfo : undefined);
309
320
  }
310
321
  handleRpcResponse(context, accountInfo) {
311
322
  const newSlot = context.slot;
@@ -365,7 +376,7 @@ class WebSocketAccountSubscriberV2 {
365
376
  return this.decodeBufferFn(buffer);
366
377
  }
367
378
  else {
368
- return this.program.account[this.accountName].coder.accounts.decode((0, utils_1.capitalize)(this.accountName), buffer);
379
+ return this.program.coder.accounts.decode((0, utils_1.capitalize)(this.accountName), buffer);
369
380
  }
370
381
  }
371
382
  unsubscribe(onResub = false) {
@@ -12,12 +12,14 @@ export declare class WebSocketInsuranceFundStakeAccountSubscriber implements Ins
12
12
  program: VelocityProgram;
13
13
  eventEmitter: StrictEventEmitter<EventEmitter, InsuranceFundStakeAccountEvents>;
14
14
  insuranceFundStakeAccountPublicKey: PublicKey;
15
- insuranceFundStakeDataAccountSubscriber: AccountSubscriber<InsuranceFundStake>;
15
+ private _insuranceFundStakeDataAccountSubscriber?;
16
+ get insuranceFundStakeDataAccountSubscriber(): AccountSubscriber<InsuranceFundStake>;
17
+ set insuranceFundStakeDataAccountSubscriber(subscriber: AccountSubscriber<InsuranceFundStake>);
16
18
  constructor(program: VelocityProgram, insuranceFundStakeAccountPublicKey: PublicKey, resubTimeoutMs?: number, commitment?: Commitment);
17
19
  subscribe(insuranceFundStakeAccount?: InsuranceFundStake): Promise<boolean>;
18
20
  fetch(): Promise<void>;
19
21
  unsubscribe(): Promise<void>;
20
22
  assertIsSubscribed(): void;
21
- getInsuranceFundStakeAccountAndSlot(): DataAndSlot<InsuranceFundStake>;
23
+ getInsuranceFundStakeAccountAndSlot(): DataAndSlot<InsuranceFundStake> | undefined;
22
24
  updateData(insuranceFundStake: InsuranceFundStake, slot: number): void;
23
25
  }
@@ -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 WebSocketInsuranceFundStakeAccountSubscriber {
8
+ get insuranceFundStakeDataAccountSubscriber() {
9
+ if (!this._insuranceFundStakeDataAccountSubscriber) {
10
+ throw new Error('insuranceFundStakeDataAccountSubscriber accessed before subscribe()');
11
+ }
12
+ return this._insuranceFundStakeDataAccountSubscriber;
13
+ }
14
+ set insuranceFundStakeDataAccountSubscriber(subscriber) {
15
+ this._insuranceFundStakeDataAccountSubscriber = subscriber;
16
+ }
8
17
  constructor(program, insuranceFundStakeAccountPublicKey, resubTimeoutMs, commitment) {
9
18
  this.isSubscribed = false;
10
19
  this.program = program;
@@ -10,7 +10,9 @@ export declare class WebSocketProgramAccountSubscriber<T> implements ProgramAcco
10
10
  bufferAndSlotMap: Map<string, BufferAndSlot>;
11
11
  program: VelocityProgram;
12
12
  decodeBuffer: (accountName: string, ix: Buffer) => T;
13
- onChange: (accountId: PublicKey, data: T, context: Context, buffer: Buffer) => void;
13
+ private _onChange?;
14
+ get onChange(): (accountId: PublicKey, data: T, context: Context, buffer: Buffer) => void;
15
+ set onChange(onChange: (accountId: PublicKey, data: T, context: Context, buffer: Buffer) => void);
14
16
  listenerId?: number;
15
17
  resubOpts?: ResubOpts;
16
18
  isUnsubscribing: boolean;
@@ -2,6 +2,15 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WebSocketProgramAccountSubscriber = void 0;
4
4
  class WebSocketProgramAccountSubscriber {
5
+ get onChange() {
6
+ if (!this._onChange) {
7
+ throw new Error('onChange callback function must be set');
8
+ }
9
+ return this._onChange;
10
+ }
11
+ set onChange(onChange) {
12
+ this._onChange = onChange;
13
+ }
5
14
  constructor(subscriptionName, accountDiscriminator, program, decodeBufferFn, options = {
6
15
  filters: [],
7
16
  }, resubOpts) {
@@ -14,7 +23,8 @@ class WebSocketProgramAccountSubscriber {
14
23
  this.program = program;
15
24
  this.decodeBuffer = decodeBufferFn;
16
25
  this.resubOpts = resubOpts;
17
- if (((_a = this.resubOpts) === null || _a === void 0 ? void 0 : _a.resubTimeoutMs) < 1000) {
26
+ if (((_a = this.resubOpts) === null || _a === void 0 ? void 0 : _a.resubTimeoutMs) != null &&
27
+ this.resubOpts.resubTimeoutMs < 1000) {
18
28
  console.log('resubTimeoutMs should be at least 1000ms to avoid spamming resub');
19
29
  }
20
30
  this.options = options;
@@ -45,7 +55,7 @@ class WebSocketProgramAccountSubscriber {
45
55
  }
46
56
  setTimeout() {
47
57
  var _a;
48
- if (!this.onChange) {
58
+ if (!this._onChange) {
49
59
  throw new Error('onChange callback function must be set');
50
60
  }
51
61
  this.timeoutId = setTimeout(async () => {
@@ -97,7 +107,7 @@ class WebSocketProgramAccountSubscriber {
97
107
  }
98
108
  }
99
109
  unsubscribe(onResub = false) {
100
- if (!onResub) {
110
+ if (!onResub && this.resubOpts) {
101
111
  this.resubOpts.resubTimeoutMs = undefined;
102
112
  }
103
113
  this.isUnsubscribing = true;
@@ -114,6 +124,7 @@ class WebSocketProgramAccountSubscriber {
114
124
  }
115
125
  else {
116
126
  this.isUnsubscribing = false;
127
+ return Promise.resolve();
117
128
  }
118
129
  }
119
130
  }
@@ -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;
@@ -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;
@@ -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,12 +12,14 @@ 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
  }
@@ -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,11 +12,13 @@ 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
  }
@@ -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[][];
@@ -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);