@drift-labs/sdk 2.163.0-beta.0 → 2.163.0-beta.11

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 (500) hide show
  1. package/.prettierignore +1 -0
  2. package/.yarn/install-state.gz +0 -0
  3. package/README.md +2 -2
  4. package/VERSION +1 -1
  5. package/bun.lock +47 -79
  6. package/lib/browser/accounts/fetch.d.ts +6 -6
  7. package/lib/browser/accounts/fetch.js +4 -4
  8. package/lib/browser/accounts/grpcAccountSubscriber.d.ts +2 -2
  9. package/lib/browser/accounts/grpcDriftClientAccountSubscriber.d.ts +2 -2
  10. package/lib/browser/accounts/grpcDriftClientAccountSubscriberV2.d.ts +3 -3
  11. package/lib/browser/accounts/grpcDriftClientAccountSubscriberV2.js +2 -2
  12. package/lib/browser/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts +2 -2
  13. package/lib/browser/accounts/grpcMultiAccountSubscriber.d.ts +2 -2
  14. package/lib/browser/accounts/grpcMultiUserAccountSubscriber.d.ts +2 -2
  15. package/lib/browser/accounts/grpcProgramAccountSubscriber.d.ts +2 -2
  16. package/lib/browser/accounts/grpcUserAccountSubscriber.d.ts +2 -2
  17. package/lib/browser/accounts/grpcUserStatsAccountSubscriber.d.ts +2 -2
  18. package/lib/browser/accounts/laserProgramAccountSubscriber.d.ts +2 -2
  19. package/lib/browser/accounts/oneShotUserAccountSubscriber.d.ts +3 -3
  20. package/lib/browser/accounts/oneShotUserStatsAccountSubscriber.d.ts +3 -3
  21. package/lib/browser/accounts/pollingDriftClientAccountSubscriber.d.ts +3 -3
  22. package/lib/browser/accounts/pollingDriftClientAccountSubscriber.js +2 -2
  23. package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +3 -3
  24. package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.js +1 -1
  25. package/lib/browser/accounts/pollingOracleAccountSubscriber.d.ts +2 -2
  26. package/lib/browser/accounts/pollingTokenAccountSubscriber.d.ts +2 -2
  27. package/lib/browser/accounts/pollingUserAccountSubscriber.js +2 -2
  28. package/lib/browser/accounts/pollingUserStatsAccountSubscriber.d.ts +3 -3
  29. package/lib/browser/accounts/pollingUserStatsAccountSubscriber.js +1 -1
  30. package/lib/browser/accounts/testBulkAccountLoader.js +3 -5
  31. package/lib/browser/accounts/types.d.ts +11 -14
  32. package/lib/browser/accounts/webSocketAccountSubscriber.d.ts +3 -3
  33. package/lib/browser/accounts/webSocketAccountSubscriber.js +1 -2
  34. package/lib/browser/accounts/webSocketAccountSubscriberV2.d.ts +3 -3
  35. package/lib/browser/accounts/webSocketDriftClientAccountSubscriber.d.ts +5 -5
  36. package/lib/browser/accounts/webSocketDriftClientAccountSubscriber.js +2 -2
  37. package/lib/browser/accounts/webSocketDriftClientAccountSubscriberV2.d.ts +3 -3
  38. package/lib/browser/accounts/webSocketDriftClientAccountSubscriberV2.js +2 -2
  39. package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +3 -3
  40. package/lib/browser/accounts/webSocketProgramAccountSubscriber.d.ts +3 -3
  41. package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.d.ts +3 -3
  42. package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.d.ts +3 -3
  43. package/lib/browser/accounts/webSocketUserAccountSubscriber.d.ts +3 -3
  44. package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.d.ts +3 -3
  45. package/lib/browser/accounts/websocketProgramUserAccountSubscriber.d.ts +2 -2
  46. package/lib/browser/addresses/pda.d.ts +6 -2
  47. package/lib/browser/addresses/pda.js +7 -12
  48. package/lib/browser/adminClient.d.ts +13 -9
  49. package/lib/browser/adminClient.js +47 -72
  50. package/lib/browser/auctionSubscriber/auctionSubscriber.js +1 -1
  51. package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.js +1 -1
  52. package/lib/browser/config.d.ts +7 -3
  53. package/lib/browser/config.js +9 -7
  54. package/lib/browser/constants/index.d.ts +5 -0
  55. package/lib/browser/constants/index.js +5 -0
  56. package/lib/browser/constants/numericConstants.d.ts +1 -1
  57. package/lib/browser/constants/numericConstants.js +3 -3
  58. package/lib/browser/constants/perpMarkets.js +3 -412
  59. package/lib/browser/constants/spotMarkets.js +7 -91
  60. package/lib/browser/constituentMap/constituentMap.js +2 -2
  61. package/lib/browser/constituentMap/pollingConstituentAccountSubscriber.d.ts +3 -3
  62. package/lib/browser/constituentMap/webSocketConstituentAccountSubscriber.d.ts +3 -3
  63. package/lib/browser/constituentMap/webSocketConstituentAccountSubscriber.js +1 -1
  64. package/lib/browser/decode/customCoder.d.ts +7 -9
  65. package/lib/browser/decode/customCoder.js +17 -28
  66. package/lib/browser/decode/user.js +11 -25
  67. package/lib/browser/dlob/DLOB.d.ts +12 -0
  68. package/lib/browser/dlob/DLOB.js +12 -0
  69. package/lib/browser/dlob/orderBookLevels.js +1 -1
  70. package/lib/browser/driftClient.d.ts +34 -59
  71. package/lib/browser/driftClient.js +105 -562
  72. package/lib/browser/driftClientConfig.d.ts +7 -0
  73. package/lib/browser/events/eventSubscriber.d.ts +8 -0
  74. package/lib/browser/events/eventSubscriber.js +5 -2
  75. package/lib/browser/events/parse.d.ts +1 -1
  76. package/lib/browser/factory/oracleClient.d.ts +2 -2
  77. package/lib/browser/factory/oracleClient.js +9 -21
  78. package/lib/browser/idl/drift.d.ts +21463 -0
  79. package/lib/browser/idl/drift.js +2 -0
  80. package/lib/browser/idl/drift.json +20973 -15333
  81. package/lib/browser/idl/pyth.d.ts +97 -0
  82. package/lib/browser/idl/pyth.js +2 -0
  83. package/lib/browser/idl/token_faucet.d.ts +197 -0
  84. package/lib/browser/idl/token_faucet.js +2 -0
  85. package/lib/browser/idl/token_faucet.json +148 -61
  86. package/lib/browser/index.d.ts +13 -6
  87. package/lib/browser/index.js +12 -5
  88. package/lib/browser/marinade/index.d.ts +1 -1
  89. package/lib/browser/marinade/index.js +2 -2
  90. package/lib/browser/math/amm.d.ts +4 -5
  91. package/lib/browser/math/amm.js +8 -35
  92. package/lib/browser/math/funding.js +6 -1
  93. package/lib/browser/math/margin.d.ts +3 -4
  94. package/lib/browser/math/margin.js +16 -47
  95. package/lib/browser/math/market.d.ts +2 -2
  96. package/lib/browser/math/market.js +10 -42
  97. package/lib/browser/math/oracles.js +14 -19
  98. package/lib/browser/math/position.js +1 -1
  99. package/lib/browser/math/trade.js +4 -4
  100. package/lib/browser/memcmp.js +8 -8
  101. package/lib/browser/openbook/openbookV2Subscriber.d.ts +1 -1
  102. package/lib/browser/openbook/openbookV2Subscriber.js +3 -3
  103. package/lib/browser/oracles/oracleClientCache.d.ts +2 -2
  104. package/lib/browser/oracles/prelaunchOracleClient.d.ts +2 -2
  105. package/lib/browser/oracles/prelaunchOracleClient.js +1 -1
  106. package/lib/browser/oracles/pythLazerClient.js +3 -5
  107. package/lib/browser/oracles/types.d.ts +6 -0
  108. package/lib/browser/orderParams.d.ts +0 -1
  109. package/lib/browser/orderParams.js +1 -5
  110. package/lib/browser/orderSubscriber/OrderSubscriber.js +3 -4
  111. package/lib/browser/orderSubscriber/WebsocketSubscription.js +1 -1
  112. package/lib/browser/orderSubscriber/grpcSubscription.js +2 -2
  113. package/lib/browser/orderSubscriber/index.d.ts +5 -0
  114. package/lib/browser/orderSubscriber/index.js +5 -0
  115. package/lib/browser/priorityFee/index.d.ts +5 -0
  116. package/lib/browser/priorityFee/index.js +5 -0
  117. package/lib/browser/pyth/index.d.ts +2 -2
  118. package/lib/browser/pyth/types.d.ts +1 -1
  119. package/lib/browser/swift/grpcSignedMsgUserAccountSubscriber.js +1 -1
  120. package/lib/browser/swift/index.d.ts +7 -0
  121. package/lib/browser/swift/index.js +7 -0
  122. package/lib/browser/swift/signedMsgUserAccountSubscriber.js +4 -3
  123. package/lib/browser/tokenFaucet.d.ts +2 -2
  124. package/lib/browser/tokenFaucet.js +4 -4
  125. package/lib/browser/tx/txHandler.d.ts +12 -0
  126. package/lib/browser/tx/txHandler.js +12 -0
  127. package/lib/browser/types.d.ts +23 -31
  128. package/lib/browser/types.js +11 -12
  129. package/lib/browser/user.d.ts +27 -18
  130. package/lib/browser/user.js +64 -100
  131. package/lib/browser/userMap/WebsocketSubscription.js +1 -1
  132. package/lib/browser/userMap/grpcSubscription.js +1 -1
  133. package/lib/browser/userMap/revenueShareEscrowMap.js +4 -4
  134. package/lib/browser/userMap/userMap.js +4 -5
  135. package/lib/browser/userMap/userStatsMap.js +2 -3
  136. package/lib/browser/userStats.d.ts +5 -0
  137. package/lib/node/accounts/fetch.d.ts +6 -6
  138. package/lib/node/accounts/fetch.d.ts.map +1 -1
  139. package/lib/node/accounts/fetch.js +4 -4
  140. package/lib/node/accounts/grpcAccountSubscriber.d.ts +2 -2
  141. package/lib/node/accounts/grpcAccountSubscriber.d.ts.map +1 -1
  142. package/lib/node/accounts/grpcDriftClientAccountSubscriber.d.ts +2 -2
  143. package/lib/node/accounts/grpcDriftClientAccountSubscriber.d.ts.map +1 -1
  144. package/lib/node/accounts/grpcDriftClientAccountSubscriberV2.d.ts +3 -3
  145. package/lib/node/accounts/grpcDriftClientAccountSubscriberV2.d.ts.map +1 -1
  146. package/lib/node/accounts/grpcDriftClientAccountSubscriberV2.js +2 -2
  147. package/lib/node/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts +2 -2
  148. package/lib/node/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
  149. package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts +2 -2
  150. package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts.map +1 -1
  151. package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts +2 -2
  152. package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts.map +1 -1
  153. package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts +2 -2
  154. package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts.map +1 -1
  155. package/lib/node/accounts/grpcUserAccountSubscriber.d.ts +2 -2
  156. package/lib/node/accounts/grpcUserAccountSubscriber.d.ts.map +1 -1
  157. package/lib/node/accounts/grpcUserStatsAccountSubscriber.d.ts +2 -2
  158. package/lib/node/accounts/grpcUserStatsAccountSubscriber.d.ts.map +1 -1
  159. package/lib/node/accounts/laserProgramAccountSubscriber.d.ts +2 -2
  160. package/lib/node/accounts/laserProgramAccountSubscriber.d.ts.map +1 -1
  161. package/lib/node/accounts/oneShotUserAccountSubscriber.d.ts +3 -3
  162. package/lib/node/accounts/oneShotUserAccountSubscriber.d.ts.map +1 -1
  163. package/lib/node/accounts/oneShotUserStatsAccountSubscriber.d.ts +3 -3
  164. package/lib/node/accounts/oneShotUserStatsAccountSubscriber.d.ts.map +1 -1
  165. package/lib/node/accounts/pollingDriftClientAccountSubscriber.d.ts +3 -3
  166. package/lib/node/accounts/pollingDriftClientAccountSubscriber.d.ts.map +1 -1
  167. package/lib/node/accounts/pollingDriftClientAccountSubscriber.js +2 -2
  168. package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +3 -3
  169. package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
  170. package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.js +1 -1
  171. package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts +2 -2
  172. package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts.map +1 -1
  173. package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts +2 -2
  174. package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts.map +1 -1
  175. package/lib/node/accounts/pollingUserAccountSubscriber.js +2 -2
  176. package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts +3 -3
  177. package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts.map +1 -1
  178. package/lib/node/accounts/pollingUserStatsAccountSubscriber.js +1 -1
  179. package/lib/node/accounts/testBulkAccountLoader.d.ts.map +1 -1
  180. package/lib/node/accounts/testBulkAccountLoader.js +3 -5
  181. package/lib/node/accounts/types.d.ts +11 -14
  182. package/lib/node/accounts/types.d.ts.map +1 -1
  183. package/lib/node/accounts/webSocketAccountSubscriber.d.ts +3 -3
  184. package/lib/node/accounts/webSocketAccountSubscriber.d.ts.map +1 -1
  185. package/lib/node/accounts/webSocketAccountSubscriber.js +1 -2
  186. package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts +3 -3
  187. package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts.map +1 -1
  188. package/lib/node/accounts/webSocketDriftClientAccountSubscriber.d.ts +5 -5
  189. package/lib/node/accounts/webSocketDriftClientAccountSubscriber.d.ts.map +1 -1
  190. package/lib/node/accounts/webSocketDriftClientAccountSubscriber.js +2 -2
  191. package/lib/node/accounts/webSocketDriftClientAccountSubscriberV2.d.ts +3 -3
  192. package/lib/node/accounts/webSocketDriftClientAccountSubscriberV2.d.ts.map +1 -1
  193. package/lib/node/accounts/webSocketDriftClientAccountSubscriberV2.js +2 -2
  194. package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +3 -3
  195. package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
  196. package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts +3 -3
  197. package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts.map +1 -1
  198. package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts +3 -3
  199. package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts.map +1 -1
  200. package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts +3 -3
  201. package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts.map +1 -1
  202. package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts +3 -3
  203. package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts.map +1 -1
  204. package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts +3 -3
  205. package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts.map +1 -1
  206. package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts +2 -2
  207. package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts.map +1 -1
  208. package/lib/node/addresses/pda.d.ts +6 -2
  209. package/lib/node/addresses/pda.d.ts.map +1 -1
  210. package/lib/node/addresses/pda.js +7 -12
  211. package/lib/node/adminClient.d.ts +13 -9
  212. package/lib/node/adminClient.d.ts.map +1 -1
  213. package/lib/node/adminClient.js +47 -72
  214. package/lib/node/auctionSubscriber/auctionSubscriber.d.ts.map +1 -1
  215. package/lib/node/auctionSubscriber/auctionSubscriber.js +1 -1
  216. package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts.map +1 -1
  217. package/lib/node/auctionSubscriber/auctionSubscriberGrpc.js +1 -1
  218. package/lib/node/config.d.ts +7 -3
  219. package/lib/node/config.d.ts.map +1 -1
  220. package/lib/node/config.js +9 -7
  221. package/lib/node/constants/index.d.ts +5 -0
  222. package/lib/node/constants/index.d.ts.map +1 -1
  223. package/lib/node/constants/index.js +5 -0
  224. package/lib/node/constants/numericConstants.d.ts +1 -1
  225. package/lib/node/constants/numericConstants.d.ts.map +1 -1
  226. package/lib/node/constants/numericConstants.js +3 -3
  227. package/lib/node/constants/perpMarkets.d.ts.map +1 -1
  228. package/lib/node/constants/perpMarkets.js +3 -412
  229. package/lib/node/constants/spotMarkets.d.ts.map +1 -1
  230. package/lib/node/constants/spotMarkets.js +7 -91
  231. package/lib/node/constituentMap/constituentMap.d.ts.map +1 -1
  232. package/lib/node/constituentMap/constituentMap.js +2 -2
  233. package/lib/node/constituentMap/pollingConstituentAccountSubscriber.d.ts +3 -3
  234. package/lib/node/constituentMap/pollingConstituentAccountSubscriber.d.ts.map +1 -1
  235. package/lib/node/constituentMap/webSocketConstituentAccountSubscriber.d.ts +3 -3
  236. package/lib/node/constituentMap/webSocketConstituentAccountSubscriber.d.ts.map +1 -1
  237. package/lib/node/constituentMap/webSocketConstituentAccountSubscriber.js +1 -1
  238. package/lib/node/decode/customCoder.d.ts +7 -9
  239. package/lib/node/decode/customCoder.d.ts.map +1 -1
  240. package/lib/node/decode/customCoder.js +17 -28
  241. package/lib/node/decode/user.d.ts.map +1 -1
  242. package/lib/node/decode/user.js +11 -25
  243. package/lib/node/dlob/DLOB.d.ts +12 -0
  244. package/lib/node/dlob/DLOB.d.ts.map +1 -1
  245. package/lib/node/dlob/DLOB.js +12 -0
  246. package/lib/node/dlob/orderBookLevels.d.ts.map +1 -1
  247. package/lib/node/dlob/orderBookLevels.js +1 -1
  248. package/lib/node/driftClient.d.ts +34 -59
  249. package/lib/node/driftClient.d.ts.map +1 -1
  250. package/lib/node/driftClient.js +105 -562
  251. package/lib/node/driftClientConfig.d.ts +7 -0
  252. package/lib/node/driftClientConfig.d.ts.map +1 -1
  253. package/lib/node/events/eventSubscriber.d.ts +8 -0
  254. package/lib/node/events/eventSubscriber.d.ts.map +1 -1
  255. package/lib/node/events/eventSubscriber.js +5 -2
  256. package/lib/node/events/parse.d.ts +1 -1
  257. package/lib/node/events/parse.d.ts.map +1 -1
  258. package/lib/node/factory/oracleClient.d.ts +2 -2
  259. package/lib/node/factory/oracleClient.d.ts.map +1 -1
  260. package/lib/node/factory/oracleClient.js +9 -21
  261. package/lib/node/idl/drift.d.ts +21464 -0
  262. package/lib/node/idl/drift.d.ts.map +1 -0
  263. package/lib/node/idl/drift.js +2 -0
  264. package/lib/node/idl/drift.json +20973 -15333
  265. package/lib/node/idl/pyth.d.ts +98 -0
  266. package/lib/node/idl/pyth.d.ts.map +1 -0
  267. package/lib/node/idl/pyth.js +2 -0
  268. package/lib/node/idl/token_faucet.d.ts +198 -0
  269. package/lib/node/idl/token_faucet.d.ts.map +1 -0
  270. package/lib/node/idl/token_faucet.js +2 -0
  271. package/lib/node/idl/token_faucet.json +148 -61
  272. package/lib/node/index.d.ts +13 -6
  273. package/lib/node/index.d.ts.map +1 -1
  274. package/lib/node/index.js +12 -5
  275. package/lib/node/marinade/index.d.ts +1 -1
  276. package/lib/node/marinade/index.d.ts.map +1 -1
  277. package/lib/node/marinade/index.js +2 -2
  278. package/lib/node/math/amm.d.ts +4 -5
  279. package/lib/node/math/amm.d.ts.map +1 -1
  280. package/lib/node/math/amm.js +8 -35
  281. package/lib/node/math/funding.d.ts.map +1 -1
  282. package/lib/node/math/funding.js +6 -1
  283. package/lib/node/math/margin.d.ts +3 -4
  284. package/lib/node/math/margin.d.ts.map +1 -1
  285. package/lib/node/math/margin.js +16 -47
  286. package/lib/node/math/market.d.ts +2 -2
  287. package/lib/node/math/market.d.ts.map +1 -1
  288. package/lib/node/math/market.js +10 -42
  289. package/lib/node/math/oracles.d.ts.map +1 -1
  290. package/lib/node/math/oracles.js +14 -19
  291. package/lib/node/math/position.d.ts.map +1 -1
  292. package/lib/node/math/position.js +1 -1
  293. package/lib/node/math/trade.d.ts.map +1 -1
  294. package/lib/node/math/trade.js +4 -4
  295. package/lib/node/memcmp.js +8 -8
  296. package/lib/node/openbook/openbookV2Subscriber.d.ts +1 -1
  297. package/lib/node/openbook/openbookV2Subscriber.d.ts.map +1 -1
  298. package/lib/node/openbook/openbookV2Subscriber.js +3 -3
  299. package/lib/node/oracles/oracleClientCache.d.ts +2 -2
  300. package/lib/node/oracles/oracleClientCache.d.ts.map +1 -1
  301. package/lib/node/oracles/prelaunchOracleClient.d.ts +2 -2
  302. package/lib/node/oracles/prelaunchOracleClient.d.ts.map +1 -1
  303. package/lib/node/oracles/prelaunchOracleClient.js +1 -1
  304. package/lib/node/oracles/pythLazerClient.d.ts.map +1 -1
  305. package/lib/node/oracles/pythLazerClient.js +3 -5
  306. package/lib/node/oracles/types.d.ts +6 -0
  307. package/lib/node/oracles/types.d.ts.map +1 -1
  308. package/lib/node/orderParams.d.ts +0 -1
  309. package/lib/node/orderParams.d.ts.map +1 -1
  310. package/lib/node/orderParams.js +1 -5
  311. package/lib/node/orderSubscriber/OrderSubscriber.d.ts.map +1 -1
  312. package/lib/node/orderSubscriber/OrderSubscriber.js +3 -4
  313. package/lib/node/orderSubscriber/WebsocketSubscription.js +1 -1
  314. package/lib/node/orderSubscriber/grpcSubscription.js +2 -2
  315. package/lib/node/orderSubscriber/index.d.ts +5 -0
  316. package/lib/node/orderSubscriber/index.d.ts.map +1 -1
  317. package/lib/node/orderSubscriber/index.js +5 -0
  318. package/lib/node/priorityFee/index.d.ts +5 -0
  319. package/lib/node/priorityFee/index.d.ts.map +1 -1
  320. package/lib/node/priorityFee/index.js +5 -0
  321. package/lib/node/pyth/index.d.ts +2 -2
  322. package/lib/node/pyth/index.d.ts.map +1 -1
  323. package/lib/node/pyth/types.d.ts +1 -1
  324. package/lib/node/pyth/types.d.ts.map +1 -1
  325. package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.js +1 -1
  326. package/lib/node/swift/index.d.ts +7 -0
  327. package/lib/node/swift/index.d.ts.map +1 -1
  328. package/lib/node/swift/index.js +7 -0
  329. package/lib/node/swift/signedMsgUserAccountSubscriber.d.ts.map +1 -1
  330. package/lib/node/swift/signedMsgUserAccountSubscriber.js +4 -3
  331. package/lib/node/tokenFaucet.d.ts +2 -2
  332. package/lib/node/tokenFaucet.d.ts.map +1 -1
  333. package/lib/node/tokenFaucet.js +4 -4
  334. package/lib/node/tx/txHandler.d.ts +12 -0
  335. package/lib/node/tx/txHandler.d.ts.map +1 -1
  336. package/lib/node/tx/txHandler.js +12 -0
  337. package/lib/node/types.d.ts +23 -31
  338. package/lib/node/types.d.ts.map +1 -1
  339. package/lib/node/types.js +11 -12
  340. package/lib/node/user.d.ts +27 -18
  341. package/lib/node/user.d.ts.map +1 -1
  342. package/lib/node/user.js +64 -100
  343. package/lib/node/userMap/WebsocketSubscription.js +1 -1
  344. package/lib/node/userMap/grpcSubscription.js +1 -1
  345. package/lib/node/userMap/revenueShareEscrowMap.d.ts.map +1 -1
  346. package/lib/node/userMap/revenueShareEscrowMap.js +4 -4
  347. package/lib/node/userMap/userMap.d.ts.map +1 -1
  348. package/lib/node/userMap/userMap.js +4 -5
  349. package/lib/node/userMap/userStatsMap.d.ts.map +1 -1
  350. package/lib/node/userMap/userStatsMap.js +2 -3
  351. package/lib/node/userStats.d.ts +5 -0
  352. package/lib/node/userStats.d.ts.map +1 -1
  353. package/package.json +5 -7
  354. package/src/accounts/fetch.ts +18 -17
  355. package/src/accounts/grpcAccountSubscriber.ts +3 -3
  356. package/src/accounts/grpcDriftClientAccountSubscriber.ts +2 -3
  357. package/src/accounts/grpcDriftClientAccountSubscriberV2.ts +5 -6
  358. package/src/accounts/grpcInsuranceFundStakeAccountSubscriber.ts +2 -2
  359. package/src/accounts/grpcMultiAccountSubscriber.ts +4 -4
  360. package/src/accounts/grpcMultiUserAccountSubscriber.ts +4 -4
  361. package/src/accounts/grpcProgramAccountSubscriber.ts +3 -3
  362. package/src/accounts/grpcUserAccountSubscriber.ts +2 -2
  363. package/src/accounts/grpcUserStatsAccountSubscriber.ts +2 -2
  364. package/src/accounts/laserProgramAccountSubscriber.ts +3 -3
  365. package/src/accounts/oneShotUserAccountSubscriber.ts +6 -7
  366. package/src/accounts/oneShotUserStatsAccountSubscriber.ts +10 -9
  367. package/src/accounts/pollingDriftClientAccountSubscriber.ts +12 -11
  368. package/src/accounts/pollingInsuranceFundStakeAccountSubscriber.ts +11 -10
  369. package/src/accounts/pollingOracleAccountSubscriber.ts +2 -2
  370. package/src/accounts/pollingTokenAccountSubscriber.ts +2 -2
  371. package/src/accounts/pollingUserAccountSubscriber.ts +2 -2
  372. package/src/accounts/pollingUserStatsAccountSubscriber.ts +14 -14
  373. package/src/accounts/testBulkAccountLoader.ts +3 -5
  374. package/src/accounts/types.ts +10 -25
  375. package/src/accounts/webSocketAccountSubscriber.ts +5 -5
  376. package/src/accounts/webSocketAccountSubscriberV2.ts +4 -3
  377. package/src/accounts/webSocketDriftClientAccountSubscriber.ts +9 -10
  378. package/src/accounts/webSocketDriftClientAccountSubscriberV2.ts +13 -10
  379. package/src/accounts/webSocketInsuranceFundStakeAccountSubscriber.ts +3 -3
  380. package/src/accounts/webSocketProgramAccountSubscriber.ts +4 -3
  381. package/src/accounts/webSocketProgramAccountSubscriberV2.ts +4 -3
  382. package/src/accounts/webSocketProgramAccountsSubscriberV2.ts +4 -3
  383. package/src/accounts/webSocketUserAccountSubscriber.ts +3 -3
  384. package/src/accounts/webSocketUserStatsAccountSubsriber.ts +3 -3
  385. package/src/accounts/websocketProgramUserAccountSubscriber.ts +4 -4
  386. package/src/addresses/pda.ts +6 -22
  387. package/src/adminClient.ts +183 -239
  388. package/src/auctionSubscriber/auctionSubscriber.ts +5 -3
  389. package/src/auctionSubscriber/auctionSubscriberGrpc.ts +5 -3
  390. package/src/config.ts +24 -16
  391. package/src/constants/index.ts +5 -0
  392. package/src/constants/numericConstants.ts +2 -3
  393. package/src/constants/perpMarkets.ts +3 -445
  394. package/src/constants/spotMarkets.ts +7 -102
  395. package/src/constituentMap/constituentMap.ts +5 -6
  396. package/src/constituentMap/pollingConstituentAccountSubscriber.ts +3 -3
  397. package/src/constituentMap/webSocketConstituentAccountSubscriber.ts +6 -6
  398. package/src/decode/customCoder.ts +26 -35
  399. package/src/decode/user.ts +11 -25
  400. package/src/dlob/DLOB.ts +12 -0
  401. package/src/dlob/orderBookLevels.ts +0 -1
  402. package/src/driftClient.ts +286 -1092
  403. package/src/driftClientConfig.ts +7 -0
  404. package/src/events/eventSubscriber.ts +14 -2
  405. package/src/events/parse.ts +2 -2
  406. package/src/factory/oracleClient.ts +17 -28
  407. package/src/idl/drift.json +20973 -15333
  408. package/src/idl/drift.ts +21463 -0
  409. package/src/idl/pyth.ts +97 -0
  410. package/src/idl/token_faucet.json +148 -61
  411. package/src/idl/token_faucet.ts +197 -0
  412. package/src/index.ts +13 -12
  413. package/src/margin/README.md +0 -1
  414. package/src/marinade/index.ts +2 -2
  415. package/src/math/amm.ts +2 -48
  416. package/src/math/funding.ts +8 -3
  417. package/src/math/margin.ts +12 -67
  418. package/src/math/market.ts +15 -69
  419. package/src/math/oracles.ts +14 -30
  420. package/src/math/position.ts +0 -1
  421. package/src/math/trade.ts +0 -4
  422. package/src/memcmp.ts +1 -1
  423. package/src/openbook/openbookV2Subscriber.ts +1 -1
  424. package/src/oracles/oracleClientCache.ts +2 -2
  425. package/src/oracles/prelaunchOracleClient.ts +9 -8
  426. package/src/oracles/pythLazerClient.ts +10 -12
  427. package/src/oracles/types.ts +6 -0
  428. package/src/orderParams.ts +0 -5
  429. package/src/orderSubscriber/OrderSubscriber.ts +7 -6
  430. package/src/orderSubscriber/WebsocketSubscription.ts +1 -1
  431. package/src/orderSubscriber/grpcSubscription.ts +2 -2
  432. package/src/orderSubscriber/index.ts +5 -0
  433. package/src/priorityFee/index.ts +5 -0
  434. package/src/pyth/index.ts +4 -4
  435. package/src/pyth/types.ts +1 -1
  436. package/src/swift/grpcSignedMsgUserAccountSubscriber.ts +1 -1
  437. package/src/swift/index.ts +7 -0
  438. package/src/swift/signedMsgUserAccountSubscriber.ts +7 -4
  439. package/src/tokenFaucet.ts +8 -4
  440. package/src/tx/txHandler.ts +12 -0
  441. package/src/types.ts +21 -20
  442. package/src/user.ts +66 -144
  443. package/src/userMap/WebsocketSubscription.ts +1 -1
  444. package/src/userMap/grpcSubscription.ts +1 -1
  445. package/src/userMap/revenueShareEscrowMap.ts +24 -20
  446. package/src/userMap/userMap.ts +8 -7
  447. package/src/userMap/userStatsMap.ts +6 -5
  448. package/src/userStats.ts +5 -0
  449. package/tests/accounts/customizedCadenceBulkAccountLoader.test.ts +5 -4
  450. package/tests/amm/test.ts +45 -64
  451. package/tests/ci/verifyConstants.ts +23 -26
  452. package/tests/decode/test.ts +2 -4
  453. package/tests/dlob/helpers.ts +8 -15
  454. package/tests/user/helpers.ts +1 -2
  455. package/tests/user/marginCalculations.test.ts +2 -3
  456. package/tests/user/test.ts +18 -15
  457. package/lib/browser/accounts/pollingHighLeverageModeConfigAccountSubscriber.d.ts +0 -29
  458. package/lib/browser/accounts/pollingHighLeverageModeConfigAccountSubscriber.js +0 -111
  459. package/lib/browser/accounts/webSocketHighLeverageModeConfigAccountSubscriber.d.ts +0 -23
  460. package/lib/browser/accounts/webSocketHighLeverageModeConfigAccountSubscriber.js +0 -69
  461. package/lib/browser/idl/pyth_solana_receiver.json +0 -628
  462. package/lib/browser/idl/switchboard.json +0 -8354
  463. package/lib/browser/idl/switchboard_on_demand_30.json +0 -5849
  464. package/lib/browser/oracles/pythPullClient.d.ts +0 -19
  465. package/lib/browser/oracles/pythPullClient.js +0 -65
  466. package/lib/browser/oracles/switchboardClient.d.ts +0 -12
  467. package/lib/browser/oracles/switchboardClient.js +0 -40
  468. package/lib/browser/oracles/switchboardOnDemandClient.d.ts +0 -12
  469. package/lib/browser/oracles/switchboardOnDemandClient.js +0 -33
  470. package/lib/browser/util/pythOracleUtils.d.ts +0 -2
  471. package/lib/browser/util/pythOracleUtils.js +0 -15
  472. package/lib/node/accounts/pollingHighLeverageModeConfigAccountSubscriber.d.ts +0 -30
  473. package/lib/node/accounts/pollingHighLeverageModeConfigAccountSubscriber.d.ts.map +0 -1
  474. package/lib/node/accounts/pollingHighLeverageModeConfigAccountSubscriber.js +0 -111
  475. package/lib/node/accounts/webSocketHighLeverageModeConfigAccountSubscriber.d.ts +0 -24
  476. package/lib/node/accounts/webSocketHighLeverageModeConfigAccountSubscriber.d.ts.map +0 -1
  477. package/lib/node/accounts/webSocketHighLeverageModeConfigAccountSubscriber.js +0 -69
  478. package/lib/node/idl/pyth_solana_receiver.json +0 -628
  479. package/lib/node/idl/switchboard.json +0 -8354
  480. package/lib/node/idl/switchboard_on_demand_30.json +0 -5849
  481. package/lib/node/oracles/pythPullClient.d.ts +0 -20
  482. package/lib/node/oracles/pythPullClient.d.ts.map +0 -1
  483. package/lib/node/oracles/pythPullClient.js +0 -65
  484. package/lib/node/oracles/switchboardClient.d.ts +0 -13
  485. package/lib/node/oracles/switchboardClient.d.ts.map +0 -1
  486. package/lib/node/oracles/switchboardClient.js +0 -40
  487. package/lib/node/oracles/switchboardOnDemandClient.d.ts +0 -13
  488. package/lib/node/oracles/switchboardOnDemandClient.d.ts.map +0 -1
  489. package/lib/node/oracles/switchboardOnDemandClient.js +0 -33
  490. package/lib/node/util/pythOracleUtils.d.ts +0 -3
  491. package/lib/node/util/pythOracleUtils.d.ts.map +0 -1
  492. package/lib/node/util/pythOracleUtils.js +0 -15
  493. package/src/accounts/pollingHighLeverageModeConfigAccountSubscriber.ts +0 -189
  494. package/src/accounts/webSocketHighLeverageModeConfigAccountSubscriber.ts +0 -131
  495. package/src/idl/switchboard.json +0 -8354
  496. package/src/idl/switchboard_on_demand_30.json +0 -5849
  497. package/src/oracles/pythPullClient.ts +0 -112
  498. package/src/oracles/switchboardClient.ts +0 -77
  499. package/src/oracles/switchboardOnDemandClient.ts +0 -64
  500. package/src/util/pythOracleUtils.ts +0 -11
@@ -27,12 +27,28 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.DriftClient = void 0;
30
+ /**
31
+ * DriftClient — main SDK entry point for all trading and keeper operations.
32
+ *
33
+ * Responsibilities:
34
+ * - Builds and sends all on-chain instructions (place/cancel/fill orders, deposits, withdrawals,
35
+ * settle PnL, update funding rate, liquidations).
36
+ * - Manages the program account subscription lifecycle (markets, oracles, user accounts).
37
+ * - Provides oracle price reads, market config lookups, and PDA derivation helpers.
38
+ *
39
+ * Admin operations (market init, fee updates, oracle config) live in {@link AdminClient} (adminClient.ts).
40
+ * Read-only user account queries (margin, positions, PnL) live in {@link User} (user.ts).
41
+ *
42
+ * Instruction → on-chain handler mapping: see ARCHITECTURE.md § SDK↔Instruction Mapping.
43
+ */
30
44
  const anchor = __importStar(require("@coral-xyz/anchor"));
31
45
  const anchor_1 = require("@coral-xyz/anchor");
32
46
  const bs58_1 = __importDefault(require("bs58"));
33
47
  const spl_token_1 = require("@solana/spl-token");
34
48
  const types_1 = require("./types");
35
49
  const drift_json_1 = __importDefault(require("./idl/drift.json"));
50
+ /** Client-side guardrail; mirrors on-chain `ErrorCode::SpotDlobTradingDisabled`. */
51
+ const SPOT_DLOB_TRADING_DISABLED_MSG = 'Spot DLOB trading is disabled; spot balances, deposits, and swaps remain available.';
36
52
  const web3_js_1 = require("@solana/web3.js");
37
53
  const events_1 = require("events");
38
54
  const pda_1 = require("./addresses/pda");
@@ -60,12 +76,8 @@ const utils_1 = require("./math/utils");
60
76
  const txParamProcessor_1 = require("./tx/txParamProcessor");
61
77
  const oracles_1 = require("./math/oracles");
62
78
  const txHandler_1 = require("./tx/txHandler");
63
- const price_service_sdk_1 = require("@pythnetwork/price-service-sdk");
64
- const pythOracleUtils_1 = require("./util/pythOracleUtils");
65
79
  const ed25519Utils_1 = require("./util/ed25519Utils");
66
80
  const utils_2 = require("./tx/utils");
67
- const pyth_solana_receiver_json_1 = __importDefault(require("./idl/pyth_solana_receiver.json"));
68
- const on_demand_1 = require("@switchboard-xyz/on-demand");
69
81
  const grpcDriftClientAccountSubscriber_1 = require("./accounts/grpcDriftClientAccountSubscriber");
70
82
  const tweetnacl_1 = __importDefault(require("tweetnacl"));
71
83
  const oracleId_1 = require("./oracles/oracleId");
@@ -76,7 +88,6 @@ const orders_1 = require("./math/orders");
76
88
  const builder_1 = require("./math/builder");
77
89
  const titanClient_1 = require("./titan/titanClient");
78
90
  const UnifiedSwapClient_1 = require("./swap/UnifiedSwapClient");
79
- const pyth_1 = require("./pyth");
80
91
  /**
81
92
  * # DriftClient
82
93
  * This class is the main way to interact with Drift Protocol. It allows you to subscribe to the various accounts where the Market's state is stored, as well as: opening positions, liquidating, settling funding, depositing & withdrawing, and more.
@@ -105,7 +116,7 @@ class DriftClient {
105
116
  this._isSubscribed = val;
106
117
  }
107
118
  constructor(config) {
108
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26;
119
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25;
109
120
  this.users = new Map();
110
121
  this._isSubscribed = false;
111
122
  this.perpMarketLastSlotCache = new Map();
@@ -127,18 +138,18 @@ class DriftClient {
127
138
  this.provider = new anchor_1.AnchorProvider(config.connection,
128
139
  // @ts-ignore
129
140
  config.wallet, this.opts);
130
- this.program = new anchor_1.Program(drift_json_1.default, (_d = config.programID) !== null && _d !== void 0 ? _d : new web3_js_1.PublicKey(config_1.DRIFT_PROGRAM_ID), this.provider, config.coder);
131
- this.authority = (_e = config.authority) !== null && _e !== void 0 ? _e : this.wallet.publicKey;
132
- this.activeSubAccountId = (_f = config.activeSubAccountId) !== null && _f !== void 0 ? _f : 0;
133
- this.skipLoadUsers = (_g = config.skipLoadUsers) !== null && _g !== void 0 ? _g : false;
141
+ this.program = new anchor_1.Program(drift_json_1.default, this.provider, config.coder);
142
+ this.authority = (_d = config.authority) !== null && _d !== void 0 ? _d : this.wallet.publicKey;
143
+ this.activeSubAccountId = (_e = config.activeSubAccountId) !== null && _e !== void 0 ? _e : 0;
144
+ this.skipLoadUsers = (_f = config.skipLoadUsers) !== null && _f !== void 0 ? _f : false;
134
145
  this.txVersion =
135
- (_h = config.txVersion) !== null && _h !== void 0 ? _h : this.getTxVersionForNewWallet(config.wallet);
146
+ (_g = config.txVersion) !== null && _g !== void 0 ? _g : this.getTxVersionForNewWallet(config.wallet);
136
147
  this.txParams = {
137
- computeUnits: (_k = (_j = config.txParams) === null || _j === void 0 ? void 0 : _j.computeUnits) !== null && _k !== void 0 ? _k : 600000,
138
- computeUnitsPrice: (_m = (_l = config.txParams) === null || _l === void 0 ? void 0 : _l.computeUnitsPrice) !== null && _m !== void 0 ? _m : 0,
148
+ computeUnits: (_j = (_h = config.txParams) === null || _h === void 0 ? void 0 : _h.computeUnits) !== null && _j !== void 0 ? _j : 600000,
149
+ computeUnitsPrice: (_l = (_k = config.txParams) === null || _k === void 0 ? void 0 : _k.computeUnitsPrice) !== null && _l !== void 0 ? _l : 0,
139
150
  };
140
151
  this.txHandler =
141
- (_o = config === null || config === void 0 ? void 0 : config.txHandler) !== null && _o !== void 0 ? _o : new txHandler_1.TxHandler({
152
+ (_m = config === null || config === void 0 ? void 0 : config.txHandler) !== null && _m !== void 0 ? _m : new txHandler_1.TxHandler({
142
153
  connection: this.connection,
143
154
  // @ts-ignore
144
155
  wallet: this.provider.wallet,
@@ -164,8 +175,8 @@ class DriftClient {
164
175
  : config.subAccountIds
165
176
  ? new Map([[this.authority.toString(), config.subAccountIds]])
166
177
  : new Map();
167
- this.includeDelegates = (_p = config.includeDelegates) !== null && _p !== void 0 ? _p : false;
168
- if (((_q = config.accountSubscription) === null || _q === void 0 ? void 0 : _q.type) === 'polling') {
178
+ this.includeDelegates = (_o = config.includeDelegates) !== null && _o !== void 0 ? _o : false;
179
+ if (((_p = config.accountSubscription) === null || _p === void 0 ? void 0 : _p.type) === 'polling') {
169
180
  this.userAccountSubscriptionConfig = {
170
181
  type: 'polling',
171
182
  accountLoader: config.accountSubscription.accountLoader,
@@ -175,34 +186,34 @@ class DriftClient {
175
186
  accountLoader: config.accountSubscription.accountLoader,
176
187
  };
177
188
  }
178
- else if (((_r = config.accountSubscription) === null || _r === void 0 ? void 0 : _r.type) === 'grpc') {
189
+ else if (((_q = config.accountSubscription) === null || _q === void 0 ? void 0 : _q.type) === 'grpc') {
179
190
  this.userAccountSubscriptionConfig = {
180
191
  type: 'grpc',
181
- resubTimeoutMs: (_s = config.accountSubscription) === null || _s === void 0 ? void 0 : _s.resubTimeoutMs,
182
- logResubMessages: (_t = config.accountSubscription) === null || _t === void 0 ? void 0 : _t.logResubMessages,
183
- grpcConfigs: (_u = config.accountSubscription) === null || _u === void 0 ? void 0 : _u.grpcConfigs,
184
- grpcMultiUserAccountSubscriber: (_v = config.accountSubscription) === null || _v === void 0 ? void 0 : _v.grpcMultiUserAccountSubscriber,
192
+ resubTimeoutMs: (_r = config.accountSubscription) === null || _r === void 0 ? void 0 : _r.resubTimeoutMs,
193
+ logResubMessages: (_s = config.accountSubscription) === null || _s === void 0 ? void 0 : _s.logResubMessages,
194
+ grpcConfigs: (_t = config.accountSubscription) === null || _t === void 0 ? void 0 : _t.grpcConfigs,
195
+ grpcMultiUserAccountSubscriber: (_u = config.accountSubscription) === null || _u === void 0 ? void 0 : _u.grpcMultiUserAccountSubscriber,
185
196
  };
186
197
  this.userStatsAccountSubscriptionConfig = {
187
198
  type: 'grpc',
188
- grpcConfigs: (_w = config.accountSubscription) === null || _w === void 0 ? void 0 : _w.grpcConfigs,
189
- resubTimeoutMs: (_x = config.accountSubscription) === null || _x === void 0 ? void 0 : _x.resubTimeoutMs,
190
- logResubMessages: (_y = config.accountSubscription) === null || _y === void 0 ? void 0 : _y.logResubMessages,
199
+ grpcConfigs: (_v = config.accountSubscription) === null || _v === void 0 ? void 0 : _v.grpcConfigs,
200
+ resubTimeoutMs: (_w = config.accountSubscription) === null || _w === void 0 ? void 0 : _w.resubTimeoutMs,
201
+ logResubMessages: (_x = config.accountSubscription) === null || _x === void 0 ? void 0 : _x.logResubMessages,
191
202
  };
192
203
  }
193
204
  else {
194
205
  this.userAccountSubscriptionConfig = {
195
206
  type: 'websocket',
196
- resubTimeoutMs: (_z = config.accountSubscription) === null || _z === void 0 ? void 0 : _z.resubTimeoutMs,
197
- logResubMessages: (_0 = config.accountSubscription) === null || _0 === void 0 ? void 0 : _0.logResubMessages,
198
- commitment: (_1 = config.accountSubscription) === null || _1 === void 0 ? void 0 : _1.commitment,
199
- programUserAccountSubscriber: (_2 = config.accountSubscription) === null || _2 === void 0 ? void 0 : _2.programUserAccountSubscriber,
207
+ resubTimeoutMs: (_y = config.accountSubscription) === null || _y === void 0 ? void 0 : _y.resubTimeoutMs,
208
+ logResubMessages: (_z = config.accountSubscription) === null || _z === void 0 ? void 0 : _z.logResubMessages,
209
+ commitment: (_0 = config.accountSubscription) === null || _0 === void 0 ? void 0 : _0.commitment,
210
+ programUserAccountSubscriber: (_1 = config.accountSubscription) === null || _1 === void 0 ? void 0 : _1.programUserAccountSubscriber,
200
211
  };
201
212
  this.userStatsAccountSubscriptionConfig = {
202
213
  type: 'websocket',
203
- resubTimeoutMs: (_3 = config.accountSubscription) === null || _3 === void 0 ? void 0 : _3.resubTimeoutMs,
204
- logResubMessages: (_4 = config.accountSubscription) === null || _4 === void 0 ? void 0 : _4.logResubMessages,
205
- commitment: (_5 = config.accountSubscription) === null || _5 === void 0 ? void 0 : _5.commitment,
214
+ resubTimeoutMs: (_2 = config.accountSubscription) === null || _2 === void 0 ? void 0 : _2.resubTimeoutMs,
215
+ logResubMessages: (_3 = config.accountSubscription) === null || _3 === void 0 ? void 0 : _3.logResubMessages,
216
+ commitment: (_4 = config.accountSubscription) === null || _4 === void 0 ? void 0 : _4.commitment,
206
217
  };
207
218
  }
208
219
  if (config.userStats) {
@@ -224,22 +235,22 @@ class DriftClient {
224
235
  const noMarketsAndOraclesSpecified = config.perpMarketIndexes === undefined &&
225
236
  config.spotMarketIndexes === undefined &&
226
237
  config.oracleInfos === undefined;
227
- if (((_6 = config.accountSubscription) === null || _6 === void 0 ? void 0 : _6.type) === 'polling') {
228
- this.accountSubscriber = new pollingDriftClientAccountSubscriber_1.PollingDriftClientAccountSubscriber(this.program, config.accountSubscription.accountLoader, (_7 = config.perpMarketIndexes) !== null && _7 !== void 0 ? _7 : [], (_8 = config.spotMarketIndexes) !== null && _8 !== void 0 ? _8 : [], (_9 = config.oracleInfos) !== null && _9 !== void 0 ? _9 : [], noMarketsAndOraclesSpecified, delistedMarketSetting);
229
- }
230
- else if (((_10 = config.accountSubscription) === null || _10 === void 0 ? void 0 : _10.type) === 'grpc') {
231
- const accountSubscriberClass = (_12 = (_11 = config.accountSubscription) === null || _11 === void 0 ? void 0 : _11.driftClientAccountSubscriber) !== null && _12 !== void 0 ? _12 : grpcDriftClientAccountSubscriber_1.grpcDriftClientAccountSubscriber;
232
- this.accountSubscriber = new accountSubscriberClass(config.accountSubscription.grpcConfigs, this.program, (_13 = config.perpMarketIndexes) !== null && _13 !== void 0 ? _13 : [], (_14 = config.spotMarketIndexes) !== null && _14 !== void 0 ? _14 : [], (_15 = config.oracleInfos) !== null && _15 !== void 0 ? _15 : [], noMarketsAndOraclesSpecified, delistedMarketSetting, {
233
- resubTimeoutMs: (_16 = config.accountSubscription) === null || _16 === void 0 ? void 0 : _16.resubTimeoutMs,
234
- logResubMessages: (_17 = config.accountSubscription) === null || _17 === void 0 ? void 0 : _17.logResubMessages,
238
+ if (((_5 = config.accountSubscription) === null || _5 === void 0 ? void 0 : _5.type) === 'polling') {
239
+ this.accountSubscriber = new pollingDriftClientAccountSubscriber_1.PollingDriftClientAccountSubscriber(this.program, config.accountSubscription.accountLoader, (_6 = config.perpMarketIndexes) !== null && _6 !== void 0 ? _6 : [], (_7 = config.spotMarketIndexes) !== null && _7 !== void 0 ? _7 : [], (_8 = config.oracleInfos) !== null && _8 !== void 0 ? _8 : [], noMarketsAndOraclesSpecified, delistedMarketSetting);
240
+ }
241
+ else if (((_9 = config.accountSubscription) === null || _9 === void 0 ? void 0 : _9.type) === 'grpc') {
242
+ const accountSubscriberClass = (_11 = (_10 = config.accountSubscription) === null || _10 === void 0 ? void 0 : _10.driftClientAccountSubscriber) !== null && _11 !== void 0 ? _11 : grpcDriftClientAccountSubscriber_1.grpcDriftClientAccountSubscriber;
243
+ this.accountSubscriber = new accountSubscriberClass(config.accountSubscription.grpcConfigs, this.program, (_12 = config.perpMarketIndexes) !== null && _12 !== void 0 ? _12 : [], (_13 = config.spotMarketIndexes) !== null && _13 !== void 0 ? _13 : [], (_14 = config.oracleInfos) !== null && _14 !== void 0 ? _14 : [], noMarketsAndOraclesSpecified, delistedMarketSetting, {
244
+ resubTimeoutMs: (_15 = config.accountSubscription) === null || _15 === void 0 ? void 0 : _15.resubTimeoutMs,
245
+ logResubMessages: (_16 = config.accountSubscription) === null || _16 === void 0 ? void 0 : _16.logResubMessages,
235
246
  });
236
247
  }
237
248
  else {
238
- const accountSubscriberClass = (_19 = (_18 = config.accountSubscription) === null || _18 === void 0 ? void 0 : _18.driftClientAccountSubscriber) !== null && _19 !== void 0 ? _19 : webSocketDriftClientAccountSubscriber_1.WebSocketDriftClientAccountSubscriber;
239
- this.accountSubscriber = new accountSubscriberClass(this.program, (_20 = config.perpMarketIndexes) !== null && _20 !== void 0 ? _20 : [], (_21 = config.spotMarketIndexes) !== null && _21 !== void 0 ? _21 : [], (_22 = config.oracleInfos) !== null && _22 !== void 0 ? _22 : [], noMarketsAndOraclesSpecified, delistedMarketSetting, {
240
- resubTimeoutMs: (_23 = config.accountSubscription) === null || _23 === void 0 ? void 0 : _23.resubTimeoutMs,
241
- logResubMessages: (_24 = config.accountSubscription) === null || _24 === void 0 ? void 0 : _24.logResubMessages,
242
- }, (_25 = config.accountSubscription) === null || _25 === void 0 ? void 0 : _25.commitment);
249
+ const accountSubscriberClass = (_18 = (_17 = config.accountSubscription) === null || _17 === void 0 ? void 0 : _17.driftClientAccountSubscriber) !== null && _18 !== void 0 ? _18 : webSocketDriftClientAccountSubscriber_1.WebSocketDriftClientAccountSubscriber;
250
+ this.accountSubscriber = new accountSubscriberClass(this.program, (_19 = config.perpMarketIndexes) !== null && _19 !== void 0 ? _19 : [], (_20 = config.spotMarketIndexes) !== null && _20 !== void 0 ? _20 : [], (_21 = config.oracleInfos) !== null && _21 !== void 0 ? _21 : [], noMarketsAndOraclesSpecified, delistedMarketSetting, {
251
+ resubTimeoutMs: (_22 = config.accountSubscription) === null || _22 === void 0 ? void 0 : _22.resubTimeoutMs,
252
+ logResubMessages: (_23 = config.accountSubscription) === null || _23 === void 0 ? void 0 : _23.logResubMessages,
253
+ }, (_24 = config.accountSubscription) === null || _24 === void 0 ? void 0 : _24.commitment);
243
254
  }
244
255
  this.eventEmitter = this.accountSubscriber.eventEmitter;
245
256
  this.metricsEventEmitter = new events_1.EventEmitter();
@@ -247,13 +258,12 @@ class DriftClient {
247
258
  this.enableMetricsEvents = true;
248
259
  }
249
260
  this.txSender =
250
- (_26 = config.txSender) !== null && _26 !== void 0 ? _26 : new retryTxSender_1.RetryTxSender({
261
+ (_25 = config.txSender) !== null && _25 !== void 0 ? _25 : new retryTxSender_1.RetryTxSender({
251
262
  connection: this.connection,
252
263
  wallet: this.wallet,
253
264
  opts: this.opts,
254
265
  txHandler: this.txHandler,
255
266
  });
256
- this.sbOnDemandProgramdId = config_1.configs[this.env].SB_ON_DEMAND_PID;
257
267
  }
258
268
  getUserMapKey(subAccountId, authority) {
259
269
  return `${subAccountId}_${authority.toString()}`;
@@ -444,7 +454,7 @@ class DriftClient {
444
454
  const newProvider = new anchor_1.AnchorProvider(this.connection,
445
455
  // @ts-ignore
446
456
  newWallet, this.opts);
447
- const newProgram = new anchor_1.Program(drift_json_1.default, this.program.programId, newProvider);
457
+ const newProgram = new anchor_1.Program(drift_json_1.default, newProvider);
448
458
  this.skipLoadUsers = false;
449
459
  // Update provider for txSender with new wallet details
450
460
  this.txSender.wallet = newWallet;
@@ -1030,15 +1040,9 @@ class DriftClient {
1030
1040
  });
1031
1041
  return ix;
1032
1042
  }
1033
- async updateUserPerpPositionCustomMarginRatio(perpMarketIndex, marginRatio, subAccountId = 0, txParams, enterHighLeverageMode) {
1034
- const ixs = [];
1035
- if (enterHighLeverageMode) {
1036
- const enableIx = await this.getEnableHighLeverageModeIx(subAccountId);
1037
- ixs.push(enableIx);
1038
- }
1043
+ async updateUserPerpPositionCustomMarginRatio(perpMarketIndex, marginRatio, subAccountId = 0, txParams) {
1039
1044
  const updateIx = await this.getUpdateUserPerpPositionCustomMarginRatioIx(perpMarketIndex, marginRatio, subAccountId);
1040
- ixs.push(updateIx);
1041
- const tx = await this.buildTransaction(ixs, txParams !== null && txParams !== void 0 ? txParams : this.txParams);
1045
+ const tx = await this.buildTransaction(updateIx, txParams !== null && txParams !== void 0 ? txParams : this.txParams);
1042
1046
  const { txSig } = await this.sendTransaction(tx, [], this.opts);
1043
1047
  return txSig;
1044
1048
  }
@@ -2192,6 +2196,26 @@ class DriftClient {
2192
2196
  remainingAccounts,
2193
2197
  });
2194
2198
  }
2199
+ async specialTransferPerpPositionToVamm(userAccountPublicKey, marketIndex, amount, txParams) {
2200
+ const ix = await this.getSpecialTransferPerpPositionToVammIx(userAccountPublicKey, marketIndex, amount);
2201
+ const tx = await this.buildTransaction(ix, txParams);
2202
+ const { txSig } = await this.sendTransaction(tx, [], this.opts);
2203
+ return txSig;
2204
+ }
2205
+ async getSpecialTransferPerpPositionToVammIx(userAccountPublicKey, marketIndex, amount) {
2206
+ const remainingAccounts = this.getRemainingAccounts({
2207
+ userAccounts: [],
2208
+ writablePerpMarketIndexes: [marketIndex],
2209
+ });
2210
+ return this.program.instruction.specialTransferPerpPositionToVamm(marketIndex, amount !== null && amount !== void 0 ? amount : null, {
2211
+ accounts: {
2212
+ state: await this.getStatePublicKey(),
2213
+ user: userAccountPublicKey,
2214
+ authority: this.wallet.publicKey,
2215
+ },
2216
+ remainingAccounts,
2217
+ });
2218
+ }
2195
2219
  async depositIntoIsolatedPerpPosition(amount, perpMarketIndex, userTokenAccount, subAccountId, txParams) {
2196
2220
  const { txSig } = await this.sendTransaction(await this.buildTransaction(await this.getDepositIntoIsolatedPerpPositionIx(amount, perpMarketIndex, userTokenAccount, subAccountId), txParams), [], this.opts);
2197
2221
  return txSig;
@@ -2542,13 +2566,6 @@ class DriftClient {
2542
2566
  ? [depositToTradeArgs === null || depositToTradeArgs === void 0 ? void 0 : depositToTradeArgs.depositMarketIndex]
2543
2567
  : undefined,
2544
2568
  });
2545
- if ((0, orderParams_1.isUpdateHighLeverageMode)(orderParams.bitFlags)) {
2546
- remainingAccounts.push({
2547
- pubkey: (0, pda_1.getHighLeverageModeConfigPublicKey)(this.program.programId),
2548
- isWritable: true,
2549
- isSigner: false,
2550
- });
2551
- }
2552
2569
  return await this.program.instruction.placePerpOrder(orderParams, {
2553
2570
  accounts: {
2554
2571
  state: await this.getStatePublicKey(),
@@ -2802,15 +2819,6 @@ class DriftClient {
2802
2819
  readableSpotMarketIndexes,
2803
2820
  useMarketLastSlotCache: true,
2804
2821
  });
2805
- for (const param of params) {
2806
- if ((0, orderParams_1.isUpdateHighLeverageMode)(param.bitFlags)) {
2807
- remainingAccounts.push({
2808
- pubkey: (0, pda_1.getHighLeverageModeConfigPublicKey)(this.program.programId),
2809
- isWritable: true,
2810
- isSigner: false,
2811
- });
2812
- }
2813
- }
2814
2822
  const formattedParams = params.map((item) => (0, orderParams_1.getOrderParams)(item));
2815
2823
  const authority = (_a = overrides === null || overrides === void 0 ? void 0 : overrides.authority) !== null && _a !== void 0 ? _a : this.wallet.publicKey;
2816
2824
  return await this.program.instruction.placeOrders(formattedParams, {
@@ -2844,15 +2852,6 @@ class DriftClient {
2844
2852
  readableSpotMarketIndexes,
2845
2853
  useMarketLastSlotCache: true,
2846
2854
  });
2847
- for (const param of params) {
2848
- if ((0, orderParams_1.isUpdateHighLeverageMode)(param.bitFlags)) {
2849
- remainingAccounts.push({
2850
- pubkey: (0, pda_1.getHighLeverageModeConfigPublicKey)(this.program.programId),
2851
- isWritable: true,
2852
- isSigner: false,
2853
- });
2854
- }
2855
- }
2856
2855
  const formattedParams = params.map((item) => (0, orderParams_1.getOrderParams)(item));
2857
2856
  const placeOrdersIxs = await this.program.instruction.placeOrders(formattedParams, {
2858
2857
  accounts: {
@@ -2896,13 +2895,6 @@ class DriftClient {
2896
2895
  readableSpotMarketIndexes: isPerp ? [] : [params.marketIndex],
2897
2896
  useMarketLastSlotCache: true,
2898
2897
  });
2899
- if ((0, orderParams_1.isUpdateHighLeverageMode)(params.bitFlags)) {
2900
- remainingAccounts.push({
2901
- pubkey: (0, pda_1.getHighLeverageModeConfigPublicKey)(this.program.programId),
2902
- isWritable: true,
2903
- isSigner: false,
2904
- });
2905
- }
2906
2898
  const formattedParams = {
2907
2899
  marketType: params.marketType,
2908
2900
  direction: params.direction,
@@ -3041,91 +3033,20 @@ class DriftClient {
3041
3033
  },
3042
3034
  });
3043
3035
  }
3044
- async placeSpotOrder(orderParams, txParams, subAccountId) {
3045
- const { txSig, slot } = await this.sendTransaction((await this.preparePlaceSpotOrderTx(orderParams, txParams, subAccountId))
3046
- .placeSpotOrderTx, [], this.opts, false);
3047
- this.spotMarketLastSlotCache.set(orderParams.marketIndex, slot);
3048
- this.spotMarketLastSlotCache.set(numericConstants_1.QUOTE_SPOT_MARKET_INDEX, slot);
3049
- return txSig;
3036
+ async placeSpotOrder(_orderParams, _txParams, _subAccountId) {
3037
+ throw new Error(SPOT_DLOB_TRADING_DISABLED_MSG);
3050
3038
  }
3051
- async preparePlaceSpotOrderTx(orderParams, txParams, subAccountId) {
3052
- const tx = await this.buildTransaction(await this.getPlaceSpotOrderIx(orderParams, subAccountId), txParams);
3053
- return {
3054
- placeSpotOrderTx: tx,
3055
- };
3039
+ async preparePlaceSpotOrderTx(_orderParams, _txParams, _subAccountId) {
3040
+ throw new Error(SPOT_DLOB_TRADING_DISABLED_MSG);
3056
3041
  }
3057
- async getPlaceSpotOrderIx(orderParams, subAccountId, overrides) {
3058
- var _a;
3059
- orderParams = (0, orderParams_1.getOrderParams)(orderParams, { marketType: types_1.MarketType.SPOT });
3060
- const userAccountPublicKey = await this.getUserAccountPublicKey(subAccountId);
3061
- const authority = (_a = overrides === null || overrides === void 0 ? void 0 : overrides.authority) !== null && _a !== void 0 ? _a : this.wallet.publicKey;
3062
- const remainingAccounts = this.getRemainingAccounts({
3063
- userAccounts: [this.getUserAccount(subAccountId)],
3064
- useMarketLastSlotCache: true,
3065
- readableSpotMarketIndexes: [
3066
- orderParams.marketIndex,
3067
- numericConstants_1.QUOTE_SPOT_MARKET_INDEX,
3068
- ],
3069
- });
3070
- return await this.program.instruction.placeSpotOrder(orderParams, {
3071
- accounts: {
3072
- state: await this.getStatePublicKey(),
3073
- user: userAccountPublicKey,
3074
- userStats: this.getUserStatsAccountPublicKey(),
3075
- authority,
3076
- },
3077
- remainingAccounts,
3078
- });
3042
+ async getPlaceSpotOrderIx(_orderParams, _subAccountId, _overrides) {
3043
+ throw new Error(SPOT_DLOB_TRADING_DISABLED_MSG);
3079
3044
  }
3080
- async fillSpotOrder(userAccountPublicKey, user, order, fulfillmentConfig, makerInfo, referrerInfo, txParams) {
3081
- const { txSig } = await this.sendTransaction(await this.buildTransaction(await this.getFillSpotOrderIx(userAccountPublicKey, user, order, fulfillmentConfig, makerInfo, referrerInfo), txParams), [], this.opts);
3082
- return txSig;
3045
+ async fillSpotOrder(_userAccountPublicKey, _user, _order, _fulfillmentConfig, _makerInfo, _referrerInfo, _txParams) {
3046
+ throw new Error(SPOT_DLOB_TRADING_DISABLED_MSG);
3083
3047
  }
3084
- async getFillSpotOrderIx(userAccountPublicKey, userAccount, order, fulfillmentConfig, makerInfo, referrerInfo, fillerPublicKey) {
3085
- const userStatsPublicKey = (0, pda_1.getUserStatsAccountPublicKey)(this.program.programId, userAccount.authority);
3086
- const filler = fillerPublicKey !== null && fillerPublicKey !== void 0 ? fillerPublicKey : (await this.getUserAccountPublicKey());
3087
- const fillerStatsPublicKey = this.getUserStatsAccountPublicKey();
3088
- const marketIndex = order
3089
- ? order.marketIndex
3090
- : userAccount.orders.find((order) => order.orderId === userAccount.nextOrderId - 1).marketIndex;
3091
- makerInfo = Array.isArray(makerInfo)
3092
- ? makerInfo
3093
- : makerInfo
3094
- ? [makerInfo]
3095
- : [];
3096
- const userAccounts = [userAccount];
3097
- for (const maker of makerInfo) {
3098
- userAccounts.push(maker.makerUserAccount);
3099
- }
3100
- const remainingAccounts = this.getRemainingAccounts({
3101
- userAccounts,
3102
- writableSpotMarketIndexes: [marketIndex, numericConstants_1.QUOTE_SPOT_MARKET_INDEX],
3103
- });
3104
- for (const maker of makerInfo) {
3105
- remainingAccounts.push({
3106
- pubkey: maker.maker,
3107
- isWritable: true,
3108
- isSigner: false,
3109
- });
3110
- remainingAccounts.push({
3111
- pubkey: maker.makerStats,
3112
- isWritable: true,
3113
- isSigner: false,
3114
- });
3115
- }
3116
- const orderId = order.orderId;
3117
- this.addSpotFulfillmentAccounts(marketIndex, remainingAccounts, fulfillmentConfig);
3118
- return await this.program.instruction.fillSpotOrder(orderId, fulfillmentConfig ? fulfillmentConfig.fulfillmentType : null, null, {
3119
- accounts: {
3120
- state: await this.getStatePublicKey(),
3121
- filler,
3122
- fillerStats: fillerStatsPublicKey,
3123
- user: userAccountPublicKey,
3124
- userStats: userStatsPublicKey,
3125
- authority: this.wallet.publicKey,
3126
- },
3127
- remainingAccounts,
3128
- });
3048
+ async getFillSpotOrderIx(_userAccountPublicKey, _userAccount, _order, _fulfillmentConfig, _makerInfo, _referrerInfo, _fillerPublicKey) {
3049
+ throw new Error(SPOT_DLOB_TRADING_DISABLED_MSG);
3129
3050
  }
3130
3051
  addSpotFulfillmentAccounts(marketIndex, remainingAccounts, fulfillmentConfig) {
3131
3052
  if (fulfillmentConfig) {
@@ -4065,13 +3986,6 @@ class DriftClient {
4065
3986
  });
4066
3987
  }
4067
3988
  }
4068
- if ((0, orderParams_1.isUpdateHighLeverageMode)(orderParams.bitFlags)) {
4069
- remainingAccounts.push({
4070
- pubkey: (0, pda_1.getHighLeverageModeConfigPublicKey)(this.program.programId),
4071
- isWritable: true,
4072
- isSigner: false,
4073
- });
4074
- }
4075
3989
  let optionalParams = null;
4076
3990
  if (auctionDurationPercentage || successCondition) {
4077
3991
  optionalParams =
@@ -4191,8 +4105,8 @@ class DriftClient {
4191
4105
  const buf = Buffer.concat([
4192
4106
  prefix,
4193
4107
  delegateSigner
4194
- ? this.program.coder.types.encode('SignedMsgOrderParamsDelegateMessage', withBuilderDefaults)
4195
- : this.program.coder.types.encode('SignedMsgOrderParamsMessage', withBuilderDefaults),
4108
+ ? this.program.coder.types.encode('signedMsgOrderParamsDelegateMessage', withBuilderDefaults)
4109
+ : this.program.coder.types.encode('signedMsgOrderParamsMessage', withBuilderDefaults),
4196
4110
  ]);
4197
4111
  return buf;
4198
4112
  }
@@ -4204,8 +4118,8 @@ class DriftClient {
4204
4118
  */
4205
4119
  decodeSignedMsgOrderParamsMessage(encodedMessage, delegateSigner) {
4206
4120
  const decodeStr = delegateSigner
4207
- ? 'SignedMsgOrderParamsDelegateMessage'
4208
- : 'SignedMsgOrderParamsMessage';
4121
+ ? 'signedMsgOrderParamsDelegateMessage'
4122
+ : 'signedMsgOrderParamsMessage';
4209
4123
  return this.program.coder.types.decode(decodeStr, Buffer.concat([
4210
4124
  encodedMessage.slice(8), // strip out discriminator
4211
4125
  Buffer.alloc(128), // pad on 128 bytes, this is most efficient way to messages that are too small
@@ -4233,13 +4147,6 @@ class DriftClient {
4233
4147
  readablePerpMarketIndex: marketIndex,
4234
4148
  writableSpotMarketIndexes,
4235
4149
  });
4236
- if ((0, orderParams_1.isUpdateHighLeverageMode)(signedMessage.signedMsgOrderParams.bitFlags)) {
4237
- remainingAccounts.push({
4238
- pubkey: (0, pda_1.getHighLeverageModeConfigPublicKey)(this.program.programId),
4239
- isWritable: true,
4240
- isSigner: false,
4241
- });
4242
- }
4243
4150
  if (signedMessage.builderFeeTenthBps !== null &&
4244
4151
  signedMessage.builderIdx !== null) {
4245
4152
  remainingAccounts.push({
@@ -4330,117 +4237,20 @@ class DriftClient {
4330
4237
  placeAndMakeIx,
4331
4238
  ];
4332
4239
  }
4333
- async preparePlaceAndTakeSpotOrder(orderParams, fulfillmentConfig, makerInfo, referrerInfo, txParams, subAccountId) {
4334
- const tx = await this.buildTransaction(await this.getPlaceAndTakeSpotOrderIx(orderParams, fulfillmentConfig, makerInfo, referrerInfo, subAccountId), txParams);
4335
- return {
4336
- placeAndTakeSpotOrderTx: tx,
4337
- };
4240
+ async preparePlaceAndTakeSpotOrder(_orderParams, _fulfillmentConfig, _makerInfo, _referrerInfo, _txParams, _subAccountId) {
4241
+ throw new Error(SPOT_DLOB_TRADING_DISABLED_MSG);
4338
4242
  }
4339
- async placeAndTakeSpotOrder(orderParams, fulfillmentConfig, makerInfo, referrerInfo, txParams, subAccountId) {
4340
- const { txSig, slot } = await this.sendTransaction((await this.preparePlaceAndTakeSpotOrder(orderParams, fulfillmentConfig, makerInfo, referrerInfo, txParams, subAccountId)).placeAndTakeSpotOrderTx, [], this.opts, false);
4341
- this.spotMarketLastSlotCache.set(orderParams.marketIndex, slot);
4342
- this.spotMarketLastSlotCache.set(numericConstants_1.QUOTE_SPOT_MARKET_INDEX, slot);
4343
- return txSig;
4243
+ async placeAndTakeSpotOrder(_orderParams, _fulfillmentConfig, _makerInfo, _referrerInfo, _txParams, _subAccountId) {
4244
+ throw new Error(SPOT_DLOB_TRADING_DISABLED_MSG);
4344
4245
  }
4345
- async getPlaceAndTakeSpotOrderIx(orderParams, fulfillmentConfig, makerInfo, referrerInfo, subAccountId) {
4346
- orderParams = (0, orderParams_1.getOrderParams)(orderParams, { marketType: types_1.MarketType.SPOT });
4347
- const userStatsPublicKey = this.getUserStatsAccountPublicKey();
4348
- const user = await this.getUserAccountPublicKey(subAccountId);
4349
- const userAccounts = [this.getUserAccount(subAccountId)];
4350
- if (makerInfo !== undefined) {
4351
- userAccounts.push(makerInfo.makerUserAccount);
4352
- }
4353
- const remainingAccounts = this.getRemainingAccounts({
4354
- userAccounts,
4355
- useMarketLastSlotCache: true,
4356
- writableSpotMarketIndexes: [
4357
- orderParams.marketIndex,
4358
- numericConstants_1.QUOTE_SPOT_MARKET_INDEX,
4359
- ],
4360
- });
4361
- let makerOrderId = null;
4362
- if (makerInfo) {
4363
- makerOrderId = makerInfo.order.orderId;
4364
- remainingAccounts.push({
4365
- pubkey: makerInfo.maker,
4366
- isSigner: false,
4367
- isWritable: true,
4368
- });
4369
- remainingAccounts.push({
4370
- pubkey: makerInfo.makerStats,
4371
- isSigner: false,
4372
- isWritable: true,
4373
- });
4374
- }
4375
- if (referrerInfo) {
4376
- remainingAccounts.push({
4377
- pubkey: referrerInfo.referrer,
4378
- isWritable: true,
4379
- isSigner: false,
4380
- });
4381
- remainingAccounts.push({
4382
- pubkey: referrerInfo.referrerStats,
4383
- isWritable: true,
4384
- isSigner: false,
4385
- });
4386
- }
4387
- this.addSpotFulfillmentAccounts(orderParams.marketIndex, remainingAccounts, fulfillmentConfig);
4388
- return await this.program.instruction.placeAndTakeSpotOrder(orderParams, fulfillmentConfig ? fulfillmentConfig.fulfillmentType : null, makerOrderId, {
4389
- accounts: {
4390
- state: await this.getStatePublicKey(),
4391
- user,
4392
- userStats: userStatsPublicKey,
4393
- authority: this.wallet.publicKey,
4394
- },
4395
- remainingAccounts,
4396
- });
4246
+ async getPlaceAndTakeSpotOrderIx(_orderParams, _fulfillmentConfig, _makerInfo, _referrerInfo, _subAccountId) {
4247
+ throw new Error(SPOT_DLOB_TRADING_DISABLED_MSG);
4397
4248
  }
4398
- async placeAndMakeSpotOrder(orderParams, takerInfo, fulfillmentConfig, referrerInfo, txParams, subAccountId) {
4399
- const { txSig, slot } = await this.sendTransaction(await this.buildTransaction(await this.getPlaceAndMakeSpotOrderIx(orderParams, takerInfo, fulfillmentConfig, referrerInfo, subAccountId), txParams), [], this.opts);
4400
- this.spotMarketLastSlotCache.set(orderParams.marketIndex, slot);
4401
- this.spotMarketLastSlotCache.set(numericConstants_1.QUOTE_SPOT_MARKET_INDEX, slot);
4402
- return txSig;
4249
+ async placeAndMakeSpotOrder(_orderParams, _takerInfo, _fulfillmentConfig, _referrerInfo, _txParams, _subAccountId) {
4250
+ throw new Error(SPOT_DLOB_TRADING_DISABLED_MSG);
4403
4251
  }
4404
- async getPlaceAndMakeSpotOrderIx(orderParams, takerInfo, fulfillmentConfig, referrerInfo, subAccountId) {
4405
- orderParams = (0, orderParams_1.getOrderParams)(orderParams, { marketType: types_1.MarketType.SPOT });
4406
- const userStatsPublicKey = this.getUserStatsAccountPublicKey();
4407
- const user = await this.getUserAccountPublicKey(subAccountId);
4408
- const remainingAccounts = this.getRemainingAccounts({
4409
- userAccounts: [
4410
- this.getUserAccount(subAccountId),
4411
- takerInfo.takerUserAccount,
4412
- ],
4413
- useMarketLastSlotCache: true,
4414
- writableSpotMarketIndexes: [
4415
- orderParams.marketIndex,
4416
- numericConstants_1.QUOTE_SPOT_MARKET_INDEX,
4417
- ],
4418
- });
4419
- if (referrerInfo) {
4420
- remainingAccounts.push({
4421
- pubkey: referrerInfo.referrer,
4422
- isWritable: true,
4423
- isSigner: false,
4424
- });
4425
- remainingAccounts.push({
4426
- pubkey: referrerInfo.referrerStats,
4427
- isWritable: true,
4428
- isSigner: false,
4429
- });
4430
- }
4431
- this.addSpotFulfillmentAccounts(orderParams.marketIndex, remainingAccounts, fulfillmentConfig);
4432
- const takerOrderId = takerInfo.order.orderId;
4433
- return await this.program.instruction.placeAndMakeSpotOrder(orderParams, takerOrderId, fulfillmentConfig ? fulfillmentConfig.fulfillmentType : null, {
4434
- accounts: {
4435
- state: await this.getStatePublicKey(),
4436
- user,
4437
- userStats: userStatsPublicKey,
4438
- taker: takerInfo.taker,
4439
- takerStats: takerInfo.takerStats,
4440
- authority: this.wallet.publicKey,
4441
- },
4442
- remainingAccounts,
4443
- });
4252
+ async getPlaceAndMakeSpotOrderIx(_orderParams, _takerInfo, _fulfillmentConfig, _referrerInfo, _subAccountId) {
4253
+ throw new Error(SPOT_DLOB_TRADING_DISABLED_MSG);
4444
4254
  }
4445
4255
  /**
4446
4256
  * @deprecated use {@link placePerpOrder} or {@link placeAndTakePerpOrder} instead
@@ -5765,12 +5575,9 @@ class DriftClient {
5765
5575
  * @param positionMarketIndex
5766
5576
  * @returns : {takerFee: number, makerFee: number} Precision None
5767
5577
  */
5768
- getMarketFees(marketType, marketIndex, user, enteringHighLeverageMode) {
5769
- var _a;
5578
+ getMarketFees(marketType, marketIndex, user) {
5770
5579
  let feeTier;
5771
- const userHLM = ((_a = user === null || user === void 0 ? void 0 : user.isHighLeverageMode('Initial')) !== null && _a !== void 0 ? _a : false) ||
5772
- enteringHighLeverageMode;
5773
- if (user && !userHLM) {
5580
+ if (user) {
5774
5581
  feeTier = user.getUserFeeTier(marketType);
5775
5582
  }
5776
5583
  else {
@@ -5790,9 +5597,6 @@ class DriftClient {
5790
5597
  marketAccount = this.getSpotMarketAccount(marketIndex);
5791
5598
  }
5792
5599
  takerFee += (takerFee * marketAccount.feeAdjustment) / 100;
5793
- if (userHLM) {
5794
- takerFee *= 2;
5795
- }
5796
5600
  makerFee += (makerFee * marketAccount.feeAdjustment) / 100;
5797
5601
  }
5798
5602
  return {
@@ -5826,112 +5630,6 @@ class DriftClient {
5826
5630
  }
5827
5631
  return undefined;
5828
5632
  }
5829
- getReceiverProgram() {
5830
- if (this.receiverProgram === undefined) {
5831
- this.receiverProgram = new anchor_1.Program(pyth_solana_receiver_json_1.default, pyth_1.DEFAULT_RECEIVER_PROGRAM_ID, this.provider);
5832
- }
5833
- return this.receiverProgram;
5834
- }
5835
- async getSwitchboardOnDemandProgram() {
5836
- if (this.sbOnDemandProgram === undefined) {
5837
- this.sbOnDemandProgram = await on_demand_1.AnchorUtils.loadProgramFromConnection(this.connection);
5838
- }
5839
- return this.sbOnDemandProgram;
5840
- }
5841
- async postPythPullOracleUpdateAtomic(vaaString, feedId) {
5842
- const postIxs = await this.getPostPythPullOracleUpdateAtomicIxs(vaaString, feedId);
5843
- const tx = await this.buildTransaction(postIxs);
5844
- const { txSig } = await this.sendTransaction(tx, [], this.opts);
5845
- return txSig;
5846
- }
5847
- async postMultiPythPullOracleUpdatesAtomic(vaaString, feedIds) {
5848
- const postIxs = await this.getPostPythPullOracleUpdateAtomicIxs(vaaString, feedIds);
5849
- const tx = await this.buildTransaction(postIxs);
5850
- const { txSig } = await this.sendTransaction(tx, [], this.opts);
5851
- return txSig;
5852
- }
5853
- async getPostPythPullOracleUpdateAtomicIxs(vaaString, feedIds, numSignatures = 2) {
5854
- const accumulatorUpdateData = (0, price_service_sdk_1.parseAccumulatorUpdateData)(Buffer.from(vaaString, 'base64'));
5855
- const guardianSetIndex = accumulatorUpdateData.vaa.readUInt32BE(1);
5856
- const guardianSet = (0, pyth_1.getGuardianSetPda)(guardianSetIndex, pyth_1.DEFAULT_WORMHOLE_PROGRAM_ID);
5857
- const trimmedVaa = (0, oracles_1.trimVaaSignatures)(accumulatorUpdateData.vaa, numSignatures);
5858
- const postIxs = [];
5859
- if (accumulatorUpdateData.updates.length > 1) {
5860
- const encodedParams = this.getReceiverProgram().coder.types.encode('PostMultiUpdatesAtomicParams', {
5861
- vaa: trimmedVaa,
5862
- merklePriceUpdates: accumulatorUpdateData.updates,
5863
- });
5864
- const feedIdsToUse = typeof feedIds === 'string' ? [feedIds] : feedIds;
5865
- const pubkeys = feedIdsToUse.map((feedId) => {
5866
- return (0, pda_1.getPythPullOraclePublicKey)(this.program.programId, (0, pythOracleUtils_1.getFeedIdUint8Array)(feedId));
5867
- });
5868
- const remainingAccounts = pubkeys.map((pubkey) => {
5869
- return {
5870
- pubkey,
5871
- isSigner: false,
5872
- isWritable: true,
5873
- };
5874
- });
5875
- postIxs.push(this.program.instruction.postMultiPythPullOracleUpdatesAtomic(encodedParams, {
5876
- accounts: {
5877
- keeper: this.wallet.publicKey,
5878
- pythSolanaReceiver: config_1.DRIFT_ORACLE_RECEIVER_ID,
5879
- guardianSet,
5880
- },
5881
- remainingAccounts,
5882
- }));
5883
- }
5884
- else {
5885
- let feedIdToUse = typeof feedIds === 'string' ? feedIds : feedIds[0];
5886
- feedIdToUse = (0, pythOracleUtils_1.trimFeedId)(feedIdToUse);
5887
- postIxs.push(await this.getSinglePostPythPullOracleAtomicIx({
5888
- vaa: trimmedVaa,
5889
- merklePriceUpdate: accumulatorUpdateData.updates[0],
5890
- }, feedIdToUse, guardianSet));
5891
- }
5892
- return postIxs;
5893
- }
5894
- async getSinglePostPythPullOracleAtomicIx(params, feedId, guardianSet) {
5895
- const feedIdBuffer = (0, pythOracleUtils_1.getFeedIdUint8Array)(feedId);
5896
- const receiverProgram = this.getReceiverProgram();
5897
- const encodedParams = receiverProgram.coder.types.encode('PostUpdateAtomicParams', params);
5898
- return this.program.instruction.postPythPullOracleUpdateAtomic(feedIdBuffer, encodedParams, {
5899
- accounts: {
5900
- keeper: this.wallet.publicKey,
5901
- pythSolanaReceiver: config_1.DRIFT_ORACLE_RECEIVER_ID,
5902
- guardianSet,
5903
- priceFeed: (0, pda_1.getPythPullOraclePublicKey)(this.program.programId, feedIdBuffer),
5904
- },
5905
- });
5906
- }
5907
- async updatePythPullOracle(vaaString, feedId) {
5908
- feedId = (0, pythOracleUtils_1.trimFeedId)(feedId);
5909
- const accumulatorUpdateData = (0, price_service_sdk_1.parseAccumulatorUpdateData)(Buffer.from(vaaString, 'base64'));
5910
- const guardianSetIndex = accumulatorUpdateData.vaa.readUInt32BE(1);
5911
- const guardianSet = (0, pyth_1.getGuardianSetPda)(guardianSetIndex, pyth_1.DEFAULT_WORMHOLE_PROGRAM_ID);
5912
- const [postIxs, encodedVaaAddress] = await this.getBuildEncodedVaaIxs(accumulatorUpdateData.vaa, guardianSet);
5913
- for (const update of accumulatorUpdateData.updates) {
5914
- postIxs.push(await this.getUpdatePythPullOracleIxs({
5915
- merklePriceUpdate: update,
5916
- }, feedId, encodedVaaAddress.publicKey));
5917
- }
5918
- const tx = await this.buildTransaction(postIxs);
5919
- const { txSig } = await this.sendTransaction(tx, [encodedVaaAddress], this.opts);
5920
- return txSig;
5921
- }
5922
- async getUpdatePythPullOracleIxs(params, feedId, encodedVaaAddress) {
5923
- const feedIdBuffer = (0, pythOracleUtils_1.getFeedIdUint8Array)(feedId);
5924
- const receiverProgram = this.getReceiverProgram();
5925
- const encodedParams = receiverProgram.coder.types.encode('PostUpdateParams', params);
5926
- return this.program.instruction.updatePythPullOracle(feedIdBuffer, encodedParams, {
5927
- accounts: {
5928
- keeper: this.wallet.publicKey,
5929
- pythSolanaReceiver: config_1.DRIFT_ORACLE_RECEIVER_ID,
5930
- encodedVaa: encodedVaaAddress,
5931
- priceFeed: (0, pda_1.getPythPullOraclePublicKey)(this.program.programId, feedIdBuffer),
5932
- },
5933
- });
5934
- }
5935
5633
  async postPythLazerOracleUpdate(feedIds, pythMessageHex) {
5936
5634
  const postIxs = await this.getPostPythLazerOracleUpdateIxs(feedIds, pythMessageHex, undefined, 2);
5937
5635
  const tx = await this.buildTransaction(postIxs);
@@ -5958,161 +5656,6 @@ class DriftClient {
5958
5656
  });
5959
5657
  return [verifyIx, ix];
5960
5658
  }
5961
- async getPostManySwitchboardOnDemandUpdatesAtomicIxs(feeds, recentSlothash, numSignatures = 3) {
5962
- const program = await this.getSwitchboardOnDemandProgram();
5963
- const [pullIxs, _luts, _rawResponse] = await on_demand_1.PullFeed.fetchUpdateManyLightIx(program, {
5964
- feeds,
5965
- numSignatures,
5966
- recentSlothashes: recentSlothash
5967
- ? [[new anchor_1.BN(recentSlothash.slot), recentSlothash.hash]]
5968
- : undefined,
5969
- chain: 'solana',
5970
- network: this.env,
5971
- });
5972
- if (!pullIxs) {
5973
- return undefined;
5974
- }
5975
- return pullIxs;
5976
- }
5977
- // @deprecated use getPostManySwitchboardOnDemandUpdatesAtomicIxs instead. This function no longer returns the required ixs due to upstream sdk changes.
5978
- async getPostSwitchboardOnDemandUpdateAtomicIx(feed, recentSlothash, numSignatures = 3) {
5979
- const program = await this.getSwitchboardOnDemandProgram();
5980
- const feedAccount = new on_demand_1.PullFeed(program, feed);
5981
- if (!this.sbProgramFeedConfigs) {
5982
- this.sbProgramFeedConfigs = new Map();
5983
- }
5984
- if (!this.sbProgramFeedConfigs.has(feedAccount.pubkey.toString())) {
5985
- const feedConfig = await feedAccount.loadConfigs();
5986
- this.sbProgramFeedConfigs.set(feed.toString(), feedConfig);
5987
- }
5988
- const [pullIx, _responses, success] = await on_demand_1.PullFeed.fetchUpdateManyIx(program, {
5989
- feeds: [feed],
5990
- numSignatures,
5991
- recentSlothashes: recentSlothash
5992
- ? [[new anchor_1.BN(recentSlothash.slot), recentSlothash.hash]]
5993
- : undefined,
5994
- });
5995
- if (!success) {
5996
- return undefined;
5997
- }
5998
- return pullIx[0];
5999
- }
6000
- async postSwitchboardOnDemandUpdate(feed, recentSlothash, numSignatures = 3) {
6001
- const pullIx = await this.getPostSwitchboardOnDemandUpdateAtomicIx(feed, recentSlothash, numSignatures);
6002
- if (!pullIx) {
6003
- return undefined;
6004
- }
6005
- const tx = await (0, on_demand_1.asV0Tx)({
6006
- connection: this.connection,
6007
- ixs: [pullIx],
6008
- payer: this.wallet.publicKey,
6009
- computeUnitLimitMultiple: 1.3,
6010
- lookupTables: await this.fetchAllLookupTableAccounts(),
6011
- });
6012
- const { txSig } = await this.sendTransaction(tx, [], {
6013
- commitment: 'processed',
6014
- skipPreflight: true,
6015
- maxRetries: 0,
6016
- });
6017
- return txSig;
6018
- }
6019
- async getBuildEncodedVaaIxs(vaa, guardianSet) {
6020
- const postIxs = [];
6021
- if (this.wormholeProgram === undefined) {
6022
- this.wormholeProgram = new anchor_1.Program(pyth_1.WORMHOLE_CORE_BRIDGE_SOLANA_IDL, pyth_1.DEFAULT_WORMHOLE_PROGRAM_ID, this.provider);
6023
- }
6024
- const encodedVaaKeypair = new web3_js_1.Keypair();
6025
- postIxs.push(await this.wormholeProgram.account.encodedVaa.createInstruction(encodedVaaKeypair, vaa.length + 46));
6026
- // Why do we need this too?
6027
- postIxs.push(await this.wormholeProgram.methods
6028
- .initEncodedVaa()
6029
- .accounts({
6030
- encodedVaa: encodedVaaKeypair.publicKey,
6031
- })
6032
- .instruction());
6033
- // Split the write into two ixs
6034
- postIxs.push(await this.wormholeProgram.methods
6035
- .writeEncodedVaa({
6036
- index: 0,
6037
- data: vaa.subarray(0, 755),
6038
- })
6039
- .accounts({
6040
- draftVaa: encodedVaaKeypair.publicKey,
6041
- })
6042
- .instruction());
6043
- postIxs.push(await this.wormholeProgram.methods
6044
- .writeEncodedVaa({
6045
- index: 755,
6046
- data: vaa.subarray(755),
6047
- })
6048
- .accounts({
6049
- draftVaa: encodedVaaKeypair.publicKey,
6050
- })
6051
- .instruction());
6052
- // Verify
6053
- postIxs.push(await this.wormholeProgram.methods
6054
- .verifyEncodedVaaV1()
6055
- .accounts({
6056
- guardianSet,
6057
- draftVaa: encodedVaaKeypair.publicKey,
6058
- })
6059
- .instruction());
6060
- return [postIxs, encodedVaaKeypair];
6061
- }
6062
- async enableUserHighLeverageMode(subAccountId, txParams) {
6063
- const { txSig } = await this.sendTransaction(await this.buildTransaction(await this.getEnableHighLeverageModeIx(subAccountId), txParams), [], this.opts);
6064
- return txSig;
6065
- }
6066
- async getEnableHighLeverageModeIx(subAccountId, depositToTradeArgs, overrides) {
6067
- var _a, _b, _c, _d;
6068
- const isDepositToTradeTx = depositToTradeArgs !== undefined;
6069
- const userAccountPublicKey = (_b = (_a = overrides === null || overrides === void 0 ? void 0 : overrides.user) === null || _a === void 0 ? void 0 : _a.getUserAccountPublicKey()) !== null && _b !== void 0 ? _b : (0, pda_1.getUserAccountPublicKeySync)(this.program.programId, this.wallet.publicKey, subAccountId);
6070
- const signingAuthority = (_c = overrides === null || overrides === void 0 ? void 0 : overrides.signingAuthority) !== null && _c !== void 0 ? _c : this.wallet.publicKey;
6071
- const userAccount = (_d = overrides === null || overrides === void 0 ? void 0 : overrides.user.getUserAccount()) !== null && _d !== void 0 ? _d : this.getUserAccount(subAccountId);
6072
- const remainingAccounts = this.getRemainingAccounts({
6073
- userAccounts: (depositToTradeArgs === null || depositToTradeArgs === void 0 ? void 0 : depositToTradeArgs.isMakingNewAccount) ? [] : [userAccount],
6074
- useMarketLastSlotCache: false,
6075
- readablePerpMarketIndex: depositToTradeArgs === null || depositToTradeArgs === void 0 ? void 0 : depositToTradeArgs.orderMarketIndex,
6076
- readableSpotMarketIndexes: isDepositToTradeTx
6077
- ? [depositToTradeArgs === null || depositToTradeArgs === void 0 ? void 0 : depositToTradeArgs.depositMarketIndex]
6078
- : undefined,
6079
- });
6080
- const ix = await this.program.instruction.enableUserHighLeverageMode(subAccountId, {
6081
- accounts: {
6082
- state: await this.getStatePublicKey(),
6083
- user: userAccountPublicKey,
6084
- authority: signingAuthority,
6085
- highLeverageModeConfig: (0, pda_1.getHighLeverageModeConfigPublicKey)(this.program.programId),
6086
- },
6087
- remainingAccounts,
6088
- });
6089
- return ix;
6090
- }
6091
- async disableUserHighLeverageMode(user, userAccount, txParams) {
6092
- const { txSig } = await this.sendTransaction(await this.buildTransaction(await this.getDisableHighLeverageModeIx(user, userAccount), txParams), [], this.opts);
6093
- return txSig;
6094
- }
6095
- async getDisableHighLeverageModeIx(user, userAccount, maintenance = false) {
6096
- const remainingAccounts = userAccount
6097
- ? this.getRemainingAccounts({
6098
- userAccounts: [userAccount],
6099
- })
6100
- : undefined;
6101
- const ix = await this.program.instruction.disableUserHighLeverageMode(maintenance, {
6102
- accounts: {
6103
- state: await this.getStatePublicKey(),
6104
- user,
6105
- authority: this.wallet.publicKey,
6106
- highLeverageModeConfig: (0, pda_1.getHighLeverageModeConfigPublicKey)(this.program.programId),
6107
- },
6108
- remainingAccounts,
6109
- });
6110
- return ix;
6111
- }
6112
- async fetchHighLeverageModeConfig() {
6113
- const config = await this.program.account.highLeverageModeConfig.fetch((0, pda_1.getHighLeverageModeConfigPublicKey)(this.program.programId));
6114
- return config;
6115
- }
6116
5659
  async fetchProtectedMakerModeConfig() {
6117
5660
  const config = await this.program.account.protectedMakerModeConfig.fetch((0, pda_1.getProtectedMakerModeConfigPublicKey)(this.program.programId));
6118
5661
  return config;