@drift-labs/sdk 2.97.0-beta.3 → 2.97.0-beta.30

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 (754) hide show
  1. package/README.md +11 -4
  2. package/VERSION +1 -1
  3. package/bun.lockb +0 -0
  4. package/lib/{accounts → browser/accounts}/bulkAccountLoader.d.ts +1 -0
  5. package/lib/browser/accounts/grpcAccountSubscriber.d.ts +16 -0
  6. package/lib/browser/accounts/grpcAccountSubscriber.js +154 -0
  7. package/lib/browser/accounts/grpcDriftClientAccountSubscriber.d.ts +12 -0
  8. package/lib/browser/accounts/grpcDriftClientAccountSubscriber.js +97 -0
  9. package/lib/browser/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts +10 -0
  10. package/lib/browser/accounts/grpcInsuranceFundStakeAccountSubscriber.js +30 -0
  11. package/lib/browser/accounts/grpcProgramAccountSubscriber.d.ts +18 -0
  12. package/lib/browser/accounts/grpcProgramAccountSubscriber.js +171 -0
  13. package/lib/browser/accounts/grpcUserAccountSubscriber.d.ts +10 -0
  14. package/lib/browser/accounts/grpcUserAccountSubscriber.js +28 -0
  15. package/lib/browser/accounts/grpcUserStatsAccountSubscriber.d.ts +10 -0
  16. package/lib/browser/accounts/grpcUserStatsAccountSubscriber.js +28 -0
  17. package/lib/{accounts → browser/accounts}/types.d.ts +8 -0
  18. package/lib/{accounts → browser/accounts}/webSocketAccountSubscriber.d.ts +2 -1
  19. package/lib/{accounts → browser/accounts}/webSocketDriftClientAccountSubscriber.d.ts +3 -3
  20. package/lib/{accounts → browser/accounts}/webSocketProgramAccountSubscriber.d.ts +2 -1
  21. package/lib/{addresses → browser/addresses}/pda.d.ts +2 -0
  22. package/lib/{addresses → browser/addresses}/pda.js +12 -1
  23. package/lib/{adminClient.d.ts → browser/adminClient.d.ts} +6 -0
  24. package/lib/{adminClient.js → browser/adminClient.js} +53 -0
  25. package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.d.ts +15 -0
  26. package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.js +32 -0
  27. package/lib/{auctionSubscriber → browser/auctionSubscriber}/index.d.ts +1 -0
  28. package/lib/browser/auctionSubscriber/index.js +19 -0
  29. package/lib/{auctionSubscriber → browser/auctionSubscriber}/types.d.ts +2 -0
  30. package/lib/{bankrun → browser/bankrun}/bankrunConnection.d.ts +1 -0
  31. package/lib/{config.d.ts → browser/config.d.ts} +1 -1
  32. package/lib/{config.js → browser/config.js} +5 -3
  33. package/lib/{constants → browser/constants}/perpMarkets.js +43 -2
  34. package/lib/{constants → browser/constants}/spotMarkets.js +2 -2
  35. package/lib/{decode → browser/decode}/phoenix.d.ts +1 -0
  36. package/lib/{decode → browser/decode}/user.d.ts +1 -0
  37. package/lib/{decode → browser/decode}/user.js +10 -0
  38. package/lib/{dlob → browser/dlob}/DLOBOrders.d.ts +1 -0
  39. package/lib/{driftClient.d.ts → browser/driftClient.d.ts} +27 -5
  40. package/lib/{driftClient.js → browser/driftClient.js} +204 -37
  41. package/lib/{driftClientConfig.d.ts → browser/driftClientConfig.d.ts} +6 -1
  42. package/lib/{idl → browser/idl}/drift.json +502 -6
  43. package/lib/{idl → browser/idl}/switchboard_on_demand_30.json +195 -37
  44. package/lib/{index.d.ts → browser/index.d.ts} +8 -0
  45. package/lib/{index.js → browser/index.js} +8 -0
  46. package/lib/browser/isomorphic/grpc.browser.d.ts +1 -0
  47. package/lib/browser/isomorphic/grpc.browser.js +8 -0
  48. package/lib/browser/isomorphic/grpc.d.ts +1 -0
  49. package/lib/browser/isomorphic/grpc.js +8 -0
  50. package/lib/browser/isomorphic/grpc.node.d.ts +5 -0
  51. package/lib/{math → browser/math}/margin.d.ts +3 -3
  52. package/lib/{math → browser/math}/margin.js +10 -10
  53. package/lib/{math → browser/math}/market.d.ts +1 -1
  54. package/lib/{math → browser/math}/market.js +15 -3
  55. package/lib/{math → browser/math}/oracles.d.ts +1 -0
  56. package/lib/{oracles → browser/oracles}/prelaunchOracleClient.d.ts +1 -0
  57. package/lib/{oracles → browser/oracles}/pythClient.d.ts +1 -1
  58. package/lib/{oracles → browser/oracles}/pythClient.js +1 -2
  59. package/lib/{oracles → browser/oracles}/pythPullClient.d.ts +1 -0
  60. package/lib/{oracles → browser/oracles}/quoteAssetOracleClient.d.ts +1 -0
  61. package/lib/{oracles → browser/oracles}/switchboardClient.d.ts +1 -0
  62. package/lib/{oracles → browser/oracles}/switchboardOnDemandClient.d.ts +1 -0
  63. package/lib/{oracles → browser/oracles}/types.d.ts +1 -0
  64. package/lib/{orderSubscriber → browser/orderSubscriber}/OrderSubscriber.d.ts +3 -1
  65. package/lib/{orderSubscriber → browser/orderSubscriber}/OrderSubscriber.js +18 -13
  66. package/lib/browser/orderSubscriber/grpcSubscription.d.ts +22 -0
  67. package/lib/browser/orderSubscriber/grpcSubscription.js +66 -0
  68. package/lib/{orderSubscriber → browser/orderSubscriber}/types.d.ts +9 -0
  69. package/lib/{token → browser/token}/index.d.ts +1 -0
  70. package/lib/{tx → browser/tx}/baseTxSender.d.ts +4 -1
  71. package/lib/{tx → browser/tx}/baseTxSender.js +9 -4
  72. package/lib/{tx → browser/tx}/fastSingleTxSender.d.ts +3 -1
  73. package/lib/{tx → browser/tx}/fastSingleTxSender.js +4 -3
  74. package/lib/{tx → browser/tx}/forwardOnlyTxSender.d.ts +3 -1
  75. package/lib/{tx → browser/tx}/forwardOnlyTxSender.js +2 -1
  76. package/lib/{tx → browser/tx}/retryTxSender.d.ts +3 -1
  77. package/lib/{tx → browser/tx}/retryTxSender.js +3 -2
  78. package/lib/{tx → browser/tx}/types.d.ts +1 -0
  79. package/lib/{tx → browser/tx}/whileValidTxSender.d.ts +3 -1
  80. package/lib/{tx → browser/tx}/whileValidTxSender.js +3 -2
  81. package/lib/{types.d.ts → browser/types.d.ts} +41 -1
  82. package/lib/{types.js → browser/types.js} +11 -1
  83. package/lib/{user.d.ts → browser/user.d.ts} +2 -1
  84. package/lib/{user.js → browser/user.js} +25 -14
  85. package/lib/{userConfig.d.ts → browser/userConfig.d.ts} +6 -1
  86. package/lib/{userMap → browser/userMap}/WebsocketSubscription.d.ts +1 -0
  87. package/lib/browser/userMap/grpcSubscription.d.ts +24 -0
  88. package/lib/browser/userMap/grpcSubscription.js +40 -0
  89. package/lib/{userMap → browser/userMap}/userMap.js +17 -1
  90. package/lib/{userMap → browser/userMap}/userMapConfig.d.ts +6 -0
  91. package/lib/{userStats.js → browser/userStats.js} +11 -4
  92. package/lib/{userStatsConfig.d.ts → browser/userStatsConfig.d.ts} +6 -0
  93. package/lib/node/accounts/basicUserAccountSubscriber.d.ts +27 -0
  94. package/lib/node/accounts/basicUserAccountSubscriber.js +38 -0
  95. package/lib/node/accounts/bulkAccountLoader.d.ts +37 -0
  96. package/lib/node/accounts/bulkAccountLoader.js +222 -0
  97. package/lib/node/accounts/bulkUserStatsSubscription.d.ts +7 -0
  98. package/lib/node/accounts/bulkUserStatsSubscription.js +21 -0
  99. package/lib/node/accounts/bulkUserSubscription.d.ts +7 -0
  100. package/lib/node/accounts/bulkUserSubscription.js +21 -0
  101. package/lib/node/accounts/fetch.d.ts +6 -0
  102. package/lib/node/accounts/fetch.js +30 -0
  103. package/lib/node/accounts/grpcAccountSubscriber.d.ts +16 -0
  104. package/lib/node/accounts/grpcAccountSubscriber.js +154 -0
  105. package/lib/node/accounts/grpcDriftClientAccountSubscriber.d.ts +12 -0
  106. package/lib/node/accounts/grpcDriftClientAccountSubscriber.js +97 -0
  107. package/lib/node/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts +10 -0
  108. package/lib/node/accounts/grpcInsuranceFundStakeAccountSubscriber.js +30 -0
  109. package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts +18 -0
  110. package/lib/node/accounts/grpcProgramAccountSubscriber.js +171 -0
  111. package/lib/node/accounts/grpcUserAccountSubscriber.d.ts +10 -0
  112. package/lib/node/accounts/grpcUserAccountSubscriber.js +28 -0
  113. package/lib/node/accounts/grpcUserStatsAccountSubscriber.d.ts +10 -0
  114. package/lib/node/accounts/grpcUserStatsAccountSubscriber.js +28 -0
  115. package/lib/node/accounts/oneShotUserAccountSubscriber.d.ts +18 -0
  116. package/lib/node/accounts/oneShotUserAccountSubscriber.js +48 -0
  117. package/lib/node/accounts/pollingDriftClientAccountSubscriber.d.ts +69 -0
  118. package/lib/node/accounts/pollingDriftClientAccountSubscriber.js +415 -0
  119. package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +29 -0
  120. package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.js +110 -0
  121. package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts +27 -0
  122. package/lib/node/accounts/pollingOracleAccountSubscriber.js +78 -0
  123. package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts +26 -0
  124. package/lib/node/accounts/pollingTokenAccountSubscriber.js +78 -0
  125. package/lib/node/accounts/pollingUserAccountSubscriber.d.ts +29 -0
  126. package/lib/node/accounts/pollingUserAccountSubscriber.js +102 -0
  127. package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts +27 -0
  128. package/lib/node/accounts/pollingUserStatsAccountSubscriber.js +94 -0
  129. package/lib/node/accounts/testBulkAccountLoader.d.ts +4 -0
  130. package/lib/node/accounts/testBulkAccountLoader.js +45 -0
  131. package/lib/node/accounts/types.d.ts +155 -0
  132. package/lib/node/accounts/types.js +16 -0
  133. package/lib/node/accounts/utils.d.ts +8 -0
  134. package/lib/node/accounts/utils.js +39 -0
  135. package/lib/node/accounts/webSocketAccountSubscriber.d.ts +29 -0
  136. package/lib/node/accounts/webSocketAccountSubscriber.js +149 -0
  137. package/lib/node/accounts/webSocketDriftClientAccountSubscriber.d.ts +66 -0
  138. package/lib/node/accounts/webSocketDriftClientAccountSubscriber.js +352 -0
  139. package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +23 -0
  140. package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +67 -0
  141. package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts +34 -0
  142. package/lib/node/accounts/webSocketProgramAccountSubscriber.js +127 -0
  143. package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts +23 -0
  144. package/lib/node/accounts/webSocketUserAccountSubscriber.js +61 -0
  145. package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts +22 -0
  146. package/lib/node/accounts/webSocketUserStatsAccountSubsriber.js +52 -0
  147. package/lib/node/addresses/marketAddresses.d.ts +2 -0
  148. package/lib/node/addresses/marketAddresses.js +15 -0
  149. package/lib/node/addresses/pda.d.ts +30 -0
  150. package/lib/node/addresses/pda.js +193 -0
  151. package/lib/node/adminClient.d.ts +202 -0
  152. package/lib/node/adminClient.js +1826 -0
  153. package/lib/node/assert/assert.d.ts +1 -0
  154. package/lib/node/assert/assert.js +9 -0
  155. package/lib/node/auctionSubscriber/auctionSubscriber.d.ts +14 -0
  156. package/lib/node/auctionSubscriber/auctionSubscriber.js +32 -0
  157. package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts +15 -0
  158. package/lib/node/auctionSubscriber/auctionSubscriberGrpc.js +32 -0
  159. package/lib/node/auctionSubscriber/index.d.ts +3 -0
  160. package/lib/node/auctionSubscriber/index.js +19 -0
  161. package/lib/node/auctionSubscriber/types.d.ts +14 -0
  162. package/lib/node/auctionSubscriber/types.js +2 -0
  163. package/lib/node/bankrun/bankrunConnection.d.ts +74 -0
  164. package/lib/node/bankrun/bankrunConnection.js +318 -0
  165. package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts +27 -0
  166. package/lib/node/blockhashSubscriber/BlockhashSubscriber.js +89 -0
  167. package/lib/node/blockhashSubscriber/index.d.ts +1 -0
  168. package/lib/node/blockhashSubscriber/index.js +17 -0
  169. package/lib/node/blockhashSubscriber/types.d.ts +7 -0
  170. package/lib/node/blockhashSubscriber/types.js +2 -0
  171. package/lib/node/clock/clockSubscriber.d.ts +31 -0
  172. package/lib/node/clock/clockSubscriber.js +80 -0
  173. package/lib/node/config.d.ts +58 -0
  174. package/lib/node/config.js +126 -0
  175. package/lib/node/constants/numericConstants.d.ts +71 -0
  176. package/lib/node/constants/numericConstants.js +75 -0
  177. package/lib/node/constants/perpMarkets.d.ts +19 -0
  178. package/lib/node/constants/perpMarkets.js +868 -0
  179. package/lib/node/constants/spotMarkets.d.ts +23 -0
  180. package/lib/node/constants/spotMarkets.js +361 -0
  181. package/lib/node/constants/txConstants.d.ts +1 -0
  182. package/lib/node/constants/txConstants.js +4 -0
  183. package/lib/node/decode/phoenix.d.ts +7 -0
  184. package/lib/node/decode/phoenix.js +159 -0
  185. package/lib/node/decode/user.d.ts +4 -0
  186. package/lib/node/decode/user.js +339 -0
  187. package/lib/node/dlob/DLOB.d.ts +166 -0
  188. package/lib/node/dlob/DLOB.js +1142 -0
  189. package/lib/node/dlob/DLOBApiClient.d.ts +14 -0
  190. package/lib/node/dlob/DLOBApiClient.js +34 -0
  191. package/lib/node/dlob/DLOBNode.d.ts +57 -0
  192. package/lib/node/dlob/DLOBNode.js +86 -0
  193. package/lib/node/dlob/DLOBOrders.d.ts +17 -0
  194. package/lib/node/dlob/DLOBOrders.js +40 -0
  195. package/lib/node/dlob/DLOBSubscriber.d.ts +54 -0
  196. package/lib/node/dlob/DLOBSubscriber.js +139 -0
  197. package/lib/node/dlob/NodeList.d.ts +27 -0
  198. package/lib/node/dlob/NodeList.js +141 -0
  199. package/lib/node/dlob/dlobIdl.json +248 -0
  200. package/lib/node/dlob/orderBookLevels.d.ts +72 -0
  201. package/lib/node/dlob/orderBookLevels.js +438 -0
  202. package/lib/node/dlob/types.d.ts +18 -0
  203. package/lib/node/dlob/types.js +2 -0
  204. package/lib/node/driftClient.d.ts +829 -0
  205. package/lib/node/driftClient.js +4496 -0
  206. package/lib/node/driftClientConfig.d.ts +49 -0
  207. package/lib/node/driftClientConfig.js +2 -0
  208. package/lib/node/events/eventList.d.ts +22 -0
  209. package/lib/node/events/eventList.js +80 -0
  210. package/lib/node/events/eventSubscriber.d.ts +46 -0
  211. package/lib/node/events/eventSubscriber.js +223 -0
  212. package/lib/node/events/eventsServerLogProvider.d.ts +21 -0
  213. package/lib/node/events/eventsServerLogProvider.js +121 -0
  214. package/lib/node/events/fetchLogs.d.ts +25 -0
  215. package/lib/node/events/fetchLogs.js +99 -0
  216. package/lib/node/events/parse.d.ts +6 -0
  217. package/lib/node/events/parse.js +106 -0
  218. package/lib/node/events/pollingLogProvider.d.ts +17 -0
  219. package/lib/node/events/pollingLogProvider.js +58 -0
  220. package/lib/node/events/sort.d.ts +2 -0
  221. package/lib/node/events/sort.js +24 -0
  222. package/lib/node/events/txEventCache.d.ts +24 -0
  223. package/lib/node/events/txEventCache.js +71 -0
  224. package/lib/node/events/types.d.ts +77 -0
  225. package/lib/node/events/types.js +30 -0
  226. package/lib/node/events/webSocketLogProvider.d.ts +24 -0
  227. package/lib/node/events/webSocketLogProvider.js +96 -0
  228. package/lib/node/factory/bigNum.d.ts +122 -0
  229. package/lib/node/factory/bigNum.js +457 -0
  230. package/lib/node/factory/oracleClient.d.ts +5 -0
  231. package/lib/node/factory/oracleClient.js +52 -0
  232. package/lib/node/idl/drift.json +13656 -0
  233. package/lib/node/idl/openbook.json +3854 -0
  234. package/lib/node/idl/pyth_solana_receiver.json +628 -0
  235. package/lib/node/idl/switchboard.json +8354 -0
  236. package/lib/node/idl/switchboard_on_demand_30.json +4541 -0
  237. package/lib/node/idl/token_faucet.json +142 -0
  238. package/lib/node/index.d.ts +120 -0
  239. package/lib/node/index.js +142 -0
  240. package/lib/node/isomorphic/grpc.browser.d.ts +1 -0
  241. package/lib/node/isomorphic/grpc.d.ts +1 -0
  242. package/lib/node/isomorphic/grpc.js +17 -0
  243. package/lib/node/isomorphic/grpc.node.d.ts +5 -0
  244. package/lib/node/isomorphic/grpc.node.js +17 -0
  245. package/lib/node/jupiter/jupiterClient.d.ts +296 -0
  246. package/lib/node/jupiter/jupiterClient.js +178 -0
  247. package/lib/node/keypair.d.ts +2 -0
  248. package/lib/node/keypair.js +28 -0
  249. package/lib/node/marinade/index.d.ts +12 -0
  250. package/lib/node/marinade/index.js +36 -0
  251. package/lib/node/marinade/types.d.ts +1963 -0
  252. package/lib/node/marinade/types.js +1965 -0
  253. package/lib/node/math/amm.d.ts +98 -0
  254. package/lib/node/math/amm.js +626 -0
  255. package/lib/node/math/auction.d.ts +23 -0
  256. package/lib/node/math/auction.js +127 -0
  257. package/lib/node/math/bankruptcy.d.ts +2 -0
  258. package/lib/node/math/bankruptcy.js +31 -0
  259. package/lib/node/math/conversion.d.ts +2 -0
  260. package/lib/node/math/conversion.js +11 -0
  261. package/lib/node/math/exchangeStatus.d.ts +6 -0
  262. package/lib/node/math/exchangeStatus.js +77 -0
  263. package/lib/node/math/fuel.d.ts +6 -0
  264. package/lib/node/math/fuel.js +55 -0
  265. package/lib/node/math/funding.d.ts +34 -0
  266. package/lib/node/math/funding.js +209 -0
  267. package/lib/node/math/insurance.d.ts +7 -0
  268. package/lib/node/math/insurance.js +73 -0
  269. package/lib/node/math/margin.d.ts +39 -0
  270. package/lib/node/math/margin.js +184 -0
  271. package/lib/node/math/market.d.ts +39 -0
  272. package/lib/node/math/market.js +163 -0
  273. package/lib/node/math/oracles.d.ts +14 -0
  274. package/lib/node/math/oracles.js +134 -0
  275. package/lib/node/math/orders.d.ts +23 -0
  276. package/lib/node/math/orders.js +216 -0
  277. package/lib/node/math/position.d.ts +54 -0
  278. package/lib/node/math/position.js +198 -0
  279. package/lib/node/math/repeg.d.ts +22 -0
  280. package/lib/node/math/repeg.js +164 -0
  281. package/lib/node/math/spotBalance.d.ts +83 -0
  282. package/lib/node/math/spotBalance.js +373 -0
  283. package/lib/node/math/spotMarket.d.ts +11 -0
  284. package/lib/node/math/spotMarket.js +49 -0
  285. package/lib/node/math/spotPosition.d.ts +19 -0
  286. package/lib/node/math/spotPosition.js +78 -0
  287. package/lib/node/math/state.d.ts +5 -0
  288. package/lib/node/math/state.js +30 -0
  289. package/lib/node/math/superStake.d.ts +167 -0
  290. package/lib/node/math/superStake.js +306 -0
  291. package/lib/node/math/tiers.d.ts +4 -0
  292. package/lib/node/math/tiers.js +52 -0
  293. package/lib/node/math/trade.d.ts +117 -0
  294. package/lib/node/math/trade.js +637 -0
  295. package/lib/node/math/utils.d.ts +23 -0
  296. package/lib/node/math/utils.js +112 -0
  297. package/lib/node/memcmp.d.ts +7 -0
  298. package/lib/node/memcmp.js +63 -0
  299. package/lib/node/openbook/openbookV2FulfillmentConfigMap.d.ts +10 -0
  300. package/lib/node/openbook/openbookV2FulfillmentConfigMap.js +17 -0
  301. package/lib/node/openbook/openbookV2Subscriber.d.ts +36 -0
  302. package/lib/node/openbook/openbookV2Subscriber.js +104 -0
  303. package/lib/node/oracles/oracleClientCache.d.ts +9 -0
  304. package/lib/node/oracles/oracleClientCache.js +19 -0
  305. package/lib/node/oracles/prelaunchOracleClient.d.ts +12 -0
  306. package/lib/node/oracles/prelaunchOracleClient.js +24 -0
  307. package/lib/node/oracles/pythClient.d.ts +14 -0
  308. package/lib/node/oracles/pythClient.js +51 -0
  309. package/lib/node/oracles/pythPullClient.d.ts +19 -0
  310. package/lib/node/oracles/pythPullClient.js +60 -0
  311. package/lib/node/oracles/quoteAssetOracleClient.d.ts +10 -0
  312. package/lib/node/oracles/quoteAssetOracleClient.js +21 -0
  313. package/lib/node/oracles/strictOraclePrice.d.ts +9 -0
  314. package/lib/node/oracles/strictOraclePrice.js +17 -0
  315. package/lib/node/oracles/switchboardClient.d.ts +12 -0
  316. package/lib/node/oracles/switchboardClient.js +40 -0
  317. package/lib/node/oracles/switchboardOnDemandClient.d.ts +12 -0
  318. package/lib/node/oracles/switchboardOnDemandClient.js +32 -0
  319. package/lib/node/oracles/types.d.ts +23 -0
  320. package/lib/node/oracles/types.js +2 -0
  321. package/lib/node/orderParams.d.ts +29 -0
  322. package/lib/node/orderParams.js +44 -0
  323. package/lib/node/orderSubscriber/OrderSubscriber.d.ts +42 -0
  324. package/lib/node/orderSubscriber/OrderSubscriber.js +170 -0
  325. package/lib/node/orderSubscriber/PollingSubscription.d.ts +12 -0
  326. package/lib/node/orderSubscriber/PollingSubscription.js +23 -0
  327. package/lib/node/orderSubscriber/WebsocketSubscription.d.ts +23 -0
  328. package/lib/node/orderSubscriber/WebsocketSubscription.js +67 -0
  329. package/lib/node/orderSubscriber/grpcSubscription.d.ts +22 -0
  330. package/lib/node/orderSubscriber/grpcSubscription.js +66 -0
  331. package/lib/node/orderSubscriber/index.d.ts +2 -0
  332. package/lib/{auctionSubscriber → node/orderSubscriber}/index.js +1 -1
  333. package/lib/node/orderSubscriber/types.d.ts +34 -0
  334. package/lib/node/orderSubscriber/types.js +2 -0
  335. package/lib/node/phoenix/phoenixFulfillmentConfigMap.d.ts +10 -0
  336. package/lib/node/phoenix/phoenixFulfillmentConfigMap.js +17 -0
  337. package/lib/node/phoenix/phoenixSubscriber.d.ts +41 -0
  338. package/lib/node/phoenix/phoenixSubscriber.js +152 -0
  339. package/lib/node/priorityFee/averageOverSlotsStrategy.d.ts +5 -0
  340. package/lib/node/priorityFee/averageOverSlotsStrategy.js +16 -0
  341. package/lib/node/priorityFee/averageStrategy.d.ts +5 -0
  342. package/lib/node/priorityFee/averageStrategy.js +11 -0
  343. package/lib/node/priorityFee/driftPriorityFeeMethod.d.ts +13 -0
  344. package/lib/node/priorityFee/driftPriorityFeeMethod.js +26 -0
  345. package/lib/node/priorityFee/ewmaStrategy.d.ts +11 -0
  346. package/lib/node/priorityFee/ewmaStrategy.js +33 -0
  347. package/lib/node/priorityFee/heliusPriorityFeeMethod.d.ts +20 -0
  348. package/lib/node/priorityFee/heliusPriorityFeeMethod.js +46 -0
  349. package/lib/node/priorityFee/index.d.ts +11 -0
  350. package/lib/node/priorityFee/index.js +27 -0
  351. package/lib/node/priorityFee/maxOverSlotsStrategy.d.ts +5 -0
  352. package/lib/node/priorityFee/maxOverSlotsStrategy.js +17 -0
  353. package/lib/node/priorityFee/maxStrategy.d.ts +7 -0
  354. package/lib/node/priorityFee/maxStrategy.js +9 -0
  355. package/lib/node/priorityFee/priorityFeeSubscriber.d.ts +46 -0
  356. package/lib/node/priorityFee/priorityFeeSubscriber.js +188 -0
  357. package/lib/node/priorityFee/priorityFeeSubscriberMap.d.ts +48 -0
  358. package/lib/node/priorityFee/priorityFeeSubscriberMap.js +88 -0
  359. package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts +6 -0
  360. package/lib/node/priorityFee/solanaPriorityFeeMethod.js +21 -0
  361. package/lib/node/priorityFee/types.d.ts +31 -0
  362. package/lib/node/priorityFee/types.js +10 -0
  363. package/lib/node/serum/serumFulfillmentConfigMap.d.ts +10 -0
  364. package/lib/node/serum/serumFulfillmentConfigMap.js +17 -0
  365. package/lib/node/serum/serumSubscriber.d.ts +32 -0
  366. package/lib/node/serum/serumSubscriber.js +107 -0
  367. package/lib/node/serum/types.d.ts +13 -0
  368. package/lib/node/serum/types.js +2 -0
  369. package/lib/node/slot/SlotSubscriber.d.ts +27 -0
  370. package/lib/node/slot/SlotSubscriber.js +71 -0
  371. package/lib/node/testClient.d.ts +8 -0
  372. package/lib/node/testClient.js +23 -0
  373. package/lib/node/token/index.d.ts +5 -0
  374. package/lib/node/token/index.js +15 -0
  375. package/lib/node/tokenFaucet.d.ts +41 -0
  376. package/lib/node/tokenFaucet.js +188 -0
  377. package/lib/node/tx/baseTxSender.d.ts +57 -0
  378. package/lib/node/tx/baseTxSender.js +293 -0
  379. package/lib/node/tx/blockhashFetcher/baseBlockhashFetcher.d.ts +8 -0
  380. package/lib/node/tx/blockhashFetcher/baseBlockhashFetcher.js +13 -0
  381. package/lib/node/tx/blockhashFetcher/cachedBlockhashFetcher.d.ts +28 -0
  382. package/lib/node/tx/blockhashFetcher/cachedBlockhashFetcher.js +73 -0
  383. package/lib/node/tx/blockhashFetcher/types.d.ts +4 -0
  384. package/lib/node/tx/blockhashFetcher/types.js +2 -0
  385. package/lib/node/tx/fastSingleTxSender.d.ts +41 -0
  386. package/lib/node/tx/fastSingleTxSender.js +86 -0
  387. package/lib/node/tx/forwardOnlyTxSender.d.ts +37 -0
  388. package/lib/node/tx/forwardOnlyTxSender.js +92 -0
  389. package/lib/node/tx/priorityFeeCalculator.d.ts +44 -0
  390. package/lib/node/tx/priorityFeeCalculator.js +85 -0
  391. package/lib/node/tx/reportTransactionError.d.ts +20 -0
  392. package/lib/node/tx/reportTransactionError.js +103 -0
  393. package/lib/node/tx/retryTxSender.d.ts +37 -0
  394. package/lib/node/tx/retryTxSender.js +86 -0
  395. package/lib/node/tx/txHandler.d.ts +154 -0
  396. package/lib/node/tx/txHandler.js +453 -0
  397. package/lib/node/tx/txParamProcessor.d.ts +25 -0
  398. package/lib/node/tx/txParamProcessor.js +88 -0
  399. package/lib/node/tx/types.d.ts +29 -0
  400. package/lib/node/tx/types.js +20 -0
  401. package/lib/node/tx/utils.d.ts +2 -0
  402. package/lib/node/tx/utils.js +10 -0
  403. package/lib/node/tx/whileValidTxSender.d.ts +44 -0
  404. package/lib/node/tx/whileValidTxSender.js +166 -0
  405. package/lib/node/types.d.ts +1351 -0
  406. package/lib/node/types.js +347 -0
  407. package/lib/node/user.d.ts +411 -0
  408. package/lib/node/user.js +2161 -0
  409. package/lib/node/userConfig.d.ts +26 -0
  410. package/lib/node/userConfig.js +2 -0
  411. package/lib/node/userMap/PollingSubscription.d.ts +16 -0
  412. package/lib/node/userMap/PollingSubscription.js +30 -0
  413. package/lib/node/userMap/WebsocketSubscription.d.ts +25 -0
  414. package/lib/node/userMap/WebsocketSubscription.js +41 -0
  415. package/lib/node/userMap/grpcSubscription.d.ts +24 -0
  416. package/lib/node/userMap/grpcSubscription.js +40 -0
  417. package/lib/node/userMap/userMap.d.ts +88 -0
  418. package/lib/node/userMap/userMap.js +455 -0
  419. package/lib/node/userMap/userMapConfig.d.ts +37 -0
  420. package/lib/node/userMap/userMapConfig.js +2 -0
  421. package/lib/node/userMap/userStatsMap.d.ts +46 -0
  422. package/lib/node/userMap/userStatsMap.js +165 -0
  423. package/lib/node/userName.d.ts +5 -0
  424. package/lib/node/userName.js +21 -0
  425. package/lib/node/userStats.d.ts +19 -0
  426. package/lib/node/userStats.js +65 -0
  427. package/lib/node/userStatsConfig.d.ts +25 -0
  428. package/lib/node/userStatsConfig.js +2 -0
  429. package/lib/node/util/TransactionConfirmationManager.d.ts +16 -0
  430. package/lib/node/util/TransactionConfirmationManager.js +174 -0
  431. package/lib/node/util/chainClock.d.ts +17 -0
  432. package/lib/node/util/chainClock.js +29 -0
  433. package/lib/node/util/computeUnits.d.ts +8 -0
  434. package/lib/node/util/computeUnits.js +46 -0
  435. package/lib/node/util/promiseTimeout.d.ts +1 -0
  436. package/lib/node/util/promiseTimeout.js +14 -0
  437. package/lib/node/util/pythPullOracleUtils.d.ts +2 -0
  438. package/lib/node/util/pythPullOracleUtils.js +15 -0
  439. package/lib/node/util/tps.d.ts +2 -0
  440. package/lib/node/util/tps.js +16 -0
  441. package/lib/node/wallet.d.ts +11 -0
  442. package/lib/node/wallet.js +32 -0
  443. package/package.json +8 -4
  444. package/scripts/postbuild.js +61 -0
  445. package/src/accounts/grpcAccountSubscriber.ts +160 -0
  446. package/src/accounts/grpcDriftClientAccountSubscriber.ts +197 -0
  447. package/src/accounts/grpcInsuranceFundStakeAccountSubscriber.ts +56 -0
  448. package/src/accounts/grpcProgramAccountSubscriber.ts +190 -0
  449. package/src/accounts/grpcUserAccountSubscriber.ts +48 -0
  450. package/src/accounts/grpcUserStatsAccountSubscriber.ts +50 -0
  451. package/src/accounts/types.ts +8 -0
  452. package/src/accounts/webSocketAccountSubscriber.ts +1 -1
  453. package/src/accounts/webSocketDriftClientAccountSubscriber.ts +3 -3
  454. package/src/accounts/webSocketProgramAccountSubscriber.ts +1 -1
  455. package/src/addresses/pda.ts +22 -0
  456. package/src/adminClient.ts +114 -0
  457. package/src/auctionSubscriber/auctionSubscriberGrpc.ts +70 -0
  458. package/src/auctionSubscriber/index.ts +1 -0
  459. package/src/auctionSubscriber/types.ts +2 -0
  460. package/src/config.ts +12 -3
  461. package/src/constants/perpMarkets.ts +44 -2
  462. package/src/constants/spotMarkets.ts +2 -2
  463. package/src/decode/user.ts +11 -1
  464. package/src/driftClient.ts +309 -27
  465. package/src/driftClientConfig.ts +7 -1
  466. package/src/idl/drift.json +502 -6
  467. package/src/idl/switchboard_on_demand_30.json +195 -37
  468. package/src/index.ts +8 -0
  469. package/src/isomorphic/README.md +19 -0
  470. package/src/isomorphic/grpc.browser.ts +4 -0
  471. package/src/isomorphic/grpc.node.ts +23 -0
  472. package/src/isomorphic/grpc.ts +1 -0
  473. package/src/math/margin.ts +20 -12
  474. package/src/math/market.ts +19 -3
  475. package/src/oracles/pythClient.ts +1 -5
  476. package/src/orderSubscriber/OrderSubscriber.ts +14 -11
  477. package/src/orderSubscriber/grpcSubscription.ts +121 -0
  478. package/src/orderSubscriber/types.ts +10 -0
  479. package/src/tx/baseTxSender.ts +21 -13
  480. package/src/tx/fastSingleTxSender.ts +5 -2
  481. package/src/tx/forwardOnlyTxSender.ts +3 -0
  482. package/src/tx/retryTxSender.ts +4 -1
  483. package/src/tx/whileValidTxSender.ts +4 -1
  484. package/src/types.ts +44 -1
  485. package/src/user.ts +37 -10
  486. package/src/userConfig.ts +7 -1
  487. package/src/userMap/grpcSubscription.ts +78 -0
  488. package/src/userMap/userMap.ts +21 -2
  489. package/src/userMap/userMapConfig.ts +7 -0
  490. package/src/userStats.ts +11 -0
  491. package/src/userStatsConfig.ts +7 -0
  492. package/tsconfig.browser.json +13 -0
  493. package/tsconfig.json +1 -1
  494. /package/lib/{accounts → browser/accounts}/basicUserAccountSubscriber.d.ts +0 -0
  495. /package/lib/{accounts → browser/accounts}/basicUserAccountSubscriber.js +0 -0
  496. /package/lib/{accounts → browser/accounts}/bulkAccountLoader.js +0 -0
  497. /package/lib/{accounts → browser/accounts}/bulkUserStatsSubscription.d.ts +0 -0
  498. /package/lib/{accounts → browser/accounts}/bulkUserStatsSubscription.js +0 -0
  499. /package/lib/{accounts → browser/accounts}/bulkUserSubscription.d.ts +0 -0
  500. /package/lib/{accounts → browser/accounts}/bulkUserSubscription.js +0 -0
  501. /package/lib/{accounts → browser/accounts}/fetch.d.ts +0 -0
  502. /package/lib/{accounts → browser/accounts}/fetch.js +0 -0
  503. /package/lib/{accounts → browser/accounts}/oneShotUserAccountSubscriber.d.ts +0 -0
  504. /package/lib/{accounts → browser/accounts}/oneShotUserAccountSubscriber.js +0 -0
  505. /package/lib/{accounts → browser/accounts}/pollingDriftClientAccountSubscriber.d.ts +0 -0
  506. /package/lib/{accounts → browser/accounts}/pollingDriftClientAccountSubscriber.js +0 -0
  507. /package/lib/{accounts → browser/accounts}/pollingInsuranceFundStakeAccountSubscriber.d.ts +0 -0
  508. /package/lib/{accounts → browser/accounts}/pollingInsuranceFundStakeAccountSubscriber.js +0 -0
  509. /package/lib/{accounts → browser/accounts}/pollingOracleAccountSubscriber.d.ts +0 -0
  510. /package/lib/{accounts → browser/accounts}/pollingOracleAccountSubscriber.js +0 -0
  511. /package/lib/{accounts → browser/accounts}/pollingTokenAccountSubscriber.d.ts +0 -0
  512. /package/lib/{accounts → browser/accounts}/pollingTokenAccountSubscriber.js +0 -0
  513. /package/lib/{accounts → browser/accounts}/pollingUserAccountSubscriber.d.ts +0 -0
  514. /package/lib/{accounts → browser/accounts}/pollingUserAccountSubscriber.js +0 -0
  515. /package/lib/{accounts → browser/accounts}/pollingUserStatsAccountSubscriber.d.ts +0 -0
  516. /package/lib/{accounts → browser/accounts}/pollingUserStatsAccountSubscriber.js +0 -0
  517. /package/lib/{accounts → browser/accounts}/testBulkAccountLoader.d.ts +0 -0
  518. /package/lib/{accounts → browser/accounts}/testBulkAccountLoader.js +0 -0
  519. /package/lib/{accounts → browser/accounts}/types.js +0 -0
  520. /package/lib/{accounts → browser/accounts}/utils.d.ts +0 -0
  521. /package/lib/{accounts → browser/accounts}/utils.js +0 -0
  522. /package/lib/{accounts → browser/accounts}/webSocketAccountSubscriber.js +0 -0
  523. /package/lib/{accounts → browser/accounts}/webSocketDriftClientAccountSubscriber.js +0 -0
  524. /package/lib/{accounts → browser/accounts}/webSocketInsuranceFundStakeAccountSubscriber.d.ts +0 -0
  525. /package/lib/{accounts → browser/accounts}/webSocketInsuranceFundStakeAccountSubscriber.js +0 -0
  526. /package/lib/{accounts → browser/accounts}/webSocketProgramAccountSubscriber.js +0 -0
  527. /package/lib/{accounts → browser/accounts}/webSocketUserAccountSubscriber.d.ts +0 -0
  528. /package/lib/{accounts → browser/accounts}/webSocketUserAccountSubscriber.js +0 -0
  529. /package/lib/{accounts → browser/accounts}/webSocketUserStatsAccountSubsriber.d.ts +0 -0
  530. /package/lib/{accounts → browser/accounts}/webSocketUserStatsAccountSubsriber.js +0 -0
  531. /package/lib/{addresses → browser/addresses}/marketAddresses.d.ts +0 -0
  532. /package/lib/{addresses → browser/addresses}/marketAddresses.js +0 -0
  533. /package/lib/{assert → browser/assert}/assert.d.ts +0 -0
  534. /package/lib/{assert → browser/assert}/assert.js +0 -0
  535. /package/lib/{auctionSubscriber → browser/auctionSubscriber}/auctionSubscriber.d.ts +0 -0
  536. /package/lib/{auctionSubscriber → browser/auctionSubscriber}/auctionSubscriber.js +0 -0
  537. /package/lib/{auctionSubscriber → browser/auctionSubscriber}/types.js +0 -0
  538. /package/lib/{bankrun → browser/bankrun}/bankrunConnection.js +0 -0
  539. /package/lib/{blockhashSubscriber → browser/blockhashSubscriber}/BlockhashSubscriber.d.ts +0 -0
  540. /package/lib/{blockhashSubscriber → browser/blockhashSubscriber}/BlockhashSubscriber.js +0 -0
  541. /package/lib/{blockhashSubscriber → browser/blockhashSubscriber}/index.d.ts +0 -0
  542. /package/lib/{blockhashSubscriber → browser/blockhashSubscriber}/index.js +0 -0
  543. /package/lib/{blockhashSubscriber → browser/blockhashSubscriber}/types.d.ts +0 -0
  544. /package/lib/{blockhashSubscriber → browser/blockhashSubscriber}/types.js +0 -0
  545. /package/lib/{clock → browser/clock}/clockSubscriber.d.ts +0 -0
  546. /package/lib/{clock → browser/clock}/clockSubscriber.js +0 -0
  547. /package/lib/{constants → browser/constants}/numericConstants.d.ts +0 -0
  548. /package/lib/{constants → browser/constants}/numericConstants.js +0 -0
  549. /package/lib/{constants → browser/constants}/perpMarkets.d.ts +0 -0
  550. /package/lib/{constants → browser/constants}/spotMarkets.d.ts +0 -0
  551. /package/lib/{constants → browser/constants}/txConstants.d.ts +0 -0
  552. /package/lib/{constants → browser/constants}/txConstants.js +0 -0
  553. /package/lib/{decode → browser/decode}/phoenix.js +0 -0
  554. /package/lib/{dlob → browser/dlob}/DLOB.d.ts +0 -0
  555. /package/lib/{dlob → browser/dlob}/DLOB.js +0 -0
  556. /package/lib/{dlob → browser/dlob}/DLOBApiClient.d.ts +0 -0
  557. /package/lib/{dlob → browser/dlob}/DLOBApiClient.js +0 -0
  558. /package/lib/{dlob → browser/dlob}/DLOBNode.d.ts +0 -0
  559. /package/lib/{dlob → browser/dlob}/DLOBNode.js +0 -0
  560. /package/lib/{dlob → browser/dlob}/DLOBOrders.js +0 -0
  561. /package/lib/{dlob → browser/dlob}/DLOBSubscriber.d.ts +0 -0
  562. /package/lib/{dlob → browser/dlob}/DLOBSubscriber.js +0 -0
  563. /package/lib/{dlob → browser/dlob}/NodeList.d.ts +0 -0
  564. /package/lib/{dlob → browser/dlob}/NodeList.js +0 -0
  565. /package/lib/{dlob → browser/dlob}/dlobIdl.json +0 -0
  566. /package/lib/{dlob → browser/dlob}/orderBookLevels.d.ts +0 -0
  567. /package/lib/{dlob → browser/dlob}/orderBookLevels.js +0 -0
  568. /package/lib/{dlob → browser/dlob}/types.d.ts +0 -0
  569. /package/lib/{dlob → browser/dlob}/types.js +0 -0
  570. /package/lib/{driftClientConfig.js → browser/driftClientConfig.js} +0 -0
  571. /package/lib/{events → browser/events}/eventList.d.ts +0 -0
  572. /package/lib/{events → browser/events}/eventList.js +0 -0
  573. /package/lib/{events → browser/events}/eventSubscriber.d.ts +0 -0
  574. /package/lib/{events → browser/events}/eventSubscriber.js +0 -0
  575. /package/lib/{events → browser/events}/eventsServerLogProvider.d.ts +0 -0
  576. /package/lib/{events → browser/events}/eventsServerLogProvider.js +0 -0
  577. /package/lib/{events → browser/events}/fetchLogs.d.ts +0 -0
  578. /package/lib/{events → browser/events}/fetchLogs.js +0 -0
  579. /package/lib/{events → browser/events}/parse.d.ts +0 -0
  580. /package/lib/{events → browser/events}/parse.js +0 -0
  581. /package/lib/{events → browser/events}/pollingLogProvider.d.ts +0 -0
  582. /package/lib/{events → browser/events}/pollingLogProvider.js +0 -0
  583. /package/lib/{events → browser/events}/sort.d.ts +0 -0
  584. /package/lib/{events → browser/events}/sort.js +0 -0
  585. /package/lib/{events → browser/events}/txEventCache.d.ts +0 -0
  586. /package/lib/{events → browser/events}/txEventCache.js +0 -0
  587. /package/lib/{events → browser/events}/types.d.ts +0 -0
  588. /package/lib/{events → browser/events}/types.js +0 -0
  589. /package/lib/{events → browser/events}/webSocketLogProvider.d.ts +0 -0
  590. /package/lib/{events → browser/events}/webSocketLogProvider.js +0 -0
  591. /package/lib/{factory → browser/factory}/bigNum.d.ts +0 -0
  592. /package/lib/{factory → browser/factory}/bigNum.js +0 -0
  593. /package/lib/{factory → browser/factory}/oracleClient.d.ts +0 -0
  594. /package/lib/{factory → browser/factory}/oracleClient.js +0 -0
  595. /package/lib/{idl → browser/idl}/openbook.json +0 -0
  596. /package/lib/{idl → browser/idl}/pyth_solana_receiver.json +0 -0
  597. /package/lib/{idl → browser/idl}/switchboard.json +0 -0
  598. /package/lib/{idl → browser/idl}/token_faucet.json +0 -0
  599. /package/lib/{jupiter → browser/jupiter}/jupiterClient.d.ts +0 -0
  600. /package/lib/{jupiter → browser/jupiter}/jupiterClient.js +0 -0
  601. /package/lib/{keypair.d.ts → browser/keypair.d.ts} +0 -0
  602. /package/lib/{keypair.js → browser/keypair.js} +0 -0
  603. /package/lib/{marinade → browser/marinade}/index.d.ts +0 -0
  604. /package/lib/{marinade → browser/marinade}/index.js +0 -0
  605. /package/lib/{marinade → browser/marinade}/types.d.ts +0 -0
  606. /package/lib/{marinade → browser/marinade}/types.js +0 -0
  607. /package/lib/{math → browser/math}/amm.d.ts +0 -0
  608. /package/lib/{math → browser/math}/amm.js +0 -0
  609. /package/lib/{math → browser/math}/auction.d.ts +0 -0
  610. /package/lib/{math → browser/math}/auction.js +0 -0
  611. /package/lib/{math → browser/math}/bankruptcy.d.ts +0 -0
  612. /package/lib/{math → browser/math}/bankruptcy.js +0 -0
  613. /package/lib/{math → browser/math}/conversion.d.ts +0 -0
  614. /package/lib/{math → browser/math}/conversion.js +0 -0
  615. /package/lib/{math → browser/math}/exchangeStatus.d.ts +0 -0
  616. /package/lib/{math → browser/math}/exchangeStatus.js +0 -0
  617. /package/lib/{math → browser/math}/fuel.d.ts +0 -0
  618. /package/lib/{math → browser/math}/fuel.js +0 -0
  619. /package/lib/{math → browser/math}/funding.d.ts +0 -0
  620. /package/lib/{math → browser/math}/funding.js +0 -0
  621. /package/lib/{math → browser/math}/insurance.d.ts +0 -0
  622. /package/lib/{math → browser/math}/insurance.js +0 -0
  623. /package/lib/{math → browser/math}/oracles.js +0 -0
  624. /package/lib/{math → browser/math}/orders.d.ts +0 -0
  625. /package/lib/{math → browser/math}/orders.js +0 -0
  626. /package/lib/{math → browser/math}/position.d.ts +0 -0
  627. /package/lib/{math → browser/math}/position.js +0 -0
  628. /package/lib/{math → browser/math}/repeg.d.ts +0 -0
  629. /package/lib/{math → browser/math}/repeg.js +0 -0
  630. /package/lib/{math → browser/math}/spotBalance.d.ts +0 -0
  631. /package/lib/{math → browser/math}/spotBalance.js +0 -0
  632. /package/lib/{math → browser/math}/spotMarket.d.ts +0 -0
  633. /package/lib/{math → browser/math}/spotMarket.js +0 -0
  634. /package/lib/{math → browser/math}/spotPosition.d.ts +0 -0
  635. /package/lib/{math → browser/math}/spotPosition.js +0 -0
  636. /package/lib/{math → browser/math}/state.d.ts +0 -0
  637. /package/lib/{math → browser/math}/state.js +0 -0
  638. /package/lib/{math → browser/math}/superStake.d.ts +0 -0
  639. /package/lib/{math → browser/math}/superStake.js +0 -0
  640. /package/lib/{math → browser/math}/tiers.d.ts +0 -0
  641. /package/lib/{math → browser/math}/tiers.js +0 -0
  642. /package/lib/{math → browser/math}/trade.d.ts +0 -0
  643. /package/lib/{math → browser/math}/trade.js +0 -0
  644. /package/lib/{math → browser/math}/utils.d.ts +0 -0
  645. /package/lib/{math → browser/math}/utils.js +0 -0
  646. /package/lib/{memcmp.d.ts → browser/memcmp.d.ts} +0 -0
  647. /package/lib/{memcmp.js → browser/memcmp.js} +0 -0
  648. /package/lib/{openbook → browser/openbook}/openbookV2FulfillmentConfigMap.d.ts +0 -0
  649. /package/lib/{openbook → browser/openbook}/openbookV2FulfillmentConfigMap.js +0 -0
  650. /package/lib/{openbook → browser/openbook}/openbookV2Subscriber.d.ts +0 -0
  651. /package/lib/{openbook → browser/openbook}/openbookV2Subscriber.js +0 -0
  652. /package/lib/{oracles → browser/oracles}/oracleClientCache.d.ts +0 -0
  653. /package/lib/{oracles → browser/oracles}/oracleClientCache.js +0 -0
  654. /package/lib/{oracles → browser/oracles}/prelaunchOracleClient.js +0 -0
  655. /package/lib/{oracles → browser/oracles}/pythPullClient.js +0 -0
  656. /package/lib/{oracles → browser/oracles}/quoteAssetOracleClient.js +0 -0
  657. /package/lib/{oracles → browser/oracles}/strictOraclePrice.d.ts +0 -0
  658. /package/lib/{oracles → browser/oracles}/strictOraclePrice.js +0 -0
  659. /package/lib/{oracles → browser/oracles}/switchboardClient.js +0 -0
  660. /package/lib/{oracles → browser/oracles}/switchboardOnDemandClient.js +0 -0
  661. /package/lib/{oracles → browser/oracles}/types.js +0 -0
  662. /package/lib/{orderParams.d.ts → browser/orderParams.d.ts} +0 -0
  663. /package/lib/{orderParams.js → browser/orderParams.js} +0 -0
  664. /package/lib/{orderSubscriber → browser/orderSubscriber}/PollingSubscription.d.ts +0 -0
  665. /package/lib/{orderSubscriber → browser/orderSubscriber}/PollingSubscription.js +0 -0
  666. /package/lib/{orderSubscriber → browser/orderSubscriber}/WebsocketSubscription.d.ts +0 -0
  667. /package/lib/{orderSubscriber → browser/orderSubscriber}/WebsocketSubscription.js +0 -0
  668. /package/lib/{orderSubscriber → browser/orderSubscriber}/index.d.ts +0 -0
  669. /package/lib/{orderSubscriber → browser/orderSubscriber}/index.js +0 -0
  670. /package/lib/{orderSubscriber → browser/orderSubscriber}/types.js +0 -0
  671. /package/lib/{phoenix → browser/phoenix}/phoenixFulfillmentConfigMap.d.ts +0 -0
  672. /package/lib/{phoenix → browser/phoenix}/phoenixFulfillmentConfigMap.js +0 -0
  673. /package/lib/{phoenix → browser/phoenix}/phoenixSubscriber.d.ts +0 -0
  674. /package/lib/{phoenix → browser/phoenix}/phoenixSubscriber.js +0 -0
  675. /package/lib/{priorityFee → browser/priorityFee}/averageOverSlotsStrategy.d.ts +0 -0
  676. /package/lib/{priorityFee → browser/priorityFee}/averageOverSlotsStrategy.js +0 -0
  677. /package/lib/{priorityFee → browser/priorityFee}/averageStrategy.d.ts +0 -0
  678. /package/lib/{priorityFee → browser/priorityFee}/averageStrategy.js +0 -0
  679. /package/lib/{priorityFee → browser/priorityFee}/driftPriorityFeeMethod.d.ts +0 -0
  680. /package/lib/{priorityFee → browser/priorityFee}/driftPriorityFeeMethod.js +0 -0
  681. /package/lib/{priorityFee → browser/priorityFee}/ewmaStrategy.d.ts +0 -0
  682. /package/lib/{priorityFee → browser/priorityFee}/ewmaStrategy.js +0 -0
  683. /package/lib/{priorityFee → browser/priorityFee}/heliusPriorityFeeMethod.d.ts +0 -0
  684. /package/lib/{priorityFee → browser/priorityFee}/heliusPriorityFeeMethod.js +0 -0
  685. /package/lib/{priorityFee → browser/priorityFee}/index.d.ts +0 -0
  686. /package/lib/{priorityFee → browser/priorityFee}/index.js +0 -0
  687. /package/lib/{priorityFee → browser/priorityFee}/maxOverSlotsStrategy.d.ts +0 -0
  688. /package/lib/{priorityFee → browser/priorityFee}/maxOverSlotsStrategy.js +0 -0
  689. /package/lib/{priorityFee → browser/priorityFee}/maxStrategy.d.ts +0 -0
  690. /package/lib/{priorityFee → browser/priorityFee}/maxStrategy.js +0 -0
  691. /package/lib/{priorityFee → browser/priorityFee}/priorityFeeSubscriber.d.ts +0 -0
  692. /package/lib/{priorityFee → browser/priorityFee}/priorityFeeSubscriber.js +0 -0
  693. /package/lib/{priorityFee → browser/priorityFee}/priorityFeeSubscriberMap.d.ts +0 -0
  694. /package/lib/{priorityFee → browser/priorityFee}/priorityFeeSubscriberMap.js +0 -0
  695. /package/lib/{priorityFee → browser/priorityFee}/solanaPriorityFeeMethod.d.ts +0 -0
  696. /package/lib/{priorityFee → browser/priorityFee}/solanaPriorityFeeMethod.js +0 -0
  697. /package/lib/{priorityFee → browser/priorityFee}/types.d.ts +0 -0
  698. /package/lib/{priorityFee → browser/priorityFee}/types.js +0 -0
  699. /package/lib/{serum → browser/serum}/serumFulfillmentConfigMap.d.ts +0 -0
  700. /package/lib/{serum → browser/serum}/serumFulfillmentConfigMap.js +0 -0
  701. /package/lib/{serum → browser/serum}/serumSubscriber.d.ts +0 -0
  702. /package/lib/{serum → browser/serum}/serumSubscriber.js +0 -0
  703. /package/lib/{serum → browser/serum}/types.d.ts +0 -0
  704. /package/lib/{serum → browser/serum}/types.js +0 -0
  705. /package/lib/{slot → browser/slot}/SlotSubscriber.d.ts +0 -0
  706. /package/lib/{slot → browser/slot}/SlotSubscriber.js +0 -0
  707. /package/lib/{testClient.d.ts → browser/testClient.d.ts} +0 -0
  708. /package/lib/{testClient.js → browser/testClient.js} +0 -0
  709. /package/lib/{token → browser/token}/index.js +0 -0
  710. /package/lib/{tokenFaucet.d.ts → browser/tokenFaucet.d.ts} +0 -0
  711. /package/lib/{tokenFaucet.js → browser/tokenFaucet.js} +0 -0
  712. /package/lib/{tx → browser/tx}/blockhashFetcher/baseBlockhashFetcher.d.ts +0 -0
  713. /package/lib/{tx → browser/tx}/blockhashFetcher/baseBlockhashFetcher.js +0 -0
  714. /package/lib/{tx → browser/tx}/blockhashFetcher/cachedBlockhashFetcher.d.ts +0 -0
  715. /package/lib/{tx → browser/tx}/blockhashFetcher/cachedBlockhashFetcher.js +0 -0
  716. /package/lib/{tx → browser/tx}/blockhashFetcher/types.d.ts +0 -0
  717. /package/lib/{tx → browser/tx}/blockhashFetcher/types.js +0 -0
  718. /package/lib/{tx → browser/tx}/priorityFeeCalculator.d.ts +0 -0
  719. /package/lib/{tx → browser/tx}/priorityFeeCalculator.js +0 -0
  720. /package/lib/{tx → browser/tx}/reportTransactionError.d.ts +0 -0
  721. /package/lib/{tx → browser/tx}/reportTransactionError.js +0 -0
  722. /package/lib/{tx → browser/tx}/txHandler.d.ts +0 -0
  723. /package/lib/{tx → browser/tx}/txHandler.js +0 -0
  724. /package/lib/{tx → browser/tx}/txParamProcessor.d.ts +0 -0
  725. /package/lib/{tx → browser/tx}/txParamProcessor.js +0 -0
  726. /package/lib/{tx → browser/tx}/types.js +0 -0
  727. /package/lib/{tx → browser/tx}/utils.d.ts +0 -0
  728. /package/lib/{tx → browser/tx}/utils.js +0 -0
  729. /package/lib/{userConfig.js → browser/userConfig.js} +0 -0
  730. /package/lib/{userMap → browser/userMap}/PollingSubscription.d.ts +0 -0
  731. /package/lib/{userMap → browser/userMap}/PollingSubscription.js +0 -0
  732. /package/lib/{userMap → browser/userMap}/WebsocketSubscription.js +0 -0
  733. /package/lib/{userMap → browser/userMap}/userMap.d.ts +0 -0
  734. /package/lib/{userMap → browser/userMap}/userMapConfig.js +0 -0
  735. /package/lib/{userMap → browser/userMap}/userStatsMap.d.ts +0 -0
  736. /package/lib/{userMap → browser/userMap}/userStatsMap.js +0 -0
  737. /package/lib/{userName.d.ts → browser/userName.d.ts} +0 -0
  738. /package/lib/{userName.js → browser/userName.js} +0 -0
  739. /package/lib/{userStats.d.ts → browser/userStats.d.ts} +0 -0
  740. /package/lib/{userStatsConfig.js → browser/userStatsConfig.js} +0 -0
  741. /package/lib/{util → browser/util}/TransactionConfirmationManager.d.ts +0 -0
  742. /package/lib/{util → browser/util}/TransactionConfirmationManager.js +0 -0
  743. /package/lib/{util → browser/util}/chainClock.d.ts +0 -0
  744. /package/lib/{util → browser/util}/chainClock.js +0 -0
  745. /package/lib/{util → browser/util}/computeUnits.d.ts +0 -0
  746. /package/lib/{util → browser/util}/computeUnits.js +0 -0
  747. /package/lib/{util → browser/util}/promiseTimeout.d.ts +0 -0
  748. /package/lib/{util → browser/util}/promiseTimeout.js +0 -0
  749. /package/lib/{util → browser/util}/pythPullOracleUtils.d.ts +0 -0
  750. /package/lib/{util → browser/util}/pythPullOracleUtils.js +0 -0
  751. /package/lib/{util → browser/util}/tps.d.ts +0 -0
  752. /package/lib/{util → browser/util}/tps.js +0 -0
  753. /package/lib/{wallet.d.ts → browser/wallet.d.ts} +0 -0
  754. /package/lib/{wallet.js → browser/wallet.js} +0 -0
@@ -443,10 +443,14 @@
443
443
  }
444
444
  },
445
445
  {
446
- "name": "queue"
446
+ "name": "queue",
447
+ "relations": [
448
+ "oracle"
449
+ ]
447
450
  },
448
451
  {
449
- "name": "authority"
452
+ "name": "authority",
453
+ "signer": true
450
454
  },
451
455
  {
452
456
  "name": "program_state",
@@ -503,6 +507,9 @@
503
507
  },
504
508
  {
505
509
  "name": "stake_pool"
510
+ },
511
+ {
512
+ "name": "delegation_group"
506
513
  }
507
514
  ],
508
515
  "args": [
@@ -955,10 +962,7 @@
955
962
  },
956
963
  {
957
964
  "name": "authority",
958
- "signer": true,
959
- "relations": [
960
- "queue"
961
- ]
965
+ "signer": true
962
966
  },
963
967
  {
964
968
  "name": "program_authority"
@@ -1038,6 +1042,13 @@
1038
1042
  {
1039
1043
  "name": "oracle",
1040
1044
  "writable": true
1045
+ },
1046
+ {
1047
+ "name": "authority",
1048
+ "signer": true
1049
+ },
1050
+ {
1051
+ "name": "state"
1041
1052
  }
1042
1053
  ],
1043
1054
  "args": [
@@ -1294,10 +1305,7 @@
1294
1305
  },
1295
1306
  {
1296
1307
  "name": "authority",
1297
- "signer": true,
1298
- "relations": [
1299
- "queue"
1300
- ]
1308
+ "signer": true
1301
1309
  },
1302
1310
  {
1303
1311
  "name": "program_authority"
@@ -1336,10 +1344,7 @@
1336
1344
  },
1337
1345
  {
1338
1346
  "name": "authority",
1339
- "signer": true,
1340
- "relations": [
1341
- "queue"
1342
- ]
1347
+ "signer": true
1343
1348
  },
1344
1349
  {
1345
1350
  "name": "state"
@@ -1387,6 +1392,13 @@
1387
1392
  {
1388
1393
  "name": "recent_slothashes",
1389
1394
  "address": "SysvarS1otHashes111111111111111111111111111"
1395
+ },
1396
+ {
1397
+ "name": "authority",
1398
+ "signer": true,
1399
+ "relations": [
1400
+ "randomness"
1401
+ ]
1390
1402
  }
1391
1403
  ],
1392
1404
  "args": [
@@ -1860,6 +1872,19 @@
1860
1872
  }
1861
1873
  ],
1862
1874
  "events": [
1875
+ {
1876
+ "name": "CostWhitelistEvent",
1877
+ "discriminator": [
1878
+ 56,
1879
+ 107,
1880
+ 191,
1881
+ 127,
1882
+ 116,
1883
+ 6,
1884
+ 138,
1885
+ 149
1886
+ ]
1887
+ },
1863
1888
  {
1864
1889
  "name": "GarbageCollectionEvent",
1865
1890
  "discriminator": [
@@ -2235,9 +2260,84 @@
2235
2260
  {
2236
2261
  "code": 6047,
2237
2262
  "name": "InvalidInstruction"
2263
+ },
2264
+ {
2265
+ "code": 6048,
2266
+ "name": "OracleAlreadyVerified"
2267
+ },
2268
+ {
2269
+ "code": 6049,
2270
+ "name": "GuardianNotVerified"
2271
+ },
2272
+ {
2273
+ "code": 6050,
2274
+ "name": "InvalidConstraint"
2275
+ },
2276
+ {
2277
+ "code": 6051,
2278
+ "name": "InvalidDelegationGroup"
2279
+ },
2280
+ {
2281
+ "code": 6052,
2282
+ "name": "OracleKeyNotFound"
2283
+ },
2284
+ {
2285
+ "code": 6053,
2286
+ "name": "GuardianReregisterAttempt"
2238
2287
  }
2239
2288
  ],
2240
2289
  "types": [
2290
+ {
2291
+ "name": "CompactResult",
2292
+ "serialization": "bytemuck",
2293
+ "repr": {
2294
+ "kind": "c"
2295
+ },
2296
+ "type": {
2297
+ "kind": "struct",
2298
+ "fields": [
2299
+ {
2300
+ "name": "std_dev",
2301
+ "docs": [
2302
+ "The standard deviation of the submissions needed for quorom size"
2303
+ ],
2304
+ "type": "f32"
2305
+ },
2306
+ {
2307
+ "name": "mean",
2308
+ "docs": [
2309
+ "The mean of the submissions needed for quorom size"
2310
+ ],
2311
+ "type": "f32"
2312
+ },
2313
+ {
2314
+ "name": "slot",
2315
+ "docs": [
2316
+ "The slot at which this value was signed."
2317
+ ],
2318
+ "type": "u64"
2319
+ }
2320
+ ]
2321
+ }
2322
+ },
2323
+ {
2324
+ "name": "CostWhitelistEvent",
2325
+ "type": {
2326
+ "kind": "struct",
2327
+ "fields": [
2328
+ {
2329
+ "name": "feeds",
2330
+ "type": {
2331
+ "vec": "pubkey"
2332
+ }
2333
+ },
2334
+ {
2335
+ "name": "reward",
2336
+ "type": "u32"
2337
+ }
2338
+ ]
2339
+ }
2340
+ },
2241
2341
  {
2242
2342
  "name": "CurrentResult",
2243
2343
  "serialization": "bytemuck",
@@ -2384,7 +2484,7 @@
2384
2484
  }
2385
2485
  },
2386
2486
  {
2387
- "name": "idx",
2487
+ "name": "_reserved1",
2388
2488
  "type": "u32"
2389
2489
  },
2390
2490
  {
@@ -2437,12 +2537,7 @@
2437
2537
  "name": "GuardianUnregisterParams",
2438
2538
  "type": {
2439
2539
  "kind": "struct",
2440
- "fields": [
2441
- {
2442
- "name": "idx",
2443
- "type": "u32"
2444
- }
2445
- ]
2540
+ "fields": []
2446
2541
  }
2447
2542
  },
2448
2543
  {
@@ -2948,7 +3043,7 @@
2948
3043
  "kind": "struct",
2949
3044
  "fields": [
2950
3045
  {
2951
- "name": "recent_slot",
3046
+ "name": "_reserved1",
2952
3047
  "type": "u64"
2953
3048
  }
2954
3049
  ]
@@ -3068,14 +3163,18 @@
3068
3163
  }
3069
3164
  },
3070
3165
  {
3071
- "name": "_padding1",
3166
+ "name": "padding1",
3072
3167
  "type": {
3073
3168
  "array": [
3074
3169
  "u8",
3075
- 3
3170
+ 2
3076
3171
  ]
3077
3172
  }
3078
3173
  },
3174
+ {
3175
+ "name": "historical_result_idx",
3176
+ "type": "u8"
3177
+ },
3079
3178
  {
3080
3179
  "name": "min_sample_size",
3081
3180
  "type": "u8"
@@ -3089,7 +3188,7 @@
3089
3188
  "type": "u64"
3090
3189
  },
3091
3190
  {
3092
- "name": "ipfs_hash",
3191
+ "name": "_reserved1",
3093
3192
  "type": {
3094
3193
  "array": [
3095
3194
  "u8",
@@ -3110,38 +3209,51 @@
3110
3209
  "type": "u32"
3111
3210
  },
3112
3211
  {
3113
- "name": "_ebuf4",
3212
+ "name": "padding2",
3114
3213
  "type": {
3115
3214
  "array": [
3116
3215
  "u8",
3117
- 20
3216
+ 12
3118
3217
  ]
3119
3218
  }
3120
3219
  },
3121
3220
  {
3122
- "name": "_ebuf3",
3221
+ "name": "historical_results",
3222
+ "type": {
3223
+ "array": [
3224
+ {
3225
+ "defined": {
3226
+ "name": "CompactResult"
3227
+ }
3228
+ },
3229
+ 32
3230
+ ]
3231
+ }
3232
+ },
3233
+ {
3234
+ "name": "_ebuf4",
3123
3235
  "type": {
3124
3236
  "array": [
3125
3237
  "u8",
3126
- 24
3238
+ 8
3127
3239
  ]
3128
3240
  }
3129
3241
  },
3130
3242
  {
3131
- "name": "_ebuf2",
3243
+ "name": "_ebuf3",
3132
3244
  "type": {
3133
3245
  "array": [
3134
3246
  "u8",
3135
- 256
3247
+ 24
3136
3248
  ]
3137
3249
  }
3138
3250
  },
3139
3251
  {
3140
- "name": "_ebuf1",
3252
+ "name": "_ebuf2",
3141
3253
  "type": {
3142
3254
  "array": [
3143
3255
  "u8",
3144
- 512
3256
+ 256
3145
3257
  ]
3146
3258
  }
3147
3259
  }
@@ -4237,12 +4349,43 @@
4237
4349
  "name": "lut_slot",
4238
4350
  "type": "u64"
4239
4351
  },
4352
+ {
4353
+ "name": "base_reward",
4354
+ "type": "u32"
4355
+ },
4356
+ {
4357
+ "name": "_ebuf6",
4358
+ "type": {
4359
+ "array": [
4360
+ "u8",
4361
+ 28
4362
+ ]
4363
+ }
4364
+ },
4365
+ {
4366
+ "name": "_ebuf5",
4367
+ "type": {
4368
+ "array": [
4369
+ "u8",
4370
+ 32
4371
+ ]
4372
+ }
4373
+ },
4374
+ {
4375
+ "name": "_ebuf4",
4376
+ "type": {
4377
+ "array": [
4378
+ "u8",
4379
+ 64
4380
+ ]
4381
+ }
4382
+ },
4240
4383
  {
4241
4384
  "name": "_ebuf3",
4242
4385
  "type": {
4243
4386
  "array": [
4244
4387
  "u8",
4245
- 256
4388
+ 128
4246
4389
  ]
4247
4390
  }
4248
4391
  },
@@ -4256,11 +4399,14 @@
4256
4399
  }
4257
4400
  },
4258
4401
  {
4259
- "name": "_ebuf1",
4402
+ "name": "cost_whitelist",
4403
+ "docs": [
4404
+ "Cost whitelist by authority"
4405
+ ],
4260
4406
  "type": {
4261
4407
  "array": [
4262
- "u8",
4263
- 1024
4408
+ "pubkey",
4409
+ 32
4264
4410
  ]
4265
4411
  }
4266
4412
  }
@@ -4346,6 +4492,18 @@
4346
4492
  {
4347
4493
  "name": "subsidy_amount",
4348
4494
  "type": "u32"
4495
+ },
4496
+ {
4497
+ "name": "base_reward",
4498
+ "type": "u32"
4499
+ },
4500
+ {
4501
+ "name": "add_cost_wl",
4502
+ "type": "pubkey"
4503
+ },
4504
+ {
4505
+ "name": "rm_cost_wl",
4506
+ "type": "pubkey"
4349
4507
  }
4350
4508
  ]
4351
4509
  }
package/src/index.ts CHANGED
@@ -25,12 +25,14 @@ export * from './accounts/oneShotUserAccountSubscriber';
25
25
  export * from './accounts/types';
26
26
  export * from './addresses/pda';
27
27
  export * from './adminClient';
28
+ export * from './assert/assert';
28
29
  export * from './testClient';
29
30
  export * from './user';
30
31
  export * from './userConfig';
31
32
  export * from './userStats';
32
33
  export * from './userName';
33
34
  export * from './userStatsConfig';
35
+ export * from './decode/user';
34
36
  export * from './driftClient';
35
37
  export * from './factory/oracleClient';
36
38
  export * from './factory/bigNum';
@@ -59,6 +61,7 @@ export * from './math/insurance';
59
61
  export * from './math/superStake';
60
62
  export * from './math/spotPosition';
61
63
  export * from './math/state';
64
+ export * from './math/tiers';
62
65
  export * from './marinade';
63
66
  export * from './orderParams';
64
67
  export * from './slot/SlotSubscriber';
@@ -76,6 +79,9 @@ export * from './priorityFee';
76
79
  export * from './phoenix/phoenixFulfillmentConfigMap';
77
80
  export * from './openbook/openbookV2Subscriber';
78
81
  export * from './openbook/openbookV2FulfillmentConfigMap';
82
+ export * from './oracles/pythClient';
83
+ export * from './oracles/pythPullClient';
84
+ export * from './oracles/switchboardOnDemandClient';
79
85
  export * from './tx/fastSingleTxSender';
80
86
  export * from './tx/retryTxSender';
81
87
  export * from './tx/whileValidTxSender';
@@ -86,6 +92,7 @@ export * from './tx/txHandler';
86
92
  export * from './util/computeUnits';
87
93
  export * from './util/tps';
88
94
  export * from './util/promiseTimeout';
95
+ export * from './util/pythPullOracleUtils';
89
96
  export * from './math/spotBalance';
90
97
  export * from './constants/spotMarkets';
91
98
  export * from './driftClientConfig';
@@ -99,6 +106,7 @@ export * from './dlob/types';
99
106
  export * from './dlob/orderBookLevels';
100
107
  export * from './userMap/userMap';
101
108
  export * from './userMap/userStatsMap';
109
+ export * from './userMap/userMapConfig';
102
110
  export * from './math/bankruptcy';
103
111
  export * from './orderSubscriber';
104
112
  export * from './orderSubscriber/types';
@@ -0,0 +1,19 @@
1
+ # Isomorphic Code Explanation
2
+
3
+ Soem of the features you might want to add to the SDK may only be compatible with particular execution environments (usually a non-browser one). To get that working without breaking the SDK for people in other environments, you need to get your code working in an isomorphic way.
4
+
5
+ This README will try explain how to do this, and you should be able to follow the example of other pieces of isomorphic code in this folder.
6
+
7
+ ## High Level Explanation
8
+
9
+ At a high level, we just want to make sure that we're not importing any incompatible code into the final compiled .js output files. The only real way this can "get done" is by importing types or by importing classes/methods/values out of an offending packages. The goal of our isomorphic seperation is to ensure that we have SDK-Side code which is still properly typed and easy for devs to work with, without putting anything bad into the output code. We will do this with some typescript magic and a simple but handy postbuild script.
10
+
11
+ ## Step-by-step isomorphic code:
12
+
13
+ 1. Create [your-package-name].d.ts, [your-package-name].browser.ts, and [your-package-name].node.ts files.
14
+ 2. Remove any imports of an offending library which aren't going through our dedicated isomorphic files. Instead import the TYPES of these and place them in the `.d.ts` file (definition file). Note to import ONLY THE TYPES you use `import type {stuff}` instead of just `import {stuff}`.
15
+ 3. The definition file should be exporting types only, and the files that were previously importing things directly from the library should be able to import from the definition file now instead. You might see some typescript issues when you import things from this definition file because typescript thinks it's "just a type" -- you can safely @ts-ignore these errors, but the types SHOULD at least be correct when you are using them.
16
+ 4. For concrete classes, methods, constants, etc. that you need to make available - you will place them in the `.browser` and `.node` files. You should be able to pretty flexibly export them however you want, just make sure the definition file has a matching type for how you're doing it. See `grpc.d.ts` and `grpc.node.ts` to look at how we're doing this for `createClient`. For the "bad" isomorphic file it's probably best to throw an error so that the consumer knows they shouldn't be using this particular feature.
17
+ 5. Note about enums :: they're weird and annoying. If you follow how the enum type `CommitmentLevel` was exported for the grpc package though you should be fine.
18
+ 6. Add the name of your package to `postbuild.js`.
19
+ 7. when you run `build` it will build the node version of all of these packages. You can run `build:browser` to build the browser side ones instead.
@@ -0,0 +1,4 @@
1
+ // Export a function to create a new Client instance
2
+ export function createClient(..._args: any) {
3
+ throw new Error('Only available in node context');
4
+ }
@@ -0,0 +1,23 @@
1
+ import Client from '@triton-one/yellowstone-grpc';
2
+ import {
3
+ SubscribeRequest,
4
+ SubscribeUpdate,
5
+ CommitmentLevel,
6
+ } from '@triton-one/yellowstone-grpc';
7
+ import { ClientDuplexStream, ChannelOptions } from '@grpc/grpc-js';
8
+
9
+ export {
10
+ ClientDuplexStream,
11
+ ChannelOptions,
12
+ SubscribeRequest,
13
+ SubscribeUpdate,
14
+ CommitmentLevel,
15
+ Client,
16
+ };
17
+
18
+ // Export a function to create a new Client instance
19
+ export function createClient(
20
+ ...args: ConstructorParameters<typeof Client>
21
+ ): Client {
22
+ return new Client(...args);
23
+ }
@@ -0,0 +1 @@
1
+ export * from './grpc.node';
@@ -187,20 +187,20 @@ export function calculateWorstCasePerpLiabilityValue(
187
187
 
188
188
  export function calculatePerpLiabilityValue(
189
189
  baseAssetAmount: BN,
190
- oraclePrice: BN,
190
+ price: BN,
191
191
  isPredictionMarket: boolean
192
192
  ): BN {
193
193
  if (isPredictionMarket) {
194
194
  if (baseAssetAmount.gt(ZERO)) {
195
- return baseAssetAmount.mul(oraclePrice).div(BASE_PRECISION);
195
+ return baseAssetAmount.mul(price).div(BASE_PRECISION);
196
196
  } else {
197
197
  return baseAssetAmount
198
198
  .abs()
199
- .mul(MAX_PREDICTION_PRICE.sub(oraclePrice))
199
+ .mul(MAX_PREDICTION_PRICE.sub(price))
200
200
  .div(BASE_PRECISION);
201
201
  }
202
202
  } else {
203
- return baseAssetAmount.abs().mul(oraclePrice).div(BASE_PRECISION);
203
+ return baseAssetAmount.abs().mul(price).div(BASE_PRECISION);
204
204
  }
205
205
  }
206
206
 
@@ -214,16 +214,19 @@ export function calculateMarginUSDCRequiredForTrade(
214
214
  driftClient: DriftClient,
215
215
  targetMarketIndex: number,
216
216
  baseSize: BN,
217
- userMaxMarginRatio?: number
217
+ userMaxMarginRatio?: number,
218
+ userHighLeverageMode?: boolean,
219
+ entryPrice?: BN
218
220
  ): BN {
219
221
  const targetMarket = driftClient.getPerpMarketAccount(targetMarketIndex);
220
- const oracleData = driftClient.getOracleDataForPerpMarket(
221
- targetMarket.marketIndex
222
- );
222
+
223
+ const price =
224
+ entryPrice ??
225
+ driftClient.getOracleDataForPerpMarket(targetMarket.marketIndex).price;
223
226
 
224
227
  const perpLiabilityValue = calculatePerpLiabilityValue(
225
228
  baseSize,
226
- oracleData.price,
229
+ price,
227
230
  isVariant(targetMarket.contractType, 'prediction')
228
231
  );
229
232
 
@@ -232,7 +235,8 @@ export function calculateMarginUSDCRequiredForTrade(
232
235
  targetMarket,
233
236
  baseSize.abs(),
234
237
  'Initial',
235
- userMaxMarginRatio
238
+ userMaxMarginRatio,
239
+ userHighLeverageMode
236
240
  )
237
241
  )
238
242
  .mul(perpLiabilityValue)
@@ -251,13 +255,17 @@ export function calculateCollateralDepositRequiredForTrade(
251
255
  targetMarketIndex: number,
252
256
  baseSize: BN,
253
257
  collateralIndex: number,
254
- userMaxMarginRatio?: number
258
+ userMaxMarginRatio?: number,
259
+ userHighLeverageMode?: boolean,
260
+ estEntryPrice?: BN
255
261
  ): BN {
256
262
  const marginRequiredUsdc = calculateMarginUSDCRequiredForTrade(
257
263
  driftClient,
258
264
  targetMarketIndex,
259
265
  baseSize,
260
- userMaxMarginRatio
266
+ userMaxMarginRatio,
267
+ userHighLeverageMode,
268
+ estEntryPrice
261
269
  );
262
270
 
263
271
  const collateralMarket = driftClient.getSpotMarketAccount(collateralIndex);
@@ -130,8 +130,24 @@ export function calculateMarketMarginRatio(
130
130
  market: PerpMarketAccount,
131
131
  size: BN,
132
132
  marginCategory: MarginCategory,
133
- customMarginRatio = 0
133
+ customMarginRatio = 0,
134
+ userHighLeverageMode = false
134
135
  ): number {
136
+ let marginRationInitial;
137
+ let marginRatioMaintenance;
138
+
139
+ if (
140
+ userHighLeverageMode &&
141
+ market.highLeverageMarginRatioInitial > 0 &&
142
+ market.highLeverageMarginRatioMaintenance
143
+ ) {
144
+ marginRationInitial = market.highLeverageMarginRatioInitial;
145
+ marginRatioMaintenance = market.highLeverageMarginRatioMaintenance;
146
+ } else {
147
+ marginRationInitial = market.marginRatioInitial;
148
+ marginRatioMaintenance = market.marginRatioMaintenance;
149
+ }
150
+
135
151
  let marginRatio;
136
152
  switch (marginCategory) {
137
153
  case 'Initial': {
@@ -140,7 +156,7 @@ export function calculateMarketMarginRatio(
140
156
  calculateSizePremiumLiabilityWeight(
141
157
  size,
142
158
  new BN(market.imfFactor),
143
- new BN(market.marginRatioInitial),
159
+ new BN(marginRationInitial),
144
160
  MARGIN_PRECISION
145
161
  ).toNumber(),
146
162
  customMarginRatio
@@ -151,7 +167,7 @@ export function calculateMarketMarginRatio(
151
167
  marginRatio = calculateSizePremiumLiabilityWeight(
152
168
  size,
153
169
  new BN(market.imfFactor),
154
- new BN(market.marginRatioMaintenance),
170
+ new BN(marginRatioMaintenance),
155
171
  MARGIN_PRECISION
156
172
  ).toNumber();
157
173
  break;
@@ -67,11 +67,7 @@ export class PythClient implements OracleClient {
67
67
  }
68
68
  }
69
69
 
70
- export function convertPythPrice(
71
- price: number,
72
- exponent: number,
73
- multiple: BN
74
- ): BN {
70
+ function convertPythPrice(price: number, exponent: number, multiple: BN): BN {
75
71
  exponent = Math.abs(exponent);
76
72
  const pythPrecision = TEN.pow(new BN(exponent).abs()).div(multiple);
77
73
  return new BN(price * Math.pow(10, exponent))
@@ -11,11 +11,12 @@ import StrictEventEmitter from 'strict-event-emitter-types';
11
11
  import { EventEmitter } from 'events';
12
12
  import { BN } from '../index';
13
13
  import { decodeUser } from '../decode/user';
14
+ import { grpcSubscription } from './grpcSubscription';
14
15
 
15
16
  export class OrderSubscriber {
16
17
  driftClient: DriftClient;
17
18
  usersAccounts = new Map<string, { slot: number; userAccount: UserAccount }>();
18
- subscription: PollingSubscription | WebsocketSubscription;
19
+ subscription: PollingSubscription | WebsocketSubscription | grpcSubscription;
19
20
  commitment: Commitment;
20
21
  eventEmitter: StrictEventEmitter<EventEmitter, OrderSubscriberEvents>;
21
22
 
@@ -34,6 +35,18 @@ export class OrderSubscriber {
34
35
  orderSubscriber: this,
35
36
  frequency: config.subscriptionConfig.frequency,
36
37
  });
38
+ } else if (config.subscriptionConfig.type === 'grpc') {
39
+ this.subscription = new grpcSubscription({
40
+ orderSubscriber: this,
41
+ grpcConfigs: config.subscriptionConfig.grpcConfigs,
42
+ skipInitialLoad: config.subscriptionConfig.skipInitialLoad,
43
+ resubOpts: {
44
+ resubTimeoutMs: config.subscriptionConfig?.resubTimeoutMs,
45
+ logResubMessages: config.subscriptionConfig?.logResubMessages,
46
+ },
47
+ resyncIntervalMs: config.subscriptionConfig.resyncIntervalMs,
48
+ decoded: config.decodeData,
49
+ });
37
50
  } else {
38
51
  this.subscription = new WebsocketSubscription({
39
52
  orderSubscriber: this,
@@ -100,10 +113,8 @@ export class OrderSubscriber {
100
113
 
101
114
  const slot: number = rpcResponseAndContext.context.slot;
102
115
 
103
- const programAccountSet = new Set<string>();
104
116
  for (const programAccount of rpcResponseAndContext.value) {
105
117
  const key = programAccount.pubkey.toString();
106
- programAccountSet.add(key);
107
118
  this.tryUpdateUserAccount(
108
119
  key,
109
120
  'raw',
@@ -113,14 +124,6 @@ export class OrderSubscriber {
113
124
  // give event loop a chance to breathe
114
125
  await new Promise((resolve) => setTimeout(resolve, 0));
115
126
  }
116
-
117
- for (const key of this.usersAccounts.keys()) {
118
- if (!programAccountSet.has(key)) {
119
- this.usersAccounts.delete(key);
120
- }
121
- // give event loop a chance to breathe
122
- await new Promise((resolve) => setTimeout(resolve, 0));
123
- }
124
127
  } catch (e) {
125
128
  console.error(e);
126
129
  } finally {