@drift-labs/sdk-browser 2.163.0-beta.11 → 2.163.0-beta.13

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 (482) hide show
  1. package/VERSION +1 -1
  2. package/bun.lock +26 -13
  3. package/lib/browser/accounts/fetch.d.ts +9 -0
  4. package/lib/browser/accounts/fetch.js +14 -1
  5. package/lib/browser/addresses/pda.d.ts +1 -1
  6. package/lib/browser/addresses/pda.js +2 -2
  7. package/lib/browser/adminClient.d.ts +1 -1
  8. package/lib/browser/adminClient.js +2 -2
  9. package/lib/browser/bankrun/bankrunConnection.d.ts +1 -1
  10. package/lib/browser/bankrun/bankrunConnection.js +1 -1
  11. package/lib/browser/clock/clockSubscriber.js +1 -1
  12. package/lib/browser/config.d.ts +1 -1
  13. package/lib/browser/constants/numericConstants.d.ts +1 -1
  14. package/lib/browser/constants/numericConstants.js +1 -1
  15. package/lib/browser/constants/perpMarkets.js +1 -1
  16. package/lib/browser/constants/spotMarkets.d.ts +1 -1
  17. package/lib/browser/constants/spotMarkets.js +4 -3
  18. package/lib/browser/core/DriftCore.d.ts +224 -0
  19. package/lib/browser/core/DriftCore.js +138 -0
  20. package/lib/browser/core/index.d.ts +12 -0
  21. package/lib/browser/core/index.js +28 -0
  22. package/lib/browser/core/instructions/deposit.d.ts +19 -0
  23. package/lib/browser/core/instructions/deposit.js +19 -0
  24. package/lib/browser/core/instructions/fill.d.ts +13 -0
  25. package/lib/browser/core/instructions/fill.js +17 -0
  26. package/lib/browser/core/instructions/funding.d.ts +9 -0
  27. package/lib/browser/core/instructions/funding.js +13 -0
  28. package/lib/browser/core/instructions/liquidation.d.ts +15 -0
  29. package/lib/browser/core/instructions/liquidation.js +17 -0
  30. package/lib/browser/core/instructions/orders.d.ts +22 -0
  31. package/lib/browser/core/instructions/orders.js +27 -0
  32. package/lib/browser/core/instructions/perpOrders.d.ts +78 -0
  33. package/lib/browser/core/instructions/perpOrders.js +99 -0
  34. package/lib/browser/core/instructions/settlement.d.ts +11 -0
  35. package/lib/browser/core/instructions/settlement.js +15 -0
  36. package/lib/browser/core/instructions/trigger.d.ts +11 -0
  37. package/lib/browser/core/instructions/trigger.js +15 -0
  38. package/lib/browser/core/instructions/withdraw.d.ts +20 -0
  39. package/lib/browser/core/instructions/withdraw.js +20 -0
  40. package/lib/browser/core/remainingAccounts.d.ts +27 -0
  41. package/lib/browser/core/remainingAccounts.js +122 -0
  42. package/lib/browser/core/signedMsg.d.ts +17 -0
  43. package/lib/browser/core/signedMsg.js +39 -0
  44. package/lib/browser/decode/customCoder.d.ts +1 -1
  45. package/lib/browser/decode/customCoder.js +1 -1
  46. package/lib/browser/decode/user.js +1 -1
  47. package/lib/browser/dlob/DLOB.d.ts +1 -1
  48. package/lib/browser/dlob/DLOB.js +1 -1
  49. package/lib/browser/dlob/DLOBNode.d.ts +1 -1
  50. package/lib/browser/dlob/DLOBNode.js +1 -1
  51. package/lib/browser/dlob/DLOBSubscriber.d.ts +1 -1
  52. package/lib/browser/dlob/NodeList.d.ts +1 -1
  53. package/lib/browser/dlob/orderBookLevels.d.ts +1 -1
  54. package/lib/browser/dlob/orderBookLevels.js +1 -1
  55. package/lib/browser/driftClient.d.ts +17 -24
  56. package/lib/browser/driftClient.js +192 -291
  57. package/lib/browser/driftClientConfig.d.ts +1 -1
  58. package/lib/browser/events/eventSubscriber.d.ts +1 -1
  59. package/lib/browser/events/fetchLogs.d.ts +1 -1
  60. package/lib/browser/events/parse.d.ts +1 -1
  61. package/lib/browser/factory/bigNum.d.ts +1 -1
  62. package/lib/browser/factory/bigNum.js +1 -1
  63. package/lib/browser/factory/oracleClient.js +1 -1
  64. package/lib/browser/index.d.ts +2 -1
  65. package/lib/browser/index.js +2 -1
  66. package/lib/browser/indicative-quotes/indicativeQuotesSender.d.ts +1 -1
  67. package/lib/browser/isomorphic/anchor.browser.d.ts +24 -0
  68. package/lib/browser/isomorphic/anchor.browser.js +60 -0
  69. package/lib/browser/isomorphic/anchor.d.ts +24 -0
  70. package/lib/browser/isomorphic/anchor.js +60 -0
  71. package/lib/browser/isomorphic/anchor29.browser.d.ts +12 -0
  72. package/lib/browser/isomorphic/anchor29.browser.js +48 -0
  73. package/lib/browser/isomorphic/anchor29.d.ts +12 -0
  74. package/lib/browser/isomorphic/anchor29.js +48 -0
  75. package/lib/browser/jupiter/jupiterClient.d.ts +1 -1
  76. package/lib/browser/marginCalculation.d.ts +1 -1
  77. package/lib/browser/marinade/index.d.ts +1 -1
  78. package/lib/browser/marinade/index.js +2 -2
  79. package/lib/browser/math/amm.d.ts +1 -1
  80. package/lib/browser/math/amm.js +1 -1
  81. package/lib/browser/math/auction.d.ts +1 -1
  82. package/lib/browser/math/auction.js +1 -1
  83. package/lib/browser/math/conversion.d.ts +1 -1
  84. package/lib/browser/math/conversion.js +1 -1
  85. package/lib/browser/math/exchangeStatus.js +1 -1
  86. package/lib/browser/math/fuel.d.ts +1 -1
  87. package/lib/browser/math/fuel.js +1 -1
  88. package/lib/browser/math/funding.d.ts +1 -1
  89. package/lib/browser/math/funding.js +1 -1
  90. package/lib/browser/math/insurance.d.ts +1 -1
  91. package/lib/browser/math/insurance.js +1 -1
  92. package/lib/browser/math/liquidation.d.ts +1 -1
  93. package/lib/browser/math/liquidation.js +1 -1
  94. package/lib/browser/math/margin.d.ts +1 -1
  95. package/lib/browser/math/margin.js +1 -1
  96. package/lib/browser/math/market.d.ts +1 -1
  97. package/lib/browser/math/market.js +1 -1
  98. package/lib/browser/math/oracles.d.ts +1 -1
  99. package/lib/browser/math/oracles.js +1 -1
  100. package/lib/browser/math/orders.d.ts +1 -1
  101. package/lib/browser/math/orders.js +1 -1
  102. package/lib/browser/math/position.d.ts +1 -1
  103. package/lib/browser/math/position.js +1 -1
  104. package/lib/browser/math/protectedMakerParams.js +1 -1
  105. package/lib/browser/math/repeg.d.ts +1 -1
  106. package/lib/browser/math/repeg.js +1 -1
  107. package/lib/browser/math/spotBalance.d.ts +1 -1
  108. package/lib/browser/math/spotBalance.js +1 -1
  109. package/lib/browser/math/spotMarket.d.ts +1 -1
  110. package/lib/browser/math/spotMarket.js +1 -1
  111. package/lib/browser/math/spotPosition.d.ts +1 -1
  112. package/lib/browser/math/spotPosition.js +1 -1
  113. package/lib/browser/math/state.d.ts +1 -1
  114. package/lib/browser/math/state.js +1 -1
  115. package/lib/browser/math/superStake.d.ts +1 -1
  116. package/lib/browser/math/superStake.js +1 -1
  117. package/lib/browser/math/trade.d.ts +1 -1
  118. package/lib/browser/math/trade.js +1 -1
  119. package/lib/browser/math/utils.d.ts +1 -1
  120. package/lib/browser/math/utils.js +1 -1
  121. package/lib/browser/memcmp.js +8 -8
  122. package/lib/browser/openbook/openbookV2Subscriber.d.ts +1 -1
  123. package/lib/browser/openbook/openbookV2Subscriber.js +3 -3
  124. package/lib/browser/oracles/pythClient.d.ts +1 -1
  125. package/lib/browser/oracles/pythClient.js +1 -1
  126. package/lib/browser/oracles/pythLazerClient.d.ts +1 -1
  127. package/lib/browser/oracles/pythLazerClient.js +1 -1
  128. package/lib/browser/oracles/quoteAssetOracleClient.js +1 -1
  129. package/lib/browser/oracles/strictOraclePrice.d.ts +1 -1
  130. package/lib/browser/oracles/strictOraclePrice.js +1 -1
  131. package/lib/browser/oracles/types.d.ts +1 -1
  132. package/lib/browser/oracles/utils.d.ts +1 -1
  133. package/lib/browser/orderParams.d.ts +1 -1
  134. package/lib/browser/orderSubscriber/OrderSubscriber.js +1 -1
  135. package/lib/browser/phoenix/phoenixSubscriber.d.ts +1 -1
  136. package/lib/browser/phoenix/phoenixSubscriber.js +1 -1
  137. package/lib/browser/pyth/types.d.ts +1 -1
  138. package/lib/browser/serum/serumSubscriber.d.ts +1 -1
  139. package/lib/browser/serum/serumSubscriber.js +1 -1
  140. package/lib/browser/slot/SlothashSubscriber.js +6 -3
  141. package/lib/browser/swap/UnifiedSwapClient.d.ts +1 -1
  142. package/lib/browser/titan/titanClient.d.ts +1 -1
  143. package/lib/browser/tokenFaucet.d.ts +3 -3
  144. package/lib/browser/tokenFaucet.js +4 -4
  145. package/lib/browser/types.d.ts +1 -1
  146. package/lib/browser/user.d.ts +1 -1
  147. package/lib/browser/user.js +1 -1
  148. package/lib/browser/userMap/referrerMap.js +7 -4
  149. package/lib/browser/userStats.d.ts +1 -1
  150. package/lib/browser/userStats.js +1 -1
  151. package/lib/node/accounts/fetch.d.ts +9 -0
  152. package/lib/node/accounts/fetch.d.ts.map +1 -1
  153. package/lib/node/accounts/fetch.js +14 -1
  154. package/lib/node/addresses/pda.d.ts +1 -1
  155. package/lib/node/addresses/pda.d.ts.map +1 -1
  156. package/lib/node/addresses/pda.js +2 -2
  157. package/lib/node/adminClient.d.ts +1 -1
  158. package/lib/node/adminClient.d.ts.map +1 -1
  159. package/lib/node/adminClient.js +2 -2
  160. package/lib/node/bankrun/bankrunConnection.d.ts +1 -1
  161. package/lib/node/bankrun/bankrunConnection.d.ts.map +1 -1
  162. package/lib/node/bankrun/bankrunConnection.js +1 -1
  163. package/lib/node/clock/clockSubscriber.js +1 -1
  164. package/lib/node/config.d.ts +1 -1
  165. package/lib/node/config.d.ts.map +1 -1
  166. package/lib/node/constants/numericConstants.d.ts +1 -1
  167. package/lib/node/constants/numericConstants.d.ts.map +1 -1
  168. package/lib/node/constants/numericConstants.js +1 -1
  169. package/lib/node/constants/perpMarkets.js +1 -1
  170. package/lib/node/constants/spotMarkets.d.ts +1 -1
  171. package/lib/node/constants/spotMarkets.d.ts.map +1 -1
  172. package/lib/node/constants/spotMarkets.js +4 -3
  173. package/lib/node/core/DriftCore.d.ts +225 -0
  174. package/lib/node/core/DriftCore.d.ts.map +1 -0
  175. package/lib/node/core/DriftCore.js +138 -0
  176. package/lib/node/core/index.d.ts +13 -0
  177. package/lib/node/core/index.d.ts.map +1 -0
  178. package/lib/node/core/index.js +28 -0
  179. package/lib/node/core/instructions/deposit.d.ts +20 -0
  180. package/lib/node/core/instructions/deposit.d.ts.map +1 -0
  181. package/lib/node/core/instructions/deposit.js +19 -0
  182. package/lib/node/core/instructions/fill.d.ts +14 -0
  183. package/lib/node/core/instructions/fill.d.ts.map +1 -0
  184. package/lib/node/core/instructions/fill.js +17 -0
  185. package/lib/node/core/instructions/funding.d.ts +10 -0
  186. package/lib/node/core/instructions/funding.d.ts.map +1 -0
  187. package/lib/node/core/instructions/funding.js +13 -0
  188. package/lib/node/core/instructions/liquidation.d.ts +16 -0
  189. package/lib/node/core/instructions/liquidation.d.ts.map +1 -0
  190. package/lib/node/core/instructions/liquidation.js +17 -0
  191. package/lib/node/core/instructions/orders.d.ts +23 -0
  192. package/lib/node/core/instructions/orders.d.ts.map +1 -0
  193. package/lib/node/core/instructions/orders.js +27 -0
  194. package/lib/node/core/instructions/perpOrders.d.ts +79 -0
  195. package/lib/node/core/instructions/perpOrders.d.ts.map +1 -0
  196. package/lib/node/core/instructions/perpOrders.js +99 -0
  197. package/lib/node/core/instructions/settlement.d.ts +12 -0
  198. package/lib/node/core/instructions/settlement.d.ts.map +1 -0
  199. package/lib/node/core/instructions/settlement.js +15 -0
  200. package/lib/node/core/instructions/trigger.d.ts +12 -0
  201. package/lib/node/core/instructions/trigger.d.ts.map +1 -0
  202. package/lib/node/core/instructions/trigger.js +15 -0
  203. package/lib/node/core/instructions/withdraw.d.ts +21 -0
  204. package/lib/node/core/instructions/withdraw.d.ts.map +1 -0
  205. package/lib/node/core/instructions/withdraw.js +20 -0
  206. package/lib/node/core/remainingAccounts.d.ts +28 -0
  207. package/lib/node/core/remainingAccounts.d.ts.map +1 -0
  208. package/lib/node/core/remainingAccounts.js +122 -0
  209. package/lib/node/core/signedMsg.d.ts +18 -0
  210. package/lib/node/core/signedMsg.d.ts.map +1 -0
  211. package/lib/node/core/signedMsg.js +39 -0
  212. package/lib/node/decode/customCoder.d.ts +1 -1
  213. package/lib/node/decode/customCoder.d.ts.map +1 -1
  214. package/lib/node/decode/customCoder.js +1 -1
  215. package/lib/node/decode/user.js +1 -1
  216. package/lib/node/dlob/DLOB.d.ts +1 -1
  217. package/lib/node/dlob/DLOB.d.ts.map +1 -1
  218. package/lib/node/dlob/DLOB.js +1 -1
  219. package/lib/node/dlob/DLOBNode.d.ts +1 -1
  220. package/lib/node/dlob/DLOBNode.d.ts.map +1 -1
  221. package/lib/node/dlob/DLOBNode.js +1 -1
  222. package/lib/node/dlob/DLOBSubscriber.d.ts +1 -1
  223. package/lib/node/dlob/DLOBSubscriber.d.ts.map +1 -1
  224. package/lib/node/dlob/NodeList.d.ts +1 -1
  225. package/lib/node/dlob/NodeList.d.ts.map +1 -1
  226. package/lib/node/dlob/orderBookLevels.d.ts +1 -1
  227. package/lib/node/dlob/orderBookLevels.d.ts.map +1 -1
  228. package/lib/node/dlob/orderBookLevels.js +1 -1
  229. package/lib/node/driftClient.d.ts +17 -24
  230. package/lib/node/driftClient.d.ts.map +1 -1
  231. package/lib/node/driftClient.js +192 -291
  232. package/lib/node/driftClientConfig.d.ts +1 -1
  233. package/lib/node/driftClientConfig.d.ts.map +1 -1
  234. package/lib/node/events/eventSubscriber.d.ts +1 -1
  235. package/lib/node/events/eventSubscriber.d.ts.map +1 -1
  236. package/lib/node/events/fetchLogs.d.ts +1 -1
  237. package/lib/node/events/fetchLogs.d.ts.map +1 -1
  238. package/lib/node/events/parse.d.ts +1 -1
  239. package/lib/node/events/parse.d.ts.map +1 -1
  240. package/lib/node/factory/bigNum.d.ts +1 -1
  241. package/lib/node/factory/bigNum.d.ts.map +1 -1
  242. package/lib/node/factory/bigNum.js +1 -1
  243. package/lib/node/factory/oracleClient.js +1 -1
  244. package/lib/node/index.d.ts +2 -1
  245. package/lib/node/index.d.ts.map +1 -1
  246. package/lib/node/index.js +2 -1
  247. package/lib/node/indicative-quotes/indicativeQuotesSender.d.ts +1 -1
  248. package/lib/node/indicative-quotes/indicativeQuotesSender.d.ts.map +1 -1
  249. package/lib/node/isomorphic/anchor.browser.d.ts +25 -0
  250. package/lib/node/isomorphic/anchor.browser.d.ts.map +1 -0
  251. package/lib/node/isomorphic/anchor.browser.js +60 -0
  252. package/lib/node/isomorphic/anchor.d.ts +25 -0
  253. package/lib/node/isomorphic/anchor.d.ts.map +1 -0
  254. package/lib/node/isomorphic/anchor.js +60 -0
  255. package/lib/node/isomorphic/anchor.node.d.ts.map +1 -0
  256. package/lib/node/isomorphic/anchor29.browser.d.ts +13 -0
  257. package/lib/node/isomorphic/anchor29.browser.d.ts.map +1 -0
  258. package/lib/node/isomorphic/anchor29.browser.js +48 -0
  259. package/lib/node/isomorphic/anchor29.d.ts +13 -0
  260. package/lib/node/isomorphic/anchor29.d.ts.map +1 -0
  261. package/lib/node/isomorphic/anchor29.js +48 -0
  262. package/lib/node/isomorphic/anchor29.node.d.ts.map +1 -0
  263. package/lib/node/jupiter/jupiterClient.d.ts +1 -1
  264. package/lib/node/jupiter/jupiterClient.d.ts.map +1 -1
  265. package/lib/node/marginCalculation.d.ts +1 -1
  266. package/lib/node/marginCalculation.d.ts.map +1 -1
  267. package/lib/node/marinade/index.d.ts +1 -1
  268. package/lib/node/marinade/index.d.ts.map +1 -1
  269. package/lib/node/marinade/index.js +2 -2
  270. package/lib/node/math/amm.d.ts +1 -1
  271. package/lib/node/math/amm.d.ts.map +1 -1
  272. package/lib/node/math/amm.js +1 -1
  273. package/lib/node/math/auction.d.ts +1 -1
  274. package/lib/node/math/auction.d.ts.map +1 -1
  275. package/lib/node/math/auction.js +1 -1
  276. package/lib/node/math/conversion.d.ts +1 -1
  277. package/lib/node/math/conversion.d.ts.map +1 -1
  278. package/lib/node/math/conversion.js +1 -1
  279. package/lib/node/math/exchangeStatus.js +1 -1
  280. package/lib/node/math/fuel.d.ts +1 -1
  281. package/lib/node/math/fuel.d.ts.map +1 -1
  282. package/lib/node/math/fuel.js +1 -1
  283. package/lib/node/math/funding.d.ts +1 -1
  284. package/lib/node/math/funding.d.ts.map +1 -1
  285. package/lib/node/math/funding.js +1 -1
  286. package/lib/node/math/insurance.d.ts +1 -1
  287. package/lib/node/math/insurance.d.ts.map +1 -1
  288. package/lib/node/math/insurance.js +1 -1
  289. package/lib/node/math/liquidation.d.ts +1 -1
  290. package/lib/node/math/liquidation.d.ts.map +1 -1
  291. package/lib/node/math/liquidation.js +1 -1
  292. package/lib/node/math/margin.d.ts +1 -1
  293. package/lib/node/math/margin.d.ts.map +1 -1
  294. package/lib/node/math/margin.js +1 -1
  295. package/lib/node/math/market.d.ts +1 -1
  296. package/lib/node/math/market.d.ts.map +1 -1
  297. package/lib/node/math/market.js +1 -1
  298. package/lib/node/math/oracles.d.ts +1 -1
  299. package/lib/node/math/oracles.d.ts.map +1 -1
  300. package/lib/node/math/oracles.js +1 -1
  301. package/lib/node/math/orders.d.ts +1 -1
  302. package/lib/node/math/orders.d.ts.map +1 -1
  303. package/lib/node/math/orders.js +1 -1
  304. package/lib/node/math/position.d.ts +1 -1
  305. package/lib/node/math/position.d.ts.map +1 -1
  306. package/lib/node/math/position.js +1 -1
  307. package/lib/node/math/protectedMakerParams.js +1 -1
  308. package/lib/node/math/repeg.d.ts +1 -1
  309. package/lib/node/math/repeg.d.ts.map +1 -1
  310. package/lib/node/math/repeg.js +1 -1
  311. package/lib/node/math/spotBalance.d.ts +1 -1
  312. package/lib/node/math/spotBalance.d.ts.map +1 -1
  313. package/lib/node/math/spotBalance.js +1 -1
  314. package/lib/node/math/spotMarket.d.ts +1 -1
  315. package/lib/node/math/spotMarket.d.ts.map +1 -1
  316. package/lib/node/math/spotMarket.js +1 -1
  317. package/lib/node/math/spotPosition.d.ts +1 -1
  318. package/lib/node/math/spotPosition.d.ts.map +1 -1
  319. package/lib/node/math/spotPosition.js +1 -1
  320. package/lib/node/math/state.d.ts +1 -1
  321. package/lib/node/math/state.d.ts.map +1 -1
  322. package/lib/node/math/state.js +1 -1
  323. package/lib/node/math/superStake.d.ts +1 -1
  324. package/lib/node/math/superStake.d.ts.map +1 -1
  325. package/lib/node/math/superStake.js +1 -1
  326. package/lib/node/math/trade.d.ts +1 -1
  327. package/lib/node/math/trade.d.ts.map +1 -1
  328. package/lib/node/math/trade.js +1 -1
  329. package/lib/node/math/utils.d.ts +1 -1
  330. package/lib/node/math/utils.d.ts.map +1 -1
  331. package/lib/node/math/utils.js +1 -1
  332. package/lib/node/memcmp.js +8 -8
  333. package/lib/node/openbook/openbookV2Subscriber.d.ts +1 -1
  334. package/lib/node/openbook/openbookV2Subscriber.d.ts.map +1 -1
  335. package/lib/node/openbook/openbookV2Subscriber.js +3 -3
  336. package/lib/node/oracles/pythClient.d.ts +1 -1
  337. package/lib/node/oracles/pythClient.d.ts.map +1 -1
  338. package/lib/node/oracles/pythClient.js +1 -1
  339. package/lib/node/oracles/pythLazerClient.d.ts +1 -1
  340. package/lib/node/oracles/pythLazerClient.d.ts.map +1 -1
  341. package/lib/node/oracles/pythLazerClient.js +1 -1
  342. package/lib/node/oracles/quoteAssetOracleClient.js +1 -1
  343. package/lib/node/oracles/strictOraclePrice.d.ts +1 -1
  344. package/lib/node/oracles/strictOraclePrice.d.ts.map +1 -1
  345. package/lib/node/oracles/strictOraclePrice.js +1 -1
  346. package/lib/node/oracles/types.d.ts +1 -1
  347. package/lib/node/oracles/types.d.ts.map +1 -1
  348. package/lib/node/oracles/utils.d.ts +1 -1
  349. package/lib/node/oracles/utils.d.ts.map +1 -1
  350. package/lib/node/orderParams.d.ts +1 -1
  351. package/lib/node/orderParams.d.ts.map +1 -1
  352. package/lib/node/orderSubscriber/OrderSubscriber.js +1 -1
  353. package/lib/node/phoenix/phoenixSubscriber.d.ts +1 -1
  354. package/lib/node/phoenix/phoenixSubscriber.d.ts.map +1 -1
  355. package/lib/node/phoenix/phoenixSubscriber.js +1 -1
  356. package/lib/node/pyth/types.d.ts +1 -1
  357. package/lib/node/pyth/types.d.ts.map +1 -1
  358. package/lib/node/serum/serumSubscriber.d.ts +1 -1
  359. package/lib/node/serum/serumSubscriber.d.ts.map +1 -1
  360. package/lib/node/serum/serumSubscriber.js +1 -1
  361. package/lib/node/slot/SlothashSubscriber.js +6 -3
  362. package/lib/node/swap/UnifiedSwapClient.d.ts +1 -1
  363. package/lib/node/swap/UnifiedSwapClient.d.ts.map +1 -1
  364. package/lib/node/titan/titanClient.d.ts +1 -1
  365. package/lib/node/titan/titanClient.d.ts.map +1 -1
  366. package/lib/node/tokenFaucet.d.ts +3 -3
  367. package/lib/node/tokenFaucet.d.ts.map +1 -1
  368. package/lib/node/tokenFaucet.js +4 -4
  369. package/lib/node/types.d.ts +1 -1
  370. package/lib/node/types.d.ts.map +1 -1
  371. package/lib/node/user.d.ts +1 -1
  372. package/lib/node/user.d.ts.map +1 -1
  373. package/lib/node/user.js +1 -1
  374. package/lib/node/userMap/referrerMap.js +7 -4
  375. package/lib/node/userStats.d.ts +1 -1
  376. package/lib/node/userStats.d.ts.map +1 -1
  377. package/lib/node/userStats.js +1 -1
  378. package/package.json +4 -2
  379. package/scripts/postbuild.js +1 -1
  380. package/src/accounts/fetch.ts +27 -0
  381. package/src/accounts/webSocketAccountSubscriber.ts +1 -1
  382. package/src/accounts/webSocketAccountSubscriberV2.ts +1 -1
  383. package/src/accounts/webSocketProgramAccountSubscriber.ts +1 -1
  384. package/src/accounts/webSocketProgramAccountSubscriberV2.ts +1 -1
  385. package/src/accounts/webSocketProgramAccountsSubscriberV2.ts +1 -1
  386. package/src/addresses/pda.ts +2 -2
  387. package/src/adminClient.ts +2 -2
  388. package/src/bankrun/bankrunConnection.ts +1 -1
  389. package/src/clock/clockSubscriber.ts +1 -1
  390. package/src/config.ts +1 -1
  391. package/src/constants/numericConstants.ts +1 -1
  392. package/src/constants/perpMarkets.ts +1 -1
  393. package/src/constants/spotMarkets.ts +4 -3
  394. package/src/core/DriftCore.ts +326 -0
  395. package/src/core/index.ts +12 -0
  396. package/src/core/instructions/deposit.ts +42 -0
  397. package/src/core/instructions/fill.ts +34 -0
  398. package/src/core/instructions/funding.ts +21 -0
  399. package/src/core/instructions/liquidation.ts +37 -0
  400. package/src/core/instructions/orders.ts +56 -0
  401. package/src/core/instructions/perpOrders.ts +192 -0
  402. package/src/core/instructions/settlement.ts +26 -0
  403. package/src/core/instructions/trigger.ts +26 -0
  404. package/src/core/instructions/withdraw.ts +44 -0
  405. package/src/core/remainingAccounts.ts +276 -0
  406. package/src/core/signedMsg.ts +71 -0
  407. package/src/decode/customCoder.ts +1 -1
  408. package/src/decode/user.ts +1 -1
  409. package/src/dlob/DLOB.ts +1 -1
  410. package/src/dlob/DLOBNode.ts +1 -1
  411. package/src/dlob/DLOBSubscriber.ts +1 -1
  412. package/src/dlob/NodeList.ts +1 -1
  413. package/src/dlob/orderBookLevels.ts +1 -1
  414. package/src/driftClient.ts +207 -402
  415. package/src/driftClientConfig.ts +1 -1
  416. package/src/events/eventSubscriber.ts +1 -1
  417. package/src/events/fetchLogs.ts +1 -1
  418. package/src/events/parse.ts +1 -1
  419. package/src/factory/bigNum.ts +1 -1
  420. package/src/factory/oracleClient.ts +1 -1
  421. package/src/index.ts +2 -1
  422. package/src/indicative-quotes/indicativeQuotesSender.ts +1 -1
  423. package/src/isomorphic/anchor.browser.ts +44 -0
  424. package/src/isomorphic/anchor.node.ts +1 -0
  425. package/src/isomorphic/anchor.ts +1 -0
  426. package/src/isomorphic/anchor29.browser.ts +24 -0
  427. package/src/isomorphic/anchor29.node.ts +1 -0
  428. package/src/isomorphic/anchor29.ts +1 -0
  429. package/src/jupiter/jupiterClient.ts +1 -1
  430. package/src/marginCalculation.ts +1 -1
  431. package/src/marinade/index.ts +1 -1
  432. package/src/math/amm.ts +1 -1
  433. package/src/math/auction.ts +1 -1
  434. package/src/math/conversion.ts +1 -1
  435. package/src/math/exchangeStatus.ts +1 -1
  436. package/src/math/fuel.ts +1 -1
  437. package/src/math/funding.ts +1 -1
  438. package/src/math/insurance.ts +1 -1
  439. package/src/math/liquidation.ts +1 -1
  440. package/src/math/margin.ts +1 -1
  441. package/src/math/market.ts +1 -1
  442. package/src/math/oracles.ts +1 -1
  443. package/src/math/orders.ts +1 -1
  444. package/src/math/position.ts +1 -1
  445. package/src/math/protectedMakerParams.ts +1 -1
  446. package/src/math/repeg.ts +1 -1
  447. package/src/math/spotBalance.ts +1 -1
  448. package/src/math/spotMarket.ts +1 -1
  449. package/src/math/spotPosition.ts +1 -1
  450. package/src/math/state.ts +1 -1
  451. package/src/math/superStake.ts +1 -1
  452. package/src/math/trade.ts +1 -1
  453. package/src/math/utils.ts +1 -1
  454. package/src/memcmp.ts +1 -1
  455. package/src/openbook/openbookV2Subscriber.ts +7 -1
  456. package/src/oracles/pythClient.ts +1 -1
  457. package/src/oracles/pythLazerClient.ts +1 -1
  458. package/src/oracles/quoteAssetOracleClient.ts +1 -1
  459. package/src/oracles/strictOraclePrice.ts +1 -1
  460. package/src/oracles/types.ts +1 -1
  461. package/src/oracles/utils.ts +1 -1
  462. package/src/orderParams.ts +1 -1
  463. package/src/orderSubscriber/OrderSubscriber.ts +1 -1
  464. package/src/phoenix/phoenixSubscriber.ts +1 -1
  465. package/src/pyth/types.ts +1 -1
  466. package/src/serum/serumSubscriber.ts +1 -1
  467. package/src/slot/SlothashSubscriber.ts +2 -2
  468. package/src/swap/UnifiedSwapClient.ts +1 -1
  469. package/src/titan/titanClient.ts +1 -1
  470. package/src/tokenFaucet.ts +3 -3
  471. package/src/types.ts +1 -1
  472. package/src/user.ts +1 -1
  473. package/src/userMap/referrerMap.ts +1 -1
  474. package/src/userMap/userMap.ts +1 -1
  475. package/src/userStats.ts +1 -1
  476. package/tests/DriftCore/decode.test.ts +16 -0
  477. package/tests/DriftCore/fill_trigger.test.ts +73 -0
  478. package/tests/DriftCore/instructions.test.ts +46 -0
  479. package/tests/DriftCore/pdas.test.ts +29 -0
  480. package/tests/DriftCore/perp_orders.test.ts +205 -0
  481. package/tests/DriftCore/remainingAccounts.test.ts +70 -0
  482. package/tests/DriftCore/settlement_liquidation.test.ts +69 -0
@@ -0,0 +1,27 @@
1
+ import { PublicKey, type AccountMeta } from '@solana/web3.js';
2
+ import type { UserAccount, SpotMarketAccount, PerpMarketAccount } from '../types';
3
+ export type RemainingAccountParams = {
4
+ userAccounts: UserAccount[];
5
+ writablePerpMarketIndexes?: number[];
6
+ writableSpotMarketIndexes?: number[];
7
+ readablePerpMarketIndex?: number | number[];
8
+ readableSpotMarketIndexes?: number[];
9
+ useMarketLastSlotCache?: boolean;
10
+ };
11
+ export type RemainingAccountsContext = {
12
+ /** Used to resolve market accounts. */
13
+ getPerpMarketAccount: (marketIndex: number) => PerpMarketAccount;
14
+ getSpotMarketAccount: (marketIndex: number) => SpotMarketAccount;
15
+ /** Used to resolve user's last slot for cache invalidation. */
16
+ getUserAccountAndSlot: (subAccountId: number, authority: PublicKey) => {
17
+ slot: number;
18
+ } | undefined;
19
+ activeSubAccountId: number;
20
+ authority: PublicKey;
21
+ /** Mutable caches + forced-market sets (owned by caller). */
22
+ perpMarketLastSlotCache: Map<number, number>;
23
+ spotMarketLastSlotCache: Map<number, number>;
24
+ mustIncludePerpMarketIndexes: Set<number>;
25
+ mustIncludeSpotMarketIndexes: Set<number>;
26
+ };
27
+ export declare function getRemainingAccounts(ctx: RemainingAccountsContext, params: RemainingAccountParams): AccountMeta[];
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRemainingAccounts = void 0;
4
+ const web3_js_1 = require("@solana/web3.js");
5
+ const types_1 = require("../types");
6
+ const numericConstants_1 = require("../constants/numericConstants");
7
+ const spotPosition_1 = require("../math/spotPosition");
8
+ const position_1 = require("../math/position");
9
+ function getRemainingAccounts(ctx, params) {
10
+ var _a;
11
+ const { oracleAccountMap, spotMarketAccountMap, perpMarketAccountMap } = getRemainingAccountMapsForUsers(ctx, params.userAccounts);
12
+ if (params.useMarketLastSlotCache) {
13
+ const lastUserSlot = (_a = ctx.getUserAccountAndSlot(params.userAccounts.length > 0
14
+ ? params.userAccounts[0].subAccountId
15
+ : ctx.activeSubAccountId, params.userAccounts.length > 0
16
+ ? params.userAccounts[0].authority
17
+ : ctx.authority)) === null || _a === void 0 ? void 0 : _a.slot;
18
+ for (const [marketIndex, slot] of ctx.perpMarketLastSlotCache.entries()) {
19
+ if (slot > lastUserSlot) {
20
+ addPerpMarketToRemainingAccountMaps(ctx, marketIndex, false, oracleAccountMap, spotMarketAccountMap, perpMarketAccountMap);
21
+ }
22
+ else {
23
+ ctx.perpMarketLastSlotCache.delete(marketIndex);
24
+ }
25
+ }
26
+ for (const [marketIndex, slot] of ctx.spotMarketLastSlotCache.entries()) {
27
+ if (slot > lastUserSlot) {
28
+ addSpotMarketToRemainingAccountMaps(ctx, marketIndex, false, oracleAccountMap, spotMarketAccountMap);
29
+ }
30
+ else {
31
+ ctx.spotMarketLastSlotCache.delete(marketIndex);
32
+ }
33
+ }
34
+ }
35
+ if (params.readablePerpMarketIndex !== undefined) {
36
+ const readablePerpMarketIndexes = Array.isArray(params.readablePerpMarketIndex)
37
+ ? params.readablePerpMarketIndex
38
+ : [params.readablePerpMarketIndex];
39
+ for (const marketIndex of readablePerpMarketIndexes) {
40
+ addPerpMarketToRemainingAccountMaps(ctx, marketIndex, false, oracleAccountMap, spotMarketAccountMap, perpMarketAccountMap);
41
+ }
42
+ }
43
+ for (const perpMarketIndex of ctx.mustIncludePerpMarketIndexes.values()) {
44
+ addPerpMarketToRemainingAccountMaps(ctx, perpMarketIndex, false, oracleAccountMap, spotMarketAccountMap, perpMarketAccountMap);
45
+ }
46
+ if (params.readableSpotMarketIndexes !== undefined) {
47
+ for (const readableSpotMarketIndex of params.readableSpotMarketIndexes) {
48
+ addSpotMarketToRemainingAccountMaps(ctx, readableSpotMarketIndex, false, oracleAccountMap, spotMarketAccountMap);
49
+ }
50
+ }
51
+ for (const spotMarketIndex of ctx.mustIncludeSpotMarketIndexes.values()) {
52
+ addSpotMarketToRemainingAccountMaps(ctx, spotMarketIndex, false, oracleAccountMap, spotMarketAccountMap);
53
+ }
54
+ if (params.writablePerpMarketIndexes !== undefined) {
55
+ for (const writablePerpMarketIndex of params.writablePerpMarketIndexes) {
56
+ addPerpMarketToRemainingAccountMaps(ctx, writablePerpMarketIndex, true, oracleAccountMap, spotMarketAccountMap, perpMarketAccountMap);
57
+ }
58
+ }
59
+ if (params.writableSpotMarketIndexes !== undefined) {
60
+ for (const writableSpotMarketIndex of params.writableSpotMarketIndexes) {
61
+ addSpotMarketToRemainingAccountMaps(ctx, writableSpotMarketIndex, true, oracleAccountMap, spotMarketAccountMap);
62
+ }
63
+ }
64
+ return [
65
+ ...oracleAccountMap.values(),
66
+ ...spotMarketAccountMap.values(),
67
+ ...perpMarketAccountMap.values(),
68
+ ];
69
+ }
70
+ exports.getRemainingAccounts = getRemainingAccounts;
71
+ function addPerpMarketToRemainingAccountMaps(ctx, marketIndex, writable, oracleAccountMap, spotMarketAccountMap, perpMarketAccountMap) {
72
+ const perpMarketAccount = ctx.getPerpMarketAccount(marketIndex);
73
+ perpMarketAccountMap.set(marketIndex, {
74
+ pubkey: perpMarketAccount.pubkey,
75
+ isSigner: false,
76
+ isWritable: writable,
77
+ });
78
+ const oracleWritable = writable && (0, types_1.isVariant)(perpMarketAccount.amm.oracleSource, 'prelaunch');
79
+ oracleAccountMap.set(perpMarketAccount.amm.oracle.toString(), {
80
+ pubkey: perpMarketAccount.amm.oracle,
81
+ isSigner: false,
82
+ isWritable: oracleWritable,
83
+ });
84
+ addSpotMarketToRemainingAccountMaps(ctx, perpMarketAccount.quoteSpotMarketIndex, false, oracleAccountMap, spotMarketAccountMap);
85
+ }
86
+ function addSpotMarketToRemainingAccountMaps(ctx, marketIndex, writable, oracleAccountMap, spotMarketAccountMap) {
87
+ const spotMarketAccount = ctx.getSpotMarketAccount(marketIndex);
88
+ spotMarketAccountMap.set(spotMarketAccount.marketIndex, {
89
+ pubkey: spotMarketAccount.pubkey,
90
+ isSigner: false,
91
+ isWritable: writable,
92
+ });
93
+ if (!spotMarketAccount.oracle.equals(web3_js_1.PublicKey.default)) {
94
+ oracleAccountMap.set(spotMarketAccount.oracle.toString(), {
95
+ pubkey: spotMarketAccount.oracle,
96
+ isSigner: false,
97
+ isWritable: false,
98
+ });
99
+ }
100
+ }
101
+ function getRemainingAccountMapsForUsers(ctx, userAccounts) {
102
+ const oracleAccountMap = new Map();
103
+ const spotMarketAccountMap = new Map();
104
+ const perpMarketAccountMap = new Map();
105
+ for (const userAccount of userAccounts) {
106
+ for (const spotPosition of userAccount.spotPositions) {
107
+ if (!(0, spotPosition_1.isSpotPositionAvailable)(spotPosition)) {
108
+ addSpotMarketToRemainingAccountMaps(ctx, spotPosition.marketIndex, false, oracleAccountMap, spotMarketAccountMap);
109
+ if (!spotPosition.openAsks.eq(numericConstants_1.ZERO) ||
110
+ !spotPosition.openBids.eq(numericConstants_1.ZERO)) {
111
+ addSpotMarketToRemainingAccountMaps(ctx, numericConstants_1.QUOTE_SPOT_MARKET_INDEX, false, oracleAccountMap, spotMarketAccountMap);
112
+ }
113
+ }
114
+ }
115
+ for (const position of userAccount.perpPositions) {
116
+ if (!(0, position_1.positionIsAvailable)(position)) {
117
+ addPerpMarketToRemainingAccountMaps(ctx, position.marketIndex, false, oracleAccountMap, spotMarketAccountMap, perpMarketAccountMap);
118
+ }
119
+ }
120
+ }
121
+ return { oracleAccountMap, spotMarketAccountMap, perpMarketAccountMap };
122
+ }
@@ -0,0 +1,17 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import type { SignedMsgOrderParamsDelegateMessage, SignedMsgOrderParamsMessage } from '../types';
4
+ export type AnchorTypesCoder = {
5
+ encode: (typeName: string, value: any) => Buffer;
6
+ decode: (typeName: string, buffer: Buffer) => any;
7
+ };
8
+ export declare function encodeSignedMsgOrderParamsMessage(args: {
9
+ coderTypes: AnchorTypesCoder;
10
+ orderParamsMessage: SignedMsgOrderParamsMessage | SignedMsgOrderParamsDelegateMessage;
11
+ delegateSigner?: boolean;
12
+ }): Buffer;
13
+ export declare function decodeSignedMsgOrderParamsMessage(args: {
14
+ coderTypes: AnchorTypesCoder;
15
+ encodedMessage: Buffer;
16
+ delegateSigner?: boolean;
17
+ }): SignedMsgOrderParamsMessage | SignedMsgOrderParamsDelegateMessage;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decodeSignedMsgOrderParamsMessage = exports.encodeSignedMsgOrderParamsMessage = void 0;
4
+ const sha256_1 = require("@noble/hashes/sha256");
5
+ function encodeSignedMsgOrderParamsMessage(args) {
6
+ const { coderTypes, delegateSigner } = args;
7
+ const orderParamsMessage = { ...args.orderParamsMessage };
8
+ if (orderParamsMessage.maxMarginRatio === undefined) {
9
+ orderParamsMessage.maxMarginRatio = null;
10
+ }
11
+ if (orderParamsMessage.isolatedPositionDeposit === undefined) {
12
+ orderParamsMessage.isolatedPositionDeposit = null;
13
+ }
14
+ const anchorIxName = delegateSigner
15
+ ? 'global' + ':' + 'SignedMsgOrderParamsDelegateMessage'
16
+ : 'global' + ':' + 'SignedMsgOrderParamsMessage';
17
+ const prefix = Buffer.from((0, sha256_1.sha256)(anchorIxName).slice(0, 8));
18
+ const withBuilderDefaults = {
19
+ ...orderParamsMessage,
20
+ builderIdx: orderParamsMessage.builderIdx !== undefined
21
+ ? orderParamsMessage.builderIdx
22
+ : null,
23
+ builderFeeTenthBps: orderParamsMessage.builderFeeTenthBps !== undefined
24
+ ? orderParamsMessage.builderFeeTenthBps
25
+ : null,
26
+ };
27
+ const body = delegateSigner
28
+ ? coderTypes.encode('signedMsgOrderParamsDelegateMessage', withBuilderDefaults)
29
+ : coderTypes.encode('signedMsgOrderParamsMessage', withBuilderDefaults);
30
+ return Buffer.concat([prefix, body]);
31
+ }
32
+ exports.encodeSignedMsgOrderParamsMessage = encodeSignedMsgOrderParamsMessage;
33
+ function decodeSignedMsgOrderParamsMessage(args) {
34
+ const decodeStr = args.delegateSigner
35
+ ? 'signedMsgOrderParamsDelegateMessage'
36
+ : 'signedMsgOrderParamsMessage';
37
+ return args.coderTypes.decode(decodeStr, Buffer.concat([args.encodedMessage.slice(8), Buffer.alloc(128)]));
38
+ }
39
+ exports.decodeSignedMsgOrderParamsMessage = decodeSignedMsgOrderParamsMessage;
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node" />
3
3
  import { Buffer } from 'buffer';
4
- import { Idl, BorshEventCoder, BorshInstructionCoder } from '@coral-xyz/anchor';
4
+ import { Idl, BorshEventCoder, BorshInstructionCoder } from '../isomorphic/anchor';
5
5
  export declare class CustomBorshCoder<A extends string = string, _T extends string = string> {
6
6
  readonly idl: Idl;
7
7
  /**
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CustomBorshAccountsCoder = exports.CustomBorshCoder = void 0;
4
4
  const buffer_1 = require("buffer");
5
- const anchor_1 = require("@coral-xyz/anchor");
5
+ const anchor_1 = require("../isomorphic/anchor");
6
6
  class CustomBorshCoder {
7
7
  constructor(idl) {
8
8
  const baseCoder = new anchor_1.BorshCoder(idl);
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.decodeUser = void 0;
4
- const anchor_1 = require("@coral-xyz/anchor");
4
+ const anchor_1 = require("../isomorphic/anchor");
5
5
  const types_1 = require("../types");
6
6
  const web3_js_1 = require("@solana/web3.js");
7
7
  const numericConstants_1 = require("../constants/numericConstants");
@@ -12,7 +12,7 @@
12
12
  * `orderBookLevels.ts` — aggregated L2/L3 book level construction for quoting
13
13
  */
14
14
  import { NodeList } from './NodeList';
15
- import { BN } from '@coral-xyz/anchor';
15
+ import { BN } from '../isomorphic/anchor';
16
16
  import { DLOBNode, DLOBNodeType, TriggerOrderNode } from './DLOBNode';
17
17
  import { DriftClient } from '../driftClient';
18
18
  import { MarketType, MarketTypeStr, Order, PerpMarketAccount, PositionDirection, SpotMarketAccount, StateAccount } from '../types';
@@ -14,7 +14,7 @@ exports.DLOB = void 0;
14
14
  * `orderBookLevels.ts` — aggregated L2/L3 book level construction for quoting
15
15
  */
16
16
  const NodeList_1 = require("./NodeList");
17
- const anchor_1 = require("@coral-xyz/anchor");
17
+ const anchor_1 = require("../isomorphic/anchor");
18
18
  const numericConstants_1 = require("../constants/numericConstants");
19
19
  const userName_1 = require("../userName");
20
20
  const orders_1 = require("../math/orders");
@@ -1,5 +1,5 @@
1
1
  /// <reference types="bn.js" />
2
- import { BN } from '@coral-xyz/anchor';
2
+ import { BN } from '../isomorphic/anchor';
3
3
  import { MarketTypeStr, Order, ProtectedMakerParams } from '../types';
4
4
  import { MMOraclePriceData, OraclePriceData } from '../oracles/types';
5
5
  export interface DLOBNode {
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createNode = exports.SignedMsgOrderNode = exports.TriggerOrderNode = exports.MarketOrderNode = exports.FloatingLimitOrderNode = exports.RestingLimitOrderNode = exports.TakingLimitOrderNode = exports.OrderNode = void 0;
4
- const anchor_1 = require("@coral-xyz/anchor");
4
+ const anchor_1 = require("../isomorphic/anchor");
5
5
  const numericConstants_1 = require("../constants/numericConstants");
6
6
  const orders_1 = require("../math/orders");
7
7
  const types_1 = require("../types");
@@ -7,7 +7,7 @@ import { DLOBSource, DLOBSubscriberEvents, DLOBSubscriptionConfig, ProtectMakerP
7
7
  import { DriftClient } from '../driftClient';
8
8
  import { MarketType } from '../types';
9
9
  import { L2OrderBook, L2OrderBookGenerator, L3OrderBook } from './orderBookLevels';
10
- import { BN } from '@coral-xyz/anchor';
10
+ import { BN } from '../isomorphic/anchor';
11
11
  export declare class DLOBSubscriber {
12
12
  driftClient: DriftClient;
13
13
  dlobSource: DLOBSource;
@@ -1,7 +1,7 @@
1
1
  /// <reference types="bn.js" />
2
2
  import { MarketTypeStr, Order, ProtectedMakerParams } from '../types';
3
3
  import { DLOBNode, DLOBNodeMap } from './DLOBNode';
4
- import { BN } from '@coral-xyz/anchor';
4
+ import { BN } from '../isomorphic/anchor';
5
5
  export type SortDirection = 'asc' | 'desc';
6
6
  export declare function getOrderSignature(orderId: number, userAccount: string): string;
7
7
  export interface DLOBNodeGenerator {
@@ -1,5 +1,5 @@
1
1
  /// <reference types="bn.js" />
2
- import { BN } from '@coral-xyz/anchor';
2
+ import { BN } from '../isomorphic/anchor';
3
3
  import { DLOBNode } from './DLOBNode';
4
4
  import { PerpMarketAccount } from '../types';
5
5
  import { MMOraclePriceData, OraclePriceData } from '../oracles/types';
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.uncrossL2 = exports.groupL2 = exports.getVammL2Generator = exports.createL2Levels = exports.mergeL2LevelGenerators = exports.getL2GeneratorFromDLOBNodes = exports.MAJORS_TOP_OF_BOOK_QUOTE_AMOUNTS = exports.DEFAULT_TOP_OF_BOOK_QUOTE_AMOUNTS = void 0;
4
- const anchor_1 = require("@coral-xyz/anchor");
4
+ const anchor_1 = require("../isomorphic/anchor");
5
5
  const numericConstants_1 = require("../constants/numericConstants");
6
6
  const amm_1 = require("../math/amm");
7
7
  const exchangeStatus_1 = require("../math/exchangeStatus");
@@ -16,8 +16,8 @@
16
16
  *
17
17
  * Instruction → on-chain handler mapping: see ARCHITECTURE.md § SDK↔Instruction Mapping.
18
18
  */
19
- import * as anchor from '@coral-xyz/anchor';
20
- import { AnchorProvider, BN, ProgramAccount } from '@coral-xyz/anchor';
19
+ import { AnchorProvider, BN } from './isomorphic/anchor';
20
+ import type { ProgramAccount } from '@coral-xyz/anchor';
21
21
  import { DriftClientMetricsEvents, IWallet, MakerInfo, MappedRecord, MarketType, ModifyOrderPolicy, OpenbookV2FulfillmentConfigAccount, OptionalOrderParams, OracleSource, Order, OrderParams, OrderTriggerCondition, PerpMarketAccount, PerpMarketExtendedInfo, PhoenixV1FulfillmentConfigAccount, PlaceAndTakeOrderSuccessCondition, PositionDirection, ReferrerInfo, ReferrerNameAccount, ScaleOrderParams, SerumV3FulfillmentConfigAccount, SettlePnlMode, SignedTxData, SpotMarketAccount, SpotPosition, StateAccount, SwapReduceOnly, SignedMsgOrderParamsMessage, TxParams, UserAccount, UserStatsAccount, ProtectedMakerModeConfig, SignedMsgOrderParamsDelegateMessage, PostOnlyParams, LPPoolAccount, ConstituentAccount, ConstituentTargetBaseAccount, AmmCache } from './types';
22
22
  import { AccountMeta, AddressLookupTableAccount, BlockhashWithExpiryBlockHeight, ConfirmOptions, Connection, Keypair, PublicKey, Signer, Transaction, TransactionInstruction, TransactionSignature, TransactionVersion, VersionedTransaction } from '@solana/web3.js';
23
23
  import { TokenFaucet } from './tokenFaucet';
@@ -46,14 +46,7 @@ import { UnifiedSwapClient } from './swap/UnifiedSwapClient';
46
46
  * @deprecated Use UnifiedSwapClient class instead
47
47
  */
48
48
  export type SwapClient = TitanClient | JupiterClient;
49
- type RemainingAccountParams = {
50
- userAccounts: UserAccount[];
51
- writablePerpMarketIndexes?: number[];
52
- writableSpotMarketIndexes?: number[];
53
- readablePerpMarketIndex?: number | number[];
54
- readableSpotMarketIndexes?: number[];
55
- useMarketLastSlotCache?: boolean;
56
- };
49
+ type RemainingAccountParams = import('./core/remainingAccounts').RemainingAccountParams;
57
50
  /**
58
51
  * # DriftClient
59
52
  * 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.
@@ -279,12 +272,12 @@ export declare class DriftClient {
279
272
  reduceOnly: boolean;
280
273
  subAccountId: number;
281
274
  }[]): Promise<TransactionSignature>;
282
- getUpdateUserReduceOnlyIx(reduceOnly: boolean, subAccountId: number): Promise<anchor.web3.TransactionInstruction>;
275
+ getUpdateUserReduceOnlyIx(reduceOnly: boolean, subAccountId: number): Promise<TransactionInstruction>;
283
276
  updateUserPoolId(updates: {
284
277
  poolId: number;
285
278
  subAccountId: number;
286
279
  }[]): Promise<TransactionSignature>;
287
- getUpdateUserPoolIdIx(poolId: number, subAccountId: number): Promise<anchor.web3.TransactionInstruction>;
280
+ getUpdateUserPoolIdIx(poolId: number, subAccountId: number): Promise<TransactionInstruction>;
288
281
  fetchAllUserAccounts(includeIdle?: boolean): Promise<ProgramAccount<UserAccount>[]>;
289
282
  getUserAccountsForDelegate(delegate: PublicKey): Promise<UserAccount[]>;
290
283
  getUserAccountsAndAddressesForAuthority(authority: PublicKey): Promise<ProgramAccount<UserAccount>[]>;
@@ -292,9 +285,9 @@ export declare class DriftClient {
292
285
  getReferredUserStatsAccountsByReferrer(referrer: PublicKey): Promise<UserStatsAccount[]>;
293
286
  getReferrerNameAccountsForAuthority(authority: PublicKey): Promise<ReferrerNameAccount[]>;
294
287
  deleteUser(subAccountId?: number, txParams?: TxParams): Promise<TransactionSignature>;
295
- getUserDeletionIx(userAccountPublicKey: PublicKey): Promise<anchor.web3.TransactionInstruction>;
288
+ getUserDeletionIx(userAccountPublicKey: PublicKey): Promise<TransactionInstruction>;
296
289
  forceDeleteUser(userAccountPublicKey: PublicKey, userAccount: UserAccount, txParams?: TxParams): Promise<TransactionSignature>;
297
- getForceDeleteUserIx(userAccountPublicKey: PublicKey, userAccount: UserAccount): Promise<anchor.web3.TransactionInstruction>;
290
+ getForceDeleteUserIx(userAccountPublicKey: PublicKey, userAccount: UserAccount): Promise<TransactionInstruction>;
298
291
  deleteSignedMsgUserOrders(txParams?: TxParams): Promise<TransactionSignature>;
299
292
  getSignedMsgUserOrdersDeletionIx(authority: PublicKey): Promise<any>;
300
293
  /**
@@ -307,7 +300,7 @@ export declare class DriftClient {
307
300
  */
308
301
  isSignedMsgUserOrdersAccountInitialized(authority: PublicKey): Promise<boolean>;
309
302
  reclaimRent(subAccountId?: number, txParams?: TxParams): Promise<TransactionSignature>;
310
- getReclaimRentIx(userAccountPublicKey: PublicKey): Promise<anchor.web3.TransactionInstruction>;
303
+ getReclaimRentIx(userAccountPublicKey: PublicKey): Promise<TransactionInstruction>;
311
304
  getUser(subAccountId?: number, authority?: PublicKey): User;
312
305
  hasUser(subAccountId?: number, authority?: PublicKey): boolean;
313
306
  getUsers(): User[];
@@ -376,8 +369,8 @@ export declare class DriftClient {
376
369
  * @param useNative
377
370
  * @param tokenProgram
378
371
  */
379
- getAssociatedTokenAccount(marketIndex: number, useNative?: boolean, tokenProgram?: anchor.web3.PublicKey, authority?: anchor.web3.PublicKey, allowOwnerOffCurve?: boolean): Promise<PublicKey>;
380
- createAssociatedTokenAccountIdempotentInstruction(account: PublicKey, payer: PublicKey, owner: PublicKey, mint: PublicKey, tokenProgram?: anchor.web3.PublicKey): TransactionInstruction;
372
+ getAssociatedTokenAccount(marketIndex: number, useNative?: boolean, tokenProgram?: PublicKey, authority?: PublicKey, allowOwnerOffCurve?: boolean): Promise<PublicKey>;
373
+ createAssociatedTokenAccountIdempotentInstruction(account: PublicKey, payer: PublicKey, owner: PublicKey, mint: PublicKey, tokenProgram?: PublicKey): TransactionInstruction;
381
374
  getDepositTxnIx(amount: BN, marketIndex: number, associatedTokenAccount: PublicKey, subAccountId?: number, reduceOnly?: boolean, overrides?: {
382
375
  authority?: PublicKey;
383
376
  }): Promise<TransactionInstruction[]>;
@@ -412,7 +405,7 @@ export declare class DriftClient {
412
405
  getWrappedSolAccountCreationIxs(amount: BN, includeRent?: boolean, overrides?: {
413
406
  authority?: PublicKey;
414
407
  }): Promise<{
415
- ixs: anchor.web3.TransactionInstruction[];
408
+ ixs: TransactionInstruction[];
416
409
  /** @deprecated - this array is always going to be empty, in the current implementation */
417
410
  signers: Signer[];
418
411
  pubkey: PublicKey;
@@ -422,7 +415,7 @@ export declare class DriftClient {
422
415
  isTransferHook(spotMarketAccount: SpotMarketAccount): boolean;
423
416
  addTokenMintToRemainingAccounts(spotMarketAccount: SpotMarketAccount, remainingAccounts: AccountMeta[]): void;
424
417
  addExtraAccountMetasToRemainingAccounts(mint: PublicKey, remainingAccounts: AccountMeta[]): Promise<void>;
425
- getAssociatedTokenAccountCreationIx(tokenMintAddress: PublicKey, associatedTokenAddress: PublicKey, tokenProgram: PublicKey): anchor.web3.TransactionInstruction;
418
+ getAssociatedTokenAccountCreationIx(tokenMintAddress: PublicKey, associatedTokenAddress: PublicKey, tokenProgram: PublicKey): TransactionInstruction;
426
419
  createInitializeUserAccountAndDepositCollateralIxs(amount: BN, userTokenAccount: PublicKey, marketIndex?: number, subAccountId?: number, name?: string, fromSubAccountId?: number, referrerInfo?: ReferrerInfo, donateAmount?: BN, customMaxMarginRatio?: number, poolId?: number, overrides?: {
427
420
  /**
428
421
  * Optional external wallet to deposit from. If provided, the deposit will be made
@@ -580,7 +573,7 @@ export declare class DriftClient {
580
573
  }, placeOrderParams: OrderParams[], txParams?: TxParams, subAccountId?: number): Promise<TransactionSignature>;
581
574
  placeOrders(params: OrderParams[], txParams?: TxParams, subAccountId?: number, optionalIxs?: TransactionInstruction[], isolatedPositionDepositAmount?: BN): Promise<TransactionSignature>;
582
575
  preparePlaceOrdersTx(params: OrderParams[], txParams?: TxParams, subAccountId?: number, optionalIxs?: TransactionInstruction[], isolatedPositionDepositAmount?: BN): Promise<{
583
- placeOrdersTx: anchor.web3.Transaction | anchor.web3.VersionedTransaction;
576
+ placeOrdersTx: Transaction | VersionedTransaction;
584
577
  }>;
585
578
  getPlaceOrdersIx(params: OptionalOrderParams[], subAccountId?: number, overrides?: {
586
579
  authority?: PublicKey;
@@ -595,7 +588,7 @@ export declare class DriftClient {
595
588
  */
596
589
  placeScaleOrders(params: ScaleOrderParams, txParams?: TxParams, subAccountId?: number): Promise<TransactionSignature>;
597
590
  preparePlaceScaleOrdersTx(params: ScaleOrderParams, txParams?: TxParams, subAccountId?: number): Promise<{
598
- placeScaleOrdersTx: anchor.web3.Transaction | anchor.web3.VersionedTransaction;
591
+ placeScaleOrdersTx: Transaction | VersionedTransaction;
599
592
  }>;
600
593
  getPlaceScaleOrdersIx(params: ScaleOrderParams, subAccountId?: number): Promise<TransactionInstruction>;
601
594
  fillPerpOrder(userAccountPublicKey: PublicKey, user: UserAccount, order?: Pick<Order, 'marketIndex' | 'orderId'>, makerInfo?: MakerInfo | MakerInfo[], referrerInfo?: ReferrerInfo, txParams?: TxParams, fillerSubAccountId?: number, fillerAuthority?: PublicKey, hasBuilderFee?: boolean): Promise<TransactionSignature>;
@@ -1248,12 +1241,12 @@ export declare class DriftClient {
1248
1241
  sendTransaction(tx: Transaction | VersionedTransaction, additionalSigners?: Array<Signer>, opts?: ConfirmOptions, preSigned?: boolean): Promise<TxSigAndSlot>;
1249
1242
  buildTransaction(instructions: TransactionInstruction | TransactionInstruction[], txParams?: TxParams, txVersion?: TransactionVersion, lookupTables?: AddressLookupTableAccount[], forceVersionedTransaction?: boolean, recentBlockhash?: BlockhashWithExpiryBlockHeight, optionalIxs?: TransactionInstruction[]): Promise<Transaction | VersionedTransaction>;
1250
1243
  buildBulkTransactions(instructions: (TransactionInstruction | TransactionInstruction[])[], txParams?: TxParams, txVersion?: TransactionVersion, lookupTables?: AddressLookupTableAccount[], forceVersionedTransaction?: boolean): Promise<(Transaction | VersionedTransaction)[]>;
1251
- buildTransactionsMap(instructionsMap: Record<string, TransactionInstruction | TransactionInstruction[]>, txParams?: TxParams, txVersion?: TransactionVersion, lookupTables?: AddressLookupTableAccount[], forceVersionedTransaction?: boolean): Promise<MappedRecord<Record<string, anchor.web3.TransactionInstruction | anchor.web3.TransactionInstruction[]>, anchor.web3.Transaction | anchor.web3.VersionedTransaction>>;
1244
+ buildTransactionsMap(instructionsMap: Record<string, TransactionInstruction | TransactionInstruction[]>, txParams?: TxParams, txVersion?: TransactionVersion, lookupTables?: AddressLookupTableAccount[], forceVersionedTransaction?: boolean): Promise<MappedRecord<Record<string, TransactionInstruction | TransactionInstruction[]>, Transaction | VersionedTransaction>>;
1252
1245
  buildAndSignTransactionsMap(instructionsMap: Record<string, TransactionInstruction | TransactionInstruction[]>, txParams?: TxParams, txVersion?: TransactionVersion, lookupTables?: AddressLookupTableAccount[], forceVersionedTransaction?: boolean): Promise<{
1253
- signedTxMap: Record<string, anchor.web3.Transaction>;
1246
+ signedTxMap: Record<string, Transaction>;
1254
1247
  signedTxData: SignedTxData[];
1255
1248
  } | {
1256
- signedTxMap: MappedRecord<Record<string, anchor.web3.TransactionInstruction | anchor.web3.TransactionInstruction[]>, anchor.web3.Transaction | anchor.web3.VersionedTransaction>;
1249
+ signedTxMap: MappedRecord<Record<string, TransactionInstruction | TransactionInstruction[]>, Transaction | VersionedTransaction>;
1257
1250
  signedTxData: SignedTxData[];
1258
1251
  }>;
1259
1252
  isOrderIncreasingPosition(orderParams: OptionalOrderParams, subAccountId: number): boolean;