@drift-labs/sdk-browser 2.162.0-beta.2 → 2.163.0-beta.9

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 +11 -9
  49. package/lib/browser/adminClient.js +30 -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 +7 -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 +32 -59
  71. package/lib/browser/driftClient.js +85 -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 +25708 -0
  79. package/lib/browser/idl/drift.js +2 -0
  80. package/lib/browser/idl/drift.json +20850 -15287
  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 +19 -31
  128. package/lib/browser/types.js +6 -11
  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 +11 -9
  212. package/lib/node/adminClient.d.ts.map +1 -1
  213. package/lib/node/adminClient.js +30 -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 +7 -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 +32 -59
  249. package/lib/node/driftClient.d.ts.map +1 -1
  250. package/lib/node/driftClient.js +85 -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 +25709 -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 +20850 -15287
  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 +19 -31
  338. package/lib/node/types.d.ts.map +1 -1
  339. package/lib/node/types.js +6 -11
  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 +154 -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 +7 -25
  400. package/src/dlob/DLOB.ts +12 -0
  401. package/src/dlob/orderBookLevels.ts +0 -1
  402. package/src/driftClient.ts +245 -1091
  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 +20850 -15287
  408. package/src/idl/drift.ts +25708 -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 +16 -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 +0 -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
@@ -1,10 +1,10 @@
1
1
  import { ResubOpts, GrpcConfigs } from './types';
2
- import { Program } from '@coral-xyz/anchor';
3
2
  import { PublicKey } from '@solana/web3.js';
4
3
  import { UserAccount } from '../types';
5
4
  import { WebSocketUserAccountSubscriber } from './webSocketUserAccountSubscriber';
5
+ import { DriftProgram } from '../config';
6
6
  export declare class grpcUserAccountSubscriber extends WebSocketUserAccountSubscriber {
7
7
  private grpcConfigs;
8
- constructor(grpcConfigs: GrpcConfigs, program: Program, userAccountPublicKey: PublicKey, resubOpts?: ResubOpts);
8
+ constructor(grpcConfigs: GrpcConfigs, program: DriftProgram, userAccountPublicKey: PublicKey, resubOpts?: ResubOpts);
9
9
  subscribe(userAccount?: UserAccount): Promise<boolean>;
10
10
  }
@@ -1,10 +1,10 @@
1
1
  import { ResubOpts, GrpcConfigs } from './types';
2
- import { Program } from '@coral-xyz/anchor';
3
2
  import { PublicKey } from '@solana/web3.js';
4
3
  import { UserStatsAccount } from '../types';
5
4
  import { WebSocketUserStatsAccountSubscriber } from './webSocketUserStatsAccountSubsriber';
5
+ import { DriftProgram } from '../config';
6
6
  export declare class grpcUserStatsAccountSubscriber extends WebSocketUserStatsAccountSubscriber {
7
7
  private grpcConfigs;
8
- constructor(grpcConfigs: GrpcConfigs, program: Program, userStatsAccountPublicKey: PublicKey, resubOpts?: ResubOpts);
8
+ constructor(grpcConfigs: GrpcConfigs, program: DriftProgram, userStatsAccountPublicKey: PublicKey, resubOpts?: ResubOpts);
9
9
  subscribe(userStatsAccount?: UserStatsAccount): Promise<boolean>;
10
10
  }
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  import { LaserGrpcConfigs, ResubOpts } from './types';
3
- import { Program } from '@coral-xyz/anchor';
4
3
  import { Context, MemcmpFilter, PublicKey } from '@solana/web3.js';
4
+ import { DriftProgram } from '../config';
5
5
  import { WebSocketProgramAccountSubscriber } from './webSocketProgramAccountSubscriber';
6
6
  import { LaserCommitmentLevel } from '../isomorphic/grpc';
7
7
  type LaserCommitment = (typeof LaserCommitmentLevel)[keyof typeof LaserCommitmentLevel];
@@ -12,7 +12,7 @@ export declare class LaserstreamProgramAccountSubscriber<T> extends WebSocketPro
12
12
  private readonly laserConfig;
13
13
  private readonly laserCommitmentLevel;
14
14
  private constructor();
15
- static create<U>(grpcConfigs: LaserGrpcConfigs, subscriptionName: string, accountDiscriminator: string, program: Program, decodeBufferFn: (accountName: string, ix: Buffer) => U, options?: {
15
+ static create<U>(grpcConfigs: LaserGrpcConfigs, subscriptionName: string, accountDiscriminator: string, program: DriftProgram, decodeBufferFn: (accountName: string, ix: Buffer) => U, options?: {
16
16
  filters: MemcmpFilter[];
17
17
  }, resubOpts?: ResubOpts): Promise<LaserstreamProgramAccountSubscriber<U>>;
18
18
  subscribe(onChange: (accountId: PublicKey, data: T, context: Context, buffer: Buffer) => void): Promise<void>;
@@ -1,17 +1,17 @@
1
1
  import { Commitment, PublicKey } from '@solana/web3.js';
2
2
  import { UserAccount } from '../types';
3
3
  import { BasicUserAccountSubscriber } from './basicUserAccountSubscriber';
4
- import { Program } from '@coral-xyz/anchor';
5
4
  import { UserAccountSubscriber } from './types';
5
+ import { DriftProgram } from '../config';
6
6
  /**
7
7
  * Simple implementation of UserAccountSubscriber. It will fetch the UserAccount
8
8
  * date on subscribe (or call to fetch) if no account data is provided on init.
9
9
  * Expect to use only 1 RPC call unless you call fetch repeatedly.
10
10
  */
11
11
  export declare class OneShotUserAccountSubscriber extends BasicUserAccountSubscriber implements UserAccountSubscriber {
12
- program: Program;
12
+ program: DriftProgram;
13
13
  commitment: Commitment;
14
- constructor(program: Program, userAccountPublicKey: PublicKey, data?: UserAccount, slot?: number, commitment?: Commitment);
14
+ constructor(program: DriftProgram, userAccountPublicKey: PublicKey, data?: UserAccount, slot?: number, commitment?: Commitment);
15
15
  subscribe(userAccount?: UserAccount): Promise<boolean>;
16
16
  fetchIfUnloaded(): Promise<void>;
17
17
  fetch(): Promise<void>;
@@ -1,17 +1,17 @@
1
1
  import { Commitment, PublicKey } from '@solana/web3.js';
2
2
  import { UserStatsAccount } from '../types';
3
3
  import { BasicUserStatsAccountSubscriber } from './basicUserStatsAccountSubscriber';
4
- import { Program } from '@coral-xyz/anchor';
5
4
  import { UserStatsAccountSubscriber } from './types';
5
+ import { DriftProgram } from '../config';
6
6
  /**
7
7
  * Simple implementation of UserStatsAccountSubscriber. It will fetch the UserStatsAccount
8
8
  * data on subscribe (or call to fetch) if no account data is provided on init.
9
9
  * Expect to use only 1 RPC call unless you call fetch repeatedly.
10
10
  */
11
11
  export declare class OneShotUserStatsAccountSubscriber extends BasicUserStatsAccountSubscriber implements UserStatsAccountSubscriber {
12
- program: Program;
12
+ program: DriftProgram;
13
13
  commitment: Commitment;
14
- constructor(program: Program, userStatsAccountPublicKey: PublicKey, data?: UserStatsAccount, slot?: number, commitment?: Commitment);
14
+ constructor(program: DriftProgram, userStatsAccountPublicKey: PublicKey, data?: UserStatsAccount, slot?: number, commitment?: Commitment);
15
15
  subscribe(userStatsAccount?: UserStatsAccount): Promise<boolean>;
16
16
  fetchIfUnloaded(): Promise<void>;
17
17
  fetch(): Promise<void>;
@@ -1,6 +1,5 @@
1
1
  /// <reference types="node" />
2
2
  import { AccountToPoll, DataAndSlot, DelistedMarketSetting, DriftClientAccountEvents, DriftClientAccountSubscriber, OraclesToPoll } from './types';
3
- import { Program } from '@coral-xyz/anchor';
4
3
  import StrictEventEmitter from 'strict-event-emitter-types';
5
4
  import { EventEmitter } from 'events';
6
5
  import { PerpMarketAccount, SpotMarketAccount, StateAccount, UserAccount } from '../types';
@@ -8,9 +7,10 @@ import { BulkAccountLoader } from './bulkAccountLoader';
8
7
  import { PublicKey } from '@solana/web3.js';
9
8
  import { OracleInfo, OraclePriceData } from '../oracles/types';
10
9
  import { OracleClientCache } from '../oracles/oracleClientCache';
10
+ import { DriftProgram } from '../config';
11
11
  export declare class PollingDriftClientAccountSubscriber implements DriftClientAccountSubscriber {
12
12
  isSubscribed: boolean;
13
- program: Program;
13
+ program: DriftProgram;
14
14
  perpMarketIndexes: number[];
15
15
  spotMarketIndexes: number[];
16
16
  oracleInfos: OracleInfo[];
@@ -34,7 +34,7 @@ export declare class PollingDriftClientAccountSubscriber implements DriftClientA
34
34
  private isSubscribing;
35
35
  private subscriptionPromise;
36
36
  private subscriptionPromiseResolver;
37
- constructor(program: Program, accountLoader: BulkAccountLoader, perpMarketIndexes: number[], spotMarketIndexes: number[], oracleInfos: OracleInfo[], shouldFindAllMarketsAndOracles: boolean, delistedMarketSetting: DelistedMarketSetting);
37
+ constructor(program: DriftProgram, accountLoader: BulkAccountLoader, perpMarketIndexes: number[], spotMarketIndexes: number[], oracleInfos: OracleInfo[], shouldFindAllMarketsAndOracles: boolean, delistedMarketSetting: DelistedMarketSetting);
38
38
  subscribe(): Promise<boolean>;
39
39
  updateAccountsToPoll(): Promise<void>;
40
40
  updatePerpMarketAccountsToPoll(): Promise<boolean>;
@@ -152,7 +152,7 @@ class PollingDriftClientAccountSubscriber {
152
152
  accountToPoll.callbackId = await this.accountLoader.addAccount(accountToPoll.publicKey, (buffer, slot) => {
153
153
  if (!buffer)
154
154
  return;
155
- const account = this.program.account[accountToPoll.key].coder.accounts.decodeUnchecked((0, utils_1.capitalize)(accountToPoll.key), buffer);
155
+ const account = this.program.coder.accounts.decodeUnchecked(accountToPoll.key, buffer);
156
156
  const dataAndSlot = {
157
157
  data: account,
158
158
  slot,
@@ -196,7 +196,7 @@ class PollingDriftClientAccountSubscriber {
196
196
  }
197
197
  const { buffer, slot } = bufferAndSlot;
198
198
  if (buffer) {
199
- const account = this.program.account[accountToPoll.key].coder.accounts.decodeUnchecked((0, utils_1.capitalize)(accountToPoll.key), buffer);
199
+ const account = this.program.coder.accounts.decodeUnchecked(accountToPoll.key, buffer);
200
200
  if (accountToPoll.mapKey != undefined) {
201
201
  this[accountToPoll.key].set(accountToPoll.mapKey, {
202
202
  data: account,
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import { DataAndSlot, InsuranceFundStakeAccountEvents, InsuranceFundStakeAccountSubscriber } from './types';
3
- import { Program } from '@coral-xyz/anchor';
3
+ import { DriftProgram } from '../config';
4
4
  import StrictEventEmitter from 'strict-event-emitter-types';
5
5
  import { EventEmitter } from 'events';
6
6
  import { PublicKey } from '@solana/web3.js';
@@ -8,14 +8,14 @@ import { BulkAccountLoader } from './bulkAccountLoader';
8
8
  import { InsuranceFundStake } from '../types';
9
9
  export declare class PollingInsuranceFundStakeAccountSubscriber implements InsuranceFundStakeAccountSubscriber {
10
10
  isSubscribed: boolean;
11
- program: Program;
11
+ program: DriftProgram;
12
12
  eventEmitter: StrictEventEmitter<EventEmitter, InsuranceFundStakeAccountEvents>;
13
13
  insuranceFundStakeAccountPublicKey: PublicKey;
14
14
  accountLoader: BulkAccountLoader;
15
15
  callbackId?: string;
16
16
  errorCallbackId?: string;
17
17
  insuranceFundStakeAccountAndSlot?: DataAndSlot<InsuranceFundStake>;
18
- constructor(program: Program, publicKey: PublicKey, accountLoader: BulkAccountLoader);
18
+ constructor(program: DriftProgram, publicKey: PublicKey, accountLoader: BulkAccountLoader);
19
19
  subscribe(insuranceFundStake?: InsuranceFundStake): Promise<boolean>;
20
20
  addToAccountLoader(): Promise<void>;
21
21
  fetchIfUnloaded(): Promise<void>;
@@ -40,7 +40,7 @@ class PollingInsuranceFundStakeAccountSubscriber {
40
40
  this.insuranceFundStakeAccountAndSlot.slot > slot) {
41
41
  return;
42
42
  }
43
- const account = this.program.account.user.coder.accounts.decode('InsuranceFundStake', buffer);
43
+ const account = this.program.coder.accounts.decode('insuranceFundStake', buffer);
44
44
  this.insuranceFundStakeAccountAndSlot = { data: account, slot };
45
45
  this.eventEmitter.emit('insuranceFundStakeAccountUpdate', account);
46
46
  this.eventEmitter.emit('update');
@@ -1,14 +1,14 @@
1
1
  /// <reference types="node" />
2
2
  import { DataAndSlot, OracleEvents, OracleAccountSubscriber } from './types';
3
- import { Program } from '@coral-xyz/anchor';
4
3
  import StrictEventEmitter from 'strict-event-emitter-types';
5
4
  import { EventEmitter } from 'events';
6
5
  import { PublicKey } from '@solana/web3.js';
7
6
  import { BulkAccountLoader } from './bulkAccountLoader';
8
7
  import { OracleClient, OraclePriceData } from '../oracles/types';
8
+ import { DriftProgram } from '../config';
9
9
  export declare class PollingOracleAccountSubscriber implements OracleAccountSubscriber {
10
10
  isSubscribed: boolean;
11
- program: Program;
11
+ program: DriftProgram;
12
12
  eventEmitter: StrictEventEmitter<EventEmitter, OracleEvents>;
13
13
  publicKey: PublicKey;
14
14
  accountLoader: BulkAccountLoader;
@@ -1,14 +1,14 @@
1
1
  /// <reference types="node" />
2
2
  import { DataAndSlot, TokenAccountEvents, TokenAccountSubscriber } from './types';
3
- import { Program } from '@coral-xyz/anchor';
4
3
  import StrictEventEmitter from 'strict-event-emitter-types';
5
4
  import { EventEmitter } from 'events';
6
5
  import { PublicKey } from '@solana/web3.js';
7
6
  import { BulkAccountLoader } from './bulkAccountLoader';
8
7
  import { Account } from '@solana/spl-token';
8
+ import { DriftProgram } from '../config';
9
9
  export declare class PollingTokenAccountSubscriber implements TokenAccountSubscriber {
10
10
  isSubscribed: boolean;
11
- program: Program;
11
+ program: DriftProgram;
12
12
  eventEmitter: StrictEventEmitter<EventEmitter, TokenAccountEvents>;
13
13
  publicKey: PublicKey;
14
14
  accountLoader: BulkAccountLoader;
@@ -38,7 +38,7 @@ class PollingUserAccountSubscriber {
38
38
  if (this.user && this.user.slot > slot) {
39
39
  return;
40
40
  }
41
- const account = this.decode('User', buffer);
41
+ const account = this.decode('user', buffer);
42
42
  this.user = { data: account, slot };
43
43
  this.eventEmitter.emit('userAccountUpdate', account);
44
44
  this.eventEmitter.emit('update');
@@ -58,7 +58,7 @@ class PollingUserAccountSubscriber {
58
58
  const dataAndContext = await this.connection.getAccountInfoAndContext(this.userAccountPublicKey, this.accountLoader.commitment);
59
59
  if (dataAndContext.context.slot > ((_b = (_a = this.user) === null || _a === void 0 ? void 0 : _a.slot) !== null && _b !== void 0 ? _b : 0)) {
60
60
  this.user = {
61
- data: this.decode('User', dataAndContext.value.data),
61
+ data: this.decode('user', dataAndContext.value.data),
62
62
  slot: dataAndContext.context.slot,
63
63
  };
64
64
  }
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import { DataAndSlot, UserStatsAccountSubscriber, UserStatsAccountEvents } from './types';
3
- import { Program } from '@coral-xyz/anchor';
3
+ import { DriftProgram } from '../config';
4
4
  import StrictEventEmitter from 'strict-event-emitter-types';
5
5
  import { EventEmitter } from 'events';
6
6
  import { PublicKey } from '@solana/web3.js';
@@ -8,14 +8,14 @@ import { UserStatsAccount } from '../types';
8
8
  import { BulkAccountLoader } from './bulkAccountLoader';
9
9
  export declare class PollingUserStatsAccountSubscriber implements UserStatsAccountSubscriber {
10
10
  isSubscribed: boolean;
11
- program: Program;
11
+ program: DriftProgram;
12
12
  eventEmitter: StrictEventEmitter<EventEmitter, UserStatsAccountEvents>;
13
13
  userStatsAccountPublicKey: PublicKey;
14
14
  accountLoader: BulkAccountLoader;
15
15
  callbackId?: string;
16
16
  errorCallbackId?: string;
17
17
  userStats?: DataAndSlot<UserStatsAccount>;
18
- constructor(program: Program, userStatsAccountPublicKey: PublicKey, accountLoader: BulkAccountLoader);
18
+ constructor(program: DriftProgram, userStatsAccountPublicKey: PublicKey, accountLoader: BulkAccountLoader);
19
19
  subscribe(userStatsAccount?: UserStatsAccount): Promise<boolean>;
20
20
  addToAccountLoader(): Promise<void>;
21
21
  fetchIfUnloaded(): Promise<void>;
@@ -37,7 +37,7 @@ class PollingUserStatsAccountSubscriber {
37
37
  if (this.userStats && this.userStats.slot > slot) {
38
38
  return;
39
39
  }
40
- const account = this.program.account.userStats.coder.accounts.decodeUnchecked('UserStats', buffer);
40
+ const account = this.program.coder.accounts.decodeUnchecked('userStats', buffer);
41
41
  this.userStats = { data: account, slot };
42
42
  this.eventEmitter.emit('userStatsAccountUpdate', account);
43
43
  this.eventEmitter.emit('update');
@@ -7,22 +7,20 @@ class TestBulkAccountLoader extends bulkAccountLoader_1.BulkAccountLoader {
7
7
  if (accountsToLoadChunks.length === 0) {
8
8
  return;
9
9
  }
10
- const accounts = [];
11
10
  for (const accountsToLoadChunk of accountsToLoadChunks) {
12
11
  for (const accountToLoad of accountsToLoadChunk) {
13
12
  const account = await this.connection.getAccountInfoAndContext(accountToLoad.publicKey, this.commitment);
14
- accounts.push(account);
15
13
  const newSlot = account.context.slot;
16
14
  if (newSlot > this.mostRecentSlot) {
17
15
  this.mostRecentSlot = newSlot;
18
16
  }
19
17
  if (accountToLoad.callbacks.size === 0) {
20
- return;
18
+ continue;
21
19
  }
22
20
  const key = accountToLoad.publicKey.toBase58();
23
21
  const prev = this.bufferAndSlotMap.get(key);
24
22
  if (prev && newSlot < prev.slot) {
25
- return;
23
+ continue;
26
24
  }
27
25
  let newBuffer = undefined;
28
26
  if (account.value) {
@@ -31,7 +29,7 @@ class TestBulkAccountLoader extends bulkAccountLoader_1.BulkAccountLoader {
31
29
  if (!prev) {
32
30
  this.bufferAndSlotMap.set(key, { slot: newSlot, buffer: newBuffer });
33
31
  this.handleAccountCallbacks(accountToLoad, newBuffer, newSlot);
34
- return;
32
+ continue;
35
33
  }
36
34
  const oldBuffer = prev.buffer;
37
35
  if (newBuffer && (!oldBuffer || !newBuffer.equals(oldBuffer))) {
@@ -1,7 +1,17 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node" />
3
3
  /// <reference types="node" />
4
- import { SpotMarketAccount, PerpMarketAccount, OracleSource, StateAccount, UserAccount, UserStatsAccount, InsuranceFundStake, ConstituentAccount, HighLeverageModeConfig } from '../types';
4
+ /**
5
+ * Account subscription interfaces and types.
6
+ *
7
+ * DriftClient uses a `DriftClientAccountSubscriber` (WebSocket or polling) to keep
8
+ * market, oracle, and state accounts cached in memory. `User` uses a `UserAccountSubscriber`
9
+ * for the individual User account. All subscribers implement the interfaces defined here.
10
+ *
11
+ * Implementations: `webSocketDriftClientAccountSubscriber.ts` (default),
12
+ * `pollingDriftClientAccountSubscriber.ts`, `bulkAccountLoader.ts` (batched RPC).
13
+ */
14
+ import { SpotMarketAccount, PerpMarketAccount, OracleSource, StateAccount, UserAccount, UserStatsAccount, InsuranceFundStake, ConstituentAccount } from '../types';
5
15
  import StrictEventEmitter from 'strict-event-emitter-types';
6
16
  import { EventEmitter } from 'events';
7
17
  import { Context, PublicKey } from '@solana/web3.js';
@@ -174,19 +184,6 @@ export type LaserGrpcConfigs = BaseGrpcConfigs & {
174
184
  channelOptions?: LaserstreamConfig['channelOptions'];
175
185
  };
176
186
  export type GrpcConfigs = YellowstoneGrpcConfigs | LaserGrpcConfigs;
177
- export interface HighLeverageModeConfigAccountSubscriber {
178
- eventEmitter: StrictEventEmitter<EventEmitter, HighLeverageModeConfigAccountEvents>;
179
- isSubscribed: boolean;
180
- subscribe(highLeverageModeConfigAccount?: HighLeverageModeConfig): Promise<boolean>;
181
- fetch(): Promise<void>;
182
- unsubscribe(): Promise<void>;
183
- getHighLeverageModeConfigAccountAndSlot(): DataAndSlot<HighLeverageModeConfig>;
184
- }
185
- export interface HighLeverageModeConfigAccountEvents {
186
- highLeverageModeConfigAccountUpdate: (payload: HighLeverageModeConfig) => void;
187
- update: void;
188
- error: (e: Error) => void;
189
- }
190
187
  export interface ConstituentAccountSubscriber {
191
188
  eventEmitter: StrictEventEmitter<EventEmitter, ConstituentAccountEvents>;
192
189
  isSubscribed: boolean;
@@ -1,13 +1,13 @@
1
1
  /// <reference types="node" />
2
2
  import { DataAndSlot, BufferAndSlot, AccountSubscriber, ResubOpts } from './types';
3
- import { Program } from '@coral-xyz/anchor';
4
3
  import { AccountInfo, Commitment, Context, PublicKey } from '@solana/web3.js';
4
+ import { DriftProgram } from '../config';
5
5
  export declare class WebSocketAccountSubscriber<T> implements AccountSubscriber<T> {
6
6
  dataAndSlot?: DataAndSlot<T>;
7
7
  bufferAndSlot?: BufferAndSlot;
8
8
  accountName: string;
9
9
  logAccountName: string;
10
- program: Program;
10
+ program: DriftProgram;
11
11
  accountPublicKey: PublicKey;
12
12
  decodeBufferFn: (buffer: Buffer) => T;
13
13
  onChange: (data: T) => void;
@@ -17,7 +17,7 @@ export declare class WebSocketAccountSubscriber<T> implements AccountSubscriber<
17
17
  isUnsubscribing: boolean;
18
18
  timeoutId?: ReturnType<typeof setTimeout>;
19
19
  receivingData: boolean;
20
- constructor(accountName: string, program: Program, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => T, resubOpts?: ResubOpts, commitment?: Commitment);
20
+ constructor(accountName: string, program: DriftProgram, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => T, resubOpts?: ResubOpts, commitment?: Commitment);
21
21
  subscribe(onChange: (data: T) => void): Promise<void>;
22
22
  setData(data: T, slot?: number): void;
23
23
  protected setTimeout(): void;
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WebSocketAccountSubscriber = void 0;
4
- const utils_1 = require("./utils");
5
4
  class WebSocketAccountSubscriber {
6
5
  constructor(accountName, program, accountPublicKey, decodeBuffer, resubOpts, commitment) {
7
6
  var _a;
@@ -137,7 +136,7 @@ class WebSocketAccountSubscriber {
137
136
  return this.decodeBufferFn(buffer);
138
137
  }
139
138
  else {
140
- return this.program.account[this.accountName].coder.accounts.decode((0, utils_1.capitalize)(this.accountName), buffer);
139
+ return this.program.account[this.accountName].coder.accounts.decode(this.accountName, buffer);
141
140
  }
142
141
  }
143
142
  unsubscribe(onResub = false) {
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node" />
3
3
  import { DataAndSlot, AccountSubscriber, ResubOpts, BufferAndSlot } from './types';
4
- import { Program } from '@coral-xyz/anchor';
4
+ import { DriftProgram } from '../config';
5
5
  import { AccountInfoBase, AccountInfoWithBase64EncodedData, AccountInfoWithBase58EncodedData, Rpc, RpcSubscriptions, SolanaRpcSubscriptionsApi, Commitment } from 'gill';
6
6
  import { PublicKey } from '@solana/web3.js';
7
7
  /**
@@ -57,7 +57,7 @@ export declare class WebSocketAccountSubscriberV2<T> implements AccountSubscribe
57
57
  bufferAndSlot?: BufferAndSlot;
58
58
  accountName: string;
59
59
  logAccountName: string;
60
- program: Program;
60
+ program: DriftProgram;
61
61
  accountPublicKey: PublicKey;
62
62
  decodeBufferFn: (buffer: Buffer) => T;
63
63
  onChange: (data: T) => void;
@@ -84,7 +84,7 @@ export declare class WebSocketAccountSubscriberV2<T> implements AccountSubscribe
84
84
  * @param rpcSubscriptions Optional override/injection for testing.
85
85
  * @param rpc Optional override/injection for testing.
86
86
  */
87
- constructor(accountName: string, program: Program, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => T, resubOpts?: ResubOpts, commitment?: Commitment, rpcSubscriptions?: RpcSubscriptions<SolanaRpcSubscriptionsApi> & string, rpc?: Rpc<any>);
87
+ constructor(accountName: string, program: DriftProgram, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => T, resubOpts?: ResubOpts, commitment?: Commitment, rpcSubscriptions?: RpcSubscriptions<SolanaRpcSubscriptionsApi> & string, rpc?: Rpc<any>);
88
88
  private handleNotificationLoop;
89
89
  subscribe(onChange: (data: T) => void): Promise<void>;
90
90
  setData(data: T, slot?: number): void;
@@ -2,17 +2,17 @@
2
2
  /// <reference types="node" />
3
3
  import { AccountSubscriber, DataAndSlot, DelistedMarketSetting, DriftClientAccountEvents, DriftClientAccountSubscriber, ResubOpts } from './types';
4
4
  import { PerpMarketAccount, SpotMarketAccount, StateAccount } from '../types';
5
- import { Program } from '@coral-xyz/anchor';
6
5
  import StrictEventEmitter from 'strict-event-emitter-types';
7
6
  import { EventEmitter } from 'events';
8
7
  import { WebSocketAccountSubscriber } from './webSocketAccountSubscriber';
9
8
  import { Commitment, PublicKey } from '@solana/web3.js';
10
9
  import { OracleInfo, OraclePriceData } from '../oracles/types';
11
10
  import { OracleClientCache } from '../oracles/oracleClientCache';
11
+ import { DriftProgram } from '../config';
12
12
  import { WebSocketAccountSubscriberV2 } from './webSocketAccountSubscriberV2';
13
13
  export declare class WebSocketDriftClientAccountSubscriber implements DriftClientAccountSubscriber {
14
14
  isSubscribed: boolean;
15
- program: Program;
15
+ program: DriftProgram;
16
16
  commitment?: Commitment;
17
17
  perpMarketIndexes: number[];
18
18
  spotMarketIndexes: number[];
@@ -33,12 +33,12 @@ export declare class WebSocketDriftClientAccountSubscriber implements DriftClien
33
33
  initialPerpMarketAccountData: Map<number, PerpMarketAccount>;
34
34
  initialSpotMarketAccountData: Map<number, SpotMarketAccount>;
35
35
  initialOraclePriceData: Map<string, OraclePriceData>;
36
- customPerpMarketAccountSubscriber?: new (accountName: string, program: Program, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => any, resubOpts?: ResubOpts, commitment?: Commitment) => AccountSubscriber<any>;
37
- customOracleAccountSubscriber?: new (accountName: string, program: Program, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => any, resubOpts?: ResubOpts, commitment?: Commitment) => AccountSubscriber<any>;
36
+ customPerpMarketAccountSubscriber?: new (accountName: string, program: DriftProgram, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => any, resubOpts?: ResubOpts, commitment?: Commitment) => AccountSubscriber<any>;
37
+ customOracleAccountSubscriber?: new (accountName: string, program: DriftProgram, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => any, resubOpts?: ResubOpts, commitment?: Commitment) => AccountSubscriber<any>;
38
38
  protected isSubscribing: boolean;
39
39
  protected subscriptionPromise: Promise<boolean>;
40
40
  protected subscriptionPromiseResolver: (val: boolean) => void;
41
- constructor(program: Program, perpMarketIndexes: number[], spotMarketIndexes: number[], oracleInfos: OracleInfo[], shouldFindAllMarketsAndOracles: boolean, delistedMarketSetting: DelistedMarketSetting, resubOpts?: ResubOpts, commitment?: Commitment, customPerpMarketAccountSubscriber?: new (accountName: string, program: Program, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => any, resubOpts?: ResubOpts, commitment?: Commitment) => WebSocketAccountSubscriberV2<any> | WebSocketAccountSubscriber<any>, customOracleAccountSubscriber?: new (accountName: string, program: Program, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => any, resubOpts?: ResubOpts, commitment?: Commitment) => WebSocketAccountSubscriberV2<any> | WebSocketAccountSubscriber<any>);
41
+ constructor(program: DriftProgram, perpMarketIndexes: number[], spotMarketIndexes: number[], oracleInfos: OracleInfo[], shouldFindAllMarketsAndOracles: boolean, delistedMarketSetting: DelistedMarketSetting, resubOpts?: ResubOpts, commitment?: Commitment, customPerpMarketAccountSubscriber?: new (accountName: string, program: DriftProgram, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => any, resubOpts?: ResubOpts, commitment?: Commitment) => WebSocketAccountSubscriberV2<any> | WebSocketAccountSubscriber<any>, customOracleAccountSubscriber?: new (accountName: string, program: DriftProgram, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => any, resubOpts?: ResubOpts, commitment?: Commitment) => WebSocketAccountSubscriberV2<any> | WebSocketAccountSubscriber<any>);
42
42
  subscribe(): Promise<boolean>;
43
43
  chunks: <T>(array: readonly T[], size: number) => T[][];
44
44
  setInitialData(): Promise<void>;
@@ -99,7 +99,7 @@ class WebSocketDriftClientAccountSubscriber {
99
99
  this.initialPerpMarketAccountData = new Map(perpMarketAccountInfos
100
100
  .filter((accountInfo) => !!accountInfo)
101
101
  .map((accountInfo) => {
102
- const perpMarket = this.program.coder.accounts.decode('PerpMarket', accountInfo.data);
102
+ const perpMarket = this.program.coder.accounts.decode('perpMarket', accountInfo.data);
103
103
  return [perpMarket.marketIndex, perpMarket];
104
104
  }));
105
105
  }
@@ -110,7 +110,7 @@ class WebSocketDriftClientAccountSubscriber {
110
110
  this.initialSpotMarketAccountData = new Map(spotMarketAccountInfos
111
111
  .filter((accountInfo) => !!accountInfo)
112
112
  .map((accountInfo) => {
113
- const spotMarket = this.program.coder.accounts.decode('SpotMarket', accountInfo.data);
113
+ const spotMarket = this.program.coder.accounts.decode('spotMarket', accountInfo.data);
114
114
  return [spotMarket.marketIndex, spotMarket];
115
115
  }));
116
116
  }
@@ -1,18 +1,18 @@
1
1
  /// <reference types="node" />
2
2
  import { AccountSubscriber, DataAndSlot, DelistedMarketSetting, DriftClientAccountEvents, DriftClientAccountSubscriber, ResubOpts } from './types';
3
3
  import { PerpMarketAccount, SpotMarketAccount, StateAccount } from '../types';
4
- import { Program } from '@coral-xyz/anchor';
5
4
  import StrictEventEmitter from 'strict-event-emitter-types';
6
5
  import { EventEmitter } from 'events';
7
6
  import { PublicKey } from '@solana/web3.js';
8
7
  import { Commitment } from 'gill';
9
8
  import { OracleInfo, OraclePriceData } from '../oracles/types';
10
9
  import { OracleClientCache } from '../oracles/oracleClientCache';
10
+ import { DriftProgram } from '../config';
11
11
  import { WebSocketProgramAccountsSubscriberV2 } from './webSocketProgramAccountsSubscriberV2';
12
12
  import { WebSocketAccountSubscriberV2 } from './webSocketAccountSubscriberV2';
13
13
  export declare class WebSocketDriftClientAccountSubscriberV2 implements DriftClientAccountSubscriber {
14
14
  isSubscribed: boolean;
15
- program: Program;
15
+ program: DriftProgram;
16
16
  commitment?: Commitment;
17
17
  perpMarketIndexes: number[];
18
18
  spotMarketIndexes: number[];
@@ -41,7 +41,7 @@ export declare class WebSocketDriftClientAccountSubscriberV2 implements DriftCli
41
41
  protected subscriptionPromiseResolver: (val: boolean) => void;
42
42
  private rpc;
43
43
  private rpcSubscriptions;
44
- constructor(program: Program, perpMarketIndexes: number[], spotMarketIndexes: number[], oracleInfos: OracleInfo[], shouldFindAllMarketsAndOracles: boolean, delistedMarketSetting: DelistedMarketSetting, resubOpts?: ResubOpts, commitment?: Commitment, skipInitialData?: boolean);
44
+ constructor(program: DriftProgram, perpMarketIndexes: number[], spotMarketIndexes: number[], oracleInfos: OracleInfo[], shouldFindAllMarketsAndOracles: boolean, delistedMarketSetting: DelistedMarketSetting, resubOpts?: ResubOpts, commitment?: Commitment, skipInitialData?: boolean);
45
45
  subscribe(): Promise<boolean>;
46
46
  chunks: <T>(array: readonly T[], size: number) => T[][];
47
47
  fetch(): Promise<void>;
@@ -92,13 +92,13 @@ class WebSocketDriftClientAccountSubscriberV2 {
92
92
  }
93
93
  // Create subscribers
94
94
  this.perpMarketAllAccountsSubscriber =
95
- new webSocketProgramAccountsSubscriberV2_1.WebSocketProgramAccountsSubscriberV2('PerpMarketAccountsSubscriber', 'PerpMarket', this.program, this.program.account.perpMarket.coder.accounts.decodeUnchecked.bind(this.program.account.perpMarket.coder.accounts), {
95
+ new webSocketProgramAccountsSubscriberV2_1.WebSocketProgramAccountsSubscriberV2('PerpMarketAccountsSubscriber', 'perpMarket', this.program, this.program.account.perpMarket.coder.accounts.decodeUnchecked.bind(this.program.account.perpMarket.coder.accounts), {
96
96
  filters: [(0, memcmp_1.getPerpMarketAccountsFilter)()],
97
97
  commitment: this.commitment,
98
98
  }, this.resubOpts, perpMarketAccountPubkeys // because we pass these in, it will monitor these accounts and fetch them right away
99
99
  );
100
100
  this.spotMarketAllAccountsSubscriber =
101
- new webSocketProgramAccountsSubscriberV2_1.WebSocketProgramAccountsSubscriberV2('SpotMarketAccountsSubscriber', 'SpotMarket', this.program, this.program.account.spotMarket.coder.accounts.decodeUnchecked.bind(this.program.account.spotMarket.coder.accounts), {
101
+ new webSocketProgramAccountsSubscriberV2_1.WebSocketProgramAccountsSubscriberV2('SpotMarketAccountsSubscriber', 'spotMarket', this.program, this.program.account.spotMarket.coder.accounts.decodeUnchecked.bind(this.program.account.spotMarket.coder.accounts), {
102
102
  filters: [(0, memcmp_1.getSpotMarketAccountsFilter)()],
103
103
  commitment: this.commitment,
104
104
  }, this.resubOpts, spotMarketAccountPubkeys // because we pass these in, it will monitor these accounts and fetch them right away
@@ -1,19 +1,19 @@
1
1
  /// <reference types="node" />
2
2
  import { DataAndSlot, AccountSubscriber, InsuranceFundStakeAccountEvents, InsuranceFundStakeAccountSubscriber } from './types';
3
- import { Program } from '@coral-xyz/anchor';
4
3
  import StrictEventEmitter from 'strict-event-emitter-types';
5
4
  import { EventEmitter } from 'events';
6
5
  import { Commitment, PublicKey } from '@solana/web3.js';
7
6
  import { InsuranceFundStake } from '../types';
7
+ import { DriftProgram } from '../config';
8
8
  export declare class WebSocketInsuranceFundStakeAccountSubscriber implements InsuranceFundStakeAccountSubscriber {
9
9
  isSubscribed: boolean;
10
10
  resubTimeoutMs?: number;
11
11
  commitment?: Commitment;
12
- program: Program;
12
+ program: DriftProgram;
13
13
  eventEmitter: StrictEventEmitter<EventEmitter, InsuranceFundStakeAccountEvents>;
14
14
  insuranceFundStakeAccountPublicKey: PublicKey;
15
15
  insuranceFundStakeDataAccountSubscriber: AccountSubscriber<InsuranceFundStake>;
16
- constructor(program: Program, insuranceFundStakeAccountPublicKey: PublicKey, resubTimeoutMs?: number, commitment?: Commitment);
16
+ constructor(program: DriftProgram, insuranceFundStakeAccountPublicKey: PublicKey, resubTimeoutMs?: number, commitment?: Commitment);
17
17
  subscribe(insuranceFundStakeAccount?: InsuranceFundStake): Promise<boolean>;
18
18
  fetch(): Promise<void>;
19
19
  unsubscribe(): Promise<void>;
@@ -1,13 +1,13 @@
1
1
  /// <reference types="node" />
2
2
  import { BufferAndSlot, ProgramAccountSubscriber, ResubOpts } from './types';
3
- import { Program } from '@coral-xyz/anchor';
4
3
  import { Commitment, Context, KeyedAccountInfo, MemcmpFilter, PublicKey } from '@solana/web3.js';
4
+ import { DriftProgram } from '../config';
5
5
  export declare class WebSocketProgramAccountSubscriber<T> implements ProgramAccountSubscriber<T> {
6
6
  subscriptionName: string;
7
7
  accountDiscriminator: string;
8
8
  bufferAndSlot?: BufferAndSlot;
9
9
  bufferAndSlotMap: Map<string, BufferAndSlot>;
10
- program: Program;
10
+ program: DriftProgram;
11
11
  decodeBuffer: (accountName: string, ix: Buffer) => T;
12
12
  onChange: (accountId: PublicKey, data: T, context: Context, buffer: Buffer) => void;
13
13
  listenerId?: number;
@@ -19,7 +19,7 @@ export declare class WebSocketProgramAccountSubscriber<T> implements ProgramAcco
19
19
  commitment?: Commitment;
20
20
  };
21
21
  receivingData: boolean;
22
- constructor(subscriptionName: string, accountDiscriminator: string, program: Program, decodeBufferFn: (accountName: string, ix: Buffer) => T, options?: {
22
+ constructor(subscriptionName: string, accountDiscriminator: string, program: DriftProgram, decodeBufferFn: (accountName: string, ix: Buffer) => T, options?: {
23
23
  filters: MemcmpFilter[];
24
24
  commitment?: Commitment;
25
25
  }, resubOpts?: ResubOpts);
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node" />
3
3
  import { BufferAndSlot, ProgramAccountSubscriber, ResubOpts } from './types';
4
- import { Program } from '@coral-xyz/anchor';
4
+ import { DriftProgram } from '../config';
5
5
  import { Commitment, Context, MemcmpFilter, PublicKey } from '@solana/web3.js';
6
6
  import { AccountInfoBase, AccountInfoWithBase58EncodedData, AccountInfoWithBase64EncodedData, Address } from 'gill';
7
7
  /**
@@ -67,7 +67,7 @@ export declare class WebSocketProgramAccountsSubscriberV2<T> implements ProgramA
67
67
  subscriptionName: string;
68
68
  accountDiscriminator: string;
69
69
  bufferAndSlotMap: Map<string, BufferAndSlot>;
70
- program: Program;
70
+ program: DriftProgram;
71
71
  decodeBuffer: (accountName: string, ix: Buffer) => T;
72
72
  onChange: (accountId: PublicKey, data: T, context: Context, buffer: Buffer) => void;
73
73
  listenerId?: number;
@@ -93,7 +93,7 @@ export declare class WebSocketProgramAccountsSubscriberV2<T> implements ProgramA
93
93
  private missedChangeDetected;
94
94
  private resubscriptionTimeout?;
95
95
  private accountsWithMissedUpdates;
96
- constructor(subscriptionName: string, accountDiscriminator: string, program: Program, decodeBufferFn: (accountName: string, ix: Buffer) => T, options?: {
96
+ constructor(subscriptionName: string, accountDiscriminator: string, program: DriftProgram, decodeBufferFn: (accountName: string, ix: Buffer) => T, options?: {
97
97
  filters: MemcmpFilter[];
98
98
  commitment?: Commitment;
99
99
  }, resubOpts?: ResubOpts, accountsToMonitor?: PublicKey[]);
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node" />
3
3
  import { BufferAndSlot, ProgramAccountSubscriber, ResubOpts } from './types';
4
- import { Program } from '@coral-xyz/anchor';
4
+ import { DriftProgram } from '../config';
5
5
  import { Commitment, Context, MemcmpFilter, PublicKey } from '@solana/web3.js';
6
6
  import { AccountInfoBase, AccountInfoWithBase58EncodedData, AccountInfoWithBase64EncodedData, Address } from 'gill';
7
7
  /**
@@ -67,7 +67,7 @@ export declare class WebSocketProgramAccountsSubscriberV2<T> implements ProgramA
67
67
  subscriptionName: string;
68
68
  accountDiscriminator: string;
69
69
  bufferAndSlotMap: Map<string, BufferAndSlot>;
70
- program: Program;
70
+ program: DriftProgram;
71
71
  decodeBuffer: (accountName: string, ix: Buffer) => T;
72
72
  onChange: (accountId: PublicKey, data: T, context: Context, buffer: Buffer) => void;
73
73
  listenerId?: number;
@@ -93,7 +93,7 @@ export declare class WebSocketProgramAccountsSubscriberV2<T> implements ProgramA
93
93
  private missedChangeDetected;
94
94
  private resubscriptionTimeout?;
95
95
  private accountsWithMissedUpdates;
96
- constructor(subscriptionName: string, accountDiscriminator: string, program: Program, decodeBufferFn: (accountName: string, ix: Buffer) => T, options?: {
96
+ constructor(subscriptionName: string, accountDiscriminator: string, program: DriftProgram, decodeBufferFn: (accountName: string, ix: Buffer) => T, options?: {
97
97
  filters: MemcmpFilter[];
98
98
  commitment?: Commitment;
99
99
  }, resubOpts?: ResubOpts, accountsToMonitor?: PublicKey[]);