@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
@@ -39,24 +39,24 @@ const RECENT_BLOCKHASH_STALE_TIME_MS = 2000; // Reuse blockhashes within this ti
39
39
  */
40
40
  class TxHandler {
41
41
  constructor(props) {
42
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
42
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
43
43
  this.blockHashToLastValidBlockHeightLookup = {};
44
44
  this.returnBlockHeightsWithSignedTxCallbackData = false;
45
- this.blockhashCommitment = config_1.DEFAULT_CONFIRMATION_OPTS.commitment;
45
+ this.blockhashCommitment = (_a = config_1.DEFAULT_CONFIRMATION_OPTS.commitment) !== null && _a !== void 0 ? _a : 'confirmed';
46
46
  this.getProps = (wallet, confirmationOpts) => [wallet !== null && wallet !== void 0 ? wallet : this.wallet, confirmationOpts !== null && confirmationOpts !== void 0 ? confirmationOpts : this.confirmationOptions];
47
47
  this.connection = props.connection;
48
48
  this.wallet = props.wallet;
49
49
  this.confirmationOptions = props.confirmationOptions;
50
50
  this.blockhashCommitment =
51
- (_e = (_d = (_b = (_a = props.confirmationOptions) === null || _a === void 0 ? void 0 : _a.preflightCommitment) !== null && _b !== void 0 ? _b : (_c = props === null || props === void 0 ? void 0 : props.connection) === null || _c === void 0 ? void 0 : _c.commitment) !== null && _d !== void 0 ? _d : this.blockhashCommitment) !== null && _e !== void 0 ? _e : 'confirmed';
52
- this.blockHashFetcher = ((_f = props === null || props === void 0 ? void 0 : props.config) === null || _f === void 0 ? void 0 : _f.blockhashCachingEnabled)
53
- ? new cachedBlockhashFetcher_1.CachedBlockhashFetcher(this.connection, this.blockhashCommitment, (_j = (_h = (_g = props === null || props === void 0 ? void 0 : props.config) === null || _g === void 0 ? void 0 : _g.blockhashCachingConfig) === null || _h === void 0 ? void 0 : _h.retryCount) !== null && _j !== void 0 ? _j : BLOCKHASH_FETCH_RETRY_COUNT, (_m = (_l = (_k = props === null || props === void 0 ? void 0 : props.config) === null || _k === void 0 ? void 0 : _k.blockhashCachingConfig) === null || _l === void 0 ? void 0 : _l.retrySleepTimeMs) !== null && _m !== void 0 ? _m : BLOCKHASH_FETCH_RETRY_SLEEP, (_q = (_p = (_o = props === null || props === void 0 ? void 0 : props.config) === null || _o === void 0 ? void 0 : _o.blockhashCachingConfig) === null || _p === void 0 ? void 0 : _p.staleCacheTimeMs) !== null && _q !== void 0 ? _q : RECENT_BLOCKHASH_STALE_TIME_MS)
51
+ (_f = (_e = (_c = (_b = props.confirmationOptions) === null || _b === void 0 ? void 0 : _b.preflightCommitment) !== null && _c !== void 0 ? _c : (_d = props === null || props === void 0 ? void 0 : props.connection) === null || _d === void 0 ? void 0 : _d.commitment) !== null && _e !== void 0 ? _e : this.blockhashCommitment) !== null && _f !== void 0 ? _f : 'confirmed';
52
+ this.blockHashFetcher = ((_g = props === null || props === void 0 ? void 0 : props.config) === null || _g === void 0 ? void 0 : _g.blockhashCachingEnabled)
53
+ ? new cachedBlockhashFetcher_1.CachedBlockhashFetcher(this.connection, this.blockhashCommitment, (_k = (_j = (_h = props === null || props === void 0 ? void 0 : props.config) === null || _h === void 0 ? void 0 : _h.blockhashCachingConfig) === null || _j === void 0 ? void 0 : _j.retryCount) !== null && _k !== void 0 ? _k : BLOCKHASH_FETCH_RETRY_COUNT, (_o = (_m = (_l = props === null || props === void 0 ? void 0 : props.config) === null || _l === void 0 ? void 0 : _l.blockhashCachingConfig) === null || _m === void 0 ? void 0 : _m.retrySleepTimeMs) !== null && _o !== void 0 ? _o : BLOCKHASH_FETCH_RETRY_SLEEP, (_r = (_q = (_p = props === null || props === void 0 ? void 0 : props.config) === null || _p === void 0 ? void 0 : _p.blockhashCachingConfig) === null || _q === void 0 ? void 0 : _q.staleCacheTimeMs) !== null && _r !== void 0 ? _r : RECENT_BLOCKHASH_STALE_TIME_MS)
54
54
  : new baseBlockhashFetcher_1.BaseBlockhashFetcher(this.connection, this.blockhashCommitment);
55
55
  // #Optionals
56
56
  this.returnBlockHeightsWithSignedTxCallbackData =
57
- (_s = (_r = props.opts) === null || _r === void 0 ? void 0 : _r.returnBlockHeightsWithSignedTxCallbackData) !== null && _s !== void 0 ? _s : false;
58
- this.onSignedCb = (_t = props.opts) === null || _t === void 0 ? void 0 : _t.onSignedCb;
59
- this.preSignedCb = (_u = props.opts) === null || _u === void 0 ? void 0 : _u.preSignedCb;
57
+ (_t = (_s = props.opts) === null || _s === void 0 ? void 0 : _s.returnBlockHeightsWithSignedTxCallbackData) !== null && _t !== void 0 ? _t : false;
58
+ this.onSignedCb = (_u = props.opts) === null || _u === void 0 ? void 0 : _u.onSignedCb;
59
+ this.preSignedCb = (_v = props.opts) === null || _v === void 0 ? void 0 : _v.preSignedCb;
60
60
  }
61
61
  getWallet() {
62
62
  return this.wallet;
@@ -80,6 +80,18 @@ class TxHandler {
80
80
  async getLatestBlockhashForTransaction() {
81
81
  return this.blockHashFetcher.getLatestBlockhash();
82
82
  }
83
+ /**
84
+ * Resolves a usable recent blockhash, preferring a caller-provided one and
85
+ * otherwise fetching the latest. Throws if no blockhash can be obtained,
86
+ * since a transaction cannot be built or signed without one.
87
+ */
88
+ async resolveRecentBlockhash(recentBlockhash) {
89
+ const resolved = recentBlockhash !== null && recentBlockhash !== void 0 ? recentBlockhash : (await this.getLatestBlockhashForTransaction());
90
+ if (!resolved) {
91
+ throw new Error('TxHandler: failed to fetch a recent blockhash');
92
+ }
93
+ return resolved;
94
+ }
83
95
  /**
84
96
  * Applies recent blockhash and signs a given transaction
85
97
  * @param tx
@@ -96,14 +108,12 @@ class TxHandler {
96
108
  }
97
109
  [wallet, confirmationOpts] = this.getProps(wallet, confirmationOpts);
98
110
  tx.feePayer = wallet.publicKey;
99
- recentBlockhash = recentBlockhash
100
- ? recentBlockhash
101
- : await this.getLatestBlockhashForTransaction();
102
- tx.recentBlockhash = recentBlockhash.blockhash;
103
- this.addHashAndExpiryToLookup(recentBlockhash);
111
+ const resolvedBlockhash = await this.resolveRecentBlockhash(recentBlockhash);
112
+ tx.recentBlockhash = resolvedBlockhash.blockhash;
113
+ this.addHashAndExpiryToLookup(resolvedBlockhash);
104
114
  const signedTx = await this.signTx(tx, additionalSigners);
105
115
  // @ts-ignore
106
- signedTx.SIGNATURE_BLOCK_AND_EXPIRY = recentBlockhash;
116
+ signedTx.SIGNATURE_BLOCK_AND_EXPIRY = resolvedBlockhash;
107
117
  return signedTx;
108
118
  }
109
119
  isVersionedTransaction(tx) {
@@ -117,16 +127,21 @@ class TxHandler {
117
127
  return bs58_1.default.encode(Buffer.from(signedTx.signatures[0]));
118
128
  }
119
129
  else {
120
- return bs58_1.default.encode(Buffer.from(signedTx.signature));
130
+ const signature = signedTx.signature;
131
+ if (!signature) {
132
+ throw new Error('TxHandler: cannot derive txSig from an unsigned legacy transaction');
133
+ }
134
+ return bs58_1.default.encode(Buffer.from(signature));
121
135
  }
122
136
  }
123
137
  getBlockhashFromSignedTx(signedTx) {
124
- if (this.isVersionedTransaction(signedTx)) {
125
- return signedTx.message.recentBlockhash;
126
- }
127
- else {
128
- return signedTx.recentBlockhash;
138
+ const blockHash = this.isVersionedTransaction(signedTx)
139
+ ? signedTx.message.recentBlockhash
140
+ : signedTx.recentBlockhash;
141
+ if (!blockHash) {
142
+ throw new Error('TxHandler: signed transaction is missing a recentBlockhash');
129
143
  }
144
+ return blockHash;
130
145
  }
131
146
  async signTx(tx, additionalSigners, wallet) {
132
147
  var _a;
@@ -180,7 +195,7 @@ class TxHandler {
180
195
  if (this.onSignedCb) {
181
196
  this.onSignedCb(txData);
182
197
  }
183
- return;
198
+ return [];
184
199
  }
185
200
  const signedTxData = txData.map((tx) => {
186
201
  const lastValidBlockHeight = this.blockHashToLastValidBlockHeightLookup[tx.blockHash];
@@ -200,7 +215,7 @@ class TxHandler {
200
215
  * @returns
201
216
  */
202
217
  async getProcessedTransactionParams(txBuildingProps) {
203
- var _a, _b;
218
+ var _a, _b, _c, _d, _e, _f;
204
219
  const baseTxParams = {
205
220
  computeUnits: (_a = txBuildingProps === null || txBuildingProps === void 0 ? void 0 : txBuildingProps.txParams) === null || _a === void 0 ? void 0 : _a.computeUnits,
206
221
  computeUnitsPrice: (_b = txBuildingProps === null || txBuildingProps === void 0 ? void 0 : txBuildingProps.txParams) === null || _b === void 0 ? void 0 : _b.computeUnitsPrice,
@@ -216,11 +231,10 @@ class TxHandler {
216
231
  });
217
232
  },
218
233
  processConfig: {
219
- useSimulatedComputeUnits: txBuildingProps.txParams.useSimulatedComputeUnits,
220
- computeUnitsBufferMultiplier: txBuildingProps.txParams.computeUnitsBufferMultiplier,
221
- useSimulatedComputeUnitsForCUPriceCalculation: txBuildingProps.txParams
222
- .useSimulatedComputeUnitsForCUPriceCalculation,
223
- getCUPriceFromComputeUnits: txBuildingProps.txParams.getCUPriceFromComputeUnits,
234
+ useSimulatedComputeUnits: (_c = txBuildingProps.txParams) === null || _c === void 0 ? void 0 : _c.useSimulatedComputeUnits,
235
+ computeUnitsBufferMultiplier: (_d = txBuildingProps.txParams) === null || _d === void 0 ? void 0 : _d.computeUnitsBufferMultiplier,
236
+ useSimulatedComputeUnitsForCUPriceCalculation: (_e = txBuildingProps.txParams) === null || _e === void 0 ? void 0 : _e.useSimulatedComputeUnitsForCUPriceCalculation,
237
+ getCUPriceFromComputeUnits: (_f = txBuildingProps.txParams) === null || _f === void 0 ? void 0 : _f.getCUPriceFromComputeUnits,
224
238
  },
225
239
  processParams: {
226
240
  connection: this.connection,
@@ -270,8 +284,7 @@ class TxHandler {
270
284
  * @returns
271
285
  */
272
286
  async buildBulkTransactions(props) {
273
- var _a;
274
- const recentBlockhash = (_a = props === null || props === void 0 ? void 0 : props.recentBlockhash) !== null && _a !== void 0 ? _a : (await this.getLatestBlockhashForTransaction());
287
+ const recentBlockhash = await this.resolveRecentBlockhash(props === null || props === void 0 ? void 0 : props.recentBlockhash);
275
288
  return await Promise.all(props.instructions.map((ix) => {
276
289
  if (!ix)
277
290
  return undefined;
@@ -292,7 +305,6 @@ class TxHandler {
292
305
  * @returns
293
306
  */
294
307
  async buildTransaction(props) {
295
- var _a;
296
308
  const { txVersion, txParams, connection: _connection, preFlightCommitment: _preFlightCommitment, fetchAllMarketLookupTableAccounts, forceVersionedTransaction, instructions, } = props;
297
309
  let { lookupTables } = props;
298
310
  const marketLookupTables = await fetchAllMarketLookupTableAccounts();
@@ -339,7 +351,9 @@ class TxHandler {
339
351
  // # Create Tx Instructions
340
352
  const allIx = [];
341
353
  const computeUnits = baseTxParams === null || baseTxParams === void 0 ? void 0 : baseTxParams.computeUnits;
342
- if (computeUnits > 0 && !hasSetComputeUnitLimitIx) {
354
+ if (computeUnits !== undefined &&
355
+ computeUnits > 0 &&
356
+ !hasSetComputeUnitLimitIx) {
343
357
  allIx.push(web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({
344
358
  units: computeUnits,
345
359
  }));
@@ -350,13 +364,15 @@ class TxHandler {
350
364
  microLamports: 0,
351
365
  }));
352
366
  }
353
- else if (computeUnitsPrice > 0 && !hasSetComputeUnitPriceIx) {
367
+ else if (computeUnitsPrice !== undefined &&
368
+ computeUnitsPrice > 0 &&
369
+ !hasSetComputeUnitPriceIx) {
354
370
  allIx.push(web3_js_1.ComputeBudgetProgram.setComputeUnitPrice({
355
371
  microLamports: computeUnitsPrice,
356
372
  }));
357
373
  }
358
374
  allIx.push(...instructionsToUse);
359
- const recentBlockhash = (_a = props === null || props === void 0 ? void 0 : props.recentBlockhash) !== null && _a !== void 0 ? _a : (await this.getLatestBlockhashForTransaction());
375
+ const recentBlockhash = await this.resolveRecentBlockhash(props === null || props === void 0 ? void 0 : props.recentBlockhash);
360
376
  // # Create and return Transaction
361
377
  if (txVersion === 'legacy') {
362
378
  if (forceVersionedTransaction) {
@@ -399,17 +415,15 @@ class TxHandler {
399
415
  */
400
416
  async getPreparedAndSignedLegacyTransactionMap(txsMap, wallet, commitment, recentBlockhash) {
401
417
  var _a, _b;
402
- recentBlockhash = recentBlockhash
403
- ? recentBlockhash
404
- : await this.getLatestBlockhashForTransaction();
405
- this.addHashAndExpiryToLookup(recentBlockhash);
418
+ const resolvedBlockhash = await this.resolveRecentBlockhash(recentBlockhash);
419
+ this.addHashAndExpiryToLookup(resolvedBlockhash);
406
420
  for (const tx of Object.values(txsMap)) {
407
421
  if (!tx)
408
422
  continue;
409
- tx.recentBlockhash = recentBlockhash.blockhash;
423
+ tx.recentBlockhash = resolvedBlockhash.blockhash;
410
424
  tx.feePayer = (_a = wallet === null || wallet === void 0 ? void 0 : wallet.publicKey) !== null && _a !== void 0 ? _a : (_b = this.wallet) === null || _b === void 0 ? void 0 : _b.publicKey;
411
425
  // @ts-ignore
412
- tx.SIGNATURE_BLOCK_AND_EXPIRY = recentBlockhash;
426
+ tx.SIGNATURE_BLOCK_AND_EXPIRY = resolvedBlockhash;
413
427
  }
414
428
  return this.getSignedTransactionMap(txsMap, wallet);
415
429
  }
@@ -429,7 +443,7 @@ class TxHandler {
429
443
  acc[key] = undefined;
430
444
  return acc;
431
445
  }, {});
432
- const filteredTxEntries = txsToSignEntries.filter(([_, tx]) => !!tx);
446
+ const filteredTxEntries = txsToSignEntries.filter((entry) => !!entry[1]);
433
447
  // Extra handling for legacy transactions
434
448
  for (const [_key, tx] of filteredTxEntries) {
435
449
  if (this.isLegacyTransaction(tx)) {
@@ -10,8 +10,11 @@ export declare class TransactionParamProcessor {
10
10
  private static getComputeUnitsFromSim;
11
11
  static getTxSimComputeUnits(tx: VersionedTransaction, connection: Connection, bufferMultiplier: number, // Making this a mandatory param to force the user to remember that simulated CU's can be inaccurate and a buffer should be applied
12
12
  lowerBoundCu?: number, simulatedTx?: SimulatedTransactionResponse): Promise<{
13
- success: boolean;
13
+ success: true;
14
14
  computeUnits: number;
15
+ } | {
16
+ success: false;
17
+ computeUnits: undefined;
15
18
  }>;
16
19
  static process(props: {
17
20
  baseTxParams: BaseTxParams;
@@ -32,6 +32,9 @@ class TransactionParamProcessor {
32
32
  throw (_b = simTxResult === null || simTxResult === void 0 ? void 0 : simTxResult.value) === null || _b === void 0 ? void 0 : _b.err;
33
33
  }
34
34
  const computeUnits = await this.getComputeUnitsFromSim(simTxResult);
35
+ if (computeUnits === undefined) {
36
+ throw new Error('TransactionParamProcessor: simulation did not return units consumed');
37
+ }
35
38
  // Apply the buffer, but round down to the MAX_COMPUTE_UNITS, and round up to the nearest whole number
36
39
  let bufferedComputeUnits = Math.ceil(Math.min(computeUnits * bufferMultiplier, MAX_COMPUTE_UNITS));
37
40
  // If a lower bound CU is passed then enforce it
@@ -81,6 +84,9 @@ class TransactionParamProcessor {
81
84
  throw new Error(`encountered useSimulatedComputeUnitsForFees=true, but getComputeUnitPriceFromUnitsToUse helper method is undefined`);
82
85
  }
83
86
  const simulatedComputeUnits = finalTxParams.computeUnits;
87
+ if (simulatedComputeUnits === undefined) {
88
+ throw new Error(`encountered useSimulatedComputeUnitsForFees=true, but simulated compute units are unavailable (simulation likely failed)`);
89
+ }
84
90
  const computeUnitPrice = processConfig.getCUPriceFromComputeUnits(simulatedComputeUnits);
85
91
  console.debug(`🔧:: Adjusting compute unit price for simulated compute unit budget :: ${finalTxParams.computeUnitsPrice}=>${computeUnitPrice}`);
86
92
  finalTxParams.computeUnitsPrice = computeUnitPrice;
@@ -9,7 +9,7 @@ export declare enum ConfirmationStrategy {
9
9
  }
10
10
  export type TxSigAndSlot = {
11
11
  txSig: TransactionSignature;
12
- slot: number;
12
+ slot: number | undefined;
13
13
  };
14
14
  export interface TxSender {
15
15
  wallet: IWallet;
@@ -9,12 +9,7 @@ type ResolveReference = {
9
9
  resolve?: () => void;
10
10
  };
11
11
  export declare class WhileValidTxSender extends BaseTxSender {
12
- connection: Connection;
13
- wallet: IWallet;
14
- opts: ConfirmOptions;
15
- timeout: number;
16
12
  retrySleep: number;
17
- additionalConnections: Connection[];
18
13
  timoutCount: number;
19
14
  untilValid: Map<string, {
20
15
  blockhash: string;
@@ -27,7 +22,7 @@ export declare class WhileValidTxSender extends BaseTxSender {
27
22
  wallet: IWallet;
28
23
  opts?: ConfirmOptions;
29
24
  retrySleep?: number;
30
- additionalConnections?: any;
25
+ additionalConnections?: Connection[];
31
26
  additionalTxSenderCallbacks?: ((base58EncodedTx: string) => void)[];
32
27
  confirmationStrategy?: ConfirmationStrategy;
33
28
  txHandler?: TxHandler;
@@ -60,6 +60,9 @@ class WhileValidTxSender extends baseTxSender_1.BaseTxSender {
60
60
  async prepareTx(tx, additionalSigners, opts, preSigned) {
61
61
  var _a;
62
62
  let latestBlockhash = await this.txHandler.getLatestBlockhashForTransaction();
63
+ if (!latestBlockhash) {
64
+ throw new Error('WhileValidTxSender: failed to fetch latest blockhash for transaction');
65
+ }
63
66
  // handle tx
64
67
  let signedTx = tx;
65
68
  if (!preSigned) {
@@ -72,12 +75,22 @@ class WhileValidTxSender extends baseTxSender_1.BaseTxSender {
72
75
  latestBlockhash = tx.SIGNATURE_BLOCK_AND_EXPIRY;
73
76
  }
74
77
  // handle subclass-specific side effects
75
- const txSig = bs58_1.default.encode((signedTx === null || signedTx === void 0 ? void 0 : signedTx.signature) || ((_a = signedTx.signatures[0]) === null || _a === void 0 ? void 0 : _a.signature));
78
+ const signature = (signedTx === null || signedTx === void 0 ? void 0 : signedTx.signature) || ((_a = signedTx.signatures[0]) === null || _a === void 0 ? void 0 : _a.signature);
79
+ if (!signature) {
80
+ throw new Error('WhileValidTxSender: signed transaction is missing a signature');
81
+ }
82
+ const txSig = bs58_1.default.encode(signature);
83
+ if (!latestBlockhash) {
84
+ throw new Error('WhileValidTxSender: failed to resolve latest blockhash for transaction');
85
+ }
76
86
  this.untilValid.set(txSig, latestBlockhash);
77
87
  return signedTx;
78
88
  }
79
89
  async sendVersionedTransaction(tx, additionalSigners, opts, preSigned) {
80
90
  let latestBlockhash = await this.txHandler.getLatestBlockhashForTransaction();
91
+ if (!latestBlockhash) {
92
+ throw new Error('WhileValidTxSender: failed to fetch latest blockhash for transaction');
93
+ }
81
94
  let signedTx;
82
95
  if (preSigned) {
83
96
  signedTx = tx;
@@ -100,17 +113,24 @@ class WhileValidTxSender extends baseTxSender_1.BaseTxSender {
100
113
  additionalSigners === null || additionalSigners === void 0 ? void 0 : additionalSigners.filter((s) => s !== undefined).forEach((kp) => {
101
114
  tx.sign([kp]);
102
115
  });
103
- signedTx = await this.txHandler.signVersionedTx(tx, additionalSigners, latestBlockhash);
116
+ signedTx = await this.txHandler.signVersionedTx(tx, additionalSigners !== null && additionalSigners !== void 0 ? additionalSigners : [], latestBlockhash);
104
117
  }
105
118
  if (opts === undefined) {
106
119
  opts = this.opts;
107
120
  }
108
- const txSig = bs58_1.default.encode(signedTx.signatures[0]);
121
+ const signature = signedTx.signatures[0];
122
+ if (!signature) {
123
+ throw new Error('WhileValidTxSender: signed transaction is missing a signature');
124
+ }
125
+ const txSig = bs58_1.default.encode(signature);
126
+ if (!latestBlockhash) {
127
+ throw new Error('WhileValidTxSender: failed to resolve latest blockhash for transaction');
128
+ }
109
129
  this.untilValid.set(txSig, latestBlockhash);
110
130
  return this.sendRawTransaction(signedTx.serialize(), opts);
111
131
  }
112
132
  async sendRawTransaction(rawTransaction, opts) {
113
- var _a, _b, _c, _d;
133
+ var _a, _b, _c;
114
134
  const startTime = this.getTimestamp();
115
135
  const txid = await this.connection.sendRawTransaction(rawTransaction, opts);
116
136
  (_a = this.txSigCache) === null || _a === void 0 ? void 0 : _a.set(txid, false);
@@ -143,16 +163,18 @@ class WhileValidTxSender extends baseTxSender_1.BaseTxSender {
143
163
  try {
144
164
  const result = await this.confirmTransaction(txid, opts.commitment);
145
165
  (_b = this.txSigCache) === null || _b === void 0 ? void 0 : _b.set(txid, true);
146
- await this.checkConfirmationResultForError(txid, result === null || result === void 0 ? void 0 : result.value);
147
- if (((_c = result === null || result === void 0 ? void 0 : result.value) === null || _c === void 0 ? void 0 : _c.err) && this.throwOnTransactionError) {
148
- // Fallback error handling if there's a problem reporting the error in checkConfirmationResultForError
149
- throw new web3_js_1.SendTransactionError({
150
- action: 'send',
151
- signature: txid,
152
- transactionMessage: `Transaction Failed`,
153
- });
166
+ if (result) {
167
+ await this.checkConfirmationResultForError(txid, result.value);
168
+ if (((_c = result.value) === null || _c === void 0 ? void 0 : _c.err) && this.throwOnTransactionError) {
169
+ // Fallback error handling if there's a problem reporting the error in checkConfirmationResultForError
170
+ throw new web3_js_1.SendTransactionError({
171
+ action: 'send',
172
+ signature: txid,
173
+ transactionMessage: `Transaction Failed`,
174
+ });
175
+ }
176
+ slot = result.context.slot;
154
177
  }
155
- slot = (_d = result === null || result === void 0 ? void 0 : result.context) === null || _d === void 0 ? void 0 : _d.slot;
156
178
  // eslint-disable-next-line no-useless-catch
157
179
  }
158
180
  catch (e) {
@@ -1,4 +1,3 @@
1
- /// <reference types="bn.js" />
2
1
  /// <reference types="node" />
3
2
  /// <reference types="node" />
4
3
  /**
@@ -720,38 +719,6 @@ export type DeleteUserRecord = {
720
719
  subAccountId: number;
721
720
  keeper: PublicKey | null;
722
721
  };
723
- export type InsuranceFundSwapRecord = {
724
- rebalanceConfig: PublicKey;
725
- inIfTotalSharesBefore: BN;
726
- outIfTotalSharesBefore: BN;
727
- inIfUserSharesBefore: BN;
728
- outIfUserSharesBefore: BN;
729
- inIfTotalSharesAfter: BN;
730
- outIfTotalSharesAfter: BN;
731
- inIfUserSharesAfter: BN;
732
- outIfUserSharesAfter: BN;
733
- ts: BN;
734
- inAmount: BN;
735
- outAmount: BN;
736
- outOraclePrice: BN;
737
- outOraclePriceTwap: BN;
738
- inVaultAmountBefore: BN;
739
- outVaultAmountBefore: BN;
740
- inFundVaultAmountAfter: BN;
741
- outFundVaultAmountAfter: BN;
742
- inMarketIndex: number;
743
- outMarketIndex: number;
744
- };
745
- export type TransferProtocolIfSharesToRevenuePoolRecord = {
746
- ts: BN;
747
- marketIndex: number;
748
- amount: BN;
749
- shares: BN;
750
- ifVaultAmountBefore: BN;
751
- protocolSharesBefore: BN;
752
- protocolSharesAfter: BN;
753
- transferAmount: BN;
754
- };
755
722
  export type LPSwapRecord = {
756
723
  ts: BN;
757
724
  slot: BN;
@@ -833,13 +800,15 @@ export type StateAccount = {
833
800
  hotLpCache: PublicKey;
834
801
  hotLpSwap: PublicKey;
835
802
  hotLpSettle: PublicKey;
836
- hotIfRebalance: PublicKey;
837
803
  hotFeatureFlag: PublicKey;
838
804
  hotFuel: PublicKey;
839
805
  hotUserFlag: PublicKey;
840
806
  hotVaultDeposit: PublicKey;
841
807
  hotMmOracleCrank: PublicKey;
842
808
  hotAmmSpreadAdjust: PublicKey;
809
+ hotFeeWithdraw: PublicKey;
810
+ protocolFeeRecipientPerp: PublicKey;
811
+ protocolFeeRecipientSpot: PublicKey;
843
812
  exchangeStatus: number;
844
813
  whitelistMint: PublicKey;
845
814
  discountMint: PublicKey;
@@ -882,8 +851,12 @@ export type PerpMarketAccount = {
882
851
  nextFillRecordId: BN;
883
852
  nextFundingRateRecordId: BN;
884
853
  pnlPool: PoolBalance;
854
+ protocolFeePool: PoolBalance;
855
+ feeLedger: FeeLedger;
885
856
  liquidatorFee: number;
886
857
  ifLiquidationFee: number;
858
+ protocolLiquidationFee: number;
859
+ feePoolBufferTarget: BN;
887
860
  imfFactor: number;
888
861
  unrealizedPnlImfFactor: number;
889
862
  unrealizedPnlMaxImbalance: BN;
@@ -921,8 +894,6 @@ export type PerpMarketAccount = {
921
894
  quoteBreakEvenAmountShort: BN;
922
895
  totalSocialLoss: BN;
923
896
  maxOpenInterest: BN;
924
- totalExchangeFee: BN;
925
- totalLiquidationFee: BN;
926
897
  cumulativeFundingRateLong: BN;
927
898
  cumulativeFundingRateShort: BN;
928
899
  lastFundingRate: BN;
@@ -930,7 +901,6 @@ export type PerpMarketAccount = {
930
901
  lastFundingRateShort: BN;
931
902
  lastFundingRateTs: BN;
932
903
  netUnsettledFundingPnl: BN;
933
- lastFundingOracleTwap: BN;
934
904
  orderStepSize: BN;
935
905
  orderTickSize: BN;
936
906
  };
@@ -969,11 +939,13 @@ export type SpotMarketAccount = {
969
939
  unstakingPeriod: BN;
970
940
  lastRevenueSettleTs: BN;
971
941
  revenueSettlePeriod: BN;
972
- totalFactor: number;
973
- userFactor: number;
942
+ ifFeeFactor: number;
974
943
  };
975
944
  revenuePool: PoolBalance;
945
+ protocolFeePool: PoolBalance;
976
946
  ifLiquidationFee: number;
947
+ protocolLiquidationFee: number;
948
+ protocolFeeFactor: number;
977
949
  decimals: number;
978
950
  optimalUtilization: number;
979
951
  optimalBorrowRate: number;
@@ -1016,11 +988,20 @@ export type SpotMarketAccount = {
1016
988
  minBorrowRate: number;
1017
989
  tokenProgramFlag: number;
1018
990
  poolId: number;
991
+ feeAdjustment: number;
1019
992
  };
1020
993
  export type PoolBalance = {
1021
994
  scaledBalance: BN;
1022
995
  marketIndex: number;
1023
996
  };
997
+ export type FeeLedger = {
998
+ totalExchangeFee: BN;
999
+ totalLiquidationFee: BN;
1000
+ pendingProtocolFee: BN;
1001
+ pendingIfFee: BN;
1002
+ ammProtocolFeesReceived: BN;
1003
+ pendingAmmProvision: BN;
1004
+ };
1024
1005
  export type AMM = {
1025
1006
  feePool: PoolBalance;
1026
1007
  baseAssetReserve: BN;
@@ -1049,6 +1030,7 @@ export type AMM = {
1049
1030
  ammSpreadAdjustment: number;
1050
1031
  ammInventorySpreadAdjustment: number;
1051
1032
  referencePriceOffsetDeadbandPct: number;
1033
+ fundingBiasSensitivity: number;
1052
1034
  };
1053
1035
  export type MarketStats = {
1054
1036
  lastMarkPriceTwap: BN;
@@ -1072,6 +1054,7 @@ export type MarketStats = {
1072
1054
  lastOracleNormalisedPrice: BN;
1073
1055
  lastReferencePriceOffset: number;
1074
1056
  lastOracleValid: boolean;
1057
+ lastFundingOracleTwap: BN;
1075
1058
  historicalOracleData: HistoricalOracleData;
1076
1059
  };
1077
1060
  export type PerpPosition = {
@@ -1110,7 +1093,6 @@ export type UserStatsAccount = {
1110
1093
  referrerStatus: number;
1111
1094
  authority: PublicKey;
1112
1095
  ifStakedQuoteAssetAmount: BN;
1113
- ifStakedGovTokenAmount: BN;
1114
1096
  delegatePermissions: number;
1115
1097
  };
1116
1098
  export type UserAccount = {
@@ -1161,7 +1143,6 @@ export type Order = {
1161
1143
  marketIndex: number;
1162
1144
  price: BN;
1163
1145
  baseAssetAmount: BN;
1164
- quoteAssetAmount: BN;
1165
1146
  baseAssetAmountFilled: BN;
1166
1147
  quoteAssetAmountFilled: BN;
1167
1148
  direction: PositionDirection;
@@ -1276,7 +1257,7 @@ export type OptionalOrderParams = {
1276
1257
  export type ModifyOrderParams = {
1277
1258
  [Property in keyof OrderParams]?: OrderParams[Property] | null;
1278
1259
  } & {
1279
- policy?: ModifyOrderPolicy;
1260
+ policy?: ModifyOrderPolicy | null;
1280
1261
  };
1281
1262
  export declare enum ModifyOrderPolicy {
1282
1263
  MustModify = 1,
@@ -1378,7 +1359,8 @@ export type FeeStructure = {
1378
1359
  feeTiers: FeeTier[];
1379
1360
  fillerRewardStructure: OrderFillerRewardStructure;
1380
1361
  flatFillerFee: BN;
1381
- referrerRewardEpochUpperBound: BN;
1362
+ ammFeeNumerator: number;
1363
+ ifFeeNumerator: number;
1382
1364
  };
1383
1365
  export type FeeTier = {
1384
1366
  feeNumerator: number;
@@ -1486,32 +1468,6 @@ export type SignedTxData = {
1486
1468
  lastValidBlockHeight?: number;
1487
1469
  blockHash: string;
1488
1470
  };
1489
- export type IfRebalanceConfigAccount = {
1490
- pubkey: PublicKey;
1491
- totalInAmount: BN;
1492
- currentInAmount: BN;
1493
- currentOutAmount: BN;
1494
- currentOutAmountTransferred: BN;
1495
- epochStartTs: BN;
1496
- epochInAmount: BN;
1497
- epochMaxInAmount: BN;
1498
- epochDuration: BN;
1499
- outMarketIndex: number;
1500
- inMarketIndex: number;
1501
- maxSlippageBps: number;
1502
- swapMode: number;
1503
- status: number;
1504
- };
1505
- export type IfRebalanceConfigParams = {
1506
- totalInAmount: BN;
1507
- epochMaxInAmount: BN;
1508
- epochDuration: BN;
1509
- outMarketIndex: number;
1510
- inMarketIndex: number;
1511
- maxSlippageBps: number;
1512
- swapMode: number;
1513
- status: number;
1514
- };
1515
1471
  export interface SignedMsgOrderParams {
1516
1472
  /**
1517
1473
  * The encoded order params that were signed (borsh encoded then hexified).
@@ -290,12 +290,12 @@ exports.SettlePnlMode = SettlePnlMode;
290
290
  SettlePnlMode.TRY_SETTLE = { trySettle: {} };
291
291
  SettlePnlMode.MUST_SETTLE = { mustSettle: {} };
292
292
  function isVariant(object, type) {
293
- return object.hasOwnProperty(type);
293
+ return Object.prototype.hasOwnProperty.call(object, type);
294
294
  }
295
295
  exports.isVariant = isVariant;
296
296
  function isOneOfVariant(object, types) {
297
297
  return types.reduce((result, type) => {
298
- return result || object.hasOwnProperty(type);
298
+ return result || Object.prototype.hasOwnProperty.call(object, type);
299
299
  }, false);
300
300
  }
301
301
  exports.isOneOfVariant = isOneOfVariant;