zo-sdk 0.0.50 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/README.md +272 -20
  2. package/dist/abstract/BaseAPI.cjs +117 -0
  3. package/dist/abstract/BaseAPI.cjs.map +1 -0
  4. package/dist/abstract/BaseAPI.d.cts +131 -0
  5. package/dist/abstract/BaseAPI.d.cts.map +1 -0
  6. package/dist/abstract/BaseAPI.d.mts +131 -0
  7. package/dist/abstract/BaseAPI.d.mts.map +1 -0
  8. package/dist/abstract/BaseAPI.mjs +113 -0
  9. package/dist/abstract/BaseAPI.mjs.map +1 -0
  10. package/dist/abstract/BaseDataAPI.cjs +139 -0
  11. package/dist/abstract/BaseDataAPI.cjs.map +1 -0
  12. package/dist/abstract/BaseDataAPI.d.cts +89 -0
  13. package/dist/abstract/BaseDataAPI.d.cts.map +1 -0
  14. package/dist/abstract/BaseDataAPI.d.mts +89 -0
  15. package/dist/abstract/BaseDataAPI.d.mts.map +1 -0
  16. package/dist/abstract/BaseDataAPI.mjs +135 -0
  17. package/dist/abstract/BaseDataAPI.mjs.map +1 -0
  18. package/dist/abstract/index.cjs +12 -0
  19. package/dist/abstract/index.cjs.map +1 -0
  20. package/dist/abstract/index.d.cts +7 -0
  21. package/dist/abstract/index.d.cts.map +1 -0
  22. package/dist/abstract/index.d.mts +7 -0
  23. package/dist/abstract/index.d.mts.map +1 -0
  24. package/dist/abstract/index.mjs +7 -0
  25. package/dist/abstract/index.mjs.map +1 -0
  26. package/dist/bcs.cjs +42 -0
  27. package/dist/bcs.cjs.map +1 -0
  28. package/dist/bcs.d.cts +91 -0
  29. package/dist/bcs.d.cts.map +1 -0
  30. package/dist/bcs.d.mts +91 -0
  31. package/dist/bcs.d.mts.map +1 -0
  32. package/dist/bcs.mjs +39 -0
  33. package/dist/bcs.mjs.map +1 -0
  34. package/dist/consts/deployments-slp-mainnet.json +710 -0
  35. package/dist/consts/deployments-slp-testnet.json +109 -0
  36. package/dist/consts/deployments-usdz-mainnet.json +180 -0
  37. package/dist/consts/deployments-usdz-testnet.json +98 -0
  38. package/dist/consts/{deployments-mainnet.json → deployments-zlp-mainnet.json} +278 -42
  39. package/dist/consts/index.cjs +40 -8
  40. package/dist/consts/index.cjs.map +1 -1
  41. package/dist/consts/index.d.cts +81 -11
  42. package/dist/consts/index.d.cts.map +1 -1
  43. package/dist/consts/index.d.mts +81 -11
  44. package/dist/consts/index.d.mts.map +1 -1
  45. package/dist/consts/index.mjs +39 -7
  46. package/dist/consts/index.mjs.map +1 -1
  47. package/dist/consts/price_id_to_object_id.mainnet.json +9 -1
  48. package/dist/data.cjs +2 -2
  49. package/dist/data.cjs.map +1 -1
  50. package/dist/data.mjs +2 -2
  51. package/dist/data.mjs.map +1 -1
  52. package/dist/factory/SDKFactory.cjs +185 -0
  53. package/dist/factory/SDKFactory.cjs.map +1 -0
  54. package/dist/factory/SDKFactory.d.cts +74 -0
  55. package/dist/factory/SDKFactory.d.cts.map +1 -0
  56. package/dist/factory/SDKFactory.d.mts +74 -0
  57. package/dist/factory/SDKFactory.d.mts.map +1 -0
  58. package/dist/factory/SDKFactory.mjs +179 -0
  59. package/dist/factory/SDKFactory.mjs.map +1 -0
  60. package/dist/implementations/SLPAPI.cjs +829 -0
  61. package/dist/implementations/SLPAPI.cjs.map +1 -0
  62. package/dist/implementations/SLPAPI.d.cts +120 -0
  63. package/dist/implementations/SLPAPI.d.cts.map +1 -0
  64. package/dist/implementations/SLPAPI.d.mts +120 -0
  65. package/dist/implementations/SLPAPI.d.mts.map +1 -0
  66. package/dist/implementations/SLPAPI.mjs +825 -0
  67. package/dist/implementations/SLPAPI.mjs.map +1 -0
  68. package/dist/implementations/SLPDataAPI.cjs +916 -0
  69. package/dist/implementations/SLPDataAPI.cjs.map +1 -0
  70. package/dist/implementations/SLPDataAPI.d.cts +102 -0
  71. package/dist/implementations/SLPDataAPI.d.cts.map +1 -0
  72. package/dist/implementations/SLPDataAPI.d.mts +102 -0
  73. package/dist/implementations/SLPDataAPI.d.mts.map +1 -0
  74. package/dist/implementations/SLPDataAPI.mjs +912 -0
  75. package/dist/implementations/SLPDataAPI.mjs.map +1 -0
  76. package/dist/implementations/USDZAPI.cjs +522 -0
  77. package/dist/implementations/USDZAPI.cjs.map +1 -0
  78. package/dist/implementations/USDZAPI.d.cts +118 -0
  79. package/dist/implementations/USDZAPI.d.cts.map +1 -0
  80. package/dist/implementations/USDZAPI.d.mts +118 -0
  81. package/dist/implementations/USDZAPI.d.mts.map +1 -0
  82. package/dist/implementations/USDZAPI.mjs +518 -0
  83. package/dist/implementations/USDZAPI.mjs.map +1 -0
  84. package/dist/implementations/USDZDataAPI.cjs +697 -0
  85. package/dist/implementations/USDZDataAPI.cjs.map +1 -0
  86. package/dist/implementations/USDZDataAPI.d.cts +86 -0
  87. package/dist/implementations/USDZDataAPI.d.cts.map +1 -0
  88. package/dist/implementations/USDZDataAPI.d.mts +86 -0
  89. package/dist/implementations/USDZDataAPI.d.mts.map +1 -0
  90. package/dist/implementations/USDZDataAPI.mjs +693 -0
  91. package/dist/implementations/USDZDataAPI.mjs.map +1 -0
  92. package/dist/implementations/ZLPAPI.cjs +809 -0
  93. package/dist/implementations/ZLPAPI.cjs.map +1 -0
  94. package/dist/implementations/ZLPAPI.d.cts +121 -0
  95. package/dist/implementations/ZLPAPI.d.cts.map +1 -0
  96. package/dist/implementations/ZLPAPI.d.mts +121 -0
  97. package/dist/implementations/ZLPAPI.d.mts.map +1 -0
  98. package/dist/implementations/ZLPAPI.mjs +805 -0
  99. package/dist/implementations/ZLPAPI.mjs.map +1 -0
  100. package/dist/implementations/ZLPDataAPI.cjs +724 -0
  101. package/dist/implementations/ZLPDataAPI.cjs.map +1 -0
  102. package/dist/implementations/ZLPDataAPI.d.cts +83 -0
  103. package/dist/implementations/ZLPDataAPI.d.cts.map +1 -0
  104. package/dist/implementations/ZLPDataAPI.d.mts +83 -0
  105. package/dist/implementations/ZLPDataAPI.d.mts.map +1 -0
  106. package/dist/implementations/ZLPDataAPI.mjs +720 -0
  107. package/dist/implementations/ZLPDataAPI.mjs.map +1 -0
  108. package/dist/implementations/index.cjs +22 -0
  109. package/dist/implementations/index.cjs.map +1 -0
  110. package/dist/implementations/index.d.cts +11 -0
  111. package/dist/implementations/index.d.cts.map +1 -0
  112. package/dist/implementations/index.d.mts +11 -0
  113. package/dist/implementations/index.d.mts.map +1 -0
  114. package/dist/implementations/index.mjs +13 -0
  115. package/dist/implementations/index.mjs.map +1 -0
  116. package/dist/index.cjs +47 -0
  117. package/dist/index.cjs.map +1 -1
  118. package/dist/index.d.cts +45 -0
  119. package/dist/index.d.cts.map +1 -1
  120. package/dist/index.d.mts +45 -0
  121. package/dist/index.d.mts.map +1 -1
  122. package/dist/index.mjs +45 -0
  123. package/dist/index.mjs.map +1 -1
  124. package/dist/interfaces/base.cjs +8 -0
  125. package/dist/interfaces/base.cjs.map +1 -0
  126. package/dist/interfaces/base.d.cts +293 -0
  127. package/dist/interfaces/base.d.cts.map +1 -0
  128. package/dist/interfaces/base.d.mts +293 -0
  129. package/dist/interfaces/base.d.mts.map +1 -0
  130. package/dist/interfaces/base.mjs +6 -0
  131. package/dist/interfaces/base.mjs.map +1 -0
  132. package/dist/interfaces/index.cjs +29 -0
  133. package/dist/interfaces/index.cjs.map +1 -0
  134. package/dist/interfaces/index.d.cts +13 -0
  135. package/dist/interfaces/index.d.cts.map +1 -0
  136. package/dist/interfaces/index.d.mts +13 -0
  137. package/dist/interfaces/index.d.mts.map +1 -0
  138. package/dist/interfaces/index.mjs +13 -0
  139. package/dist/interfaces/index.mjs.map +1 -0
  140. package/dist/interfaces/slp.cjs +9 -0
  141. package/dist/interfaces/slp.cjs.map +1 -0
  142. package/dist/interfaces/slp.d.cts +115 -0
  143. package/dist/interfaces/slp.d.cts.map +1 -0
  144. package/dist/interfaces/slp.d.mts +115 -0
  145. package/dist/interfaces/slp.d.mts.map +1 -0
  146. package/dist/interfaces/slp.mjs +7 -0
  147. package/dist/interfaces/slp.mjs.map +1 -0
  148. package/dist/interfaces/usdz.cjs +7 -0
  149. package/dist/interfaces/usdz.cjs.map +1 -0
  150. package/dist/interfaces/usdz.d.cts +40 -0
  151. package/dist/interfaces/usdz.d.cts.map +1 -0
  152. package/dist/interfaces/usdz.d.mts +40 -0
  153. package/dist/interfaces/usdz.d.mts.map +1 -0
  154. package/dist/interfaces/usdz.mjs +6 -0
  155. package/dist/interfaces/usdz.mjs.map +1 -0
  156. package/dist/interfaces/zlp.cjs +7 -0
  157. package/dist/interfaces/zlp.cjs.map +1 -0
  158. package/dist/interfaces/zlp.d.cts +45 -0
  159. package/dist/interfaces/zlp.d.cts.map +1 -0
  160. package/dist/interfaces/zlp.d.mts +45 -0
  161. package/dist/interfaces/zlp.d.mts.map +1 -0
  162. package/dist/interfaces/zlp.mjs +6 -0
  163. package/dist/interfaces/zlp.mjs.map +1 -0
  164. package/dist/oracle.cjs +7 -35
  165. package/dist/oracle.cjs.map +1 -1
  166. package/dist/oracle.d.cts +3 -4
  167. package/dist/oracle.d.cts.map +1 -1
  168. package/dist/oracle.d.mts +3 -4
  169. package/dist/oracle.d.mts.map +1 -1
  170. package/dist/oracle.mjs +8 -32
  171. package/dist/oracle.mjs.map +1 -1
  172. package/package.json +1 -1
  173. package/src/abstract/BaseAPI.ts +429 -0
  174. package/src/abstract/BaseDataAPI.ts +204 -0
  175. package/src/abstract/index.ts +7 -0
  176. package/src/bcs.ts +45 -0
  177. package/src/consts/deployments-slp-mainnet.json +710 -0
  178. package/src/consts/deployments-slp-testnet.json +109 -0
  179. package/src/consts/deployments-usdz-mainnet.json +180 -0
  180. package/src/consts/deployments-usdz-testnet.json +98 -0
  181. package/src/consts/{deployments-mainnet.json → deployments-zlp-mainnet.json} +279 -43
  182. package/src/consts/index.ts +134 -39
  183. package/src/consts/price_id_to_object_id.mainnet.json +10 -2
  184. package/src/data.ts +2 -2
  185. package/src/factory/SDKFactory.ts +282 -0
  186. package/src/implementations/SLPAPI.ts +1207 -0
  187. package/src/implementations/SLPDataAPI.ts +1188 -0
  188. package/src/implementations/USDZAPI.ts +715 -0
  189. package/src/implementations/USDZDataAPI.ts +826 -0
  190. package/src/implementations/ZLPAPI.ts +1130 -0
  191. package/src/implementations/ZLPDataAPI.ts +856 -0
  192. package/src/implementations/index.ts +14 -0
  193. package/src/index.ts +53 -0
  194. package/src/interfaces/base.ts +556 -0
  195. package/src/interfaces/index.ts +45 -0
  196. package/src/interfaces/slp.ts +156 -0
  197. package/src/interfaces/usdz.ts +71 -0
  198. package/src/interfaces/zlp.ts +96 -0
  199. package/src/oracle.ts +12 -42
  200. package/tsconfig.json +4 -2
  201. package/dist/consts/staking/deployments-mainnet.json +0 -12
  202. package/dist/consts/staking/deployments-testnet.json +0 -11
  203. package/src/consts/staking/deployments-mainnet.json +0 -12
  204. package/src/consts/staking/deployments-testnet.json +0 -11
  205. /package/dist/consts/{deployments-testnet.json → deployments-zlp-testnet.json} +0 -0
  206. /package/src/consts/{deployments-testnet.json → deployments-zlp-testnet.json} +0 -0
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
- # zo-sdk
1
+ # ZO SDK - Multi-LP Token Architecture
2
2
 
3
- A TypeScript SDK for interacting with the ZO Protocol on Sui Network.
3
+ A re-architected TypeScript SDK for interacting with multiple LP tokens on Sui Network: ZLP (ZO Liquidity Provider), SLP (Sudo Liquidity Provider), and USDZ (USD Stablecoin).
4
4
 
5
5
  ## Installation
6
6
 
@@ -10,7 +10,160 @@ npm install zo-sdk
10
10
  yarn add zo-sdk
11
11
  ```
12
12
 
13
- ## Quick Start
13
+ ## Architecture Overview
14
+
15
+ The SDK has been re-architected to support multiple LP tokens through a unified interface pattern:
16
+
17
+ - **ZLP (ZO Liquidity Provider)**: Original ZO Protocol LP token
18
+ - **SLP (Sudo Liquidity Provider)**: Sudo SDK-based LP token
19
+ - **USDZ (USD Stablecoin)**: Stablecoin LP token
20
+
21
+ ### Key Components
22
+
23
+ 1. **Common Interfaces**: Unified API surface for all LP tokens (`IBaseAPI`, `IBaseDataAPI`)
24
+ 2. **Abstract Base Classes**: Shared implementation logic (`BaseAPI`, `BaseDataAPI`)
25
+ 3. **Concrete Implementations**: LP-specific functionality (`ZLPAPI`, `SLPAPI`, `USDZAPI`)
26
+ 4. **Factory Pattern**: Type-safe SDK instance creation (`SDKFactory`)
27
+ 5. **Legacy Compatibility**: Backward compatible API for existing integrations
28
+
29
+ ## New SDK Usage (Recommended)
30
+
31
+ ### Factory-based Approach
32
+
33
+ ```typescript
34
+ import { SDK, LPToken, Network } from 'zo-sdk'
35
+ import { SuiClient } from '@mysten/sui/client'
36
+
37
+ // Initialize Sui client
38
+ const provider = new SuiClient({ url: 'https://fullnode.mainnet.sui.io' })
39
+ const network = Network.MAINNET
40
+ const apiEndpoint = 'https://api.zo.xyz'
41
+ const connectionURL = 'wss://api.zo.xyz/ws'
42
+
43
+ // Create LP-specific API instances
44
+ const zlpAPI = SDK.createZLPAPI(network, provider, apiEndpoint, connectionURL)
45
+ const slpAPI = SDK.createSLPAPI(network, provider, apiEndpoint, connectionURL)
46
+ const usdzAPI = SDK.createUSDZAPI(network, provider, apiEndpoint, connectionURL)
47
+
48
+ // Or use generic factory
49
+ const api = SDK.createAPI(LPToken.ZLP, network, provider, apiEndpoint, connectionURL)
50
+
51
+ // Create DataAPI instances for read-only operations
52
+ const zlpDataAPI = SDK.createZLPDataAPI(network, provider, apiEndpoint, connectionURL)
53
+ const slpDataAPI = SDK.createSLPDataAPI(network, provider, apiEndpoint, connectionURL)
54
+ const usdzDataAPI = SDK.createUSDZDataAPI(network, provider, apiEndpoint, connectionURL)
55
+ ```
56
+
57
+ ### API vs DataAPI
58
+
59
+ The SDK provides two types of interfaces:
60
+
61
+ - **API Classes** (`ZLPAPI`, `SLPAPI`, `USDZAPI`): Full functionality including trading operations that create transactions
62
+ - **DataAPI Classes** (`ZLPDataAPI`, `SLPDataAPI`, `USDZDataAPI`): Read-only operations for querying blockchain state
63
+
64
+ ```typescript
65
+ // API instances include both data access and transaction creation
66
+ const zlpAPI = SDK.createZLPAPI(network, provider, apiEndpoint, connectionURL)
67
+ const marketData = await zlpAPI.dataAPI.valuateMarket() // Data access
68
+ const depositTx = await zlpAPI.deposit('usdc', ['coinId'], 1000000) // Transaction creation
69
+
70
+ // DataAPI instances are for read-only operations only
71
+ const zlpDataAPI = SDK.createZLPDataAPI(network, provider, apiEndpoint, connectionURL)
72
+ const marketData = await zlpDataAPI.valuateMarket() // Data access only
73
+ ```
74
+
75
+ ### Common Operations Across All LP Tokens
76
+
77
+ ```typescript
78
+ // Market valuation (all LP tokens)
79
+ const zlpMarket = await zlpAPI.dataAPI.valuateMarket()
80
+ const slpMarket = await slpAPI.dataAPI.valuateMarket()
81
+ const usdzMarket = await usdzAPI.dataAPI.valuateMarket()
82
+
83
+ // Deposit operations (all LP tokens)
84
+ const depositTx = await zlpAPI.deposit(
85
+ 'usdc', // coin type
86
+ ['coinObjectId'], // coin object IDs
87
+ 1000000, // amount
88
+ 0, // minimum amount out
89
+ 'referralAddress', // optional referral
90
+ 'senderAddress' // optional sender
91
+ )
92
+
93
+ // Similar for SLP and USDZ
94
+ const slpDepositTx = await slpAPI.deposit('usdc', ['coinObjectId'], 1000000)
95
+ const usdzDepositTx = await usdzAPI.deposit('usdc', ['coinObjectId'], 1000000)
96
+
97
+ // Withdraw operations
98
+ const withdrawTx = await zlpAPI.withdraw(
99
+ 'usdc', // coin to withdraw
100
+ ['lpCoinObjectId'], // LP coin object IDs
101
+ 1000000, // amount
102
+ 0 // minimum amount out
103
+ )
104
+
105
+ // Swap operations
106
+ const swapTx = await zlpAPI.swap(
107
+ 'usdc', // from token
108
+ 'sui', // to token
109
+ BigInt(1000000), // amount
110
+ ['coinObjectId'], // coin objects
111
+ 0 // minimum amount out
112
+ )
113
+ ```
114
+
115
+ ### LP-Specific Features
116
+
117
+ ```typescript
118
+ // ZLP-specific: Advanced trading operations
119
+ // Open leveraged position
120
+ const openPositionTx = await zlpAPI.openPosition(
121
+ 'usdc', // collateral token
122
+ 'btc', // index token
123
+ BigInt(1000000), // size
124
+ BigInt(100000), // collateral amount
125
+ ['coinObjectId'], // coin objects
126
+ true, // long position
127
+ BigInt(50000), // reserve amount
128
+ 30000, // index price
129
+ 1.5, // collateral price
130
+ false, // is limit order
131
+ false, // is IOC order
132
+ 0.003, // price slippage
133
+ 0.5, // collateral slippage
134
+ BigInt(500), // relayer fee
135
+ 'referralAddress', // referral
136
+ 'senderAddress' // sender
137
+ )
138
+
139
+ // SLP-specific: Sudo SDK operations
140
+ // Stake SLP tokens
141
+ const stakeTx = await slpAPI.stake(
142
+ ['slpCoinObjectId'], // LP coin objects
143
+ BigInt(1000000), // amount
144
+ 'poolId' // staking pool
145
+ )
146
+
147
+ // Unstake SLP tokens
148
+ const unstakeTx = await slpAPI.unstake(
149
+ credentials, // SLP credentials
150
+ BigInt(500000), // amount
151
+ 'poolId' // staking pool
152
+ )
153
+
154
+ // USDZ-specific: Stablecoin operations
155
+ // (Similar deposit/withdraw/swap operations optimized for stablecoin use cases)
156
+ const usdzSwapTx = await usdzAPI.swap(
157
+ 'usdc', // from stable
158
+ 'usdt', // to stable
159
+ BigInt(1000000), // amount
160
+ ['coinObjectId'] // coin objects
161
+ )
162
+ ```
163
+
164
+ ## Legacy SDK Usage (Backward Compatible)
165
+
166
+ ### Quick Start
14
167
 
15
168
  ```typescript
16
169
  import { API, Network } from 'zo-sdk'
@@ -76,7 +229,13 @@ const tx = await api.openPosition(
76
229
  BigInt(100000), // reserve amount
77
230
  30000, // index price
78
231
  1.5, // collateral price
79
- 0.003 // slippage
232
+ false, // is limit order
233
+ false, // is IOC order
234
+ 0.003, // price slippage
235
+ 0.5, // collateral slippage
236
+ BigInt(500), // relayer fee
237
+ 'referralAddress', // referral address
238
+ 'senderAddress' // sender address
80
239
  )
81
240
 
82
241
  // Decrease a position
@@ -103,11 +262,11 @@ const tx = await api.cancelOrder(
103
262
  ### Data Queries
104
263
 
105
264
  ```typescript
106
- // Get position information
107
- const positions = await api.getPositionInfoList(positionCapInfoList, 'ownerAddress')
265
+ // Get market information
266
+ const marketInfo = await api.getMarketInfo()
108
267
 
109
- // Get order information
110
- const orders = await api.getOrderInfoList(orderCapInfoList, 'ownerAddress')
268
+ // Get oracle price for a token
269
+ const price = await api.getOraclePrice('sui')
111
270
 
112
271
  // Get vault information
113
272
  const vaultInfo = await api.getVaultInfo('sui')
@@ -117,24 +276,67 @@ const symbolInfo = await api.getSymbolInfo('btc', true) // true for long
117
276
 
118
277
  // Get market valuation
119
278
  const valuation = await api.valuateMarket()
279
+
280
+ // Get position cap info list
281
+ const positionCaps = await api.getPositionCapInfoList('ownerAddress')
282
+
283
+ // Get order cap info list
284
+ const orderCaps = await api.getOrderCapInfoList('ownerAddress')
285
+
286
+ // Get position information
287
+ const positions = await api.getPositionInfoList(positionCaps, 'ownerAddress')
288
+
289
+ // Get order information
290
+ const orders = await api.getOrderInfoList(orderCaps, 'ownerAddress')
120
291
  ```
121
292
 
122
293
  ### Staking Operations
123
294
 
124
295
  ```typescript
125
- // Stake ZLP
126
- const tx = await api.stake(
127
- ['zlpCoinObjectId'],
128
- BigInt(1000000),
129
- 'poolId'
296
+ // Stake ZLP tokens
297
+ const stakeTx = await api.stake(
298
+ ['zlpCoinObjectId'], // ZLP coin object IDs
299
+ BigInt(1000000), // amount to stake
300
+ 'poolId' // staking pool ID
130
301
  )
131
302
 
132
- // Unstake ZLP
133
- const tx = await api.unstake(
134
- credentials,
135
- BigInt(1000000),
136
- 'poolId'
303
+ // Unstake ZLP tokens
304
+ const unstakeTx = await api.unstake(
305
+ credentials, // staking credentials
306
+ BigInt(1000000), // amount to unstake
307
+ 'poolId' // staking pool ID
137
308
  )
309
+
310
+ // Get staked information
311
+ const stakedInfo = await api.getStaked('ownerAddress')
312
+ ```
313
+
314
+ ## Type Safety and Interfaces
315
+
316
+ The SDK is built with TypeScript and provides comprehensive type definitions:
317
+
318
+ ```typescript
319
+ import type {
320
+ IBaseAPI,
321
+ IBaseDataAPI,
322
+ IZLPAPI,
323
+ ISLPAPI,
324
+ IUSDZAPI,
325
+ IBaseMarketValuationInfo,
326
+ IBaseVaultInfo,
327
+ IBaseSymbolInfo,
328
+ IBasePositionInfo,
329
+ IBaseOrderInfo
330
+ } from 'zo-sdk'
331
+
332
+ // All APIs implement their respective interfaces
333
+ const zlpAPI: IZLPAPI = SDK.createZLPAPI(network, provider, apiEndpoint, connectionURL)
334
+ const slpAPI: ISLPAPI = SDK.createSLPAPI(network, provider, apiEndpoint, connectionURL)
335
+ const usdzAPI: IUSDZAPI = SDK.createUSDZAPI(network, provider, apiEndpoint, connectionURL)
336
+
337
+ // Type-safe data structures
338
+ const marketInfo: IBaseMarketValuationInfo = await zlpAPI.dataAPI.valuateMarket()
339
+ const vaultInfo: IBaseVaultInfo = await zlpAPI.dataAPI.getVaultInfo('usdc')
138
340
  ```
139
341
 
140
342
  ## Error Handling
@@ -144,11 +346,61 @@ The SDK throws errors for invalid operations and network issues. Always wrap API
144
346
  ```typescript
145
347
  try {
146
348
  const marketInfo = await api.getMarketInfo()
349
+ const depositTx = await api.deposit('usdc', ['coinId'], 1000000)
147
350
  } catch (error) {
148
- console.error('Failed to get market info:', error)
351
+ console.error('SDK operation failed:', error)
352
+ // Handle specific error types
353
+ if (error.message.includes('Unsupported LP token')) {
354
+ console.error('Invalid LP token type provided')
355
+ }
149
356
  }
150
357
  ```
151
358
 
359
+ ## Migration Guide
360
+
361
+ ### From Legacy SDK (v0.0.x)
362
+
363
+ If you're upgrading from an older version of the SDK:
364
+
365
+ ```typescript
366
+ // Old way (still supported for backward compatibility)
367
+ import { API, Network } from 'zo-sdk'
368
+ const api = API.getInstance(network, provider, apiEndpoint, connectionURL)
369
+
370
+ // New way (recommended)
371
+ import { SDK, LPToken, Network } from 'zo-sdk'
372
+ const zlpAPI = SDK.createZLPAPI(network, provider, apiEndpoint, connectionURL)
373
+ const slpAPI = SDK.createSLPAPI(network, provider, apiEndpoint, connectionURL)
374
+ const usdzAPI = SDK.createUSDZAPI(network, provider, apiEndpoint, connectionURL)
375
+ ```
376
+
377
+ ### Key Changes
378
+
379
+ 1. **Multi-LP Token Support**: The SDK now supports ZLP, SLP, and USDZ tokens
380
+ 2. **Factory Pattern**: Use `SDK.createXXXAPI()` methods instead of singleton instances
381
+ 3. **Separate DataAPI**: Read-only operations are available through dedicated DataAPI classes
382
+ 4. **Enhanced Type Safety**: Comprehensive TypeScript interfaces for all operations
383
+ 5. **Modular Architecture**: Each LP token has its own implementation while sharing common interfaces
384
+
152
385
  ## Documentation
153
386
 
154
- For detailed API documentation and advanced usage, please refer to the source code and comments.
387
+ ### API Reference
388
+
389
+ - **Factory Methods**: `SDK.createZLPAPI()`, `SDK.createSLPAPI()`, `SDK.createUSDZAPI()`
390
+ - **Base Interfaces**: `IBaseAPI`, `IBaseDataAPI` for common operations
391
+ - **LP-Specific Interfaces**: `IZLPAPI`, `ISLPAPI`, `IUSDZAPI` for specialized features
392
+ - **Data Types**: `IBaseMarketValuationInfo`, `IBaseVaultInfo`, `IBaseSymbolInfo`, etc.
393
+
394
+ ### Source Code
395
+
396
+ For detailed implementation details and advanced usage:
397
+
398
+ - **Interfaces**: `/src/interfaces/` - TypeScript interface definitions
399
+ - **Implementations**: `/src/implementations/` - Concrete API implementations
400
+ - **Abstract Classes**: `/src/abstract/` - Shared base functionality
401
+ - **Factory**: `/src/factory/SDKFactory.ts` - SDK instance creation
402
+ - **Legacy API**: `/src/api.ts` - Backward compatible API
403
+
404
+ ### Examples
405
+
406
+ Check the source code comments and type definitions for comprehensive examples of all available methods and their parameters.
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ /**
3
+ * Abstract base class for all API implementations
4
+ * Extends BaseDataAPI with trading functionality
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.BaseAPI = void 0;
8
+ const transactions_1 = require("@mysten/sui/transactions");
9
+ const utils_1 = require("@mysten/sui/utils");
10
+ const consts_1 = require("../consts/index.cjs");
11
+ const BaseDataAPI_1 = require("./BaseDataAPI.cjs");
12
+ const kiosk_1 = require("@mysten/kiosk");
13
+ class BaseAPI extends BaseDataAPI_1.BaseDataAPI {
14
+ constructor(network, provider, apiEndpoint, connectionURL, lpToken) {
15
+ super(network, provider, apiEndpoint, connectionURL, lpToken);
16
+ }
17
+ /**
18
+ * Processes coin objects for transactions
19
+ * Handles SUI gas coin and merges multiple coin objects if needed
20
+ */
21
+ processCoins(tx, coin, coinObjects) {
22
+ if (coin === 'sui') {
23
+ return tx.gas;
24
+ }
25
+ if (coinObjects.length > 1) {
26
+ tx.mergeCoins(tx.object(coinObjects[0]), coinObjects.slice(1).map(coinObject => tx.object(coinObject)));
27
+ }
28
+ return tx.object(coinObjects[0]);
29
+ }
30
+ /**
31
+ * Processes slippage for price calculations
32
+ */
33
+ processSlippage(indexPrice, long, slippage) {
34
+ const raw = long ? indexPrice * (1 + slippage) : indexPrice * (1 - slippage);
35
+ return BigInt(Math.round(raw * 1e18));
36
+ }
37
+ /**
38
+ * Determines trade allowance based on order type
39
+ */
40
+ getTradeAllowance(isLimitOrder, isIocOrder) {
41
+ if (isLimitOrder) {
42
+ return isIocOrder ? consts_1.ALLOW_TRADE_NO_TRADE : consts_1.ALLOW_TRADE_CAN_TRADE;
43
+ }
44
+ return consts_1.ALLOW_TRADE_MUST_TRADE;
45
+ }
46
+ /**
47
+ * Helper method to initialize oracle transaction block
48
+ * This is commonly used across all LP token implementations
49
+ */
50
+ async initOracleTransaction(tokens, tx) {
51
+ if (!tx) {
52
+ tx = new transactions_1.Transaction();
53
+ }
54
+ return await this.initOracleTxb(tokens, tx);
55
+ }
56
+ /**
57
+ * Helper method to add clock object to transaction
58
+ */
59
+ addClockToTransaction(tx) {
60
+ return tx.object(utils_1.SUI_CLOCK_OBJECT_ID);
61
+ }
62
+ /**
63
+ * Helper method to create move call arguments array
64
+ */
65
+ createMoveCallArgs(tx, args) {
66
+ return args.map(arg => {
67
+ if (typeof arg === 'string' && arg.startsWith('0x')) {
68
+ return tx.object(arg);
69
+ }
70
+ if (typeof arg === 'number') {
71
+ return tx.pure.u64(arg);
72
+ }
73
+ if (typeof arg === 'bigint') {
74
+ return tx.pure.u256(arg);
75
+ }
76
+ return arg;
77
+ });
78
+ }
79
+ /**
80
+ * Helper method to validate transaction parameters
81
+ */
82
+ validateTransactionParams(params) {
83
+ const { coin, coinObjects, amount, minAmountOut } = params;
84
+ if (coin && !this.consts.coins[coin]) {
85
+ throw new Error(`Unsupported coin: ${coin}`);
86
+ }
87
+ if (coinObjects && coinObjects.length === 0) {
88
+ throw new Error('At least one coin object is required');
89
+ }
90
+ if (amount !== undefined && amount <= 0) {
91
+ throw new Error('Amount must be greater than 0');
92
+ }
93
+ if (minAmountOut !== undefined && minAmountOut < 0) {
94
+ throw new Error('Minimum amount out cannot be negative');
95
+ }
96
+ }
97
+ /**
98
+ * Helper method to validate position parameters
99
+ */
100
+ validatePositionParams(params) {
101
+ const { collateralToken, indexToken, size, collateralAmount } = params;
102
+ if (!this.consts.coins[collateralToken]) {
103
+ throw new Error(`Unsupported collateral token: ${collateralToken}`);
104
+ }
105
+ if (!this.consts.coins[indexToken]) {
106
+ throw new Error(`Unsupported index token: ${indexToken}`);
107
+ }
108
+ if (size <= 0n) {
109
+ throw new Error('Position size must be greater than 0');
110
+ }
111
+ if (collateralAmount <= 0n) {
112
+ throw new Error('Collateral amount must be greater than 0');
113
+ }
114
+ }
115
+ }
116
+ exports.BaseAPI = BaseAPI;
117
+ //# sourceMappingURL=BaseAPI.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseAPI.cjs","sourceRoot":"","sources":["../../src/abstract/BaseAPI.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,2DAAsD;AACtD,6CAAuD;AAEvD,gDAA+F;AAE/F,mDAA2C;AAC3C,yCAA0D;AAE1D,MAAsB,OAAQ,SAAQ,yBAAW;IAC/C,YACE,OAAgB,EAChB,QAAmB,EACnB,WAAmB,EACnB,aAAqB,EACrB,OAAgB;QAEhB,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;IAC/D,CAAC;IAED;;;OAGG;IACO,YAAY,CAAC,EAAe,EAAE,IAAY,EAAE,WAAqB;QACzE,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,OAAO,EAAE,CAAC,GAAG,CAAA;QACf,CAAC;QACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,EAAE,CAAC,UAAU,CACX,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EACzB,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAC9D,CAAA;QACH,CAAC;QACD,OAAO,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;IAClC,CAAC;IAED;;OAEG;IACO,eAAe,CAAC,UAAkB,EAAE,IAAa,EAAE,QAAgB;QAC3E,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAA;QAC5E,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAA;IACvC,CAAC;IAED;;OAEG;IACO,iBAAiB,CAAC,YAAqB,EAAE,UAAmB;QACpE,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,UAAU,CAAC,CAAC,CAAC,6BAAoB,CAAC,CAAC,CAAC,8BAAqB,CAAA;QAClE,CAAC;QACD,OAAO,+BAAsB,CAAA;IAC/B,CAAC;IAsRD;;;OAGG;IACO,KAAK,CAAC,qBAAqB,CAAC,MAAgB,EAAE,EAAgB;QACtE,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,EAAE,GAAG,IAAI,0BAAW,EAAE,CAAA;QACxB,CAAC;QACD,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAC7C,CAAC;IAED;;OAEG;IACO,qBAAqB,CAAC,EAAe;QAC7C,OAAO,EAAE,CAAC,MAAM,CAAC,2BAAmB,CAAC,CAAA;IACvC,CAAC;IAED;;OAEG;IACO,kBAAkB,CAAC,EAAe,EAAE,IAAW;QACvD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACpB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpD,OAAO,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACvB,CAAC;YACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5B,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACzB,CAAC;YACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5B,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC1B,CAAC;YACD,OAAO,GAAG,CAAA;QACZ,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACO,yBAAyB,CAAC,MAKnC;QACC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAAA;QAE1D,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAA;QAC9C,CAAC;QAED,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;QACzD,CAAC;QAED,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAClD,CAAC;QAED,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;QAC1D,CAAC;IACH,CAAC;IAED;;OAEG;IACO,sBAAsB,CAAC,MAMhC;QACC,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAA;QAEtE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,iCAAiC,eAAe,EAAE,CAAC,CAAA;QACrE,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,4BAA4B,UAAU,EAAE,CAAC,CAAA;QAC3D,CAAC;QAED,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;QACzD,CAAC;QAED,IAAI,gBAAgB,IAAI,EAAE,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;QAC7D,CAAC;IACH,CAAC;CACF;AA9ZD,0BA8ZC"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Abstract base class for all API implementations
3
+ * Extends BaseDataAPI with trading functionality
4
+ */
5
+ import type { SuiClient } from "@mysten/sui/client";
6
+ import { Transaction } from "@mysten/sui/transactions";
7
+ import type { Network, LPToken } from "../consts/index.cjs";
8
+ import type { IBaseAPI, IBaseCredential } from "../interfaces/index.cjs";
9
+ import { BaseDataAPI } from "./BaseDataAPI.cjs";
10
+ import { KioskClient, KioskOwnerCap } from "@mysten/kiosk";
11
+ export declare abstract class BaseAPI extends BaseDataAPI implements IBaseAPI {
12
+ constructor(network: Network, provider: SuiClient, apiEndpoint: string, connectionURL: string, lpToken: LPToken);
13
+ /**
14
+ * Processes coin objects for transactions
15
+ * Handles SUI gas coin and merges multiple coin objects if needed
16
+ */
17
+ protected processCoins(tx: Transaction, coin: string, coinObjects: string[]): {
18
+ $kind: "Input";
19
+ Input: number;
20
+ type?: "object";
21
+ } | {
22
+ $kind: "GasCoin";
23
+ GasCoin: true;
24
+ };
25
+ /**
26
+ * Processes slippage for price calculations
27
+ */
28
+ protected processSlippage(indexPrice: number, long: boolean, slippage: number): bigint;
29
+ /**
30
+ * Determines trade allowance based on order type
31
+ */
32
+ protected getTradeAllowance(isLimitOrder: boolean, isIocOrder: boolean): number;
33
+ abstract deposit(coin: string, coinObjects: string[], amount: number, minAmountOut?: number, referralAddress?: string, sender?: string): Promise<Transaction>;
34
+ abstract withdraw(coin: string, lpCoinObjects: string[], amount: number, minAmountOut?: number): Promise<Transaction>;
35
+ abstract swap(fromToken: string, toToken: string, fromAmount: bigint, fromCoinObjects: string[]): Promise<Transaction>;
36
+ abstract stake(lpCoinObjects: string[], amount: bigint, pool: string, tx?: Transaction): Promise<Transaction>;
37
+ abstract unstake(credentials: IBaseCredential[], amount: bigint, pool: string, tx?: Transaction): Promise<Transaction>;
38
+ abstract openPosition(collateralToken: string, indexToken: string, size: bigint, collateralAmount: bigint, coinObjects: string[], long: boolean, reserveAmount: bigint, indexPrice: number, collateralPrice: number, isLimitOrder?: boolean, isIocOrder?: boolean, pricesSlippage?: number, collateralSlippage?: number, relayerFee?: bigint, referralAddress?: string, sender?: string): Promise<Transaction>;
39
+ abstract decreasePosition(pcpId: string, collateralToken: string, indexToken: string, amount: bigint, long: boolean, indexPrice: number, collateralPrice: number, isTriggerOrder?: boolean, isTakeProfitOrder?: boolean, isIocOrder?: boolean, pricesSlippage?: number, collateralSlippage?: number, relayerFee?: bigint, coinObjects?: string[]): Promise<Transaction>;
40
+ abstract decreaseMultiPositions(positions: Array<{
41
+ pcpId: string;
42
+ collateralToken: string;
43
+ indexToken: string;
44
+ amount: bigint;
45
+ long: boolean;
46
+ indexPrice: number;
47
+ collateralPrice: number;
48
+ isTriggerOrder?: boolean;
49
+ isTakeProfitOrder?: boolean;
50
+ isIocOrder?: boolean;
51
+ pricesSlippage?: number;
52
+ collateralSlippage?: number;
53
+ relayerFee?: bigint;
54
+ coinObjects?: string[];
55
+ }>, tx?: Transaction): Promise<Transaction>;
56
+ abstract pledgeInPosition(pcpId: string, collateralToken: string, indexToken: string, amount: number, coinObjects: string[], long: boolean): Promise<Transaction>;
57
+ abstract redeemFromPosition(pcpId: string, collateralToken: string, indexToken: string, amount: number, long: boolean): Promise<Transaction>;
58
+ abstract cancelOrder(orderCapId: string, collateralToken: string, indexToken: string, long: boolean, type: string, isV11Order?: boolean): Promise<Transaction>;
59
+ abstract cancelMultiOrders(orders: Array<{
60
+ orderCapId: string;
61
+ collateralToken: string;
62
+ indexToken: string;
63
+ long: boolean;
64
+ type: string;
65
+ isV11Order?: boolean;
66
+ }>, tx?: Transaction): Promise<Transaction>;
67
+ abstract clearClosedPosition(pcpId: string, collateralToken: string, indexToken: string, long: boolean, tx: Transaction): void;
68
+ abstract clearOpenPositionOrder(orderCapId: string, collateralToken: string, indexToken: string, long: boolean, tx: Transaction, isV11Order?: boolean): void;
69
+ abstract clearDecreasePositionOrder(orderCapId: string, collateralToken: string, indexToken: string, long: boolean, tx: Transaction, isV11Order?: boolean): void;
70
+ abstract openPositionWithSCard(collateralToken: string, indexToken: string, size: bigint, collateralAmount: bigint, coinObjects: string[], long: boolean, reserveAmount: bigint, indexPrice: number, collateralPrice: number, kioskClient: KioskClient, kioskCap: KioskOwnerCap, scard: string, isLimitOrder?: boolean, isIocOrder?: boolean, pricesSlippage?: number, collateralSlippage?: number, relayerFee?: bigint, referralAddress?: string, sender?: string): Promise<Transaction>;
71
+ abstract decreasePositionWithSCard(pcpId: string, collateralToken: string, indexToken: string, amount: bigint, long: boolean, indexPrice: number, collateralPrice: number, kioskClient: KioskClient, kioskCap: KioskOwnerCap, scard: string, isTriggerOrder?: boolean, isTakeProfitOrder?: boolean, isIocOrder?: boolean, pricesSlippage?: number, collateralSlippage?: number, relayerFee?: bigint, coinObjects?: string[]): Promise<Transaction>;
72
+ abstract decreaseMultiPositionsWithSCard(positions: Array<{
73
+ pcpId: string;
74
+ collateralToken: string;
75
+ indexToken: string;
76
+ amount: bigint;
77
+ long: boolean;
78
+ indexPrice: number;
79
+ collateralPrice: number;
80
+ isTriggerOrder?: boolean;
81
+ isTakeProfitOrder?: boolean;
82
+ isIocOrder?: boolean;
83
+ pricesSlippage?: number;
84
+ collateralSlippage?: number;
85
+ relayerFee?: bigint;
86
+ coinObjects?: string[];
87
+ }>, kioskClient: KioskClient, kioskCap: KioskOwnerCap, scard: string, tx?: Transaction): Promise<Transaction>;
88
+ abstract claimTokenFromSCard(token: string, coinObjects: string[], kioskClient: KioskClient, kioskCap: KioskOwnerCap, scard: string): Promise<Transaction>;
89
+ abstract addReferral(referrer: string, tx?: Transaction): Transaction;
90
+ abstract adminUpdatePriceFeed(collateralToken: string, indexToken: string): Promise<Transaction>;
91
+ abstract adminSettlePosition(positionId: string, owner: string, collateralToken: string, indexToken: string, long: boolean): Promise<Transaction>;
92
+ abstract adminDecreasePosition(positionId: string, owner: string, collateralToken: string, indexToken: string, positionAmount: number, amount: bigint, long: boolean, collateralPrice?: number, collateralSlippage?: number, relayerFee?: bigint): Promise<Transaction>;
93
+ abstract adminClearClosedPosition(positionId: string, owner: string, collateralToken: string, indexToken: string, long: boolean, tx: Transaction): Promise<void>;
94
+ /**
95
+ * Helper method to initialize oracle transaction block
96
+ * This is commonly used across all LP token implementations
97
+ */
98
+ protected initOracleTransaction(tokens: string[], tx?: Transaction): Promise<Transaction>;
99
+ /**
100
+ * Helper method to add clock object to transaction
101
+ */
102
+ protected addClockToTransaction(tx: Transaction): {
103
+ $kind: "Input";
104
+ Input: number;
105
+ type?: "object";
106
+ };
107
+ /**
108
+ * Helper method to create move call arguments array
109
+ */
110
+ protected createMoveCallArgs(tx: Transaction, args: any[]): any[];
111
+ /**
112
+ * Helper method to validate transaction parameters
113
+ */
114
+ protected validateTransactionParams(params: {
115
+ coin?: string;
116
+ coinObjects?: string[];
117
+ amount?: number;
118
+ minAmountOut?: number;
119
+ }): void;
120
+ /**
121
+ * Helper method to validate position parameters
122
+ */
123
+ protected validatePositionParams(params: {
124
+ collateralToken: string;
125
+ indexToken: string;
126
+ size: bigint;
127
+ collateralAmount: bigint;
128
+ long: boolean;
129
+ }): void;
130
+ }
131
+ //# sourceMappingURL=BaseAPI.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseAPI.d.cts","sourceRoot":"","sources":["../../src/abstract/BaseAPI.ts"],"names":[],"mappings":"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"}