@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,334 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __typeError = (msg) => {
7
+ throw TypeError(msg);
8
+ };
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
20
+ };
21
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
22
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
23
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
24
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
25
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
26
+ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
27
+ var deepbookAdmin_exports = {};
28
+ __export(deepbookAdmin_exports, {
29
+ DeepBookAdminContract: () => DeepBookAdminContract
30
+ });
31
+ module.exports = __toCommonJS(deepbookAdmin_exports);
32
+ var import_config = require("../utils/config.js");
33
+ var _config, _DeepBookAdminContract_instances, adminCap_fn;
34
+ class DeepBookAdminContract {
35
+ /**
36
+ * @param {DeepBookConfig} config Configuration for DeepBookAdminContract
37
+ */
38
+ constructor(config) {
39
+ __privateAdd(this, _DeepBookAdminContract_instances);
40
+ __privateAdd(this, _config);
41
+ /**
42
+ * @description Create a new pool as admin
43
+ * @param {CreatePoolAdminParams} params Parameters for creating pool as admin
44
+ * @returns A function that takes a Transaction object
45
+ */
46
+ this.createPoolAdmin = (params) => (tx) => {
47
+ tx.setSenderIfNotSet(__privateGet(this, _config).address);
48
+ const { baseCoinKey, quoteCoinKey, tickSize, lotSize, minSize, whitelisted, stablePool } = params;
49
+ const baseCoin = __privateGet(this, _config).getCoin(baseCoinKey);
50
+ const quoteCoin = __privateGet(this, _config).getCoin(quoteCoinKey);
51
+ const baseScalar = baseCoin.scalar;
52
+ const quoteScalar = quoteCoin.scalar;
53
+ const adjustedTickSize = Math.round(tickSize * import_config.FLOAT_SCALAR * quoteScalar / baseScalar);
54
+ const adjustedLotSize = Math.round(lotSize * baseScalar);
55
+ const adjustedMinSize = Math.round(minSize * baseScalar);
56
+ tx.moveCall({
57
+ target: `${__privateGet(this, _config).DEEPBOOK_PACKAGE_ID}::pool::create_pool_admin`,
58
+ arguments: [
59
+ tx.object(__privateGet(this, _config).REGISTRY_ID),
60
+ // registry_id
61
+ tx.pure.u64(adjustedTickSize),
62
+ // adjusted tick_size
63
+ tx.pure.u64(adjustedLotSize),
64
+ // adjusted lot_size
65
+ tx.pure.u64(adjustedMinSize),
66
+ // adjusted min_size
67
+ tx.pure.bool(whitelisted),
68
+ tx.pure.bool(stablePool),
69
+ tx.object(__privateMethod(this, _DeepBookAdminContract_instances, adminCap_fn).call(this))
70
+ ],
71
+ typeArguments: [baseCoin.type, quoteCoin.type]
72
+ });
73
+ };
74
+ /**
75
+ * @description Unregister a pool as admin
76
+ * @param {string} poolKey The key of the pool to be unregistered by admin
77
+ * @returns A function that takes a Transaction object
78
+ */
79
+ this.unregisterPoolAdmin = (poolKey) => (tx) => {
80
+ const pool = __privateGet(this, _config).getPool(poolKey);
81
+ const baseCoin = __privateGet(this, _config).getCoin(pool.baseCoin);
82
+ const quoteCoin = __privateGet(this, _config).getCoin(pool.quoteCoin);
83
+ tx.moveCall({
84
+ target: `${__privateGet(this, _config).DEEPBOOK_PACKAGE_ID}::pool::unregister_pool_admin`,
85
+ arguments: [
86
+ tx.object(pool.address),
87
+ tx.object(__privateGet(this, _config).REGISTRY_ID),
88
+ tx.object(__privateMethod(this, _DeepBookAdminContract_instances, adminCap_fn).call(this))
89
+ ],
90
+ typeArguments: [baseCoin.type, quoteCoin.type]
91
+ });
92
+ };
93
+ /**
94
+ * @description Update the allowed versions for a pool
95
+ * @param {string} poolKey The key of the pool to be updated
96
+ * @returns A function that takes a Transaction object
97
+ */
98
+ this.updateAllowedVersions = (poolKey) => (tx) => {
99
+ const pool = __privateGet(this, _config).getPool(poolKey);
100
+ const baseCoin = __privateGet(this, _config).getCoin(pool.baseCoin);
101
+ const quoteCoin = __privateGet(this, _config).getCoin(pool.quoteCoin);
102
+ tx.moveCall({
103
+ target: `${__privateGet(this, _config).DEEPBOOK_PACKAGE_ID}::pool::update_allowed_versions`,
104
+ arguments: [
105
+ tx.object(pool.address),
106
+ tx.object(__privateGet(this, _config).REGISTRY_ID),
107
+ tx.object(__privateMethod(this, _DeepBookAdminContract_instances, adminCap_fn).call(this))
108
+ ],
109
+ typeArguments: [baseCoin.type, quoteCoin.type]
110
+ });
111
+ };
112
+ /**
113
+ * @description Enable a specific version
114
+ * @param {number} version The version to be enabled
115
+ * @returns A function that takes a Transaction object
116
+ */
117
+ this.enableVersion = (version) => (tx) => {
118
+ tx.moveCall({
119
+ target: `${__privateGet(this, _config).DEEPBOOK_PACKAGE_ID}::registry::enable_version`,
120
+ arguments: [
121
+ tx.object(__privateGet(this, _config).REGISTRY_ID),
122
+ tx.pure.u64(version),
123
+ tx.object(__privateMethod(this, _DeepBookAdminContract_instances, adminCap_fn).call(this))
124
+ ]
125
+ });
126
+ };
127
+ /**
128
+ * @description Disable a specific version
129
+ * @param {number} version The version to be disabled
130
+ * @returns A function that takes a Transaction object
131
+ */
132
+ this.disableVersion = (version) => (tx) => {
133
+ tx.moveCall({
134
+ target: `${__privateGet(this, _config).DEEPBOOK_PACKAGE_ID}::registry::disable_version`,
135
+ arguments: [
136
+ tx.object(__privateGet(this, _config).REGISTRY_ID),
137
+ tx.pure.u64(version),
138
+ tx.object(__privateMethod(this, _DeepBookAdminContract_instances, adminCap_fn).call(this))
139
+ ]
140
+ });
141
+ };
142
+ /**
143
+ * @description Sets the treasury address where pool creation fees will be sent
144
+ * @param {string} treasuryAddress The treasury address
145
+ * @returns A function that takes a Transaction object
146
+ */
147
+ this.setTreasuryAddress = (treasuryAddress) => (tx) => {
148
+ tx.moveCall({
149
+ target: `${__privateGet(this, _config).DEEPBOOK_PACKAGE_ID}::registry::set_treasury_address`,
150
+ arguments: [
151
+ tx.object(__privateGet(this, _config).REGISTRY_ID),
152
+ tx.pure.address(treasuryAddress),
153
+ tx.object(__privateMethod(this, _DeepBookAdminContract_instances, adminCap_fn).call(this))
154
+ ]
155
+ });
156
+ };
157
+ /**
158
+ * @description Add a coin to whitelist of stable coins
159
+ * @param {string} stableCoinKey The name of the stable coin to be added
160
+ * @returns A function that takes a Transaction object
161
+ */
162
+ this.addStableCoin = (stableCoinKey) => (tx) => {
163
+ const stableCoinType = __privateGet(this, _config).getCoin(stableCoinKey).type;
164
+ tx.moveCall({
165
+ target: `${__privateGet(this, _config).DEEPBOOK_PACKAGE_ID}::registry::add_stablecoin`,
166
+ arguments: [tx.object(__privateGet(this, _config).REGISTRY_ID), tx.object(__privateMethod(this, _DeepBookAdminContract_instances, adminCap_fn).call(this))],
167
+ typeArguments: [stableCoinType]
168
+ });
169
+ };
170
+ /**
171
+ * @description Remove a coin from whitelist of stable coins
172
+ * @param {string} stableCoinKey The name of the stable coin to be removed
173
+ * @returns A function that takes a Transaction object
174
+ */
175
+ this.removeStableCoin = (stableCoinKey) => (tx) => {
176
+ const stableCoinType = __privateGet(this, _config).getCoin(stableCoinKey).type;
177
+ tx.moveCall({
178
+ target: `${__privateGet(this, _config).DEEPBOOK_PACKAGE_ID}::registry::remove_stablecoin`,
179
+ arguments: [tx.object(__privateGet(this, _config).REGISTRY_ID), tx.object(__privateMethod(this, _DeepBookAdminContract_instances, adminCap_fn).call(this))],
180
+ typeArguments: [stableCoinType]
181
+ });
182
+ };
183
+ /**
184
+ * @description Adjust the tick size of a pool
185
+ * @param {string} poolKey The key to identify the pool
186
+ * @param {number} newTickSize The new tick size
187
+ * @returns A function that takes a Transaction object
188
+ */
189
+ this.adjustTickSize = (poolKey, newTickSize) => (tx) => {
190
+ tx.setSenderIfNotSet(__privateGet(this, _config).address);
191
+ const pool = __privateGet(this, _config).getPool(poolKey);
192
+ const baseCoin = __privateGet(this, _config).getCoin(pool.baseCoin);
193
+ const quoteCoin = __privateGet(this, _config).getCoin(pool.quoteCoin);
194
+ const baseScalar = baseCoin.scalar;
195
+ const quoteScalar = quoteCoin.scalar;
196
+ const adjustedTickSize = newTickSize * import_config.FLOAT_SCALAR * quoteScalar / baseScalar;
197
+ tx.moveCall({
198
+ target: `${__privateGet(this, _config).DEEPBOOK_PACKAGE_ID}::pool::adjust_tick_size_admin`,
199
+ arguments: [
200
+ tx.object(pool.address),
201
+ // pool address
202
+ tx.pure.u64(adjustedTickSize),
203
+ // adjusted tick_size
204
+ tx.object(__privateMethod(this, _DeepBookAdminContract_instances, adminCap_fn).call(this)),
205
+ tx.object.clock()
206
+ ],
207
+ typeArguments: [baseCoin.type, quoteCoin.type]
208
+ });
209
+ };
210
+ /**
211
+ * @description Adjust the lot size and min size of a pool
212
+ * @param {string} poolKey The key to identify the pool
213
+ * @param {number} newLotSize The new lot size
214
+ * @param {number} newMinSize The new min size
215
+ * @returns A function that takes a Transaction object
216
+ */
217
+ this.adjustMinLotSize = (poolKey, newLotSize, newMinSize) => (tx) => {
218
+ tx.setSenderIfNotSet(__privateGet(this, _config).address);
219
+ const pool = __privateGet(this, _config).getPool(poolKey);
220
+ const baseCoin = __privateGet(this, _config).getCoin(pool.baseCoin);
221
+ const quoteCoin = __privateGet(this, _config).getCoin(pool.quoteCoin);
222
+ const baseScalar = baseCoin.scalar;
223
+ const adjustedLotSize = newLotSize * baseScalar;
224
+ const adjustedMinSize = newMinSize * baseScalar;
225
+ tx.moveCall({
226
+ target: `${__privateGet(this, _config).DEEPBOOK_PACKAGE_ID}::pool::adjust_min_lot_size_admin`,
227
+ arguments: [
228
+ tx.object(pool.address),
229
+ // pool address
230
+ tx.pure.u64(adjustedLotSize),
231
+ tx.pure.u64(adjustedMinSize),
232
+ tx.object(__privateMethod(this, _DeepBookAdminContract_instances, adminCap_fn).call(this)),
233
+ tx.object.clock()
234
+ ],
235
+ typeArguments: [baseCoin.type, quoteCoin.type]
236
+ });
237
+ };
238
+ /**
239
+ * @description Initialize the balance manager map
240
+ * @returns A function that takes a Transaction object
241
+ */
242
+ this.initBalanceManagerMap = () => (tx) => {
243
+ tx.moveCall({
244
+ target: `${__privateGet(this, _config).DEEPBOOK_PACKAGE_ID}::registry::init_balance_manager_map`,
245
+ arguments: [tx.object(__privateGet(this, _config).REGISTRY_ID), tx.object(__privateMethod(this, _DeepBookAdminContract_instances, adminCap_fn).call(this))]
246
+ });
247
+ };
248
+ /**
249
+ * @description Set the EWMA parameters for a pool
250
+ * @param {string} poolKey The key to identify the pool
251
+ * @param {SetEwmaParamsParams} params The parameters to set
252
+ * @returns A function that takes a Transaction object
253
+ */
254
+ this.setEwmaParams = (poolKey, params) => (tx) => {
255
+ const { alpha, zScoreThreshold, additionalTakerFee } = params;
256
+ const adjustedAlpha = Math.round(alpha * import_config.FLOAT_SCALAR);
257
+ const adjustedZScoreThreshold = Math.round(zScoreThreshold * import_config.FLOAT_SCALAR);
258
+ const adjustedAdditionalTakerFee = Math.round(additionalTakerFee * import_config.FLOAT_SCALAR);
259
+ const pool = __privateGet(this, _config).getPool(poolKey);
260
+ const baseCoin = __privateGet(this, _config).getCoin(pool.baseCoin);
261
+ const quoteCoin = __privateGet(this, _config).getCoin(pool.quoteCoin);
262
+ tx.moveCall({
263
+ target: `${__privateGet(this, _config).DEEPBOOK_PACKAGE_ID}::pool::set_ewma_params`,
264
+ arguments: [
265
+ tx.object(pool.address),
266
+ tx.object(__privateMethod(this, _DeepBookAdminContract_instances, adminCap_fn).call(this)),
267
+ tx.pure.u64(adjustedAlpha),
268
+ tx.pure.u64(adjustedZScoreThreshold),
269
+ tx.pure.u64(adjustedAdditionalTakerFee),
270
+ tx.object.clock()
271
+ ],
272
+ typeArguments: [baseCoin.type, quoteCoin.type]
273
+ });
274
+ };
275
+ /**
276
+ * @description Enable or disable the EWMA state for a pool
277
+ * @param {string} poolKey The key to identify the pool
278
+ * @param {boolean} enable Whether to enable or disable the EWMA state
279
+ * @returns A function that takes a Transaction object
280
+ */
281
+ this.enableEwmaState = (poolKey, enable) => (tx) => {
282
+ const pool = __privateGet(this, _config).getPool(poolKey);
283
+ const baseCoin = __privateGet(this, _config).getCoin(pool.baseCoin);
284
+ const quoteCoin = __privateGet(this, _config).getCoin(pool.quoteCoin);
285
+ tx.moveCall({
286
+ target: `${__privateGet(this, _config).DEEPBOOK_PACKAGE_ID}::pool::enable_ewma_state`,
287
+ arguments: [
288
+ tx.object(pool.address),
289
+ tx.object(__privateMethod(this, _DeepBookAdminContract_instances, adminCap_fn).call(this)),
290
+ tx.pure.bool(enable),
291
+ tx.object.clock()
292
+ ],
293
+ typeArguments: [baseCoin.type, quoteCoin.type]
294
+ });
295
+ };
296
+ /**
297
+ * @description Authorize the MarginApp to access protected features of DeepBook
298
+ * @returns A function that takes a Transaction object
299
+ */
300
+ this.authorizeMarginApp = () => (tx) => {
301
+ tx.moveCall({
302
+ target: `${__privateGet(this, _config).DEEPBOOK_PACKAGE_ID}::registry::authorize_app`,
303
+ arguments: [tx.object(__privateGet(this, _config).REGISTRY_ID), tx.object(__privateMethod(this, _DeepBookAdminContract_instances, adminCap_fn).call(this))],
304
+ typeArguments: [`${__privateGet(this, _config).MARGIN_PACKAGE_ID}::margin_manager::MarginApp`]
305
+ });
306
+ };
307
+ /**
308
+ * @description Deauthorize the MarginApp by removing its authorization key
309
+ * @returns A function that takes a Transaction object and returns a bool
310
+ */
311
+ this.deauthorizeMarginApp = () => (tx) => {
312
+ return tx.moveCall({
313
+ target: `${__privateGet(this, _config).DEEPBOOK_PACKAGE_ID}::registry::deauthorize_app`,
314
+ arguments: [tx.object(__privateGet(this, _config).REGISTRY_ID), tx.object(__privateMethod(this, _DeepBookAdminContract_instances, adminCap_fn).call(this))],
315
+ typeArguments: [`${__privateGet(this, _config).MARGIN_PACKAGE_ID}::margin_manager::MarginApp`]
316
+ });
317
+ };
318
+ __privateSet(this, _config, config);
319
+ }
320
+ }
321
+ _config = new WeakMap();
322
+ _DeepBookAdminContract_instances = new WeakSet();
323
+ /**
324
+ * @returns The admin capability required for admin operations
325
+ * @throws Error if the admin capability is not set
326
+ */
327
+ adminCap_fn = function() {
328
+ const adminCap = __privateGet(this, _config).adminCap;
329
+ if (!adminCap) {
330
+ throw new Error("ADMIN_CAP environment variable not set");
331
+ }
332
+ return adminCap;
333
+ };
334
+ //# sourceMappingURL=deepbookAdmin.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/transactions/deepbookAdmin.ts"],
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { Transaction } from '@haneullabs/haneul/transactions';\n\nimport type { CreatePoolAdminParams, SetEwmaParams } from '../types/index.js';\nimport type { DeepBookConfig } from '../utils/config.js';\nimport { FLOAT_SCALAR } from '../utils/config.js';\n\n/**\n * DeepBookAdminContract class for managing admin actions.\n */\nexport class DeepBookAdminContract {\n\t#config: DeepBookConfig;\n\n\t/**\n\t * @param {DeepBookConfig} config Configuration for DeepBookAdminContract\n\t */\n\tconstructor(config: DeepBookConfig) {\n\t\tthis.#config = config;\n\t}\n\n\t/**\n\t * @returns The admin capability required for admin operations\n\t * @throws Error if the admin capability is not set\n\t */\n\t#adminCap() {\n\t\tconst adminCap = this.#config.adminCap;\n\t\tif (!adminCap) {\n\t\t\tthrow new Error('ADMIN_CAP environment variable not set');\n\t\t}\n\t\treturn adminCap;\n\t}\n\n\t/**\n\t * @description Create a new pool as admin\n\t * @param {CreatePoolAdminParams} params Parameters for creating pool as admin\n\t * @returns A function that takes a Transaction object\n\t */\n\tcreatePoolAdmin = (params: CreatePoolAdminParams) => (tx: Transaction) => {\n\t\ttx.setSenderIfNotSet(this.#config.address);\n\t\tconst { baseCoinKey, quoteCoinKey, tickSize, lotSize, minSize, whitelisted, stablePool } =\n\t\t\tparams;\n\t\tconst baseCoin = this.#config.getCoin(baseCoinKey);\n\t\tconst quoteCoin = this.#config.getCoin(quoteCoinKey);\n\n\t\tconst baseScalar = baseCoin.scalar;\n\t\tconst quoteScalar = quoteCoin.scalar;\n\n\t\tconst adjustedTickSize = Math.round((tickSize * FLOAT_SCALAR * quoteScalar) / baseScalar);\n\t\tconst adjustedLotSize = Math.round(lotSize * baseScalar);\n\t\tconst adjustedMinSize = Math.round(minSize * baseScalar);\n\n\t\ttx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::create_pool_admin`,\n\t\t\targuments: [\n\t\t\t\ttx.object(this.#config.REGISTRY_ID), // registry_id\n\t\t\t\ttx.pure.u64(adjustedTickSize), // adjusted tick_size\n\t\t\t\ttx.pure.u64(adjustedLotSize), // adjusted lot_size\n\t\t\t\ttx.pure.u64(adjustedMinSize), // adjusted min_size\n\t\t\t\ttx.pure.bool(whitelisted),\n\t\t\t\ttx.pure.bool(stablePool),\n\t\t\t\ttx.object(this.#adminCap()),\n\t\t\t],\n\t\t\ttypeArguments: [baseCoin.type, quoteCoin.type],\n\t\t});\n\t};\n\n\t/**\n\t * @description Unregister a pool as admin\n\t * @param {string} poolKey The key of the pool to be unregistered by admin\n\t * @returns A function that takes a Transaction object\n\t */\n\tunregisterPoolAdmin = (poolKey: string) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\t\ttx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::unregister_pool_admin`,\n\t\t\targuments: [\n\t\t\t\ttx.object(pool.address),\n\t\t\t\ttx.object(this.#config.REGISTRY_ID),\n\t\t\t\ttx.object(this.#adminCap()),\n\t\t\t],\n\t\t\ttypeArguments: [baseCoin.type, quoteCoin.type],\n\t\t});\n\t};\n\n\t/**\n\t * @description Update the allowed versions for a pool\n\t * @param {string} poolKey The key of the pool to be updated\n\t * @returns A function that takes a Transaction object\n\t */\n\tupdateAllowedVersions = (poolKey: string) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\t\ttx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::update_allowed_versions`,\n\t\t\targuments: [\n\t\t\t\ttx.object(pool.address),\n\t\t\t\ttx.object(this.#config.REGISTRY_ID),\n\t\t\t\ttx.object(this.#adminCap()),\n\t\t\t],\n\t\t\ttypeArguments: [baseCoin.type, quoteCoin.type],\n\t\t});\n\t};\n\n\t/**\n\t * @description Enable a specific version\n\t * @param {number} version The version to be enabled\n\t * @returns A function that takes a Transaction object\n\t */\n\tenableVersion = (version: number) => (tx: Transaction) => {\n\t\ttx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::registry::enable_version`,\n\t\t\targuments: [\n\t\t\t\ttx.object(this.#config.REGISTRY_ID),\n\t\t\t\ttx.pure.u64(version),\n\t\t\t\ttx.object(this.#adminCap()),\n\t\t\t],\n\t\t});\n\t};\n\n\t/**\n\t * @description Disable a specific version\n\t * @param {number} version The version to be disabled\n\t * @returns A function that takes a Transaction object\n\t */\n\tdisableVersion = (version: number) => (tx: Transaction) => {\n\t\ttx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::registry::disable_version`,\n\t\t\targuments: [\n\t\t\t\ttx.object(this.#config.REGISTRY_ID),\n\t\t\t\ttx.pure.u64(version),\n\t\t\t\ttx.object(this.#adminCap()),\n\t\t\t],\n\t\t});\n\t};\n\n\t/**\n\t * @description Sets the treasury address where pool creation fees will be sent\n\t * @param {string} treasuryAddress The treasury address\n\t * @returns A function that takes a Transaction object\n\t */\n\tsetTreasuryAddress = (treasuryAddress: string) => (tx: Transaction) => {\n\t\ttx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::registry::set_treasury_address`,\n\t\t\targuments: [\n\t\t\t\ttx.object(this.#config.REGISTRY_ID),\n\t\t\t\ttx.pure.address(treasuryAddress),\n\t\t\t\ttx.object(this.#adminCap()),\n\t\t\t],\n\t\t});\n\t};\n\n\t/**\n\t * @description Add a coin to whitelist of stable coins\n\t * @param {string} stableCoinKey The name of the stable coin to be added\n\t * @returns A function that takes a Transaction object\n\t */\n\taddStableCoin = (stableCoinKey: string) => (tx: Transaction) => {\n\t\tconst stableCoinType = this.#config.getCoin(stableCoinKey).type;\n\t\ttx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::registry::add_stablecoin`,\n\t\t\targuments: [tx.object(this.#config.REGISTRY_ID), tx.object(this.#adminCap())],\n\t\t\ttypeArguments: [stableCoinType],\n\t\t});\n\t};\n\n\t/**\n\t * @description Remove a coin from whitelist of stable coins\n\t * @param {string} stableCoinKey The name of the stable coin to be removed\n\t * @returns A function that takes a Transaction object\n\t */\n\tremoveStableCoin = (stableCoinKey: string) => (tx: Transaction) => {\n\t\tconst stableCoinType = this.#config.getCoin(stableCoinKey).type;\n\t\ttx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::registry::remove_stablecoin`,\n\t\t\targuments: [tx.object(this.#config.REGISTRY_ID), tx.object(this.#adminCap())],\n\t\t\ttypeArguments: [stableCoinType],\n\t\t});\n\t};\n\n\t/**\n\t * @description Adjust the tick size of a pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @param {number} newTickSize The new tick size\n\t * @returns A function that takes a Transaction object\n\t */\n\tadjustTickSize = (poolKey: string, newTickSize: number) => (tx: Transaction) => {\n\t\ttx.setSenderIfNotSet(this.#config.address);\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\n\t\tconst baseScalar = baseCoin.scalar;\n\t\tconst quoteScalar = quoteCoin.scalar;\n\n\t\tconst adjustedTickSize = (newTickSize * FLOAT_SCALAR * quoteScalar) / baseScalar;\n\n\t\ttx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::adjust_tick_size_admin`,\n\t\t\targuments: [\n\t\t\t\ttx.object(pool.address), // pool address\n\t\t\t\ttx.pure.u64(adjustedTickSize), // adjusted tick_size\n\t\t\t\ttx.object(this.#adminCap()),\n\t\t\t\ttx.object.clock(),\n\t\t\t],\n\t\t\ttypeArguments: [baseCoin.type, quoteCoin.type],\n\t\t});\n\t};\n\n\t/**\n\t * @description Adjust the lot size and min size of a pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @param {number} newLotSize The new lot size\n\t * @param {number} newMinSize The new min size\n\t * @returns A function that takes a Transaction object\n\t */\n\tadjustMinLotSize =\n\t\t(poolKey: string, newLotSize: number, newMinSize: number) => (tx: Transaction) => {\n\t\t\ttx.setSenderIfNotSet(this.#config.address);\n\t\t\tconst pool = this.#config.getPool(poolKey);\n\t\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\n\t\t\tconst baseScalar = baseCoin.scalar;\n\n\t\t\tconst adjustedLotSize = newLotSize * baseScalar;\n\t\t\tconst adjustedMinSize = newMinSize * baseScalar;\n\n\t\t\ttx.moveCall({\n\t\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::adjust_min_lot_size_admin`,\n\t\t\t\targuments: [\n\t\t\t\t\ttx.object(pool.address), // pool address\n\t\t\t\t\ttx.pure.u64(adjustedLotSize),\n\t\t\t\t\ttx.pure.u64(adjustedMinSize),\n\t\t\t\t\ttx.object(this.#adminCap()),\n\t\t\t\t\ttx.object.clock(),\n\t\t\t\t],\n\t\t\t\ttypeArguments: [baseCoin.type, quoteCoin.type],\n\t\t\t});\n\t\t};\n\n\t/**\n\t * @description Initialize the balance manager map\n\t * @returns A function that takes a Transaction object\n\t */\n\tinitBalanceManagerMap = () => (tx: Transaction) => {\n\t\ttx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::registry::init_balance_manager_map`,\n\t\t\targuments: [tx.object(this.#config.REGISTRY_ID), tx.object(this.#adminCap())],\n\t\t});\n\t};\n\n\t/**\n\t * @description Set the EWMA parameters for a pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @param {SetEwmaParamsParams} params The parameters to set\n\t * @returns A function that takes a Transaction object\n\t */\n\tsetEwmaParams = (poolKey: string, params: SetEwmaParams) => (tx: Transaction) => {\n\t\tconst { alpha, zScoreThreshold, additionalTakerFee } = params;\n\t\tconst adjustedAlpha = Math.round(alpha * FLOAT_SCALAR);\n\t\tconst adjustedZScoreThreshold = Math.round(zScoreThreshold * FLOAT_SCALAR);\n\t\tconst adjustedAdditionalTakerFee = Math.round(additionalTakerFee * FLOAT_SCALAR);\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\n\t\ttx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::set_ewma_params`,\n\t\t\targuments: [\n\t\t\t\ttx.object(pool.address),\n\t\t\t\ttx.object(this.#adminCap()),\n\t\t\t\ttx.pure.u64(adjustedAlpha),\n\t\t\t\ttx.pure.u64(adjustedZScoreThreshold),\n\t\t\t\ttx.pure.u64(adjustedAdditionalTakerFee),\n\t\t\t\ttx.object.clock(),\n\t\t\t],\n\t\t\ttypeArguments: [baseCoin.type, quoteCoin.type],\n\t\t});\n\t};\n\n\t/**\n\t * @description Enable or disable the EWMA state for a pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @param {boolean} enable Whether to enable or disable the EWMA state\n\t * @returns A function that takes a Transaction object\n\t */\n\tenableEwmaState = (poolKey: string, enable: boolean) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\n\t\ttx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::enable_ewma_state`,\n\t\t\targuments: [\n\t\t\t\ttx.object(pool.address),\n\t\t\t\ttx.object(this.#adminCap()),\n\t\t\t\ttx.pure.bool(enable),\n\t\t\t\ttx.object.clock(),\n\t\t\t],\n\t\t\ttypeArguments: [baseCoin.type, quoteCoin.type],\n\t\t});\n\t};\n\n\t/**\n\t * @description Authorize the MarginApp to access protected features of DeepBook\n\t * @returns A function that takes a Transaction object\n\t */\n\tauthorizeMarginApp = () => (tx: Transaction) => {\n\t\ttx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::registry::authorize_app`,\n\t\t\targuments: [tx.object(this.#config.REGISTRY_ID), tx.object(this.#adminCap())],\n\t\t\ttypeArguments: [`${this.#config.MARGIN_PACKAGE_ID}::margin_manager::MarginApp`],\n\t\t});\n\t};\n\n\t/**\n\t * @description Deauthorize the MarginApp by removing its authorization key\n\t * @returns A function that takes a Transaction object and returns a bool\n\t */\n\tdeauthorizeMarginApp = () => (tx: Transaction) => {\n\t\treturn tx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::registry::deauthorize_app`,\n\t\t\targuments: [tx.object(this.#config.REGISTRY_ID), tx.object(this.#adminCap())],\n\t\t\ttypeArguments: [`${this.#config.MARGIN_PACKAGE_ID}::margin_manager::MarginApp`],\n\t\t});\n\t};\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,56 @@
1
+ import type { Transaction, TransactionObjectArgument } from '@haneullabs/haneul/transactions';
2
+ import type { DeepBookConfig } from '../utils/config.js';
3
+ /**
4
+ * FlashLoanContract class for managing flash loans.
5
+ */
6
+ export declare class FlashLoanContract {
7
+ #private;
8
+ /**
9
+ * @param {DeepBookConfig} config Configuration object for DeepBook
10
+ */
11
+ constructor(config: DeepBookConfig);
12
+ /**
13
+ * @description Borrow base asset from the pool
14
+ * @param {string} poolKey The key to identify the pool
15
+ * @param {number} borrowAmount The amount to borrow
16
+ * @returns A function that takes a Transaction object
17
+ */
18
+ borrowBaseAsset: (poolKey: string, borrowAmount: number) => (tx: Transaction) => readonly [{
19
+ $kind: "NestedResult";
20
+ NestedResult: [number, number];
21
+ }, {
22
+ $kind: "NestedResult";
23
+ NestedResult: [number, number];
24
+ }];
25
+ /**
26
+ * @description Return base asset to the pool after a flash loan.
27
+ * @param {string} poolKey The key to identify the pool
28
+ * @param {number} borrowAmount The amount of the base asset to return
29
+ * @param {TransactionObjectArgument} baseCoinInput Coin object representing the base asset to be returned
30
+ * @param {TransactionObjectArgument} flashLoan FlashLoan object representing the loan to be settled
31
+ * @returns A function that takes a Transaction object
32
+ */
33
+ returnBaseAsset: (poolKey: string, borrowAmount: number, baseCoinInput: TransactionObjectArgument, flashLoan: TransactionObjectArgument) => (tx: Transaction) => TransactionObjectArgument;
34
+ /**
35
+ * @description Borrow quote asset from the pool
36
+ * @param {string} poolKey The key to identify the pool
37
+ * @param {number} borrowAmount The amount to borrow
38
+ * @returns A function that takes a Transaction object
39
+ */
40
+ borrowQuoteAsset: (poolKey: string, borrowAmount: number) => (tx: Transaction) => readonly [{
41
+ $kind: "NestedResult";
42
+ NestedResult: [number, number];
43
+ }, {
44
+ $kind: "NestedResult";
45
+ NestedResult: [number, number];
46
+ }];
47
+ /**
48
+ * @description Return quote asset to the pool after a flash loan.
49
+ * @param {string} poolKey The key to identify the pool
50
+ * @param {number} borrowAmount The amount of the quote asset to return
51
+ * @param {TransactionObjectArgument} quoteCoinInput Coin object representing the quote asset to be returned
52
+ * @param {TransactionObjectArgument} flashLoan FlashLoan object representing the loan to be settled
53
+ * @returns A function that takes a Transaction object
54
+ */
55
+ returnQuoteAsset: (poolKey: string, borrowAmount: number, quoteCoinInput: TransactionObjectArgument, flashLoan: TransactionObjectArgument) => (tx: Transaction) => TransactionObjectArgument;
56
+ }
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __typeError = (msg) => {
7
+ throw TypeError(msg);
8
+ };
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
20
+ };
21
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
22
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
23
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
24
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
25
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
26
+ var flashLoans_exports = {};
27
+ __export(flashLoans_exports, {
28
+ FlashLoanContract: () => FlashLoanContract
29
+ });
30
+ module.exports = __toCommonJS(flashLoans_exports);
31
+ var _config;
32
+ class FlashLoanContract {
33
+ /**
34
+ * @param {DeepBookConfig} config Configuration object for DeepBook
35
+ */
36
+ constructor(config) {
37
+ __privateAdd(this, _config);
38
+ /**
39
+ * @description Borrow base asset from the pool
40
+ * @param {string} poolKey The key to identify the pool
41
+ * @param {number} borrowAmount The amount to borrow
42
+ * @returns A function that takes a Transaction object
43
+ */
44
+ this.borrowBaseAsset = (poolKey, borrowAmount) => (tx) => {
45
+ const pool = __privateGet(this, _config).getPool(poolKey);
46
+ const baseCoin = __privateGet(this, _config).getCoin(pool.baseCoin);
47
+ const quoteCoin = __privateGet(this, _config).getCoin(pool.quoteCoin);
48
+ const inputQuantity = Math.round(borrowAmount * baseCoin.scalar);
49
+ const [baseCoinResult, flashLoan] = tx.moveCall({
50
+ target: `${__privateGet(this, _config).DEEPBOOK_PACKAGE_ID}::pool::borrow_flashloan_base`,
51
+ arguments: [tx.object(pool.address), tx.pure.u64(inputQuantity)],
52
+ typeArguments: [baseCoin.type, quoteCoin.type]
53
+ });
54
+ return [baseCoinResult, flashLoan];
55
+ };
56
+ /**
57
+ * @description Return base asset to the pool after a flash loan.
58
+ * @param {string} poolKey The key to identify the pool
59
+ * @param {number} borrowAmount The amount of the base asset to return
60
+ * @param {TransactionObjectArgument} baseCoinInput Coin object representing the base asset to be returned
61
+ * @param {TransactionObjectArgument} flashLoan FlashLoan object representing the loan to be settled
62
+ * @returns A function that takes a Transaction object
63
+ */
64
+ this.returnBaseAsset = (poolKey, borrowAmount, baseCoinInput, flashLoan) => (tx) => {
65
+ const pool = __privateGet(this, _config).getPool(poolKey);
66
+ const baseCoin = __privateGet(this, _config).getCoin(pool.baseCoin);
67
+ const quoteCoin = __privateGet(this, _config).getCoin(pool.quoteCoin);
68
+ const borrowScalar = baseCoin.scalar;
69
+ const [baseCoinReturn] = tx.splitCoins(baseCoinInput, [
70
+ tx.pure.u64(Math.round(borrowAmount * borrowScalar))
71
+ ]);
72
+ tx.moveCall({
73
+ target: `${__privateGet(this, _config).DEEPBOOK_PACKAGE_ID}::pool::return_flashloan_base`,
74
+ arguments: [tx.object(pool.address), baseCoinReturn, flashLoan],
75
+ typeArguments: [baseCoin.type, quoteCoin.type]
76
+ });
77
+ return baseCoinInput;
78
+ };
79
+ /**
80
+ * @description Borrow quote asset from the pool
81
+ * @param {string} poolKey The key to identify the pool
82
+ * @param {number} borrowAmount The amount to borrow
83
+ * @returns A function that takes a Transaction object
84
+ */
85
+ this.borrowQuoteAsset = (poolKey, borrowAmount) => (tx) => {
86
+ const pool = __privateGet(this, _config).getPool(poolKey);
87
+ const baseCoin = __privateGet(this, _config).getCoin(pool.baseCoin);
88
+ const quoteCoin = __privateGet(this, _config).getCoin(pool.quoteCoin);
89
+ const inputQuantity = Math.round(borrowAmount * quoteCoin.scalar);
90
+ const [quoteCoinResult, flashLoan] = tx.moveCall({
91
+ target: `${__privateGet(this, _config).DEEPBOOK_PACKAGE_ID}::pool::borrow_flashloan_quote`,
92
+ arguments: [tx.object(pool.address), tx.pure.u64(inputQuantity)],
93
+ typeArguments: [baseCoin.type, quoteCoin.type]
94
+ });
95
+ return [quoteCoinResult, flashLoan];
96
+ };
97
+ /**
98
+ * @description Return quote asset to the pool after a flash loan.
99
+ * @param {string} poolKey The key to identify the pool
100
+ * @param {number} borrowAmount The amount of the quote asset to return
101
+ * @param {TransactionObjectArgument} quoteCoinInput Coin object representing the quote asset to be returned
102
+ * @param {TransactionObjectArgument} flashLoan FlashLoan object representing the loan to be settled
103
+ * @returns A function that takes a Transaction object
104
+ */
105
+ this.returnQuoteAsset = (poolKey, borrowAmount, quoteCoinInput, flashLoan) => (tx) => {
106
+ const pool = __privateGet(this, _config).getPool(poolKey);
107
+ const baseCoin = __privateGet(this, _config).getCoin(pool.baseCoin);
108
+ const quoteCoin = __privateGet(this, _config).getCoin(pool.quoteCoin);
109
+ const borrowScalar = quoteCoin.scalar;
110
+ const [quoteCoinReturn] = tx.splitCoins(quoteCoinInput, [
111
+ tx.pure.u64(Math.round(borrowAmount * borrowScalar))
112
+ ]);
113
+ tx.moveCall({
114
+ target: `${__privateGet(this, _config).DEEPBOOK_PACKAGE_ID}::pool::return_flashloan_quote`,
115
+ arguments: [tx.object(pool.address), quoteCoinReturn, flashLoan],
116
+ typeArguments: [baseCoin.type, quoteCoin.type]
117
+ });
118
+ return quoteCoinInput;
119
+ };
120
+ __privateSet(this, _config, config);
121
+ }
122
+ }
123
+ _config = new WeakMap();
124
+ //# sourceMappingURL=flashLoans.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/transactions/flashLoans.ts"],
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\nimport type { Transaction, TransactionObjectArgument } from '@haneullabs/haneul/transactions';\n\nimport type { DeepBookConfig } from '../utils/config.js';\n\n/**\n * FlashLoanContract class for managing flash loans.\n */\nexport class FlashLoanContract {\n\t#config: DeepBookConfig;\n\n\t/**\n\t * @param {DeepBookConfig} config Configuration object for DeepBook\n\t */\n\tconstructor(config: DeepBookConfig) {\n\t\tthis.#config = config;\n\t}\n\n\t/**\n\t * @description Borrow base asset from the pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @param {number} borrowAmount The amount to borrow\n\t * @returns A function that takes a Transaction object\n\t */\n\tborrowBaseAsset = (poolKey: string, borrowAmount: number) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\t\tconst inputQuantity = Math.round(borrowAmount * baseCoin.scalar);\n\t\tconst [baseCoinResult, flashLoan] = tx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::borrow_flashloan_base`,\n\t\t\targuments: [tx.object(pool.address), tx.pure.u64(inputQuantity)],\n\t\t\ttypeArguments: [baseCoin.type, quoteCoin.type],\n\t\t});\n\t\treturn [baseCoinResult, flashLoan] as const;\n\t};\n\n\t/**\n\t * @description Return base asset to the pool after a flash loan.\n\t * @param {string} poolKey The key to identify the pool\n\t * @param {number} borrowAmount The amount of the base asset to return\n\t * @param {TransactionObjectArgument} baseCoinInput Coin object representing the base asset to be returned\n\t * @param {TransactionObjectArgument} flashLoan FlashLoan object representing the loan to be settled\n\t * @returns A function that takes a Transaction object\n\t */\n\treturnBaseAsset =\n\t\t(\n\t\t\tpoolKey: string,\n\t\t\tborrowAmount: number,\n\t\t\tbaseCoinInput: TransactionObjectArgument,\n\t\t\tflashLoan: TransactionObjectArgument,\n\t\t) =>\n\t\t(tx: Transaction) => {\n\t\t\tconst pool = this.#config.getPool(poolKey);\n\t\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\t\t\tconst borrowScalar = baseCoin.scalar;\n\n\t\t\tconst [baseCoinReturn] = tx.splitCoins(baseCoinInput, [\n\t\t\t\ttx.pure.u64(Math.round(borrowAmount * borrowScalar)),\n\t\t\t]);\n\t\t\ttx.moveCall({\n\t\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::return_flashloan_base`,\n\t\t\t\targuments: [tx.object(pool.address), baseCoinReturn, flashLoan],\n\t\t\t\ttypeArguments: [baseCoin.type, quoteCoin.type],\n\t\t\t});\n\n\t\t\treturn baseCoinInput;\n\t\t};\n\n\t/**\n\t * @description Borrow quote asset from the pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @param {number} borrowAmount The amount to borrow\n\t * @returns A function that takes a Transaction object\n\t */\n\tborrowQuoteAsset = (poolKey: string, borrowAmount: number) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\t\tconst inputQuantity = Math.round(borrowAmount * quoteCoin.scalar);\n\t\tconst [quoteCoinResult, flashLoan] = tx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::borrow_flashloan_quote`,\n\t\t\targuments: [tx.object(pool.address), tx.pure.u64(inputQuantity)],\n\t\t\ttypeArguments: [baseCoin.type, quoteCoin.type],\n\t\t});\n\t\treturn [quoteCoinResult, flashLoan] as const;\n\t};\n\n\t/**\n\t * @description Return quote asset to the pool after a flash loan.\n\t * @param {string} poolKey The key to identify the pool\n\t * @param {number} borrowAmount The amount of the quote asset to return\n\t * @param {TransactionObjectArgument} quoteCoinInput Coin object representing the quote asset to be returned\n\t * @param {TransactionObjectArgument} flashLoan FlashLoan object representing the loan to be settled\n\t * @returns A function that takes a Transaction object\n\t */\n\treturnQuoteAsset =\n\t\t(\n\t\t\tpoolKey: string,\n\t\t\tborrowAmount: number,\n\t\t\tquoteCoinInput: TransactionObjectArgument,\n\t\t\tflashLoan: TransactionObjectArgument,\n\t\t) =>\n\t\t(tx: Transaction) => {\n\t\t\tconst pool = this.#config.getPool(poolKey);\n\t\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\t\t\tconst borrowScalar = quoteCoin.scalar;\n\n\t\t\tconst [quoteCoinReturn] = tx.splitCoins(quoteCoinInput, [\n\t\t\t\ttx.pure.u64(Math.round(borrowAmount * borrowScalar)),\n\t\t\t]);\n\t\t\ttx.moveCall({\n\t\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::return_flashloan_quote`,\n\t\t\t\targuments: [tx.object(pool.address), quoteCoinReturn, flashLoan],\n\t\t\t\ttypeArguments: [baseCoin.type, quoteCoin.type],\n\t\t\t});\n\n\t\t\treturn quoteCoinInput;\n\t\t};\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,42 @@
1
+ import type { Transaction } from '@haneullabs/haneul/transactions';
2
+ import type { ProposalParams } from '../types/index.js';
3
+ import type { DeepBookConfig } from '../utils/config.js';
4
+ /**
5
+ * GovernanceContract class for managing governance operations in DeepBook.
6
+ */
7
+ export declare class GovernanceContract {
8
+ #private;
9
+ /**
10
+ * @param {DeepBookConfig} config Configuration for GovernanceContract
11
+ */
12
+ constructor(config: DeepBookConfig);
13
+ /**
14
+ * @description Stake a specified amount in the pool
15
+ * @param {string} poolKey The key to identify the pool
16
+ * @param {string} balanceManagerKey The key to identify the BalanceManager
17
+ * @param {number} stakeAmount The amount to stake
18
+ * @returns A function that takes a Transaction object
19
+ */
20
+ stake: (poolKey: string, balanceManagerKey: string, stakeAmount: number) => (tx: Transaction) => void;
21
+ /**
22
+ * @description Unstake from the pool
23
+ * @param {string} poolKey The key to identify the pool
24
+ * @param {string} balanceManagerKey The key to identify the BalanceManager
25
+ * @returns A function that takes a Transaction object
26
+ */
27
+ unstake: (poolKey: string, balanceManagerKey: string) => (tx: Transaction) => void;
28
+ /**
29
+ * @description Submit a governance proposal
30
+ * @param {ProposalParams} params Parameters for the proposal
31
+ * @returns A function that takes a Transaction object
32
+ */
33
+ submitProposal: (params: ProposalParams) => (tx: Transaction) => void;
34
+ /**
35
+ * @description Vote on a proposal
36
+ * @param {string} poolKey The key to identify the pool
37
+ * @param {string} balanceManagerKey The key to identify the BalanceManager
38
+ * @param {string} proposal_id The ID of the proposal to vote on
39
+ * @returns A function that takes a Transaction object
40
+ */
41
+ vote: (poolKey: string, balanceManagerKey: string, proposal_id: string) => (tx: Transaction) => void;
42
+ }