@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
@@ -14,8 +14,9 @@ class OneShotUserAccountSubscriber extends basicUserAccountSubscriber_1.BasicUse
14
14
  this.commitment = commitment !== null && commitment !== void 0 ? commitment : 'confirmed';
15
15
  }
16
16
  async subscribe(userAccount) {
17
+ var _a, _b;
17
18
  if (userAccount) {
18
- this.user = { data: userAccount, slot: this.user.slot };
19
+ this.user = { data: userAccount, slot: (_b = (_a = this.user) === null || _a === void 0 ? void 0 : _a.slot) !== null && _b !== void 0 ? _b : 0 };
19
20
  return true;
20
21
  }
21
22
  await this.fetchIfUnloaded();
@@ -25,7 +26,7 @@ class OneShotUserAccountSubscriber extends basicUserAccountSubscriber_1.BasicUse
25
26
  return true;
26
27
  }
27
28
  async fetchIfUnloaded() {
28
- if (this.user.data === undefined) {
29
+ if (!this.user) {
29
30
  await this.fetch();
30
31
  }
31
32
  }
@@ -41,7 +42,7 @@ class OneShotUserAccountSubscriber extends basicUserAccountSubscriber_1.BasicUse
41
42
  }
42
43
  }
43
44
  catch (e) {
44
- console.error(`OneShotUserAccountSubscriber.fetch() UserAccount does not exist: ${e.message}`);
45
+ console.error(`OneShotUserAccountSubscriber.fetch() UserAccount does not exist: ${e instanceof Error ? e.message : String(e)}`);
45
46
  }
46
47
  }
47
48
  }
@@ -14,8 +14,12 @@ class OneShotUserStatsAccountSubscriber extends basicUserStatsAccountSubscriber_
14
14
  this.commitment = commitment !== null && commitment !== void 0 ? commitment : 'confirmed';
15
15
  }
16
16
  async subscribe(userStatsAccount) {
17
+ var _a, _b;
17
18
  if (userStatsAccount) {
18
- this.userStats = { data: userStatsAccount, slot: this.userStats.slot };
19
+ this.userStats = {
20
+ data: userStatsAccount,
21
+ slot: (_b = (_a = this.userStats) === null || _a === void 0 ? void 0 : _a.slot) !== null && _b !== void 0 ? _b : 0,
22
+ };
19
23
  return true;
20
24
  }
21
25
  await this.fetchIfUnloaded();
@@ -25,7 +29,7 @@ class OneShotUserStatsAccountSubscriber extends basicUserStatsAccountSubscriber_
25
29
  return true;
26
30
  }
27
31
  async fetchIfUnloaded() {
28
- if (this.userStats.data === undefined) {
32
+ if (!this.userStats) {
29
33
  await this.fetch();
30
34
  }
31
35
  }
@@ -41,7 +45,7 @@ class OneShotUserStatsAccountSubscriber extends basicUserStatsAccountSubscriber_
41
45
  }
42
46
  }
43
47
  catch (e) {
44
- console.error(`OneShotUserStatsAccountSubscriber.fetch() UserStatsAccount does not exist: ${e.message}`);
48
+ console.error(`OneShotUserStatsAccountSubscriber.fetch() UserStatsAccount does not exist: ${e instanceof Error ? e.message : String(e)}`);
45
49
  }
46
50
  }
47
51
  }
@@ -20,10 +20,12 @@ export declare class PollingInsuranceFundStakeAccountSubscriber implements Insur
20
20
  addToAccountLoader(): Promise<void>;
21
21
  fetchIfUnloaded(): Promise<void>;
22
22
  fetch(): Promise<void>;
23
- doesAccountExist(): boolean;
23
+ doesAccountExist(): this is {
24
+ insuranceFundStakeAccountAndSlot: DataAndSlot<InsuranceFundStake>;
25
+ };
24
26
  unsubscribe(): Promise<void>;
25
27
  assertIsSubscribed(): void;
26
- getInsuranceFundStakeAccountAndSlot(): DataAndSlot<InsuranceFundStake>;
28
+ getInsuranceFundStakeAccountAndSlot(): DataAndSlot<InsuranceFundStake> | undefined;
27
29
  didSubscriptionSucceed(): boolean;
28
30
  updateData(insuranceFundStake: InsuranceFundStake, slot: number): void;
29
31
  }
@@ -18,7 +18,7 @@ class PollingInsuranceFundStakeAccountSubscriber {
18
18
  if (insuranceFundStake) {
19
19
  this.insuranceFundStakeAccountAndSlot = {
20
20
  data: insuranceFundStake,
21
- slot: undefined,
21
+ slot: 0,
22
22
  };
23
23
  }
24
24
  await this.addToAccountLoader();
@@ -50,7 +50,7 @@ class PollingInsuranceFundStakeAccountSubscriber {
50
50
  });
51
51
  }
52
52
  async fetchIfUnloaded() {
53
- if (this.insuranceFundStakeAccountAndSlot === undefined) {
53
+ if (!this.doesAccountExist()) {
54
54
  await this.fetch();
55
55
  }
56
56
  }
@@ -67,7 +67,7 @@ class PollingInsuranceFundStakeAccountSubscriber {
67
67
  }
68
68
  }
69
69
  catch (e) {
70
- console.log(`PollingInsuranceFundStakeAccountSubscriber.fetch() InsuranceFundStake does not exist: ${e.message}`);
70
+ console.log(`PollingInsuranceFundStakeAccountSubscriber.fetch() InsuranceFundStake does not exist: ${e instanceof Error ? e.message : String(e)}`);
71
71
  }
72
72
  }
73
73
  doesAccountExist() {
@@ -5,10 +5,8 @@ import { EventEmitter } from 'events';
5
5
  import { PublicKey } from '@solana/web3.js';
6
6
  import { BulkAccountLoader } from './bulkAccountLoader';
7
7
  import { OracleClient, OraclePriceData } from '../oracles/types';
8
- import { VelocityProgram } from '../config';
9
8
  export declare class PollingOracleAccountSubscriber implements OracleAccountSubscriber {
10
9
  isSubscribed: boolean;
11
- program: VelocityProgram;
12
10
  eventEmitter: StrictEventEmitter<EventEmitter, OracleEvents>;
13
11
  publicKey: PublicKey;
14
12
  accountLoader: BulkAccountLoader;
@@ -46,7 +46,14 @@ class PollingOracleAccountSubscriber {
46
46
  }
47
47
  async fetch() {
48
48
  await this.accountLoader.load();
49
- const { buffer, slot } = this.accountLoader.getBufferAndSlot(this.publicKey);
49
+ const bufferAndSlot = this.accountLoader.getBufferAndSlot(this.publicKey);
50
+ if (!bufferAndSlot) {
51
+ return;
52
+ }
53
+ const { buffer, slot } = bufferAndSlot;
54
+ if (!buffer) {
55
+ return;
56
+ }
50
57
  this.oraclePriceData = {
51
58
  data: await this.oracleClient.getOraclePriceDataFromBuffer(buffer),
52
59
  slot,
@@ -56,10 +63,14 @@ class PollingOracleAccountSubscriber {
56
63
  if (!this.isSubscribed) {
57
64
  return;
58
65
  }
59
- this.accountLoader.removeAccount(this.publicKey, this.callbackId);
60
- this.callbackId = undefined;
61
- this.accountLoader.removeErrorCallbacks(this.errorCallbackId);
62
- this.errorCallbackId = undefined;
66
+ if (this.callbackId) {
67
+ this.accountLoader.removeAccount(this.publicKey, this.callbackId);
68
+ this.callbackId = undefined;
69
+ }
70
+ if (this.errorCallbackId) {
71
+ this.accountLoader.removeErrorCallbacks(this.errorCallbackId);
72
+ this.errorCallbackId = undefined;
73
+ }
63
74
  this.isSubscribed = false;
64
75
  }
65
76
  assertIsSubscribed() {
@@ -5,10 +5,8 @@ import { EventEmitter } from 'events';
5
5
  import { PublicKey } from '@solana/web3.js';
6
6
  import { BulkAccountLoader } from './bulkAccountLoader';
7
7
  import { Account } from '@solana/spl-token';
8
- import { VelocityProgram } from '../config';
9
8
  export declare class PollingTokenAccountSubscriber implements TokenAccountSubscriber {
10
9
  isSubscribed: boolean;
11
- program: VelocityProgram;
12
10
  eventEmitter: StrictEventEmitter<EventEmitter, TokenAccountEvents>;
13
11
  publicKey: PublicKey;
14
12
  accountLoader: BulkAccountLoader;
@@ -46,7 +46,14 @@ class PollingTokenAccountSubscriber {
46
46
  }
47
47
  async fetch() {
48
48
  await this.accountLoader.load();
49
- const { buffer, slot } = this.accountLoader.getBufferAndSlot(this.publicKey);
49
+ const bufferAndSlot = this.accountLoader.getBufferAndSlot(this.publicKey);
50
+ if (!bufferAndSlot) {
51
+ return;
52
+ }
53
+ const { buffer, slot } = bufferAndSlot;
54
+ if (!buffer) {
55
+ return;
56
+ }
50
57
  this.tokenAccountAndSlot = {
51
58
  data: (0, token_1.parseTokenAccount)(buffer, this.publicKey),
52
59
  slot,
@@ -56,10 +63,14 @@ class PollingTokenAccountSubscriber {
56
63
  if (!this.isSubscribed) {
57
64
  return;
58
65
  }
59
- this.accountLoader.removeAccount(this.publicKey, this.callbackId);
60
- this.callbackId = undefined;
61
- this.accountLoader.removeErrorCallbacks(this.errorCallbackId);
62
- this.errorCallbackId = undefined;
66
+ if (this.callbackId) {
67
+ this.accountLoader.removeAccount(this.publicKey, this.callbackId);
68
+ this.callbackId = undefined;
69
+ }
70
+ if (this.errorCallbackId) {
71
+ this.accountLoader.removeErrorCallbacks(this.errorCallbackId);
72
+ this.errorCallbackId = undefined;
73
+ }
63
74
  this.isSubscribed = false;
64
75
  }
65
76
  assertIsSubscribed() {
@@ -1,4 +1,6 @@
1
1
  /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ /// <reference types="node" />
2
4
  import { DataAndSlot, UserAccountEvents, UserAccountSubscriber } from './types';
3
5
  import { Connection } from '../bankrun/bankrunConnection';
4
6
  import StrictEventEmitter from 'strict-event-emitter-types';
@@ -14,16 +16,18 @@ export declare class PollingUserAccountSubscriber implements UserAccountSubscrib
14
16
  accountLoader: BulkAccountLoader;
15
17
  callbackId?: string;
16
18
  errorCallbackId?: string;
17
- decode: (name: any, buffer: any) => UserAccount;
19
+ decode: (name: string, buffer: Buffer) => UserAccount;
18
20
  user?: DataAndSlot<UserAccount>;
19
- constructor(connection: Connection, userAccountPublicKey: PublicKey, accountLoader: BulkAccountLoader, decode: (name: any, buffer: any) => UserAccount);
21
+ constructor(connection: Connection, userAccountPublicKey: PublicKey, accountLoader: BulkAccountLoader, decode: (name: string, buffer: Buffer) => UserAccount);
20
22
  subscribe(userAccount?: UserAccount): Promise<boolean>;
21
23
  addToAccountLoader(): Promise<void>;
22
24
  fetchIfUnloaded(): Promise<void>;
23
25
  fetch(): Promise<void>;
24
- doesAccountExist(): boolean;
26
+ doesAccountExist(): this is {
27
+ user: DataAndSlot<UserAccount>;
28
+ };
25
29
  unsubscribe(): Promise<void>;
26
30
  assertIsSubscribed(): void;
27
- getUserAccountAndSlot(): DataAndSlot<UserAccount>;
31
+ getUserAccountAndSlot(): DataAndSlot<UserAccount> | undefined;
28
32
  updateData(userAccount: UserAccount, slot: number): void;
29
33
  }
@@ -17,7 +17,9 @@ class PollingUserAccountSubscriber {
17
17
  return true;
18
18
  }
19
19
  if (userAccount) {
20
- this.user = { data: userAccount, slot: undefined };
20
+ // `slot: 0` keeps {data, slot} atomic: a seeded account always carries a
21
+ // slot (0 = oldest-possible sentinel, overwritten by the first real fetch).
22
+ this.user = { data: userAccount, slot: 0 };
21
23
  }
22
24
  await this.addToAccountLoader();
23
25
  await this.fetchIfUnloaded();
@@ -48,7 +50,7 @@ class PollingUserAccountSubscriber {
48
50
  });
49
51
  }
50
52
  async fetchIfUnloaded() {
51
- if (this.user === undefined) {
53
+ if (!this.doesAccountExist()) {
52
54
  await this.fetch();
53
55
  }
54
56
  }
@@ -56,7 +58,8 @@ class PollingUserAccountSubscriber {
56
58
  var _a, _b;
57
59
  try {
58
60
  const dataAndContext = await this.connection.getAccountInfoAndContext(this.userAccountPublicKey, this.accountLoader.commitment);
59
- if (dataAndContext.context.slot > ((_b = (_a = this.user) === null || _a === void 0 ? void 0 : _a.slot) !== null && _b !== void 0 ? _b : 0)) {
61
+ if (dataAndContext.value !== null &&
62
+ dataAndContext.context.slot > ((_b = (_a = this.user) === null || _a === void 0 ? void 0 : _a.slot) !== null && _b !== void 0 ? _b : 0)) {
60
63
  this.user = {
61
64
  data: this.decode('user', dataAndContext.value.data),
62
65
  slot: dataAndContext.context.slot,
@@ -64,7 +67,8 @@ class PollingUserAccountSubscriber {
64
67
  }
65
68
  }
66
69
  catch (e) {
67
- console.log(`PollingUserAccountSubscriber.fetch() UserAccount does not exist: ${e.message}-${e.stack}`);
70
+ const err = e instanceof Error ? e : new Error(String(e));
71
+ console.log(`PollingUserAccountSubscriber.fetch() UserAccount does not exist: ${err.message}-${err.stack}`);
68
72
  }
69
73
  }
70
74
  doesAccountExist() {
@@ -74,10 +78,14 @@ class PollingUserAccountSubscriber {
74
78
  if (!this.isSubscribed) {
75
79
  return;
76
80
  }
77
- this.accountLoader.removeAccount(this.userAccountPublicKey, this.callbackId);
78
- this.callbackId = undefined;
79
- this.accountLoader.removeErrorCallbacks(this.errorCallbackId);
80
- this.errorCallbackId = undefined;
81
+ if (this.callbackId) {
82
+ this.accountLoader.removeAccount(this.userAccountPublicKey, this.callbackId);
83
+ this.callbackId = undefined;
84
+ }
85
+ if (this.errorCallbackId) {
86
+ this.accountLoader.removeErrorCallbacks(this.errorCallbackId);
87
+ this.errorCallbackId = undefined;
88
+ }
81
89
  this.isSubscribed = false;
82
90
  }
83
91
  assertIsSubscribed() {
@@ -86,9 +94,7 @@ class PollingUserAccountSubscriber {
86
94
  }
87
95
  }
88
96
  getUserAccountAndSlot() {
89
- if (!this.doesAccountExist()) {
90
- throw new types_1.NotSubscribedError('You must call `subscribe` or `fetch` before using this function');
91
- }
97
+ this.assertIsSubscribed();
92
98
  return this.user;
93
99
  }
94
100
  updateData(userAccount, slot) {
@@ -20,8 +20,10 @@ export declare class PollingUserStatsAccountSubscriber implements UserStatsAccou
20
20
  addToAccountLoader(): Promise<void>;
21
21
  fetchIfUnloaded(): Promise<void>;
22
22
  fetch(): Promise<void>;
23
- doesAccountExist(): boolean;
23
+ doesAccountExist(): this is {
24
+ userStats: DataAndSlot<UserStatsAccount>;
25
+ };
24
26
  unsubscribe(): Promise<void>;
25
27
  assertIsSubscribed(): void;
26
- getUserStatsAccountAndSlot(): DataAndSlot<UserStatsAccount>;
28
+ getUserStatsAccountAndSlot(): DataAndSlot<UserStatsAccount> | undefined;
27
29
  }
@@ -16,7 +16,9 @@ class PollingUserStatsAccountSubscriber {
16
16
  return true;
17
17
  }
18
18
  if (userStatsAccount) {
19
- this.userStats = { data: userStatsAccount, slot: undefined };
19
+ // `slot: 0` keeps {data, slot} atomic: a seeded account always carries a
20
+ // slot (0 = oldest-possible sentinel, overwritten by the first real fetch).
21
+ this.userStats = { data: userStatsAccount, slot: 0 };
20
22
  }
21
23
  await this.addToAccountLoader();
22
24
  await this.fetchIfUnloaded();
@@ -47,7 +49,7 @@ class PollingUserStatsAccountSubscriber {
47
49
  });
48
50
  }
49
51
  async fetchIfUnloaded() {
50
- if (this.userStats === undefined) {
52
+ if (!this.doesAccountExist()) {
51
53
  await this.fetch();
52
54
  }
53
55
  }
@@ -63,7 +65,7 @@ class PollingUserStatsAccountSubscriber {
63
65
  }
64
66
  }
65
67
  catch (e) {
66
- console.log(`PollingUserStatsAccountSubscriber.fetch() UserStatsAccount does not exist: ${e.message}`);
68
+ console.log(`PollingUserStatsAccountSubscriber.fetch() UserStatsAccount does not exist: ${e instanceof Error ? e.message : String(e)}`);
67
69
  }
68
70
  }
69
71
  doesAccountExist() {
@@ -85,9 +87,7 @@ class PollingUserStatsAccountSubscriber {
85
87
  }
86
88
  }
87
89
  getUserStatsAccountAndSlot() {
88
- if (!this.doesAccountExist()) {
89
- throw new types_1.NotSubscribedError('You must call `subscribe` or `fetch` before using this function');
90
- }
90
+ this.assertIsSubscribed();
91
91
  return this.userStats;
92
92
  }
93
93
  }
@@ -32,8 +32,8 @@ export declare class PollingVelocityClientAccountSubscriber implements VelocityC
32
32
  user?: DataAndSlot<UserAccount>;
33
33
  delistedMarketSetting: DelistedMarketSetting;
34
34
  private isSubscribing;
35
- private subscriptionPromise;
36
35
  private subscriptionPromiseResolver;
36
+ private subscriptionPromise;
37
37
  constructor(program: VelocityProgram, accountLoader: BulkAccountLoader, perpMarketIndexes: number[], spotMarketIndexes: number[], oracleInfos: OracleInfo[], shouldFindAllMarketsAndOracles: boolean, delistedMarketSetting: DelistedMarketSetting);
38
38
  subscribe(): Promise<boolean>;
39
39
  updateAccountsToPoll(): Promise<void>;
@@ -44,6 +44,12 @@ export declare class PollingVelocityClientAccountSubscriber implements VelocityC
44
44
  updateOraclesToPoll(): boolean;
45
45
  addOracleToPoll(oracleInfo: OracleInfo): boolean;
46
46
  addToAccountLoader(): Promise<void>;
47
+ /**
48
+ * Routes a freshly-decoded account into the correct container based on
49
+ * its poll key. Replaces dynamic `this[key]` indexing with explicit,
50
+ * type-checked dispatch.
51
+ */
52
+ private storeDecodedAccount;
47
53
  addAccountToAccountLoader(accountToPoll: AccountToPoll): Promise<void>;
48
54
  addOracleToAccountLoader(oracleToPoll: OraclesToPoll): Promise<void>;
49
55
  fetch(): Promise<void>;
@@ -25,6 +25,10 @@ class PollingVelocityClientAccountSubscriber {
25
25
  this.spotOracleStringMap = new Map();
26
26
  this.oracles = new Map();
27
27
  this.isSubscribing = false;
28
+ this.subscriptionPromiseResolver = () => { };
29
+ this.subscriptionPromise = new Promise((res) => {
30
+ this.subscriptionPromiseResolver = res;
31
+ });
28
32
  this.isSubscribed = false;
29
33
  this.program = program;
30
34
  this.eventEmitter = new events_1.EventEmitter();
@@ -148,21 +152,39 @@ class PollingVelocityClientAccountSubscriber {
148
152
  this.eventEmitter.emit('error', error);
149
153
  });
150
154
  }
155
+ /**
156
+ * Routes a freshly-decoded account into the correct container based on
157
+ * its poll key. Replaces dynamic `this[key]` indexing with explicit,
158
+ * type-checked dispatch.
159
+ */
160
+ storeDecodedAccount(accountToPoll, account, slot) {
161
+ const dataAndSlot = { data: account, slot };
162
+ switch (accountToPoll.key) {
163
+ case 'perpMarket':
164
+ if (accountToPoll.mapKey !== undefined) {
165
+ this.perpMarket.set(accountToPoll.mapKey, dataAndSlot);
166
+ }
167
+ break;
168
+ case 'spotMarket':
169
+ if (accountToPoll.mapKey !== undefined) {
170
+ this.spotMarket.set(accountToPoll.mapKey, dataAndSlot);
171
+ }
172
+ break;
173
+ case 'state':
174
+ this.state = dataAndSlot;
175
+ break;
176
+ default: {
177
+ const _exhaustive = accountToPoll.key;
178
+ throw new Error(`Unhandled account poll key: ${String(_exhaustive)}`);
179
+ }
180
+ }
181
+ }
151
182
  async addAccountToAccountLoader(accountToPoll) {
152
183
  accountToPoll.callbackId = await this.accountLoader.addAccount(accountToPoll.publicKey, (buffer, slot) => {
153
184
  if (!buffer)
154
185
  return;
155
186
  const account = this.program.coder.accounts.decodeUnchecked(accountToPoll.key, buffer);
156
- const dataAndSlot = {
157
- data: account,
158
- slot,
159
- };
160
- if (accountToPoll.mapKey != undefined) {
161
- this[accountToPoll.key].set(accountToPoll.mapKey, dataAndSlot);
162
- }
163
- else {
164
- this[accountToPoll.key] = dataAndSlot;
165
- }
187
+ this.storeDecodedAccount(accountToPoll, account, slot);
166
188
  // @ts-ignore
167
189
  this.eventEmitter.emit(accountToPoll.eventType, account);
168
190
  this.eventEmitter.emit('update');
@@ -177,6 +199,8 @@ class PollingVelocityClientAccountSubscriber {
177
199
  oracleToPoll.callbackId = await this.accountLoader.addAccount(oracleToPoll.publicKey, (buffer, slot) => {
178
200
  if (!buffer)
179
201
  return;
202
+ if (!oracleClient)
203
+ return;
180
204
  const oraclePriceData = oracleClient.getOraclePriceDataFromBuffer(buffer);
181
205
  const dataAndSlot = {
182
206
  data: oraclePriceData,
@@ -197,18 +221,7 @@ class PollingVelocityClientAccountSubscriber {
197
221
  const { buffer, slot } = bufferAndSlot;
198
222
  if (buffer) {
199
223
  const account = this.program.coder.accounts.decodeUnchecked(accountToPoll.key, buffer);
200
- if (accountToPoll.mapKey != undefined) {
201
- this[accountToPoll.key].set(accountToPoll.mapKey, {
202
- data: account,
203
- slot,
204
- });
205
- }
206
- else {
207
- this[accountToPoll.key] = {
208
- data: account,
209
- slot,
210
- };
211
- }
224
+ this.storeDecodedAccount(accountToPoll, account, slot);
212
225
  }
213
226
  }
214
227
  for (const [_, oracleToPoll] of this.oraclesToPoll) {
@@ -219,6 +232,9 @@ class PollingVelocityClientAccountSubscriber {
219
232
  const { buffer, slot } = bufferAndSlot;
220
233
  if (buffer) {
221
234
  const oracleClient = this.oracleClientCache.get(oracleToPoll.source, this.program.provider.connection, this.program);
235
+ if (!oracleClient) {
236
+ continue;
237
+ }
222
238
  const oraclePriceData = oracleClient.getOraclePriceDataFromBuffer(buffer);
223
239
  this.oracles.set((0, oracleId_1.getOracleId)(oracleToPoll.publicKey, oracleToPoll.source), {
224
240
  data: oraclePriceData,
@@ -252,6 +268,9 @@ class PollingVelocityClientAccountSubscriber {
252
268
  }
253
269
  await this.addSpotMarketAccountToPoll(marketIndex);
254
270
  const accountToPoll = this.accountsToPoll.get(marketPublicKey.toString());
271
+ if (!accountToPoll) {
272
+ return false;
273
+ }
255
274
  await this.addAccountToAccountLoader(accountToPoll);
256
275
  this.setSpotOracleMap();
257
276
  return true;
@@ -263,6 +282,9 @@ class PollingVelocityClientAccountSubscriber {
263
282
  }
264
283
  await this.addPerpMarketAccountToPoll(marketIndex);
265
284
  const accountToPoll = this.accountsToPoll.get(marketPublicKey.toString());
285
+ if (!accountToPoll) {
286
+ return false;
287
+ }
266
288
  await this.addAccountToAccountLoader(accountToPoll);
267
289
  await this.setPerpOracleMap();
268
290
  return true;
@@ -278,7 +300,9 @@ class PollingVelocityClientAccountSubscriber {
278
300
  if (!this.oraclesToPoll.has(oracleId)) {
279
301
  this.addOracleToPoll(oracleInfo);
280
302
  const oracleToPoll = this.oraclesToPoll.get(oracleId);
281
- await this.addOracleToAccountLoader(oracleToPoll);
303
+ if (oracleToPoll) {
304
+ await this.addOracleToAccountLoader(oracleToPoll);
305
+ }
282
306
  }
283
307
  await this.pauseForOracleToBeAdded(3, oracleInfo.publicKey.toBase58());
284
308
  return true;
@@ -338,8 +362,16 @@ class PollingVelocityClientAccountSubscriber {
338
362
  }
339
363
  const { perpMarketIndexes, oracles } = (0, utils_1.findDelistedPerpMarketsAndOracles)(this.getMarketAccountsAndSlots(), this.getSpotMarketAccountsAndSlots());
340
364
  for (const perpMarketIndex of perpMarketIndexes) {
341
- const perpMarketPubkey = this.perpMarket.get(perpMarketIndex).data.pubkey;
342
- const callbackId = this.accountsToPoll.get(perpMarketPubkey.toBase58()).callbackId;
365
+ const perpMarketData = this.perpMarket.get(perpMarketIndex);
366
+ if (!perpMarketData) {
367
+ throw new Error(`PollingVelocityClientAccountSubscriber: delisted perp market ${perpMarketIndex} not found in perpMarket map`);
368
+ }
369
+ const perpMarketPubkey = perpMarketData.data.pubkey;
370
+ const accountToPoll = this.accountsToPoll.get(perpMarketPubkey.toBase58());
371
+ if (!accountToPoll) {
372
+ throw new Error(`PollingVelocityClientAccountSubscriber: delisted perp market ${perpMarketIndex} not found in accountsToPoll map`);
373
+ }
374
+ const callbackId = accountToPoll.callbackId;
343
375
  this.accountLoader.removeAccount(perpMarketPubkey, callbackId);
344
376
  if (this.delistedMarketSetting === types_1.DelistedMarketSetting.Discard) {
345
377
  this.perpMarket.delete(perpMarketIndex);
@@ -347,7 +379,11 @@ class PollingVelocityClientAccountSubscriber {
347
379
  }
348
380
  for (const oracle of oracles) {
349
381
  const oracleId = (0, oracleId_1.getOracleId)(oracle.publicKey, oracle.source);
350
- const callbackId = this.oraclesToPoll.get(oracleId).callbackId;
382
+ const oracleToPoll = this.oraclesToPoll.get(oracleId);
383
+ if (!oracleToPoll) {
384
+ throw new Error(`PollingVelocityClientAccountSubscriber: delisted oracle ${oracleId} not found in oraclesToPoll map`);
385
+ }
386
+ const callbackId = oracleToPoll.callbackId;
351
387
  this.accountLoader.removeAccount(oracle.publicKey, callbackId);
352
388
  if (this.delistedMarketSetting === types_1.DelistedMarketSetting.Discard) {
353
389
  this.oracles.delete(oracleId);
@@ -389,7 +425,7 @@ class PollingVelocityClientAccountSubscriber {
389
425
  const perpMarketAccount = this.getMarketAccountAndSlot(marketIndex);
390
426
  const oracle = this.perpOracleMap.get(marketIndex);
391
427
  const oracleId = this.perpOracleStringMap.get(marketIndex);
392
- if (!perpMarketAccount || !oracle) {
428
+ if (!perpMarketAccount || !oracle || !oracleId) {
393
429
  return undefined;
394
430
  }
395
431
  if (!perpMarketAccount.data.oracle.equals(oracle)) {
@@ -402,7 +438,7 @@ class PollingVelocityClientAccountSubscriber {
402
438
  const spotMarketAccount = this.getSpotMarketAccountAndSlot(marketIndex);
403
439
  const oracle = this.spotOracleMap.get(marketIndex);
404
440
  const oracleId = this.spotOracleStringMap.get(marketIndex);
405
- if (!spotMarketAccount || !oracle) {
441
+ if (!spotMarketAccount || !oracle || !oracleId) {
406
442
  return undefined;
407
443
  }
408
444
  if (!spotMarketAccount.data.oracle.equals(oracle)) {
@@ -85,7 +85,7 @@ export interface UserAccountSubscriber {
85
85
  fetch(): Promise<void>;
86
86
  updateData(userAccount: UserAccount, slot: number): void;
87
87
  unsubscribe(): Promise<void>;
88
- getUserAccountAndSlot(): DataAndSlot<UserAccount>;
88
+ getUserAccountAndSlot(): DataAndSlot<UserAccount> | undefined;
89
89
  }
90
90
  export interface TokenAccountEvents {
91
91
  tokenAccountUpdate: (payload: Account) => void;
@@ -106,7 +106,7 @@ export interface InsuranceFundStakeAccountSubscriber {
106
106
  subscribe(): Promise<boolean>;
107
107
  fetch(): Promise<void>;
108
108
  unsubscribe(): Promise<void>;
109
- getInsuranceFundStakeAccountAndSlot(): DataAndSlot<InsuranceFundStake>;
109
+ getInsuranceFundStakeAccountAndSlot(): DataAndSlot<InsuranceFundStake> | undefined;
110
110
  }
111
111
  export interface InsuranceFundStakeAccountEvents {
112
112
  insuranceFundStakeAccountUpdate: (payload: InsuranceFundStake) => void;
@@ -127,7 +127,7 @@ export interface OracleAccountSubscriber {
127
127
  getOraclePriceData(): DataAndSlot<OraclePriceData>;
128
128
  }
129
129
  export type AccountToPoll = {
130
- key: string;
130
+ key: 'state' | 'perpMarket' | 'spotMarket';
131
131
  publicKey: PublicKey;
132
132
  eventType: string;
133
133
  callbackId?: string;
@@ -163,7 +163,7 @@ export interface UserStatsAccountSubscriber {
163
163
  subscribe(userStatsAccount?: UserStatsAccount): Promise<boolean>;
164
164
  fetch(): Promise<void>;
165
165
  unsubscribe(): Promise<void>;
166
- getUserStatsAccountAndSlot(): DataAndSlot<UserStatsAccount>;
166
+ getUserStatsAccountAndSlot(): DataAndSlot<UserStatsAccount> | undefined;
167
167
  }
168
168
  type BaseGrpcConfigs = {
169
169
  endpoint: string;
@@ -2,6 +2,7 @@ import { DataAndSlot } from './types';
2
2
  import { PerpMarketAccount, SpotMarketAccount } from '../types';
3
3
  import { OracleInfo } from '../oracles/types';
4
4
  export declare function capitalize(value: string): string;
5
+ export declare function assertDataAndSlot<T>(dataAndSlot: DataAndSlot<T> | undefined, message: string): DataAndSlot<T>;
5
6
  export declare function findDelistedPerpMarketsAndOracles(perpMarkets: DataAndSlot<PerpMarketAccount>[], spotMarkets: DataAndSlot<SpotMarketAccount>[]): {
6
7
  perpMarketIndexes: number[];
7
8
  oracles: OracleInfo[];
@@ -1,12 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findDelistedPerpMarketsAndOracles = exports.capitalize = void 0;
3
+ exports.findDelistedPerpMarketsAndOracles = exports.assertDataAndSlot = exports.capitalize = void 0;
4
4
  const types_1 = require("../types");
5
5
  const oracleId_1 = require("../oracles/oracleId");
6
6
  function capitalize(value) {
7
7
  return value[0].toUpperCase() + value.slice(1);
8
8
  }
9
9
  exports.capitalize = capitalize;
10
+ function assertDataAndSlot(dataAndSlot, message) {
11
+ if (!dataAndSlot) {
12
+ throw new Error(message);
13
+ }
14
+ return dataAndSlot;
15
+ }
16
+ exports.assertDataAndSlot = assertDataAndSlot;
10
17
  function findDelistedPerpMarketsAndOracles(perpMarkets, spotMarkets) {
11
18
  const delistedPerpMarketIndexes = [];
12
19
  const delistedOracles = [];
@@ -10,8 +10,10 @@ export declare class WebSocketAccountSubscriber<T> implements AccountSubscriber<
10
10
  logAccountName: string;
11
11
  program: VelocityProgram;
12
12
  accountPublicKey: PublicKey;
13
- decodeBufferFn: (buffer: Buffer) => T;
14
- onChange: (data: T) => void;
13
+ decodeBufferFn?: (buffer: Buffer) => T;
14
+ private _onChange?;
15
+ get onChange(): (data: T) => void;
16
+ set onChange(onChange: (data: T) => void);
15
17
  listenerId?: number;
16
18
  resubOpts?: ResubOpts;
17
19
  commitment?: Commitment;