@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
@@ -1,17 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WebSocketDriftClientAccountSubscriber = void 0;
4
- const types_1 = require("../types");
4
+ const types_1 = require("./types");
5
5
  const events_1 = require("events");
6
- const pda_1 = require("../../addresses/pda");
7
- const webSocketAccountSubscriber_1 = require("../baseSubscribers/webSocketAccountSubscriber");
6
+ const pda_1 = require("../addresses/pda");
7
+ const webSocketAccountSubscriber_1 = require("./webSocketAccountSubscriber");
8
8
  const web3_js_1 = require("@solana/web3.js");
9
- const oracleClientCache_1 = require("../../oracles/oracleClientCache");
10
- const quoteAssetOracleClient_1 = require("../../oracles/quoteAssetOracleClient");
11
- const config_1 = require("../../config");
12
- const utils_1 = require("../utils");
13
- const oracleId_1 = require("../../oracles/oracleId");
14
- const types_2 = require("../../types");
9
+ const oracleClientCache_1 = require("../oracles/oracleClientCache");
10
+ const quoteAssetOracleClient_1 = require("../oracles/quoteAssetOracleClient");
11
+ const config_1 = require("../config");
12
+ const utils_1 = require("./utils");
13
+ const oracleId_1 = require("../oracles/oracleId");
14
+ const types_2 = require("../types");
15
15
  const ORACLE_DEFAULT_ID = (0, oracleId_1.getOracleId)(web3_js_1.PublicKey.default, types_2.OracleSource.QUOTE_ASSET);
16
16
  class WebSocketDriftClientAccountSubscriber {
17
17
  constructor(program, perpMarketIndexes, spotMarketIndexes, oracleInfos, shouldFindAllMarketsAndOracles, delistedMarketSetting, resubOpts, commitment) {
@@ -1,10 +1,10 @@
1
1
  /// <reference types="node" />
2
- import { DataAndSlot, AccountSubscriber, HighLeverageModeConfigAccountEvents, HighLeverageModeConfigAccountSubscriber } from '../types';
2
+ import { DataAndSlot, AccountSubscriber, HighLeverageModeConfigAccountEvents, HighLeverageModeConfigAccountSubscriber } from './types';
3
3
  import { Program } from '@coral-xyz/anchor';
4
4
  import StrictEventEmitter from 'strict-event-emitter-types';
5
5
  import { EventEmitter } from 'events';
6
6
  import { Commitment, PublicKey } from '@solana/web3.js';
7
- import { HighLeverageModeConfig } from '../../types';
7
+ import { HighLeverageModeConfig } from '../types';
8
8
  export declare class WebSocketHighLeverageModeConfigAccountSubscriber implements HighLeverageModeConfigAccountSubscriber {
9
9
  isSubscribed: boolean;
10
10
  resubTimeoutMs?: number;
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WebSocketHighLeverageModeConfigAccountSubscriber = void 0;
4
- const types_1 = require("../types");
4
+ const types_1 = require("./types");
5
5
  const events_1 = require("events");
6
- const webSocketAccountSubscriber_1 = require("../baseSubscribers/webSocketAccountSubscriber");
6
+ const webSocketAccountSubscriber_1 = require("./webSocketAccountSubscriber");
7
7
  class WebSocketHighLeverageModeConfigAccountSubscriber {
8
8
  constructor(program, highLeverageModeConfigAccountPublicKey, resubTimeoutMs, commitment) {
9
9
  this.isSubscribed = false;
@@ -1,10 +1,10 @@
1
1
  /// <reference types="node" />
2
- import { DataAndSlot, AccountSubscriber, InsuranceFundStakeAccountEvents, InsuranceFundStakeAccountSubscriber } from '../types';
2
+ import { DataAndSlot, AccountSubscriber, InsuranceFundStakeAccountEvents, InsuranceFundStakeAccountSubscriber } from './types';
3
3
  import { Program } from '@coral-xyz/anchor';
4
4
  import StrictEventEmitter from 'strict-event-emitter-types';
5
5
  import { EventEmitter } from 'events';
6
6
  import { Commitment, PublicKey } from '@solana/web3.js';
7
- import { InsuranceFundStake } from '../../types';
7
+ import { InsuranceFundStake } from '../types';
8
8
  export declare class WebSocketInsuranceFundStakeAccountSubscriber implements InsuranceFundStakeAccountSubscriber {
9
9
  isSubscribed: boolean;
10
10
  resubTimeoutMs?: number;
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WebSocketInsuranceFundStakeAccountSubscriber = void 0;
4
- const types_1 = require("../types");
4
+ const types_1 = require("./types");
5
5
  const events_1 = require("events");
6
- const webSocketAccountSubscriber_1 = require("../baseSubscribers/webSocketAccountSubscriber");
6
+ const webSocketAccountSubscriber_1 = require("./webSocketAccountSubscriber");
7
7
  class WebSocketInsuranceFundStakeAccountSubscriber {
8
8
  constructor(program, insuranceFundStakeAccountPublicKey, resubTimeoutMs, commitment) {
9
9
  this.isSubscribed = false;
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node" />
3
- import { BufferAndSlot, ProgramAccountSubscriber, ResubOpts } from '../types';
3
+ import { BufferAndSlot, ProgramAccountSubscriber, ResubOpts } from './types';
4
4
  import { Program } from '@coral-xyz/anchor';
5
5
  import { Commitment, Context, KeyedAccountInfo, MemcmpFilter, PublicKey } from '@solana/web3.js';
6
6
  export declare class WebSocketProgramAccountSubscriber<T> implements ProgramAccountSubscriber<T> {
@@ -1,10 +1,10 @@
1
1
  /// <reference types="node" />
2
- import { DataAndSlot, AccountSubscriber, UserAccountEvents, UserAccountSubscriber, ResubOpts } from '../types';
2
+ import { DataAndSlot, AccountSubscriber, UserAccountEvents, UserAccountSubscriber, ResubOpts } from './types';
3
3
  import { Program } from '@coral-xyz/anchor';
4
4
  import StrictEventEmitter from 'strict-event-emitter-types';
5
5
  import { EventEmitter } from 'events';
6
6
  import { Commitment, PublicKey } from '@solana/web3.js';
7
- import { UserAccount } from '../../types';
7
+ import { UserAccount } from '../types';
8
8
  export declare class WebSocketUserAccountSubscriber implements UserAccountSubscriber {
9
9
  isSubscribed: boolean;
10
10
  resubOpts?: ResubOpts;
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WebSocketUserAccountSubscriber = void 0;
4
- const types_1 = require("../types");
4
+ const types_1 = require("./types");
5
5
  const events_1 = require("events");
6
- const webSocketAccountSubscriber_1 = require("../baseSubscribers/webSocketAccountSubscriber");
6
+ const webSocketAccountSubscriber_1 = require("./webSocketAccountSubscriber");
7
7
  class WebSocketUserAccountSubscriber {
8
8
  constructor(program, userAccountPublicKey, resubOpts, commitment) {
9
9
  this.isSubscribed = false;
@@ -1,10 +1,10 @@
1
1
  /// <reference types="node" />
2
- import { DataAndSlot, AccountSubscriber, UserStatsAccountSubscriber, UserStatsAccountEvents, ResubOpts } from '../types';
2
+ import { DataAndSlot, AccountSubscriber, UserStatsAccountSubscriber, UserStatsAccountEvents, ResubOpts } from './types';
3
3
  import { Program } from '@coral-xyz/anchor';
4
4
  import StrictEventEmitter from 'strict-event-emitter-types';
5
5
  import { EventEmitter } from 'events';
6
6
  import { Commitment, PublicKey } from '@solana/web3.js';
7
- import { UserStatsAccount } from '../../types';
7
+ import { UserStatsAccount } from '../types';
8
8
  export declare class WebSocketUserStatsAccountSubscriber implements UserStatsAccountSubscriber {
9
9
  isSubscribed: boolean;
10
10
  resubOpts?: ResubOpts;
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WebSocketUserStatsAccountSubscriber = void 0;
4
- const types_1 = require("../types");
4
+ const types_1 = require("./types");
5
5
  const events_1 = require("events");
6
- const webSocketAccountSubscriber_1 = require("../baseSubscribers/webSocketAccountSubscriber");
6
+ const webSocketAccountSubscriber_1 = require("./webSocketAccountSubscriber");
7
7
  class WebSocketUserStatsAccountSubscriber {
8
8
  constructor(program, userStatsAccountPublicKey, resubOpts, commitment) {
9
9
  this.isSubscribed = false;
@@ -230,8 +230,8 @@ export declare class AdminClient extends DriftClient {
230
230
  getUpdateProtectedMakerModeConfigIx(maxUsers: number, reduceOnly: boolean, currentUsers: undefined): Promise<TransactionInstruction>;
231
231
  adminDeposit(marketIndex: number, amount: BN, depositUserAccount: PublicKey, adminTokenAccount?: PublicKey): Promise<TransactionSignature>;
232
232
  getAdminDepositIx(marketIndex: number, amount: BN, depositUserAccount: PublicKey, adminTokenAccount?: PublicKey): Promise<TransactionInstruction>;
233
- updateDisableBitFlagsMMOracle(disable: boolean): Promise<TransactionSignature>;
234
- getUpdateDisableBitFlagsMMOracleIx(disable: boolean): Promise<TransactionInstruction>;
235
233
  zeroMMOracleFields(marketIndex: number): Promise<TransactionSignature>;
236
234
  getZeroMMOracleFieldsIx(marketIndex: number): Promise<TransactionInstruction>;
235
+ updateFeatureBitFlagsMMOracle(enable: boolean): Promise<TransactionSignature>;
236
+ getUpdateFeatureBitFlagsMMOracleIx(enable: boolean): Promise<TransactionInstruction>;
237
237
  }
@@ -2103,36 +2103,36 @@ class AdminClient extends driftClient_1.DriftClient {
2103
2103
  },
2104
2104
  });
2105
2105
  }
2106
- async updateDisableBitFlagsMMOracle(disable) {
2107
- const updateDisableBitFlagsMMOracleIx = await this.getUpdateDisableBitFlagsMMOracleIx(disable);
2108
- const tx = await this.buildTransaction(updateDisableBitFlagsMMOracleIx);
2106
+ async zeroMMOracleFields(marketIndex) {
2107
+ const zeroMMOracleFieldsIx = await this.getZeroMMOracleFieldsIx(marketIndex);
2108
+ const tx = await this.buildTransaction(zeroMMOracleFieldsIx);
2109
2109
  const { txSig } = await this.sendTransaction(tx, [], this.opts);
2110
2110
  return txSig;
2111
2111
  }
2112
- async getUpdateDisableBitFlagsMMOracleIx(disable) {
2113
- return await this.program.instruction.updateDisableBitflagsMmOracle(disable, {
2112
+ async getZeroMMOracleFieldsIx(marketIndex) {
2113
+ return await this.program.instruction.zeroMmOracleFields({
2114
2114
  accounts: {
2115
2115
  admin: this.isSubscribed
2116
2116
  ? this.getStateAccount().admin
2117
2117
  : this.wallet.publicKey,
2118
2118
  state: await this.getStatePublicKey(),
2119
+ perpMarket: await (0, pda_1.getPerpMarketPublicKey)(this.program.programId, marketIndex),
2119
2120
  },
2120
2121
  });
2121
2122
  }
2122
- async zeroMMOracleFields(marketIndex) {
2123
- const zeroMMOracleFieldsIx = await this.getZeroMMOracleFieldsIx(marketIndex);
2124
- const tx = await this.buildTransaction(zeroMMOracleFieldsIx);
2123
+ async updateFeatureBitFlagsMMOracle(enable) {
2124
+ const updateFeatureBitFlagsMMOracleIx = await this.getUpdateFeatureBitFlagsMMOracleIx(enable);
2125
+ const tx = await this.buildTransaction(updateFeatureBitFlagsMMOracleIx);
2125
2126
  const { txSig } = await this.sendTransaction(tx, [], this.opts);
2126
2127
  return txSig;
2127
2128
  }
2128
- async getZeroMMOracleFieldsIx(marketIndex) {
2129
- return await this.program.instruction.zeroMmOracleFields({
2129
+ async getUpdateFeatureBitFlagsMMOracleIx(enable) {
2130
+ return await this.program.instruction.updateFeatureBitFlagsMmOracle(enable, {
2130
2131
  accounts: {
2131
- admin: this.isSubscribed
2132
- ? this.getStateAccount().admin
2133
- : this.wallet.publicKey,
2132
+ admin: this.useHotWalletAdmin
2133
+ ? this.wallet.publicKey
2134
+ : this.getStateAccount().admin,
2134
2135
  state: await this.getStatePublicKey(),
2135
- perpMarket: await (0, pda_1.getPerpMarketPublicKey)(this.program.programId, marketIndex),
2136
2136
  },
2137
2137
  });
2138
2138
  }
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AuctionSubscriber = void 0;
4
4
  const memcmp_1 = require("../memcmp");
5
5
  const events_1 = require("events");
6
- const webSocketProgramAccountSubscriber_1 = require("../accounts/programAccount/webSocketProgramAccountSubscriber");
6
+ const webSocketProgramAccountSubscriber_1 = require("../accounts/webSocketProgramAccountSubscriber");
7
7
  class AuctionSubscriber {
8
8
  constructor({ driftClient, opts, resubTimeoutMs, logResubMessages, }) {
9
9
  this.driftClient = driftClient;
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AuctionSubscriberGrpc = void 0;
4
4
  const memcmp_1 = require("../memcmp");
5
5
  const events_1 = require("events");
6
- const grpcProgramAccountSubscriber_1 = require("../accounts/programAccount/grpcProgramAccountSubscriber");
6
+ const grpcProgramAccountSubscriber_1 = require("../accounts/grpcProgramAccountSubscriber");
7
7
  class AuctionSubscriberGrpc {
8
8
  constructor({ driftClient, opts, grpcConfigs, resubTimeoutMs, logResubMessages, }) {
9
9
  this.driftClient = driftClient;
@@ -1,10 +1,9 @@
1
1
  import { ConfirmOptions, PublicKey } from '@solana/web3.js';
2
- import { PerpMarketAccount, SpotMarketAccount } from '../types';
3
- import { PerpMarketConfig } from '../constants/perpMarkets';
4
- import { SpotMarketConfig } from '../constants/spotMarkets';
5
- import { OracleInfo } from '../oracles/types';
2
+ import { PerpMarketAccount, SpotMarketAccount } from './types';
3
+ import { PerpMarketConfig } from './constants/perpMarkets';
4
+ import { SpotMarketConfig } from './constants/spotMarkets';
5
+ import { OracleInfo } from './oracles/types';
6
6
  import { Program } from '@coral-xyz/anchor';
7
- import { DriftEnv } from './types';
8
7
  type DriftConfig = {
9
8
  ENV: DriftEnv;
10
9
  PYTH_ORACLE_MAPPING_ADDRESS: string;
@@ -25,6 +24,7 @@ type DriftConfig = {
25
24
  PYTH_PULL_ORACLE_LOOKUP_TABLE?: string;
26
25
  SB_ON_DEMAND_PID: PublicKey;
27
26
  };
27
+ export type DriftEnv = 'devnet' | 'mainnet-beta';
28
28
  export declare const DRIFT_PROGRAM_ID = "dRiftyHA39MWEi3m9aunc5MzRF1JYuBsbn6VPcn33UH";
29
29
  export declare const DRIFT_ORACLE_RECEIVER_ID = "G6EoTTTgpkNBtVXo96EQp2m6uwwVh2Kt6YidjkmQqoha";
30
30
  export declare const PTYH_LAZER_PROGRAM_ID = "pytd2yyk641x7ak7mkaasSJVXh6YYZnC7wTmtgAyxPt";
@@ -2,10 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.findAllMarketAndOracles = exports.getMarketsAndOraclesForSubscription = exports.initialize = exports.getConfig = exports.configs = exports.DEFAULT_CONFIRMATION_OPTS = exports.PYTH_LAZER_STORAGE_ACCOUNT_KEY = exports.PTYH_LAZER_PROGRAM_ID = exports.DRIFT_ORACLE_RECEIVER_ID = exports.DRIFT_PROGRAM_ID = void 0;
4
4
  const web3_js_1 = require("@solana/web3.js");
5
- const perpMarkets_1 = require("../constants/perpMarkets");
6
- const spotMarkets_1 = require("../constants/spotMarkets");
5
+ const perpMarkets_1 = require("./constants/perpMarkets");
6
+ const spotMarkets_1 = require("./constants/spotMarkets");
7
7
  const on_demand_1 = require("@switchboard-xyz/on-demand");
8
- const oracleId_1 = require("../oracles/oracleId");
8
+ const oracleId_1 = require("./oracles/oracleId");
9
9
  exports.DRIFT_PROGRAM_ID = 'dRiftyHA39MWEi3m9aunc5MzRF1JYuBsbn6VPcn33UH';
10
10
  exports.DRIFT_ORACLE_RECEIVER_ID = 'G6EoTTTgpkNBtVXo96EQp2m6uwwVh2Kt6YidjkmQqoha';
11
11
  exports.PTYH_LAZER_PROGRAM_ID = 'pytd2yyk641x7ak7mkaasSJVXh6YYZnC7wTmtgAyxPt';
@@ -1,6 +1,6 @@
1
1
  import { PublicKey } from '@solana/web3.js';
2
2
  import { OracleSource } from '../types';
3
- import { DriftEnv } from '../config/types';
3
+ import { DriftEnv } from '../config';
4
4
  export type PerpMarketConfig = {
5
5
  fullName?: string;
6
6
  category?: string[];
@@ -2,7 +2,7 @@
2
2
  import { PublicKey } from '@solana/web3.js';
3
3
  import { OracleSource } from '../types';
4
4
  import { BN } from '@coral-xyz/anchor';
5
- import { DriftEnv } from '../config/types';
5
+ import { DriftEnv } from '../config';
6
6
  export type SpotMarketConfig = {
7
7
  symbol: string;
8
8
  marketIndex: number;
@@ -75,8 +75,8 @@ export declare class DLOB {
75
75
  * @returns a promise that resolves when the DLOB is initialized
76
76
  */
77
77
  initFromUserMap(userMap: UserMap, slot: number): Promise<boolean>;
78
- insertOrder(order: Order, userAccount: string, slot: number, isUserProtectedMaker: boolean, onInsert?: OrderBookCallback): void;
79
- insertSignedMsgOrder(order: Order, userAccount: string, isUserProtectedMaker: boolean, onInsert?: OrderBookCallback): void;
78
+ insertOrder(order: Order, userAccount: string, slot: number, isUserProtectedMaker: boolean, baseAssetAmount: BN, onInsert?: OrderBookCallback): void;
79
+ insertSignedMsgOrder(order: Order, userAccount: string, isUserProtectedMaker: boolean, baseAssetAmount?: BN, onInsert?: OrderBookCallback): void;
80
80
  addOrderList(marketType: MarketTypeStr, marketIndex: number): void;
81
81
  delete(order: Order, userAccount: PublicKey, slot: number, isUserProtectedMaker: boolean, onDelete?: OrderBookCallback): void;
82
82
  getListForOnChainOrder(order: Order, slot: number, isProtectedMaker: boolean): NodeList<any> | undefined;
@@ -133,7 +133,7 @@ export declare class DLOB {
133
133
  getTakeProfits(marketIndex: number, marketType: MarketType, direction: PositionDirection): Generator<DLOBNode>;
134
134
  getTakeProfitMarkets(marketIndex: number, marketType: MarketType, direction: PositionDirection): Generator<DLOBNode>;
135
135
  getTakeProfitLimits(marketIndex: number, marketType: MarketType, direction: PositionDirection): Generator<DLOBNode>;
136
- findNodesToTrigger(marketIndex: number, slot: number, oraclePrice: BN, marketType: MarketType, stateAccount: StateAccount): NodeToTrigger[];
136
+ findNodesToTrigger(marketIndex: number, slot: number, triggerPrice: BN, marketType: MarketType, stateAccount: StateAccount): NodeToTrigger[];
137
137
  printTop(driftClient: DriftClient, slotSubscriber: SlotSubscriber, marketIndex: number, marketType: MarketType): void;
138
138
  getDLOBOrders(): DLOBOrders;
139
139
  getNodeLists(): Generator<NodeList<DLOBNodeType>>;
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DLOB = void 0;
4
4
  const NodeList_1 = require("./NodeList");
5
- const utils_1 = require("./utils");
6
5
  const anchor_1 = require("@coral-xyz/anchor");
7
6
  const numericConstants_1 = require("../constants/numericConstants");
8
7
  const userName_1 = require("../userName");
@@ -66,6 +65,7 @@ class DLOB {
66
65
  * @returns a promise that resolves when the DLOB is initialized
67
66
  */
68
67
  async initFromUserMap(userMap, slot) {
68
+ var _a;
69
69
  if (this.initialized) {
70
70
  return false;
71
71
  }
@@ -76,13 +76,18 @@ class DLOB {
76
76
  const userAccountPubkeyString = userAccountPubkey.toString();
77
77
  const protectedMaker = (0, userStatus_1.isUserProtectedMaker)(userAccount);
78
78
  for (const order of userAccount.orders) {
79
- this.insertOrder(order, userAccountPubkeyString, slot, protectedMaker);
79
+ let baseAssetAmount = order.baseAssetAmount;
80
+ if (order.reduceOnly) {
81
+ const existingBaseAmount = ((_a = userAccount.perpPositions.find((pos) => pos.marketIndex === order.marketIndex && pos.openOrders > 0)) === null || _a === void 0 ? void 0 : _a.baseAssetAmount) || numericConstants_1.ZERO;
82
+ baseAssetAmount = (0, orders_1.calculateOrderBaseAssetAmount)(order, existingBaseAmount);
83
+ }
84
+ this.insertOrder(order, userAccountPubkeyString, slot, protectedMaker, baseAssetAmount);
80
85
  }
81
86
  }
82
87
  this.initialized = true;
83
88
  return true;
84
89
  }
85
- insertOrder(order, userAccount, slot, isUserProtectedMaker, onInsert) {
90
+ insertOrder(order, userAccount, slot, isUserProtectedMaker, baseAssetAmount, onInsert) {
86
91
  var _a;
87
92
  if (!(0, types_1.isVariant)(order.status, 'open')) {
88
93
  return;
@@ -97,14 +102,14 @@ class DLOB {
97
102
  if ((0, types_1.isVariant)(order.status, 'open')) {
98
103
  this.openOrders
99
104
  .get(marketType)
100
- .add((0, utils_1.getOrderSignature)(order.orderId, userAccount));
105
+ .add((0, NodeList_1.getOrderSignature)(order.orderId, userAccount));
101
106
  }
102
- (_a = this.getListForOnChainOrder(order, slot, isUserProtectedMaker)) === null || _a === void 0 ? void 0 : _a.insert(order, marketType, userAccount, isUserProtectedMaker, this.protectedMakerParamsMap[marketType].get(order.marketIndex));
107
+ (_a = this.getListForOnChainOrder(order, slot, isUserProtectedMaker)) === null || _a === void 0 ? void 0 : _a.insert(order, marketType, userAccount, isUserProtectedMaker, this.protectedMakerParamsMap[marketType].get(order.marketIndex), baseAssetAmount);
103
108
  if (onInsert) {
104
109
  onInsert();
105
110
  }
106
111
  }
107
- insertSignedMsgOrder(order, userAccount, isUserProtectedMaker, onInsert) {
112
+ insertSignedMsgOrder(order, userAccount, isUserProtectedMaker, baseAssetAmount, onInsert) {
108
113
  const marketType = (0, types_1.getVariant)(order.marketType);
109
114
  const marketIndex = order.marketIndex;
110
115
  const bidOrAsk = (0, types_1.isVariant)(order.direction, 'long') ? 'bid' : 'ask';
@@ -113,11 +118,11 @@ class DLOB {
113
118
  }
114
119
  this.openOrders
115
120
  .get(marketType)
116
- .add((0, utils_1.getOrderSignature)(order.orderId, userAccount));
121
+ .add((0, NodeList_1.getOrderSignature)(order.orderId, userAccount));
117
122
  this.orderLists
118
123
  .get(marketType)
119
124
  .get(marketIndex)
120
- .signedMsg[bidOrAsk].insert(order, marketType, userAccount, isUserProtectedMaker, this.protectedMakerParamsMap[marketType].get(order.marketIndex));
125
+ .signedMsg[bidOrAsk].insert(order, marketType, userAccount, isUserProtectedMaker, this.protectedMakerParamsMap[marketType].get(order.marketIndex), baseAssetAmount);
121
126
  if (onInsert) {
122
127
  onInsert();
123
128
  }
@@ -231,7 +236,7 @@ class DLOB {
231
236
  }
232
237
  }
233
238
  getOrder(orderId, userAccount) {
234
- const orderSignature = (0, utils_1.getOrderSignature)(orderId, userAccount.toString());
239
+ const orderSignature = (0, NodeList_1.getOrderSignature)(orderId, userAccount.toString());
235
240
  for (const nodeList of this.getNodeLists()) {
236
241
  const node = nodeList.get(orderSignature);
237
242
  if (node) {
@@ -281,7 +286,7 @@ class DLOB {
281
286
  const mergedNodesToFill = new Map();
282
287
  const mergeNodesToFillHelper = (nodesToFillArray) => {
283
288
  nodesToFillArray.forEach((nodeToFill) => {
284
- const nodeSignature = (0, utils_1.getOrderSignature)(nodeToFill.node.order.orderId, nodeToFill.node.userAccount);
289
+ const nodeSignature = (0, NodeList_1.getOrderSignature)(nodeToFill.node.order.orderId, nodeToFill.node.userAccount);
285
290
  if (!mergedNodesToFill.has(nodeSignature)) {
286
291
  mergedNodesToFill.set(nodeSignature, {
287
292
  node: nodeToFill.node,
@@ -848,7 +853,7 @@ class DLOB {
848
853
  }
849
854
  }
850
855
  }
851
- findNodesToTrigger(marketIndex, slot, oraclePrice, marketType, stateAccount) {
856
+ findNodesToTrigger(marketIndex, slot, triggerPrice, marketType, stateAccount) {
852
857
  if ((0, exchangeStatus_1.exchangePaused)(stateAccount)) {
853
858
  return [];
854
859
  }
@@ -860,7 +865,7 @@ class DLOB {
860
865
  : undefined;
861
866
  if (triggerAboveList) {
862
867
  for (const node of triggerAboveList.getGenerator()) {
863
- if (oraclePrice.gt(node.order.triggerPrice)) {
868
+ if (triggerPrice.gt(node.order.triggerPrice)) {
864
869
  nodesToTrigger.push({
865
870
  node: node,
866
871
  });
@@ -875,7 +880,7 @@ class DLOB {
875
880
  : undefined;
876
881
  if (triggerBelowList) {
877
882
  for (const node of triggerBelowList.getGenerator()) {
878
- if (oraclePrice.lt(node.order.triggerPrice)) {
883
+ if (triggerPrice.lt(node.order.triggerPrice)) {
879
884
  nodesToTrigger.push({
880
885
  node: node,
881
886
  });
@@ -12,6 +12,7 @@ export interface DLOBNode {
12
12
  isProtectedMaker: boolean;
13
13
  protectedMakerParams?: ProtectedMakerParams;
14
14
  isSignedMsg: boolean | undefined;
15
+ baseAssetAmount: BN;
15
16
  }
16
17
  export declare abstract class OrderNode implements DLOBNode {
17
18
  order: Order;
@@ -21,8 +22,9 @@ export declare abstract class OrderNode implements DLOBNode {
21
22
  haveTrigger: boolean;
22
23
  isProtectedMaker: boolean;
23
24
  protectedMakerParams?: ProtectedMakerParams;
25
+ baseAssetAmount: BN;
24
26
  isSignedMsg: boolean;
25
- constructor(order: Order, userAccount: string, isProtectedMaker: boolean, protectedMakerParams?: ProtectedMakerParams, isSignedMsg?: boolean);
27
+ constructor(order: Order, userAccount: string, isProtectedMaker: boolean, protectedMakerParams?: ProtectedMakerParams, baseAssetAmount?: BN, isSignedMsg?: boolean);
26
28
  abstract getSortValue(order: Order): BN;
27
29
  getLabel(): string;
28
30
  getPrice(oraclePriceData: OraclePriceData, slot: number): BN;
@@ -57,7 +59,7 @@ export declare class TriggerOrderNode extends OrderNode {
57
59
  export declare class SignedMsgOrderNode extends OrderNode {
58
60
  next?: SignedMsgOrderNode;
59
61
  previous?: SignedMsgOrderNode;
60
- constructor(order: Order, userAccount: string);
62
+ constructor(order: Order, userAccount: string, baseAssetAmount?: BN);
61
63
  getSortValue(order: Order): BN;
62
64
  }
63
65
  export type DLOBNodeMap = {
@@ -70,4 +72,4 @@ export type DLOBNodeMap = {
70
72
  signedMsg: SignedMsgOrderNode;
71
73
  };
72
74
  export type DLOBNodeType = 'signedMsg' | 'restingLimit' | 'takingLimit' | 'floatingLimit' | 'protectedFloatingLimit' | 'market' | ('trigger' & keyof DLOBNodeMap);
73
- export declare function createNode<T extends DLOBNodeType>(nodeType: T, order: Order, userAccount: string, isProtectedMaker: boolean, protectedMakerParams?: ProtectedMakerParams): DLOBNodeMap[T];
75
+ export declare function createNode<T extends DLOBNodeType>(nodeType: T, order: Order, userAccount: string, isProtectedMaker: boolean, protectedMakerParams?: ProtectedMakerParams, baseAssetAmount?: BN): DLOBNodeMap[T];
@@ -6,9 +6,9 @@ const numericConstants_1 = require("../constants/numericConstants");
6
6
  const orders_1 = require("../math/orders");
7
7
  const types_1 = require("../types");
8
8
  const conversion_1 = require("../math/conversion");
9
- const utils_1 = require("./utils");
9
+ const NodeList_1 = require("./NodeList");
10
10
  class OrderNode {
11
- constructor(order, userAccount, isProtectedMaker, protectedMakerParams, isSignedMsg = false) {
11
+ constructor(order, userAccount, isProtectedMaker, protectedMakerParams, baseAssetAmount, isSignedMsg = false) {
12
12
  this.haveFilled = false;
13
13
  this.haveTrigger = false;
14
14
  // Copy the order over to the node
@@ -17,10 +17,11 @@ class OrderNode {
17
17
  this.sortValue = this.getSortValue(order);
18
18
  this.isProtectedMaker = isProtectedMaker;
19
19
  this.protectedMakerParams = protectedMakerParams;
20
+ this.baseAssetAmount = baseAssetAmount !== null && baseAssetAmount !== void 0 ? baseAssetAmount : order.baseAssetAmount;
20
21
  this.isSignedMsg = isSignedMsg;
21
22
  }
22
23
  getLabel() {
23
- let msg = `Order ${(0, utils_1.getOrderSignature)(this.order.orderId, this.userAccount)}`;
24
+ let msg = `Order ${(0, NodeList_1.getOrderSignature)(this.order.orderId, this.userAccount)}`;
24
25
  msg += ` ${(0, types_1.isVariant)(this.order.direction, 'long') ? 'LONG' : 'SHORT'} `;
25
26
  msg += `${(0, conversion_1.convertToNumber)(this.order.baseAssetAmount, numericConstants_1.AMM_RESERVE_PRECISION).toFixed(3)}`;
26
27
  if (this.order.price.gt(numericConstants_1.ZERO)) {
@@ -85,30 +86,30 @@ class TriggerOrderNode extends OrderNode {
85
86
  exports.TriggerOrderNode = TriggerOrderNode;
86
87
  // We'll use the signedMsg uuid for the order id since it's not yet on-chain
87
88
  class SignedMsgOrderNode extends OrderNode {
88
- constructor(order, userAccount) {
89
- super(order, userAccount, false, undefined, true);
89
+ constructor(order, userAccount, baseAssetAmount) {
90
+ super(order, userAccount, false, undefined, baseAssetAmount, true);
90
91
  }
91
92
  getSortValue(order) {
92
93
  return order.slot;
93
94
  }
94
95
  }
95
96
  exports.SignedMsgOrderNode = SignedMsgOrderNode;
96
- function createNode(nodeType, order, userAccount, isProtectedMaker, protectedMakerParams) {
97
+ function createNode(nodeType, order, userAccount, isProtectedMaker, protectedMakerParams, baseAssetAmount) {
97
98
  switch (nodeType) {
98
99
  case 'floatingLimit':
99
- return new FloatingLimitOrderNode(order, userAccount, isProtectedMaker, protectedMakerParams);
100
+ return new FloatingLimitOrderNode(order, userAccount, isProtectedMaker, protectedMakerParams, baseAssetAmount);
100
101
  case 'protectedFloatingLimit':
101
- return new FloatingLimitOrderNode(order, userAccount, isProtectedMaker, protectedMakerParams);
102
+ return new FloatingLimitOrderNode(order, userAccount, isProtectedMaker, protectedMakerParams, baseAssetAmount);
102
103
  case 'restingLimit':
103
- return new RestingLimitOrderNode(order, userAccount, isProtectedMaker, protectedMakerParams);
104
+ return new RestingLimitOrderNode(order, userAccount, isProtectedMaker, protectedMakerParams, baseAssetAmount);
104
105
  case 'takingLimit':
105
- return new TakingLimitOrderNode(order, userAccount, isProtectedMaker, protectedMakerParams);
106
+ return new TakingLimitOrderNode(order, userAccount, isProtectedMaker, protectedMakerParams, baseAssetAmount);
106
107
  case 'market':
107
- return new MarketOrderNode(order, userAccount, isProtectedMaker, undefined);
108
+ return new MarketOrderNode(order, userAccount, isProtectedMaker, undefined, baseAssetAmount);
108
109
  case 'trigger':
109
- return new TriggerOrderNode(order, userAccount, isProtectedMaker, undefined);
110
+ return new TriggerOrderNode(order, userAccount, isProtectedMaker, undefined, baseAssetAmount);
110
111
  case 'signedMsg':
111
- return new SignedMsgOrderNode(order, userAccount);
112
+ return new SignedMsgOrderNode(order, userAccount, baseAssetAmount);
112
113
  default:
113
114
  throw Error(`Unknown DLOBNode type ${nodeType}`);
114
115
  }
@@ -83,7 +83,7 @@ class DLOBSubscriber {
83
83
  fallbackL2Generators = [
84
84
  (0, orderBookLevels_1.getVammL2Generator)({
85
85
  marketAccount: this.driftClient.getPerpMarketAccount(marketIndex),
86
- oraclePriceData,
86
+ oraclePriceData: this.driftClient.getMMOracleDataForPerpMarket(marketIndex),
87
87
  numOrders: numVammOrders !== null && numVammOrders !== void 0 ? numVammOrders : depth,
88
88
  topOfBookQuoteAmounts: marketIndex < 3
89
89
  ? orderBookLevels_1.MAJORS_TOP_OF_BOOK_QUOTE_AMOUNTS
@@ -1,6 +1,9 @@
1
+ /// <reference types="bn.js" />
1
2
  import { MarketTypeStr, Order, ProtectedMakerParams } from '../types';
2
3
  import { DLOBNode, DLOBNodeMap } from './DLOBNode';
4
+ import { BN } from '@coral-xyz/anchor';
3
5
  export type SortDirection = 'asc' | 'desc';
6
+ export declare function getOrderSignature(orderId: number, userAccount: string): string;
4
7
  export interface DLOBNodeGenerator {
5
8
  getGenerator(): Generator<DLOBNode>;
6
9
  }
@@ -12,7 +15,7 @@ export declare class NodeList<NodeType extends keyof DLOBNodeMap> implements DLO
12
15
  nodeMap: Map<string, DLOBNodeMap[NodeType]>;
13
16
  constructor(nodeType: NodeType, sortDirection: SortDirection);
14
17
  clear(): void;
15
- insert(order: Order, marketType: MarketTypeStr, userAccount: string, isProtectedMaker: boolean, protectedMakerParamsMap?: ProtectedMakerParams): void;
18
+ insert(order: Order, marketType: MarketTypeStr, userAccount: string, isProtectedMaker: boolean, protectedMakerParamsMap?: ProtectedMakerParams, baseAssetAmount?: BN): void;
16
19
  prependNode(currentNode: DLOBNodeMap[NodeType], newNode: DLOBNodeMap[NodeType]): boolean;
17
20
  update(order: Order, userAccount: string): void;
18
21
  remove(order: Order, userAccount: string): void;
@@ -1,9 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NodeList = void 0;
3
+ exports.NodeList = exports.getOrderSignature = void 0;
4
4
  const types_1 = require("../types");
5
5
  const DLOBNode_1 = require("./DLOBNode");
6
- const utils_1 = require("./utils");
6
+ function getOrderSignature(orderId, userAccount) {
7
+ return `${userAccount.toString()}-${orderId.toString()}`;
8
+ }
9
+ exports.getOrderSignature = getOrderSignature;
7
10
  class NodeList {
8
11
  constructor(nodeType, sortDirection) {
9
12
  this.nodeType = nodeType;
@@ -16,12 +19,12 @@ class NodeList {
16
19
  this.length = 0;
17
20
  this.nodeMap.clear();
18
21
  }
19
- insert(order, marketType, userAccount, isProtectedMaker, protectedMakerParamsMap) {
22
+ insert(order, marketType, userAccount, isProtectedMaker, protectedMakerParamsMap, baseAssetAmount) {
20
23
  if (!(0, types_1.isVariant)(order.status, 'open')) {
21
24
  return;
22
25
  }
23
- const newNode = (0, DLOBNode_1.createNode)(this.nodeType, order, userAccount, isProtectedMaker, protectedMakerParamsMap);
24
- const orderSignature = (0, utils_1.getOrderSignature)(order.orderId, userAccount);
26
+ const newNode = (0, DLOBNode_1.createNode)(this.nodeType, order, userAccount, isProtectedMaker, protectedMakerParamsMap, baseAssetAmount);
27
+ const orderSignature = getOrderSignature(order.orderId, userAccount);
25
28
  if (this.nodeMap.has(orderSignature)) {
26
29
  return;
27
30
  }
@@ -65,7 +68,7 @@ class NodeList {
65
68
  }
66
69
  }
67
70
  update(order, userAccount) {
68
- const orderId = (0, utils_1.getOrderSignature)(order.orderId, userAccount);
71
+ const orderId = getOrderSignature(order.orderId, userAccount);
69
72
  if (this.nodeMap.has(orderId)) {
70
73
  const node = this.nodeMap.get(orderId);
71
74
  Object.assign(node.order, order);
@@ -73,7 +76,7 @@ class NodeList {
73
76
  }
74
77
  }
75
78
  remove(order, userAccount) {
76
- const orderId = (0, utils_1.getOrderSignature)(order.orderId, userAccount);
79
+ const orderId = getOrderSignature(order.orderId, userAccount);
77
80
  if (this.nodeMap.has(orderId)) {
78
81
  const node = this.nodeMap.get(orderId);
79
82
  if (node.next) {
@@ -99,7 +102,7 @@ class NodeList {
99
102
  }
100
103
  }
101
104
  has(order, userAccount) {
102
- return this.nodeMap.has((0, utils_1.getOrderSignature)(order.orderId, userAccount));
105
+ return this.nodeMap.has(getOrderSignature(order.orderId, userAccount));
103
106
  }
104
107
  get(orderSignature) {
105
108
  return this.nodeMap.get(orderSignature);
@@ -34,6 +34,12 @@ export type L3OrderBook = {
34
34
  };
35
35
  export declare const DEFAULT_TOP_OF_BOOK_QUOTE_AMOUNTS: BN[];
36
36
  export declare const MAJORS_TOP_OF_BOOK_QUOTE_AMOUNTS: BN[];
37
+ /**
38
+ * Get an {@link Generator<L2Level>} generator from a {@link Generator<DLOBNode>}
39
+ * @param dlobNodes e.g. {@link DLOB#getRestingLimitAsks} or {@link DLOB#getRestingLimitBids}
40
+ * @param oraclePriceData
41
+ * @param slot
42
+ */
37
43
  export declare function getL2GeneratorFromDLOBNodes(dlobNodes: Generator<DLOBNode>, oraclePriceData: OraclePriceData, slot: number): Generator<L2Level>;
38
44
  export declare function mergeL2LevelGenerators(l2LevelGenerators: Generator<L2Level>[], compare: (a: L2Level, b: L2Level) => boolean): Generator<L2Level>;
39
45
  export declare function createL2Levels(generator: Generator<L2Level>, depth: number): L2Level[];