@zofai/zo-sdk 0.1.92

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 (275) hide show
  1. package/.claude/settings.local.json +9 -0
  2. package/.gitattributes +4 -0
  3. package/.prettierrc.js +9 -0
  4. package/README.md +28 -0
  5. package/dist/abstract/BaseAPI.cjs +206 -0
  6. package/dist/abstract/BaseAPI.cjs.map +1 -0
  7. package/dist/abstract/BaseAPI.d.cts +172 -0
  8. package/dist/abstract/BaseAPI.d.cts.map +1 -0
  9. package/dist/abstract/BaseAPI.d.mts +172 -0
  10. package/dist/abstract/BaseAPI.d.mts.map +1 -0
  11. package/dist/abstract/BaseAPI.mjs +202 -0
  12. package/dist/abstract/BaseAPI.mjs.map +1 -0
  13. package/dist/abstract/BaseDataAPI.cjs +140 -0
  14. package/dist/abstract/BaseDataAPI.cjs.map +1 -0
  15. package/dist/abstract/BaseDataAPI.d.cts +89 -0
  16. package/dist/abstract/BaseDataAPI.d.cts.map +1 -0
  17. package/dist/abstract/BaseDataAPI.d.mts +89 -0
  18. package/dist/abstract/BaseDataAPI.d.mts.map +1 -0
  19. package/dist/abstract/BaseDataAPI.mjs +136 -0
  20. package/dist/abstract/BaseDataAPI.mjs.map +1 -0
  21. package/dist/abstract/index.cjs +12 -0
  22. package/dist/abstract/index.cjs.map +1 -0
  23. package/dist/abstract/index.d.cts +7 -0
  24. package/dist/abstract/index.d.cts.map +1 -0
  25. package/dist/abstract/index.d.mts +7 -0
  26. package/dist/abstract/index.d.mts.map +1 -0
  27. package/dist/abstract/index.mjs +7 -0
  28. package/dist/abstract/index.mjs.map +1 -0
  29. package/dist/api.cjs +779 -0
  30. package/dist/api.cjs.map +1 -0
  31. package/dist/api.d.cts +75 -0
  32. package/dist/api.d.cts.map +1 -0
  33. package/dist/api.d.mts +75 -0
  34. package/dist/api.d.mts.map +1 -0
  35. package/dist/api.mjs +775 -0
  36. package/dist/api.mjs.map +1 -0
  37. package/dist/bcs.cjs +42 -0
  38. package/dist/bcs.cjs.map +1 -0
  39. package/dist/bcs.d.cts +91 -0
  40. package/dist/bcs.d.cts.map +1 -0
  41. package/dist/bcs.d.mts +91 -0
  42. package/dist/bcs.d.mts.map +1 -0
  43. package/dist/bcs.mjs +39 -0
  44. package/dist/bcs.mjs.map +1 -0
  45. package/dist/consts/deployments-shared-mainnet.json +50 -0
  46. package/dist/consts/deployments-shared-testnet.json +45 -0
  47. package/dist/consts/deployments-slp-mainnet.json +600 -0
  48. package/dist/consts/deployments-slp-testnet.json +87 -0
  49. package/dist/consts/deployments-usdz-mainnet.json +494 -0
  50. package/dist/consts/deployments-usdz-testnet.json +98 -0
  51. package/dist/consts/deployments-zbtcvc-mainnet.json +180 -0
  52. package/dist/consts/deployments-zlp-mainnet.json +791 -0
  53. package/dist/consts/deployments-zlp-testnet.json +76 -0
  54. package/dist/consts/index.cjs +200 -0
  55. package/dist/consts/index.cjs.map +1 -0
  56. package/dist/consts/index.d.cts +157 -0
  57. package/dist/consts/index.d.cts.map +1 -0
  58. package/dist/consts/index.d.mts +157 -0
  59. package/dist/consts/index.d.mts.map +1 -0
  60. package/dist/consts/index.mjs +189 -0
  61. package/dist/consts/index.mjs.map +1 -0
  62. package/dist/consts/price_id_to_object_id.mainnet.json +56 -0
  63. package/dist/consts/price_id_to_object_id.testnet.json +17 -0
  64. package/dist/data.cjs +919 -0
  65. package/dist/data.cjs.map +1 -0
  66. package/dist/data.d.cts +235 -0
  67. package/dist/data.d.cts.map +1 -0
  68. package/dist/data.d.mts +235 -0
  69. package/dist/data.d.mts.map +1 -0
  70. package/dist/data.mjs +915 -0
  71. package/dist/data.mjs.map +1 -0
  72. package/dist/factory/SDKFactory.cjs +228 -0
  73. package/dist/factory/SDKFactory.cjs.map +1 -0
  74. package/dist/factory/SDKFactory.d.cts +84 -0
  75. package/dist/factory/SDKFactory.d.cts.map +1 -0
  76. package/dist/factory/SDKFactory.d.mts +84 -0
  77. package/dist/factory/SDKFactory.d.mts.map +1 -0
  78. package/dist/factory/SDKFactory.mjs +222 -0
  79. package/dist/factory/SDKFactory.mjs.map +1 -0
  80. package/dist/implementations/SLPAPI.cjs +1794 -0
  81. package/dist/implementations/SLPAPI.cjs.map +1 -0
  82. package/dist/implementations/SLPAPI.d.cts +183 -0
  83. package/dist/implementations/SLPAPI.d.cts.map +1 -0
  84. package/dist/implementations/SLPAPI.d.mts +183 -0
  85. package/dist/implementations/SLPAPI.d.mts.map +1 -0
  86. package/dist/implementations/SLPAPI.mjs +1790 -0
  87. package/dist/implementations/SLPAPI.mjs.map +1 -0
  88. package/dist/implementations/SLPDataAPI.cjs +1384 -0
  89. package/dist/implementations/SLPDataAPI.cjs.map +1 -0
  90. package/dist/implementations/SLPDataAPI.d.cts +158 -0
  91. package/dist/implementations/SLPDataAPI.d.cts.map +1 -0
  92. package/dist/implementations/SLPDataAPI.d.mts +158 -0
  93. package/dist/implementations/SLPDataAPI.d.mts.map +1 -0
  94. package/dist/implementations/SLPDataAPI.mjs +1380 -0
  95. package/dist/implementations/SLPDataAPI.mjs.map +1 -0
  96. package/dist/implementations/USDZAPI.cjs +1676 -0
  97. package/dist/implementations/USDZAPI.cjs.map +1 -0
  98. package/dist/implementations/USDZAPI.d.cts +180 -0
  99. package/dist/implementations/USDZAPI.d.cts.map +1 -0
  100. package/dist/implementations/USDZAPI.d.mts +180 -0
  101. package/dist/implementations/USDZAPI.d.mts.map +1 -0
  102. package/dist/implementations/USDZAPI.mjs +1672 -0
  103. package/dist/implementations/USDZAPI.mjs.map +1 -0
  104. package/dist/implementations/USDZDataAPI.cjs +1209 -0
  105. package/dist/implementations/USDZDataAPI.cjs.map +1 -0
  106. package/dist/implementations/USDZDataAPI.d.cts +191 -0
  107. package/dist/implementations/USDZDataAPI.d.cts.map +1 -0
  108. package/dist/implementations/USDZDataAPI.d.mts +191 -0
  109. package/dist/implementations/USDZDataAPI.d.mts.map +1 -0
  110. package/dist/implementations/USDZDataAPI.mjs +1205 -0
  111. package/dist/implementations/USDZDataAPI.mjs.map +1 -0
  112. package/dist/implementations/ZBTCVCAPI.cjs +906 -0
  113. package/dist/implementations/ZBTCVCAPI.cjs.map +1 -0
  114. package/dist/implementations/ZBTCVCAPI.d.cts +107 -0
  115. package/dist/implementations/ZBTCVCAPI.d.cts.map +1 -0
  116. package/dist/implementations/ZBTCVCAPI.d.mts +107 -0
  117. package/dist/implementations/ZBTCVCAPI.d.mts.map +1 -0
  118. package/dist/implementations/ZBTCVCAPI.mjs +902 -0
  119. package/dist/implementations/ZBTCVCAPI.mjs.map +1 -0
  120. package/dist/implementations/ZBTCVCDataAPI.cjs +829 -0
  121. package/dist/implementations/ZBTCVCDataAPI.cjs.map +1 -0
  122. package/dist/implementations/ZBTCVCDataAPI.d.cts +94 -0
  123. package/dist/implementations/ZBTCVCDataAPI.d.cts.map +1 -0
  124. package/dist/implementations/ZBTCVCDataAPI.d.mts +94 -0
  125. package/dist/implementations/ZBTCVCDataAPI.d.mts.map +1 -0
  126. package/dist/implementations/ZBTCVCDataAPI.mjs +825 -0
  127. package/dist/implementations/ZBTCVCDataAPI.mjs.map +1 -0
  128. package/dist/implementations/ZLPAPI.cjs +1948 -0
  129. package/dist/implementations/ZLPAPI.cjs.map +1 -0
  130. package/dist/implementations/ZLPAPI.d.cts +192 -0
  131. package/dist/implementations/ZLPAPI.d.cts.map +1 -0
  132. package/dist/implementations/ZLPAPI.d.mts +192 -0
  133. package/dist/implementations/ZLPAPI.d.mts.map +1 -0
  134. package/dist/implementations/ZLPAPI.mjs +1944 -0
  135. package/dist/implementations/ZLPAPI.mjs.map +1 -0
  136. package/dist/implementations/ZLPDataAPI.cjs +1267 -0
  137. package/dist/implementations/ZLPDataAPI.cjs.map +1 -0
  138. package/dist/implementations/ZLPDataAPI.d.cts +193 -0
  139. package/dist/implementations/ZLPDataAPI.d.cts.map +1 -0
  140. package/dist/implementations/ZLPDataAPI.d.mts +193 -0
  141. package/dist/implementations/ZLPDataAPI.d.mts.map +1 -0
  142. package/dist/implementations/ZLPDataAPI.mjs +1263 -0
  143. package/dist/implementations/ZLPDataAPI.mjs.map +1 -0
  144. package/dist/implementations/index.cjs +26 -0
  145. package/dist/implementations/index.cjs.map +1 -0
  146. package/dist/implementations/index.d.cts +13 -0
  147. package/dist/implementations/index.d.cts.map +1 -0
  148. package/dist/implementations/index.d.mts +13 -0
  149. package/dist/implementations/index.d.mts.map +1 -0
  150. package/dist/implementations/index.mjs +15 -0
  151. package/dist/implementations/index.mjs.map +1 -0
  152. package/dist/index.cjs +69 -0
  153. package/dist/index.cjs.map +1 -0
  154. package/dist/index.d.cts +51 -0
  155. package/dist/index.d.cts.map +1 -0
  156. package/dist/index.d.mts +51 -0
  157. package/dist/index.d.mts.map +1 -0
  158. package/dist/index.mjs +51 -0
  159. package/dist/index.mjs.map +1 -0
  160. package/dist/interfaces/base.cjs +7 -0
  161. package/dist/interfaces/base.cjs.map +1 -0
  162. package/dist/interfaces/base.d.cts +346 -0
  163. package/dist/interfaces/base.d.cts.map +1 -0
  164. package/dist/interfaces/base.d.mts +346 -0
  165. package/dist/interfaces/base.d.mts.map +1 -0
  166. package/dist/interfaces/base.mjs +6 -0
  167. package/dist/interfaces/base.mjs.map +1 -0
  168. package/dist/interfaces/index.cjs +31 -0
  169. package/dist/interfaces/index.cjs.map +1 -0
  170. package/dist/interfaces/index.d.cts +15 -0
  171. package/dist/interfaces/index.d.cts.map +1 -0
  172. package/dist/interfaces/index.d.mts +15 -0
  173. package/dist/interfaces/index.d.mts.map +1 -0
  174. package/dist/interfaces/index.mjs +15 -0
  175. package/dist/interfaces/index.mjs.map +1 -0
  176. package/dist/interfaces/slp.cjs +7 -0
  177. package/dist/interfaces/slp.cjs.map +1 -0
  178. package/dist/interfaces/slp.d.cts +179 -0
  179. package/dist/interfaces/slp.d.cts.map +1 -0
  180. package/dist/interfaces/slp.d.mts +179 -0
  181. package/dist/interfaces/slp.d.mts.map +1 -0
  182. package/dist/interfaces/slp.mjs +6 -0
  183. package/dist/interfaces/slp.mjs.map +1 -0
  184. package/dist/interfaces/usdz.cjs +7 -0
  185. package/dist/interfaces/usdz.cjs.map +1 -0
  186. package/dist/interfaces/usdz.d.cts +104 -0
  187. package/dist/interfaces/usdz.d.cts.map +1 -0
  188. package/dist/interfaces/usdz.d.mts +104 -0
  189. package/dist/interfaces/usdz.d.mts.map +1 -0
  190. package/dist/interfaces/usdz.mjs +6 -0
  191. package/dist/interfaces/usdz.mjs.map +1 -0
  192. package/dist/interfaces/zbtcvc.cjs +7 -0
  193. package/dist/interfaces/zbtcvc.cjs.map +1 -0
  194. package/dist/interfaces/zbtcvc.d.cts +64 -0
  195. package/dist/interfaces/zbtcvc.d.cts.map +1 -0
  196. package/dist/interfaces/zbtcvc.d.mts +64 -0
  197. package/dist/interfaces/zbtcvc.d.mts.map +1 -0
  198. package/dist/interfaces/zbtcvc.mjs +6 -0
  199. package/dist/interfaces/zbtcvc.mjs.map +1 -0
  200. package/dist/interfaces/zlp.cjs +7 -0
  201. package/dist/interfaces/zlp.cjs.map +1 -0
  202. package/dist/interfaces/zlp.d.cts +114 -0
  203. package/dist/interfaces/zlp.d.cts.map +1 -0
  204. package/dist/interfaces/zlp.d.mts +114 -0
  205. package/dist/interfaces/zlp.d.mts.map +1 -0
  206. package/dist/interfaces/zlp.mjs +6 -0
  207. package/dist/interfaces/zlp.mjs.map +1 -0
  208. package/dist/oracle.cjs +118 -0
  209. package/dist/oracle.cjs.map +1 -0
  210. package/dist/oracle.d.cts +25 -0
  211. package/dist/oracle.d.cts.map +1 -0
  212. package/dist/oracle.d.mts +25 -0
  213. package/dist/oracle.d.mts.map +1 -0
  214. package/dist/oracle.mjs +114 -0
  215. package/dist/oracle.mjs.map +1 -0
  216. package/dist/utils.cjs +129 -0
  217. package/dist/utils.cjs.map +1 -0
  218. package/dist/utils.d.cts +44 -0
  219. package/dist/utils.d.cts.map +1 -0
  220. package/dist/utils.d.mts +44 -0
  221. package/dist/utils.d.mts.map +1 -0
  222. package/dist/utils.mjs +115 -0
  223. package/dist/utils.mjs.map +1 -0
  224. package/docs/SUMMARY.md +10 -0
  225. package/docs/api-reference.md +32 -0
  226. package/docs/architecture.md +14 -0
  227. package/docs/common-operations.md +52 -0
  228. package/docs/error-handling.md +17 -0
  229. package/docs/getting-started.md +60 -0
  230. package/docs/introduction.md +15 -0
  231. package/docs/lp-specific-features.md +96 -0
  232. package/docs/type-safety.md +29 -0
  233. package/eslint.config.mjs +18 -0
  234. package/package.json +42 -0
  235. package/src/abstract/BaseAPI.ts +575 -0
  236. package/src/abstract/BaseDataAPI.ts +207 -0
  237. package/src/abstract/index.ts +7 -0
  238. package/src/api.ts +1100 -0
  239. package/src/bcs.ts +45 -0
  240. package/src/consts/deployments-shared-mainnet.json +50 -0
  241. package/src/consts/deployments-shared-testnet.json +45 -0
  242. package/src/consts/deployments-slp-mainnet.json +600 -0
  243. package/src/consts/deployments-slp-testnet.json +87 -0
  244. package/src/consts/deployments-usdz-mainnet.json +494 -0
  245. package/src/consts/deployments-usdz-testnet.json +98 -0
  246. package/src/consts/deployments-zbtcvc-mainnet.json +180 -0
  247. package/src/consts/deployments-zlp-mainnet.json +791 -0
  248. package/src/consts/deployments-zlp-testnet.json +76 -0
  249. package/src/consts/index.ts +345 -0
  250. package/src/consts/price_id_to_object_id.mainnet.json +56 -0
  251. package/src/consts/price_id_to_object_id.testnet.json +17 -0
  252. package/src/data.ts +1279 -0
  253. package/src/factory/SDKFactory.ts +340 -0
  254. package/src/implementations/SLPAPI.ts +2722 -0
  255. package/src/implementations/SLPDataAPI.ts +1839 -0
  256. package/src/implementations/USDZAPI.ts +2488 -0
  257. package/src/implementations/USDZDataAPI.ts +1548 -0
  258. package/src/implementations/ZBTCVCAPI.ts +1337 -0
  259. package/src/implementations/ZBTCVCDataAPI.ts +993 -0
  260. package/src/implementations/ZLPAPI.ts +2888 -0
  261. package/src/implementations/ZLPDataAPI.ts +1603 -0
  262. package/src/implementations/index.ts +16 -0
  263. package/src/index.ts +58 -0
  264. package/src/interfaces/base.ts +838 -0
  265. package/src/interfaces/index.ts +50 -0
  266. package/src/interfaces/slp.ts +268 -0
  267. package/src/interfaces/usdz.ts +181 -0
  268. package/src/interfaces/zbtcvc.ts +116 -0
  269. package/src/interfaces/zlp.ts +244 -0
  270. package/src/oracle.ts +153 -0
  271. package/src/utils.ts +168 -0
  272. package/tests/api.test.ts +219 -0
  273. package/tests/data.test.ts +156 -0
  274. package/tests/oracle.test.ts +33 -0
  275. package/tsconfig.json +22 -0
@@ -0,0 +1,64 @@
1
+ /**
2
+ * USDZ-specific interfaces and types
3
+ * Extends base interfaces with USDZ-specific implementations
4
+ */
5
+ import type { Transaction, TransactionObjectArgument } from "@mysten/sui/transactions";
6
+ import type { IBaseAPI, IBaseCredential, IBaseDataAPI, IBaseFundingFeeModel, IBaseHistory, IBaseMarketInfo, IBaseMarketValuationInfo, IBaseOrderCapInfo, IBaseOrderInfo, IBasePositionCapInfo, IBasePositionConfig, IBasePositionInfo, IBaseRebaseFeeModel, IBaseReservingFeeModel, IBaseStakePool, IBaseSymbolInfo, IBaseVaultInfo } from "./base.cjs";
7
+ export interface IZBTCVCMarketValuationInfo extends IBaseMarketValuationInfo {
8
+ }
9
+ export interface IZBTCVCVaultInfo extends IBaseVaultInfo {
10
+ }
11
+ export interface IZBTCVCReservingFeeModel extends IBaseReservingFeeModel {
12
+ }
13
+ export interface IZBTCVCFundingFeeModel extends IBaseFundingFeeModel {
14
+ }
15
+ export interface IZBTCVCRebaseFeeModel extends IBaseRebaseFeeModel {
16
+ }
17
+ export interface IZBTCVCSymbolInfo extends IBaseSymbolInfo {
18
+ }
19
+ export interface IZBTCVCMarketInfo extends IBaseMarketInfo {
20
+ }
21
+ export interface IZBTCVCPositionInfo extends IBasePositionInfo {
22
+ }
23
+ export interface IZBTCVCPositionConfig extends IBasePositionConfig {
24
+ }
25
+ export interface IZBTCVCPositionCapInfo extends IBasePositionCapInfo {
26
+ }
27
+ export interface IZBTCVCOrderInfo extends IBaseOrderInfo {
28
+ }
29
+ export interface IZBTCVCOrderCapInfo extends IBaseOrderCapInfo {
30
+ }
31
+ export interface IZBTCVCHistory extends IBaseHistory {
32
+ }
33
+ export interface IZBTCVCStakePool extends IBaseStakePool {
34
+ rewardRate: bigint;
35
+ }
36
+ export interface IZBTCVCCredential extends IBaseCredential {
37
+ }
38
+ export interface IZBTCVCPositionInstantExitFeeConfig {
39
+ instant_exit_tier_1_duration_threshold: number;
40
+ instant_exit_tier_1_fee_bps: number;
41
+ instant_exit_tier_1_fee_enabled: boolean;
42
+ instant_exit_tier_2_duration_threshold: number;
43
+ instant_exit_tier_2_fee_bps: number;
44
+ instant_exit_tier_2_fee_enabled: boolean;
45
+ instant_exit_tier_3_duration_threshold: number;
46
+ instant_exit_tier_3_fee_bps: number;
47
+ instant_exit_tier_3_fee_enabled: boolean;
48
+ }
49
+ export interface IZBTCVCSymbolConfig {
50
+ id: string;
51
+ max_opening_size: number;
52
+ max_opening_size_enabled: boolean;
53
+ max_opening_size_per_position: number;
54
+ max_opening_size_per_position_enabled: boolean;
55
+ instant_exit_fee_config: IZBTCVCPositionInstantExitFeeConfig;
56
+ }
57
+ export interface IZBTCVCDataAPI extends IBaseDataAPI {
58
+ getSymbolConfig: (indexToken: string, long: boolean) => Promise<IZBTCVCSymbolConfig | null>;
59
+ }
60
+ export interface IZBTCVCAPI extends IBaseAPI {
61
+ depositPtb: (coin: string, coinObjects: string[], amount: number, minAmountOut?: number, referralAddress?: string, sender?: string, tx?: Transaction, sponsoredTx?: boolean, suiCoinObjectsForPythUpdate?: string[]) => Promise<TransactionObjectArgument>;
62
+ stakeCoinObject: (coinObject: TransactionObjectArgument, pool: string, tx?: Transaction) => Transaction;
63
+ }
64
+ //# sourceMappingURL=zbtcvc.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zbtcvc.d.cts","sourceRoot":"","sources":["../../src/interfaces/zbtcvc.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,yBAAyB,EAAE,iCAAgC;AAEtF,OAAO,KAAK,EACV,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,wBAAwB,EACxB,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,cAAc,EACf,mBAAc;AAGf,MAAM,WAAW,0BAA2B,SAAQ,wBAAwB;CAAI;AAEhF,MAAM,WAAW,gBAAiB,SAAQ,cAAc;CAAI;AAE5D,MAAM,WAAW,wBAAyB,SAAQ,sBAAsB;CAAI;AAE5E,MAAM,WAAW,sBAAuB,SAAQ,oBAAoB;CAAI;AAExE,MAAM,WAAW,qBAAsB,SAAQ,mBAAmB;CAAI;AAEtE,MAAM,WAAW,iBAAkB,SAAQ,eAAe;CAAI;AAE9D,MAAM,WAAW,iBAAkB,SAAQ,eAAe;CAEzD;AAED,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;CAE7D;AAED,MAAM,WAAW,qBAAsB,SAAQ,mBAAmB;CAAI;AAEtE,MAAM,WAAW,sBAAuB,SAAQ,oBAAoB;CAAI;AAExE,MAAM,WAAW,gBAAiB,SAAQ,cAAc;CAAI;AAE5D,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;CAAI;AAElE,MAAM,WAAW,cAAe,SAAQ,YAAY;CAEnD;AAED,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IAEtD,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,iBAAkB,SAAQ,eAAe;CAEzD;AAGD,MAAM,WAAW,mCAAmC;IAClD,sCAAsC,EAAE,MAAM,CAAA;IAC9C,2BAA2B,EAAE,MAAM,CAAA;IACnC,+BAA+B,EAAE,OAAO,CAAA;IACxC,sCAAsC,EAAE,MAAM,CAAA;IAC9C,2BAA2B,EAAE,MAAM,CAAA;IACnC,+BAA+B,EAAE,OAAO,CAAA;IACxC,sCAAsC,EAAE,MAAM,CAAA;IAC9C,2BAA2B,EAAE,MAAM,CAAA;IACnC,+BAA+B,EAAE,OAAO,CAAA;CACzC;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,gBAAgB,EAAE,MAAM,CAAA;IACxB,wBAAwB,EAAE,OAAO,CAAA;IACjC,6BAA6B,EAAE,MAAM,CAAA;IACrC,qCAAqC,EAAE,OAAO,CAAA;IAC9C,uBAAuB,EAAE,mCAAmC,CAAA;CAC7D;AAGD,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAA;CAC5F;AAGD,MAAM,WAAW,UAAW,SAAQ,QAAQ;IAC1C,UAAU,EAAE,CACV,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EAAE,EACrB,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,EACrB,eAAe,CAAC,EAAE,MAAM,EACxB,MAAM,CAAC,EAAE,MAAM,EACf,EAAE,CAAC,EAAE,WAAW,EAChB,WAAW,CAAC,EAAE,OAAO,EACrB,2BAA2B,CAAC,EAAE,MAAM,EAAE,KACnC,OAAO,CAAC,yBAAyB,CAAC,CAAA;IAEvC,eAAe,EAAE,CACf,UAAU,EAAE,yBAAyB,EACrC,IAAI,EAAE,MAAM,EACZ,EAAE,CAAC,EAAE,WAAW,KACb,WAAW,CAAA;CACjB"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * USDZ-specific interfaces and types
3
+ * Extends base interfaces with USDZ-specific implementations
4
+ */
5
+ import type { Transaction, TransactionObjectArgument } from "@mysten/sui/transactions";
6
+ import type { IBaseAPI, IBaseCredential, IBaseDataAPI, IBaseFundingFeeModel, IBaseHistory, IBaseMarketInfo, IBaseMarketValuationInfo, IBaseOrderCapInfo, IBaseOrderInfo, IBasePositionCapInfo, IBasePositionConfig, IBasePositionInfo, IBaseRebaseFeeModel, IBaseReservingFeeModel, IBaseStakePool, IBaseSymbolInfo, IBaseVaultInfo } from "./base.mjs";
7
+ export interface IZBTCVCMarketValuationInfo extends IBaseMarketValuationInfo {
8
+ }
9
+ export interface IZBTCVCVaultInfo extends IBaseVaultInfo {
10
+ }
11
+ export interface IZBTCVCReservingFeeModel extends IBaseReservingFeeModel {
12
+ }
13
+ export interface IZBTCVCFundingFeeModel extends IBaseFundingFeeModel {
14
+ }
15
+ export interface IZBTCVCRebaseFeeModel extends IBaseRebaseFeeModel {
16
+ }
17
+ export interface IZBTCVCSymbolInfo extends IBaseSymbolInfo {
18
+ }
19
+ export interface IZBTCVCMarketInfo extends IBaseMarketInfo {
20
+ }
21
+ export interface IZBTCVCPositionInfo extends IBasePositionInfo {
22
+ }
23
+ export interface IZBTCVCPositionConfig extends IBasePositionConfig {
24
+ }
25
+ export interface IZBTCVCPositionCapInfo extends IBasePositionCapInfo {
26
+ }
27
+ export interface IZBTCVCOrderInfo extends IBaseOrderInfo {
28
+ }
29
+ export interface IZBTCVCOrderCapInfo extends IBaseOrderCapInfo {
30
+ }
31
+ export interface IZBTCVCHistory extends IBaseHistory {
32
+ }
33
+ export interface IZBTCVCStakePool extends IBaseStakePool {
34
+ rewardRate: bigint;
35
+ }
36
+ export interface IZBTCVCCredential extends IBaseCredential {
37
+ }
38
+ export interface IZBTCVCPositionInstantExitFeeConfig {
39
+ instant_exit_tier_1_duration_threshold: number;
40
+ instant_exit_tier_1_fee_bps: number;
41
+ instant_exit_tier_1_fee_enabled: boolean;
42
+ instant_exit_tier_2_duration_threshold: number;
43
+ instant_exit_tier_2_fee_bps: number;
44
+ instant_exit_tier_2_fee_enabled: boolean;
45
+ instant_exit_tier_3_duration_threshold: number;
46
+ instant_exit_tier_3_fee_bps: number;
47
+ instant_exit_tier_3_fee_enabled: boolean;
48
+ }
49
+ export interface IZBTCVCSymbolConfig {
50
+ id: string;
51
+ max_opening_size: number;
52
+ max_opening_size_enabled: boolean;
53
+ max_opening_size_per_position: number;
54
+ max_opening_size_per_position_enabled: boolean;
55
+ instant_exit_fee_config: IZBTCVCPositionInstantExitFeeConfig;
56
+ }
57
+ export interface IZBTCVCDataAPI extends IBaseDataAPI {
58
+ getSymbolConfig: (indexToken: string, long: boolean) => Promise<IZBTCVCSymbolConfig | null>;
59
+ }
60
+ export interface IZBTCVCAPI extends IBaseAPI {
61
+ depositPtb: (coin: string, coinObjects: string[], amount: number, minAmountOut?: number, referralAddress?: string, sender?: string, tx?: Transaction, sponsoredTx?: boolean, suiCoinObjectsForPythUpdate?: string[]) => Promise<TransactionObjectArgument>;
62
+ stakeCoinObject: (coinObject: TransactionObjectArgument, pool: string, tx?: Transaction) => Transaction;
63
+ }
64
+ //# sourceMappingURL=zbtcvc.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zbtcvc.d.mts","sourceRoot":"","sources":["../../src/interfaces/zbtcvc.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,yBAAyB,EAAE,iCAAgC;AAEtF,OAAO,KAAK,EACV,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,wBAAwB,EACxB,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,cAAc,EACf,mBAAc;AAGf,MAAM,WAAW,0BAA2B,SAAQ,wBAAwB;CAAI;AAEhF,MAAM,WAAW,gBAAiB,SAAQ,cAAc;CAAI;AAE5D,MAAM,WAAW,wBAAyB,SAAQ,sBAAsB;CAAI;AAE5E,MAAM,WAAW,sBAAuB,SAAQ,oBAAoB;CAAI;AAExE,MAAM,WAAW,qBAAsB,SAAQ,mBAAmB;CAAI;AAEtE,MAAM,WAAW,iBAAkB,SAAQ,eAAe;CAAI;AAE9D,MAAM,WAAW,iBAAkB,SAAQ,eAAe;CAEzD;AAED,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;CAE7D;AAED,MAAM,WAAW,qBAAsB,SAAQ,mBAAmB;CAAI;AAEtE,MAAM,WAAW,sBAAuB,SAAQ,oBAAoB;CAAI;AAExE,MAAM,WAAW,gBAAiB,SAAQ,cAAc;CAAI;AAE5D,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;CAAI;AAElE,MAAM,WAAW,cAAe,SAAQ,YAAY;CAEnD;AAED,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IAEtD,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,iBAAkB,SAAQ,eAAe;CAEzD;AAGD,MAAM,WAAW,mCAAmC;IAClD,sCAAsC,EAAE,MAAM,CAAA;IAC9C,2BAA2B,EAAE,MAAM,CAAA;IACnC,+BAA+B,EAAE,OAAO,CAAA;IACxC,sCAAsC,EAAE,MAAM,CAAA;IAC9C,2BAA2B,EAAE,MAAM,CAAA;IACnC,+BAA+B,EAAE,OAAO,CAAA;IACxC,sCAAsC,EAAE,MAAM,CAAA;IAC9C,2BAA2B,EAAE,MAAM,CAAA;IACnC,+BAA+B,EAAE,OAAO,CAAA;CACzC;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,gBAAgB,EAAE,MAAM,CAAA;IACxB,wBAAwB,EAAE,OAAO,CAAA;IACjC,6BAA6B,EAAE,MAAM,CAAA;IACrC,qCAAqC,EAAE,OAAO,CAAA;IAC9C,uBAAuB,EAAE,mCAAmC,CAAA;CAC7D;AAGD,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAA;CAC5F;AAGD,MAAM,WAAW,UAAW,SAAQ,QAAQ;IAC1C,UAAU,EAAE,CACV,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EAAE,EACrB,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,EACrB,eAAe,CAAC,EAAE,MAAM,EACxB,MAAM,CAAC,EAAE,MAAM,EACf,EAAE,CAAC,EAAE,WAAW,EAChB,WAAW,CAAC,EAAE,OAAO,EACrB,2BAA2B,CAAC,EAAE,MAAM,EAAE,KACnC,OAAO,CAAC,yBAAyB,CAAC,CAAA;IAEvC,eAAe,EAAE,CACf,UAAU,EAAE,yBAAyB,EACrC,IAAI,EAAE,MAAM,EACZ,EAAE,CAAC,EAAE,WAAW,KACb,WAAW,CAAA;CACjB"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * USDZ-specific interfaces and types
3
+ * Extends base interfaces with USDZ-specific implementations
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=zbtcvc.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zbtcvc.mjs","sourceRoot":"","sources":["../../src/interfaces/zbtcvc.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * ZLP-specific interfaces and types
4
+ * Extends base interfaces with ZLP-specific implementations
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=zlp.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zlp.cjs","sourceRoot":"","sources":["../../src/interfaces/zlp.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * ZLP-specific interfaces and types
3
+ * Extends base interfaces with ZLP-specific implementations
4
+ */
5
+ import type { Transaction, TransactionObjectArgument } from "@mysten/sui/transactions";
6
+ import type { IBaseAPI, IBaseCredential, IBaseDataAPI, IBaseFundingFeeModel, IBaseHistory, IBaseMarketInfo, IBaseMarketValuationInfo, IBaseOrderCapInfo, IBaseOrderInfo, IBasePositionCapInfo, IBasePositionConfig, IBasePositionInfo, IBaseRebaseFeeModel, IBaseReservingFeeModel, IBaseStakePool, IBaseSymbolInfo, IBaseVaultInfo } from "./base.cjs";
7
+ export interface IZLPMarketValuationInfo extends IBaseMarketValuationInfo {
8
+ }
9
+ export interface IZLPVaultInfo extends IBaseVaultInfo {
10
+ }
11
+ export interface IZLPReservingFeeModel extends IBaseReservingFeeModel {
12
+ }
13
+ export interface IZLPFundingFeeModel extends IBaseFundingFeeModel {
14
+ }
15
+ export interface IZLPRebaseFeeModel extends IBaseRebaseFeeModel {
16
+ }
17
+ export interface IZLPSymbolInfo extends IBaseSymbolInfo {
18
+ }
19
+ export interface IZLPMarketInfo extends IBaseMarketInfo {
20
+ }
21
+ export interface IZLPPositionInfo extends IBasePositionInfo {
22
+ }
23
+ export interface IZLPPositionConfig extends IBasePositionConfig {
24
+ }
25
+ export interface IZLPPositionCapInfo extends IBasePositionCapInfo {
26
+ }
27
+ export interface IZLPOrderInfo extends IBaseOrderInfo {
28
+ }
29
+ export interface IZLPOrderCapInfo extends IBaseOrderCapInfo {
30
+ }
31
+ export interface IZLPHistory extends IBaseHistory {
32
+ }
33
+ export interface IZLPStakePool extends IBaseStakePool {
34
+ rewardRate: bigint;
35
+ }
36
+ export interface IZLPCredential extends IBaseCredential {
37
+ }
38
+ export interface IZLPPositionInstantExitFeeConfig {
39
+ instant_exit_tier_1_duration_threshold: number;
40
+ instant_exit_tier_1_fee_bps: number;
41
+ instant_exit_tier_1_fee_enabled: boolean;
42
+ instant_exit_tier_2_duration_threshold: number;
43
+ instant_exit_tier_2_fee_bps: number;
44
+ instant_exit_tier_2_fee_enabled: boolean;
45
+ instant_exit_tier_3_duration_threshold: number;
46
+ instant_exit_tier_3_fee_bps: number;
47
+ instant_exit_tier_3_fee_enabled: boolean;
48
+ }
49
+ export interface IZLPSymbolConfig {
50
+ id: string;
51
+ max_opening_size: number;
52
+ max_opening_size_enabled: boolean;
53
+ max_opening_size_per_position: number;
54
+ max_opening_size_per_position_enabled: boolean;
55
+ instant_exit_fee_config: IZLPPositionInstantExitFeeConfig;
56
+ }
57
+ export interface IZLPOiFundingModel {
58
+ id: string;
59
+ multiplier: number;
60
+ exponent: number;
61
+ max: number;
62
+ }
63
+ export interface IZLPOiFundingState {
64
+ id: string;
65
+ enabled: boolean;
66
+ last_update: number;
67
+ model: IZLPOiFundingModel;
68
+ }
69
+ /**
70
+ * Price impact configuration for a trading symbol.
71
+ * Used to compute dynamic spreads based on OI skew.
72
+ */
73
+ export interface IZLPPriceImpactConfig {
74
+ id: string;
75
+ /** Whether price impact is enabled for this symbol */
76
+ enabled: boolean;
77
+ /** Base spread applied to all trades (as a rate, e.g., 0.001 = 0.1%) */
78
+ baseSpreadRate: number;
79
+ /** Maximum additional dynamic spread based on OI skew */
80
+ maxDynamicSpreadRate: number;
81
+ /** Cap for total spread (base + dynamic) */
82
+ maxTotalSpreadRate: number;
83
+ /** Exponent for spread curve (1.0=linear, 2.0=quadratic, 3.0=cubic) */
84
+ impactExponent: number;
85
+ /** Maximum OI for long side used in skew calculation */
86
+ maxOiLong: number;
87
+ /** Maximum OI for short side used in skew calculation */
88
+ maxOiShort: number;
89
+ /** Reference position size for size scaling. If zero, size scaling is disabled. */
90
+ referenceSize: number;
91
+ }
92
+ export interface IZLPDataAPI extends IBaseDataAPI {
93
+ getSymbolConfig: (indexToken: string, long: boolean) => Promise<IZLPSymbolConfig | null>;
94
+ getPriceImpactConfig: (indexToken: string) => Promise<IZLPPriceImpactConfig | null>;
95
+ }
96
+ export interface IZLPAPI extends IBaseAPI {
97
+ adminIssueLootbox: (coin: string, tiers: number[], beneficiaries: string[], amounts: number[], tx: Transaction) => void;
98
+ depositToPrizePool: (coin: string, coinObjects: string[], amount: number) => Transaction;
99
+ withdrawFromPricePool: (coin: string, amount: number) => Transaction;
100
+ openLootbox: (coin: string, lootbox: string) => Transaction;
101
+ adminIssueLootboxV2: (coin: string, tiers: number[], beneficiaries: string[], amounts: number[], titles: string[], descriptions: string[], tx: Transaction) => void;
102
+ openLootboxV2: (coin: string, lootbox: string) => Transaction;
103
+ adminIssueVestingLootboxV2: (coin: string, beneficiaries: string[], unlockedAmounts: number[], lockedAmounts: number[], lockDurationsMs: number[], tx: Transaction) => void;
104
+ claimUnlockedV2: (coin: string, vestingLootbox: string) => Transaction;
105
+ claimVestedV2: (coin: string, vestingLootbox: string) => Transaction;
106
+ destroyVestingLootboxV2: (coin: string, vestingLootbox: string) => Transaction;
107
+ depositPtb: (coin: string, coinObjects: string[], amount: number, minAmountOut?: number, referralAddress?: string, sender?: string, tx?: Transaction, sponsoredTx?: boolean, suiCoinObjectsForPythUpdate?: string[]) => Promise<TransactionObjectArgument>;
108
+ stakeCoinObject: (coinObject: TransactionObjectArgument, pool: string, tx?: Transaction) => Transaction;
109
+ withdrawLpCoinObject: (coin: string, lpCoinObject: TransactionObjectArgument, minAmountOut: number, tx?: Transaction) => Promise<Transaction>;
110
+ withdrawFromVaultPtb: (pool: string, credential: string, withdrawAmount: bigint, tx: Transaction) => TransactionObjectArgument;
111
+ claimRewardsPtb: (pool: string, credential: string, tx: Transaction) => TransactionObjectArgument;
112
+ unstakeToCoins: (credentials: IZLPCredential[], amount: bigint, pool: string, tx: Transaction) => TransactionObjectArgument[];
113
+ }
114
+ //# sourceMappingURL=zlp.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zlp.d.cts","sourceRoot":"","sources":["../../src/interfaces/zlp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * ZLP-specific interfaces and types
3
+ * Extends base interfaces with ZLP-specific implementations
4
+ */
5
+ import type { Transaction, TransactionObjectArgument } from "@mysten/sui/transactions";
6
+ import type { IBaseAPI, IBaseCredential, IBaseDataAPI, IBaseFundingFeeModel, IBaseHistory, IBaseMarketInfo, IBaseMarketValuationInfo, IBaseOrderCapInfo, IBaseOrderInfo, IBasePositionCapInfo, IBasePositionConfig, IBasePositionInfo, IBaseRebaseFeeModel, IBaseReservingFeeModel, IBaseStakePool, IBaseSymbolInfo, IBaseVaultInfo } from "./base.mjs";
7
+ export interface IZLPMarketValuationInfo extends IBaseMarketValuationInfo {
8
+ }
9
+ export interface IZLPVaultInfo extends IBaseVaultInfo {
10
+ }
11
+ export interface IZLPReservingFeeModel extends IBaseReservingFeeModel {
12
+ }
13
+ export interface IZLPFundingFeeModel extends IBaseFundingFeeModel {
14
+ }
15
+ export interface IZLPRebaseFeeModel extends IBaseRebaseFeeModel {
16
+ }
17
+ export interface IZLPSymbolInfo extends IBaseSymbolInfo {
18
+ }
19
+ export interface IZLPMarketInfo extends IBaseMarketInfo {
20
+ }
21
+ export interface IZLPPositionInfo extends IBasePositionInfo {
22
+ }
23
+ export interface IZLPPositionConfig extends IBasePositionConfig {
24
+ }
25
+ export interface IZLPPositionCapInfo extends IBasePositionCapInfo {
26
+ }
27
+ export interface IZLPOrderInfo extends IBaseOrderInfo {
28
+ }
29
+ export interface IZLPOrderCapInfo extends IBaseOrderCapInfo {
30
+ }
31
+ export interface IZLPHistory extends IBaseHistory {
32
+ }
33
+ export interface IZLPStakePool extends IBaseStakePool {
34
+ rewardRate: bigint;
35
+ }
36
+ export interface IZLPCredential extends IBaseCredential {
37
+ }
38
+ export interface IZLPPositionInstantExitFeeConfig {
39
+ instant_exit_tier_1_duration_threshold: number;
40
+ instant_exit_tier_1_fee_bps: number;
41
+ instant_exit_tier_1_fee_enabled: boolean;
42
+ instant_exit_tier_2_duration_threshold: number;
43
+ instant_exit_tier_2_fee_bps: number;
44
+ instant_exit_tier_2_fee_enabled: boolean;
45
+ instant_exit_tier_3_duration_threshold: number;
46
+ instant_exit_tier_3_fee_bps: number;
47
+ instant_exit_tier_3_fee_enabled: boolean;
48
+ }
49
+ export interface IZLPSymbolConfig {
50
+ id: string;
51
+ max_opening_size: number;
52
+ max_opening_size_enabled: boolean;
53
+ max_opening_size_per_position: number;
54
+ max_opening_size_per_position_enabled: boolean;
55
+ instant_exit_fee_config: IZLPPositionInstantExitFeeConfig;
56
+ }
57
+ export interface IZLPOiFundingModel {
58
+ id: string;
59
+ multiplier: number;
60
+ exponent: number;
61
+ max: number;
62
+ }
63
+ export interface IZLPOiFundingState {
64
+ id: string;
65
+ enabled: boolean;
66
+ last_update: number;
67
+ model: IZLPOiFundingModel;
68
+ }
69
+ /**
70
+ * Price impact configuration for a trading symbol.
71
+ * Used to compute dynamic spreads based on OI skew.
72
+ */
73
+ export interface IZLPPriceImpactConfig {
74
+ id: string;
75
+ /** Whether price impact is enabled for this symbol */
76
+ enabled: boolean;
77
+ /** Base spread applied to all trades (as a rate, e.g., 0.001 = 0.1%) */
78
+ baseSpreadRate: number;
79
+ /** Maximum additional dynamic spread based on OI skew */
80
+ maxDynamicSpreadRate: number;
81
+ /** Cap for total spread (base + dynamic) */
82
+ maxTotalSpreadRate: number;
83
+ /** Exponent for spread curve (1.0=linear, 2.0=quadratic, 3.0=cubic) */
84
+ impactExponent: number;
85
+ /** Maximum OI for long side used in skew calculation */
86
+ maxOiLong: number;
87
+ /** Maximum OI for short side used in skew calculation */
88
+ maxOiShort: number;
89
+ /** Reference position size for size scaling. If zero, size scaling is disabled. */
90
+ referenceSize: number;
91
+ }
92
+ export interface IZLPDataAPI extends IBaseDataAPI {
93
+ getSymbolConfig: (indexToken: string, long: boolean) => Promise<IZLPSymbolConfig | null>;
94
+ getPriceImpactConfig: (indexToken: string) => Promise<IZLPPriceImpactConfig | null>;
95
+ }
96
+ export interface IZLPAPI extends IBaseAPI {
97
+ adminIssueLootbox: (coin: string, tiers: number[], beneficiaries: string[], amounts: number[], tx: Transaction) => void;
98
+ depositToPrizePool: (coin: string, coinObjects: string[], amount: number) => Transaction;
99
+ withdrawFromPricePool: (coin: string, amount: number) => Transaction;
100
+ openLootbox: (coin: string, lootbox: string) => Transaction;
101
+ adminIssueLootboxV2: (coin: string, tiers: number[], beneficiaries: string[], amounts: number[], titles: string[], descriptions: string[], tx: Transaction) => void;
102
+ openLootboxV2: (coin: string, lootbox: string) => Transaction;
103
+ adminIssueVestingLootboxV2: (coin: string, beneficiaries: string[], unlockedAmounts: number[], lockedAmounts: number[], lockDurationsMs: number[], tx: Transaction) => void;
104
+ claimUnlockedV2: (coin: string, vestingLootbox: string) => Transaction;
105
+ claimVestedV2: (coin: string, vestingLootbox: string) => Transaction;
106
+ destroyVestingLootboxV2: (coin: string, vestingLootbox: string) => Transaction;
107
+ depositPtb: (coin: string, coinObjects: string[], amount: number, minAmountOut?: number, referralAddress?: string, sender?: string, tx?: Transaction, sponsoredTx?: boolean, suiCoinObjectsForPythUpdate?: string[]) => Promise<TransactionObjectArgument>;
108
+ stakeCoinObject: (coinObject: TransactionObjectArgument, pool: string, tx?: Transaction) => Transaction;
109
+ withdrawLpCoinObject: (coin: string, lpCoinObject: TransactionObjectArgument, minAmountOut: number, tx?: Transaction) => Promise<Transaction>;
110
+ withdrawFromVaultPtb: (pool: string, credential: string, withdrawAmount: bigint, tx: Transaction) => TransactionObjectArgument;
111
+ claimRewardsPtb: (pool: string, credential: string, tx: Transaction) => TransactionObjectArgument;
112
+ unstakeToCoins: (credentials: IZLPCredential[], amount: bigint, pool: string, tx: Transaction) => TransactionObjectArgument[];
113
+ }
114
+ //# sourceMappingURL=zlp.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zlp.d.mts","sourceRoot":"","sources":["../../src/interfaces/zlp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * ZLP-specific interfaces and types
3
+ * Extends base interfaces with ZLP-specific implementations
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=zlp.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zlp.mjs","sourceRoot":"","sources":["../../src/interfaces/zlp.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OracleAPI = void 0;
4
+ const transactions_1 = require("@mysten/sui/transactions");
5
+ const pyth_sui_js_1 = require("@pythnetwork/pyth-sui-js");
6
+ const consts_1 = require("./consts/index.cjs");
7
+ const utils_1 = require("./utils.cjs");
8
+ class OracleAPI {
9
+ constructor(network, provider,
10
+ // todo 需要从配置文件中获取
11
+ connectionURL, lpToken = consts_1.LPToken.ZLP) {
12
+ this.priceCache = {};
13
+ this.network = network;
14
+ this.consts = (0, consts_1.getConsts)(network, lpToken);
15
+ this.sharedConfig = (0, consts_1.getSharedConfig)(network);
16
+ this.connectionURL = connectionURL;
17
+ this.PythFeederToPriceId = (0, consts_1.getPythFeederToPriceId)(network);
18
+ this.PythFeederToId = (0, consts_1.getPythFeederToId)(network);
19
+ this.provider = provider || (0, utils_1.createJsonRpcProvider)(network);
20
+ this.client = new pyth_sui_js_1.SuiPythClient(this.provider, this.consts.pythFeeder.state, this.consts.pythFeeder.wormhole.state);
21
+ }
22
+ validateCache() {
23
+ const now = Date.now() / 1000;
24
+ for (const key in this.priceCache) {
25
+ if (now - (this.priceCache[key].getPriceUnchecked().publishTime || 0) > 7) {
26
+ delete this.priceCache[key];
27
+ }
28
+ }
29
+ }
30
+ async getOraclePrice(tokenId) {
31
+ this.validateCache();
32
+ if (this.priceCache[tokenId]) {
33
+ return this.priceCache[tokenId];
34
+ }
35
+ const res = await this.getOraclePrices([tokenId]);
36
+ if (!res || !res[0]) {
37
+ throw new Error(`Unknown token: ${tokenId}`);
38
+ }
39
+ this.priceCache[tokenId] = res[0];
40
+ return res[0];
41
+ }
42
+ async getOraclePrices(tokens) {
43
+ const connection = new pyth_sui_js_1.SuiPriceServiceConnection(this.connectionURL, {
44
+ priceFeedRequestConfig: {
45
+ binary: true,
46
+ },
47
+ });
48
+ const pythObjectIds = tokens.map(token => this.consts.pythFeeder.feeder[token]);
49
+ const priceFeedIds = pythObjectIds.map(pythObjectId => `0x${this.PythFeederToPriceId[pythObjectId]}`);
50
+ const price = await connection.getLatestPriceFeeds(priceFeedIds);
51
+ return price || [];
52
+ }
53
+ // memory leak
54
+ async subOraclePrices(tokens, callback) {
55
+ const connection = new pyth_sui_js_1.SuiPriceServiceConnection(this.connectionURL, {
56
+ priceFeedRequestConfig: {
57
+ binary: true,
58
+ },
59
+ });
60
+ const pythObjectIds = tokens.map(token => this.consts.pythFeeder.feeder[token]);
61
+ const priceFeedIds = pythObjectIds.map(pythObjectId => `0x${this.PythFeederToPriceId[pythObjectId]}`);
62
+ await connection.subscribePriceFeedUpdates(priceFeedIds, (price) => {
63
+ price.id = this.PythFeederToId[(0, consts_1.getPriceIdToPythFeeder)(this.network)[price.id]];
64
+ this.priceCache[price.id] = price;
65
+ callback(price);
66
+ });
67
+ return () => {
68
+ connection.unsubscribePriceFeedUpdates(priceFeedIds);
69
+ };
70
+ }
71
+ async initOracleTxb(tokens, tx, sponsoredTx, suiCoinObject) {
72
+ let tx_ = tx;
73
+ if (!tx_) {
74
+ tx_ = new transactions_1.Transaction();
75
+ }
76
+ // Remove redundant tokens first
77
+ const uniqueTokens = Array.from(new Set(tokens));
78
+ const connection = new pyth_sui_js_1.SuiPriceServiceConnection(this.connectionURL, {
79
+ priceFeedRequestConfig: {
80
+ binary: true,
81
+ },
82
+ });
83
+ let pythObjectIds = uniqueTokens.map(token => this.consts.pythFeeder.feeder[token]);
84
+ // remove dupe object ids. If any of the object ids are duplicates the call will fail
85
+ pythObjectIds = [...new Set(pythObjectIds)].filter(Boolean);
86
+ const needUpdateObjectIds = (await this.provider.multiGetObjects({
87
+ ids: pythObjectIds,
88
+ options: {
89
+ showContent: true,
90
+ },
91
+ })).map(pythObject => [
92
+ Number.parseInt((pythObject.data?.content).fields.price_info.fields.arrival_time || 0, 10) - Date.now() / 1000,
93
+ pythObject.data?.objectId,
94
+ ]).filter((x) => Math.abs(x[0]) >= 0).map(x => x[1]);
95
+ if (needUpdateObjectIds.length === 0) {
96
+ return tx_;
97
+ }
98
+ const priceFeedIds = needUpdateObjectIds
99
+ .map(pythObjectId => this.PythFeederToPriceId[pythObjectId])
100
+ .filter(Boolean)
101
+ .map(x => `0x${x}`);
102
+ const priceUpdateData = await connection.getPriceFeedsUpdateData(priceFeedIds);
103
+ if (sponsoredTx) {
104
+ const baseUpdateFee = await this.getBaseUpdateFee();
105
+ const pythUpdateCoins = tx_.splitCoins(suiCoinObject, priceFeedIds.map(() => tx_.pure.u64(baseUpdateFee)));
106
+ await this.client.updatePriceFeedsWithCoins(tx_, priceUpdateData, priceFeedIds, pythUpdateCoins);
107
+ }
108
+ else {
109
+ await this.client.updatePriceFeeds(tx_, priceUpdateData, priceFeedIds);
110
+ }
111
+ return tx_;
112
+ }
113
+ async getBaseUpdateFee() {
114
+ return await this.client.getBaseUpdateFee();
115
+ }
116
+ }
117
+ exports.OracleAPI = OracleAPI;
118
+ //# sourceMappingURL=oracle.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oracle.cjs","sourceRoot":"","sources":["../src/oracle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { SuiClient } from "@mysten/sui/client";
2
+ import { Transaction } from "@mysten/sui/transactions";
3
+ import type { PriceFeed } from "@pythnetwork/pyth-sui-js";
4
+ import { SuiPythClient } from "@pythnetwork/pyth-sui-js";
5
+ import type { IConsts, Network } from "./consts/index.cjs";
6
+ import { LPToken } from "./consts/index.cjs";
7
+ export declare class OracleAPI {
8
+ network: Network;
9
+ consts: IConsts;
10
+ sharedConfig: IConsts;
11
+ connectionURL: string;
12
+ PythFeederToPriceId: Record<string, string>;
13
+ PythFeederToId: Record<string, string>;
14
+ provider: SuiClient;
15
+ client: SuiPythClient;
16
+ private priceCache;
17
+ constructor(network: Network, provider: SuiClient | null, connectionURL: string, lpToken?: LPToken);
18
+ validateCache(): void;
19
+ getOraclePrice(tokenId: string): Promise<PriceFeed>;
20
+ getOraclePrices(tokens: string[]): Promise<PriceFeed[]>;
21
+ subOraclePrices(tokens: string[], callback: (price: PriceFeed) => void): Promise<() => void>;
22
+ initOracleTxb(tokens: string[], tx?: Transaction, sponsoredTx?: boolean, suiCoinObject?: any): Promise<Transaction>;
23
+ getBaseUpdateFee(): Promise<number>;
24
+ }
25
+ //# sourceMappingURL=oracle.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oracle.d.cts","sourceRoot":"","sources":["../src/oracle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,2BAA0B;AACnD,OAAO,EAAE,WAAW,EAAE,iCAAgC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,iCAAgC;AACzD,OAAO,EAA6B,aAAa,EAAE,iCAAgC;AAEnF,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,2BAAgB;AAChD,OAAO,EAAiG,OAAO,EAAE,2BAAgB;AAGjI,qBAAa,SAAS;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;IACf,YAAY,EAAE,OAAO,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC,QAAQ,EAAE,SAAS,CAAA;IACnB,MAAM,EAAE,aAAa,CAAA;IAErB,OAAO,CAAC,UAAU,CAAgC;gBAGhD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,SAAS,GAAG,IAAI,EAE1B,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,OAAqB;IAYhC,aAAa;IASP,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAanD,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAavD,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;IAmB5F,aAAa,CACjB,MAAM,EAAE,MAAM,EAAE,EAChB,EAAE,CAAC,EAAE,WAAW,EAChB,WAAW,CAAC,EAAE,OAAO,EACrB,aAAa,CAAC,EAAE,GAAG;IAqDf,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;CAG1C"}
@@ -0,0 +1,25 @@
1
+ import type { SuiClient } from "@mysten/sui/client";
2
+ import { Transaction } from "@mysten/sui/transactions";
3
+ import type { PriceFeed } from "@pythnetwork/pyth-sui-js";
4
+ import { SuiPythClient } from "@pythnetwork/pyth-sui-js";
5
+ import type { IConsts, Network } from "./consts/index.mjs";
6
+ import { LPToken } from "./consts/index.mjs";
7
+ export declare class OracleAPI {
8
+ network: Network;
9
+ consts: IConsts;
10
+ sharedConfig: IConsts;
11
+ connectionURL: string;
12
+ PythFeederToPriceId: Record<string, string>;
13
+ PythFeederToId: Record<string, string>;
14
+ provider: SuiClient;
15
+ client: SuiPythClient;
16
+ private priceCache;
17
+ constructor(network: Network, provider: SuiClient | null, connectionURL: string, lpToken?: LPToken);
18
+ validateCache(): void;
19
+ getOraclePrice(tokenId: string): Promise<PriceFeed>;
20
+ getOraclePrices(tokens: string[]): Promise<PriceFeed[]>;
21
+ subOraclePrices(tokens: string[], callback: (price: PriceFeed) => void): Promise<() => void>;
22
+ initOracleTxb(tokens: string[], tx?: Transaction, sponsoredTx?: boolean, suiCoinObject?: any): Promise<Transaction>;
23
+ getBaseUpdateFee(): Promise<number>;
24
+ }
25
+ //# sourceMappingURL=oracle.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oracle.d.mts","sourceRoot":"","sources":["../src/oracle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,2BAA0B;AACnD,OAAO,EAAE,WAAW,EAAE,iCAAgC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,iCAAgC;AACzD,OAAO,EAA6B,aAAa,EAAE,iCAAgC;AAEnF,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,2BAAgB;AAChD,OAAO,EAAiG,OAAO,EAAE,2BAAgB;AAGjI,qBAAa,SAAS;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;IACf,YAAY,EAAE,OAAO,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC,QAAQ,EAAE,SAAS,CAAA;IACnB,MAAM,EAAE,aAAa,CAAA;IAErB,OAAO,CAAC,UAAU,CAAgC;gBAGhD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,SAAS,GAAG,IAAI,EAE1B,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,OAAqB;IAYhC,aAAa;IASP,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAanD,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAavD,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;IAmB5F,aAAa,CACjB,MAAM,EAAE,MAAM,EAAE,EAChB,EAAE,CAAC,EAAE,WAAW,EAChB,WAAW,CAAC,EAAE,OAAO,EACrB,aAAa,CAAC,EAAE,GAAG;IAqDf,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;CAG1C"}