@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
package/tests/amm/test.ts CHANGED
@@ -7,6 +7,7 @@ import {
7
7
  PERCENTAGE_PRECISION,
8
8
  calculateSpread,
9
9
  calculateSpreadBN,
10
+ calculateSpreadFundingBiasScale,
10
11
  ZERO,
11
12
  sigNum,
12
13
  ONE,
@@ -57,6 +58,9 @@ class AMMSpreadTerms {
57
58
  halfRevenueRetreatAmount: number;
58
59
  longSpreadwRevRetreat: number;
59
60
  shortSpreadwRevRetreat: number;
61
+ fundingBiasScale: number;
62
+ longSpreadwFundingBias: number;
63
+ shortSpreadwFundingBias: number;
60
64
  totalSpread: number;
61
65
  longSpread: number;
62
66
  shortSpread: number;
@@ -229,6 +233,116 @@ describe('AMM Tests', () => {
229
233
  assert((3500 * iscale) / 1e6 == 0.06566799749999999); //6.5%
230
234
  });
231
235
 
236
+ it('Funding Bias Scale', () => {
237
+ // values pinned to the program's calculate_spread_funding_bias_scale tests
238
+ const twap = new BN(100).mul(PRICE_PRECISION); // $100
239
+ // hourly rate matching the funding offset floor f_ref (~10.95%/yr):
240
+ // fNorm = 1_250_000 * 1e6 / 1e8 * 24 = 300_000
241
+ const saturatingRate = new BN(1_250_000);
242
+ const qAmmLong = BASE_PRECISION.neg(); // users net short
243
+ const qAmmShort = BASE_PRECISION; // users net long
244
+ const one = BID_ASK_SPREAD_PRECISION.toNumber();
245
+
246
+ // s = 0 disables
247
+ assert(
248
+ calculateSpreadFundingBiasScale(qAmmLong, saturatingRate, twap, 0) == one
249
+ );
250
+
251
+ // f * q >= 0: vAMM receives (or zero rate/inventory), β = 1
252
+ assert(
253
+ calculateSpreadFundingBiasScale(qAmmShort, saturatingRate, twap, 50) ==
254
+ one
255
+ );
256
+ assert(
257
+ calculateSpreadFundingBiasScale(
258
+ qAmmLong,
259
+ saturatingRate.neg(),
260
+ twap,
261
+ 50
262
+ ) == one
263
+ );
264
+ assert(
265
+ calculateSpreadFundingBiasScale(ZERO, saturatingRate, twap, 50) == one
266
+ );
267
+ assert(calculateSpreadFundingBiasScale(qAmmLong, ZERO, twap, 50) == one);
268
+
269
+ // paying at f_ref: ρ ~= 1, β ~= 1 + s/100
270
+ assert(
271
+ calculateSpreadFundingBiasScale(qAmmLong, saturatingRate, twap, 50) ==
272
+ 1_499_950
273
+ );
274
+ assert(
275
+ calculateSpreadFundingBiasScale(
276
+ qAmmShort,
277
+ saturatingRate.neg(),
278
+ twap,
279
+ 50
280
+ ) == 1_499_950
281
+ );
282
+
283
+ // half ramp: β = 1 + s/100 * 0.5
284
+ assert(
285
+ calculateSpreadFundingBiasScale(
286
+ qAmmLong,
287
+ saturatingRate.divn(2),
288
+ twap,
289
+ 50
290
+ ) == 1_249_975
291
+ );
292
+
293
+ // past f_ref the ramp clamps at 1: β = 1 + s/100 exactly
294
+ assert(
295
+ calculateSpreadFundingBiasScale(
296
+ qAmmLong,
297
+ saturatingRate.muln(10),
298
+ twap,
299
+ 100
300
+ ) ==
301
+ 2 * one
302
+ );
303
+
304
+ // integration: paying side doubles at s = 100, other side untouched,
305
+ // mirrors the program's calculate_spread_funding_bias_tests
306
+ const calc = (rate: BN, s: number) =>
307
+ calculateSpreadBN(
308
+ 1000, // baseSpread
309
+ ZERO,
310
+ ZERO,
311
+ 2000, // maxSpread
312
+ AMM_RESERVE_PRECISION.muln(10),
313
+ AMM_RESERVE_PRECISION.muln(10),
314
+ new BN(34000000),
315
+ new BN(-1000), // tiny vAMM-long inventory so σ = λ = 1
316
+ new BN(34562304),
317
+ QUOTE_PRECISION.muln(10),
318
+ ZERO,
319
+ AMM_RESERVE_PRECISION.muln(10),
320
+ ZERO,
321
+ AMM_RESERVE_PRECISION.muln(100000),
322
+ ZERO,
323
+ ZERO,
324
+ ZERO,
325
+ ZERO,
326
+ ZERO,
327
+ 0,
328
+ rate,
329
+ twap,
330
+ s
331
+ ) as [number, number];
332
+
333
+ const [long0, short0] = calc(saturatingRate.muln(10), 0);
334
+ assert(long0 == 500);
335
+ assert(short0 == 500);
336
+
337
+ const [long1, short1] = calc(saturatingRate.muln(10), 100);
338
+ assert(long1 == long0);
339
+ assert(short1 == short0 * 2);
340
+
341
+ const [long2, short2] = calc(saturatingRate.muln(10).neg(), 100);
342
+ assert(long2 == long0);
343
+ assert(short2 == short0);
344
+ });
345
+
232
346
  it('Various Spreads', () => {
233
347
  const baseSpread: number = 0.025 * 1e6;
234
348
  const lastOracleReservePriceSpreadPct: BN = ZERO;
@@ -308,6 +422,9 @@ describe('AMM Tests', () => {
308
422
  shortIntensity,
309
423
  volume24H,
310
424
  0,
425
+ ZERO,
426
+ ZERO,
427
+ 0,
311
428
  true
312
429
  );
313
430
  // console.log(terms1);
@@ -341,6 +458,9 @@ describe('AMM Tests', () => {
341
458
  new BN(72230366233),
342
459
  new BN(432067603632),
343
460
  0,
461
+ ZERO,
462
+ ZERO,
463
+ 0,
344
464
  true
345
465
  );
346
466
 
@@ -373,6 +493,9 @@ describe('AMM Tests', () => {
373
493
  new BN(72230366233),
374
494
  new BN(432067603632),
375
495
  0,
496
+ ZERO,
497
+ ZERO,
498
+ 0,
376
499
  true
377
500
  );
378
501
 
@@ -407,6 +530,9 @@ describe('AMM Tests', () => {
407
530
  new BN(72230366233),
408
531
  new BN(432067603632),
409
532
  0,
533
+ ZERO,
534
+ ZERO,
535
+ 0,
410
536
  true
411
537
  );
412
538
 
@@ -441,6 +567,9 @@ describe('AMM Tests', () => {
441
567
  new BN(243875031),
442
568
  new BN(130017761029),
443
569
  0,
570
+ ZERO,
571
+ ZERO,
572
+ 0,
444
573
  true
445
574
  );
446
575
 
@@ -607,6 +736,9 @@ describe('AMM Tests', () => {
607
736
  new BN(suiExample.amm.shortIntensityVolume),
608
737
  new BN(suiExample.amm.volume24H),
609
738
  0,
739
+ ZERO,
740
+ ZERO,
741
+ 0,
610
742
  true
611
743
  );
612
744
 
@@ -647,6 +779,9 @@ describe('AMM Tests', () => {
647
779
  new BN(suiExample.amm.shortIntensityVolume),
648
780
  new BN(suiExample.amm.volume24H),
649
781
  0,
782
+ ZERO,
783
+ ZERO,
784
+ 0,
650
785
  true
651
786
  );
652
787
  console.log(termsSuiExampleMod1);
@@ -676,6 +811,9 @@ describe('AMM Tests', () => {
676
811
  new BN(suiExample.amm.shortIntensityVolume),
677
812
  new BN(suiExample.amm.volume24H),
678
813
  0,
814
+ ZERO,
815
+ ZERO,
816
+ 0,
679
817
  true
680
818
  );
681
819
 
@@ -706,6 +844,7 @@ describe('AMM Tests', () => {
706
844
  const myMockPerpMarkets = _.cloneDeep(mockPerpMarkets);
707
845
  const mockMarket1 = myMockPerpMarkets[0];
708
846
  const mockAmm = mockMarket1.amm;
847
+ const mockMarketStats = mockMarket1.marketStats;
709
848
  const now = new BN(new Date().getTime() / 1000); //todo
710
849
 
711
850
  const oraclePriceData = {
@@ -716,7 +855,12 @@ describe('AMM Tests', () => {
716
855
  isMMOracleActive: true,
717
856
  } as MMOraclePriceData;
718
857
 
719
- const reserves = calculateSpreadReserves(mockAmm, oraclePriceData, now);
858
+ const reserves = calculateSpreadReserves(
859
+ mockAmm,
860
+ mockMarketStats,
861
+ oraclePriceData,
862
+ now
863
+ );
720
864
  assert(reserves[0].baseAssetReserve.eq(new BN('1000000000')));
721
865
  assert(reserves[0].quoteAssetReserve.eq(new BN('12000000000')));
722
866
  assert(reserves[1].baseAssetReserve.eq(new BN('1000000000')));
@@ -733,19 +877,19 @@ describe('AMM Tests', () => {
733
877
  mockAmm.baseSpread = 2500;
734
878
  mockAmm.maxSpread = 25000;
735
879
 
736
- mockAmm.last24HAvgFundingRate = new BN(7590328523);
880
+ mockMarketStats.last24HAvgFundingRate = new BN(7590328523);
737
881
 
738
- mockAmm.lastMarkPriceTwap = new BN(
882
+ mockMarketStats.lastMarkPriceTwap = new BN(
739
883
  (oraclePriceData.price.toNumber() / 1e6 - 0.01) * 1e6
740
884
  );
741
- mockAmm.historicalOracleData.lastOraclePriceTwap = new BN(
885
+ mockMarketStats.historicalOracleData.lastOraclePriceTwap = new BN(
742
886
  (oraclePriceData.price.toNumber() / 1e6 + 0.015) * 1e6
743
887
  );
744
888
 
745
- mockAmm.historicalOracleData.lastOraclePriceTwap5Min = new BN(
889
+ mockMarketStats.historicalOracleData.lastOraclePriceTwap5Min = new BN(
746
890
  (oraclePriceData.price.toNumber() / 1e6 + 0.005) * 1e6
747
891
  );
748
- mockAmm.lastMarkPriceTwap5Min = new BN(
892
+ mockMarketStats.lastMarkPriceTwap5Min = new BN(
749
893
  (oraclePriceData.price.toNumber() / 1e6 - 0.005) * 1e6
750
894
  );
751
895
 
@@ -771,18 +915,27 @@ describe('AMM Tests', () => {
771
915
  .div(reservePrice);
772
916
 
773
917
  // now = now || new BN(new Date().getTime() / 1000); //todo
774
- const liveOracleStd = calculateLiveOracleStd(mockAmm, oraclePriceData, now);
918
+ const liveOracleStd = calculateLiveOracleStd(
919
+ mockMarketStats,
920
+ oraclePriceData,
921
+ now
922
+ );
775
923
  console.log('reservePrice:', reservePrice.toString());
776
924
  console.log('targetMarkSpreadPct:', targetMarkSpreadPct.toString());
777
925
  console.log('confIntervalPct:', confIntervalPct.toString());
778
926
  console.log('liveOracleStd:', liveOracleStd.toString());
779
927
 
780
- const tt = calculateSpread(mockAmm, oraclePriceData, now);
928
+ const tt = calculateSpread(mockAmm, mockMarketStats, oraclePriceData, now);
781
929
  console.log(tt);
782
930
 
783
931
  console.log('amm.baseAssetReserve:', mockAmm.baseAssetReserve.toString());
784
932
  assert(mockAmm.baseAssetReserve.eq(new BN('1000000000')));
785
- const reserves2 = calculateSpreadReserves(mockAmm, oraclePriceData, now);
933
+ const reserves2 = calculateSpreadReserves(
934
+ mockAmm,
935
+ mockMarketStats,
936
+ oraclePriceData,
937
+ now
938
+ );
786
939
  console.log(reserves2[0].baseAssetReserve.toString());
787
940
  console.log(reserves2[0].quoteAssetReserve.toString());
788
941
 
@@ -818,12 +971,12 @@ describe('AMM Tests', () => {
818
971
  );
819
972
  const referencePriceOffset = calculateReferencePriceOffset(
820
973
  reservePrice,
821
- mockAmm.last24HAvgFundingRate,
974
+ mockMarketStats.last24HAvgFundingRate,
822
975
  liquidityFractionSigned,
823
- mockAmm.historicalOracleData.lastOraclePriceTwap5Min,
824
- mockAmm.lastMarkPriceTwap5Min,
825
- mockAmm.historicalOracleData.lastOraclePriceTwap,
826
- mockAmm.lastMarkPriceTwap,
976
+ mockMarketStats.historicalOracleData.lastOraclePriceTwap5Min,
977
+ mockMarketStats.lastMarkPriceTwap5Min,
978
+ mockMarketStats.historicalOracleData.lastOraclePriceTwap,
979
+ mockMarketStats.lastMarkPriceTwap,
827
980
  maxOffset
828
981
  );
829
982
  console.log('referencePriceOffset:', referencePriceOffset.toString());
@@ -831,7 +984,12 @@ describe('AMM Tests', () => {
831
984
  assert(referencePriceOffset.eq(new BN(maxOffset)));
832
985
 
833
986
  // mockAmm.curveUpdateIntensity = 100;
834
- const reserves3 = calculateSpreadReserves(mockAmm, oraclePriceData, now);
987
+ const reserves3 = calculateSpreadReserves(
988
+ mockAmm,
989
+ mockMarketStats,
990
+ oraclePriceData,
991
+ now
992
+ );
835
993
  console.log(reserves3[0].baseAssetReserve.toString());
836
994
  console.log(reserves3[0].quoteAssetReserve.toString());
837
995
 
@@ -856,7 +1014,12 @@ describe('AMM Tests', () => {
856
1014
  assert(p2.eq(new BN(13828180)));
857
1015
 
858
1016
  mockAmm.curveUpdateIntensity = 110;
859
- const reserves4 = calculateSpreadReserves(mockAmm, oraclePriceData, now);
1017
+ const reserves4 = calculateSpreadReserves(
1018
+ mockAmm,
1019
+ mockMarketStats,
1020
+ oraclePriceData,
1021
+ now
1022
+ );
860
1023
 
861
1024
  assert(reserves4[0].baseAssetReserve.eq(new BN('1100068201')));
862
1025
  assert(reserves4[0].quoteAssetReserve.eq(new BN('909034546')));
@@ -879,7 +1042,12 @@ describe('AMM Tests', () => {
879
1042
  assert(p2RF.eq(new BN(13828180)));
880
1043
  // no ref price offset at 100
881
1044
  mockAmm.curveUpdateIntensity = 100;
882
- const reserves5 = calculateSpreadReserves(mockAmm, oraclePriceData, now);
1045
+ const reserves5 = calculateSpreadReserves(
1046
+ mockAmm,
1047
+ mockMarketStats,
1048
+ oraclePriceData,
1049
+ now
1050
+ );
883
1051
 
884
1052
  assert(reserves5[0].baseAssetReserve.eq(new BN('1100068201')));
885
1053
  assert(reserves5[0].quoteAssetReserve.eq(new BN('909034546')));
@@ -907,6 +1075,7 @@ describe('AMM Tests', () => {
907
1075
  const myMockPerpMarkets = _.cloneDeep(mockPerpMarkets);
908
1076
  const mockMarket1 = myMockPerpMarkets[0];
909
1077
  const mockAmm = mockMarket1.amm;
1078
+ const mockMarketStats = mockMarket1.marketStats;
910
1079
  const now = new BN(new Date().getTime() / 1000); //todo
911
1080
 
912
1081
  const oraclePriceData = {
@@ -917,7 +1086,12 @@ describe('AMM Tests', () => {
917
1086
  isMMOracleActive: true,
918
1087
  } as MMOraclePriceData;
919
1088
 
920
- const reserves = calculateSpreadReserves(mockAmm, oraclePriceData, now);
1089
+ const reserves = calculateSpreadReserves(
1090
+ mockAmm,
1091
+ mockMarketStats,
1092
+ oraclePriceData,
1093
+ now
1094
+ );
921
1095
  assert(reserves[0].baseAssetReserve.eq(new BN('1000000000')));
922
1096
  assert(reserves[0].quoteAssetReserve.eq(new BN('12000000000')));
923
1097
  assert(reserves[1].baseAssetReserve.eq(new BN('1000000000')));
@@ -934,19 +1108,19 @@ describe('AMM Tests', () => {
934
1108
  mockAmm.baseSpread = 2500;
935
1109
  mockAmm.maxSpread = 25000;
936
1110
 
937
- mockAmm.last24HAvgFundingRate = new BN(-7590328523);
1111
+ mockMarketStats.last24HAvgFundingRate = new BN(-7590328523);
938
1112
 
939
- mockAmm.lastMarkPriceTwap = new BN(
1113
+ mockMarketStats.lastMarkPriceTwap = new BN(
940
1114
  (oraclePriceData.price.toNumber() / 1e6 + 0.01) * 1e6
941
1115
  );
942
- mockAmm.historicalOracleData.lastOraclePriceTwap = new BN(
1116
+ mockMarketStats.historicalOracleData.lastOraclePriceTwap = new BN(
943
1117
  (oraclePriceData.price.toNumber() / 1e6 - 0.015) * 1e6
944
1118
  );
945
1119
 
946
- mockAmm.historicalOracleData.lastOraclePriceTwap5Min = new BN(
1120
+ mockMarketStats.historicalOracleData.lastOraclePriceTwap5Min = new BN(
947
1121
  (oraclePriceData.price.toNumber() / 1e6 + 0.005) * 1e6
948
1122
  );
949
- mockAmm.lastMarkPriceTwap5Min = new BN(
1123
+ mockMarketStats.lastMarkPriceTwap5Min = new BN(
950
1124
  (oraclePriceData.price.toNumber() / 1e6 - 0.005) * 1e6
951
1125
  );
952
1126
 
@@ -972,19 +1146,28 @@ describe('AMM Tests', () => {
972
1146
  .div(reservePrice);
973
1147
 
974
1148
  // now = now || new BN(new Date().getTime() / 1000); //todo
975
- const liveOracleStd = calculateLiveOracleStd(mockAmm, oraclePriceData, now);
1149
+ const liveOracleStd = calculateLiveOracleStd(
1150
+ mockMarketStats,
1151
+ oraclePriceData,
1152
+ now
1153
+ );
976
1154
  console.log('reservePrice:', reservePrice.toString());
977
1155
  console.log('targetMarkSpreadPct:', targetMarkSpreadPct.toString());
978
1156
  console.log('confIntervalPct:', confIntervalPct.toString());
979
1157
 
980
1158
  console.log('liveOracleStd:', liveOracleStd.toString());
981
1159
 
982
- const tt = calculateSpread(mockAmm, oraclePriceData, now);
1160
+ const tt = calculateSpread(mockAmm, mockMarketStats, oraclePriceData, now);
983
1161
  console.log(tt);
984
1162
 
985
1163
  console.log('amm.baseAssetReserve:', mockAmm.baseAssetReserve.toString());
986
1164
  assert(mockAmm.baseAssetReserve.eq(new BN('1000000000')));
987
- const reserves2 = calculateSpreadReserves(mockAmm, oraclePriceData, now);
1165
+ const reserves2 = calculateSpreadReserves(
1166
+ mockAmm,
1167
+ mockMarketStats,
1168
+ oraclePriceData,
1169
+ now
1170
+ );
988
1171
  console.log(reserves2[1].baseAssetReserve.toString());
989
1172
  console.log(reserves2[1].quoteAssetReserve.toString());
990
1173
 
@@ -1020,12 +1203,12 @@ describe('AMM Tests', () => {
1020
1203
  );
1021
1204
  const referencePriceOffset = calculateReferencePriceOffset(
1022
1205
  reservePrice,
1023
- mockAmm.last24HAvgFundingRate,
1206
+ mockMarketStats.last24HAvgFundingRate,
1024
1207
  liquidityFractionSigned,
1025
- mockAmm.historicalOracleData.lastOraclePriceTwap5Min,
1026
- mockAmm.lastMarkPriceTwap5Min,
1027
- mockAmm.historicalOracleData.lastOraclePriceTwap,
1028
- mockAmm.lastMarkPriceTwap,
1208
+ mockMarketStats.historicalOracleData.lastOraclePriceTwap5Min,
1209
+ mockMarketStats.lastMarkPriceTwap5Min,
1210
+ mockMarketStats.historicalOracleData.lastOraclePriceTwap,
1211
+ mockMarketStats.lastMarkPriceTwap,
1029
1212
  maxOffset
1030
1213
  );
1031
1214
  console.log('referencePriceOffset:', referencePriceOffset.toString());
@@ -1034,7 +1217,12 @@ describe('AMM Tests', () => {
1034
1217
  // assert(referencePriceOffset.eq(new BN(maxOffset)));
1035
1218
 
1036
1219
  // mockAmm.curveUpdateIntensity = 100;
1037
- const reserves3 = calculateSpreadReserves(mockAmm, oraclePriceData, now);
1220
+ const reserves3 = calculateSpreadReserves(
1221
+ mockAmm,
1222
+ mockMarketStats,
1223
+ oraclePriceData,
1224
+ now
1225
+ );
1038
1226
  console.log(reserves3[0].baseAssetReserve.toString());
1039
1227
  console.log(reserves3[0].quoteAssetReserve.toString());
1040
1228
 
@@ -1059,7 +1247,12 @@ describe('AMM Tests', () => {
1059
1247
  assert(p2.eq(new BN(16401163)));
1060
1248
 
1061
1249
  mockAmm.curveUpdateIntensity = 110;
1062
- const reserves4 = calculateSpreadReserves(mockAmm, oraclePriceData, now);
1250
+ const reserves4 = calculateSpreadReserves(
1251
+ mockAmm,
1252
+ mockMarketStats,
1253
+ oraclePriceData,
1254
+ now
1255
+ );
1063
1256
 
1064
1257
  assert(reserves4[0].baseAssetReserve.eq(new BN('999999998')));
1065
1258
  assert(reserves4[0].quoteAssetReserve.eq(new BN('1000000000')));
@@ -1083,7 +1276,12 @@ describe('AMM Tests', () => {
1083
1276
 
1084
1277
  // no ref price offset at 100
1085
1278
  mockAmm.curveUpdateIntensity = 100;
1086
- const reserves5 = calculateSpreadReserves(mockAmm, oraclePriceData, now);
1279
+ const reserves5 = calculateSpreadReserves(
1280
+ mockAmm,
1281
+ mockMarketStats,
1282
+ oraclePriceData,
1283
+ now
1284
+ );
1087
1285
 
1088
1286
  assert(reserves5[0].baseAssetReserve.eq(new BN('999999998')));
1089
1287
  assert(reserves5[0].quoteAssetReserve.eq(new BN('1000000000')));
@@ -1112,7 +1310,7 @@ describe('AMM Tests', () => {
1112
1310
  it('live update functions', () => {
1113
1311
  const myMockPerpMarkets = _.cloneDeep(mockPerpMarkets);
1114
1312
  const mockMarket1 = myMockPerpMarkets[0];
1115
- const mockAmm = mockMarket1.amm;
1313
+ const mockMarketStats = mockMarket1.marketStats;
1116
1314
  const now = new BN(new Date().getTime() / 1000); //todo
1117
1315
  const slot = 999999999;
1118
1316
 
@@ -1123,29 +1321,34 @@ describe('AMM Tests', () => {
1123
1321
  hasSufficientNumberOfDataPoints: true,
1124
1322
  isMMOracleActive: true,
1125
1323
  } as MMOraclePriceData;
1126
- mockAmm.oracleStd = new BN(0.18 * PRICE_PRECISION.toNumber());
1127
- mockAmm.fundingPeriod = new BN(3600);
1128
- mockAmm.historicalOracleData.lastOraclePriceTwap = oraclePriceData.price
1129
- .mul(new BN(999))
1130
- .div(new BN(1000));
1131
- mockAmm.historicalOracleData.lastOraclePriceTwapTs = now.sub(new BN(11));
1324
+ mockMarketStats.oracleStd = new BN(0.18 * PRICE_PRECISION.toNumber());
1325
+ mockMarketStats.fundingPeriod = new BN(3600);
1326
+ mockMarketStats.historicalOracleData.lastOraclePriceTwap =
1327
+ oraclePriceData.price.mul(new BN(999)).div(new BN(1000));
1328
+ mockMarketStats.historicalOracleData.lastOraclePriceTwapTs = now.sub(
1329
+ new BN(11)
1330
+ );
1132
1331
 
1133
1332
  const liveOracleTwap = calculateLiveOracleTwap(
1134
- mockAmm.historicalOracleData,
1333
+ mockMarketStats.historicalOracleData,
1135
1334
  oraclePriceData,
1136
1335
  now,
1137
- mockAmm.fundingPeriod
1336
+ mockMarketStats.fundingPeriod
1138
1337
  );
1139
1338
  console.log('liveOracleTwap:', liveOracleTwap.toNumber());
1140
1339
  assert(liveOracleTwap.eq(new BN(13539488)));
1141
1340
 
1142
- const liveOracleStd = calculateLiveOracleStd(mockAmm, oraclePriceData, now);
1341
+ const liveOracleStd = calculateLiveOracleStd(
1342
+ mockMarketStats,
1343
+ oraclePriceData,
1344
+ now
1345
+ );
1143
1346
  assert(liveOracleStd.eq(new BN(13732450)));
1144
1347
 
1145
- mockAmm.lastOracleConfPct = new BN(150000);
1348
+ mockMarketStats.lastOracleConfPct = new BN(150000);
1146
1349
  const reservePrice = new BN(13.553 * PRICE_PRECISION.toNumber());
1147
1350
  const newConfPct = getNewOracleConfPct(
1148
- mockAmm,
1351
+ mockMarketStats,
1149
1352
  oraclePriceData,
1150
1353
  reservePrice,
1151
1354
  now
@@ -1153,7 +1356,9 @@ describe('AMM Tests', () => {
1153
1356
  console.log('newConfPct:', newConfPct.toString());
1154
1357
 
1155
1358
  assert(
1156
- now.sub(mockAmm.historicalOracleData.lastOraclePriceTwapTs).gt(ZERO)
1359
+ now
1360
+ .sub(mockMarketStats.historicalOracleData.lastOraclePriceTwapTs)
1361
+ .gt(ZERO)
1157
1362
  );
1158
1363
 
1159
1364
  assert(newConfPct.eq(new BN(135000)));
@@ -1296,8 +1501,8 @@ describe('AMM Tests', () => {
1296
1501
  // make it like RNDR
1297
1502
  const now = new BN(1688878353);
1298
1503
 
1299
- mockMarket1.amm.fundingPeriod = new BN(3600);
1300
- mockMarket1.amm.lastFundingRateTs = new BN(1688860817);
1504
+ mockMarket1.marketStats.fundingPeriod = new BN(3600);
1505
+ mockMarket1.lastFundingRateTs = new BN(1688860817);
1301
1506
 
1302
1507
  const currentMarkPrice = new BN(1.9843 * PRICE_PRECISION.toNumber()); // trading at a premium
1303
1508
  const mmOraclePriceData: MMOraclePriceData = {
@@ -1307,27 +1512,27 @@ describe('AMM Tests', () => {
1307
1512
  hasSufficientNumberOfDataPoints: true,
1308
1513
  isMMOracleActive: true,
1309
1514
  };
1310
- mockMarket1.amm.historicalOracleData.lastOraclePrice = new BN(
1515
+ mockMarket1.marketStats.historicalOracleData.lastOraclePrice = new BN(
1311
1516
  1.9535 * PRICE_PRECISION.toNumber()
1312
1517
  );
1313
1518
 
1314
1519
  // mockMarket1.amm.pegMultiplier = new BN(1.897573 * 1e3);
1315
1520
 
1316
- mockMarket1.amm.lastMarkPriceTwap = new BN(
1521
+ mockMarket1.marketStats.lastMarkPriceTwap = new BN(
1317
1522
  1.945594 * PRICE_PRECISION.toNumber()
1318
1523
  );
1319
- mockMarket1.amm.lastBidPriceTwap = new BN(
1524
+ mockMarket1.marketStats.lastBidPriceTwap = new BN(
1320
1525
  1.941629 * PRICE_PRECISION.toNumber()
1321
1526
  );
1322
- mockMarket1.amm.lastAskPriceTwap = new BN(
1527
+ mockMarket1.marketStats.lastAskPriceTwap = new BN(
1323
1528
  1.94956 * PRICE_PRECISION.toNumber()
1324
1529
  );
1325
- mockMarket1.amm.lastMarkPriceTwapTs = new BN(1688877729);
1530
+ mockMarket1.marketStats.lastMarkPriceTwapTs = new BN(1688877729);
1326
1531
 
1327
- mockMarket1.amm.historicalOracleData.lastOraclePriceTwap = new BN(
1532
+ mockMarket1.marketStats.historicalOracleData.lastOraclePriceTwap = new BN(
1328
1533
  1.942449 * PRICE_PRECISION.toNumber()
1329
1534
  );
1330
- mockMarket1.amm.historicalOracleData.lastOraclePriceTwapTs = new BN(
1535
+ mockMarket1.marketStats.historicalOracleData.lastOraclePriceTwapTs = new BN(
1331
1536
  1688878333
1332
1537
  );
1333
1538
 
@@ -1372,8 +1577,8 @@ describe('AMM Tests', () => {
1372
1577
  // make it like OP
1373
1578
  const now = new BN(1688881915);
1374
1579
 
1375
- mockMarket1.amm.fundingPeriod = new BN(3600);
1376
- mockMarket1.amm.lastFundingRateTs = new BN(1688864415);
1580
+ mockMarket1.marketStats.fundingPeriod = new BN(3600);
1581
+ mockMarket1.lastFundingRateTs = new BN(1688864415);
1377
1582
 
1378
1583
  const currentMarkPrice = new BN(1.2242 * PRICE_PRECISION.toNumber()); // trading at a premium
1379
1584
  const mmOraclePriceData: MMOraclePriceData = {
@@ -1383,27 +1588,27 @@ describe('AMM Tests', () => {
1383
1588
  hasSufficientNumberOfDataPoints: true,
1384
1589
  isMMOracleActive: true,
1385
1590
  };
1386
- mockMarket1.amm.historicalOracleData.lastOraclePrice = new BN(
1591
+ mockMarket1.marketStats.historicalOracleData.lastOraclePrice = new BN(
1387
1592
  1.9535 * PRICE_PRECISION.toNumber()
1388
1593
  );
1389
1594
 
1390
1595
  // mockMarket1.amm.pegMultiplier = new BN(1.897573 * 1e3);
1391
1596
 
1392
- mockMarket1.amm.lastMarkPriceTwap = new BN(
1597
+ mockMarket1.marketStats.lastMarkPriceTwap = new BN(
1393
1598
  1.218363 * PRICE_PRECISION.toNumber()
1394
1599
  );
1395
- mockMarket1.amm.lastBidPriceTwap = new BN(
1600
+ mockMarket1.marketStats.lastBidPriceTwap = new BN(
1396
1601
  1.218363 * PRICE_PRECISION.toNumber()
1397
1602
  );
1398
- mockMarket1.amm.lastAskPriceTwap = new BN(
1603
+ mockMarket1.marketStats.lastAskPriceTwap = new BN(
1399
1604
  1.218364 * PRICE_PRECISION.toNumber()
1400
1605
  );
1401
- mockMarket1.amm.lastMarkPriceTwapTs = new BN(1688878815);
1606
+ mockMarket1.marketStats.lastMarkPriceTwapTs = new BN(1688878815);
1402
1607
 
1403
- mockMarket1.amm.historicalOracleData.lastOraclePriceTwap = new BN(
1608
+ mockMarket1.marketStats.historicalOracleData.lastOraclePriceTwap = new BN(
1404
1609
  1.220964 * PRICE_PRECISION.toNumber()
1405
1610
  );
1406
- mockMarket1.amm.historicalOracleData.lastOraclePriceTwapTs = new BN(
1611
+ mockMarket1.marketStats.historicalOracleData.lastOraclePriceTwapTs = new BN(
1407
1612
  1688879991
1408
1613
  );
1409
1614
 
@@ -1439,13 +1644,13 @@ describe('AMM Tests', () => {
1439
1644
 
1440
1645
  console.log(
1441
1646
  'markTwapLive:',
1442
- mockMarket1.amm.lastMarkPriceTwap.toString(),
1647
+ mockMarket1.marketStats.lastMarkPriceTwap.toString(),
1443
1648
  '->',
1444
1649
  markTwapLive.toString()
1445
1650
  );
1446
1651
  console.log(
1447
1652
  'oracTwapLive:',
1448
- mockMarket1.amm.historicalOracleData.lastOraclePriceTwap.toString(),
1653
+ mockMarket1.marketStats.historicalOracleData.lastOraclePriceTwap.toString(),
1449
1654
  '->',
1450
1655
  oracleTwapLive.toString()
1451
1656
  );
@@ -1464,8 +1669,8 @@ describe('AMM Tests', () => {
1464
1669
  // make it like OP
1465
1670
  const now = new BN(1688881915);
1466
1671
 
1467
- mockMarket1.amm.fundingPeriod = new BN(3600);
1468
- mockMarket1.amm.lastFundingRateTs = new BN(1688864415);
1672
+ mockMarket1.marketStats.fundingPeriod = new BN(3600);
1673
+ mockMarket1.lastFundingRateTs = new BN(1688864415);
1469
1674
 
1470
1675
  const currentMarkPrice = new BN(1.2242 * PRICE_PRECISION.toNumber()); // trading at a premium
1471
1676
  const mmOraclePriceData: MMOraclePriceData = {
@@ -1475,27 +1680,27 @@ describe('AMM Tests', () => {
1475
1680
  hasSufficientNumberOfDataPoints: true,
1476
1681
  isMMOracleActive: true,
1477
1682
  } as MMOraclePriceData;
1478
- mockMarket1.amm.historicalOracleData.lastOraclePrice = new BN(
1683
+ mockMarket1.marketStats.historicalOracleData.lastOraclePrice = new BN(
1479
1684
  1.9535 * PRICE_PRECISION.toNumber()
1480
1685
  );
1481
1686
 
1482
1687
  // mockMarket1.amm.pegMultiplier = new BN(1.897573 * 1e3);
1483
1688
 
1484
- mockMarket1.amm.lastMarkPriceTwap = new BN(
1689
+ mockMarket1.marketStats.lastMarkPriceTwap = new BN(
1485
1690
  1.218363 * PRICE_PRECISION.toNumber()
1486
1691
  );
1487
- mockMarket1.amm.lastBidPriceTwap = new BN(
1692
+ mockMarket1.marketStats.lastBidPriceTwap = new BN(
1488
1693
  1.218363 * PRICE_PRECISION.toNumber()
1489
1694
  );
1490
- mockMarket1.amm.lastAskPriceTwap = new BN(
1695
+ mockMarket1.marketStats.lastAskPriceTwap = new BN(
1491
1696
  1.218364 * PRICE_PRECISION.toNumber()
1492
1697
  );
1493
- mockMarket1.amm.lastMarkPriceTwapTs = new BN(1688878815);
1698
+ mockMarket1.marketStats.lastMarkPriceTwapTs = new BN(1688878815);
1494
1699
 
1495
- mockMarket1.amm.historicalOracleData.lastOraclePriceTwap = new BN(
1700
+ mockMarket1.marketStats.historicalOracleData.lastOraclePriceTwap = new BN(
1496
1701
  1.820964 * PRICE_PRECISION.toNumber()
1497
1702
  );
1498
- mockMarket1.amm.historicalOracleData.lastOraclePriceTwapTs = new BN(
1703
+ mockMarket1.marketStats.historicalOracleData.lastOraclePriceTwapTs = new BN(
1499
1704
  1688879991
1500
1705
  );
1501
1706
  mockMarket1.contractTier = ContractTier.A;
@@ -1532,13 +1737,13 @@ describe('AMM Tests', () => {
1532
1737
 
1533
1738
  console.log(
1534
1739
  'markTwapLive:',
1535
- mockMarket1.amm.lastMarkPriceTwap.toString(),
1740
+ mockMarket1.marketStats.lastMarkPriceTwap.toString(),
1536
1741
  '->',
1537
1742
  markTwapLive.toString()
1538
1743
  );
1539
1744
  console.log(
1540
1745
  'oracTwapLive:',
1541
- mockMarket1.amm.historicalOracleData.lastOraclePriceTwap.toString(),
1746
+ mockMarket1.marketStats.historicalOracleData.lastOraclePriceTwap.toString(),
1542
1747
  '->',
1543
1748
  oracleTwapLive.toString()
1544
1749
  );
@@ -1562,13 +1767,13 @@ describe('AMM Tests', () => {
1562
1767
 
1563
1768
  console.log(
1564
1769
  'markTwapLive:',
1565
- mockMarket1.amm.lastMarkPriceTwap.toString(),
1770
+ mockMarket1.marketStats.lastMarkPriceTwap.toString(),
1566
1771
  '->',
1567
1772
  markTwapLive.toString()
1568
1773
  );
1569
1774
  console.log(
1570
1775
  'oracTwapLive:',
1571
- mockMarket1.amm.historicalOracleData.lastOraclePriceTwap.toString(),
1776
+ mockMarket1.marketStats.historicalOracleData.lastOraclePriceTwap.toString(),
1572
1777
  '->',
1573
1778
  oracleTwapLive.toString()
1574
1779
  );
@@ -1592,13 +1797,13 @@ describe('AMM Tests', () => {
1592
1797
 
1593
1798
  console.log(
1594
1799
  'markTwapLive:',
1595
- mockMarket1.amm.lastMarkPriceTwap.toString(),
1800
+ mockMarket1.marketStats.lastMarkPriceTwap.toString(),
1596
1801
  '->',
1597
1802
  markTwapLive.toString()
1598
1803
  );
1599
1804
  console.log(
1600
1805
  'oracTwapLive:',
1601
- mockMarket1.amm.historicalOracleData.lastOraclePriceTwap.toString(),
1806
+ mockMarket1.marketStats.historicalOracleData.lastOraclePriceTwap.toString(),
1602
1807
  '->',
1603
1808
  oracleTwapLive.toString()
1604
1809
  );
@@ -1634,7 +1839,7 @@ describe('AMM Tests', () => {
1634
1839
  hasSufficientNumberOfDataPoints: true,
1635
1840
  isMMOracleActive: true,
1636
1841
  } as MMOraclePriceData;
1637
- mockMarket1.amm.historicalOracleData.lastOraclePrice = new BN(
1842
+ mockMarket1.marketStats.historicalOracleData.lastOraclePrice = new BN(
1638
1843
  18.5535 * PRICE_PRECISION.toNumber()
1639
1844
  );
1640
1845
 
@@ -1644,7 +1849,7 @@ describe('AMM Tests', () => {
1644
1849
  updatedAmm.baseAssetReserve,
1645
1850
  updatedAmm.minBaseAssetReserve,
1646
1851
  updatedAmm.maxBaseAssetReserve,
1647
- updatedAmm.orderStepSize
1852
+ mockMarket1.orderStepSize
1648
1853
  );
1649
1854
 
1650
1855
  const generator = getVammL2Generator({
@@ -1711,7 +1916,7 @@ describe('AMM Tests', () => {
1711
1916
  hasSufficientNumberOfDataPoints: true,
1712
1917
  isMMOracleActive: true,
1713
1918
  } as MMOraclePriceData;
1714
- mockMarket1.amm.historicalOracleData.lastOraclePrice = new BN(
1919
+ mockMarket1.marketStats.historicalOracleData.lastOraclePrice = new BN(
1715
1920
  18.5535 * PRICE_PRECISION.toNumber()
1716
1921
  );
1717
1922
 
@@ -1721,7 +1926,7 @@ describe('AMM Tests', () => {
1721
1926
  updatedAmm.baseAssetReserve,
1722
1927
  updatedAmm.minBaseAssetReserve,
1723
1928
  updatedAmm.maxBaseAssetReserve,
1724
- updatedAmm.orderStepSize
1929
+ mockMarket1.orderStepSize
1725
1930
  );
1726
1931
 
1727
1932
  const generator = getVammL2Generator({
@@ -1787,7 +1992,7 @@ describe('AMM Tests', () => {
1787
1992
  hasSufficientNumberOfDataPoints: true,
1788
1993
  isMMOracleActive: true,
1789
1994
  } as MMOraclePriceData;
1790
- mockMarket1.amm.historicalOracleData.lastOraclePrice = new BN(
1995
+ mockMarket1.marketStats.historicalOracleData.lastOraclePrice = new BN(
1791
1996
  18.5535 * PRICE_PRECISION.toNumber()
1792
1997
  );
1793
1998
 
@@ -1797,7 +2002,7 @@ describe('AMM Tests', () => {
1797
2002
  updatedAmm.baseAssetReserve,
1798
2003
  updatedAmm.minBaseAssetReserve,
1799
2004
  updatedAmm.maxBaseAssetReserve,
1800
- updatedAmm.orderStepSize
2005
+ mockMarket1.orderStepSize
1801
2006
  );
1802
2007
 
1803
2008
  assert(!openAsks.eq(openBids));
@@ -1869,7 +2074,7 @@ describe('AMM Tests', () => {
1869
2074
  hasSufficientNumberOfDataPoints: true,
1870
2075
  isMMOracleActive: true,
1871
2076
  } as MMOraclePriceData;
1872
- mockMarket1.amm.historicalOracleData.lastOraclePrice = new BN(
2077
+ mockMarket1.marketStats.historicalOracleData.lastOraclePrice = new BN(
1873
2078
  18.5535 * PRICE_PRECISION.toNumber()
1874
2079
  );
1875
2080
 
@@ -1879,7 +2084,7 @@ describe('AMM Tests', () => {
1879
2084
  updatedAmm.baseAssetReserve,
1880
2085
  updatedAmm.minBaseAssetReserve,
1881
2086
  updatedAmm.maxBaseAssetReserve,
1882
- updatedAmm.orderStepSize
2087
+ mockMarket1.orderStepSize
1883
2088
  );
1884
2089
 
1885
2090
  assert(!openAsks.eq(openBids));
@@ -1954,7 +2159,7 @@ describe('AMM Tests', () => {
1954
2159
  hasSufficientNumberOfDataPoints: true,
1955
2160
  isMMOracleActive: true,
1956
2161
  };
1957
- mockMarket1.amm.historicalOracleData.lastOraclePrice = new BN(
2162
+ mockMarket1.marketStats.historicalOracleData.lastOraclePrice = new BN(
1958
2163
  18.5535 * PRICE_PRECISION.toNumber()
1959
2164
  );
1960
2165
 
@@ -1964,7 +2169,7 @@ describe('AMM Tests', () => {
1964
2169
  updatedAmm.baseAssetReserve,
1965
2170
  updatedAmm.minBaseAssetReserve,
1966
2171
  updatedAmm.maxBaseAssetReserve,
1967
- updatedAmm.orderStepSize
2172
+ mockMarket1.orderStepSize
1968
2173
  );
1969
2174
 
1970
2175
  assert(!openAsks.eq(openBids));
@@ -2019,7 +2224,7 @@ describe('AMM Tests', () => {
2019
2224
  const mockMarket1: PerpMarketAccount = myMockPerpMarkets[0];
2020
2225
  const cc = 38104569;
2021
2226
  mockMarket1.amm.baseAssetReserve = new BN(cc).mul(BASE_PRECISION);
2022
- mockMarket1.amm.minOrderSize = new BN(5);
2227
+ mockMarket1.marketStats.minOrderSize = new BN(5);
2023
2228
  mockMarket1.amm.maxBaseAssetReserve = mockMarket1.amm.baseAssetReserve.add(
2024
2229
  new BN(9)
2025
2230
  );
@@ -2039,7 +2244,7 @@ describe('AMM Tests', () => {
2039
2244
  hasSufficientNumberOfDataPoints: true,
2040
2245
  isMMOracleActive: true,
2041
2246
  } as MMOraclePriceData;
2042
- mockMarket1.amm.historicalOracleData.lastOraclePrice = new BN(
2247
+ mockMarket1.marketStats.historicalOracleData.lastOraclePrice = new BN(
2043
2248
  18.5535 * PRICE_PRECISION.toNumber()
2044
2249
  );
2045
2250
 
@@ -2049,7 +2254,7 @@ describe('AMM Tests', () => {
2049
2254
  updatedAmm.baseAssetReserve,
2050
2255
  updatedAmm.minBaseAssetReserve,
2051
2256
  updatedAmm.maxBaseAssetReserve,
2052
- updatedAmm.orderStepSize
2257
+ mockMarket1.orderStepSize
2053
2258
  );
2054
2259
 
2055
2260
  const generator = getVammL2Generator({