@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,838 @@
1
+ /**
2
+ * Base interfaces for all SDK implementations
3
+ * This file defines the common contracts that all LP token SDKs must implement
4
+ */
5
+
6
+ import type { KioskClient, KioskOwnerCap } from '@mysten/kiosk'
7
+ import type { SuiClient } from '@mysten/sui/client'
8
+ import type { Transaction, TransactionObjectArgument } from '@mysten/sui/transactions'
9
+ import type { PriceFeed } from '@pythnetwork/pyth-sui-js'
10
+
11
+ import type { IConsts, LPToken, Network } from '../consts'
12
+
13
+ // Common data interfaces
14
+ export interface IBaseMarketValuationInfo {
15
+ marketCap: number
16
+ price: number
17
+ supply: number
18
+ apr?: number
19
+ }
20
+
21
+ export interface IBaseMarketInfo {
22
+ lpSupply: string
23
+ positionId: string
24
+ vaultId: string
25
+ symbolId: string
26
+ lpSupplyWithDecimals: number
27
+ referralId?: string
28
+ orderId?: string
29
+ rebaseFeeModel?: string
30
+ apr?: string
31
+ }
32
+
33
+ export interface IBaseVaultInfo {
34
+ liquidity: number
35
+ reservedAmount: number
36
+ unrealisedReservingFeeAmount: number
37
+ accReservingRate: number
38
+ enabled: boolean
39
+ weight: number
40
+ lastUpdate: number
41
+ reservingFeeModel: IBaseReservingFeeModel
42
+ priceConfig: {
43
+ maxInterval: number
44
+ maxConfidence: number
45
+ precision: number
46
+ feeder: string
47
+ }
48
+ }
49
+
50
+ export interface IBaseReservingFeeModel {
51
+ multiplier: number
52
+ }
53
+
54
+ export interface IBaseFundingFeeModel {
55
+ multiplier: number
56
+ max: number
57
+ }
58
+
59
+ export interface IBaseRebaseFeeModel {
60
+ base: number
61
+ multiplier: number
62
+ /** Exponent for rebase fee curve (default 1 = linear when not set on chain) */
63
+ exponent?: number
64
+ }
65
+
66
+ export interface IBaseSymbolInfo {
67
+ objectId: string
68
+ openingSize: number
69
+ openingAmount: number
70
+ accFundingRate: number
71
+ realisedPnl: number
72
+ unrealisedFundingFeeValue: number
73
+ openEnabled: boolean
74
+ liquidateEnabled: boolean
75
+ decreaseEnabled: boolean
76
+ lastUpdate: number
77
+ fundingFeeModel: IBaseFundingFeeModel
78
+ long: boolean
79
+ priceConfig: {
80
+ maxInterval: number
81
+ maxConfidence: number
82
+ precision: number
83
+ feeder: string
84
+ }
85
+ }
86
+
87
+ export interface IBasePositionInfo {
88
+ id: string
89
+ long: boolean
90
+ owner: string
91
+ version: number
92
+ collateralToken: string
93
+ indexToken: string
94
+ collateralAmount: number
95
+ positionAmount: number
96
+ reservedAmount: number
97
+ positionSize: number
98
+ lastFundingRate: number
99
+ lastReservingRate: number
100
+ reservingFeeAmount: number
101
+ fundingFeeValue: number
102
+ closed: boolean
103
+ openTimestamp: number
104
+ }
105
+
106
+ export type IBaseOrderType = 'OPEN_POSITION' | 'DECREASE_POSITION' | 'OPEN_MARKET' | 'DECREASE_MARKET'
107
+ export interface IBaseOrderInfo {
108
+ id: string
109
+ capId: string
110
+ executed: boolean
111
+ owner: string
112
+ collateralToken: string
113
+ indexToken: string
114
+ feeToken: string
115
+ collateralPriceThreshold: number
116
+ feeAmount: bigint
117
+ long: boolean
118
+ indexPrice: number
119
+ // New optional fields for upgraded Move structs
120
+ indexPriceThreshold?: number
121
+ referrer?: string
122
+ scardId?: string
123
+ scardRebateRate?: number
124
+ openOrder?: {
125
+ reserveAmount: bigint
126
+ collateralAmount: bigint
127
+ openAmount: bigint
128
+ // PositionConfig from OpenMarketOrder
129
+ positionConfig?: IBasePositionConfig
130
+ }
131
+ decreaseOrder?: {
132
+ decreaseAmount: bigint
133
+ takeProfit: boolean
134
+ }
135
+ orderType: IBaseOrderType
136
+ createdAt: number
137
+ v11Order?: boolean
138
+ orderVersion?: string
139
+ }
140
+
141
+ export interface IBasePositionConfig {
142
+ decreaseFeeBps: number
143
+ liquidationBonus: number
144
+ liquidationThreshold: number
145
+ maxLeverage: number
146
+ minHoldingDuration: number
147
+ openFeeBps: number
148
+ maxReservedMultiplier: number
149
+ minCollateralValue: number
150
+ }
151
+
152
+ export interface IBasePositionCapInfo {
153
+ positionCapId: string
154
+ symbol0: string
155
+ symbol1: string
156
+ long: boolean
157
+ }
158
+
159
+ export interface IBaseOrderCapInfo {
160
+ orderCapId: string
161
+ symbol0: string
162
+ symbol1: string
163
+ long: boolean
164
+ positionId: string | null
165
+ }
166
+
167
+ export interface IBaseHistory {
168
+ owner: string
169
+ txid: string
170
+ id: string
171
+ created: number
172
+ eventName: string
173
+ indexToken: string
174
+ direction: string
175
+ collateralAmount: number
176
+ collateralPrice: number
177
+ indexPrice: number
178
+ pnl: number
179
+ positionId: string
180
+ volume: number
181
+ fee: number
182
+ network: string
183
+ }
184
+
185
+ export interface IBasePagination {
186
+ total: number
187
+ page: number
188
+ limit: number
189
+ pages: number
190
+ }
191
+
192
+ export interface IBaseHistoryResponse {
193
+ histories: IBaseHistory[]
194
+ pagination: IBasePagination
195
+ }
196
+
197
+ export interface IBaseStaked {
198
+ credentials: IBaseCredential[]
199
+ amount: bigint
200
+ claimable: bigint
201
+ }
202
+
203
+ export interface IBaseStakePool {
204
+ id: string
205
+ enabled: boolean
206
+ lastUpdatedTime: number
207
+ stakedAmount: bigint
208
+ reward: bigint
209
+ startTime: number
210
+ endTime: number
211
+ accRewardPerShare: bigint
212
+ lockDuration: number
213
+ }
214
+
215
+ export interface IBaseCredential {
216
+ id: string
217
+ lockUntil: number
218
+ accRewardPerShare: bigint
219
+ amount: bigint
220
+ claimable: bigint
221
+ }
222
+
223
+ // Abstract base interfaces for SDK implementations
224
+ export interface IBaseDataAPI {
225
+ readonly network: Network
226
+ readonly provider: SuiClient
227
+ readonly apiEndpoint: string
228
+ readonly connectionURL: string
229
+ readonly lpToken: LPToken
230
+ readonly consts: IConsts
231
+
232
+ // Core valuation methods
233
+ valuateVaults: (tx: Transaction) => any
234
+ valuateSymbols: (tx: Transaction) => any
235
+ valuate: (tx: Transaction) => { vaultsValuation: any, symbolsValuation: any }
236
+ valuateMarket: () => Promise<IBaseMarketValuationInfo>
237
+
238
+ // Fee methods
239
+ fundingFeeRate: (indexToken: string, long: boolean, sender?: string) => Promise<number>
240
+ rebaseFeeRate: (collateralToken: string, increase: boolean, amount: number, sender?: string) => Promise<number>
241
+ reservingFeeRate: (collateralToken: string, amount: number, sender?: string) => Promise<number>
242
+
243
+ // Market data methods
244
+ getMarketInfo: () => Promise<IBaseMarketInfo>
245
+ getVaultInfo: (vault: string) => Promise<IBaseVaultInfo>
246
+ getSymbolInfo: (tokenId: string, long: boolean) => Promise<IBaseSymbolInfo>
247
+ getPositionConfig: (indexToken: string, long: boolean) => Promise<IBasePositionConfig>
248
+ getRebaseFeeModel: () => Promise<IBaseRebaseFeeModel>
249
+ getOpenPositions: (batchSize: number, symbol: string) => Promise<IBasePositionInfo[]>
250
+
251
+ // User data methods
252
+ getPositionCapInfoList: (owner: string) => Promise<IBasePositionCapInfo[]>
253
+ getPositionInfoList: (positionCapInfoList: IBasePositionCapInfo[], owner: string, batchSize?: number) => Promise<IBasePositionInfo[]>
254
+ getOrderCapInfoList: (owner: string) => Promise<IBaseOrderCapInfo[]>
255
+ getOrderInfoList: (orderCapInfoList: IBaseOrderCapInfo[], owner: string, batchSize?: number) => Promise<IBaseOrderInfo[]>
256
+ getHistory: (trader: string, page: number, limit: number, orderType?: string, symbol?: string) => Promise<IBaseHistoryResponse>
257
+
258
+ // Staking methods
259
+ getStaked: (owner: string) => Promise<IBaseStaked>
260
+ getStakePool: () => Promise<IBaseStakePool>
261
+
262
+ // Referral methods
263
+ hasReferral: (referree: string) => Promise<boolean>
264
+ getReferralData: (referree: string) => Promise<any>
265
+
266
+ // Oracle methods
267
+ getOraclePrice: (tokenId: string) => Promise<PriceFeed>
268
+ getOraclePrices: (tokens: string[]) => Promise<PriceFeed[]>
269
+ subOraclePrices: (tokens: string[], callback: (price: PriceFeed) => void) => Promise<() => void>
270
+ initOracleTxb: (tokens: string[], tx?: Transaction) => Promise<Transaction>
271
+
272
+ // Utility methods
273
+ validateCache: () => void
274
+ }
275
+
276
+ export interface IBaseAPI {
277
+ // LP operations
278
+ deposit: (
279
+ coin: string,
280
+ coinObjects: string[],
281
+ amount: number,
282
+ minAmountOut?: number,
283
+ referralAddress?: string,
284
+ sender?: string,
285
+ sponsoredTx?: boolean,
286
+ suiCoinObjectsForPythUpdate?: string[],
287
+ ) => Promise<Transaction>
288
+
289
+ withdraw: (
290
+ coin: string,
291
+ lpCoinObjects: string[],
292
+ amount: number,
293
+ minAmountOut?: number,
294
+ sponsoredTx?: boolean,
295
+ suiCoinObjectsForPythUpdate?: string[],
296
+ ) => Promise<Transaction>
297
+
298
+ swap: (
299
+ fromToken: string,
300
+ toToken: string,
301
+ fromAmount: bigint,
302
+ fromCoinObjects: string[],
303
+ ) => Promise<Transaction>
304
+
305
+ // Staking
306
+ stake: (
307
+ lpCoinObjects: string[],
308
+ amount: bigint,
309
+ pool: string,
310
+ tx?: Transaction
311
+ ) => Transaction
312
+
313
+ unstake: (
314
+ credentials: IBaseCredential[],
315
+ amount: bigint,
316
+ pool: string,
317
+ tx?: Transaction
318
+ ) => Transaction
319
+
320
+ // Trading operations
321
+ openPosition: (
322
+ collateralToken: string,
323
+ indexToken: string,
324
+ size: bigint,
325
+ collateralAmount: bigint,
326
+ coinObjects: string[],
327
+ long: boolean,
328
+ reserveAmount: bigint,
329
+ indexPrice: number,
330
+ collateralPrice: number,
331
+ isLimitOrder?: boolean,
332
+ isIocOrder?: boolean,
333
+ pricesSlippage?: number,
334
+ collateralSlippage?: number,
335
+ relayerFee?: bigint,
336
+ referralAddress?: string,
337
+ sender?: string,
338
+ sponsoredTx?: boolean,
339
+ suiCoinObjectsForPythUpdate?: string[],
340
+ ) => Promise<Transaction>
341
+
342
+ // Trading operations
343
+ openPositionWithCoin?: (
344
+ collateralToken: string,
345
+ indexToken: string,
346
+ size: bigint,
347
+ coinObj: TransactionObjectArgument,
348
+ long: boolean,
349
+ reserveAmount: bigint,
350
+ indexPrice: number,
351
+ collateralPrice: number,
352
+ isLimitOrder?: boolean,
353
+ isIocOrder?: boolean,
354
+ pricesSlippage?: number,
355
+ collateralSlippage?: number,
356
+ relayerFee?: bigint,
357
+ referralAddress?: string,
358
+ sender?: string,
359
+ tx?: Transaction,
360
+ sponsoredTx?: boolean,
361
+ suiCoinObjectsForPythUpdate?: string[],
362
+ ) => Promise<Transaction>
363
+
364
+ decreasePosition: (
365
+ pcpId: string,
366
+ collateralToken: string,
367
+ indexToken: string,
368
+ amount: bigint,
369
+ long: boolean,
370
+ indexPrice: number,
371
+ collateralPrice: number,
372
+ isTriggerOrder?: boolean,
373
+ isTakeProfitOrder?: boolean,
374
+ isIocOrder?: boolean,
375
+ pricesSlippage?: number,
376
+ collateralSlippage?: number,
377
+ relayerFee?: bigint,
378
+ coinObjects?: string[],
379
+ sponsoredTx?: boolean,
380
+ suiCoinObjectsForPythUpdate?: string[],
381
+ ) => Promise<Transaction>
382
+
383
+ decreaseMultiPositions: (
384
+ positions: Array<{
385
+ pcpId: string
386
+ collateralToken: string
387
+ indexToken: string
388
+ amount: bigint
389
+ long: boolean
390
+ indexPrice: number
391
+ collateralPrice: number
392
+ isTriggerOrder?: boolean
393
+ isTakeProfitOrder?: boolean
394
+ isIocOrder?: boolean
395
+ pricesSlippage?: number
396
+ collateralSlippage?: number
397
+ relayerFee?: bigint
398
+ coinObjects?: string[]
399
+ }>,
400
+ tx?: Transaction,
401
+ sponsoredTx?: boolean,
402
+ suiCoinObjectsForPythUpdate?: string[],
403
+ ) => Promise<Transaction>
404
+
405
+ openPositionV2?: (
406
+ collateralToken: string,
407
+ indexToken: string,
408
+ size: bigint,
409
+ collateralAmount: bigint,
410
+ coinObjects: string[],
411
+ long: boolean,
412
+ reserveAmount: bigint,
413
+ indexPrice: number,
414
+ collateralPrice: number,
415
+ isLimitOrder?: boolean,
416
+ isIocOrder?: boolean,
417
+ pricesSlippage?: number,
418
+ collateralSlippage?: number,
419
+ relayerFee?: bigint,
420
+ referralAddress?: string,
421
+ sender?: string,
422
+ sponsoredTx?: boolean,
423
+ suiCoinObjectsForPythUpdate?: string[],
424
+ ) => Promise<Transaction>
425
+
426
+ // Trading operations
427
+ openPositionWithCoinV2?: (
428
+ collateralToken: string,
429
+ indexToken: string,
430
+ size: bigint,
431
+ coinObj: TransactionObjectArgument,
432
+ long: boolean,
433
+ reserveAmount: bigint,
434
+ indexPrice: number,
435
+ collateralPrice: number,
436
+ isLimitOrder?: boolean,
437
+ isIocOrder?: boolean,
438
+ pricesSlippage?: number,
439
+ collateralSlippage?: number,
440
+ relayerFee?: bigint,
441
+ referralAddress?: string,
442
+ sender?: string,
443
+ tx?: Transaction,
444
+ sponsoredTx?: boolean,
445
+ suiCoinObjectsForPythUpdate?: string[],
446
+ ) => Promise<Transaction>
447
+
448
+ decreasePositionV2?: (
449
+ pcpId: string,
450
+ collateralToken: string,
451
+ indexToken: string,
452
+ amount: bigint,
453
+ long: boolean,
454
+ indexPrice: number,
455
+ collateralPrice: number,
456
+ isTriggerOrder?: boolean,
457
+ isTakeProfitOrder?: boolean,
458
+ isIocOrder?: boolean,
459
+ pricesSlippage?: number,
460
+ collateralSlippage?: number,
461
+ relayerFee?: bigint,
462
+ coinObjects?: string[],
463
+ sponsoredTx?: boolean,
464
+ suiCoinObjectsForPythUpdate?: string[],
465
+ ) => Promise<Transaction>
466
+
467
+ decreaseMultiPositionsV2?: (
468
+ positions: Array<{
469
+ pcpId: string
470
+ collateralToken: string
471
+ indexToken: string
472
+ amount: bigint
473
+ long: boolean
474
+ indexPrice: number
475
+ collateralPrice: number
476
+ isTriggerOrder?: boolean
477
+ isTakeProfitOrder?: boolean
478
+ isIocOrder?: boolean
479
+ pricesSlippage?: number
480
+ collateralSlippage?: number
481
+ relayerFee?: bigint
482
+ coinObjects?: string[]
483
+ }>,
484
+ tx?: Transaction,
485
+ sponsoredTx?: boolean,
486
+ suiCoinObjectsForPythUpdate?: string[],
487
+ feeObjects?: TransactionObjectArgument[],
488
+ ) => Promise<Transaction>
489
+
490
+ pledgeInPosition: (
491
+ pcpId: string,
492
+ collateralToken: string,
493
+ indexToken: string,
494
+ amount: number,
495
+ coinObjects: string[],
496
+ long: boolean,
497
+ sponsoredTx?: boolean,
498
+ suiCoinObjectsForPythUpdate?: string[],
499
+ ) => Promise<Transaction>
500
+
501
+ redeemFromPosition: (
502
+ pcpId: string,
503
+ collateralToken: string,
504
+ indexToken: string,
505
+ amount: number,
506
+ long: boolean,
507
+ sponsoredTx?: boolean,
508
+ suiCoinObjectsForPythUpdate?: string[],
509
+ ) => Promise<Transaction>
510
+
511
+ cancelOrder: (
512
+ orderCapId: string,
513
+ collateralToken: string,
514
+ indexToken: string,
515
+ long: boolean,
516
+ type: string,
517
+ isV11Order?: boolean
518
+ ) => Transaction
519
+
520
+ cancelMultiOrders: (
521
+ orders: Array<{
522
+ orderCapId: string
523
+ collateralToken: string
524
+ indexToken: string
525
+ long: boolean
526
+ type: string
527
+ isV11Order?: boolean
528
+ }>,
529
+ tx?: Transaction
530
+ ) => Transaction
531
+
532
+ clearClosedPosition: (
533
+ pcpId: string,
534
+ collateralToken: string,
535
+ indexToken: string,
536
+ long: boolean,
537
+ tx: Transaction,
538
+ ) => void
539
+
540
+ clearOpenPositionOrder: (
541
+ orderCapId: string,
542
+ collateralToken: string,
543
+ indexToken: string,
544
+ long: boolean,
545
+ tx: Transaction,
546
+ isV11Order?: boolean
547
+ ) => void
548
+
549
+ clearDecreasePositionOrder: (
550
+ orderCapId: string,
551
+ collateralToken: string,
552
+ indexToken: string,
553
+ long: boolean,
554
+ tx: Transaction,
555
+ isV11Order?: boolean
556
+ ) => void
557
+
558
+ clearOpenMarketOrder?: (
559
+ orderCapId: string,
560
+ collateralToken: string,
561
+ indexToken: string,
562
+ long: boolean,
563
+ tx: Transaction,
564
+ isV11Order?: boolean
565
+ ) => void
566
+
567
+ clearDecreaseMarketOrder?: (
568
+ orderCapId: string,
569
+ collateralToken: string,
570
+ indexToken: string,
571
+ long: boolean,
572
+ tx: Transaction,
573
+ isV11Order?: boolean
574
+ ) => void
575
+
576
+ // S Card operations
577
+ openPositionWithSCard: (
578
+ collateralToken: string,
579
+ indexToken: string,
580
+ size: bigint,
581
+ collateralAmount: bigint,
582
+ coinObjects: string[],
583
+ long: boolean,
584
+ reserveAmount: bigint,
585
+ indexPrice: number,
586
+ collateralPrice: number,
587
+ kioskClient: KioskClient,
588
+ kioskCap: KioskOwnerCap,
589
+ scard: string,
590
+ isLimitOrder?: boolean,
591
+ isIocOrder?: boolean,
592
+ pricesSlippage?: number,
593
+ collateralSlippage?: number,
594
+ relayerFee?: bigint,
595
+ referralAddress?: string,
596
+ sender?: string,
597
+ sponsoredTx?: boolean,
598
+ suiCoinObjectsForPythUpdate?: string[],
599
+ ) => Promise<Transaction>
600
+
601
+ // S Card operations
602
+ openPositionWithCoinAndSCard?: (
603
+ collateralToken: string,
604
+ indexToken: string,
605
+ size: bigint,
606
+ coinObj: TransactionObjectArgument,
607
+ long: boolean,
608
+ reserveAmount: bigint,
609
+ indexPrice: number,
610
+ collateralPrice: number,
611
+ kioskClient: KioskClient,
612
+ kioskCap: KioskOwnerCap,
613
+ scard: string,
614
+ isLimitOrder?: boolean,
615
+ isIocOrder?: boolean,
616
+ pricesSlippage?: number,
617
+ collateralSlippage?: number,
618
+ relayerFee?: bigint,
619
+ referralAddress?: string,
620
+ sender?: string,
621
+ tx?: Transaction,
622
+ sponsoredTx?: boolean,
623
+ suiCoinObjectsForPythUpdate?: string[],
624
+ ) => Promise<Transaction>
625
+
626
+ decreasePositionWithSCard: (
627
+ pcpId: string,
628
+ collateralToken: string,
629
+ indexToken: string,
630
+ amount: bigint,
631
+ long: boolean,
632
+ indexPrice: number,
633
+ collateralPrice: number,
634
+ kioskClient: KioskClient,
635
+ kioskCap: KioskOwnerCap,
636
+ scard: string,
637
+ isTriggerOrder?: boolean,
638
+ isTakeProfitOrder?: boolean,
639
+ isIocOrder?: boolean,
640
+ pricesSlippage?: number,
641
+ collateralSlippage?: number,
642
+ relayerFee?: bigint,
643
+ coinObjects?: string[],
644
+ sponsoredTx?: boolean,
645
+ suiCoinObjectsForPythUpdate?: string[],
646
+ ) => Promise<Transaction>
647
+
648
+ decreaseMultiPositionsWithSCard: (
649
+ positions: Array<{
650
+ pcpId: string
651
+ collateralToken: string
652
+ indexToken: string
653
+ amount: bigint
654
+ long: boolean
655
+ indexPrice: number
656
+ collateralPrice: number
657
+ isTriggerOrder?: boolean
658
+ isTakeProfitOrder?: boolean
659
+ isIocOrder?: boolean
660
+ pricesSlippage?: number
661
+ collateralSlippage?: number
662
+ relayerFee?: bigint
663
+ coinObjects?: string[]
664
+ }>,
665
+ kioskClient: KioskClient,
666
+ kioskCap: KioskOwnerCap,
667
+ scard: string,
668
+ tx?: Transaction,
669
+ sponsoredTx?: boolean,
670
+ suiCoinObjectsForPythUpdate?: string[],
671
+ ) => Promise<Transaction>
672
+
673
+ openPositionWithSCardV2?: (
674
+ collateralToken: string,
675
+ indexToken: string,
676
+ size: bigint,
677
+ collateralAmount: bigint,
678
+ coinObjects: string[],
679
+ long: boolean,
680
+ reserveAmount: bigint,
681
+ indexPrice: number,
682
+ collateralPrice: number,
683
+ kioskClient: KioskClient,
684
+ kioskCap: KioskOwnerCap,
685
+ scard: string,
686
+ isLimitOrder?: boolean,
687
+ isIocOrder?: boolean,
688
+ pricesSlippage?: number,
689
+ collateralSlippage?: number,
690
+ relayerFee?: bigint,
691
+ referralAddress?: string,
692
+ sender?: string,
693
+ sponsoredTx?: boolean,
694
+ suiCoinObjectsForPythUpdate?: string[],
695
+ ) => Promise<Transaction>
696
+
697
+ // S Card operations
698
+ openPositionWithCoinAndSCardV2?: (
699
+ collateralToken: string,
700
+ indexToken: string,
701
+ size: bigint,
702
+ coinObj: TransactionObjectArgument,
703
+ long: boolean,
704
+ reserveAmount: bigint,
705
+ indexPrice: number,
706
+ collateralPrice: number,
707
+ kioskClient: KioskClient,
708
+ kioskCap: KioskOwnerCap,
709
+ scard: string,
710
+ isLimitOrder?: boolean,
711
+ isIocOrder?: boolean,
712
+ pricesSlippage?: number,
713
+ collateralSlippage?: number,
714
+ relayerFee?: bigint,
715
+ referralAddress?: string,
716
+ sender?: string,
717
+ tx?: Transaction,
718
+ sponsoredTx?: boolean,
719
+ suiCoinObjectsForPythUpdate?: string[],
720
+ ) => Promise<Transaction>
721
+
722
+ decreasePositionWithSCardV2?: (
723
+ pcpId: string,
724
+ collateralToken: string,
725
+ indexToken: string,
726
+ amount: bigint,
727
+ long: boolean,
728
+ indexPrice: number,
729
+ collateralPrice: number,
730
+ kioskClient: KioskClient,
731
+ kioskCap: KioskOwnerCap,
732
+ scard: string,
733
+ isTriggerOrder?: boolean,
734
+ isTakeProfitOrder?: boolean,
735
+ isIocOrder?: boolean,
736
+ pricesSlippage?: number,
737
+ collateralSlippage?: number,
738
+ relayerFee?: bigint,
739
+ coinObjects?: string[],
740
+ sponsoredTx?: boolean,
741
+ suiCoinObjectsForPythUpdate?: string[],
742
+ ) => Promise<Transaction>
743
+
744
+ decreaseMultiPositionsWithSCardV2?: (
745
+ positions: Array<{
746
+ pcpId: string
747
+ collateralToken: string
748
+ indexToken: string
749
+ amount: bigint
750
+ long: boolean
751
+ indexPrice: number
752
+ collateralPrice: number
753
+ isTriggerOrder?: boolean
754
+ isTakeProfitOrder?: boolean
755
+ isIocOrder?: boolean
756
+ pricesSlippage?: number
757
+ collateralSlippage?: number
758
+ relayerFee?: bigint
759
+ coinObjects?: string[]
760
+ }>,
761
+ kioskClient: KioskClient,
762
+ kioskCap: KioskOwnerCap,
763
+ scard: string,
764
+ tx?: Transaction,
765
+ sponsoredTx?: boolean,
766
+ suiCoinObjectsForPythUpdate?: string[],
767
+ feeObjects?: TransactionObjectArgument[],
768
+ ) => Promise<Transaction>
769
+
770
+ claimTokenFromSCard: (
771
+ token: string,
772
+ coinObjects: string[],
773
+ kioskClient: KioskClient,
774
+ kioskCap: KioskOwnerCap,
775
+ scard: string,
776
+ ) => Transaction
777
+
778
+ // Miscellaneous
779
+ addReferral: (
780
+ referrer: string,
781
+ tx?: Transaction
782
+ ) => Transaction
783
+
784
+ // Admin operations
785
+ adminUpdatePriceFeed: (
786
+ collateralToken: string,
787
+ indexToken: string
788
+ ) => Promise<Transaction>
789
+
790
+ adminSettlePosition: (
791
+ positionId: string,
792
+ owner: string,
793
+ collateralToken: string,
794
+ indexToken: string,
795
+ long: boolean,
796
+ ) => Transaction
797
+
798
+ adminDecreasePosition: (
799
+ positionId: string,
800
+ owner: string,
801
+ collateralToken: string,
802
+ indexToken: string,
803
+ positionAmount: number,
804
+ amount: bigint,
805
+ long: boolean,
806
+ collateralPrice?: number,
807
+ collateralSlippage?: number,
808
+ relayerFee?: bigint
809
+ ) => Transaction
810
+
811
+ adminClearClosedPosition: (
812
+ positionId: string,
813
+ owner: string,
814
+ collateralToken: string,
815
+ indexToken: string,
816
+ long: boolean,
817
+ tx: Transaction
818
+ ) => void
819
+ }
820
+
821
+ // Factory interface for creating SDK instances
822
+ export interface ISDKFactory {
823
+ createDataAPI: (
824
+ network: Network,
825
+ provider: SuiClient,
826
+ apiEndpoint: string,
827
+ connectionURL: string,
828
+ lpToken: LPToken
829
+ ) => IBaseDataAPI
830
+
831
+ createAPI: (
832
+ network: Network,
833
+ provider: SuiClient,
834
+ apiEndpoint: string,
835
+ connectionURL: string,
836
+ lpToken: LPToken
837
+ ) => IBaseAPI
838
+ }