zo-sdk 0.0.4 → 0.0.6
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/.gitattributes +4 -0
- package/.prettierrc.js +5 -0
- package/babel.config.js +11 -0
- package/dist/api.d.ts +25 -0
- package/dist/api.js +397 -0
- package/dist/api.js.map +1 -0
- package/dist/consts/deployments-mainnet.json +28 -0
- package/dist/consts/deployments-testnet.json +93 -0
- package/dist/consts/index.d.ts +65 -0
- package/dist/consts/index.js +103 -0
- package/dist/consts/index.js.map +1 -0
- package/dist/consts/price_id_to_object_id.mainnet.json +1 -0
- package/dist/consts/price_id_to_object_id.testnet.json +17 -0
- package/dist/consts/staking/deployments-mainnet.json +12 -0
- package/dist/consts/staking/deployments-testnet.json +11 -0
- package/dist/data.d.ts +220 -0
- package/dist/data.js +753 -0
- package/dist/data.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/oracle.d.ts +23 -0
- package/dist/oracle.js +135 -0
- package/dist/oracle.js.map +1 -0
- package/dist/utils.d.ts +45 -0
- package/dist/utils.js +144 -0
- package/dist/utils.js.map +1 -0
- package/package.json +29 -30
- package/src/consts/index.ts +19 -19
- package/src/utils.ts +5 -6
- package/tsconfig.json +9 -19
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
interface IVault {
|
|
2
|
+
weight: string;
|
|
3
|
+
reservingFeeModel: string;
|
|
4
|
+
}
|
|
5
|
+
interface ISymbol {
|
|
6
|
+
supportedCollaterals: string[];
|
|
7
|
+
fundingFeeModel: string;
|
|
8
|
+
positionConfig: string;
|
|
9
|
+
}
|
|
10
|
+
interface ICoin {
|
|
11
|
+
decimals: number;
|
|
12
|
+
module: string;
|
|
13
|
+
metadata: string;
|
|
14
|
+
treasury: string | null;
|
|
15
|
+
}
|
|
16
|
+
type IVersionedContract = string;
|
|
17
|
+
type IFeeder = Record<string, IVersionedContract>;
|
|
18
|
+
export interface IConsts {
|
|
19
|
+
zoCore: {
|
|
20
|
+
package: string;
|
|
21
|
+
upgradeCap: string;
|
|
22
|
+
adminCap: string;
|
|
23
|
+
market: IVersionedContract;
|
|
24
|
+
zlpMetadata: IVersionedContract;
|
|
25
|
+
rebaseFeeModel: IVersionedContract;
|
|
26
|
+
vaultsParent: string;
|
|
27
|
+
symbolsParent: string;
|
|
28
|
+
positionsParent: string;
|
|
29
|
+
vaults: Record<string, IVault>;
|
|
30
|
+
symbols: Record<string, ISymbol>;
|
|
31
|
+
referralsParent: string;
|
|
32
|
+
ordersParent: string;
|
|
33
|
+
};
|
|
34
|
+
pythFeeder: {
|
|
35
|
+
package: string;
|
|
36
|
+
state: IVersionedContract;
|
|
37
|
+
wormhole: {
|
|
38
|
+
package: string;
|
|
39
|
+
state: IVersionedContract;
|
|
40
|
+
};
|
|
41
|
+
feeder: IFeeder;
|
|
42
|
+
};
|
|
43
|
+
coins: Record<string, ICoin>;
|
|
44
|
+
zoStaking: {
|
|
45
|
+
package: string;
|
|
46
|
+
upgradeCap: string;
|
|
47
|
+
adminCap: string;
|
|
48
|
+
pool: string;
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
export declare enum Network {
|
|
52
|
+
MAINNET = "mainnet",
|
|
53
|
+
TESTNET = "testnet",
|
|
54
|
+
DEVNET = "devnet"
|
|
55
|
+
}
|
|
56
|
+
export declare function getConsts(network: string): IConsts;
|
|
57
|
+
export declare const ZLP_TOKEN_DECIMALS = 6;
|
|
58
|
+
export declare const SECONDS_PER_EIGHT_HOUR: number;
|
|
59
|
+
export declare function getPythFeederToPriceId(network: Network): Record<string, string>;
|
|
60
|
+
export declare function getPriceIdToPythFeeder(network: Network): Record<string, string>;
|
|
61
|
+
export declare function getPythFeederToId(network: string): Record<string, string>;
|
|
62
|
+
export declare const ALLOW_TRADE_NO_TRADE = 0;
|
|
63
|
+
export declare const ALLOW_TRADE_CAN_TRADE = 1;
|
|
64
|
+
export declare const ALLOW_TRADE_MUST_TRADE = 2;
|
|
65
|
+
export {};
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ALLOW_TRADE_MUST_TRADE = exports.ALLOW_TRADE_CAN_TRADE = exports.ALLOW_TRADE_NO_TRADE = exports.SECONDS_PER_EIGHT_HOUR = exports.ZLP_TOKEN_DECIMALS = exports.Network = void 0;
|
|
7
|
+
exports.getConsts = getConsts;
|
|
8
|
+
exports.getPythFeederToPriceId = getPythFeederToPriceId;
|
|
9
|
+
exports.getPriceIdToPythFeeder = getPriceIdToPythFeeder;
|
|
10
|
+
exports.getPythFeederToId = getPythFeederToId;
|
|
11
|
+
const utils_1 = require("../utils");
|
|
12
|
+
const deployments_mainnet_json_1 = __importDefault(require("./deployments-mainnet.json"));
|
|
13
|
+
const deployments_testnet_json_1 = __importDefault(require("./deployments-testnet.json"));
|
|
14
|
+
const price_id_to_object_id_mainnet_json_1 = __importDefault(require("./price_id_to_object_id.mainnet.json"));
|
|
15
|
+
const price_id_to_object_id_testnet_json_1 = __importDefault(require("./price_id_to_object_id.testnet.json"));
|
|
16
|
+
const deployments_mainnet_json_2 = __importDefault(require("./staking/deployments-mainnet.json"));
|
|
17
|
+
const deployments_testnet_json_2 = __importDefault(require("./staking/deployments-testnet.json"));
|
|
18
|
+
function toCamelCase(str) {
|
|
19
|
+
return str.replace(/_([a-z])/g, (match, letter) => letter.toUpperCase());
|
|
20
|
+
}
|
|
21
|
+
function parse(obj) {
|
|
22
|
+
if (typeof obj !== 'object' || obj === null) {
|
|
23
|
+
return obj;
|
|
24
|
+
}
|
|
25
|
+
if (Array.isArray(obj)) {
|
|
26
|
+
return obj.map(parse);
|
|
27
|
+
}
|
|
28
|
+
const newObj = {};
|
|
29
|
+
for (const key in obj) {
|
|
30
|
+
const camelCaseKey = toCamelCase(key);
|
|
31
|
+
newObj[camelCaseKey] = parse(obj[key]);
|
|
32
|
+
}
|
|
33
|
+
return newObj;
|
|
34
|
+
}
|
|
35
|
+
var Network;
|
|
36
|
+
(function (Network) {
|
|
37
|
+
Network["MAINNET"] = "mainnet";
|
|
38
|
+
Network["TESTNET"] = "testnet";
|
|
39
|
+
Network["DEVNET"] = "devnet";
|
|
40
|
+
})(Network || (exports.Network = Network = {}));
|
|
41
|
+
function throwNetworkError(network) {
|
|
42
|
+
throw new Error(`Unknown network: ${network}`);
|
|
43
|
+
}
|
|
44
|
+
function getConsts(network) {
|
|
45
|
+
switch (network) {
|
|
46
|
+
case Network.TESTNET: {
|
|
47
|
+
return { ...parse(deployments_testnet_json_1.default), ...parse(deployments_testnet_json_2.default) };
|
|
48
|
+
}
|
|
49
|
+
case Network.MAINNET: {
|
|
50
|
+
return { ...parse(deployments_mainnet_json_1.default), ...parse(deployments_mainnet_json_2.default) };
|
|
51
|
+
}
|
|
52
|
+
default: {
|
|
53
|
+
return throwNetworkError(network);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.ZLP_TOKEN_DECIMALS = 6;
|
|
58
|
+
exports.SECONDS_PER_EIGHT_HOUR = 8 * 60 * 60;
|
|
59
|
+
function getPythFeederToPriceId(network) {
|
|
60
|
+
switch (network) {
|
|
61
|
+
case Network.TESTNET: {
|
|
62
|
+
return (0, utils_1.reverseKeyValue)(price_id_to_object_id_testnet_json_1.default);
|
|
63
|
+
}
|
|
64
|
+
case Network.MAINNET: {
|
|
65
|
+
return (0, utils_1.reverseKeyValue)(price_id_to_object_id_mainnet_json_1.default);
|
|
66
|
+
}
|
|
67
|
+
default: {
|
|
68
|
+
return throwNetworkError(network);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
function getPriceIdToPythFeeder(network) {
|
|
73
|
+
let priceIdToFeeder = {};
|
|
74
|
+
switch (network) {
|
|
75
|
+
case Network.TESTNET: {
|
|
76
|
+
priceIdToFeeder = price_id_to_object_id_testnet_json_1.default;
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
case Network.MAINNET: {
|
|
80
|
+
priceIdToFeeder = price_id_to_object_id_mainnet_json_1.default;
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
default: {
|
|
84
|
+
throw new Error(`Unknown network: ${network}`);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return priceIdToFeeder;
|
|
88
|
+
}
|
|
89
|
+
function getPythFeederToId(network) {
|
|
90
|
+
let feederToId = {};
|
|
91
|
+
const consts = getConsts(network);
|
|
92
|
+
for (const key in consts.pythFeeder.feeder) {
|
|
93
|
+
if (Object.prototype.hasOwnProperty.call(consts.pythFeeder.feeder, key)) {
|
|
94
|
+
const contract = consts.pythFeeder.feeder[key];
|
|
95
|
+
feederToId[contract] = key;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return feederToId;
|
|
99
|
+
}
|
|
100
|
+
exports.ALLOW_TRADE_NO_TRADE = 0;
|
|
101
|
+
exports.ALLOW_TRADE_CAN_TRADE = 1;
|
|
102
|
+
exports.ALLOW_TRADE_MUST_TRADE = 2;
|
|
103
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/consts/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"1fc18861232290221461220bd4e2acd1dcdfbc89c84092c93c18bdc7756c1588": "0x956fdcbf83a26c962319f7742f5728a0a7ce59c7f0cbe13c112b259e7ee953cd",
|
|
3
|
+
"31775e1d6897129e8a84eeba975778fb50015b88039e9bc140bbd839694ac0ae": "0x17b358d730663caa888c8b621b9994a60af422cd83f32237c6b2a8b3230d71b9",
|
|
4
|
+
"3f545e3f4ec9fd8eb3b9d9d6071a1da361f6729fa1b93d1d1baca3379551d99e": "0xfe38289883c3afed692e5856f4896b3e094d4793e2ccf0a2715b890a718fa5c0",
|
|
5
|
+
"41f3625971ca2ed2263e78573fe5ce23e13d2558ed3f2e47ab0f84fb9e7ae722": "0x9c4dd4008297ffa5e480684b8100ec21cc934405ed9a25d4e4d7b6259aad9c81",
|
|
6
|
+
"50c67b3fd225db8912a424dd4baed60ffdde625ed2feaaf283724f9608fea266": "0x1ebb295c789cc42b3b2a1606482cd1c7124076a0f5676718501fda8c7fd075a0",
|
|
7
|
+
"6cdc09f443fe8ed53517b9760b0674d054e719de9b83cba1bbb02c2439448590": "0xfb459da0f174b1ff0870323175da8d25c8d6d1b9f542d9c0801370e0af15b228",
|
|
8
|
+
"8112fed370f3d9751e513f7696472eab61b7f4e2487fd9f46c93de00a338631c": "0xc067432fbb32f09dfa38ef5adaea01b2f34f350cf4620a4ee426ee1552c8fcfe",
|
|
9
|
+
"946292ad3f481f36f5e558726cf4974e2a7a34598bf15d2abe3619e7b6a8db91": "0x94905bdcaa656b0908aa8a3a42cf72b0e8e2e849f7d0a7e0e39bb9e1dc3c9cf6",
|
|
10
|
+
"99137a18354efa7fb6840889d059fdb04c46a6ce21be97ab60d9ad93e91ac758": "0x3d52fffa2cd9e54b39bb36d282bdda560b15b8b4fdf4766a3c58499ef172bafc",
|
|
11
|
+
"ca80ba6dc32e08d06f1aa886011eed1d77c77be9eb761cc10d72b7d0a2fd57a6": "0x4fde30cb8a5dc3cfee1c1c358fc66dc308408827efb217247c7ba54d76ccbee9",
|
|
12
|
+
"cb324dafd531712dd31c39969ae0246ee4c6ae167257bcf8ac27e28ca35e6a0c": "0xb0ba78106259b7ceefd288edc5f65b65f8b7bca0816e61dae5136616aac7d3da",
|
|
13
|
+
"d2c2c1f2bba8e0964f9589e060c2ee97f5e19057267ac3284caef3bd50bd2cb5": "0xe791d83be9ba9c271a6f956235381bb4c10208bd8aced8628cf1341b35f63fa0",
|
|
14
|
+
"eacabc6304d11fc10a757f63286ef44415d8e91b7a1a525ae94a7ec9398b73f3": "0xf96e3c4b7d74efbde9df5b669188421196e6164adf6fbaaa92903c42569807c8",
|
|
15
|
+
"f9c0172ba10dfa4d19088d94f5bf61d3b54d5bd7483a322a982e1373ee8ea31b": "0x72431a238277695d3f31e4425225a4462674ee6cceeea9d66447b210755fffba",
|
|
16
|
+
"fe650f0367d4a7ef9815a593ea15d36593f0643aaaf0149bb04be67ab851decd": "0x33fbce1cad5ca155f2f5051430b23a694bc6e5de6df43e0f8aefe29f4a84336d"
|
|
17
|
+
}
|
package/dist/data.d.ts
ADDED
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
import type { SuiClient } from '@mysten/sui/client';
|
|
2
|
+
import type { Transaction } from '@mysten/sui/transactions';
|
|
3
|
+
import type { Network } from './consts';
|
|
4
|
+
import { OracleAPI } from './oracle';
|
|
5
|
+
export interface IMarketInfo {
|
|
6
|
+
lpSupply: string;
|
|
7
|
+
positionId: string;
|
|
8
|
+
vaultId: string;
|
|
9
|
+
symbolId: string;
|
|
10
|
+
referralId: string;
|
|
11
|
+
orderId: string;
|
|
12
|
+
rebaseFeeModel: string;
|
|
13
|
+
lpSupplyWithDecimals: number;
|
|
14
|
+
}
|
|
15
|
+
export interface IRebaseFeeModel {
|
|
16
|
+
base: number;
|
|
17
|
+
multiplier: number;
|
|
18
|
+
}
|
|
19
|
+
export interface IReservingFeeModel {
|
|
20
|
+
multiplier: number;
|
|
21
|
+
}
|
|
22
|
+
export interface IFundingFeeModel {
|
|
23
|
+
multiplier: number;
|
|
24
|
+
max: number;
|
|
25
|
+
}
|
|
26
|
+
export interface IVaultInfo {
|
|
27
|
+
liquidity: number;
|
|
28
|
+
reservedAmount: number;
|
|
29
|
+
unrealisedReservingFeeAmount: number;
|
|
30
|
+
accReservingRate: number;
|
|
31
|
+
enabled: boolean;
|
|
32
|
+
weight: number;
|
|
33
|
+
lastUpdate: number;
|
|
34
|
+
reservingFeeModel: IReservingFeeModel;
|
|
35
|
+
priceConfig: {
|
|
36
|
+
maxInterval: number;
|
|
37
|
+
maxConfidence: number;
|
|
38
|
+
precision: number;
|
|
39
|
+
feeder: string;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export interface ISymbolInfo {
|
|
43
|
+
openingSize: number;
|
|
44
|
+
openingAmount: number;
|
|
45
|
+
accFundingRate: number;
|
|
46
|
+
realisedPnl: number;
|
|
47
|
+
unrealisedFundingFeeValue: number;
|
|
48
|
+
openEnabled: boolean;
|
|
49
|
+
liquidateEnabled: boolean;
|
|
50
|
+
decreaseEnabled: boolean;
|
|
51
|
+
lastUpdate: number;
|
|
52
|
+
fundingFeeModel: IFundingFeeModel;
|
|
53
|
+
long: boolean;
|
|
54
|
+
priceConfig: {
|
|
55
|
+
maxInterval: number;
|
|
56
|
+
maxConfidence: number;
|
|
57
|
+
precision: number;
|
|
58
|
+
feeder: string;
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
export interface IPositionInfo {
|
|
62
|
+
id: string;
|
|
63
|
+
long: boolean;
|
|
64
|
+
owner: string;
|
|
65
|
+
version: number;
|
|
66
|
+
collateralToken: string;
|
|
67
|
+
indexToken: string;
|
|
68
|
+
collateralAmount: number;
|
|
69
|
+
positionAmount: number;
|
|
70
|
+
reservedAmount: number;
|
|
71
|
+
positionSize: number;
|
|
72
|
+
lastFundingRate: number;
|
|
73
|
+
lastReservingRate: number;
|
|
74
|
+
reservingFeeAmount: number;
|
|
75
|
+
fundingFeeValue: number;
|
|
76
|
+
closed: boolean;
|
|
77
|
+
openTimestamp: number;
|
|
78
|
+
}
|
|
79
|
+
export interface IPositionCapInfo {
|
|
80
|
+
positionCapId: string;
|
|
81
|
+
symbol0: string;
|
|
82
|
+
symbol1: string;
|
|
83
|
+
long: boolean;
|
|
84
|
+
}
|
|
85
|
+
export interface IOrderCapInfo {
|
|
86
|
+
orderCapId: string;
|
|
87
|
+
symbol0: string;
|
|
88
|
+
symbol1: string;
|
|
89
|
+
long: boolean;
|
|
90
|
+
positionId: string | null;
|
|
91
|
+
}
|
|
92
|
+
export interface IOrderInfo {
|
|
93
|
+
id: string;
|
|
94
|
+
capId: string;
|
|
95
|
+
executed: boolean;
|
|
96
|
+
owner: string;
|
|
97
|
+
collateralToken: string;
|
|
98
|
+
indexToken: string;
|
|
99
|
+
feeToken: string;
|
|
100
|
+
collateralPriceThreshold: number;
|
|
101
|
+
feeAmount: bigint;
|
|
102
|
+
long: boolean;
|
|
103
|
+
indexPrice: number;
|
|
104
|
+
openOrder?: {
|
|
105
|
+
reserveAmount: bigint;
|
|
106
|
+
collateralAmount: bigint;
|
|
107
|
+
openAmount: bigint;
|
|
108
|
+
};
|
|
109
|
+
decreaseOrder?: {
|
|
110
|
+
decreaseAmount: bigint;
|
|
111
|
+
takeProfit: boolean;
|
|
112
|
+
};
|
|
113
|
+
orderType: 'OPEN_POSITION' | 'DECREASE_POSITION';
|
|
114
|
+
createdAt: number;
|
|
115
|
+
v11Order: boolean;
|
|
116
|
+
}
|
|
117
|
+
export interface IMarketValuationInfo {
|
|
118
|
+
marketCap: number;
|
|
119
|
+
zlpPrice: number;
|
|
120
|
+
zlpSupply: number;
|
|
121
|
+
apr?: number;
|
|
122
|
+
}
|
|
123
|
+
export interface IPositionConfig {
|
|
124
|
+
decreaseFeeBps: number;
|
|
125
|
+
liquidationBonus: number;
|
|
126
|
+
liquidationThreshold: number;
|
|
127
|
+
maxLeverage: number;
|
|
128
|
+
minHoldingDuration: number;
|
|
129
|
+
openFeeBps: number;
|
|
130
|
+
maxReservedMultiplier: number;
|
|
131
|
+
minCollateralValue: number;
|
|
132
|
+
}
|
|
133
|
+
export interface IHistory {
|
|
134
|
+
owner: string;
|
|
135
|
+
txid: string;
|
|
136
|
+
id: string;
|
|
137
|
+
created: number;
|
|
138
|
+
eventName: string;
|
|
139
|
+
indexToken: string;
|
|
140
|
+
direction: string;
|
|
141
|
+
collateralAmount: number;
|
|
142
|
+
collateralPrice: number;
|
|
143
|
+
indexPrice: number;
|
|
144
|
+
pnl: number;
|
|
145
|
+
positionId: string;
|
|
146
|
+
volume: number;
|
|
147
|
+
fee: number;
|
|
148
|
+
network: string;
|
|
149
|
+
}
|
|
150
|
+
export interface IStaked {
|
|
151
|
+
credentials: ICredential[];
|
|
152
|
+
amount: bigint;
|
|
153
|
+
claimable: bigint;
|
|
154
|
+
}
|
|
155
|
+
export interface ICredential {
|
|
156
|
+
id: string;
|
|
157
|
+
lockUntil: number;
|
|
158
|
+
accRewardPerShare: bigint;
|
|
159
|
+
amount: bigint;
|
|
160
|
+
claimable: bigint;
|
|
161
|
+
}
|
|
162
|
+
export interface IStakePool {
|
|
163
|
+
id: string;
|
|
164
|
+
enabled: boolean;
|
|
165
|
+
lastUpdatedTime: number;
|
|
166
|
+
stakedAmount: bigint;
|
|
167
|
+
reward: bigint;
|
|
168
|
+
startTime: number;
|
|
169
|
+
endTime: number;
|
|
170
|
+
accRewardPerShare: bigint;
|
|
171
|
+
lockDuration: number;
|
|
172
|
+
}
|
|
173
|
+
export declare class DataAPI extends OracleAPI {
|
|
174
|
+
#private;
|
|
175
|
+
provider: SuiClient;
|
|
176
|
+
apiEndpoint: string;
|
|
177
|
+
private vaultInfoCache;
|
|
178
|
+
private symbolInfoCache;
|
|
179
|
+
private marketInfoCache;
|
|
180
|
+
private positionConfigCache;
|
|
181
|
+
private rebaseFeeModelCache;
|
|
182
|
+
private lastUpdate;
|
|
183
|
+
constructor(network: Network, provider: SuiClient | null, apiEndpoint: string, connectionURL: string);
|
|
184
|
+
validateCache: () => void;
|
|
185
|
+
valuateVaults: (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
|
|
186
|
+
valuateSymbols: (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
|
|
187
|
+
valuate: (tx: Transaction) => {
|
|
188
|
+
vaultsValuation: import("@mysten/sui/transactions").TransactionResult;
|
|
189
|
+
symbolsValuation: import("@mysten/sui/transactions").TransactionResult;
|
|
190
|
+
};
|
|
191
|
+
getPastFee(days?: number): Promise<number>;
|
|
192
|
+
valuateMarket(): Promise<IMarketValuationInfo>;
|
|
193
|
+
getMarketInfo(): Promise<IMarketInfo>;
|
|
194
|
+
getVaultInfo(vaultToken: string): Promise<IVaultInfo>;
|
|
195
|
+
getSymbolInfo(indexToken: string, long: boolean): Promise<ISymbolInfo>;
|
|
196
|
+
getPositionConfig(indexToken: string, long: boolean): Promise<IPositionConfig>;
|
|
197
|
+
getPositionCapInfoList(owner: string): Promise<IPositionCapInfo[]>;
|
|
198
|
+
getPositionInfoList(positionCapInfoList: IPositionCapInfo[], owner: string): Promise<IPositionInfo[]>;
|
|
199
|
+
getOrderCapInfoList(owner: string): Promise<{
|
|
200
|
+
orderCapId: string;
|
|
201
|
+
symbol0: string;
|
|
202
|
+
symbol1: string;
|
|
203
|
+
long: boolean;
|
|
204
|
+
positionId: any;
|
|
205
|
+
}[]>;
|
|
206
|
+
getOrderInfoList(orderCapInfoList: IOrderCapInfo[], owner: string): Promise<IOrderInfo[]>;
|
|
207
|
+
getRebaseFeeModel(): Promise<IRebaseFeeModel>;
|
|
208
|
+
fundingFeeRate: (indexToken: string, long: boolean) => Promise<number>;
|
|
209
|
+
rebaseFeeRate: (collateralToken: string, increase: boolean, amount: number) => Promise<number>;
|
|
210
|
+
reservingFeeRate: (collateralToken: string, amount?: number) => Promise<number>;
|
|
211
|
+
getProxiedHistories: (trader: string) => Promise<IHistory[]>;
|
|
212
|
+
getStaked: (owner: string) => Promise<IStaked>;
|
|
213
|
+
getStakePool: () => Promise<IStakePool>;
|
|
214
|
+
getReferralData(referree: string): Promise<any>;
|
|
215
|
+
hasReferral(referree: string): Promise<boolean>;
|
|
216
|
+
getReferreeFromReferrer(referrer: string): Promise<any>;
|
|
217
|
+
getReferreeDetail(referree: string): Promise<any>;
|
|
218
|
+
getReferrerDetail(referrer: string): Promise<any>;
|
|
219
|
+
getReferralTxs(referrer: string): Promise<any>;
|
|
220
|
+
}
|