@velocity-exchange/sdk 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (676) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/bun.lock +23 -1
  3. package/lib/browser/accounts/basicUserAccountSubscriber.d.ts +5 -3
  4. package/lib/browser/accounts/basicUserAccountSubscriber.js +4 -3
  5. package/lib/browser/accounts/basicUserStatsAccountSubscriber.d.ts +5 -3
  6. package/lib/browser/accounts/basicUserStatsAccountSubscriber.js +4 -3
  7. package/lib/browser/accounts/bulkAccountLoader.d.ts +5 -5
  8. package/lib/browser/accounts/bulkAccountLoader.js +12 -1
  9. package/lib/browser/accounts/grpcAccountSubscriber.d.ts +2 -1
  10. package/lib/browser/accounts/grpcAccountSubscriber.js +8 -2
  11. package/lib/browser/accounts/grpcMultiAccountSubscriber.d.ts +3 -2
  12. package/lib/browser/accounts/grpcMultiAccountSubscriber.js +13 -5
  13. package/lib/browser/accounts/grpcMultiUserAccountSubscriber.d.ts +2 -1
  14. package/lib/browser/accounts/grpcMultiUserAccountSubscriber.js +12 -8
  15. package/lib/browser/accounts/grpcProgramAccountSubscriber.d.ts +2 -1
  16. package/lib/browser/accounts/grpcProgramAccountSubscriber.js +8 -2
  17. package/lib/browser/accounts/grpcVelocityClientAccountSubscriber.js +18 -3
  18. package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +1 -1
  19. package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.js +40 -17
  20. package/lib/browser/accounts/laserProgramAccountSubscriber.js +3 -0
  21. package/lib/browser/accounts/oneShotUserAccountSubscriber.js +4 -3
  22. package/lib/browser/accounts/oneShotUserStatsAccountSubscriber.js +7 -3
  23. package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +4 -2
  24. package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.js +3 -3
  25. package/lib/browser/accounts/pollingOracleAccountSubscriber.d.ts +0 -2
  26. package/lib/browser/accounts/pollingOracleAccountSubscriber.js +16 -5
  27. package/lib/browser/accounts/pollingTokenAccountSubscriber.d.ts +0 -2
  28. package/lib/browser/accounts/pollingTokenAccountSubscriber.js +16 -5
  29. package/lib/browser/accounts/pollingUserAccountSubscriber.d.ts +8 -4
  30. package/lib/browser/accounts/pollingUserAccountSubscriber.js +17 -11
  31. package/lib/browser/accounts/pollingUserStatsAccountSubscriber.d.ts +4 -2
  32. package/lib/browser/accounts/pollingUserStatsAccountSubscriber.js +6 -6
  33. package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.d.ts +7 -1
  34. package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.js +64 -28
  35. package/lib/browser/accounts/types.d.ts +4 -4
  36. package/lib/browser/accounts/utils.d.ts +1 -0
  37. package/lib/browser/accounts/utils.js +8 -1
  38. package/lib/browser/accounts/webSocketAccountSubscriber.d.ts +4 -2
  39. package/lib/browser/accounts/webSocketAccountSubscriber.js +17 -5
  40. package/lib/browser/accounts/webSocketAccountSubscriberV2.d.ts +4 -2
  41. package/lib/browser/accounts/webSocketAccountSubscriberV2.js +17 -6
  42. package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +4 -2
  43. package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +9 -0
  44. package/lib/browser/accounts/webSocketProgramAccountSubscriber.d.ts +3 -1
  45. package/lib/browser/accounts/webSocketProgramAccountSubscriber.js +14 -3
  46. package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.d.ts +3 -1
  47. package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.js +15 -3
  48. package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.d.ts +3 -1
  49. package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.js +14 -4
  50. package/lib/browser/accounts/webSocketUserAccountSubscriber.d.ts +4 -2
  51. package/lib/browser/accounts/webSocketUserAccountSubscriber.js +9 -0
  52. package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.d.ts +4 -2
  53. package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.js +9 -0
  54. package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.d.ts +4 -4
  55. package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.js +48 -20
  56. package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +7 -3
  57. package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.js +45 -14
  58. package/lib/browser/accounts/websocketProgramUserAccountSubscriber.d.ts +1 -1
  59. package/lib/browser/accounts/websocketProgramUserAccountSubscriber.js +0 -3
  60. package/lib/browser/addresses/marketAddresses.js +3 -2
  61. package/lib/browser/addresses/pda.d.ts +0 -2
  62. package/lib/browser/addresses/pda.js +1 -14
  63. package/lib/browser/adminClient.d.ts +24 -28
  64. package/lib/browser/adminClient.js +156 -157
  65. package/lib/browser/auctionSubscriber/auctionSubscriber.d.ts +1 -1
  66. package/lib/browser/auctionSubscriber/auctionSubscriber.js +6 -4
  67. package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.d.ts +1 -1
  68. package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.js +9 -4
  69. package/lib/browser/bankrun/bankrunConnection.d.ts +6 -4
  70. package/lib/browser/bankrun/bankrunConnection.js +69 -31
  71. package/lib/browser/blockhashSubscriber/BlockhashSubscriber.d.ts +1 -1
  72. package/lib/browser/blockhashSubscriber/BlockhashSubscriber.js +3 -2
  73. package/lib/browser/clock/clockSubscriber.d.ts +6 -6
  74. package/lib/browser/clock/clockSubscriber.js +4 -3
  75. package/lib/browser/config.d.ts +1 -1
  76. package/lib/browser/config.js +8 -4
  77. package/lib/browser/constants/index.d.ts +1 -2
  78. package/lib/browser/constants/index.js +1 -2
  79. package/lib/browser/constants/numericConstants.d.ts +1 -3
  80. package/lib/browser/constants/numericConstants.js +3 -5
  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/instructions/perpOrders.d.ts +14 -0
  86. package/lib/browser/core/instructions/perpOrders.js +14 -0
  87. package/lib/browser/core/remainingAccounts.d.ts +2 -2
  88. package/lib/browser/core/remainingAccounts.js +2 -2
  89. package/lib/browser/decode/user.js +9 -1
  90. package/lib/browser/dlob/DLOB.d.ts +6 -1
  91. package/lib/browser/dlob/DLOB.js +201 -138
  92. package/lib/browser/dlob/DLOBNode.d.ts +5 -2
  93. package/lib/browser/dlob/DLOBNode.js +7 -0
  94. package/lib/browser/dlob/DLOBSubscriber.js +37 -32
  95. package/lib/browser/dlob/NodeList.js +8 -7
  96. package/lib/browser/dlob/orderBookLevels.js +19 -12
  97. package/lib/browser/events/eventList.js +4 -1
  98. package/lib/browser/events/eventSubscriber.d.ts +5 -2
  99. package/lib/browser/events/eventSubscriber.js +75 -26
  100. package/lib/browser/events/eventsServerLogProvider.d.ts +1 -1
  101. package/lib/browser/events/eventsServerLogProvider.js +15 -8
  102. package/lib/browser/events/fetchLogs.d.ts +1 -1
  103. package/lib/browser/events/fetchLogs.js +4 -2
  104. package/lib/browser/events/pollingLogProvider.d.ts +1 -1
  105. package/lib/browser/events/pollingLogProvider.js +1 -0
  106. package/lib/browser/events/txEventCache.js +6 -2
  107. package/lib/browser/events/types.d.ts +2 -4
  108. package/lib/browser/events/types.js +0 -2
  109. package/lib/browser/events/webSocketLogProvider.d.ts +1 -1
  110. package/lib/browser/events/webSocketLogProvider.js +5 -2
  111. package/lib/browser/factory/bigNum.js +1 -1
  112. package/lib/browser/idl/velocity.d.ts +1243 -1586
  113. package/lib/browser/idl/velocity.json +1234 -1577
  114. package/lib/browser/index.d.ts +0 -2
  115. package/lib/browser/index.js +0 -2
  116. package/lib/browser/jupiter/jupiterClient.d.ts +1 -1
  117. package/lib/browser/jupiter/jupiterClient.js +18 -8
  118. package/lib/browser/marginCalculation.js +1 -0
  119. package/lib/browser/math/amm.d.ts +31 -13
  120. package/lib/browser/math/amm.js +77 -22
  121. package/lib/browser/math/bankruptcy.js +1 -1
  122. package/lib/browser/math/funding.js +6 -6
  123. package/lib/browser/math/insurance.d.ts +1 -1
  124. package/lib/browser/math/insurance.js +4 -5
  125. package/lib/browser/math/margin.d.ts +1 -9
  126. package/lib/browser/math/margin.js +3 -62
  127. package/lib/browser/math/market.d.ts +4 -12
  128. package/lib/browser/math/market.js +6 -40
  129. package/lib/browser/math/oracles.d.ts +0 -3
  130. package/lib/browser/math/oracles.js +1 -14
  131. package/lib/browser/math/orders.d.ts +0 -5
  132. package/lib/browser/math/orders.js +2 -74
  133. package/lib/browser/math/position.d.ts +0 -4
  134. package/lib/browser/math/position.js +5 -10
  135. package/lib/browser/math/repeg.d.ts +0 -1
  136. package/lib/browser/math/repeg.js +1 -23
  137. package/lib/browser/math/spotBalance.d.ts +4 -4
  138. package/lib/browser/math/spotBalance.js +6 -6
  139. package/lib/browser/math/spotMarket.d.ts +0 -6
  140. package/lib/browser/math/spotMarket.js +1 -16
  141. package/lib/browser/math/spotPosition.d.ts +4 -4
  142. package/lib/browser/math/state.d.ts +0 -2
  143. package/lib/browser/math/state.js +1 -9
  144. package/lib/browser/math/superStake.d.ts +3 -53
  145. package/lib/browser/math/superStake.js +16 -13
  146. package/lib/browser/math/trade.js +6 -6
  147. package/lib/browser/memcmp.d.ts +0 -1
  148. package/lib/browser/memcmp.js +1 -10
  149. package/lib/browser/oracles/prelaunchOracleClient.js +3 -2
  150. package/lib/browser/oracles/pythClient.js +9 -3
  151. package/lib/browser/oracles/pythLazerClient.js +3 -2
  152. package/lib/browser/oracles/utils.d.ts +4 -0
  153. package/lib/browser/oracles/utils.js +9 -1
  154. package/lib/browser/orderSubscriber/OrderSubscriber.d.ts +1 -1
  155. package/lib/browser/orderSubscriber/OrderSubscriber.js +8 -2
  156. package/lib/browser/priorityFee/heliusPriorityFeeMethod.d.ts +1 -1
  157. package/lib/browser/priorityFee/priorityFeeSubscriber.d.ts +1 -1
  158. package/lib/browser/priorityFee/priorityFeeSubscriber.js +32 -8
  159. package/lib/browser/priorityFee/solanaPriorityFeeMethod.d.ts +1 -1
  160. package/lib/browser/pyth/types.d.ts +0 -1
  161. package/lib/browser/slot/SlotSubscriber.d.ts +1 -1
  162. package/lib/browser/slot/SlotSubscriber.js +2 -1
  163. package/lib/browser/slot/SlothashSubscriber.d.ts +3 -2
  164. package/lib/browser/slot/SlothashSubscriber.js +11 -4
  165. package/lib/browser/swift/grpcSignedMsgUserAccountSubscriber.d.ts +0 -3
  166. package/lib/browser/swift/grpcSignedMsgUserAccountSubscriber.js +5 -5
  167. package/lib/browser/swift/signedMsgUserAccountSubscriber.d.ts +3 -2
  168. package/lib/browser/swift/signedMsgUserAccountSubscriber.js +13 -5
  169. package/lib/browser/swift/swiftOrderSubscriber.d.ts +1 -1
  170. package/lib/browser/swift/swiftOrderSubscriber.js +10 -5
  171. package/lib/browser/testClient.js +3 -2
  172. package/lib/browser/tokenFaucet.js +16 -2
  173. package/lib/browser/tx/baseTxSender.d.ts +4 -4
  174. package/lib/browser/tx/baseTxSender.js +5 -4
  175. package/lib/browser/tx/fastSingleTxSender.d.ts +3 -3
  176. package/lib/browser/tx/fastSingleTxSender.js +9 -5
  177. package/lib/browser/tx/reportTransactionError.d.ts +2 -2
  178. package/lib/browser/tx/reportTransactionError.js +5 -1
  179. package/lib/browser/tx/retryTxSender.d.ts +1 -1
  180. package/lib/browser/tx/retryTxSender.js +4 -2
  181. package/lib/browser/tx/txHandler.d.ts +7 -1
  182. package/lib/browser/tx/txHandler.js +54 -40
  183. package/lib/browser/tx/txParamProcessor.d.ts +4 -1
  184. package/lib/browser/tx/txParamProcessor.js +6 -0
  185. package/lib/browser/tx/types.d.ts +1 -1
  186. package/lib/browser/tx/whileValidTxSender.d.ts +1 -6
  187. package/lib/browser/tx/whileValidTxSender.js +35 -13
  188. package/lib/browser/types.d.ts +27 -70
  189. package/lib/browser/types.js +2 -2
  190. package/lib/browser/user.d.ts +21 -7
  191. package/lib/browser/user.js +156 -132
  192. package/lib/browser/userMap/WebsocketSubscription.d.ts +1 -1
  193. package/lib/browser/userMap/grpcSubscription.d.ts +1 -1
  194. package/lib/browser/userMap/referrerMap.js +10 -3
  195. package/lib/browser/userMap/revenueShareEscrowMap.js +4 -0
  196. package/lib/browser/userMap/userMap.d.ts +1 -1
  197. package/lib/browser/userMap/userMap.js +36 -23
  198. package/lib/browser/userMap/userStatsMap.d.ts +1 -1
  199. package/lib/browser/userMap/userStatsMap.js +18 -13
  200. package/lib/browser/userStats.d.ts +7 -2
  201. package/lib/browser/userStats.js +18 -4
  202. package/lib/browser/util/TransactionConfirmationManager.js +4 -2
  203. package/lib/browser/util/chainClock.d.ts +1 -1
  204. package/lib/browser/util/computeUnits.d.ts +1 -1
  205. package/lib/browser/util/computeUnits.js +6 -1
  206. package/lib/browser/velocityClient.d.ts +92 -34
  207. package/lib/browser/velocityClient.js +414 -280
  208. package/lib/node/accounts/basicUserAccountSubscriber.d.ts +5 -3
  209. package/lib/node/accounts/basicUserAccountSubscriber.d.ts.map +1 -1
  210. package/lib/node/accounts/basicUserAccountSubscriber.js +4 -3
  211. package/lib/node/accounts/basicUserStatsAccountSubscriber.d.ts +5 -3
  212. package/lib/node/accounts/basicUserStatsAccountSubscriber.d.ts.map +1 -1
  213. package/lib/node/accounts/basicUserStatsAccountSubscriber.js +4 -3
  214. package/lib/node/accounts/bulkAccountLoader.d.ts +5 -5
  215. package/lib/node/accounts/bulkAccountLoader.d.ts.map +1 -1
  216. package/lib/node/accounts/bulkAccountLoader.js +12 -1
  217. package/lib/node/accounts/grpcAccountSubscriber.d.ts +2 -1
  218. package/lib/node/accounts/grpcAccountSubscriber.d.ts.map +1 -1
  219. package/lib/node/accounts/grpcAccountSubscriber.js +8 -2
  220. package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts +3 -2
  221. package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts.map +1 -1
  222. package/lib/node/accounts/grpcMultiAccountSubscriber.js +13 -5
  223. package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts +2 -1
  224. package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts.map +1 -1
  225. package/lib/node/accounts/grpcMultiUserAccountSubscriber.js +12 -8
  226. package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts +2 -1
  227. package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts.map +1 -1
  228. package/lib/node/accounts/grpcProgramAccountSubscriber.js +8 -2
  229. package/lib/node/accounts/grpcVelocityClientAccountSubscriber.d.ts.map +1 -1
  230. package/lib/node/accounts/grpcVelocityClientAccountSubscriber.js +18 -3
  231. package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +1 -1
  232. package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts.map +1 -1
  233. package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.js +40 -17
  234. package/lib/node/accounts/laserProgramAccountSubscriber.d.ts.map +1 -1
  235. package/lib/node/accounts/laserProgramAccountSubscriber.js +3 -0
  236. package/lib/node/accounts/oneShotUserAccountSubscriber.d.ts.map +1 -1
  237. package/lib/node/accounts/oneShotUserAccountSubscriber.js +4 -3
  238. package/lib/node/accounts/oneShotUserStatsAccountSubscriber.d.ts.map +1 -1
  239. package/lib/node/accounts/oneShotUserStatsAccountSubscriber.js +7 -3
  240. package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +4 -2
  241. package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
  242. package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.js +3 -3
  243. package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts +0 -2
  244. package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts.map +1 -1
  245. package/lib/node/accounts/pollingOracleAccountSubscriber.js +16 -5
  246. package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts +0 -2
  247. package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts.map +1 -1
  248. package/lib/node/accounts/pollingTokenAccountSubscriber.js +16 -5
  249. package/lib/node/accounts/pollingUserAccountSubscriber.d.ts +8 -4
  250. package/lib/node/accounts/pollingUserAccountSubscriber.d.ts.map +1 -1
  251. package/lib/node/accounts/pollingUserAccountSubscriber.js +17 -11
  252. package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts +4 -2
  253. package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts.map +1 -1
  254. package/lib/node/accounts/pollingUserStatsAccountSubscriber.js +6 -6
  255. package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts +7 -1
  256. package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts.map +1 -1
  257. package/lib/node/accounts/pollingVelocityClientAccountSubscriber.js +64 -28
  258. package/lib/node/accounts/types.d.ts +4 -4
  259. package/lib/node/accounts/types.d.ts.map +1 -1
  260. package/lib/node/accounts/utils.d.ts +1 -0
  261. package/lib/node/accounts/utils.d.ts.map +1 -1
  262. package/lib/node/accounts/utils.js +8 -1
  263. package/lib/node/accounts/webSocketAccountSubscriber.d.ts +4 -2
  264. package/lib/node/accounts/webSocketAccountSubscriber.d.ts.map +1 -1
  265. package/lib/node/accounts/webSocketAccountSubscriber.js +17 -5
  266. package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts +4 -2
  267. package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts.map +1 -1
  268. package/lib/node/accounts/webSocketAccountSubscriberV2.js +17 -6
  269. package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +4 -2
  270. package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
  271. package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +9 -0
  272. package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts +3 -1
  273. package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts.map +1 -1
  274. package/lib/node/accounts/webSocketProgramAccountSubscriber.js +14 -3
  275. package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts +3 -1
  276. package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts.map +1 -1
  277. package/lib/node/accounts/webSocketProgramAccountSubscriberV2.js +15 -3
  278. package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts +3 -1
  279. package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts.map +1 -1
  280. package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.js +14 -4
  281. package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts +4 -2
  282. package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts.map +1 -1
  283. package/lib/node/accounts/webSocketUserAccountSubscriber.js +9 -0
  284. package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts +4 -2
  285. package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts.map +1 -1
  286. package/lib/node/accounts/webSocketUserStatsAccountSubsriber.js +9 -0
  287. package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts +4 -4
  288. package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts.map +1 -1
  289. package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.js +48 -20
  290. package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +7 -3
  291. package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts.map +1 -1
  292. package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.js +45 -14
  293. package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts +1 -1
  294. package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts.map +1 -1
  295. package/lib/node/accounts/websocketProgramUserAccountSubscriber.js +0 -3
  296. package/lib/node/addresses/marketAddresses.d.ts.map +1 -1
  297. package/lib/node/addresses/marketAddresses.js +3 -2
  298. package/lib/node/addresses/pda.d.ts +0 -2
  299. package/lib/node/addresses/pda.d.ts.map +1 -1
  300. package/lib/node/addresses/pda.js +1 -14
  301. package/lib/node/adminClient.d.ts +24 -28
  302. package/lib/node/adminClient.d.ts.map +1 -1
  303. package/lib/node/adminClient.js +156 -157
  304. package/lib/node/auctionSubscriber/auctionSubscriber.d.ts +1 -1
  305. package/lib/node/auctionSubscriber/auctionSubscriber.d.ts.map +1 -1
  306. package/lib/node/auctionSubscriber/auctionSubscriber.js +6 -4
  307. package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts +1 -1
  308. package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts.map +1 -1
  309. package/lib/node/auctionSubscriber/auctionSubscriberGrpc.js +9 -4
  310. package/lib/node/bankrun/bankrunConnection.d.ts +6 -4
  311. package/lib/node/bankrun/bankrunConnection.d.ts.map +1 -1
  312. package/lib/node/bankrun/bankrunConnection.js +69 -31
  313. package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts +1 -1
  314. package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts.map +1 -1
  315. package/lib/node/blockhashSubscriber/BlockhashSubscriber.js +3 -2
  316. package/lib/node/clock/clockSubscriber.d.ts +6 -6
  317. package/lib/node/clock/clockSubscriber.d.ts.map +1 -1
  318. package/lib/node/clock/clockSubscriber.js +4 -3
  319. package/lib/node/config.d.ts +1 -1
  320. package/lib/node/config.d.ts.map +1 -1
  321. package/lib/node/config.js +8 -4
  322. package/lib/node/constants/index.d.ts +1 -2
  323. package/lib/node/constants/index.d.ts.map +1 -1
  324. package/lib/node/constants/index.js +1 -2
  325. package/lib/node/constants/numericConstants.d.ts +1 -3
  326. package/lib/node/constants/numericConstants.d.ts.map +1 -1
  327. package/lib/node/constants/numericConstants.js +3 -5
  328. package/lib/node/constituentMap/constituentMap.d.ts.map +1 -1
  329. package/lib/node/constituentMap/constituentMap.js +5 -1
  330. package/lib/node/constituentMap/pollingConstituentAccountSubscriber.d.ts.map +1 -1
  331. package/lib/node/constituentMap/pollingConstituentAccountSubscriber.js +3 -2
  332. package/lib/node/constituentMap/webSocketConstituentAccountSubscriber.d.ts +2 -3
  333. package/lib/node/constituentMap/webSocketConstituentAccountSubscriber.d.ts.map +1 -1
  334. package/lib/node/constituentMap/webSocketConstituentAccountSubscriber.js +10 -3
  335. package/lib/node/core/instructions/perpOrders.d.ts +14 -0
  336. package/lib/node/core/instructions/perpOrders.d.ts.map +1 -1
  337. package/lib/node/core/instructions/perpOrders.js +14 -0
  338. package/lib/node/core/remainingAccounts.d.ts +2 -2
  339. package/lib/node/core/remainingAccounts.d.ts.map +1 -1
  340. package/lib/node/core/remainingAccounts.js +2 -2
  341. package/lib/node/decode/user.d.ts.map +1 -1
  342. package/lib/node/decode/user.js +9 -1
  343. package/lib/node/dlob/DLOB.d.ts +6 -1
  344. package/lib/node/dlob/DLOB.d.ts.map +1 -1
  345. package/lib/node/dlob/DLOB.js +201 -138
  346. package/lib/node/dlob/DLOBNode.d.ts +5 -2
  347. package/lib/node/dlob/DLOBNode.d.ts.map +1 -1
  348. package/lib/node/dlob/DLOBNode.js +7 -0
  349. package/lib/node/dlob/DLOBSubscriber.d.ts.map +1 -1
  350. package/lib/node/dlob/DLOBSubscriber.js +37 -32
  351. package/lib/node/dlob/NodeList.d.ts.map +1 -1
  352. package/lib/node/dlob/NodeList.js +8 -7
  353. package/lib/node/dlob/orderBookLevels.d.ts.map +1 -1
  354. package/lib/node/dlob/orderBookLevels.js +19 -12
  355. package/lib/node/events/eventList.d.ts +3 -3
  356. package/lib/node/events/eventList.d.ts.map +1 -1
  357. package/lib/node/events/eventList.js +4 -1
  358. package/lib/node/events/eventSubscriber.d.ts +5 -2
  359. package/lib/node/events/eventSubscriber.d.ts.map +1 -1
  360. package/lib/node/events/eventSubscriber.js +75 -26
  361. package/lib/node/events/eventsServerLogProvider.d.ts +2 -2
  362. package/lib/node/events/eventsServerLogProvider.d.ts.map +1 -1
  363. package/lib/node/events/eventsServerLogProvider.js +15 -8
  364. package/lib/node/events/fetchLogs.d.ts +1 -1
  365. package/lib/node/events/fetchLogs.d.ts.map +1 -1
  366. package/lib/node/events/fetchLogs.js +4 -2
  367. package/lib/node/events/pollingLogProvider.d.ts +2 -2
  368. package/lib/node/events/pollingLogProvider.d.ts.map +1 -1
  369. package/lib/node/events/pollingLogProvider.js +1 -0
  370. package/lib/node/events/txEventCache.d.ts +3 -3
  371. package/lib/node/events/txEventCache.d.ts.map +1 -1
  372. package/lib/node/events/txEventCache.js +6 -2
  373. package/lib/node/events/types.d.ts +2 -4
  374. package/lib/node/events/types.d.ts.map +1 -1
  375. package/lib/node/events/types.js +0 -2
  376. package/lib/node/events/webSocketLogProvider.d.ts +2 -2
  377. package/lib/node/events/webSocketLogProvider.d.ts.map +1 -1
  378. package/lib/node/events/webSocketLogProvider.js +5 -2
  379. package/lib/node/factory/bigNum.js +1 -1
  380. package/lib/node/idl/velocity.d.ts +1243 -1586
  381. package/lib/node/idl/velocity.d.ts.map +1 -1
  382. package/lib/node/idl/velocity.json +1234 -1577
  383. package/lib/node/index.d.ts +0 -2
  384. package/lib/node/index.d.ts.map +1 -1
  385. package/lib/node/index.js +0 -2
  386. package/lib/node/jupiter/jupiterClient.d.ts +1 -1
  387. package/lib/node/jupiter/jupiterClient.d.ts.map +1 -1
  388. package/lib/node/jupiter/jupiterClient.js +18 -8
  389. package/lib/node/marginCalculation.d.ts.map +1 -1
  390. package/lib/node/marginCalculation.js +1 -0
  391. package/lib/node/math/amm.d.ts +31 -13
  392. package/lib/node/math/amm.d.ts.map +1 -1
  393. package/lib/node/math/amm.js +77 -22
  394. package/lib/node/math/bankruptcy.js +1 -1
  395. package/lib/node/math/funding.d.ts.map +1 -1
  396. package/lib/node/math/funding.js +6 -6
  397. package/lib/node/math/insurance.d.ts +1 -1
  398. package/lib/node/math/insurance.d.ts.map +1 -1
  399. package/lib/node/math/insurance.js +4 -5
  400. package/lib/node/math/margin.d.ts +1 -9
  401. package/lib/node/math/margin.d.ts.map +1 -1
  402. package/lib/node/math/margin.js +3 -62
  403. package/lib/node/math/market.d.ts +4 -12
  404. package/lib/node/math/market.d.ts.map +1 -1
  405. package/lib/node/math/market.js +6 -40
  406. package/lib/node/math/oracles.d.ts +0 -3
  407. package/lib/node/math/oracles.d.ts.map +1 -1
  408. package/lib/node/math/oracles.js +1 -14
  409. package/lib/node/math/orders.d.ts +0 -5
  410. package/lib/node/math/orders.d.ts.map +1 -1
  411. package/lib/node/math/orders.js +2 -74
  412. package/lib/node/math/position.d.ts +1 -5
  413. package/lib/node/math/position.d.ts.map +1 -1
  414. package/lib/node/math/position.js +5 -10
  415. package/lib/node/math/repeg.d.ts +0 -1
  416. package/lib/node/math/repeg.d.ts.map +1 -1
  417. package/lib/node/math/repeg.js +1 -23
  418. package/lib/node/math/spotBalance.d.ts +4 -4
  419. package/lib/node/math/spotBalance.d.ts.map +1 -1
  420. package/lib/node/math/spotBalance.js +6 -6
  421. package/lib/node/math/spotMarket.d.ts +0 -6
  422. package/lib/node/math/spotMarket.d.ts.map +1 -1
  423. package/lib/node/math/spotMarket.js +1 -16
  424. package/lib/node/math/spotPosition.d.ts +4 -4
  425. package/lib/node/math/spotPosition.d.ts.map +1 -1
  426. package/lib/node/math/state.d.ts +0 -2
  427. package/lib/node/math/state.d.ts.map +1 -1
  428. package/lib/node/math/state.js +1 -9
  429. package/lib/node/math/superStake.d.ts +3 -53
  430. package/lib/node/math/superStake.d.ts.map +1 -1
  431. package/lib/node/math/superStake.js +16 -13
  432. package/lib/node/math/trade.d.ts +2 -2
  433. package/lib/node/math/trade.d.ts.map +1 -1
  434. package/lib/node/math/trade.js +6 -6
  435. package/lib/node/memcmp.d.ts +0 -1
  436. package/lib/node/memcmp.d.ts.map +1 -1
  437. package/lib/node/memcmp.js +1 -10
  438. package/lib/node/oracles/oracleClientCache.d.ts +1 -1
  439. package/lib/node/oracles/prelaunchOracleClient.d.ts.map +1 -1
  440. package/lib/node/oracles/prelaunchOracleClient.js +3 -2
  441. package/lib/node/oracles/pythClient.d.ts.map +1 -1
  442. package/lib/node/oracles/pythClient.js +9 -3
  443. package/lib/node/oracles/pythLazerClient.d.ts.map +1 -1
  444. package/lib/node/oracles/pythLazerClient.js +3 -2
  445. package/lib/node/oracles/utils.d.ts +4 -0
  446. package/lib/node/oracles/utils.d.ts.map +1 -1
  447. package/lib/node/oracles/utils.js +9 -1
  448. package/lib/node/orderSubscriber/OrderSubscriber.d.ts +1 -1
  449. package/lib/node/orderSubscriber/OrderSubscriber.d.ts.map +1 -1
  450. package/lib/node/orderSubscriber/OrderSubscriber.js +8 -2
  451. package/lib/node/priorityFee/heliusPriorityFeeMethod.d.ts +1 -1
  452. package/lib/node/priorityFee/heliusPriorityFeeMethod.d.ts.map +1 -1
  453. package/lib/node/priorityFee/priorityFeeSubscriber.d.ts +1 -1
  454. package/lib/node/priorityFee/priorityFeeSubscriber.d.ts.map +1 -1
  455. package/lib/node/priorityFee/priorityFeeSubscriber.js +32 -8
  456. package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts +1 -1
  457. package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts.map +1 -1
  458. package/lib/node/pyth/types.d.ts +0 -1
  459. package/lib/node/pyth/types.d.ts.map +1 -1
  460. package/lib/node/slot/SlotSubscriber.d.ts +1 -1
  461. package/lib/node/slot/SlotSubscriber.d.ts.map +1 -1
  462. package/lib/node/slot/SlotSubscriber.js +2 -1
  463. package/lib/node/slot/SlothashSubscriber.d.ts +3 -2
  464. package/lib/node/slot/SlothashSubscriber.d.ts.map +1 -1
  465. package/lib/node/slot/SlothashSubscriber.js +11 -4
  466. package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.d.ts +0 -3
  467. package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.d.ts.map +1 -1
  468. package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.js +5 -5
  469. package/lib/node/swift/signedMsgUserAccountSubscriber.d.ts +3 -2
  470. package/lib/node/swift/signedMsgUserAccountSubscriber.d.ts.map +1 -1
  471. package/lib/node/swift/signedMsgUserAccountSubscriber.js +13 -5
  472. package/lib/node/swift/swiftOrderSubscriber.d.ts +1 -1
  473. package/lib/node/swift/swiftOrderSubscriber.d.ts.map +1 -1
  474. package/lib/node/swift/swiftOrderSubscriber.js +10 -5
  475. package/lib/node/testClient.js +3 -2
  476. package/lib/node/tokenFaucet.d.ts.map +1 -1
  477. package/lib/node/tokenFaucet.js +16 -2
  478. package/lib/node/tx/baseTxSender.d.ts +4 -4
  479. package/lib/node/tx/baseTxSender.d.ts.map +1 -1
  480. package/lib/node/tx/baseTxSender.js +5 -4
  481. package/lib/node/tx/fastSingleTxSender.d.ts +3 -3
  482. package/lib/node/tx/fastSingleTxSender.d.ts.map +1 -1
  483. package/lib/node/tx/fastSingleTxSender.js +9 -5
  484. package/lib/node/tx/reportTransactionError.d.ts +2 -2
  485. package/lib/node/tx/reportTransactionError.d.ts.map +1 -1
  486. package/lib/node/tx/reportTransactionError.js +5 -1
  487. package/lib/node/tx/retryTxSender.d.ts +1 -1
  488. package/lib/node/tx/retryTxSender.d.ts.map +1 -1
  489. package/lib/node/tx/retryTxSender.js +4 -2
  490. package/lib/node/tx/txHandler.d.ts +9 -3
  491. package/lib/node/tx/txHandler.d.ts.map +1 -1
  492. package/lib/node/tx/txHandler.js +54 -40
  493. package/lib/node/tx/txParamProcessor.d.ts +4 -1
  494. package/lib/node/tx/txParamProcessor.d.ts.map +1 -1
  495. package/lib/node/tx/txParamProcessor.js +6 -0
  496. package/lib/node/tx/types.d.ts +1 -1
  497. package/lib/node/tx/types.d.ts.map +1 -1
  498. package/lib/node/tx/whileValidTxSender.d.ts +1 -6
  499. package/lib/node/tx/whileValidTxSender.d.ts.map +1 -1
  500. package/lib/node/tx/whileValidTxSender.js +35 -13
  501. package/lib/node/types.d.ts +25 -68
  502. package/lib/node/types.d.ts.map +1 -1
  503. package/lib/node/types.js +2 -2
  504. package/lib/node/user.d.ts +21 -7
  505. package/lib/node/user.d.ts.map +1 -1
  506. package/lib/node/user.js +156 -132
  507. package/lib/node/userMap/WebsocketSubscription.d.ts +1 -1
  508. package/lib/node/userMap/WebsocketSubscription.d.ts.map +1 -1
  509. package/lib/node/userMap/grpcSubscription.d.ts +1 -1
  510. package/lib/node/userMap/grpcSubscription.d.ts.map +1 -1
  511. package/lib/node/userMap/referrerMap.d.ts.map +1 -1
  512. package/lib/node/userMap/referrerMap.js +10 -3
  513. package/lib/node/userMap/revenueShareEscrowMap.d.ts.map +1 -1
  514. package/lib/node/userMap/revenueShareEscrowMap.js +4 -0
  515. package/lib/node/userMap/userMap.d.ts +1 -1
  516. package/lib/node/userMap/userMap.d.ts.map +1 -1
  517. package/lib/node/userMap/userMap.js +36 -23
  518. package/lib/node/userMap/userStatsMap.d.ts +1 -1
  519. package/lib/node/userMap/userStatsMap.d.ts.map +1 -1
  520. package/lib/node/userMap/userStatsMap.js +18 -13
  521. package/lib/node/userStats.d.ts +7 -2
  522. package/lib/node/userStats.d.ts.map +1 -1
  523. package/lib/node/userStats.js +18 -4
  524. package/lib/node/util/TransactionConfirmationManager.d.ts.map +1 -1
  525. package/lib/node/util/TransactionConfirmationManager.js +4 -2
  526. package/lib/node/util/chainClock.d.ts +1 -1
  527. package/lib/node/util/chainClock.d.ts.map +1 -1
  528. package/lib/node/util/computeUnits.d.ts +1 -1
  529. package/lib/node/util/computeUnits.d.ts.map +1 -1
  530. package/lib/node/util/computeUnits.js +6 -1
  531. package/lib/node/velocityClient.d.ts +93 -35
  532. package/lib/node/velocityClient.d.ts.map +1 -1
  533. package/lib/node/velocityClient.js +414 -280
  534. package/package.json +5 -3
  535. package/src/accounts/basicUserAccountSubscriber.ts +7 -5
  536. package/src/accounts/basicUserStatsAccountSubscriber.ts +9 -5
  537. package/src/accounts/bulkAccountLoader.ts +20 -7
  538. package/src/accounts/grpcAccountSubscriber.ts +11 -3
  539. package/src/accounts/grpcMultiAccountSubscriber.ts +24 -9
  540. package/src/accounts/grpcMultiUserAccountSubscriber.ts +16 -12
  541. package/src/accounts/grpcProgramAccountSubscriber.ts +11 -3
  542. package/src/accounts/grpcVelocityClientAccountSubscriber.ts +17 -7
  543. package/src/accounts/grpcVelocityClientAccountSubscriberV2.ts +66 -39
  544. package/src/accounts/laserProgramAccountSubscriber.ts +3 -0
  545. package/src/accounts/oneShotUserAccountSubscriber.ts +5 -3
  546. package/src/accounts/oneShotUserStatsAccountSubscriber.ts +8 -3
  547. package/src/accounts/pollingInsuranceFundStakeAccountSubscriber.ts +11 -5
  548. package/src/accounts/pollingOracleAccountSubscriber.ts +17 -10
  549. package/src/accounts/pollingTokenAccountSubscriber.ts +17 -10
  550. package/src/accounts/pollingUserAccountSubscriber.ts +26 -20
  551. package/src/accounts/pollingUserStatsAccountSubscriber.ts +12 -10
  552. package/src/accounts/pollingVelocityClientAccountSubscriber.ts +76 -30
  553. package/src/accounts/types.ts +6 -4
  554. package/src/accounts/utils.ts +10 -0
  555. package/src/accounts/webSocketAccountSubscriber.ts +23 -10
  556. package/src/accounts/webSocketAccountSubscriberV2.ts +23 -8
  557. package/src/accounts/webSocketInsuranceFundStakeAccountSubscriber.ts +17 -2
  558. package/src/accounts/webSocketProgramAccountSubscriber.ts +29 -4
  559. package/src/accounts/webSocketProgramAccountSubscriberV2.ts +30 -4
  560. package/src/accounts/webSocketProgramAccountsSubscriberV2.ts +29 -4
  561. package/src/accounts/webSocketUserAccountSubscriber.ts +11 -2
  562. package/src/accounts/webSocketUserStatsAccountSubsriber.ts +15 -2
  563. package/src/accounts/webSocketVelocityClientAccountSubscriber.ts +76 -48
  564. package/src/accounts/webSocketVelocityClientAccountSubscriberV2.ts +74 -35
  565. package/src/accounts/websocketProgramUserAccountSubscriber.ts +1 -6
  566. package/src/addresses/marketAddresses.ts +3 -2
  567. package/src/addresses/pda.ts +0 -25
  568. package/src/adminClient.ts +273 -303
  569. package/src/auctionSubscriber/auctionSubscriber.ts +7 -5
  570. package/src/auctionSubscriber/auctionSubscriberGrpc.ts +12 -5
  571. package/src/bankrun/bankrunConnection.ts +83 -39
  572. package/src/blockhashSubscriber/BlockhashSubscriber.ts +5 -4
  573. package/src/clock/clockSubscriber.ts +10 -9
  574. package/src/config.ts +8 -3
  575. package/src/constants/index.ts +1 -2
  576. package/src/constants/numericConstants.ts +3 -3
  577. package/src/constituentMap/constituentMap.ts +8 -1
  578. package/src/constituentMap/pollingConstituentAccountSubscriber.ts +4 -2
  579. package/src/constituentMap/webSocketConstituentAccountSubscriber.ts +13 -4
  580. package/src/core/instructions/perpOrders.ts +14 -0
  581. package/src/core/remainingAccounts.ts +4 -4
  582. package/src/decode/user.ts +8 -1
  583. package/src/dlob/DLOB.ts +296 -172
  584. package/src/dlob/DLOBNode.ts +23 -3
  585. package/src/dlob/DLOBSubscriber.ts +51 -34
  586. package/src/dlob/NodeList.ts +8 -7
  587. package/src/dlob/orderBookLevels.ts +45 -25
  588. package/src/events/eventList.ts +4 -1
  589. package/src/events/eventSubscriber.ts +107 -49
  590. package/src/events/eventsServerLogProvider.ts +22 -13
  591. package/src/events/fetchLogs.ts +3 -3
  592. package/src/events/pollingLogProvider.ts +2 -2
  593. package/src/events/txEventCache.ts +8 -2
  594. package/src/events/types.ts +0 -8
  595. package/src/events/webSocketLogProvider.ts +5 -3
  596. package/src/factory/bigNum.ts +2 -2
  597. package/src/idl/velocity.json +1234 -1577
  598. package/src/idl/velocity.ts +1234 -1577
  599. package/src/index.ts +0 -2
  600. package/src/jupiter/jupiterClient.ts +30 -10
  601. package/src/marginCalculation.ts +1 -0
  602. package/src/math/amm.ts +188 -33
  603. package/src/math/bankruptcy.ts +1 -1
  604. package/src/math/funding.ts +7 -6
  605. package/src/math/insurance.ts +6 -8
  606. package/src/math/margin.ts +5 -112
  607. package/src/math/market.ts +6 -96
  608. package/src/math/oracles.ts +0 -17
  609. package/src/math/orders.ts +1 -110
  610. package/src/math/position.ts +4 -16
  611. package/src/math/repeg.ts +0 -29
  612. package/src/math/spotBalance.ts +14 -10
  613. package/src/math/spotMarket.ts +2 -28
  614. package/src/math/spotPosition.ts +4 -4
  615. package/src/math/state.ts +0 -8
  616. package/src/math/superStake.ts +19 -65
  617. package/src/math/trade.ts +2 -6
  618. package/src/memcmp.ts +0 -9
  619. package/src/oracles/prelaunchOracleClient.ts +7 -2
  620. package/src/oracles/pythClient.ts +12 -3
  621. package/src/oracles/pythLazerClient.ts +7 -2
  622. package/src/oracles/utils.ts +15 -0
  623. package/src/orderSubscriber/OrderSubscriber.ts +10 -4
  624. package/src/priorityFee/heliusPriorityFeeMethod.ts +1 -1
  625. package/src/priorityFee/priorityFeeSubscriber.ts +45 -9
  626. package/src/priorityFee/solanaPriorityFeeMethod.ts +1 -1
  627. package/src/pyth/types.ts +0 -2
  628. package/src/slot/SlotSubscriber.ts +3 -3
  629. package/src/slot/SlothashSubscriber.ts +17 -6
  630. package/src/swift/grpcSignedMsgUserAccountSubscriber.ts +5 -6
  631. package/src/swift/signedMsgUserAccountSubscriber.ts +16 -8
  632. package/src/swift/swiftOrderSubscriber.ts +10 -9
  633. package/src/testClient.ts +2 -2
  634. package/src/tokenFaucet.ts +22 -3
  635. package/src/tx/baseTxSender.ts +10 -10
  636. package/src/tx/fastSingleTxSender.ts +12 -8
  637. package/src/tx/reportTransactionError.ts +12 -7
  638. package/src/tx/retryTxSender.ts +6 -4
  639. package/src/tx/txHandler.ts +88 -43
  640. package/src/tx/txParamProcessor.ts +18 -3
  641. package/src/tx/types.ts +1 -1
  642. package/src/tx/whileValidTxSender.ts +51 -22
  643. package/src/types.ts +39 -75
  644. package/src/user.ts +200 -152
  645. package/src/userMap/WebsocketSubscription.ts +1 -1
  646. package/src/userMap/grpcSubscription.ts +1 -1
  647. package/src/userMap/referrerMap.ts +13 -9
  648. package/src/userMap/revenueShareEscrowMap.ts +6 -1
  649. package/src/userMap/userMap.ts +43 -25
  650. package/src/userMap/userStatsMap.ts +32 -19
  651. package/src/userStats.ts +21 -8
  652. package/src/util/TransactionConfirmationManager.ts +10 -2
  653. package/src/util/chainClock.ts +1 -1
  654. package/src/util/computeUnits.ts +7 -3
  655. package/src/velocityClient.ts +536 -383
  656. package/tests/amm/test.ts +138 -0
  657. package/tests/dlob/helpers.ts +6 -1
  658. package/tsconfig.json +1 -0
  659. package/lib/browser/constants/insuranceFund.d.ts +0 -5
  660. package/lib/browser/constants/insuranceFund.js +0 -9
  661. package/lib/browser/tx/forwardOnlyTxSender.d.ts +0 -37
  662. package/lib/browser/tx/forwardOnlyTxSender.js +0 -92
  663. package/lib/browser/util/tps.d.ts +0 -2
  664. package/lib/browser/util/tps.js +0 -16
  665. package/lib/node/constants/insuranceFund.d.ts +0 -6
  666. package/lib/node/constants/insuranceFund.d.ts.map +0 -1
  667. package/lib/node/constants/insuranceFund.js +0 -9
  668. package/lib/node/tx/forwardOnlyTxSender.d.ts +0 -38
  669. package/lib/node/tx/forwardOnlyTxSender.d.ts.map +0 -1
  670. package/lib/node/tx/forwardOnlyTxSender.js +0 -92
  671. package/lib/node/util/tps.d.ts +0 -3
  672. package/lib/node/util/tps.d.ts.map +0 -1
  673. package/lib/node/util/tps.js +0 -16
  674. package/src/constants/insuranceFund.ts +0 -8
  675. package/src/tx/forwardOnlyTxSender.ts +0 -145
  676. package/src/util/tps.ts +0 -27
@@ -23,7 +23,18 @@ export class WebSocketUserStatsAccountSubscriber
23
23
  eventEmitter: StrictEventEmitter<EventEmitter, UserStatsAccountEvents>;
24
24
  userStatsAccountPublicKey: PublicKey;
25
25
 
26
- userStatsAccountSubscriber: AccountSubscriber<UserStatsAccount>;
26
+ private _userStatsAccountSubscriber?: AccountSubscriber<UserStatsAccount>;
27
+ get userStatsAccountSubscriber(): AccountSubscriber<UserStatsAccount> {
28
+ if (!this._userStatsAccountSubscriber) {
29
+ throw new Error('userStatsAccountSubscriber accessed before subscribe()');
30
+ }
31
+ return this._userStatsAccountSubscriber;
32
+ }
33
+ set userStatsAccountSubscriber(
34
+ subscriber: AccountSubscriber<UserStatsAccount>
35
+ ) {
36
+ this._userStatsAccountSubscriber = subscriber;
37
+ }
27
38
 
28
39
  public constructor(
29
40
  program: VelocityProgram,
@@ -91,7 +102,9 @@ export class WebSocketUserStatsAccountSubscriber
91
102
  }
92
103
  }
93
104
 
94
- public getUserStatsAccountAndSlot(): DataAndSlot<UserStatsAccount> {
105
+ public getUserStatsAccountAndSlot():
106
+ | DataAndSlot<UserStatsAccount>
107
+ | undefined {
95
108
  this.assertIsSubscribed();
96
109
  return this.userStatsAccountSubscriber.dataAndSlot;
97
110
  }
@@ -18,7 +18,7 @@ import {
18
18
  getSpotMarketPublicKeySync,
19
19
  } from '../addresses/pda';
20
20
  import { WebSocketAccountSubscriber } from './webSocketAccountSubscriber';
21
- import { Commitment, PublicKey } from '@solana/web3.js';
21
+ import { AccountInfo, Commitment, PublicKey } from '@solana/web3.js';
22
22
  import { OracleInfo, OraclePriceData } from '../oracles/types';
23
23
  import { OracleClientCache } from '../oracles/oracleClientCache';
24
24
  import * as Buffer from 'buffer';
@@ -86,9 +86,9 @@ export class WebSocketVelocityClientAccountSubscriber
86
86
  oracleSubscribers = new Map<string, AccountSubscriber<OraclePriceData>>();
87
87
  delistedMarketSetting: DelistedMarketSetting;
88
88
 
89
- initialPerpMarketAccountData: Map<number, PerpMarketAccount>;
90
- initialSpotMarketAccountData: Map<number, SpotMarketAccount>;
91
- initialOraclePriceData: Map<string, OraclePriceData>;
89
+ initialPerpMarketAccountData?: Map<number, PerpMarketAccount>;
90
+ initialSpotMarketAccountData?: Map<number, SpotMarketAccount>;
91
+ initialOraclePriceData?: Map<string, OraclePriceData>;
92
92
  customPerpMarketAccountSubscriber?: new (
93
93
  accountName: string,
94
94
  program: VelocityProgram,
@@ -107,8 +107,8 @@ export class WebSocketVelocityClientAccountSubscriber
107
107
  ) => AccountSubscriber<any>;
108
108
 
109
109
  protected isSubscribing = false;
110
- protected subscriptionPromise: Promise<boolean>;
111
- protected subscriptionPromiseResolver: (val: boolean) => void;
110
+ protected subscriptionPromiseResolver: (val: boolean) => void = () => {};
111
+ protected subscriptionPromise: Promise<boolean> = Promise.resolve(false);
112
112
 
113
113
  public constructor(
114
114
  program: VelocityProgram,
@@ -255,7 +255,9 @@ export class WebSocketVelocityClientAccountSubscriber
255
255
  ).flat();
256
256
  this.initialPerpMarketAccountData = new Map(
257
257
  perpMarketAccountInfos
258
- .filter((accountInfo) => !!accountInfo)
258
+ .filter(
259
+ (accountInfo): accountInfo is AccountInfo<Buffer> => !!accountInfo
260
+ )
259
261
  .map((accountInfo) => {
260
262
  const perpMarket = this.program.coder.accounts.decode(
261
263
  'perpMarket',
@@ -280,7 +282,9 @@ export class WebSocketVelocityClientAccountSubscriber
280
282
  ).flat();
281
283
  this.initialSpotMarketAccountData = new Map(
282
284
  spotMarketAccountInfos
283
- .filter((accountInfo) => !!accountInfo)
285
+ .filter(
286
+ (accountInfo): accountInfo is AccountInfo<Buffer> => !!accountInfo
287
+ )
284
288
  .map((accountInfo) => {
285
289
  const spotMarket = this.program.coder.accounts.decode(
286
290
  'spotMarket',
@@ -303,27 +307,34 @@ export class WebSocketVelocityClientAccountSubscriber
303
307
  )
304
308
  ).flat();
305
309
  this.initialOraclePriceData = new Map(
306
- this.oracleInfos.reduce((result, oracleInfo, i) => {
307
- if (!oracleAccountInfos[i]) {
310
+ this.oracleInfos.reduce(
311
+ (result, oracleInfo, i) => {
312
+ const oracleAccountInfo = oracleAccountInfos[i];
313
+ if (!oracleAccountInfo) {
314
+ return result;
315
+ }
316
+
317
+ const oracleClient = this.oracleClientCache.get(
318
+ oracleInfo.source,
319
+ connection,
320
+ this.program
321
+ );
322
+ if (!oracleClient) {
323
+ return result;
324
+ }
325
+
326
+ const oraclePriceData = oracleClient.getOraclePriceDataFromBuffer(
327
+ oracleAccountInfo.data
328
+ );
329
+
330
+ result.push([
331
+ getOracleId(oracleInfo.publicKey, oracleInfo.source),
332
+ oraclePriceData,
333
+ ]);
308
334
  return result;
309
- }
310
-
311
- const oracleClient = this.oracleClientCache.get(
312
- oracleInfo.source,
313
- connection,
314
- this.program
315
- );
316
-
317
- const oraclePriceData = oracleClient.getOraclePriceDataFromBuffer(
318
- oracleAccountInfos[i].data
319
- );
320
-
321
- result.push([
322
- getOracleId(oracleInfo.publicKey, oracleInfo.source),
323
- oraclePriceData,
324
- ]);
325
- return result;
326
- }, [])
335
+ },
336
+ [] as [string, OraclePriceData][]
337
+ )
327
338
  );
328
339
  }
329
340
 
@@ -358,7 +369,7 @@ export class WebSocketVelocityClientAccountSubscriber
358
369
  this.commitment
359
370
  );
360
371
  const initialPerpMarketData =
361
- this.initialPerpMarketAccountData.get(marketIndex);
372
+ this.initialPerpMarketAccountData?.get(marketIndex);
362
373
  if (initialPerpMarketData) {
363
374
  accountSubscriber.setData(initialPerpMarketData);
364
375
  }
@@ -394,7 +405,7 @@ export class WebSocketVelocityClientAccountSubscriber
394
405
  this.commitment
395
406
  );
396
407
  const initialSpotMarketData =
397
- this.initialSpotMarketAccountData.get(marketIndex);
408
+ this.initialSpotMarketAccountData?.get(marketIndex);
398
409
  if (initialSpotMarketData) {
399
410
  accountSubscriber.setData(initialSpotMarketData);
400
411
  }
@@ -424,6 +435,9 @@ export class WebSocketVelocityClientAccountSubscriber
424
435
  this.program.provider.connection,
425
436
  this.program
426
437
  );
438
+ if (!client) {
439
+ return false;
440
+ }
427
441
  const AccountSubscriberClass =
428
442
  this.customOracleAccountSubscriber || WebSocketAccountSubscriber;
429
443
  const accountSubscriber = new AccountSubscriberClass<OraclePriceData>(
@@ -436,7 +450,7 @@ export class WebSocketVelocityClientAccountSubscriber
436
450
  this.resubOpts,
437
451
  this.commitment
438
452
  );
439
- const initialOraclePriceData = this.initialOraclePriceData.get(oracleId);
453
+ const initialOraclePriceData = this.initialOraclePriceData?.get(oracleId);
440
454
  if (initialOraclePriceData) {
441
455
  accountSubscriber.setData(initialOraclePriceData);
442
456
  }
@@ -484,6 +498,10 @@ export class WebSocketVelocityClientAccountSubscriber
484
498
  return;
485
499
  }
486
500
 
501
+ if (!this.stateAccountSubscriber) {
502
+ return;
503
+ }
504
+
487
505
  const promises = [this.stateAccountSubscriber.fetch()]
488
506
  .concat(
489
507
  Array.from(this.perpMarketAccountSubscribers.values()).map(
@@ -504,7 +522,7 @@ export class WebSocketVelocityClientAccountSubscriber
504
522
  return;
505
523
  }
506
524
 
507
- await this.stateAccountSubscriber.unsubscribe();
525
+ await this.stateAccountSubscriber?.unsubscribe();
508
526
 
509
527
  await this.unsubscribeFromMarketAccounts();
510
528
  await this.unsubscribeFromSpotMarketAccounts();
@@ -607,7 +625,7 @@ export class WebSocketVelocityClientAccountSubscriber
607
625
  for (const perpMarketIndex of perpMarketIndexes) {
608
626
  await this.perpMarketAccountSubscribers
609
627
  .get(perpMarketIndex)
610
- .unsubscribe();
628
+ ?.unsubscribe();
611
629
  if (this.delistedMarketSetting === DelistedMarketSetting.Discard) {
612
630
  this.perpMarketAccountSubscribers.delete(perpMarketIndex);
613
631
  }
@@ -615,7 +633,7 @@ export class WebSocketVelocityClientAccountSubscriber
615
633
 
616
634
  for (const oracle of oracles) {
617
635
  const oracleId = getOracleId(oracle.publicKey, oracle.source);
618
- await this.oracleSubscribers.get(oracleId).unsubscribe();
636
+ await this.oracleSubscribers.get(oracleId)?.unsubscribe();
619
637
  if (this.delistedMarketSetting === DelistedMarketSetting.Discard) {
620
638
  this.oracleSubscribers.delete(oracleId);
621
639
  }
@@ -632,33 +650,43 @@ export class WebSocketVelocityClientAccountSubscriber
632
650
 
633
651
  public getStateAccountAndSlot(): DataAndSlot<StateAccount> {
634
652
  this.assertIsSubscribed();
635
- return this.stateAccountSubscriber.dataAndSlot;
653
+ const dataAndSlot = this.stateAccountSubscriber?.dataAndSlot;
654
+ if (!dataAndSlot) {
655
+ throw new Error('State account data not available');
656
+ }
657
+ return dataAndSlot;
636
658
  }
637
659
 
638
660
  public getMarketAccountAndSlot(
639
661
  marketIndex: number
640
662
  ): DataAndSlot<PerpMarketAccount> | undefined {
641
663
  this.assertIsSubscribed();
642
- return this.perpMarketAccountSubscribers.get(marketIndex).dataAndSlot;
664
+ return this.perpMarketAccountSubscribers.get(marketIndex)?.dataAndSlot;
643
665
  }
644
666
 
645
667
  public getMarketAccountsAndSlots(): DataAndSlot<PerpMarketAccount>[] {
646
- return Array.from(this.perpMarketAccountSubscribers.values()).map(
647
- (subscriber) => subscriber.dataAndSlot
648
- );
668
+ return Array.from(this.perpMarketAccountSubscribers.values())
669
+ .map((subscriber) => subscriber.dataAndSlot)
670
+ .filter(
671
+ (dataAndSlot): dataAndSlot is DataAndSlot<PerpMarketAccount> =>
672
+ dataAndSlot !== undefined
673
+ );
649
674
  }
650
675
 
651
676
  public getSpotMarketAccountAndSlot(
652
677
  marketIndex: number
653
678
  ): DataAndSlot<SpotMarketAccount> | undefined {
654
679
  this.assertIsSubscribed();
655
- return this.spotMarketAccountSubscribers.get(marketIndex).dataAndSlot;
680
+ return this.spotMarketAccountSubscribers.get(marketIndex)?.dataAndSlot;
656
681
  }
657
682
 
658
683
  public getSpotMarketAccountsAndSlots(): DataAndSlot<SpotMarketAccount>[] {
659
- return Array.from(this.spotMarketAccountSubscribers.values()).map(
660
- (subscriber) => subscriber.dataAndSlot
661
- );
684
+ return Array.from(this.spotMarketAccountSubscribers.values())
685
+ .map((subscriber) => subscriber.dataAndSlot)
686
+ .filter(
687
+ (dataAndSlot): dataAndSlot is DataAndSlot<SpotMarketAccount> =>
688
+ dataAndSlot !== undefined
689
+ );
662
690
  }
663
691
 
664
692
  public getOraclePriceDataAndSlot(
@@ -671,7 +699,7 @@ export class WebSocketVelocityClientAccountSubscriber
671
699
  slot: 0,
672
700
  };
673
701
  }
674
- return this.oracleSubscribers.get(oracleId).dataAndSlot;
702
+ return this.oracleSubscribers.get(oracleId)?.dataAndSlot;
675
703
  }
676
704
 
677
705
  public getOraclePriceDataAndSlotForPerpMarket(
@@ -684,8 +712,8 @@ export class WebSocketVelocityClientAccountSubscriber
684
712
  return undefined;
685
713
  }
686
714
 
687
- if (!perpMarketAccount.data.oracle.equals(oracle)) {
688
- // If the oracle has changed, we need to update the oracle map in background
715
+ if (!oracle || !perpMarketAccount.data.oracle.equals(oracle)) {
716
+ // If the oracle has changed (or not yet cached), update the oracle map in background
689
717
  this.setPerpOracleMap();
690
718
  }
691
719
 
@@ -702,8 +730,8 @@ export class WebSocketVelocityClientAccountSubscriber
702
730
  return undefined;
703
731
  }
704
732
 
705
- if (!spotMarketAccount.data.oracle.equals(oracle)) {
706
- // If the oracle has changed, we need to update the oracle map in background
733
+ if (!oracle || !spotMarketAccount.data.oracle.equals(oracle)) {
734
+ // If the oracle has changed (or not yet cached), update the oracle map in background
707
735
  this.setSpotOracleMap();
708
736
  }
709
737
 
@@ -7,6 +7,7 @@ import {
7
7
  NotSubscribedError,
8
8
  ResubOpts,
9
9
  } from './types';
10
+ import { assertDataAndSlot } from './utils';
10
11
  import {
11
12
  isVariant,
12
13
  PerpMarketAccount,
@@ -66,12 +67,38 @@ export class WebSocketVelocityClientAccountSubscriberV2
66
67
 
67
68
  eventEmitter: StrictEventEmitter<EventEmitter, VelocityClientAccountEvents>;
68
69
  stateAccountSubscriber?: WebSocketAccountSubscriberV2<StateAccount>;
69
- perpMarketAllAccountsSubscriber: WebSocketProgramAccountsSubscriberV2<PerpMarketAccount>;
70
+ private _perpMarketAllAccountsSubscriber?: WebSocketProgramAccountsSubscriberV2<PerpMarketAccount>;
71
+ get perpMarketAllAccountsSubscriber(): WebSocketProgramAccountsSubscriberV2<PerpMarketAccount> {
72
+ if (!this._perpMarketAllAccountsSubscriber) {
73
+ throw new Error(
74
+ 'perpMarketAllAccountsSubscriber accessed before subscribe()'
75
+ );
76
+ }
77
+ return this._perpMarketAllAccountsSubscriber;
78
+ }
79
+ set perpMarketAllAccountsSubscriber(
80
+ subscriber: WebSocketProgramAccountsSubscriberV2<PerpMarketAccount>
81
+ ) {
82
+ this._perpMarketAllAccountsSubscriber = subscriber;
83
+ }
70
84
  perpMarketAccountLatestData = new Map<
71
85
  number,
72
86
  DataAndSlot<PerpMarketAccount>
73
87
  >();
74
- spotMarketAllAccountsSubscriber: WebSocketProgramAccountsSubscriberV2<SpotMarketAccount>;
88
+ private _spotMarketAllAccountsSubscriber?: WebSocketProgramAccountsSubscriberV2<SpotMarketAccount>;
89
+ get spotMarketAllAccountsSubscriber(): WebSocketProgramAccountsSubscriberV2<SpotMarketAccount> {
90
+ if (!this._spotMarketAllAccountsSubscriber) {
91
+ throw new Error(
92
+ 'spotMarketAllAccountsSubscriber accessed before subscribe()'
93
+ );
94
+ }
95
+ return this._spotMarketAllAccountsSubscriber;
96
+ }
97
+ set spotMarketAllAccountsSubscriber(
98
+ subscriber: WebSocketProgramAccountsSubscriberV2<SpotMarketAccount>
99
+ ) {
100
+ this._spotMarketAllAccountsSubscriber = subscriber;
101
+ }
75
102
  spotMarketAccountLatestData = new Map<
76
103
  number,
77
104
  DataAndSlot<SpotMarketAccount>
@@ -83,13 +110,13 @@ export class WebSocketVelocityClientAccountSubscriberV2
83
110
  oracleSubscribers = new Map<string, AccountSubscriber<OraclePriceData>>();
84
111
  delistedMarketSetting: DelistedMarketSetting;
85
112
 
86
- initialPerpMarketAccountData: Map<number, PerpMarketAccount>;
87
- initialSpotMarketAccountData: Map<number, SpotMarketAccount>;
88
- initialOraclePriceData: Map<string, OraclePriceData>;
113
+ initialPerpMarketAccountData: Map<number, PerpMarketAccount> = new Map();
114
+ initialSpotMarketAccountData: Map<number, SpotMarketAccount> = new Map();
115
+ initialOraclePriceData: Map<string, OraclePriceData> = new Map();
89
116
 
90
117
  protected isSubscribing = false;
91
- protected subscriptionPromise: Promise<boolean>;
92
- protected subscriptionPromiseResolver: (val: boolean) => void;
118
+ private subscriptionPromiseResolver: (val: boolean) => void = () => {};
119
+ protected subscriptionPromise: Promise<boolean> = Promise.resolve(false);
93
120
 
94
121
  private rpc: Rpc<any>;
95
122
  private rpcSubscriptions: RpcSubscriptions<SolanaRpcSubscriptionsApi> &
@@ -349,9 +376,7 @@ export class WebSocketVelocityClientAccountSubscriberV2
349
376
  this.isSubscribed = true;
350
377
  this.isSubscribing = false;
351
378
  // Before calling subscriptionPromiseResolver, check if it's defined
352
- if (this.subscriptionPromiseResolver) {
353
- this.subscriptionPromiseResolver(true);
354
- }
379
+ this.subscriptionPromiseResolver(true);
355
380
 
356
381
  return true;
357
382
  } catch (error) {
@@ -415,27 +440,34 @@ export class WebSocketVelocityClientAccountSubscriberV2
415
440
  )
416
441
  ).flat();
417
442
  this.initialOraclePriceData = new Map(
418
- this.oracleInfos.reduce((result, oracleInfo, i) => {
419
- if (!oracleAccountInfos[i]) {
420
- return result;
421
- }
443
+ this.oracleInfos.reduce(
444
+ (result, oracleInfo, i) => {
445
+ const oracleAccountInfo = oracleAccountInfos[i];
446
+ if (!oracleAccountInfo) {
447
+ return result;
448
+ }
422
449
 
423
- const oracleClient = this.oracleClientCache.get(
424
- oracleInfo.source,
425
- connection,
426
- this.program
427
- );
450
+ const oracleClient = this.oracleClientCache.get(
451
+ oracleInfo.source,
452
+ connection,
453
+ this.program
454
+ );
455
+ if (!oracleClient) {
456
+ return result;
457
+ }
428
458
 
429
- const oraclePriceData = oracleClient.getOraclePriceDataFromBuffer(
430
- oracleAccountInfos[i].data
431
- );
459
+ const oraclePriceData = oracleClient.getOraclePriceDataFromBuffer(
460
+ oracleAccountInfo.data
461
+ );
432
462
 
433
- result.push([
434
- getOracleId(oracleInfo.publicKey, oracleInfo.source),
435
- oraclePriceData,
436
- ]);
437
- return result;
438
- }, [])
463
+ result.push([
464
+ getOracleId(oracleInfo.publicKey, oracleInfo.source),
465
+ oraclePriceData,
466
+ ]);
467
+ return result;
468
+ },
469
+ [] as [string, OraclePriceData][]
470
+ )
439
471
  );
440
472
  const oracleSetupEndTime = performance.now();
441
473
  const oracleSetupDuration = oracleSetupEndTime - oracleSetupStartTime;
@@ -503,6 +535,9 @@ export class WebSocketVelocityClientAccountSubscriberV2
503
535
  this.program.provider.connection,
504
536
  this.program
505
537
  );
538
+ if (!client) {
539
+ return false;
540
+ }
506
541
  const accountSubscriber =
507
542
  new WebSocketAccountSubscriberV2<OraclePriceData>(
508
543
  'oracle',
@@ -653,8 +688,9 @@ export class WebSocketVelocityClientAccountSubscriberV2
653
688
 
654
689
  for (const oracle of oracles) {
655
690
  const oracleId = getOracleId(oracle.publicKey, oracle.source);
656
- if (this.oracleSubscribers.has(oracleId)) {
657
- await this.oracleSubscribers.get(oracleId).unsubscribe();
691
+ const subscriber = this.oracleSubscribers.get(oracleId);
692
+ if (subscriber) {
693
+ await subscriber.unsubscribe();
658
694
  if (this.delistedMarketSetting === DelistedMarketSetting.Discard) {
659
695
  this.oracleSubscribers.delete(oracleId);
660
696
  }
@@ -672,7 +708,10 @@ export class WebSocketVelocityClientAccountSubscriberV2
672
708
 
673
709
  public getStateAccountAndSlot(): DataAndSlot<StateAccount> {
674
710
  this.assertIsSubscribed();
675
- return this.stateAccountSubscriber.dataAndSlot;
711
+ return assertDataAndSlot(
712
+ this.stateAccountSubscriber?.dataAndSlot,
713
+ 'State account data not available'
714
+ );
676
715
  }
677
716
 
678
717
  public getMarketAccountAndSlot(
@@ -720,8 +759,8 @@ export class WebSocketVelocityClientAccountSubscriberV2
720
759
  return undefined;
721
760
  }
722
761
 
723
- if (!perpMarketAccount.data.oracle.equals(oracle)) {
724
- // If the oracle has changed, we need to update the oracle map in background
762
+ if (!oracle || !perpMarketAccount.data.oracle.equals(oracle)) {
763
+ // If the oracle has changed (or not yet cached), update the oracle map in background
725
764
  this.setPerpOracleMap();
726
765
  }
727
766
 
@@ -738,8 +777,8 @@ export class WebSocketVelocityClientAccountSubscriberV2
738
777
  return undefined;
739
778
  }
740
779
 
741
- if (!spotMarketAccount.data.oracle.equals(oracle)) {
742
- // If the oracle has changed, we need to update the oracle map in background
780
+ if (!oracle || !spotMarketAccount.data.oracle.equals(oracle)) {
781
+ // If the oracle has changed (or not yet cached), update the oracle map in background
743
782
  this.setSpotOracleMap();
744
783
  }
745
784
 
@@ -83,12 +83,7 @@ export class WebSocketProgramUserAccountSubscriber
83
83
  this.isSubscribed = false;
84
84
  }
85
85
 
86
- getUserAccountAndSlot(): DataAndSlot<UserAccount> {
87
- if (!this.userAccountAndSlot) {
88
- throw new NotSubscribedError(
89
- 'Must subscribe before getting user account data'
90
- );
91
- }
86
+ getUserAccountAndSlot(): DataAndSlot<UserAccount> | undefined {
92
87
  return this.userAccountAndSlot;
93
88
  }
94
89
  }
@@ -7,8 +7,9 @@ export async function getMarketAddress(
7
7
  marketIndex: number
8
8
  ): Promise<PublicKey> {
9
9
  const cacheKey = `${programId.toString()}-${marketIndex.toString()}`;
10
- if (CACHE.has(cacheKey)) {
11
- return CACHE.get(cacheKey);
10
+ const cached = CACHE.get(cacheKey);
11
+ if (cached !== undefined) {
12
+ return cached;
12
13
  }
13
14
 
14
15
  const publicKey = await getPerpMarketPublicKey(programId, marketIndex);
@@ -6,7 +6,6 @@
6
6
  */
7
7
  import { PublicKey } from '@solana/web3.js';
8
8
  import * as anchor from '../isomorphic/anchor';
9
- import { BN } from '../isomorphic/anchor';
10
9
  import {
11
10
  getAssociatedTokenAddress,
12
11
  TOKEN_2022_PROGRAM_ID,
@@ -229,15 +228,6 @@ export function getReferrerNamePublicKeySync(
229
228
  )[0];
230
229
  }
231
230
 
232
- export function getProtocolIfSharesTransferConfigPublicKey(
233
- programId: PublicKey
234
- ): PublicKey {
235
- return PublicKey.findProgramAddressSync(
236
- [Buffer.from(anchor.utils.bytes.utf8.encode('if_shares_transfer_config'))],
237
- programId
238
- )[0];
239
- }
240
-
241
231
  export function getPrelaunchOraclePublicKey(
242
232
  programId: PublicKey,
243
233
  marketIndex: number
@@ -277,21 +267,6 @@ export function getTokenProgramForSpotMarket(
277
267
  return TOKEN_PROGRAM_ID;
278
268
  }
279
269
 
280
- export function getIfRebalanceConfigPublicKey(
281
- programId: PublicKey,
282
- inMarketIndex: number,
283
- outMarketIndex: number
284
- ): PublicKey {
285
- return PublicKey.findProgramAddressSync(
286
- [
287
- Buffer.from(anchor.utils.bytes.utf8.encode('if_rebalance_config')),
288
- new BN(inMarketIndex).toArrayLike(Buffer, 'le', 2),
289
- new BN(outMarketIndex).toArrayLike(Buffer, 'le', 2),
290
- ],
291
- programId
292
- )[0];
293
- }
294
-
295
270
  export function getRevenueShareAccountPublicKey(
296
271
  programId: PublicKey,
297
272
  authority: PublicKey