@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,23 @@
1
+ export { DeepBookClient } from './client.js';
2
+ export { DeepBookConfig } from './utils/config.js';
3
+ export { BalanceManagerContract } from './transactions/balanceManager.js';
4
+ export { DeepBookContract } from './transactions/deepbook.js';
5
+ export { DeepBookAdminContract } from './transactions/deepbookAdmin.js';
6
+ export { FlashLoanContract } from './transactions/flashLoans.js';
7
+ export { GovernanceContract } from './transactions/governance.js';
8
+ export { MarginAdminContract } from './transactions/marginAdmin.js';
9
+ export { MarginMaintainerContract } from './transactions/marginMaintainer.js';
10
+ export { MarginManagerContract } from './transactions/marginManager.js';
11
+ export { MarginPoolContract } from './transactions/marginPool.js';
12
+ export { PoolProxyContract } from './transactions/poolProxy.js';
13
+ export { MarginTPSLContract } from './transactions/marginTPSL.js';
14
+ export { HaneulPythClient, HaneulPriceServiceConnection } from './pyth/pyth.js';
15
+ export { Account, Balances, Order, OrderDeepPrice, VecSet } from './types/bcs.js';
16
+ export type { BalanceManager, Coin, Pool, MarginManager, MarginPool, Environment, Config, } from './types/index.js';
17
+ export type { PlaceLimitOrderParams, PlaceMarketOrderParams, PlaceMarginLimitOrderParams, PlaceMarginMarketOrderParams, SwapParams, ProposalParams, MarginProposalParams, CreatePoolAdminParams, CreatePermissionlessPoolParams, SetEwmaParams, PoolConfigParams, MarginPoolConfigParams, InterestConfigParams, } from './types/index.js';
18
+ export type { PendingLimitOrderParams, PendingMarketOrderParams, AddConditionalOrderParams, } from './types/index.js';
19
+ export { OrderType, SelfMatchingOptions } from './types/index.js';
20
+ export type { CoinMap, PoolMap, MarginPoolMap } from './utils/constants.js';
21
+ export { DEEP_SCALAR, FLOAT_SCALAR, GAS_BUDGET, MAX_TIMESTAMP, POOL_CREATION_FEE_DEEP, PRICE_INFO_OBJECT_MAX_AGE_MS, } from './utils/config.js';
22
+ export { DeepBookError, ResourceNotFoundError, ConfigurationError, ValidationError, ErrorMessages, } from './utils/errors.js';
23
+ export { validateRequired, validateAddress, validatePositiveNumber, validateNonNegativeNumber, validateRange, validateNonEmptyArray, } from './utils/validation.js';
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var index_exports = {};
20
+ __export(index_exports, {
21
+ Account: () => import_bcs.Account,
22
+ BalanceManagerContract: () => import_balanceManager.BalanceManagerContract,
23
+ Balances: () => import_bcs.Balances,
24
+ ConfigurationError: () => import_errors.ConfigurationError,
25
+ DEEP_SCALAR: () => import_config2.DEEP_SCALAR,
26
+ DeepBookAdminContract: () => import_deepbookAdmin.DeepBookAdminContract,
27
+ DeepBookClient: () => import_client.DeepBookClient,
28
+ DeepBookConfig: () => import_config.DeepBookConfig,
29
+ DeepBookContract: () => import_deepbook.DeepBookContract,
30
+ DeepBookError: () => import_errors.DeepBookError,
31
+ ErrorMessages: () => import_errors.ErrorMessages,
32
+ FLOAT_SCALAR: () => import_config2.FLOAT_SCALAR,
33
+ FlashLoanContract: () => import_flashLoans.FlashLoanContract,
34
+ GAS_BUDGET: () => import_config2.GAS_BUDGET,
35
+ GovernanceContract: () => import_governance.GovernanceContract,
36
+ HaneulPriceServiceConnection: () => import_pyth.HaneulPriceServiceConnection,
37
+ HaneulPythClient: () => import_pyth.HaneulPythClient,
38
+ MAX_TIMESTAMP: () => import_config2.MAX_TIMESTAMP,
39
+ MarginAdminContract: () => import_marginAdmin.MarginAdminContract,
40
+ MarginMaintainerContract: () => import_marginMaintainer.MarginMaintainerContract,
41
+ MarginManagerContract: () => import_marginManager.MarginManagerContract,
42
+ MarginPoolContract: () => import_marginPool.MarginPoolContract,
43
+ MarginTPSLContract: () => import_marginTPSL.MarginTPSLContract,
44
+ Order: () => import_bcs.Order,
45
+ OrderDeepPrice: () => import_bcs.OrderDeepPrice,
46
+ OrderType: () => import_types.OrderType,
47
+ POOL_CREATION_FEE_DEEP: () => import_config2.POOL_CREATION_FEE_DEEP,
48
+ PRICE_INFO_OBJECT_MAX_AGE_MS: () => import_config2.PRICE_INFO_OBJECT_MAX_AGE_MS,
49
+ PoolProxyContract: () => import_poolProxy.PoolProxyContract,
50
+ ResourceNotFoundError: () => import_errors.ResourceNotFoundError,
51
+ SelfMatchingOptions: () => import_types.SelfMatchingOptions,
52
+ ValidationError: () => import_errors.ValidationError,
53
+ VecSet: () => import_bcs.VecSet,
54
+ validateAddress: () => import_validation.validateAddress,
55
+ validateNonEmptyArray: () => import_validation.validateNonEmptyArray,
56
+ validateNonNegativeNumber: () => import_validation.validateNonNegativeNumber,
57
+ validatePositiveNumber: () => import_validation.validatePositiveNumber,
58
+ validateRange: () => import_validation.validateRange,
59
+ validateRequired: () => import_validation.validateRequired
60
+ });
61
+ module.exports = __toCommonJS(index_exports);
62
+ var import_client = require("./client.js");
63
+ var import_config = require("./utils/config.js");
64
+ var import_balanceManager = require("./transactions/balanceManager.js");
65
+ var import_deepbook = require("./transactions/deepbook.js");
66
+ var import_deepbookAdmin = require("./transactions/deepbookAdmin.js");
67
+ var import_flashLoans = require("./transactions/flashLoans.js");
68
+ var import_governance = require("./transactions/governance.js");
69
+ var import_marginAdmin = require("./transactions/marginAdmin.js");
70
+ var import_marginMaintainer = require("./transactions/marginMaintainer.js");
71
+ var import_marginManager = require("./transactions/marginManager.js");
72
+ var import_marginPool = require("./transactions/marginPool.js");
73
+ var import_poolProxy = require("./transactions/poolProxy.js");
74
+ var import_marginTPSL = require("./transactions/marginTPSL.js");
75
+ var import_pyth = require("./pyth/pyth.js");
76
+ var import_bcs = require("./types/bcs.js");
77
+ var import_types = require("./types/index.js");
78
+ var import_config2 = require("./utils/config.js");
79
+ var import_errors = require("./utils/errors.js");
80
+ var import_validation = require("./utils/validation.js");
81
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/index.ts"],
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// Main client and configuration\nexport { DeepBookClient } from './client.js';\nexport { DeepBookConfig } from './utils/config.js';\n\n// Core contract classes\nexport { BalanceManagerContract } from './transactions/balanceManager.js';\nexport { DeepBookContract } from './transactions/deepbook.js';\nexport { DeepBookAdminContract } from './transactions/deepbookAdmin.js';\nexport { FlashLoanContract } from './transactions/flashLoans.js';\nexport { GovernanceContract } from './transactions/governance.js';\n\n// Margin trading contracts\nexport { MarginAdminContract } from './transactions/marginAdmin.js';\nexport { MarginMaintainerContract } from './transactions/marginMaintainer.js';\nexport { MarginManagerContract } from './transactions/marginManager.js';\nexport { MarginPoolContract } from './transactions/marginPool.js';\nexport { PoolProxyContract } from './transactions/poolProxy.js';\nexport { MarginTPSLContract } from './transactions/marginTPSL.js';\n\n// Pyth price feed integration\nexport { HaneulPythClient, HaneulPriceServiceConnection } from './pyth/pyth.js';\n\n// BCS types for parsing on-chain data\nexport { Account, Balances, Order, OrderDeepPrice, VecSet } from './types/bcs.js';\n\n// TypeScript interfaces and types\nexport type {\n\tBalanceManager,\n\tCoin,\n\tPool,\n\tMarginManager,\n\tMarginPool,\n\tEnvironment,\n\tConfig,\n} from './types/index.js';\n\n// Trading parameter interfaces\nexport type {\n\tPlaceLimitOrderParams,\n\tPlaceMarketOrderParams,\n\tPlaceMarginLimitOrderParams,\n\tPlaceMarginMarketOrderParams,\n\tSwapParams,\n\tProposalParams,\n\tMarginProposalParams,\n\tCreatePoolAdminParams,\n\tCreatePermissionlessPoolParams,\n\tSetEwmaParams,\n\tPoolConfigParams,\n\tMarginPoolConfigParams,\n\tInterestConfigParams,\n} from './types/index.js';\n\n// TPSL (Take Profit / Stop Loss) parameter interfaces\nexport type {\n\tPendingLimitOrderParams,\n\tPendingMarketOrderParams,\n\tAddConditionalOrderParams,\n} from './types/index.js';\n\n// Enums for trading\nexport { OrderType, SelfMatchingOptions } from './types/index.js';\n\n// Constants and configuration maps\nexport type { CoinMap, PoolMap, MarginPoolMap } from './utils/constants.js';\nexport {\n\tDEEP_SCALAR,\n\tFLOAT_SCALAR,\n\tGAS_BUDGET,\n\tMAX_TIMESTAMP,\n\tPOOL_CREATION_FEE_DEEP,\n\tPRICE_INFO_OBJECT_MAX_AGE_MS,\n} from './utils/config.js';\n\n// Error handling utilities\nexport {\n\tDeepBookError,\n\tResourceNotFoundError,\n\tConfigurationError,\n\tValidationError,\n\tErrorMessages,\n} from './utils/errors.js';\n\n// Validation utilities\nexport {\n\tvalidateRequired,\n\tvalidateAddress,\n\tvalidatePositiveNumber,\n\tvalidateNonNegativeNumber,\n\tvalidateRange,\n\tvalidateNonEmptyArray,\n} from './utils/validation.js';\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,oBAA+B;AAC/B,oBAA+B;AAG/B,4BAAuC;AACvC,sBAAiC;AACjC,2BAAsC;AACtC,wBAAkC;AAClC,wBAAmC;AAGnC,yBAAoC;AACpC,8BAAyC;AACzC,2BAAsC;AACtC,wBAAmC;AACnC,uBAAkC;AAClC,wBAAmC;AAGnC,kBAA+D;AAG/D,iBAAiE;AAsCjE,mBAA+C;AAI/C,IAAAA,iBAOO;AAGP,oBAMO;AAGP,wBAOO;",
6
+ "names": ["import_config"]
7
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "private": true,
3
+ "type": "commonjs"
4
+ }
@@ -0,0 +1,26 @@
1
+ export type HexString = string;
2
+ export type PriceFeedRequestConfig = {
3
+ verbose?: boolean;
4
+ binary?: boolean;
5
+ };
6
+ export type PriceServiceConnectionConfig = {
7
+ timeout?: number;
8
+ httpRetries?: number;
9
+ };
10
+ export declare class PriceServiceConnection {
11
+ private httpClient;
12
+ /**
13
+ * Constructs a new Connection.
14
+ *
15
+ * @param endpoint endpoint URL to the price service.
16
+ * @param config Optional configuration for custom setups.
17
+ */
18
+ constructor(endpoint: string, config?: PriceServiceConnectionConfig);
19
+ /**
20
+ * Fetch latest VAAs of given price IDs.
21
+ *
22
+ * @param priceIds Array of hex-encoded price IDs.
23
+ * @returns Array of base64 encoded VAAs.
24
+ */
25
+ getLatestVaas(priceIds: HexString[]): Promise<string[]>;
26
+ }
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var PriceServiceConnection_exports = {};
30
+ __export(PriceServiceConnection_exports, {
31
+ PriceServiceConnection: () => PriceServiceConnection
32
+ });
33
+ module.exports = __toCommonJS(PriceServiceConnection_exports);
34
+ var import_axios = __toESM(require("axios"));
35
+ var import_axios_retry = __toESM(require("axios-retry"));
36
+ class PriceServiceConnection {
37
+ /**
38
+ * Constructs a new Connection.
39
+ *
40
+ * @param endpoint endpoint URL to the price service.
41
+ * @param config Optional configuration for custom setups.
42
+ */
43
+ constructor(endpoint, config) {
44
+ this.httpClient = import_axios.default.create({
45
+ baseURL: endpoint,
46
+ timeout: config?.timeout || 5e3
47
+ });
48
+ (0, import_axios_retry.default)(this.httpClient, {
49
+ retries: config?.httpRetries || 3,
50
+ retryDelay: import_axios_retry.default.exponentialDelay
51
+ });
52
+ }
53
+ /**
54
+ * Fetch latest VAAs of given price IDs.
55
+ *
56
+ * @param priceIds Array of hex-encoded price IDs.
57
+ * @returns Array of base64 encoded VAAs.
58
+ */
59
+ async getLatestVaas(priceIds) {
60
+ const response = await this.httpClient.get("/api/latest_vaas", {
61
+ params: {
62
+ ids: priceIds
63
+ }
64
+ });
65
+ return response.data;
66
+ }
67
+ }
68
+ //# sourceMappingURL=PriceServiceConnection.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/pyth/PriceServiceConnection.ts"],
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\nimport axios from 'axios';\nimport type { AxiosInstance } from 'axios';\nimport axiosRetry from 'axios-retry';\n\nexport type HexString = string;\nexport type PriceFeedRequestConfig = {\n\tverbose?: boolean;\n\tbinary?: boolean;\n};\nexport type PriceServiceConnectionConfig = {\n\ttimeout?: number;\n\thttpRetries?: number;\n};\nexport class PriceServiceConnection {\n\tprivate httpClient: AxiosInstance;\n\t/**\n\t * Constructs a new Connection.\n\t *\n\t * @param endpoint endpoint URL to the price service.\n\t * @param config Optional configuration for custom setups.\n\t */\n\tconstructor(endpoint: string, config?: PriceServiceConnectionConfig) {\n\t\tthis.httpClient = axios.create({\n\t\t\tbaseURL: endpoint,\n\t\t\ttimeout: config?.timeout || 5000,\n\t\t});\n\t\taxiosRetry(this.httpClient, {\n\t\t\tretries: config?.httpRetries || 3,\n\t\t\tretryDelay: axiosRetry.exponentialDelay,\n\t\t});\n\t}\n\t/**\n\t * Fetch latest VAAs of given price IDs.\n\t *\n\t * @param priceIds Array of hex-encoded price IDs.\n\t * @returns Array of base64 encoded VAAs.\n\t */\n\tasync getLatestVaas(priceIds: HexString[]): Promise<string[]> {\n\t\tconst response = await this.httpClient.get('/api/latest_vaas', {\n\t\t\tparams: {\n\t\t\t\tids: priceIds,\n\t\t\t},\n\t\t});\n\t\treturn response.data;\n\t}\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAAkB;AAElB,yBAAuB;AAWhB,MAAM,uBAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQnC,YAAY,UAAkB,QAAuC;AACpE,SAAK,aAAa,aAAAA,QAAM,OAAO;AAAA,MAC9B,SAAS;AAAA,MACT,SAAS,QAAQ,WAAW;AAAA,IAC7B,CAAC;AACD,2BAAAC,SAAW,KAAK,YAAY;AAAA,MAC3B,SAAS,QAAQ,eAAe;AAAA,MAChC,YAAY,mBAAAA,QAAW;AAAA,IACxB,CAAC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,cAAc,UAA0C;AAC7D,UAAM,WAAW,MAAM,KAAK,WAAW,IAAI,oBAAoB;AAAA,MAC9D,QAAQ;AAAA,QACP,KAAK;AAAA,MACN;AAAA,IACD,CAAC;AACD,WAAO,SAAS;AAAA,EACjB;AACD;",
6
+ "names": ["axios", "axiosRetry"]
7
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Extracts the VAA bytes embedded in an accumulator message.
3
+ *
4
+ * @param accumulatorMessage The accumulator price update message as a Uint8Array.
5
+ * @returns VAA bytes as a Uint8Array.
6
+ */
7
+ export declare function extractVaaBytesFromAccumulatorMessage(accumulatorMessage: Uint8Array): Uint8Array;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var pyth_helpers_exports = {};
20
+ __export(pyth_helpers_exports, {
21
+ extractVaaBytesFromAccumulatorMessage: () => extractVaaBytesFromAccumulatorMessage
22
+ });
23
+ module.exports = __toCommonJS(pyth_helpers_exports);
24
+ function extractVaaBytesFromAccumulatorMessage(accumulatorMessage) {
25
+ const dataView = new DataView(
26
+ accumulatorMessage.buffer,
27
+ accumulatorMessage.byteOffset,
28
+ accumulatorMessage.byteLength
29
+ );
30
+ const trailingPayloadSize = dataView.getUint8(6);
31
+ const vaaSizeOffset = 7 + trailingPayloadSize + 1;
32
+ const vaaSize = dataView.getUint16(vaaSizeOffset, false);
33
+ const vaaOffset = vaaSizeOffset + 2;
34
+ return accumulatorMessage.subarray(vaaOffset, vaaOffset + vaaSize);
35
+ }
36
+ //# sourceMappingURL=pyth-helpers.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/pyth/pyth-helpers.ts"],
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Extracts the VAA bytes embedded in an accumulator message.\n *\n * @param accumulatorMessage The accumulator price update message as a Uint8Array.\n * @returns VAA bytes as a Uint8Array.\n */\nexport function extractVaaBytesFromAccumulatorMessage(accumulatorMessage: Uint8Array): Uint8Array {\n\tconst dataView = new DataView(\n\t\taccumulatorMessage.buffer,\n\t\taccumulatorMessage.byteOffset,\n\t\taccumulatorMessage.byteLength,\n\t);\n\n\tconst trailingPayloadSize = dataView.getUint8(6);\n\tconst vaaSizeOffset = 7 + trailingPayloadSize + 1; // Header (7 bytes), trailing payload size, proof type\n\tconst vaaSize = dataView.getUint16(vaaSizeOffset, false); // Read 2 bytes for VAA size (big-endian)\n\tconst vaaOffset = vaaSizeOffset + 2; // VAA size is 2 bytes\n\n\treturn accumulatorMessage.subarray(vaaOffset, vaaOffset + vaaSize);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AASO,SAAS,sCAAsC,oBAA4C;AACjG,QAAM,WAAW,IAAI;AAAA,IACpB,mBAAmB;AAAA,IACnB,mBAAmB;AAAA,IACnB,mBAAmB;AAAA,EACpB;AAEA,QAAM,sBAAsB,SAAS,SAAS,CAAC;AAC/C,QAAM,gBAAgB,IAAI,sBAAsB;AAChD,QAAM,UAAU,SAAS,UAAU,eAAe,KAAK;AACvD,QAAM,YAAY,gBAAgB;AAElC,SAAO,mBAAmB,SAAS,WAAW,YAAY,OAAO;AAClE;",
6
+ "names": []
7
+ }
@@ -0,0 +1,65 @@
1
+ import type { HaneulClient } from '@haneullabs/haneul/client';
2
+ import type { Transaction } from '@haneullabs/haneul/transactions';
3
+ import type { HexString } from './PriceServiceConnection.js';
4
+ import { PriceServiceConnection } from './PriceServiceConnection.js';
5
+ export type ObjectId = string;
6
+ export declare class HaneulPriceServiceConnection extends PriceServiceConnection {
7
+ /**
8
+ * Fetch price feed update data.
9
+ *
10
+ * @param priceIds Array of hex-encoded price IDs.
11
+ * @returns Array of buffers containing the price update data.
12
+ */
13
+ getPriceFeedsUpdateData(priceIds: HexString[]): Promise<Uint8Array[]>;
14
+ }
15
+ export declare class HaneulPythClient {
16
+ #private;
17
+ provider: HaneulClient;
18
+ pythStateId: ObjectId;
19
+ wormholeStateId: ObjectId;
20
+ constructor(provider: HaneulClient, pythStateId: ObjectId, wormholeStateId: ObjectId);
21
+ /**
22
+ * Verifies the VAAs using the Wormhole contract.
23
+ *
24
+ * @param vaas Array of VAA buffers to verify.
25
+ * @param tx Transaction block to add commands to.
26
+ * @returns Array of verified VAAs.
27
+ */
28
+ verifyVaas(vaas: Uint8Array[], tx: Transaction): Promise<{
29
+ $kind: "NestedResult";
30
+ NestedResult: [number, number];
31
+ }[]>;
32
+ /**
33
+ * Adds the necessary commands for updating the Pyth price feeds to the transaction block.
34
+ *
35
+ * @param tx Transaction block to add commands to.
36
+ * @param updates Array of price feed updates received from the price service.
37
+ * @param feedIds Array of feed IDs to update (in hex format).
38
+ */
39
+ updatePriceFeeds(tx: Transaction, updates: Uint8Array[], feedIds: HexString[]): Promise<ObjectId[]>;
40
+ /**
41
+ * Get the price feed object ID for a given feed ID, caching the promise.
42
+ * @param feedId
43
+ */
44
+ getPriceFeedObjectId(feedId: HexString): Promise<ObjectId | undefined>;
45
+ /**
46
+ * Fetches the price table object ID for the current state ID, caching the promise.
47
+ * @returns Price table object ID and field type
48
+ */
49
+ getPriceTableInfo(): Promise<{
50
+ id: ObjectId;
51
+ fieldType: ObjectId;
52
+ }>;
53
+ /**
54
+ * Fetches the package ID for the Wormhole contract, with caching.
55
+ */
56
+ getWormholePackageId(): Promise<ObjectId>;
57
+ /**
58
+ * Fetches the package ID for the Pyth contract, with caching.
59
+ */
60
+ getPythPackageId(): Promise<ObjectId>;
61
+ /**
62
+ * Returns the cached base update fee, fetching it if necessary.
63
+ */
64
+ getBaseUpdateFee(): Promise<number>;
65
+ }
@@ -0,0 +1,269 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __typeError = (msg) => {
7
+ throw TypeError(msg);
8
+ };
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
20
+ };
21
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
22
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
23
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
24
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
25
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
26
+ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
27
+ var pyth_exports = {};
28
+ __export(pyth_exports, {
29
+ HaneulPriceServiceConnection: () => HaneulPriceServiceConnection,
30
+ HaneulPythClient: () => HaneulPythClient
31
+ });
32
+ module.exports = __toCommonJS(pyth_exports);
33
+ var import_bcs = require("@haneullabs/haneul/bcs");
34
+ var import_transactions = require("@haneullabs/haneul/transactions");
35
+ var import_utils = require("@haneullabs/haneul/utils");
36
+ var import_PriceServiceConnection = require("./PriceServiceConnection.js");
37
+ var import_pyth_helpers = require("./pyth-helpers.js");
38
+ var _pythPackageId, _wormholePackageId, _priceFeedObjectIdCache, _priceTableInfo, _baseUpdateFee, _HaneulPythClient_instances, fetchPriceFeedObjectId_fn, fetchPriceTableInfo_fn, fetchWormholePackageId_fn, fetchPythPackageId_fn, getPackageId_fn, fetchBaseUpdateFee_fn;
39
+ const MAX_ARGUMENT_SIZE = 16 * 1024;
40
+ class HaneulPriceServiceConnection extends import_PriceServiceConnection.PriceServiceConnection {
41
+ /**
42
+ * Fetch price feed update data.
43
+ *
44
+ * @param priceIds Array of hex-encoded price IDs.
45
+ * @returns Array of buffers containing the price update data.
46
+ */
47
+ async getPriceFeedsUpdateData(priceIds) {
48
+ const latestVaas = await this.getLatestVaas(priceIds);
49
+ return latestVaas.map((vaa) => (0, import_utils.fromBase64)(vaa));
50
+ }
51
+ }
52
+ class HaneulPythClient {
53
+ constructor(provider, pythStateId, wormholeStateId) {
54
+ __privateAdd(this, _HaneulPythClient_instances);
55
+ __privateAdd(this, _pythPackageId);
56
+ __privateAdd(this, _wormholePackageId);
57
+ __privateAdd(this, _priceFeedObjectIdCache, /* @__PURE__ */ new Map());
58
+ __privateAdd(this, _priceTableInfo);
59
+ __privateAdd(this, _baseUpdateFee);
60
+ this.provider = provider;
61
+ this.pythStateId = pythStateId;
62
+ this.wormholeStateId = wormholeStateId;
63
+ }
64
+ /**
65
+ * Verifies the VAAs using the Wormhole contract.
66
+ *
67
+ * @param vaas Array of VAA buffers to verify.
68
+ * @param tx Transaction block to add commands to.
69
+ * @returns Array of verified VAAs.
70
+ */
71
+ async verifyVaas(vaas, tx) {
72
+ const wormholePackageId = await this.getWormholePackageId();
73
+ const verifiedVaas = [];
74
+ for (const vaa of vaas) {
75
+ const [verifiedVaa] = tx.moveCall({
76
+ target: `${wormholePackageId}::vaa::parse_and_verify`,
77
+ arguments: [tx.object(this.wormholeStateId), tx.pure.vector("u8", vaa), tx.object.clock()]
78
+ });
79
+ verifiedVaas.push(verifiedVaa);
80
+ }
81
+ return verifiedVaas;
82
+ }
83
+ /**
84
+ * Adds the necessary commands for updating the Pyth price feeds to the transaction block.
85
+ *
86
+ * @param tx Transaction block to add commands to.
87
+ * @param updates Array of price feed updates received from the price service.
88
+ * @param feedIds Array of feed IDs to update (in hex format).
89
+ */
90
+ async updatePriceFeeds(tx, updates, feedIds) {
91
+ const packageId = await this.getPythPackageId();
92
+ let priceUpdatesHotPotato;
93
+ if (updates.length > 1) {
94
+ throw new Error(
95
+ "SDK does not support sending multiple accumulator messages in a single transaction"
96
+ );
97
+ }
98
+ const vaa = (0, import_pyth_helpers.extractVaaBytesFromAccumulatorMessage)(updates[0]);
99
+ const verifiedVaas = await this.verifyVaas([vaa], tx);
100
+ [priceUpdatesHotPotato] = tx.moveCall({
101
+ target: `${packageId}::pyth::create_authenticated_price_infos_using_accumulator`,
102
+ arguments: [
103
+ tx.object(this.pythStateId),
104
+ tx.pure(
105
+ import_bcs.bcs.vector(import_bcs.bcs.U8).serialize(Array.from(updates[0]), {
106
+ maxSize: MAX_ARGUMENT_SIZE
107
+ }).toBytes()
108
+ ),
109
+ verifiedVaas[0],
110
+ tx.object.clock()
111
+ ]
112
+ });
113
+ const priceInfoObjects = [];
114
+ const baseUpdateFee = await this.getBaseUpdateFee();
115
+ for (const feedId of feedIds) {
116
+ const priceInfoObjectId = await this.getPriceFeedObjectId(feedId);
117
+ if (!priceInfoObjectId) {
118
+ throw new Error(`Price feed ${feedId} not found, please create it first`);
119
+ }
120
+ priceInfoObjects.push(priceInfoObjectId);
121
+ [priceUpdatesHotPotato] = tx.moveCall({
122
+ target: `${packageId}::pyth::update_single_price_feed`,
123
+ arguments: [
124
+ tx.object(this.pythStateId),
125
+ priceUpdatesHotPotato,
126
+ tx.object(priceInfoObjectId),
127
+ (0, import_transactions.coinWithBalance)({ balance: baseUpdateFee }),
128
+ tx.object.clock()
129
+ ]
130
+ });
131
+ }
132
+ tx.moveCall({
133
+ target: `${packageId}::hot_potato_vector::destroy`,
134
+ arguments: [priceUpdatesHotPotato],
135
+ typeArguments: [`${packageId}::price_info::PriceInfo`]
136
+ });
137
+ return priceInfoObjects;
138
+ }
139
+ /**
140
+ * Get the price feed object ID for a given feed ID, caching the promise.
141
+ * @param feedId
142
+ */
143
+ getPriceFeedObjectId(feedId) {
144
+ if (!__privateGet(this, _priceFeedObjectIdCache).has(feedId)) {
145
+ __privateGet(this, _priceFeedObjectIdCache).set(
146
+ feedId,
147
+ __privateMethod(this, _HaneulPythClient_instances, fetchPriceFeedObjectId_fn).call(this, feedId).catch((err) => {
148
+ __privateGet(this, _priceFeedObjectIdCache).delete(feedId);
149
+ throw err;
150
+ })
151
+ );
152
+ }
153
+ return __privateGet(this, _priceFeedObjectIdCache).get(feedId);
154
+ }
155
+ /**
156
+ * Fetches the price table object ID for the current state ID, caching the promise.
157
+ * @returns Price table object ID and field type
158
+ */
159
+ getPriceTableInfo() {
160
+ if (!__privateGet(this, _priceTableInfo)) {
161
+ const promise = __privateMethod(this, _HaneulPythClient_instances, fetchPriceTableInfo_fn).call(this).catch((err) => {
162
+ __privateSet(this, _priceTableInfo, void 0);
163
+ throw err;
164
+ });
165
+ __privateSet(this, _priceTableInfo, promise);
166
+ }
167
+ return __privateGet(this, _priceTableInfo);
168
+ }
169
+ /**
170
+ * Fetches the package ID for the Wormhole contract, with caching.
171
+ */
172
+ getWormholePackageId() {
173
+ if (!__privateGet(this, _wormholePackageId)) {
174
+ __privateSet(this, _wormholePackageId, __privateMethod(this, _HaneulPythClient_instances, fetchWormholePackageId_fn).call(this));
175
+ }
176
+ return __privateGet(this, _wormholePackageId);
177
+ }
178
+ /**
179
+ * Fetches the package ID for the Pyth contract, with caching.
180
+ */
181
+ getPythPackageId() {
182
+ if (!__privateGet(this, _pythPackageId)) {
183
+ __privateSet(this, _pythPackageId, __privateMethod(this, _HaneulPythClient_instances, fetchPythPackageId_fn).call(this));
184
+ }
185
+ return __privateGet(this, _pythPackageId);
186
+ }
187
+ /**
188
+ * Returns the cached base update fee, fetching it if necessary.
189
+ */
190
+ getBaseUpdateFee() {
191
+ if (!__privateGet(this, _baseUpdateFee)) {
192
+ __privateSet(this, _baseUpdateFee, __privateMethod(this, _HaneulPythClient_instances, fetchBaseUpdateFee_fn).call(this));
193
+ }
194
+ return __privateGet(this, _baseUpdateFee);
195
+ }
196
+ }
197
+ _pythPackageId = new WeakMap();
198
+ _wormholePackageId = new WeakMap();
199
+ _priceFeedObjectIdCache = new WeakMap();
200
+ _priceTableInfo = new WeakMap();
201
+ _baseUpdateFee = new WeakMap();
202
+ _HaneulPythClient_instances = new WeakSet();
203
+ fetchPriceFeedObjectId_fn = async function(feedId) {
204
+ const { id: tableId, fieldType } = await this.getPriceTableInfo();
205
+ const result = await this.provider.getDynamicFieldObject({
206
+ parentId: tableId,
207
+ name: {
208
+ type: `${fieldType}::price_identifier::PriceIdentifier`,
209
+ value: {
210
+ bytes: Array.from((0, import_utils.fromHex)(feedId))
211
+ }
212
+ }
213
+ });
214
+ if (!result.data || !result.data.content) {
215
+ throw new Error(`Price feed object ID for feed ID ${feedId} not found.`);
216
+ }
217
+ if (result.data.content.dataType !== "moveObject") {
218
+ throw new Error("Price feed type mismatch");
219
+ }
220
+ const fields = result.data.content.fields;
221
+ return fields.value;
222
+ };
223
+ fetchPriceTableInfo_fn = async function() {
224
+ const result = await this.provider.getDynamicFieldObject({
225
+ parentId: this.pythStateId,
226
+ name: {
227
+ type: "vector<u8>",
228
+ value: "price_info"
229
+ }
230
+ });
231
+ if (!result.data || !result.data.type) {
232
+ throw new Error("Price Table not found, contract may not be initialized");
233
+ }
234
+ const priceIdentifier = (0, import_utils.parseStructTag)(result.data.type).typeParams[0];
235
+ if (typeof priceIdentifier === "object" && priceIdentifier !== null && priceIdentifier.name === "PriceIdentifier" && "address" in priceIdentifier) {
236
+ return { id: result.data.objectId, fieldType: priceIdentifier.address };
237
+ } else {
238
+ throw new Error("fieldType not found");
239
+ }
240
+ };
241
+ fetchWormholePackageId_fn = async function() {
242
+ return await __privateMethod(this, _HaneulPythClient_instances, getPackageId_fn).call(this, this.wormholeStateId);
243
+ };
244
+ fetchPythPackageId_fn = async function() {
245
+ return await __privateMethod(this, _HaneulPythClient_instances, getPackageId_fn).call(this, this.pythStateId);
246
+ };
247
+ getPackageId_fn = async function(objectId) {
248
+ const result = await this.provider.getObject({
249
+ id: objectId,
250
+ options: { showContent: true }
251
+ });
252
+ if (result.data?.content?.dataType === "moveObject" && "upgrade_cap" in result.data.content.fields) {
253
+ const fields = result.data.content.fields;
254
+ return fields.upgrade_cap.fields.package;
255
+ }
256
+ throw new Error(`Cannot fetch package ID for object ${objectId}`);
257
+ };
258
+ fetchBaseUpdateFee_fn = async function() {
259
+ const result = await this.provider.getObject({
260
+ id: this.pythStateId,
261
+ options: { showContent: true }
262
+ });
263
+ if (!result.data || result.data.content?.dataType !== "moveObject") {
264
+ throw new Error("Unable to fetch Pyth state object");
265
+ }
266
+ const fields = result.data.content.fields;
267
+ return fields.base_update_fee;
268
+ };
269
+ //# sourceMappingURL=pyth.js.map