@velocity-exchange/sdk 0.0.5 → 0.1.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 (383) hide show
  1. package/.prettierignore +1 -1
  2. package/CHANGELOG.md +20 -0
  3. package/README.md +30 -30
  4. package/bun.lock +1 -1
  5. package/lib/browser/accounts/grpcProgramAccountSubscriber.js +1 -1
  6. package/lib/browser/accounts/grpcVelocityClientAccountSubscriber.d.ts +0 -4
  7. package/lib/browser/accounts/grpcVelocityClientAccountSubscriber.js +1 -3
  8. package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +0 -4
  9. package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.js +5 -7
  10. package/lib/browser/accounts/laserProgramAccountSubscriber.js +1 -1
  11. package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.d.ts +0 -4
  12. package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.js +5 -7
  13. package/lib/browser/accounts/types.d.ts +2 -8
  14. package/lib/browser/accounts/utils.js +2 -2
  15. package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.d.ts +0 -4
  16. package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.js +5 -7
  17. package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +0 -4
  18. package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.js +5 -7
  19. package/lib/browser/addresses/pda.d.ts +1 -7
  20. package/lib/browser/addresses/pda.js +4 -10
  21. package/lib/browser/adminClient.d.ts +1 -1
  22. package/lib/browser/adminClient.js +21 -21
  23. package/lib/browser/auctionSubscriber/auctionSubscriber.d.ts +1 -3
  24. package/lib/browser/auctionSubscriber/auctionSubscriber.js +2 -6
  25. package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.d.ts +1 -3
  26. package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.js +2 -6
  27. package/lib/browser/auctionSubscriber/types.d.ts +3 -2
  28. package/lib/browser/config.d.ts +10 -19
  29. package/lib/browser/config.js +6 -33
  30. package/lib/browser/constants/insuranceFund.d.ts +1 -1
  31. package/lib/browser/constants/insuranceFund.js +1 -1
  32. package/lib/browser/constituentMap/constituentMap.d.ts +0 -2
  33. package/lib/browser/constituentMap/constituentMap.js +5 -5
  34. package/lib/browser/core/VelocityCore.d.ts +9 -15
  35. package/lib/browser/core/VelocityCore.js +5 -7
  36. package/lib/browser/core/instructions/withdraw.d.ts +1 -1
  37. package/lib/browser/core/instructions/withdraw.js +1 -1
  38. package/lib/browser/core/remainingAccounts.js +3 -3
  39. package/lib/browser/dlob/DLOB.d.ts +1 -1
  40. package/lib/browser/dlob/DLOB.js +6 -6
  41. package/lib/browser/dlob/DLOBSubscriber.d.ts +0 -2
  42. package/lib/browser/dlob/DLOBSubscriber.js +2 -7
  43. package/lib/browser/dlob/orderBookLevels.js +7 -7
  44. package/lib/browser/dlob/types.d.ts +0 -2
  45. package/lib/browser/events/eventSubscriber.d.ts +1 -1
  46. package/lib/browser/events/eventsServerLogProvider.js +2 -2
  47. package/lib/browser/events/parse.js +14 -14
  48. package/lib/browser/events/types.d.ts +3 -5
  49. package/lib/browser/events/types.js +1 -1
  50. package/lib/browser/idl/{drift.d.ts → velocity.d.ts} +1042 -767
  51. package/lib/browser/idl/{drift.json → velocity.json} +1033 -758
  52. package/lib/browser/index.d.ts +1 -1
  53. package/lib/browser/index.js +1 -2
  54. package/lib/browser/math/amm.d.ts +10 -10
  55. package/lib/browser/math/amm.js +29 -28
  56. package/lib/browser/math/auction.js +16 -12
  57. package/lib/browser/math/builder.d.ts +18 -1
  58. package/lib/browser/math/builder.js +32 -1
  59. package/lib/browser/math/funding.js +26 -26
  60. package/lib/browser/math/margin.d.ts +4 -4
  61. package/lib/browser/math/margin.js +15 -15
  62. package/lib/browser/math/market.js +13 -13
  63. package/lib/browser/math/oracles.d.ts +4 -4
  64. package/lib/browser/math/oracles.js +23 -23
  65. package/lib/browser/math/orders.d.ts +2 -2
  66. package/lib/browser/math/orders.js +9 -9
  67. package/lib/browser/math/position.js +4 -4
  68. package/lib/browser/math/superStake.d.ts +8 -10
  69. package/lib/browser/math/superStake.js +18 -20
  70. package/lib/browser/math/trade.js +5 -5
  71. package/lib/browser/math/utils.d.ts +1 -1
  72. package/lib/browser/math/utils.js +1 -1
  73. package/lib/browser/oracles/pythLazerClient.js +2 -2
  74. package/lib/browser/orderSubscriber/OrderSubscriber.d.ts +0 -2
  75. package/lib/browser/orderSubscriber/OrderSubscriber.js +8 -12
  76. package/lib/browser/orderSubscriber/WebsocketSubscription.js +1 -1
  77. package/lib/browser/orderSubscriber/grpcSubscription.js +2 -2
  78. package/lib/browser/orderSubscriber/types.d.ts +0 -2
  79. package/lib/browser/priorityFee/priorityFeeSubscriber.d.ts +1 -5
  80. package/lib/browser/priorityFee/priorityFeeSubscriber.js +7 -15
  81. package/lib/browser/priorityFee/priorityFeeSubscriberMap.d.ts +0 -4
  82. package/lib/browser/priorityFee/priorityFeeSubscriberMap.js +3 -11
  83. package/lib/browser/priorityFee/types.d.ts +3 -8
  84. package/lib/browser/priorityFee/velocityPriorityFeeMethod.d.ts +0 -8
  85. package/lib/browser/priorityFee/velocityPriorityFeeMethod.js +1 -3
  86. package/lib/browser/pyth/pythLazerSubscriber.d.ts +1 -1
  87. package/lib/browser/pyth/pythLazerSubscriber.js +1 -1
  88. package/lib/browser/swap/UnifiedSwapClient.js +1 -1
  89. package/lib/browser/swift/signedMsgUserAccountSubscriber.d.ts +4 -5
  90. package/lib/browser/swift/signedMsgUserAccountSubscriber.js +2 -6
  91. package/lib/browser/swift/swiftOrderSubscriber.d.ts +6 -5
  92. package/lib/browser/swift/swiftOrderSubscriber.js +5 -11
  93. package/lib/browser/types.d.ts +79 -91
  94. package/lib/browser/types.js +4 -0
  95. package/lib/browser/user.d.ts +1 -3
  96. package/lib/browser/user.js +19 -23
  97. package/lib/browser/userConfig.d.ts +3 -2
  98. package/lib/browser/userMap/WebsocketSubscription.js +1 -1
  99. package/lib/browser/userMap/grpcSubscription.js +1 -1
  100. package/lib/browser/userMap/referrerMap.d.ts +0 -2
  101. package/lib/browser/userMap/referrerMap.js +0 -4
  102. package/lib/browser/userMap/revenueShareEscrowMap.d.ts +0 -2
  103. package/lib/browser/userMap/revenueShareEscrowMap.js +0 -4
  104. package/lib/browser/userMap/userMap.d.ts +2 -4
  105. package/lib/browser/userMap/userMap.js +10 -14
  106. package/lib/browser/userMap/userMapConfig.d.ts +3 -2
  107. package/lib/browser/userMap/userStatsMap.d.ts +0 -2
  108. package/lib/browser/userMap/userStatsMap.js +0 -4
  109. package/lib/browser/userStats.d.ts +0 -2
  110. package/lib/browser/userStats.js +10 -14
  111. package/lib/browser/userStatsConfig.d.ts +3 -2
  112. package/lib/browser/util/ed25519Utils.d.ts +1 -1
  113. package/lib/browser/util/ed25519Utils.js +1 -1
  114. package/lib/browser/velocityClient.d.ts +53 -38
  115. package/lib/browser/velocityClient.js +258 -196
  116. package/lib/browser/velocityClientConfig.d.ts +0 -8
  117. package/lib/node/accounts/grpcProgramAccountSubscriber.js +1 -1
  118. package/lib/node/accounts/grpcVelocityClientAccountSubscriber.d.ts +0 -4
  119. package/lib/node/accounts/grpcVelocityClientAccountSubscriber.d.ts.map +1 -1
  120. package/lib/node/accounts/grpcVelocityClientAccountSubscriber.js +1 -3
  121. package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +0 -4
  122. package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts.map +1 -1
  123. package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.js +5 -7
  124. package/lib/node/accounts/laserProgramAccountSubscriber.js +1 -1
  125. package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts +0 -4
  126. package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts.map +1 -1
  127. package/lib/node/accounts/pollingVelocityClientAccountSubscriber.js +5 -7
  128. package/lib/node/accounts/types.d.ts +2 -8
  129. package/lib/node/accounts/types.d.ts.map +1 -1
  130. package/lib/node/accounts/utils.js +2 -2
  131. package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts +0 -4
  132. package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts.map +1 -1
  133. package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.js +5 -7
  134. package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +0 -4
  135. package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts.map +1 -1
  136. package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.js +5 -7
  137. package/lib/node/addresses/pda.d.ts +1 -7
  138. package/lib/node/addresses/pda.d.ts.map +1 -1
  139. package/lib/node/addresses/pda.js +4 -10
  140. package/lib/node/adminClient.d.ts +1 -1
  141. package/lib/node/adminClient.js +21 -21
  142. package/lib/node/auctionSubscriber/auctionSubscriber.d.ts +1 -3
  143. package/lib/node/auctionSubscriber/auctionSubscriber.d.ts.map +1 -1
  144. package/lib/node/auctionSubscriber/auctionSubscriber.js +2 -6
  145. package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts +1 -3
  146. package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts.map +1 -1
  147. package/lib/node/auctionSubscriber/auctionSubscriberGrpc.js +2 -6
  148. package/lib/node/auctionSubscriber/types.d.ts +3 -2
  149. package/lib/node/auctionSubscriber/types.d.ts.map +1 -1
  150. package/lib/node/config.d.ts +10 -19
  151. package/lib/node/config.d.ts.map +1 -1
  152. package/lib/node/config.js +6 -33
  153. package/lib/node/constants/insuranceFund.d.ts +1 -1
  154. package/lib/node/constants/insuranceFund.js +1 -1
  155. package/lib/node/constituentMap/constituentMap.d.ts +0 -2
  156. package/lib/node/constituentMap/constituentMap.d.ts.map +1 -1
  157. package/lib/node/constituentMap/constituentMap.js +5 -5
  158. package/lib/node/core/VelocityCore.d.ts +9 -15
  159. package/lib/node/core/VelocityCore.d.ts.map +1 -1
  160. package/lib/node/core/VelocityCore.js +5 -7
  161. package/lib/node/core/instructions/withdraw.d.ts +1 -1
  162. package/lib/node/core/instructions/withdraw.d.ts.map +1 -1
  163. package/lib/node/core/instructions/withdraw.js +1 -1
  164. package/lib/node/core/remainingAccounts.js +3 -3
  165. package/lib/node/dlob/DLOB.d.ts +1 -1
  166. package/lib/node/dlob/DLOB.d.ts.map +1 -1
  167. package/lib/node/dlob/DLOB.js +6 -6
  168. package/lib/node/dlob/DLOBSubscriber.d.ts +0 -2
  169. package/lib/node/dlob/DLOBSubscriber.d.ts.map +1 -1
  170. package/lib/node/dlob/DLOBSubscriber.js +2 -7
  171. package/lib/node/dlob/orderBookLevels.d.ts.map +1 -1
  172. package/lib/node/dlob/orderBookLevels.js +7 -7
  173. package/lib/node/dlob/types.d.ts +0 -2
  174. package/lib/node/dlob/types.d.ts.map +1 -1
  175. package/lib/node/events/eventSubscriber.d.ts +1 -1
  176. package/lib/node/events/eventsServerLogProvider.js +2 -2
  177. package/lib/node/events/parse.d.ts.map +1 -1
  178. package/lib/node/events/parse.js +14 -14
  179. package/lib/node/events/types.d.ts +3 -5
  180. package/lib/node/events/types.d.ts.map +1 -1
  181. package/lib/node/events/types.js +1 -1
  182. package/lib/node/idl/{drift.d.ts → velocity.d.ts} +1043 -768
  183. package/lib/node/idl/velocity.d.ts.map +1 -0
  184. package/lib/node/idl/{drift.json → velocity.json} +1033 -758
  185. package/lib/node/index.d.ts +1 -1
  186. package/lib/node/index.d.ts.map +1 -1
  187. package/lib/node/index.js +1 -2
  188. package/lib/node/math/amm.d.ts +10 -10
  189. package/lib/node/math/amm.d.ts.map +1 -1
  190. package/lib/node/math/amm.js +29 -28
  191. package/lib/node/math/auction.d.ts.map +1 -1
  192. package/lib/node/math/auction.js +16 -12
  193. package/lib/node/math/builder.d.ts +18 -1
  194. package/lib/node/math/builder.d.ts.map +1 -1
  195. package/lib/node/math/builder.js +32 -1
  196. package/lib/node/math/funding.d.ts.map +1 -1
  197. package/lib/node/math/funding.js +26 -26
  198. package/lib/node/math/margin.d.ts +4 -4
  199. package/lib/node/math/margin.d.ts.map +1 -1
  200. package/lib/node/math/margin.js +15 -15
  201. package/lib/node/math/market.d.ts.map +1 -1
  202. package/lib/node/math/market.js +13 -13
  203. package/lib/node/math/oracles.d.ts +4 -4
  204. package/lib/node/math/oracles.d.ts.map +1 -1
  205. package/lib/node/math/oracles.js +23 -23
  206. package/lib/node/math/orders.d.ts +2 -2
  207. package/lib/node/math/orders.d.ts.map +1 -1
  208. package/lib/node/math/orders.js +9 -9
  209. package/lib/node/math/position.d.ts.map +1 -1
  210. package/lib/node/math/position.js +4 -4
  211. package/lib/node/math/superStake.d.ts +8 -10
  212. package/lib/node/math/superStake.d.ts.map +1 -1
  213. package/lib/node/math/superStake.js +18 -20
  214. package/lib/node/math/trade.d.ts.map +1 -1
  215. package/lib/node/math/trade.js +5 -5
  216. package/lib/node/math/utils.d.ts +1 -1
  217. package/lib/node/math/utils.js +1 -1
  218. package/lib/node/oracles/pythLazerClient.js +2 -2
  219. package/lib/node/orderSubscriber/OrderSubscriber.d.ts +0 -2
  220. package/lib/node/orderSubscriber/OrderSubscriber.d.ts.map +1 -1
  221. package/lib/node/orderSubscriber/OrderSubscriber.js +8 -12
  222. package/lib/node/orderSubscriber/WebsocketSubscription.js +1 -1
  223. package/lib/node/orderSubscriber/grpcSubscription.js +2 -2
  224. package/lib/node/orderSubscriber/types.d.ts +0 -2
  225. package/lib/node/orderSubscriber/types.d.ts.map +1 -1
  226. package/lib/node/priorityFee/priorityFeeSubscriber.d.ts +1 -5
  227. package/lib/node/priorityFee/priorityFeeSubscriber.d.ts.map +1 -1
  228. package/lib/node/priorityFee/priorityFeeSubscriber.js +7 -15
  229. package/lib/node/priorityFee/priorityFeeSubscriberMap.d.ts +0 -4
  230. package/lib/node/priorityFee/priorityFeeSubscriberMap.d.ts.map +1 -1
  231. package/lib/node/priorityFee/priorityFeeSubscriberMap.js +3 -11
  232. package/lib/node/priorityFee/types.d.ts +3 -8
  233. package/lib/node/priorityFee/types.d.ts.map +1 -1
  234. package/lib/node/priorityFee/velocityPriorityFeeMethod.d.ts +0 -8
  235. package/lib/node/priorityFee/velocityPriorityFeeMethod.d.ts.map +1 -1
  236. package/lib/node/priorityFee/velocityPriorityFeeMethod.js +1 -3
  237. package/lib/node/pyth/pythLazerSubscriber.d.ts +1 -1
  238. package/lib/node/pyth/pythLazerSubscriber.js +1 -1
  239. package/lib/node/swap/UnifiedSwapClient.js +1 -1
  240. package/lib/node/swift/signedMsgUserAccountSubscriber.d.ts +4 -5
  241. package/lib/node/swift/signedMsgUserAccountSubscriber.d.ts.map +1 -1
  242. package/lib/node/swift/signedMsgUserAccountSubscriber.js +2 -6
  243. package/lib/node/swift/swiftOrderSubscriber.d.ts +6 -5
  244. package/lib/node/swift/swiftOrderSubscriber.d.ts.map +1 -1
  245. package/lib/node/swift/swiftOrderSubscriber.js +5 -11
  246. package/lib/node/types.d.ts +79 -91
  247. package/lib/node/types.d.ts.map +1 -1
  248. package/lib/node/types.js +4 -0
  249. package/lib/node/user.d.ts +1 -3
  250. package/lib/node/user.d.ts.map +1 -1
  251. package/lib/node/user.js +19 -23
  252. package/lib/node/userConfig.d.ts +3 -2
  253. package/lib/node/userConfig.d.ts.map +1 -1
  254. package/lib/node/userMap/WebsocketSubscription.js +1 -1
  255. package/lib/node/userMap/grpcSubscription.js +1 -1
  256. package/lib/node/userMap/referrerMap.d.ts +0 -2
  257. package/lib/node/userMap/referrerMap.d.ts.map +1 -1
  258. package/lib/node/userMap/referrerMap.js +0 -4
  259. package/lib/node/userMap/revenueShareEscrowMap.d.ts +0 -2
  260. package/lib/node/userMap/revenueShareEscrowMap.d.ts.map +1 -1
  261. package/lib/node/userMap/revenueShareEscrowMap.js +0 -4
  262. package/lib/node/userMap/userMap.d.ts +2 -4
  263. package/lib/node/userMap/userMap.d.ts.map +1 -1
  264. package/lib/node/userMap/userMap.js +10 -14
  265. package/lib/node/userMap/userMapConfig.d.ts +3 -2
  266. package/lib/node/userMap/userMapConfig.d.ts.map +1 -1
  267. package/lib/node/userMap/userStatsMap.d.ts +0 -2
  268. package/lib/node/userMap/userStatsMap.d.ts.map +1 -1
  269. package/lib/node/userMap/userStatsMap.js +0 -4
  270. package/lib/node/userStats.d.ts +0 -2
  271. package/lib/node/userStats.d.ts.map +1 -1
  272. package/lib/node/userStats.js +10 -14
  273. package/lib/node/userStatsConfig.d.ts +3 -2
  274. package/lib/node/userStatsConfig.d.ts.map +1 -1
  275. package/lib/node/util/ed25519Utils.d.ts +1 -1
  276. package/lib/node/util/ed25519Utils.js +1 -1
  277. package/lib/node/velocityClient.d.ts +53 -38
  278. package/lib/node/velocityClient.d.ts.map +1 -1
  279. package/lib/node/velocityClient.js +258 -196
  280. package/lib/node/velocityClientConfig.d.ts +0 -8
  281. package/lib/node/velocityClientConfig.d.ts.map +1 -1
  282. package/package.json +6 -7
  283. package/scripts/deposit-isolated-positions.ts +2 -2
  284. package/scripts/find-flagged-users.ts +1 -1
  285. package/scripts/grpc-client-test-comparison.ts +4 -4
  286. package/scripts/grpc-multiuser-client-test-comparison.ts +2 -2
  287. package/scripts/single-grpc-client-test.ts +3 -3
  288. package/scripts/updateVersion.js +4 -4
  289. package/scripts/withdraw-isolated-positions.ts +2 -2
  290. package/src/accounts/grpcProgramAccountSubscriber.ts +1 -1
  291. package/src/accounts/grpcVelocityClientAccountSubscriber.ts +0 -7
  292. package/src/accounts/grpcVelocityClientAccountSubscriberV2.ts +4 -11
  293. package/src/accounts/laserProgramAccountSubscriber.ts +1 -1
  294. package/src/accounts/pollingVelocityClientAccountSubscriber.ts +4 -11
  295. package/src/accounts/types.ts +2 -9
  296. package/src/accounts/utils.ts +2 -2
  297. package/src/accounts/webSocketVelocityClientAccountSubscriber.ts +4 -11
  298. package/src/accounts/webSocketVelocityClientAccountSubscriberV2.ts +4 -11
  299. package/src/addresses/pda.ts +3 -13
  300. package/src/adminClient.ts +21 -21
  301. package/src/auctionSubscriber/auctionSubscriber.ts +1 -6
  302. package/src/auctionSubscriber/auctionSubscriberGrpc.ts +1 -6
  303. package/src/auctionSubscriber/types.ts +3 -3
  304. package/src/config.ts +8 -67
  305. package/src/constants/insuranceFund.ts +1 -1
  306. package/src/constituentMap/constituentMap.ts +2 -6
  307. package/src/core/VelocityCore.ts +11 -20
  308. package/src/core/instructions/withdraw.ts +2 -2
  309. package/src/core/remainingAccounts.ts +3 -3
  310. package/src/dlob/DLOB.ts +6 -6
  311. package/src/dlob/DLOBSubscriber.ts +2 -8
  312. package/src/dlob/orderBookLevels.ts +12 -6
  313. package/src/dlob/types.ts +0 -2
  314. package/src/events/eventSubscriber.ts +1 -1
  315. package/src/events/eventsServerLogProvider.ts +2 -2
  316. package/src/events/parse.ts +14 -14
  317. package/src/events/types.ts +4 -7
  318. package/src/idl/{drift.json → velocity.json} +1033 -758
  319. package/src/idl/{drift.ts → velocity.ts} +1035 -760
  320. package/src/index.ts +1 -4
  321. package/src/margin/README.md +2 -2
  322. package/src/math/amm.ts +43 -21
  323. package/src/math/auction.ts +16 -12
  324. package/src/math/builder.ts +45 -1
  325. package/src/math/funding.ts +46 -43
  326. package/src/math/margin.ts +15 -15
  327. package/src/math/market.ts +21 -13
  328. package/src/math/oracles.ts +29 -26
  329. package/src/math/orders.ts +18 -5
  330. package/src/math/position.ts +9 -3
  331. package/src/math/superStake.ts +21 -24
  332. package/src/math/trade.ts +9 -1
  333. package/src/math/utils.ts +1 -1
  334. package/src/oracles/pythLazerClient.ts +3 -3
  335. package/src/orderSubscriber/OrderSubscriber.ts +2 -8
  336. package/src/orderSubscriber/WebsocketSubscription.ts +1 -1
  337. package/src/orderSubscriber/grpcSubscription.ts +2 -2
  338. package/src/orderSubscriber/types.ts +0 -2
  339. package/src/priorityFee/priorityFeeSubscriber.ts +5 -12
  340. package/src/priorityFee/priorityFeeSubscriberMap.ts +2 -10
  341. package/src/priorityFee/types.ts +3 -13
  342. package/src/priorityFee/velocityPriorityFeeMethod.ts +0 -12
  343. package/src/pyth/pythLazerSubscriber.ts +1 -1
  344. package/src/swap/UnifiedSwapClient.ts +1 -1
  345. package/src/swift/signedMsgUserAccountSubscriber.ts +2 -8
  346. package/src/swift/swiftOrderSubscriber.ts +7 -12
  347. package/src/types.ts +84 -102
  348. package/src/user.ts +9 -14
  349. package/src/userConfig.ts +1 -3
  350. package/src/userMap/WebsocketSubscription.ts +1 -1
  351. package/src/userMap/grpcSubscription.ts +1 -1
  352. package/src/userMap/referrerMap.ts +0 -4
  353. package/src/userMap/revenueShareEscrowMap.ts +0 -4
  354. package/src/userMap/userMap.ts +3 -7
  355. package/src/userMap/userMapConfig.ts +3 -3
  356. package/src/userMap/userStatsMap.ts +0 -4
  357. package/src/userStats.ts +1 -5
  358. package/src/userStatsConfig.ts +3 -3
  359. package/src/util/ed25519Utils.ts +1 -1
  360. package/src/velocityClient.ts +339 -225
  361. package/src/velocityClientConfig.ts +0 -10
  362. package/tests/{DriftCore → VelocityCore}/decode.test.ts +1 -1
  363. package/tests/{DriftCore → VelocityCore}/fill_trigger.test.ts +1 -1
  364. package/tests/{DriftCore → VelocityCore}/instructions.test.ts +1 -1
  365. package/tests/{DriftCore → VelocityCore}/pdas.test.ts +4 -2
  366. package/tests/ci/verifyConstants.ts +24 -27
  367. package/tests/decode/test.ts +2 -2
  368. package/tests/dlob/helpers.ts +5 -9
  369. package/tests/events/parseLogsForCuUsage.ts +15 -15
  370. package/tests/user/helpers.ts +9 -9
  371. package/tests/user/test.ts +13 -10
  372. package/lib/browser/util/deprecatedAlias.d.ts +0 -26
  373. package/lib/browser/util/deprecatedAlias.js +0 -10
  374. package/lib/node/idl/drift.d.ts.map +0 -1
  375. package/lib/node/util/deprecatedAlias.d.ts +0 -27
  376. package/lib/node/util/deprecatedAlias.d.ts.map +0 -1
  377. package/lib/node/util/deprecatedAlias.js +0 -10
  378. package/src/util/deprecatedAlias.ts +0 -21
  379. /package/lib/browser/idl/{drift.js → velocity.js} +0 -0
  380. /package/lib/node/idl/{drift.js → velocity.js} +0 -0
  381. /package/tests/{DriftCore → VelocityCore}/perp_orders.test.ts +0 -0
  382. /package/tests/{DriftCore → VelocityCore}/remainingAccounts.test.ts +0 -0
  383. /package/tests/{DriftCore → VelocityCore}/settlement_liquidation.test.ts +0 -0
@@ -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, mmOraclePriceData);
18
+ const newAmm = (0, amm_1.calculateUpdatedAMM)(market.amm, market.totalExchangeFee, 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, types_1.PositionDirection.SHORT, mmOraclePriceData, latestSlot);
29
+ const { baseAssetReserve, quoteAssetReserve, newPeg } = (0, amm_1.calculateUpdatedAMMSpreadReserves)(market.amm, market.marketStats, market.totalExchangeFee, types_1.PositionDirection.SHORT, mmOraclePriceData, latestSlot);
30
30
  return (0, amm_1.calculatePrice)(baseAssetReserve, quoteAssetReserve, newPeg);
31
31
  }
32
32
  exports.calculateBidPrice = calculateBidPrice;
@@ -37,7 +37,7 @@ 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, types_1.PositionDirection.LONG, mmOraclePriceData, latestSlot);
40
+ const { baseAssetReserve, quoteAssetReserve, newPeg } = (0, amm_1.calculateUpdatedAMMSpreadReserves)(market.amm, market.marketStats, market.totalExchangeFee, types_1.PositionDirection.LONG, mmOraclePriceData, latestSlot);
41
41
  return (0, amm_1.calculatePrice)(baseAssetReserve, quoteAssetReserve, newPeg);
42
42
  }
43
43
  exports.calculateAskPrice = calculateAskPrice;
@@ -122,7 +122,7 @@ function calculateNetUserPnl(perpMarket, oraclePriceData) {
122
122
  .mul(oraclePriceData.price)
123
123
  .div(numericConstants_1.BASE_PRECISION)
124
124
  .div(numericConstants_1.PRICE_TO_QUOTE_PRECISION);
125
- const netUserCostBasis = perpMarket.amm.quoteAssetAmount.add(perpMarket.amm.netUnsettledFundingPnl);
125
+ const netUserCostBasis = perpMarket.quoteAssetAmount.add(perpMarket.netUnsettledFundingPnl);
126
126
  const netUserPnl = netUserPositionValue.add(netUserCostBasis);
127
127
  return netUserPnl;
128
128
  }
@@ -139,7 +139,7 @@ function calculateNetUserPnlImbalance(perpMarket, spotMarket, oraclePriceData, a
139
139
  }
140
140
  exports.calculateNetUserPnlImbalance = calculateNetUserPnlImbalance;
141
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.amm.orderStepSize);
142
+ let [bids, asks] = (0, amm_1.calculateMarketOpenBidAsk)(market.amm.baseAssetReserve, market.amm.minBaseAssetReserve, market.amm.maxBaseAssetReserve, market.orderStepSize);
143
143
  asks = asks.abs();
144
144
  for (const bid of dlob.getRestingLimitBids(market.marketIndex, slot, types_1.MarketType.PERP, mmOraclePriceData)) {
145
145
  bids = bids.add(bid.order.baseAssetAmount.sub(bid.order.baseAssetAmountFilled));
@@ -172,8 +172,8 @@ function getTriggerPrice(market, oraclePrice, now, useMedianPrice) {
172
172
  }
173
173
  const lastFillPrice = market.lastFillPrice;
174
174
  // Calculate 5-minute basis
175
- const markPrice5minTwap = market.amm.lastMarkPriceTwap5Min;
176
- const lastOraclePriceTwap5min = market.amm.historicalOracleData.lastOraclePriceTwap5Min;
175
+ const markPrice5minTwap = market.marketStats.lastMarkPriceTwap5Min;
176
+ const lastOraclePriceTwap5min = market.marketStats.historicalOracleData.lastOraclePriceTwap5Min;
177
177
  const basis5min = markPrice5minTwap.sub(lastOraclePriceTwap5min);
178
178
  const oraclePlusBasis5min = oraclePrice.add(basis5min);
179
179
  // Calculate funding basis
@@ -193,19 +193,19 @@ exports.getTriggerPrice = getTriggerPrice;
193
193
  * Implements the same logic as the Rust get_last_funding_basis function
194
194
  */
195
195
  function getLastFundingBasis(market, oraclePrice, now) {
196
- if (market.amm.lastFundingOracleTwap.gt(numericConstants_1.ZERO)) {
197
- const lastFundingRate = market.amm.lastFundingRate
196
+ if (market.lastFundingOracleTwap.gt(numericConstants_1.ZERO)) {
197
+ const lastFundingRate = market.lastFundingRate
198
198
  .mul(numericConstants_1.PRICE_PRECISION)
199
- .div(market.amm.lastFundingOracleTwap)
199
+ .div(market.lastFundingOracleTwap)
200
200
  .muln(24);
201
201
  const lastFundingRatePreAdj = lastFundingRate.sub(numericConstants_1.FUNDING_RATE_PRECISION.div(new anchor_1.BN(3333)) // FUNDING_RATE_OFFSET_PERCENTAGE
202
202
  );
203
- const timeLeftUntilFundingUpdate = anchor_1.BN.min(anchor_1.BN.max(now.sub(market.amm.lastFundingRateTs), numericConstants_1.ZERO), market.amm.fundingPeriod);
203
+ const timeLeftUntilFundingUpdate = anchor_1.BN.min(anchor_1.BN.max(now.sub(market.lastFundingRateTs), numericConstants_1.ZERO), market.marketStats.fundingPeriod);
204
204
  const lastFundingBasis = oraclePrice
205
205
  .mul(lastFundingRatePreAdj)
206
206
  .div(numericConstants_1.PERCENTAGE_PRECISION)
207
- .mul(market.amm.fundingPeriod.sub(timeLeftUntilFundingUpdate))
208
- .div(market.amm.fundingPeriod)
207
+ .mul(market.marketStats.fundingPeriod.sub(timeLeftUntilFundingUpdate))
208
+ .div(market.marketStats.fundingPeriod)
209
209
  .div(new anchor_1.BN(1000)); // FUNDING_RATE_BUFFER
210
210
  return lastFundingBasis;
211
211
  }
@@ -1,17 +1,17 @@
1
1
  /// <reference types="bn.js" />
2
2
  /// <reference types="node" />
3
3
  /// <reference types="node" />
4
- import { AMM, HistoricalOracleData, OracleGuardRails, OracleSource, OracleValidity, PerpMarketAccount } from '../types';
4
+ import { HistoricalOracleData, MarketStats, OracleGuardRails, OracleSource, OracleValidity, PerpMarketAccount } from '../types';
5
5
  import { OraclePriceData } from '../oracles/types';
6
6
  import { BN } from '../isomorphic/anchor';
7
7
  export declare function oraclePriceBands(market: PerpMarketAccount, oraclePriceData: Pick<OraclePriceData, 'price'>): [BN, BN];
8
8
  export declare function getMaxConfidenceIntervalMultiplier(market: PerpMarketAccount): BN;
9
9
  export declare function getOracleValidity(market: PerpMarketAccount, oraclePriceData: OraclePriceData, oracleGuardRails: OracleGuardRails, slot: BN, oracleStalenessBuffer?: BN): OracleValidity;
10
10
  export declare function isOracleValid(market: PerpMarketAccount, oraclePriceData: OraclePriceData, oracleGuardRails: OracleGuardRails, slot: number): boolean;
11
- export declare function isOracleTooDivergent(amm: AMM, oraclePriceData: OraclePriceData, oracleGuardRails: OracleGuardRails): boolean;
11
+ export declare function isOracleTooDivergent(marketStats: MarketStats, oraclePriceData: OraclePriceData, oracleGuardRails: OracleGuardRails): boolean;
12
12
  export declare function calculateLiveOracleTwap(histOracleData: HistoricalOracleData, oraclePriceData: OraclePriceData, now: BN, period: BN): BN;
13
- export declare function calculateLiveOracleStd(amm: AMM, oraclePriceData: OraclePriceData, now: BN): BN;
14
- export declare function getNewOracleConfPct(amm: AMM, oraclePriceData: OraclePriceData, reservePrice: BN, now: BN): BN;
13
+ export declare function calculateLiveOracleStd(marketStats: MarketStats, oraclePriceData: OraclePriceData, now: BN): BN;
14
+ export declare function getNewOracleConfPct(marketStats: MarketStats, oraclePriceData: OraclePriceData, reservePrice: BN, now: BN): BN;
15
15
  export declare function trimVaaSignatures(vaa: Buffer, n?: number): Buffer;
16
16
  export declare function getMultipleBetweenOracleSources(firstOracleSource: OracleSource, secondOracleSource: OracleSource): {
17
17
  numerator: BN;
@@ -36,8 +36,8 @@ function getMaxConfidenceIntervalMultiplier(market) {
36
36
  exports.getMaxConfidenceIntervalMultiplier = getMaxConfidenceIntervalMultiplier;
37
37
  function getOracleValidity(market, oraclePriceData, oracleGuardRails, slot, oracleStalenessBuffer = numericConstants_1.FIVE) {
38
38
  const isNonPositive = oraclePriceData.price.lte(numericConstants_1.ZERO);
39
- const isTooVolatile = anchor_1.BN.max(oraclePriceData.price, market.amm.historicalOracleData.lastOraclePriceTwap)
40
- .div(anchor_1.BN.max(numericConstants_1.ONE, anchor_1.BN.min(oraclePriceData.price, market.amm.historicalOracleData.lastOraclePriceTwap)))
39
+ const isTooVolatile = anchor_1.BN.max(oraclePriceData.price, market.marketStats.historicalOracleData.lastOraclePriceTwap)
40
+ .div(anchor_1.BN.max(numericConstants_1.ONE, anchor_1.BN.min(oraclePriceData.price, market.marketStats.historicalOracleData.lastOraclePriceTwap)))
41
41
  .gt(oracleGuardRails.validity.tooVolatileRatio);
42
42
  const confPctOfPrice = oraclePriceData.confidence
43
43
  .mul(numericConstants_1.BID_ASK_SPREAD_PRECISION)
@@ -45,18 +45,18 @@ function getOracleValidity(market, oraclePriceData, oracleGuardRails, slot, orac
45
45
  const isConfTooLarge = confPctOfPrice.gt(oracleGuardRails.validity.confidenceIntervalMaxSize.mul(getMaxConfidenceIntervalMultiplier(market)));
46
46
  const oracleDelay = slot.sub(oraclePriceData.slot).sub(oracleStalenessBuffer);
47
47
  let isStaleForAmmImmediate = true;
48
- if (market.amm.oracleSlotDelayOverride != 0) {
49
- isStaleForAmmImmediate = oracleDelay.gt(anchor_1.BN.max(new anchor_1.BN(market.amm.oracleSlotDelayOverride), numericConstants_1.ZERO));
48
+ if (market.oracleSlotDelayOverride != 0) {
49
+ isStaleForAmmImmediate = oracleDelay.gt(anchor_1.BN.max(new anchor_1.BN(market.oracleSlotDelayOverride), numericConstants_1.ZERO));
50
50
  }
51
51
  let isStaleForAmmLowRisk = false;
52
- if (market.amm.oracleLowRiskSlotDelayOverride != 0) {
53
- isStaleForAmmLowRisk = oracleDelay.gt(anchor_1.BN.max(new anchor_1.BN(market.amm.oracleLowRiskSlotDelayOverride), numericConstants_1.ZERO));
52
+ if (market.oracleLowRiskSlotDelayOverride != 0) {
53
+ isStaleForAmmLowRisk = oracleDelay.gt(anchor_1.BN.max(new anchor_1.BN(market.oracleLowRiskSlotDelayOverride), numericConstants_1.ZERO));
54
54
  }
55
55
  else {
56
56
  isStaleForAmmLowRisk = oracleDelay.gt(oracleGuardRails.validity.slotsBeforeStaleForAmm);
57
57
  }
58
58
  let isStaleForMargin = oracleDelay.gt(new anchor_1.BN(oracleGuardRails.validity.slotsBeforeStaleForMargin));
59
- if ((0, types_1.isVariant)(market.amm.oracleSource, 'pythLazerStableCoin')) {
59
+ if ((0, types_1.isVariant)(market.oracleSource, 'pythLazerStableCoin')) {
60
60
  isStaleForMargin = oracleDelay.gt(new anchor_1.BN(oracleGuardRails.validity.slotsBeforeStaleForMargin).muln(3));
61
61
  }
62
62
  if (isNonPositive) {
@@ -87,12 +87,12 @@ function getOracleValidity(market, oraclePriceData, oracleGuardRails, slot, orac
87
87
  exports.getOracleValidity = getOracleValidity;
88
88
  function isOracleValid(market, oraclePriceData, oracleGuardRails, slot) {
89
89
  // checks if oracle is valid for an AMM only fill
90
- const amm = market.amm;
90
+ const stats = market.marketStats;
91
91
  const isOraclePriceNonPositive = oraclePriceData.price.lte(numericConstants_1.ZERO);
92
92
  const isOraclePriceTooVolatile = oraclePriceData.price
93
- .div(anchor_1.BN.max(numericConstants_1.ONE, amm.historicalOracleData.lastOraclePriceTwap))
93
+ .div(anchor_1.BN.max(numericConstants_1.ONE, stats.historicalOracleData.lastOraclePriceTwap))
94
94
  .gt(oracleGuardRails.validity.tooVolatileRatio) ||
95
- amm.historicalOracleData.lastOraclePriceTwap
95
+ stats.historicalOracleData.lastOraclePriceTwap
96
96
  .div(anchor_1.BN.max(numericConstants_1.ONE, oraclePriceData.price))
97
97
  .gt(oracleGuardRails.validity.tooVolatileRatio);
98
98
  const maxConfidenceIntervalMultiplier = getMaxConfidenceIntervalMultiplier(market);
@@ -110,11 +110,11 @@ function isOracleValid(market, oraclePriceData, oracleGuardRails, slot) {
110
110
  isConfidenceTooLarge);
111
111
  }
112
112
  exports.isOracleValid = isOracleValid;
113
- function isOracleTooDivergent(amm, oraclePriceData, oracleGuardRails) {
113
+ function isOracleTooDivergent(marketStats, oraclePriceData, oracleGuardRails) {
114
114
  const oracleSpreadPct = oraclePriceData.price
115
- .sub(amm.historicalOracleData.lastOraclePriceTwap5Min)
115
+ .sub(marketStats.historicalOracleData.lastOraclePriceTwap5Min)
116
116
  .mul(numericConstants_1.PERCENTAGE_PRECISION)
117
- .div(amm.historicalOracleData.lastOraclePriceTwap5Min);
117
+ .div(marketStats.historicalOracleData.lastOraclePriceTwap5Min);
118
118
  const maxDivergence = anchor_1.BN.max(oracleGuardRails.priceDivergence.oracleTwap5MinPercentDivergence, numericConstants_1.PERCENTAGE_PRECISION.div(new anchor_1.BN(2)));
119
119
  const tooDivergent = oracleSpreadPct.abs().gte(maxDivergence);
120
120
  return tooDivergent;
@@ -141,23 +141,23 @@ function calculateLiveOracleTwap(histOracleData, oraclePriceData, now, period) {
141
141
  return newOracleTwap;
142
142
  }
143
143
  exports.calculateLiveOracleTwap = calculateLiveOracleTwap;
144
- function calculateLiveOracleStd(amm, oraclePriceData, now) {
145
- const sinceLastUpdate = anchor_1.BN.max(numericConstants_1.ONE, now.sub(amm.historicalOracleData.lastOraclePriceTwapTs));
146
- const sinceStart = anchor_1.BN.max(numericConstants_1.ZERO, amm.fundingPeriod.sub(sinceLastUpdate));
147
- const liveOracleTwap = calculateLiveOracleTwap(amm.historicalOracleData, oraclePriceData, now, amm.fundingPeriod);
148
- const liveOracleTwap5MIN = calculateLiveOracleTwap(amm.historicalOracleData, oraclePriceData, now, numericConstants_1.FIVE_MINUTE);
144
+ function calculateLiveOracleStd(marketStats, oraclePriceData, now) {
145
+ const sinceLastUpdate = anchor_1.BN.max(numericConstants_1.ONE, now.sub(marketStats.historicalOracleData.lastOraclePriceTwapTs));
146
+ const sinceStart = anchor_1.BN.max(numericConstants_1.ZERO, marketStats.fundingPeriod.sub(sinceLastUpdate));
147
+ const liveOracleTwap = calculateLiveOracleTwap(marketStats.historicalOracleData, oraclePriceData, now, marketStats.fundingPeriod);
148
+ const liveOracleTwap5MIN = calculateLiveOracleTwap(marketStats.historicalOracleData, oraclePriceData, now, numericConstants_1.FIVE_MINUTE);
149
149
  const priceDeltaVsTwap = anchor_1.BN.max(oraclePriceData.price.sub(liveOracleTwap).abs(), oraclePriceData.price.sub(liveOracleTwap5MIN).abs());
150
- const oracleStd = priceDeltaVsTwap.add(amm.oracleStd.mul(sinceStart).div(sinceStart.add(sinceLastUpdate)));
150
+ const oracleStd = priceDeltaVsTwap.add(marketStats.oracleStd.mul(sinceStart).div(sinceStart.add(sinceLastUpdate)));
151
151
  return oracleStd;
152
152
  }
153
153
  exports.calculateLiveOracleStd = calculateLiveOracleStd;
154
- function getNewOracleConfPct(amm, oraclePriceData, reservePrice, now) {
154
+ function getNewOracleConfPct(marketStats, oraclePriceData, reservePrice, now) {
155
155
  const confInterval = oraclePriceData.confidence || numericConstants_1.ZERO;
156
- const sinceLastUpdate = anchor_1.BN.max(numericConstants_1.ZERO, now.sub(amm.historicalOracleData.lastOraclePriceTwapTs));
157
- let lowerBoundConfPct = amm.lastOracleConfPct;
156
+ const sinceLastUpdate = anchor_1.BN.max(numericConstants_1.ZERO, now.sub(marketStats.historicalOracleData.lastOraclePriceTwapTs));
157
+ let lowerBoundConfPct = marketStats.lastOracleConfPct;
158
158
  if (sinceLastUpdate.gt(numericConstants_1.ZERO)) {
159
159
  const lowerBoundConfDivisor = anchor_1.BN.max(new anchor_1.BN(21).sub(sinceLastUpdate), new anchor_1.BN(5));
160
- lowerBoundConfPct = amm.lastOracleConfPct.sub(amm.lastOracleConfPct.div(lowerBoundConfDivisor));
160
+ lowerBoundConfPct = marketStats.lastOracleConfPct.sub(marketStats.lastOracleConfPct.div(lowerBoundConfDivisor));
161
161
  }
162
162
  const confIntervalPct = confInterval
163
163
  .mul(numericConstants_1.BID_ASK_SPREAD_PRECISION)
@@ -1,6 +1,6 @@
1
1
  /// <reference types="bn.js" />
2
2
  import { User } from '../user';
3
- import { PerpMarketAccount, AMM, Order, PositionDirection, MarketTypeStr, StateAccount } from '../types';
3
+ import { PerpMarketAccount, AMM, MarketStats, Order, PositionDirection, MarketTypeStr, StateAccount } from '../types';
4
4
  import { BN } from '../isomorphic/anchor';
5
5
  import { MMOraclePriceData, OraclePriceData } from '../oracles/types';
6
6
  export declare function isOrderRiskIncreasing(user: User, order: Order): boolean;
@@ -14,7 +14,7 @@ export declare function hasAuctionPrice(order: Order, slot: number): boolean;
14
14
  export declare function isFillableByVAMM(order: Order, market: PerpMarketAccount, mmOraclePriceData: MMOraclePriceData, slot: number, ts: number, state: StateAccount): boolean;
15
15
  export declare function isLowRiskForAmm(order: Order, mmOraclePriceData: MMOraclePriceData, isLiquidation?: boolean): boolean;
16
16
  export declare function calculateBaseAssetAmountForAmmToFulfill(order: Order, market: PerpMarketAccount, mmOraclePriceData: MMOraclePriceData, slot: number): BN;
17
- export declare function calculateBaseAssetAmountToFillUpToLimitPrice(order: Order, amm: AMM, limitPrice: BN, mmOraclePriceData: MMOraclePriceData): BN;
17
+ export declare function calculateBaseAssetAmountToFillUpToLimitPrice(order: Order, amm: AMM, marketStats: MarketStats, orderStepSize: BN, orderTickSize: BN, limitPrice: BN, mmOraclePriceData: MMOraclePriceData): BN;
18
18
  export declare function isOrderExpired(order: Order, ts: number, enforceBuffer?: boolean, bufferSeconds?: number): boolean;
19
19
  export declare function isMarketOrder(order: Order): boolean;
20
20
  export declare function isLimitOrder(order: Order): boolean;
@@ -145,23 +145,23 @@ function calculateBaseAssetAmountForAmmToFulfill(order, market, mmOraclePriceDat
145
145
  }
146
146
  const limitPrice = getLimitPrice(order, mmOraclePriceData, slot);
147
147
  let baseAssetAmount;
148
- const updatedAMM = (0, amm_1.calculateUpdatedAMM)(market.amm, mmOraclePriceData);
148
+ const updatedAMM = (0, amm_1.calculateUpdatedAMM)(market.amm, market.totalExchangeFee, mmOraclePriceData);
149
149
  if (limitPrice !== undefined) {
150
- baseAssetAmount = calculateBaseAssetAmountToFillUpToLimitPrice(order, updatedAMM, limitPrice, mmOraclePriceData);
150
+ baseAssetAmount = calculateBaseAssetAmountToFillUpToLimitPrice(order, updatedAMM, market.marketStats, market.orderStepSize, market.orderTickSize, limitPrice, mmOraclePriceData);
151
151
  }
152
152
  else {
153
153
  baseAssetAmount = order.baseAssetAmount.sub(order.baseAssetAmountFilled);
154
154
  }
155
- const maxBaseAssetAmount = (0, amm_1.calculateMaxBaseAssetAmountFillable)(updatedAMM, order.direction);
155
+ const maxBaseAssetAmount = (0, amm_1.calculateMaxBaseAssetAmountFillable)(updatedAMM, market.orderStepSize, order.direction);
156
156
  return anchor_1.BN.min(maxBaseAssetAmount, baseAssetAmount);
157
157
  }
158
158
  exports.calculateBaseAssetAmountForAmmToFulfill = calculateBaseAssetAmountForAmmToFulfill;
159
- function calculateBaseAssetAmountToFillUpToLimitPrice(order, amm, limitPrice, mmOraclePriceData) {
159
+ function calculateBaseAssetAmountToFillUpToLimitPrice(order, amm, marketStats, orderStepSize, orderTickSize, limitPrice, mmOraclePriceData) {
160
160
  const adjustedLimitPrice = (0, types_1.isVariant)(order.direction, 'long')
161
- ? limitPrice.sub(amm.orderTickSize)
162
- : limitPrice.add(amm.orderTickSize);
163
- const [maxAmountToTrade, direction] = (0, amm_1.calculateMaxBaseAssetAmountToTrade)(amm, adjustedLimitPrice, order.direction, mmOraclePriceData);
164
- const baseAssetAmount = standardizeBaseAssetAmount(maxAmountToTrade, amm.orderStepSize);
161
+ ? limitPrice.sub(orderTickSize)
162
+ : limitPrice.add(orderTickSize);
163
+ const [maxAmountToTrade, direction] = (0, amm_1.calculateMaxBaseAssetAmountToTrade)(amm, marketStats, adjustedLimitPrice, order.direction, mmOraclePriceData);
164
+ const baseAssetAmount = standardizeBaseAssetAmount(maxAmountToTrade, orderStepSize);
165
165
  // Check that directions are the same
166
166
  const sameDirection = isSameDirection(direction, order.direction);
167
167
  if (!sameDirection) {
@@ -285,7 +285,7 @@ function maxSizeForTargetLiabilityWeightBN(target, imfFactor, liabilityWeight, m
285
285
  }
286
286
  }
287
287
  // cap at max OI
288
- const maxOpenInterest = market.amm.maxOpenInterest;
288
+ const maxOpenInterest = market.maxOpenInterest;
289
289
  if (lo.gt(maxOpenInterest)) {
290
290
  return maxOpenInterest;
291
291
  }
@@ -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, directionToClose, mmOraclePriceData, latestSlot);
26
+ const { baseAssetReserve, quoteAssetReserve, sqrtK, newPeg } = (0, amm_1.calculateUpdatedAMMSpreadReserves)(market.amm, market.marketStats, market.totalExchangeFee, 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, mmOraclePriceData);
35
+ prepegAmm = (0, amm_1.calculateUpdatedAMM)(market.amm, market.totalExchangeFee, mmOraclePriceData);
36
36
  }
37
37
  }
38
38
  else {
@@ -124,10 +124,10 @@ function calculateUnsettledFundingPnl(market, perpPosition) {
124
124
  }
125
125
  let ammCumulativeFundingRate;
126
126
  if (perpPosition.baseAssetAmount.gt(numericConstants_1.ZERO)) {
127
- ammCumulativeFundingRate = market.amm.cumulativeFundingRateLong;
127
+ ammCumulativeFundingRate = market.cumulativeFundingRateLong;
128
128
  }
129
129
  else {
130
- ammCumulativeFundingRate = market.amm.cumulativeFundingRateShort;
130
+ ammCumulativeFundingRate = market.cumulativeFundingRateShort;
131
131
  }
132
132
  const perPositionFundingRate = ammCumulativeFundingRate
133
133
  .sub(perpPosition.lastCumulativeFundingRate)
@@ -29,13 +29,11 @@ export type BSOL_EMISSIONS_API_RESPONSE = {
29
29
  };
30
30
  export declare function fetchBSolMetrics(): Promise<any>;
31
31
  export declare function fetchBSolVelocityEmissions(): Promise<any>;
32
- /** @deprecated Use `fetchBSolVelocityEmissions` instead. `fetchBSolDriftEmissions` will be removed in a future major. */
33
- export declare const fetchBSolDriftEmissions: typeof fetchBSolVelocityEmissions;
34
- export declare function findBestSuperStakeIxs({ marketIndex, amount, jupiterClient, driftClient, userAccountPublicKey, price, forceMarinade, onlyDirectRoutes, jupiterQuote, }: {
32
+ export declare function findBestSuperStakeIxs({ marketIndex, amount, jupiterClient, velocityClient, userAccountPublicKey, price, forceMarinade, onlyDirectRoutes, jupiterQuote, }: {
35
33
  marketIndex: number;
36
34
  amount: BN;
37
35
  jupiterClient: JupiterClient;
38
- driftClient: VelocityClient;
36
+ velocityClient: VelocityClient;
39
37
  price?: number;
40
38
  userAccountPublicKey?: PublicKey;
41
39
  forceMarinade?: boolean;
@@ -47,10 +45,10 @@ export declare function findBestSuperStakeIxs({ marketIndex, amount, jupiterClie
47
45
  method: 'jupiter' | 'marinade';
48
46
  price?: number;
49
47
  }>;
50
- export declare function findBestMSolSuperStakeIxs({ amount, jupiterClient, driftClient, userAccountPublicKey, price, forceMarinade, onlyDirectRoutes, jupiterQuote, }: {
48
+ export declare function findBestMSolSuperStakeIxs({ amount, jupiterClient, velocityClient, userAccountPublicKey, price, forceMarinade, onlyDirectRoutes, jupiterQuote, }: {
51
49
  amount: BN;
52
50
  jupiterClient: JupiterClient;
53
- driftClient: VelocityClient;
51
+ velocityClient: VelocityClient;
54
52
  price?: number;
55
53
  userAccountPublicKey?: PublicKey;
56
54
  forceMarinade?: boolean;
@@ -62,10 +60,10 @@ export declare function findBestMSolSuperStakeIxs({ amount, jupiterClient, drift
62
60
  method: 'jupiter' | 'marinade';
63
61
  price: number;
64
62
  }>;
65
- export declare function findBestJitoSolSuperStakeIxs({ amount, jupiterClient, driftClient, userAccountPublicKey, onlyDirectRoutes, jupiterQuote, }: {
63
+ export declare function findBestJitoSolSuperStakeIxs({ amount, jupiterClient, velocityClient, userAccountPublicKey, onlyDirectRoutes, jupiterQuote, }: {
66
64
  amount: BN;
67
65
  jupiterClient: JupiterClient;
68
- driftClient: VelocityClient;
66
+ velocityClient: VelocityClient;
69
67
  userAccountPublicKey?: PublicKey;
70
68
  onlyDirectRoutes?: boolean;
71
69
  jupiterQuote?: QuoteResponse;
@@ -80,12 +78,12 @@ export declare function findBestJitoSolSuperStakeIxs({ amount, jupiterClient, dr
80
78
  *
81
79
  * Without doing any extra steps like checking if you can get a better rate by staking directly with that LST platform
82
80
  */
83
- export declare function findBestLstSuperStakeIxs({ amount, jupiterClient, driftClient, userAccountPublicKey, onlyDirectRoutes, lstMarketIndex, jupiterQuote, }: {
81
+ export declare function findBestLstSuperStakeIxs({ amount, jupiterClient, velocityClient, userAccountPublicKey, onlyDirectRoutes, lstMarketIndex, jupiterQuote, }: {
84
82
  amount: BN;
85
83
  lstMint: PublicKey;
86
84
  lstMarketIndex: number;
87
85
  jupiterClient: JupiterClient;
88
- driftClient: VelocityClient;
86
+ velocityClient: VelocityClient;
89
87
  userAccountPublicKey?: PublicKey;
90
88
  onlyDirectRoutes?: boolean;
91
89
  jupiterQuote?: QuoteResponse;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.calculateEstimatedSuperStakeLiquidationPrice = exports.calculateSolEarned = exports.fetchMSolMetrics = exports.fetchJitoSolMetrics = exports.findBestLstSuperStakeIxs = exports.findBestJitoSolSuperStakeIxs = exports.findBestMSolSuperStakeIxs = exports.findBestSuperStakeIxs = exports.fetchBSolDriftEmissions = exports.fetchBSolVelocityEmissions = exports.fetchBSolMetrics = void 0;
6
+ exports.calculateEstimatedSuperStakeLiquidationPrice = exports.calculateSolEarned = exports.fetchMSolMetrics = exports.fetchJitoSolMetrics = exports.findBestLstSuperStakeIxs = exports.findBestJitoSolSuperStakeIxs = exports.findBestMSolSuperStakeIxs = exports.findBestSuperStakeIxs = exports.fetchBSolVelocityEmissions = exports.fetchBSolMetrics = void 0;
7
7
  const web3_js_1 = require("@solana/web3.js");
8
8
  const marinade_1 = require("../marinade");
9
9
  const anchor_1 = require("../isomorphic/anchor");
@@ -16,17 +16,15 @@ async function fetchBSolMetrics() {
16
16
  }
17
17
  exports.fetchBSolMetrics = fetchBSolMetrics;
18
18
  async function fetchBSolVelocityEmissions() {
19
- return await (0, node_fetch_1.default)('https://stake.solblaze.org/api/v1/drift_emissions');
19
+ return await (0, node_fetch_1.default)('https://stake.solblaze.org/api/v1/velocity_emissions');
20
20
  }
21
21
  exports.fetchBSolVelocityEmissions = fetchBSolVelocityEmissions;
22
- /** @deprecated Use `fetchBSolVelocityEmissions` instead. `fetchBSolDriftEmissions` will be removed in a future major. */
23
- exports.fetchBSolDriftEmissions = fetchBSolVelocityEmissions;
24
- async function findBestSuperStakeIxs({ marketIndex, amount, jupiterClient, driftClient, userAccountPublicKey, price, forceMarinade, onlyDirectRoutes, jupiterQuote, }) {
22
+ async function findBestSuperStakeIxs({ marketIndex, amount, jupiterClient, velocityClient, userAccountPublicKey, price, forceMarinade, onlyDirectRoutes, jupiterQuote, }) {
25
23
  if (marketIndex === 2) {
26
24
  return findBestMSolSuperStakeIxs({
27
25
  amount,
28
26
  jupiterClient,
29
- driftClient,
27
+ velocityClient,
30
28
  userAccountPublicKey,
31
29
  price,
32
30
  forceMarinade,
@@ -38,7 +36,7 @@ async function findBestSuperStakeIxs({ marketIndex, amount, jupiterClient, drift
38
36
  return findBestJitoSolSuperStakeIxs({
39
37
  amount,
40
38
  jupiterClient,
41
- driftClient,
39
+ velocityClient,
42
40
  userAccountPublicKey,
43
41
  onlyDirectRoutes,
44
42
  jupiterQuote,
@@ -47,10 +45,10 @@ async function findBestSuperStakeIxs({ marketIndex, amount, jupiterClient, drift
47
45
  else if (marketIndex === 8) {
48
46
  return findBestLstSuperStakeIxs({
49
47
  amount,
50
- lstMint: driftClient.getSpotMarketAccount(8).mint,
48
+ lstMint: velocityClient.getSpotMarketAccount(8).mint,
51
49
  lstMarketIndex: 8,
52
50
  jupiterClient,
53
- driftClient,
51
+ velocityClient,
54
52
  userAccountPublicKey,
55
53
  onlyDirectRoutes,
56
54
  jupiterQuote,
@@ -61,13 +59,13 @@ async function findBestSuperStakeIxs({ marketIndex, amount, jupiterClient, drift
61
59
  }
62
60
  }
63
61
  exports.findBestSuperStakeIxs = findBestSuperStakeIxs;
64
- async function findBestMSolSuperStakeIxs({ amount, jupiterClient, driftClient, userAccountPublicKey, price, forceMarinade, onlyDirectRoutes, jupiterQuote, }) {
62
+ async function findBestMSolSuperStakeIxs({ amount, jupiterClient, velocityClient, userAccountPublicKey, price, forceMarinade, onlyDirectRoutes, jupiterQuote, }) {
65
63
  if (!price) {
66
- const marinadeProgram = (0, marinade_1.getMarinadeFinanceProgram)(driftClient.provider);
64
+ const marinadeProgram = (0, marinade_1.getMarinadeFinanceProgram)(velocityClient.provider);
67
65
  price = await (0, marinade_1.getMarinadeMSolPrice)(marinadeProgram);
68
66
  }
69
- const solSpotMarketAccount = driftClient.getSpotMarketAccount(1);
70
- const mSolSpotMarketAccount = driftClient.getSpotMarketAccount(2);
67
+ const solSpotMarketAccount = velocityClient.getSpotMarketAccount(1);
68
+ const mSolSpotMarketAccount = velocityClient.getSpotMarketAccount(2);
71
69
  let jupiterPrice;
72
70
  let quote = jupiterQuote;
73
71
  if (!jupiterQuote) {
@@ -87,7 +85,7 @@ async function findBestMSolSuperStakeIxs({ amount, jupiterClient, driftClient, u
87
85
  }
88
86
  }
89
87
  if (!jupiterPrice || price <= jupiterPrice || forceMarinade) {
90
- const ixs = await driftClient.getStakeForMSOLIx({
88
+ const ixs = await velocityClient.getStakeForMSOLIx({
91
89
  amount,
92
90
  userAccountPublicKey,
93
91
  });
@@ -99,7 +97,7 @@ async function findBestMSolSuperStakeIxs({ amount, jupiterClient, driftClient, u
99
97
  };
100
98
  }
101
99
  else {
102
- const { ixs, lookupTables } = await driftClient.getJupiterSwapIxV6({
100
+ const { ixs, lookupTables } = await velocityClient.getJupiterSwapIxV6({
103
101
  inMarketIndex: 1,
104
102
  outMarketIndex: 2,
105
103
  jupiterClient,
@@ -117,14 +115,14 @@ async function findBestMSolSuperStakeIxs({ amount, jupiterClient, driftClient, u
117
115
  }
118
116
  }
119
117
  exports.findBestMSolSuperStakeIxs = findBestMSolSuperStakeIxs;
120
- async function findBestJitoSolSuperStakeIxs({ amount, jupiterClient, driftClient, userAccountPublicKey, onlyDirectRoutes, jupiterQuote, }) {
118
+ async function findBestJitoSolSuperStakeIxs({ amount, jupiterClient, velocityClient, userAccountPublicKey, onlyDirectRoutes, jupiterQuote, }) {
121
119
  return await findBestLstSuperStakeIxs({
122
120
  amount,
123
121
  jupiterClient,
124
- driftClient,
122
+ velocityClient,
125
123
  userAccountPublicKey,
126
124
  onlyDirectRoutes,
127
- lstMint: driftClient.getSpotMarketAccount(6).mint,
125
+ lstMint: velocityClient.getSpotMarketAccount(6).mint,
128
126
  lstMarketIndex: 6,
129
127
  jupiterQuote,
130
128
  });
@@ -135,8 +133,8 @@ exports.findBestJitoSolSuperStakeIxs = findBestJitoSolSuperStakeIxs;
135
133
  *
136
134
  * Without doing any extra steps like checking if you can get a better rate by staking directly with that LST platform
137
135
  */
138
- async function findBestLstSuperStakeIxs({ amount, jupiterClient, driftClient, userAccountPublicKey, onlyDirectRoutes, lstMarketIndex, jupiterQuote, }) {
139
- const { ixs, lookupTables } = await driftClient.getJupiterSwapIxV6({
136
+ async function findBestLstSuperStakeIxs({ amount, jupiterClient, velocityClient, userAccountPublicKey, onlyDirectRoutes, lstMarketIndex, jupiterQuote, }) {
137
+ const { ixs, lookupTables } = await velocityClient.getJupiterSwapIxV6({
140
138
  inMarketIndex: 1,
141
139
  outMarketIndex: lstMarketIndex,
142
140
  jupiterClient,
@@ -53,7 +53,7 @@ function calculateTradeSlippage(direction, amount, market, inputAssetType = 'quo
53
53
  .div(acquiredBaseReserve.abs());
54
54
  let amm;
55
55
  if (useSpread && market.amm.baseSpread > 0) {
56
- const { baseAssetReserve, quoteAssetReserve, sqrtK, newPeg } = (0, amm_1.calculateUpdatedAMMSpreadReserves)(market.amm, direction, mmOraclePriceData, latestSlot);
56
+ const { baseAssetReserve, quoteAssetReserve, sqrtK, newPeg } = (0, amm_1.calculateUpdatedAMMSpreadReserves)(market.amm, market.marketStats, market.totalExchangeFee, direction, mmOraclePriceData, latestSlot);
57
57
  amm = {
58
58
  baseAssetReserve,
59
59
  quoteAssetReserve,
@@ -102,7 +102,7 @@ function calculateTradeAcquiredAmounts(direction, amount, market, inputAssetType
102
102
  const swapDirection = (0, amm_1.getSwapDirection)(inputAssetType, direction);
103
103
  let amm;
104
104
  if (useSpread && market.amm.baseSpread > 0) {
105
- const { baseAssetReserve, quoteAssetReserve, sqrtK, newPeg } = (0, amm_1.calculateUpdatedAMMSpreadReserves)(market.amm, direction, mmOraclePriceData, latestSlot);
105
+ const { baseAssetReserve, quoteAssetReserve, sqrtK, newPeg } = (0, amm_1.calculateUpdatedAMMSpreadReserves)(market.amm, market.marketStats, market.totalExchangeFee, direction, mmOraclePriceData, latestSlot);
106
106
  amm = {
107
107
  baseAssetReserve,
108
108
  quoteAssetReserve,
@@ -166,7 +166,7 @@ function calculateTargetPriceTrade(market, targetPrice, pct = MAXPCT, outputAsse
166
166
  let quoteAssetReserveBefore;
167
167
  let peg = market.amm.pegMultiplier;
168
168
  if (useSpread && market.amm.baseSpread > 0) {
169
- const { baseAssetReserve, quoteAssetReserve, newPeg } = (0, amm_1.calculateUpdatedAMMSpreadReserves)(market.amm, direction, mmOraclePriceData, latestSlot);
169
+ const { baseAssetReserve, quoteAssetReserve, newPeg } = (0, amm_1.calculateUpdatedAMMSpreadReserves)(market.amm, market.marketStats, market.totalExchangeFee, direction, mmOraclePriceData, latestSlot);
170
170
  baseAssetReserveBefore = baseAssetReserve;
171
171
  quoteAssetReserveBefore = quoteAssetReserve;
172
172
  peg = newPeg;
@@ -280,14 +280,14 @@ function calculateEstimatedPerpEntryPrice(assetType, amount, direction, market,
280
280
  const takerIsLong = (0, types_2.isVariant)(direction, 'long');
281
281
  const limitOrders = dlob[takerIsLong ? 'getRestingLimitAsks' : 'getRestingLimitBids'](market.marketIndex, slot, types_1.MarketType.PERP, mmOraclePriceData);
282
282
  const swapDirection = (0, amm_1.getSwapDirection)(assetType, direction);
283
- const { baseAssetReserve, quoteAssetReserve, sqrtK, newPeg } = (0, amm_1.calculateUpdatedAMMSpreadReserves)(market.amm, direction, mmOraclePriceData, new anchor_1.BN(slot));
283
+ const { baseAssetReserve, quoteAssetReserve, sqrtK, newPeg } = (0, amm_1.calculateUpdatedAMMSpreadReserves)(market.amm, market.marketStats, market.totalExchangeFee, direction, mmOraclePriceData, new anchor_1.BN(slot));
284
284
  const amm = {
285
285
  baseAssetReserve,
286
286
  quoteAssetReserve,
287
287
  sqrtK: sqrtK,
288
288
  pegMultiplier: newPeg,
289
289
  };
290
- const [ammBids, ammAsks] = (0, amm_1.calculateMarketOpenBidAsk)(market.amm.baseAssetReserve, market.amm.minBaseAssetReserve, market.amm.maxBaseAssetReserve, market.amm.orderStepSize);
290
+ const [ammBids, ammAsks] = (0, amm_1.calculateMarketOpenBidAsk)(market.amm.baseAssetReserve, market.amm.minBaseAssetReserve, market.amm.maxBaseAssetReserve, market.orderStepSize);
291
291
  let ammLiquidity;
292
292
  if (assetType === 'base') {
293
293
  ammLiquidity = takerIsLong ? ammAsks.abs() : ammBids;
@@ -18,6 +18,6 @@ export declare function isBNSafe(number: number): boolean;
18
18
  /**
19
19
  * Converts a number to BN makes sure the number is safe to convert to BN (that it does not overflow number after multiplying by precision)
20
20
  * @param number the number to convert to BN
21
- * @param precision the BN precision to use (i.e. QUOTE_PRECISION and BASE_PRECISION from drift sdk)
21
+ * @param precision the BN precision to use (i.e. QUOTE_PRECISION and BASE_PRECISION from velocity sdk)
22
22
  */
23
23
  export declare function numberToSafeBN(number: number, precision: BN): BN;
@@ -93,7 +93,7 @@ exports.isBNSafe = isBNSafe;
93
93
  /**
94
94
  * Converts a number to BN makes sure the number is safe to convert to BN (that it does not overflow number after multiplying by precision)
95
95
  * @param number the number to convert to BN
96
- * @param precision the BN precision to use (i.e. QUOTE_PRECISION and BASE_PRECISION from drift sdk)
96
+ * @param precision the BN precision to use (i.e. QUOTE_PRECISION and BASE_PRECISION from velocity sdk)
97
97
  */
98
98
  function numberToSafeBN(number, precision) {
99
99
  // check if number has decimals
@@ -8,7 +8,7 @@ const web3_js_1 = require("@solana/web3.js");
8
8
  const anchor_1 = require("../isomorphic/anchor");
9
9
  const numericConstants_1 = require("../constants/numericConstants");
10
10
  const wallet_1 = require("../wallet");
11
- const drift_json_1 = __importDefault(require("../idl/drift.json"));
11
+ const velocity_json_1 = __importDefault(require("../idl/velocity.json"));
12
12
  class PythLazerClient {
13
13
  constructor(connection, multiple = numericConstants_1.ONE, stableCoin = false) {
14
14
  this.connection = connection;
@@ -19,7 +19,7 @@ class PythLazerClient {
19
19
  new wallet_1.Wallet(new web3_js_1.Keypair()), {
20
20
  commitment: connection.commitment,
21
21
  });
22
- this.program = new anchor_1.Program(drift_json_1.default, provider);
22
+ this.program = new anchor_1.Program(velocity_json_1.default, provider);
23
23
  this.decodeFunc = this.program.account.pythLazerOracle.coder.accounts.decodeUnchecked.bind(this.program.account.pythLazerOracle.coder.accounts);
24
24
  }
25
25
  async getOraclePriceData(pricePublicKey) {
@@ -14,8 +14,6 @@ import { EventEmitter } from 'events';
14
14
  import { grpcSubscription } from './grpcSubscription';
15
15
  export declare class OrderSubscriber {
16
16
  velocityClient: VelocityClient;
17
- /** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
18
- get driftClient(): VelocityClient;
19
17
  usersAccounts: Map<string, {
20
18
  slot: number;
21
19
  userAccount: UserAccount;
@@ -14,16 +14,12 @@ const grpcSubscription_1 = require("./grpcSubscription");
14
14
  const orders_1 = require("../math/orders");
15
15
  const numericConstants_1 = require("../constants/numericConstants");
16
16
  class OrderSubscriber {
17
- /** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
18
- get driftClient() {
19
- return this.velocityClient;
20
- }
21
17
  constructor(config) {
22
- var _a, _b, _c, _d, _e, _f;
18
+ var _a, _b, _c, _d, _e;
23
19
  this.usersAccounts = new Map();
24
- const velocityClient = (_a = config.velocityClient) !== null && _a !== void 0 ? _a : config.driftClient;
20
+ const velocityClient = config.velocityClient;
25
21
  if (!velocityClient) {
26
- throw new Error('OrderSubscriber: velocityClient (or deprecated driftClient) must be provided');
22
+ throw new Error('OrderSubscriber: velocityClient must be provided');
27
23
  }
28
24
  this.velocityClient = velocityClient;
29
25
  this.commitment = config.subscriptionConfig.commitment || 'processed';
@@ -39,8 +35,8 @@ class OrderSubscriber {
39
35
  grpcConfigs: config.subscriptionConfig.grpcConfigs,
40
36
  skipInitialLoad: config.subscriptionConfig.skipInitialLoad,
41
37
  resubOpts: {
42
- resubTimeoutMs: (_b = config.subscriptionConfig) === null || _b === void 0 ? void 0 : _b.resubTimeoutMs,
43
- logResubMessages: (_c = config.subscriptionConfig) === null || _c === void 0 ? void 0 : _c.logResubMessages,
38
+ resubTimeoutMs: (_a = config.subscriptionConfig) === null || _a === void 0 ? void 0 : _a.resubTimeoutMs,
39
+ logResubMessages: (_b = config.subscriptionConfig) === null || _b === void 0 ? void 0 : _b.logResubMessages,
44
40
  },
45
41
  resyncIntervalMs: config.subscriptionConfig.resyncIntervalMs,
46
42
  decoded: config.decodeData,
@@ -52,14 +48,14 @@ class OrderSubscriber {
52
48
  commitment: this.commitment,
53
49
  skipInitialLoad: config.subscriptionConfig.skipInitialLoad,
54
50
  resubOpts: {
55
- resubTimeoutMs: (_d = config.subscriptionConfig) === null || _d === void 0 ? void 0 : _d.resubTimeoutMs,
56
- logResubMessages: (_e = config.subscriptionConfig) === null || _e === void 0 ? void 0 : _e.logResubMessages,
51
+ resubTimeoutMs: (_c = config.subscriptionConfig) === null || _c === void 0 ? void 0 : _c.resubTimeoutMs,
52
+ logResubMessages: (_d = config.subscriptionConfig) === null || _d === void 0 ? void 0 : _d.logResubMessages,
57
53
  },
58
54
  resyncIntervalMs: config.subscriptionConfig.resyncIntervalMs,
59
55
  decoded: config.decodeData,
60
56
  });
61
57
  }
62
- if ((_f = config.fastDecode) !== null && _f !== void 0 ? _f : true) {
58
+ if ((_e = config.fastDecode) !== null && _e !== void 0 ? _e : true) {
63
59
  this.decodeFn = (name, data) => (0, user_1.decodeUser)(data);
64
60
  }
65
61
  else {
@@ -16,7 +16,7 @@ class WebsocketSubscription {
16
16
  if (this.subscriber) {
17
17
  return;
18
18
  }
19
- this.subscriber = new webSocketProgramAccountSubscriber_1.WebSocketProgramAccountSubscriber('OrderSubscriber', 'user', this.orderSubscriber.driftClient.program, this.orderSubscriber.decodeFn, {
19
+ this.subscriber = new webSocketProgramAccountSubscriber_1.WebSocketProgramAccountSubscriber('OrderSubscriber', 'user', this.orderSubscriber.velocityClient.program, this.orderSubscriber.decodeFn, {
20
20
  filters: [(0, memcmp_1.getUserFilter)(), (0, memcmp_1.getNonIdleUserFilter)()],
21
21
  commitment: this.commitment,
22
22
  }, this.resubOpts);