@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,50 @@
1
+ /**
2
+ * Interface exports for all LP token types
3
+ * Provides a centralized export point for all SDK interfaces
4
+ */
5
+
6
+ // Base interfaces
7
+ export * from './base'
8
+
9
+ // ZLP interfaces
10
+ export * from './zlp'
11
+
12
+ // SLP interfaces
13
+ export * from './slp'
14
+
15
+ // USDZ interfaces
16
+ export * from './usdz'
17
+
18
+ // USDZ interfaces
19
+ export * from './zbtcvc'
20
+
21
+ // Re-export commonly used types for convenience
22
+ export type {
23
+ IBaseAPI,
24
+ IBaseDataAPI,
25
+ IBaseMarketValuationInfo,
26
+ ISDKFactory,
27
+ } from './base'
28
+ export type {
29
+ ISLPAPI,
30
+ ISLPDataAPI,
31
+ ISLPMarketValuationInfo,
32
+ ISudoMarket,
33
+ ISudoSymbol,
34
+ ISudoVault,
35
+ } from './slp'
36
+ export type {
37
+ IUSDZAPI,
38
+ IUSDZDataAPI,
39
+ IUSDZMarketValuationInfo,
40
+ } from './usdz'
41
+ export type {
42
+ IZBTCVCAPI,
43
+ IZBTCVCDataAPI,
44
+ IZBTCVCMarketValuationInfo,
45
+ } from './zbtcvc'
46
+ export type {
47
+ IZLPAPI,
48
+ IZLPDataAPI,
49
+ IZLPMarketValuationInfo,
50
+ } from './zlp'
@@ -0,0 +1,268 @@
1
+ /**
2
+ * SLP-specific interfaces and types
3
+ * Extends base interfaces with SLP-specific implementations for Sudo SDK
4
+ */
5
+
6
+ import type { KioskClient, KioskOwnerCap } from '@mysten/kiosk'
7
+ import type { Transaction, TransactionObjectArgument } from '@mysten/sui/transactions'
8
+
9
+ import type {
10
+ IBaseAPI,
11
+ IBaseCredential,
12
+ IBaseDataAPI,
13
+ IBaseFundingFeeModel,
14
+ IBaseHistory,
15
+ IBaseMarketInfo,
16
+ IBaseMarketValuationInfo,
17
+ IBaseOrderCapInfo,
18
+ IBaseOrderInfo,
19
+ IBasePositionCapInfo,
20
+ IBasePositionConfig,
21
+ IBasePositionInfo,
22
+ IBaseRebaseFeeModel,
23
+ IBaseReservingFeeModel,
24
+ IBaseStaked,
25
+ IBaseStakePool,
26
+ IBaseSymbolInfo,
27
+ IBaseVaultInfo,
28
+ } from './base'
29
+
30
+ // SLP-specific interfaces
31
+ export interface ISLPMarketValuationInfo extends IBaseMarketValuationInfo { }
32
+
33
+ export interface ISLPVaultInfo extends IBaseVaultInfo { }
34
+
35
+ export interface ISLPSymbolInfo extends IBaseSymbolInfo { }
36
+
37
+ export interface ISLPFundingFeeModel extends IBaseFundingFeeModel { }
38
+
39
+ export interface ISLPReservingFeeModel extends IBaseReservingFeeModel { }
40
+
41
+ export interface ISLPRebaseFeeModel extends IBaseRebaseFeeModel { }
42
+
43
+ export interface ISLPMarketInfo extends IBaseMarketInfo { }
44
+
45
+ export interface ISLPPositionInfo extends IBasePositionInfo { }
46
+
47
+ export interface ISLPPositionConfig extends IBasePositionConfig { }
48
+
49
+ export interface ISLPPositionCapInfo extends IBasePositionCapInfo { }
50
+
51
+ export interface ISLPOrderInfo extends IBaseOrderInfo {
52
+ orderVersion: string
53
+ }
54
+
55
+ export interface ISLPOrderCapInfo extends IBaseOrderCapInfo { }
56
+
57
+ export interface ISLPHistory extends IBaseHistory { }
58
+
59
+ export interface ISLPStaked extends IBaseStaked { }
60
+
61
+ export interface ISLPStakePool extends IBaseStakePool {
62
+ // SLP-specific stake pool fields to match new staking implementation
63
+ rewardRate?: bigint // Optional for backward compatibility
64
+ }
65
+
66
+ export interface ISLPCredential extends IBaseCredential { }
67
+
68
+ // ZLP Symbol Config interfaces
69
+ export interface ISLPPositionInstantExitFeeConfig {
70
+ instant_exit_tier_1_duration_threshold: number
71
+ instant_exit_tier_1_fee_bps: number
72
+ instant_exit_tier_1_fee_enabled: boolean
73
+ instant_exit_tier_2_duration_threshold: number
74
+ instant_exit_tier_2_fee_bps: number
75
+ instant_exit_tier_2_fee_enabled: boolean
76
+ instant_exit_tier_3_duration_threshold: number
77
+ instant_exit_tier_3_fee_bps: number
78
+ instant_exit_tier_3_fee_enabled: boolean
79
+ }
80
+
81
+ export interface ISLPSymbolConfig {
82
+ id: string
83
+ max_opening_size: number
84
+ max_opening_size_enabled: boolean
85
+ max_opening_size_per_position: number
86
+ max_opening_size_per_position_enabled: boolean
87
+ instant_exit_fee_config: ISLPPositionInstantExitFeeConfig
88
+ }
89
+
90
+ export interface ISLPOiFundingModel {
91
+ id: string
92
+ multiplier: number
93
+ exponent: number
94
+ max: number
95
+ }
96
+
97
+ export interface ISLPOiFundingState {
98
+ id: string
99
+ enabled: boolean
100
+ last_update: number
101
+ model: ISLPOiFundingModel
102
+ }
103
+
104
+ /**
105
+ * Price impact configuration for a trading symbol.
106
+ * Used to compute dynamic spreads based on OI skew.
107
+ */
108
+ export interface ISLPPriceImpactConfig {
109
+ id: string
110
+ /** Whether price impact is enabled for this symbol */
111
+ enabled: boolean
112
+ /** Base spread applied to all trades (as a rate, e.g., 0.001 = 0.1%) */
113
+ baseSpreadRate: number
114
+ /** Maximum additional dynamic spread based on OI skew */
115
+ maxDynamicSpreadRate: number
116
+ /** Cap for total spread (base + dynamic) */
117
+ maxTotalSpreadRate: number
118
+ /** Exponent for spread curve (1.0=linear, 2.0=quadratic, 3.0=cubic) */
119
+ impactExponent: number
120
+ /** Maximum OI for long side used in skew calculation */
121
+ maxOiLong: number
122
+ /** Maximum OI for short side used in skew calculation */
123
+ maxOiShort: number
124
+ /** Reference position size for size scaling. If zero, size scaling is disabled. */
125
+ referenceSize: number
126
+ }
127
+
128
+ // Sudo SDK specific data structures
129
+ export interface ISudoMarket {
130
+ lpSupply: bigint
131
+ lpSupplyWithDecimals: number
132
+ totalValue: number
133
+ apr?: number
134
+ }
135
+
136
+ export interface ISudoVault {
137
+ symbol: string
138
+ liquidity: bigint
139
+ reservedAmount: bigint
140
+ enabled: boolean
141
+ weight: number
142
+ lastUpdate: number
143
+ totalValue: number
144
+ }
145
+
146
+ export interface ISudoSymbol {
147
+ name: string
148
+ openingSize: bigint
149
+ openingAmount: bigint
150
+ fundingRate: number
151
+ long: boolean
152
+ lastUpdate: number
153
+ totalOpenInterest: number
154
+ }
155
+
156
+ export interface ISudoPosition {
157
+ id: string
158
+ owner: string
159
+ symbol: string
160
+ size: bigint
161
+ collateralAmount: bigint
162
+ long: boolean
163
+ lastUpdate: number
164
+ unrealizedPnl: number
165
+ liquidationPrice: number
166
+ }
167
+
168
+ export interface ISudoOrder {
169
+ id: string
170
+ owner: string
171
+ symbol: string
172
+ size: bigint
173
+ triggerPrice: number
174
+ long: boolean
175
+ createdAt: number
176
+ }
177
+
178
+ export interface ISudoHistory {
179
+ owner: string
180
+ txid: string
181
+ id: string
182
+ timestamp: number
183
+ action: string
184
+ symbol: string
185
+ price: number
186
+ size: number
187
+ pnl: number
188
+ fee: number
189
+ }
190
+
191
+ export interface ISudoStaked {
192
+ credentials: ISudoStakeCredential[]
193
+ amount: bigint
194
+ claimable: bigint
195
+ }
196
+
197
+ export interface ISudoStakeCredential {
198
+ id: string
199
+ poolId: string
200
+ amount: bigint
201
+ lockUntil: number
202
+ claimable: bigint
203
+ rewardRate: number
204
+ }
205
+
206
+ // SLP-specific data API interface
207
+ export interface ISLPDataAPI extends IBaseDataAPI {
208
+ getCumulativeApr: () => Promise<number>
209
+ getSymbolConfig: (indexToken: string, long: boolean) => Promise<ISLPSymbolConfig | null>
210
+ getPriceImpactConfig: (indexToken: string) => Promise<ISLPPriceImpactConfig | null>
211
+ }
212
+
213
+ // SLP-specific API interface
214
+ export interface ISLPAPI extends IBaseAPI {
215
+ // SLP-specific api methods can be added here
216
+ claimTokenFromSCard: (
217
+ token: string,
218
+ coinObjects: string[],
219
+ kioskClient: KioskClient,
220
+ kioskCap: KioskOwnerCap,
221
+ scard: string
222
+ ) => Transaction
223
+
224
+ depositPtb: (
225
+ coin: string,
226
+ coinObjects: string[],
227
+ amount: number,
228
+ minAmountOut?: number,
229
+ referralAddress?: string,
230
+ sender?: string,
231
+ tx?: Transaction,
232
+ sponsoredTx?: boolean,
233
+ suiCoinObjectsForPythUpdate?: string[],
234
+ ) => Promise<TransactionObjectArgument>
235
+
236
+ withdrawLpCoinObject: (
237
+ coin: string,
238
+ lpCoinObject: TransactionObjectArgument,
239
+ minAmountOut: number,
240
+ tx?: Transaction,
241
+ ) => Promise<Transaction>
242
+
243
+ stakeCoinObject: (
244
+ coinObject: TransactionObjectArgument,
245
+ pool: string,
246
+ tx?: Transaction,
247
+ ) => Transaction
248
+
249
+ withdrawFromVaultPtb: (
250
+ pool: string,
251
+ credential: string,
252
+ withdrawAmount: bigint,
253
+ tx: Transaction,
254
+ ) => TransactionObjectArgument
255
+
256
+ claimRewardsPtb: (
257
+ pool: string,
258
+ credential: string,
259
+ tx: Transaction,
260
+ ) => TransactionObjectArgument
261
+
262
+ unstakeToCoins: (
263
+ credentials: ISLPCredential[],
264
+ amount: bigint,
265
+ pool: string,
266
+ tx: Transaction,
267
+ ) => TransactionObjectArgument[]
268
+ }
@@ -0,0 +1,181 @@
1
+ /**
2
+ * USDZ-specific interfaces and types
3
+ * Extends base interfaces with USDZ-specific implementations
4
+ */
5
+
6
+ import type { Transaction, TransactionObjectArgument } from '@mysten/sui/transactions'
7
+
8
+ import type {
9
+ IBaseAPI,
10
+ IBaseCredential,
11
+ IBaseDataAPI,
12
+ IBaseFundingFeeModel,
13
+ IBaseHistory,
14
+ IBaseMarketInfo,
15
+ IBaseMarketValuationInfo,
16
+ IBaseOrderCapInfo,
17
+ IBaseOrderInfo,
18
+ IBasePositionCapInfo,
19
+ IBasePositionConfig,
20
+ IBasePositionInfo,
21
+ IBaseRebaseFeeModel,
22
+ IBaseReservingFeeModel,
23
+ IBaseStakePool,
24
+ IBaseSymbolInfo,
25
+ IBaseVaultInfo,
26
+ } from './base'
27
+
28
+ // USDZ-specific interfaces
29
+ export interface IUSDZMarketValuationInfo extends IBaseMarketValuationInfo { }
30
+
31
+ export interface IUSDZVaultInfo extends IBaseVaultInfo { }
32
+
33
+ export interface IUSDZReservingFeeModel extends IBaseReservingFeeModel { }
34
+
35
+ export interface IUSDZFundingFeeModel extends IBaseFundingFeeModel { }
36
+
37
+ export interface IUSDZRebaseFeeModel extends IBaseRebaseFeeModel { }
38
+
39
+ export interface IUSDZSymbolInfo extends IBaseSymbolInfo { }
40
+
41
+ export interface IUSDZMarketInfo extends IBaseMarketInfo {
42
+ // USDZ-specific market info fields can be added here
43
+ }
44
+
45
+ export interface IUSDZPositionInfo extends IBasePositionInfo {
46
+ // USDZ-specific position fields can be added here
47
+ }
48
+
49
+ export interface IUSDZPositionConfig extends IBasePositionConfig { }
50
+
51
+ export interface IUSDZPositionCapInfo extends IBasePositionCapInfo { }
52
+
53
+ export interface IUSDZOrderInfo extends IBaseOrderInfo { }
54
+
55
+ export interface IUSDZOrderCapInfo extends IBaseOrderCapInfo { }
56
+
57
+ export interface IUSDZHistory extends IBaseHistory {
58
+ // USDZ-specific history fields can be added here
59
+ }
60
+
61
+ export interface IUSDZStakePool extends IBaseStakePool {
62
+ // USDZ-specific stake pool fields can be added here
63
+ rewardRate: bigint
64
+ }
65
+
66
+ export interface IUSDZCredential extends IBaseCredential {
67
+ // USDZ-specific credential fields can be added here
68
+ }
69
+
70
+ // USDZ Symbol Config interfaces
71
+ export interface IUSDZPositionInstantExitFeeConfig {
72
+ instant_exit_tier_1_duration_threshold: number
73
+ instant_exit_tier_1_fee_bps: number
74
+ instant_exit_tier_1_fee_enabled: boolean
75
+ instant_exit_tier_2_duration_threshold: number
76
+ instant_exit_tier_2_fee_bps: number
77
+ instant_exit_tier_2_fee_enabled: boolean
78
+ instant_exit_tier_3_duration_threshold: number
79
+ instant_exit_tier_3_fee_bps: number
80
+ instant_exit_tier_3_fee_enabled: boolean
81
+ }
82
+
83
+ export interface IUSDZSymbolConfig {
84
+ id: string
85
+ max_opening_size: number
86
+ max_opening_size_enabled: boolean
87
+ max_opening_size_per_position: number
88
+ max_opening_size_per_position_enabled: boolean
89
+ instant_exit_fee_config: IUSDZPositionInstantExitFeeConfig
90
+ }
91
+
92
+ export interface IUSDZOiFundingModel {
93
+ id: string
94
+ multiplier: number
95
+ exponent: number
96
+ max: number
97
+ }
98
+ export interface IUSDZOiFundingState {
99
+ id: string
100
+ enabled: boolean
101
+ last_update: number
102
+ model: IUSDZOiFundingModel
103
+ }
104
+
105
+ /**
106
+ * Price impact configuration for a trading symbol.
107
+ * Used to compute dynamic spreads based on OI skew.
108
+ */
109
+ export interface IUSDZPriceImpactConfig {
110
+ id: string
111
+ /** Whether price impact is enabled for this symbol */
112
+ enabled: boolean
113
+ /** Base spread applied to all trades (as a rate, e.g., 0.001 = 0.1%) */
114
+ baseSpreadRate: number
115
+ /** Maximum additional dynamic spread based on OI skew */
116
+ maxDynamicSpreadRate: number
117
+ /** Cap for total spread (base + dynamic) */
118
+ maxTotalSpreadRate: number
119
+ /** Exponent for spread curve (1.0=linear, 2.0=quadratic, 3.0=cubic) */
120
+ impactExponent: number
121
+ /** Maximum OI for long side used in skew calculation */
122
+ maxOiLong: number
123
+ /** Maximum OI for short side used in skew calculation */
124
+ maxOiShort: number
125
+ /** Reference position size for size scaling. If zero, size scaling is disabled. */
126
+ referenceSize: number
127
+ }
128
+
129
+ // USDZ-specific data API interface
130
+ export interface IUSDZDataAPI extends IBaseDataAPI {
131
+ getSymbolConfig: (indexToken: string, long: boolean) => Promise<IUSDZSymbolConfig | null>
132
+ getPriceImpactConfig: (indexToken: string) => Promise<IUSDZPriceImpactConfig | null>
133
+ }
134
+
135
+ // USDZ-specific API interface
136
+ export interface IUSDZAPI extends IBaseAPI {
137
+ depositPtb: (
138
+ coin: string,
139
+ coinObjects: string[],
140
+ amount: number,
141
+ minAmountOut?: number,
142
+ referralAddress?: string,
143
+ sender?: string,
144
+ tx?: Transaction,
145
+ sponsoredTx?: boolean,
146
+ suiCoinObjectsForPythUpdate?: string[],
147
+ ) => Promise<TransactionObjectArgument>
148
+
149
+ withdrawLpCoinObject: (
150
+ coin: string,
151
+ lpCoinObject: TransactionObjectArgument,
152
+ minAmountOut: number,
153
+ tx?: Transaction,
154
+ ) => Promise<Transaction>
155
+
156
+ stakeCoinObject: (
157
+ coinObject: TransactionObjectArgument,
158
+ pool: string,
159
+ tx?: Transaction,
160
+ ) => Transaction
161
+
162
+ withdrawFromVaultPtb: (
163
+ pool: string,
164
+ credential: string,
165
+ withdrawAmount: bigint,
166
+ tx: Transaction,
167
+ ) => TransactionObjectArgument
168
+
169
+ claimRewardsPtb: (
170
+ pool: string,
171
+ credential: string,
172
+ tx: Transaction,
173
+ ) => TransactionObjectArgument
174
+
175
+ unstakeToCoins: (
176
+ credentials: IUSDZCredential[],
177
+ amount: bigint,
178
+ pool: string,
179
+ tx: Transaction,
180
+ ) => TransactionObjectArgument[]
181
+ }
@@ -0,0 +1,116 @@
1
+ /**
2
+ * USDZ-specific interfaces and types
3
+ * Extends base interfaces with USDZ-specific implementations
4
+ */
5
+
6
+ import type { Transaction, TransactionObjectArgument } from '@mysten/sui/transactions'
7
+
8
+ import type {
9
+ IBaseAPI,
10
+ IBaseCredential,
11
+ IBaseDataAPI,
12
+ IBaseFundingFeeModel,
13
+ IBaseHistory,
14
+ IBaseMarketInfo,
15
+ IBaseMarketValuationInfo,
16
+ IBaseOrderCapInfo,
17
+ IBaseOrderInfo,
18
+ IBasePositionCapInfo,
19
+ IBasePositionConfig,
20
+ IBasePositionInfo,
21
+ IBaseRebaseFeeModel,
22
+ IBaseReservingFeeModel,
23
+ IBaseStakePool,
24
+ IBaseSymbolInfo,
25
+ IBaseVaultInfo,
26
+ } from './base'
27
+
28
+ // USDZ-specific interfaces
29
+ export interface IZBTCVCMarketValuationInfo extends IBaseMarketValuationInfo { }
30
+
31
+ export interface IZBTCVCVaultInfo extends IBaseVaultInfo { }
32
+
33
+ export interface IZBTCVCReservingFeeModel extends IBaseReservingFeeModel { }
34
+
35
+ export interface IZBTCVCFundingFeeModel extends IBaseFundingFeeModel { }
36
+
37
+ export interface IZBTCVCRebaseFeeModel extends IBaseRebaseFeeModel { }
38
+
39
+ export interface IZBTCVCSymbolInfo extends IBaseSymbolInfo { }
40
+
41
+ export interface IZBTCVCMarketInfo extends IBaseMarketInfo {
42
+ // USDZ-specific market info fields can be added here
43
+ }
44
+
45
+ export interface IZBTCVCPositionInfo extends IBasePositionInfo {
46
+ // USDZ-specific position fields can be added here
47
+ }
48
+
49
+ export interface IZBTCVCPositionConfig extends IBasePositionConfig { }
50
+
51
+ export interface IZBTCVCPositionCapInfo extends IBasePositionCapInfo { }
52
+
53
+ export interface IZBTCVCOrderInfo extends IBaseOrderInfo { }
54
+
55
+ export interface IZBTCVCOrderCapInfo extends IBaseOrderCapInfo { }
56
+
57
+ export interface IZBTCVCHistory extends IBaseHistory {
58
+ // USDZ-specific history fields can be added here
59
+ }
60
+
61
+ export interface IZBTCVCStakePool extends IBaseStakePool {
62
+ // USDZ-specific stake pool fields can be added here
63
+ rewardRate: bigint
64
+ }
65
+
66
+ export interface IZBTCVCCredential extends IBaseCredential {
67
+ // USDZ-specific credential fields can be added here
68
+ }
69
+
70
+ // USDZ Symbol Config interfaces
71
+ export interface IZBTCVCPositionInstantExitFeeConfig {
72
+ instant_exit_tier_1_duration_threshold: number
73
+ instant_exit_tier_1_fee_bps: number
74
+ instant_exit_tier_1_fee_enabled: boolean
75
+ instant_exit_tier_2_duration_threshold: number
76
+ instant_exit_tier_2_fee_bps: number
77
+ instant_exit_tier_2_fee_enabled: boolean
78
+ instant_exit_tier_3_duration_threshold: number
79
+ instant_exit_tier_3_fee_bps: number
80
+ instant_exit_tier_3_fee_enabled: boolean
81
+ }
82
+
83
+ export interface IZBTCVCSymbolConfig {
84
+ id: string
85
+ max_opening_size: number
86
+ max_opening_size_enabled: boolean
87
+ max_opening_size_per_position: number
88
+ max_opening_size_per_position_enabled: boolean
89
+ instant_exit_fee_config: IZBTCVCPositionInstantExitFeeConfig
90
+ }
91
+
92
+ // USDZ-specific data API interface
93
+ export interface IZBTCVCDataAPI extends IBaseDataAPI {
94
+ getSymbolConfig: (indexToken: string, long: boolean) => Promise<IZBTCVCSymbolConfig | null>
95
+ }
96
+
97
+ // USDZ-specific API interface
98
+ export interface IZBTCVCAPI extends IBaseAPI {
99
+ depositPtb: (
100
+ coin: string,
101
+ coinObjects: string[],
102
+ amount: number,
103
+ minAmountOut?: number,
104
+ referralAddress?: string,
105
+ sender?: string,
106
+ tx?: Transaction,
107
+ sponsoredTx?: boolean,
108
+ suiCoinObjectsForPythUpdate?: string[],
109
+ ) => Promise<TransactionObjectArgument>
110
+
111
+ stakeCoinObject: (
112
+ coinObject: TransactionObjectArgument,
113
+ pool: string,
114
+ tx?: Transaction,
115
+ ) => Transaction
116
+ }