@haneullabs/deepbook-v3 0.1.0

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 (378) hide show
  1. package/CHANGELOG.md +984 -0
  2. package/README.md +1 -0
  3. package/dist/cjs/client.d.ts +861 -0
  4. package/dist/cjs/client.js +1982 -0
  5. package/dist/cjs/client.js.map +7 -0
  6. package/dist/cjs/contracts/deepbook/account.d.ts +105 -0
  7. package/dist/cjs/contracts/deepbook/account.js +163 -0
  8. package/dist/cjs/contracts/deepbook/account.js.map +7 -0
  9. package/dist/cjs/contracts/deepbook/balance_manager.d.ts +268 -0
  10. package/dist/cjs/contracts/deepbook/balance_manager.js +361 -0
  11. package/dist/cjs/contracts/deepbook/balance_manager.js.map +7 -0
  12. package/dist/cjs/contracts/deepbook/balances.d.ts +10 -0
  13. package/dist/cjs/contracts/deepbook/balances.js +35 -0
  14. package/dist/cjs/contracts/deepbook/balances.js.map +7 -0
  15. package/dist/cjs/contracts/deepbook/big_vector.d.ts +62 -0
  16. package/dist/cjs/contracts/deepbook/big_vector.js +80 -0
  17. package/dist/cjs/contracts/deepbook/big_vector.js.map +7 -0
  18. package/dist/cjs/contracts/deepbook/book.d.ts +34 -0
  19. package/dist/cjs/contracts/deepbook/book.js +50 -0
  20. package/dist/cjs/contracts/deepbook/book.js.map +7 -0
  21. package/dist/cjs/contracts/deepbook/constants.d.ts +176 -0
  22. package/dist/cjs/contracts/deepbook/constants.js +338 -0
  23. package/dist/cjs/contracts/deepbook/constants.js.map +7 -0
  24. package/dist/cjs/contracts/deepbook/deep_price.d.ts +60 -0
  25. package/dist/cjs/contracts/deepbook/deep_price.js +87 -0
  26. package/dist/cjs/contracts/deepbook/deep_price.js.map +7 -0
  27. package/dist/cjs/contracts/deepbook/deps/std/type_name.d.ts +14 -0
  28. package/dist/cjs/contracts/deepbook/deps/std/type_name.js +42 -0
  29. package/dist/cjs/contracts/deepbook/deps/std/type_name.js.map +7 -0
  30. package/dist/cjs/contracts/deepbook/deps/sui/bag.d.ts +33 -0
  31. package/dist/cjs/contracts/deepbook/deps/sui/bag.js +47 -0
  32. package/dist/cjs/contracts/deepbook/deps/sui/bag.js.map +7 -0
  33. package/dist/cjs/contracts/deepbook/deps/sui/balance.d.ts +9 -0
  34. package/dist/cjs/contracts/deepbook/deps/sui/balance.js +33 -0
  35. package/dist/cjs/contracts/deepbook/deps/sui/balance.js.map +7 -0
  36. package/dist/cjs/contracts/deepbook/deps/sui/object.d.ts +5 -0
  37. package/dist/cjs/contracts/deepbook/deps/sui/object.js +33 -0
  38. package/dist/cjs/contracts/deepbook/deps/sui/object.js.map +7 -0
  39. package/dist/cjs/contracts/deepbook/deps/sui/table.d.ts +28 -0
  40. package/dist/cjs/contracts/deepbook/deps/sui/table.js +47 -0
  41. package/dist/cjs/contracts/deepbook/deps/sui/table.js.map +7 -0
  42. package/dist/cjs/contracts/deepbook/deps/sui/vec_map.d.ts +27 -0
  43. package/dist/cjs/contracts/deepbook/deps/sui/vec_map.js +45 -0
  44. package/dist/cjs/contracts/deepbook/deps/sui/vec_map.js.map +7 -0
  45. package/dist/cjs/contracts/deepbook/deps/sui/vec_set.d.ts +15 -0
  46. package/dist/cjs/contracts/deepbook/deps/sui/vec_set.js +35 -0
  47. package/dist/cjs/contracts/deepbook/deps/sui/vec_set.js.map +7 -0
  48. package/dist/cjs/contracts/deepbook/deps/sui/versioned.d.ts +7 -0
  49. package/dist/cjs/contracts/deepbook/deps/sui/versioned.js +45 -0
  50. package/dist/cjs/contracts/deepbook/deps/sui/versioned.js.map +7 -0
  51. package/dist/cjs/contracts/deepbook/ewma.d.ts +17 -0
  52. package/dist/cjs/contracts/deepbook/ewma.js +39 -0
  53. package/dist/cjs/contracts/deepbook/ewma.js.map +7 -0
  54. package/dist/cjs/contracts/deepbook/fill.d.ts +153 -0
  55. package/dist/cjs/contracts/deepbook/fill.js +251 -0
  56. package/dist/cjs/contracts/deepbook/fill.js.map +7 -0
  57. package/dist/cjs/contracts/deepbook/governance.d.ts +63 -0
  58. package/dist/cjs/contracts/deepbook/governance.js +79 -0
  59. package/dist/cjs/contracts/deepbook/governance.js.map +7 -0
  60. package/dist/cjs/contracts/deepbook/history.d.ts +60 -0
  61. package/dist/cjs/contracts/deepbook/history.js +78 -0
  62. package/dist/cjs/contracts/deepbook/history.js.map +7 -0
  63. package/dist/cjs/contracts/deepbook/math.d.ts +94 -0
  64. package/dist/cjs/contracts/deepbook/math.js +132 -0
  65. package/dist/cjs/contracts/deepbook/math.js.map +7 -0
  66. package/dist/cjs/contracts/deepbook/order.d.ts +135 -0
  67. package/dist/cjs/contracts/deepbook/order.js +218 -0
  68. package/dist/cjs/contracts/deepbook/order.js.map +7 -0
  69. package/dist/cjs/contracts/deepbook/order_info.d.ts +296 -0
  70. package/dist/cjs/contracts/deepbook/order_info.js +386 -0
  71. package/dist/cjs/contracts/deepbook/order_info.js.map +7 -0
  72. package/dist/cjs/contracts/deepbook/order_query.d.ts +85 -0
  73. package/dist/cjs/contracts/deepbook/order_query.js +96 -0
  74. package/dist/cjs/contracts/deepbook/order_query.js.map +7 -0
  75. package/dist/cjs/contracts/deepbook/pool.d.ts +1218 -0
  76. package/dist/cjs/contracts/deepbook/pool.js +1236 -0
  77. package/dist/cjs/contracts/deepbook/pool.js.map +7 -0
  78. package/dist/cjs/contracts/deepbook/registry.d.ts +134 -0
  79. package/dist/cjs/contracts/deepbook/registry.js +182 -0
  80. package/dist/cjs/contracts/deepbook/registry.js.map +7 -0
  81. package/dist/cjs/contracts/deepbook/state.d.ts +117 -0
  82. package/dist/cjs/contracts/deepbook/state.js +104 -0
  83. package/dist/cjs/contracts/deepbook/state.js.map +7 -0
  84. package/dist/cjs/contracts/deepbook/trade_params.d.ts +7 -0
  85. package/dist/cjs/contracts/deepbook/trade_params.js +35 -0
  86. package/dist/cjs/contracts/deepbook/trade_params.js.map +7 -0
  87. package/dist/cjs/contracts/deepbook/vault.d.ts +30 -0
  88. package/dist/cjs/contracts/deepbook/vault.js +65 -0
  89. package/dist/cjs/contracts/deepbook/vault.js.map +7 -0
  90. package/dist/cjs/contracts/utils/index.d.ts +25 -0
  91. package/dist/cjs/contracts/utils/index.js +148 -0
  92. package/dist/cjs/contracts/utils/index.js.map +7 -0
  93. package/dist/cjs/index.d.ts +23 -0
  94. package/dist/cjs/index.js +81 -0
  95. package/dist/cjs/index.js.map +7 -0
  96. package/dist/cjs/package.json +4 -0
  97. package/dist/cjs/pyth/PriceServiceConnection.d.ts +26 -0
  98. package/dist/cjs/pyth/PriceServiceConnection.js +68 -0
  99. package/dist/cjs/pyth/PriceServiceConnection.js.map +7 -0
  100. package/dist/cjs/pyth/pyth-helpers.d.ts +7 -0
  101. package/dist/cjs/pyth/pyth-helpers.js +36 -0
  102. package/dist/cjs/pyth/pyth-helpers.js.map +7 -0
  103. package/dist/cjs/pyth/pyth.d.ts +65 -0
  104. package/dist/cjs/pyth/pyth.js +269 -0
  105. package/dist/cjs/pyth/pyth.js.map +7 -0
  106. package/dist/cjs/transactions/balanceManager.d.ts +168 -0
  107. package/dist/cjs/transactions/balanceManager.js +384 -0
  108. package/dist/cjs/transactions/balanceManager.js.map +7 -0
  109. package/dist/cjs/transactions/deepbook.d.ts +477 -0
  110. package/dist/cjs/transactions/deepbook.js +1335 -0
  111. package/dist/cjs/transactions/deepbook.js.map +7 -0
  112. package/dist/cjs/transactions/deepbookAdmin.d.ts +105 -0
  113. package/dist/cjs/transactions/deepbookAdmin.js +334 -0
  114. package/dist/cjs/transactions/deepbookAdmin.js.map +7 -0
  115. package/dist/cjs/transactions/flashLoans.d.ts +56 -0
  116. package/dist/cjs/transactions/flashLoans.js +124 -0
  117. package/dist/cjs/transactions/flashLoans.js.map +7 -0
  118. package/dist/cjs/transactions/governance.d.ts +42 -0
  119. package/dist/cjs/transactions/governance.js +135 -0
  120. package/dist/cjs/transactions/governance.js.map +7 -0
  121. package/dist/cjs/transactions/marginAdmin.d.ts +133 -0
  122. package/dist/cjs/transactions/marginAdmin.js +393 -0
  123. package/dist/cjs/transactions/marginAdmin.js.map +7 -0
  124. package/dist/cjs/transactions/marginLiquidations.d.ts +61 -0
  125. package/dist/cjs/transactions/marginLiquidations.js +173 -0
  126. package/dist/cjs/transactions/marginLiquidations.js.map +7 -0
  127. package/dist/cjs/transactions/marginMaintainer.d.ts +80 -0
  128. package/dist/cjs/transactions/marginMaintainer.js +251 -0
  129. package/dist/cjs/transactions/marginMaintainer.js.map +7 -0
  130. package/dist/cjs/transactions/marginManager.d.ts +236 -0
  131. package/dist/cjs/transactions/marginManager.js +688 -0
  132. package/dist/cjs/transactions/marginManager.js.map +7 -0
  133. package/dist/cjs/transactions/marginPool.d.ts +134 -0
  134. package/dist/cjs/transactions/marginPool.js +330 -0
  135. package/dist/cjs/transactions/marginPool.js.map +7 -0
  136. package/dist/cjs/transactions/marginRegistry.d.ts +94 -0
  137. package/dist/cjs/transactions/marginRegistry.js +221 -0
  138. package/dist/cjs/transactions/marginRegistry.js.map +7 -0
  139. package/dist/cjs/transactions/marginTPSL.d.ts +93 -0
  140. package/dist/cjs/transactions/marginTPSL.js +286 -0
  141. package/dist/cjs/transactions/marginTPSL.js.map +7 -0
  142. package/dist/cjs/transactions/poolProxy.d.ts +104 -0
  143. package/dist/cjs/transactions/poolProxy.js +435 -0
  144. package/dist/cjs/transactions/poolProxy.js.map +7 -0
  145. package/dist/cjs/types/bcs.d.ts +5 -0
  146. package/dist/cjs/types/bcs.js +33 -0
  147. package/dist/cjs/types/bcs.js.map +7 -0
  148. package/dist/cjs/types/index.d.ts +218 -0
  149. package/dist/cjs/types/index.js +38 -0
  150. package/dist/cjs/types/index.js.map +7 -0
  151. package/dist/cjs/utils/config.d.ts +65 -0
  152. package/dist/cjs/utils/config.js +144 -0
  153. package/dist/cjs/utils/config.js.map +7 -0
  154. package/dist/cjs/utils/constants.d.ts +76 -0
  155. package/dist/cjs/utils/constants.js +382 -0
  156. package/dist/cjs/utils/constants.js.map +7 -0
  157. package/dist/cjs/utils/errors.d.ts +42 -0
  158. package/dist/cjs/utils/errors.js +70 -0
  159. package/dist/cjs/utils/errors.js.map +7 -0
  160. package/dist/cjs/utils/validation.d.ts +50 -0
  161. package/dist/cjs/utils/validation.js +67 -0
  162. package/dist/cjs/utils/validation.js.map +7 -0
  163. package/dist/esm/client.d.ts +861 -0
  164. package/dist/esm/client.js +1967 -0
  165. package/dist/esm/client.js.map +7 -0
  166. package/dist/esm/contracts/deepbook/account.d.ts +105 -0
  167. package/dist/esm/contracts/deepbook/account.js +133 -0
  168. package/dist/esm/contracts/deepbook/account.js.map +7 -0
  169. package/dist/esm/contracts/deepbook/balance_manager.d.ts +268 -0
  170. package/dist/esm/contracts/deepbook/balance_manager.js +331 -0
  171. package/dist/esm/contracts/deepbook/balance_manager.js.map +7 -0
  172. package/dist/esm/contracts/deepbook/balances.d.ts +10 -0
  173. package/dist/esm/contracts/deepbook/balances.js +15 -0
  174. package/dist/esm/contracts/deepbook/balances.js.map +7 -0
  175. package/dist/esm/contracts/deepbook/big_vector.d.ts +62 -0
  176. package/dist/esm/contracts/deepbook/big_vector.js +50 -0
  177. package/dist/esm/contracts/deepbook/big_vector.js.map +7 -0
  178. package/dist/esm/contracts/deepbook/book.d.ts +34 -0
  179. package/dist/esm/contracts/deepbook/book.js +20 -0
  180. package/dist/esm/contracts/deepbook/book.js.map +7 -0
  181. package/dist/esm/contracts/deepbook/constants.d.ts +176 -0
  182. package/dist/esm/contracts/deepbook/constants.js +318 -0
  183. package/dist/esm/contracts/deepbook/constants.js.map +7 -0
  184. package/dist/esm/contracts/deepbook/deep_price.d.ts +60 -0
  185. package/dist/esm/contracts/deepbook/deep_price.js +67 -0
  186. package/dist/esm/contracts/deepbook/deep_price.js.map +7 -0
  187. package/dist/esm/contracts/deepbook/deps/std/type_name.d.ts +14 -0
  188. package/dist/esm/contracts/deepbook/deps/std/type_name.js +22 -0
  189. package/dist/esm/contracts/deepbook/deps/std/type_name.js.map +7 -0
  190. package/dist/esm/contracts/deepbook/deps/sui/bag.d.ts +33 -0
  191. package/dist/esm/contracts/deepbook/deps/sui/bag.js +17 -0
  192. package/dist/esm/contracts/deepbook/deps/sui/bag.js.map +7 -0
  193. package/dist/esm/contracts/deepbook/deps/sui/balance.d.ts +9 -0
  194. package/dist/esm/contracts/deepbook/deps/sui/balance.js +13 -0
  195. package/dist/esm/contracts/deepbook/deps/sui/balance.js.map +7 -0
  196. package/dist/esm/contracts/deepbook/deps/sui/object.d.ts +5 -0
  197. package/dist/esm/contracts/deepbook/deps/sui/object.js +13 -0
  198. package/dist/esm/contracts/deepbook/deps/sui/object.js.map +7 -0
  199. package/dist/esm/contracts/deepbook/deps/sui/table.d.ts +28 -0
  200. package/dist/esm/contracts/deepbook/deps/sui/table.js +17 -0
  201. package/dist/esm/contracts/deepbook/deps/sui/table.js.map +7 -0
  202. package/dist/esm/contracts/deepbook/deps/sui/vec_map.d.ts +27 -0
  203. package/dist/esm/contracts/deepbook/deps/sui/vec_map.js +25 -0
  204. package/dist/esm/contracts/deepbook/deps/sui/vec_map.js.map +7 -0
  205. package/dist/esm/contracts/deepbook/deps/sui/vec_set.d.ts +15 -0
  206. package/dist/esm/contracts/deepbook/deps/sui/vec_set.js +15 -0
  207. package/dist/esm/contracts/deepbook/deps/sui/vec_set.js.map +7 -0
  208. package/dist/esm/contracts/deepbook/deps/sui/versioned.d.ts +7 -0
  209. package/dist/esm/contracts/deepbook/deps/sui/versioned.js +15 -0
  210. package/dist/esm/contracts/deepbook/deps/sui/versioned.js.map +7 -0
  211. package/dist/esm/contracts/deepbook/ewma.d.ts +17 -0
  212. package/dist/esm/contracts/deepbook/ewma.js +19 -0
  213. package/dist/esm/contracts/deepbook/ewma.js.map +7 -0
  214. package/dist/esm/contracts/deepbook/fill.d.ts +153 -0
  215. package/dist/esm/contracts/deepbook/fill.js +221 -0
  216. package/dist/esm/contracts/deepbook/fill.js.map +7 -0
  217. package/dist/esm/contracts/deepbook/governance.d.ts +63 -0
  218. package/dist/esm/contracts/deepbook/governance.js +49 -0
  219. package/dist/esm/contracts/deepbook/governance.js.map +7 -0
  220. package/dist/esm/contracts/deepbook/history.d.ts +60 -0
  221. package/dist/esm/contracts/deepbook/history.js +48 -0
  222. package/dist/esm/contracts/deepbook/history.js.map +7 -0
  223. package/dist/esm/contracts/deepbook/math.d.ts +94 -0
  224. package/dist/esm/contracts/deepbook/math.js +112 -0
  225. package/dist/esm/contracts/deepbook/math.js.map +7 -0
  226. package/dist/esm/contracts/deepbook/order.d.ts +135 -0
  227. package/dist/esm/contracts/deepbook/order.js +188 -0
  228. package/dist/esm/contracts/deepbook/order.js.map +7 -0
  229. package/dist/esm/contracts/deepbook/order_info.d.ts +296 -0
  230. package/dist/esm/contracts/deepbook/order_info.js +356 -0
  231. package/dist/esm/contracts/deepbook/order_info.js.map +7 -0
  232. package/dist/esm/contracts/deepbook/order_query.d.ts +85 -0
  233. package/dist/esm/contracts/deepbook/order_query.js +66 -0
  234. package/dist/esm/contracts/deepbook/order_query.js.map +7 -0
  235. package/dist/esm/contracts/deepbook/pool.d.ts +1218 -0
  236. package/dist/esm/contracts/deepbook/pool.js +1206 -0
  237. package/dist/esm/contracts/deepbook/pool.js.map +7 -0
  238. package/dist/esm/contracts/deepbook/registry.d.ts +134 -0
  239. package/dist/esm/contracts/deepbook/registry.js +152 -0
  240. package/dist/esm/contracts/deepbook/registry.js.map +7 -0
  241. package/dist/esm/contracts/deepbook/state.d.ts +117 -0
  242. package/dist/esm/contracts/deepbook/state.js +74 -0
  243. package/dist/esm/contracts/deepbook/state.js.map +7 -0
  244. package/dist/esm/contracts/deepbook/trade_params.d.ts +7 -0
  245. package/dist/esm/contracts/deepbook/trade_params.js +15 -0
  246. package/dist/esm/contracts/deepbook/trade_params.js.map +7 -0
  247. package/dist/esm/contracts/deepbook/vault.d.ts +30 -0
  248. package/dist/esm/contracts/deepbook/vault.js +35 -0
  249. package/dist/esm/contracts/deepbook/vault.js.map +7 -0
  250. package/dist/esm/contracts/utils/index.d.ts +25 -0
  251. package/dist/esm/contracts/utils/index.js +128 -0
  252. package/dist/esm/contracts/utils/index.js.map +7 -0
  253. package/dist/esm/index.d.ts +23 -0
  254. package/dist/esm/index.js +81 -0
  255. package/dist/esm/index.js.map +7 -0
  256. package/dist/esm/package.json +4 -0
  257. package/dist/esm/pyth/PriceServiceConnection.d.ts +26 -0
  258. package/dist/esm/pyth/PriceServiceConnection.js +38 -0
  259. package/dist/esm/pyth/PriceServiceConnection.js.map +7 -0
  260. package/dist/esm/pyth/pyth-helpers.d.ts +7 -0
  261. package/dist/esm/pyth/pyth-helpers.js +16 -0
  262. package/dist/esm/pyth/pyth-helpers.js.map +7 -0
  263. package/dist/esm/pyth/pyth.d.ts +65 -0
  264. package/dist/esm/pyth/pyth.js +249 -0
  265. package/dist/esm/pyth/pyth.js.map +7 -0
  266. package/dist/esm/transactions/balanceManager.d.ts +168 -0
  267. package/dist/esm/transactions/balanceManager.js +364 -0
  268. package/dist/esm/transactions/balanceManager.js.map +7 -0
  269. package/dist/esm/transactions/deepbook.d.ts +477 -0
  270. package/dist/esm/transactions/deepbook.js +1321 -0
  271. package/dist/esm/transactions/deepbook.js.map +7 -0
  272. package/dist/esm/transactions/deepbookAdmin.d.ts +105 -0
  273. package/dist/esm/transactions/deepbookAdmin.js +314 -0
  274. package/dist/esm/transactions/deepbookAdmin.js.map +7 -0
  275. package/dist/esm/transactions/flashLoans.d.ts +56 -0
  276. package/dist/esm/transactions/flashLoans.js +104 -0
  277. package/dist/esm/transactions/flashLoans.js.map +7 -0
  278. package/dist/esm/transactions/governance.d.ts +42 -0
  279. package/dist/esm/transactions/governance.js +115 -0
  280. package/dist/esm/transactions/governance.js.map +7 -0
  281. package/dist/esm/transactions/marginAdmin.d.ts +133 -0
  282. package/dist/esm/transactions/marginAdmin.js +373 -0
  283. package/dist/esm/transactions/marginAdmin.js.map +7 -0
  284. package/dist/esm/transactions/marginLiquidations.d.ts +61 -0
  285. package/dist/esm/transactions/marginLiquidations.js +153 -0
  286. package/dist/esm/transactions/marginLiquidations.js.map +7 -0
  287. package/dist/esm/transactions/marginMaintainer.d.ts +80 -0
  288. package/dist/esm/transactions/marginMaintainer.js +231 -0
  289. package/dist/esm/transactions/marginMaintainer.js.map +7 -0
  290. package/dist/esm/transactions/marginManager.d.ts +236 -0
  291. package/dist/esm/transactions/marginManager.js +668 -0
  292. package/dist/esm/transactions/marginManager.js.map +7 -0
  293. package/dist/esm/transactions/marginPool.d.ts +134 -0
  294. package/dist/esm/transactions/marginPool.js +310 -0
  295. package/dist/esm/transactions/marginPool.js.map +7 -0
  296. package/dist/esm/transactions/marginRegistry.d.ts +94 -0
  297. package/dist/esm/transactions/marginRegistry.js +201 -0
  298. package/dist/esm/transactions/marginRegistry.js.map +7 -0
  299. package/dist/esm/transactions/marginTPSL.d.ts +93 -0
  300. package/dist/esm/transactions/marginTPSL.js +266 -0
  301. package/dist/esm/transactions/marginTPSL.js.map +7 -0
  302. package/dist/esm/transactions/poolProxy.d.ts +104 -0
  303. package/dist/esm/transactions/poolProxy.js +415 -0
  304. package/dist/esm/transactions/poolProxy.js.map +7 -0
  305. package/dist/esm/types/bcs.d.ts +5 -0
  306. package/dist/esm/types/bcs.js +13 -0
  307. package/dist/esm/types/bcs.js.map +7 -0
  308. package/dist/esm/types/index.d.ts +218 -0
  309. package/dist/esm/types/index.js +18 -0
  310. package/dist/esm/types/index.js.map +7 -0
  311. package/dist/esm/utils/config.d.ts +65 -0
  312. package/dist/esm/utils/config.js +135 -0
  313. package/dist/esm/utils/config.js.map +7 -0
  314. package/dist/esm/utils/constants.d.ts +76 -0
  315. package/dist/esm/utils/constants.js +362 -0
  316. package/dist/esm/utils/constants.js.map +7 -0
  317. package/dist/esm/utils/errors.d.ts +42 -0
  318. package/dist/esm/utils/errors.js +50 -0
  319. package/dist/esm/utils/errors.js.map +7 -0
  320. package/dist/esm/utils/validation.d.ts +50 -0
  321. package/dist/esm/utils/validation.js +47 -0
  322. package/dist/esm/utils/validation.js.map +7 -0
  323. package/dist/tsconfig.esm.tsbuildinfo +1 -0
  324. package/dist/tsconfig.tsbuildinfo +1 -0
  325. package/package.json +63 -0
  326. package/src/client.ts +2451 -0
  327. package/src/contracts/deepbook/account.ts +199 -0
  328. package/src/contracts/deepbook/balance_manager.ts +532 -0
  329. package/src/contracts/deepbook/balances.ts +19 -0
  330. package/src/contracts/deepbook/big_vector.ts +74 -0
  331. package/src/contracts/deepbook/book.ts +24 -0
  332. package/src/contracts/deepbook/constants.ts +458 -0
  333. package/src/contracts/deepbook/deep_price.ts +84 -0
  334. package/src/contracts/deepbook/deps/std/type_name.ts +23 -0
  335. package/src/contracts/deepbook/deps/sui/bag.ts +41 -0
  336. package/src/contracts/deepbook/deps/sui/balance.ts +18 -0
  337. package/src/contracts/deepbook/deps/sui/object.ts +14 -0
  338. package/src/contracts/deepbook/deps/sui/table.ts +36 -0
  339. package/src/contracts/deepbook/deps/sui/vec_map.ts +33 -0
  340. package/src/contracts/deepbook/deps/sui/vec_set.ts +22 -0
  341. package/src/contracts/deepbook/deps/sui/versioned.ts +13 -0
  342. package/src/contracts/deepbook/ewma.ts +26 -0
  343. package/src/contracts/deepbook/fill.ts +336 -0
  344. package/src/contracts/deepbook/governance.ts +52 -0
  345. package/src/contracts/deepbook/history.ts +51 -0
  346. package/src/contracts/deepbook/math.ts +210 -0
  347. package/src/contracts/deepbook/order.ts +269 -0
  348. package/src/contracts/deepbook/order_info.ts +513 -0
  349. package/src/contracts/deepbook/order_query.ts +115 -0
  350. package/src/contracts/deepbook/pool.ts +2269 -0
  351. package/src/contracts/deepbook/registry.ts +242 -0
  352. package/src/contracts/deepbook/state.ts +74 -0
  353. package/src/contracts/deepbook/trade_params.ts +16 -0
  354. package/src/contracts/deepbook/vault.ts +37 -0
  355. package/src/contracts/utils/index.ts +184 -0
  356. package/src/index.ts +95 -0
  357. package/src/pyth/PriceServiceConnection.ts +48 -0
  358. package/src/pyth/pyth-helpers.ts +23 -0
  359. package/src/pyth/pyth.ts +305 -0
  360. package/src/transactions/balanceManager.ts +399 -0
  361. package/src/transactions/deepbook.ts +1519 -0
  362. package/src/transactions/deepbookAdmin.ts +332 -0
  363. package/src/transactions/flashLoans.ts +123 -0
  364. package/src/transactions/governance.ts +123 -0
  365. package/src/transactions/marginAdmin.ts +396 -0
  366. package/src/transactions/marginLiquidations.ts +175 -0
  367. package/src/transactions/marginMaintainer.ts +280 -0
  368. package/src/transactions/marginManager.ts +708 -0
  369. package/src/transactions/marginPool.ts +339 -0
  370. package/src/transactions/marginRegistry.ts +212 -0
  371. package/src/transactions/marginTPSL.ts +296 -0
  372. package/src/transactions/poolProxy.ts +438 -0
  373. package/src/types/bcs.ts +8 -0
  374. package/src/types/index.ts +255 -0
  375. package/src/utils/config.ts +177 -0
  376. package/src/utils/constants.ts +374 -0
  377. package/src/utils/errors.ts +67 -0
  378. package/src/utils/validation.ts +91 -0
@@ -0,0 +1,438 @@
1
+ // Copyright (c) Mysten Labs, Inc.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import type { Transaction } from '@haneullabs/haneul/transactions';
4
+ import type {
5
+ PlaceMarginLimitOrderParams,
6
+ PlaceMarginMarketOrderParams,
7
+ MarginProposalParams,
8
+ } from '../types/index.js';
9
+
10
+ import type { DeepBookConfig } from '../utils/config.js';
11
+ import { OrderType, SelfMatchingOptions } from '../types/index.js';
12
+ import { MAX_TIMESTAMP, FLOAT_SCALAR } from '../utils/config.js';
13
+
14
+ /**
15
+ * PoolProxyContract class for managing PoolProxy operations.
16
+ */
17
+ export class PoolProxyContract {
18
+ #config: DeepBookConfig;
19
+
20
+ /**
21
+ * @param {DeepBookConfig} config Configuration for PoolProxyContract
22
+ */
23
+ constructor(config: DeepBookConfig) {
24
+ this.#config = config;
25
+ }
26
+
27
+ /**
28
+ * @description Place a limit order
29
+ * @param {PlaceMarginLimitOrderParams} params Parameters for placing a limit order
30
+ * @returns A function that takes a Transaction object
31
+ */
32
+ placeLimitOrder = (params: PlaceMarginLimitOrderParams) => (tx: Transaction) => {
33
+ const {
34
+ poolKey,
35
+ marginManagerKey,
36
+ clientOrderId,
37
+ price,
38
+ quantity,
39
+ isBid,
40
+ expiration = MAX_TIMESTAMP,
41
+ orderType = OrderType.NO_RESTRICTION,
42
+ selfMatchingOption = SelfMatchingOptions.SELF_MATCHING_ALLOWED,
43
+ payWithDeep = true,
44
+ } = params;
45
+ const pool = this.#config.getPool(poolKey);
46
+ const manager = this.#config.getMarginManager(marginManagerKey);
47
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
48
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
49
+ const inputPrice = Math.round((price * FLOAT_SCALAR * quoteCoin.scalar) / baseCoin.scalar);
50
+ const inputQuantity = Math.round(quantity * baseCoin.scalar);
51
+ return tx.moveCall({
52
+ target: `${this.#config.MARGIN_PACKAGE_ID}::pool_proxy::place_limit_order`,
53
+ arguments: [
54
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
55
+ tx.object(manager.address),
56
+ tx.object(pool.address),
57
+ tx.pure.u64(clientOrderId),
58
+ tx.pure.u8(orderType),
59
+ tx.pure.u8(selfMatchingOption),
60
+ tx.pure.u64(inputPrice),
61
+ tx.pure.u64(inputQuantity),
62
+ tx.pure.bool(isBid),
63
+ tx.pure.bool(payWithDeep),
64
+ tx.pure.u64(expiration),
65
+ tx.object.clock(),
66
+ ],
67
+ typeArguments: [baseCoin.type, quoteCoin.type],
68
+ });
69
+ };
70
+
71
+ /**
72
+ * @description Place a market order
73
+ * @param {PlaceMarginMarketOrderParams} params Parameters for placing a market order
74
+ * @returns A function that takes a Transaction object
75
+ */
76
+ placeMarketOrder = (params: PlaceMarginMarketOrderParams) => (tx: Transaction) => {
77
+ const {
78
+ poolKey,
79
+ marginManagerKey,
80
+ clientOrderId,
81
+ quantity,
82
+ isBid,
83
+ selfMatchingOption = SelfMatchingOptions.SELF_MATCHING_ALLOWED,
84
+ payWithDeep = true,
85
+ } = params;
86
+ const pool = this.#config.getPool(poolKey);
87
+ const manager = this.#config.getMarginManager(marginManagerKey);
88
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
89
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
90
+ const inputQuantity = Math.round(quantity * baseCoin.scalar);
91
+ return tx.moveCall({
92
+ target: `${this.#config.MARGIN_PACKAGE_ID}::pool_proxy::place_market_order`,
93
+ arguments: [
94
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
95
+ tx.object(manager.address),
96
+ tx.object(pool.address),
97
+ tx.pure.u64(clientOrderId),
98
+ tx.pure.u8(selfMatchingOption),
99
+ tx.pure.u64(inputQuantity),
100
+ tx.pure.bool(isBid),
101
+ tx.pure.bool(payWithDeep),
102
+ tx.object.clock(),
103
+ ],
104
+ typeArguments: [baseCoin.type, quoteCoin.type],
105
+ });
106
+ };
107
+
108
+ /**
109
+ * @description Place a reduce only limit order
110
+ * @param {PlaceMarginLimitOrderParams} params Parameters for placing a reduce only limit order
111
+ * @returns A function that takes a Transaction object
112
+ */
113
+ placeReduceOnlyLimitOrder = (params: PlaceMarginLimitOrderParams) => (tx: Transaction) => {
114
+ const {
115
+ poolKey,
116
+ marginManagerKey,
117
+ clientOrderId,
118
+ price,
119
+ quantity,
120
+ isBid,
121
+ expiration = MAX_TIMESTAMP,
122
+ orderType = OrderType.NO_RESTRICTION,
123
+ selfMatchingOption = SelfMatchingOptions.SELF_MATCHING_ALLOWED,
124
+ payWithDeep = true,
125
+ } = params;
126
+ const pool = this.#config.getPool(poolKey);
127
+ const manager = this.#config.getMarginManager(marginManagerKey);
128
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
129
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
130
+ const inputPrice = Math.round((price * FLOAT_SCALAR * quoteCoin.scalar) / baseCoin.scalar);
131
+ const inputQuantity = Math.round(quantity * baseCoin.scalar);
132
+ const marginPool = isBid
133
+ ? this.#config.getMarginPool(pool.baseCoin)
134
+ : this.#config.getMarginPool(pool.quoteCoin);
135
+ const debtType = isBid ? baseCoin.type : quoteCoin.type;
136
+ return tx.moveCall({
137
+ target: `${this.#config.MARGIN_PACKAGE_ID}::pool_proxy::place_reduce_only_limit_order`,
138
+ arguments: [
139
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
140
+ tx.object(manager.address),
141
+ tx.object(pool.address),
142
+ tx.object(marginPool.address),
143
+ tx.pure.u64(clientOrderId),
144
+ tx.pure.u8(orderType),
145
+ tx.pure.u8(selfMatchingOption),
146
+ tx.pure.u64(inputPrice),
147
+ tx.pure.u64(inputQuantity),
148
+ tx.pure.bool(isBid),
149
+ tx.pure.bool(payWithDeep),
150
+ tx.pure.u64(expiration),
151
+ tx.object.clock(),
152
+ ],
153
+ typeArguments: [baseCoin.type, quoteCoin.type, debtType],
154
+ });
155
+ };
156
+
157
+ /**
158
+ * @description Place a reduce only market order
159
+ * @param {PlaceMarginMarketOrderParams} params Parameters for placing a reduce only market order
160
+ * @returns A function that takes a Transaction object
161
+ */
162
+ placeReduceOnlyMarketOrder = (params: PlaceMarginMarketOrderParams) => (tx: Transaction) => {
163
+ const {
164
+ poolKey,
165
+ marginManagerKey,
166
+ clientOrderId,
167
+ quantity,
168
+ isBid,
169
+ selfMatchingOption = SelfMatchingOptions.SELF_MATCHING_ALLOWED,
170
+ payWithDeep = true,
171
+ } = params;
172
+ const pool = this.#config.getPool(poolKey);
173
+ const manager = this.#config.getMarginManager(marginManagerKey);
174
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
175
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
176
+ const inputQuantity = Math.round(quantity * baseCoin.scalar);
177
+ const marginPool = isBid
178
+ ? this.#config.getMarginPool(pool.baseCoin)
179
+ : this.#config.getMarginPool(pool.quoteCoin);
180
+ const debtType = isBid ? baseCoin.type : quoteCoin.type;
181
+ return tx.moveCall({
182
+ target: `${this.#config.MARGIN_PACKAGE_ID}::pool_proxy::place_reduce_only_market_order`,
183
+ arguments: [
184
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
185
+ tx.object(manager.address),
186
+ tx.object(pool.address),
187
+ tx.object(marginPool.address),
188
+ tx.pure.u64(clientOrderId),
189
+ tx.pure.u8(selfMatchingOption),
190
+ tx.pure.u64(inputQuantity),
191
+ tx.pure.bool(isBid),
192
+ tx.pure.bool(payWithDeep),
193
+ tx.object.clock(),
194
+ ],
195
+ typeArguments: [baseCoin.type, quoteCoin.type, debtType],
196
+ });
197
+ };
198
+
199
+ /**
200
+ * @description Modify an existing order
201
+ * @param {string} marginManagerKey The key to identify the MarginManager
202
+ * @param {string} orderId Order ID to modify
203
+ * @param {number} newQuantity New quantity for the order
204
+ * @returns A function that takes a Transaction object
205
+ */
206
+ modifyOrder =
207
+ (marginManagerKey: string, orderId: string, newQuantity: number) => (tx: Transaction) => {
208
+ const marginManager = this.#config.getMarginManager(marginManagerKey);
209
+ const pool = this.#config.getPool(marginManager.poolKey);
210
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
211
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
212
+ const inputQuantity = Math.round(newQuantity * baseCoin.scalar);
213
+
214
+ tx.moveCall({
215
+ target: `${this.#config.MARGIN_PACKAGE_ID}::pool_proxy::modify_order`,
216
+ arguments: [
217
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
218
+ tx.object(marginManager.address),
219
+ tx.object(pool.address),
220
+ tx.pure.u128(orderId),
221
+ tx.pure.u64(inputQuantity),
222
+ tx.object.clock(),
223
+ ],
224
+ typeArguments: [baseCoin.type, quoteCoin.type],
225
+ });
226
+ };
227
+
228
+ /**
229
+ * @description Cancel an existing order
230
+ * @param {string} marginManagerKey The key to identify the MarginManager
231
+ * @param {string} orderId Order ID to cancel
232
+ * @returns A function that takes a Transaction object
233
+ */
234
+ cancelOrder = (marginManagerKey: string, orderId: string) => (tx: Transaction) => {
235
+ const marginManager = this.#config.getMarginManager(marginManagerKey);
236
+ const pool = this.#config.getPool(marginManager.poolKey);
237
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
238
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
239
+ tx.moveCall({
240
+ target: `${this.#config.MARGIN_PACKAGE_ID}::pool_proxy::cancel_order`,
241
+ arguments: [
242
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
243
+ tx.object(marginManager.address),
244
+ tx.object(pool.address),
245
+ tx.pure.u128(orderId),
246
+ tx.object.clock(),
247
+ ],
248
+ typeArguments: [baseCoin.type, quoteCoin.type],
249
+ });
250
+ };
251
+
252
+ /**
253
+ * @description Cancel multiple existing orders
254
+ * @param {string} marginManagerKey The key to identify the MarginManager
255
+ * @param {string[]} orderIds Order IDs to cancel
256
+ * @returns A function that takes a Transaction object
257
+ */
258
+ cancelOrders = (marginManagerKey: string, orderIds: string[]) => (tx: Transaction) => {
259
+ const marginManager = this.#config.getMarginManager(marginManagerKey);
260
+ const pool = this.#config.getPool(marginManager.poolKey);
261
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
262
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
263
+ tx.moveCall({
264
+ target: `${this.#config.MARGIN_PACKAGE_ID}::pool_proxy::cancel_orders`,
265
+ arguments: [
266
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
267
+ tx.object(marginManager.address),
268
+ tx.object(pool.address),
269
+ tx.pure.vector('u128', orderIds),
270
+ tx.object.clock(),
271
+ ],
272
+ typeArguments: [baseCoin.type, quoteCoin.type],
273
+ });
274
+ };
275
+
276
+ /**
277
+ * @description Cancel all existing orders
278
+ * @param {string} marginManagerKey The key to identify the MarginManager
279
+ * @returns A function that takes a Transaction object
280
+ */
281
+ cancelAllOrders = (marginManagerKey: string) => (tx: Transaction) => {
282
+ const marginManager = this.#config.getMarginManager(marginManagerKey);
283
+ const pool = this.#config.getPool(marginManager.poolKey);
284
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
285
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
286
+ tx.moveCall({
287
+ target: `${this.#config.MARGIN_PACKAGE_ID}::pool_proxy::cancel_all_orders`,
288
+ arguments: [
289
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
290
+ tx.object(marginManager.address),
291
+ tx.object(pool.address),
292
+ tx.object.clock(),
293
+ ],
294
+ typeArguments: [baseCoin.type, quoteCoin.type],
295
+ });
296
+ };
297
+
298
+ /**
299
+ * @description Withdraw settled amounts
300
+ * @param {string} marginManagerKey The key to identify the MarginManager
301
+ * @returns A function that takes a Transaction object
302
+ */
303
+ withdrawSettledAmounts = (marginManagerKey: string) => (tx: Transaction) => {
304
+ const marginManager = this.#config.getMarginManager(marginManagerKey);
305
+ const pool = this.#config.getPool(marginManager.poolKey);
306
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
307
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
308
+ tx.moveCall({
309
+ target: `${this.#config.MARGIN_PACKAGE_ID}::pool_proxy::withdraw_settled_amounts`,
310
+ arguments: [
311
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
312
+ tx.object(marginManager.address),
313
+ tx.object(pool.address),
314
+ ],
315
+ typeArguments: [baseCoin.type, quoteCoin.type],
316
+ });
317
+ };
318
+
319
+ /**
320
+ * @description Stake in the pool
321
+ * @param {string} marginManagerKey The key to identify the MarginManager
322
+ * @param {number} stakeAmount The amount to stake
323
+ * @returns A function that takes a Transaction object
324
+ */
325
+ stake = (marginManagerKey: string, stakeAmount: number) => (tx: Transaction) => {
326
+ const marginManager = this.#config.getMarginManager(marginManagerKey);
327
+ const pool = this.#config.getPool(marginManager.poolKey);
328
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
329
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
330
+ const deepCoin = this.#config.getCoin('DEEP');
331
+ const stakeInput = Math.round(stakeAmount * deepCoin.scalar);
332
+ tx.moveCall({
333
+ target: `${this.#config.MARGIN_PACKAGE_ID}::pool_proxy::stake`,
334
+ arguments: [
335
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
336
+ tx.object(marginManager.address),
337
+ tx.object(pool.address),
338
+ tx.pure.u64(stakeInput),
339
+ ],
340
+ typeArguments: [baseCoin.type, quoteCoin.type],
341
+ });
342
+ };
343
+
344
+ /**
345
+ * @description Unstake from the pool
346
+ * @param {string} marginManagerKey The key to identify the MarginManager
347
+ * @returns A function that takes a Transaction object
348
+ */
349
+ unstake = (marginManagerKey: string) => (tx: Transaction) => {
350
+ const marginManager = this.#config.getMarginManager(marginManagerKey);
351
+ const pool = this.#config.getPool(marginManager.poolKey);
352
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
353
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
354
+ tx.moveCall({
355
+ target: `${this.#config.MARGIN_PACKAGE_ID}::pool_proxy::unstake`,
356
+ arguments: [
357
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
358
+ tx.object(marginManager.address),
359
+ tx.object(pool.address),
360
+ ],
361
+ typeArguments: [baseCoin.type, quoteCoin.type],
362
+ });
363
+ };
364
+
365
+ /**
366
+ * @description Submit a proposal
367
+ * @param {string} marginManagerKey The key to identify the MarginManager
368
+ * @param {MarginProposalParams} params Parameters for the proposal
369
+ * @returns A function that takes a Transaction object
370
+ */
371
+ submitProposal =
372
+ (marginManagerKey: string, params: MarginProposalParams) => (tx: Transaction) => {
373
+ const { takerFee, makerFee, stakeRequired } = params;
374
+ const marginManager = this.#config.getMarginManager(marginManagerKey);
375
+ const pool = this.#config.getPool(marginManager.poolKey);
376
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
377
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
378
+ const stakeInput = Math.round(stakeRequired * FLOAT_SCALAR);
379
+ const takerFeeInput = Math.round(takerFee * FLOAT_SCALAR);
380
+ const makerFeeInput = Math.round(makerFee * FLOAT_SCALAR);
381
+ tx.moveCall({
382
+ target: `${this.#config.MARGIN_PACKAGE_ID}::pool_proxy::submit_proposal`,
383
+ arguments: [
384
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
385
+ tx.object(marginManager.address),
386
+ tx.object(pool.address),
387
+ tx.pure.u64(takerFeeInput),
388
+ tx.pure.u64(makerFeeInput),
389
+ tx.pure.u64(stakeInput),
390
+ ],
391
+ typeArguments: [baseCoin.type, quoteCoin.type],
392
+ });
393
+ };
394
+
395
+ /**
396
+ * @description Vote on a proposal
397
+ * @param {string} marginManagerKey The key to identify the MarginManager
398
+ * @param {string} proposalId The ID of the proposal to vote on
399
+ * @returns A function that takes a Transaction object
400
+ */
401
+ vote = (marginManagerKey: string, proposalId: string) => (tx: Transaction) => {
402
+ const marginManager = this.#config.getMarginManager(marginManagerKey);
403
+ const pool = this.#config.getPool(marginManager.poolKey);
404
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
405
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
406
+ tx.moveCall({
407
+ target: `${this.#config.MARGIN_PACKAGE_ID}::pool_proxy::vote`,
408
+ arguments: [
409
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
410
+ tx.object(marginManager.address),
411
+ tx.object(pool.address),
412
+ tx.pure.id(proposalId),
413
+ ],
414
+ typeArguments: [baseCoin.type, quoteCoin.type],
415
+ });
416
+ };
417
+
418
+ /**
419
+ * @description Claim a rebate from a pool
420
+ * @param {string} marginManagerKey The key to identify the MarginManager
421
+ * @returns A function that takes a Transaction object
422
+ */
423
+ claimRebate = (marginManagerKey: string) => (tx: Transaction) => {
424
+ const marginManager = this.#config.getMarginManager(marginManagerKey);
425
+ const pool = this.#config.getPool(marginManager.poolKey);
426
+ const baseCoin = this.#config.getCoin(pool.baseCoin);
427
+ const quoteCoin = this.#config.getCoin(pool.quoteCoin);
428
+ tx.moveCall({
429
+ target: `${this.#config.MARGIN_PACKAGE_ID}::pool_proxy::claim_rebate`,
430
+ arguments: [
431
+ tx.object(this.#config.MARGIN_REGISTRY_ID),
432
+ tx.object(marginManager.address),
433
+ tx.object(pool.address),
434
+ ],
435
+ typeArguments: [baseCoin.type, quoteCoin.type],
436
+ });
437
+ };
438
+ }
@@ -0,0 +1,8 @@
1
+ // Copyright (c) Mysten Labs, Inc.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export { Account } from '../contracts/deepbook/account.js';
5
+ export { Balances } from '../contracts/deepbook/balances.js';
6
+ export { OrderDeepPrice } from '../contracts/deepbook/deep_price.js';
7
+ export { Order } from '../contracts/deepbook/order.js';
8
+ export { VecSet } from '../contracts/deepbook/deps/sui/vec_set.js';
@@ -0,0 +1,255 @@
1
+ // Copyright (c) Mysten Labs, Inc.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import type { TransactionObjectArgument } from '@haneullabs/haneul/transactions';
5
+
6
+ // SPDX-License-Identifier: Apache-2.0
7
+ export interface BalanceManager {
8
+ address: string;
9
+ tradeCap?: string;
10
+ depositCap?: string;
11
+ withdrawCap?: string;
12
+ }
13
+
14
+ export interface MarginManager {
15
+ address: string;
16
+ poolKey: string;
17
+ }
18
+
19
+ export interface Coin {
20
+ address: string;
21
+ type: string;
22
+ scalar: number;
23
+ feed?: string;
24
+ currencyId?: string;
25
+ priceInfoObjectId?: string;
26
+ }
27
+
28
+ export interface Pool {
29
+ address: string;
30
+ baseCoin: string;
31
+ quoteCoin: string;
32
+ }
33
+
34
+ export interface MarginPool {
35
+ address: string;
36
+ type: string;
37
+ }
38
+
39
+ // Trading constants
40
+ export enum OrderType {
41
+ NO_RESTRICTION,
42
+ IMMEDIATE_OR_CANCEL,
43
+ FILL_OR_KILL,
44
+ POST_ONLY,
45
+ }
46
+
47
+ // Self matching options
48
+ export enum SelfMatchingOptions {
49
+ SELF_MATCHING_ALLOWED,
50
+ CANCEL_TAKER,
51
+ CANCEL_MAKER,
52
+ }
53
+
54
+ export interface PlaceLimitOrderParams {
55
+ poolKey: string;
56
+ balanceManagerKey: string;
57
+ clientOrderId: string;
58
+ price: number;
59
+ quantity: number;
60
+ isBid: boolean;
61
+ expiration?: number | bigint;
62
+ orderType?: OrderType;
63
+ selfMatchingOption?: SelfMatchingOptions;
64
+ payWithDeep?: boolean;
65
+ }
66
+
67
+ export interface PlaceMarketOrderParams {
68
+ poolKey: string;
69
+ balanceManagerKey: string;
70
+ clientOrderId: string;
71
+ quantity: number;
72
+ isBid: boolean;
73
+ selfMatchingOption?: SelfMatchingOptions;
74
+ payWithDeep?: boolean;
75
+ }
76
+
77
+ export interface CanPlaceLimitOrderParams {
78
+ poolKey: string;
79
+ balanceManagerKey: string;
80
+ price: number;
81
+ quantity: number;
82
+ isBid: boolean;
83
+ payWithDeep: boolean;
84
+ expireTimestamp: number;
85
+ }
86
+
87
+ export interface CanPlaceMarketOrderParams {
88
+ poolKey: string;
89
+ balanceManagerKey: string;
90
+ quantity: number;
91
+ isBid: boolean;
92
+ payWithDeep: boolean;
93
+ }
94
+
95
+ export interface PlaceMarginLimitOrderParams {
96
+ poolKey: string;
97
+ marginManagerKey: string;
98
+ clientOrderId: string;
99
+ price: number;
100
+ quantity: number;
101
+ isBid: boolean;
102
+ expiration?: number | bigint;
103
+ orderType?: OrderType;
104
+ selfMatchingOption?: SelfMatchingOptions;
105
+ payWithDeep?: boolean;
106
+ }
107
+
108
+ export interface PlaceMarginMarketOrderParams {
109
+ poolKey: string;
110
+ marginManagerKey: string;
111
+ clientOrderId: string;
112
+ quantity: number;
113
+ isBid: boolean;
114
+ selfMatchingOption?: SelfMatchingOptions;
115
+ payWithDeep?: boolean;
116
+ }
117
+
118
+ export interface PendingLimitOrderParams {
119
+ clientOrderId: string;
120
+ orderType?: OrderType;
121
+ selfMatchingOption?: SelfMatchingOptions;
122
+ price: number;
123
+ quantity: number;
124
+ isBid: boolean;
125
+ payWithDeep?: boolean;
126
+ expireTimestamp?: number | bigint;
127
+ }
128
+
129
+ export interface PendingMarketOrderParams {
130
+ clientOrderId: string;
131
+ selfMatchingOption?: SelfMatchingOptions;
132
+ quantity: number;
133
+ isBid: boolean;
134
+ payWithDeep?: boolean;
135
+ }
136
+
137
+ export interface AddConditionalOrderParams {
138
+ marginManagerKey: string;
139
+ conditionalOrderId: string;
140
+ triggerBelowPrice: boolean;
141
+ triggerPrice: number;
142
+ pendingOrder: PendingLimitOrderParams | PendingMarketOrderParams;
143
+ }
144
+
145
+ export interface ProposalParams {
146
+ poolKey: string;
147
+ balanceManagerKey: string;
148
+ takerFee: number;
149
+ makerFee: number;
150
+ stakeRequired: number;
151
+ }
152
+
153
+ export interface MarginProposalParams {
154
+ takerFee: number;
155
+ makerFee: number;
156
+ stakeRequired: number;
157
+ }
158
+
159
+ export interface SwapParams {
160
+ poolKey: string;
161
+ amount: number;
162
+ deepAmount: number;
163
+ minOut: number;
164
+ deepCoin?: TransactionObjectArgument;
165
+ baseCoin?: TransactionObjectArgument;
166
+ quoteCoin?: TransactionObjectArgument;
167
+ }
168
+
169
+ export interface SwapWithManagerParams {
170
+ poolKey: string;
171
+ balanceManagerKey: string;
172
+ tradeCap: string;
173
+ depositCap: string;
174
+ withdrawCap: string;
175
+ amount: number;
176
+ minOut: number;
177
+ baseCoin?: TransactionObjectArgument;
178
+ quoteCoin?: TransactionObjectArgument;
179
+ }
180
+
181
+ export interface StakeParams {
182
+ poolKey: string;
183
+ balanceManagerKey: string;
184
+ amount: number;
185
+ }
186
+
187
+ export interface VoteParams {
188
+ poolKey: string;
189
+ balanceManagerKey: string;
190
+ proposalId: string;
191
+ }
192
+
193
+ export interface FlashLoanParams {
194
+ poolKey: string;
195
+ amount: number;
196
+ }
197
+
198
+ export interface CreatePoolAdminParams {
199
+ baseCoinKey: string;
200
+ quoteCoinKey: string;
201
+ tickSize: number;
202
+ lotSize: number;
203
+ minSize: number;
204
+ whitelisted: boolean;
205
+ stablePool: boolean;
206
+ }
207
+
208
+ export interface CreatePermissionlessPoolParams {
209
+ baseCoinKey: string;
210
+ quoteCoinKey: string;
211
+ tickSize: number;
212
+ lotSize: number;
213
+ minSize: number;
214
+ deepCoin?: TransactionObjectArgument;
215
+ }
216
+
217
+ export interface SetEwmaParams {
218
+ alpha: number;
219
+ zScoreThreshold: number;
220
+ additionalTakerFee: number;
221
+ }
222
+
223
+ export interface PoolConfigParams {
224
+ minWithdrawRiskRatio: number;
225
+ minBorrowRiskRatio: number;
226
+ liquidationRiskRatio: number;
227
+ targetLiquidationRiskRatio: number;
228
+ userLiquidationReward: number;
229
+ poolLiquidationReward: number;
230
+ }
231
+
232
+ export interface MarginPoolConfigParams {
233
+ supplyCap: number;
234
+ maxUtilizationRate: number;
235
+ referralSpread: number;
236
+ minBorrow: number;
237
+ rateLimitCapacity?: number;
238
+ rateLimitRefillRatePerMs?: number;
239
+ rateLimitEnabled?: boolean;
240
+ }
241
+
242
+ export interface InterestConfigParams {
243
+ baseRate: number;
244
+ baseSlope: number;
245
+ optimalUtilization: number;
246
+ excessSlope: number;
247
+ }
248
+
249
+ export interface Config {
250
+ DEEPBOOK_PACKAGE_ID: string;
251
+ REGISTRY_ID: string;
252
+ DEEP_TREASURY_ID: string;
253
+ }
254
+
255
+ export type Environment = 'mainnet' | 'testnet';