@drift-labs/sdk-browser 2.104.0-beta.21

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 (935) hide show
  1. package/README.md +276 -0
  2. package/VERSION +1 -0
  3. package/bun.lockb +0 -0
  4. package/get_events.ts +47 -0
  5. package/lib/browser/accounts/basicUserAccountSubscriber.d.ts +27 -0
  6. package/lib/browser/accounts/basicUserAccountSubscriber.js +38 -0
  7. package/lib/browser/accounts/bulkAccountLoader.d.ts +37 -0
  8. package/lib/browser/accounts/bulkAccountLoader.js +222 -0
  9. package/lib/browser/accounts/bulkUserStatsSubscription.d.ts +7 -0
  10. package/lib/browser/accounts/bulkUserStatsSubscription.js +21 -0
  11. package/lib/browser/accounts/bulkUserSubscription.d.ts +7 -0
  12. package/lib/browser/accounts/bulkUserSubscription.js +21 -0
  13. package/lib/browser/accounts/fetch.d.ts +6 -0
  14. package/lib/browser/accounts/fetch.js +30 -0
  15. package/lib/browser/accounts/grpcAccountSubscriber.d.ts +16 -0
  16. package/lib/browser/accounts/grpcAccountSubscriber.js +154 -0
  17. package/lib/browser/accounts/grpcDriftClientAccountSubscriber.d.ts +12 -0
  18. package/lib/browser/accounts/grpcDriftClientAccountSubscriber.js +98 -0
  19. package/lib/browser/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts +10 -0
  20. package/lib/browser/accounts/grpcInsuranceFundStakeAccountSubscriber.js +30 -0
  21. package/lib/browser/accounts/grpcProgramAccountSubscriber.d.ts +18 -0
  22. package/lib/browser/accounts/grpcProgramAccountSubscriber.js +171 -0
  23. package/lib/browser/accounts/grpcUserAccountSubscriber.d.ts +10 -0
  24. package/lib/browser/accounts/grpcUserAccountSubscriber.js +28 -0
  25. package/lib/browser/accounts/grpcUserStatsAccountSubscriber.d.ts +10 -0
  26. package/lib/browser/accounts/grpcUserStatsAccountSubscriber.js +28 -0
  27. package/lib/browser/accounts/oneShotUserAccountSubscriber.d.ts +18 -0
  28. package/lib/browser/accounts/oneShotUserAccountSubscriber.js +48 -0
  29. package/lib/browser/accounts/pollingDriftClientAccountSubscriber.d.ts +69 -0
  30. package/lib/browser/accounts/pollingDriftClientAccountSubscriber.js +418 -0
  31. package/lib/browser/accounts/pollingHighLeverageModeConfigAccountSubscriber.d.ts +29 -0
  32. package/lib/browser/accounts/pollingHighLeverageModeConfigAccountSubscriber.js +111 -0
  33. package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +29 -0
  34. package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.js +110 -0
  35. package/lib/browser/accounts/pollingOracleAccountSubscriber.d.ts +27 -0
  36. package/lib/browser/accounts/pollingOracleAccountSubscriber.js +78 -0
  37. package/lib/browser/accounts/pollingTokenAccountSubscriber.d.ts +26 -0
  38. package/lib/browser/accounts/pollingTokenAccountSubscriber.js +78 -0
  39. package/lib/browser/accounts/pollingUserAccountSubscriber.d.ts +29 -0
  40. package/lib/browser/accounts/pollingUserAccountSubscriber.js +102 -0
  41. package/lib/browser/accounts/pollingUserStatsAccountSubscriber.d.ts +27 -0
  42. package/lib/browser/accounts/pollingUserStatsAccountSubscriber.js +94 -0
  43. package/lib/browser/accounts/testBulkAccountLoader.d.ts +4 -0
  44. package/lib/browser/accounts/testBulkAccountLoader.js +45 -0
  45. package/lib/browser/accounts/types.d.ts +168 -0
  46. package/lib/browser/accounts/types.js +16 -0
  47. package/lib/browser/accounts/utils.d.ts +8 -0
  48. package/lib/browser/accounts/utils.js +49 -0
  49. package/lib/browser/accounts/webSocketAccountSubscriber.d.ts +29 -0
  50. package/lib/browser/accounts/webSocketAccountSubscriber.js +149 -0
  51. package/lib/browser/accounts/webSocketDriftClientAccountSubscriber.d.ts +66 -0
  52. package/lib/browser/accounts/webSocketDriftClientAccountSubscriber.js +358 -0
  53. package/lib/browser/accounts/webSocketHighLeverageModeConfigAccountSubscriber.d.ts +23 -0
  54. package/lib/browser/accounts/webSocketHighLeverageModeConfigAccountSubscriber.js +69 -0
  55. package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +23 -0
  56. package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +67 -0
  57. package/lib/browser/accounts/webSocketProgramAccountSubscriber.d.ts +32 -0
  58. package/lib/browser/accounts/webSocketProgramAccountSubscriber.js +120 -0
  59. package/lib/browser/accounts/webSocketUserAccountSubscriber.d.ts +23 -0
  60. package/lib/browser/accounts/webSocketUserAccountSubscriber.js +61 -0
  61. package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.d.ts +22 -0
  62. package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.js +52 -0
  63. package/lib/browser/addresses/marketAddresses.d.ts +2 -0
  64. package/lib/browser/addresses/marketAddresses.js +15 -0
  65. package/lib/browser/addresses/pda.d.ts +32 -0
  66. package/lib/browser/addresses/pda.js +211 -0
  67. package/lib/browser/adminClient.d.ts +206 -0
  68. package/lib/browser/adminClient.js +1858 -0
  69. package/lib/browser/assert/assert.d.ts +1 -0
  70. package/lib/browser/assert/assert.js +9 -0
  71. package/lib/browser/auctionSubscriber/auctionSubscriber.d.ts +14 -0
  72. package/lib/browser/auctionSubscriber/auctionSubscriber.js +32 -0
  73. package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.d.ts +15 -0
  74. package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.js +32 -0
  75. package/lib/browser/auctionSubscriber/index.d.ts +3 -0
  76. package/lib/browser/auctionSubscriber/index.js +19 -0
  77. package/lib/browser/auctionSubscriber/types.d.ts +14 -0
  78. package/lib/browser/auctionSubscriber/types.js +2 -0
  79. package/lib/browser/bankrun/bankrunConnection.d.ts +75 -0
  80. package/lib/browser/bankrun/bankrunConnection.js +332 -0
  81. package/lib/browser/blockhashSubscriber/BlockhashSubscriber.d.ts +27 -0
  82. package/lib/browser/blockhashSubscriber/BlockhashSubscriber.js +89 -0
  83. package/lib/browser/blockhashSubscriber/index.d.ts +1 -0
  84. package/lib/browser/blockhashSubscriber/index.js +17 -0
  85. package/lib/browser/blockhashSubscriber/types.d.ts +7 -0
  86. package/lib/browser/blockhashSubscriber/types.js +2 -0
  87. package/lib/browser/clock/clockSubscriber.d.ts +31 -0
  88. package/lib/browser/clock/clockSubscriber.js +80 -0
  89. package/lib/browser/config.d.ts +60 -0
  90. package/lib/browser/config.js +130 -0
  91. package/lib/browser/constants/numericConstants.d.ts +71 -0
  92. package/lib/browser/constants/numericConstants.js +75 -0
  93. package/lib/browser/constants/perpMarkets.d.ts +19 -0
  94. package/lib/browser/constants/perpMarkets.js +997 -0
  95. package/lib/browser/constants/spotMarkets.d.ts +24 -0
  96. package/lib/browser/constants/spotMarkets.js +470 -0
  97. package/lib/browser/constants/txConstants.d.ts +1 -0
  98. package/lib/browser/constants/txConstants.js +4 -0
  99. package/lib/browser/decode/phoenix.d.ts +7 -0
  100. package/lib/browser/decode/phoenix.js +159 -0
  101. package/lib/browser/decode/user.d.ts +4 -0
  102. package/lib/browser/decode/user.js +339 -0
  103. package/lib/browser/dlob/DLOB.d.ts +186 -0
  104. package/lib/browser/dlob/DLOB.js +1039 -0
  105. package/lib/browser/dlob/DLOBNode.d.ts +68 -0
  106. package/lib/browser/dlob/DLOBNode.js +100 -0
  107. package/lib/browser/dlob/DLOBSubscriber.d.ts +54 -0
  108. package/lib/browser/dlob/DLOBSubscriber.js +139 -0
  109. package/lib/browser/dlob/NodeList.d.ts +25 -0
  110. package/lib/browser/dlob/NodeList.js +126 -0
  111. package/lib/browser/dlob/orderBookLevels.d.ts +72 -0
  112. package/lib/browser/dlob/orderBookLevels.js +438 -0
  113. package/lib/browser/dlob/types.d.ts +18 -0
  114. package/lib/browser/dlob/types.js +2 -0
  115. package/lib/browser/driftClient.d.ts +861 -0
  116. package/lib/browser/driftClient.js +4768 -0
  117. package/lib/browser/driftClientConfig.d.ts +49 -0
  118. package/lib/browser/driftClientConfig.js +2 -0
  119. package/lib/browser/events/eventList.d.ts +22 -0
  120. package/lib/browser/events/eventList.js +80 -0
  121. package/lib/browser/events/eventSubscriber.d.ts +46 -0
  122. package/lib/browser/events/eventSubscriber.js +223 -0
  123. package/lib/browser/events/eventsServerLogProvider.d.ts +21 -0
  124. package/lib/browser/events/eventsServerLogProvider.js +121 -0
  125. package/lib/browser/events/fetchLogs.d.ts +25 -0
  126. package/lib/browser/events/fetchLogs.js +99 -0
  127. package/lib/browser/events/parse.d.ts +6 -0
  128. package/lib/browser/events/parse.js +106 -0
  129. package/lib/browser/events/pollingLogProvider.d.ts +17 -0
  130. package/lib/browser/events/pollingLogProvider.js +58 -0
  131. package/lib/browser/events/sort.d.ts +2 -0
  132. package/lib/browser/events/sort.js +24 -0
  133. package/lib/browser/events/txEventCache.d.ts +24 -0
  134. package/lib/browser/events/txEventCache.js +71 -0
  135. package/lib/browser/events/types.d.ts +79 -0
  136. package/lib/browser/events/types.js +32 -0
  137. package/lib/browser/events/webSocketLogProvider.d.ts +24 -0
  138. package/lib/browser/events/webSocketLogProvider.js +96 -0
  139. package/lib/browser/factory/bigNum.d.ts +122 -0
  140. package/lib/browser/factory/bigNum.js +457 -0
  141. package/lib/browser/factory/oracleClient.d.ts +5 -0
  142. package/lib/browser/factory/oracleClient.js +56 -0
  143. package/lib/browser/idl/drift.json +14440 -0
  144. package/lib/browser/idl/openbook.json +3854 -0
  145. package/lib/browser/idl/pyth_solana_receiver.json +628 -0
  146. package/lib/browser/idl/switchboard.json +8354 -0
  147. package/lib/browser/idl/switchboard_on_demand_30.json +4546 -0
  148. package/lib/browser/idl/token_faucet.json +142 -0
  149. package/lib/browser/index.d.ts +125 -0
  150. package/lib/browser/index.js +147 -0
  151. package/lib/browser/isomorphic/grpc.browser.d.ts +1 -0
  152. package/lib/browser/isomorphic/grpc.browser.js +8 -0
  153. package/lib/browser/isomorphic/grpc.d.ts +1 -0
  154. package/lib/browser/isomorphic/grpc.js +8 -0
  155. package/lib/browser/jupiter/jupiterClient.d.ts +302 -0
  156. package/lib/browser/jupiter/jupiterClient.js +178 -0
  157. package/lib/browser/keypair.d.ts +2 -0
  158. package/lib/browser/keypair.js +28 -0
  159. package/lib/browser/marinade/index.d.ts +12 -0
  160. package/lib/browser/marinade/index.js +36 -0
  161. package/lib/browser/marinade/types.d.ts +1963 -0
  162. package/lib/browser/marinade/types.js +1965 -0
  163. package/lib/browser/math/amm.d.ts +98 -0
  164. package/lib/browser/math/amm.js +626 -0
  165. package/lib/browser/math/auction.d.ts +23 -0
  166. package/lib/browser/math/auction.js +130 -0
  167. package/lib/browser/math/bankruptcy.d.ts +2 -0
  168. package/lib/browser/math/bankruptcy.js +31 -0
  169. package/lib/browser/math/conversion.d.ts +2 -0
  170. package/lib/browser/math/conversion.js +11 -0
  171. package/lib/browser/math/exchangeStatus.d.ts +6 -0
  172. package/lib/browser/math/exchangeStatus.js +77 -0
  173. package/lib/browser/math/fuel.d.ts +6 -0
  174. package/lib/browser/math/fuel.js +55 -0
  175. package/lib/browser/math/funding.d.ts +34 -0
  176. package/lib/browser/math/funding.js +209 -0
  177. package/lib/browser/math/insurance.d.ts +7 -0
  178. package/lib/browser/math/insurance.js +73 -0
  179. package/lib/browser/math/margin.d.ts +39 -0
  180. package/lib/browser/math/margin.js +184 -0
  181. package/lib/browser/math/market.d.ts +39 -0
  182. package/lib/browser/math/market.js +163 -0
  183. package/lib/browser/math/oracles.d.ts +14 -0
  184. package/lib/browser/math/oracles.js +134 -0
  185. package/lib/browser/math/orders.d.ts +23 -0
  186. package/lib/browser/math/orders.js +216 -0
  187. package/lib/browser/math/position.d.ts +70 -0
  188. package/lib/browser/math/position.js +225 -0
  189. package/lib/browser/math/repeg.d.ts +22 -0
  190. package/lib/browser/math/repeg.js +164 -0
  191. package/lib/browser/math/spotBalance.d.ts +83 -0
  192. package/lib/browser/math/spotBalance.js +373 -0
  193. package/lib/browser/math/spotMarket.d.ts +11 -0
  194. package/lib/browser/math/spotMarket.js +49 -0
  195. package/lib/browser/math/spotPosition.d.ts +19 -0
  196. package/lib/browser/math/spotPosition.js +78 -0
  197. package/lib/browser/math/state.d.ts +5 -0
  198. package/lib/browser/math/state.js +30 -0
  199. package/lib/browser/math/superStake.d.ts +167 -0
  200. package/lib/browser/math/superStake.js +306 -0
  201. package/lib/browser/math/tiers.d.ts +4 -0
  202. package/lib/browser/math/tiers.js +52 -0
  203. package/lib/browser/math/trade.d.ts +117 -0
  204. package/lib/browser/math/trade.js +637 -0
  205. package/lib/browser/math/userStatus.d.ts +2 -0
  206. package/lib/browser/math/userStatus.js +8 -0
  207. package/lib/browser/math/utils.d.ts +23 -0
  208. package/lib/browser/math/utils.js +112 -0
  209. package/lib/browser/memcmp.d.ts +11 -0
  210. package/lib/browser/memcmp.js +99 -0
  211. package/lib/browser/openbook/openbookV2FulfillmentConfigMap.d.ts +10 -0
  212. package/lib/browser/openbook/openbookV2FulfillmentConfigMap.js +17 -0
  213. package/lib/browser/openbook/openbookV2Subscriber.d.ts +36 -0
  214. package/lib/browser/openbook/openbookV2Subscriber.js +104 -0
  215. package/lib/browser/oracles/oracleClientCache.d.ts +9 -0
  216. package/lib/browser/oracles/oracleClientCache.js +19 -0
  217. package/lib/browser/oracles/oracleId.d.ts +4 -0
  218. package/lib/browser/oracles/oracleId.js +38 -0
  219. package/lib/browser/oracles/prelaunchOracleClient.d.ts +12 -0
  220. package/lib/browser/oracles/prelaunchOracleClient.js +24 -0
  221. package/lib/browser/oracles/pythClient.d.ts +14 -0
  222. package/lib/browser/oracles/pythClient.js +51 -0
  223. package/lib/browser/oracles/pythLazerClient.d.ts +16 -0
  224. package/lib/browser/oracles/pythLazerClient.js +61 -0
  225. package/lib/browser/oracles/pythPullClient.d.ts +19 -0
  226. package/lib/browser/oracles/pythPullClient.js +60 -0
  227. package/lib/browser/oracles/quoteAssetOracleClient.d.ts +10 -0
  228. package/lib/browser/oracles/quoteAssetOracleClient.js +21 -0
  229. package/lib/browser/oracles/strictOraclePrice.d.ts +9 -0
  230. package/lib/browser/oracles/strictOraclePrice.js +17 -0
  231. package/lib/browser/oracles/switchboardClient.d.ts +12 -0
  232. package/lib/browser/oracles/switchboardClient.js +40 -0
  233. package/lib/browser/oracles/switchboardOnDemandClient.d.ts +12 -0
  234. package/lib/browser/oracles/switchboardOnDemandClient.js +32 -0
  235. package/lib/browser/oracles/types.d.ts +23 -0
  236. package/lib/browser/oracles/types.js +2 -0
  237. package/lib/browser/orderParams.d.ts +29 -0
  238. package/lib/browser/orderParams.js +44 -0
  239. package/lib/browser/orderSubscriber/OrderSubscriber.d.ts +42 -0
  240. package/lib/browser/orderSubscriber/OrderSubscriber.js +172 -0
  241. package/lib/browser/orderSubscriber/PollingSubscription.d.ts +12 -0
  242. package/lib/browser/orderSubscriber/PollingSubscription.js +23 -0
  243. package/lib/browser/orderSubscriber/WebsocketSubscription.d.ts +23 -0
  244. package/lib/browser/orderSubscriber/WebsocketSubscription.js +67 -0
  245. package/lib/browser/orderSubscriber/grpcSubscription.d.ts +22 -0
  246. package/lib/browser/orderSubscriber/grpcSubscription.js +66 -0
  247. package/lib/browser/orderSubscriber/index.d.ts +2 -0
  248. package/lib/browser/orderSubscriber/index.js +18 -0
  249. package/lib/browser/orderSubscriber/types.d.ts +34 -0
  250. package/lib/browser/orderSubscriber/types.js +2 -0
  251. package/lib/browser/phoenix/phoenixFulfillmentConfigMap.d.ts +10 -0
  252. package/lib/browser/phoenix/phoenixFulfillmentConfigMap.js +17 -0
  253. package/lib/browser/phoenix/phoenixSubscriber.d.ts +41 -0
  254. package/lib/browser/phoenix/phoenixSubscriber.js +152 -0
  255. package/lib/browser/priorityFee/averageOverSlotsStrategy.d.ts +5 -0
  256. package/lib/browser/priorityFee/averageOverSlotsStrategy.js +16 -0
  257. package/lib/browser/priorityFee/averageStrategy.d.ts +5 -0
  258. package/lib/browser/priorityFee/averageStrategy.js +11 -0
  259. package/lib/browser/priorityFee/driftPriorityFeeMethod.d.ts +13 -0
  260. package/lib/browser/priorityFee/driftPriorityFeeMethod.js +26 -0
  261. package/lib/browser/priorityFee/ewmaStrategy.d.ts +11 -0
  262. package/lib/browser/priorityFee/ewmaStrategy.js +33 -0
  263. package/lib/browser/priorityFee/heliusPriorityFeeMethod.d.ts +20 -0
  264. package/lib/browser/priorityFee/heliusPriorityFeeMethod.js +46 -0
  265. package/lib/browser/priorityFee/index.d.ts +11 -0
  266. package/lib/browser/priorityFee/index.js +27 -0
  267. package/lib/browser/priorityFee/maxOverSlotsStrategy.d.ts +5 -0
  268. package/lib/browser/priorityFee/maxOverSlotsStrategy.js +17 -0
  269. package/lib/browser/priorityFee/maxStrategy.d.ts +7 -0
  270. package/lib/browser/priorityFee/maxStrategy.js +9 -0
  271. package/lib/browser/priorityFee/priorityFeeSubscriber.d.ts +46 -0
  272. package/lib/browser/priorityFee/priorityFeeSubscriber.js +188 -0
  273. package/lib/browser/priorityFee/priorityFeeSubscriberMap.d.ts +48 -0
  274. package/lib/browser/priorityFee/priorityFeeSubscriberMap.js +88 -0
  275. package/lib/browser/priorityFee/solanaPriorityFeeMethod.d.ts +6 -0
  276. package/lib/browser/priorityFee/solanaPriorityFeeMethod.js +21 -0
  277. package/lib/browser/priorityFee/types.d.ts +31 -0
  278. package/lib/browser/priorityFee/types.js +10 -0
  279. package/lib/browser/serum/serumFulfillmentConfigMap.d.ts +10 -0
  280. package/lib/browser/serum/serumFulfillmentConfigMap.js +17 -0
  281. package/lib/browser/serum/serumSubscriber.d.ts +32 -0
  282. package/lib/browser/serum/serumSubscriber.js +107 -0
  283. package/lib/browser/serum/types.d.ts +13 -0
  284. package/lib/browser/serum/types.js +2 -0
  285. package/lib/browser/slot/SlotSubscriber.d.ts +27 -0
  286. package/lib/browser/slot/SlotSubscriber.js +71 -0
  287. package/lib/browser/slot/SlothashSubscriber.d.ts +26 -0
  288. package/lib/browser/slot/SlothashSubscriber.js +85 -0
  289. package/lib/browser/testClient.d.ts +8 -0
  290. package/lib/browser/testClient.js +23 -0
  291. package/lib/browser/token/index.d.ts +5 -0
  292. package/lib/browser/token/index.js +15 -0
  293. package/lib/browser/tokenFaucet.d.ts +41 -0
  294. package/lib/browser/tokenFaucet.js +188 -0
  295. package/lib/browser/tx/baseTxSender.d.ts +59 -0
  296. package/lib/browser/tx/baseTxSender.js +294 -0
  297. package/lib/browser/tx/blockhashFetcher/baseBlockhashFetcher.d.ts +8 -0
  298. package/lib/browser/tx/blockhashFetcher/baseBlockhashFetcher.js +13 -0
  299. package/lib/browser/tx/blockhashFetcher/cachedBlockhashFetcher.d.ts +28 -0
  300. package/lib/browser/tx/blockhashFetcher/cachedBlockhashFetcher.js +73 -0
  301. package/lib/browser/tx/blockhashFetcher/types.d.ts +4 -0
  302. package/lib/browser/tx/blockhashFetcher/types.js +2 -0
  303. package/lib/browser/tx/fastSingleTxSender.d.ts +41 -0
  304. package/lib/browser/tx/fastSingleTxSender.js +86 -0
  305. package/lib/browser/tx/forwardOnlyTxSender.d.ts +37 -0
  306. package/lib/browser/tx/forwardOnlyTxSender.js +92 -0
  307. package/lib/browser/tx/priorityFeeCalculator.d.ts +44 -0
  308. package/lib/browser/tx/priorityFeeCalculator.js +85 -0
  309. package/lib/browser/tx/reportTransactionError.d.ts +20 -0
  310. package/lib/browser/tx/reportTransactionError.js +103 -0
  311. package/lib/browser/tx/retryTxSender.d.ts +37 -0
  312. package/lib/browser/tx/retryTxSender.js +86 -0
  313. package/lib/browser/tx/txHandler.d.ts +154 -0
  314. package/lib/browser/tx/txHandler.js +453 -0
  315. package/lib/browser/tx/txParamProcessor.d.ts +25 -0
  316. package/lib/browser/tx/txParamProcessor.js +88 -0
  317. package/lib/browser/tx/types.d.ts +29 -0
  318. package/lib/browser/tx/types.js +20 -0
  319. package/lib/browser/tx/utils.d.ts +2 -0
  320. package/lib/browser/tx/utils.js +10 -0
  321. package/lib/browser/tx/whileValidTxSender.d.ts +45 -0
  322. package/lib/browser/tx/whileValidTxSender.js +167 -0
  323. package/lib/browser/types.d.ts +1385 -0
  324. package/lib/browser/types.js +366 -0
  325. package/lib/browser/user.d.ts +411 -0
  326. package/lib/browser/user.js +2151 -0
  327. package/lib/browser/userConfig.d.ts +26 -0
  328. package/lib/browser/userConfig.js +2 -0
  329. package/lib/browser/userMap/PollingSubscription.d.ts +16 -0
  330. package/lib/browser/userMap/PollingSubscription.js +30 -0
  331. package/lib/browser/userMap/WebsocketSubscription.d.ts +27 -0
  332. package/lib/browser/userMap/WebsocketSubscription.js +45 -0
  333. package/lib/browser/userMap/grpcSubscription.d.ts +27 -0
  334. package/lib/browser/userMap/grpcSubscription.js +44 -0
  335. package/lib/browser/userMap/referrerMap.d.ts +45 -0
  336. package/lib/browser/userMap/referrerMap.js +181 -0
  337. package/lib/browser/userMap/userMap.d.ts +90 -0
  338. package/lib/browser/userMap/userMap.js +467 -0
  339. package/lib/browser/userMap/userMapConfig.d.ts +39 -0
  340. package/lib/browser/userMap/userMapConfig.js +2 -0
  341. package/lib/browser/userMap/userStatsMap.d.ts +46 -0
  342. package/lib/browser/userMap/userStatsMap.js +165 -0
  343. package/lib/browser/userName.d.ts +5 -0
  344. package/lib/browser/userName.js +21 -0
  345. package/lib/browser/userStats.d.ts +22 -0
  346. package/lib/browser/userStats.js +91 -0
  347. package/lib/browser/userStatsConfig.d.ts +25 -0
  348. package/lib/browser/userStatsConfig.js +2 -0
  349. package/lib/browser/util/TransactionConfirmationManager.d.ts +16 -0
  350. package/lib/browser/util/TransactionConfirmationManager.js +174 -0
  351. package/lib/browser/util/chainClock.d.ts +17 -0
  352. package/lib/browser/util/chainClock.js +29 -0
  353. package/lib/browser/util/computeUnits.d.ts +8 -0
  354. package/lib/browser/util/computeUnits.js +48 -0
  355. package/lib/browser/util/digest.d.ts +4 -0
  356. package/lib/browser/util/digest.js +14 -0
  357. package/lib/browser/util/promiseTimeout.d.ts +1 -0
  358. package/lib/browser/util/promiseTimeout.js +14 -0
  359. package/lib/browser/util/pythOracleUtils.d.ts +17 -0
  360. package/lib/browser/util/pythOracleUtils.js +107 -0
  361. package/lib/browser/util/tps.d.ts +2 -0
  362. package/lib/browser/util/tps.js +16 -0
  363. package/lib/browser/wallet.d.ts +11 -0
  364. package/lib/browser/wallet.js +32 -0
  365. package/lib/node/accounts/basicUserAccountSubscriber.d.ts +27 -0
  366. package/lib/node/accounts/basicUserAccountSubscriber.js +38 -0
  367. package/lib/node/accounts/bulkAccountLoader.d.ts +37 -0
  368. package/lib/node/accounts/bulkAccountLoader.js +222 -0
  369. package/lib/node/accounts/bulkUserStatsSubscription.d.ts +7 -0
  370. package/lib/node/accounts/bulkUserStatsSubscription.js +21 -0
  371. package/lib/node/accounts/bulkUserSubscription.d.ts +7 -0
  372. package/lib/node/accounts/bulkUserSubscription.js +21 -0
  373. package/lib/node/accounts/fetch.d.ts +6 -0
  374. package/lib/node/accounts/fetch.js +30 -0
  375. package/lib/node/accounts/grpcAccountSubscriber.d.ts +16 -0
  376. package/lib/node/accounts/grpcAccountSubscriber.js +154 -0
  377. package/lib/node/accounts/grpcDriftClientAccountSubscriber.d.ts +12 -0
  378. package/lib/node/accounts/grpcDriftClientAccountSubscriber.js +98 -0
  379. package/lib/node/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts +10 -0
  380. package/lib/node/accounts/grpcInsuranceFundStakeAccountSubscriber.js +30 -0
  381. package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts +18 -0
  382. package/lib/node/accounts/grpcProgramAccountSubscriber.js +171 -0
  383. package/lib/node/accounts/grpcUserAccountSubscriber.d.ts +10 -0
  384. package/lib/node/accounts/grpcUserAccountSubscriber.js +28 -0
  385. package/lib/node/accounts/grpcUserStatsAccountSubscriber.d.ts +10 -0
  386. package/lib/node/accounts/grpcUserStatsAccountSubscriber.js +28 -0
  387. package/lib/node/accounts/oneShotUserAccountSubscriber.d.ts +18 -0
  388. package/lib/node/accounts/oneShotUserAccountSubscriber.js +48 -0
  389. package/lib/node/accounts/pollingDriftClientAccountSubscriber.d.ts +69 -0
  390. package/lib/node/accounts/pollingDriftClientAccountSubscriber.js +418 -0
  391. package/lib/node/accounts/pollingHighLeverageModeConfigAccountSubscriber.d.ts +29 -0
  392. package/lib/node/accounts/pollingHighLeverageModeConfigAccountSubscriber.js +111 -0
  393. package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +29 -0
  394. package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.js +110 -0
  395. package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts +27 -0
  396. package/lib/node/accounts/pollingOracleAccountSubscriber.js +78 -0
  397. package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts +26 -0
  398. package/lib/node/accounts/pollingTokenAccountSubscriber.js +78 -0
  399. package/lib/node/accounts/pollingUserAccountSubscriber.d.ts +29 -0
  400. package/lib/node/accounts/pollingUserAccountSubscriber.js +102 -0
  401. package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts +27 -0
  402. package/lib/node/accounts/pollingUserStatsAccountSubscriber.js +94 -0
  403. package/lib/node/accounts/testBulkAccountLoader.d.ts +4 -0
  404. package/lib/node/accounts/testBulkAccountLoader.js +45 -0
  405. package/lib/node/accounts/types.d.ts +168 -0
  406. package/lib/node/accounts/types.js +16 -0
  407. package/lib/node/accounts/utils.d.ts +8 -0
  408. package/lib/node/accounts/utils.js +49 -0
  409. package/lib/node/accounts/webSocketAccountSubscriber.d.ts +29 -0
  410. package/lib/node/accounts/webSocketAccountSubscriber.js +149 -0
  411. package/lib/node/accounts/webSocketDriftClientAccountSubscriber.d.ts +66 -0
  412. package/lib/node/accounts/webSocketDriftClientAccountSubscriber.js +358 -0
  413. package/lib/node/accounts/webSocketHighLeverageModeConfigAccountSubscriber.d.ts +23 -0
  414. package/lib/node/accounts/webSocketHighLeverageModeConfigAccountSubscriber.js +69 -0
  415. package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +23 -0
  416. package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +67 -0
  417. package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts +32 -0
  418. package/lib/node/accounts/webSocketProgramAccountSubscriber.js +120 -0
  419. package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts +23 -0
  420. package/lib/node/accounts/webSocketUserAccountSubscriber.js +61 -0
  421. package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts +22 -0
  422. package/lib/node/accounts/webSocketUserStatsAccountSubsriber.js +52 -0
  423. package/lib/node/addresses/marketAddresses.d.ts +2 -0
  424. package/lib/node/addresses/marketAddresses.js +15 -0
  425. package/lib/node/addresses/pda.d.ts +32 -0
  426. package/lib/node/addresses/pda.js +211 -0
  427. package/lib/node/adminClient.d.ts +206 -0
  428. package/lib/node/adminClient.js +1858 -0
  429. package/lib/node/assert/assert.d.ts +1 -0
  430. package/lib/node/assert/assert.js +9 -0
  431. package/lib/node/auctionSubscriber/auctionSubscriber.d.ts +14 -0
  432. package/lib/node/auctionSubscriber/auctionSubscriber.js +32 -0
  433. package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts +15 -0
  434. package/lib/node/auctionSubscriber/auctionSubscriberGrpc.js +32 -0
  435. package/lib/node/auctionSubscriber/index.d.ts +3 -0
  436. package/lib/node/auctionSubscriber/index.js +19 -0
  437. package/lib/node/auctionSubscriber/types.d.ts +14 -0
  438. package/lib/node/auctionSubscriber/types.js +2 -0
  439. package/lib/node/bankrun/bankrunConnection.d.ts +75 -0
  440. package/lib/node/bankrun/bankrunConnection.js +332 -0
  441. package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts +27 -0
  442. package/lib/node/blockhashSubscriber/BlockhashSubscriber.js +89 -0
  443. package/lib/node/blockhashSubscriber/index.d.ts +1 -0
  444. package/lib/node/blockhashSubscriber/index.js +17 -0
  445. package/lib/node/blockhashSubscriber/types.d.ts +7 -0
  446. package/lib/node/blockhashSubscriber/types.js +2 -0
  447. package/lib/node/clock/clockSubscriber.d.ts +31 -0
  448. package/lib/node/clock/clockSubscriber.js +80 -0
  449. package/lib/node/config.d.ts +60 -0
  450. package/lib/node/config.js +130 -0
  451. package/lib/node/constants/numericConstants.d.ts +71 -0
  452. package/lib/node/constants/numericConstants.js +75 -0
  453. package/lib/node/constants/perpMarkets.d.ts +19 -0
  454. package/lib/node/constants/perpMarkets.js +997 -0
  455. package/lib/node/constants/spotMarkets.d.ts +24 -0
  456. package/lib/node/constants/spotMarkets.js +470 -0
  457. package/lib/node/constants/txConstants.d.ts +1 -0
  458. package/lib/node/constants/txConstants.js +4 -0
  459. package/lib/node/decode/phoenix.d.ts +7 -0
  460. package/lib/node/decode/phoenix.js +159 -0
  461. package/lib/node/decode/user.d.ts +4 -0
  462. package/lib/node/decode/user.js +339 -0
  463. package/lib/node/dlob/DLOB.d.ts +186 -0
  464. package/lib/node/dlob/DLOB.js +1039 -0
  465. package/lib/node/dlob/DLOBNode.d.ts +68 -0
  466. package/lib/node/dlob/DLOBNode.js +100 -0
  467. package/lib/node/dlob/DLOBSubscriber.d.ts +54 -0
  468. package/lib/node/dlob/DLOBSubscriber.js +139 -0
  469. package/lib/node/dlob/NodeList.d.ts +25 -0
  470. package/lib/node/dlob/NodeList.js +126 -0
  471. package/lib/node/dlob/orderBookLevels.d.ts +72 -0
  472. package/lib/node/dlob/orderBookLevels.js +438 -0
  473. package/lib/node/dlob/types.d.ts +18 -0
  474. package/lib/node/dlob/types.js +2 -0
  475. package/lib/node/driftClient.d.ts +861 -0
  476. package/lib/node/driftClient.js +4768 -0
  477. package/lib/node/driftClientConfig.d.ts +49 -0
  478. package/lib/node/driftClientConfig.js +2 -0
  479. package/lib/node/events/eventList.d.ts +22 -0
  480. package/lib/node/events/eventList.js +80 -0
  481. package/lib/node/events/eventSubscriber.d.ts +46 -0
  482. package/lib/node/events/eventSubscriber.js +223 -0
  483. package/lib/node/events/eventsServerLogProvider.d.ts +21 -0
  484. package/lib/node/events/eventsServerLogProvider.js +121 -0
  485. package/lib/node/events/fetchLogs.d.ts +25 -0
  486. package/lib/node/events/fetchLogs.js +99 -0
  487. package/lib/node/events/parse.d.ts +6 -0
  488. package/lib/node/events/parse.js +106 -0
  489. package/lib/node/events/pollingLogProvider.d.ts +17 -0
  490. package/lib/node/events/pollingLogProvider.js +58 -0
  491. package/lib/node/events/sort.d.ts +2 -0
  492. package/lib/node/events/sort.js +24 -0
  493. package/lib/node/events/txEventCache.d.ts +24 -0
  494. package/lib/node/events/txEventCache.js +71 -0
  495. package/lib/node/events/types.d.ts +79 -0
  496. package/lib/node/events/types.js +32 -0
  497. package/lib/node/events/webSocketLogProvider.d.ts +24 -0
  498. package/lib/node/events/webSocketLogProvider.js +96 -0
  499. package/lib/node/factory/bigNum.d.ts +122 -0
  500. package/lib/node/factory/bigNum.js +457 -0
  501. package/lib/node/factory/oracleClient.d.ts +5 -0
  502. package/lib/node/factory/oracleClient.js +56 -0
  503. package/lib/node/idl/drift.json +14440 -0
  504. package/lib/node/idl/openbook.json +3854 -0
  505. package/lib/node/idl/pyth_solana_receiver.json +628 -0
  506. package/lib/node/idl/switchboard.json +8354 -0
  507. package/lib/node/idl/switchboard_on_demand_30.json +4546 -0
  508. package/lib/node/idl/token_faucet.json +142 -0
  509. package/lib/node/index.d.ts +125 -0
  510. package/lib/node/index.js +147 -0
  511. package/lib/node/isomorphic/grpc.browser.d.ts +1 -0
  512. package/lib/node/isomorphic/grpc.browser.js +8 -0
  513. package/lib/node/isomorphic/grpc.d.ts +1 -0
  514. package/lib/node/isomorphic/grpc.js +8 -0
  515. package/lib/node/jupiter/jupiterClient.d.ts +302 -0
  516. package/lib/node/jupiter/jupiterClient.js +178 -0
  517. package/lib/node/keypair.d.ts +2 -0
  518. package/lib/node/keypair.js +28 -0
  519. package/lib/node/marinade/index.d.ts +12 -0
  520. package/lib/node/marinade/index.js +36 -0
  521. package/lib/node/marinade/types.d.ts +1963 -0
  522. package/lib/node/marinade/types.js +1965 -0
  523. package/lib/node/math/amm.d.ts +98 -0
  524. package/lib/node/math/amm.js +626 -0
  525. package/lib/node/math/auction.d.ts +23 -0
  526. package/lib/node/math/auction.js +130 -0
  527. package/lib/node/math/bankruptcy.d.ts +2 -0
  528. package/lib/node/math/bankruptcy.js +31 -0
  529. package/lib/node/math/conversion.d.ts +2 -0
  530. package/lib/node/math/conversion.js +11 -0
  531. package/lib/node/math/exchangeStatus.d.ts +6 -0
  532. package/lib/node/math/exchangeStatus.js +77 -0
  533. package/lib/node/math/fuel.d.ts +6 -0
  534. package/lib/node/math/fuel.js +55 -0
  535. package/lib/node/math/funding.d.ts +34 -0
  536. package/lib/node/math/funding.js +209 -0
  537. package/lib/node/math/insurance.d.ts +7 -0
  538. package/lib/node/math/insurance.js +73 -0
  539. package/lib/node/math/margin.d.ts +39 -0
  540. package/lib/node/math/margin.js +184 -0
  541. package/lib/node/math/market.d.ts +39 -0
  542. package/lib/node/math/market.js +163 -0
  543. package/lib/node/math/oracles.d.ts +14 -0
  544. package/lib/node/math/oracles.js +134 -0
  545. package/lib/node/math/orders.d.ts +23 -0
  546. package/lib/node/math/orders.js +216 -0
  547. package/lib/node/math/position.d.ts +70 -0
  548. package/lib/node/math/position.js +225 -0
  549. package/lib/node/math/repeg.d.ts +22 -0
  550. package/lib/node/math/repeg.js +164 -0
  551. package/lib/node/math/spotBalance.d.ts +83 -0
  552. package/lib/node/math/spotBalance.js +373 -0
  553. package/lib/node/math/spotMarket.d.ts +11 -0
  554. package/lib/node/math/spotMarket.js +49 -0
  555. package/lib/node/math/spotPosition.d.ts +19 -0
  556. package/lib/node/math/spotPosition.js +78 -0
  557. package/lib/node/math/state.d.ts +5 -0
  558. package/lib/node/math/state.js +30 -0
  559. package/lib/node/math/superStake.d.ts +167 -0
  560. package/lib/node/math/superStake.js +306 -0
  561. package/lib/node/math/tiers.d.ts +4 -0
  562. package/lib/node/math/tiers.js +52 -0
  563. package/lib/node/math/trade.d.ts +117 -0
  564. package/lib/node/math/trade.js +637 -0
  565. package/lib/node/math/userStatus.d.ts +2 -0
  566. package/lib/node/math/userStatus.js +8 -0
  567. package/lib/node/math/utils.d.ts +23 -0
  568. package/lib/node/math/utils.js +112 -0
  569. package/lib/node/memcmp.d.ts +11 -0
  570. package/lib/node/memcmp.js +99 -0
  571. package/lib/node/openbook/openbookV2FulfillmentConfigMap.d.ts +10 -0
  572. package/lib/node/openbook/openbookV2FulfillmentConfigMap.js +17 -0
  573. package/lib/node/openbook/openbookV2Subscriber.d.ts +36 -0
  574. package/lib/node/openbook/openbookV2Subscriber.js +104 -0
  575. package/lib/node/oracles/oracleClientCache.d.ts +9 -0
  576. package/lib/node/oracles/oracleClientCache.js +19 -0
  577. package/lib/node/oracles/oracleId.d.ts +4 -0
  578. package/lib/node/oracles/oracleId.js +38 -0
  579. package/lib/node/oracles/prelaunchOracleClient.d.ts +12 -0
  580. package/lib/node/oracles/prelaunchOracleClient.js +24 -0
  581. package/lib/node/oracles/pythClient.d.ts +14 -0
  582. package/lib/node/oracles/pythClient.js +51 -0
  583. package/lib/node/oracles/pythLazerClient.d.ts +16 -0
  584. package/lib/node/oracles/pythLazerClient.js +61 -0
  585. package/lib/node/oracles/pythPullClient.d.ts +19 -0
  586. package/lib/node/oracles/pythPullClient.js +60 -0
  587. package/lib/node/oracles/quoteAssetOracleClient.d.ts +10 -0
  588. package/lib/node/oracles/quoteAssetOracleClient.js +21 -0
  589. package/lib/node/oracles/strictOraclePrice.d.ts +9 -0
  590. package/lib/node/oracles/strictOraclePrice.js +17 -0
  591. package/lib/node/oracles/switchboardClient.d.ts +12 -0
  592. package/lib/node/oracles/switchboardClient.js +40 -0
  593. package/lib/node/oracles/switchboardOnDemandClient.d.ts +12 -0
  594. package/lib/node/oracles/switchboardOnDemandClient.js +32 -0
  595. package/lib/node/oracles/types.d.ts +23 -0
  596. package/lib/node/oracles/types.js +2 -0
  597. package/lib/node/orderParams.d.ts +29 -0
  598. package/lib/node/orderParams.js +44 -0
  599. package/lib/node/orderSubscriber/OrderSubscriber.d.ts +42 -0
  600. package/lib/node/orderSubscriber/OrderSubscriber.js +172 -0
  601. package/lib/node/orderSubscriber/PollingSubscription.d.ts +12 -0
  602. package/lib/node/orderSubscriber/PollingSubscription.js +23 -0
  603. package/lib/node/orderSubscriber/WebsocketSubscription.d.ts +23 -0
  604. package/lib/node/orderSubscriber/WebsocketSubscription.js +67 -0
  605. package/lib/node/orderSubscriber/grpcSubscription.d.ts +22 -0
  606. package/lib/node/orderSubscriber/grpcSubscription.js +66 -0
  607. package/lib/node/orderSubscriber/index.d.ts +2 -0
  608. package/lib/node/orderSubscriber/index.js +18 -0
  609. package/lib/node/orderSubscriber/types.d.ts +34 -0
  610. package/lib/node/orderSubscriber/types.js +2 -0
  611. package/lib/node/phoenix/phoenixFulfillmentConfigMap.d.ts +10 -0
  612. package/lib/node/phoenix/phoenixFulfillmentConfigMap.js +17 -0
  613. package/lib/node/phoenix/phoenixSubscriber.d.ts +41 -0
  614. package/lib/node/phoenix/phoenixSubscriber.js +152 -0
  615. package/lib/node/priorityFee/averageOverSlotsStrategy.d.ts +5 -0
  616. package/lib/node/priorityFee/averageOverSlotsStrategy.js +16 -0
  617. package/lib/node/priorityFee/averageStrategy.d.ts +5 -0
  618. package/lib/node/priorityFee/averageStrategy.js +11 -0
  619. package/lib/node/priorityFee/driftPriorityFeeMethod.d.ts +13 -0
  620. package/lib/node/priorityFee/driftPriorityFeeMethod.js +26 -0
  621. package/lib/node/priorityFee/ewmaStrategy.d.ts +11 -0
  622. package/lib/node/priorityFee/ewmaStrategy.js +33 -0
  623. package/lib/node/priorityFee/heliusPriorityFeeMethod.d.ts +20 -0
  624. package/lib/node/priorityFee/heliusPriorityFeeMethod.js +46 -0
  625. package/lib/node/priorityFee/index.d.ts +11 -0
  626. package/lib/node/priorityFee/index.js +27 -0
  627. package/lib/node/priorityFee/maxOverSlotsStrategy.d.ts +5 -0
  628. package/lib/node/priorityFee/maxOverSlotsStrategy.js +17 -0
  629. package/lib/node/priorityFee/maxStrategy.d.ts +7 -0
  630. package/lib/node/priorityFee/maxStrategy.js +9 -0
  631. package/lib/node/priorityFee/priorityFeeSubscriber.d.ts +46 -0
  632. package/lib/node/priorityFee/priorityFeeSubscriber.js +188 -0
  633. package/lib/node/priorityFee/priorityFeeSubscriberMap.d.ts +48 -0
  634. package/lib/node/priorityFee/priorityFeeSubscriberMap.js +88 -0
  635. package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts +6 -0
  636. package/lib/node/priorityFee/solanaPriorityFeeMethod.js +21 -0
  637. package/lib/node/priorityFee/types.d.ts +31 -0
  638. package/lib/node/priorityFee/types.js +10 -0
  639. package/lib/node/serum/serumFulfillmentConfigMap.d.ts +10 -0
  640. package/lib/node/serum/serumFulfillmentConfigMap.js +17 -0
  641. package/lib/node/serum/serumSubscriber.d.ts +32 -0
  642. package/lib/node/serum/serumSubscriber.js +107 -0
  643. package/lib/node/serum/types.d.ts +13 -0
  644. package/lib/node/serum/types.js +2 -0
  645. package/lib/node/slot/SlotSubscriber.d.ts +27 -0
  646. package/lib/node/slot/SlotSubscriber.js +71 -0
  647. package/lib/node/slot/SlothashSubscriber.d.ts +26 -0
  648. package/lib/node/slot/SlothashSubscriber.js +85 -0
  649. package/lib/node/testClient.d.ts +8 -0
  650. package/lib/node/testClient.js +23 -0
  651. package/lib/node/token/index.d.ts +5 -0
  652. package/lib/node/token/index.js +15 -0
  653. package/lib/node/tokenFaucet.d.ts +41 -0
  654. package/lib/node/tokenFaucet.js +188 -0
  655. package/lib/node/tx/baseTxSender.d.ts +59 -0
  656. package/lib/node/tx/baseTxSender.js +294 -0
  657. package/lib/node/tx/blockhashFetcher/baseBlockhashFetcher.d.ts +8 -0
  658. package/lib/node/tx/blockhashFetcher/baseBlockhashFetcher.js +13 -0
  659. package/lib/node/tx/blockhashFetcher/cachedBlockhashFetcher.d.ts +28 -0
  660. package/lib/node/tx/blockhashFetcher/cachedBlockhashFetcher.js +73 -0
  661. package/lib/node/tx/blockhashFetcher/types.d.ts +4 -0
  662. package/lib/node/tx/blockhashFetcher/types.js +2 -0
  663. package/lib/node/tx/fastSingleTxSender.d.ts +41 -0
  664. package/lib/node/tx/fastSingleTxSender.js +86 -0
  665. package/lib/node/tx/forwardOnlyTxSender.d.ts +37 -0
  666. package/lib/node/tx/forwardOnlyTxSender.js +92 -0
  667. package/lib/node/tx/priorityFeeCalculator.d.ts +44 -0
  668. package/lib/node/tx/priorityFeeCalculator.js +85 -0
  669. package/lib/node/tx/reportTransactionError.d.ts +20 -0
  670. package/lib/node/tx/reportTransactionError.js +103 -0
  671. package/lib/node/tx/retryTxSender.d.ts +37 -0
  672. package/lib/node/tx/retryTxSender.js +86 -0
  673. package/lib/node/tx/txHandler.d.ts +154 -0
  674. package/lib/node/tx/txHandler.js +453 -0
  675. package/lib/node/tx/txParamProcessor.d.ts +25 -0
  676. package/lib/node/tx/txParamProcessor.js +88 -0
  677. package/lib/node/tx/types.d.ts +29 -0
  678. package/lib/node/tx/types.js +20 -0
  679. package/lib/node/tx/utils.d.ts +2 -0
  680. package/lib/node/tx/utils.js +10 -0
  681. package/lib/node/tx/whileValidTxSender.d.ts +45 -0
  682. package/lib/node/tx/whileValidTxSender.js +167 -0
  683. package/lib/node/types.d.ts +1385 -0
  684. package/lib/node/types.js +366 -0
  685. package/lib/node/user.d.ts +411 -0
  686. package/lib/node/user.js +2151 -0
  687. package/lib/node/userConfig.d.ts +26 -0
  688. package/lib/node/userConfig.js +2 -0
  689. package/lib/node/userMap/PollingSubscription.d.ts +16 -0
  690. package/lib/node/userMap/PollingSubscription.js +30 -0
  691. package/lib/node/userMap/WebsocketSubscription.d.ts +27 -0
  692. package/lib/node/userMap/WebsocketSubscription.js +45 -0
  693. package/lib/node/userMap/grpcSubscription.d.ts +27 -0
  694. package/lib/node/userMap/grpcSubscription.js +44 -0
  695. package/lib/node/userMap/referrerMap.d.ts +45 -0
  696. package/lib/node/userMap/referrerMap.js +181 -0
  697. package/lib/node/userMap/userMap.d.ts +90 -0
  698. package/lib/node/userMap/userMap.js +467 -0
  699. package/lib/node/userMap/userMapConfig.d.ts +39 -0
  700. package/lib/node/userMap/userMapConfig.js +2 -0
  701. package/lib/node/userMap/userStatsMap.d.ts +46 -0
  702. package/lib/node/userMap/userStatsMap.js +165 -0
  703. package/lib/node/userName.d.ts +5 -0
  704. package/lib/node/userName.js +21 -0
  705. package/lib/node/userStats.d.ts +22 -0
  706. package/lib/node/userStats.js +91 -0
  707. package/lib/node/userStatsConfig.d.ts +25 -0
  708. package/lib/node/userStatsConfig.js +2 -0
  709. package/lib/node/util/TransactionConfirmationManager.d.ts +16 -0
  710. package/lib/node/util/TransactionConfirmationManager.js +174 -0
  711. package/lib/node/util/chainClock.d.ts +17 -0
  712. package/lib/node/util/chainClock.js +29 -0
  713. package/lib/node/util/computeUnits.d.ts +8 -0
  714. package/lib/node/util/computeUnits.js +48 -0
  715. package/lib/node/util/digest.d.ts +4 -0
  716. package/lib/node/util/digest.js +14 -0
  717. package/lib/node/util/promiseTimeout.d.ts +1 -0
  718. package/lib/node/util/promiseTimeout.js +14 -0
  719. package/lib/node/util/pythOracleUtils.d.ts +17 -0
  720. package/lib/node/util/pythOracleUtils.js +107 -0
  721. package/lib/node/util/tps.d.ts +2 -0
  722. package/lib/node/util/tps.js +16 -0
  723. package/lib/node/wallet.d.ts +11 -0
  724. package/lib/node/wallet.js +32 -0
  725. package/package.json +92 -0
  726. package/scripts/postbuild.js +95 -0
  727. package/scripts/updateVersion.js +28 -0
  728. package/src/accounts/basicUserAccountSubscriber.ts +59 -0
  729. package/src/accounts/bulkAccountLoader.ts +294 -0
  730. package/src/accounts/bulkUserStatsSubscription.ts +33 -0
  731. package/src/accounts/bulkUserSubscription.ts +33 -0
  732. package/src/accounts/fetch.ts +66 -0
  733. package/src/accounts/grpcAccountSubscriber.ts +160 -0
  734. package/src/accounts/grpcDriftClientAccountSubscriber.ts +203 -0
  735. package/src/accounts/grpcInsuranceFundStakeAccountSubscriber.ts +56 -0
  736. package/src/accounts/grpcProgramAccountSubscriber.ts +190 -0
  737. package/src/accounts/grpcUserAccountSubscriber.ts +48 -0
  738. package/src/accounts/grpcUserStatsAccountSubscriber.ts +50 -0
  739. package/src/accounts/oneShotUserAccountSubscriber.ts +68 -0
  740. package/src/accounts/pollingDriftClientAccountSubscriber.ts +644 -0
  741. package/src/accounts/pollingHighLeverageModeConfigAccountSubscriber.ts +189 -0
  742. package/src/accounts/pollingInsuranceFundStakeAccountSubscriber.ts +185 -0
  743. package/src/accounts/pollingOracleAccountSubscriber.ts +125 -0
  744. package/src/accounts/pollingTokenAccountSubscriber.ts +118 -0
  745. package/src/accounts/pollingUserAccountSubscriber.ts +160 -0
  746. package/src/accounts/pollingUserStatsAccountSubscriber.ts +156 -0
  747. package/src/accounts/testBulkAccountLoader.ts +53 -0
  748. package/src/accounts/types.ts +245 -0
  749. package/src/accounts/utils.ts +62 -0
  750. package/src/accounts/webSocketAccountSubscriber.ts +205 -0
  751. package/src/accounts/webSocketDriftClientAccountSubscriber.ts +621 -0
  752. package/src/accounts/webSocketHighLeverageModeConfigAccountSubscriber.ts +131 -0
  753. package/src/accounts/webSocketInsuranceFundStakeAccountSubscriber.ts +129 -0
  754. package/src/accounts/webSocketProgramAccountSubscriber.ts +182 -0
  755. package/src/accounts/webSocketUserAccountSubscriber.ts +104 -0
  756. package/src/accounts/webSocketUserStatsAccountSubsriber.ts +98 -0
  757. package/src/addresses/marketAddresses.ts +17 -0
  758. package/src/addresses/pda.ts +355 -0
  759. package/src/adminClient.ts +4030 -0
  760. package/src/assert/assert.ts +5 -0
  761. package/src/auctionSubscriber/auctionSubscriber.ts +66 -0
  762. package/src/auctionSubscriber/auctionSubscriberGrpc.ts +70 -0
  763. package/src/auctionSubscriber/index.ts +3 -0
  764. package/src/auctionSubscriber/types.ts +20 -0
  765. package/src/bankrun/bankrunConnection.ts +534 -0
  766. package/src/blockhashSubscriber/BlockhashSubscriber.ts +126 -0
  767. package/src/blockhashSubscriber/index.ts +1 -0
  768. package/src/blockhashSubscriber/types.ts +12 -0
  769. package/src/clock/clockSubscriber.ts +121 -0
  770. package/src/config.ts +212 -0
  771. package/src/constants/numericConstants.ts +113 -0
  772. package/src/constants/perpMarkets.ts +1084 -0
  773. package/src/constants/spotMarkets.ts +565 -0
  774. package/src/constants/txConstants.ts +1 -0
  775. package/src/decode/phoenix.ts +207 -0
  776. package/src/decode/user.ts +368 -0
  777. package/src/dlob/DLOB.ts +1897 -0
  778. package/src/dlob/DLOBNode.ts +197 -0
  779. package/src/dlob/DLOBSubscriber.ts +201 -0
  780. package/src/dlob/NodeList.ts +173 -0
  781. package/src/dlob/orderBookLevels.ts +643 -0
  782. package/src/dlob/types.ts +22 -0
  783. package/src/driftClient.ts +9032 -0
  784. package/src/driftClientConfig.ts +60 -0
  785. package/src/events/eventList.ts +97 -0
  786. package/src/events/eventSubscriber.ts +364 -0
  787. package/src/events/eventsServerLogProvider.ts +152 -0
  788. package/src/events/fetchLogs.ts +169 -0
  789. package/src/events/parse.ts +133 -0
  790. package/src/events/pollingLogProvider.ts +89 -0
  791. package/src/events/sort.ts +39 -0
  792. package/src/events/txEventCache.ts +74 -0
  793. package/src/events/types.ts +185 -0
  794. package/src/events/webSocketLogProvider.ts +121 -0
  795. package/src/factory/bigNum.ts +660 -0
  796. package/src/factory/oracleClient.ts +72 -0
  797. package/src/idl/drift.json +14440 -0
  798. package/src/idl/openbook.json +3854 -0
  799. package/src/idl/pyth.json +142 -0
  800. package/src/idl/pyth_solana_receiver.json +628 -0
  801. package/src/idl/switchboard.json +8354 -0
  802. package/src/idl/switchboard_on_demand_30.json +4546 -0
  803. package/src/idl/token_faucet.json +142 -0
  804. package/src/index.ts +127 -0
  805. package/src/isomorphic/README.md +19 -0
  806. package/src/isomorphic/grpc.browser.ts +4 -0
  807. package/src/isomorphic/grpc.node.ts +23 -0
  808. package/src/isomorphic/grpc.ts +1 -0
  809. package/src/jupiter/jupiterClient.ts +510 -0
  810. package/src/keypair.ts +24 -0
  811. package/src/marinade/idl/idl.json +1962 -0
  812. package/src/marinade/index.ts +64 -0
  813. package/src/marinade/types.ts +3925 -0
  814. package/src/math/amm.ts +1162 -0
  815. package/src/math/auction.ts +173 -0
  816. package/src/math/bankruptcy.ts +34 -0
  817. package/src/math/conversion.ts +13 -0
  818. package/src/math/exchangeStatus.ts +121 -0
  819. package/src/math/fuel.ts +70 -0
  820. package/src/math/funding.ts +342 -0
  821. package/src/math/insurance.ts +110 -0
  822. package/src/math/margin.ts +340 -0
  823. package/src/math/market.ts +336 -0
  824. package/src/math/oracles.ts +228 -0
  825. package/src/math/orders.ts +343 -0
  826. package/src/math/position.ts +324 -0
  827. package/src/math/repeg.ts +214 -0
  828. package/src/math/spotBalance.ts +630 -0
  829. package/src/math/spotMarket.ts +82 -0
  830. package/src/math/spotPosition.ts +184 -0
  831. package/src/math/state.ts +29 -0
  832. package/src/math/superStake.ts +525 -0
  833. package/src/math/tiers.ts +44 -0
  834. package/src/math/trade.ts +993 -0
  835. package/src/math/userStatus.ts +5 -0
  836. package/src/math/utils.ts +120 -0
  837. package/src/memcmp.ts +94 -0
  838. package/src/openbook/openbookV2FulfillmentConfigMap.ts +29 -0
  839. package/src/openbook/openbookV2Subscriber.ts +165 -0
  840. package/src/oracles/oracleClientCache.ts +25 -0
  841. package/src/oracles/oracleId.ts +28 -0
  842. package/src/oracles/prelaunchOracleClient.ts +37 -0
  843. package/src/oracles/pythClient.ts +85 -0
  844. package/src/oracles/pythLazerClient.ts +102 -0
  845. package/src/oracles/pythPullClient.ts +111 -0
  846. package/src/oracles/quoteAssetOracleClient.ts +25 -0
  847. package/src/oracles/strictOraclePrice.ts +19 -0
  848. package/src/oracles/switchboardClient.ts +77 -0
  849. package/src/oracles/switchboardOnDemandClient.ts +56 -0
  850. package/src/oracles/types.ts +23 -0
  851. package/src/orderParams.ts +79 -0
  852. package/src/orderSubscriber/OrderSubscriber.ts +249 -0
  853. package/src/orderSubscriber/PollingSubscription.ts +39 -0
  854. package/src/orderSubscriber/WebsocketSubscription.ts +119 -0
  855. package/src/orderSubscriber/grpcSubscription.ts +121 -0
  856. package/src/orderSubscriber/index.ts +2 -0
  857. package/src/orderSubscriber/types.ts +54 -0
  858. package/src/phoenix/phoenixFulfillmentConfigMap.ts +26 -0
  859. package/src/phoenix/phoenixSubscriber.ts +235 -0
  860. package/src/priorityFee/averageOverSlotsStrategy.ts +16 -0
  861. package/src/priorityFee/averageStrategy.ts +12 -0
  862. package/src/priorityFee/driftPriorityFeeMethod.ts +42 -0
  863. package/src/priorityFee/ewmaStrategy.ts +41 -0
  864. package/src/priorityFee/heliusPriorityFeeMethod.ts +57 -0
  865. package/src/priorityFee/index.ts +11 -0
  866. package/src/priorityFee/maxOverSlotsStrategy.ts +17 -0
  867. package/src/priorityFee/maxStrategy.ts +7 -0
  868. package/src/priorityFee/priorityFeeSubscriber.ts +251 -0
  869. package/src/priorityFee/priorityFeeSubscriberMap.ts +112 -0
  870. package/src/priorityFee/solanaPriorityFeeMethod.ts +34 -0
  871. package/src/priorityFee/types.ts +60 -0
  872. package/src/serum/serumFulfillmentConfigMap.ts +26 -0
  873. package/src/serum/serumSubscriber.ts +169 -0
  874. package/src/serum/types.ts +17 -0
  875. package/src/slot/SlotSubscriber.ts +101 -0
  876. package/src/slot/SlothashSubscriber.ts +126 -0
  877. package/src/testClient.ts +41 -0
  878. package/src/token/index.ts +13 -0
  879. package/src/tokenFaucet.ts +269 -0
  880. package/src/tx/baseTxSender.ts +477 -0
  881. package/src/tx/blockhashFetcher/baseBlockhashFetcher.ts +19 -0
  882. package/src/tx/blockhashFetcher/cachedBlockhashFetcher.ts +90 -0
  883. package/src/tx/blockhashFetcher/types.ts +5 -0
  884. package/src/tx/fastSingleTxSender.ts +142 -0
  885. package/src/tx/forwardOnlyTxSender.ts +145 -0
  886. package/src/tx/priorityFeeCalculator.ts +117 -0
  887. package/src/tx/reportTransactionError.ts +159 -0
  888. package/src/tx/retryTxSender.ts +135 -0
  889. package/src/tx/txHandler.ts +737 -0
  890. package/src/tx/txParamProcessor.ts +155 -0
  891. package/src/tx/types.ts +71 -0
  892. package/src/tx/utils.ts +11 -0
  893. package/src/tx/whileValidTxSender.ts +265 -0
  894. package/src/types.ts +1386 -0
  895. package/src/user.ts +4054 -0
  896. package/src/userConfig.ts +32 -0
  897. package/src/userMap/PollingSubscription.ts +47 -0
  898. package/src/userMap/WebsocketSubscription.ts +84 -0
  899. package/src/userMap/grpcSubscription.ts +85 -0
  900. package/src/userMap/referrerMap.ts +267 -0
  901. package/src/userMap/userMap.ts +654 -0
  902. package/src/userMap/userMapConfig.ts +63 -0
  903. package/src/userMap/userStatsMap.ts +218 -0
  904. package/src/userName.ts +21 -0
  905. package/src/userStats.ts +174 -0
  906. package/src/userStatsConfig.ts +31 -0
  907. package/src/util/TransactionConfirmationManager.ts +292 -0
  908. package/src/util/chainClock.ts +41 -0
  909. package/src/util/computeUnits.ts +65 -0
  910. package/src/util/digest.ts +11 -0
  911. package/src/util/promiseTimeout.ts +14 -0
  912. package/src/util/pythOracleUtils.ts +136 -0
  913. package/src/util/tps.ts +27 -0
  914. package/src/wallet.ts +43 -0
  915. package/tests/amm/test.ts +2092 -0
  916. package/tests/auctions/test.ts +81 -0
  917. package/tests/bn/test.ts +341 -0
  918. package/tests/ci/idl.ts +101 -0
  919. package/tests/ci/verifyConstants.ts +278 -0
  920. package/tests/decode/phoenix.ts +71 -0
  921. package/tests/decode/test.ts +266 -0
  922. package/tests/decode/userAccountBufferStrings.ts +102 -0
  923. package/tests/dlob/helpers.ts +749 -0
  924. package/tests/dlob/test.ts +6623 -0
  925. package/tests/insurance/test.ts +40 -0
  926. package/tests/spot/test.ts +226 -0
  927. package/tests/subscriber/openbook.ts +62 -0
  928. package/tests/tx/TransactionConfirmationManager.test.ts +305 -0
  929. package/tests/tx/cachedBlockhashFetcher.test.ts +96 -0
  930. package/tests/tx/priorityFeeCalculator.ts +77 -0
  931. package/tests/tx/priorityFeeStrategy.ts +95 -0
  932. package/tests/user/helpers.ts +92 -0
  933. package/tests/user/test.ts +517 -0
  934. package/tsconfig.browser.json +13 -0
  935. package/tsconfig.json +13 -0
@@ -0,0 +1,3854 @@
1
+ {
2
+ "version": "0.1.0",
3
+ "name": "openbook_v2",
4
+ "instructions": [
5
+ {
6
+ "name": "createMarket",
7
+ "docs": [
8
+ "Create a [`Market`](crate::state::Market) for a given token pair."
9
+ ],
10
+ "accounts": [
11
+ {
12
+ "name": "market",
13
+ "isMut": true,
14
+ "isSigner": true
15
+ },
16
+ {
17
+ "name": "marketAuthority",
18
+ "isMut": false,
19
+ "isSigner": false
20
+ },
21
+ {
22
+ "name": "bids",
23
+ "isMut": true,
24
+ "isSigner": false,
25
+ "docs": [
26
+ "Accounts are initialized by client,",
27
+ "anchor discriminator is set first when ix exits,"
28
+ ]
29
+ },
30
+ {
31
+ "name": "asks",
32
+ "isMut": true,
33
+ "isSigner": false
34
+ },
35
+ {
36
+ "name": "eventHeap",
37
+ "isMut": true,
38
+ "isSigner": false
39
+ },
40
+ {
41
+ "name": "payer",
42
+ "isMut": true,
43
+ "isSigner": true
44
+ },
45
+ {
46
+ "name": "marketBaseVault",
47
+ "isMut": true,
48
+ "isSigner": false
49
+ },
50
+ {
51
+ "name": "marketQuoteVault",
52
+ "isMut": true,
53
+ "isSigner": false
54
+ },
55
+ {
56
+ "name": "baseMint",
57
+ "isMut": false,
58
+ "isSigner": false
59
+ },
60
+ {
61
+ "name": "quoteMint",
62
+ "isMut": false,
63
+ "isSigner": false
64
+ },
65
+ {
66
+ "name": "systemProgram",
67
+ "isMut": false,
68
+ "isSigner": false
69
+ },
70
+ {
71
+ "name": "tokenProgram",
72
+ "isMut": false,
73
+ "isSigner": false
74
+ },
75
+ {
76
+ "name": "associatedTokenProgram",
77
+ "isMut": false,
78
+ "isSigner": false
79
+ },
80
+ {
81
+ "name": "oracleA",
82
+ "isMut": false,
83
+ "isSigner": false,
84
+ "isOptional": true
85
+ },
86
+ {
87
+ "name": "oracleB",
88
+ "isMut": false,
89
+ "isSigner": false,
90
+ "isOptional": true
91
+ },
92
+ {
93
+ "name": "collectFeeAdmin",
94
+ "isMut": false,
95
+ "isSigner": false
96
+ },
97
+ {
98
+ "name": "openOrdersAdmin",
99
+ "isMut": false,
100
+ "isSigner": false,
101
+ "isOptional": true
102
+ },
103
+ {
104
+ "name": "consumeEventsAdmin",
105
+ "isMut": false,
106
+ "isSigner": false,
107
+ "isOptional": true
108
+ },
109
+ {
110
+ "name": "closeMarketAdmin",
111
+ "isMut": false,
112
+ "isSigner": false,
113
+ "isOptional": true
114
+ },
115
+ {
116
+ "name": "eventAuthority",
117
+ "isMut": false,
118
+ "isSigner": false
119
+ },
120
+ {
121
+ "name": "program",
122
+ "isMut": false,
123
+ "isSigner": false
124
+ }
125
+ ],
126
+ "args": [
127
+ {
128
+ "name": "name",
129
+ "type": "string"
130
+ },
131
+ {
132
+ "name": "oracleConfig",
133
+ "type": {
134
+ "defined": "OracleConfigParams"
135
+ }
136
+ },
137
+ {
138
+ "name": "quoteLotSize",
139
+ "type": "i64"
140
+ },
141
+ {
142
+ "name": "baseLotSize",
143
+ "type": "i64"
144
+ },
145
+ {
146
+ "name": "makerFee",
147
+ "type": "i64"
148
+ },
149
+ {
150
+ "name": "takerFee",
151
+ "type": "i64"
152
+ },
153
+ {
154
+ "name": "timeExpiry",
155
+ "type": "i64"
156
+ }
157
+ ]
158
+ },
159
+ {
160
+ "name": "closeMarket",
161
+ "docs": [
162
+ "Close a [`Market`](crate::state::Market) (only",
163
+ "[`close_market_admin`](crate::state::Market::close_market_admin))."
164
+ ],
165
+ "accounts": [
166
+ {
167
+ "name": "closeMarketAdmin",
168
+ "isMut": false,
169
+ "isSigner": true
170
+ },
171
+ {
172
+ "name": "market",
173
+ "isMut": true,
174
+ "isSigner": false
175
+ },
176
+ {
177
+ "name": "bids",
178
+ "isMut": true,
179
+ "isSigner": false
180
+ },
181
+ {
182
+ "name": "asks",
183
+ "isMut": true,
184
+ "isSigner": false
185
+ },
186
+ {
187
+ "name": "eventHeap",
188
+ "isMut": true,
189
+ "isSigner": false
190
+ },
191
+ {
192
+ "name": "solDestination",
193
+ "isMut": true,
194
+ "isSigner": false
195
+ },
196
+ {
197
+ "name": "tokenProgram",
198
+ "isMut": false,
199
+ "isSigner": false
200
+ }
201
+ ],
202
+ "args": []
203
+ },
204
+ {
205
+ "name": "createOpenOrdersIndexer",
206
+ "docs": [
207
+ "Create an [`OpenOrdersIndexer`](crate::state::OpenOrdersIndexer) account."
208
+ ],
209
+ "accounts": [
210
+ {
211
+ "name": "payer",
212
+ "isMut": true,
213
+ "isSigner": true
214
+ },
215
+ {
216
+ "name": "owner",
217
+ "isMut": false,
218
+ "isSigner": true
219
+ },
220
+ {
221
+ "name": "openOrdersIndexer",
222
+ "isMut": true,
223
+ "isSigner": false
224
+ },
225
+ {
226
+ "name": "systemProgram",
227
+ "isMut": false,
228
+ "isSigner": false
229
+ }
230
+ ],
231
+ "args": []
232
+ },
233
+ {
234
+ "name": "closeOpenOrdersIndexer",
235
+ "docs": [
236
+ "Close an [`OpenOrdersIndexer`](crate::state::OpenOrdersIndexer) account."
237
+ ],
238
+ "accounts": [
239
+ {
240
+ "name": "owner",
241
+ "isMut": false,
242
+ "isSigner": true
243
+ },
244
+ {
245
+ "name": "openOrdersIndexer",
246
+ "isMut": true,
247
+ "isSigner": false
248
+ },
249
+ {
250
+ "name": "solDestination",
251
+ "isMut": true,
252
+ "isSigner": false
253
+ },
254
+ {
255
+ "name": "tokenProgram",
256
+ "isMut": false,
257
+ "isSigner": false
258
+ }
259
+ ],
260
+ "args": []
261
+ },
262
+ {
263
+ "name": "createOpenOrdersAccount",
264
+ "docs": [
265
+ "Create an [`OpenOrdersAccount`](crate::state::OpenOrdersAccount)."
266
+ ],
267
+ "accounts": [
268
+ {
269
+ "name": "payer",
270
+ "isMut": true,
271
+ "isSigner": true
272
+ },
273
+ {
274
+ "name": "owner",
275
+ "isMut": false,
276
+ "isSigner": true
277
+ },
278
+ {
279
+ "name": "delegateAccount",
280
+ "isMut": false,
281
+ "isSigner": false,
282
+ "isOptional": true
283
+ },
284
+ {
285
+ "name": "openOrdersIndexer",
286
+ "isMut": true,
287
+ "isSigner": false
288
+ },
289
+ {
290
+ "name": "openOrdersAccount",
291
+ "isMut": true,
292
+ "isSigner": false
293
+ },
294
+ {
295
+ "name": "market",
296
+ "isMut": false,
297
+ "isSigner": false
298
+ },
299
+ {
300
+ "name": "systemProgram",
301
+ "isMut": false,
302
+ "isSigner": false
303
+ }
304
+ ],
305
+ "args": [
306
+ {
307
+ "name": "name",
308
+ "type": "string"
309
+ }
310
+ ]
311
+ },
312
+ {
313
+ "name": "closeOpenOrdersAccount",
314
+ "docs": [
315
+ "Close an [`OpenOrdersAccount`](crate::state::OpenOrdersAccount)."
316
+ ],
317
+ "accounts": [
318
+ {
319
+ "name": "owner",
320
+ "isMut": false,
321
+ "isSigner": true
322
+ },
323
+ {
324
+ "name": "openOrdersIndexer",
325
+ "isMut": true,
326
+ "isSigner": false
327
+ },
328
+ {
329
+ "name": "openOrdersAccount",
330
+ "isMut": true,
331
+ "isSigner": false
332
+ },
333
+ {
334
+ "name": "solDestination",
335
+ "isMut": true,
336
+ "isSigner": false
337
+ },
338
+ {
339
+ "name": "systemProgram",
340
+ "isMut": false,
341
+ "isSigner": false
342
+ }
343
+ ],
344
+ "args": []
345
+ },
346
+ {
347
+ "name": "placeOrder",
348
+ "docs": [
349
+ "Place an order.",
350
+ "",
351
+ "Different types of orders have different effects on the order book,",
352
+ "as described in [`PlaceOrderType`](crate::state::PlaceOrderType).",
353
+ "",
354
+ "`price_lots` refers to the price in lots: the number of quote lots",
355
+ "per base lot. It is ignored for `PlaceOrderType::Market` orders.",
356
+ "",
357
+ "`expiry_timestamp` is a unix timestamp for when this order should",
358
+ "expire. If 0 is passed in, the order will never expire. If the time",
359
+ "is in the past, the instruction is skipped. Timestamps in the future",
360
+ "are reduced to now + 65,535s.",
361
+ "",
362
+ "`limit` determines the maximum number of orders from the book to fill,",
363
+ "and can be used to limit CU spent. When the limit is reached, processing",
364
+ "stops and the instruction succeeds."
365
+ ],
366
+ "accounts": [
367
+ {
368
+ "name": "signer",
369
+ "isMut": false,
370
+ "isSigner": true
371
+ },
372
+ {
373
+ "name": "openOrdersAccount",
374
+ "isMut": true,
375
+ "isSigner": false
376
+ },
377
+ {
378
+ "name": "openOrdersAdmin",
379
+ "isMut": false,
380
+ "isSigner": true,
381
+ "isOptional": true
382
+ },
383
+ {
384
+ "name": "userTokenAccount",
385
+ "isMut": true,
386
+ "isSigner": false
387
+ },
388
+ {
389
+ "name": "market",
390
+ "isMut": true,
391
+ "isSigner": false
392
+ },
393
+ {
394
+ "name": "bids",
395
+ "isMut": true,
396
+ "isSigner": false
397
+ },
398
+ {
399
+ "name": "asks",
400
+ "isMut": true,
401
+ "isSigner": false
402
+ },
403
+ {
404
+ "name": "eventHeap",
405
+ "isMut": true,
406
+ "isSigner": false
407
+ },
408
+ {
409
+ "name": "marketVault",
410
+ "isMut": true,
411
+ "isSigner": false
412
+ },
413
+ {
414
+ "name": "oracleA",
415
+ "isMut": false,
416
+ "isSigner": false,
417
+ "isOptional": true
418
+ },
419
+ {
420
+ "name": "oracleB",
421
+ "isMut": false,
422
+ "isSigner": false,
423
+ "isOptional": true
424
+ },
425
+ {
426
+ "name": "tokenProgram",
427
+ "isMut": false,
428
+ "isSigner": false
429
+ }
430
+ ],
431
+ "args": [
432
+ {
433
+ "name": "args",
434
+ "type": {
435
+ "defined": "PlaceOrderArgs"
436
+ }
437
+ }
438
+ ],
439
+ "returns": {
440
+ "option": "u128"
441
+ }
442
+ },
443
+ {
444
+ "name": "editOrder",
445
+ "docs": [
446
+ "Edit an order."
447
+ ],
448
+ "accounts": [
449
+ {
450
+ "name": "signer",
451
+ "isMut": false,
452
+ "isSigner": true
453
+ },
454
+ {
455
+ "name": "openOrdersAccount",
456
+ "isMut": true,
457
+ "isSigner": false
458
+ },
459
+ {
460
+ "name": "openOrdersAdmin",
461
+ "isMut": false,
462
+ "isSigner": true,
463
+ "isOptional": true
464
+ },
465
+ {
466
+ "name": "userTokenAccount",
467
+ "isMut": true,
468
+ "isSigner": false
469
+ },
470
+ {
471
+ "name": "market",
472
+ "isMut": true,
473
+ "isSigner": false
474
+ },
475
+ {
476
+ "name": "bids",
477
+ "isMut": true,
478
+ "isSigner": false
479
+ },
480
+ {
481
+ "name": "asks",
482
+ "isMut": true,
483
+ "isSigner": false
484
+ },
485
+ {
486
+ "name": "eventHeap",
487
+ "isMut": true,
488
+ "isSigner": false
489
+ },
490
+ {
491
+ "name": "marketVault",
492
+ "isMut": true,
493
+ "isSigner": false
494
+ },
495
+ {
496
+ "name": "oracleA",
497
+ "isMut": false,
498
+ "isSigner": false,
499
+ "isOptional": true
500
+ },
501
+ {
502
+ "name": "oracleB",
503
+ "isMut": false,
504
+ "isSigner": false,
505
+ "isOptional": true
506
+ },
507
+ {
508
+ "name": "tokenProgram",
509
+ "isMut": false,
510
+ "isSigner": false
511
+ }
512
+ ],
513
+ "args": [
514
+ {
515
+ "name": "clientOrderId",
516
+ "type": "u64"
517
+ },
518
+ {
519
+ "name": "expectedCancelSize",
520
+ "type": "i64"
521
+ },
522
+ {
523
+ "name": "placeOrder",
524
+ "type": {
525
+ "defined": "PlaceOrderArgs"
526
+ }
527
+ }
528
+ ],
529
+ "returns": {
530
+ "option": "u128"
531
+ }
532
+ },
533
+ {
534
+ "name": "editOrderPegged",
535
+ "docs": [
536
+ "Edit an order pegged."
537
+ ],
538
+ "accounts": [
539
+ {
540
+ "name": "signer",
541
+ "isMut": false,
542
+ "isSigner": true
543
+ },
544
+ {
545
+ "name": "openOrdersAccount",
546
+ "isMut": true,
547
+ "isSigner": false
548
+ },
549
+ {
550
+ "name": "openOrdersAdmin",
551
+ "isMut": false,
552
+ "isSigner": true,
553
+ "isOptional": true
554
+ },
555
+ {
556
+ "name": "userTokenAccount",
557
+ "isMut": true,
558
+ "isSigner": false
559
+ },
560
+ {
561
+ "name": "market",
562
+ "isMut": true,
563
+ "isSigner": false
564
+ },
565
+ {
566
+ "name": "bids",
567
+ "isMut": true,
568
+ "isSigner": false
569
+ },
570
+ {
571
+ "name": "asks",
572
+ "isMut": true,
573
+ "isSigner": false
574
+ },
575
+ {
576
+ "name": "eventHeap",
577
+ "isMut": true,
578
+ "isSigner": false
579
+ },
580
+ {
581
+ "name": "marketVault",
582
+ "isMut": true,
583
+ "isSigner": false
584
+ },
585
+ {
586
+ "name": "oracleA",
587
+ "isMut": false,
588
+ "isSigner": false,
589
+ "isOptional": true
590
+ },
591
+ {
592
+ "name": "oracleB",
593
+ "isMut": false,
594
+ "isSigner": false,
595
+ "isOptional": true
596
+ },
597
+ {
598
+ "name": "tokenProgram",
599
+ "isMut": false,
600
+ "isSigner": false
601
+ }
602
+ ],
603
+ "args": [
604
+ {
605
+ "name": "clientOrderId",
606
+ "type": "u64"
607
+ },
608
+ {
609
+ "name": "expectedCancelSize",
610
+ "type": "i64"
611
+ },
612
+ {
613
+ "name": "placeOrder",
614
+ "type": {
615
+ "defined": "PlaceOrderPeggedArgs"
616
+ }
617
+ }
618
+ ],
619
+ "returns": {
620
+ "option": "u128"
621
+ }
622
+ },
623
+ {
624
+ "name": "placeOrders",
625
+ "docs": [
626
+ "Place multiple orders"
627
+ ],
628
+ "accounts": [
629
+ {
630
+ "name": "signer",
631
+ "isMut": false,
632
+ "isSigner": true
633
+ },
634
+ {
635
+ "name": "openOrdersAccount",
636
+ "isMut": true,
637
+ "isSigner": false
638
+ },
639
+ {
640
+ "name": "openOrdersAdmin",
641
+ "isMut": false,
642
+ "isSigner": true,
643
+ "isOptional": true
644
+ },
645
+ {
646
+ "name": "userQuoteAccount",
647
+ "isMut": true,
648
+ "isSigner": false
649
+ },
650
+ {
651
+ "name": "userBaseAccount",
652
+ "isMut": true,
653
+ "isSigner": false
654
+ },
655
+ {
656
+ "name": "market",
657
+ "isMut": true,
658
+ "isSigner": false
659
+ },
660
+ {
661
+ "name": "bids",
662
+ "isMut": true,
663
+ "isSigner": false
664
+ },
665
+ {
666
+ "name": "asks",
667
+ "isMut": true,
668
+ "isSigner": false
669
+ },
670
+ {
671
+ "name": "eventHeap",
672
+ "isMut": true,
673
+ "isSigner": false
674
+ },
675
+ {
676
+ "name": "marketQuoteVault",
677
+ "isMut": true,
678
+ "isSigner": false
679
+ },
680
+ {
681
+ "name": "marketBaseVault",
682
+ "isMut": true,
683
+ "isSigner": false
684
+ },
685
+ {
686
+ "name": "oracleA",
687
+ "isMut": false,
688
+ "isSigner": false,
689
+ "isOptional": true
690
+ },
691
+ {
692
+ "name": "oracleB",
693
+ "isMut": false,
694
+ "isSigner": false,
695
+ "isOptional": true
696
+ },
697
+ {
698
+ "name": "tokenProgram",
699
+ "isMut": false,
700
+ "isSigner": false
701
+ }
702
+ ],
703
+ "args": [
704
+ {
705
+ "name": "ordersType",
706
+ "type": {
707
+ "defined": "PlaceOrderType"
708
+ }
709
+ },
710
+ {
711
+ "name": "bids",
712
+ "type": {
713
+ "vec": {
714
+ "defined": "PlaceMultipleOrdersArgs"
715
+ }
716
+ }
717
+ },
718
+ {
719
+ "name": "asks",
720
+ "type": {
721
+ "vec": {
722
+ "defined": "PlaceMultipleOrdersArgs"
723
+ }
724
+ }
725
+ },
726
+ {
727
+ "name": "limit",
728
+ "type": "u8"
729
+ }
730
+ ],
731
+ "returns": {
732
+ "vec": {
733
+ "option": "u128"
734
+ }
735
+ }
736
+ },
737
+ {
738
+ "name": "cancelAllAndPlaceOrders",
739
+ "docs": [
740
+ "Cancel orders and place multiple orders."
741
+ ],
742
+ "accounts": [
743
+ {
744
+ "name": "signer",
745
+ "isMut": false,
746
+ "isSigner": true
747
+ },
748
+ {
749
+ "name": "openOrdersAccount",
750
+ "isMut": true,
751
+ "isSigner": false
752
+ },
753
+ {
754
+ "name": "openOrdersAdmin",
755
+ "isMut": false,
756
+ "isSigner": true,
757
+ "isOptional": true
758
+ },
759
+ {
760
+ "name": "userQuoteAccount",
761
+ "isMut": true,
762
+ "isSigner": false
763
+ },
764
+ {
765
+ "name": "userBaseAccount",
766
+ "isMut": true,
767
+ "isSigner": false
768
+ },
769
+ {
770
+ "name": "market",
771
+ "isMut": true,
772
+ "isSigner": false
773
+ },
774
+ {
775
+ "name": "bids",
776
+ "isMut": true,
777
+ "isSigner": false
778
+ },
779
+ {
780
+ "name": "asks",
781
+ "isMut": true,
782
+ "isSigner": false
783
+ },
784
+ {
785
+ "name": "eventHeap",
786
+ "isMut": true,
787
+ "isSigner": false
788
+ },
789
+ {
790
+ "name": "marketQuoteVault",
791
+ "isMut": true,
792
+ "isSigner": false
793
+ },
794
+ {
795
+ "name": "marketBaseVault",
796
+ "isMut": true,
797
+ "isSigner": false
798
+ },
799
+ {
800
+ "name": "oracleA",
801
+ "isMut": false,
802
+ "isSigner": false,
803
+ "isOptional": true
804
+ },
805
+ {
806
+ "name": "oracleB",
807
+ "isMut": false,
808
+ "isSigner": false,
809
+ "isOptional": true
810
+ },
811
+ {
812
+ "name": "tokenProgram",
813
+ "isMut": false,
814
+ "isSigner": false
815
+ }
816
+ ],
817
+ "args": [
818
+ {
819
+ "name": "ordersType",
820
+ "type": {
821
+ "defined": "PlaceOrderType"
822
+ }
823
+ },
824
+ {
825
+ "name": "bids",
826
+ "type": {
827
+ "vec": {
828
+ "defined": "PlaceMultipleOrdersArgs"
829
+ }
830
+ }
831
+ },
832
+ {
833
+ "name": "asks",
834
+ "type": {
835
+ "vec": {
836
+ "defined": "PlaceMultipleOrdersArgs"
837
+ }
838
+ }
839
+ },
840
+ {
841
+ "name": "limit",
842
+ "type": "u8"
843
+ }
844
+ ],
845
+ "returns": {
846
+ "vec": {
847
+ "option": "u128"
848
+ }
849
+ }
850
+ },
851
+ {
852
+ "name": "placeOrderPegged",
853
+ "docs": [
854
+ "Place an oracle-peg order."
855
+ ],
856
+ "accounts": [
857
+ {
858
+ "name": "signer",
859
+ "isMut": false,
860
+ "isSigner": true
861
+ },
862
+ {
863
+ "name": "openOrdersAccount",
864
+ "isMut": true,
865
+ "isSigner": false
866
+ },
867
+ {
868
+ "name": "openOrdersAdmin",
869
+ "isMut": false,
870
+ "isSigner": true,
871
+ "isOptional": true
872
+ },
873
+ {
874
+ "name": "userTokenAccount",
875
+ "isMut": true,
876
+ "isSigner": false
877
+ },
878
+ {
879
+ "name": "market",
880
+ "isMut": true,
881
+ "isSigner": false
882
+ },
883
+ {
884
+ "name": "bids",
885
+ "isMut": true,
886
+ "isSigner": false
887
+ },
888
+ {
889
+ "name": "asks",
890
+ "isMut": true,
891
+ "isSigner": false
892
+ },
893
+ {
894
+ "name": "eventHeap",
895
+ "isMut": true,
896
+ "isSigner": false
897
+ },
898
+ {
899
+ "name": "marketVault",
900
+ "isMut": true,
901
+ "isSigner": false
902
+ },
903
+ {
904
+ "name": "oracleA",
905
+ "isMut": false,
906
+ "isSigner": false,
907
+ "isOptional": true
908
+ },
909
+ {
910
+ "name": "oracleB",
911
+ "isMut": false,
912
+ "isSigner": false,
913
+ "isOptional": true
914
+ },
915
+ {
916
+ "name": "tokenProgram",
917
+ "isMut": false,
918
+ "isSigner": false
919
+ }
920
+ ],
921
+ "args": [
922
+ {
923
+ "name": "args",
924
+ "type": {
925
+ "defined": "PlaceOrderPeggedArgs"
926
+ }
927
+ }
928
+ ],
929
+ "returns": {
930
+ "option": "u128"
931
+ }
932
+ },
933
+ {
934
+ "name": "placeTakeOrder",
935
+ "docs": [
936
+ "Place an order that shall take existing liquidity off of the book, not",
937
+ "add a new order off the book.",
938
+ "",
939
+ "This type of order allows for instant token settlement for the taker."
940
+ ],
941
+ "accounts": [
942
+ {
943
+ "name": "signer",
944
+ "isMut": true,
945
+ "isSigner": true
946
+ },
947
+ {
948
+ "name": "penaltyPayer",
949
+ "isMut": true,
950
+ "isSigner": true
951
+ },
952
+ {
953
+ "name": "market",
954
+ "isMut": true,
955
+ "isSigner": false
956
+ },
957
+ {
958
+ "name": "marketAuthority",
959
+ "isMut": false,
960
+ "isSigner": false
961
+ },
962
+ {
963
+ "name": "bids",
964
+ "isMut": true,
965
+ "isSigner": false
966
+ },
967
+ {
968
+ "name": "asks",
969
+ "isMut": true,
970
+ "isSigner": false
971
+ },
972
+ {
973
+ "name": "marketBaseVault",
974
+ "isMut": true,
975
+ "isSigner": false
976
+ },
977
+ {
978
+ "name": "marketQuoteVault",
979
+ "isMut": true,
980
+ "isSigner": false
981
+ },
982
+ {
983
+ "name": "eventHeap",
984
+ "isMut": true,
985
+ "isSigner": false
986
+ },
987
+ {
988
+ "name": "userBaseAccount",
989
+ "isMut": true,
990
+ "isSigner": false
991
+ },
992
+ {
993
+ "name": "userQuoteAccount",
994
+ "isMut": true,
995
+ "isSigner": false
996
+ },
997
+ {
998
+ "name": "oracleA",
999
+ "isMut": false,
1000
+ "isSigner": false,
1001
+ "isOptional": true
1002
+ },
1003
+ {
1004
+ "name": "oracleB",
1005
+ "isMut": false,
1006
+ "isSigner": false,
1007
+ "isOptional": true
1008
+ },
1009
+ {
1010
+ "name": "tokenProgram",
1011
+ "isMut": false,
1012
+ "isSigner": false
1013
+ },
1014
+ {
1015
+ "name": "systemProgram",
1016
+ "isMut": false,
1017
+ "isSigner": false
1018
+ },
1019
+ {
1020
+ "name": "openOrdersAdmin",
1021
+ "isMut": false,
1022
+ "isSigner": true,
1023
+ "isOptional": true
1024
+ }
1025
+ ],
1026
+ "args": [
1027
+ {
1028
+ "name": "args",
1029
+ "type": {
1030
+ "defined": "PlaceTakeOrderArgs"
1031
+ }
1032
+ }
1033
+ ]
1034
+ },
1035
+ {
1036
+ "name": "consumeEvents",
1037
+ "docs": [
1038
+ "Process up to `limit` [events](crate::state::AnyEvent).",
1039
+ "",
1040
+ "When a user places a 'take' order, they do not know beforehand which",
1041
+ "market maker will have placed the 'make' order that they get executed",
1042
+ "against. This prevents them from passing in a market maker's",
1043
+ "[`OpenOrdersAccount`](crate::state::OpenOrdersAccount), which is needed",
1044
+ "to credit/debit the relevant tokens to/from the maker. As such, Openbook",
1045
+ "uses a 'crank' system, where `place_order` only emits events, and",
1046
+ "`consume_events` handles token settlement.",
1047
+ "",
1048
+ "Currently, there are two types of events: [`FillEvent`](crate::state::FillEvent)s",
1049
+ "and [`OutEvent`](crate::state::OutEvent)s.",
1050
+ "",
1051
+ "A `FillEvent` is emitted when an order is filled, and it is handled by",
1052
+ "debiting whatever the taker is selling from the taker and crediting",
1053
+ "it to the maker, and debiting whatever the taker is buying from the",
1054
+ "maker and crediting it to the taker. Note that *no tokens are moved*,",
1055
+ "these are just debits and credits to each party's [`Position`](crate::state::Position).",
1056
+ "",
1057
+ "An `OutEvent` is emitted when a limit order needs to be removed from",
1058
+ "the book during a `place_order` invocation, and it is handled by",
1059
+ "crediting whatever the maker would have sold (quote token in a bid,",
1060
+ "base token in an ask) back to the maker."
1061
+ ],
1062
+ "accounts": [
1063
+ {
1064
+ "name": "consumeEventsAdmin",
1065
+ "isMut": false,
1066
+ "isSigner": true,
1067
+ "isOptional": true
1068
+ },
1069
+ {
1070
+ "name": "market",
1071
+ "isMut": true,
1072
+ "isSigner": false
1073
+ },
1074
+ {
1075
+ "name": "eventHeap",
1076
+ "isMut": true,
1077
+ "isSigner": false
1078
+ }
1079
+ ],
1080
+ "args": [
1081
+ {
1082
+ "name": "limit",
1083
+ "type": "u64"
1084
+ }
1085
+ ]
1086
+ },
1087
+ {
1088
+ "name": "consumeGivenEvents",
1089
+ "docs": [
1090
+ "Process the [events](crate::state::AnyEvent) at the given positions."
1091
+ ],
1092
+ "accounts": [
1093
+ {
1094
+ "name": "consumeEventsAdmin",
1095
+ "isMut": false,
1096
+ "isSigner": true,
1097
+ "isOptional": true
1098
+ },
1099
+ {
1100
+ "name": "market",
1101
+ "isMut": true,
1102
+ "isSigner": false
1103
+ },
1104
+ {
1105
+ "name": "eventHeap",
1106
+ "isMut": true,
1107
+ "isSigner": false
1108
+ }
1109
+ ],
1110
+ "args": [
1111
+ {
1112
+ "name": "slots",
1113
+ "type": {
1114
+ "vec": "u64"
1115
+ }
1116
+ }
1117
+ ]
1118
+ },
1119
+ {
1120
+ "name": "cancelOrder",
1121
+ "docs": [
1122
+ "Cancel an order by its `order_id`.",
1123
+ "",
1124
+ "Note that this doesn't emit an [`OutEvent`](crate::state::OutEvent) because a",
1125
+ "maker knows that they will be passing in their own [`OpenOrdersAccount`](crate::state::OpenOrdersAccount)."
1126
+ ],
1127
+ "accounts": [
1128
+ {
1129
+ "name": "signer",
1130
+ "isMut": false,
1131
+ "isSigner": true
1132
+ },
1133
+ {
1134
+ "name": "openOrdersAccount",
1135
+ "isMut": true,
1136
+ "isSigner": false
1137
+ },
1138
+ {
1139
+ "name": "market",
1140
+ "isMut": false,
1141
+ "isSigner": false
1142
+ },
1143
+ {
1144
+ "name": "bids",
1145
+ "isMut": true,
1146
+ "isSigner": false
1147
+ },
1148
+ {
1149
+ "name": "asks",
1150
+ "isMut": true,
1151
+ "isSigner": false
1152
+ }
1153
+ ],
1154
+ "args": [
1155
+ {
1156
+ "name": "orderId",
1157
+ "type": "u128"
1158
+ }
1159
+ ]
1160
+ },
1161
+ {
1162
+ "name": "cancelOrderByClientOrderId",
1163
+ "docs": [
1164
+ "Cancel an order by its `client_order_id`.",
1165
+ "",
1166
+ "Note that this doesn't emit an [`OutEvent`](crate::state::OutEvent) because a",
1167
+ "maker knows that they will be passing in their own [`OpenOrdersAccount`](crate::state::OpenOrdersAccount)."
1168
+ ],
1169
+ "accounts": [
1170
+ {
1171
+ "name": "signer",
1172
+ "isMut": false,
1173
+ "isSigner": true
1174
+ },
1175
+ {
1176
+ "name": "openOrdersAccount",
1177
+ "isMut": true,
1178
+ "isSigner": false
1179
+ },
1180
+ {
1181
+ "name": "market",
1182
+ "isMut": false,
1183
+ "isSigner": false
1184
+ },
1185
+ {
1186
+ "name": "bids",
1187
+ "isMut": true,
1188
+ "isSigner": false
1189
+ },
1190
+ {
1191
+ "name": "asks",
1192
+ "isMut": true,
1193
+ "isSigner": false
1194
+ }
1195
+ ],
1196
+ "args": [
1197
+ {
1198
+ "name": "clientOrderId",
1199
+ "type": "u64"
1200
+ }
1201
+ ],
1202
+ "returns": "i64"
1203
+ },
1204
+ {
1205
+ "name": "cancelAllOrders",
1206
+ "docs": [
1207
+ "Cancel up to `limit` orders, optionally filtering by side"
1208
+ ],
1209
+ "accounts": [
1210
+ {
1211
+ "name": "signer",
1212
+ "isMut": false,
1213
+ "isSigner": true
1214
+ },
1215
+ {
1216
+ "name": "openOrdersAccount",
1217
+ "isMut": true,
1218
+ "isSigner": false
1219
+ },
1220
+ {
1221
+ "name": "market",
1222
+ "isMut": false,
1223
+ "isSigner": false
1224
+ },
1225
+ {
1226
+ "name": "bids",
1227
+ "isMut": true,
1228
+ "isSigner": false
1229
+ },
1230
+ {
1231
+ "name": "asks",
1232
+ "isMut": true,
1233
+ "isSigner": false
1234
+ }
1235
+ ],
1236
+ "args": [
1237
+ {
1238
+ "name": "sideOption",
1239
+ "type": {
1240
+ "option": {
1241
+ "defined": "Side"
1242
+ }
1243
+ }
1244
+ },
1245
+ {
1246
+ "name": "limit",
1247
+ "type": "u8"
1248
+ }
1249
+ ]
1250
+ },
1251
+ {
1252
+ "name": "deposit",
1253
+ "docs": [
1254
+ "Deposit a certain amount of `base` and `quote` lamports into one's",
1255
+ "[`Position`](crate::state::Position).",
1256
+ "",
1257
+ "Makers might wish to `deposit`, rather than have actual tokens moved for",
1258
+ "each trade, in order to reduce CUs."
1259
+ ],
1260
+ "accounts": [
1261
+ {
1262
+ "name": "owner",
1263
+ "isMut": false,
1264
+ "isSigner": true
1265
+ },
1266
+ {
1267
+ "name": "userBaseAccount",
1268
+ "isMut": true,
1269
+ "isSigner": false
1270
+ },
1271
+ {
1272
+ "name": "userQuoteAccount",
1273
+ "isMut": true,
1274
+ "isSigner": false
1275
+ },
1276
+ {
1277
+ "name": "openOrdersAccount",
1278
+ "isMut": true,
1279
+ "isSigner": false
1280
+ },
1281
+ {
1282
+ "name": "market",
1283
+ "isMut": true,
1284
+ "isSigner": false
1285
+ },
1286
+ {
1287
+ "name": "marketBaseVault",
1288
+ "isMut": true,
1289
+ "isSigner": false
1290
+ },
1291
+ {
1292
+ "name": "marketQuoteVault",
1293
+ "isMut": true,
1294
+ "isSigner": false
1295
+ },
1296
+ {
1297
+ "name": "tokenProgram",
1298
+ "isMut": false,
1299
+ "isSigner": false
1300
+ }
1301
+ ],
1302
+ "args": [
1303
+ {
1304
+ "name": "baseAmount",
1305
+ "type": "u64"
1306
+ },
1307
+ {
1308
+ "name": "quoteAmount",
1309
+ "type": "u64"
1310
+ }
1311
+ ]
1312
+ },
1313
+ {
1314
+ "name": "refill",
1315
+ "docs": [
1316
+ "Refill a certain amount of `base` and `quote` lamports. The amount being passed is the",
1317
+ "total lamports that the [`Position`](crate::state::Position) will have.",
1318
+ "",
1319
+ "Makers might wish to `refill`, rather than have actual tokens moved for",
1320
+ "each trade, in order to reduce CUs."
1321
+ ],
1322
+ "accounts": [
1323
+ {
1324
+ "name": "owner",
1325
+ "isMut": false,
1326
+ "isSigner": true
1327
+ },
1328
+ {
1329
+ "name": "userBaseAccount",
1330
+ "isMut": true,
1331
+ "isSigner": false
1332
+ },
1333
+ {
1334
+ "name": "userQuoteAccount",
1335
+ "isMut": true,
1336
+ "isSigner": false
1337
+ },
1338
+ {
1339
+ "name": "openOrdersAccount",
1340
+ "isMut": true,
1341
+ "isSigner": false
1342
+ },
1343
+ {
1344
+ "name": "market",
1345
+ "isMut": true,
1346
+ "isSigner": false
1347
+ },
1348
+ {
1349
+ "name": "marketBaseVault",
1350
+ "isMut": true,
1351
+ "isSigner": false
1352
+ },
1353
+ {
1354
+ "name": "marketQuoteVault",
1355
+ "isMut": true,
1356
+ "isSigner": false
1357
+ },
1358
+ {
1359
+ "name": "tokenProgram",
1360
+ "isMut": false,
1361
+ "isSigner": false
1362
+ }
1363
+ ],
1364
+ "args": [
1365
+ {
1366
+ "name": "baseAmount",
1367
+ "type": "u64"
1368
+ },
1369
+ {
1370
+ "name": "quoteAmount",
1371
+ "type": "u64"
1372
+ }
1373
+ ]
1374
+ },
1375
+ {
1376
+ "name": "settleFunds",
1377
+ "docs": [
1378
+ "Withdraw any available tokens."
1379
+ ],
1380
+ "accounts": [
1381
+ {
1382
+ "name": "owner",
1383
+ "isMut": true,
1384
+ "isSigner": true
1385
+ },
1386
+ {
1387
+ "name": "penaltyPayer",
1388
+ "isMut": true,
1389
+ "isSigner": true
1390
+ },
1391
+ {
1392
+ "name": "openOrdersAccount",
1393
+ "isMut": true,
1394
+ "isSigner": false
1395
+ },
1396
+ {
1397
+ "name": "market",
1398
+ "isMut": true,
1399
+ "isSigner": false
1400
+ },
1401
+ {
1402
+ "name": "marketAuthority",
1403
+ "isMut": false,
1404
+ "isSigner": false
1405
+ },
1406
+ {
1407
+ "name": "marketBaseVault",
1408
+ "isMut": true,
1409
+ "isSigner": false
1410
+ },
1411
+ {
1412
+ "name": "marketQuoteVault",
1413
+ "isMut": true,
1414
+ "isSigner": false
1415
+ },
1416
+ {
1417
+ "name": "userBaseAccount",
1418
+ "isMut": true,
1419
+ "isSigner": false
1420
+ },
1421
+ {
1422
+ "name": "userQuoteAccount",
1423
+ "isMut": true,
1424
+ "isSigner": false
1425
+ },
1426
+ {
1427
+ "name": "referrerAccount",
1428
+ "isMut": true,
1429
+ "isSigner": false,
1430
+ "isOptional": true
1431
+ },
1432
+ {
1433
+ "name": "tokenProgram",
1434
+ "isMut": false,
1435
+ "isSigner": false
1436
+ },
1437
+ {
1438
+ "name": "systemProgram",
1439
+ "isMut": false,
1440
+ "isSigner": false
1441
+ }
1442
+ ],
1443
+ "args": []
1444
+ },
1445
+ {
1446
+ "name": "settleFundsExpired",
1447
+ "docs": [
1448
+ "Withdraw any available tokens when the market is expired (only",
1449
+ "[`close_market_admin`](crate::state::Market::close_market_admin))."
1450
+ ],
1451
+ "accounts": [
1452
+ {
1453
+ "name": "closeMarketAdmin",
1454
+ "isMut": false,
1455
+ "isSigner": true
1456
+ },
1457
+ {
1458
+ "name": "owner",
1459
+ "isMut": true,
1460
+ "isSigner": true
1461
+ },
1462
+ {
1463
+ "name": "penaltyPayer",
1464
+ "isMut": true,
1465
+ "isSigner": true
1466
+ },
1467
+ {
1468
+ "name": "openOrdersAccount",
1469
+ "isMut": true,
1470
+ "isSigner": false
1471
+ },
1472
+ {
1473
+ "name": "market",
1474
+ "isMut": true,
1475
+ "isSigner": false
1476
+ },
1477
+ {
1478
+ "name": "marketAuthority",
1479
+ "isMut": false,
1480
+ "isSigner": false
1481
+ },
1482
+ {
1483
+ "name": "marketBaseVault",
1484
+ "isMut": true,
1485
+ "isSigner": false
1486
+ },
1487
+ {
1488
+ "name": "marketQuoteVault",
1489
+ "isMut": true,
1490
+ "isSigner": false
1491
+ },
1492
+ {
1493
+ "name": "userBaseAccount",
1494
+ "isMut": true,
1495
+ "isSigner": false
1496
+ },
1497
+ {
1498
+ "name": "userQuoteAccount",
1499
+ "isMut": true,
1500
+ "isSigner": false
1501
+ },
1502
+ {
1503
+ "name": "referrerAccount",
1504
+ "isMut": true,
1505
+ "isSigner": false,
1506
+ "isOptional": true
1507
+ },
1508
+ {
1509
+ "name": "tokenProgram",
1510
+ "isMut": false,
1511
+ "isSigner": false
1512
+ },
1513
+ {
1514
+ "name": "systemProgram",
1515
+ "isMut": false,
1516
+ "isSigner": false
1517
+ }
1518
+ ],
1519
+ "args": []
1520
+ },
1521
+ {
1522
+ "name": "sweepFees",
1523
+ "docs": [
1524
+ "Sweep fees, as a [`Market`](crate::state::Market)'s admin."
1525
+ ],
1526
+ "accounts": [
1527
+ {
1528
+ "name": "collectFeeAdmin",
1529
+ "isMut": false,
1530
+ "isSigner": true
1531
+ },
1532
+ {
1533
+ "name": "market",
1534
+ "isMut": true,
1535
+ "isSigner": false
1536
+ },
1537
+ {
1538
+ "name": "marketAuthority",
1539
+ "isMut": false,
1540
+ "isSigner": false
1541
+ },
1542
+ {
1543
+ "name": "marketQuoteVault",
1544
+ "isMut": true,
1545
+ "isSigner": false
1546
+ },
1547
+ {
1548
+ "name": "tokenReceiverAccount",
1549
+ "isMut": true,
1550
+ "isSigner": false
1551
+ },
1552
+ {
1553
+ "name": "tokenProgram",
1554
+ "isMut": false,
1555
+ "isSigner": false
1556
+ }
1557
+ ],
1558
+ "args": []
1559
+ },
1560
+ {
1561
+ "name": "setDelegate",
1562
+ "docs": [
1563
+ "Update the [`delegate`](crate::state::OpenOrdersAccount::delegate) of an open orders account."
1564
+ ],
1565
+ "accounts": [
1566
+ {
1567
+ "name": "owner",
1568
+ "isMut": true,
1569
+ "isSigner": true
1570
+ },
1571
+ {
1572
+ "name": "openOrdersAccount",
1573
+ "isMut": true,
1574
+ "isSigner": false
1575
+ },
1576
+ {
1577
+ "name": "delegateAccount",
1578
+ "isMut": false,
1579
+ "isSigner": false,
1580
+ "isOptional": true
1581
+ }
1582
+ ],
1583
+ "args": []
1584
+ },
1585
+ {
1586
+ "name": "setMarketExpired",
1587
+ "docs": [
1588
+ "Set market to expired before pruning orders and closing the market (only",
1589
+ "[`close_market_admin`](crate::state::Market::close_market_admin))."
1590
+ ],
1591
+ "accounts": [
1592
+ {
1593
+ "name": "closeMarketAdmin",
1594
+ "isMut": false,
1595
+ "isSigner": true
1596
+ },
1597
+ {
1598
+ "name": "market",
1599
+ "isMut": true,
1600
+ "isSigner": false
1601
+ }
1602
+ ],
1603
+ "args": []
1604
+ },
1605
+ {
1606
+ "name": "pruneOrders",
1607
+ "docs": [
1608
+ "Remove orders from the book when the market is expired (only",
1609
+ "[`close_market_admin`](crate::state::Market::close_market_admin))."
1610
+ ],
1611
+ "accounts": [
1612
+ {
1613
+ "name": "closeMarketAdmin",
1614
+ "isMut": false,
1615
+ "isSigner": true
1616
+ },
1617
+ {
1618
+ "name": "openOrdersAccount",
1619
+ "isMut": true,
1620
+ "isSigner": false
1621
+ },
1622
+ {
1623
+ "name": "market",
1624
+ "isMut": false,
1625
+ "isSigner": false
1626
+ },
1627
+ {
1628
+ "name": "bids",
1629
+ "isMut": true,
1630
+ "isSigner": false
1631
+ },
1632
+ {
1633
+ "name": "asks",
1634
+ "isMut": true,
1635
+ "isSigner": false
1636
+ }
1637
+ ],
1638
+ "args": [
1639
+ {
1640
+ "name": "limit",
1641
+ "type": "u8"
1642
+ }
1643
+ ]
1644
+ },
1645
+ {
1646
+ "name": "stubOracleCreate",
1647
+ "accounts": [
1648
+ {
1649
+ "name": "payer",
1650
+ "isMut": true,
1651
+ "isSigner": true
1652
+ },
1653
+ {
1654
+ "name": "owner",
1655
+ "isMut": false,
1656
+ "isSigner": true
1657
+ },
1658
+ {
1659
+ "name": "oracle",
1660
+ "isMut": true,
1661
+ "isSigner": false
1662
+ },
1663
+ {
1664
+ "name": "mint",
1665
+ "isMut": false,
1666
+ "isSigner": false
1667
+ },
1668
+ {
1669
+ "name": "systemProgram",
1670
+ "isMut": false,
1671
+ "isSigner": false
1672
+ }
1673
+ ],
1674
+ "args": [
1675
+ {
1676
+ "name": "price",
1677
+ "type": "f64"
1678
+ }
1679
+ ]
1680
+ },
1681
+ {
1682
+ "name": "stubOracleClose",
1683
+ "accounts": [
1684
+ {
1685
+ "name": "owner",
1686
+ "isMut": false,
1687
+ "isSigner": true
1688
+ },
1689
+ {
1690
+ "name": "oracle",
1691
+ "isMut": true,
1692
+ "isSigner": false
1693
+ },
1694
+ {
1695
+ "name": "solDestination",
1696
+ "isMut": true,
1697
+ "isSigner": false
1698
+ },
1699
+ {
1700
+ "name": "tokenProgram",
1701
+ "isMut": false,
1702
+ "isSigner": false
1703
+ }
1704
+ ],
1705
+ "args": []
1706
+ },
1707
+ {
1708
+ "name": "stubOracleSet",
1709
+ "accounts": [
1710
+ {
1711
+ "name": "owner",
1712
+ "isMut": false,
1713
+ "isSigner": true
1714
+ },
1715
+ {
1716
+ "name": "oracle",
1717
+ "isMut": true,
1718
+ "isSigner": false
1719
+ }
1720
+ ],
1721
+ "args": [
1722
+ {
1723
+ "name": "price",
1724
+ "type": "f64"
1725
+ }
1726
+ ]
1727
+ }
1728
+ ],
1729
+ "accounts": [
1730
+ {
1731
+ "name": "Market",
1732
+ "type": {
1733
+ "kind": "struct",
1734
+ "fields": [
1735
+ {
1736
+ "name": "bump",
1737
+ "docs": [
1738
+ "PDA bump"
1739
+ ],
1740
+ "type": "u8"
1741
+ },
1742
+ {
1743
+ "name": "baseDecimals",
1744
+ "docs": [
1745
+ "Number of decimals used for the base token.",
1746
+ "",
1747
+ "Used to convert the oracle's price into a native/native price."
1748
+ ],
1749
+ "type": "u8"
1750
+ },
1751
+ {
1752
+ "name": "quoteDecimals",
1753
+ "type": "u8"
1754
+ },
1755
+ {
1756
+ "name": "padding1",
1757
+ "type": {
1758
+ "array": [
1759
+ "u8",
1760
+ 5
1761
+ ]
1762
+ }
1763
+ },
1764
+ {
1765
+ "name": "marketAuthority",
1766
+ "type": "publicKey"
1767
+ },
1768
+ {
1769
+ "name": "timeExpiry",
1770
+ "docs": [
1771
+ "No expiry = 0. Market will expire and no trading allowed after time_expiry"
1772
+ ],
1773
+ "type": "i64"
1774
+ },
1775
+ {
1776
+ "name": "collectFeeAdmin",
1777
+ "docs": [
1778
+ "Admin who can collect fees from the market"
1779
+ ],
1780
+ "type": "publicKey"
1781
+ },
1782
+ {
1783
+ "name": "openOrdersAdmin",
1784
+ "docs": [
1785
+ "Admin who must sign off on all order creations"
1786
+ ],
1787
+ "type": {
1788
+ "defined": "NonZeroPubkeyOption"
1789
+ }
1790
+ },
1791
+ {
1792
+ "name": "consumeEventsAdmin",
1793
+ "docs": [
1794
+ "Admin who must sign off on all event consumptions"
1795
+ ],
1796
+ "type": {
1797
+ "defined": "NonZeroPubkeyOption"
1798
+ }
1799
+ },
1800
+ {
1801
+ "name": "closeMarketAdmin",
1802
+ "docs": [
1803
+ "Admin who can set market expired, prune orders and close the market"
1804
+ ],
1805
+ "type": {
1806
+ "defined": "NonZeroPubkeyOption"
1807
+ }
1808
+ },
1809
+ {
1810
+ "name": "name",
1811
+ "docs": [
1812
+ "Name. Trailing zero bytes are ignored."
1813
+ ],
1814
+ "type": {
1815
+ "array": [
1816
+ "u8",
1817
+ 16
1818
+ ]
1819
+ }
1820
+ },
1821
+ {
1822
+ "name": "bids",
1823
+ "docs": [
1824
+ "Address of the BookSide account for bids"
1825
+ ],
1826
+ "type": "publicKey"
1827
+ },
1828
+ {
1829
+ "name": "asks",
1830
+ "docs": [
1831
+ "Address of the BookSide account for asks"
1832
+ ],
1833
+ "type": "publicKey"
1834
+ },
1835
+ {
1836
+ "name": "eventHeap",
1837
+ "docs": [
1838
+ "Address of the EventHeap account"
1839
+ ],
1840
+ "type": "publicKey"
1841
+ },
1842
+ {
1843
+ "name": "oracleA",
1844
+ "docs": [
1845
+ "Oracles account address"
1846
+ ],
1847
+ "type": {
1848
+ "defined": "NonZeroPubkeyOption"
1849
+ }
1850
+ },
1851
+ {
1852
+ "name": "oracleB",
1853
+ "type": {
1854
+ "defined": "NonZeroPubkeyOption"
1855
+ }
1856
+ },
1857
+ {
1858
+ "name": "oracleConfig",
1859
+ "docs": [
1860
+ "Oracle configuration"
1861
+ ],
1862
+ "type": {
1863
+ "defined": "OracleConfig"
1864
+ }
1865
+ },
1866
+ {
1867
+ "name": "quoteLotSize",
1868
+ "docs": [
1869
+ "Number of quote native in a quote lot. Must be a power of 10.",
1870
+ "",
1871
+ "Primarily useful for increasing the tick size on the market: A lot price",
1872
+ "of 1 becomes a native price of quote_lot_size/base_lot_size becomes a",
1873
+ "ui price of quote_lot_size*base_decimals/base_lot_size/quote_decimals."
1874
+ ],
1875
+ "type": "i64"
1876
+ },
1877
+ {
1878
+ "name": "baseLotSize",
1879
+ "docs": [
1880
+ "Number of base native in a base lot. Must be a power of 10.",
1881
+ "",
1882
+ "Example: If base decimals for the underlying asset is 6, base lot size",
1883
+ "is 100 and and base position lots is 10_000 then base position native is",
1884
+ "1_000_000 and base position ui is 1."
1885
+ ],
1886
+ "type": "i64"
1887
+ },
1888
+ {
1889
+ "name": "seqNum",
1890
+ "docs": [
1891
+ "Total number of orders seen"
1892
+ ],
1893
+ "type": "u64"
1894
+ },
1895
+ {
1896
+ "name": "registrationTime",
1897
+ "docs": [
1898
+ "Timestamp in seconds that the market was registered at."
1899
+ ],
1900
+ "type": "i64"
1901
+ },
1902
+ {
1903
+ "name": "makerFee",
1904
+ "docs": [
1905
+ "Fees",
1906
+ "",
1907
+ "Fee (in 10^-6) when matching maker orders.",
1908
+ "maker_fee < 0 it means some of the taker_fees goes to the maker",
1909
+ "maker_fee > 0, it means no taker_fee to the maker, and maker fee goes to the referral"
1910
+ ],
1911
+ "type": "i64"
1912
+ },
1913
+ {
1914
+ "name": "takerFee",
1915
+ "docs": [
1916
+ "Fee (in 10^-6) for taker orders, always >= 0."
1917
+ ],
1918
+ "type": "i64"
1919
+ },
1920
+ {
1921
+ "name": "feesAccrued",
1922
+ "docs": [
1923
+ "Total fees accrued in native quote"
1924
+ ],
1925
+ "type": "u128"
1926
+ },
1927
+ {
1928
+ "name": "feesToReferrers",
1929
+ "docs": [
1930
+ "Total fees settled in native quote"
1931
+ ],
1932
+ "type": "u128"
1933
+ },
1934
+ {
1935
+ "name": "referrerRebatesAccrued",
1936
+ "docs": [
1937
+ "Referrer rebates to be distributed"
1938
+ ],
1939
+ "type": "u64"
1940
+ },
1941
+ {
1942
+ "name": "feesAvailable",
1943
+ "docs": [
1944
+ "Fees generated and available to withdraw via sweep_fees"
1945
+ ],
1946
+ "type": "u64"
1947
+ },
1948
+ {
1949
+ "name": "makerVolume",
1950
+ "docs": [
1951
+ "Cumulative maker volume (same as taker volume) in quote native units"
1952
+ ],
1953
+ "type": "u128"
1954
+ },
1955
+ {
1956
+ "name": "takerVolumeWoOo",
1957
+ "docs": [
1958
+ "Cumulative taker volume in quote native units due to place take orders"
1959
+ ],
1960
+ "type": "u128"
1961
+ },
1962
+ {
1963
+ "name": "baseMint",
1964
+ "type": "publicKey"
1965
+ },
1966
+ {
1967
+ "name": "quoteMint",
1968
+ "type": "publicKey"
1969
+ },
1970
+ {
1971
+ "name": "marketBaseVault",
1972
+ "type": "publicKey"
1973
+ },
1974
+ {
1975
+ "name": "baseDepositTotal",
1976
+ "type": "u64"
1977
+ },
1978
+ {
1979
+ "name": "marketQuoteVault",
1980
+ "type": "publicKey"
1981
+ },
1982
+ {
1983
+ "name": "quoteDepositTotal",
1984
+ "type": "u64"
1985
+ },
1986
+ {
1987
+ "name": "reserved",
1988
+ "type": {
1989
+ "array": [
1990
+ "u8",
1991
+ 128
1992
+ ]
1993
+ }
1994
+ }
1995
+ ]
1996
+ }
1997
+ },
1998
+ {
1999
+ "name": "OpenOrdersAccount",
2000
+ "type": {
2001
+ "kind": "struct",
2002
+ "fields": [
2003
+ {
2004
+ "name": "owner",
2005
+ "type": "publicKey"
2006
+ },
2007
+ {
2008
+ "name": "market",
2009
+ "type": "publicKey"
2010
+ },
2011
+ {
2012
+ "name": "name",
2013
+ "type": {
2014
+ "array": [
2015
+ "u8",
2016
+ 32
2017
+ ]
2018
+ }
2019
+ },
2020
+ {
2021
+ "name": "delegate",
2022
+ "type": {
2023
+ "defined": "NonZeroPubkeyOption"
2024
+ }
2025
+ },
2026
+ {
2027
+ "name": "accountNum",
2028
+ "type": "u32"
2029
+ },
2030
+ {
2031
+ "name": "bump",
2032
+ "type": "u8"
2033
+ },
2034
+ {
2035
+ "name": "version",
2036
+ "type": "u8"
2037
+ },
2038
+ {
2039
+ "name": "padding",
2040
+ "type": {
2041
+ "array": [
2042
+ "u8",
2043
+ 2
2044
+ ]
2045
+ }
2046
+ },
2047
+ {
2048
+ "name": "position",
2049
+ "type": {
2050
+ "defined": "Position"
2051
+ }
2052
+ },
2053
+ {
2054
+ "name": "openOrders",
2055
+ "type": {
2056
+ "array": [
2057
+ {
2058
+ "defined": "OpenOrder"
2059
+ },
2060
+ 24
2061
+ ]
2062
+ }
2063
+ }
2064
+ ]
2065
+ }
2066
+ },
2067
+ {
2068
+ "name": "OpenOrdersIndexer",
2069
+ "type": {
2070
+ "kind": "struct",
2071
+ "fields": [
2072
+ {
2073
+ "name": "bump",
2074
+ "type": "u8"
2075
+ },
2076
+ {
2077
+ "name": "createdCounter",
2078
+ "type": "u32"
2079
+ },
2080
+ {
2081
+ "name": "addresses",
2082
+ "type": {
2083
+ "vec": "publicKey"
2084
+ }
2085
+ }
2086
+ ]
2087
+ }
2088
+ },
2089
+ {
2090
+ "name": "StubOracle",
2091
+ "type": {
2092
+ "kind": "struct",
2093
+ "fields": [
2094
+ {
2095
+ "name": "owner",
2096
+ "type": "publicKey"
2097
+ },
2098
+ {
2099
+ "name": "mint",
2100
+ "type": "publicKey"
2101
+ },
2102
+ {
2103
+ "name": "price",
2104
+ "type": "f64"
2105
+ },
2106
+ {
2107
+ "name": "lastUpdateTs",
2108
+ "type": "i64"
2109
+ },
2110
+ {
2111
+ "name": "lastUpdateSlot",
2112
+ "type": "u64"
2113
+ },
2114
+ {
2115
+ "name": "deviation",
2116
+ "type": "f64"
2117
+ },
2118
+ {
2119
+ "name": "reserved",
2120
+ "type": {
2121
+ "array": [
2122
+ "u8",
2123
+ 104
2124
+ ]
2125
+ }
2126
+ }
2127
+ ]
2128
+ }
2129
+ },
2130
+ {
2131
+ "name": "BookSide",
2132
+ "type": {
2133
+ "kind": "struct",
2134
+ "fields": [
2135
+ {
2136
+ "name": "roots",
2137
+ "type": {
2138
+ "array": [
2139
+ {
2140
+ "defined": "OrderTreeRoot"
2141
+ },
2142
+ 2
2143
+ ]
2144
+ }
2145
+ },
2146
+ {
2147
+ "name": "reservedRoots",
2148
+ "type": {
2149
+ "array": [
2150
+ {
2151
+ "defined": "OrderTreeRoot"
2152
+ },
2153
+ 4
2154
+ ]
2155
+ }
2156
+ },
2157
+ {
2158
+ "name": "reserved",
2159
+ "type": {
2160
+ "array": [
2161
+ "u8",
2162
+ 256
2163
+ ]
2164
+ }
2165
+ },
2166
+ {
2167
+ "name": "nodes",
2168
+ "type": {
2169
+ "defined": "OrderTreeNodes"
2170
+ }
2171
+ }
2172
+ ]
2173
+ }
2174
+ },
2175
+ {
2176
+ "name": "EventHeap",
2177
+ "docs": [
2178
+ "Container for the different EventTypes.",
2179
+ "",
2180
+ "Events are stored in a fixed-array of nodes. Free nodes are connected by a single-linked list",
2181
+ "starting at free_head while used nodes form a circular doubly-linked list starting at",
2182
+ "used_head."
2183
+ ],
2184
+ "type": {
2185
+ "kind": "struct",
2186
+ "fields": [
2187
+ {
2188
+ "name": "header",
2189
+ "type": {
2190
+ "defined": "EventHeapHeader"
2191
+ }
2192
+ },
2193
+ {
2194
+ "name": "nodes",
2195
+ "type": {
2196
+ "array": [
2197
+ {
2198
+ "defined": "EventNode"
2199
+ },
2200
+ 600
2201
+ ]
2202
+ }
2203
+ },
2204
+ {
2205
+ "name": "reserved",
2206
+ "type": {
2207
+ "array": [
2208
+ "u8",
2209
+ 64
2210
+ ]
2211
+ }
2212
+ }
2213
+ ]
2214
+ }
2215
+ }
2216
+ ],
2217
+ "types": [
2218
+ {
2219
+ "name": "NonZeroPubkeyOption",
2220
+ "docs": [
2221
+ "Like `Option`, but implemented for `Pubkey` to be used with `zero_copy`"
2222
+ ],
2223
+ "type": {
2224
+ "kind": "struct",
2225
+ "fields": [
2226
+ {
2227
+ "name": "key",
2228
+ "type": "publicKey"
2229
+ }
2230
+ ]
2231
+ }
2232
+ },
2233
+ {
2234
+ "name": "Position",
2235
+ "type": {
2236
+ "kind": "struct",
2237
+ "fields": [
2238
+ {
2239
+ "name": "bidsBaseLots",
2240
+ "docs": [
2241
+ "Base lots in open bids"
2242
+ ],
2243
+ "type": "i64"
2244
+ },
2245
+ {
2246
+ "name": "asksBaseLots",
2247
+ "docs": [
2248
+ "Base lots in open asks"
2249
+ ],
2250
+ "type": "i64"
2251
+ },
2252
+ {
2253
+ "name": "baseFreeNative",
2254
+ "type": "u64"
2255
+ },
2256
+ {
2257
+ "name": "quoteFreeNative",
2258
+ "type": "u64"
2259
+ },
2260
+ {
2261
+ "name": "lockedMakerFees",
2262
+ "type": "u64"
2263
+ },
2264
+ {
2265
+ "name": "referrerRebatesAvailable",
2266
+ "type": "u64"
2267
+ },
2268
+ {
2269
+ "name": "penaltyHeapCount",
2270
+ "docs": [
2271
+ "Count of ixs when events are added to the heap",
2272
+ "To avoid this, send remaining accounts in order to process the events"
2273
+ ],
2274
+ "type": "u64"
2275
+ },
2276
+ {
2277
+ "name": "makerVolume",
2278
+ "docs": [
2279
+ "Cumulative maker volume in quote native units (display only)"
2280
+ ],
2281
+ "type": "u128"
2282
+ },
2283
+ {
2284
+ "name": "takerVolume",
2285
+ "docs": [
2286
+ "Cumulative taker volume in quote native units (display only)"
2287
+ ],
2288
+ "type": "u128"
2289
+ },
2290
+ {
2291
+ "name": "bidsQuoteLots",
2292
+ "docs": [
2293
+ "Quote lots in open bids"
2294
+ ],
2295
+ "type": "i64"
2296
+ },
2297
+ {
2298
+ "name": "reserved",
2299
+ "type": {
2300
+ "array": [
2301
+ "u8",
2302
+ 64
2303
+ ]
2304
+ }
2305
+ }
2306
+ ]
2307
+ }
2308
+ },
2309
+ {
2310
+ "name": "OpenOrder",
2311
+ "type": {
2312
+ "kind": "struct",
2313
+ "fields": [
2314
+ {
2315
+ "name": "id",
2316
+ "type": "u128"
2317
+ },
2318
+ {
2319
+ "name": "clientId",
2320
+ "type": "u64"
2321
+ },
2322
+ {
2323
+ "name": "lockedPrice",
2324
+ "docs": [
2325
+ "Price at which user's assets were locked"
2326
+ ],
2327
+ "type": "i64"
2328
+ },
2329
+ {
2330
+ "name": "isFree",
2331
+ "type": "u8"
2332
+ },
2333
+ {
2334
+ "name": "sideAndTree",
2335
+ "type": "u8"
2336
+ },
2337
+ {
2338
+ "name": "padding",
2339
+ "type": {
2340
+ "array": [
2341
+ "u8",
2342
+ 6
2343
+ ]
2344
+ }
2345
+ }
2346
+ ]
2347
+ }
2348
+ },
2349
+ {
2350
+ "name": "OracleConfig",
2351
+ "type": {
2352
+ "kind": "struct",
2353
+ "fields": [
2354
+ {
2355
+ "name": "confFilter",
2356
+ "type": "f64"
2357
+ },
2358
+ {
2359
+ "name": "maxStalenessSlots",
2360
+ "type": "i64"
2361
+ },
2362
+ {
2363
+ "name": "reserved",
2364
+ "type": {
2365
+ "array": [
2366
+ "u8",
2367
+ 72
2368
+ ]
2369
+ }
2370
+ }
2371
+ ]
2372
+ }
2373
+ },
2374
+ {
2375
+ "name": "OracleConfigParams",
2376
+ "type": {
2377
+ "kind": "struct",
2378
+ "fields": [
2379
+ {
2380
+ "name": "confFilter",
2381
+ "type": "f32"
2382
+ },
2383
+ {
2384
+ "name": "maxStalenessSlots",
2385
+ "type": {
2386
+ "option": "u32"
2387
+ }
2388
+ }
2389
+ ]
2390
+ }
2391
+ },
2392
+ {
2393
+ "name": "EventHeapHeader",
2394
+ "type": {
2395
+ "kind": "struct",
2396
+ "fields": [
2397
+ {
2398
+ "name": "freeHead",
2399
+ "type": "u16"
2400
+ },
2401
+ {
2402
+ "name": "usedHead",
2403
+ "type": "u16"
2404
+ },
2405
+ {
2406
+ "name": "count",
2407
+ "type": "u16"
2408
+ },
2409
+ {
2410
+ "name": "padd",
2411
+ "type": "u16"
2412
+ },
2413
+ {
2414
+ "name": "seqNum",
2415
+ "type": "u64"
2416
+ }
2417
+ ]
2418
+ }
2419
+ },
2420
+ {
2421
+ "name": "EventNode",
2422
+ "type": {
2423
+ "kind": "struct",
2424
+ "fields": [
2425
+ {
2426
+ "name": "next",
2427
+ "type": "u16"
2428
+ },
2429
+ {
2430
+ "name": "prev",
2431
+ "type": "u16"
2432
+ },
2433
+ {
2434
+ "name": "pad",
2435
+ "type": {
2436
+ "array": [
2437
+ "u8",
2438
+ 4
2439
+ ]
2440
+ }
2441
+ },
2442
+ {
2443
+ "name": "event",
2444
+ "type": {
2445
+ "defined": "AnyEvent"
2446
+ }
2447
+ }
2448
+ ]
2449
+ }
2450
+ },
2451
+ {
2452
+ "name": "AnyEvent",
2453
+ "type": {
2454
+ "kind": "struct",
2455
+ "fields": [
2456
+ {
2457
+ "name": "eventType",
2458
+ "type": "u8"
2459
+ },
2460
+ {
2461
+ "name": "padding",
2462
+ "type": {
2463
+ "array": [
2464
+ "u8",
2465
+ 143
2466
+ ]
2467
+ }
2468
+ }
2469
+ ]
2470
+ }
2471
+ },
2472
+ {
2473
+ "name": "FillEvent",
2474
+ "type": {
2475
+ "kind": "struct",
2476
+ "fields": [
2477
+ {
2478
+ "name": "eventType",
2479
+ "type": "u8"
2480
+ },
2481
+ {
2482
+ "name": "takerSide",
2483
+ "type": "u8"
2484
+ },
2485
+ {
2486
+ "name": "makerOut",
2487
+ "type": "u8"
2488
+ },
2489
+ {
2490
+ "name": "makerSlot",
2491
+ "type": "u8"
2492
+ },
2493
+ {
2494
+ "name": "padding",
2495
+ "type": {
2496
+ "array": [
2497
+ "u8",
2498
+ 4
2499
+ ]
2500
+ }
2501
+ },
2502
+ {
2503
+ "name": "timestamp",
2504
+ "type": "u64"
2505
+ },
2506
+ {
2507
+ "name": "seqNum",
2508
+ "type": "u64"
2509
+ },
2510
+ {
2511
+ "name": "maker",
2512
+ "type": "publicKey"
2513
+ },
2514
+ {
2515
+ "name": "makerTimestamp",
2516
+ "type": "u64"
2517
+ },
2518
+ {
2519
+ "name": "taker",
2520
+ "type": "publicKey"
2521
+ },
2522
+ {
2523
+ "name": "takerClientOrderId",
2524
+ "type": "u64"
2525
+ },
2526
+ {
2527
+ "name": "price",
2528
+ "type": "i64"
2529
+ },
2530
+ {
2531
+ "name": "pegLimit",
2532
+ "type": "i64"
2533
+ },
2534
+ {
2535
+ "name": "quantity",
2536
+ "type": "i64"
2537
+ },
2538
+ {
2539
+ "name": "makerClientOrderId",
2540
+ "type": "u64"
2541
+ },
2542
+ {
2543
+ "name": "reserved",
2544
+ "type": {
2545
+ "array": [
2546
+ "u8",
2547
+ 8
2548
+ ]
2549
+ }
2550
+ }
2551
+ ]
2552
+ }
2553
+ },
2554
+ {
2555
+ "name": "OutEvent",
2556
+ "type": {
2557
+ "kind": "struct",
2558
+ "fields": [
2559
+ {
2560
+ "name": "eventType",
2561
+ "type": "u8"
2562
+ },
2563
+ {
2564
+ "name": "side",
2565
+ "type": "u8"
2566
+ },
2567
+ {
2568
+ "name": "ownerSlot",
2569
+ "type": "u8"
2570
+ },
2571
+ {
2572
+ "name": "padding0",
2573
+ "type": {
2574
+ "array": [
2575
+ "u8",
2576
+ 5
2577
+ ]
2578
+ }
2579
+ },
2580
+ {
2581
+ "name": "timestamp",
2582
+ "type": "u64"
2583
+ },
2584
+ {
2585
+ "name": "seqNum",
2586
+ "type": "u64"
2587
+ },
2588
+ {
2589
+ "name": "owner",
2590
+ "type": "publicKey"
2591
+ },
2592
+ {
2593
+ "name": "quantity",
2594
+ "type": "i64"
2595
+ },
2596
+ {
2597
+ "name": "padding1",
2598
+ "type": {
2599
+ "array": [
2600
+ "u8",
2601
+ 80
2602
+ ]
2603
+ }
2604
+ }
2605
+ ]
2606
+ }
2607
+ },
2608
+ {
2609
+ "name": "InnerNode",
2610
+ "docs": [
2611
+ "InnerNodes and LeafNodes compose the binary tree of orders.",
2612
+ "",
2613
+ "Each InnerNode has exactly two children, which are either InnerNodes themselves,",
2614
+ "or LeafNodes. The children share the top `prefix_len` bits of `key`. The left",
2615
+ "child has a 0 in the next bit, and the right a 1."
2616
+ ],
2617
+ "type": {
2618
+ "kind": "struct",
2619
+ "fields": [
2620
+ {
2621
+ "name": "tag",
2622
+ "type": "u8"
2623
+ },
2624
+ {
2625
+ "name": "padding",
2626
+ "type": {
2627
+ "array": [
2628
+ "u8",
2629
+ 3
2630
+ ]
2631
+ }
2632
+ },
2633
+ {
2634
+ "name": "prefixLen",
2635
+ "docs": [
2636
+ "number of highest `key` bits that all children share",
2637
+ "e.g. if it's 2, the two highest bits of `key` will be the same on all children"
2638
+ ],
2639
+ "type": "u32"
2640
+ },
2641
+ {
2642
+ "name": "key",
2643
+ "docs": [
2644
+ "only the top `prefix_len` bits of `key` are relevant"
2645
+ ],
2646
+ "type": "u128"
2647
+ },
2648
+ {
2649
+ "name": "children",
2650
+ "docs": [
2651
+ "indexes into `BookSide::nodes`"
2652
+ ],
2653
+ "type": {
2654
+ "array": [
2655
+ "u32",
2656
+ 2
2657
+ ]
2658
+ }
2659
+ },
2660
+ {
2661
+ "name": "childEarliestExpiry",
2662
+ "docs": [
2663
+ "The earliest expiry timestamp for the left and right subtrees.",
2664
+ "",
2665
+ "Needed to be able to find and remove expired orders without having to",
2666
+ "iterate through the whole bookside."
2667
+ ],
2668
+ "type": {
2669
+ "array": [
2670
+ "u64",
2671
+ 2
2672
+ ]
2673
+ }
2674
+ },
2675
+ {
2676
+ "name": "reserved",
2677
+ "type": {
2678
+ "array": [
2679
+ "u8",
2680
+ 40
2681
+ ]
2682
+ }
2683
+ }
2684
+ ]
2685
+ }
2686
+ },
2687
+ {
2688
+ "name": "LeafNode",
2689
+ "docs": [
2690
+ "LeafNodes represent an order in the binary tree"
2691
+ ],
2692
+ "type": {
2693
+ "kind": "struct",
2694
+ "fields": [
2695
+ {
2696
+ "name": "tag",
2697
+ "docs": [
2698
+ "NodeTag"
2699
+ ],
2700
+ "type": "u8"
2701
+ },
2702
+ {
2703
+ "name": "ownerSlot",
2704
+ "docs": [
2705
+ "Index into the owning OpenOrdersAccount's OpenOrders"
2706
+ ],
2707
+ "type": "u8"
2708
+ },
2709
+ {
2710
+ "name": "timeInForce",
2711
+ "docs": [
2712
+ "Time in seconds after `timestamp` at which the order expires.",
2713
+ "A value of 0 means no expiry."
2714
+ ],
2715
+ "type": "u16"
2716
+ },
2717
+ {
2718
+ "name": "padding",
2719
+ "type": {
2720
+ "array": [
2721
+ "u8",
2722
+ 4
2723
+ ]
2724
+ }
2725
+ },
2726
+ {
2727
+ "name": "key",
2728
+ "docs": [
2729
+ "The binary tree key, see new_node_key()"
2730
+ ],
2731
+ "type": "u128"
2732
+ },
2733
+ {
2734
+ "name": "owner",
2735
+ "docs": [
2736
+ "Address of the owning OpenOrdersAccount"
2737
+ ],
2738
+ "type": "publicKey"
2739
+ },
2740
+ {
2741
+ "name": "quantity",
2742
+ "docs": [
2743
+ "Number of base lots to buy or sell, always >=1"
2744
+ ],
2745
+ "type": "i64"
2746
+ },
2747
+ {
2748
+ "name": "timestamp",
2749
+ "docs": [
2750
+ "The time the order was placed"
2751
+ ],
2752
+ "type": "u64"
2753
+ },
2754
+ {
2755
+ "name": "pegLimit",
2756
+ "docs": [
2757
+ "If the effective price of an oracle pegged order exceeds this limit,",
2758
+ "it will be considered invalid and may be removed.",
2759
+ "",
2760
+ "Only applicable in the oracle_pegged OrderTree"
2761
+ ],
2762
+ "type": "i64"
2763
+ },
2764
+ {
2765
+ "name": "clientOrderId",
2766
+ "docs": [
2767
+ "User defined id for this order, used in FillEvents"
2768
+ ],
2769
+ "type": "u64"
2770
+ }
2771
+ ]
2772
+ }
2773
+ },
2774
+ {
2775
+ "name": "AnyNode",
2776
+ "type": {
2777
+ "kind": "struct",
2778
+ "fields": [
2779
+ {
2780
+ "name": "tag",
2781
+ "type": "u8"
2782
+ },
2783
+ {
2784
+ "name": "data",
2785
+ "type": {
2786
+ "array": [
2787
+ "u8",
2788
+ 87
2789
+ ]
2790
+ }
2791
+ }
2792
+ ]
2793
+ }
2794
+ },
2795
+ {
2796
+ "name": "OrderTreeRoot",
2797
+ "type": {
2798
+ "kind": "struct",
2799
+ "fields": [
2800
+ {
2801
+ "name": "maybeNode",
2802
+ "type": "u32"
2803
+ },
2804
+ {
2805
+ "name": "leafCount",
2806
+ "type": "u32"
2807
+ }
2808
+ ]
2809
+ }
2810
+ },
2811
+ {
2812
+ "name": "OrderTreeNodes",
2813
+ "docs": [
2814
+ "A binary tree on AnyNode::key()",
2815
+ "",
2816
+ "The key encodes the price in the top 64 bits."
2817
+ ],
2818
+ "type": {
2819
+ "kind": "struct",
2820
+ "fields": [
2821
+ {
2822
+ "name": "orderTreeType",
2823
+ "type": "u8"
2824
+ },
2825
+ {
2826
+ "name": "padding",
2827
+ "type": {
2828
+ "array": [
2829
+ "u8",
2830
+ 3
2831
+ ]
2832
+ }
2833
+ },
2834
+ {
2835
+ "name": "bumpIndex",
2836
+ "type": "u32"
2837
+ },
2838
+ {
2839
+ "name": "freeListLen",
2840
+ "type": "u32"
2841
+ },
2842
+ {
2843
+ "name": "freeListHead",
2844
+ "type": "u32"
2845
+ },
2846
+ {
2847
+ "name": "reserved",
2848
+ "type": {
2849
+ "array": [
2850
+ "u8",
2851
+ 512
2852
+ ]
2853
+ }
2854
+ },
2855
+ {
2856
+ "name": "nodes",
2857
+ "type": {
2858
+ "array": [
2859
+ {
2860
+ "defined": "AnyNode"
2861
+ },
2862
+ 1024
2863
+ ]
2864
+ }
2865
+ }
2866
+ ]
2867
+ }
2868
+ },
2869
+ {
2870
+ "name": "I80F48",
2871
+ "docs": [
2872
+ "Nothing in Rust shall use these types. They only exist so that the Anchor IDL",
2873
+ "knows about them and typescript can deserialize it."
2874
+ ],
2875
+ "type": {
2876
+ "kind": "struct",
2877
+ "fields": [
2878
+ {
2879
+ "name": "val",
2880
+ "type": "i128"
2881
+ }
2882
+ ]
2883
+ }
2884
+ },
2885
+ {
2886
+ "name": "PlaceOrderArgs",
2887
+ "type": {
2888
+ "kind": "struct",
2889
+ "fields": [
2890
+ {
2891
+ "name": "side",
2892
+ "type": {
2893
+ "defined": "Side"
2894
+ }
2895
+ },
2896
+ {
2897
+ "name": "priceLots",
2898
+ "type": "i64"
2899
+ },
2900
+ {
2901
+ "name": "maxBaseLots",
2902
+ "type": "i64"
2903
+ },
2904
+ {
2905
+ "name": "maxQuoteLotsIncludingFees",
2906
+ "type": "i64"
2907
+ },
2908
+ {
2909
+ "name": "clientOrderId",
2910
+ "type": "u64"
2911
+ },
2912
+ {
2913
+ "name": "orderType",
2914
+ "type": {
2915
+ "defined": "PlaceOrderType"
2916
+ }
2917
+ },
2918
+ {
2919
+ "name": "expiryTimestamp",
2920
+ "type": "u64"
2921
+ },
2922
+ {
2923
+ "name": "selfTradeBehavior",
2924
+ "type": {
2925
+ "defined": "SelfTradeBehavior"
2926
+ }
2927
+ },
2928
+ {
2929
+ "name": "limit",
2930
+ "type": "u8"
2931
+ }
2932
+ ]
2933
+ }
2934
+ },
2935
+ {
2936
+ "name": "PlaceMultipleOrdersArgs",
2937
+ "type": {
2938
+ "kind": "struct",
2939
+ "fields": [
2940
+ {
2941
+ "name": "priceLots",
2942
+ "type": "i64"
2943
+ },
2944
+ {
2945
+ "name": "maxQuoteLotsIncludingFees",
2946
+ "type": "i64"
2947
+ },
2948
+ {
2949
+ "name": "expiryTimestamp",
2950
+ "type": "u64"
2951
+ }
2952
+ ]
2953
+ }
2954
+ },
2955
+ {
2956
+ "name": "PlaceOrderPeggedArgs",
2957
+ "type": {
2958
+ "kind": "struct",
2959
+ "fields": [
2960
+ {
2961
+ "name": "side",
2962
+ "type": {
2963
+ "defined": "Side"
2964
+ }
2965
+ },
2966
+ {
2967
+ "name": "priceOffsetLots",
2968
+ "type": "i64"
2969
+ },
2970
+ {
2971
+ "name": "pegLimit",
2972
+ "type": "i64"
2973
+ },
2974
+ {
2975
+ "name": "maxBaseLots",
2976
+ "type": "i64"
2977
+ },
2978
+ {
2979
+ "name": "maxQuoteLotsIncludingFees",
2980
+ "type": "i64"
2981
+ },
2982
+ {
2983
+ "name": "clientOrderId",
2984
+ "type": "u64"
2985
+ },
2986
+ {
2987
+ "name": "orderType",
2988
+ "type": {
2989
+ "defined": "PlaceOrderType"
2990
+ }
2991
+ },
2992
+ {
2993
+ "name": "expiryTimestamp",
2994
+ "type": "u64"
2995
+ },
2996
+ {
2997
+ "name": "selfTradeBehavior",
2998
+ "type": {
2999
+ "defined": "SelfTradeBehavior"
3000
+ }
3001
+ },
3002
+ {
3003
+ "name": "limit",
3004
+ "type": "u8"
3005
+ }
3006
+ ]
3007
+ }
3008
+ },
3009
+ {
3010
+ "name": "PlaceTakeOrderArgs",
3011
+ "type": {
3012
+ "kind": "struct",
3013
+ "fields": [
3014
+ {
3015
+ "name": "side",
3016
+ "type": {
3017
+ "defined": "Side"
3018
+ }
3019
+ },
3020
+ {
3021
+ "name": "priceLots",
3022
+ "type": "i64"
3023
+ },
3024
+ {
3025
+ "name": "maxBaseLots",
3026
+ "type": "i64"
3027
+ },
3028
+ {
3029
+ "name": "maxQuoteLotsIncludingFees",
3030
+ "type": "i64"
3031
+ },
3032
+ {
3033
+ "name": "orderType",
3034
+ "type": {
3035
+ "defined": "PlaceOrderType"
3036
+ }
3037
+ },
3038
+ {
3039
+ "name": "limit",
3040
+ "type": "u8"
3041
+ }
3042
+ ]
3043
+ }
3044
+ },
3045
+ {
3046
+ "name": "OracleType",
3047
+ "type": {
3048
+ "kind": "enum",
3049
+ "variants": [
3050
+ {
3051
+ "name": "Pyth"
3052
+ },
3053
+ {
3054
+ "name": "Stub"
3055
+ },
3056
+ {
3057
+ "name": "SwitchboardV1"
3058
+ },
3059
+ {
3060
+ "name": "SwitchboardV2"
3061
+ },
3062
+ {
3063
+ "name": "RaydiumCLMM"
3064
+ }
3065
+ ]
3066
+ }
3067
+ },
3068
+ {
3069
+ "name": "OrderState",
3070
+ "type": {
3071
+ "kind": "enum",
3072
+ "variants": [
3073
+ {
3074
+ "name": "Valid"
3075
+ },
3076
+ {
3077
+ "name": "Invalid"
3078
+ },
3079
+ {
3080
+ "name": "Skipped"
3081
+ }
3082
+ ]
3083
+ }
3084
+ },
3085
+ {
3086
+ "name": "BookSideOrderTree",
3087
+ "type": {
3088
+ "kind": "enum",
3089
+ "variants": [
3090
+ {
3091
+ "name": "Fixed"
3092
+ },
3093
+ {
3094
+ "name": "OraclePegged"
3095
+ }
3096
+ ]
3097
+ }
3098
+ },
3099
+ {
3100
+ "name": "EventType",
3101
+ "type": {
3102
+ "kind": "enum",
3103
+ "variants": [
3104
+ {
3105
+ "name": "Fill"
3106
+ },
3107
+ {
3108
+ "name": "Out"
3109
+ }
3110
+ ]
3111
+ }
3112
+ },
3113
+ {
3114
+ "name": "NodeTag",
3115
+ "type": {
3116
+ "kind": "enum",
3117
+ "variants": [
3118
+ {
3119
+ "name": "Uninitialized"
3120
+ },
3121
+ {
3122
+ "name": "InnerNode"
3123
+ },
3124
+ {
3125
+ "name": "LeafNode"
3126
+ },
3127
+ {
3128
+ "name": "FreeNode"
3129
+ },
3130
+ {
3131
+ "name": "LastFreeNode"
3132
+ }
3133
+ ]
3134
+ }
3135
+ },
3136
+ {
3137
+ "name": "PlaceOrderType",
3138
+ "type": {
3139
+ "kind": "enum",
3140
+ "variants": [
3141
+ {
3142
+ "name": "Limit"
3143
+ },
3144
+ {
3145
+ "name": "ImmediateOrCancel"
3146
+ },
3147
+ {
3148
+ "name": "PostOnly"
3149
+ },
3150
+ {
3151
+ "name": "Market"
3152
+ },
3153
+ {
3154
+ "name": "PostOnlySlide"
3155
+ },
3156
+ {
3157
+ "name": "FillOrKill"
3158
+ }
3159
+ ]
3160
+ }
3161
+ },
3162
+ {
3163
+ "name": "PostOrderType",
3164
+ "type": {
3165
+ "kind": "enum",
3166
+ "variants": [
3167
+ {
3168
+ "name": "Limit"
3169
+ },
3170
+ {
3171
+ "name": "PostOnly"
3172
+ },
3173
+ {
3174
+ "name": "PostOnlySlide"
3175
+ }
3176
+ ]
3177
+ }
3178
+ },
3179
+ {
3180
+ "name": "SelfTradeBehavior",
3181
+ "docs": [
3182
+ "Self trade behavior controls how taker orders interact with resting limit orders of the same account.",
3183
+ "This setting has no influence on placing a resting or oracle pegged limit order that does not match",
3184
+ "immediately, instead it's the responsibility of the user to correctly configure his taker orders."
3185
+ ],
3186
+ "type": {
3187
+ "kind": "enum",
3188
+ "variants": [
3189
+ {
3190
+ "name": "DecrementTake"
3191
+ },
3192
+ {
3193
+ "name": "CancelProvide"
3194
+ },
3195
+ {
3196
+ "name": "AbortTransaction"
3197
+ }
3198
+ ]
3199
+ }
3200
+ },
3201
+ {
3202
+ "name": "Side",
3203
+ "type": {
3204
+ "kind": "enum",
3205
+ "variants": [
3206
+ {
3207
+ "name": "Bid"
3208
+ },
3209
+ {
3210
+ "name": "Ask"
3211
+ }
3212
+ ]
3213
+ }
3214
+ },
3215
+ {
3216
+ "name": "SideAndOrderTree",
3217
+ "docs": [
3218
+ "SideAndOrderTree is a storage optimization, so we don't need two bytes for the data"
3219
+ ],
3220
+ "type": {
3221
+ "kind": "enum",
3222
+ "variants": [
3223
+ {
3224
+ "name": "BidFixed"
3225
+ },
3226
+ {
3227
+ "name": "AskFixed"
3228
+ },
3229
+ {
3230
+ "name": "BidOraclePegged"
3231
+ },
3232
+ {
3233
+ "name": "AskOraclePegged"
3234
+ }
3235
+ ]
3236
+ }
3237
+ },
3238
+ {
3239
+ "name": "OrderParams",
3240
+ "type": {
3241
+ "kind": "enum",
3242
+ "variants": [
3243
+ {
3244
+ "name": "Market"
3245
+ },
3246
+ {
3247
+ "name": "ImmediateOrCancel",
3248
+ "fields": [
3249
+ {
3250
+ "name": "price_lots",
3251
+ "type": "i64"
3252
+ }
3253
+ ]
3254
+ },
3255
+ {
3256
+ "name": "Fixed",
3257
+ "fields": [
3258
+ {
3259
+ "name": "price_lots",
3260
+ "type": "i64"
3261
+ },
3262
+ {
3263
+ "name": "order_type",
3264
+ "type": {
3265
+ "defined": "PostOrderType"
3266
+ }
3267
+ }
3268
+ ]
3269
+ },
3270
+ {
3271
+ "name": "OraclePegged",
3272
+ "fields": [
3273
+ {
3274
+ "name": "price_offset_lots",
3275
+ "type": "i64"
3276
+ },
3277
+ {
3278
+ "name": "order_type",
3279
+ "type": {
3280
+ "defined": "PostOrderType"
3281
+ }
3282
+ },
3283
+ {
3284
+ "name": "peg_limit",
3285
+ "type": "i64"
3286
+ }
3287
+ ]
3288
+ },
3289
+ {
3290
+ "name": "FillOrKill",
3291
+ "fields": [
3292
+ {
3293
+ "name": "price_lots",
3294
+ "type": "i64"
3295
+ }
3296
+ ]
3297
+ }
3298
+ ]
3299
+ }
3300
+ },
3301
+ {
3302
+ "name": "OrderTreeType",
3303
+ "type": {
3304
+ "kind": "enum",
3305
+ "variants": [
3306
+ {
3307
+ "name": "Bids"
3308
+ },
3309
+ {
3310
+ "name": "Asks"
3311
+ }
3312
+ ]
3313
+ }
3314
+ }
3315
+ ],
3316
+ "events": [
3317
+ {
3318
+ "name": "DepositLog",
3319
+ "fields": [
3320
+ {
3321
+ "name": "openOrdersAccount",
3322
+ "type": "publicKey",
3323
+ "index": false
3324
+ },
3325
+ {
3326
+ "name": "signer",
3327
+ "type": "publicKey",
3328
+ "index": false
3329
+ },
3330
+ {
3331
+ "name": "baseAmount",
3332
+ "type": "u64",
3333
+ "index": false
3334
+ },
3335
+ {
3336
+ "name": "quoteAmount",
3337
+ "type": "u64",
3338
+ "index": false
3339
+ }
3340
+ ]
3341
+ },
3342
+ {
3343
+ "name": "FillLog",
3344
+ "fields": [
3345
+ {
3346
+ "name": "market",
3347
+ "type": "publicKey",
3348
+ "index": false
3349
+ },
3350
+ {
3351
+ "name": "takerSide",
3352
+ "type": "u8",
3353
+ "index": false
3354
+ },
3355
+ {
3356
+ "name": "makerSlot",
3357
+ "type": "u8",
3358
+ "index": false
3359
+ },
3360
+ {
3361
+ "name": "makerOut",
3362
+ "type": "bool",
3363
+ "index": false
3364
+ },
3365
+ {
3366
+ "name": "timestamp",
3367
+ "type": "u64",
3368
+ "index": false
3369
+ },
3370
+ {
3371
+ "name": "seqNum",
3372
+ "type": "u64",
3373
+ "index": false
3374
+ },
3375
+ {
3376
+ "name": "maker",
3377
+ "type": "publicKey",
3378
+ "index": false
3379
+ },
3380
+ {
3381
+ "name": "makerClientOrderId",
3382
+ "type": "u64",
3383
+ "index": false
3384
+ },
3385
+ {
3386
+ "name": "makerFee",
3387
+ "type": "u64",
3388
+ "index": false
3389
+ },
3390
+ {
3391
+ "name": "makerTimestamp",
3392
+ "type": "u64",
3393
+ "index": false
3394
+ },
3395
+ {
3396
+ "name": "taker",
3397
+ "type": "publicKey",
3398
+ "index": false
3399
+ },
3400
+ {
3401
+ "name": "takerClientOrderId",
3402
+ "type": "u64",
3403
+ "index": false
3404
+ },
3405
+ {
3406
+ "name": "takerFeeCeil",
3407
+ "type": "u64",
3408
+ "index": false
3409
+ },
3410
+ {
3411
+ "name": "price",
3412
+ "type": "i64",
3413
+ "index": false
3414
+ },
3415
+ {
3416
+ "name": "quantity",
3417
+ "type": "i64",
3418
+ "index": false
3419
+ }
3420
+ ]
3421
+ },
3422
+ {
3423
+ "name": "MarketMetaDataLog",
3424
+ "fields": [
3425
+ {
3426
+ "name": "market",
3427
+ "type": "publicKey",
3428
+ "index": false
3429
+ },
3430
+ {
3431
+ "name": "name",
3432
+ "type": "string",
3433
+ "index": false
3434
+ },
3435
+ {
3436
+ "name": "baseMint",
3437
+ "type": "publicKey",
3438
+ "index": false
3439
+ },
3440
+ {
3441
+ "name": "quoteMint",
3442
+ "type": "publicKey",
3443
+ "index": false
3444
+ },
3445
+ {
3446
+ "name": "baseDecimals",
3447
+ "type": "u8",
3448
+ "index": false
3449
+ },
3450
+ {
3451
+ "name": "quoteDecimals",
3452
+ "type": "u8",
3453
+ "index": false
3454
+ },
3455
+ {
3456
+ "name": "baseLotSize",
3457
+ "type": "i64",
3458
+ "index": false
3459
+ },
3460
+ {
3461
+ "name": "quoteLotSize",
3462
+ "type": "i64",
3463
+ "index": false
3464
+ }
3465
+ ]
3466
+ },
3467
+ {
3468
+ "name": "TotalOrderFillEvent",
3469
+ "fields": [
3470
+ {
3471
+ "name": "side",
3472
+ "type": "u8",
3473
+ "index": false
3474
+ },
3475
+ {
3476
+ "name": "taker",
3477
+ "type": "publicKey",
3478
+ "index": false
3479
+ },
3480
+ {
3481
+ "name": "totalQuantityPaid",
3482
+ "type": "u64",
3483
+ "index": false
3484
+ },
3485
+ {
3486
+ "name": "totalQuantityReceived",
3487
+ "type": "u64",
3488
+ "index": false
3489
+ },
3490
+ {
3491
+ "name": "fees",
3492
+ "type": "u64",
3493
+ "index": false
3494
+ }
3495
+ ]
3496
+ },
3497
+ {
3498
+ "name": "SetDelegateLog",
3499
+ "fields": [
3500
+ {
3501
+ "name": "openOrdersAccount",
3502
+ "type": "publicKey",
3503
+ "index": false
3504
+ },
3505
+ {
3506
+ "name": "delegate",
3507
+ "type": {
3508
+ "option": "publicKey"
3509
+ },
3510
+ "index": false
3511
+ }
3512
+ ]
3513
+ },
3514
+ {
3515
+ "name": "SettleFundsLog",
3516
+ "fields": [
3517
+ {
3518
+ "name": "openOrdersAccount",
3519
+ "type": "publicKey",
3520
+ "index": false
3521
+ },
3522
+ {
3523
+ "name": "baseNative",
3524
+ "type": "u64",
3525
+ "index": false
3526
+ },
3527
+ {
3528
+ "name": "quoteNative",
3529
+ "type": "u64",
3530
+ "index": false
3531
+ },
3532
+ {
3533
+ "name": "referrerRebate",
3534
+ "type": "u64",
3535
+ "index": false
3536
+ },
3537
+ {
3538
+ "name": "referrer",
3539
+ "type": {
3540
+ "option": "publicKey"
3541
+ },
3542
+ "index": false
3543
+ }
3544
+ ]
3545
+ },
3546
+ {
3547
+ "name": "SweepFeesLog",
3548
+ "fields": [
3549
+ {
3550
+ "name": "market",
3551
+ "type": "publicKey",
3552
+ "index": false
3553
+ },
3554
+ {
3555
+ "name": "amount",
3556
+ "type": "u64",
3557
+ "index": false
3558
+ },
3559
+ {
3560
+ "name": "receiver",
3561
+ "type": "publicKey",
3562
+ "index": false
3563
+ }
3564
+ ]
3565
+ },
3566
+ {
3567
+ "name": "OpenOrdersPositionLog",
3568
+ "fields": [
3569
+ {
3570
+ "name": "owner",
3571
+ "type": "publicKey",
3572
+ "index": false
3573
+ },
3574
+ {
3575
+ "name": "openOrdersAccountNum",
3576
+ "type": "u32",
3577
+ "index": false
3578
+ },
3579
+ {
3580
+ "name": "market",
3581
+ "type": "publicKey",
3582
+ "index": false
3583
+ },
3584
+ {
3585
+ "name": "bidsBaseLots",
3586
+ "type": "i64",
3587
+ "index": false
3588
+ },
3589
+ {
3590
+ "name": "bidsQuoteLots",
3591
+ "type": "i64",
3592
+ "index": false
3593
+ },
3594
+ {
3595
+ "name": "asksBaseLots",
3596
+ "type": "i64",
3597
+ "index": false
3598
+ },
3599
+ {
3600
+ "name": "baseFreeNative",
3601
+ "type": "u64",
3602
+ "index": false
3603
+ },
3604
+ {
3605
+ "name": "quoteFreeNative",
3606
+ "type": "u64",
3607
+ "index": false
3608
+ },
3609
+ {
3610
+ "name": "lockedMakerFees",
3611
+ "type": "u64",
3612
+ "index": false
3613
+ },
3614
+ {
3615
+ "name": "referrerRebatesAvailable",
3616
+ "type": "u64",
3617
+ "index": false
3618
+ },
3619
+ {
3620
+ "name": "makerVolume",
3621
+ "type": "u128",
3622
+ "index": false
3623
+ },
3624
+ {
3625
+ "name": "takerVolume",
3626
+ "type": "u128",
3627
+ "index": false
3628
+ }
3629
+ ]
3630
+ }
3631
+ ],
3632
+ "errors": [
3633
+ {
3634
+ "code": 6000,
3635
+ "name": "SomeError",
3636
+ "msg": ""
3637
+ },
3638
+ {
3639
+ "code": 6001,
3640
+ "name": "InvalidInputNameLength",
3641
+ "msg": "Name lenght above limit"
3642
+ },
3643
+ {
3644
+ "code": 6002,
3645
+ "name": "InvalidInputMarketExpired",
3646
+ "msg": "Market cannot be created as expired"
3647
+ },
3648
+ {
3649
+ "code": 6003,
3650
+ "name": "InvalidInputMarketFees",
3651
+ "msg": "Taker fees should be positive and if maker fees are negative, greater or equal to their abs value"
3652
+ },
3653
+ {
3654
+ "code": 6004,
3655
+ "name": "InvalidInputLots",
3656
+ "msg": "Lots cannot be negative"
3657
+ },
3658
+ {
3659
+ "code": 6005,
3660
+ "name": "InvalidInputLotsSize",
3661
+ "msg": "Lots size above market limits"
3662
+ },
3663
+ {
3664
+ "code": 6006,
3665
+ "name": "InvalidInputOrdersAmounts",
3666
+ "msg": "Input amounts above limits"
3667
+ },
3668
+ {
3669
+ "code": 6007,
3670
+ "name": "InvalidInputCancelSize",
3671
+ "msg": "Price lots should be greater than zero"
3672
+ },
3673
+ {
3674
+ "code": 6008,
3675
+ "name": "InvalidInputPriceLots",
3676
+ "msg": "Expected cancel size should be greater than zero"
3677
+ },
3678
+ {
3679
+ "code": 6009,
3680
+ "name": "InvalidInputPegLimit",
3681
+ "msg": "Peg limit should be greater than zero"
3682
+ },
3683
+ {
3684
+ "code": 6010,
3685
+ "name": "InvalidInputOrderType",
3686
+ "msg": "The order type is invalid. A taker order must be Market or ImmediateOrCancel"
3687
+ },
3688
+ {
3689
+ "code": 6011,
3690
+ "name": "InvalidInputOrderId",
3691
+ "msg": "Order id cannot be zero"
3692
+ },
3693
+ {
3694
+ "code": 6012,
3695
+ "name": "InvalidInputHeapSlots",
3696
+ "msg": "Slot above heap limit"
3697
+ },
3698
+ {
3699
+ "code": 6013,
3700
+ "name": "InvalidOracleTypes",
3701
+ "msg": "Cannot combine two oracles of different providers"
3702
+ },
3703
+ {
3704
+ "code": 6014,
3705
+ "name": "InvalidSecondOracle",
3706
+ "msg": "Cannot configure secondary oracle without primary"
3707
+ },
3708
+ {
3709
+ "code": 6015,
3710
+ "name": "NoCloseMarketAdmin",
3711
+ "msg": "This market does not have a `close_market_admin` and thus cannot be closed."
3712
+ },
3713
+ {
3714
+ "code": 6016,
3715
+ "name": "InvalidCloseMarketAdmin",
3716
+ "msg": "The signer of this transaction is not this market's `close_market_admin`."
3717
+ },
3718
+ {
3719
+ "code": 6017,
3720
+ "name": "InvalidOpenOrdersAdmin",
3721
+ "msg": "The `open_orders_admin` required by this market to sign all instructions that creates orders is missing or is not valid"
3722
+ },
3723
+ {
3724
+ "code": 6018,
3725
+ "name": "InvalidConsumeEventsAdmin",
3726
+ "msg": "The `consume_events_admin` required by this market to sign all instructions that consume events is missing or is not valid"
3727
+ },
3728
+ {
3729
+ "code": 6019,
3730
+ "name": "InvalidMarketVault",
3731
+ "msg": "Provided `market_vault` is invalid"
3732
+ },
3733
+ {
3734
+ "code": 6020,
3735
+ "name": "IndexerActiveOO",
3736
+ "msg": "Cannot be closed due to the existence of open orders accounts"
3737
+ },
3738
+ {
3739
+ "code": 6021,
3740
+ "name": "OraclePegInvalidOracleState",
3741
+ "msg": "Cannot place a peg order due to invalid oracle state"
3742
+ },
3743
+ {
3744
+ "code": 6022,
3745
+ "name": "UnknownOracleType",
3746
+ "msg": "oracle type cannot be determined"
3747
+ },
3748
+ {
3749
+ "code": 6023,
3750
+ "name": "OracleConfidence",
3751
+ "msg": "an oracle does not reach the confidence threshold"
3752
+ },
3753
+ {
3754
+ "code": 6024,
3755
+ "name": "OracleStale",
3756
+ "msg": "an oracle is stale"
3757
+ },
3758
+ {
3759
+ "code": 6025,
3760
+ "name": "OrderIdNotFound",
3761
+ "msg": "Order id not found on the orderbook"
3762
+ },
3763
+ {
3764
+ "code": 6026,
3765
+ "name": "EventHeapContainsElements",
3766
+ "msg": "Event heap contains elements and market can't be closed"
3767
+ },
3768
+ {
3769
+ "code": 6027,
3770
+ "name": "InvalidOrderPostIOC",
3771
+ "msg": "ImmediateOrCancel is not a PostOrderType"
3772
+ },
3773
+ {
3774
+ "code": 6028,
3775
+ "name": "InvalidOrderPostMarket",
3776
+ "msg": "Market is not a PostOrderType"
3777
+ },
3778
+ {
3779
+ "code": 6029,
3780
+ "name": "WouldSelfTrade",
3781
+ "msg": "would self trade"
3782
+ },
3783
+ {
3784
+ "code": 6030,
3785
+ "name": "MarketHasExpired",
3786
+ "msg": "The Market has already expired."
3787
+ },
3788
+ {
3789
+ "code": 6031,
3790
+ "name": "InvalidPriceLots",
3791
+ "msg": "Price lots should be greater than zero"
3792
+ },
3793
+ {
3794
+ "code": 6032,
3795
+ "name": "InvalidOraclePrice",
3796
+ "msg": "Oracle price above market limits"
3797
+ },
3798
+ {
3799
+ "code": 6033,
3800
+ "name": "MarketHasNotExpired",
3801
+ "msg": "The Market has not expired yet."
3802
+ },
3803
+ {
3804
+ "code": 6034,
3805
+ "name": "NoOwnerOrDelegate",
3806
+ "msg": "No correct owner or delegate."
3807
+ },
3808
+ {
3809
+ "code": 6035,
3810
+ "name": "NoOwner",
3811
+ "msg": "No correct owner"
3812
+ },
3813
+ {
3814
+ "code": 6036,
3815
+ "name": "OpenOrdersFull",
3816
+ "msg": "No free order index in open orders account"
3817
+ },
3818
+ {
3819
+ "code": 6037,
3820
+ "name": "BookContainsElements",
3821
+ "msg": "Book contains elements"
3822
+ },
3823
+ {
3824
+ "code": 6038,
3825
+ "name": "OpenOrdersOrderNotFound",
3826
+ "msg": "Could not find order in user account"
3827
+ },
3828
+ {
3829
+ "code": 6039,
3830
+ "name": "InvalidPostAmount",
3831
+ "msg": "Amount to post above book limits"
3832
+ },
3833
+ {
3834
+ "code": 6040,
3835
+ "name": "DisabledOraclePeg",
3836
+ "msg": "Oracle peg orders are not enabled for this market"
3837
+ },
3838
+ {
3839
+ "code": 6041,
3840
+ "name": "NonEmptyMarket",
3841
+ "msg": "Cannot close a non-empty market"
3842
+ },
3843
+ {
3844
+ "code": 6042,
3845
+ "name": "NonEmptyOpenOrdersPosition",
3846
+ "msg": "Cannot close a non-empty open orders account"
3847
+ },
3848
+ {
3849
+ "code": 6043,
3850
+ "name": "WouldExecutePartially",
3851
+ "msg": "Fill-Or-Kill order would generate a partial execution"
3852
+ }
3853
+ ]
3854
+ }