@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,532 @@
1
+ // Copyright (c) Mysten Labs, Inc.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ /**
5
+ * The BalanceManager is a shared object that holds all of the balances for
6
+ * different assets. A combination of `BalanceManager` and `TradeProof` are passed
7
+ * into a pool to perform trades. A `TradeProof` can be generated in two ways: by
8
+ * the owner directly, or by any `TradeCap` owner. The owner can generate a
9
+ * `TradeProof` without the risk of equivocation. The `TradeCap` owner, due to it
10
+ * being an owned object, risks equivocation when generating a `TradeProof`.
11
+ * Generally, a high frequency trading engine will trade as the default owner.
12
+ */
13
+
14
+ import { MoveStruct, normalizeMoveArguments } from '../utils/index.js';
15
+ import type { RawTransactionArgument } from '../utils/index.js';
16
+ import { bcs } from '@haneullabs/haneul/bcs';
17
+ import type { Transaction } from '@haneullabs/haneul/transactions';
18
+ import * as object from './deps/sui/object.js';
19
+ import * as bag from './deps/sui/bag.js';
20
+ import * as vec_set from './deps/sui/vec_set.js';
21
+ import * as type_name from './deps/std/type_name.js';
22
+ const $moduleName = '@deepbook/core::balance_manager';
23
+ export const BalanceManager = new MoveStruct({
24
+ name: `${$moduleName}::BalanceManager`,
25
+ fields: {
26
+ id: object.UID,
27
+ owner: bcs.Address,
28
+ balances: bag.Bag,
29
+ allow_listed: vec_set.VecSet(bcs.Address),
30
+ },
31
+ });
32
+ export const BalanceManagerEvent = new MoveStruct({
33
+ name: `${$moduleName}::BalanceManagerEvent`,
34
+ fields: {
35
+ balance_manager_id: bcs.Address,
36
+ owner: bcs.Address,
37
+ },
38
+ });
39
+ export const BalanceEvent = new MoveStruct({
40
+ name: `${$moduleName}::BalanceEvent`,
41
+ fields: {
42
+ balance_manager_id: bcs.Address,
43
+ asset: type_name.TypeName,
44
+ amount: bcs.u64(),
45
+ deposit: bcs.bool(),
46
+ },
47
+ });
48
+ export const BalanceKey = new MoveStruct({
49
+ name: `${$moduleName}::BalanceKey`,
50
+ fields: {
51
+ dummy_field: bcs.bool(),
52
+ },
53
+ });
54
+ export const TradeCap = new MoveStruct({
55
+ name: `${$moduleName}::TradeCap`,
56
+ fields: {
57
+ id: object.UID,
58
+ balance_manager_id: bcs.Address,
59
+ },
60
+ });
61
+ export const DepositCap = new MoveStruct({
62
+ name: `${$moduleName}::DepositCap`,
63
+ fields: {
64
+ id: object.UID,
65
+ balance_manager_id: bcs.Address,
66
+ },
67
+ });
68
+ export const WithdrawCap = new MoveStruct({
69
+ name: `${$moduleName}::WithdrawCap`,
70
+ fields: {
71
+ id: object.UID,
72
+ balance_manager_id: bcs.Address,
73
+ },
74
+ });
75
+ export const TradeProof = new MoveStruct({
76
+ name: `${$moduleName}::TradeProof`,
77
+ fields: {
78
+ balance_manager_id: bcs.Address,
79
+ trader: bcs.Address,
80
+ },
81
+ });
82
+ export interface NewOptions {
83
+ package?: string;
84
+ arguments?: [];
85
+ }
86
+ export function _new(options: NewOptions = {}) {
87
+ const packageAddress = options.package ?? '@deepbook/core';
88
+ return (tx: Transaction) =>
89
+ tx.moveCall({
90
+ package: packageAddress,
91
+ module: 'balance_manager',
92
+ function: 'new',
93
+ });
94
+ }
95
+ export interface NewWithOwnerArguments {
96
+ Owner: RawTransactionArgument<string>;
97
+ }
98
+ export interface NewWithOwnerOptions {
99
+ package?: string;
100
+ arguments: NewWithOwnerArguments | [Owner: RawTransactionArgument<string>];
101
+ }
102
+ export function newWithOwner(options: NewWithOwnerOptions) {
103
+ const packageAddress = options.package ?? '@deepbook/core';
104
+ const argumentsTypes = ['address'] satisfies string[];
105
+ const parameterNames = ['Owner'];
106
+ return (tx: Transaction) =>
107
+ tx.moveCall({
108
+ package: packageAddress,
109
+ module: 'balance_manager',
110
+ function: 'new_with_owner',
111
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
112
+ });
113
+ }
114
+ export interface NewWithCustomOwnerArguments {
115
+ owner: RawTransactionArgument<string>;
116
+ }
117
+ export interface NewWithCustomOwnerOptions {
118
+ package?: string;
119
+ arguments: NewWithCustomOwnerArguments | [owner: RawTransactionArgument<string>];
120
+ }
121
+ /** Create a new balance manager with an owner. */
122
+ export function newWithCustomOwner(options: NewWithCustomOwnerOptions) {
123
+ const packageAddress = options.package ?? '@deepbook/core';
124
+ const argumentsTypes = ['address'] satisfies string[];
125
+ const parameterNames = ['owner'];
126
+ return (tx: Transaction) =>
127
+ tx.moveCall({
128
+ package: packageAddress,
129
+ module: 'balance_manager',
130
+ function: 'new_with_custom_owner',
131
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
132
+ });
133
+ }
134
+ export interface NewWithCustomOwnerAndCapsArguments {
135
+ owner: RawTransactionArgument<string>;
136
+ }
137
+ export interface NewWithCustomOwnerAndCapsOptions {
138
+ package?: string;
139
+ arguments: NewWithCustomOwnerAndCapsArguments | [owner: RawTransactionArgument<string>];
140
+ }
141
+ export function newWithCustomOwnerAndCaps(options: NewWithCustomOwnerAndCapsOptions) {
142
+ const packageAddress = options.package ?? '@deepbook/core';
143
+ const argumentsTypes = ['address'] satisfies string[];
144
+ const parameterNames = ['owner'];
145
+ return (tx: Transaction) =>
146
+ tx.moveCall({
147
+ package: packageAddress,
148
+ module: 'balance_manager',
149
+ function: 'new_with_custom_owner_and_caps',
150
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
151
+ });
152
+ }
153
+ export interface BalanceArguments {
154
+ balanceManager: RawTransactionArgument<string>;
155
+ }
156
+ export interface BalanceOptions {
157
+ package?: string;
158
+ arguments: BalanceArguments | [balanceManager: RawTransactionArgument<string>];
159
+ typeArguments: [string];
160
+ }
161
+ /** Returns the balance of a Coin in a balance manager. */
162
+ export function balance(options: BalanceOptions) {
163
+ const packageAddress = options.package ?? '@deepbook/core';
164
+ const argumentsTypes = [`${packageAddress}::balance_manager::BalanceManager`] satisfies string[];
165
+ const parameterNames = ['balanceManager'];
166
+ return (tx: Transaction) =>
167
+ tx.moveCall({
168
+ package: packageAddress,
169
+ module: 'balance_manager',
170
+ function: 'balance',
171
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
172
+ typeArguments: options.typeArguments,
173
+ });
174
+ }
175
+ export interface MintTradeCapArguments {
176
+ balanceManager: RawTransactionArgument<string>;
177
+ }
178
+ export interface MintTradeCapOptions {
179
+ package?: string;
180
+ arguments: MintTradeCapArguments | [balanceManager: RawTransactionArgument<string>];
181
+ }
182
+ /** Mint a `TradeCap`, only owner can mint a `TradeCap`. */
183
+ export function mintTradeCap(options: MintTradeCapOptions) {
184
+ const packageAddress = options.package ?? '@deepbook/core';
185
+ const argumentsTypes = [`${packageAddress}::balance_manager::BalanceManager`] satisfies string[];
186
+ const parameterNames = ['balanceManager'];
187
+ return (tx: Transaction) =>
188
+ tx.moveCall({
189
+ package: packageAddress,
190
+ module: 'balance_manager',
191
+ function: 'mint_trade_cap',
192
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
193
+ });
194
+ }
195
+ export interface MintDepositCapArguments {
196
+ balanceManager: RawTransactionArgument<string>;
197
+ }
198
+ export interface MintDepositCapOptions {
199
+ package?: string;
200
+ arguments: MintDepositCapArguments | [balanceManager: RawTransactionArgument<string>];
201
+ }
202
+ /** Mint a `DepositCap`, only owner can mint. */
203
+ export function mintDepositCap(options: MintDepositCapOptions) {
204
+ const packageAddress = options.package ?? '@deepbook/core';
205
+ const argumentsTypes = [`${packageAddress}::balance_manager::BalanceManager`] satisfies string[];
206
+ const parameterNames = ['balanceManager'];
207
+ return (tx: Transaction) =>
208
+ tx.moveCall({
209
+ package: packageAddress,
210
+ module: 'balance_manager',
211
+ function: 'mint_deposit_cap',
212
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
213
+ });
214
+ }
215
+ export interface MintWithdrawCapArguments {
216
+ balanceManager: RawTransactionArgument<string>;
217
+ }
218
+ export interface MintWithdrawCapOptions {
219
+ package?: string;
220
+ arguments: MintWithdrawCapArguments | [balanceManager: RawTransactionArgument<string>];
221
+ }
222
+ /** Mint a `WithdrawCap`, only owner can mint. */
223
+ export function mintWithdrawCap(options: MintWithdrawCapOptions) {
224
+ const packageAddress = options.package ?? '@deepbook/core';
225
+ const argumentsTypes = [`${packageAddress}::balance_manager::BalanceManager`] satisfies string[];
226
+ const parameterNames = ['balanceManager'];
227
+ return (tx: Transaction) =>
228
+ tx.moveCall({
229
+ package: packageAddress,
230
+ module: 'balance_manager',
231
+ function: 'mint_withdraw_cap',
232
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
233
+ });
234
+ }
235
+ export interface RevokeTradeCapArguments {
236
+ balanceManager: RawTransactionArgument<string>;
237
+ tradeCapId: RawTransactionArgument<string>;
238
+ }
239
+ export interface RevokeTradeCapOptions {
240
+ package?: string;
241
+ arguments:
242
+ | RevokeTradeCapArguments
243
+ | [balanceManager: RawTransactionArgument<string>, tradeCapId: RawTransactionArgument<string>];
244
+ }
245
+ /**
246
+ * Revoke a `TradeCap`. Only the owner can revoke a `TradeCap`. Can also be used to
247
+ * revoke `DepositCap` and `WithdrawCap`.
248
+ */
249
+ export function revokeTradeCap(options: RevokeTradeCapOptions) {
250
+ const packageAddress = options.package ?? '@deepbook/core';
251
+ const argumentsTypes = [
252
+ `${packageAddress}::balance_manager::BalanceManager`,
253
+ '0x0000000000000000000000000000000000000000000000000000000000000002::object::ID',
254
+ ] satisfies string[];
255
+ const parameterNames = ['balanceManager', 'tradeCapId'];
256
+ return (tx: Transaction) =>
257
+ tx.moveCall({
258
+ package: packageAddress,
259
+ module: 'balance_manager',
260
+ function: 'revoke_trade_cap',
261
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
262
+ });
263
+ }
264
+ export interface GenerateProofAsOwnerArguments {
265
+ balanceManager: RawTransactionArgument<string>;
266
+ }
267
+ export interface GenerateProofAsOwnerOptions {
268
+ package?: string;
269
+ arguments: GenerateProofAsOwnerArguments | [balanceManager: RawTransactionArgument<string>];
270
+ }
271
+ /**
272
+ * Generate a `TradeProof` by the owner. The owner does not require a capability
273
+ * and can generate TradeProofs without the risk of equivocation.
274
+ */
275
+ export function generateProofAsOwner(options: GenerateProofAsOwnerOptions) {
276
+ const packageAddress = options.package ?? '@deepbook/core';
277
+ const argumentsTypes = [`${packageAddress}::balance_manager::BalanceManager`] satisfies string[];
278
+ const parameterNames = ['balanceManager'];
279
+ return (tx: Transaction) =>
280
+ tx.moveCall({
281
+ package: packageAddress,
282
+ module: 'balance_manager',
283
+ function: 'generate_proof_as_owner',
284
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
285
+ });
286
+ }
287
+ export interface GenerateProofAsTraderArguments {
288
+ balanceManager: RawTransactionArgument<string>;
289
+ tradeCap: RawTransactionArgument<string>;
290
+ }
291
+ export interface GenerateProofAsTraderOptions {
292
+ package?: string;
293
+ arguments:
294
+ | GenerateProofAsTraderArguments
295
+ | [balanceManager: RawTransactionArgument<string>, tradeCap: RawTransactionArgument<string>];
296
+ }
297
+ /**
298
+ * Generate a `TradeProof` with a `TradeCap`. Risk of equivocation since `TradeCap`
299
+ * is an owned object.
300
+ */
301
+ export function generateProofAsTrader(options: GenerateProofAsTraderOptions) {
302
+ const packageAddress = options.package ?? '@deepbook/core';
303
+ const argumentsTypes = [
304
+ `${packageAddress}::balance_manager::BalanceManager`,
305
+ `${packageAddress}::balance_manager::TradeCap`,
306
+ ] satisfies string[];
307
+ const parameterNames = ['balanceManager', 'tradeCap'];
308
+ return (tx: Transaction) =>
309
+ tx.moveCall({
310
+ package: packageAddress,
311
+ module: 'balance_manager',
312
+ function: 'generate_proof_as_trader',
313
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
314
+ });
315
+ }
316
+ export interface DepositArguments {
317
+ balanceManager: RawTransactionArgument<string>;
318
+ coin: RawTransactionArgument<string>;
319
+ }
320
+ export interface DepositOptions {
321
+ package?: string;
322
+ arguments:
323
+ | DepositArguments
324
+ | [balanceManager: RawTransactionArgument<string>, coin: RawTransactionArgument<string>];
325
+ typeArguments: [string];
326
+ }
327
+ /** Deposit funds to a balance manager. Only owner can call this directly. */
328
+ export function deposit(options: DepositOptions) {
329
+ const packageAddress = options.package ?? '@deepbook/core';
330
+ const argumentsTypes = [
331
+ `${packageAddress}::balance_manager::BalanceManager`,
332
+ `0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<${options.typeArguments[0]}>`,
333
+ ] satisfies string[];
334
+ const parameterNames = ['balanceManager', 'coin'];
335
+ return (tx: Transaction) =>
336
+ tx.moveCall({
337
+ package: packageAddress,
338
+ module: 'balance_manager',
339
+ function: 'deposit',
340
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
341
+ typeArguments: options.typeArguments,
342
+ });
343
+ }
344
+ export interface DepositWithCapArguments {
345
+ balanceManager: RawTransactionArgument<string>;
346
+ depositCap: RawTransactionArgument<string>;
347
+ coin: RawTransactionArgument<string>;
348
+ }
349
+ export interface DepositWithCapOptions {
350
+ package?: string;
351
+ arguments:
352
+ | DepositWithCapArguments
353
+ | [
354
+ balanceManager: RawTransactionArgument<string>,
355
+ depositCap: RawTransactionArgument<string>,
356
+ coin: RawTransactionArgument<string>,
357
+ ];
358
+ typeArguments: [string];
359
+ }
360
+ /** Deposit funds into a balance manager by a `DepositCap` owner. */
361
+ export function depositWithCap(options: DepositWithCapOptions) {
362
+ const packageAddress = options.package ?? '@deepbook/core';
363
+ const argumentsTypes = [
364
+ `${packageAddress}::balance_manager::BalanceManager`,
365
+ `${packageAddress}::balance_manager::DepositCap`,
366
+ `0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<${options.typeArguments[0]}>`,
367
+ ] satisfies string[];
368
+ const parameterNames = ['balanceManager', 'depositCap', 'coin'];
369
+ return (tx: Transaction) =>
370
+ tx.moveCall({
371
+ package: packageAddress,
372
+ module: 'balance_manager',
373
+ function: 'deposit_with_cap',
374
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
375
+ typeArguments: options.typeArguments,
376
+ });
377
+ }
378
+ export interface WithdrawWithCapArguments {
379
+ balanceManager: RawTransactionArgument<string>;
380
+ withdrawCap: RawTransactionArgument<string>;
381
+ withdrawAmount: RawTransactionArgument<number | bigint>;
382
+ }
383
+ export interface WithdrawWithCapOptions {
384
+ package?: string;
385
+ arguments:
386
+ | WithdrawWithCapArguments
387
+ | [
388
+ balanceManager: RawTransactionArgument<string>,
389
+ withdrawCap: RawTransactionArgument<string>,
390
+ withdrawAmount: RawTransactionArgument<number | bigint>,
391
+ ];
392
+ typeArguments: [string];
393
+ }
394
+ /** Withdraw funds from a balance manager by a `WithdrawCap` owner. */
395
+ export function withdrawWithCap(options: WithdrawWithCapOptions) {
396
+ const packageAddress = options.package ?? '@deepbook/core';
397
+ const argumentsTypes = [
398
+ `${packageAddress}::balance_manager::BalanceManager`,
399
+ `${packageAddress}::balance_manager::WithdrawCap`,
400
+ 'u64',
401
+ ] satisfies string[];
402
+ const parameterNames = ['balanceManager', 'withdrawCap', 'withdrawAmount'];
403
+ return (tx: Transaction) =>
404
+ tx.moveCall({
405
+ package: packageAddress,
406
+ module: 'balance_manager',
407
+ function: 'withdraw_with_cap',
408
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
409
+ typeArguments: options.typeArguments,
410
+ });
411
+ }
412
+ export interface WithdrawArguments {
413
+ balanceManager: RawTransactionArgument<string>;
414
+ withdrawAmount: RawTransactionArgument<number | bigint>;
415
+ }
416
+ export interface WithdrawOptions {
417
+ package?: string;
418
+ arguments:
419
+ | WithdrawArguments
420
+ | [
421
+ balanceManager: RawTransactionArgument<string>,
422
+ withdrawAmount: RawTransactionArgument<number | bigint>,
423
+ ];
424
+ typeArguments: [string];
425
+ }
426
+ /**
427
+ * Withdraw funds from a balance_manager. Only owner can call this directly. If
428
+ * withdraw_all is true, amount is ignored and full balance withdrawn. If
429
+ * withdraw_all is false, withdraw_amount will be withdrawn.
430
+ */
431
+ export function withdraw(options: WithdrawOptions) {
432
+ const packageAddress = options.package ?? '@deepbook/core';
433
+ const argumentsTypes = [
434
+ `${packageAddress}::balance_manager::BalanceManager`,
435
+ 'u64',
436
+ ] satisfies string[];
437
+ const parameterNames = ['balanceManager', 'withdrawAmount'];
438
+ return (tx: Transaction) =>
439
+ tx.moveCall({
440
+ package: packageAddress,
441
+ module: 'balance_manager',
442
+ function: 'withdraw',
443
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
444
+ typeArguments: options.typeArguments,
445
+ });
446
+ }
447
+ export interface WithdrawAllArguments {
448
+ balanceManager: RawTransactionArgument<string>;
449
+ }
450
+ export interface WithdrawAllOptions {
451
+ package?: string;
452
+ arguments: WithdrawAllArguments | [balanceManager: RawTransactionArgument<string>];
453
+ typeArguments: [string];
454
+ }
455
+ export function withdrawAll(options: WithdrawAllOptions) {
456
+ const packageAddress = options.package ?? '@deepbook/core';
457
+ const argumentsTypes = [`${packageAddress}::balance_manager::BalanceManager`] satisfies string[];
458
+ const parameterNames = ['balanceManager'];
459
+ return (tx: Transaction) =>
460
+ tx.moveCall({
461
+ package: packageAddress,
462
+ module: 'balance_manager',
463
+ function: 'withdraw_all',
464
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
465
+ typeArguments: options.typeArguments,
466
+ });
467
+ }
468
+ export interface ValidateProofArguments {
469
+ balanceManager: RawTransactionArgument<string>;
470
+ proof: RawTransactionArgument<string>;
471
+ }
472
+ export interface ValidateProofOptions {
473
+ package?: string;
474
+ arguments:
475
+ | ValidateProofArguments
476
+ | [balanceManager: RawTransactionArgument<string>, proof: RawTransactionArgument<string>];
477
+ }
478
+ export function validateProof(options: ValidateProofOptions) {
479
+ const packageAddress = options.package ?? '@deepbook/core';
480
+ const argumentsTypes = [
481
+ `${packageAddress}::balance_manager::BalanceManager`,
482
+ `${packageAddress}::balance_manager::TradeProof`,
483
+ ] satisfies string[];
484
+ const parameterNames = ['balanceManager', 'proof'];
485
+ return (tx: Transaction) =>
486
+ tx.moveCall({
487
+ package: packageAddress,
488
+ module: 'balance_manager',
489
+ function: 'validate_proof',
490
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
491
+ });
492
+ }
493
+ export interface OwnerArguments {
494
+ balanceManager: RawTransactionArgument<string>;
495
+ }
496
+ export interface OwnerOptions {
497
+ package?: string;
498
+ arguments: OwnerArguments | [balanceManager: RawTransactionArgument<string>];
499
+ }
500
+ /** Returns the owner of the balance_manager. */
501
+ export function owner(options: OwnerOptions) {
502
+ const packageAddress = options.package ?? '@deepbook/core';
503
+ const argumentsTypes = [`${packageAddress}::balance_manager::BalanceManager`] satisfies string[];
504
+ const parameterNames = ['balanceManager'];
505
+ return (tx: Transaction) =>
506
+ tx.moveCall({
507
+ package: packageAddress,
508
+ module: 'balance_manager',
509
+ function: 'owner',
510
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
511
+ });
512
+ }
513
+ export interface IdArguments {
514
+ balanceManager: RawTransactionArgument<string>;
515
+ }
516
+ export interface IdOptions {
517
+ package?: string;
518
+ arguments: IdArguments | [balanceManager: RawTransactionArgument<string>];
519
+ }
520
+ /** Returns the owner of the balance_manager. */
521
+ export function id(options: IdOptions) {
522
+ const packageAddress = options.package ?? '@deepbook/core';
523
+ const argumentsTypes = [`${packageAddress}::balance_manager::BalanceManager`] satisfies string[];
524
+ const parameterNames = ['balanceManager'];
525
+ return (tx: Transaction) =>
526
+ tx.moveCall({
527
+ package: packageAddress,
528
+ module: 'balance_manager',
529
+ function: 'id',
530
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
531
+ });
532
+ }
@@ -0,0 +1,19 @@
1
+ // Copyright (c) Mysten Labs, Inc.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ /**
5
+ * `Balances` represents the three assets make up a pool: base, quote, and deep.
6
+ * Whenever funds are moved, they are moved in the form of `Balances`.
7
+ */
8
+
9
+ import { MoveStruct } from '../utils/index.js';
10
+ import { bcs } from '@haneullabs/haneul/bcs';
11
+ const $moduleName = '@deepbook/core::balances';
12
+ export const Balances = new MoveStruct({
13
+ name: `${$moduleName}::Balances`,
14
+ fields: {
15
+ base: bcs.u64(),
16
+ quote: bcs.u64(),
17
+ deep: bcs.u64(),
18
+ },
19
+ });
@@ -0,0 +1,74 @@
1
+ // Copyright (c) Mysten Labs, Inc.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ /**
5
+ * BigVector is an arbitrary sized vector-like data structure, implemented using an
6
+ * on-chain B+ Tree to support almost constant time (log base max_fan_out) random
7
+ * access, insertion and removal.
8
+ *
9
+ * Iteration is supported by exposing access to leaf nodes (slices). Finding the
10
+ * initial slice can be done in almost constant time, and subsequently finding the
11
+ * previous or next slice can also be done in constant time.
12
+ *
13
+ * Nodes in the B+ Tree are stored as individual dynamic fields hanging off the
14
+ * `BigVector`.
15
+ *
16
+ * Note: The index type is `u128`, but the length is stored as `u64` because the
17
+ * expectation is that indices are sparsely distributed.
18
+ */
19
+
20
+ import { MoveStruct } from '../utils/index.js';
21
+ import { bcs } from '@haneullabs/haneul/bcs';
22
+ import type { BcsType } from '@haneullabs/haneul/bcs';
23
+ import * as object from './deps/sui/object.js';
24
+ const $moduleName = '@deepbook/core::big_vector';
25
+ export const BigVector = new MoveStruct({
26
+ name: `${$moduleName}::BigVector`,
27
+ fields: {
28
+ id: object.UID,
29
+ /** How deep the tree structure is. */
30
+ depth: bcs.u8(),
31
+ /**
32
+ * Total number of elements that this vector contains, not including gaps in the
33
+ * vector.
34
+ */
35
+ length: bcs.u64(),
36
+ /** Max size of leaf nodes (counted in number of elements, `E`). */
37
+ max_slice_size: bcs.u64(),
38
+ /** Max size of interior nodes (counted in number of children). */
39
+ max_fan_out: bcs.u64(),
40
+ /** ID of the tree's root structure. Value of `NO_SLICE` means there's no root. */
41
+ root_id: bcs.u64(),
42
+ /** The last node ID that was allocated. */
43
+ last_id: bcs.u64(),
44
+ },
45
+ });
46
+ /**
47
+ * A node in the B+ tree.
48
+ *
49
+ * If representing a leaf node, there are as many keys as values (such that
50
+ * `keys[i]` is the key corresponding to `vals[i]`).
51
+ *
52
+ * A `Slice<u64>` can also represent an interior node, in which case `vals` contain
53
+ * the IDs of its children and `keys` represent the partitions between children.
54
+ * There will be one fewer key than value in this configuration.
55
+ */
56
+ export function Slice<E extends BcsType<any>>(...typeParameters: [E]) {
57
+ return new MoveStruct({
58
+ name: `${$moduleName}::Slice<${typeParameters[0].name as E['name']}>`,
59
+ fields: {
60
+ /** Previous node in the intrusive doubly-linked list data structure. */
61
+ prev: bcs.u64(),
62
+ /** Next node in the intrusive doubly-linked list data structure. */
63
+ next: bcs.u64(),
64
+ keys: bcs.vector(bcs.u128()),
65
+ vals: bcs.vector(typeParameters[0]),
66
+ },
67
+ });
68
+ }
69
+ export const SliceRef = new MoveStruct({
70
+ name: `${$moduleName}::SliceRef`,
71
+ fields: {
72
+ ix: bcs.u64(),
73
+ },
74
+ });
@@ -0,0 +1,24 @@
1
+ // Copyright (c) Mysten Labs, Inc.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ /**
5
+ * The book module contains the `Book` struct which represents the order book. All
6
+ * order book operations are defined in this module.
7
+ */
8
+
9
+ import { MoveStruct } from '../utils/index.js';
10
+ import { bcs } from '@haneullabs/haneul/bcs';
11
+ import * as big_vector from './big_vector.js';
12
+ const $moduleName = '@deepbook/core::book';
13
+ export const Book = new MoveStruct({
14
+ name: `${$moduleName}::Book`,
15
+ fields: {
16
+ tick_size: bcs.u64(),
17
+ lot_size: bcs.u64(),
18
+ min_size: bcs.u64(),
19
+ bids: big_vector.BigVector,
20
+ asks: big_vector.BigVector,
21
+ next_bid_order_id: bcs.u64(),
22
+ next_ask_order_id: bcs.u64(),
23
+ },
24
+ });