@waterx/sdk 3.0.1 → 3.0.3

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 (398) hide show
  1. package/dist/cjs/package.json +3 -0
  2. package/dist/cjs/src/account/account-request.d.ts +9 -0
  3. package/dist/cjs/src/account/account-request.js +20 -0
  4. package/dist/cjs/src/account/account.d.ts +158 -0
  5. package/dist/cjs/src/account/account.js +238 -0
  6. package/dist/cjs/src/account/client.d.ts +42 -0
  7. package/dist/cjs/src/account/client.js +18 -0
  8. package/dist/cjs/src/account/config.d.ts +151 -0
  9. package/dist/cjs/src/account/config.js +9 -0
  10. package/dist/cjs/src/account/constants.d.ts +5 -0
  11. package/dist/cjs/src/account/constants.js +8 -0
  12. package/dist/cjs/src/account/fetch/referral.d.ts +15 -0
  13. package/dist/cjs/src/account/fetch/referral.js +56 -0
  14. package/dist/cjs/src/account/fetch/simulate.d.ts +34 -0
  15. package/dist/cjs/src/account/fetch/simulate.js +49 -0
  16. package/dist/cjs/src/account/funding/balance.d.ts +32 -0
  17. package/dist/cjs/src/account/funding/balance.js +100 -0
  18. package/dist/cjs/src/account/funding/consolidate.d.ts +46 -0
  19. package/dist/cjs/src/account/funding/consolidate.js +143 -0
  20. package/dist/cjs/src/account/funding/credit.d.ts +129 -0
  21. package/dist/cjs/src/account/funding/credit.js +252 -0
  22. package/dist/cjs/src/account/funding/custody.d.ts +57 -0
  23. package/dist/cjs/src/account/funding/custody.js +139 -0
  24. package/dist/cjs/src/account/funding/wormhole.d.ts +86 -0
  25. package/dist/cjs/src/account/funding/wormhole.js +166 -0
  26. package/dist/cjs/src/account/index.d.ts +29 -0
  27. package/dist/cjs/src/account/index.js +45 -0
  28. package/dist/cjs/src/account/referral.d.ts +21 -0
  29. package/dist/cjs/src/account/referral.js +78 -0
  30. package/dist/cjs/src/account/waterx-account.d.ts +31 -0
  31. package/dist/cjs/src/account/waterx-account.js +29 -0
  32. package/dist/cjs/src/base-client.d.ts +74 -0
  33. package/dist/cjs/src/base-client.js +101 -0
  34. package/dist/cjs/src/constants.d.ts +32 -0
  35. package/dist/cjs/src/constants.js +41 -0
  36. package/dist/cjs/src/generated/bucket_v2_framework/account.d.ts +107 -0
  37. package/dist/cjs/src/generated/bucket_v2_framework/account.js +141 -0
  38. package/dist/cjs/src/generated/bucket_v2_framework/deps/std/type_name.d.ts +17 -0
  39. package/dist/cjs/src/generated/bucket_v2_framework/deps/std/type_name.js +22 -0
  40. package/dist/cjs/src/generated/bucket_v2_framework/deps/sui/balance.d.ts +12 -0
  41. package/dist/cjs/src/generated/bucket_v2_framework/deps/sui/balance.js +17 -0
  42. package/dist/cjs/src/generated/bucket_v2_framework/deps/sui/vec_map.d.ts +36 -0
  43. package/dist/cjs/src/generated/bucket_v2_framework/deps/sui/vec_map.js +31 -0
  44. package/dist/cjs/src/generated/bucket_v2_framework/deps/sui/vec_set.d.ts +16 -0
  45. package/dist/cjs/src/generated/bucket_v2_framework/deps/sui/vec_set.js +22 -0
  46. package/dist/cjs/src/generated/bucket_v2_framework/double.d.ts +384 -0
  47. package/dist/cjs/src/generated/bucket_v2_framework/double.js +504 -0
  48. package/dist/cjs/src/generated/bucket_v2_framework/float.d.ts +364 -0
  49. package/dist/cjs/src/generated/bucket_v2_framework/float.js +476 -0
  50. package/dist/cjs/src/generated/bucket_v2_framework/liability.d.ts +171 -0
  51. package/dist/cjs/src/generated/bucket_v2_framework/liability.js +192 -0
  52. package/dist/cjs/src/generated/bucket_v2_framework/linked_table.d.ts +384 -0
  53. package/dist/cjs/src/generated/bucket_v2_framework/linked_table.js +405 -0
  54. package/dist/cjs/src/generated/bucket_v2_framework/sheet.d.ts +424 -0
  55. package/dist/cjs/src/generated/bucket_v2_framework/sheet.js +395 -0
  56. package/dist/cjs/src/generated/native_custody/custody_vault.d.ts +586 -0
  57. package/dist/cjs/src/generated/native_custody/custody_vault.js +555 -0
  58. package/dist/cjs/src/generated/native_custody/deps/bucket_v2_framework/float.d.ts +8 -0
  59. package/dist/cjs/src/generated/native_custody/deps/bucket_v2_framework/float.js +13 -0
  60. package/dist/cjs/src/generated/native_custody/deps/bucket_v2_framework/liability.d.ts +11 -0
  61. package/dist/cjs/src/generated/native_custody/deps/bucket_v2_framework/liability.js +16 -0
  62. package/dist/cjs/src/generated/native_custody/deps/bucket_v2_framework/sheet.d.ts +49 -0
  63. package/dist/cjs/src/generated/native_custody/deps/bucket_v2_framework/sheet.js +52 -0
  64. package/dist/cjs/src/generated/native_custody/deps/std/type_name.d.ts +17 -0
  65. package/dist/cjs/src/generated/native_custody/deps/std/type_name.js +22 -0
  66. package/dist/cjs/src/generated/native_custody/deps/sui/balance.d.ts +12 -0
  67. package/dist/cjs/src/generated/native_custody/deps/sui/balance.js +17 -0
  68. package/dist/cjs/src/generated/native_custody/deps/sui/vec_map.d.ts +36 -0
  69. package/dist/cjs/src/generated/native_custody/deps/sui/vec_map.js +31 -0
  70. package/dist/cjs/src/generated/native_custody/deps/sui/vec_set.d.ts +16 -0
  71. package/dist/cjs/src/generated/native_custody/deps/sui/vec_set.js +22 -0
  72. package/dist/cjs/src/generated/native_custody/events.d.ts +36 -0
  73. package/dist/cjs/src/generated/native_custody/events.js +71 -0
  74. package/dist/cjs/src/generated/pyth_sponsor_rule/deps/sui/balance.d.ts +12 -0
  75. package/dist/cjs/src/generated/pyth_sponsor_rule/deps/sui/balance.js +17 -0
  76. package/dist/cjs/src/generated/pyth_sponsor_rule/pyth_sponsor_rule.d.ts +68 -0
  77. package/dist/cjs/src/generated/pyth_sponsor_rule/pyth_sponsor_rule.js +113 -0
  78. package/dist/cjs/src/generated/utils/index.d.ts +30 -0
  79. package/dist/cjs/src/generated/utils/index.js +168 -0
  80. package/dist/cjs/src/generated/waterx_account/account.d.ts +1906 -0
  81. package/dist/cjs/src/generated/waterx_account/account.js +1929 -0
  82. package/dist/cjs/src/generated/waterx_account/deps/bucket_v2_framework/liability.d.ts +11 -0
  83. package/dist/cjs/src/generated/waterx_account/deps/bucket_v2_framework/liability.js +16 -0
  84. package/dist/cjs/src/generated/waterx_account/deps/bucket_v2_framework/sheet.d.ts +49 -0
  85. package/dist/cjs/src/generated/waterx_account/deps/bucket_v2_framework/sheet.js +52 -0
  86. package/dist/cjs/src/generated/waterx_account/deps/std/type_name.d.ts +17 -0
  87. package/dist/cjs/src/generated/waterx_account/deps/std/type_name.js +22 -0
  88. package/dist/cjs/src/generated/waterx_account/deps/sui/balance.d.ts +12 -0
  89. package/dist/cjs/src/generated/waterx_account/deps/sui/balance.js +17 -0
  90. package/dist/cjs/src/generated/waterx_account/deps/sui/object_table.d.ts +17 -0
  91. package/dist/cjs/src/generated/waterx_account/deps/sui/object_table.js +22 -0
  92. package/dist/cjs/src/generated/waterx_account/deps/sui/table.d.ts +29 -0
  93. package/dist/cjs/src/generated/waterx_account/deps/sui/table.js +34 -0
  94. package/dist/cjs/src/generated/waterx_account/deps/sui/vec_map.d.ts +36 -0
  95. package/dist/cjs/src/generated/waterx_account/deps/sui/vec_map.js +31 -0
  96. package/dist/cjs/src/generated/waterx_account/deps/sui/vec_set.d.ts +16 -0
  97. package/dist/cjs/src/generated/waterx_account/deps/sui/vec_set.js +22 -0
  98. package/dist/cjs/src/generated/waterx_account/direct_rule.d.ts +77 -0
  99. package/dist/cjs/src/generated/waterx_account/direct_rule.js +83 -0
  100. package/dist/cjs/src/generated/waterx_account/events.d.ts +190 -0
  101. package/dist/cjs/src/generated/waterx_account/events.js +173 -0
  102. package/dist/cjs/src/generated/waterx_account/version.d.ts +10 -0
  103. package/dist/cjs/src/generated/waterx_account/version.js +11 -0
  104. package/dist/cjs/src/generated/waterx_constant_rule/constant_rule.d.ts +68 -0
  105. package/dist/cjs/src/generated/waterx_constant_rule/constant_rule.js +97 -0
  106. package/dist/cjs/src/generated/waterx_constant_rule/deps/bucket_v2_framework/float.d.ts +8 -0
  107. package/dist/cjs/src/generated/waterx_constant_rule/deps/bucket_v2_framework/float.js +13 -0
  108. package/dist/cjs/src/generated/waterx_constant_rule/deps/sui/vec_map.d.ts +36 -0
  109. package/dist/cjs/src/generated/waterx_constant_rule/deps/sui/vec_map.js +31 -0
  110. package/dist/cjs/src/generated/waterx_credit/credit_registry.d.ts +708 -0
  111. package/dist/cjs/src/generated/waterx_credit/credit_registry.js +728 -0
  112. package/dist/cjs/src/generated/waterx_credit/deps/std/type_name.d.ts +17 -0
  113. package/dist/cjs/src/generated/waterx_credit/deps/std/type_name.js +22 -0
  114. package/dist/cjs/src/generated/waterx_credit/deps/sui/table.d.ts +29 -0
  115. package/dist/cjs/src/generated/waterx_credit/deps/sui/table.js +34 -0
  116. package/dist/cjs/src/generated/waterx_credit/deps/sui/vec_map.d.ts +36 -0
  117. package/dist/cjs/src/generated/waterx_credit/deps/sui/vec_map.js +31 -0
  118. package/dist/cjs/src/generated/waterx_credit/deps/sui/vec_set.d.ts +16 -0
  119. package/dist/cjs/src/generated/waterx_credit/deps/sui/vec_set.js +22 -0
  120. package/dist/cjs/src/generated/waterx_credit/limited_supply.d.ts +107 -0
  121. package/dist/cjs/src/generated/waterx_credit/limited_supply.js +143 -0
  122. package/dist/cjs/src/generated/waterx_oracle/aggregator.d.ts +211 -0
  123. package/dist/cjs/src/generated/waterx_oracle/aggregator.js +258 -0
  124. package/dist/cjs/src/generated/waterx_oracle/collector.d.ts +119 -0
  125. package/dist/cjs/src/generated/waterx_oracle/collector.js +147 -0
  126. package/dist/cjs/src/generated/waterx_oracle/deps/bucket_v2_framework/float.d.ts +8 -0
  127. package/dist/cjs/src/generated/waterx_oracle/deps/bucket_v2_framework/float.js +13 -0
  128. package/dist/cjs/src/generated/waterx_oracle/deps/std/type_name.d.ts +17 -0
  129. package/dist/cjs/src/generated/waterx_oracle/deps/std/type_name.js +22 -0
  130. package/dist/cjs/src/generated/waterx_oracle/deps/sui/vec_map.d.ts +36 -0
  131. package/dist/cjs/src/generated/waterx_oracle/deps/sui/vec_map.js +31 -0
  132. package/dist/cjs/src/generated/waterx_oracle/deps/sui/vec_set.d.ts +16 -0
  133. package/dist/cjs/src/generated/waterx_oracle/deps/sui/vec_set.js +22 -0
  134. package/dist/cjs/src/generated/waterx_oracle/oracle.d.ts +304 -0
  135. package/dist/cjs/src/generated/waterx_oracle/oracle.js +381 -0
  136. package/dist/cjs/src/generated/waterx_oracle/version.d.ts +10 -0
  137. package/dist/cjs/src/generated/waterx_oracle/version.js +11 -0
  138. package/dist/cjs/src/generated/waterx_perp/account_data.d.ts +269 -0
  139. package/dist/cjs/src/generated/waterx_perp/account_data.js +340 -0
  140. package/dist/cjs/src/generated/waterx_perp/admin.d.ts +19 -0
  141. package/dist/cjs/src/generated/waterx_perp/admin.js +26 -0
  142. package/dist/cjs/src/generated/waterx_perp/deps/bucket_v2_framework/double.d.ts +8 -0
  143. package/dist/cjs/src/generated/waterx_perp/deps/bucket_v2_framework/double.js +13 -0
  144. package/dist/cjs/src/generated/waterx_perp/deps/bucket_v2_framework/float.d.ts +8 -0
  145. package/dist/cjs/src/generated/waterx_perp/deps/bucket_v2_framework/float.js +13 -0
  146. package/dist/cjs/src/generated/waterx_perp/deps/bucket_v2_framework/liability.d.ts +11 -0
  147. package/dist/cjs/src/generated/waterx_perp/deps/bucket_v2_framework/liability.js +16 -0
  148. package/dist/cjs/src/generated/waterx_perp/deps/bucket_v2_framework/linked_table.d.ts +8 -0
  149. package/dist/cjs/src/generated/waterx_perp/deps/bucket_v2_framework/linked_table.js +21 -0
  150. package/dist/cjs/src/generated/waterx_perp/deps/bucket_v2_framework/sheet.d.ts +49 -0
  151. package/dist/cjs/src/generated/waterx_perp/deps/bucket_v2_framework/sheet.js +52 -0
  152. package/dist/cjs/src/generated/waterx_perp/deps/std/type_name.d.ts +17 -0
  153. package/dist/cjs/src/generated/waterx_perp/deps/std/type_name.js +22 -0
  154. package/dist/cjs/src/generated/waterx_perp/deps/sui/balance.d.ts +15 -0
  155. package/dist/cjs/src/generated/waterx_perp/deps/sui/balance.js +20 -0
  156. package/dist/cjs/src/generated/waterx_perp/deps/sui/coin.d.ts +14 -0
  157. package/dist/cjs/src/generated/waterx_perp/deps/sui/coin.js +51 -0
  158. package/dist/cjs/src/generated/waterx_perp/deps/sui/vec_map.d.ts +36 -0
  159. package/dist/cjs/src/generated/waterx_perp/deps/sui/vec_map.js +31 -0
  160. package/dist/cjs/src/generated/waterx_perp/deps/sui/vec_set.d.ts +16 -0
  161. package/dist/cjs/src/generated/waterx_perp/deps/sui/vec_set.js +22 -0
  162. package/dist/cjs/src/generated/waterx_perp/events.d.ts +1283 -0
  163. package/dist/cjs/src/generated/waterx_perp/events.js +990 -0
  164. package/dist/cjs/src/generated/waterx_perp/global_config.d.ts +775 -0
  165. package/dist/cjs/src/generated/waterx_perp/global_config.js +918 -0
  166. package/dist/cjs/src/generated/waterx_perp/keyed_big_vector.d.ts +553 -0
  167. package/dist/cjs/src/generated/waterx_perp/keyed_big_vector.js +626 -0
  168. package/dist/cjs/src/generated/waterx_perp/lp_pool.d.ts +1648 -0
  169. package/dist/cjs/src/generated/waterx_perp/lp_pool.js +1630 -0
  170. package/dist/cjs/src/generated/waterx_perp/market_config.d.ts +733 -0
  171. package/dist/cjs/src/generated/waterx_perp/market_config.js +871 -0
  172. package/dist/cjs/src/generated/waterx_perp/math.d.ts +63 -0
  173. package/dist/cjs/src/generated/waterx_perp/math.js +70 -0
  174. package/dist/cjs/src/generated/waterx_perp/memo.d.ts +251 -0
  175. package/dist/cjs/src/generated/waterx_perp/memo.js +360 -0
  176. package/dist/cjs/src/generated/waterx_perp/order_book.d.ts +290 -0
  177. package/dist/cjs/src/generated/waterx_perp/order_book.js +388 -0
  178. package/dist/cjs/src/generated/waterx_perp/position.d.ts +1005 -0
  179. package/dist/cjs/src/generated/waterx_perp/position.js +1200 -0
  180. package/dist/cjs/src/generated/waterx_perp/request.d.ts +544 -0
  181. package/dist/cjs/src/generated/waterx_perp/request.js +609 -0
  182. package/dist/cjs/src/generated/waterx_perp/response.d.ts +247 -0
  183. package/dist/cjs/src/generated/waterx_perp/response.js +331 -0
  184. package/dist/cjs/src/generated/waterx_perp/trading.d.ts +2945 -0
  185. package/dist/cjs/src/generated/waterx_perp/trading.js +2616 -0
  186. package/dist/cjs/src/generated/waterx_perp/version.d.ts +10 -0
  187. package/dist/cjs/src/generated/waterx_perp/version.js +11 -0
  188. package/dist/cjs/src/generated/waterx_perp/witness.d.ts +18 -0
  189. package/dist/cjs/src/generated/waterx_perp/witness.js +25 -0
  190. package/dist/cjs/src/generated/waterx_perp_view/deps/std/type_name.d.ts +17 -0
  191. package/dist/cjs/src/generated/waterx_perp_view/deps/std/type_name.js +22 -0
  192. package/dist/cjs/src/generated/waterx_perp_view/view.d.ts +447 -0
  193. package/dist/cjs/src/generated/waterx_perp_view/view.js +459 -0
  194. package/dist/cjs/src/generated/waterx_prediction/account_data.d.ts +344 -0
  195. package/dist/cjs/src/generated/waterx_prediction/account_data.js +470 -0
  196. package/dist/cjs/src/generated/waterx_prediction/admin.d.ts +7 -0
  197. package/dist/cjs/src/generated/waterx_prediction/admin.js +12 -0
  198. package/dist/cjs/src/generated/waterx_prediction/deps/bucket_v2_framework/linked_table.d.ts +8 -0
  199. package/dist/cjs/src/generated/waterx_prediction/deps/bucket_v2_framework/linked_table.js +21 -0
  200. package/dist/cjs/src/generated/waterx_prediction/deps/sui/balance.d.ts +12 -0
  201. package/dist/cjs/src/generated/waterx_prediction/deps/sui/balance.js +17 -0
  202. package/dist/cjs/src/generated/waterx_prediction/deps/sui/table.d.ts +29 -0
  203. package/dist/cjs/src/generated/waterx_prediction/deps/sui/table.js +34 -0
  204. package/dist/cjs/src/generated/waterx_prediction/deps/sui/vec_set.d.ts +16 -0
  205. package/dist/cjs/src/generated/waterx_prediction/deps/sui/vec_set.js +22 -0
  206. package/dist/cjs/src/generated/waterx_prediction/events.d.ts +288 -0
  207. package/dist/cjs/src/generated/waterx_prediction/events.js +254 -0
  208. package/dist/cjs/src/generated/waterx_prediction/global_config.d.ts +121 -0
  209. package/dist/cjs/src/generated/waterx_prediction/global_config.js +186 -0
  210. package/dist/cjs/src/generated/waterx_prediction/order.d.ts +233 -0
  211. package/dist/cjs/src/generated/waterx_prediction/order.js +339 -0
  212. package/dist/cjs/src/generated/waterx_prediction/outcome.d.ts +58 -0
  213. package/dist/cjs/src/generated/waterx_prediction/outcome.js +82 -0
  214. package/dist/cjs/src/generated/waterx_prediction/position.d.ts +175 -0
  215. package/dist/cjs/src/generated/waterx_prediction/position.js +232 -0
  216. package/dist/cjs/src/generated/waterx_prediction/version.d.ts +10 -0
  217. package/dist/cjs/src/generated/waterx_prediction/version.js +11 -0
  218. package/dist/cjs/src/generated/waterx_prediction/view.d.ts +418 -0
  219. package/dist/cjs/src/generated/waterx_prediction/view.js +492 -0
  220. package/dist/cjs/src/generated/waterx_prediction/waterx_prediction.d.ts +1858 -0
  221. package/dist/cjs/src/generated/waterx_prediction/waterx_prediction.js +1972 -0
  222. package/dist/cjs/src/generated/waterx_pyth_rule/deps/sui/vec_map.d.ts +36 -0
  223. package/dist/cjs/src/generated/waterx_pyth_rule/deps/sui/vec_map.js +31 -0
  224. package/dist/cjs/src/generated/waterx_pyth_rule/pyth_rule.d.ts +192 -0
  225. package/dist/cjs/src/generated/waterx_pyth_rule/pyth_rule.js +214 -0
  226. package/dist/cjs/src/generated/waterx_referral/deps/sui/table.d.ts +29 -0
  227. package/dist/cjs/src/generated/waterx_referral/deps/sui/table.js +34 -0
  228. package/dist/cjs/src/generated/waterx_referral/deps/sui/vec_set.d.ts +16 -0
  229. package/dist/cjs/src/generated/waterx_referral/deps/sui/vec_set.js +22 -0
  230. package/dist/cjs/src/generated/waterx_referral/referral_table.d.ts +171 -0
  231. package/dist/cjs/src/generated/waterx_referral/referral_table.js +239 -0
  232. package/dist/cjs/src/generated/waterx_staking/deps/bucket_v2_framework/double.d.ts +8 -0
  233. package/dist/cjs/src/generated/waterx_staking/deps/bucket_v2_framework/double.js +13 -0
  234. package/dist/cjs/src/generated/waterx_staking/deps/sui/balance.d.ts +12 -0
  235. package/dist/cjs/src/generated/waterx_staking/deps/sui/balance.js +17 -0
  236. package/dist/cjs/src/generated/waterx_staking/deps/sui/table.d.ts +29 -0
  237. package/dist/cjs/src/generated/waterx_staking/deps/sui/table.js +34 -0
  238. package/dist/cjs/src/generated/waterx_staking/deps/sui/vec_set.d.ts +16 -0
  239. package/dist/cjs/src/generated/waterx_staking/deps/sui/vec_set.js +22 -0
  240. package/dist/cjs/src/generated/waterx_staking/waterx_staking.d.ts +746 -0
  241. package/dist/cjs/src/generated/waterx_staking/waterx_staking.js +797 -0
  242. package/dist/cjs/src/generated/waterx_staking/witness.d.ts +16 -0
  243. package/dist/cjs/src/generated/waterx_staking/witness.js +21 -0
  244. package/dist/cjs/src/generated/waterx_supra_rule/deps/sui/vec_map.d.ts +36 -0
  245. package/dist/cjs/src/generated/waterx_supra_rule/deps/sui/vec_map.js +31 -0
  246. package/dist/cjs/src/generated/waterx_supra_rule/supra_rule.d.ts +158 -0
  247. package/dist/cjs/src/generated/waterx_supra_rule/supra_rule.js +189 -0
  248. package/dist/cjs/src/generated/withdrawal_queue/deps/bucket_v2_framework/float.d.ts +8 -0
  249. package/dist/cjs/src/generated/withdrawal_queue/deps/bucket_v2_framework/float.js +13 -0
  250. package/dist/cjs/src/generated/withdrawal_queue/deps/bucket_v2_framework/linked_table.d.ts +8 -0
  251. package/dist/cjs/src/generated/withdrawal_queue/deps/bucket_v2_framework/linked_table.js +21 -0
  252. package/dist/cjs/src/generated/withdrawal_queue/deps/std/type_name.d.ts +17 -0
  253. package/dist/cjs/src/generated/withdrawal_queue/deps/std/type_name.js +22 -0
  254. package/dist/cjs/src/generated/withdrawal_queue/deps/sui/balance.d.ts +12 -0
  255. package/dist/cjs/src/generated/withdrawal_queue/deps/sui/balance.js +17 -0
  256. package/dist/cjs/src/generated/withdrawal_queue/deps/sui/vec_map.d.ts +36 -0
  257. package/dist/cjs/src/generated/withdrawal_queue/deps/sui/vec_map.js +31 -0
  258. package/dist/cjs/src/generated/withdrawal_queue/deps/sui/vec_set.d.ts +16 -0
  259. package/dist/cjs/src/generated/withdrawal_queue/deps/sui/vec_set.js +22 -0
  260. package/dist/cjs/src/generated/withdrawal_queue/withdrawal_queue.d.ts +923 -0
  261. package/dist/cjs/src/generated/withdrawal_queue/withdrawal_queue.js +965 -0
  262. package/dist/cjs/src/generated/wlp/wlp.d.ts +28 -0
  263. package/dist/cjs/src/generated/wlp/wlp.js +37 -0
  264. package/dist/cjs/src/generated/wormhole_bridge/deps/sui/table.d.ts +29 -0
  265. package/dist/cjs/src/generated/wormhole_bridge/deps/sui/table.js +34 -0
  266. package/dist/cjs/src/generated/wormhole_bridge/deps/sui/vec_map.d.ts +36 -0
  267. package/dist/cjs/src/generated/wormhole_bridge/deps/sui/vec_map.js +31 -0
  268. package/dist/cjs/src/generated/wormhole_bridge/deps/sui/vec_set.d.ts +16 -0
  269. package/dist/cjs/src/generated/wormhole_bridge/deps/sui/vec_set.js +22 -0
  270. package/dist/cjs/src/generated/wormhole_bridge/deps/wormhole_sdk/consumed_vaas.d.ts +12 -0
  271. package/dist/cjs/src/generated/wormhole_bridge/deps/wormhole_sdk/consumed_vaas.js +45 -0
  272. package/dist/cjs/src/generated/wormhole_bridge/deps/wormhole_sdk/emitter.d.ts +14 -0
  273. package/dist/cjs/src/generated/wormhole_bridge/deps/wormhole_sdk/emitter.js +19 -0
  274. package/dist/cjs/src/generated/wormhole_bridge/deps/wormhole_sdk/set.d.ts +16 -0
  275. package/dist/cjs/src/generated/wormhole_bridge/deps/wormhole_sdk/set.js +51 -0
  276. package/dist/cjs/src/generated/wormhole_bridge/events.d.ts +32 -0
  277. package/dist/cjs/src/generated/wormhole_bridge/events.js +31 -0
  278. package/dist/cjs/src/generated/wormhole_bridge/wormhole_bridge.d.ts +638 -0
  279. package/dist/cjs/src/generated/wormhole_bridge/wormhole_bridge.js +692 -0
  280. package/dist/cjs/src/oracle/aggregate.d.ts +74 -0
  281. package/dist/cjs/src/oracle/aggregate.js +118 -0
  282. package/dist/cjs/src/oracle/config.d.ts +99 -0
  283. package/dist/cjs/src/oracle/config.js +26 -0
  284. package/dist/cjs/src/oracle/host.d.ts +32 -0
  285. package/dist/cjs/src/oracle/host.js +11 -0
  286. package/dist/cjs/src/oracle/index.d.ts +16 -0
  287. package/dist/cjs/src/oracle/index.js +31 -0
  288. package/dist/cjs/src/oracle/pyth.d.ts +52 -0
  289. package/dist/cjs/src/oracle/pyth.js +227 -0
  290. package/dist/cjs/src/oracle/rules/constant-rule.d.ts +9 -0
  291. package/dist/cjs/src/oracle/rules/constant-rule.js +17 -0
  292. package/dist/cjs/src/oracle/rules/pyth-rule.d.ts +11 -0
  293. package/dist/cjs/src/oracle/rules/pyth-rule.js +23 -0
  294. package/dist/cjs/src/oracle/rules/sponsor.d.ts +28 -0
  295. package/dist/cjs/src/oracle/rules/sponsor.js +52 -0
  296. package/dist/cjs/src/oracle/rules/supra-rule.d.ts +11 -0
  297. package/dist/cjs/src/oracle/rules/supra-rule.js +25 -0
  298. package/dist/cjs/src/perp/client.d.ts +78 -0
  299. package/dist/cjs/src/perp/client.js +112 -0
  300. package/dist/cjs/src/perp/config-view.d.ts +102 -0
  301. package/dist/cjs/src/perp/config-view.js +178 -0
  302. package/dist/cjs/src/perp/config.d.ts +126 -0
  303. package/dist/cjs/src/perp/config.js +119 -0
  304. package/dist/cjs/src/perp/constants.d.ts +49 -0
  305. package/dist/cjs/src/perp/constants.js +79 -0
  306. package/dist/cjs/src/perp/fetch/account.d.ts +43 -0
  307. package/dist/cjs/src/perp/fetch/account.js +69 -0
  308. package/dist/cjs/src/perp/fetch/bridge.d.ts +90 -0
  309. package/dist/cjs/src/perp/fetch/bridge.js +131 -0
  310. package/dist/cjs/src/perp/fetch/custody.d.ts +32 -0
  311. package/dist/cjs/src/perp/fetch/custody.js +66 -0
  312. package/dist/cjs/src/perp/fetch/market.d.ts +30 -0
  313. package/dist/cjs/src/perp/fetch/market.js +75 -0
  314. package/dist/cjs/src/perp/fetch/positions.d.ts +70 -0
  315. package/dist/cjs/src/perp/fetch/positions.js +195 -0
  316. package/dist/cjs/src/perp/fetch/simulate.d.ts +12 -0
  317. package/dist/cjs/src/perp/fetch/simulate.js +21 -0
  318. package/dist/cjs/src/perp/fetch.d.ts +23 -0
  319. package/dist/cjs/src/perp/fetch.js +39 -0
  320. package/dist/cjs/src/perp/index.d.ts +29 -0
  321. package/dist/cjs/src/perp/index.js +183 -0
  322. package/dist/cjs/src/perp/tx-builders/common.d.ts +83 -0
  323. package/dist/cjs/src/perp/tx-builders/common.js +76 -0
  324. package/dist/cjs/src/perp/tx-builders/credit.d.ts +65 -0
  325. package/dist/cjs/src/perp/tx-builders/credit.js +67 -0
  326. package/dist/cjs/src/perp/tx-builders/rewards.d.ts +30 -0
  327. package/dist/cjs/src/perp/tx-builders/rewards.js +37 -0
  328. package/dist/cjs/src/perp/tx-builders/trading.d.ts +51 -0
  329. package/dist/cjs/src/perp/tx-builders/trading.js +71 -0
  330. package/dist/cjs/src/perp/tx-builders/wlp.d.ts +90 -0
  331. package/dist/cjs/src/perp/tx-builders/wlp.js +126 -0
  332. package/dist/cjs/src/perp/tx-builders.d.ts +23 -0
  333. package/dist/cjs/src/perp/tx-builders.js +45 -0
  334. package/dist/cjs/src/perp/user/index.d.ts +8 -0
  335. package/dist/cjs/src/perp/user/index.js +24 -0
  336. package/dist/cjs/src/perp/user/order.d.ts +89 -0
  337. package/dist/cjs/src/perp/user/order.js +175 -0
  338. package/dist/cjs/src/perp/user/staking.d.ts +54 -0
  339. package/dist/cjs/src/perp/user/staking.js +147 -0
  340. package/dist/cjs/src/perp/user/trading.d.ts +119 -0
  341. package/dist/cjs/src/perp/user/trading.js +310 -0
  342. package/dist/cjs/src/perp/user/wlp.d.ts +58 -0
  343. package/dist/cjs/src/perp/user/wlp.js +139 -0
  344. package/dist/cjs/src/prediction/account.d.ts +96 -0
  345. package/dist/cjs/src/prediction/account.js +212 -0
  346. package/dist/cjs/src/prediction/admin.d.ts +47 -0
  347. package/dist/cjs/src/prediction/admin.js +116 -0
  348. package/dist/cjs/src/prediction/bcs.d.ts +28 -0
  349. package/dist/cjs/src/prediction/bcs.js +189 -0
  350. package/dist/cjs/src/prediction/client.d.ts +45 -0
  351. package/dist/cjs/src/prediction/client.js +112 -0
  352. package/dist/cjs/src/prediction/config.d.ts +74 -0
  353. package/dist/cjs/src/prediction/config.js +86 -0
  354. package/dist/cjs/src/prediction/constants.d.ts +44 -0
  355. package/dist/cjs/src/prediction/constants.js +49 -0
  356. package/dist/cjs/src/prediction/fetch.d.ts +82 -0
  357. package/dist/cjs/src/prediction/fetch.js +294 -0
  358. package/dist/cjs/src/prediction/gift-link.d.ts +6 -0
  359. package/dist/cjs/src/prediction/gift-link.js +16 -0
  360. package/dist/cjs/src/prediction/gift.d.ts +223 -0
  361. package/dist/cjs/src/prediction/gift.js +465 -0
  362. package/dist/cjs/src/prediction/index.d.ts +29 -0
  363. package/dist/cjs/src/prediction/index.js +154 -0
  364. package/dist/cjs/src/prediction/prediction.d.ts +149 -0
  365. package/dist/cjs/src/prediction/prediction.js +410 -0
  366. package/dist/cjs/src/prediction/tx-builders.d.ts +44 -0
  367. package/dist/cjs/src/prediction/tx-builders.js +56 -0
  368. package/dist/cjs/src/prediction/types.d.ts +95 -0
  369. package/dist/cjs/src/prediction/types.js +2 -0
  370. package/dist/cjs/src/prediction/user/account.d.ts +2 -0
  371. package/dist/cjs/src/prediction/user/account.js +17 -0
  372. package/dist/cjs/src/prediction/user/admin.d.ts +6 -0
  373. package/dist/cjs/src/prediction/user/admin.js +19 -0
  374. package/dist/cjs/src/prediction/user/gift.d.ts +2 -0
  375. package/dist/cjs/src/prediction/user/gift.js +24 -0
  376. package/dist/cjs/src/prediction/user/index.d.ts +5 -0
  377. package/dist/cjs/src/prediction/user/index.js +60 -0
  378. package/dist/cjs/src/prediction/user/keeper.d.ts +2 -0
  379. package/dist/cjs/src/prediction/user/keeper.js +13 -0
  380. package/dist/cjs/src/prediction/user/order.d.ts +2 -0
  381. package/dist/cjs/src/prediction/user/order.js +6 -0
  382. package/dist/cjs/src/prediction/user/position.d.ts +2 -0
  383. package/dist/cjs/src/prediction/user/position.js +11 -0
  384. package/dist/cjs/src/prediction/utils/bcs.d.ts +6 -0
  385. package/dist/cjs/src/prediction/utils/bcs.js +29 -0
  386. package/dist/cjs/src/prediction/utils/index.d.ts +8 -0
  387. package/dist/cjs/src/prediction/utils/index.js +31 -0
  388. package/dist/cjs/src/prediction/utils.d.ts +30 -0
  389. package/dist/cjs/src/prediction/utils.js +200 -0
  390. package/dist/cjs/src/sdk.d.ts +22 -0
  391. package/dist/cjs/src/sdk.js +62 -0
  392. package/dist/cjs/src/unified-client.d.ts +402 -0
  393. package/dist/cjs/src/unified-client.js +218 -0
  394. package/dist/cjs/src/utils/config.d.ts +11 -0
  395. package/dist/cjs/src/utils/config.js +19 -0
  396. package/dist/cjs/src/utils/math.d.ts +287 -0
  397. package/dist/cjs/src/utils/math.js +469 -0
  398. package/package.json +119 -31
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Oracle aggregation — the orchestrator that composes rules into the shared
3
+ * `Oracle`. This is the ONE file that knows about every rule: it builds a
4
+ * `PriceCollector`, feeds whichever rules a ticker is configured for
5
+ * (Pyth / Supra / Constant), then `aggregate`s.
6
+ *
7
+ * Per ticker:
8
+ * collector = oracle::new_collector(ticker)
9
+ * [pyth_rule::feed] when the ticker has a pyth_rule.feeds entry
10
+ * [supra_rule::feed] when supra is enabled + wired
11
+ * [constant_rule::feed] when the ticker is a constant ticker
12
+ * oracle::aggregate(oracle, collector)
13
+ *
14
+ * The fed rule set must match the on-chain weighted set for the ticker —
15
+ * `aggregator::remove_outliers` aborts `EMissingPriceSource` if a weighted rule
16
+ * is missing from the collector.
17
+ */
18
+ import type { Transaction, TransactionArgument } from "@mysten/sui/transactions";
19
+ import type { OracleHost } from "./host.ts";
20
+ import { type PythCache } from "./pyth.ts";
21
+ /**
22
+ * Aggregate one ticker's price into the shared `Oracle`: build a collector, feed
23
+ * every rule the ticker is configured for, then `aggregate`.
24
+ *
25
+ * - **Pyth** — fed when `priceInfoObjectId` is supplied (i.e. the ticker has a
26
+ * `pyth_rule.feeds` entry). Caller must run the Pyth update first so the
27
+ * `PriceInfoObject` is fresh.
28
+ * - **Supra** — fed alongside Pyth when supra is enabled + wired (abstains
29
+ * on-chain for symbols it has no pair for).
30
+ * - **Constant** — fed when the ticker is a constant ticker
31
+ * ({@link OracleHost.isConstantTicker}).
32
+ *
33
+ * "Dual-feed" (Pyth + Constant) and "constant-only" are not special cases — they
34
+ * fall out of which rules the ticker is in. Throws if no rule applies.
35
+ */
36
+ export declare function aggregateTicker(tx: Transaction, host: OracleHost, args: {
37
+ ticker: string;
38
+ priceInfoObjectId?: string;
39
+ }): void;
40
+ /**
41
+ * Thin wrapper over {@link aggregateTicker} for a Pyth-fed ticker. Kept for
42
+ * back-compat (e.g. WLP mint builds). Caller must run the Pyth update first.
43
+ */
44
+ export declare function aggregateTickerWithPyth(tx: Transaction, host: OracleHost, args: {
45
+ ticker: string;
46
+ priceInfoObjectId: string;
47
+ }): void;
48
+ /**
49
+ * {@link aggregateTicker} for a **constant-only** ticker (no Pyth update needed —
50
+ * the price comes from the on-chain `constant_rule::Config`).
51
+ *
52
+ * Throws if the ticker ALSO has a `pyth_rule.feeds` entry (a dual-feed transition
53
+ * ticker): feeding only the constant leg would leave the still-weighted Pyth rule
54
+ * absent from the collector and abort `aggregate` with `EMissingPriceSource`. Such
55
+ * tickers must go through {@link aggregateTicker} with a `priceInfoObjectId` (or
56
+ * {@link refreshOraclePrices}), which feeds both.
57
+ */
58
+ export declare function aggregateTickerWithConstant(tx: Transaction, host: OracleHost, args: {
59
+ ticker: string;
60
+ }): void;
61
+ /**
62
+ * Refresh multiple tickers in one PTB. For each ticker {@link aggregateTicker}
63
+ * feeds whichever rules it is configured for (Pyth if it has a `pyth_rule.feeds`
64
+ * entry, Supra when enabled, Constant when it's a constant ticker). Tickers with a
65
+ * Pyth feed are updated on-chain via one shared Pyth accumulator first; the rest
66
+ * (constant-only) skip Pyth entirely.
67
+ */
68
+ export declare function refreshOraclePrices(tx: Transaction, host: OracleHost, tickers: string[], opts?: {
69
+ cache?: PythCache;
70
+ sponsorFund?: {
71
+ fund: TransactionArgument;
72
+ packageId: string;
73
+ };
74
+ }): Promise<void>;
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ /**
3
+ * Oracle aggregation — the orchestrator that composes rules into the shared
4
+ * `Oracle`. This is the ONE file that knows about every rule: it builds a
5
+ * `PriceCollector`, feeds whichever rules a ticker is configured for
6
+ * (Pyth / Supra / Constant), then `aggregate`s.
7
+ *
8
+ * Per ticker:
9
+ * collector = oracle::new_collector(ticker)
10
+ * [pyth_rule::feed] when the ticker has a pyth_rule.feeds entry
11
+ * [supra_rule::feed] when supra is enabled + wired
12
+ * [constant_rule::feed] when the ticker is a constant ticker
13
+ * oracle::aggregate(oracle, collector)
14
+ *
15
+ * The fed rule set must match the on-chain weighted set for the ticker —
16
+ * `aggregator::remove_outliers` aborts `EMissingPriceSource` if a weighted rule
17
+ * is missing from the collector.
18
+ */
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.aggregateTicker = aggregateTicker;
21
+ exports.aggregateTickerWithPyth = aggregateTickerWithPyth;
22
+ exports.aggregateTickerWithConstant = aggregateTickerWithConstant;
23
+ exports.refreshOraclePrices = refreshOraclePrices;
24
+ const oracle_ts_1 = require("../generated/waterx_oracle/oracle.js");
25
+ const pyth_ts_1 = require("./pyth.js");
26
+ const constant_rule_ts_1 = require("./rules/constant-rule.js");
27
+ const pyth_rule_ts_1 = require("./rules/pyth-rule.js");
28
+ const supra_rule_ts_1 = require("./rules/supra-rule.js");
29
+ /**
30
+ * Aggregate one ticker's price into the shared `Oracle`: build a collector, feed
31
+ * every rule the ticker is configured for, then `aggregate`.
32
+ *
33
+ * - **Pyth** — fed when `priceInfoObjectId` is supplied (i.e. the ticker has a
34
+ * `pyth_rule.feeds` entry). Caller must run the Pyth update first so the
35
+ * `PriceInfoObject` is fresh.
36
+ * - **Supra** — fed alongside Pyth when supra is enabled + wired (abstains
37
+ * on-chain for symbols it has no pair for).
38
+ * - **Constant** — fed when the ticker is a constant ticker
39
+ * ({@link OracleHost.isConstantTicker}).
40
+ *
41
+ * "Dual-feed" (Pyth + Constant) and "constant-only" are not special cases — they
42
+ * fall out of which rules the ticker is in. Throws if no rule applies.
43
+ */
44
+ function aggregateTicker(tx, host, args) {
45
+ const oraclePkg = host.config.packages.waterx_oracle.published_at;
46
+ const collector = (0, oracle_ts_1.newCollector)({
47
+ package: oraclePkg,
48
+ arguments: { symbol: args.ticker },
49
+ })(tx);
50
+ let fed = false;
51
+ if (args.priceInfoObjectId) {
52
+ (0, pyth_rule_ts_1.feedPythRule)(tx, host, collector, args.priceInfoObjectId);
53
+ // Supra rides on the same collector when enabled (abstains on-chain otherwise).
54
+ (0, supra_rule_ts_1.maybeFeedSupra)(tx, host, collector);
55
+ fed = true;
56
+ }
57
+ if (host.isConstantTicker(args.ticker)) {
58
+ (0, constant_rule_ts_1.feedConstantRule)(tx, host, collector);
59
+ fed = true;
60
+ }
61
+ if (!fed) {
62
+ throw new Error(`no oracle rule configured for ticker '${args.ticker}' (no pyth feed, not a constant ticker)`);
63
+ }
64
+ (0, oracle_ts_1.aggregate)({
65
+ package: oraclePkg,
66
+ arguments: {
67
+ oracle: tx.object(host.config.packages.waterx_oracle.oracle),
68
+ collector,
69
+ },
70
+ })(tx);
71
+ }
72
+ /**
73
+ * Thin wrapper over {@link aggregateTicker} for a Pyth-fed ticker. Kept for
74
+ * back-compat (e.g. WLP mint builds). Caller must run the Pyth update first.
75
+ */
76
+ function aggregateTickerWithPyth(tx, host, args) {
77
+ aggregateTicker(tx, host, args);
78
+ }
79
+ /**
80
+ * {@link aggregateTicker} for a **constant-only** ticker (no Pyth update needed —
81
+ * the price comes from the on-chain `constant_rule::Config`).
82
+ *
83
+ * Throws if the ticker ALSO has a `pyth_rule.feeds` entry (a dual-feed transition
84
+ * ticker): feeding only the constant leg would leave the still-weighted Pyth rule
85
+ * absent from the collector and abort `aggregate` with `EMissingPriceSource`. Such
86
+ * tickers must go through {@link aggregateTicker} with a `priceInfoObjectId` (or
87
+ * {@link refreshOraclePrices}), which feeds both.
88
+ */
89
+ function aggregateTickerWithConstant(tx, host, args) {
90
+ if (host.config.packages.pyth_rule?.feeds?.[args.ticker] !== undefined) {
91
+ throw new Error(`'${args.ticker}' is in pyth_rule.feeds (dual-feed) — feed both via aggregateTicker({ priceInfoObjectId }) / refreshOraclePrices, not aggregateTickerWithConstant`);
92
+ }
93
+ aggregateTicker(tx, host, { ticker: args.ticker });
94
+ }
95
+ /**
96
+ * Refresh multiple tickers in one PTB. For each ticker {@link aggregateTicker}
97
+ * feeds whichever rules it is configured for (Pyth if it has a `pyth_rule.feeds`
98
+ * entry, Supra when enabled, Constant when it's a constant ticker). Tickers with a
99
+ * Pyth feed are updated on-chain via one shared Pyth accumulator first; the rest
100
+ * (constant-only) skip Pyth entirely.
101
+ */
102
+ async function refreshOraclePrices(tx, host, tickers, opts = {}) {
103
+ if (tickers.length === 0)
104
+ return;
105
+ // Every ticker with a pyth_rule.feeds entry needs the on-chain Pyth update
106
+ // first (one shared accumulator). Constant-only tickers (no pyth feed) skip it.
107
+ const pythTickers = tickers.filter((t) => host.config.packages.pyth_rule?.feeds?.[t] !== undefined);
108
+ const priceInfoByTicker = new Map();
109
+ if (pythTickers.length > 0) {
110
+ const entries = pythTickers.map((t) => host.getPythFeed(t));
111
+ await (0, pyth_ts_1.updatePythPrices)(tx, host, entries.map((e) => e.feed_id), opts.cache, opts.sponsorFund);
112
+ pythTickers.forEach((t, i) => priceInfoByTicker.set(t, entries[i].price_info_object));
113
+ }
114
+ // Aggregate each ticker, feeding whichever rules it is configured for.
115
+ for (const ticker of tickers) {
116
+ aggregateTicker(tx, host, { ticker, priceInfoObjectId: priceInfoByTicker.get(ticker) });
117
+ }
118
+ }
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Oracle-layer config schema — the package entries + config slice the shared
3
+ * oracle layer (Pyth source + oracle rules + aggregate) reads. This is shared
4
+ * infra, **not** the perp line: `perp/config.ts` imports these and
5
+ * `WaterXPackages extends OraclePackages`; nothing here imports `perp/` or
6
+ * `prediction/`. Snake_case mirrors the canonical `waterx-config` JSON 1:1.
7
+ *
8
+ * Hoisted out of `perp/config.ts` so {@link import("./host.ts").OracleHost}
9
+ * depends on this shared schema instead of the perp line's full config —
10
+ * mirrors the earlier account-config hoist.
11
+ */
12
+ import type { BasePackageEntry } from "../account/config.ts";
13
+ import type { BaseLineConfig } from "../base-client.ts";
14
+ import type { Network } from "../constants.ts";
15
+ export interface PythRulePackage extends BasePackageEntry {
16
+ config: string;
17
+ feeds: Record<string, {
18
+ feed_id: string;
19
+ price_info_object: string;
20
+ }>;
21
+ }
22
+ export interface PythSponsorRulePackage extends BasePackageEntry {
23
+ pyth_sponsor: string;
24
+ }
25
+ /** Per-ticker `constant_rule` feed entry (mirrors the `pyth_rule.feeds` shape). */
26
+ export interface ConstantFeedEntry {
27
+ /**
28
+ * Constant 1e9-scaled price (decimal string), mirroring the on-chain
29
+ * `Config.prices` value (e.g. `"1000000000"` for $1). Informational off-chain —
30
+ * the on-chain `constant_rule::feed` reads the price from `Config`; the SDK only
31
+ * keys routing off the presence of the entry.
32
+ */
33
+ price: string;
34
+ }
35
+ export interface WaterxConstantRulePackage extends BasePackageEntry {
36
+ /** Shared `constant_rule::Config` holding the per-ticker constant prices. */
37
+ config: string;
38
+ /**
39
+ * Oracle ticker → constant feed entry, mirroring `pyth_rule.feeds`. A ticker
40
+ * present here is fed via `constant_rule::feed` instead of (steady state) or
41
+ * alongside (dual-feed) `pyth_rule::feed` (e.g. `USDCUSD → { price: "1000000000" }`).
42
+ */
43
+ feeds?: Record<string, ConstantFeedEntry>;
44
+ }
45
+ /** Per-ticker `supra_rule` feed entry (mirrors the `pyth_rule.feeds` shape). */
46
+ export interface SupraFeedEntry {
47
+ /** Supra pair id (mirrors the on-chain `Config`; informational off-chain). */
48
+ pair_id: number;
49
+ /** Optional per-ticker freshness tolerance override (ms). */
50
+ tolerance_ms?: number;
51
+ }
52
+ export interface SupraRulePackage extends BasePackageEntry {
53
+ /** Shared `supra_rule::Config` (per-symbol Supra pair_id + freshness tolerance). */
54
+ config: string;
55
+ /** Supra `OracleHolder` shared object id (network-specific). Required to feed. */
56
+ oracle_holder?: string;
57
+ /** Oracle ticker → Supra feed entry (mirrors the on-chain `Config`; informational). */
58
+ feeds?: Record<string, SupraFeedEntry>;
59
+ /**
60
+ * When true AND `config` + `oracle_holder` are set, `refreshOraclePrices`
61
+ * feeds `supra_rule` on the same `PriceCollector` as Pyth before `aggregate`
62
+ * (a second weighted rule). Defaults to **false** so a Pyth-only deployment
63
+ * is unaffected — flip on only after `weight_threshold`/feeders are ready.
64
+ */
65
+ enabled?: boolean;
66
+ }
67
+ export interface WaterxOraclePackage extends BasePackageEntry {
68
+ listing_cap: string;
69
+ oracle: string;
70
+ aggregators: Record<string, string>;
71
+ }
72
+ /**
73
+ * The package subset the shared oracle layer reads. A line config
74
+ * (`WaterXPackages`) **extends** this, so any line client's config is
75
+ * structurally an oracle config.
76
+ */
77
+ export interface OraclePackages {
78
+ pyth_rule: PythRulePackage;
79
+ pyth_sponsor_rule?: PythSponsorRulePackage;
80
+ constant_rule?: WaterxConstantRulePackage;
81
+ supra_rule?: SupraRulePackage;
82
+ waterx_oracle: WaterxOraclePackage;
83
+ }
84
+ export interface PythInfraConfig {
85
+ state_id: string;
86
+ wormhole_state_id: string;
87
+ hermes_endpoint: string;
88
+ }
89
+ export declare const PYTH_DEFAULTS: Record<Network, PythInfraConfig>;
90
+ /**
91
+ * The narrow config shape the oracle/refresh code needs. `WaterXConfig`
92
+ * (the perp line's full config) is assignable to this, so `PerpClient` satisfies
93
+ * {@link import("./host.ts").OracleHost} without the oracle layer importing `perp/`.
94
+ */
95
+ export interface OracleConfig extends BaseLineConfig {
96
+ packages: OraclePackages;
97
+ /** Pyth infra override (defaults from {@link PYTH_DEFAULTS}). */
98
+ pyth?: PythInfraConfig;
99
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ /**
3
+ * Oracle-layer config schema — the package entries + config slice the shared
4
+ * oracle layer (Pyth source + oracle rules + aggregate) reads. This is shared
5
+ * infra, **not** the perp line: `perp/config.ts` imports these and
6
+ * `WaterXPackages extends OraclePackages`; nothing here imports `perp/` or
7
+ * `prediction/`. Snake_case mirrors the canonical `waterx-config` JSON 1:1.
8
+ *
9
+ * Hoisted out of `perp/config.ts` so {@link import("./host.ts").OracleHost}
10
+ * depends on this shared schema instead of the perp line's full config —
11
+ * mirrors the earlier account-config hoist.
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.PYTH_DEFAULTS = void 0;
15
+ exports.PYTH_DEFAULTS = {
16
+ MAINNET: {
17
+ state_id: "0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",
18
+ wormhole_state_id: "0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",
19
+ hermes_endpoint: "https://hermes.pyth.network",
20
+ },
21
+ TESTNET: {
22
+ state_id: "0x243759059f4c3111179da5878c12f68d612c21a8d54d85edc86164bb18be1c7c",
23
+ wormhole_state_id: "0x31358d198147da50db32eda2562951d53973a0c0ad5ed738e9b17d88b213d790",
24
+ hermes_endpoint: "https://hermes-beta.pyth.network",
25
+ },
26
+ };
@@ -0,0 +1,32 @@
1
+ /**
2
+ * `OracleHost` — the narrow slice of a line client the oracle module reads.
3
+ *
4
+ * The oracle/refresh code used to take a concrete `PerpClient`, which fused the
5
+ * shared oracle layer to the perp line. It only ever needs config-schema
6
+ * lookups, the Pyth infra block, and a gRPC client — so it depends on this
7
+ * structural interface instead. `PerpClient` satisfies it without any `implements`
8
+ * clause, and a future `PredictClient` (or a test double) can too.
9
+ */
10
+ import type { SuiGrpcClient } from "@mysten/sui/grpc";
11
+ import type { OracleConfig, PythInfraConfig } from "./config.ts";
12
+ export interface OracleHost {
13
+ /** Oracle slice of the canonical `waterx-config` JSON (rule packages + per-ticker feeds). */
14
+ readonly config: OracleConfig;
15
+ /** External Pyth/Wormhole/Hermes infra (network default, overridable via config). */
16
+ readonly pyth: PythInfraConfig;
17
+ /** gRPC client for the on-chain reads the Pyth update path needs. */
18
+ readonly grpcClient: SuiGrpcClient;
19
+ /** True when `ticker` is priced by `constant_rule`. */
20
+ isConstantTicker(ticker: string): boolean;
21
+ /** The `supra_rule` config when deployed, enabled, and fully wired; else `undefined`. */
22
+ getSupraRule(): {
23
+ published_at: string;
24
+ config: string;
25
+ oracle_holder: string;
26
+ } | undefined;
27
+ /** The `pyth_rule.feeds` entry for `ticker` (`{ feed_id, price_info_object }`); throws if absent. */
28
+ getPythFeed(ticker: string): {
29
+ feed_id: string;
30
+ price_info_object: string;
31
+ };
32
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ /**
3
+ * `OracleHost` — the narrow slice of a line client the oracle module reads.
4
+ *
5
+ * The oracle/refresh code used to take a concrete `PerpClient`, which fused the
6
+ * shared oracle layer to the perp line. It only ever needs config-schema
7
+ * lookups, the Pyth infra block, and a gRPC client — so it depends on this
8
+ * structural interface instead. `PerpClient` satisfies it without any `implements`
9
+ * clause, and a future `PredictClient` (or a test double) can too.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Oracle module — the single source of truth for price freshness.
3
+ *
4
+ * Layering (no cross-imports between siblings except via `aggregate.ts`):
5
+ * - `host.ts` — `OracleHost`, the narrow client slice this module reads.
6
+ * - `pyth.ts` — Pyth as a price source: Hermes REST + on-chain update PTB.
7
+ * - `rules/*` — one file per oracle rule (pyth / supra / constant / sponsor).
8
+ * - `aggregate.ts`— the orchestrator that feeds rules into a collector + aggregates.
9
+ *
10
+ * `pyth.ts` deliberately imports NO rule package — Pyth-the-source and the
11
+ * rules that consume it are separate concerns.
12
+ */
13
+ export type { OracleHost } from "./host.ts";
14
+ export { PythCache, fetchPriceFeedsUpdateData, buildPythPriceUpdateCalls, updatePythPrices, } from "./pyth.ts";
15
+ export { aggregateTicker, aggregateTickerWithPyth, aggregateTickerWithConstant, refreshOraclePrices, } from "./aggregate.ts";
16
+ export { openPythSponsorFund, reimbursePythSponsor } from "./rules/sponsor.ts";
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ /**
3
+ * Oracle module — the single source of truth for price freshness.
4
+ *
5
+ * Layering (no cross-imports between siblings except via `aggregate.ts`):
6
+ * - `host.ts` — `OracleHost`, the narrow client slice this module reads.
7
+ * - `pyth.ts` — Pyth as a price source: Hermes REST + on-chain update PTB.
8
+ * - `rules/*` — one file per oracle rule (pyth / supra / constant / sponsor).
9
+ * - `aggregate.ts`— the orchestrator that feeds rules into a collector + aggregates.
10
+ *
11
+ * `pyth.ts` deliberately imports NO rule package — Pyth-the-source and the
12
+ * rules that consume it are separate concerns.
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.reimbursePythSponsor = exports.openPythSponsorFund = exports.refreshOraclePrices = exports.aggregateTickerWithConstant = exports.aggregateTickerWithPyth = exports.aggregateTicker = exports.updatePythPrices = exports.buildPythPriceUpdateCalls = exports.fetchPriceFeedsUpdateData = exports.PythCache = void 0;
16
+ // Pyth source
17
+ var pyth_ts_1 = require("./pyth.js");
18
+ Object.defineProperty(exports, "PythCache", { enumerable: true, get: function () { return pyth_ts_1.PythCache; } });
19
+ Object.defineProperty(exports, "fetchPriceFeedsUpdateData", { enumerable: true, get: function () { return pyth_ts_1.fetchPriceFeedsUpdateData; } });
20
+ Object.defineProperty(exports, "buildPythPriceUpdateCalls", { enumerable: true, get: function () { return pyth_ts_1.buildPythPriceUpdateCalls; } });
21
+ Object.defineProperty(exports, "updatePythPrices", { enumerable: true, get: function () { return pyth_ts_1.updatePythPrices; } });
22
+ // Aggregation orchestrator
23
+ var aggregate_ts_1 = require("./aggregate.js");
24
+ Object.defineProperty(exports, "aggregateTicker", { enumerable: true, get: function () { return aggregate_ts_1.aggregateTicker; } });
25
+ Object.defineProperty(exports, "aggregateTickerWithPyth", { enumerable: true, get: function () { return aggregate_ts_1.aggregateTickerWithPyth; } });
26
+ Object.defineProperty(exports, "aggregateTickerWithConstant", { enumerable: true, get: function () { return aggregate_ts_1.aggregateTickerWithConstant; } });
27
+ Object.defineProperty(exports, "refreshOraclePrices", { enumerable: true, get: function () { return aggregate_ts_1.refreshOraclePrices; } });
28
+ // Sponsor rule (fund open / reimburse + witness attach)
29
+ var sponsor_ts_1 = require("./rules/sponsor.js");
30
+ Object.defineProperty(exports, "openPythSponsorFund", { enumerable: true, get: function () { return sponsor_ts_1.openPythSponsorFund; } });
31
+ Object.defineProperty(exports, "reimbursePythSponsor", { enumerable: true, get: function () { return sponsor_ts_1.reimbursePythSponsor; } });
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Pyth as a price *source*: Hermes REST + the on-chain Pyth update PTB.
3
+ *
4
+ * This file knows nothing about oracle *rules* (pyth_rule / supra_rule /
5
+ * constant_rule / sponsor) — it only fetches price update VAAs from Hermes and
6
+ * appends the Pyth on-chain update block, returning the refreshed
7
+ * `PriceInfoObject` IDs. Feeding rules into a collector and aggregating lives in
8
+ * `aggregate.ts`; the rule wrappers live in `rules/`.
9
+ *
10
+ * On-chain a single PTB:
11
+ * 1. wormhole::vaa::parse_and_verify
12
+ * 2. pyth::create_authenticated_price_infos_using_accumulator
13
+ * 3. pyth::update_single_price_feed (one per feed)
14
+ * 4. hot_potato_vector::destroy
15
+ */
16
+ import type { Transaction, TransactionArgument } from "@mysten/sui/transactions";
17
+ import type { OracleHost } from "./host.ts";
18
+ type PriceTableInfo = {
19
+ id: string;
20
+ fieldType: string;
21
+ };
22
+ type PythStateInfo = {
23
+ packageId: string;
24
+ baseUpdateFee: bigint;
25
+ };
26
+ export declare class PythCache {
27
+ pythStateInfo?: PythStateInfo;
28
+ wormholePackageId?: string;
29
+ priceTableInfo?: PriceTableInfo;
30
+ priceFeedObjectIdCache: Map<string, string | undefined>;
31
+ }
32
+ export declare function fetchPriceFeedsUpdateData(endpoint: string, priceIds: string[]): Promise<Uint8Array[]>;
33
+ /**
34
+ * Append the on-chain Pyth update PTB block. Returns `PriceInfoObject` IDs
35
+ * (one per `feedIds`, same order). After this you can feed `pyth_rule` per
36
+ * ticker against the matching `PriceInfoObject` (see `rules/pyth-rule.ts`).
37
+ *
38
+ * If `sponsorFund` is provided, the per-feed update fee comes from the
39
+ * sponsor pool (`pyth_sponsor_rule::split`) instead of `tx.gas`. Opening and
40
+ * reimbursing that fund is the sponsor rule's job (`rules/sponsor.ts`); here we
41
+ * only draw a fee coin from the already-open `fund` hot potato.
42
+ */
43
+ export declare function buildPythPriceUpdateCalls(tx: Transaction, host: OracleHost, updates: Uint8Array[], feedIds: string[], cache?: PythCache, sponsorFund?: {
44
+ fund: TransactionArgument;
45
+ packageId: string;
46
+ }): Promise<string[]>;
47
+ /** All-in-one: fetch from Hermes, append update calls. Returns PriceInfoObject IDs. */
48
+ export declare function updatePythPrices(tx: Transaction, host: OracleHost, feedIds: string[], cache?: PythCache, sponsorFund?: {
49
+ fund: TransactionArgument;
50
+ packageId: string;
51
+ }): Promise<string[]>;
52
+ export {};