@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
@@ -8,7 +8,6 @@ import {
8
8
  SPOT_MARKET_WEIGHT_PRECISION,
9
9
  SPOT_MARKET_IMF_PRECISION,
10
10
  ZERO,
11
- BID_ASK_SPREAD_PRECISION,
12
11
  AMM_RESERVE_PRECISION,
13
12
  BASE_PRECISION,
14
13
  MARGIN_PRECISION,
@@ -20,15 +19,7 @@ import { OraclePriceData } from '../oracles/types';
20
19
  import { calculateMarketMarginRatio } from './market';
21
20
  import { calculateScaledInitialAssetWeight } from './spotBalance';
22
21
  import { VelocityClient } from '../velocityClient';
23
- import { OneShotUserAccountSubscriber } from '../accounts/oneShotUserAccountSubscriber';
24
- import {
25
- PerpMarketAccount,
26
- PerpPosition,
27
- PositionDirection,
28
- UserAccount,
29
- } from '../types';
30
- import { PublicKey } from '@solana/web3.js';
31
- import { User } from '../user';
22
+ import { PerpMarketAccount, PerpPosition } from '../types';
32
23
  import { isVariant } from '../types';
33
24
  import { assert } from '../assert/assert';
34
25
 
@@ -97,32 +88,6 @@ export function calculateSizeDiscountAssetWeight(
97
88
  return minAssetWeight;
98
89
  }
99
90
 
100
- export function calculateOraclePriceForPerpMargin(
101
- perpPosition: PerpPosition,
102
- market: PerpMarketAccount,
103
- oraclePriceData: OraclePriceData
104
- ): BN {
105
- const oraclePriceOffset = BN.min(
106
- new BN(market.amm.maxSpread)
107
- .mul(oraclePriceData.price)
108
- .div(BID_ASK_SPREAD_PRECISION),
109
- oraclePriceData.confidence.add(
110
- new BN(market.amm.baseSpread)
111
- .mul(oraclePriceData.price)
112
- .div(BID_ASK_SPREAD_PRECISION)
113
- )
114
- );
115
-
116
- let marginPrice: BN;
117
- if (perpPosition.baseAssetAmount.gt(ZERO)) {
118
- marginPrice = oraclePriceData.price.sub(oraclePriceOffset);
119
- } else {
120
- marginPrice = oraclePriceData.price.add(oraclePriceOffset);
121
- }
122
-
123
- return marginPrice;
124
- }
125
-
126
91
  /**
127
92
  * This is _not_ the same as liability value as for prediction markets, the liability for the short in prediction market is (1 - oracle price) * base
128
93
  * See {@link calculatePerpLiabilityValue} to get the liabiltiy value
@@ -226,7 +191,8 @@ export function calculateMarginUSDCRequiredForTrade(
226
191
  userMaxMarginRatio?: number,
227
192
  entryPrice?: BN
228
193
  ): BN {
229
- const targetMarket = velocityClient.getPerpMarketAccount(targetMarketIndex);
194
+ const targetMarket =
195
+ velocityClient.getPerpMarketAccountOrThrow(targetMarketIndex);
230
196
 
231
197
  const price =
232
198
  entryPrice ??
@@ -269,7 +235,8 @@ export function calculateCollateralDepositRequiredForTrade(
269
235
  estEntryPrice
270
236
  );
271
237
 
272
- const collateralMarket = velocityClient.getSpotMarketAccount(collateralIndex);
238
+ const collateralMarket =
239
+ velocityClient.getSpotMarketAccountOrThrow(collateralIndex);
273
240
 
274
241
  const collateralOracleData =
275
242
  velocityClient.getOracleDataForSpotMarket(collateralIndex);
@@ -292,77 +259,3 @@ export function calculateCollateralDepositRequiredForTrade(
292
259
 
293
260
  return baseAmountRequired;
294
261
  }
295
-
296
- export function calculateCollateralValueOfDeposit(
297
- velocityClient: VelocityClient,
298
- collateralIndex: number,
299
- baseSize: BN
300
- ): BN {
301
- const collateralMarket = velocityClient.getSpotMarketAccount(collateralIndex);
302
-
303
- const collateralOracleData =
304
- velocityClient.getOracleDataForSpotMarket(collateralIndex);
305
-
306
- const scaledAssetWeight = calculateScaledInitialAssetWeight(
307
- collateralMarket,
308
- collateralOracleData.price
309
- );
310
-
311
- // CollateralBaseValue = oracle price * collateral base amount (and shift to QUOTE_PRECISION)
312
- const collateralBaseValue = collateralOracleData.price
313
- .mul(baseSize)
314
- .mul(QUOTE_PRECISION)
315
- .div(PRICE_PRECISION)
316
- .div(new BN(10).pow(new BN(collateralMarket.decimals)));
317
-
318
- const depositCollateralValue = collateralBaseValue
319
- .mul(scaledAssetWeight)
320
- .div(SPOT_MARKET_WEIGHT_PRECISION);
321
-
322
- return depositCollateralValue;
323
- }
324
-
325
- export function calculateLiquidationPrice(
326
- freeCollateral: BN,
327
- freeCollateralDelta: BN,
328
- oraclePrice: BN
329
- ): BN {
330
- const liqPriceDelta = freeCollateral
331
- .mul(QUOTE_PRECISION)
332
- .div(freeCollateralDelta);
333
-
334
- const liqPrice = oraclePrice.sub(liqPriceDelta);
335
-
336
- if (liqPrice.lt(ZERO)) {
337
- return new BN(-1);
338
- }
339
-
340
- return liqPrice;
341
- }
342
-
343
- export function calculateUserMaxPerpOrderSize(
344
- velocityClient: VelocityClient,
345
- userAccountKey: PublicKey,
346
- userAccount: UserAccount,
347
- targetMarketIndex: number,
348
- tradeSide: PositionDirection
349
- ): { tradeSize: BN; oppositeSideTradeSize: BN } {
350
- const userAccountSubscriber = new OneShotUserAccountSubscriber(
351
- velocityClient.program,
352
- userAccountKey,
353
- userAccount
354
- );
355
-
356
- const user = new User({
357
- velocityClient,
358
- userAccountPublicKey: userAccountKey,
359
- accountSubscription: {
360
- type: 'custom',
361
- userAccountSubscriber: userAccountSubscriber,
362
- },
363
- });
364
-
365
- user.isSubscribed = true;
366
-
367
- return user.getMaxTradeSizeUSDCForPerp(targetMarketIndex, tradeSide);
368
- }
@@ -5,16 +5,12 @@ import {
5
5
  MarginCategory,
6
6
  SpotMarketAccount,
7
7
  SpotBalanceType,
8
- MarketType,
9
8
  isVariant,
10
9
  } from '../types';
11
10
  import {
12
- calculateAmmReservesAfterSwap,
13
11
  calculatePrice,
14
12
  calculateUpdatedAMMSpreadReserves,
15
- getSwapDirection,
16
13
  calculateUpdatedAMM,
17
- calculateMarketOpenBidAsk,
18
14
  } from './amm';
19
15
  import {
20
16
  calculateSizeDiscountAssetWeight,
@@ -32,7 +28,6 @@ import {
32
28
  FUNDING_RATE_PRECISION,
33
29
  } from '../constants/numericConstants';
34
30
  import { getTokenAmount } from './spotBalance';
35
- import { DLOB } from '../dlob/DLOB';
36
31
  import { assert } from '../assert/assert';
37
32
 
38
33
  /**
@@ -43,13 +38,9 @@ import { assert } from '../assert/assert';
43
38
  */
44
39
  export function calculateReservePrice(
45
40
  market: PerpMarketAccount,
46
- mmOraclePriceData: MMOraclePriceData
41
+ mmOraclePriceData?: MMOraclePriceData
47
42
  ): BN {
48
- const newAmm = calculateUpdatedAMM(
49
- market.amm,
50
- market.totalExchangeFee,
51
- mmOraclePriceData
52
- );
43
+ const newAmm = calculateUpdatedAMM(market.amm, mmOraclePriceData);
53
44
  return calculatePrice(
54
45
  newAmm.baseAssetReserve,
55
46
  newAmm.quoteAssetReserve,
@@ -65,14 +56,13 @@ export function calculateReservePrice(
65
56
  */
66
57
  export function calculateBidPrice(
67
58
  market: PerpMarketAccount,
68
- mmOraclePriceData: MMOraclePriceData,
59
+ mmOraclePriceData?: MMOraclePriceData,
69
60
  latestSlot?: BN
70
61
  ): BN {
71
62
  const { baseAssetReserve, quoteAssetReserve, newPeg } =
72
63
  calculateUpdatedAMMSpreadReserves(
73
64
  market.amm,
74
65
  market.marketStats,
75
- market.totalExchangeFee,
76
66
  PositionDirection.SHORT,
77
67
  mmOraclePriceData,
78
68
  latestSlot
@@ -89,14 +79,13 @@ export function calculateBidPrice(
89
79
  */
90
80
  export function calculateAskPrice(
91
81
  market: PerpMarketAccount,
92
- mmOraclePriceData: MMOraclePriceData,
82
+ mmOraclePriceData?: MMOraclePriceData,
93
83
  latestSlot?: BN
94
84
  ): BN {
95
85
  const { baseAssetReserve, quoteAssetReserve, newPeg } =
96
86
  calculateUpdatedAMMSpreadReserves(
97
87
  market.amm,
98
88
  market.marketStats,
99
- market.totalExchangeFee,
100
89
  PositionDirection.LONG,
101
90
  mmOraclePriceData,
102
91
  latestSlot
@@ -105,36 +94,6 @@ export function calculateAskPrice(
105
94
  return calculatePrice(baseAssetReserve, quoteAssetReserve, newPeg);
106
95
  }
107
96
 
108
- export function calculateNewMarketAfterTrade(
109
- baseAssetAmount: BN,
110
- direction: PositionDirection,
111
- market: PerpMarketAccount
112
- ): PerpMarketAccount {
113
- const [newQuoteAssetReserve, newBaseAssetReserve] =
114
- calculateAmmReservesAfterSwap(
115
- market.amm,
116
- 'base',
117
- baseAssetAmount.abs(),
118
- getSwapDirection('base', direction)
119
- );
120
-
121
- const newAmm = Object.assign({}, market.amm);
122
- const newMarket = Object.assign({}, market);
123
- newMarket.amm = newAmm;
124
- newMarket.amm.quoteAssetReserve = newQuoteAssetReserve;
125
- newMarket.amm.baseAssetReserve = newBaseAssetReserve;
126
-
127
- return newMarket;
128
- }
129
-
130
- export function calculateOracleReserveSpread(
131
- market: PerpMarketAccount,
132
- mmOraclePriceData: MMOraclePriceData
133
- ): BN {
134
- const reservePrice = calculateReservePrice(market, mmOraclePriceData);
135
- return calculateOracleSpread(reservePrice, mmOraclePriceData);
136
- }
137
-
138
97
  export function calculateOracleSpread(
139
98
  price: BN,
140
99
  oraclePriceData: OraclePriceData
@@ -295,55 +254,6 @@ export function calculateNetUserPnlImbalance(
295
254
  return imbalance;
296
255
  }
297
256
 
298
- export function calculateAvailablePerpLiquidity(
299
- market: PerpMarketAccount,
300
- mmOraclePriceData: MMOraclePriceData,
301
- dlob: DLOB,
302
- slot: number
303
- ): { bids: BN; asks: BN } {
304
- let [bids, asks] = calculateMarketOpenBidAsk(
305
- market.amm.baseAssetReserve,
306
- market.amm.minBaseAssetReserve,
307
- market.amm.maxBaseAssetReserve,
308
- market.orderStepSize
309
- );
310
-
311
- asks = asks.abs();
312
-
313
- for (const bid of dlob.getRestingLimitBids(
314
- market.marketIndex,
315
- slot,
316
- MarketType.PERP,
317
- mmOraclePriceData
318
- )) {
319
- bids = bids.add(
320
- bid.order.baseAssetAmount.sub(bid.order.baseAssetAmountFilled)
321
- );
322
- }
323
-
324
- for (const ask of dlob.getRestingLimitAsks(
325
- market.marketIndex,
326
- slot,
327
- MarketType.PERP,
328
- mmOraclePriceData
329
- )) {
330
- asks = asks.add(
331
- ask.order.baseAssetAmount.sub(ask.order.baseAssetAmountFilled)
332
- );
333
- }
334
-
335
- return {
336
- bids: bids,
337
- asks: asks,
338
- };
339
- }
340
-
341
- export function calculatePerpMarketBaseLiquidatorFee(
342
- market: PerpMarketAccount
343
- ): number {
344
- return market.liquidatorFee;
345
- }
346
-
347
257
  /**
348
258
  * Calculates trigger price for a perp market based on oracle price and current time
349
259
  * Implements the same logic as the Rust get_trigger_price function
@@ -396,10 +306,10 @@ function getLastFundingBasis(
396
306
  oraclePrice: BN,
397
307
  now: BN
398
308
  ): BN {
399
- if (market.lastFundingOracleTwap.gt(ZERO)) {
309
+ if (market.marketStats.lastFundingOracleTwap.gt(ZERO)) {
400
310
  const lastFundingRate = market.lastFundingRate
401
311
  .mul(PRICE_PRECISION)
402
- .div(market.lastFundingOracleTwap)
312
+ .div(market.marketStats.lastFundingOracleTwap)
403
313
  .muln(24);
404
314
  const lastFundingRatePreAdj = lastFundingRate.sub(
405
315
  FUNDING_RATE_PRECISION.div(new BN(3333)) // FUNDING_RATE_OFFSET_PERCENTAGE
@@ -300,23 +300,6 @@ export function getNewOracleConfPct(
300
300
  return confIntervalPctResult;
301
301
  }
302
302
 
303
- export function trimVaaSignatures(vaa: Buffer, n = 3): Buffer {
304
- const currentNumSignatures = vaa[5];
305
- if (n > currentNumSignatures) {
306
- throw new Error(
307
- "Resulting VAA can't have more signatures than the original VAA"
308
- );
309
- }
310
-
311
- const trimmedVaa = Buffer.concat([
312
- vaa.subarray(0, 6 + n * 66),
313
- vaa.subarray(6 + currentNumSignatures * 66),
314
- ]);
315
-
316
- trimmedVaa[5] = n;
317
- return trimmedVaa;
318
- }
319
-
320
303
  export function getMultipleBetweenOracleSources(
321
304
  firstOracleSource: OracleSource,
322
305
  secondOracleSource: OracleSource
@@ -1,4 +1,3 @@
1
- import { User } from '../user';
2
1
  import {
3
2
  isOneOfVariant,
4
3
  isVariant,
@@ -13,7 +12,6 @@ import {
13
12
  } from '../types';
14
13
  import {
15
14
  ZERO,
16
- TWO,
17
15
  ONE,
18
16
  SPOT_MARKET_IMF_PRECISION,
19
17
  MARGIN_PRECISION,
@@ -32,105 +30,6 @@ import {
32
30
  } from './amm';
33
31
  import { calculateSizePremiumLiabilityWeight } from './margin';
34
32
 
35
- export function isOrderRiskIncreasing(user: User, order: Order): boolean {
36
- if (!isVariant(order.status, 'open')) {
37
- return false;
38
- }
39
-
40
- const position =
41
- user.getPerpPosition(order.marketIndex) ||
42
- user.getEmptyPosition(order.marketIndex);
43
-
44
- // if no position exists, it's risk increasing
45
- if (position.baseAssetAmount.eq(ZERO)) {
46
- return true;
47
- }
48
-
49
- // if position is long and order is long
50
- if (position.baseAssetAmount.gt(ZERO) && isVariant(order.direction, 'long')) {
51
- return true;
52
- }
53
-
54
- // if position is short and order is short
55
- if (
56
- position.baseAssetAmount.lt(ZERO) &&
57
- isVariant(order.direction, 'short')
58
- ) {
59
- return true;
60
- }
61
-
62
- const baseAssetAmountToFill = order.baseAssetAmount.sub(
63
- order.baseAssetAmountFilled
64
- );
65
- // if order will flip position
66
- if (baseAssetAmountToFill.gt(position.baseAssetAmount.abs().mul(TWO))) {
67
- return true;
68
- }
69
-
70
- return false;
71
- }
72
-
73
- export function isOrderRiskIncreasingInSameDirection(
74
- user: User,
75
- order: Order
76
- ): boolean {
77
- if (!isVariant(order.status, 'open')) {
78
- return false;
79
- }
80
-
81
- const position =
82
- user.getPerpPosition(order.marketIndex) ||
83
- user.getEmptyPosition(order.marketIndex);
84
-
85
- // if no position exists, it's risk increasing
86
- if (position.baseAssetAmount.eq(ZERO)) {
87
- return true;
88
- }
89
-
90
- // if position is long and order is long
91
- if (position.baseAssetAmount.gt(ZERO) && isVariant(order.direction, 'long')) {
92
- return true;
93
- }
94
-
95
- // if position is short and order is short
96
- if (
97
- position.baseAssetAmount.lt(ZERO) &&
98
- isVariant(order.direction, 'short')
99
- ) {
100
- return true;
101
- }
102
-
103
- return false;
104
- }
105
-
106
- export function isOrderReduceOnly(user: User, order: Order): boolean {
107
- if (!isVariant(order.status, 'open')) {
108
- return false;
109
- }
110
-
111
- const position =
112
- user.getPerpPosition(order.marketIndex) ||
113
- user.getEmptyPosition(order.marketIndex);
114
-
115
- // if position is long and order is long
116
- if (
117
- position.baseAssetAmount.gte(ZERO) &&
118
- isVariant(order.direction, 'long')
119
- ) {
120
- return false;
121
- }
122
-
123
- // if position is short and order is short
124
- if (
125
- position.baseAssetAmount.lte(ZERO) &&
126
- isVariant(order.direction, 'short')
127
- ) {
128
- return false;
129
- }
130
-
131
- return true;
132
- }
133
-
134
33
  export function standardizeBaseAssetAmount(
135
34
  baseAssetAmount: BN,
136
35
  stepSize: BN
@@ -252,11 +151,7 @@ export function calculateBaseAssetAmountForAmmToFulfill(
252
151
  const limitPrice = getLimitPrice(order, mmOraclePriceData, slot);
253
152
  let baseAssetAmount;
254
153
 
255
- const updatedAMM = calculateUpdatedAMM(
256
- market.amm,
257
- market.totalExchangeFee,
258
- mmOraclePriceData
259
- );
154
+ const updatedAMM = calculateUpdatedAMM(market.amm, mmOraclePriceData);
260
155
  if (limitPrice !== undefined) {
261
156
  baseAssetAmount = calculateBaseAssetAmountToFillUpToLimitPrice(
262
157
  order,
@@ -381,10 +276,6 @@ export function isRestingLimitOrder(order: Order, slot: number): boolean {
381
276
  return order.postOnly || isAuctionComplete(order, slot);
382
277
  }
383
278
 
384
- export function isTakingOrder(order: Order, slot: number): boolean {
385
- return isMarketOrder(order) || !isRestingLimitOrder(order, slot);
386
- }
387
-
388
279
  const FLAG_IS_SIGNED_MSG = 0x01;
389
280
  export function isSignedMsgOrder(order: Order): boolean {
390
281
  return (order.bitFlags & FLAG_IS_SIGNED_MSG) !== 0;
@@ -54,7 +54,6 @@ export function calculateBaseAssetValue(
54
54
  calculateUpdatedAMMSpreadReserves(
55
55
  market.amm,
56
56
  market.marketStats,
57
- market.totalExchangeFee,
58
57
  directionToClose,
59
58
  mmOraclePriceData,
60
59
  latestSlot
@@ -66,11 +65,7 @@ export function calculateBaseAssetValue(
66
65
  pegMultiplier: newPeg,
67
66
  };
68
67
  } else {
69
- prepegAmm = calculateUpdatedAMM(
70
- market.amm,
71
- market.totalExchangeFee,
72
- mmOraclePriceData
73
- );
68
+ prepegAmm = calculateUpdatedAMM(market.amm, mmOraclePriceData);
74
69
  }
75
70
  } else {
76
71
  prepegAmm = market.amm;
@@ -96,6 +91,9 @@ export function calculateBaseAssetValue(
96
91
  .mul(prepegAmm.pegMultiplier)
97
92
  .div(AMM_TIMES_PEG_TO_QUOTE_PRECISION_RATIO)
98
93
  .add(ONE);
94
+
95
+ default:
96
+ throw new Error('Invalid position direction to close');
99
97
  }
100
98
  }
101
99
 
@@ -234,16 +232,6 @@ export function calculateUnsettledFundingPnl(
234
232
  return perPositionFundingRate;
235
233
  }
236
234
 
237
- /**
238
- * @deprecated use calculateUnsettledFundingPnl or calculateFeesAndFundingPnl instead
239
- */
240
- export function calculatePositionFundingPNL(
241
- market: PerpMarketAccount,
242
- perpPosition: PerpPosition
243
- ): BN {
244
- return calculateUnsettledFundingPnl(market, perpPosition);
245
- }
246
-
247
235
  export function positionIsAvailable(position: PerpPosition): boolean {
248
236
  return (
249
237
  position.baseAssetAmount.eq(ZERO) &&
package/src/math/repeg.ts CHANGED
@@ -148,35 +148,6 @@ export function calculateBudgetedKBN(
148
148
  return [numerator, denominator];
149
149
  }
150
150
 
151
- export function calculateBudgetedK(amm: AMM, cost: BN): [BN, BN] {
152
- // wolframalpha.com
153
- // (1/(x+d) - p/(x*p+d))*y*d*Q = C solve for p
154
- // p = (d(y*d*Q - C(x+d))) / (C*x(x+d) + y*d*d*Q)
155
-
156
- // numer
157
- // = y*d*d*Q - Cxd - Cdd
158
- // = y/x*Q*d*d - Cd - Cd/x
159
- // = mark - C/d - C/(x)
160
- // = mark/C - 1/d - 1/x
161
-
162
- // denom
163
- // = C*x*x + C*x*d + y*d*d*Q
164
- // = x/d**2 + 1 / d + mark/C
165
-
166
- // todo: assumes k = x * y
167
- // otherwise use: (y(1-p) + (kp^2/(x*p+d)) - k/(x+d)) * Q = C solve for p
168
-
169
- const x = amm.baseAssetReserve;
170
- const y = amm.quoteAssetReserve;
171
-
172
- const d = amm.baseAssetAmountWithAmm;
173
- const Q = amm.pegMultiplier;
174
-
175
- const [numerator, denominator] = calculateBudgetedKBN(x, y, cost, Q, d);
176
-
177
- return [numerator, denominator];
178
- }
179
-
180
151
  export function calculateBudgetedPeg(
181
152
  amm: AMM,
182
153
  budget: BN,
@@ -153,7 +153,7 @@ export function calculateAssetWeight(
153
153
  balanceAmount: BN,
154
154
  oraclePrice: BN,
155
155
  spotMarket: SpotMarketAccount,
156
- marginCategory: MarginCategory
156
+ marginCategory: MarginCategory | undefined
157
157
  ): BN {
158
158
  const sizePrecision = TEN.pow(new BN(spotMarket.decimals));
159
159
  let sizeInAmmReservePrecision;
@@ -221,7 +221,7 @@ export function calculateScaledInitialAssetWeight(
221
221
  export function calculateLiabilityWeight(
222
222
  size: BN,
223
223
  spotMarket: SpotMarketAccount,
224
- marginCategory: MarginCategory
224
+ marginCategory: MarginCategory | undefined
225
225
  ): BN {
226
226
  const sizePrecision = TEN.pow(new BN(spotMarket.decimals));
227
227
  let sizeInAmmReservePrecision;
@@ -380,10 +380,10 @@ export function calculateSpotMarketBorrowCapacity(
380
380
  export function calculateInterestRate(
381
381
  bank: SpotMarketAccount,
382
382
  delta = ZERO,
383
- currentUtilization: BN = null
383
+ currentUtilization?: BN
384
384
  ): BN {
385
385
  // todo: ensure both a delta and current util aren't pass?
386
- const utilization = currentUtilization || calculateUtilization(bank, delta);
386
+ const utilization = currentUtilization ?? calculateUtilization(bank, delta);
387
387
 
388
388
  const optimalUtil = new BN(bank.optimalUtilization);
389
389
  const optimalRate = new BN(bank.optimalBorrowRate);
@@ -442,15 +442,19 @@ export function calculateInterestRate(
442
442
  export function calculateDepositRate(
443
443
  bank: SpotMarketAccount,
444
444
  delta = ZERO,
445
- currentUtilization: BN = null
445
+ currentUtilization?: BN
446
446
  ): BN {
447
447
  // positive delta => adding to deposit
448
448
  // negative delta => adding to borrow
449
449
 
450
- const utilization = currentUtilization || calculateUtilization(bank, delta);
450
+ const utilization = currentUtilization ?? calculateUtilization(bank, delta);
451
451
  const borrowRate = calculateBorrowRate(bank, delta, utilization);
452
452
  const depositRate = borrowRate
453
- .mul(PERCENTAGE_PRECISION.sub(new BN(bank.insuranceFund.totalFactor)))
453
+ .mul(
454
+ PERCENTAGE_PRECISION.sub(
455
+ new BN(bank.insuranceFund.ifFeeFactor + bank.protocolFeeFactor)
456
+ )
457
+ )
454
458
  .mul(utilization)
455
459
  .div(SPOT_MARKET_UTILIZATION_PRECISION)
456
460
  .div(PERCENTAGE_PRECISION);
@@ -460,7 +464,7 @@ export function calculateDepositRate(
460
464
  export function calculateBorrowRate(
461
465
  bank: SpotMarketAccount,
462
466
  delta = ZERO,
463
- currentUtilization: BN = null
467
+ currentUtilization?: BN
464
468
  ): BN {
465
469
  return calculateInterestRate(bank, delta, currentUtilization);
466
470
  }
@@ -549,8 +553,8 @@ export function calculateWithdrawLimit(
549
553
  withdrawLimit: BN;
550
554
  minDepositAmount: BN;
551
555
  maxBorrowAmount: BN;
552
- currentDepositAmount;
553
- currentBorrowAmount;
556
+ currentDepositAmount: BN;
557
+ currentBorrowAmount: BN;
554
558
  } {
555
559
  const marketDepositTokenAmount = getTokenAmount(
556
560
  spotMarket.depositBalance,
@@ -5,12 +5,8 @@ import {
5
5
  SpotBalanceType,
6
6
  SpotMarketAccount,
7
7
  } from '../types';
8
- import {
9
- calculateAssetWeight,
10
- calculateLiabilityWeight,
11
- getTokenAmount,
12
- } from './spotBalance';
13
- import { MARGIN_PRECISION, ZERO } from '../constants/numericConstants';
8
+ import { calculateAssetWeight, calculateLiabilityWeight } from './spotBalance';
9
+ import { MARGIN_PRECISION } from '../constants/numericConstants';
14
10
  import { numberToSafeBN } from './utils';
15
11
 
16
12
  export function castNumberToSpotPrecision(
@@ -58,25 +54,3 @@ export function calculateSpotMarketMarginRatio(
58
54
 
59
55
  return marginRatio;
60
56
  }
61
-
62
- /**
63
- * Returns the maximum remaining deposit that can be made to the spot market. If the maxTokenDeposits on the market is zero then there is no limit and this function will also return zero. (so that needs to be checked)
64
- * @param market
65
- * @returns
66
- */
67
- export function calculateMaxRemainingDeposit(market: SpotMarketAccount) {
68
- const marketMaxTokenDeposits = market.maxTokenDeposits;
69
-
70
- if (marketMaxTokenDeposits.eq(ZERO)) {
71
- // If the maxTokenDeposits is set to zero then that means there is no limit. Return the largest number we can to represent infinite available deposit.
72
- return ZERO;
73
- }
74
-
75
- const totalDepositsTokenAmount = getTokenAmount(
76
- market.depositBalance,
77
- market,
78
- SpotBalanceType.DEPOSIT
79
- );
80
-
81
- return marketMaxTokenDeposits.sub(totalDepositsTokenAmount);
82
- }