@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,242 @@
1
+ // Copyright (c) Mysten Labs, Inc.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ /** Registry holds all created pools. */
5
+
6
+ import { MoveStruct, normalizeMoveArguments } from '../utils/index.js';
7
+ import type { RawTransactionArgument } from '../utils/index.js';
8
+ import { bcs } from '@haneullabs/haneul/bcs';
9
+ import type { Transaction } from '@haneullabs/haneul/transactions';
10
+ import * as object from './deps/sui/object.js';
11
+ import * as versioned from './deps/sui/versioned.js';
12
+ import * as vec_set from './deps/sui/vec_set.js';
13
+ import * as bag from './deps/sui/bag.js';
14
+ import * as type_name from './deps/std/type_name.js';
15
+ const $moduleName = '@deepbook/core::registry';
16
+ export const REGISTRY = new MoveStruct({
17
+ name: `${$moduleName}::REGISTRY`,
18
+ fields: {
19
+ dummy_field: bcs.bool(),
20
+ },
21
+ });
22
+ export const DeepbookAdminCap = new MoveStruct({
23
+ name: `${$moduleName}::DeepbookAdminCap`,
24
+ fields: {
25
+ id: object.UID,
26
+ },
27
+ });
28
+ export const Registry = new MoveStruct({
29
+ name: `${$moduleName}::Registry`,
30
+ fields: {
31
+ id: object.UID,
32
+ inner: versioned.Versioned,
33
+ },
34
+ });
35
+ export const RegistryInner = new MoveStruct({
36
+ name: `${$moduleName}::RegistryInner`,
37
+ fields: {
38
+ allowed_versions: vec_set.VecSet(bcs.u64()),
39
+ pools: bag.Bag,
40
+ treasury_address: bcs.Address,
41
+ },
42
+ });
43
+ export const PoolKey = new MoveStruct({
44
+ name: `${$moduleName}::PoolKey`,
45
+ fields: {
46
+ base: type_name.TypeName,
47
+ quote: type_name.TypeName,
48
+ },
49
+ });
50
+ export const StableCoinKey = new MoveStruct({
51
+ name: `${$moduleName}::StableCoinKey`,
52
+ fields: {
53
+ dummy_field: bcs.bool(),
54
+ },
55
+ });
56
+ export interface SetTreasuryAddressArguments {
57
+ self: RawTransactionArgument<string>;
58
+ treasuryAddress: RawTransactionArgument<string>;
59
+ Cap: RawTransactionArgument<string>;
60
+ }
61
+ export interface SetTreasuryAddressOptions {
62
+ package?: string;
63
+ arguments:
64
+ | SetTreasuryAddressArguments
65
+ | [
66
+ self: RawTransactionArgument<string>,
67
+ treasuryAddress: RawTransactionArgument<string>,
68
+ Cap: RawTransactionArgument<string>,
69
+ ];
70
+ }
71
+ /**
72
+ * Sets the treasury address where the pool creation fees are sent By default, the
73
+ * treasury address is the publisher of the deepbook package
74
+ */
75
+ export function setTreasuryAddress(options: SetTreasuryAddressOptions) {
76
+ const packageAddress = options.package ?? '@deepbook/core';
77
+ const argumentsTypes = [
78
+ `${packageAddress}::registry::Registry`,
79
+ 'address',
80
+ `${packageAddress}::registry::DeepbookAdminCap`,
81
+ ] satisfies string[];
82
+ const parameterNames = ['self', 'treasuryAddress', 'Cap'];
83
+ return (tx: Transaction) =>
84
+ tx.moveCall({
85
+ package: packageAddress,
86
+ module: 'registry',
87
+ function: 'set_treasury_address',
88
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
89
+ });
90
+ }
91
+ export interface EnableVersionArguments {
92
+ self: RawTransactionArgument<string>;
93
+ version: RawTransactionArgument<number | bigint>;
94
+ Cap: RawTransactionArgument<string>;
95
+ }
96
+ export interface EnableVersionOptions {
97
+ package?: string;
98
+ arguments:
99
+ | EnableVersionArguments
100
+ | [
101
+ self: RawTransactionArgument<string>,
102
+ version: RawTransactionArgument<number | bigint>,
103
+ Cap: RawTransactionArgument<string>,
104
+ ];
105
+ }
106
+ /**
107
+ * Enables a package version Only Admin can enable a package version This function
108
+ * does not have version restrictions
109
+ */
110
+ export function enableVersion(options: EnableVersionOptions) {
111
+ const packageAddress = options.package ?? '@deepbook/core';
112
+ const argumentsTypes = [
113
+ `${packageAddress}::registry::Registry`,
114
+ 'u64',
115
+ `${packageAddress}::registry::DeepbookAdminCap`,
116
+ ] satisfies string[];
117
+ const parameterNames = ['self', 'version', 'Cap'];
118
+ return (tx: Transaction) =>
119
+ tx.moveCall({
120
+ package: packageAddress,
121
+ module: 'registry',
122
+ function: 'enable_version',
123
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
124
+ });
125
+ }
126
+ export interface DisableVersionArguments {
127
+ self: RawTransactionArgument<string>;
128
+ version: RawTransactionArgument<number | bigint>;
129
+ Cap: RawTransactionArgument<string>;
130
+ }
131
+ export interface DisableVersionOptions {
132
+ package?: string;
133
+ arguments:
134
+ | DisableVersionArguments
135
+ | [
136
+ self: RawTransactionArgument<string>,
137
+ version: RawTransactionArgument<number | bigint>,
138
+ Cap: RawTransactionArgument<string>,
139
+ ];
140
+ }
141
+ /**
142
+ * Disables a package version Only Admin can disable a package version This
143
+ * function does not have version restrictions
144
+ */
145
+ export function disableVersion(options: DisableVersionOptions) {
146
+ const packageAddress = options.package ?? '@deepbook/core';
147
+ const argumentsTypes = [
148
+ `${packageAddress}::registry::Registry`,
149
+ 'u64',
150
+ `${packageAddress}::registry::DeepbookAdminCap`,
151
+ ] satisfies string[];
152
+ const parameterNames = ['self', 'version', 'Cap'];
153
+ return (tx: Transaction) =>
154
+ tx.moveCall({
155
+ package: packageAddress,
156
+ module: 'registry',
157
+ function: 'disable_version',
158
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
159
+ });
160
+ }
161
+ export interface AddStablecoinArguments {
162
+ self: RawTransactionArgument<string>;
163
+ Cap: RawTransactionArgument<string>;
164
+ }
165
+ export interface AddStablecoinOptions {
166
+ package?: string;
167
+ arguments:
168
+ | AddStablecoinArguments
169
+ | [self: RawTransactionArgument<string>, Cap: RawTransactionArgument<string>];
170
+ typeArguments: [string];
171
+ }
172
+ /** Adds a stablecoin to the whitelist Only Admin can add stablecoin */
173
+ export function addStablecoin(options: AddStablecoinOptions) {
174
+ const packageAddress = options.package ?? '@deepbook/core';
175
+ const argumentsTypes = [
176
+ `${packageAddress}::registry::Registry`,
177
+ `${packageAddress}::registry::DeepbookAdminCap`,
178
+ ] satisfies string[];
179
+ const parameterNames = ['self', 'Cap'];
180
+ return (tx: Transaction) =>
181
+ tx.moveCall({
182
+ package: packageAddress,
183
+ module: 'registry',
184
+ function: 'add_stablecoin',
185
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
186
+ typeArguments: options.typeArguments,
187
+ });
188
+ }
189
+ export interface RemoveStablecoinArguments {
190
+ self: RawTransactionArgument<string>;
191
+ Cap: RawTransactionArgument<string>;
192
+ }
193
+ export interface RemoveStablecoinOptions {
194
+ package?: string;
195
+ arguments:
196
+ | RemoveStablecoinArguments
197
+ | [self: RawTransactionArgument<string>, Cap: RawTransactionArgument<string>];
198
+ typeArguments: [string];
199
+ }
200
+ /** Removes a stablecoin from the whitelist Only Admin can remove stablecoin */
201
+ export function removeStablecoin(options: RemoveStablecoinOptions) {
202
+ const packageAddress = options.package ?? '@deepbook/core';
203
+ const argumentsTypes = [
204
+ `${packageAddress}::registry::Registry`,
205
+ `${packageAddress}::registry::DeepbookAdminCap`,
206
+ ] satisfies string[];
207
+ const parameterNames = ['self', 'Cap'];
208
+ return (tx: Transaction) =>
209
+ tx.moveCall({
210
+ package: packageAddress,
211
+ module: 'registry',
212
+ function: 'remove_stablecoin',
213
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
214
+ typeArguments: options.typeArguments,
215
+ });
216
+ }
217
+ export interface IsStablecoinArguments {
218
+ self: RawTransactionArgument<string>;
219
+ stableType: RawTransactionArgument<string>;
220
+ }
221
+ export interface IsStablecoinOptions {
222
+ package?: string;
223
+ arguments:
224
+ | IsStablecoinArguments
225
+ | [self: RawTransactionArgument<string>, stableType: RawTransactionArgument<string>];
226
+ }
227
+ /** Returns whether the given coin is whitelisted */
228
+ export function isStablecoin(options: IsStablecoinOptions) {
229
+ const packageAddress = options.package ?? '@deepbook/core';
230
+ const argumentsTypes = [
231
+ `${packageAddress}::registry::Registry`,
232
+ '0x0000000000000000000000000000000000000000000000000000000000000001::type_name::TypeName',
233
+ ] satisfies string[];
234
+ const parameterNames = ['self', 'stableType'];
235
+ return (tx: Transaction) =>
236
+ tx.moveCall({
237
+ package: packageAddress,
238
+ module: 'registry',
239
+ function: 'is_stablecoin',
240
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
241
+ });
242
+ }
@@ -0,0 +1,74 @@
1
+ // Copyright (c) Mysten Labs, Inc.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ /**
5
+ * State module represents the current state of the pool. It maintains all the
6
+ * accounts, history, and governance information. It also processes all the
7
+ * transactions and updates the state accordingly.
8
+ */
9
+
10
+ import { MoveStruct } from '../utils/index.js';
11
+ import { bcs } from '@haneullabs/haneul/bcs';
12
+ import * as table from './deps/sui/table.js';
13
+ import * as history from './history.js';
14
+ import * as governance from './governance.js';
15
+ import * as balances from './balances.js';
16
+ const $moduleName = '@deepbook/core::state';
17
+ export const State = new MoveStruct({
18
+ name: `${$moduleName}::State`,
19
+ fields: {
20
+ accounts: table.Table,
21
+ history: history.History,
22
+ governance: governance.Governance,
23
+ },
24
+ });
25
+ export const StakeEvent = new MoveStruct({
26
+ name: `${$moduleName}::StakeEvent`,
27
+ fields: {
28
+ pool_id: bcs.Address,
29
+ balance_manager_id: bcs.Address,
30
+ epoch: bcs.u64(),
31
+ amount: bcs.u64(),
32
+ stake: bcs.bool(),
33
+ },
34
+ });
35
+ export const ProposalEvent = new MoveStruct({
36
+ name: `${$moduleName}::ProposalEvent`,
37
+ fields: {
38
+ pool_id: bcs.Address,
39
+ balance_manager_id: bcs.Address,
40
+ epoch: bcs.u64(),
41
+ taker_fee: bcs.u64(),
42
+ maker_fee: bcs.u64(),
43
+ stake_required: bcs.u64(),
44
+ },
45
+ });
46
+ export const VoteEvent = new MoveStruct({
47
+ name: `${$moduleName}::VoteEvent`,
48
+ fields: {
49
+ pool_id: bcs.Address,
50
+ balance_manager_id: bcs.Address,
51
+ epoch: bcs.u64(),
52
+ from_proposal_id: bcs.option(bcs.Address),
53
+ to_proposal_id: bcs.Address,
54
+ stake: bcs.u64(),
55
+ },
56
+ });
57
+ export const RebateEventV2 = new MoveStruct({
58
+ name: `${$moduleName}::RebateEventV2`,
59
+ fields: {
60
+ pool_id: bcs.Address,
61
+ balance_manager_id: bcs.Address,
62
+ epoch: bcs.u64(),
63
+ claim_amount: balances.Balances,
64
+ },
65
+ });
66
+ export const RebateEvent = new MoveStruct({
67
+ name: `${$moduleName}::RebateEvent`,
68
+ fields: {
69
+ pool_id: bcs.Address,
70
+ balance_manager_id: bcs.Address,
71
+ epoch: bcs.u64(),
72
+ claim_amount: bcs.u64(),
73
+ },
74
+ });
@@ -0,0 +1,16 @@
1
+ // Copyright (c) Mysten Labs, Inc.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ /** TradeParams module contains the trade parameters for a trading pair. */
5
+
6
+ import { MoveStruct } from '../utils/index.js';
7
+ import { bcs } from '@haneullabs/haneul/bcs';
8
+ const $moduleName = '@deepbook/core::trade_params';
9
+ export const TradeParams = new MoveStruct({
10
+ name: `${$moduleName}::TradeParams`,
11
+ fields: {
12
+ taker_fee: bcs.u64(),
13
+ maker_fee: bcs.u64(),
14
+ stake_required: bcs.u64(),
15
+ },
16
+ });
@@ -0,0 +1,37 @@
1
+ // Copyright (c) Mysten Labs, Inc.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ /**
5
+ * The vault holds all of the assets for this pool. At the end of all transaction
6
+ * processing, the vault is used to settle the balances for the user.
7
+ */
8
+
9
+ import { MoveStruct } from '../utils/index.js';
10
+ import { bcs } from '@haneullabs/haneul/bcs';
11
+ import * as balance from './deps/sui/balance.js';
12
+ import * as type_name from './deps/std/type_name.js';
13
+ const $moduleName = '@deepbook/core::vault';
14
+ export const Vault = new MoveStruct({
15
+ name: `${$moduleName}::Vault`,
16
+ fields: {
17
+ base_balance: balance.Balance,
18
+ quote_balance: balance.Balance,
19
+ deep_balance: balance.Balance,
20
+ },
21
+ });
22
+ export const FlashLoan = new MoveStruct({
23
+ name: `${$moduleName}::FlashLoan`,
24
+ fields: {
25
+ pool_id: bcs.Address,
26
+ borrow_quantity: bcs.u64(),
27
+ type_name: type_name.TypeName,
28
+ },
29
+ });
30
+ export const FlashLoanBorrowed = new MoveStruct({
31
+ name: `${$moduleName}::FlashLoanBorrowed`,
32
+ fields: {
33
+ pool_id: bcs.Address,
34
+ borrow_quantity: bcs.u64(),
35
+ type_name: type_name.TypeName,
36
+ },
37
+ });
@@ -0,0 +1,184 @@
1
+ // Copyright (c) Mysten Labs, Inc.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import type { BcsType, TypeTag } from '@haneullabs/haneul/bcs';
4
+ import { bcs, TypeTagSerializer, BcsStruct, BcsEnum, BcsTuple } from '@haneullabs/haneul/bcs';
5
+ import { normalizeHaneulAddress } from '@haneullabs/haneul/utils';
6
+ import type { TransactionArgument } from '@haneullabs/haneul/transactions';
7
+ import { isArgument } from '@haneullabs/haneul/transactions';
8
+ import { ValidationError, ErrorMessages } from '../../utils/errors.js';
9
+
10
+ const MOVE_STDLIB_ADDRESS = normalizeHaneulAddress('0x1');
11
+ const HANEUL_FRAMEWORK_ADDRESS = normalizeHaneulAddress('0x2');
12
+ const HANEUL_SYSTEM_ADDRESS = normalizeHaneulAddress('0x3');
13
+
14
+ export type RawTransactionArgument<T> = T | TransactionArgument;
15
+
16
+ /**
17
+ * @description Get the BCS schema for a given type tag
18
+ * @param {string | TypeTag} typeTag - The Move type tag to get the schema for
19
+ * @returns {BcsType<any> | null} The BCS schema if found, null otherwise
20
+ */
21
+ export function getPureBcsSchema(typeTag: string | TypeTag): BcsType<any> | null {
22
+ const parsedTag = typeof typeTag === 'string' ? TypeTagSerializer.parseFromStr(typeTag) : typeTag;
23
+
24
+ if ('u8' in parsedTag) {
25
+ return bcs.U8;
26
+ } else if ('u16' in parsedTag) {
27
+ return bcs.U16;
28
+ } else if ('u32' in parsedTag) {
29
+ return bcs.U32;
30
+ } else if ('u64' in parsedTag) {
31
+ return bcs.U64;
32
+ } else if ('u128' in parsedTag) {
33
+ return bcs.U128;
34
+ } else if ('u256' in parsedTag) {
35
+ return bcs.U256;
36
+ } else if ('address' in parsedTag) {
37
+ return bcs.Address;
38
+ } else if ('bool' in parsedTag) {
39
+ return bcs.Bool;
40
+ } else if ('vector' in parsedTag) {
41
+ const type = getPureBcsSchema(parsedTag.vector);
42
+ return type ? bcs.vector(type) : null;
43
+ } else if ('struct' in parsedTag) {
44
+ const structTag = parsedTag.struct;
45
+ const pkg = normalizeHaneulAddress(parsedTag.struct.address);
46
+
47
+ if (pkg === MOVE_STDLIB_ADDRESS) {
48
+ if (
49
+ (structTag.module === 'ascii' || structTag.module === 'string') &&
50
+ structTag.name === 'String'
51
+ ) {
52
+ return bcs.String;
53
+ }
54
+
55
+ if (structTag.module === 'option' && structTag.name === 'Option') {
56
+ const type = getPureBcsSchema(structTag.typeParams[0]!);
57
+ return type ? bcs.vector(type) : null;
58
+ }
59
+ }
60
+
61
+ if (pkg === HANEUL_FRAMEWORK_ADDRESS && structTag.module === 'Object' && structTag.name === 'ID') {
62
+ return bcs.Address;
63
+ }
64
+ }
65
+
66
+ return null;
67
+ }
68
+
69
+ /**
70
+ * @description Normalize Move function arguments to TransactionArguments
71
+ * @param {unknown[] | object} args - The arguments to normalize
72
+ * @param {string[]} argTypes - The expected Move type strings for each argument
73
+ * @param {string[]} [parameterNames] - Optional parameter names when args is an object
74
+ * @returns {TransactionArgument[]} Array of normalized transaction arguments
75
+ * @throws {Error} If arguments are invalid or don't match expected types
76
+ */
77
+ export function normalizeMoveArguments(
78
+ args: unknown[] | object,
79
+ argTypes: string[],
80
+ parameterNames?: string[],
81
+ ): TransactionArgument[] {
82
+ const argLen = Array.isArray(args) ? args.length : Object.keys(args).length;
83
+ if (parameterNames && argLen !== parameterNames.length) {
84
+ throw new ValidationError(ErrorMessages.INVALID_ARGUMENT_COUNT(parameterNames.length, argLen));
85
+ }
86
+
87
+ const normalizedArgs: TransactionArgument[] = [];
88
+
89
+ let index = 0;
90
+ for (const [i, argType] of argTypes.entries()) {
91
+ if (argType === `${HANEUL_FRAMEWORK_ADDRESS}::deny_list::DenyList`) {
92
+ normalizedArgs.push((tx) => tx.object.denyList());
93
+ continue;
94
+ }
95
+
96
+ if (argType === `${HANEUL_FRAMEWORK_ADDRESS}::random::Random`) {
97
+ normalizedArgs.push((tx) => tx.object.random());
98
+ continue;
99
+ }
100
+
101
+ if (argType === `${HANEUL_FRAMEWORK_ADDRESS}::clock::Clock`) {
102
+ normalizedArgs.push((tx) => tx.object.clock());
103
+ continue;
104
+ }
105
+
106
+ if (argType === `${HANEUL_SYSTEM_ADDRESS}::haneul_system::HaneulSystemState`) {
107
+ normalizedArgs.push((tx) => tx.object.system());
108
+ continue;
109
+ }
110
+
111
+ let arg;
112
+ if (Array.isArray(args)) {
113
+ if (index >= args.length) {
114
+ throw new ValidationError(ErrorMessages.INVALID_ARGUMENT_COUNT(index + 1, args.length));
115
+ }
116
+ arg = args[index];
117
+ } else {
118
+ if (!parameterNames) {
119
+ throw new ValidationError(`Expected arguments to be passed as an array`);
120
+ }
121
+ const name = parameterNames[index];
122
+ arg = args[name as keyof typeof args];
123
+
124
+ if (arg == null) {
125
+ throw new ValidationError(ErrorMessages.PARAMETER_REQUIRED(name));
126
+ }
127
+ }
128
+
129
+ index += 1;
130
+
131
+ if (typeof arg === 'function' || isArgument(arg)) {
132
+ normalizedArgs.push(arg as TransactionArgument);
133
+ continue;
134
+ }
135
+
136
+ const type = argTypes[i]!;
137
+ const bcsType = getPureBcsSchema(type);
138
+
139
+ if (bcsType) {
140
+ const bytes = bcsType.serialize(arg as never);
141
+ normalizedArgs.push((tx) => tx.pure(bytes));
142
+ continue;
143
+ } else if (typeof arg === 'string') {
144
+ normalizedArgs.push((tx) => tx.object(arg));
145
+ continue;
146
+ }
147
+
148
+ throw new ValidationError(ErrorMessages.INVALID_ARGUMENT(stringify(arg) as string, type));
149
+ }
150
+
151
+ return normalizedArgs;
152
+ }
153
+
154
+ export class MoveStruct<
155
+ T extends Record<string, BcsType<any>>,
156
+ const Name extends string = string,
157
+ > extends BcsStruct<T, Name> {}
158
+
159
+ export class MoveEnum<
160
+ T extends Record<string, BcsType<any> | null>,
161
+ const Name extends string,
162
+ > extends BcsEnum<T, Name> {}
163
+
164
+ export class MoveTuple<
165
+ T extends readonly BcsType<any>[],
166
+ const Name extends string,
167
+ > extends BcsTuple<T, Name> {}
168
+
169
+ /**
170
+ * @description Convert a value to string representation for error messages
171
+ * @param {unknown} val - The value to stringify
172
+ * @returns {unknown} String representation of the value
173
+ * @private
174
+ */
175
+ function stringify(val: unknown): unknown {
176
+ if (typeof val === 'object') {
177
+ return JSON.stringify(val, (val: unknown) => val);
178
+ }
179
+ if (typeof val === 'bigint') {
180
+ return val.toString();
181
+ }
182
+
183
+ return val;
184
+ }
package/src/index.ts ADDED
@@ -0,0 +1,95 @@
1
+ // Copyright (c) Mysten Labs, Inc.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ // Main client and configuration
5
+ export { DeepBookClient } from './client.js';
6
+ export { DeepBookConfig } from './utils/config.js';
7
+
8
+ // Core contract classes
9
+ export { BalanceManagerContract } from './transactions/balanceManager.js';
10
+ export { DeepBookContract } from './transactions/deepbook.js';
11
+ export { DeepBookAdminContract } from './transactions/deepbookAdmin.js';
12
+ export { FlashLoanContract } from './transactions/flashLoans.js';
13
+ export { GovernanceContract } from './transactions/governance.js';
14
+
15
+ // Margin trading contracts
16
+ export { MarginAdminContract } from './transactions/marginAdmin.js';
17
+ export { MarginMaintainerContract } from './transactions/marginMaintainer.js';
18
+ export { MarginManagerContract } from './transactions/marginManager.js';
19
+ export { MarginPoolContract } from './transactions/marginPool.js';
20
+ export { PoolProxyContract } from './transactions/poolProxy.js';
21
+ export { MarginTPSLContract } from './transactions/marginTPSL.js';
22
+
23
+ // Pyth price feed integration
24
+ export { HaneulPythClient, HaneulPriceServiceConnection } from './pyth/pyth.js';
25
+
26
+ // BCS types for parsing on-chain data
27
+ export { Account, Balances, Order, OrderDeepPrice, VecSet } from './types/bcs.js';
28
+
29
+ // TypeScript interfaces and types
30
+ export type {
31
+ BalanceManager,
32
+ Coin,
33
+ Pool,
34
+ MarginManager,
35
+ MarginPool,
36
+ Environment,
37
+ Config,
38
+ } from './types/index.js';
39
+
40
+ // Trading parameter interfaces
41
+ export type {
42
+ PlaceLimitOrderParams,
43
+ PlaceMarketOrderParams,
44
+ PlaceMarginLimitOrderParams,
45
+ PlaceMarginMarketOrderParams,
46
+ SwapParams,
47
+ ProposalParams,
48
+ MarginProposalParams,
49
+ CreatePoolAdminParams,
50
+ CreatePermissionlessPoolParams,
51
+ SetEwmaParams,
52
+ PoolConfigParams,
53
+ MarginPoolConfigParams,
54
+ InterestConfigParams,
55
+ } from './types/index.js';
56
+
57
+ // TPSL (Take Profit / Stop Loss) parameter interfaces
58
+ export type {
59
+ PendingLimitOrderParams,
60
+ PendingMarketOrderParams,
61
+ AddConditionalOrderParams,
62
+ } from './types/index.js';
63
+
64
+ // Enums for trading
65
+ export { OrderType, SelfMatchingOptions } from './types/index.js';
66
+
67
+ // Constants and configuration maps
68
+ export type { CoinMap, PoolMap, MarginPoolMap } from './utils/constants.js';
69
+ export {
70
+ DEEP_SCALAR,
71
+ FLOAT_SCALAR,
72
+ GAS_BUDGET,
73
+ MAX_TIMESTAMP,
74
+ POOL_CREATION_FEE_DEEP,
75
+ PRICE_INFO_OBJECT_MAX_AGE_MS,
76
+ } from './utils/config.js';
77
+
78
+ // Error handling utilities
79
+ export {
80
+ DeepBookError,
81
+ ResourceNotFoundError,
82
+ ConfigurationError,
83
+ ValidationError,
84
+ ErrorMessages,
85
+ } from './utils/errors.js';
86
+
87
+ // Validation utilities
88
+ export {
89
+ validateRequired,
90
+ validateAddress,
91
+ validatePositiveNumber,
92
+ validateNonNegativeNumber,
93
+ validateRange,
94
+ validateNonEmptyArray,
95
+ } from './utils/validation.js';
@@ -0,0 +1,48 @@
1
+ // Copyright (c) Mysten Labs, Inc.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import axios from 'axios';
4
+ import type { AxiosInstance } from 'axios';
5
+ import axiosRetry from 'axios-retry';
6
+
7
+ export type HexString = string;
8
+ export type PriceFeedRequestConfig = {
9
+ verbose?: boolean;
10
+ binary?: boolean;
11
+ };
12
+ export type PriceServiceConnectionConfig = {
13
+ timeout?: number;
14
+ httpRetries?: number;
15
+ };
16
+ export class PriceServiceConnection {
17
+ private httpClient: AxiosInstance;
18
+ /**
19
+ * Constructs a new Connection.
20
+ *
21
+ * @param endpoint endpoint URL to the price service.
22
+ * @param config Optional configuration for custom setups.
23
+ */
24
+ constructor(endpoint: string, config?: PriceServiceConnectionConfig) {
25
+ this.httpClient = axios.create({
26
+ baseURL: endpoint,
27
+ timeout: config?.timeout || 5000,
28
+ });
29
+ axiosRetry(this.httpClient, {
30
+ retries: config?.httpRetries || 3,
31
+ retryDelay: axiosRetry.exponentialDelay,
32
+ });
33
+ }
34
+ /**
35
+ * Fetch latest VAAs of given price IDs.
36
+ *
37
+ * @param priceIds Array of hex-encoded price IDs.
38
+ * @returns Array of base64 encoded VAAs.
39
+ */
40
+ async getLatestVaas(priceIds: HexString[]): Promise<string[]> {
41
+ const response = await this.httpClient.get('/api/latest_vaas', {
42
+ params: {
43
+ ids: priceIds,
44
+ },
45
+ });
46
+ return response.data;
47
+ }
48
+ }