@drift-labs/sdk 2.130.0-beta.9 → 2.130.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 (416) hide show
  1. package/VERSION +1 -1
  2. package/lib/browser/accounts/{userAccount/basicUserAccountSubscriber.d.ts → basicUserAccountSubscriber.d.ts} +2 -2
  3. package/lib/browser/accounts/{bulkAccountLoader/bulkAccountLoader.d.ts → bulkAccountLoader.d.ts} +2 -2
  4. package/lib/browser/accounts/{bulkAccountLoader/bulkAccountLoader.js → bulkAccountLoader.js} +2 -2
  5. package/lib/browser/accounts/bulkUserStatsSubscription.d.ts +1 -1
  6. package/lib/browser/accounts/bulkUserSubscription.d.ts +1 -1
  7. package/lib/browser/accounts/{bulkAccountLoader/customizedCadenceBulkAccountLoader.js → customizedCadenceBulkAccountLoader.js} +1 -1
  8. package/lib/browser/accounts/{baseSubscribers/grpcAccountSubscriber.d.ts → grpcAccountSubscriber.d.ts} +2 -1
  9. package/lib/{node/accounts/baseSubscribers → browser/accounts}/grpcAccountSubscriber.js +17 -13
  10. package/lib/browser/accounts/{driftClientAccount/grpcDriftClientAccountSubscriber.d.ts → grpcDriftClientAccountSubscriber.d.ts} +2 -2
  11. package/lib/{node/accounts/driftClientAccount → browser/accounts}/grpcDriftClientAccountSubscriber.js +4 -4
  12. package/lib/browser/accounts/{insuranceFundStakeAccount/grpcInsuranceFundStakeAccountSubscriber.d.ts → grpcInsuranceFundStakeAccountSubscriber.d.ts} +2 -2
  13. package/lib/{node/accounts/insuranceFundStakeAccount → browser/accounts}/grpcInsuranceFundStakeAccountSubscriber.js +1 -1
  14. package/lib/browser/accounts/{programAccount/grpcProgramAccountSubscriber.d.ts → grpcProgramAccountSubscriber.d.ts} +2 -1
  15. package/lib/browser/accounts/{programAccount/grpcProgramAccountSubscriber.js → grpcProgramAccountSubscriber.js} +17 -13
  16. package/lib/browser/accounts/{userAccount/grpcUserAccountSubscriber.d.ts → grpcUserAccountSubscriber.d.ts} +2 -2
  17. package/lib/browser/accounts/{userAccount/grpcUserAccountSubscriber.js → grpcUserAccountSubscriber.js} +1 -1
  18. package/lib/browser/accounts/{userStatsAccount/grpcUserStatsAccountSubscriber.d.ts → grpcUserStatsAccountSubscriber.d.ts} +2 -2
  19. package/lib/{node/accounts/userStatsAccount → browser/accounts}/grpcUserStatsAccountSubscriber.js +1 -1
  20. package/lib/browser/accounts/{userAccount/oneShotUserAccountSubscriber.d.ts → oneShotUserAccountSubscriber.d.ts} +2 -2
  21. package/lib/browser/accounts/{driftClientAccount/pollingDriftClientAccountSubscriber.d.ts → pollingDriftClientAccountSubscriber.d.ts} +5 -5
  22. package/lib/browser/accounts/{driftClientAccount/pollingDriftClientAccountSubscriber.js → pollingDriftClientAccountSubscriber.js} +8 -8
  23. package/lib/browser/accounts/{highLeverageModeConfigAccount/pollingHighLeverageModeConfigAccountSubscriber.d.ts → pollingHighLeverageModeConfigAccountSubscriber.d.ts} +3 -3
  24. package/lib/browser/accounts/{highLeverageModeConfigAccount/pollingHighLeverageModeConfigAccountSubscriber.js → pollingHighLeverageModeConfigAccountSubscriber.js} +1 -1
  25. package/lib/browser/accounts/{insuranceFundStakeAccount/pollingInsuranceFundStakeAccountSubscriber.d.ts → pollingInsuranceFundStakeAccountSubscriber.d.ts} +3 -3
  26. package/lib/{node/accounts/insuranceFundStakeAccount → browser/accounts}/pollingInsuranceFundStakeAccountSubscriber.js +1 -1
  27. package/lib/browser/accounts/{oracleAccount/pollingOracleAccountSubscriber.d.ts → pollingOracleAccountSubscriber.d.ts} +3 -3
  28. package/lib/{node/accounts/oracleAccount → browser/accounts}/pollingOracleAccountSubscriber.js +1 -1
  29. package/lib/browser/accounts/{tokenAccount/pollingTokenAccountSubscriber.d.ts → pollingTokenAccountSubscriber.d.ts} +2 -2
  30. package/lib/browser/accounts/{tokenAccount/pollingTokenAccountSubscriber.js → pollingTokenAccountSubscriber.js} +2 -2
  31. package/lib/browser/accounts/{userAccount/pollingUserAccountSubscriber.d.ts → pollingUserAccountSubscriber.d.ts} +4 -4
  32. package/lib/browser/accounts/{userAccount/pollingUserAccountSubscriber.js → pollingUserAccountSubscriber.js} +1 -1
  33. package/lib/browser/accounts/{userStatsAccount/pollingUserStatsAccountSubscriber.d.ts → pollingUserStatsAccountSubscriber.d.ts} +3 -3
  34. package/lib/browser/accounts/{userStatsAccount/pollingUserStatsAccountSubscriber.js → pollingUserStatsAccountSubscriber.js} +1 -1
  35. package/lib/browser/accounts/types.d.ts +11 -0
  36. package/lib/browser/accounts/{baseSubscribers/webSocketAccountSubscriber.d.ts → webSocketAccountSubscriber.d.ts} +1 -1
  37. package/lib/{node/accounts/baseSubscribers → browser/accounts}/webSocketAccountSubscriber.js +1 -1
  38. package/lib/browser/accounts/{driftClientAccount/webSocketDriftClientAccountSubscriber.d.ts → webSocketDriftClientAccountSubscriber.d.ts} +4 -4
  39. package/lib/browser/accounts/{driftClientAccount/webSocketDriftClientAccountSubscriber.js → webSocketDriftClientAccountSubscriber.js} +9 -9
  40. package/lib/browser/accounts/{highLeverageModeConfigAccount/webSocketHighLeverageModeConfigAccountSubscriber.d.ts → webSocketHighLeverageModeConfigAccountSubscriber.d.ts} +2 -2
  41. package/lib/browser/accounts/{highLeverageModeConfigAccount/webSocketHighLeverageModeConfigAccountSubscriber.js → webSocketHighLeverageModeConfigAccountSubscriber.js} +2 -2
  42. package/lib/browser/accounts/{insuranceFundStakeAccount/webSocketInsuranceFundStakeAccountSubscriber.d.ts → webSocketInsuranceFundStakeAccountSubscriber.d.ts} +2 -2
  43. package/lib/browser/accounts/{insuranceFundStakeAccount/webSocketInsuranceFundStakeAccountSubscriber.js → webSocketInsuranceFundStakeAccountSubscriber.js} +2 -2
  44. package/lib/browser/accounts/{programAccount/webSocketProgramAccountSubscriber.d.ts → webSocketProgramAccountSubscriber.d.ts} +1 -1
  45. package/lib/browser/accounts/{userAccount/webSocketUserAccountSubscriber.d.ts → webSocketUserAccountSubscriber.d.ts} +2 -2
  46. package/lib/{node/accounts/userAccount → browser/accounts}/webSocketUserAccountSubscriber.js +2 -2
  47. package/lib/browser/accounts/{userStatsAccount/webSocketUserStatsAccountSubsriber.d.ts → webSocketUserStatsAccountSubsriber.d.ts} +2 -2
  48. package/lib/browser/accounts/{userStatsAccount/webSocketUserStatsAccountSubsriber.js → webSocketUserStatsAccountSubsriber.js} +2 -2
  49. package/lib/browser/adminClient.d.ts +2 -2
  50. package/lib/browser/adminClient.js +14 -14
  51. package/lib/browser/auctionSubscriber/auctionSubscriber.js +1 -1
  52. package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.js +1 -1
  53. package/lib/browser/{config/index.d.ts → config.d.ts} +5 -5
  54. package/lib/{node/config/index.js → browser/config.js} +3 -3
  55. package/lib/browser/constants/perpMarkets.d.ts +1 -1
  56. package/lib/browser/constants/spotMarkets.d.ts +1 -1
  57. package/lib/browser/dlob/DLOB.d.ts +3 -3
  58. package/lib/browser/dlob/DLOB.js +18 -13
  59. package/lib/browser/dlob/DLOBNode.d.ts +5 -3
  60. package/lib/browser/dlob/DLOBNode.js +14 -13
  61. package/lib/browser/dlob/DLOBSubscriber.js +1 -1
  62. package/lib/browser/dlob/NodeList.d.ts +4 -1
  63. package/lib/browser/dlob/NodeList.js +11 -8
  64. package/lib/browser/dlob/orderBookLevels.d.ts +6 -0
  65. package/lib/browser/dlob/orderBookLevels.js +5 -2
  66. package/lib/browser/driftClient.d.ts +1 -1
  67. package/lib/browser/driftClient.js +18 -5
  68. package/lib/browser/driftClientConfig.d.ts +2 -2
  69. package/lib/browser/idl/drift.json +82 -11
  70. package/lib/browser/index.d.ts +14 -21
  71. package/lib/browser/index.js +14 -21
  72. package/lib/browser/math/amm.d.ts +4 -0
  73. package/lib/browser/math/amm.js +25 -9
  74. package/lib/browser/math/margin.js +1 -1
  75. package/lib/browser/math/market.d.ts +10 -0
  76. package/lib/browser/math/market.js +76 -1
  77. package/lib/browser/math/orders.d.ts +1 -0
  78. package/lib/browser/math/orders.js +13 -1
  79. package/lib/browser/math/state.d.ts +1 -0
  80. package/lib/browser/math/state.js +6 -1
  81. package/lib/browser/openbook/openbookV2Subscriber.d.ts +1 -1
  82. package/lib/browser/oracles/types.d.ts +1 -0
  83. package/lib/browser/oracles/utils.js +1 -3
  84. package/lib/browser/orderSubscriber/OrderSubscriber.d.ts +1 -1
  85. package/lib/browser/orderSubscriber/OrderSubscriber.js +10 -3
  86. package/lib/browser/orderSubscriber/WebsocketSubscription.js +1 -1
  87. package/lib/browser/orderSubscriber/grpcSubscription.js +1 -1
  88. package/lib/browser/phoenix/phoenixSubscriber.d.ts +1 -1
  89. package/lib/browser/serum/serumSubscriber.d.ts +1 -1
  90. package/lib/browser/serum/types.d.ts +1 -1
  91. package/lib/browser/swift/grpcSignedMsgUserAccountSubscriber.d.ts +1 -1
  92. package/lib/browser/swift/grpcSignedMsgUserAccountSubscriber.js +1 -1
  93. package/lib/browser/swift/signedMsgUserAccountSubscriber.d.ts +1 -1
  94. package/lib/browser/swift/signedMsgUserAccountSubscriber.js +1 -1
  95. package/lib/browser/swift/swiftOrderSubscriber.d.ts +1 -1
  96. package/lib/browser/types.d.ts +7 -0
  97. package/lib/browser/types.js +6 -1
  98. package/lib/browser/user.js +3 -3
  99. package/lib/browser/userConfig.d.ts +1 -1
  100. package/lib/browser/userMap/PollingSubscription.d.ts +2 -2
  101. package/lib/browser/userMap/WebsocketSubscription.d.ts +2 -2
  102. package/lib/browser/userMap/WebsocketSubscription.js +1 -1
  103. package/lib/browser/userMap/grpcSubscription.d.ts +2 -2
  104. package/lib/browser/userMap/grpcSubscription.js +1 -1
  105. package/lib/browser/userMap/userMap.d.ts +18 -3
  106. package/lib/browser/userMap/userMap.js +1 -1
  107. package/lib/browser/userMap/userStatsMap.d.ts +1 -1
  108. package/lib/browser/userMap/userStatsMap.js +1 -1
  109. package/lib/browser/userStats.js +3 -3
  110. package/lib/browser/userStatsConfig.d.ts +1 -1
  111. package/lib/node/accounts/{userAccount/basicUserAccountSubscriber.d.ts → basicUserAccountSubscriber.d.ts} +2 -2
  112. package/lib/node/accounts/basicUserAccountSubscriber.d.ts.map +1 -0
  113. package/lib/node/accounts/{bulkAccountLoader/bulkAccountLoader.d.ts → bulkAccountLoader.d.ts} +2 -2
  114. package/lib/node/accounts/bulkAccountLoader.d.ts.map +1 -0
  115. package/lib/node/accounts/{bulkAccountLoader/bulkAccountLoader.js → bulkAccountLoader.js} +2 -2
  116. package/lib/node/accounts/bulkUserStatsSubscription.d.ts +1 -1
  117. package/lib/node/accounts/bulkUserStatsSubscription.d.ts.map +1 -1
  118. package/lib/node/accounts/bulkUserSubscription.d.ts +1 -1
  119. package/lib/node/accounts/bulkUserSubscription.d.ts.map +1 -1
  120. package/lib/node/accounts/customizedCadenceBulkAccountLoader.d.ts.map +1 -0
  121. package/lib/node/accounts/{bulkAccountLoader/customizedCadenceBulkAccountLoader.js → customizedCadenceBulkAccountLoader.js} +1 -1
  122. package/lib/node/accounts/{baseSubscribers/grpcAccountSubscriber.d.ts → grpcAccountSubscriber.d.ts} +2 -1
  123. package/lib/node/accounts/grpcAccountSubscriber.d.ts.map +1 -0
  124. package/lib/{browser/accounts/baseSubscribers → node/accounts}/grpcAccountSubscriber.js +17 -13
  125. package/lib/node/accounts/{driftClientAccount/grpcDriftClientAccountSubscriber.d.ts → grpcDriftClientAccountSubscriber.d.ts} +2 -2
  126. package/lib/node/accounts/grpcDriftClientAccountSubscriber.d.ts.map +1 -0
  127. package/lib/{browser/accounts/driftClientAccount → node/accounts}/grpcDriftClientAccountSubscriber.js +4 -4
  128. package/lib/node/accounts/{insuranceFundStakeAccount/grpcInsuranceFundStakeAccountSubscriber.d.ts → grpcInsuranceFundStakeAccountSubscriber.d.ts} +2 -2
  129. package/lib/node/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts.map +1 -0
  130. package/lib/{browser/accounts/insuranceFundStakeAccount → node/accounts}/grpcInsuranceFundStakeAccountSubscriber.js +1 -1
  131. package/lib/node/accounts/{programAccount/grpcProgramAccountSubscriber.d.ts → grpcProgramAccountSubscriber.d.ts} +2 -1
  132. package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts.map +1 -0
  133. package/lib/node/accounts/{programAccount/grpcProgramAccountSubscriber.js → grpcProgramAccountSubscriber.js} +17 -13
  134. package/lib/node/accounts/{userAccount/grpcUserAccountSubscriber.d.ts → grpcUserAccountSubscriber.d.ts} +2 -2
  135. package/lib/node/accounts/grpcUserAccountSubscriber.d.ts.map +1 -0
  136. package/lib/node/accounts/{userAccount/grpcUserAccountSubscriber.js → grpcUserAccountSubscriber.js} +1 -1
  137. package/lib/node/accounts/{userStatsAccount/grpcUserStatsAccountSubscriber.d.ts → grpcUserStatsAccountSubscriber.d.ts} +2 -2
  138. package/lib/node/accounts/grpcUserStatsAccountSubscriber.d.ts.map +1 -0
  139. package/lib/{browser/accounts/userStatsAccount → node/accounts}/grpcUserStatsAccountSubscriber.js +1 -1
  140. package/lib/node/accounts/{userAccount/oneShotUserAccountSubscriber.d.ts → oneShotUserAccountSubscriber.d.ts} +2 -2
  141. package/lib/node/accounts/oneShotUserAccountSubscriber.d.ts.map +1 -0
  142. package/lib/node/accounts/{driftClientAccount/pollingDriftClientAccountSubscriber.d.ts → pollingDriftClientAccountSubscriber.d.ts} +5 -5
  143. package/lib/node/accounts/pollingDriftClientAccountSubscriber.d.ts.map +1 -0
  144. package/lib/node/accounts/{driftClientAccount/pollingDriftClientAccountSubscriber.js → pollingDriftClientAccountSubscriber.js} +8 -8
  145. package/lib/node/accounts/{highLeverageModeConfigAccount/pollingHighLeverageModeConfigAccountSubscriber.d.ts → pollingHighLeverageModeConfigAccountSubscriber.d.ts} +3 -3
  146. package/lib/node/accounts/pollingHighLeverageModeConfigAccountSubscriber.d.ts.map +1 -0
  147. package/lib/node/accounts/{highLeverageModeConfigAccount/pollingHighLeverageModeConfigAccountSubscriber.js → pollingHighLeverageModeConfigAccountSubscriber.js} +1 -1
  148. package/lib/node/accounts/{insuranceFundStakeAccount/pollingInsuranceFundStakeAccountSubscriber.d.ts → pollingInsuranceFundStakeAccountSubscriber.d.ts} +3 -3
  149. package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts.map +1 -0
  150. package/lib/{browser/accounts/insuranceFundStakeAccount → node/accounts}/pollingInsuranceFundStakeAccountSubscriber.js +1 -1
  151. package/lib/node/accounts/{oracleAccount/pollingOracleAccountSubscriber.d.ts → pollingOracleAccountSubscriber.d.ts} +3 -3
  152. package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts.map +1 -0
  153. package/lib/{browser/accounts/oracleAccount → node/accounts}/pollingOracleAccountSubscriber.js +1 -1
  154. package/lib/node/accounts/{tokenAccount/pollingTokenAccountSubscriber.d.ts → pollingTokenAccountSubscriber.d.ts} +2 -2
  155. package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts.map +1 -0
  156. package/lib/node/accounts/{tokenAccount/pollingTokenAccountSubscriber.js → pollingTokenAccountSubscriber.js} +2 -2
  157. package/lib/node/accounts/{userAccount/pollingUserAccountSubscriber.d.ts → pollingUserAccountSubscriber.d.ts} +4 -4
  158. package/lib/node/accounts/pollingUserAccountSubscriber.d.ts.map +1 -0
  159. package/lib/node/accounts/{userAccount/pollingUserAccountSubscriber.js → pollingUserAccountSubscriber.js} +1 -1
  160. package/lib/node/accounts/{userStatsAccount/pollingUserStatsAccountSubscriber.d.ts → pollingUserStatsAccountSubscriber.d.ts} +3 -3
  161. package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts.map +1 -0
  162. package/lib/node/accounts/{userStatsAccount/pollingUserStatsAccountSubscriber.js → pollingUserStatsAccountSubscriber.js} +1 -1
  163. package/lib/node/accounts/testBulkAccountLoader.d.ts.map +1 -0
  164. package/lib/node/accounts/types.d.ts +11 -0
  165. package/lib/node/accounts/types.d.ts.map +1 -1
  166. package/lib/node/accounts/{baseSubscribers/webSocketAccountSubscriber.d.ts → webSocketAccountSubscriber.d.ts} +1 -1
  167. package/lib/node/accounts/webSocketAccountSubscriber.d.ts.map +1 -0
  168. package/lib/{browser/accounts/baseSubscribers → node/accounts}/webSocketAccountSubscriber.js +1 -1
  169. package/lib/node/accounts/{driftClientAccount/webSocketDriftClientAccountSubscriber.d.ts → webSocketDriftClientAccountSubscriber.d.ts} +4 -4
  170. package/lib/node/accounts/webSocketDriftClientAccountSubscriber.d.ts.map +1 -0
  171. package/lib/node/accounts/{driftClientAccount/webSocketDriftClientAccountSubscriber.js → webSocketDriftClientAccountSubscriber.js} +9 -9
  172. package/lib/node/accounts/{highLeverageModeConfigAccount/webSocketHighLeverageModeConfigAccountSubscriber.d.ts → webSocketHighLeverageModeConfigAccountSubscriber.d.ts} +2 -2
  173. package/lib/node/accounts/webSocketHighLeverageModeConfigAccountSubscriber.d.ts.map +1 -0
  174. package/lib/node/accounts/{highLeverageModeConfigAccount/webSocketHighLeverageModeConfigAccountSubscriber.js → webSocketHighLeverageModeConfigAccountSubscriber.js} +2 -2
  175. package/lib/node/accounts/{insuranceFundStakeAccount/webSocketInsuranceFundStakeAccountSubscriber.d.ts → webSocketInsuranceFundStakeAccountSubscriber.d.ts} +2 -2
  176. package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts.map +1 -0
  177. package/lib/node/accounts/{insuranceFundStakeAccount/webSocketInsuranceFundStakeAccountSubscriber.js → webSocketInsuranceFundStakeAccountSubscriber.js} +2 -2
  178. package/lib/node/accounts/{programAccount/webSocketProgramAccountSubscriber.d.ts → webSocketProgramAccountSubscriber.d.ts} +1 -1
  179. package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts.map +1 -0
  180. package/lib/node/accounts/{userAccount/webSocketUserAccountSubscriber.d.ts → webSocketUserAccountSubscriber.d.ts} +2 -2
  181. package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts.map +1 -0
  182. package/lib/{browser/accounts/userAccount → node/accounts}/webSocketUserAccountSubscriber.js +2 -2
  183. package/lib/node/accounts/{userStatsAccount/webSocketUserStatsAccountSubsriber.d.ts → webSocketUserStatsAccountSubsriber.d.ts} +2 -2
  184. package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts.map +1 -0
  185. package/lib/node/accounts/{userStatsAccount/webSocketUserStatsAccountSubsriber.js → webSocketUserStatsAccountSubsriber.js} +2 -2
  186. package/lib/node/adminClient.d.ts +2 -2
  187. package/lib/node/adminClient.d.ts.map +1 -1
  188. package/lib/node/adminClient.js +14 -14
  189. package/lib/node/auctionSubscriber/auctionSubscriber.js +1 -1
  190. package/lib/node/auctionSubscriber/auctionSubscriberGrpc.js +1 -1
  191. package/lib/node/{config/index.d.ts → config.d.ts} +6 -6
  192. package/lib/node/config.d.ts.map +1 -0
  193. package/lib/{browser/config/index.js → node/config.js} +3 -3
  194. package/lib/node/constants/perpMarkets.d.ts +1 -1
  195. package/lib/node/constants/perpMarkets.d.ts.map +1 -1
  196. package/lib/node/constants/spotMarkets.d.ts +1 -1
  197. package/lib/node/constants/spotMarkets.d.ts.map +1 -1
  198. package/lib/node/dlob/DLOB.d.ts +3 -3
  199. package/lib/node/dlob/DLOB.d.ts.map +1 -1
  200. package/lib/node/dlob/DLOB.js +18 -13
  201. package/lib/node/dlob/DLOBNode.d.ts +5 -3
  202. package/lib/node/dlob/DLOBNode.d.ts.map +1 -1
  203. package/lib/node/dlob/DLOBNode.js +14 -13
  204. package/lib/node/dlob/DLOBSubscriber.d.ts.map +1 -1
  205. package/lib/node/dlob/DLOBSubscriber.js +1 -1
  206. package/lib/node/dlob/NodeList.d.ts +4 -1
  207. package/lib/node/dlob/NodeList.d.ts.map +1 -1
  208. package/lib/node/dlob/NodeList.js +11 -8
  209. package/lib/node/dlob/orderBookLevels.d.ts +6 -0
  210. package/lib/node/dlob/orderBookLevels.d.ts.map +1 -1
  211. package/lib/node/dlob/orderBookLevels.js +5 -2
  212. package/lib/node/driftClient.d.ts +1 -1
  213. package/lib/node/driftClient.d.ts.map +1 -1
  214. package/lib/node/driftClient.js +18 -5
  215. package/lib/node/driftClientConfig.d.ts +2 -2
  216. package/lib/node/driftClientConfig.d.ts.map +1 -1
  217. package/lib/node/idl/drift.json +82 -11
  218. package/lib/node/index.d.ts +14 -21
  219. package/lib/node/index.d.ts.map +1 -1
  220. package/lib/node/index.js +14 -21
  221. package/lib/node/math/amm.d.ts +4 -0
  222. package/lib/node/math/amm.d.ts.map +1 -1
  223. package/lib/node/math/amm.js +25 -9
  224. package/lib/node/math/margin.js +1 -1
  225. package/lib/node/math/market.d.ts +10 -0
  226. package/lib/node/math/market.d.ts.map +1 -1
  227. package/lib/node/math/market.js +76 -1
  228. package/lib/node/math/orders.d.ts +1 -0
  229. package/lib/node/math/orders.d.ts.map +1 -1
  230. package/lib/node/math/orders.js +13 -1
  231. package/lib/node/math/state.d.ts +1 -0
  232. package/lib/node/math/state.d.ts.map +1 -1
  233. package/lib/node/math/state.js +6 -1
  234. package/lib/node/openbook/openbookV2Subscriber.d.ts +1 -1
  235. package/lib/node/openbook/openbookV2Subscriber.d.ts.map +1 -1
  236. package/lib/node/oracles/types.d.ts +1 -0
  237. package/lib/node/oracles/types.d.ts.map +1 -1
  238. package/lib/node/oracles/utils.d.ts.map +1 -1
  239. package/lib/node/oracles/utils.js +1 -3
  240. package/lib/node/orderSubscriber/OrderSubscriber.d.ts +1 -1
  241. package/lib/node/orderSubscriber/OrderSubscriber.d.ts.map +1 -1
  242. package/lib/node/orderSubscriber/OrderSubscriber.js +10 -3
  243. package/lib/node/orderSubscriber/WebsocketSubscription.js +1 -1
  244. package/lib/node/orderSubscriber/grpcSubscription.js +1 -1
  245. package/lib/node/phoenix/phoenixSubscriber.d.ts +1 -1
  246. package/lib/node/phoenix/phoenixSubscriber.d.ts.map +1 -1
  247. package/lib/node/serum/serumSubscriber.d.ts +1 -1
  248. package/lib/node/serum/serumSubscriber.d.ts.map +1 -1
  249. package/lib/node/serum/types.d.ts +1 -1
  250. package/lib/node/serum/types.d.ts.map +1 -1
  251. package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.d.ts +1 -1
  252. package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.d.ts.map +1 -1
  253. package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.js +1 -1
  254. package/lib/node/swift/signedMsgUserAccountSubscriber.d.ts +1 -1
  255. package/lib/node/swift/signedMsgUserAccountSubscriber.d.ts.map +1 -1
  256. package/lib/node/swift/signedMsgUserAccountSubscriber.js +1 -1
  257. package/lib/node/swift/swiftOrderSubscriber.d.ts +1 -1
  258. package/lib/node/swift/swiftOrderSubscriber.d.ts.map +1 -1
  259. package/lib/node/types.d.ts +7 -0
  260. package/lib/node/types.d.ts.map +1 -1
  261. package/lib/node/types.js +6 -1
  262. package/lib/node/user.js +3 -3
  263. package/lib/node/userConfig.d.ts +1 -1
  264. package/lib/node/userConfig.d.ts.map +1 -1
  265. package/lib/node/userMap/PollingSubscription.d.ts +2 -2
  266. package/lib/node/userMap/PollingSubscription.d.ts.map +1 -1
  267. package/lib/node/userMap/WebsocketSubscription.d.ts +2 -2
  268. package/lib/node/userMap/WebsocketSubscription.d.ts.map +1 -1
  269. package/lib/node/userMap/WebsocketSubscription.js +1 -1
  270. package/lib/node/userMap/grpcSubscription.d.ts +2 -2
  271. package/lib/node/userMap/grpcSubscription.d.ts.map +1 -1
  272. package/lib/node/userMap/grpcSubscription.js +1 -1
  273. package/lib/node/userMap/userMap.d.ts +18 -3
  274. package/lib/node/userMap/userMap.d.ts.map +1 -1
  275. package/lib/node/userMap/userMap.js +1 -1
  276. package/lib/node/userMap/userStatsMap.d.ts +1 -1
  277. package/lib/node/userMap/userStatsMap.d.ts.map +1 -1
  278. package/lib/node/userMap/userStatsMap.js +1 -1
  279. package/lib/node/userStats.js +3 -3
  280. package/lib/node/userStatsConfig.d.ts +1 -1
  281. package/lib/node/userStatsConfig.d.ts.map +1 -1
  282. package/package.json +1 -1
  283. package/src/accounts/{userAccount/basicUserAccountSubscriber.ts → basicUserAccountSubscriber.ts} +2 -6
  284. package/src/accounts/{bulkAccountLoader/bulkAccountLoader.ts → bulkAccountLoader.ts} +4 -4
  285. package/src/accounts/bulkUserStatsSubscription.ts +2 -2
  286. package/src/accounts/bulkUserSubscription.ts +2 -2
  287. package/src/accounts/{bulkAccountLoader/customizedCadenceBulkAccountLoader.ts → customizedCadenceBulkAccountLoader.ts} +1 -1
  288. package/src/accounts/{baseSubscribers/grpcAccountSubscriber.ts → grpcAccountSubscriber.ts} +26 -13
  289. package/src/accounts/{driftClientAccount/grpcDriftClientAccountSubscriber.ts → grpcDriftClientAccountSubscriber.ts} +7 -11
  290. package/src/accounts/{insuranceFundStakeAccount/grpcInsuranceFundStakeAccountSubscriber.ts → grpcInsuranceFundStakeAccountSubscriber.ts} +3 -3
  291. package/src/accounts/{programAccount/grpcProgramAccountSubscriber.ts → grpcProgramAccountSubscriber.ts} +28 -13
  292. package/src/accounts/{userAccount/grpcUserAccountSubscriber.ts → grpcUserAccountSubscriber.ts} +3 -3
  293. package/src/accounts/{userStatsAccount/grpcUserStatsAccountSubscriber.ts → grpcUserStatsAccountSubscriber.ts} +3 -3
  294. package/src/accounts/{userAccount/oneShotUserAccountSubscriber.ts → oneShotUserAccountSubscriber.ts} +2 -2
  295. package/src/accounts/{driftClientAccount/pollingDriftClientAccountSubscriber.ts → pollingDriftClientAccountSubscriber.ts} +10 -10
  296. package/src/accounts/{highLeverageModeConfigAccount/pollingHighLeverageModeConfigAccountSubscriber.ts → pollingHighLeverageModeConfigAccountSubscriber.ts} +3 -3
  297. package/src/accounts/{insuranceFundStakeAccount/pollingInsuranceFundStakeAccountSubscriber.ts → pollingInsuranceFundStakeAccountSubscriber.ts} +3 -3
  298. package/src/accounts/{oracleAccount/pollingOracleAccountSubscriber.ts → pollingOracleAccountSubscriber.ts} +3 -3
  299. package/src/accounts/{tokenAccount/pollingTokenAccountSubscriber.ts → pollingTokenAccountSubscriber.ts} +3 -3
  300. package/src/accounts/{userAccount/pollingUserAccountSubscriber.ts → pollingUserAccountSubscriber.ts} +4 -4
  301. package/src/accounts/{userStatsAccount/pollingUserStatsAccountSubscriber.ts → pollingUserStatsAccountSubscriber.ts} +3 -3
  302. package/src/accounts/types.ts +12 -0
  303. package/src/accounts/{baseSubscribers/webSocketAccountSubscriber.ts → webSocketAccountSubscriber.ts} +2 -2
  304. package/src/accounts/{driftClientAccount/webSocketDriftClientAccountSubscriber.ts → webSocketDriftClientAccountSubscriber.ts} +11 -15
  305. package/src/accounts/{highLeverageModeConfigAccount/webSocketHighLeverageModeConfigAccountSubscriber.ts → webSocketHighLeverageModeConfigAccountSubscriber.ts} +3 -3
  306. package/src/accounts/{insuranceFundStakeAccount/webSocketInsuranceFundStakeAccountSubscriber.ts → webSocketInsuranceFundStakeAccountSubscriber.ts} +3 -3
  307. package/src/accounts/{programAccount/webSocketProgramAccountSubscriber.ts → webSocketProgramAccountSubscriber.ts} +1 -1
  308. package/src/accounts/{userAccount/webSocketUserAccountSubscriber.ts → webSocketUserAccountSubscriber.ts} +3 -3
  309. package/src/accounts/{userStatsAccount/webSocketUserStatsAccountSubsriber.ts → webSocketUserStatsAccountSubsriber.ts} +3 -3
  310. package/src/adminClient.ts +29 -27
  311. package/src/auctionSubscriber/auctionSubscriber.ts +1 -1
  312. package/src/auctionSubscriber/auctionSubscriberGrpc.ts +2 -2
  313. package/src/{config/index.ts → config.ts} +7 -6
  314. package/src/constants/perpMarkets.ts +1 -1
  315. package/src/constants/spotMarkets.ts +1 -1
  316. package/src/dlob/DLOB.ts +31 -8
  317. package/src/dlob/DLOBNode.ts +22 -11
  318. package/src/dlob/DLOBSubscriber.ts +2 -1
  319. package/src/dlob/NodeList.ts +12 -3
  320. package/src/dlob/orderBookLevels.ts +8 -2
  321. package/src/driftClient.ts +22 -8
  322. package/src/driftClientConfig.ts +2 -2
  323. package/src/idl/drift.json +83 -12
  324. package/src/index.ts +14 -26
  325. package/src/math/amm.ts +49 -10
  326. package/src/math/margin.ts +1 -1
  327. package/src/math/market.ts +105 -0
  328. package/src/math/orders.ts +18 -0
  329. package/src/math/state.ts +7 -1
  330. package/src/openbook/openbookV2Subscriber.ts +1 -1
  331. package/src/oracles/types.ts +1 -0
  332. package/src/oracles/utils.ts +1 -3
  333. package/src/orderSubscriber/OrderSubscriber.ts +16 -2
  334. package/src/orderSubscriber/WebsocketSubscription.ts +1 -1
  335. package/src/orderSubscriber/grpcSubscription.ts +1 -1
  336. package/src/phoenix/phoenixSubscriber.ts +1 -1
  337. package/src/serum/serumSubscriber.ts +1 -1
  338. package/src/serum/types.ts +1 -1
  339. package/src/swift/grpcSignedMsgUserAccountSubscriber.ts +1 -1
  340. package/src/swift/signedMsgUserAccountSubscriber.ts +1 -1
  341. package/src/swift/swiftOrderSubscriber.ts +1 -1
  342. package/src/testClient.ts +1 -1
  343. package/src/types.ts +9 -0
  344. package/src/user.ts +3 -3
  345. package/src/userConfig.ts +1 -1
  346. package/src/userMap/PollingSubscription.ts +3 -3
  347. package/src/userMap/WebsocketSubscription.ts +4 -4
  348. package/src/userMap/grpcSubscription.ts +5 -5
  349. package/src/userMap/userMap.ts +31 -4
  350. package/src/userMap/userStatsMap.ts +2 -2
  351. package/src/userStats.ts +3 -3
  352. package/src/userStatsConfig.ts +1 -1
  353. package/tests/accounts/customizedCadenceBulkAccountLoader.test.ts +1 -1
  354. package/lib/browser/config/types.d.ts +0 -1
  355. package/lib/browser/config/types.js +0 -2
  356. package/lib/browser/dlob/utils.d.ts +0 -1
  357. package/lib/browser/dlob/utils.js +0 -7
  358. package/lib/browser/userMap/events.d.ts +0 -6
  359. package/lib/browser/userMap/events.js +0 -2
  360. package/lib/browser/userMap/types.d.ts +0 -32
  361. package/lib/browser/userMap/types.js +0 -2
  362. package/lib/node/accounts/baseSubscribers/grpcAccountSubscriber.d.ts.map +0 -1
  363. package/lib/node/accounts/baseSubscribers/webSocketAccountSubscriber.d.ts.map +0 -1
  364. package/lib/node/accounts/bulkAccountLoader/bulkAccountLoader.d.ts.map +0 -1
  365. package/lib/node/accounts/bulkAccountLoader/customizedCadenceBulkAccountLoader.d.ts.map +0 -1
  366. package/lib/node/accounts/bulkAccountLoader/testBulkAccountLoader.d.ts.map +0 -1
  367. package/lib/node/accounts/driftClientAccount/grpcDriftClientAccountSubscriber.d.ts.map +0 -1
  368. package/lib/node/accounts/driftClientAccount/pollingDriftClientAccountSubscriber.d.ts.map +0 -1
  369. package/lib/node/accounts/driftClientAccount/webSocketDriftClientAccountSubscriber.d.ts.map +0 -1
  370. package/lib/node/accounts/highLeverageModeConfigAccount/pollingHighLeverageModeConfigAccountSubscriber.d.ts.map +0 -1
  371. package/lib/node/accounts/highLeverageModeConfigAccount/webSocketHighLeverageModeConfigAccountSubscriber.d.ts.map +0 -1
  372. package/lib/node/accounts/insuranceFundStakeAccount/grpcInsuranceFundStakeAccountSubscriber.d.ts.map +0 -1
  373. package/lib/node/accounts/insuranceFundStakeAccount/pollingInsuranceFundStakeAccountSubscriber.d.ts.map +0 -1
  374. package/lib/node/accounts/insuranceFundStakeAccount/webSocketInsuranceFundStakeAccountSubscriber.d.ts.map +0 -1
  375. package/lib/node/accounts/oracleAccount/pollingOracleAccountSubscriber.d.ts.map +0 -1
  376. package/lib/node/accounts/programAccount/grpcProgramAccountSubscriber.d.ts.map +0 -1
  377. package/lib/node/accounts/programAccount/webSocketProgramAccountSubscriber.d.ts.map +0 -1
  378. package/lib/node/accounts/tokenAccount/pollingTokenAccountSubscriber.d.ts.map +0 -1
  379. package/lib/node/accounts/userAccount/basicUserAccountSubscriber.d.ts.map +0 -1
  380. package/lib/node/accounts/userAccount/grpcUserAccountSubscriber.d.ts.map +0 -1
  381. package/lib/node/accounts/userAccount/oneShotUserAccountSubscriber.d.ts.map +0 -1
  382. package/lib/node/accounts/userAccount/pollingUserAccountSubscriber.d.ts.map +0 -1
  383. package/lib/node/accounts/userAccount/webSocketUserAccountSubscriber.d.ts.map +0 -1
  384. package/lib/node/accounts/userStatsAccount/grpcUserStatsAccountSubscriber.d.ts.map +0 -1
  385. package/lib/node/accounts/userStatsAccount/pollingUserStatsAccountSubscriber.d.ts.map +0 -1
  386. package/lib/node/accounts/userStatsAccount/webSocketUserStatsAccountSubsriber.d.ts.map +0 -1
  387. package/lib/node/config/index.d.ts.map +0 -1
  388. package/lib/node/config/types.d.ts +0 -2
  389. package/lib/node/config/types.d.ts.map +0 -1
  390. package/lib/node/config/types.js +0 -2
  391. package/lib/node/dlob/utils.d.ts +0 -2
  392. package/lib/node/dlob/utils.d.ts.map +0 -1
  393. package/lib/node/dlob/utils.js +0 -7
  394. package/lib/node/userMap/events.d.ts +0 -7
  395. package/lib/node/userMap/events.d.ts.map +0 -1
  396. package/lib/node/userMap/events.js +0 -2
  397. package/lib/node/userMap/types.d.ts +0 -33
  398. package/lib/node/userMap/types.d.ts.map +0 -1
  399. package/lib/node/userMap/types.js +0 -2
  400. package/src/config/types.ts +0 -1
  401. package/src/dlob/utils.ts +0 -6
  402. package/src/userMap/events.ts +0 -7
  403. package/src/userMap/types.ts +0 -47
  404. /package/lib/browser/accounts/{userAccount/basicUserAccountSubscriber.js → basicUserAccountSubscriber.js} +0 -0
  405. /package/lib/browser/accounts/{bulkAccountLoader/customizedCadenceBulkAccountLoader.d.ts → customizedCadenceBulkAccountLoader.d.ts} +0 -0
  406. /package/lib/browser/accounts/{userAccount/oneShotUserAccountSubscriber.js → oneShotUserAccountSubscriber.js} +0 -0
  407. /package/lib/browser/accounts/{bulkAccountLoader/testBulkAccountLoader.d.ts → testBulkAccountLoader.d.ts} +0 -0
  408. /package/lib/browser/accounts/{bulkAccountLoader/testBulkAccountLoader.js → testBulkAccountLoader.js} +0 -0
  409. /package/lib/browser/accounts/{programAccount/webSocketProgramAccountSubscriber.js → webSocketProgramAccountSubscriber.js} +0 -0
  410. /package/lib/node/accounts/{userAccount/basicUserAccountSubscriber.js → basicUserAccountSubscriber.js} +0 -0
  411. /package/lib/node/accounts/{bulkAccountLoader/customizedCadenceBulkAccountLoader.d.ts → customizedCadenceBulkAccountLoader.d.ts} +0 -0
  412. /package/lib/node/accounts/{userAccount/oneShotUserAccountSubscriber.js → oneShotUserAccountSubscriber.js} +0 -0
  413. /package/lib/node/accounts/{bulkAccountLoader/testBulkAccountLoader.d.ts → testBulkAccountLoader.d.ts} +0 -0
  414. /package/lib/node/accounts/{bulkAccountLoader/testBulkAccountLoader.js → testBulkAccountLoader.js} +0 -0
  415. /package/lib/node/accounts/{programAccount/webSocketProgramAccountSubscriber.js → webSocketProgramAccountSubscriber.js} +0 -0
  416. /package/src/accounts/{bulkAccountLoader/testBulkAccountLoader.ts → testBulkAccountLoader.ts} +0 -0
package/src/math/amm.ts CHANGED
@@ -157,11 +157,6 @@ export function calculateUpdatedAMM(
157
157
  amm: AMM,
158
158
  oraclePriceData: OraclePriceData
159
159
  ): AMM {
160
- if (!oraclePriceData?.fetchedWithMMOracle) {
161
- console.log(
162
- 'Use driftClient method getMMOracleDataForPerpMarket for accurate MM pricing'
163
- );
164
- }
165
160
  if (amm.curveUpdateIntensity == 0 || oraclePriceData === undefined) {
166
161
  return amm;
167
162
  }
@@ -204,9 +199,12 @@ export function calculateUpdatedAMMSpreadReserves(
204
199
  oraclePriceData: OraclePriceData,
205
200
  isPrediction = false
206
201
  ): { baseAssetReserve: BN; quoteAssetReserve: BN; sqrtK: BN; newPeg: BN } {
207
- if (!oraclePriceData?.fetchedWithMMOracle) {
202
+ if (
203
+ !oraclePriceData?.fetchedWithMMOracle &&
204
+ oraclePriceData?.isMMOracleActive
205
+ ) {
208
206
  console.log(
209
- 'Use driftClient method getMMOracleDataForPerpMarket for accurate MM pricing'
207
+ 'Use driftClient method getMMOracleDataForPerpMarket for accurate updated AMM in calculateUpdatedAMMSpreadReserves'
210
208
  );
211
209
  }
212
210
  const newAmm = calculateUpdatedAMM(amm, oraclePriceData);
@@ -231,15 +229,18 @@ export function calculateUpdatedAMMSpreadReserves(
231
229
  return result;
232
230
  }
233
231
 
234
- export function calculateBidAskPrice(
232
+ export function calculateAMMBidAskPrice(
235
233
  amm: AMM,
236
234
  oraclePriceData: OraclePriceData,
237
235
  withUpdate = true,
238
236
  isPrediction = false
239
237
  ): [BN, BN] {
240
- if (!oraclePriceData?.fetchedWithMMOracle) {
238
+ if (
239
+ !oraclePriceData?.fetchedWithMMOracle &&
240
+ oraclePriceData?.isMMOracleActive
241
+ ) {
241
242
  console.log(
242
- 'Use driftClient method getMMOracleDataForPerpMarket for accurate MM pricing'
243
+ 'Use driftClient method getMMOracleDataForPerpMarket for accurate MM pricing in calculateAMMBidAskPrice'
243
244
  );
244
245
  }
245
246
  let newAmm: AMM;
@@ -271,6 +272,44 @@ export function calculateBidAskPrice(
271
272
  return [bidPrice, askPrice];
272
273
  }
273
274
 
275
+ /**
276
+ * @deprecated Use calculateAMMBidAskPrice instead
277
+ */
278
+ export function calculateBidAskPrice(
279
+ amm: AMM,
280
+ oraclePriceData: OraclePriceData,
281
+ withUpdate = true,
282
+ isPrediction = false
283
+ ): [BN, BN] {
284
+ let newAmm: AMM;
285
+ if (withUpdate) {
286
+ newAmm = calculateUpdatedAMM(amm, oraclePriceData);
287
+ } else {
288
+ newAmm = amm;
289
+ }
290
+
291
+ const [bidReserves, askReserves] = calculateSpreadReserves(
292
+ newAmm,
293
+ oraclePriceData,
294
+ undefined,
295
+ isPrediction
296
+ );
297
+
298
+ const askPrice = calculatePrice(
299
+ askReserves.baseAssetReserve,
300
+ askReserves.quoteAssetReserve,
301
+ newAmm.pegMultiplier
302
+ );
303
+
304
+ const bidPrice = calculatePrice(
305
+ bidReserves.baseAssetReserve,
306
+ bidReserves.quoteAssetReserve,
307
+ newAmm.pegMultiplier
308
+ );
309
+
310
+ return [bidPrice, askPrice];
311
+ }
312
+
274
313
  /**
275
314
  * Calculates a price given an arbitrary base and quote amount (they must have the same precision)
276
315
  *
@@ -16,7 +16,7 @@ import { OraclePriceData } from '../oracles/types';
16
16
  import { calculateMarketMarginRatio } from './market';
17
17
  import { calculateScaledInitialAssetWeight } from './spotBalance';
18
18
  import { DriftClient } from '../driftClient';
19
- import { OneShotUserAccountSubscriber } from '../accounts/userAccount/oneShotUserAccountSubscriber';
19
+ import { OneShotUserAccountSubscriber } from '../accounts/oneShotUserAccountSubscriber';
20
20
  import {
21
21
  PerpMarketAccount,
22
22
  PerpPosition,
@@ -6,6 +6,7 @@ import {
6
6
  SpotMarketAccount,
7
7
  SpotBalanceType,
8
8
  MarketType,
9
+ isVariant,
9
10
  } from '../types';
10
11
  import {
11
12
  calculateAmmReservesAfterSwap,
@@ -26,6 +27,9 @@ import {
26
27
  PRICE_TO_QUOTE_PRECISION,
27
28
  ZERO,
28
29
  QUOTE_SPOT_MARKET_INDEX,
30
+ PRICE_PRECISION,
31
+ PERCENTAGE_PRECISION,
32
+ FUNDING_RATE_PRECISION,
29
33
  } from '../constants/numericConstants';
30
34
  import { getTokenAmount } from './spotBalance';
31
35
  import { DLOB } from '../dlob/DLOB';
@@ -350,3 +354,104 @@ export function calculatePerpMarketBaseLiquidatorFee(
350
354
  return market.liquidatorFee;
351
355
  }
352
356
  }
357
+
358
+ /**
359
+ * Calculates trigger price for a perp market based on oracle price and current time
360
+ * Implements the same logic as the Rust get_trigger_price function
361
+ *
362
+ * @param market - The perp market account
363
+ * @param oraclePrice - Current oracle price (precision: PRICE_PRECISION)
364
+ * @param now - Current timestamp in seconds
365
+ * @returns trigger price (precision: PRICE_PRECISION)
366
+ */
367
+ export function getTriggerPrice(
368
+ market: PerpMarketAccount,
369
+ oraclePrice: BN,
370
+ now: BN,
371
+ useMedianPrice: boolean
372
+ ): BN {
373
+ if (!useMedianPrice) {
374
+ return oraclePrice.abs();
375
+ }
376
+
377
+ const lastFillPrice = market.lastFillPrice;
378
+
379
+ // Calculate 5-minute basis
380
+ const markPrice5minTwap = market.amm.lastMarkPriceTwap5Min;
381
+ const lastOraclePriceTwap5min =
382
+ market.amm.historicalOracleData.lastOraclePriceTwap5Min;
383
+ const basis5min = markPrice5minTwap.sub(lastOraclePriceTwap5min);
384
+
385
+ const oraclePlusBasis5min = oraclePrice.add(basis5min);
386
+
387
+ // Calculate funding basis
388
+ const lastFundingBasis = getLastFundingBasis(market, oraclePrice, now);
389
+ const oraclePlusFundingBasis = oraclePrice.add(lastFundingBasis);
390
+
391
+ const prices = [
392
+ lastFillPrice.gt(ZERO) ? lastFillPrice : oraclePrice,
393
+ oraclePlusFundingBasis,
394
+ oraclePlusBasis5min,
395
+ ].sort((a, b) => a.cmp(b));
396
+ const medianPrice = prices[1];
397
+
398
+ return clampTriggerPrice(market, oraclePrice.abs(), medianPrice);
399
+ }
400
+
401
+ /**
402
+ * Calculates the last funding basis for trigger price calculation
403
+ * Implements the same logic as the Rust get_last_funding_basis function
404
+ */
405
+ function getLastFundingBasis(
406
+ market: PerpMarketAccount,
407
+ oraclePrice: BN,
408
+ now: BN
409
+ ): BN {
410
+ if (market.amm.lastFundingOracleTwap.gt(ZERO)) {
411
+ const lastFundingRate = market.amm.lastFundingRate
412
+ .mul(PRICE_PRECISION)
413
+ .div(market.amm.lastFundingOracleTwap)
414
+ .muln(24);
415
+ const lastFundingRatePreAdj = lastFundingRate.sub(
416
+ FUNDING_RATE_PRECISION.div(new BN(5000)) // FUNDING_RATE_OFFSET_PERCENTAGE
417
+ );
418
+ const timeLeftUntilFundingUpdate = BN.min(
419
+ BN.max(now.sub(market.amm.lastFundingRateTs), ZERO),
420
+ market.amm.fundingPeriod
421
+ );
422
+ const lastFundingBasis = oraclePrice
423
+ .mul(lastFundingRatePreAdj)
424
+ .div(PERCENTAGE_PRECISION)
425
+ .mul(market.amm.fundingPeriod.sub(timeLeftUntilFundingUpdate))
426
+ .div(market.amm.fundingPeriod)
427
+ .div(new BN(1000)); // FUNDING_RATE_BUFFER
428
+ return lastFundingBasis;
429
+ } else {
430
+ return ZERO;
431
+ }
432
+ }
433
+
434
+ /**
435
+ * Clamps trigger price based on contract tier
436
+ * Implements the same logic as the Rust clamp_trigger_price function
437
+ */
438
+ function clampTriggerPrice(
439
+ market: PerpMarketAccount,
440
+ oraclePrice: BN,
441
+ medianPrice: BN
442
+ ): BN {
443
+ let maxBpsDiff: BN;
444
+ const tier = market.contractTier;
445
+ if (isVariant(tier, 'a') || isVariant(tier, 'b')) {
446
+ maxBpsDiff = new BN(500); // 20 BPS
447
+ } else if (isVariant(tier, 'c')) {
448
+ maxBpsDiff = new BN(100); // 100 BPS
449
+ } else {
450
+ maxBpsDiff = new BN(40); // 250 BPS
451
+ }
452
+ const maxOracleDiff = oraclePrice.div(maxBpsDiff);
453
+ return BN.min(
454
+ BN.max(medianPrice, oraclePrice.sub(maxOracleDiff)),
455
+ oraclePrice.add(maxOracleDiff)
456
+ );
457
+ }
@@ -387,3 +387,21 @@ const FLAG_IS_SIGNED_MSG = 0x01;
387
387
  export function isSignedMsgOrder(order: Order): boolean {
388
388
  return (order.bitFlags & FLAG_IS_SIGNED_MSG) !== 0;
389
389
  }
390
+
391
+ export function calculateOrderBaseAssetAmount(
392
+ order: Order,
393
+ existingBaseAssetAmount: BN
394
+ ): BN {
395
+ if (!order.reduceOnly) {
396
+ return order.baseAssetAmount;
397
+ }
398
+
399
+ if (isVariant(order.direction, 'long')) {
400
+ return BN.min(
401
+ BN.min(existingBaseAssetAmount, ZERO).abs(),
402
+ order.baseAssetAmount
403
+ );
404
+ } else {
405
+ return BN.min(BN.max(existingBaseAssetAmount, ZERO), order.baseAssetAmount);
406
+ }
407
+ }
package/src/math/state.ts CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  PERCENTAGE_PRECISION,
5
5
  ZERO,
6
6
  } from '../constants/numericConstants';
7
- import { StateAccount } from '../types';
7
+ import { FeatureBitFlags, StateAccount } from '../types';
8
8
 
9
9
  export function calculateInitUserFee(stateAccount: StateAccount): BN {
10
10
  const maxInitFee = new BN(stateAccount.maxInitializeUserFee)
@@ -32,3 +32,9 @@ export function getMaxNumberOfSubAccounts(stateAccount: StateAccount): BN {
32
32
  }
33
33
  return new BN(stateAccount.maxNumberOfSubAccounts).muln(100);
34
34
  }
35
+
36
+ export function useMedianTriggerPrice(stateAccount: StateAccount): boolean {
37
+ return (
38
+ (stateAccount.featureBitFlags & FeatureBitFlags.MEDIAN_TRIGGER_PRICE) > 0
39
+ );
40
+ }
@@ -1,5 +1,5 @@
1
1
  import { Connection, Keypair, PublicKey } from '@solana/web3.js';
2
- import { BulkAccountLoader } from '../accounts/bulkAccountLoader/bulkAccountLoader';
2
+ import { BulkAccountLoader } from '../accounts/bulkAccountLoader';
3
3
  import { PRICE_PRECISION } from '../constants/numericConstants';
4
4
  import { AnchorProvider, BN, Idl, Program, Wallet } from '@coral-xyz/anchor';
5
5
  import { L2Level, L2OrderBookGenerator } from '../dlob/orderBookLevels';
@@ -17,6 +17,7 @@ export type OraclePriceData = {
17
17
  twapConfidence?: BN;
18
18
  maxPrice?: BN; // pre-launch markets only
19
19
  fetchedWithMMOracle?: boolean;
20
+ isMMOracleActive?: boolean;
20
21
  };
21
22
 
22
23
  export type OracleInfo = {
@@ -1,13 +1,11 @@
1
1
  import { BN } from '@coral-xyz/anchor';
2
2
  import { MMOraclePriceData } from './types';
3
- import { FIVE } from '../constants/numericConstants';
4
3
 
5
4
  export function getOracleConfidenceFromMMOracleData(
6
5
  mmOracleData: MMOraclePriceData
7
6
  ): BN {
8
7
  const mmOracleDiffPremium = mmOracleData.mmOraclePrice
9
8
  .sub(mmOracleData.oraclePriceData.price)
10
- .abs()
11
- .div(FIVE);
9
+ .abs();
12
10
  return mmOracleData.oraclePriceData.confidence.add(mmOracleDiffPremium);
13
11
  }
@@ -13,7 +13,9 @@ import { PollingSubscription } from './PollingSubscription';
13
13
  import { WebsocketSubscription } from './WebsocketSubscription';
14
14
  import StrictEventEmitter from 'strict-event-emitter-types';
15
15
  import { EventEmitter } from 'events';
16
- import { BN, ProtectMakerParamsMap } from '../index';
16
+ import { calculateOrderBaseAssetAmount, ZERO } from '../index';
17
+ import { BN } from '@coral-xyz/anchor';
18
+ import { ProtectMakerParamsMap } from '../dlob/types';
17
19
  import { decodeUser } from '../decode/user';
18
20
  import { grpcSubscription } from './grpcSubscription';
19
21
  import { isUserProtectedMaker } from '../math/userStatus';
@@ -246,7 +248,19 @@ export class OrderSubscriber {
246
248
  for (const [key, { userAccount }] of this.usersAccounts.entries()) {
247
249
  const protectedMaker = isUserProtectedMaker(userAccount);
248
250
  for (const order of userAccount.orders) {
249
- dlob.insertOrder(order, key, slot, protectedMaker);
251
+ let baseAssetAmount = order.baseAssetAmount;
252
+ if (order.reduceOnly) {
253
+ const existingBaseAmount =
254
+ userAccount.perpPositions.find(
255
+ (pos) =>
256
+ pos.marketIndex === order.marketIndex && pos.openOrders > 0
257
+ )?.baseAssetAmount || ZERO;
258
+ baseAssetAmount = calculateOrderBaseAssetAmount(
259
+ order,
260
+ existingBaseAmount
261
+ );
262
+ }
263
+ dlob.insertOrder(order, key, slot, protectedMaker, baseAssetAmount);
250
264
  }
251
265
  }
252
266
  return dlob;
@@ -1,6 +1,6 @@
1
1
  import { OrderSubscriber } from './OrderSubscriber';
2
2
  import { getNonIdleUserFilter, getUserFilter } from '../memcmp';
3
- import { WebSocketProgramAccountSubscriber } from '../accounts/programAccount/webSocketProgramAccountSubscriber';
3
+ import { WebSocketProgramAccountSubscriber } from '../accounts/webSocketProgramAccountSubscriber';
4
4
  import { UserAccount } from '../types';
5
5
  import { Commitment, Context, PublicKey } from '@solana/web3.js';
6
6
  import { ResubOpts } from '../accounts/types';
@@ -1,6 +1,6 @@
1
1
  import { Context, PublicKey } from '@solana/web3.js';
2
2
  import { Buffer } from 'buffer';
3
- import { grpcProgramAccountSubscriber } from '../accounts/programAccount/grpcProgramAccountSubscriber';
3
+ import { grpcProgramAccountSubscriber } from '../accounts/grpcProgramAccountSubscriber';
4
4
  import { OrderSubscriber } from './OrderSubscriber';
5
5
  import { GrpcConfigs, ResubOpts } from '../accounts/types';
6
6
  import { UserAccount } from '../types';
@@ -1,5 +1,5 @@
1
1
  import { Connection, PublicKey, SYSVAR_CLOCK_PUBKEY } from '@solana/web3.js';
2
- import { BulkAccountLoader } from '../accounts/bulkAccountLoader/bulkAccountLoader';
2
+ import { BulkAccountLoader } from '../accounts/bulkAccountLoader';
3
3
  import {
4
4
  Client,
5
5
  deserializeClockData,
@@ -1,5 +1,5 @@
1
1
  import { Connection, PublicKey } from '@solana/web3.js';
2
- import { BulkAccountLoader } from '../accounts/bulkAccountLoader/bulkAccountLoader';
2
+ import { BulkAccountLoader } from '../accounts/bulkAccountLoader';
3
3
  import { Market, Orderbook } from '@project-serum/serum';
4
4
  import { SerumMarketSubscriberConfig } from './types';
5
5
  import { BN } from '@coral-xyz/anchor';
@@ -1,5 +1,5 @@
1
1
  import { Connection, PublicKey } from '@solana/web3.js';
2
- import { BulkAccountLoader } from '../accounts/bulkAccountLoader/bulkAccountLoader';
2
+ import { BulkAccountLoader } from '../accounts/bulkAccountLoader';
3
3
 
4
4
  export type SerumMarketSubscriberConfig = {
5
5
  connection: Connection;
@@ -1,5 +1,5 @@
1
1
  import { Commitment, Context, PublicKey } from '@solana/web3.js';
2
- import { grpcProgramAccountSubscriber } from '../accounts/programAccount/grpcProgramAccountSubscriber';
2
+ import { grpcProgramAccountSubscriber } from '../accounts/grpcProgramAccountSubscriber';
3
3
  import { GrpcConfigs, ResubOpts } from '../accounts/types';
4
4
  import { SignedMsgUserOrdersAccount } from '../types';
5
5
  import { getSignedMsgUserOrdersFilter } from '../memcmp';
@@ -1,5 +1,5 @@
1
1
  import { getSignedMsgUserOrdersFilter } from '../memcmp';
2
- import { WebSocketProgramAccountSubscriber } from '../accounts/programAccount/webSocketProgramAccountSubscriber';
2
+ import { WebSocketProgramAccountSubscriber } from '../accounts/webSocketProgramAccountSubscriber';
3
3
  import { SignedMsgOrderId, SignedMsgUserOrdersAccount } from '../types';
4
4
  import { Commitment, Context, PublicKey } from '@solana/web3.js';
5
5
  import { ResubOpts } from '../accounts/types';
@@ -3,7 +3,7 @@ import {
3
3
  MainnetPerpMarkets,
4
4
  } from '../constants/perpMarkets';
5
5
  import { DriftClient } from '../driftClient';
6
- import { DriftEnv } from '../config/types';
6
+ import { DriftEnv } from '../config';
7
7
  import {
8
8
  getUserAccountPublicKey,
9
9
  getUserStatsAccountPublicKey,
package/src/testClient.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { AdminClient } from './adminClient';
2
2
  import { ConfirmOptions, Signer, Transaction } from '@solana/web3.js';
3
3
  import { TxSigAndSlot } from './tx/types';
4
- import { PollingDriftClientAccountSubscriber } from './accounts/driftClientAccount/pollingDriftClientAccountSubscriber';
4
+ import { PollingDriftClientAccountSubscriber } from './accounts/pollingDriftClientAccountSubscriber';
5
5
  import { DriftClientConfig } from './driftClientConfig';
6
6
 
7
7
  export class TestClient extends AdminClient {
package/src/types.ts CHANGED
@@ -28,6 +28,11 @@ export enum ExchangeStatus {
28
28
  PAUSED = 255,
29
29
  }
30
30
 
31
+ export enum FeatureBitFlags {
32
+ MM_ORACLE_UPDATE = 1,
33
+ MEDIAN_TRIGGER_PRICE = 2,
34
+ }
35
+
31
36
  export class MarketStatus {
32
37
  static readonly INITIALIZED = { initialized: {} };
33
38
  static readonly ACTIVE = { active: {} };
@@ -760,6 +765,7 @@ export type StateAccount = {
760
765
  initialPctToLiquidate: number;
761
766
  liquidationDuration: number;
762
767
  maxInitializeUserFee: number;
768
+ featureBitFlags: number;
763
769
  };
764
770
 
765
771
  export type PerpMarketAccount = {
@@ -806,6 +812,7 @@ export type PerpMarketAccount = {
806
812
  highLeverageMarginRatioMaintenance: number;
807
813
  protectedMakerLimitPriceDivisor: number;
808
814
  protectedMakerDynamicDivisor: number;
815
+ lastFillPrice: BN;
809
816
  };
810
817
 
811
818
  export type HistoricalOracleData = {
@@ -1017,6 +1024,8 @@ export type AMM = {
1017
1024
  takerSpeedBumpOverride: number;
1018
1025
  ammSpreadAdjustment: number;
1019
1026
  ammInventorySpreadAdjustment: number;
1027
+
1028
+ lastFundingOracleTwap: BN;
1020
1029
  };
1021
1030
 
1022
1031
  // # User Account Types
package/src/user.ts CHANGED
@@ -92,8 +92,8 @@ import {
92
92
  } from './math/margin';
93
93
  import { OraclePriceData } from './oracles/types';
94
94
  import { UserConfig } from './userConfig';
95
- import { PollingUserAccountSubscriber } from './accounts/userAccount/pollingUserAccountSubscriber';
96
- import { WebSocketUserAccountSubscriber } from './accounts/userAccount/webSocketUserAccountSubscriber';
95
+ import { PollingUserAccountSubscriber } from './accounts/pollingUserAccountSubscriber';
96
+ import { WebSocketUserAccountSubscriber } from './accounts/webSocketUserAccountSubscriber';
97
97
  import {
98
98
  calculateWeightedTokenValue,
99
99
  getWorstCaseTokenAmounts,
@@ -107,7 +107,7 @@ import { getPerpMarketTierNumber, getSpotMarketTierNumber } from './math/tiers';
107
107
  import { StrictOraclePrice } from './oracles/strictOraclePrice';
108
108
 
109
109
  import { calculateSpotFuelBonus, calculatePerpFuelBonus } from './math/fuel';
110
- import { grpcUserAccountSubscriber } from './accounts/userAccount/grpcUserAccountSubscriber';
110
+ import { grpcUserAccountSubscriber } from './accounts/grpcUserAccountSubscriber';
111
111
 
112
112
  export class User {
113
113
  driftClient: DriftClient;
package/src/userConfig.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { DriftClient } from './driftClient';
2
2
  import { Commitment, PublicKey } from '@solana/web3.js';
3
- import { BulkAccountLoader } from './accounts/bulkAccountLoader/bulkAccountLoader';
3
+ import { BulkAccountLoader } from './accounts/bulkAccountLoader';
4
4
  import { GrpcConfigs, UserAccountSubscriber } from './accounts/types';
5
5
 
6
6
  export type UserConfig = {
@@ -1,7 +1,7 @@
1
- import { UserMapInterface } from './types';
1
+ import { UserMap } from './userMap';
2
2
 
3
3
  export class PollingSubscription {
4
- private userMap: UserMapInterface;
4
+ private userMap: UserMap;
5
5
  private frequency: number;
6
6
  private skipInitialLoad: boolean;
7
7
 
@@ -12,7 +12,7 @@ export class PollingSubscription {
12
12
  frequency,
13
13
  skipInitialLoad = false,
14
14
  }: {
15
- userMap: UserMapInterface;
15
+ userMap: UserMap;
16
16
  frequency: number;
17
17
  skipInitialLoad?: boolean;
18
18
  includeIdle?: boolean;
@@ -1,12 +1,12 @@
1
+ import { UserMap } from './userMap';
1
2
  import { getNonIdleUserFilter, getUserFilter } from '../memcmp';
2
- import { WebSocketProgramAccountSubscriber } from '../accounts/programAccount/webSocketProgramAccountSubscriber';
3
+ import { WebSocketProgramAccountSubscriber } from '../accounts/webSocketProgramAccountSubscriber';
3
4
  import { UserAccount } from '../types';
4
5
  import { Commitment, Context, MemcmpFilter, PublicKey } from '@solana/web3.js';
5
6
  import { ResubOpts } from '../accounts/types';
6
- import { UserMapInterface } from './types';
7
7
 
8
8
  export class WebsocketSubscription {
9
- private userMap: UserMapInterface;
9
+ private userMap: UserMap;
10
10
  private commitment: Commitment;
11
11
  private skipInitialLoad: boolean;
12
12
  private resubOpts?: ResubOpts;
@@ -25,7 +25,7 @@ export class WebsocketSubscription {
25
25
  decodeFn,
26
26
  additionalFilters = undefined,
27
27
  }: {
28
- userMap: UserMapInterface;
28
+ userMap: UserMap;
29
29
  commitment: Commitment;
30
30
  skipInitialLoad?: boolean;
31
31
  resubOpts?: ResubOpts;
@@ -1,14 +1,14 @@
1
+ import { UserMap } from './userMap';
1
2
  import { getNonIdleUserFilter, getUserFilter } from '../memcmp';
2
- import { WebSocketProgramAccountSubscriber } from '../accounts/programAccount/webSocketProgramAccountSubscriber';
3
+ import { WebSocketProgramAccountSubscriber } from '../accounts/webSocketProgramAccountSubscriber';
3
4
  import { UserAccount } from '../types';
4
5
  import { Context, MemcmpFilter, PublicKey } from '@solana/web3.js';
5
6
  import { GrpcConfigs, ResubOpts } from '../accounts/types';
6
- import { grpcProgramAccountSubscriber } from '../accounts/programAccount/grpcProgramAccountSubscriber';
7
- import { UserMapInterface } from './types';
7
+ import { grpcProgramAccountSubscriber } from '../accounts/grpcProgramAccountSubscriber';
8
8
 
9
9
  export class grpcSubscription {
10
10
  private grpcConfigs: GrpcConfigs;
11
- private userMap: UserMapInterface;
11
+ private userMap: UserMap;
12
12
  private skipInitialLoad: boolean;
13
13
  private resubOpts?: ResubOpts;
14
14
  private includeIdle?: boolean;
@@ -27,7 +27,7 @@ export class grpcSubscription {
27
27
  additionalFilters = undefined,
28
28
  }: {
29
29
  grpcConfigs: GrpcConfigs;
30
- userMap: UserMapInterface;
30
+ userMap: UserMap;
31
31
  skipInitialLoad?: boolean;
32
32
  resubOpts?: ResubOpts;
33
33
  includeIdle?: boolean;
@@ -16,8 +16,8 @@ import {
16
16
  import { WrappedEvent } from '../events/types';
17
17
  import { DLOB } from '../dlob/DLOB';
18
18
  import { UserSubscriptionConfig } from '../userConfig';
19
- import { DataAndSlot } from '../accounts/types';
20
- import { OneShotUserAccountSubscriber } from '../accounts/userAccount/oneShotUserAccountSubscriber';
19
+ import { DataAndSlot, UserEvents } from '../accounts/types';
20
+ import { OneShotUserAccountSubscriber } from '../accounts/oneShotUserAccountSubscriber';
21
21
  import { ProtectMakerParamsMap } from '../dlob/types';
22
22
 
23
23
  import {
@@ -45,11 +45,38 @@ import { decodeUser } from '../decode/user';
45
45
  import { grpcSubscription } from './grpcSubscription';
46
46
  import StrictEventEmitter from 'strict-event-emitter-types';
47
47
  import { EventEmitter } from 'events';
48
- import { UserEvents } from './events';
49
- import { UserMapInterface } from './types';
50
48
 
51
49
  const MAX_USER_ACCOUNT_SIZE_BYTES = 4376;
52
50
 
51
+ export interface UserMapInterface {
52
+ eventEmitter: StrictEventEmitter<EventEmitter, UserEvents>;
53
+ subscribe(): Promise<void>;
54
+ unsubscribe(): Promise<void>;
55
+ addPubkey(
56
+ userAccountPublicKey: PublicKey,
57
+ userAccount?: UserAccount,
58
+ slot?: number,
59
+ accountSubscription?: UserSubscriptionConfig
60
+ ): Promise<void>;
61
+ has(key: string): boolean;
62
+ get(key: string): User | undefined;
63
+ getWithSlot(key: string): DataAndSlot<User> | undefined;
64
+ mustGet(
65
+ key: string,
66
+ accountSubscription?: UserSubscriptionConfig
67
+ ): Promise<User>;
68
+ mustGetWithSlot(
69
+ key: string,
70
+ accountSubscription?: UserSubscriptionConfig
71
+ ): Promise<DataAndSlot<User>>;
72
+ getUserAuthority(key: string): PublicKey | undefined;
73
+ updateWithOrderRecord(record: OrderRecord): Promise<void>;
74
+ values(): IterableIterator<User>;
75
+ valuesWithSlot(): IterableIterator<DataAndSlot<User>>;
76
+ entries(): IterableIterator<[string, User]>;
77
+ entriesWithSlot(): IterableIterator<[string, DataAndSlot<User>]>;
78
+ }
79
+
53
80
  export class UserMap implements UserMapInterface {
54
81
  private userMap = new Map<string, DataAndSlot<User>>();
55
82
  driftClient: DriftClient;
@@ -14,8 +14,8 @@ import {
14
14
  } from '../types';
15
15
  import { UserStats } from '../userStats';
16
16
  import { WrappedEvent } from '../events/types';
17
- import { BulkAccountLoader } from '../accounts/bulkAccountLoader/bulkAccountLoader';
18
- import { PollingUserStatsAccountSubscriber } from '../accounts/userStatsAccount/pollingUserStatsAccountSubscriber';
17
+ import { BulkAccountLoader } from '../accounts/bulkAccountLoader';
18
+ import { PollingUserStatsAccountSubscriber } from '../accounts/pollingUserStatsAccountSubscriber';
19
19
  import { SyncConfig } from './userMapConfig';
20
20
  import { getUserStatsFilter } from '../memcmp';
21
21
  import { PublicKey } from '@solana/web3.js';
package/src/userStats.ts CHANGED
@@ -2,14 +2,14 @@ import { DriftClient } from './driftClient';
2
2
  import { PublicKey } from '@solana/web3.js';
3
3
  import { DataAndSlot, UserStatsAccountSubscriber } from './accounts/types';
4
4
  import { UserStatsConfig } from './userStatsConfig';
5
- import { PollingUserStatsAccountSubscriber } from './accounts/userStatsAccount/pollingUserStatsAccountSubscriber';
6
- import { WebSocketUserStatsAccountSubscriber } from './accounts/userStatsAccount/webSocketUserStatsAccountSubsriber';
5
+ import { PollingUserStatsAccountSubscriber } from './accounts/pollingUserStatsAccountSubscriber';
6
+ import { WebSocketUserStatsAccountSubscriber } from './accounts/webSocketUserStatsAccountSubsriber';
7
7
  import { ReferrerInfo, SpotMarketAccount, UserStatsAccount } from './types';
8
8
  import {
9
9
  getUserAccountPublicKeySync,
10
10
  getUserStatsAccountPublicKey,
11
11
  } from './addresses/pda';
12
- import { grpcUserStatsAccountSubscriber } from './accounts/userStatsAccount/grpcUserStatsAccountSubscriber';
12
+ import { grpcUserStatsAccountSubscriber } from './accounts/grpcUserStatsAccountSubscriber';
13
13
  import { FUEL_START_TS } from './constants/numericConstants';
14
14
  import { ZERO } from './constants/numericConstants';
15
15
  import {
@@ -1,6 +1,6 @@
1
1
  import { DriftClient } from './driftClient';
2
2
  import { Commitment, PublicKey } from '@solana/web3.js';
3
- import { BulkAccountLoader } from './accounts/bulkAccountLoader/bulkAccountLoader';
3
+ import { BulkAccountLoader } from './accounts/bulkAccountLoader';
4
4
  import { GrpcConfigs } from './accounts/types';
5
5
 
6
6
  export type UserStatsConfig = {
@@ -1,5 +1,5 @@
1
1
  import { Connection, Keypair, PublicKey } from '@solana/web3.js';
2
- import { CustomizedCadenceBulkAccountLoader } from '../../src/accounts/bulkAccountLoader/customizedCadenceBulkAccountLoader';
2
+ import { CustomizedCadenceBulkAccountLoader } from '../../src/accounts/customizedCadenceBulkAccountLoader';
3
3
  import { expect } from 'chai';
4
4
 
5
5
  describe('CustomizedCadenceBulkAccountLoader', () => {
@@ -1 +0,0 @@
1
- export type DriftEnv = 'devnet' | 'mainnet-beta';
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });