@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,9 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(npx tsc:*)",
5
+ "Bash(npm run build:*)",
6
+ "Bash(echo:*)"
7
+ ]
8
+ }
9
+ }
package/.gitattributes ADDED
@@ -0,0 +1,4 @@
1
+ /.yarn/** linguist-vendored
2
+ /.yarn/releases/* binary
3
+ /.yarn/plugins/**/* binary
4
+ /.pnp.* binary linguist-generated
package/.prettierrc.js ADDED
@@ -0,0 +1,9 @@
1
+ export default {
2
+ semi: false,
3
+ singleQuote: true,
4
+ trailingComma: 'all',
5
+ printWidth: 100,
6
+ tabWidth: 2,
7
+ arrowParens: 'avoid',
8
+ endOfLine: 'lf',
9
+ }
package/README.md ADDED
@@ -0,0 +1,28 @@
1
+ # ZO SDK
2
+
3
+ TypeScript SDK for interacting with multiple LP tokens on Sui Network: **ZLP**, **SLP**, and **USDZ**.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install zo-sdk
9
+ # or
10
+ yarn add zo-sdk
11
+ # or
12
+ pnpm add zo-sdk
13
+ ```
14
+
15
+ ## Documentation
16
+
17
+ Full documentation is in the **[docs/](docs/)** folder, structured for GitBook:
18
+
19
+ - [Introduction](docs/introduction.md)
20
+ - [Architecture](docs/architecture.md)
21
+ - [Getting Started](docs/getting-started.md)
22
+ - [Common Operations](docs/common-operations.md)
23
+ - [Trading Examples](docs/lp-specific-features.md)
24
+ - [Type Safety](docs/type-safety.md)
25
+ - [Error Handling](docs/error-handling.md)
26
+ - [API Reference](docs/api-reference.md)
27
+
28
+ Use **docs/SUMMARY.md** as the GitBook table of contents when building the book.
@@ -0,0 +1,206 @@
1
+ "use strict";
2
+ /**
3
+ * Abstract base class for all API implementations
4
+ * Extends BaseDataAPI with trading functionality
5
+ */
6
+ /* eslint-disable class-methods-use-this -- base class helpers used by subclasses */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.BaseAPI = void 0;
9
+ const transactions_1 = require("@mysten/sui/transactions");
10
+ const utils_1 = require("@mysten/sui/utils");
11
+ const consts_1 = require("../consts/index.cjs");
12
+ const BaseDataAPI_1 = require("./BaseDataAPI.cjs");
13
+ class BaseAPI extends BaseDataAPI_1.BaseDataAPI {
14
+ /* eslint-disable-next-line @typescript-eslint/no-useless-constructor -- passes params to super */
15
+ constructor(network, provider, apiEndpoint, connectionURL, lpToken) {
16
+ super(network, provider, apiEndpoint, connectionURL, lpToken);
17
+ }
18
+ // Delegate BaseDataAPI methods to this.dataAPI so subclasses don't need stub implementations
19
+ valuateVaults(tx) {
20
+ return this.dataAPI.valuateVaults(tx);
21
+ }
22
+ valuateSymbols(tx) {
23
+ return this.dataAPI.valuateSymbols(tx);
24
+ }
25
+ valuate(tx) {
26
+ return this.dataAPI.valuate(tx);
27
+ }
28
+ valuateMarket() {
29
+ return this.dataAPI.valuateMarket();
30
+ }
31
+ fundingFeeRate(indexToken, long, sender) {
32
+ return this.dataAPI.fundingFeeRate(indexToken, long, sender);
33
+ }
34
+ rebaseFeeRate(collateralToken, increase, amount, sender) {
35
+ return this.dataAPI.rebaseFeeRate(collateralToken, increase, amount, sender);
36
+ }
37
+ reservingFeeRate(collateralToken, amount, sender) {
38
+ return this.dataAPI.reservingFeeRate(collateralToken, amount, sender);
39
+ }
40
+ getMarketInfo() {
41
+ return this.dataAPI.getMarketInfo();
42
+ }
43
+ getVaultInfo(vault) {
44
+ return this.dataAPI.getVaultInfo(vault);
45
+ }
46
+ getSymbolInfo(tokenId, long) {
47
+ return this.dataAPI.getSymbolInfo(tokenId, long);
48
+ }
49
+ getPositionConfig(indexToken, long) {
50
+ return this.dataAPI.getPositionConfig(indexToken, long);
51
+ }
52
+ getRebaseFeeModel() {
53
+ return this.dataAPI.getRebaseFeeModel();
54
+ }
55
+ getOpenPositions(batchSize, symbol) {
56
+ return this.dataAPI.getOpenPositions(batchSize, symbol);
57
+ }
58
+ getPositionCapInfoList(owner) {
59
+ return this.dataAPI.getPositionCapInfoList(owner);
60
+ }
61
+ getPositionInfoList(positionCapInfoList, owner, batchSize) {
62
+ return this.dataAPI.getPositionInfoList(positionCapInfoList, owner, batchSize);
63
+ }
64
+ getOrderCapInfoList(owner) {
65
+ return this.dataAPI.getOrderCapInfoList(owner);
66
+ }
67
+ getOrderInfoList(orderCapInfoList, owner, batchSize) {
68
+ return this.dataAPI.getOrderInfoList(orderCapInfoList, owner, batchSize);
69
+ }
70
+ getHistory(trader, page, limit, orderType, symbol) {
71
+ return this.dataAPI.getHistory(trader, page, limit, orderType, symbol);
72
+ }
73
+ getStaked(owner) {
74
+ return this.dataAPI.getStaked(owner);
75
+ }
76
+ getStakePool() {
77
+ return this.dataAPI.getStakePool();
78
+ }
79
+ hasReferral(referree) {
80
+ return this.dataAPI.hasReferral(referree);
81
+ }
82
+ getReferralData(referree) {
83
+ return this.dataAPI.getReferralData(referree);
84
+ }
85
+ /**
86
+ * Processes coin objects for transactions
87
+ * Handles SUI gas coin and merges multiple coin objects if needed
88
+ */
89
+ processCoins(tx, coin, coinObjects, sponsoredTx = false) {
90
+ if (coin === 'sui' && !sponsoredTx) {
91
+ return tx.gas;
92
+ }
93
+ if (coinObjects.length > 1) {
94
+ tx.mergeCoins(tx.object(coinObjects[0]), coinObjects.slice(1).map(coinObject => tx.object(coinObject)));
95
+ }
96
+ return tx.object(coinObjects[0]);
97
+ }
98
+ processCoinSplitting(tx, token, coinObjects, amounts, sponsoredTx, suiCoinObject) {
99
+ if (sponsoredTx) {
100
+ const sourceObject = token === 'sui'
101
+ ? suiCoinObject
102
+ : this.processCoins(tx, token, coinObjects, true);
103
+ return tx.splitCoins(sourceObject, amounts);
104
+ }
105
+ const coinObject = this.processCoins(tx, token, coinObjects);
106
+ return tx.splitCoins(coinObject, amounts);
107
+ }
108
+ /**
109
+ * Processes slippage for price calculations
110
+ */
111
+ processSlippage(indexPrice, long, slippage) {
112
+ const raw = long ? indexPrice * (1 + slippage) : indexPrice * (1 - slippage);
113
+ return BigInt(Math.round(raw * 1e18));
114
+ }
115
+ /**
116
+ * Processes slippage for price calculations
117
+ */
118
+ processPriceThreshold(indexPrice, slippage) {
119
+ const raw = indexPrice * slippage;
120
+ return BigInt(Math.round(raw * 1e18));
121
+ }
122
+ /**
123
+ * Determines trade allowance based on order type
124
+ */
125
+ getTradeAllowance(isLimitOrder, isIocOrder) {
126
+ if (isLimitOrder) {
127
+ return isIocOrder ? consts_1.ALLOW_TRADE_NO_TRADE : consts_1.ALLOW_TRADE_CAN_TRADE;
128
+ }
129
+ return consts_1.ALLOW_TRADE_MUST_TRADE;
130
+ }
131
+ /**
132
+ * Default: not supported. Override in subclasses that support S Card claim (e.g. SLP).
133
+ */
134
+ claimTokenFromSCard(_token, _coinObjects, _kioskClient, _kioskCap, _scard) {
135
+ throw new Error(`Method not implemented in ${this.constructor.name}.`);
136
+ }
137
+ /**
138
+ * Helper method to initialize oracle transaction block
139
+ * This is commonly used across all LP token implementations
140
+ */
141
+ async initOracleTransaction(tokens, tx) {
142
+ const txToUse = tx ?? new transactions_1.Transaction();
143
+ return await this.initOracleTxb(tokens, txToUse);
144
+ }
145
+ /**
146
+ * Helper method to add clock object to transaction
147
+ */
148
+ addClockToTransaction(tx) {
149
+ return tx.object(utils_1.SUI_CLOCK_OBJECT_ID);
150
+ }
151
+ /**
152
+ * Helper method to create move call arguments array
153
+ */
154
+ createMoveCallArgs(tx, args) {
155
+ return args.map((arg) => {
156
+ if (typeof arg === 'string' && arg.startsWith('0x')) {
157
+ return tx.object(arg);
158
+ }
159
+ if (typeof arg === 'number') {
160
+ return tx.pure.u64(arg);
161
+ }
162
+ if (typeof arg === 'bigint') {
163
+ return tx.pure.u256(arg);
164
+ }
165
+ return arg;
166
+ });
167
+ }
168
+ /**
169
+ * Helper method to validate transaction parameters
170
+ */
171
+ validateTransactionParams(params) {
172
+ const { coin, coinObjects, amount, minAmountOut } = params;
173
+ if (coin && !this.consts.coins[coin]) {
174
+ throw new Error(`Unsupported coin: ${coin}`);
175
+ }
176
+ if (coinObjects && coinObjects.length === 0) {
177
+ throw new Error('At least one coin object is required');
178
+ }
179
+ if (amount !== undefined && amount <= 0) {
180
+ throw new Error('Amount must be greater than 0');
181
+ }
182
+ if (minAmountOut !== undefined && minAmountOut < 0) {
183
+ throw new Error('Minimum amount out cannot be negative');
184
+ }
185
+ }
186
+ /**
187
+ * Helper method to validate position parameters
188
+ */
189
+ validatePositionParams(params) {
190
+ const { collateralToken, indexToken, size, collateralAmount } = params;
191
+ if (!this.consts.coins[collateralToken]) {
192
+ throw new Error(`Unsupported collateral token: ${collateralToken}`);
193
+ }
194
+ if (!this.consts.coins[indexToken]) {
195
+ throw new Error(`Unsupported index token: ${indexToken}`);
196
+ }
197
+ if (size <= 0n) {
198
+ throw new Error('Position size must be greater than 0');
199
+ }
200
+ if (collateralAmount <= 0n) {
201
+ throw new Error('Collateral amount must be greater than 0');
202
+ }
203
+ }
204
+ }
205
+ exports.BaseAPI = BaseAPI;
206
+ //# sourceMappingURL=BaseAPI.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseAPI.cjs","sourceRoot":"","sources":["../../src/abstract/BaseAPI.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,172 @@
1
+ /**
2
+ * Abstract base class for all API implementations
3
+ * Extends BaseDataAPI with trading functionality
4
+ */
5
+ import type { KioskClient, KioskOwnerCap } from "@mysten/kiosk";
6
+ import type { SuiClient } from "@mysten/sui/client";
7
+ import { Transaction } from "@mysten/sui/transactions";
8
+ import type { LPToken, Network } from "../consts/index.cjs";
9
+ import type { IBaseDataAPI, IBaseAPI, IBaseCredential, IBaseHistoryResponse, IBaseMarketInfo, IBaseMarketValuationInfo, IBaseOrderCapInfo, IBaseOrderInfo, IBasePositionCapInfo, IBasePositionConfig, IBasePositionInfo, IBaseRebaseFeeModel, IBaseStaked, IBaseStakePool, IBaseSymbolInfo, IBaseVaultInfo } from "../interfaces/index.cjs";
10
+ import { BaseDataAPI } from "./BaseDataAPI.cjs";
11
+ export declare abstract class BaseAPI extends BaseDataAPI implements IBaseAPI {
12
+ /** Subclasses must provide their DataAPI instance; data methods delegate to it. */
13
+ protected abstract get dataAPI(): IBaseDataAPI;
14
+ constructor(network: Network, provider: SuiClient, apiEndpoint: string, connectionURL: string, lpToken: LPToken);
15
+ valuateVaults(tx: Transaction): any;
16
+ valuateSymbols(tx: Transaction): any;
17
+ valuate(tx: Transaction): {
18
+ vaultsValuation: any;
19
+ symbolsValuation: any;
20
+ };
21
+ valuateMarket(): Promise<IBaseMarketValuationInfo>;
22
+ fundingFeeRate(indexToken: string, long: boolean, sender?: string): Promise<number>;
23
+ rebaseFeeRate(collateralToken: string, increase: boolean, amount: number, sender?: string): Promise<number>;
24
+ reservingFeeRate(collateralToken: string, amount: number, sender?: string): Promise<number>;
25
+ getMarketInfo(): Promise<IBaseMarketInfo>;
26
+ getVaultInfo(vault: string): Promise<IBaseVaultInfo>;
27
+ getSymbolInfo(tokenId: string, long: boolean): Promise<IBaseSymbolInfo>;
28
+ getPositionConfig(indexToken: string, long: boolean): Promise<IBasePositionConfig>;
29
+ getRebaseFeeModel(): Promise<IBaseRebaseFeeModel>;
30
+ getOpenPositions(batchSize: number, symbol: string): Promise<IBasePositionInfo[]>;
31
+ getPositionCapInfoList(owner: string): Promise<IBasePositionCapInfo[]>;
32
+ getPositionInfoList(positionCapInfoList: IBasePositionCapInfo[], owner: string, batchSize?: number): Promise<IBasePositionInfo[]>;
33
+ getOrderCapInfoList(owner: string): Promise<IBaseOrderCapInfo[]>;
34
+ getOrderInfoList(orderCapInfoList: IBaseOrderCapInfo[], owner: string, batchSize?: number): Promise<IBaseOrderInfo[]>;
35
+ getHistory(trader: string, page: number, limit: number, orderType?: string, symbol?: string): Promise<IBaseHistoryResponse>;
36
+ getStaked(owner: string): Promise<IBaseStaked>;
37
+ getStakePool(): Promise<IBaseStakePool>;
38
+ hasReferral(referree: string): Promise<boolean>;
39
+ getReferralData(referree: string): Promise<any>;
40
+ /**
41
+ * Processes coin objects for transactions
42
+ * Handles SUI gas coin and merges multiple coin objects if needed
43
+ */
44
+ protected processCoins(tx: Transaction, coin: string, coinObjects: string[], sponsoredTx?: boolean): {
45
+ $kind: "Input";
46
+ Input: number;
47
+ type?: "object";
48
+ } | {
49
+ $kind: "GasCoin";
50
+ GasCoin: true;
51
+ };
52
+ protected processCoinSplitting(tx: Transaction, token: string, coinObjects: string[], amounts: any[], sponsoredTx?: boolean, suiCoinObject?: any): {
53
+ $kind: "Result";
54
+ Result: number;
55
+ } & {
56
+ $kind: "NestedResult";
57
+ NestedResult: [number, number];
58
+ }[];
59
+ /**
60
+ * Processes slippage for price calculations
61
+ */
62
+ protected processSlippage(indexPrice: number, long: boolean, slippage: number): bigint;
63
+ /**
64
+ * Processes slippage for price calculations
65
+ */
66
+ protected processPriceThreshold(indexPrice: number, slippage: number): bigint;
67
+ /**
68
+ * Determines trade allowance based on order type
69
+ */
70
+ protected getTradeAllowance(isLimitOrder: boolean, isIocOrder: boolean): number;
71
+ abstract deposit(coin: string, coinObjects: string[], amount: number, minAmountOut?: number, referralAddress?: string, sender?: string, sponsoredTx?: boolean, suiCoinObjectsForPythUpdate?: string[]): Promise<Transaction>;
72
+ abstract withdraw(coin: string, lpCoinObjects: string[], amount: number, minAmountOut?: number, sponsoredTx?: boolean, suiCoinObjectsForPythUpdate?: string[]): Promise<Transaction>;
73
+ abstract swap(fromToken: string, toToken: string, fromAmount: bigint, fromCoinObjects: string[]): Promise<Transaction>;
74
+ abstract stake(lpCoinObjects: string[], amount: bigint, pool: string, tx?: Transaction): Transaction;
75
+ abstract unstake(credentials: IBaseCredential[], amount: bigint, pool: string, tx?: Transaction): Transaction;
76
+ 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, sponsoredTx?: boolean, suiCoinObjectsForPythUpdate?: string[]): Promise<Transaction>;
77
+ 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[], sponsoredTx?: boolean, suiCoinObjectsForPythUpdate?: string[]): Promise<Transaction>;
78
+ abstract decreaseMultiPositions(positions: Array<{
79
+ pcpId: string;
80
+ collateralToken: string;
81
+ indexToken: string;
82
+ amount: bigint;
83
+ long: boolean;
84
+ indexPrice: number;
85
+ collateralPrice: number;
86
+ isTriggerOrder?: boolean;
87
+ isTakeProfitOrder?: boolean;
88
+ isIocOrder?: boolean;
89
+ pricesSlippage?: number;
90
+ collateralSlippage?: number;
91
+ relayerFee?: bigint;
92
+ coinObjects?: string[];
93
+ }>, tx?: Transaction): Promise<Transaction>;
94
+ abstract pledgeInPosition(pcpId: string, collateralToken: string, indexToken: string, amount: number, coinObjects: string[], long: boolean, sponsoredTx?: boolean, suiCoinObjectsForPythUpdate?: string[]): Promise<Transaction>;
95
+ abstract redeemFromPosition(pcpId: string, collateralToken: string, indexToken: string, amount: number, long: boolean, sponsoredTx?: boolean, suiCoinObjectsForPythUpdate?: string[]): Promise<Transaction>;
96
+ abstract cancelOrder(orderCapId: string, collateralToken: string, indexToken: string, long: boolean, type: string, isV11Order?: boolean): Transaction;
97
+ abstract cancelMultiOrders(orders: Array<{
98
+ orderCapId: string;
99
+ collateralToken: string;
100
+ indexToken: string;
101
+ long: boolean;
102
+ type: string;
103
+ isV11Order?: boolean;
104
+ }>, tx?: Transaction): Transaction;
105
+ abstract clearClosedPosition(pcpId: string, collateralToken: string, indexToken: string, long: boolean, tx: Transaction): void;
106
+ abstract clearOpenPositionOrder(orderCapId: string, collateralToken: string, indexToken: string, long: boolean, tx: Transaction, isV11Order?: boolean): void;
107
+ abstract clearDecreasePositionOrder(orderCapId: string, collateralToken: string, indexToken: string, long: boolean, tx: Transaction, isV11Order?: boolean): void;
108
+ 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>;
109
+ 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>;
110
+ abstract decreaseMultiPositionsWithSCard(positions: Array<{
111
+ pcpId: string;
112
+ collateralToken: string;
113
+ indexToken: string;
114
+ amount: bigint;
115
+ long: boolean;
116
+ indexPrice: number;
117
+ collateralPrice: number;
118
+ isTriggerOrder?: boolean;
119
+ isTakeProfitOrder?: boolean;
120
+ isIocOrder?: boolean;
121
+ pricesSlippage?: number;
122
+ collateralSlippage?: number;
123
+ relayerFee?: bigint;
124
+ coinObjects?: string[];
125
+ }>, kioskClient: KioskClient, kioskCap: KioskOwnerCap, scard: string, tx?: Transaction): Promise<Transaction>;
126
+ /**
127
+ * Default: not supported. Override in subclasses that support S Card claim (e.g. SLP).
128
+ */
129
+ claimTokenFromSCard(_token: string, _coinObjects: string[], _kioskClient: KioskClient, _kioskCap: KioskOwnerCap, _scard: string): Transaction;
130
+ abstract addReferral(referrer: string, tx?: Transaction): Transaction;
131
+ abstract adminUpdatePriceFeed(collateralToken: string, indexToken: string): Promise<Transaction>;
132
+ abstract adminSettlePosition(positionId: string, owner: string, collateralToken: string, indexToken: string, long: boolean): Transaction;
133
+ abstract adminDecreasePosition(positionId: string, owner: string, collateralToken: string, indexToken: string, positionAmount: number, amount: bigint, long: boolean, collateralPrice?: number, collateralSlippage?: number, relayerFee?: bigint): Transaction;
134
+ abstract adminClearClosedPosition(positionId: string, owner: string, collateralToken: string, indexToken: string, long: boolean, tx: Transaction): void;
135
+ /**
136
+ * Helper method to initialize oracle transaction block
137
+ * This is commonly used across all LP token implementations
138
+ */
139
+ protected initOracleTransaction(tokens: string[], tx?: Transaction): Promise<Transaction>;
140
+ /**
141
+ * Helper method to add clock object to transaction
142
+ */
143
+ protected addClockToTransaction(tx: Transaction): {
144
+ $kind: "Input";
145
+ Input: number;
146
+ type?: "object";
147
+ };
148
+ /**
149
+ * Helper method to create move call arguments array
150
+ */
151
+ protected createMoveCallArgs(tx: Transaction, args: any[]): any[];
152
+ /**
153
+ * Helper method to validate transaction parameters
154
+ */
155
+ protected validateTransactionParams(params: {
156
+ coin?: string;
157
+ coinObjects?: string[];
158
+ amount?: number;
159
+ minAmountOut?: number;
160
+ }): void;
161
+ /**
162
+ * Helper method to validate position parameters
163
+ */
164
+ protected validatePositionParams(params: {
165
+ collateralToken: string;
166
+ indexToken: string;
167
+ size: bigint;
168
+ collateralAmount: bigint;
169
+ long: boolean;
170
+ }): void;
171
+ }
172
+ //# 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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"}
@@ -0,0 +1,172 @@
1
+ /**
2
+ * Abstract base class for all API implementations
3
+ * Extends BaseDataAPI with trading functionality
4
+ */
5
+ import type { KioskClient, KioskOwnerCap } from "@mysten/kiosk";
6
+ import type { SuiClient } from "@mysten/sui/client";
7
+ import { Transaction } from "@mysten/sui/transactions";
8
+ import type { LPToken, Network } from "../consts/index.mjs";
9
+ import type { IBaseDataAPI, IBaseAPI, IBaseCredential, IBaseHistoryResponse, IBaseMarketInfo, IBaseMarketValuationInfo, IBaseOrderCapInfo, IBaseOrderInfo, IBasePositionCapInfo, IBasePositionConfig, IBasePositionInfo, IBaseRebaseFeeModel, IBaseStaked, IBaseStakePool, IBaseSymbolInfo, IBaseVaultInfo } from "../interfaces/index.mjs";
10
+ import { BaseDataAPI } from "./BaseDataAPI.mjs";
11
+ export declare abstract class BaseAPI extends BaseDataAPI implements IBaseAPI {
12
+ /** Subclasses must provide their DataAPI instance; data methods delegate to it. */
13
+ protected abstract get dataAPI(): IBaseDataAPI;
14
+ constructor(network: Network, provider: SuiClient, apiEndpoint: string, connectionURL: string, lpToken: LPToken);
15
+ valuateVaults(tx: Transaction): any;
16
+ valuateSymbols(tx: Transaction): any;
17
+ valuate(tx: Transaction): {
18
+ vaultsValuation: any;
19
+ symbolsValuation: any;
20
+ };
21
+ valuateMarket(): Promise<IBaseMarketValuationInfo>;
22
+ fundingFeeRate(indexToken: string, long: boolean, sender?: string): Promise<number>;
23
+ rebaseFeeRate(collateralToken: string, increase: boolean, amount: number, sender?: string): Promise<number>;
24
+ reservingFeeRate(collateralToken: string, amount: number, sender?: string): Promise<number>;
25
+ getMarketInfo(): Promise<IBaseMarketInfo>;
26
+ getVaultInfo(vault: string): Promise<IBaseVaultInfo>;
27
+ getSymbolInfo(tokenId: string, long: boolean): Promise<IBaseSymbolInfo>;
28
+ getPositionConfig(indexToken: string, long: boolean): Promise<IBasePositionConfig>;
29
+ getRebaseFeeModel(): Promise<IBaseRebaseFeeModel>;
30
+ getOpenPositions(batchSize: number, symbol: string): Promise<IBasePositionInfo[]>;
31
+ getPositionCapInfoList(owner: string): Promise<IBasePositionCapInfo[]>;
32
+ getPositionInfoList(positionCapInfoList: IBasePositionCapInfo[], owner: string, batchSize?: number): Promise<IBasePositionInfo[]>;
33
+ getOrderCapInfoList(owner: string): Promise<IBaseOrderCapInfo[]>;
34
+ getOrderInfoList(orderCapInfoList: IBaseOrderCapInfo[], owner: string, batchSize?: number): Promise<IBaseOrderInfo[]>;
35
+ getHistory(trader: string, page: number, limit: number, orderType?: string, symbol?: string): Promise<IBaseHistoryResponse>;
36
+ getStaked(owner: string): Promise<IBaseStaked>;
37
+ getStakePool(): Promise<IBaseStakePool>;
38
+ hasReferral(referree: string): Promise<boolean>;
39
+ getReferralData(referree: string): Promise<any>;
40
+ /**
41
+ * Processes coin objects for transactions
42
+ * Handles SUI gas coin and merges multiple coin objects if needed
43
+ */
44
+ protected processCoins(tx: Transaction, coin: string, coinObjects: string[], sponsoredTx?: boolean): {
45
+ $kind: "Input";
46
+ Input: number;
47
+ type?: "object";
48
+ } | {
49
+ $kind: "GasCoin";
50
+ GasCoin: true;
51
+ };
52
+ protected processCoinSplitting(tx: Transaction, token: string, coinObjects: string[], amounts: any[], sponsoredTx?: boolean, suiCoinObject?: any): {
53
+ $kind: "Result";
54
+ Result: number;
55
+ } & {
56
+ $kind: "NestedResult";
57
+ NestedResult: [number, number];
58
+ }[];
59
+ /**
60
+ * Processes slippage for price calculations
61
+ */
62
+ protected processSlippage(indexPrice: number, long: boolean, slippage: number): bigint;
63
+ /**
64
+ * Processes slippage for price calculations
65
+ */
66
+ protected processPriceThreshold(indexPrice: number, slippage: number): bigint;
67
+ /**
68
+ * Determines trade allowance based on order type
69
+ */
70
+ protected getTradeAllowance(isLimitOrder: boolean, isIocOrder: boolean): number;
71
+ abstract deposit(coin: string, coinObjects: string[], amount: number, minAmountOut?: number, referralAddress?: string, sender?: string, sponsoredTx?: boolean, suiCoinObjectsForPythUpdate?: string[]): Promise<Transaction>;
72
+ abstract withdraw(coin: string, lpCoinObjects: string[], amount: number, minAmountOut?: number, sponsoredTx?: boolean, suiCoinObjectsForPythUpdate?: string[]): Promise<Transaction>;
73
+ abstract swap(fromToken: string, toToken: string, fromAmount: bigint, fromCoinObjects: string[]): Promise<Transaction>;
74
+ abstract stake(lpCoinObjects: string[], amount: bigint, pool: string, tx?: Transaction): Transaction;
75
+ abstract unstake(credentials: IBaseCredential[], amount: bigint, pool: string, tx?: Transaction): Transaction;
76
+ 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, sponsoredTx?: boolean, suiCoinObjectsForPythUpdate?: string[]): Promise<Transaction>;
77
+ 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[], sponsoredTx?: boolean, suiCoinObjectsForPythUpdate?: string[]): Promise<Transaction>;
78
+ abstract decreaseMultiPositions(positions: Array<{
79
+ pcpId: string;
80
+ collateralToken: string;
81
+ indexToken: string;
82
+ amount: bigint;
83
+ long: boolean;
84
+ indexPrice: number;
85
+ collateralPrice: number;
86
+ isTriggerOrder?: boolean;
87
+ isTakeProfitOrder?: boolean;
88
+ isIocOrder?: boolean;
89
+ pricesSlippage?: number;
90
+ collateralSlippage?: number;
91
+ relayerFee?: bigint;
92
+ coinObjects?: string[];
93
+ }>, tx?: Transaction): Promise<Transaction>;
94
+ abstract pledgeInPosition(pcpId: string, collateralToken: string, indexToken: string, amount: number, coinObjects: string[], long: boolean, sponsoredTx?: boolean, suiCoinObjectsForPythUpdate?: string[]): Promise<Transaction>;
95
+ abstract redeemFromPosition(pcpId: string, collateralToken: string, indexToken: string, amount: number, long: boolean, sponsoredTx?: boolean, suiCoinObjectsForPythUpdate?: string[]): Promise<Transaction>;
96
+ abstract cancelOrder(orderCapId: string, collateralToken: string, indexToken: string, long: boolean, type: string, isV11Order?: boolean): Transaction;
97
+ abstract cancelMultiOrders(orders: Array<{
98
+ orderCapId: string;
99
+ collateralToken: string;
100
+ indexToken: string;
101
+ long: boolean;
102
+ type: string;
103
+ isV11Order?: boolean;
104
+ }>, tx?: Transaction): Transaction;
105
+ abstract clearClosedPosition(pcpId: string, collateralToken: string, indexToken: string, long: boolean, tx: Transaction): void;
106
+ abstract clearOpenPositionOrder(orderCapId: string, collateralToken: string, indexToken: string, long: boolean, tx: Transaction, isV11Order?: boolean): void;
107
+ abstract clearDecreasePositionOrder(orderCapId: string, collateralToken: string, indexToken: string, long: boolean, tx: Transaction, isV11Order?: boolean): void;
108
+ 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>;
109
+ 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>;
110
+ abstract decreaseMultiPositionsWithSCard(positions: Array<{
111
+ pcpId: string;
112
+ collateralToken: string;
113
+ indexToken: string;
114
+ amount: bigint;
115
+ long: boolean;
116
+ indexPrice: number;
117
+ collateralPrice: number;
118
+ isTriggerOrder?: boolean;
119
+ isTakeProfitOrder?: boolean;
120
+ isIocOrder?: boolean;
121
+ pricesSlippage?: number;
122
+ collateralSlippage?: number;
123
+ relayerFee?: bigint;
124
+ coinObjects?: string[];
125
+ }>, kioskClient: KioskClient, kioskCap: KioskOwnerCap, scard: string, tx?: Transaction): Promise<Transaction>;
126
+ /**
127
+ * Default: not supported. Override in subclasses that support S Card claim (e.g. SLP).
128
+ */
129
+ claimTokenFromSCard(_token: string, _coinObjects: string[], _kioskClient: KioskClient, _kioskCap: KioskOwnerCap, _scard: string): Transaction;
130
+ abstract addReferral(referrer: string, tx?: Transaction): Transaction;
131
+ abstract adminUpdatePriceFeed(collateralToken: string, indexToken: string): Promise<Transaction>;
132
+ abstract adminSettlePosition(positionId: string, owner: string, collateralToken: string, indexToken: string, long: boolean): Transaction;
133
+ abstract adminDecreasePosition(positionId: string, owner: string, collateralToken: string, indexToken: string, positionAmount: number, amount: bigint, long: boolean, collateralPrice?: number, collateralSlippage?: number, relayerFee?: bigint): Transaction;
134
+ abstract adminClearClosedPosition(positionId: string, owner: string, collateralToken: string, indexToken: string, long: boolean, tx: Transaction): void;
135
+ /**
136
+ * Helper method to initialize oracle transaction block
137
+ * This is commonly used across all LP token implementations
138
+ */
139
+ protected initOracleTransaction(tokens: string[], tx?: Transaction): Promise<Transaction>;
140
+ /**
141
+ * Helper method to add clock object to transaction
142
+ */
143
+ protected addClockToTransaction(tx: Transaction): {
144
+ $kind: "Input";
145
+ Input: number;
146
+ type?: "object";
147
+ };
148
+ /**
149
+ * Helper method to create move call arguments array
150
+ */
151
+ protected createMoveCallArgs(tx: Transaction, args: any[]): any[];
152
+ /**
153
+ * Helper method to validate transaction parameters
154
+ */
155
+ protected validateTransactionParams(params: {
156
+ coin?: string;
157
+ coinObjects?: string[];
158
+ amount?: number;
159
+ minAmountOut?: number;
160
+ }): void;
161
+ /**
162
+ * Helper method to validate position parameters
163
+ */
164
+ protected validatePositionParams(params: {
165
+ collateralToken: string;
166
+ indexToken: string;
167
+ size: bigint;
168
+ collateralAmount: bigint;
169
+ long: boolean;
170
+ }): void;
171
+ }
172
+ //# sourceMappingURL=BaseAPI.d.mts.map