@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.
- package/.claude/settings.local.json +9 -0
- package/.gitattributes +4 -0
- package/.prettierrc.js +9 -0
- package/README.md +28 -0
- package/dist/abstract/BaseAPI.cjs +206 -0
- package/dist/abstract/BaseAPI.cjs.map +1 -0
- package/dist/abstract/BaseAPI.d.cts +172 -0
- package/dist/abstract/BaseAPI.d.cts.map +1 -0
- package/dist/abstract/BaseAPI.d.mts +172 -0
- package/dist/abstract/BaseAPI.d.mts.map +1 -0
- package/dist/abstract/BaseAPI.mjs +202 -0
- package/dist/abstract/BaseAPI.mjs.map +1 -0
- package/dist/abstract/BaseDataAPI.cjs +140 -0
- package/dist/abstract/BaseDataAPI.cjs.map +1 -0
- package/dist/abstract/BaseDataAPI.d.cts +89 -0
- package/dist/abstract/BaseDataAPI.d.cts.map +1 -0
- package/dist/abstract/BaseDataAPI.d.mts +89 -0
- package/dist/abstract/BaseDataAPI.d.mts.map +1 -0
- package/dist/abstract/BaseDataAPI.mjs +136 -0
- package/dist/abstract/BaseDataAPI.mjs.map +1 -0
- package/dist/abstract/index.cjs +12 -0
- package/dist/abstract/index.cjs.map +1 -0
- package/dist/abstract/index.d.cts +7 -0
- package/dist/abstract/index.d.cts.map +1 -0
- package/dist/abstract/index.d.mts +7 -0
- package/dist/abstract/index.d.mts.map +1 -0
- package/dist/abstract/index.mjs +7 -0
- package/dist/abstract/index.mjs.map +1 -0
- package/dist/api.cjs +779 -0
- package/dist/api.cjs.map +1 -0
- package/dist/api.d.cts +75 -0
- package/dist/api.d.cts.map +1 -0
- package/dist/api.d.mts +75 -0
- package/dist/api.d.mts.map +1 -0
- package/dist/api.mjs +775 -0
- package/dist/api.mjs.map +1 -0
- package/dist/bcs.cjs +42 -0
- package/dist/bcs.cjs.map +1 -0
- package/dist/bcs.d.cts +91 -0
- package/dist/bcs.d.cts.map +1 -0
- package/dist/bcs.d.mts +91 -0
- package/dist/bcs.d.mts.map +1 -0
- package/dist/bcs.mjs +39 -0
- package/dist/bcs.mjs.map +1 -0
- package/dist/consts/deployments-shared-mainnet.json +50 -0
- package/dist/consts/deployments-shared-testnet.json +45 -0
- package/dist/consts/deployments-slp-mainnet.json +600 -0
- package/dist/consts/deployments-slp-testnet.json +87 -0
- package/dist/consts/deployments-usdz-mainnet.json +494 -0
- package/dist/consts/deployments-usdz-testnet.json +98 -0
- package/dist/consts/deployments-zbtcvc-mainnet.json +180 -0
- package/dist/consts/deployments-zlp-mainnet.json +791 -0
- package/dist/consts/deployments-zlp-testnet.json +76 -0
- package/dist/consts/index.cjs +200 -0
- package/dist/consts/index.cjs.map +1 -0
- package/dist/consts/index.d.cts +157 -0
- package/dist/consts/index.d.cts.map +1 -0
- package/dist/consts/index.d.mts +157 -0
- package/dist/consts/index.d.mts.map +1 -0
- package/dist/consts/index.mjs +189 -0
- package/dist/consts/index.mjs.map +1 -0
- package/dist/consts/price_id_to_object_id.mainnet.json +56 -0
- package/dist/consts/price_id_to_object_id.testnet.json +17 -0
- package/dist/data.cjs +919 -0
- package/dist/data.cjs.map +1 -0
- package/dist/data.d.cts +235 -0
- package/dist/data.d.cts.map +1 -0
- package/dist/data.d.mts +235 -0
- package/dist/data.d.mts.map +1 -0
- package/dist/data.mjs +915 -0
- package/dist/data.mjs.map +1 -0
- package/dist/factory/SDKFactory.cjs +228 -0
- package/dist/factory/SDKFactory.cjs.map +1 -0
- package/dist/factory/SDKFactory.d.cts +84 -0
- package/dist/factory/SDKFactory.d.cts.map +1 -0
- package/dist/factory/SDKFactory.d.mts +84 -0
- package/dist/factory/SDKFactory.d.mts.map +1 -0
- package/dist/factory/SDKFactory.mjs +222 -0
- package/dist/factory/SDKFactory.mjs.map +1 -0
- package/dist/implementations/SLPAPI.cjs +1794 -0
- package/dist/implementations/SLPAPI.cjs.map +1 -0
- package/dist/implementations/SLPAPI.d.cts +183 -0
- package/dist/implementations/SLPAPI.d.cts.map +1 -0
- package/dist/implementations/SLPAPI.d.mts +183 -0
- package/dist/implementations/SLPAPI.d.mts.map +1 -0
- package/dist/implementations/SLPAPI.mjs +1790 -0
- package/dist/implementations/SLPAPI.mjs.map +1 -0
- package/dist/implementations/SLPDataAPI.cjs +1384 -0
- package/dist/implementations/SLPDataAPI.cjs.map +1 -0
- package/dist/implementations/SLPDataAPI.d.cts +158 -0
- package/dist/implementations/SLPDataAPI.d.cts.map +1 -0
- package/dist/implementations/SLPDataAPI.d.mts +158 -0
- package/dist/implementations/SLPDataAPI.d.mts.map +1 -0
- package/dist/implementations/SLPDataAPI.mjs +1380 -0
- package/dist/implementations/SLPDataAPI.mjs.map +1 -0
- package/dist/implementations/USDZAPI.cjs +1676 -0
- package/dist/implementations/USDZAPI.cjs.map +1 -0
- package/dist/implementations/USDZAPI.d.cts +180 -0
- package/dist/implementations/USDZAPI.d.cts.map +1 -0
- package/dist/implementations/USDZAPI.d.mts +180 -0
- package/dist/implementations/USDZAPI.d.mts.map +1 -0
- package/dist/implementations/USDZAPI.mjs +1672 -0
- package/dist/implementations/USDZAPI.mjs.map +1 -0
- package/dist/implementations/USDZDataAPI.cjs +1209 -0
- package/dist/implementations/USDZDataAPI.cjs.map +1 -0
- package/dist/implementations/USDZDataAPI.d.cts +191 -0
- package/dist/implementations/USDZDataAPI.d.cts.map +1 -0
- package/dist/implementations/USDZDataAPI.d.mts +191 -0
- package/dist/implementations/USDZDataAPI.d.mts.map +1 -0
- package/dist/implementations/USDZDataAPI.mjs +1205 -0
- package/dist/implementations/USDZDataAPI.mjs.map +1 -0
- package/dist/implementations/ZBTCVCAPI.cjs +906 -0
- package/dist/implementations/ZBTCVCAPI.cjs.map +1 -0
- package/dist/implementations/ZBTCVCAPI.d.cts +107 -0
- package/dist/implementations/ZBTCVCAPI.d.cts.map +1 -0
- package/dist/implementations/ZBTCVCAPI.d.mts +107 -0
- package/dist/implementations/ZBTCVCAPI.d.mts.map +1 -0
- package/dist/implementations/ZBTCVCAPI.mjs +902 -0
- package/dist/implementations/ZBTCVCAPI.mjs.map +1 -0
- package/dist/implementations/ZBTCVCDataAPI.cjs +829 -0
- package/dist/implementations/ZBTCVCDataAPI.cjs.map +1 -0
- package/dist/implementations/ZBTCVCDataAPI.d.cts +94 -0
- package/dist/implementations/ZBTCVCDataAPI.d.cts.map +1 -0
- package/dist/implementations/ZBTCVCDataAPI.d.mts +94 -0
- package/dist/implementations/ZBTCVCDataAPI.d.mts.map +1 -0
- package/dist/implementations/ZBTCVCDataAPI.mjs +825 -0
- package/dist/implementations/ZBTCVCDataAPI.mjs.map +1 -0
- package/dist/implementations/ZLPAPI.cjs +1948 -0
- package/dist/implementations/ZLPAPI.cjs.map +1 -0
- package/dist/implementations/ZLPAPI.d.cts +192 -0
- package/dist/implementations/ZLPAPI.d.cts.map +1 -0
- package/dist/implementations/ZLPAPI.d.mts +192 -0
- package/dist/implementations/ZLPAPI.d.mts.map +1 -0
- package/dist/implementations/ZLPAPI.mjs +1944 -0
- package/dist/implementations/ZLPAPI.mjs.map +1 -0
- package/dist/implementations/ZLPDataAPI.cjs +1267 -0
- package/dist/implementations/ZLPDataAPI.cjs.map +1 -0
- package/dist/implementations/ZLPDataAPI.d.cts +193 -0
- package/dist/implementations/ZLPDataAPI.d.cts.map +1 -0
- package/dist/implementations/ZLPDataAPI.d.mts +193 -0
- package/dist/implementations/ZLPDataAPI.d.mts.map +1 -0
- package/dist/implementations/ZLPDataAPI.mjs +1263 -0
- package/dist/implementations/ZLPDataAPI.mjs.map +1 -0
- package/dist/implementations/index.cjs +26 -0
- package/dist/implementations/index.cjs.map +1 -0
- package/dist/implementations/index.d.cts +13 -0
- package/dist/implementations/index.d.cts.map +1 -0
- package/dist/implementations/index.d.mts +13 -0
- package/dist/implementations/index.d.mts.map +1 -0
- package/dist/implementations/index.mjs +15 -0
- package/dist/implementations/index.mjs.map +1 -0
- package/dist/index.cjs +69 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +51 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +51 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +51 -0
- package/dist/index.mjs.map +1 -0
- package/dist/interfaces/base.cjs +7 -0
- package/dist/interfaces/base.cjs.map +1 -0
- package/dist/interfaces/base.d.cts +346 -0
- package/dist/interfaces/base.d.cts.map +1 -0
- package/dist/interfaces/base.d.mts +346 -0
- package/dist/interfaces/base.d.mts.map +1 -0
- package/dist/interfaces/base.mjs +6 -0
- package/dist/interfaces/base.mjs.map +1 -0
- package/dist/interfaces/index.cjs +31 -0
- package/dist/interfaces/index.cjs.map +1 -0
- package/dist/interfaces/index.d.cts +15 -0
- package/dist/interfaces/index.d.cts.map +1 -0
- package/dist/interfaces/index.d.mts +15 -0
- package/dist/interfaces/index.d.mts.map +1 -0
- package/dist/interfaces/index.mjs +15 -0
- package/dist/interfaces/index.mjs.map +1 -0
- package/dist/interfaces/slp.cjs +7 -0
- package/dist/interfaces/slp.cjs.map +1 -0
- package/dist/interfaces/slp.d.cts +179 -0
- package/dist/interfaces/slp.d.cts.map +1 -0
- package/dist/interfaces/slp.d.mts +179 -0
- package/dist/interfaces/slp.d.mts.map +1 -0
- package/dist/interfaces/slp.mjs +6 -0
- package/dist/interfaces/slp.mjs.map +1 -0
- package/dist/interfaces/usdz.cjs +7 -0
- package/dist/interfaces/usdz.cjs.map +1 -0
- package/dist/interfaces/usdz.d.cts +104 -0
- package/dist/interfaces/usdz.d.cts.map +1 -0
- package/dist/interfaces/usdz.d.mts +104 -0
- package/dist/interfaces/usdz.d.mts.map +1 -0
- package/dist/interfaces/usdz.mjs +6 -0
- package/dist/interfaces/usdz.mjs.map +1 -0
- package/dist/interfaces/zbtcvc.cjs +7 -0
- package/dist/interfaces/zbtcvc.cjs.map +1 -0
- package/dist/interfaces/zbtcvc.d.cts +64 -0
- package/dist/interfaces/zbtcvc.d.cts.map +1 -0
- package/dist/interfaces/zbtcvc.d.mts +64 -0
- package/dist/interfaces/zbtcvc.d.mts.map +1 -0
- package/dist/interfaces/zbtcvc.mjs +6 -0
- package/dist/interfaces/zbtcvc.mjs.map +1 -0
- package/dist/interfaces/zlp.cjs +7 -0
- package/dist/interfaces/zlp.cjs.map +1 -0
- package/dist/interfaces/zlp.d.cts +114 -0
- package/dist/interfaces/zlp.d.cts.map +1 -0
- package/dist/interfaces/zlp.d.mts +114 -0
- package/dist/interfaces/zlp.d.mts.map +1 -0
- package/dist/interfaces/zlp.mjs +6 -0
- package/dist/interfaces/zlp.mjs.map +1 -0
- package/dist/oracle.cjs +118 -0
- package/dist/oracle.cjs.map +1 -0
- package/dist/oracle.d.cts +25 -0
- package/dist/oracle.d.cts.map +1 -0
- package/dist/oracle.d.mts +25 -0
- package/dist/oracle.d.mts.map +1 -0
- package/dist/oracle.mjs +114 -0
- package/dist/oracle.mjs.map +1 -0
- package/dist/utils.cjs +129 -0
- package/dist/utils.cjs.map +1 -0
- package/dist/utils.d.cts +44 -0
- package/dist/utils.d.cts.map +1 -0
- package/dist/utils.d.mts +44 -0
- package/dist/utils.d.mts.map +1 -0
- package/dist/utils.mjs +115 -0
- package/dist/utils.mjs.map +1 -0
- package/docs/SUMMARY.md +10 -0
- package/docs/api-reference.md +32 -0
- package/docs/architecture.md +14 -0
- package/docs/common-operations.md +52 -0
- package/docs/error-handling.md +17 -0
- package/docs/getting-started.md +60 -0
- package/docs/introduction.md +15 -0
- package/docs/lp-specific-features.md +96 -0
- package/docs/type-safety.md +29 -0
- package/eslint.config.mjs +18 -0
- package/package.json +42 -0
- package/src/abstract/BaseAPI.ts +575 -0
- package/src/abstract/BaseDataAPI.ts +207 -0
- package/src/abstract/index.ts +7 -0
- package/src/api.ts +1100 -0
- package/src/bcs.ts +45 -0
- package/src/consts/deployments-shared-mainnet.json +50 -0
- package/src/consts/deployments-shared-testnet.json +45 -0
- package/src/consts/deployments-slp-mainnet.json +600 -0
- package/src/consts/deployments-slp-testnet.json +87 -0
- package/src/consts/deployments-usdz-mainnet.json +494 -0
- package/src/consts/deployments-usdz-testnet.json +98 -0
- package/src/consts/deployments-zbtcvc-mainnet.json +180 -0
- package/src/consts/deployments-zlp-mainnet.json +791 -0
- package/src/consts/deployments-zlp-testnet.json +76 -0
- package/src/consts/index.ts +345 -0
- package/src/consts/price_id_to_object_id.mainnet.json +56 -0
- package/src/consts/price_id_to_object_id.testnet.json +17 -0
- package/src/data.ts +1279 -0
- package/src/factory/SDKFactory.ts +340 -0
- package/src/implementations/SLPAPI.ts +2722 -0
- package/src/implementations/SLPDataAPI.ts +1839 -0
- package/src/implementations/USDZAPI.ts +2488 -0
- package/src/implementations/USDZDataAPI.ts +1548 -0
- package/src/implementations/ZBTCVCAPI.ts +1337 -0
- package/src/implementations/ZBTCVCDataAPI.ts +993 -0
- package/src/implementations/ZLPAPI.ts +2888 -0
- package/src/implementations/ZLPDataAPI.ts +1603 -0
- package/src/implementations/index.ts +16 -0
- package/src/index.ts +58 -0
- package/src/interfaces/base.ts +838 -0
- package/src/interfaces/index.ts +50 -0
- package/src/interfaces/slp.ts +268 -0
- package/src/interfaces/usdz.ts +181 -0
- package/src/interfaces/zbtcvc.ts +116 -0
- package/src/interfaces/zlp.ts +244 -0
- package/src/oracle.ts +153 -0
- package/src/utils.ts +168 -0
- package/tests/api.test.ts +219 -0
- package/tests/data.test.ts +156 -0
- package/tests/oracle.test.ts +33 -0
- package/tsconfig.json +22 -0
package/.gitattributes
ADDED
package/.prettierrc.js
ADDED
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
|