@velocity-exchange/sdk 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (676) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/bun.lock +23 -1
  3. package/lib/browser/accounts/basicUserAccountSubscriber.d.ts +5 -3
  4. package/lib/browser/accounts/basicUserAccountSubscriber.js +4 -3
  5. package/lib/browser/accounts/basicUserStatsAccountSubscriber.d.ts +5 -3
  6. package/lib/browser/accounts/basicUserStatsAccountSubscriber.js +4 -3
  7. package/lib/browser/accounts/bulkAccountLoader.d.ts +5 -5
  8. package/lib/browser/accounts/bulkAccountLoader.js +12 -1
  9. package/lib/browser/accounts/grpcAccountSubscriber.d.ts +2 -1
  10. package/lib/browser/accounts/grpcAccountSubscriber.js +8 -2
  11. package/lib/browser/accounts/grpcMultiAccountSubscriber.d.ts +3 -2
  12. package/lib/browser/accounts/grpcMultiAccountSubscriber.js +13 -5
  13. package/lib/browser/accounts/grpcMultiUserAccountSubscriber.d.ts +2 -1
  14. package/lib/browser/accounts/grpcMultiUserAccountSubscriber.js +12 -8
  15. package/lib/browser/accounts/grpcProgramAccountSubscriber.d.ts +2 -1
  16. package/lib/browser/accounts/grpcProgramAccountSubscriber.js +8 -2
  17. package/lib/browser/accounts/grpcVelocityClientAccountSubscriber.js +18 -3
  18. package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +1 -1
  19. package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.js +40 -17
  20. package/lib/browser/accounts/laserProgramAccountSubscriber.js +3 -0
  21. package/lib/browser/accounts/oneShotUserAccountSubscriber.js +4 -3
  22. package/lib/browser/accounts/oneShotUserStatsAccountSubscriber.js +7 -3
  23. package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +4 -2
  24. package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.js +3 -3
  25. package/lib/browser/accounts/pollingOracleAccountSubscriber.d.ts +0 -2
  26. package/lib/browser/accounts/pollingOracleAccountSubscriber.js +16 -5
  27. package/lib/browser/accounts/pollingTokenAccountSubscriber.d.ts +0 -2
  28. package/lib/browser/accounts/pollingTokenAccountSubscriber.js +16 -5
  29. package/lib/browser/accounts/pollingUserAccountSubscriber.d.ts +8 -4
  30. package/lib/browser/accounts/pollingUserAccountSubscriber.js +17 -11
  31. package/lib/browser/accounts/pollingUserStatsAccountSubscriber.d.ts +4 -2
  32. package/lib/browser/accounts/pollingUserStatsAccountSubscriber.js +6 -6
  33. package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.d.ts +7 -1
  34. package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.js +64 -28
  35. package/lib/browser/accounts/types.d.ts +4 -4
  36. package/lib/browser/accounts/utils.d.ts +1 -0
  37. package/lib/browser/accounts/utils.js +8 -1
  38. package/lib/browser/accounts/webSocketAccountSubscriber.d.ts +4 -2
  39. package/lib/browser/accounts/webSocketAccountSubscriber.js +17 -5
  40. package/lib/browser/accounts/webSocketAccountSubscriberV2.d.ts +4 -2
  41. package/lib/browser/accounts/webSocketAccountSubscriberV2.js +17 -6
  42. package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +4 -2
  43. package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +9 -0
  44. package/lib/browser/accounts/webSocketProgramAccountSubscriber.d.ts +3 -1
  45. package/lib/browser/accounts/webSocketProgramAccountSubscriber.js +14 -3
  46. package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.d.ts +3 -1
  47. package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.js +15 -3
  48. package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.d.ts +3 -1
  49. package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.js +14 -4
  50. package/lib/browser/accounts/webSocketUserAccountSubscriber.d.ts +4 -2
  51. package/lib/browser/accounts/webSocketUserAccountSubscriber.js +9 -0
  52. package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.d.ts +4 -2
  53. package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.js +9 -0
  54. package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.d.ts +4 -4
  55. package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.js +48 -20
  56. package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +7 -3
  57. package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.js +45 -14
  58. package/lib/browser/accounts/websocketProgramUserAccountSubscriber.d.ts +1 -1
  59. package/lib/browser/accounts/websocketProgramUserAccountSubscriber.js +0 -3
  60. package/lib/browser/addresses/marketAddresses.js +3 -2
  61. package/lib/browser/addresses/pda.d.ts +0 -2
  62. package/lib/browser/addresses/pda.js +1 -14
  63. package/lib/browser/adminClient.d.ts +24 -28
  64. package/lib/browser/adminClient.js +156 -157
  65. package/lib/browser/auctionSubscriber/auctionSubscriber.d.ts +1 -1
  66. package/lib/browser/auctionSubscriber/auctionSubscriber.js +6 -4
  67. package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.d.ts +1 -1
  68. package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.js +9 -4
  69. package/lib/browser/bankrun/bankrunConnection.d.ts +6 -4
  70. package/lib/browser/bankrun/bankrunConnection.js +69 -31
  71. package/lib/browser/blockhashSubscriber/BlockhashSubscriber.d.ts +1 -1
  72. package/lib/browser/blockhashSubscriber/BlockhashSubscriber.js +3 -2
  73. package/lib/browser/clock/clockSubscriber.d.ts +6 -6
  74. package/lib/browser/clock/clockSubscriber.js +4 -3
  75. package/lib/browser/config.d.ts +1 -1
  76. package/lib/browser/config.js +8 -4
  77. package/lib/browser/constants/index.d.ts +1 -2
  78. package/lib/browser/constants/index.js +1 -2
  79. package/lib/browser/constants/numericConstants.d.ts +1 -3
  80. package/lib/browser/constants/numericConstants.js +3 -5
  81. package/lib/browser/constituentMap/constituentMap.js +5 -1
  82. package/lib/browser/constituentMap/pollingConstituentAccountSubscriber.js +3 -2
  83. package/lib/browser/constituentMap/webSocketConstituentAccountSubscriber.d.ts +2 -3
  84. package/lib/browser/constituentMap/webSocketConstituentAccountSubscriber.js +10 -3
  85. package/lib/browser/core/instructions/perpOrders.d.ts +14 -0
  86. package/lib/browser/core/instructions/perpOrders.js +14 -0
  87. package/lib/browser/core/remainingAccounts.d.ts +2 -2
  88. package/lib/browser/core/remainingAccounts.js +2 -2
  89. package/lib/browser/decode/user.js +9 -1
  90. package/lib/browser/dlob/DLOB.d.ts +6 -1
  91. package/lib/browser/dlob/DLOB.js +201 -138
  92. package/lib/browser/dlob/DLOBNode.d.ts +5 -2
  93. package/lib/browser/dlob/DLOBNode.js +7 -0
  94. package/lib/browser/dlob/DLOBSubscriber.js +37 -32
  95. package/lib/browser/dlob/NodeList.js +8 -7
  96. package/lib/browser/dlob/orderBookLevels.js +19 -12
  97. package/lib/browser/events/eventList.js +4 -1
  98. package/lib/browser/events/eventSubscriber.d.ts +5 -2
  99. package/lib/browser/events/eventSubscriber.js +75 -26
  100. package/lib/browser/events/eventsServerLogProvider.d.ts +1 -1
  101. package/lib/browser/events/eventsServerLogProvider.js +15 -8
  102. package/lib/browser/events/fetchLogs.d.ts +1 -1
  103. package/lib/browser/events/fetchLogs.js +4 -2
  104. package/lib/browser/events/pollingLogProvider.d.ts +1 -1
  105. package/lib/browser/events/pollingLogProvider.js +1 -0
  106. package/lib/browser/events/txEventCache.js +6 -2
  107. package/lib/browser/events/types.d.ts +2 -4
  108. package/lib/browser/events/types.js +0 -2
  109. package/lib/browser/events/webSocketLogProvider.d.ts +1 -1
  110. package/lib/browser/events/webSocketLogProvider.js +5 -2
  111. package/lib/browser/factory/bigNum.js +1 -1
  112. package/lib/browser/idl/velocity.d.ts +1243 -1586
  113. package/lib/browser/idl/velocity.json +1234 -1577
  114. package/lib/browser/index.d.ts +0 -2
  115. package/lib/browser/index.js +0 -2
  116. package/lib/browser/jupiter/jupiterClient.d.ts +1 -1
  117. package/lib/browser/jupiter/jupiterClient.js +18 -8
  118. package/lib/browser/marginCalculation.js +1 -0
  119. package/lib/browser/math/amm.d.ts +31 -13
  120. package/lib/browser/math/amm.js +77 -22
  121. package/lib/browser/math/bankruptcy.js +1 -1
  122. package/lib/browser/math/funding.js +6 -6
  123. package/lib/browser/math/insurance.d.ts +1 -1
  124. package/lib/browser/math/insurance.js +4 -5
  125. package/lib/browser/math/margin.d.ts +1 -9
  126. package/lib/browser/math/margin.js +3 -62
  127. package/lib/browser/math/market.d.ts +4 -12
  128. package/lib/browser/math/market.js +6 -40
  129. package/lib/browser/math/oracles.d.ts +0 -3
  130. package/lib/browser/math/oracles.js +1 -14
  131. package/lib/browser/math/orders.d.ts +0 -5
  132. package/lib/browser/math/orders.js +2 -74
  133. package/lib/browser/math/position.d.ts +0 -4
  134. package/lib/browser/math/position.js +5 -10
  135. package/lib/browser/math/repeg.d.ts +0 -1
  136. package/lib/browser/math/repeg.js +1 -23
  137. package/lib/browser/math/spotBalance.d.ts +4 -4
  138. package/lib/browser/math/spotBalance.js +6 -6
  139. package/lib/browser/math/spotMarket.d.ts +0 -6
  140. package/lib/browser/math/spotMarket.js +1 -16
  141. package/lib/browser/math/spotPosition.d.ts +4 -4
  142. package/lib/browser/math/state.d.ts +0 -2
  143. package/lib/browser/math/state.js +1 -9
  144. package/lib/browser/math/superStake.d.ts +3 -53
  145. package/lib/browser/math/superStake.js +16 -13
  146. package/lib/browser/math/trade.js +6 -6
  147. package/lib/browser/memcmp.d.ts +0 -1
  148. package/lib/browser/memcmp.js +1 -10
  149. package/lib/browser/oracles/prelaunchOracleClient.js +3 -2
  150. package/lib/browser/oracles/pythClient.js +9 -3
  151. package/lib/browser/oracles/pythLazerClient.js +3 -2
  152. package/lib/browser/oracles/utils.d.ts +4 -0
  153. package/lib/browser/oracles/utils.js +9 -1
  154. package/lib/browser/orderSubscriber/OrderSubscriber.d.ts +1 -1
  155. package/lib/browser/orderSubscriber/OrderSubscriber.js +8 -2
  156. package/lib/browser/priorityFee/heliusPriorityFeeMethod.d.ts +1 -1
  157. package/lib/browser/priorityFee/priorityFeeSubscriber.d.ts +1 -1
  158. package/lib/browser/priorityFee/priorityFeeSubscriber.js +32 -8
  159. package/lib/browser/priorityFee/solanaPriorityFeeMethod.d.ts +1 -1
  160. package/lib/browser/pyth/types.d.ts +0 -1
  161. package/lib/browser/slot/SlotSubscriber.d.ts +1 -1
  162. package/lib/browser/slot/SlotSubscriber.js +2 -1
  163. package/lib/browser/slot/SlothashSubscriber.d.ts +3 -2
  164. package/lib/browser/slot/SlothashSubscriber.js +11 -4
  165. package/lib/browser/swift/grpcSignedMsgUserAccountSubscriber.d.ts +0 -3
  166. package/lib/browser/swift/grpcSignedMsgUserAccountSubscriber.js +5 -5
  167. package/lib/browser/swift/signedMsgUserAccountSubscriber.d.ts +3 -2
  168. package/lib/browser/swift/signedMsgUserAccountSubscriber.js +13 -5
  169. package/lib/browser/swift/swiftOrderSubscriber.d.ts +1 -1
  170. package/lib/browser/swift/swiftOrderSubscriber.js +10 -5
  171. package/lib/browser/testClient.js +3 -2
  172. package/lib/browser/tokenFaucet.js +16 -2
  173. package/lib/browser/tx/baseTxSender.d.ts +4 -4
  174. package/lib/browser/tx/baseTxSender.js +5 -4
  175. package/lib/browser/tx/fastSingleTxSender.d.ts +3 -3
  176. package/lib/browser/tx/fastSingleTxSender.js +9 -5
  177. package/lib/browser/tx/reportTransactionError.d.ts +2 -2
  178. package/lib/browser/tx/reportTransactionError.js +5 -1
  179. package/lib/browser/tx/retryTxSender.d.ts +1 -1
  180. package/lib/browser/tx/retryTxSender.js +4 -2
  181. package/lib/browser/tx/txHandler.d.ts +7 -1
  182. package/lib/browser/tx/txHandler.js +54 -40
  183. package/lib/browser/tx/txParamProcessor.d.ts +4 -1
  184. package/lib/browser/tx/txParamProcessor.js +6 -0
  185. package/lib/browser/tx/types.d.ts +1 -1
  186. package/lib/browser/tx/whileValidTxSender.d.ts +1 -6
  187. package/lib/browser/tx/whileValidTxSender.js +35 -13
  188. package/lib/browser/types.d.ts +27 -70
  189. package/lib/browser/types.js +2 -2
  190. package/lib/browser/user.d.ts +21 -7
  191. package/lib/browser/user.js +156 -132
  192. package/lib/browser/userMap/WebsocketSubscription.d.ts +1 -1
  193. package/lib/browser/userMap/grpcSubscription.d.ts +1 -1
  194. package/lib/browser/userMap/referrerMap.js +10 -3
  195. package/lib/browser/userMap/revenueShareEscrowMap.js +4 -0
  196. package/lib/browser/userMap/userMap.d.ts +1 -1
  197. package/lib/browser/userMap/userMap.js +36 -23
  198. package/lib/browser/userMap/userStatsMap.d.ts +1 -1
  199. package/lib/browser/userMap/userStatsMap.js +18 -13
  200. package/lib/browser/userStats.d.ts +7 -2
  201. package/lib/browser/userStats.js +18 -4
  202. package/lib/browser/util/TransactionConfirmationManager.js +4 -2
  203. package/lib/browser/util/chainClock.d.ts +1 -1
  204. package/lib/browser/util/computeUnits.d.ts +1 -1
  205. package/lib/browser/util/computeUnits.js +6 -1
  206. package/lib/browser/velocityClient.d.ts +92 -34
  207. package/lib/browser/velocityClient.js +414 -280
  208. package/lib/node/accounts/basicUserAccountSubscriber.d.ts +5 -3
  209. package/lib/node/accounts/basicUserAccountSubscriber.d.ts.map +1 -1
  210. package/lib/node/accounts/basicUserAccountSubscriber.js +4 -3
  211. package/lib/node/accounts/basicUserStatsAccountSubscriber.d.ts +5 -3
  212. package/lib/node/accounts/basicUserStatsAccountSubscriber.d.ts.map +1 -1
  213. package/lib/node/accounts/basicUserStatsAccountSubscriber.js +4 -3
  214. package/lib/node/accounts/bulkAccountLoader.d.ts +5 -5
  215. package/lib/node/accounts/bulkAccountLoader.d.ts.map +1 -1
  216. package/lib/node/accounts/bulkAccountLoader.js +12 -1
  217. package/lib/node/accounts/grpcAccountSubscriber.d.ts +2 -1
  218. package/lib/node/accounts/grpcAccountSubscriber.d.ts.map +1 -1
  219. package/lib/node/accounts/grpcAccountSubscriber.js +8 -2
  220. package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts +3 -2
  221. package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts.map +1 -1
  222. package/lib/node/accounts/grpcMultiAccountSubscriber.js +13 -5
  223. package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts +2 -1
  224. package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts.map +1 -1
  225. package/lib/node/accounts/grpcMultiUserAccountSubscriber.js +12 -8
  226. package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts +2 -1
  227. package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts.map +1 -1
  228. package/lib/node/accounts/grpcProgramAccountSubscriber.js +8 -2
  229. package/lib/node/accounts/grpcVelocityClientAccountSubscriber.d.ts.map +1 -1
  230. package/lib/node/accounts/grpcVelocityClientAccountSubscriber.js +18 -3
  231. package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +1 -1
  232. package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts.map +1 -1
  233. package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.js +40 -17
  234. package/lib/node/accounts/laserProgramAccountSubscriber.d.ts.map +1 -1
  235. package/lib/node/accounts/laserProgramAccountSubscriber.js +3 -0
  236. package/lib/node/accounts/oneShotUserAccountSubscriber.d.ts.map +1 -1
  237. package/lib/node/accounts/oneShotUserAccountSubscriber.js +4 -3
  238. package/lib/node/accounts/oneShotUserStatsAccountSubscriber.d.ts.map +1 -1
  239. package/lib/node/accounts/oneShotUserStatsAccountSubscriber.js +7 -3
  240. package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +4 -2
  241. package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
  242. package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.js +3 -3
  243. package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts +0 -2
  244. package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts.map +1 -1
  245. package/lib/node/accounts/pollingOracleAccountSubscriber.js +16 -5
  246. package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts +0 -2
  247. package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts.map +1 -1
  248. package/lib/node/accounts/pollingTokenAccountSubscriber.js +16 -5
  249. package/lib/node/accounts/pollingUserAccountSubscriber.d.ts +8 -4
  250. package/lib/node/accounts/pollingUserAccountSubscriber.d.ts.map +1 -1
  251. package/lib/node/accounts/pollingUserAccountSubscriber.js +17 -11
  252. package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts +4 -2
  253. package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts.map +1 -1
  254. package/lib/node/accounts/pollingUserStatsAccountSubscriber.js +6 -6
  255. package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts +7 -1
  256. package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts.map +1 -1
  257. package/lib/node/accounts/pollingVelocityClientAccountSubscriber.js +64 -28
  258. package/lib/node/accounts/types.d.ts +4 -4
  259. package/lib/node/accounts/types.d.ts.map +1 -1
  260. package/lib/node/accounts/utils.d.ts +1 -0
  261. package/lib/node/accounts/utils.d.ts.map +1 -1
  262. package/lib/node/accounts/utils.js +8 -1
  263. package/lib/node/accounts/webSocketAccountSubscriber.d.ts +4 -2
  264. package/lib/node/accounts/webSocketAccountSubscriber.d.ts.map +1 -1
  265. package/lib/node/accounts/webSocketAccountSubscriber.js +17 -5
  266. package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts +4 -2
  267. package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts.map +1 -1
  268. package/lib/node/accounts/webSocketAccountSubscriberV2.js +17 -6
  269. package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +4 -2
  270. package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
  271. package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +9 -0
  272. package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts +3 -1
  273. package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts.map +1 -1
  274. package/lib/node/accounts/webSocketProgramAccountSubscriber.js +14 -3
  275. package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts +3 -1
  276. package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts.map +1 -1
  277. package/lib/node/accounts/webSocketProgramAccountSubscriberV2.js +15 -3
  278. package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts +3 -1
  279. package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts.map +1 -1
  280. package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.js +14 -4
  281. package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts +4 -2
  282. package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts.map +1 -1
  283. package/lib/node/accounts/webSocketUserAccountSubscriber.js +9 -0
  284. package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts +4 -2
  285. package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts.map +1 -1
  286. package/lib/node/accounts/webSocketUserStatsAccountSubsriber.js +9 -0
  287. package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts +4 -4
  288. package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts.map +1 -1
  289. package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.js +48 -20
  290. package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +7 -3
  291. package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts.map +1 -1
  292. package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.js +45 -14
  293. package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts +1 -1
  294. package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts.map +1 -1
  295. package/lib/node/accounts/websocketProgramUserAccountSubscriber.js +0 -3
  296. package/lib/node/addresses/marketAddresses.d.ts.map +1 -1
  297. package/lib/node/addresses/marketAddresses.js +3 -2
  298. package/lib/node/addresses/pda.d.ts +0 -2
  299. package/lib/node/addresses/pda.d.ts.map +1 -1
  300. package/lib/node/addresses/pda.js +1 -14
  301. package/lib/node/adminClient.d.ts +24 -28
  302. package/lib/node/adminClient.d.ts.map +1 -1
  303. package/lib/node/adminClient.js +156 -157
  304. package/lib/node/auctionSubscriber/auctionSubscriber.d.ts +1 -1
  305. package/lib/node/auctionSubscriber/auctionSubscriber.d.ts.map +1 -1
  306. package/lib/node/auctionSubscriber/auctionSubscriber.js +6 -4
  307. package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts +1 -1
  308. package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts.map +1 -1
  309. package/lib/node/auctionSubscriber/auctionSubscriberGrpc.js +9 -4
  310. package/lib/node/bankrun/bankrunConnection.d.ts +6 -4
  311. package/lib/node/bankrun/bankrunConnection.d.ts.map +1 -1
  312. package/lib/node/bankrun/bankrunConnection.js +69 -31
  313. package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts +1 -1
  314. package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts.map +1 -1
  315. package/lib/node/blockhashSubscriber/BlockhashSubscriber.js +3 -2
  316. package/lib/node/clock/clockSubscriber.d.ts +6 -6
  317. package/lib/node/clock/clockSubscriber.d.ts.map +1 -1
  318. package/lib/node/clock/clockSubscriber.js +4 -3
  319. package/lib/node/config.d.ts +1 -1
  320. package/lib/node/config.d.ts.map +1 -1
  321. package/lib/node/config.js +8 -4
  322. package/lib/node/constants/index.d.ts +1 -2
  323. package/lib/node/constants/index.d.ts.map +1 -1
  324. package/lib/node/constants/index.js +1 -2
  325. package/lib/node/constants/numericConstants.d.ts +1 -3
  326. package/lib/node/constants/numericConstants.d.ts.map +1 -1
  327. package/lib/node/constants/numericConstants.js +3 -5
  328. package/lib/node/constituentMap/constituentMap.d.ts.map +1 -1
  329. package/lib/node/constituentMap/constituentMap.js +5 -1
  330. package/lib/node/constituentMap/pollingConstituentAccountSubscriber.d.ts.map +1 -1
  331. package/lib/node/constituentMap/pollingConstituentAccountSubscriber.js +3 -2
  332. package/lib/node/constituentMap/webSocketConstituentAccountSubscriber.d.ts +2 -3
  333. package/lib/node/constituentMap/webSocketConstituentAccountSubscriber.d.ts.map +1 -1
  334. package/lib/node/constituentMap/webSocketConstituentAccountSubscriber.js +10 -3
  335. package/lib/node/core/instructions/perpOrders.d.ts +14 -0
  336. package/lib/node/core/instructions/perpOrders.d.ts.map +1 -1
  337. package/lib/node/core/instructions/perpOrders.js +14 -0
  338. package/lib/node/core/remainingAccounts.d.ts +2 -2
  339. package/lib/node/core/remainingAccounts.d.ts.map +1 -1
  340. package/lib/node/core/remainingAccounts.js +2 -2
  341. package/lib/node/decode/user.d.ts.map +1 -1
  342. package/lib/node/decode/user.js +9 -1
  343. package/lib/node/dlob/DLOB.d.ts +6 -1
  344. package/lib/node/dlob/DLOB.d.ts.map +1 -1
  345. package/lib/node/dlob/DLOB.js +201 -138
  346. package/lib/node/dlob/DLOBNode.d.ts +5 -2
  347. package/lib/node/dlob/DLOBNode.d.ts.map +1 -1
  348. package/lib/node/dlob/DLOBNode.js +7 -0
  349. package/lib/node/dlob/DLOBSubscriber.d.ts.map +1 -1
  350. package/lib/node/dlob/DLOBSubscriber.js +37 -32
  351. package/lib/node/dlob/NodeList.d.ts.map +1 -1
  352. package/lib/node/dlob/NodeList.js +8 -7
  353. package/lib/node/dlob/orderBookLevels.d.ts.map +1 -1
  354. package/lib/node/dlob/orderBookLevels.js +19 -12
  355. package/lib/node/events/eventList.d.ts +3 -3
  356. package/lib/node/events/eventList.d.ts.map +1 -1
  357. package/lib/node/events/eventList.js +4 -1
  358. package/lib/node/events/eventSubscriber.d.ts +5 -2
  359. package/lib/node/events/eventSubscriber.d.ts.map +1 -1
  360. package/lib/node/events/eventSubscriber.js +75 -26
  361. package/lib/node/events/eventsServerLogProvider.d.ts +2 -2
  362. package/lib/node/events/eventsServerLogProvider.d.ts.map +1 -1
  363. package/lib/node/events/eventsServerLogProvider.js +15 -8
  364. package/lib/node/events/fetchLogs.d.ts +1 -1
  365. package/lib/node/events/fetchLogs.d.ts.map +1 -1
  366. package/lib/node/events/fetchLogs.js +4 -2
  367. package/lib/node/events/pollingLogProvider.d.ts +2 -2
  368. package/lib/node/events/pollingLogProvider.d.ts.map +1 -1
  369. package/lib/node/events/pollingLogProvider.js +1 -0
  370. package/lib/node/events/txEventCache.d.ts +3 -3
  371. package/lib/node/events/txEventCache.d.ts.map +1 -1
  372. package/lib/node/events/txEventCache.js +6 -2
  373. package/lib/node/events/types.d.ts +2 -4
  374. package/lib/node/events/types.d.ts.map +1 -1
  375. package/lib/node/events/types.js +0 -2
  376. package/lib/node/events/webSocketLogProvider.d.ts +2 -2
  377. package/lib/node/events/webSocketLogProvider.d.ts.map +1 -1
  378. package/lib/node/events/webSocketLogProvider.js +5 -2
  379. package/lib/node/factory/bigNum.js +1 -1
  380. package/lib/node/idl/velocity.d.ts +1243 -1586
  381. package/lib/node/idl/velocity.d.ts.map +1 -1
  382. package/lib/node/idl/velocity.json +1234 -1577
  383. package/lib/node/index.d.ts +0 -2
  384. package/lib/node/index.d.ts.map +1 -1
  385. package/lib/node/index.js +0 -2
  386. package/lib/node/jupiter/jupiterClient.d.ts +1 -1
  387. package/lib/node/jupiter/jupiterClient.d.ts.map +1 -1
  388. package/lib/node/jupiter/jupiterClient.js +18 -8
  389. package/lib/node/marginCalculation.d.ts.map +1 -1
  390. package/lib/node/marginCalculation.js +1 -0
  391. package/lib/node/math/amm.d.ts +31 -13
  392. package/lib/node/math/amm.d.ts.map +1 -1
  393. package/lib/node/math/amm.js +77 -22
  394. package/lib/node/math/bankruptcy.js +1 -1
  395. package/lib/node/math/funding.d.ts.map +1 -1
  396. package/lib/node/math/funding.js +6 -6
  397. package/lib/node/math/insurance.d.ts +1 -1
  398. package/lib/node/math/insurance.d.ts.map +1 -1
  399. package/lib/node/math/insurance.js +4 -5
  400. package/lib/node/math/margin.d.ts +1 -9
  401. package/lib/node/math/margin.d.ts.map +1 -1
  402. package/lib/node/math/margin.js +3 -62
  403. package/lib/node/math/market.d.ts +4 -12
  404. package/lib/node/math/market.d.ts.map +1 -1
  405. package/lib/node/math/market.js +6 -40
  406. package/lib/node/math/oracles.d.ts +0 -3
  407. package/lib/node/math/oracles.d.ts.map +1 -1
  408. package/lib/node/math/oracles.js +1 -14
  409. package/lib/node/math/orders.d.ts +0 -5
  410. package/lib/node/math/orders.d.ts.map +1 -1
  411. package/lib/node/math/orders.js +2 -74
  412. package/lib/node/math/position.d.ts +1 -5
  413. package/lib/node/math/position.d.ts.map +1 -1
  414. package/lib/node/math/position.js +5 -10
  415. package/lib/node/math/repeg.d.ts +0 -1
  416. package/lib/node/math/repeg.d.ts.map +1 -1
  417. package/lib/node/math/repeg.js +1 -23
  418. package/lib/node/math/spotBalance.d.ts +4 -4
  419. package/lib/node/math/spotBalance.d.ts.map +1 -1
  420. package/lib/node/math/spotBalance.js +6 -6
  421. package/lib/node/math/spotMarket.d.ts +0 -6
  422. package/lib/node/math/spotMarket.d.ts.map +1 -1
  423. package/lib/node/math/spotMarket.js +1 -16
  424. package/lib/node/math/spotPosition.d.ts +4 -4
  425. package/lib/node/math/spotPosition.d.ts.map +1 -1
  426. package/lib/node/math/state.d.ts +0 -2
  427. package/lib/node/math/state.d.ts.map +1 -1
  428. package/lib/node/math/state.js +1 -9
  429. package/lib/node/math/superStake.d.ts +3 -53
  430. package/lib/node/math/superStake.d.ts.map +1 -1
  431. package/lib/node/math/superStake.js +16 -13
  432. package/lib/node/math/trade.d.ts +2 -2
  433. package/lib/node/math/trade.d.ts.map +1 -1
  434. package/lib/node/math/trade.js +6 -6
  435. package/lib/node/memcmp.d.ts +0 -1
  436. package/lib/node/memcmp.d.ts.map +1 -1
  437. package/lib/node/memcmp.js +1 -10
  438. package/lib/node/oracles/oracleClientCache.d.ts +1 -1
  439. package/lib/node/oracles/prelaunchOracleClient.d.ts.map +1 -1
  440. package/lib/node/oracles/prelaunchOracleClient.js +3 -2
  441. package/lib/node/oracles/pythClient.d.ts.map +1 -1
  442. package/lib/node/oracles/pythClient.js +9 -3
  443. package/lib/node/oracles/pythLazerClient.d.ts.map +1 -1
  444. package/lib/node/oracles/pythLazerClient.js +3 -2
  445. package/lib/node/oracles/utils.d.ts +4 -0
  446. package/lib/node/oracles/utils.d.ts.map +1 -1
  447. package/lib/node/oracles/utils.js +9 -1
  448. package/lib/node/orderSubscriber/OrderSubscriber.d.ts +1 -1
  449. package/lib/node/orderSubscriber/OrderSubscriber.d.ts.map +1 -1
  450. package/lib/node/orderSubscriber/OrderSubscriber.js +8 -2
  451. package/lib/node/priorityFee/heliusPriorityFeeMethod.d.ts +1 -1
  452. package/lib/node/priorityFee/heliusPriorityFeeMethod.d.ts.map +1 -1
  453. package/lib/node/priorityFee/priorityFeeSubscriber.d.ts +1 -1
  454. package/lib/node/priorityFee/priorityFeeSubscriber.d.ts.map +1 -1
  455. package/lib/node/priorityFee/priorityFeeSubscriber.js +32 -8
  456. package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts +1 -1
  457. package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts.map +1 -1
  458. package/lib/node/pyth/types.d.ts +0 -1
  459. package/lib/node/pyth/types.d.ts.map +1 -1
  460. package/lib/node/slot/SlotSubscriber.d.ts +1 -1
  461. package/lib/node/slot/SlotSubscriber.d.ts.map +1 -1
  462. package/lib/node/slot/SlotSubscriber.js +2 -1
  463. package/lib/node/slot/SlothashSubscriber.d.ts +3 -2
  464. package/lib/node/slot/SlothashSubscriber.d.ts.map +1 -1
  465. package/lib/node/slot/SlothashSubscriber.js +11 -4
  466. package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.d.ts +0 -3
  467. package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.d.ts.map +1 -1
  468. package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.js +5 -5
  469. package/lib/node/swift/signedMsgUserAccountSubscriber.d.ts +3 -2
  470. package/lib/node/swift/signedMsgUserAccountSubscriber.d.ts.map +1 -1
  471. package/lib/node/swift/signedMsgUserAccountSubscriber.js +13 -5
  472. package/lib/node/swift/swiftOrderSubscriber.d.ts +1 -1
  473. package/lib/node/swift/swiftOrderSubscriber.d.ts.map +1 -1
  474. package/lib/node/swift/swiftOrderSubscriber.js +10 -5
  475. package/lib/node/testClient.js +3 -2
  476. package/lib/node/tokenFaucet.d.ts.map +1 -1
  477. package/lib/node/tokenFaucet.js +16 -2
  478. package/lib/node/tx/baseTxSender.d.ts +4 -4
  479. package/lib/node/tx/baseTxSender.d.ts.map +1 -1
  480. package/lib/node/tx/baseTxSender.js +5 -4
  481. package/lib/node/tx/fastSingleTxSender.d.ts +3 -3
  482. package/lib/node/tx/fastSingleTxSender.d.ts.map +1 -1
  483. package/lib/node/tx/fastSingleTxSender.js +9 -5
  484. package/lib/node/tx/reportTransactionError.d.ts +2 -2
  485. package/lib/node/tx/reportTransactionError.d.ts.map +1 -1
  486. package/lib/node/tx/reportTransactionError.js +5 -1
  487. package/lib/node/tx/retryTxSender.d.ts +1 -1
  488. package/lib/node/tx/retryTxSender.d.ts.map +1 -1
  489. package/lib/node/tx/retryTxSender.js +4 -2
  490. package/lib/node/tx/txHandler.d.ts +9 -3
  491. package/lib/node/tx/txHandler.d.ts.map +1 -1
  492. package/lib/node/tx/txHandler.js +54 -40
  493. package/lib/node/tx/txParamProcessor.d.ts +4 -1
  494. package/lib/node/tx/txParamProcessor.d.ts.map +1 -1
  495. package/lib/node/tx/txParamProcessor.js +6 -0
  496. package/lib/node/tx/types.d.ts +1 -1
  497. package/lib/node/tx/types.d.ts.map +1 -1
  498. package/lib/node/tx/whileValidTxSender.d.ts +1 -6
  499. package/lib/node/tx/whileValidTxSender.d.ts.map +1 -1
  500. package/lib/node/tx/whileValidTxSender.js +35 -13
  501. package/lib/node/types.d.ts +25 -68
  502. package/lib/node/types.d.ts.map +1 -1
  503. package/lib/node/types.js +2 -2
  504. package/lib/node/user.d.ts +21 -7
  505. package/lib/node/user.d.ts.map +1 -1
  506. package/lib/node/user.js +156 -132
  507. package/lib/node/userMap/WebsocketSubscription.d.ts +1 -1
  508. package/lib/node/userMap/WebsocketSubscription.d.ts.map +1 -1
  509. package/lib/node/userMap/grpcSubscription.d.ts +1 -1
  510. package/lib/node/userMap/grpcSubscription.d.ts.map +1 -1
  511. package/lib/node/userMap/referrerMap.d.ts.map +1 -1
  512. package/lib/node/userMap/referrerMap.js +10 -3
  513. package/lib/node/userMap/revenueShareEscrowMap.d.ts.map +1 -1
  514. package/lib/node/userMap/revenueShareEscrowMap.js +4 -0
  515. package/lib/node/userMap/userMap.d.ts +1 -1
  516. package/lib/node/userMap/userMap.d.ts.map +1 -1
  517. package/lib/node/userMap/userMap.js +36 -23
  518. package/lib/node/userMap/userStatsMap.d.ts +1 -1
  519. package/lib/node/userMap/userStatsMap.d.ts.map +1 -1
  520. package/lib/node/userMap/userStatsMap.js +18 -13
  521. package/lib/node/userStats.d.ts +7 -2
  522. package/lib/node/userStats.d.ts.map +1 -1
  523. package/lib/node/userStats.js +18 -4
  524. package/lib/node/util/TransactionConfirmationManager.d.ts.map +1 -1
  525. package/lib/node/util/TransactionConfirmationManager.js +4 -2
  526. package/lib/node/util/chainClock.d.ts +1 -1
  527. package/lib/node/util/chainClock.d.ts.map +1 -1
  528. package/lib/node/util/computeUnits.d.ts +1 -1
  529. package/lib/node/util/computeUnits.d.ts.map +1 -1
  530. package/lib/node/util/computeUnits.js +6 -1
  531. package/lib/node/velocityClient.d.ts +93 -35
  532. package/lib/node/velocityClient.d.ts.map +1 -1
  533. package/lib/node/velocityClient.js +414 -280
  534. package/package.json +5 -3
  535. package/src/accounts/basicUserAccountSubscriber.ts +7 -5
  536. package/src/accounts/basicUserStatsAccountSubscriber.ts +9 -5
  537. package/src/accounts/bulkAccountLoader.ts +20 -7
  538. package/src/accounts/grpcAccountSubscriber.ts +11 -3
  539. package/src/accounts/grpcMultiAccountSubscriber.ts +24 -9
  540. package/src/accounts/grpcMultiUserAccountSubscriber.ts +16 -12
  541. package/src/accounts/grpcProgramAccountSubscriber.ts +11 -3
  542. package/src/accounts/grpcVelocityClientAccountSubscriber.ts +17 -7
  543. package/src/accounts/grpcVelocityClientAccountSubscriberV2.ts +66 -39
  544. package/src/accounts/laserProgramAccountSubscriber.ts +3 -0
  545. package/src/accounts/oneShotUserAccountSubscriber.ts +5 -3
  546. package/src/accounts/oneShotUserStatsAccountSubscriber.ts +8 -3
  547. package/src/accounts/pollingInsuranceFundStakeAccountSubscriber.ts +11 -5
  548. package/src/accounts/pollingOracleAccountSubscriber.ts +17 -10
  549. package/src/accounts/pollingTokenAccountSubscriber.ts +17 -10
  550. package/src/accounts/pollingUserAccountSubscriber.ts +26 -20
  551. package/src/accounts/pollingUserStatsAccountSubscriber.ts +12 -10
  552. package/src/accounts/pollingVelocityClientAccountSubscriber.ts +76 -30
  553. package/src/accounts/types.ts +6 -4
  554. package/src/accounts/utils.ts +10 -0
  555. package/src/accounts/webSocketAccountSubscriber.ts +23 -10
  556. package/src/accounts/webSocketAccountSubscriberV2.ts +23 -8
  557. package/src/accounts/webSocketInsuranceFundStakeAccountSubscriber.ts +17 -2
  558. package/src/accounts/webSocketProgramAccountSubscriber.ts +29 -4
  559. package/src/accounts/webSocketProgramAccountSubscriberV2.ts +30 -4
  560. package/src/accounts/webSocketProgramAccountsSubscriberV2.ts +29 -4
  561. package/src/accounts/webSocketUserAccountSubscriber.ts +11 -2
  562. package/src/accounts/webSocketUserStatsAccountSubsriber.ts +15 -2
  563. package/src/accounts/webSocketVelocityClientAccountSubscriber.ts +76 -48
  564. package/src/accounts/webSocketVelocityClientAccountSubscriberV2.ts +74 -35
  565. package/src/accounts/websocketProgramUserAccountSubscriber.ts +1 -6
  566. package/src/addresses/marketAddresses.ts +3 -2
  567. package/src/addresses/pda.ts +0 -25
  568. package/src/adminClient.ts +273 -303
  569. package/src/auctionSubscriber/auctionSubscriber.ts +7 -5
  570. package/src/auctionSubscriber/auctionSubscriberGrpc.ts +12 -5
  571. package/src/bankrun/bankrunConnection.ts +83 -39
  572. package/src/blockhashSubscriber/BlockhashSubscriber.ts +5 -4
  573. package/src/clock/clockSubscriber.ts +10 -9
  574. package/src/config.ts +8 -3
  575. package/src/constants/index.ts +1 -2
  576. package/src/constants/numericConstants.ts +3 -3
  577. package/src/constituentMap/constituentMap.ts +8 -1
  578. package/src/constituentMap/pollingConstituentAccountSubscriber.ts +4 -2
  579. package/src/constituentMap/webSocketConstituentAccountSubscriber.ts +13 -4
  580. package/src/core/instructions/perpOrders.ts +14 -0
  581. package/src/core/remainingAccounts.ts +4 -4
  582. package/src/decode/user.ts +8 -1
  583. package/src/dlob/DLOB.ts +296 -172
  584. package/src/dlob/DLOBNode.ts +23 -3
  585. package/src/dlob/DLOBSubscriber.ts +51 -34
  586. package/src/dlob/NodeList.ts +8 -7
  587. package/src/dlob/orderBookLevels.ts +45 -25
  588. package/src/events/eventList.ts +4 -1
  589. package/src/events/eventSubscriber.ts +107 -49
  590. package/src/events/eventsServerLogProvider.ts +22 -13
  591. package/src/events/fetchLogs.ts +3 -3
  592. package/src/events/pollingLogProvider.ts +2 -2
  593. package/src/events/txEventCache.ts +8 -2
  594. package/src/events/types.ts +0 -8
  595. package/src/events/webSocketLogProvider.ts +5 -3
  596. package/src/factory/bigNum.ts +2 -2
  597. package/src/idl/velocity.json +1234 -1577
  598. package/src/idl/velocity.ts +1234 -1577
  599. package/src/index.ts +0 -2
  600. package/src/jupiter/jupiterClient.ts +30 -10
  601. package/src/marginCalculation.ts +1 -0
  602. package/src/math/amm.ts +188 -33
  603. package/src/math/bankruptcy.ts +1 -1
  604. package/src/math/funding.ts +7 -6
  605. package/src/math/insurance.ts +6 -8
  606. package/src/math/margin.ts +5 -112
  607. package/src/math/market.ts +6 -96
  608. package/src/math/oracles.ts +0 -17
  609. package/src/math/orders.ts +1 -110
  610. package/src/math/position.ts +4 -16
  611. package/src/math/repeg.ts +0 -29
  612. package/src/math/spotBalance.ts +14 -10
  613. package/src/math/spotMarket.ts +2 -28
  614. package/src/math/spotPosition.ts +4 -4
  615. package/src/math/state.ts +0 -8
  616. package/src/math/superStake.ts +19 -65
  617. package/src/math/trade.ts +2 -6
  618. package/src/memcmp.ts +0 -9
  619. package/src/oracles/prelaunchOracleClient.ts +7 -2
  620. package/src/oracles/pythClient.ts +12 -3
  621. package/src/oracles/pythLazerClient.ts +7 -2
  622. package/src/oracles/utils.ts +15 -0
  623. package/src/orderSubscriber/OrderSubscriber.ts +10 -4
  624. package/src/priorityFee/heliusPriorityFeeMethod.ts +1 -1
  625. package/src/priorityFee/priorityFeeSubscriber.ts +45 -9
  626. package/src/priorityFee/solanaPriorityFeeMethod.ts +1 -1
  627. package/src/pyth/types.ts +0 -2
  628. package/src/slot/SlotSubscriber.ts +3 -3
  629. package/src/slot/SlothashSubscriber.ts +17 -6
  630. package/src/swift/grpcSignedMsgUserAccountSubscriber.ts +5 -6
  631. package/src/swift/signedMsgUserAccountSubscriber.ts +16 -8
  632. package/src/swift/swiftOrderSubscriber.ts +10 -9
  633. package/src/testClient.ts +2 -2
  634. package/src/tokenFaucet.ts +22 -3
  635. package/src/tx/baseTxSender.ts +10 -10
  636. package/src/tx/fastSingleTxSender.ts +12 -8
  637. package/src/tx/reportTransactionError.ts +12 -7
  638. package/src/tx/retryTxSender.ts +6 -4
  639. package/src/tx/txHandler.ts +88 -43
  640. package/src/tx/txParamProcessor.ts +18 -3
  641. package/src/tx/types.ts +1 -1
  642. package/src/tx/whileValidTxSender.ts +51 -22
  643. package/src/types.ts +39 -75
  644. package/src/user.ts +200 -152
  645. package/src/userMap/WebsocketSubscription.ts +1 -1
  646. package/src/userMap/grpcSubscription.ts +1 -1
  647. package/src/userMap/referrerMap.ts +13 -9
  648. package/src/userMap/revenueShareEscrowMap.ts +6 -1
  649. package/src/userMap/userMap.ts +43 -25
  650. package/src/userMap/userStatsMap.ts +32 -19
  651. package/src/userStats.ts +21 -8
  652. package/src/util/TransactionConfirmationManager.ts +10 -2
  653. package/src/util/chainClock.ts +1 -1
  654. package/src/util/computeUnits.ts +7 -3
  655. package/src/velocityClient.ts +536 -383
  656. package/tests/amm/test.ts +138 -0
  657. package/tests/dlob/helpers.ts +6 -1
  658. package/tsconfig.json +1 -0
  659. package/lib/browser/constants/insuranceFund.d.ts +0 -5
  660. package/lib/browser/constants/insuranceFund.js +0 -9
  661. package/lib/browser/tx/forwardOnlyTxSender.d.ts +0 -37
  662. package/lib/browser/tx/forwardOnlyTxSender.js +0 -92
  663. package/lib/browser/util/tps.d.ts +0 -2
  664. package/lib/browser/util/tps.js +0 -16
  665. package/lib/node/constants/insuranceFund.d.ts +0 -6
  666. package/lib/node/constants/insuranceFund.d.ts.map +0 -1
  667. package/lib/node/constants/insuranceFund.js +0 -9
  668. package/lib/node/tx/forwardOnlyTxSender.d.ts +0 -38
  669. package/lib/node/tx/forwardOnlyTxSender.d.ts.map +0 -1
  670. package/lib/node/tx/forwardOnlyTxSender.js +0 -92
  671. package/lib/node/util/tps.d.ts +0 -3
  672. package/lib/node/util/tps.d.ts.map +0 -1
  673. package/lib/node/util/tps.js +0 -16
  674. package/src/constants/insuranceFund.ts +0 -8
  675. package/src/tx/forwardOnlyTxSender.ts +0 -145
  676. package/src/util/tps.ts +0 -27
@@ -1,31 +1,28 @@
1
1
  /// <reference types="bn.js" />
2
2
  import { BN } from '../isomorphic/anchor';
3
- import { PerpMarketAccount, PositionDirection, MarginCategory, SpotMarketAccount } from '../types';
3
+ import { PerpMarketAccount, MarginCategory, SpotMarketAccount } from '../types';
4
4
  import { MMOraclePriceData, OraclePriceData } from '../oracles/types';
5
- import { DLOB } from '../dlob/DLOB';
6
5
  /**
7
6
  * Calculates market mark price
8
7
  *
9
8
  * @param market
10
9
  * @return markPrice : Precision PRICE_PRECISION
11
10
  */
12
- export declare function calculateReservePrice(market: PerpMarketAccount, mmOraclePriceData: MMOraclePriceData): BN;
11
+ export declare function calculateReservePrice(market: PerpMarketAccount, mmOraclePriceData?: MMOraclePriceData): BN;
13
12
  /**
14
13
  * Calculates market bid price
15
14
  *
16
15
  * @param market
17
16
  * @return bidPrice : Precision PRICE_PRECISION
18
17
  */
19
- export declare function calculateBidPrice(market: PerpMarketAccount, mmOraclePriceData: MMOraclePriceData, latestSlot?: BN): BN;
18
+ export declare function calculateBidPrice(market: PerpMarketAccount, mmOraclePriceData?: MMOraclePriceData, latestSlot?: BN): BN;
20
19
  /**
21
20
  * Calculates market ask price
22
21
  *
23
22
  * @param market
24
23
  * @return askPrice : Precision PRICE_PRECISION
25
24
  */
26
- export declare function calculateAskPrice(market: PerpMarketAccount, mmOraclePriceData: MMOraclePriceData, latestSlot?: BN): BN;
27
- export declare function calculateNewMarketAfterTrade(baseAssetAmount: BN, direction: PositionDirection, market: PerpMarketAccount): PerpMarketAccount;
28
- export declare function calculateOracleReserveSpread(market: PerpMarketAccount, mmOraclePriceData: MMOraclePriceData): BN;
25
+ export declare function calculateAskPrice(market: PerpMarketAccount, mmOraclePriceData?: MMOraclePriceData, latestSlot?: BN): BN;
29
26
  export declare function calculateOracleSpread(price: BN, oraclePriceData: OraclePriceData): BN;
30
27
  export declare function calculateMarketMarginRatio(market: PerpMarketAccount, size: BN, marginCategory: MarginCategory, customMarginRatio?: number): number;
31
28
  export declare function calculateUnrealizedAssetWeight(market: PerpMarketAccount, quoteSpotMarket: SpotMarketAccount, unrealizedPnl: BN, marginCategory: MarginCategory, oraclePriceData: Pick<OraclePriceData, 'price'>): BN;
@@ -33,11 +30,6 @@ export declare function calculateMarketAvailablePNL(perpMarket: PerpMarketAccoun
33
30
  export declare function calculateMarketMaxAvailableInsurance(perpMarket: PerpMarketAccount, spotMarket: SpotMarketAccount): BN;
34
31
  export declare function calculateNetUserPnl(perpMarket: PerpMarketAccount, oraclePriceData: Pick<OraclePriceData, 'price'>): BN;
35
32
  export declare function calculateNetUserPnlImbalance(perpMarket: PerpMarketAccount, spotMarket: SpotMarketAccount, oraclePriceData: Pick<OraclePriceData, 'price'>, applyFeePoolDiscount?: boolean): BN;
36
- export declare function calculateAvailablePerpLiquidity(market: PerpMarketAccount, mmOraclePriceData: MMOraclePriceData, dlob: DLOB, slot: number): {
37
- bids: BN;
38
- asks: BN;
39
- };
40
- export declare function calculatePerpMarketBaseLiquidatorFee(market: PerpMarketAccount): number;
41
33
  /**
42
34
  * Calculates trigger price for a perp market based on oracle price and current time
43
35
  * Implements the same logic as the Rust get_trigger_price function
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTriggerPrice = exports.calculatePerpMarketBaseLiquidatorFee = exports.calculateAvailablePerpLiquidity = exports.calculateNetUserPnlImbalance = exports.calculateNetUserPnl = exports.calculateMarketMaxAvailableInsurance = exports.calculateMarketAvailablePNL = exports.calculateUnrealizedAssetWeight = exports.calculateMarketMarginRatio = exports.calculateOracleSpread = exports.calculateOracleReserveSpread = exports.calculateNewMarketAfterTrade = exports.calculateAskPrice = exports.calculateBidPrice = exports.calculateReservePrice = void 0;
3
+ exports.getTriggerPrice = exports.calculateNetUserPnlImbalance = exports.calculateNetUserPnl = exports.calculateMarketMaxAvailableInsurance = exports.calculateMarketAvailablePNL = exports.calculateUnrealizedAssetWeight = exports.calculateMarketMarginRatio = exports.calculateOracleSpread = exports.calculateAskPrice = exports.calculateBidPrice = exports.calculateReservePrice = void 0;
4
4
  const anchor_1 = require("../isomorphic/anchor");
5
5
  const types_1 = require("../types");
6
6
  const amm_1 = require("./amm");
@@ -15,7 +15,7 @@ const assert_1 = require("../assert/assert");
15
15
  * @return markPrice : Precision PRICE_PRECISION
16
16
  */
17
17
  function calculateReservePrice(market, mmOraclePriceData) {
18
- const newAmm = (0, amm_1.calculateUpdatedAMM)(market.amm, market.totalExchangeFee, mmOraclePriceData);
18
+ const newAmm = (0, amm_1.calculateUpdatedAMM)(market.amm, mmOraclePriceData);
19
19
  return (0, amm_1.calculatePrice)(newAmm.baseAssetReserve, newAmm.quoteAssetReserve, newAmm.pegMultiplier);
20
20
  }
21
21
  exports.calculateReservePrice = calculateReservePrice;
@@ -26,7 +26,7 @@ exports.calculateReservePrice = calculateReservePrice;
26
26
  * @return bidPrice : Precision PRICE_PRECISION
27
27
  */
28
28
  function calculateBidPrice(market, mmOraclePriceData, latestSlot) {
29
- const { baseAssetReserve, quoteAssetReserve, newPeg } = (0, amm_1.calculateUpdatedAMMSpreadReserves)(market.amm, market.marketStats, market.totalExchangeFee, types_1.PositionDirection.SHORT, mmOraclePriceData, latestSlot);
29
+ const { baseAssetReserve, quoteAssetReserve, newPeg } = (0, amm_1.calculateUpdatedAMMSpreadReserves)(market.amm, market.marketStats, types_1.PositionDirection.SHORT, mmOraclePriceData, latestSlot);
30
30
  return (0, amm_1.calculatePrice)(baseAssetReserve, quoteAssetReserve, newPeg);
31
31
  }
32
32
  exports.calculateBidPrice = calculateBidPrice;
@@ -37,25 +37,10 @@ exports.calculateBidPrice = calculateBidPrice;
37
37
  * @return askPrice : Precision PRICE_PRECISION
38
38
  */
39
39
  function calculateAskPrice(market, mmOraclePriceData, latestSlot) {
40
- const { baseAssetReserve, quoteAssetReserve, newPeg } = (0, amm_1.calculateUpdatedAMMSpreadReserves)(market.amm, market.marketStats, market.totalExchangeFee, types_1.PositionDirection.LONG, mmOraclePriceData, latestSlot);
40
+ const { baseAssetReserve, quoteAssetReserve, newPeg } = (0, amm_1.calculateUpdatedAMMSpreadReserves)(market.amm, market.marketStats, types_1.PositionDirection.LONG, mmOraclePriceData, latestSlot);
41
41
  return (0, amm_1.calculatePrice)(baseAssetReserve, quoteAssetReserve, newPeg);
42
42
  }
43
43
  exports.calculateAskPrice = calculateAskPrice;
44
- function calculateNewMarketAfterTrade(baseAssetAmount, direction, market) {
45
- const [newQuoteAssetReserve, newBaseAssetReserve] = (0, amm_1.calculateAmmReservesAfterSwap)(market.amm, 'base', baseAssetAmount.abs(), (0, amm_1.getSwapDirection)('base', direction));
46
- const newAmm = Object.assign({}, market.amm);
47
- const newMarket = Object.assign({}, market);
48
- newMarket.amm = newAmm;
49
- newMarket.amm.quoteAssetReserve = newQuoteAssetReserve;
50
- newMarket.amm.baseAssetReserve = newBaseAssetReserve;
51
- return newMarket;
52
- }
53
- exports.calculateNewMarketAfterTrade = calculateNewMarketAfterTrade;
54
- function calculateOracleReserveSpread(market, mmOraclePriceData) {
55
- const reservePrice = calculateReservePrice(market, mmOraclePriceData);
56
- return calculateOracleSpread(reservePrice, mmOraclePriceData);
57
- }
58
- exports.calculateOracleReserveSpread = calculateOracleReserveSpread;
59
44
  function calculateOracleSpread(price, oraclePriceData) {
60
45
  return price.sub(oraclePriceData.price);
61
46
  }
@@ -138,25 +123,6 @@ function calculateNetUserPnlImbalance(perpMarket, spotMarket, oraclePriceData, a
138
123
  return imbalance;
139
124
  }
140
125
  exports.calculateNetUserPnlImbalance = calculateNetUserPnlImbalance;
141
- function calculateAvailablePerpLiquidity(market, mmOraclePriceData, dlob, slot) {
142
- let [bids, asks] = (0, amm_1.calculateMarketOpenBidAsk)(market.amm.baseAssetReserve, market.amm.minBaseAssetReserve, market.amm.maxBaseAssetReserve, market.orderStepSize);
143
- asks = asks.abs();
144
- for (const bid of dlob.getRestingLimitBids(market.marketIndex, slot, types_1.MarketType.PERP, mmOraclePriceData)) {
145
- bids = bids.add(bid.order.baseAssetAmount.sub(bid.order.baseAssetAmountFilled));
146
- }
147
- for (const ask of dlob.getRestingLimitAsks(market.marketIndex, slot, types_1.MarketType.PERP, mmOraclePriceData)) {
148
- asks = asks.add(ask.order.baseAssetAmount.sub(ask.order.baseAssetAmountFilled));
149
- }
150
- return {
151
- bids: bids,
152
- asks: asks,
153
- };
154
- }
155
- exports.calculateAvailablePerpLiquidity = calculateAvailablePerpLiquidity;
156
- function calculatePerpMarketBaseLiquidatorFee(market) {
157
- return market.liquidatorFee;
158
- }
159
- exports.calculatePerpMarketBaseLiquidatorFee = calculatePerpMarketBaseLiquidatorFee;
160
126
  /**
161
127
  * Calculates trigger price for a perp market based on oracle price and current time
162
128
  * Implements the same logic as the Rust get_trigger_price function
@@ -193,10 +159,10 @@ exports.getTriggerPrice = getTriggerPrice;
193
159
  * Implements the same logic as the Rust get_last_funding_basis function
194
160
  */
195
161
  function getLastFundingBasis(market, oraclePrice, now) {
196
- if (market.lastFundingOracleTwap.gt(numericConstants_1.ZERO)) {
162
+ if (market.marketStats.lastFundingOracleTwap.gt(numericConstants_1.ZERO)) {
197
163
  const lastFundingRate = market.lastFundingRate
198
164
  .mul(numericConstants_1.PRICE_PRECISION)
199
- .div(market.lastFundingOracleTwap)
165
+ .div(market.marketStats.lastFundingOracleTwap)
200
166
  .muln(24);
201
167
  const lastFundingRatePreAdj = lastFundingRate.sub(numericConstants_1.FUNDING_RATE_PRECISION.div(new anchor_1.BN(3333)) // FUNDING_RATE_OFFSET_PERCENTAGE
202
168
  );
@@ -1,6 +1,4 @@
1
1
  /// <reference types="bn.js" />
2
- /// <reference types="node" />
3
- /// <reference types="node" />
4
2
  import { HistoricalOracleData, MarketStats, OracleGuardRails, OracleSource, OracleValidity, PerpMarketAccount } from '../types';
5
3
  import { OraclePriceData } from '../oracles/types';
6
4
  import { BN } from '../isomorphic/anchor';
@@ -12,7 +10,6 @@ export declare function isOracleTooDivergent(marketStats: MarketStats, oraclePri
12
10
  export declare function calculateLiveOracleTwap(histOracleData: HistoricalOracleData, oraclePriceData: OraclePriceData, now: BN, period: BN): BN;
13
11
  export declare function calculateLiveOracleStd(marketStats: MarketStats, oraclePriceData: OraclePriceData, now: BN): BN;
14
12
  export declare function getNewOracleConfPct(marketStats: MarketStats, oraclePriceData: OraclePriceData, reservePrice: BN, now: BN): BN;
15
- export declare function trimVaaSignatures(vaa: Buffer, n?: number): Buffer;
16
13
  export declare function getMultipleBetweenOracleSources(firstOracleSource: OracleSource, secondOracleSource: OracleSource): {
17
14
  numerator: BN;
18
15
  denominator: BN;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getMultipleBetweenOracleSources = exports.trimVaaSignatures = exports.getNewOracleConfPct = exports.calculateLiveOracleStd = exports.calculateLiveOracleTwap = exports.isOracleTooDivergent = exports.isOracleValid = exports.getOracleValidity = exports.getMaxConfidenceIntervalMultiplier = exports.oraclePriceBands = void 0;
3
+ exports.getMultipleBetweenOracleSources = exports.getNewOracleConfPct = exports.calculateLiveOracleStd = exports.calculateLiveOracleTwap = exports.isOracleTooDivergent = exports.isOracleValid = exports.getOracleValidity = exports.getMaxConfidenceIntervalMultiplier = exports.oraclePriceBands = void 0;
4
4
  const types_1 = require("../types");
5
5
  const numericConstants_1 = require("../constants/numericConstants");
6
6
  const assert_1 = require("../assert/assert");
@@ -166,19 +166,6 @@ function getNewOracleConfPct(marketStats, oraclePriceData, reservePrice, now) {
166
166
  return confIntervalPctResult;
167
167
  }
168
168
  exports.getNewOracleConfPct = getNewOracleConfPct;
169
- function trimVaaSignatures(vaa, n = 3) {
170
- const currentNumSignatures = vaa[5];
171
- if (n > currentNumSignatures) {
172
- throw new Error("Resulting VAA can't have more signatures than the original VAA");
173
- }
174
- const trimmedVaa = Buffer.concat([
175
- vaa.subarray(0, 6 + n * 66),
176
- vaa.subarray(6 + currentNumSignatures * 66),
177
- ]);
178
- trimmedVaa[5] = n;
179
- return trimmedVaa;
180
- }
181
- exports.trimVaaSignatures = trimVaaSignatures;
182
169
  function getMultipleBetweenOracleSources(firstOracleSource, secondOracleSource) {
183
170
  if ((0, types_1.isOneOfVariant)(firstOracleSource, [
184
171
  'pythPull',
@@ -1,11 +1,7 @@
1
1
  /// <reference types="bn.js" />
2
- import { User } from '../user';
3
2
  import { PerpMarketAccount, AMM, MarketStats, Order, PositionDirection, MarketTypeStr, StateAccount } from '../types';
4
3
  import { BN } from '../isomorphic/anchor';
5
4
  import { MMOraclePriceData, OraclePriceData } from '../oracles/types';
6
- export declare function isOrderRiskIncreasing(user: User, order: Order): boolean;
7
- export declare function isOrderRiskIncreasingInSameDirection(user: User, order: Order): boolean;
8
- export declare function isOrderReduceOnly(user: User, order: Order): boolean;
9
5
  export declare function standardizeBaseAssetAmount(baseAssetAmount: BN, stepSize: BN): BN;
10
6
  export declare function standardizePrice(price: BN, tickSize: BN, direction: PositionDirection): BN;
11
7
  export declare function getLimitPrice<T extends MarketTypeStr>(order: Order, oraclePriceData: T extends 'spot' ? OraclePriceData : MMOraclePriceData, slot: number, fallbackPrice?: BN): BN | undefined;
@@ -21,7 +17,6 @@ export declare function isLimitOrder(order: Order): boolean;
21
17
  export declare function mustBeTriggered(order: Order): boolean;
22
18
  export declare function isTriggered(order: Order): boolean;
23
19
  export declare function isRestingLimitOrder(order: Order, slot: number): boolean;
24
- export declare function isTakingOrder(order: Order, slot: number): boolean;
25
20
  export declare function isSignedMsgOrder(order: Order): boolean;
26
21
  export declare function hasBuilder(order: Order): boolean;
27
22
  export declare function calculateOrderBaseAssetAmount(order: Order, existingBaseAssetAmount: BN): BN;
@@ -1,80 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.maxSizeForTargetLiabilityWeightBN = exports.calculateOrderBaseAssetAmount = exports.hasBuilder = exports.isSignedMsgOrder = exports.isTakingOrder = exports.isRestingLimitOrder = exports.isTriggered = exports.mustBeTriggered = exports.isLimitOrder = exports.isMarketOrder = exports.isOrderExpired = exports.calculateBaseAssetAmountToFillUpToLimitPrice = exports.calculateBaseAssetAmountForAmmToFulfill = exports.isLowRiskForAmm = exports.isFillableByVAMM = exports.hasAuctionPrice = exports.hasLimitPrice = exports.getLimitPrice = exports.standardizePrice = exports.standardizeBaseAssetAmount = exports.isOrderReduceOnly = exports.isOrderRiskIncreasingInSameDirection = exports.isOrderRiskIncreasing = void 0;
3
+ exports.maxSizeForTargetLiabilityWeightBN = exports.calculateOrderBaseAssetAmount = exports.hasBuilder = exports.isSignedMsgOrder = exports.isRestingLimitOrder = exports.isTriggered = exports.mustBeTriggered = exports.isLimitOrder = exports.isMarketOrder = exports.isOrderExpired = exports.calculateBaseAssetAmountToFillUpToLimitPrice = exports.calculateBaseAssetAmountForAmmToFulfill = exports.isLowRiskForAmm = exports.isFillableByVAMM = exports.hasAuctionPrice = exports.hasLimitPrice = exports.getLimitPrice = exports.standardizePrice = exports.standardizeBaseAssetAmount = void 0;
4
4
  const types_1 = require("../types");
5
5
  const numericConstants_1 = require("../constants/numericConstants");
6
6
  const anchor_1 = require("../isomorphic/anchor");
7
7
  const auction_1 = require("./auction");
8
8
  const amm_1 = require("./amm");
9
9
  const margin_1 = require("./margin");
10
- function isOrderRiskIncreasing(user, order) {
11
- if (!(0, types_1.isVariant)(order.status, 'open')) {
12
- return false;
13
- }
14
- const position = user.getPerpPosition(order.marketIndex) ||
15
- user.getEmptyPosition(order.marketIndex);
16
- // if no position exists, it's risk increasing
17
- if (position.baseAssetAmount.eq(numericConstants_1.ZERO)) {
18
- return true;
19
- }
20
- // if position is long and order is long
21
- if (position.baseAssetAmount.gt(numericConstants_1.ZERO) && (0, types_1.isVariant)(order.direction, 'long')) {
22
- return true;
23
- }
24
- // if position is short and order is short
25
- if (position.baseAssetAmount.lt(numericConstants_1.ZERO) &&
26
- (0, types_1.isVariant)(order.direction, 'short')) {
27
- return true;
28
- }
29
- const baseAssetAmountToFill = order.baseAssetAmount.sub(order.baseAssetAmountFilled);
30
- // if order will flip position
31
- if (baseAssetAmountToFill.gt(position.baseAssetAmount.abs().mul(numericConstants_1.TWO))) {
32
- return true;
33
- }
34
- return false;
35
- }
36
- exports.isOrderRiskIncreasing = isOrderRiskIncreasing;
37
- function isOrderRiskIncreasingInSameDirection(user, order) {
38
- if (!(0, types_1.isVariant)(order.status, 'open')) {
39
- return false;
40
- }
41
- const position = user.getPerpPosition(order.marketIndex) ||
42
- user.getEmptyPosition(order.marketIndex);
43
- // if no position exists, it's risk increasing
44
- if (position.baseAssetAmount.eq(numericConstants_1.ZERO)) {
45
- return true;
46
- }
47
- // if position is long and order is long
48
- if (position.baseAssetAmount.gt(numericConstants_1.ZERO) && (0, types_1.isVariant)(order.direction, 'long')) {
49
- return true;
50
- }
51
- // if position is short and order is short
52
- if (position.baseAssetAmount.lt(numericConstants_1.ZERO) &&
53
- (0, types_1.isVariant)(order.direction, 'short')) {
54
- return true;
55
- }
56
- return false;
57
- }
58
- exports.isOrderRiskIncreasingInSameDirection = isOrderRiskIncreasingInSameDirection;
59
- function isOrderReduceOnly(user, order) {
60
- if (!(0, types_1.isVariant)(order.status, 'open')) {
61
- return false;
62
- }
63
- const position = user.getPerpPosition(order.marketIndex) ||
64
- user.getEmptyPosition(order.marketIndex);
65
- // if position is long and order is long
66
- if (position.baseAssetAmount.gte(numericConstants_1.ZERO) &&
67
- (0, types_1.isVariant)(order.direction, 'long')) {
68
- return false;
69
- }
70
- // if position is short and order is short
71
- if (position.baseAssetAmount.lte(numericConstants_1.ZERO) &&
72
- (0, types_1.isVariant)(order.direction, 'short')) {
73
- return false;
74
- }
75
- return true;
76
- }
77
- exports.isOrderReduceOnly = isOrderReduceOnly;
78
10
  function standardizeBaseAssetAmount(baseAssetAmount, stepSize) {
79
11
  const remainder = baseAssetAmount.mod(stepSize);
80
12
  return baseAssetAmount.sub(remainder);
@@ -145,7 +77,7 @@ function calculateBaseAssetAmountForAmmToFulfill(order, market, mmOraclePriceDat
145
77
  }
146
78
  const limitPrice = getLimitPrice(order, mmOraclePriceData, slot);
147
79
  let baseAssetAmount;
148
- const updatedAMM = (0, amm_1.calculateUpdatedAMM)(market.amm, market.totalExchangeFee, mmOraclePriceData);
80
+ const updatedAMM = (0, amm_1.calculateUpdatedAMM)(market.amm, mmOraclePriceData);
149
81
  if (limitPrice !== undefined) {
150
82
  baseAssetAmount = calculateBaseAssetAmountToFillUpToLimitPrice(order, updatedAMM, market.marketStats, market.orderStepSize, market.orderTickSize, limitPrice, mmOraclePriceData);
151
83
  }
@@ -219,10 +151,6 @@ function isRestingLimitOrder(order, slot) {
219
151
  return order.postOnly || (0, auction_1.isAuctionComplete)(order, slot);
220
152
  }
221
153
  exports.isRestingLimitOrder = isRestingLimitOrder;
222
- function isTakingOrder(order, slot) {
223
- return isMarketOrder(order) || !isRestingLimitOrder(order, slot);
224
- }
225
- exports.isTakingOrder = isTakingOrder;
226
154
  const FLAG_IS_SIGNED_MSG = 0x01;
227
155
  function isSignedMsgOrder(order) {
228
156
  return (order.bitFlags & FLAG_IS_SIGNED_MSG) !== 0;
@@ -41,10 +41,6 @@ export declare function calculateFeesAndFundingPnl(market: PerpMarketAccount, pe
41
41
  * @returns // QUOTE_PRECISION
42
42
  */
43
43
  export declare function calculateUnsettledFundingPnl(market: PerpMarketAccount, perpPosition: PerpPosition): BN;
44
- /**
45
- * @deprecated use calculateUnsettledFundingPnl or calculateFeesAndFundingPnl instead
46
- */
47
- export declare function calculatePositionFundingPNL(market: PerpMarketAccount, perpPosition: PerpPosition): BN;
48
44
  export declare function positionIsAvailable(position: PerpPosition): boolean;
49
45
  export declare function positionIsBeingLiquidated(position: PerpPosition): boolean;
50
46
  /**
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hasOpenOrders = exports.isEmptyPosition = exports.positionCurrentDirection = exports.findDirectionToClose = exports.calculateCostBasis = exports.calculateEntryPrice = exports.calculateBreakEvenPrice = exports.positionIsBeingLiquidated = exports.positionIsAvailable = exports.calculatePositionFundingPNL = exports.calculateUnsettledFundingPnl = exports.calculateFeesAndFundingPnl = exports.calculateClaimablePnl = exports.calculatePositionPNL = exports.calculateBaseAssetValue = void 0;
3
+ exports.hasOpenOrders = exports.isEmptyPosition = exports.positionCurrentDirection = exports.findDirectionToClose = exports.calculateCostBasis = exports.calculateEntryPrice = exports.calculateBreakEvenPrice = exports.positionIsBeingLiquidated = exports.positionIsAvailable = exports.calculateUnsettledFundingPnl = exports.calculateFeesAndFundingPnl = exports.calculateClaimablePnl = exports.calculatePositionPNL = exports.calculateBaseAssetValue = void 0;
4
4
  const anchor_1 = require("../isomorphic/anchor");
5
5
  const numericConstants_1 = require("../constants/numericConstants");
6
6
  const types_1 = require("../types");
@@ -23,7 +23,7 @@ function calculateBaseAssetValue(market, userPosition, mmOraclePriceData, useSpr
23
23
  let prepegAmm;
24
24
  if (!skipUpdate) {
25
25
  if (market.amm.baseSpread > 0 && useSpread) {
26
- const { baseAssetReserve, quoteAssetReserve, sqrtK, newPeg } = (0, amm_1.calculateUpdatedAMMSpreadReserves)(market.amm, market.marketStats, market.totalExchangeFee, directionToClose, mmOraclePriceData, latestSlot);
26
+ const { baseAssetReserve, quoteAssetReserve, sqrtK, newPeg } = (0, amm_1.calculateUpdatedAMMSpreadReserves)(market.amm, market.marketStats, directionToClose, mmOraclePriceData, latestSlot);
27
27
  prepegAmm = {
28
28
  baseAssetReserve,
29
29
  quoteAssetReserve,
@@ -32,7 +32,7 @@ function calculateBaseAssetValue(market, userPosition, mmOraclePriceData, useSpr
32
32
  };
33
33
  }
34
34
  else {
35
- prepegAmm = (0, amm_1.calculateUpdatedAMM)(market.amm, market.totalExchangeFee, mmOraclePriceData);
35
+ prepegAmm = (0, amm_1.calculateUpdatedAMM)(market.amm, mmOraclePriceData);
36
36
  }
37
37
  }
38
38
  else {
@@ -51,6 +51,8 @@ function calculateBaseAssetValue(market, userPosition, mmOraclePriceData, useSpr
51
51
  .mul(prepegAmm.pegMultiplier)
52
52
  .div(numericConstants_1.AMM_TIMES_PEG_TO_QUOTE_PRECISION_RATIO)
53
53
  .add(numericConstants_1.ONE);
54
+ default:
55
+ throw new Error('Invalid position direction to close');
54
56
  }
55
57
  }
56
58
  exports.calculateBaseAssetValue = calculateBaseAssetValue;
@@ -138,13 +140,6 @@ function calculateUnsettledFundingPnl(market, perpPosition) {
138
140
  return perPositionFundingRate;
139
141
  }
140
142
  exports.calculateUnsettledFundingPnl = calculateUnsettledFundingPnl;
141
- /**
142
- * @deprecated use calculateUnsettledFundingPnl or calculateFeesAndFundingPnl instead
143
- */
144
- function calculatePositionFundingPNL(market, perpPosition) {
145
- return calculateUnsettledFundingPnl(market, perpPosition);
146
- }
147
- exports.calculatePositionFundingPNL = calculatePositionFundingPNL;
148
143
  function positionIsAvailable(position) {
149
144
  return (position.baseAssetAmount.eq(numericConstants_1.ZERO) &&
150
145
  position.openOrders === 0 &&
@@ -18,5 +18,4 @@ export declare function calculateAdjustKCost(amm: AMM, numerator: BN, denomenato
18
18
  */
19
19
  export declare function calculateRepegCost(amm: AMM, newPeg: BN): BN;
20
20
  export declare function calculateBudgetedKBN(x: BN, y: BN, budget: BN, Q: BN, d: BN): [BN, BN];
21
- export declare function calculateBudgetedK(amm: AMM, cost: BN): [BN, BN];
22
21
  export declare function calculateBudgetedPeg(amm: AMM, budget: BN, targetPrice: BN): BN;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.calculateBudgetedPeg = exports.calculateBudgetedK = exports.calculateBudgetedKBN = exports.calculateRepegCost = exports.calculateAdjustKCost = void 0;
3
+ exports.calculateBudgetedPeg = exports.calculateBudgetedKBN = exports.calculateRepegCost = exports.calculateAdjustKCost = void 0;
4
4
  const anchor_1 = require("../isomorphic/anchor");
5
5
  const assert_1 = require("../assert/assert");
6
6
  const numericConstants_1 = require("../constants/numericConstants");
@@ -115,28 +115,6 @@ function calculateBudgetedKBN(x, y, budget, Q, d) {
115
115
  return [numerator, denominator];
116
116
  }
117
117
  exports.calculateBudgetedKBN = calculateBudgetedKBN;
118
- function calculateBudgetedK(amm, cost) {
119
- // wolframalpha.com
120
- // (1/(x+d) - p/(x*p+d))*y*d*Q = C solve for p
121
- // p = (d(y*d*Q - C(x+d))) / (C*x(x+d) + y*d*d*Q)
122
- // numer
123
- // = y*d*d*Q - Cxd - Cdd
124
- // = y/x*Q*d*d - Cd - Cd/x
125
- // = mark - C/d - C/(x)
126
- // = mark/C - 1/d - 1/x
127
- // denom
128
- // = C*x*x + C*x*d + y*d*d*Q
129
- // = x/d**2 + 1 / d + mark/C
130
- // todo: assumes k = x * y
131
- // otherwise use: (y(1-p) + (kp^2/(x*p+d)) - k/(x+d)) * Q = C solve for p
132
- const x = amm.baseAssetReserve;
133
- const y = amm.quoteAssetReserve;
134
- const d = amm.baseAssetAmountWithAmm;
135
- const Q = amm.pegMultiplier;
136
- const [numerator, denominator] = calculateBudgetedKBN(x, y, cost, Q, d);
137
- return [numerator, denominator];
138
- }
139
- exports.calculateBudgetedK = calculateBudgetedK;
140
118
  function calculateBudgetedPeg(amm, budget, targetPrice) {
141
119
  let perPegCost = amm.quoteAssetReserve
142
120
  .sub(amm.terminalQuoteAssetReserve)
@@ -48,9 +48,9 @@ export declare function getStrictTokenValue(tokenAmount: BN, spotDecimals: numbe
48
48
  * @return {BN} The value of the token based on the oracle, scaled by `PRICE_PRECISION`
49
49
  */
50
50
  export declare function getTokenValue(tokenAmount: BN, spotDecimals: number, oraclePriceData: Pick<OraclePriceData, 'price'>): BN;
51
- export declare function calculateAssetWeight(balanceAmount: BN, oraclePrice: BN, spotMarket: SpotMarketAccount, marginCategory: MarginCategory): BN;
51
+ export declare function calculateAssetWeight(balanceAmount: BN, oraclePrice: BN, spotMarket: SpotMarketAccount, marginCategory: MarginCategory | undefined): BN;
52
52
  export declare function calculateScaledInitialAssetWeight(spotMarket: SpotMarketAccount, oraclePrice: BN): BN;
53
- export declare function calculateLiabilityWeight(size: BN, spotMarket: SpotMarketAccount, marginCategory: MarginCategory): BN;
53
+ export declare function calculateLiabilityWeight(size: BN, spotMarket: SpotMarketAccount, marginCategory: MarginCategory | undefined): BN;
54
54
  export declare function calculateUtilization(bank: SpotMarketAccount, delta?: BN): BN;
55
55
  /**
56
56
  * calculates max borrow amount where rate would stay below targetBorrowRate
@@ -78,8 +78,8 @@ export declare function calculateWithdrawLimit(spotMarket: SpotMarketAccount, no
78
78
  withdrawLimit: BN;
79
79
  minDepositAmount: BN;
80
80
  maxBorrowAmount: BN;
81
- currentDepositAmount: any;
82
- currentBorrowAmount: any;
81
+ currentDepositAmount: BN;
82
+ currentBorrowAmount: BN;
83
83
  };
84
84
  export declare function getSpotAssetValue(tokenAmount: BN, strictOraclePrice: StrictOraclePrice, spotMarketAccount: SpotMarketAccount, maxMarginRatio: number, marginCategory?: MarginCategory): BN;
85
85
  export declare function getSpotLiabilityValue(tokenAmount: BN, strictOraclePrice: StrictOraclePrice, spotMarketAccount: SpotMarketAccount, maxMarginRatio: number, marginCategory?: MarginCategory, liquidationBuffer?: BN): BN;
@@ -246,9 +246,9 @@ function calculateSpotMarketBorrowCapacity(spotMarketAccount, targetBorrowRate)
246
246
  return { totalCapacity, remainingCapacity };
247
247
  }
248
248
  exports.calculateSpotMarketBorrowCapacity = calculateSpotMarketBorrowCapacity;
249
- function calculateInterestRate(bank, delta = numericConstants_1.ZERO, currentUtilization = null) {
249
+ function calculateInterestRate(bank, delta = numericConstants_1.ZERO, currentUtilization) {
250
250
  // todo: ensure both a delta and current util aren't pass?
251
- const utilization = currentUtilization || calculateUtilization(bank, delta);
251
+ const utilization = currentUtilization !== null && currentUtilization !== void 0 ? currentUtilization : calculateUtilization(bank, delta);
252
252
  const optimalUtil = new anchor_1.BN(bank.optimalUtilization);
253
253
  const optimalRate = new anchor_1.BN(bank.optimalBorrowRate);
254
254
  const maxRate = new anchor_1.BN(bank.maxBorrowRate);
@@ -296,20 +296,20 @@ function calculateInterestRate(bank, delta = numericConstants_1.ZERO, currentUti
296
296
  return anchor_1.BN.max(minRate, rate);
297
297
  }
298
298
  exports.calculateInterestRate = calculateInterestRate;
299
- function calculateDepositRate(bank, delta = numericConstants_1.ZERO, currentUtilization = null) {
299
+ function calculateDepositRate(bank, delta = numericConstants_1.ZERO, currentUtilization) {
300
300
  // positive delta => adding to deposit
301
301
  // negative delta => adding to borrow
302
- const utilization = currentUtilization || calculateUtilization(bank, delta);
302
+ const utilization = currentUtilization !== null && currentUtilization !== void 0 ? currentUtilization : calculateUtilization(bank, delta);
303
303
  const borrowRate = calculateBorrowRate(bank, delta, utilization);
304
304
  const depositRate = borrowRate
305
- .mul(numericConstants_2.PERCENTAGE_PRECISION.sub(new anchor_1.BN(bank.insuranceFund.totalFactor)))
305
+ .mul(numericConstants_2.PERCENTAGE_PRECISION.sub(new anchor_1.BN(bank.insuranceFund.ifFeeFactor + bank.protocolFeeFactor)))
306
306
  .mul(utilization)
307
307
  .div(numericConstants_1.SPOT_MARKET_UTILIZATION_PRECISION)
308
308
  .div(numericConstants_2.PERCENTAGE_PRECISION);
309
309
  return depositRate;
310
310
  }
311
311
  exports.calculateDepositRate = calculateDepositRate;
312
- function calculateBorrowRate(bank, delta = numericConstants_1.ZERO, currentUtilization = null) {
312
+ function calculateBorrowRate(bank, delta = numericConstants_1.ZERO, currentUtilization) {
313
313
  return calculateInterestRate(bank, delta, currentUtilization);
314
314
  }
315
315
  exports.calculateBorrowRate = calculateBorrowRate;
@@ -3,9 +3,3 @@ import { BN } from '../isomorphic/anchor';
3
3
  import { MarginCategory, SpotBalanceType, SpotMarketAccount } from '../types';
4
4
  export declare function castNumberToSpotPrecision(value: number | BN, spotMarket: SpotMarketAccount): BN;
5
5
  export declare function calculateSpotMarketMarginRatio(market: SpotMarketAccount, oraclePrice: BN, marginCategory: MarginCategory, size: BN, balanceType: SpotBalanceType, customMarginRatio?: number): number;
6
- /**
7
- * 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)
8
- * @param market
9
- * @returns
10
- */
11
- export declare function calculateMaxRemainingDeposit(market: SpotMarketAccount): BN;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.calculateMaxRemainingDeposit = exports.calculateSpotMarketMarginRatio = exports.castNumberToSpotPrecision = void 0;
3
+ exports.calculateSpotMarketMarginRatio = exports.castNumberToSpotPrecision = void 0;
4
4
  const anchor_1 = require("../isomorphic/anchor");
5
5
  const types_1 = require("../types");
6
6
  const spotBalance_1 = require("./spotBalance");
@@ -32,18 +32,3 @@ function calculateSpotMarketMarginRatio(market, oraclePrice, marginCategory, siz
32
32
  return marginRatio;
33
33
  }
34
34
  exports.calculateSpotMarketMarginRatio = calculateSpotMarketMarginRatio;
35
- /**
36
- * 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)
37
- * @param market
38
- * @returns
39
- */
40
- function calculateMaxRemainingDeposit(market) {
41
- const marketMaxTokenDeposits = market.maxTokenDeposits;
42
- if (marketMaxTokenDeposits.eq(numericConstants_1.ZERO)) {
43
- // 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.
44
- return numericConstants_1.ZERO;
45
- }
46
- const totalDepositsTokenAmount = (0, spotBalance_1.getTokenAmount)(market.depositBalance, market, types_1.SpotBalanceType.DEPOSIT);
47
- return marketMaxTokenDeposits.sub(totalDepositsTokenAmount);
48
- }
49
- exports.calculateMaxRemainingDeposit = calculateMaxRemainingDeposit;
@@ -9,11 +9,11 @@ export type OrderFillSimulation = {
9
9
  tokenValue: BN;
10
10
  weight: BN;
11
11
  weightedTokenValue: BN;
12
- freeCollateralContribution: any;
12
+ freeCollateralContribution: BN;
13
13
  };
14
- export declare function getWorstCaseTokenAmounts(spotPosition: SpotPosition, spotMarketAccount: SpotMarketAccount, strictOraclePrice: StrictOraclePrice, marginCategory: MarginCategory, customMarginRatio?: number, includeOpenOrders?: boolean): OrderFillSimulation;
15
- export declare function calculateWeightedTokenValue(tokenAmount: BN, tokenValue: BN, oraclePrice: BN, spotMarket: SpotMarketAccount, marginCategory: MarginCategory, customMarginRatio?: number): {
14
+ export declare function getWorstCaseTokenAmounts(spotPosition: SpotPosition, spotMarketAccount: SpotMarketAccount, strictOraclePrice: StrictOraclePrice, marginCategory: MarginCategory | undefined, customMarginRatio?: number, includeOpenOrders?: boolean): OrderFillSimulation;
15
+ export declare function calculateWeightedTokenValue(tokenAmount: BN, tokenValue: BN, oraclePrice: BN, spotMarket: SpotMarketAccount, marginCategory: MarginCategory | undefined, customMarginRatio?: number): {
16
16
  weight: BN;
17
17
  weightedTokenValue: BN;
18
18
  };
19
- export declare function simulateOrderFill(tokenAmount: BN, tokenValue: BN, openOrders: BN, strictOraclePrice: StrictOraclePrice, spotMarket: SpotMarketAccount, marginCategory: MarginCategory, customMarginRatio?: number): OrderFillSimulation;
19
+ export declare function simulateOrderFill(tokenAmount: BN, tokenValue: BN, openOrders: BN, strictOraclePrice: StrictOraclePrice, spotMarket: SpotMarketAccount, marginCategory: MarginCategory | undefined, customMarginRatio?: number): OrderFillSimulation;
@@ -4,5 +4,3 @@ import { StateAccount } from '../types';
4
4
  export declare function calculateInitUserFee(stateAccount: StateAccount): BN;
5
5
  export declare function getMaxNumberOfSubAccounts(stateAccount: StateAccount): BN;
6
6
  export declare function useMedianTriggerPrice(stateAccount: StateAccount): boolean;
7
- export declare function builderCodesEnabled(stateAccount: StateAccount): boolean;
8
- export declare function builderReferralEnabled(stateAccount: StateAccount): boolean;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.builderReferralEnabled = exports.builderCodesEnabled = exports.useMedianTriggerPrice = exports.getMaxNumberOfSubAccounts = exports.calculateInitUserFee = void 0;
3
+ exports.useMedianTriggerPrice = exports.getMaxNumberOfSubAccounts = exports.calculateInitUserFee = void 0;
4
4
  const anchor_1 = require("../isomorphic/anchor");
5
5
  const numericConstants_1 = require("../constants/numericConstants");
6
6
  const types_1 = require("../types");
@@ -34,11 +34,3 @@ function useMedianTriggerPrice(stateAccount) {
34
34
  return ((stateAccount.featureBitFlags & types_1.FeatureBitFlags.MEDIAN_TRIGGER_PRICE) > 0);
35
35
  }
36
36
  exports.useMedianTriggerPrice = useMedianTriggerPrice;
37
- function builderCodesEnabled(stateAccount) {
38
- return (stateAccount.featureBitFlags & types_1.FeatureBitFlags.BUILDER_CODES) > 0;
39
- }
40
- exports.builderCodesEnabled = builderCodesEnabled;
41
- function builderReferralEnabled(stateAccount) {
42
- return (stateAccount.featureBitFlags & types_1.FeatureBitFlags.BUILDER_REFERRAL) > 0;
43
- }
44
- exports.builderReferralEnabled = builderReferralEnabled;
@@ -5,6 +5,7 @@ import { VelocityClient } from '../velocityClient';
5
5
  import { BN } from '../isomorphic/anchor';
6
6
  import { User } from '../user';
7
7
  import { DepositRecord } from '../types';
8
+ import fetch from 'node-fetch';
8
9
  export type BSOL_STATS_API_RESPONSE = {
9
10
  success: boolean;
10
11
  stats?: {
@@ -27,8 +28,8 @@ export type BSOL_EMISSIONS_API_RESPONSE = {
27
28
  lend: number;
28
29
  };
29
30
  };
30
- export declare function fetchBSolMetrics(): Promise<any>;
31
- export declare function fetchBSolVelocityEmissions(): Promise<any>;
31
+ export declare function fetchBSolMetrics(): Promise<fetch.Response>;
32
+ export declare function fetchBSolVelocityEmissions(): Promise<fetch.Response>;
32
33
  export declare function findBestSuperStakeIxs({ marketIndex, amount, jupiterClient, velocityClient, userAccountPublicKey, price, forceMarinade, onlyDirectRoutes, jupiterQuote, }: {
33
34
  marketIndex: number;
34
35
  amount: BN;
@@ -107,57 +108,6 @@ export type JITO_SOL_METRICS_ENDPOINT_RESPONSE = {
107
108
  }[];
108
109
  };
109
110
  export declare function fetchJitoSolMetrics(): Promise<JITO_SOL_METRICS_ENDPOINT_RESPONSE>;
110
- export type MSOL_METRICS_ENDPOINT_RESPONSE = {
111
- total_active_balance: number;
112
- available_reserve_balance: number;
113
- emergency_cooling_down: number;
114
- tvl_sol: number;
115
- msol_directed_stake_sol: number;
116
- msol_directed_stake_msol: number;
117
- mnde_total_supply: number;
118
- mnde_circulating_supply: number;
119
- validators_count: number;
120
- stake_accounts: number;
121
- staking_sol_cap: number;
122
- m_sol_price: number;
123
- avg_staking_apy: number;
124
- msol_price_apy_14d: number;
125
- msol_price_apy_30d: number;
126
- msol_price_apy_90d: number;
127
- msol_price_apy_365d: number;
128
- reserve_pda: number;
129
- treasury_m_sol_amount: number;
130
- m_sol_mint_supply: number;
131
- m_sol_supply_state: number;
132
- liq_pool_sol: number;
133
- liq_pool_m_sol: number;
134
- liq_pool_value: number;
135
- liq_pool_token_supply: number;
136
- liq_pool_token_price: number;
137
- liq_pool_target: number;
138
- liq_pool_min_fee: number;
139
- liq_pool_max_fee: number;
140
- liq_pool_current_fee: number;
141
- liq_pool_treasury_cut: number;
142
- liq_pool_cap: number;
143
- total_cooling_down: number;
144
- last_stake_delta_epoch: number;
145
- circulating_ticket_count: number;
146
- circulating_ticket_balance: number;
147
- reward_fee_bp: number;
148
- lido_staking: number;
149
- lido_st_sol_price: number;
150
- lido_stsol_price_apy_14d: number;
151
- lido_stsol_price_apy_30d: number;
152
- lido_stsol_price_apy_90d: number;
153
- lido_stsol_price_apy_365d: number;
154
- stake_delta: number;
155
- bot_balance: number;
156
- treasury_farm_claim_mnde_balance: number;
157
- last_3_epochs_avg_duration_hs: number;
158
- mnde_votes_validators: number;
159
- };
160
- export declare const fetchMSolMetrics: () => Promise<MSOL_METRICS_ENDPOINT_RESPONSE>;
161
111
  export declare function calculateSolEarned({ marketIndex, user, depositRecords, }: {
162
112
  marketIndex: number;
163
113
  user: User;