@velocity-exchange/sdk 0.0.5 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (815) hide show
  1. package/.prettierignore +1 -1
  2. package/CHANGELOG.md +35 -0
  3. package/README.md +30 -30
  4. package/bun.lock +24 -2
  5. package/lib/browser/accounts/basicUserAccountSubscriber.d.ts +5 -3
  6. package/lib/browser/accounts/basicUserAccountSubscriber.js +4 -3
  7. package/lib/browser/accounts/basicUserStatsAccountSubscriber.d.ts +5 -3
  8. package/lib/browser/accounts/basicUserStatsAccountSubscriber.js +4 -3
  9. package/lib/browser/accounts/bulkAccountLoader.d.ts +5 -5
  10. package/lib/browser/accounts/bulkAccountLoader.js +12 -1
  11. package/lib/browser/accounts/grpcAccountSubscriber.d.ts +2 -1
  12. package/lib/browser/accounts/grpcAccountSubscriber.js +8 -2
  13. package/lib/browser/accounts/grpcMultiAccountSubscriber.d.ts +3 -2
  14. package/lib/browser/accounts/grpcMultiAccountSubscriber.js +13 -5
  15. package/lib/browser/accounts/grpcMultiUserAccountSubscriber.d.ts +2 -1
  16. package/lib/browser/accounts/grpcMultiUserAccountSubscriber.js +12 -8
  17. package/lib/browser/accounts/grpcProgramAccountSubscriber.d.ts +2 -1
  18. package/lib/browser/accounts/grpcProgramAccountSubscriber.js +9 -3
  19. package/lib/browser/accounts/grpcVelocityClientAccountSubscriber.d.ts +0 -4
  20. package/lib/browser/accounts/grpcVelocityClientAccountSubscriber.js +19 -6
  21. package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +1 -5
  22. package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.js +44 -23
  23. package/lib/browser/accounts/laserProgramAccountSubscriber.js +4 -1
  24. package/lib/browser/accounts/oneShotUserAccountSubscriber.js +4 -3
  25. package/lib/browser/accounts/oneShotUserStatsAccountSubscriber.js +7 -3
  26. package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +4 -2
  27. package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.js +3 -3
  28. package/lib/browser/accounts/pollingOracleAccountSubscriber.d.ts +0 -2
  29. package/lib/browser/accounts/pollingOracleAccountSubscriber.js +16 -5
  30. package/lib/browser/accounts/pollingTokenAccountSubscriber.d.ts +0 -2
  31. package/lib/browser/accounts/pollingTokenAccountSubscriber.js +16 -5
  32. package/lib/browser/accounts/pollingUserAccountSubscriber.d.ts +8 -4
  33. package/lib/browser/accounts/pollingUserAccountSubscriber.js +17 -11
  34. package/lib/browser/accounts/pollingUserStatsAccountSubscriber.d.ts +4 -2
  35. package/lib/browser/accounts/pollingUserStatsAccountSubscriber.js +6 -6
  36. package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.d.ts +7 -5
  37. package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.js +69 -35
  38. package/lib/browser/accounts/types.d.ts +6 -12
  39. package/lib/browser/accounts/utils.d.ts +1 -0
  40. package/lib/browser/accounts/utils.js +10 -3
  41. package/lib/browser/accounts/webSocketAccountSubscriber.d.ts +4 -2
  42. package/lib/browser/accounts/webSocketAccountSubscriber.js +17 -5
  43. package/lib/browser/accounts/webSocketAccountSubscriberV2.d.ts +4 -2
  44. package/lib/browser/accounts/webSocketAccountSubscriberV2.js +17 -6
  45. package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +4 -2
  46. package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +9 -0
  47. package/lib/browser/accounts/webSocketProgramAccountSubscriber.d.ts +3 -1
  48. package/lib/browser/accounts/webSocketProgramAccountSubscriber.js +14 -3
  49. package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.d.ts +3 -1
  50. package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.js +15 -3
  51. package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.d.ts +3 -1
  52. package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.js +14 -4
  53. package/lib/browser/accounts/webSocketUserAccountSubscriber.d.ts +4 -2
  54. package/lib/browser/accounts/webSocketUserAccountSubscriber.js +9 -0
  55. package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.d.ts +4 -2
  56. package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.js +9 -0
  57. package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.d.ts +4 -8
  58. package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.js +52 -26
  59. package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +7 -7
  60. package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.js +49 -20
  61. package/lib/browser/accounts/websocketProgramUserAccountSubscriber.d.ts +1 -1
  62. package/lib/browser/accounts/websocketProgramUserAccountSubscriber.js +0 -3
  63. package/lib/browser/addresses/marketAddresses.js +3 -2
  64. package/lib/browser/addresses/pda.d.ts +1 -9
  65. package/lib/browser/addresses/pda.js +4 -23
  66. package/lib/browser/adminClient.d.ts +25 -29
  67. package/lib/browser/adminClient.js +168 -169
  68. package/lib/browser/auctionSubscriber/auctionSubscriber.d.ts +2 -4
  69. package/lib/browser/auctionSubscriber/auctionSubscriber.js +8 -10
  70. package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.d.ts +2 -4
  71. package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.js +11 -10
  72. package/lib/browser/auctionSubscriber/types.d.ts +3 -2
  73. package/lib/browser/bankrun/bankrunConnection.d.ts +6 -4
  74. package/lib/browser/bankrun/bankrunConnection.js +69 -31
  75. package/lib/browser/blockhashSubscriber/BlockhashSubscriber.d.ts +1 -1
  76. package/lib/browser/blockhashSubscriber/BlockhashSubscriber.js +3 -2
  77. package/lib/browser/clock/clockSubscriber.d.ts +6 -6
  78. package/lib/browser/clock/clockSubscriber.js +4 -3
  79. package/lib/browser/config.d.ts +11 -20
  80. package/lib/browser/config.js +13 -36
  81. package/lib/browser/constants/index.d.ts +1 -2
  82. package/lib/browser/constants/index.js +1 -2
  83. package/lib/browser/constants/numericConstants.d.ts +1 -3
  84. package/lib/browser/constants/numericConstants.js +3 -5
  85. package/lib/browser/constituentMap/constituentMap.d.ts +0 -2
  86. package/lib/browser/constituentMap/constituentMap.js +10 -6
  87. package/lib/browser/constituentMap/pollingConstituentAccountSubscriber.js +3 -2
  88. package/lib/browser/constituentMap/webSocketConstituentAccountSubscriber.d.ts +2 -3
  89. package/lib/browser/constituentMap/webSocketConstituentAccountSubscriber.js +10 -3
  90. package/lib/browser/core/VelocityCore.d.ts +9 -15
  91. package/lib/browser/core/VelocityCore.js +5 -7
  92. package/lib/browser/core/instructions/perpOrders.d.ts +14 -0
  93. package/lib/browser/core/instructions/perpOrders.js +14 -0
  94. package/lib/browser/core/instructions/withdraw.d.ts +1 -1
  95. package/lib/browser/core/instructions/withdraw.js +1 -1
  96. package/lib/browser/core/remainingAccounts.d.ts +2 -2
  97. package/lib/browser/core/remainingAccounts.js +5 -5
  98. package/lib/browser/decode/user.js +9 -1
  99. package/lib/browser/dlob/DLOB.d.ts +7 -2
  100. package/lib/browser/dlob/DLOB.js +205 -142
  101. package/lib/browser/dlob/DLOBNode.d.ts +5 -2
  102. package/lib/browser/dlob/DLOBNode.js +7 -0
  103. package/lib/browser/dlob/DLOBSubscriber.d.ts +0 -2
  104. package/lib/browser/dlob/DLOBSubscriber.js +39 -39
  105. package/lib/browser/dlob/NodeList.js +8 -7
  106. package/lib/browser/dlob/orderBookLevels.js +24 -17
  107. package/lib/browser/dlob/types.d.ts +0 -2
  108. package/lib/browser/events/eventList.js +4 -1
  109. package/lib/browser/events/eventSubscriber.d.ts +6 -3
  110. package/lib/browser/events/eventSubscriber.js +75 -26
  111. package/lib/browser/events/eventsServerLogProvider.d.ts +1 -1
  112. package/lib/browser/events/eventsServerLogProvider.js +17 -10
  113. package/lib/browser/events/fetchLogs.d.ts +1 -1
  114. package/lib/browser/events/fetchLogs.js +4 -2
  115. package/lib/browser/events/parse.js +14 -14
  116. package/lib/browser/events/pollingLogProvider.d.ts +1 -1
  117. package/lib/browser/events/pollingLogProvider.js +1 -0
  118. package/lib/browser/events/txEventCache.js +6 -2
  119. package/lib/browser/events/types.d.ts +3 -7
  120. package/lib/browser/events/types.js +1 -3
  121. package/lib/browser/events/webSocketLogProvider.d.ts +1 -1
  122. package/lib/browser/events/webSocketLogProvider.js +5 -2
  123. package/lib/browser/factory/bigNum.js +1 -1
  124. package/lib/{node/idl/drift.d.ts → browser/idl/velocity.d.ts} +2412 -2481
  125. package/lib/browser/idl/{drift.json → velocity.json} +2265 -2333
  126. package/lib/browser/index.d.ts +1 -3
  127. package/lib/browser/index.js +1 -4
  128. package/lib/browser/jupiter/jupiterClient.d.ts +1 -1
  129. package/lib/browser/jupiter/jupiterClient.js +18 -8
  130. package/lib/browser/marginCalculation.js +1 -0
  131. package/lib/browser/math/amm.d.ts +31 -13
  132. package/lib/browser/math/amm.js +87 -31
  133. package/lib/browser/math/auction.js +16 -12
  134. package/lib/browser/math/bankruptcy.js +1 -1
  135. package/lib/browser/math/builder.d.ts +18 -1
  136. package/lib/browser/math/builder.js +32 -1
  137. package/lib/browser/math/funding.js +30 -30
  138. package/lib/browser/math/insurance.d.ts +1 -1
  139. package/lib/browser/math/insurance.js +4 -5
  140. package/lib/browser/math/margin.d.ts +3 -11
  141. package/lib/browser/math/margin.js +10 -69
  142. package/lib/browser/math/market.d.ts +4 -12
  143. package/lib/browser/math/market.js +12 -46
  144. package/lib/browser/math/oracles.d.ts +4 -7
  145. package/lib/browser/math/oracles.js +24 -37
  146. package/lib/browser/math/orders.d.ts +2 -7
  147. package/lib/browser/math/orders.js +9 -81
  148. package/lib/browser/math/position.d.ts +0 -4
  149. package/lib/browser/math/position.js +6 -11
  150. package/lib/browser/math/repeg.d.ts +0 -1
  151. package/lib/browser/math/repeg.js +1 -23
  152. package/lib/browser/math/spotBalance.d.ts +4 -4
  153. package/lib/browser/math/spotBalance.js +6 -6
  154. package/lib/browser/math/spotMarket.d.ts +0 -6
  155. package/lib/browser/math/spotMarket.js +1 -16
  156. package/lib/browser/math/spotPosition.d.ts +4 -4
  157. package/lib/browser/math/state.d.ts +0 -2
  158. package/lib/browser/math/state.js +1 -9
  159. package/lib/browser/math/superStake.d.ts +11 -63
  160. package/lib/browser/math/superStake.js +29 -28
  161. package/lib/browser/math/trade.js +7 -7
  162. package/lib/browser/math/utils.d.ts +1 -1
  163. package/lib/browser/math/utils.js +1 -1
  164. package/lib/browser/memcmp.d.ts +0 -1
  165. package/lib/browser/memcmp.js +1 -10
  166. package/lib/browser/oracles/prelaunchOracleClient.js +3 -2
  167. package/lib/browser/oracles/pythClient.js +9 -3
  168. package/lib/browser/oracles/pythLazerClient.js +5 -4
  169. package/lib/browser/oracles/utils.d.ts +4 -0
  170. package/lib/browser/oracles/utils.js +9 -1
  171. package/lib/browser/orderSubscriber/OrderSubscriber.d.ts +1 -3
  172. package/lib/browser/orderSubscriber/OrderSubscriber.js +16 -14
  173. package/lib/browser/orderSubscriber/WebsocketSubscription.js +1 -1
  174. package/lib/browser/orderSubscriber/grpcSubscription.js +2 -2
  175. package/lib/browser/orderSubscriber/types.d.ts +0 -2
  176. package/lib/browser/priorityFee/heliusPriorityFeeMethod.d.ts +1 -1
  177. package/lib/browser/priorityFee/priorityFeeSubscriber.d.ts +2 -6
  178. package/lib/browser/priorityFee/priorityFeeSubscriber.js +34 -18
  179. package/lib/browser/priorityFee/priorityFeeSubscriberMap.d.ts +0 -4
  180. package/lib/browser/priorityFee/priorityFeeSubscriberMap.js +3 -11
  181. package/lib/browser/priorityFee/solanaPriorityFeeMethod.d.ts +1 -1
  182. package/lib/browser/priorityFee/types.d.ts +3 -8
  183. package/lib/browser/priorityFee/velocityPriorityFeeMethod.d.ts +0 -8
  184. package/lib/browser/priorityFee/velocityPriorityFeeMethod.js +1 -3
  185. package/lib/browser/pyth/pythLazerSubscriber.d.ts +1 -1
  186. package/lib/browser/pyth/pythLazerSubscriber.js +1 -1
  187. package/lib/browser/pyth/types.d.ts +0 -1
  188. package/lib/browser/slot/SlotSubscriber.d.ts +1 -1
  189. package/lib/browser/slot/SlotSubscriber.js +2 -1
  190. package/lib/browser/slot/SlothashSubscriber.d.ts +3 -2
  191. package/lib/browser/slot/SlothashSubscriber.js +11 -4
  192. package/lib/browser/swap/UnifiedSwapClient.js +1 -1
  193. package/lib/browser/swift/grpcSignedMsgUserAccountSubscriber.d.ts +0 -3
  194. package/lib/browser/swift/grpcSignedMsgUserAccountSubscriber.js +5 -5
  195. package/lib/browser/swift/signedMsgUserAccountSubscriber.d.ts +7 -7
  196. package/lib/browser/swift/signedMsgUserAccountSubscriber.js +14 -10
  197. package/lib/browser/swift/swiftOrderSubscriber.d.ts +7 -6
  198. package/lib/browser/swift/swiftOrderSubscriber.js +15 -16
  199. package/lib/browser/testClient.js +3 -2
  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 +7 -1
  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 +102 -157
  217. package/lib/browser/types.js +6 -2
  218. package/lib/browser/user.d.ts +22 -10
  219. package/lib/browser/user.js +174 -154
  220. package/lib/browser/userConfig.d.ts +3 -2
  221. package/lib/browser/userMap/WebsocketSubscription.d.ts +1 -1
  222. package/lib/browser/userMap/WebsocketSubscription.js +1 -1
  223. package/lib/browser/userMap/grpcSubscription.d.ts +1 -1
  224. package/lib/browser/userMap/grpcSubscription.js +1 -1
  225. package/lib/browser/userMap/referrerMap.d.ts +0 -2
  226. package/lib/browser/userMap/referrerMap.js +10 -7
  227. package/lib/browser/userMap/revenueShareEscrowMap.d.ts +0 -2
  228. package/lib/browser/userMap/revenueShareEscrowMap.js +4 -4
  229. package/lib/browser/userMap/userMap.d.ts +3 -5
  230. package/lib/browser/userMap/userMap.js +39 -30
  231. package/lib/browser/userMap/userMapConfig.d.ts +3 -2
  232. package/lib/browser/userMap/userStatsMap.d.ts +1 -3
  233. package/lib/browser/userMap/userStatsMap.js +18 -17
  234. package/lib/browser/userStats.d.ts +7 -4
  235. package/lib/browser/userStats.js +28 -18
  236. package/lib/browser/userStatsConfig.d.ts +3 -2
  237. package/lib/browser/util/TransactionConfirmationManager.js +4 -2
  238. package/lib/browser/util/chainClock.d.ts +1 -1
  239. package/lib/browser/util/computeUnits.d.ts +1 -1
  240. package/lib/browser/util/computeUnits.js +6 -1
  241. package/lib/browser/util/ed25519Utils.d.ts +1 -1
  242. package/lib/browser/util/ed25519Utils.js +1 -1
  243. package/lib/browser/velocityClient.d.ts +144 -71
  244. package/lib/browser/velocityClient.js +653 -457
  245. package/lib/browser/velocityClientConfig.d.ts +0 -8
  246. package/lib/node/accounts/basicUserAccountSubscriber.d.ts +5 -3
  247. package/lib/node/accounts/basicUserAccountSubscriber.d.ts.map +1 -1
  248. package/lib/node/accounts/basicUserAccountSubscriber.js +4 -3
  249. package/lib/node/accounts/basicUserStatsAccountSubscriber.d.ts +5 -3
  250. package/lib/node/accounts/basicUserStatsAccountSubscriber.d.ts.map +1 -1
  251. package/lib/node/accounts/basicUserStatsAccountSubscriber.js +4 -3
  252. package/lib/node/accounts/bulkAccountLoader.d.ts +5 -5
  253. package/lib/node/accounts/bulkAccountLoader.d.ts.map +1 -1
  254. package/lib/node/accounts/bulkAccountLoader.js +12 -1
  255. package/lib/node/accounts/grpcAccountSubscriber.d.ts +2 -1
  256. package/lib/node/accounts/grpcAccountSubscriber.d.ts.map +1 -1
  257. package/lib/node/accounts/grpcAccountSubscriber.js +8 -2
  258. package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts +3 -2
  259. package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts.map +1 -1
  260. package/lib/node/accounts/grpcMultiAccountSubscriber.js +13 -5
  261. package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts +2 -1
  262. package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts.map +1 -1
  263. package/lib/node/accounts/grpcMultiUserAccountSubscriber.js +12 -8
  264. package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts +2 -1
  265. package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts.map +1 -1
  266. package/lib/node/accounts/grpcProgramAccountSubscriber.js +9 -3
  267. package/lib/node/accounts/grpcVelocityClientAccountSubscriber.d.ts +0 -4
  268. package/lib/node/accounts/grpcVelocityClientAccountSubscriber.d.ts.map +1 -1
  269. package/lib/node/accounts/grpcVelocityClientAccountSubscriber.js +19 -6
  270. package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +1 -5
  271. package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts.map +1 -1
  272. package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.js +44 -23
  273. package/lib/node/accounts/laserProgramAccountSubscriber.d.ts.map +1 -1
  274. package/lib/node/accounts/laserProgramAccountSubscriber.js +4 -1
  275. package/lib/node/accounts/oneShotUserAccountSubscriber.d.ts.map +1 -1
  276. package/lib/node/accounts/oneShotUserAccountSubscriber.js +4 -3
  277. package/lib/node/accounts/oneShotUserStatsAccountSubscriber.d.ts.map +1 -1
  278. package/lib/node/accounts/oneShotUserStatsAccountSubscriber.js +7 -3
  279. package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +4 -2
  280. package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
  281. package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.js +3 -3
  282. package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts +0 -2
  283. package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts.map +1 -1
  284. package/lib/node/accounts/pollingOracleAccountSubscriber.js +16 -5
  285. package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts +0 -2
  286. package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts.map +1 -1
  287. package/lib/node/accounts/pollingTokenAccountSubscriber.js +16 -5
  288. package/lib/node/accounts/pollingUserAccountSubscriber.d.ts +8 -4
  289. package/lib/node/accounts/pollingUserAccountSubscriber.d.ts.map +1 -1
  290. package/lib/node/accounts/pollingUserAccountSubscriber.js +17 -11
  291. package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts +4 -2
  292. package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts.map +1 -1
  293. package/lib/node/accounts/pollingUserStatsAccountSubscriber.js +6 -6
  294. package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts +7 -5
  295. package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts.map +1 -1
  296. package/lib/node/accounts/pollingVelocityClientAccountSubscriber.js +69 -35
  297. package/lib/node/accounts/types.d.ts +6 -12
  298. package/lib/node/accounts/types.d.ts.map +1 -1
  299. package/lib/node/accounts/utils.d.ts +1 -0
  300. package/lib/node/accounts/utils.d.ts.map +1 -1
  301. package/lib/node/accounts/utils.js +10 -3
  302. package/lib/node/accounts/webSocketAccountSubscriber.d.ts +4 -2
  303. package/lib/node/accounts/webSocketAccountSubscriber.d.ts.map +1 -1
  304. package/lib/node/accounts/webSocketAccountSubscriber.js +17 -5
  305. package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts +4 -2
  306. package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts.map +1 -1
  307. package/lib/node/accounts/webSocketAccountSubscriberV2.js +17 -6
  308. package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +4 -2
  309. package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
  310. package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +9 -0
  311. package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts +3 -1
  312. package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts.map +1 -1
  313. package/lib/node/accounts/webSocketProgramAccountSubscriber.js +14 -3
  314. package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts +3 -1
  315. package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts.map +1 -1
  316. package/lib/node/accounts/webSocketProgramAccountSubscriberV2.js +15 -3
  317. package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts +3 -1
  318. package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts.map +1 -1
  319. package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.js +14 -4
  320. package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts +4 -2
  321. package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts.map +1 -1
  322. package/lib/node/accounts/webSocketUserAccountSubscriber.js +9 -0
  323. package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts +4 -2
  324. package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts.map +1 -1
  325. package/lib/node/accounts/webSocketUserStatsAccountSubsriber.js +9 -0
  326. package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts +4 -8
  327. package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts.map +1 -1
  328. package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.js +52 -26
  329. package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +7 -7
  330. package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts.map +1 -1
  331. package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.js +49 -20
  332. package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts +1 -1
  333. package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts.map +1 -1
  334. package/lib/node/accounts/websocketProgramUserAccountSubscriber.js +0 -3
  335. package/lib/node/addresses/marketAddresses.d.ts.map +1 -1
  336. package/lib/node/addresses/marketAddresses.js +3 -2
  337. package/lib/node/addresses/pda.d.ts +1 -9
  338. package/lib/node/addresses/pda.d.ts.map +1 -1
  339. package/lib/node/addresses/pda.js +4 -23
  340. package/lib/node/adminClient.d.ts +25 -29
  341. package/lib/node/adminClient.d.ts.map +1 -1
  342. package/lib/node/adminClient.js +168 -169
  343. package/lib/node/auctionSubscriber/auctionSubscriber.d.ts +2 -4
  344. package/lib/node/auctionSubscriber/auctionSubscriber.d.ts.map +1 -1
  345. package/lib/node/auctionSubscriber/auctionSubscriber.js +8 -10
  346. package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts +2 -4
  347. package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts.map +1 -1
  348. package/lib/node/auctionSubscriber/auctionSubscriberGrpc.js +11 -10
  349. package/lib/node/auctionSubscriber/types.d.ts +3 -2
  350. package/lib/node/auctionSubscriber/types.d.ts.map +1 -1
  351. package/lib/node/bankrun/bankrunConnection.d.ts +6 -4
  352. package/lib/node/bankrun/bankrunConnection.d.ts.map +1 -1
  353. package/lib/node/bankrun/bankrunConnection.js +69 -31
  354. package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts +1 -1
  355. package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts.map +1 -1
  356. package/lib/node/blockhashSubscriber/BlockhashSubscriber.js +3 -2
  357. package/lib/node/clock/clockSubscriber.d.ts +6 -6
  358. package/lib/node/clock/clockSubscriber.d.ts.map +1 -1
  359. package/lib/node/clock/clockSubscriber.js +4 -3
  360. package/lib/node/config.d.ts +11 -20
  361. package/lib/node/config.d.ts.map +1 -1
  362. package/lib/node/config.js +13 -36
  363. package/lib/node/constants/index.d.ts +1 -2
  364. package/lib/node/constants/index.d.ts.map +1 -1
  365. package/lib/node/constants/index.js +1 -2
  366. package/lib/node/constants/numericConstants.d.ts +1 -3
  367. package/lib/node/constants/numericConstants.d.ts.map +1 -1
  368. package/lib/node/constants/numericConstants.js +3 -5
  369. package/lib/node/constituentMap/constituentMap.d.ts +0 -2
  370. package/lib/node/constituentMap/constituentMap.d.ts.map +1 -1
  371. package/lib/node/constituentMap/constituentMap.js +10 -6
  372. package/lib/node/constituentMap/pollingConstituentAccountSubscriber.d.ts.map +1 -1
  373. package/lib/node/constituentMap/pollingConstituentAccountSubscriber.js +3 -2
  374. package/lib/node/constituentMap/webSocketConstituentAccountSubscriber.d.ts +2 -3
  375. package/lib/node/constituentMap/webSocketConstituentAccountSubscriber.d.ts.map +1 -1
  376. package/lib/node/constituentMap/webSocketConstituentAccountSubscriber.js +10 -3
  377. package/lib/node/core/VelocityCore.d.ts +9 -15
  378. package/lib/node/core/VelocityCore.d.ts.map +1 -1
  379. package/lib/node/core/VelocityCore.js +5 -7
  380. package/lib/node/core/instructions/perpOrders.d.ts +14 -0
  381. package/lib/node/core/instructions/perpOrders.d.ts.map +1 -1
  382. package/lib/node/core/instructions/perpOrders.js +14 -0
  383. package/lib/node/core/instructions/withdraw.d.ts +1 -1
  384. package/lib/node/core/instructions/withdraw.d.ts.map +1 -1
  385. package/lib/node/core/instructions/withdraw.js +1 -1
  386. package/lib/node/core/remainingAccounts.d.ts +2 -2
  387. package/lib/node/core/remainingAccounts.d.ts.map +1 -1
  388. package/lib/node/core/remainingAccounts.js +5 -5
  389. package/lib/node/decode/user.d.ts.map +1 -1
  390. package/lib/node/decode/user.js +9 -1
  391. package/lib/node/dlob/DLOB.d.ts +7 -2
  392. package/lib/node/dlob/DLOB.d.ts.map +1 -1
  393. package/lib/node/dlob/DLOB.js +205 -142
  394. package/lib/node/dlob/DLOBNode.d.ts +5 -2
  395. package/lib/node/dlob/DLOBNode.d.ts.map +1 -1
  396. package/lib/node/dlob/DLOBNode.js +7 -0
  397. package/lib/node/dlob/DLOBSubscriber.d.ts +0 -2
  398. package/lib/node/dlob/DLOBSubscriber.d.ts.map +1 -1
  399. package/lib/node/dlob/DLOBSubscriber.js +39 -39
  400. package/lib/node/dlob/NodeList.d.ts.map +1 -1
  401. package/lib/node/dlob/NodeList.js +8 -7
  402. package/lib/node/dlob/orderBookLevels.d.ts.map +1 -1
  403. package/lib/node/dlob/orderBookLevels.js +24 -17
  404. package/lib/node/dlob/types.d.ts +0 -2
  405. package/lib/node/dlob/types.d.ts.map +1 -1
  406. package/lib/node/events/eventList.d.ts +3 -3
  407. package/lib/node/events/eventList.d.ts.map +1 -1
  408. package/lib/node/events/eventList.js +4 -1
  409. package/lib/node/events/eventSubscriber.d.ts +6 -3
  410. package/lib/node/events/eventSubscriber.d.ts.map +1 -1
  411. package/lib/node/events/eventSubscriber.js +75 -26
  412. package/lib/node/events/eventsServerLogProvider.d.ts +2 -2
  413. package/lib/node/events/eventsServerLogProvider.d.ts.map +1 -1
  414. package/lib/node/events/eventsServerLogProvider.js +17 -10
  415. package/lib/node/events/fetchLogs.d.ts +1 -1
  416. package/lib/node/events/fetchLogs.d.ts.map +1 -1
  417. package/lib/node/events/fetchLogs.js +4 -2
  418. package/lib/node/events/parse.d.ts.map +1 -1
  419. package/lib/node/events/parse.js +14 -14
  420. package/lib/node/events/pollingLogProvider.d.ts +2 -2
  421. package/lib/node/events/pollingLogProvider.d.ts.map +1 -1
  422. package/lib/node/events/pollingLogProvider.js +1 -0
  423. package/lib/node/events/txEventCache.d.ts +3 -3
  424. package/lib/node/events/txEventCache.d.ts.map +1 -1
  425. package/lib/node/events/txEventCache.js +6 -2
  426. package/lib/node/events/types.d.ts +3 -7
  427. package/lib/node/events/types.d.ts.map +1 -1
  428. package/lib/node/events/types.js +1 -3
  429. package/lib/node/events/webSocketLogProvider.d.ts +2 -2
  430. package/lib/node/events/webSocketLogProvider.d.ts.map +1 -1
  431. package/lib/node/events/webSocketLogProvider.js +5 -2
  432. package/lib/node/factory/bigNum.js +1 -1
  433. package/lib/{browser/idl/drift.d.ts → node/idl/velocity.d.ts} +2413 -2480
  434. package/lib/node/idl/velocity.d.ts.map +1 -0
  435. package/lib/node/idl/{drift.json → velocity.json} +2265 -2333
  436. package/lib/node/index.d.ts +1 -3
  437. package/lib/node/index.d.ts.map +1 -1
  438. package/lib/node/index.js +1 -4
  439. package/lib/node/jupiter/jupiterClient.d.ts +1 -1
  440. package/lib/node/jupiter/jupiterClient.d.ts.map +1 -1
  441. package/lib/node/jupiter/jupiterClient.js +18 -8
  442. package/lib/node/marginCalculation.d.ts.map +1 -1
  443. package/lib/node/marginCalculation.js +1 -0
  444. package/lib/node/math/amm.d.ts +31 -13
  445. package/lib/node/math/amm.d.ts.map +1 -1
  446. package/lib/node/math/amm.js +87 -31
  447. package/lib/node/math/auction.d.ts.map +1 -1
  448. package/lib/node/math/auction.js +16 -12
  449. package/lib/node/math/bankruptcy.js +1 -1
  450. package/lib/node/math/builder.d.ts +18 -1
  451. package/lib/node/math/builder.d.ts.map +1 -1
  452. package/lib/node/math/builder.js +32 -1
  453. package/lib/node/math/funding.d.ts.map +1 -1
  454. package/lib/node/math/funding.js +30 -30
  455. package/lib/node/math/insurance.d.ts +1 -1
  456. package/lib/node/math/insurance.d.ts.map +1 -1
  457. package/lib/node/math/insurance.js +4 -5
  458. package/lib/node/math/margin.d.ts +3 -11
  459. package/lib/node/math/margin.d.ts.map +1 -1
  460. package/lib/node/math/margin.js +10 -69
  461. package/lib/node/math/market.d.ts +4 -12
  462. package/lib/node/math/market.d.ts.map +1 -1
  463. package/lib/node/math/market.js +12 -46
  464. package/lib/node/math/oracles.d.ts +4 -7
  465. package/lib/node/math/oracles.d.ts.map +1 -1
  466. package/lib/node/math/oracles.js +24 -37
  467. package/lib/node/math/orders.d.ts +2 -7
  468. package/lib/node/math/orders.d.ts.map +1 -1
  469. package/lib/node/math/orders.js +9 -81
  470. package/lib/node/math/position.d.ts +1 -5
  471. package/lib/node/math/position.d.ts.map +1 -1
  472. package/lib/node/math/position.js +6 -11
  473. package/lib/node/math/repeg.d.ts +0 -1
  474. package/lib/node/math/repeg.d.ts.map +1 -1
  475. package/lib/node/math/repeg.js +1 -23
  476. package/lib/node/math/spotBalance.d.ts +4 -4
  477. package/lib/node/math/spotBalance.d.ts.map +1 -1
  478. package/lib/node/math/spotBalance.js +6 -6
  479. package/lib/node/math/spotMarket.d.ts +0 -6
  480. package/lib/node/math/spotMarket.d.ts.map +1 -1
  481. package/lib/node/math/spotMarket.js +1 -16
  482. package/lib/node/math/spotPosition.d.ts +4 -4
  483. package/lib/node/math/spotPosition.d.ts.map +1 -1
  484. package/lib/node/math/state.d.ts +0 -2
  485. package/lib/node/math/state.d.ts.map +1 -1
  486. package/lib/node/math/state.js +1 -9
  487. package/lib/node/math/superStake.d.ts +11 -63
  488. package/lib/node/math/superStake.d.ts.map +1 -1
  489. package/lib/node/math/superStake.js +29 -28
  490. package/lib/node/math/trade.d.ts +2 -2
  491. package/lib/node/math/trade.d.ts.map +1 -1
  492. package/lib/node/math/trade.js +7 -7
  493. package/lib/node/math/utils.d.ts +1 -1
  494. package/lib/node/math/utils.js +1 -1
  495. package/lib/node/memcmp.d.ts +0 -1
  496. package/lib/node/memcmp.d.ts.map +1 -1
  497. package/lib/node/memcmp.js +1 -10
  498. package/lib/node/oracles/oracleClientCache.d.ts +1 -1
  499. package/lib/node/oracles/prelaunchOracleClient.d.ts.map +1 -1
  500. package/lib/node/oracles/prelaunchOracleClient.js +3 -2
  501. package/lib/node/oracles/pythClient.d.ts.map +1 -1
  502. package/lib/node/oracles/pythClient.js +9 -3
  503. package/lib/node/oracles/pythLazerClient.d.ts.map +1 -1
  504. package/lib/node/oracles/pythLazerClient.js +5 -4
  505. package/lib/node/oracles/utils.d.ts +4 -0
  506. package/lib/node/oracles/utils.d.ts.map +1 -1
  507. package/lib/node/oracles/utils.js +9 -1
  508. package/lib/node/orderSubscriber/OrderSubscriber.d.ts +1 -3
  509. package/lib/node/orderSubscriber/OrderSubscriber.d.ts.map +1 -1
  510. package/lib/node/orderSubscriber/OrderSubscriber.js +16 -14
  511. package/lib/node/orderSubscriber/WebsocketSubscription.js +1 -1
  512. package/lib/node/orderSubscriber/grpcSubscription.js +2 -2
  513. package/lib/node/orderSubscriber/types.d.ts +0 -2
  514. package/lib/node/orderSubscriber/types.d.ts.map +1 -1
  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 +2 -6
  518. package/lib/node/priorityFee/priorityFeeSubscriber.d.ts.map +1 -1
  519. package/lib/node/priorityFee/priorityFeeSubscriber.js +34 -18
  520. package/lib/node/priorityFee/priorityFeeSubscriberMap.d.ts +0 -4
  521. package/lib/node/priorityFee/priorityFeeSubscriberMap.d.ts.map +1 -1
  522. package/lib/node/priorityFee/priorityFeeSubscriberMap.js +3 -11
  523. package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts +1 -1
  524. package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts.map +1 -1
  525. package/lib/node/priorityFee/types.d.ts +3 -8
  526. package/lib/node/priorityFee/types.d.ts.map +1 -1
  527. package/lib/node/priorityFee/velocityPriorityFeeMethod.d.ts +0 -8
  528. package/lib/node/priorityFee/velocityPriorityFeeMethod.d.ts.map +1 -1
  529. package/lib/node/priorityFee/velocityPriorityFeeMethod.js +1 -3
  530. package/lib/node/pyth/pythLazerSubscriber.d.ts +1 -1
  531. package/lib/node/pyth/pythLazerSubscriber.js +1 -1
  532. package/lib/node/pyth/types.d.ts +0 -1
  533. package/lib/node/pyth/types.d.ts.map +1 -1
  534. package/lib/node/slot/SlotSubscriber.d.ts +1 -1
  535. package/lib/node/slot/SlotSubscriber.d.ts.map +1 -1
  536. package/lib/node/slot/SlotSubscriber.js +2 -1
  537. package/lib/node/slot/SlothashSubscriber.d.ts +3 -2
  538. package/lib/node/slot/SlothashSubscriber.d.ts.map +1 -1
  539. package/lib/node/slot/SlothashSubscriber.js +11 -4
  540. package/lib/node/swap/UnifiedSwapClient.js +1 -1
  541. package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.d.ts +0 -3
  542. package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.d.ts.map +1 -1
  543. package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.js +5 -5
  544. package/lib/node/swift/signedMsgUserAccountSubscriber.d.ts +7 -7
  545. package/lib/node/swift/signedMsgUserAccountSubscriber.d.ts.map +1 -1
  546. package/lib/node/swift/signedMsgUserAccountSubscriber.js +14 -10
  547. package/lib/node/swift/swiftOrderSubscriber.d.ts +7 -6
  548. package/lib/node/swift/swiftOrderSubscriber.d.ts.map +1 -1
  549. package/lib/node/swift/swiftOrderSubscriber.js +15 -16
  550. package/lib/node/testClient.js +3 -2
  551. package/lib/node/tokenFaucet.d.ts.map +1 -1
  552. package/lib/node/tokenFaucet.js +16 -2
  553. package/lib/node/tx/baseTxSender.d.ts +4 -4
  554. package/lib/node/tx/baseTxSender.d.ts.map +1 -1
  555. package/lib/node/tx/baseTxSender.js +5 -4
  556. package/lib/node/tx/fastSingleTxSender.d.ts +3 -3
  557. package/lib/node/tx/fastSingleTxSender.d.ts.map +1 -1
  558. package/lib/node/tx/fastSingleTxSender.js +9 -5
  559. package/lib/node/tx/reportTransactionError.d.ts +2 -2
  560. package/lib/node/tx/reportTransactionError.d.ts.map +1 -1
  561. package/lib/node/tx/reportTransactionError.js +5 -1
  562. package/lib/node/tx/retryTxSender.d.ts +1 -1
  563. package/lib/node/tx/retryTxSender.d.ts.map +1 -1
  564. package/lib/node/tx/retryTxSender.js +4 -2
  565. package/lib/node/tx/txHandler.d.ts +9 -3
  566. package/lib/node/tx/txHandler.d.ts.map +1 -1
  567. package/lib/node/tx/txHandler.js +54 -40
  568. package/lib/node/tx/txParamProcessor.d.ts +4 -1
  569. package/lib/node/tx/txParamProcessor.d.ts.map +1 -1
  570. package/lib/node/tx/txParamProcessor.js +6 -0
  571. package/lib/node/tx/types.d.ts +1 -1
  572. package/lib/node/tx/types.d.ts.map +1 -1
  573. package/lib/node/tx/whileValidTxSender.d.ts +1 -6
  574. package/lib/node/tx/whileValidTxSender.d.ts.map +1 -1
  575. package/lib/node/tx/whileValidTxSender.js +35 -13
  576. package/lib/node/types.d.ts +100 -155
  577. package/lib/node/types.d.ts.map +1 -1
  578. package/lib/node/types.js +6 -2
  579. package/lib/node/user.d.ts +22 -10
  580. package/lib/node/user.d.ts.map +1 -1
  581. package/lib/node/user.js +174 -154
  582. package/lib/node/userConfig.d.ts +3 -2
  583. package/lib/node/userConfig.d.ts.map +1 -1
  584. package/lib/node/userMap/WebsocketSubscription.d.ts +1 -1
  585. package/lib/node/userMap/WebsocketSubscription.d.ts.map +1 -1
  586. package/lib/node/userMap/WebsocketSubscription.js +1 -1
  587. package/lib/node/userMap/grpcSubscription.d.ts +1 -1
  588. package/lib/node/userMap/grpcSubscription.d.ts.map +1 -1
  589. package/lib/node/userMap/grpcSubscription.js +1 -1
  590. package/lib/node/userMap/referrerMap.d.ts +0 -2
  591. package/lib/node/userMap/referrerMap.d.ts.map +1 -1
  592. package/lib/node/userMap/referrerMap.js +10 -7
  593. package/lib/node/userMap/revenueShareEscrowMap.d.ts +0 -2
  594. package/lib/node/userMap/revenueShareEscrowMap.d.ts.map +1 -1
  595. package/lib/node/userMap/revenueShareEscrowMap.js +4 -4
  596. package/lib/node/userMap/userMap.d.ts +3 -5
  597. package/lib/node/userMap/userMap.d.ts.map +1 -1
  598. package/lib/node/userMap/userMap.js +39 -30
  599. package/lib/node/userMap/userMapConfig.d.ts +3 -2
  600. package/lib/node/userMap/userMapConfig.d.ts.map +1 -1
  601. package/lib/node/userMap/userStatsMap.d.ts +1 -3
  602. package/lib/node/userMap/userStatsMap.d.ts.map +1 -1
  603. package/lib/node/userMap/userStatsMap.js +18 -17
  604. package/lib/node/userStats.d.ts +7 -4
  605. package/lib/node/userStats.d.ts.map +1 -1
  606. package/lib/node/userStats.js +28 -18
  607. package/lib/node/userStatsConfig.d.ts +3 -2
  608. package/lib/node/userStatsConfig.d.ts.map +1 -1
  609. package/lib/node/util/TransactionConfirmationManager.d.ts.map +1 -1
  610. package/lib/node/util/TransactionConfirmationManager.js +4 -2
  611. package/lib/node/util/chainClock.d.ts +1 -1
  612. package/lib/node/util/chainClock.d.ts.map +1 -1
  613. package/lib/node/util/computeUnits.d.ts +1 -1
  614. package/lib/node/util/computeUnits.d.ts.map +1 -1
  615. package/lib/node/util/computeUnits.js +6 -1
  616. package/lib/node/util/ed25519Utils.d.ts +1 -1
  617. package/lib/node/util/ed25519Utils.js +1 -1
  618. package/lib/node/velocityClient.d.ts +145 -72
  619. package/lib/node/velocityClient.d.ts.map +1 -1
  620. package/lib/node/velocityClient.js +653 -457
  621. package/lib/node/velocityClientConfig.d.ts +0 -8
  622. package/lib/node/velocityClientConfig.d.ts.map +1 -1
  623. package/package.json +10 -9
  624. package/scripts/deposit-isolated-positions.ts +2 -2
  625. package/scripts/find-flagged-users.ts +1 -1
  626. package/scripts/grpc-client-test-comparison.ts +4 -4
  627. package/scripts/grpc-multiuser-client-test-comparison.ts +2 -2
  628. package/scripts/single-grpc-client-test.ts +3 -3
  629. package/scripts/updateVersion.js +4 -4
  630. package/scripts/withdraw-isolated-positions.ts +2 -2
  631. package/src/accounts/basicUserAccountSubscriber.ts +7 -5
  632. package/src/accounts/basicUserStatsAccountSubscriber.ts +9 -5
  633. package/src/accounts/bulkAccountLoader.ts +20 -7
  634. package/src/accounts/grpcAccountSubscriber.ts +11 -3
  635. package/src/accounts/grpcMultiAccountSubscriber.ts +24 -9
  636. package/src/accounts/grpcMultiUserAccountSubscriber.ts +16 -12
  637. package/src/accounts/grpcProgramAccountSubscriber.ts +12 -4
  638. package/src/accounts/grpcVelocityClientAccountSubscriber.ts +17 -14
  639. package/src/accounts/grpcVelocityClientAccountSubscriberV2.ts +69 -49
  640. package/src/accounts/laserProgramAccountSubscriber.ts +4 -1
  641. package/src/accounts/oneShotUserAccountSubscriber.ts +5 -3
  642. package/src/accounts/oneShotUserStatsAccountSubscriber.ts +8 -3
  643. package/src/accounts/pollingInsuranceFundStakeAccountSubscriber.ts +11 -5
  644. package/src/accounts/pollingOracleAccountSubscriber.ts +17 -10
  645. package/src/accounts/pollingTokenAccountSubscriber.ts +17 -10
  646. package/src/accounts/pollingUserAccountSubscriber.ts +26 -20
  647. package/src/accounts/pollingUserStatsAccountSubscriber.ts +12 -10
  648. package/src/accounts/pollingVelocityClientAccountSubscriber.ts +80 -41
  649. package/src/accounts/types.ts +8 -13
  650. package/src/accounts/utils.ts +12 -2
  651. package/src/accounts/webSocketAccountSubscriber.ts +23 -10
  652. package/src/accounts/webSocketAccountSubscriberV2.ts +23 -8
  653. package/src/accounts/webSocketInsuranceFundStakeAccountSubscriber.ts +17 -2
  654. package/src/accounts/webSocketProgramAccountSubscriber.ts +29 -4
  655. package/src/accounts/webSocketProgramAccountSubscriberV2.ts +30 -4
  656. package/src/accounts/webSocketProgramAccountsSubscriberV2.ts +29 -4
  657. package/src/accounts/webSocketUserAccountSubscriber.ts +11 -2
  658. package/src/accounts/webSocketUserStatsAccountSubsriber.ts +15 -2
  659. package/src/accounts/webSocketVelocityClientAccountSubscriber.ts +79 -58
  660. package/src/accounts/webSocketVelocityClientAccountSubscriberV2.ts +77 -45
  661. package/src/accounts/websocketProgramUserAccountSubscriber.ts +1 -6
  662. package/src/addresses/marketAddresses.ts +3 -2
  663. package/src/addresses/pda.ts +3 -38
  664. package/src/adminClient.ts +285 -315
  665. package/src/auctionSubscriber/auctionSubscriber.ts +8 -11
  666. package/src/auctionSubscriber/auctionSubscriberGrpc.ts +13 -11
  667. package/src/auctionSubscriber/types.ts +3 -3
  668. package/src/bankrun/bankrunConnection.ts +83 -39
  669. package/src/blockhashSubscriber/BlockhashSubscriber.ts +5 -4
  670. package/src/clock/clockSubscriber.ts +10 -9
  671. package/src/config.ts +16 -70
  672. package/src/constants/index.ts +1 -2
  673. package/src/constants/numericConstants.ts +3 -3
  674. package/src/constituentMap/constituentMap.ts +10 -7
  675. package/src/constituentMap/pollingConstituentAccountSubscriber.ts +4 -2
  676. package/src/constituentMap/webSocketConstituentAccountSubscriber.ts +13 -4
  677. package/src/core/VelocityCore.ts +11 -20
  678. package/src/core/instructions/perpOrders.ts +14 -0
  679. package/src/core/instructions/withdraw.ts +2 -2
  680. package/src/core/remainingAccounts.ts +7 -7
  681. package/src/decode/user.ts +8 -1
  682. package/src/dlob/DLOB.ts +300 -176
  683. package/src/dlob/DLOBNode.ts +23 -3
  684. package/src/dlob/DLOBSubscriber.ts +53 -42
  685. package/src/dlob/NodeList.ts +8 -7
  686. package/src/dlob/orderBookLevels.ts +51 -25
  687. package/src/dlob/types.ts +0 -2
  688. package/src/events/eventList.ts +4 -1
  689. package/src/events/eventSubscriber.ts +108 -50
  690. package/src/events/eventsServerLogProvider.ts +24 -15
  691. package/src/events/fetchLogs.ts +3 -3
  692. package/src/events/parse.ts +14 -14
  693. package/src/events/pollingLogProvider.ts +2 -2
  694. package/src/events/txEventCache.ts +8 -2
  695. package/src/events/types.ts +4 -15
  696. package/src/events/webSocketLogProvider.ts +5 -3
  697. package/src/factory/bigNum.ts +2 -2
  698. package/src/idl/{drift.json → velocity.json} +2265 -2333
  699. package/src/idl/{drift.ts → velocity.ts} +2267 -2335
  700. package/src/index.ts +1 -6
  701. package/src/jupiter/jupiterClient.ts +30 -10
  702. package/src/margin/README.md +2 -2
  703. package/src/marginCalculation.ts +1 -0
  704. package/src/math/amm.ts +217 -40
  705. package/src/math/auction.ts +16 -12
  706. package/src/math/bankruptcy.ts +1 -1
  707. package/src/math/builder.ts +45 -1
  708. package/src/math/funding.ts +51 -47
  709. package/src/math/insurance.ts +6 -8
  710. package/src/math/margin.ts +12 -119
  711. package/src/math/market.ts +16 -98
  712. package/src/math/oracles.ts +29 -43
  713. package/src/math/orders.ts +13 -109
  714. package/src/math/position.ts +6 -12
  715. package/src/math/repeg.ts +0 -29
  716. package/src/math/spotBalance.ts +14 -10
  717. package/src/math/spotMarket.ts +2 -28
  718. package/src/math/spotPosition.ts +4 -4
  719. package/src/math/state.ts +0 -8
  720. package/src/math/superStake.ts +36 -85
  721. package/src/math/trade.ts +7 -3
  722. package/src/math/utils.ts +1 -1
  723. package/src/memcmp.ts +0 -9
  724. package/src/oracles/prelaunchOracleClient.ts +7 -2
  725. package/src/oracles/pythClient.ts +12 -3
  726. package/src/oracles/pythLazerClient.ts +10 -5
  727. package/src/oracles/utils.ts +15 -0
  728. package/src/orderSubscriber/OrderSubscriber.ts +12 -12
  729. package/src/orderSubscriber/WebsocketSubscription.ts +1 -1
  730. package/src/orderSubscriber/grpcSubscription.ts +2 -2
  731. package/src/orderSubscriber/types.ts +0 -2
  732. package/src/priorityFee/heliusPriorityFeeMethod.ts +1 -1
  733. package/src/priorityFee/priorityFeeSubscriber.ts +50 -21
  734. package/src/priorityFee/priorityFeeSubscriberMap.ts +2 -10
  735. package/src/priorityFee/solanaPriorityFeeMethod.ts +1 -1
  736. package/src/priorityFee/types.ts +3 -13
  737. package/src/priorityFee/velocityPriorityFeeMethod.ts +0 -12
  738. package/src/pyth/pythLazerSubscriber.ts +1 -1
  739. package/src/pyth/types.ts +0 -2
  740. package/src/slot/SlotSubscriber.ts +3 -3
  741. package/src/slot/SlothashSubscriber.ts +17 -6
  742. package/src/swap/UnifiedSwapClient.ts +1 -1
  743. package/src/swift/grpcSignedMsgUserAccountSubscriber.ts +5 -6
  744. package/src/swift/signedMsgUserAccountSubscriber.ts +18 -16
  745. package/src/swift/swiftOrderSubscriber.ts +17 -21
  746. package/src/testClient.ts +2 -2
  747. package/src/tokenFaucet.ts +22 -3
  748. package/src/tx/baseTxSender.ts +10 -10
  749. package/src/tx/fastSingleTxSender.ts +12 -8
  750. package/src/tx/reportTransactionError.ts +12 -7
  751. package/src/tx/retryTxSender.ts +6 -4
  752. package/src/tx/txHandler.ts +88 -43
  753. package/src/tx/txParamProcessor.ts +18 -3
  754. package/src/tx/types.ts +1 -1
  755. package/src/tx/whileValidTxSender.ts +51 -22
  756. package/src/types.ts +119 -173
  757. package/src/user.ts +208 -165
  758. package/src/userConfig.ts +1 -3
  759. package/src/userMap/WebsocketSubscription.ts +2 -2
  760. package/src/userMap/grpcSubscription.ts +2 -2
  761. package/src/userMap/referrerMap.ts +13 -13
  762. package/src/userMap/revenueShareEscrowMap.ts +6 -5
  763. package/src/userMap/userMap.ts +46 -32
  764. package/src/userMap/userMapConfig.ts +3 -3
  765. package/src/userMap/userStatsMap.ts +32 -23
  766. package/src/userStats.ts +22 -13
  767. package/src/userStatsConfig.ts +3 -3
  768. package/src/util/TransactionConfirmationManager.ts +10 -2
  769. package/src/util/chainClock.ts +1 -1
  770. package/src/util/computeUnits.ts +7 -3
  771. package/src/util/ed25519Utils.ts +1 -1
  772. package/src/velocityClient.ts +867 -600
  773. package/src/velocityClientConfig.ts +0 -10
  774. package/tests/{DriftCore → VelocityCore}/decode.test.ts +1 -1
  775. package/tests/{DriftCore → VelocityCore}/fill_trigger.test.ts +1 -1
  776. package/tests/{DriftCore → VelocityCore}/instructions.test.ts +1 -1
  777. package/tests/{DriftCore → VelocityCore}/pdas.test.ts +4 -2
  778. package/tests/amm/test.ts +138 -0
  779. package/tests/ci/verifyConstants.ts +24 -27
  780. package/tests/decode/test.ts +2 -2
  781. package/tests/dlob/helpers.ts +11 -10
  782. package/tests/events/parseLogsForCuUsage.ts +15 -15
  783. package/tests/user/helpers.ts +9 -9
  784. package/tests/user/test.ts +13 -10
  785. package/tsconfig.json +1 -0
  786. package/lib/browser/constants/insuranceFund.d.ts +0 -5
  787. package/lib/browser/constants/insuranceFund.js +0 -9
  788. package/lib/browser/tx/forwardOnlyTxSender.d.ts +0 -37
  789. package/lib/browser/tx/forwardOnlyTxSender.js +0 -92
  790. package/lib/browser/util/deprecatedAlias.d.ts +0 -26
  791. package/lib/browser/util/deprecatedAlias.js +0 -10
  792. package/lib/browser/util/tps.d.ts +0 -2
  793. package/lib/browser/util/tps.js +0 -16
  794. package/lib/node/constants/insuranceFund.d.ts +0 -6
  795. package/lib/node/constants/insuranceFund.d.ts.map +0 -1
  796. package/lib/node/constants/insuranceFund.js +0 -9
  797. package/lib/node/idl/drift.d.ts.map +0 -1
  798. package/lib/node/tx/forwardOnlyTxSender.d.ts +0 -38
  799. package/lib/node/tx/forwardOnlyTxSender.d.ts.map +0 -1
  800. package/lib/node/tx/forwardOnlyTxSender.js +0 -92
  801. package/lib/node/util/deprecatedAlias.d.ts +0 -27
  802. package/lib/node/util/deprecatedAlias.d.ts.map +0 -1
  803. package/lib/node/util/deprecatedAlias.js +0 -10
  804. package/lib/node/util/tps.d.ts +0 -3
  805. package/lib/node/util/tps.d.ts.map +0 -1
  806. package/lib/node/util/tps.js +0 -16
  807. package/src/constants/insuranceFund.ts +0 -8
  808. package/src/tx/forwardOnlyTxSender.ts +0 -145
  809. package/src/util/deprecatedAlias.ts +0 -21
  810. package/src/util/tps.ts +0 -27
  811. /package/lib/browser/idl/{drift.js → velocity.js} +0 -0
  812. /package/lib/node/idl/{drift.js → velocity.js} +0 -0
  813. /package/tests/{DriftCore → VelocityCore}/perp_orders.test.ts +0 -0
  814. /package/tests/{DriftCore → VelocityCore}/remainingAccounts.test.ts +0 -0
  815. /package/tests/{DriftCore → VelocityCore}/settlement_liquidation.test.ts +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
- AMM,
3
2
  HistoricalOracleData,
3
+ MarketStats,
4
4
  OracleGuardRails,
5
5
  OracleSource,
6
6
  OracleValidity,
@@ -64,14 +64,14 @@ export function getOracleValidity(
64
64
  const isNonPositive = oraclePriceData.price.lte(ZERO);
65
65
  const isTooVolatile = BN.max(
66
66
  oraclePriceData.price,
67
- market.amm.historicalOracleData.lastOraclePriceTwap
67
+ market.marketStats.historicalOracleData.lastOraclePriceTwap
68
68
  )
69
69
  .div(
70
70
  BN.max(
71
71
  ONE,
72
72
  BN.min(
73
73
  oraclePriceData.price,
74
- market.amm.historicalOracleData.lastOraclePriceTwap
74
+ market.marketStats.historicalOracleData.lastOraclePriceTwap
75
75
  )
76
76
  )
77
77
  )
@@ -89,16 +89,16 @@ export function getOracleValidity(
89
89
  const oracleDelay = slot.sub(oraclePriceData.slot).sub(oracleStalenessBuffer);
90
90
 
91
91
  let isStaleForAmmImmediate = true;
92
- if (market.amm.oracleSlotDelayOverride != 0) {
92
+ if (market.oracleSlotDelayOverride != 0) {
93
93
  isStaleForAmmImmediate = oracleDelay.gt(
94
- BN.max(new BN(market.amm.oracleSlotDelayOverride), ZERO)
94
+ BN.max(new BN(market.oracleSlotDelayOverride), ZERO)
95
95
  );
96
96
  }
97
97
 
98
98
  let isStaleForAmmLowRisk = false;
99
- if (market.amm.oracleLowRiskSlotDelayOverride != 0) {
99
+ if (market.oracleLowRiskSlotDelayOverride != 0) {
100
100
  isStaleForAmmLowRisk = oracleDelay.gt(
101
- BN.max(new BN(market.amm.oracleLowRiskSlotDelayOverride), ZERO)
101
+ BN.max(new BN(market.oracleLowRiskSlotDelayOverride), ZERO)
102
102
  );
103
103
  } else {
104
104
  isStaleForAmmLowRisk = oracleDelay.gt(
@@ -109,7 +109,7 @@ export function getOracleValidity(
109
109
  let isStaleForMargin = oracleDelay.gt(
110
110
  new BN(oracleGuardRails.validity.slotsBeforeStaleForMargin)
111
111
  );
112
- if (isVariant(market.amm.oracleSource, 'pythLazerStableCoin')) {
112
+ if (isVariant(market.oracleSource, 'pythLazerStableCoin')) {
113
113
  isStaleForMargin = oracleDelay.gt(
114
114
  new BN(oracleGuardRails.validity.slotsBeforeStaleForMargin).muln(3)
115
115
  );
@@ -142,13 +142,13 @@ export function isOracleValid(
142
142
  ): boolean {
143
143
  // checks if oracle is valid for an AMM only fill
144
144
 
145
- const amm = market.amm;
145
+ const stats = market.marketStats;
146
146
  const isOraclePriceNonPositive = oraclePriceData.price.lte(ZERO);
147
147
  const isOraclePriceTooVolatile =
148
148
  oraclePriceData.price
149
- .div(BN.max(ONE, amm.historicalOracleData.lastOraclePriceTwap))
149
+ .div(BN.max(ONE, stats.historicalOracleData.lastOraclePriceTwap))
150
150
  .gt(oracleGuardRails.validity.tooVolatileRatio) ||
151
- amm.historicalOracleData.lastOraclePriceTwap
151
+ stats.historicalOracleData.lastOraclePriceTwap
152
152
  .div(BN.max(ONE, oraclePriceData.price))
153
153
  .gt(oracleGuardRails.validity.tooVolatileRatio);
154
154
 
@@ -177,14 +177,14 @@ export function isOracleValid(
177
177
  }
178
178
 
179
179
  export function isOracleTooDivergent(
180
- amm: AMM,
180
+ marketStats: MarketStats,
181
181
  oraclePriceData: OraclePriceData,
182
182
  oracleGuardRails: OracleGuardRails
183
183
  ): boolean {
184
184
  const oracleSpreadPct = oraclePriceData.price
185
- .sub(amm.historicalOracleData.lastOraclePriceTwap5Min)
185
+ .sub(marketStats.historicalOracleData.lastOraclePriceTwap5Min)
186
186
  .mul(PERCENTAGE_PRECISION)
187
- .div(amm.historicalOracleData.lastOraclePriceTwap5Min);
187
+ .div(marketStats.historicalOracleData.lastOraclePriceTwap5Min);
188
188
  const maxDivergence = BN.max(
189
189
  oracleGuardRails.priceDivergence.oracleTwap5MinPercentDivergence,
190
190
  PERCENTAGE_PRECISION.div(new BN(2))
@@ -230,25 +230,28 @@ export function calculateLiveOracleTwap(
230
230
  }
231
231
 
232
232
  export function calculateLiveOracleStd(
233
- amm: AMM,
233
+ marketStats: MarketStats,
234
234
  oraclePriceData: OraclePriceData,
235
235
  now: BN
236
236
  ): BN {
237
237
  const sinceLastUpdate = BN.max(
238
238
  ONE,
239
- now.sub(amm.historicalOracleData.lastOraclePriceTwapTs)
239
+ now.sub(marketStats.historicalOracleData.lastOraclePriceTwapTs)
240
+ );
241
+ const sinceStart = BN.max(
242
+ ZERO,
243
+ marketStats.fundingPeriod.sub(sinceLastUpdate)
240
244
  );
241
- const sinceStart = BN.max(ZERO, amm.fundingPeriod.sub(sinceLastUpdate));
242
245
 
243
246
  const liveOracleTwap = calculateLiveOracleTwap(
244
- amm.historicalOracleData,
247
+ marketStats.historicalOracleData,
245
248
  oraclePriceData,
246
249
  now,
247
- amm.fundingPeriod
250
+ marketStats.fundingPeriod
248
251
  );
249
252
 
250
253
  const liveOracleTwap5MIN = calculateLiveOracleTwap(
251
- amm.historicalOracleData,
254
+ marketStats.historicalOracleData,
252
255
  oraclePriceData,
253
256
  now,
254
257
  FIVE_MINUTE
@@ -260,14 +263,14 @@ export function calculateLiveOracleStd(
260
263
  );
261
264
 
262
265
  const oracleStd = priceDeltaVsTwap.add(
263
- amm.oracleStd.mul(sinceStart).div(sinceStart.add(sinceLastUpdate))
266
+ marketStats.oracleStd.mul(sinceStart).div(sinceStart.add(sinceLastUpdate))
264
267
  );
265
268
 
266
269
  return oracleStd;
267
270
  }
268
271
 
269
272
  export function getNewOracleConfPct(
270
- amm: AMM,
273
+ marketStats: MarketStats,
271
274
  oraclePriceData: OraclePriceData,
272
275
  reservePrice: BN,
273
276
  now: BN
@@ -276,16 +279,16 @@ export function getNewOracleConfPct(
276
279
 
277
280
  const sinceLastUpdate = BN.max(
278
281
  ZERO,
279
- now.sub(amm.historicalOracleData.lastOraclePriceTwapTs)
282
+ now.sub(marketStats.historicalOracleData.lastOraclePriceTwapTs)
280
283
  );
281
- let lowerBoundConfPct = amm.lastOracleConfPct;
284
+ let lowerBoundConfPct = marketStats.lastOracleConfPct;
282
285
  if (sinceLastUpdate.gt(ZERO)) {
283
286
  const lowerBoundConfDivisor = BN.max(
284
287
  new BN(21).sub(sinceLastUpdate),
285
288
  new BN(5)
286
289
  );
287
- lowerBoundConfPct = amm.lastOracleConfPct.sub(
288
- amm.lastOracleConfPct.div(lowerBoundConfDivisor)
290
+ lowerBoundConfPct = marketStats.lastOracleConfPct.sub(
291
+ marketStats.lastOracleConfPct.div(lowerBoundConfDivisor)
289
292
  );
290
293
  }
291
294
  const confIntervalPct = confInterval
@@ -297,23 +300,6 @@ export function getNewOracleConfPct(
297
300
  return confIntervalPctResult;
298
301
  }
299
302
 
300
- export function trimVaaSignatures(vaa: Buffer, n = 3): Buffer {
301
- const currentNumSignatures = vaa[5];
302
- if (n > currentNumSignatures) {
303
- throw new Error(
304
- "Resulting VAA can't have more signatures than the original VAA"
305
- );
306
- }
307
-
308
- const trimmedVaa = Buffer.concat([
309
- vaa.subarray(0, 6 + n * 66),
310
- vaa.subarray(6 + currentNumSignatures * 66),
311
- ]);
312
-
313
- trimmedVaa[5] = n;
314
- return trimmedVaa;
315
- }
316
-
317
303
  export function getMultipleBetweenOracleSources(
318
304
  firstOracleSource: OracleSource,
319
305
  secondOracleSource: OracleSource
@@ -1,9 +1,9 @@
1
- import { User } from '../user';
2
1
  import {
3
2
  isOneOfVariant,
4
3
  isVariant,
5
4
  PerpMarketAccount,
6
5
  AMM,
6
+ MarketStats,
7
7
  Order,
8
8
  PositionDirection,
9
9
  MarketTypeStr,
@@ -12,7 +12,6 @@ import {
12
12
  } from '../types';
13
13
  import {
14
14
  ZERO,
15
- TWO,
16
15
  ONE,
17
16
  SPOT_MARKET_IMF_PRECISION,
18
17
  MARGIN_PRECISION,
@@ -31,105 +30,6 @@ import {
31
30
  } from './amm';
32
31
  import { calculateSizePremiumLiabilityWeight } from './margin';
33
32
 
34
- export function isOrderRiskIncreasing(user: User, order: Order): boolean {
35
- if (!isVariant(order.status, 'open')) {
36
- return false;
37
- }
38
-
39
- const position =
40
- user.getPerpPosition(order.marketIndex) ||
41
- user.getEmptyPosition(order.marketIndex);
42
-
43
- // if no position exists, it's risk increasing
44
- if (position.baseAssetAmount.eq(ZERO)) {
45
- return true;
46
- }
47
-
48
- // if position is long and order is long
49
- if (position.baseAssetAmount.gt(ZERO) && isVariant(order.direction, 'long')) {
50
- return true;
51
- }
52
-
53
- // if position is short and order is short
54
- if (
55
- position.baseAssetAmount.lt(ZERO) &&
56
- isVariant(order.direction, 'short')
57
- ) {
58
- return true;
59
- }
60
-
61
- const baseAssetAmountToFill = order.baseAssetAmount.sub(
62
- order.baseAssetAmountFilled
63
- );
64
- // if order will flip position
65
- if (baseAssetAmountToFill.gt(position.baseAssetAmount.abs().mul(TWO))) {
66
- return true;
67
- }
68
-
69
- return false;
70
- }
71
-
72
- export function isOrderRiskIncreasingInSameDirection(
73
- user: User,
74
- order: Order
75
- ): boolean {
76
- if (!isVariant(order.status, 'open')) {
77
- return false;
78
- }
79
-
80
- const position =
81
- user.getPerpPosition(order.marketIndex) ||
82
- user.getEmptyPosition(order.marketIndex);
83
-
84
- // if no position exists, it's risk increasing
85
- if (position.baseAssetAmount.eq(ZERO)) {
86
- return true;
87
- }
88
-
89
- // if position is long and order is long
90
- if (position.baseAssetAmount.gt(ZERO) && isVariant(order.direction, 'long')) {
91
- return true;
92
- }
93
-
94
- // if position is short and order is short
95
- if (
96
- position.baseAssetAmount.lt(ZERO) &&
97
- isVariant(order.direction, 'short')
98
- ) {
99
- return true;
100
- }
101
-
102
- return false;
103
- }
104
-
105
- export function isOrderReduceOnly(user: User, order: Order): boolean {
106
- if (!isVariant(order.status, 'open')) {
107
- return false;
108
- }
109
-
110
- const position =
111
- user.getPerpPosition(order.marketIndex) ||
112
- user.getEmptyPosition(order.marketIndex);
113
-
114
- // if position is long and order is long
115
- if (
116
- position.baseAssetAmount.gte(ZERO) &&
117
- isVariant(order.direction, 'long')
118
- ) {
119
- return false;
120
- }
121
-
122
- // if position is short and order is short
123
- if (
124
- position.baseAssetAmount.lte(ZERO) &&
125
- isVariant(order.direction, 'short')
126
- ) {
127
- return false;
128
- }
129
-
130
- return true;
131
- }
132
-
133
33
  export function standardizeBaseAssetAmount(
134
34
  baseAssetAmount: BN,
135
35
  stepSize: BN
@@ -256,6 +156,9 @@ export function calculateBaseAssetAmountForAmmToFulfill(
256
156
  baseAssetAmount = calculateBaseAssetAmountToFillUpToLimitPrice(
257
157
  order,
258
158
  updatedAMM,
159
+ market.marketStats,
160
+ market.orderStepSize,
161
+ market.orderTickSize,
259
162
  limitPrice,
260
163
  mmOraclePriceData
261
164
  );
@@ -265,6 +168,7 @@ export function calculateBaseAssetAmountForAmmToFulfill(
265
168
 
266
169
  const maxBaseAssetAmount = calculateMaxBaseAssetAmountFillable(
267
170
  updatedAMM,
171
+ market.orderStepSize,
268
172
  order.direction
269
173
  );
270
174
 
@@ -274,15 +178,19 @@ export function calculateBaseAssetAmountForAmmToFulfill(
274
178
  export function calculateBaseAssetAmountToFillUpToLimitPrice(
275
179
  order: Order,
276
180
  amm: AMM,
181
+ marketStats: MarketStats,
182
+ orderStepSize: BN,
183
+ orderTickSize: BN,
277
184
  limitPrice: BN,
278
185
  mmOraclePriceData: MMOraclePriceData
279
186
  ): BN {
280
187
  const adjustedLimitPrice = isVariant(order.direction, 'long')
281
- ? limitPrice.sub(amm.orderTickSize)
282
- : limitPrice.add(amm.orderTickSize);
188
+ ? limitPrice.sub(orderTickSize)
189
+ : limitPrice.add(orderTickSize);
283
190
 
284
191
  const [maxAmountToTrade, direction] = calculateMaxBaseAssetAmountToTrade(
285
192
  amm,
193
+ marketStats,
286
194
  adjustedLimitPrice,
287
195
  order.direction,
288
196
  mmOraclePriceData
@@ -290,7 +198,7 @@ export function calculateBaseAssetAmountToFillUpToLimitPrice(
290
198
 
291
199
  const baseAssetAmount = standardizeBaseAssetAmount(
292
200
  maxAmountToTrade,
293
- amm.orderStepSize
201
+ orderStepSize
294
202
  );
295
203
 
296
204
  // Check that directions are the same
@@ -368,10 +276,6 @@ export function isRestingLimitOrder(order: Order, slot: number): boolean {
368
276
  return order.postOnly || isAuctionComplete(order, slot);
369
277
  }
370
278
 
371
- export function isTakingOrder(order: Order, slot: number): boolean {
372
- return isMarketOrder(order) || !isRestingLimitOrder(order, slot);
373
- }
374
-
375
279
  const FLAG_IS_SIGNED_MSG = 0x01;
376
280
  export function isSignedMsgOrder(order: Order): boolean {
377
281
  return (order.bitFlags & FLAG_IS_SIGNED_MSG) !== 0;
@@ -461,7 +365,7 @@ export function maxSizeForTargetLiabilityWeightBN(
461
365
  }
462
366
 
463
367
  // cap at max OI
464
- const maxOpenInterest = market.amm.maxOpenInterest;
368
+ const maxOpenInterest = market.maxOpenInterest;
465
369
  if (lo.gt(maxOpenInterest)) {
466
370
  return maxOpenInterest;
467
371
  }
@@ -53,6 +53,7 @@ export function calculateBaseAssetValue(
53
53
  const { baseAssetReserve, quoteAssetReserve, sqrtK, newPeg } =
54
54
  calculateUpdatedAMMSpreadReserves(
55
55
  market.amm,
56
+ market.marketStats,
56
57
  directionToClose,
57
58
  mmOraclePriceData,
58
59
  latestSlot
@@ -90,6 +91,9 @@ export function calculateBaseAssetValue(
90
91
  .mul(prepegAmm.pegMultiplier)
91
92
  .div(AMM_TIMES_PEG_TO_QUOTE_PRECISION_RATIO)
92
93
  .add(ONE);
94
+
95
+ default:
96
+ throw new Error('Invalid position direction to close');
93
97
  }
94
98
  }
95
99
 
@@ -213,9 +217,9 @@ export function calculateUnsettledFundingPnl(
213
217
 
214
218
  let ammCumulativeFundingRate: BN;
215
219
  if (perpPosition.baseAssetAmount.gt(ZERO)) {
216
- ammCumulativeFundingRate = market.amm.cumulativeFundingRateLong;
220
+ ammCumulativeFundingRate = market.cumulativeFundingRateLong;
217
221
  } else {
218
- ammCumulativeFundingRate = market.amm.cumulativeFundingRateShort;
222
+ ammCumulativeFundingRate = market.cumulativeFundingRateShort;
219
223
  }
220
224
 
221
225
  const perPositionFundingRate = ammCumulativeFundingRate
@@ -228,16 +232,6 @@ export function calculateUnsettledFundingPnl(
228
232
  return perPositionFundingRate;
229
233
  }
230
234
 
231
- /**
232
- * @deprecated use calculateUnsettledFundingPnl or calculateFeesAndFundingPnl instead
233
- */
234
- export function calculatePositionFundingPNL(
235
- market: PerpMarketAccount,
236
- perpPosition: PerpPosition
237
- ): BN {
238
- return calculateUnsettledFundingPnl(market, perpPosition);
239
- }
240
-
241
235
  export function positionIsAvailable(position: PerpPosition): boolean {
242
236
  return (
243
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
- }
@@ -25,14 +25,14 @@ export type OrderFillSimulation = {
25
25
  tokenValue: BN;
26
26
  weight: BN;
27
27
  weightedTokenValue: BN;
28
- freeCollateralContribution;
28
+ freeCollateralContribution: BN;
29
29
  };
30
30
 
31
31
  export function getWorstCaseTokenAmounts(
32
32
  spotPosition: SpotPosition,
33
33
  spotMarketAccount: SpotMarketAccount,
34
34
  strictOraclePrice: StrictOraclePrice,
35
- marginCategory: MarginCategory,
35
+ marginCategory: MarginCategory | undefined,
36
36
  customMarginRatio?: number,
37
37
  includeOpenOrders: boolean = true
38
38
  ): OrderFillSimulation {
@@ -108,7 +108,7 @@ export function calculateWeightedTokenValue(
108
108
  tokenValue: BN,
109
109
  oraclePrice: BN,
110
110
  spotMarket: SpotMarketAccount,
111
- marginCategory: MarginCategory,
111
+ marginCategory: MarginCategory | undefined,
112
112
  customMarginRatio?: number
113
113
  ): { weight: BN; weightedTokenValue: BN } {
114
114
  let weight: BN;
@@ -158,7 +158,7 @@ export function simulateOrderFill(
158
158
  openOrders: BN,
159
159
  strictOraclePrice: StrictOraclePrice,
160
160
  spotMarket: SpotMarketAccount,
161
- marginCategory: MarginCategory,
161
+ marginCategory: MarginCategory | undefined,
162
162
  customMarginRatio?: number
163
163
  ): OrderFillSimulation {
164
164
  const ordersValue = getTokenValue(openOrders.neg(), spotMarket.decimals, {
package/src/math/state.ts CHANGED
@@ -38,11 +38,3 @@ export function useMedianTriggerPrice(stateAccount: StateAccount): boolean {
38
38
  (stateAccount.featureBitFlags & FeatureBitFlags.MEDIAN_TRIGGER_PRICE) > 0
39
39
  );
40
40
  }
41
-
42
- export function builderCodesEnabled(stateAccount: StateAccount): boolean {
43
- return (stateAccount.featureBitFlags & FeatureBitFlags.BUILDER_CODES) > 0;
44
- }
45
-
46
- export function builderReferralEnabled(stateAccount: StateAccount): boolean {
47
- return (stateAccount.featureBitFlags & FeatureBitFlags.BUILDER_REFERRAL) > 0;
48
- }