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 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,5 @@
1
+ module.exports = {
2
+ singleQuote: true,
3
+ arrowParens: 'avoid',
4
+ trailingComma: 'all',
5
+ };
@@ -0,0 +1,11 @@
1
+ module.exports = {
2
+ presets: [
3
+ [
4
+ "@babel/preset-env",
5
+ {
6
+ modules: "auto",
7
+ },
8
+ ],
9
+ ],
10
+ plugins: ["@babel/plugin-transform-modules-commonjs"],
11
+ };
package/dist/api.d.ts ADDED
@@ -0,0 +1,25 @@
1
+ import type { SuiClient } from '@mysten/sui/client';
2
+ import { Transaction } from '@mysten/sui/transactions';
3
+ import type { Network } from './consts';
4
+ import type { ICredential } from './data';
5
+ import { DataAPI } from './data';
6
+ export declare class API extends DataAPI {
7
+ #private;
8
+ private static instance;
9
+ constructor(network: Network, provider: SuiClient | null, apiEndpoint: string, connectionURL: string);
10
+ static getInstance(network: Network, provider: SuiClient | null, apiEndpoint: string, connectionURL: string): API;
11
+ deposit: (coin: string, coinObjects: string[], amount: number, minAmountOut?: number) => Promise<Transaction>;
12
+ withdraw: (coin: string, zlpCoinObjects: string[], amount: number, minAmountOut?: number) => Promise<Transaction>;
13
+ openPosition: (collateralToken: string, indexToken: string, size: bigint, collateralAmount: bigint, coinObjects: string[], long: boolean, reserveAmount: bigint, indexPrice: number, collateralPrice: number, slippage?: number, isLimitOrder?: boolean, isIocOrder?: boolean, relayerFee?: bigint, referralAddress?: string, sender?: string) => Promise<Transaction>;
14
+ pledgeInPosition: (pcpId: string, collateralToken: string, indexToken: string, amount: number, coinObjects: string[], long: boolean) => Promise<Transaction>;
15
+ redeemFromPosition: (pcpId: string, collateralToken: string, indexToken: string, amount: number, long: boolean) => Promise<Transaction>;
16
+ decreasePosition: (pcpId: string, collateralToken: string, indexToken: string, amount: bigint, long: boolean, indexPrice: number, collateralPrice: number, isTriggerOrder?: boolean, isTakeProfitOrder?: boolean, isIocOrder?: boolean, slippage?: number, relayerFee?: bigint) => Promise<Transaction>;
17
+ cancelOrder: (orderCapId: string, collateralToken: string, indexToken: string, long: boolean, type: string, isV11Order?: boolean) => Transaction;
18
+ swap: (fromToken: string, toToken: string, fromAmount: bigint, fromCoinObjects: string[]) => Promise<Transaction>;
19
+ clearClosedPosition: (pcpId: string, collateralToken: string, indexToken: string, long: boolean, tx: Transaction) => void;
20
+ clearOpenPositionOrder: (orderCapId: string, collateralToken: string, indexToken: string, long: boolean, tx: Transaction, isV11Order?: boolean) => void;
21
+ clearDecreasePositionOrder: (orderCapId: string, collateralToken: string, indexToken: string, long: boolean, tx: Transaction, isV11Order?: boolean) => void;
22
+ stake: (coinObjects: string[], amount: bigint, pool: string, tx?: Transaction | undefined) => Transaction;
23
+ unstake: (credentials: ICredential[], amount: bigint, pool: string, tx?: Transaction | undefined) => Transaction;
24
+ addReferral: (referrer: string, tx?: Transaction | undefined) => Transaction;
25
+ }
package/dist/api.js ADDED
@@ -0,0 +1,397 @@
1
+ "use strict";
2
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
+ };
7
+ var _API_instances, _API_processCoins, _API_processSlippage;
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.API = void 0;
10
+ const transactions_1 = require("@mysten/sui/transactions");
11
+ const utils_1 = require("@mysten/sui/utils");
12
+ const consts_1 = require("./consts");
13
+ const data_1 = require("./data");
14
+ const utils_2 = require("./utils");
15
+ class API extends data_1.DataAPI {
16
+ // eslint-disable-next-line @typescript-eslint/no-useless-constructor
17
+ constructor(network, provider, apiEndpoint, connectionURL) {
18
+ super(network, provider, apiEndpoint, connectionURL);
19
+ _API_instances.add(this);
20
+ _API_processCoins.set(this, (tx, coin, coinObjects) => {
21
+ if (coin === 'sui') {
22
+ return tx.gas;
23
+ }
24
+ if (coinObjects.length > 1) {
25
+ tx.mergeCoins(tx.object(coinObjects[0]), coinObjects.slice(1).map(coinObject => tx.object(coinObject)));
26
+ }
27
+ return tx.object(coinObjects[0]);
28
+ });
29
+ this.deposit = async (coin, coinObjects, amount, minAmountOut = 0) => {
30
+ const tx = await this.initOracleTxb(Object.keys(this.consts.pythFeeder.feeder));
31
+ const coinObject = __classPrivateFieldGet(this, _API_processCoins, "f").call(this, tx, coin, coinObjects);
32
+ const [depositObject] = tx.splitCoins(coinObject, [tx.pure.u64(amount)]);
33
+ const { vaultsValuation, symbolsValuation, } = this.valuate(tx);
34
+ tx.moveCall({
35
+ target: `${this.consts.zoCore.package}::market::deposit`,
36
+ typeArguments: [
37
+ `${this.consts.zoCore.package}::zlp::ZLP`,
38
+ this.consts.coins[coin].module,
39
+ ],
40
+ arguments: [
41
+ tx.object(this.consts.zoCore.market),
42
+ tx.object(this.consts.zoCore.rebaseFeeModel),
43
+ depositObject,
44
+ tx.pure.u64(minAmountOut),
45
+ vaultsValuation,
46
+ symbolsValuation,
47
+ ],
48
+ });
49
+ return tx;
50
+ };
51
+ this.withdraw = async (coin, zlpCoinObjects, amount, minAmountOut = 0) => {
52
+ const tx = await this.initOracleTxb(Object.keys(this.consts.pythFeeder.feeder));
53
+ const zlpCoinObject = __classPrivateFieldGet(this, _API_processCoins, "f").call(this, tx, 'zlp', zlpCoinObjects);
54
+ const [withdrawObject] = tx.splitCoins(zlpCoinObject, [tx.pure.u64(amount)]);
55
+ const { vaultsValuation, symbolsValuation, } = this.valuate(tx);
56
+ tx.moveCall({
57
+ target: `${this.consts.zoCore.package}::market::withdraw`,
58
+ typeArguments: [
59
+ `${this.consts.zoCore.package}::zlp::ZLP`,
60
+ this.consts.coins[coin].module,
61
+ ],
62
+ arguments: [
63
+ tx.object(this.consts.zoCore.market),
64
+ tx.object(this.consts.zoCore.rebaseFeeModel),
65
+ withdrawObject,
66
+ tx.pure.u64(minAmountOut),
67
+ vaultsValuation,
68
+ symbolsValuation,
69
+ ],
70
+ });
71
+ return tx;
72
+ };
73
+ this.openPosition = async (collateralToken, indexToken, size, collateralAmount, coinObjects, long, reserveAmount, indexPrice, collateralPrice, slippage = 0.003, isLimitOrder = false, isIocOrder = false, relayerFee = BigInt(1), referralAddress = '', sender = '') => {
74
+ let tx = new transactions_1.Transaction();
75
+ if (referralAddress && !await this.hasReferral(sender || '')) {
76
+ tx = await this.addReferral(referralAddress, tx);
77
+ }
78
+ tx = await this.initOracleTxb([collateralToken, indexToken], tx);
79
+ const coinObject = __classPrivateFieldGet(this, _API_processCoins, "f").call(this, tx, collateralToken, coinObjects);
80
+ const [depositObject] = tx.splitCoins(coinObject, [tx.pure.u64(collateralAmount)]);
81
+ const feeObject = tx.splitCoins(tx.gas, [tx.pure.u64(relayerFee)]);
82
+ const symbol = (0, utils_2.joinSymbol)(long ? 'long' : 'short', indexToken);
83
+ const adjustPrice = __classPrivateFieldGet(this, _API_instances, "m", _API_processSlippage).call(this, indexPrice, long, isLimitOrder ? 0 : slippage);
84
+ const adjustCollateralPrice = __classPrivateFieldGet(this, _API_instances, "m", _API_processSlippage).call(this, collateralPrice, false, 0.5);
85
+ let allowTrade = consts_1.ALLOW_TRADE_MUST_TRADE;
86
+ if (isLimitOrder) {
87
+ allowTrade = isIocOrder ? consts_1.ALLOW_TRADE_NO_TRADE : consts_1.ALLOW_TRADE_CAN_TRADE;
88
+ }
89
+ tx.moveCall({
90
+ target: `${this.consts.zoCore.package}::market::open_position`,
91
+ typeArguments: [
92
+ `${this.consts.zoCore.package}::zlp::ZLP`,
93
+ this.consts.coins[collateralToken].module,
94
+ this.consts.coins[indexToken].module,
95
+ `${this.consts.zoCore.package}::market::${long ? 'LONG' : 'SHORT'}`,
96
+ this.consts.coins.sui.module,
97
+ ],
98
+ arguments: [
99
+ tx.object(utils_1.SUI_CLOCK_OBJECT_ID),
100
+ tx.object(this.consts.zoCore.market),
101
+ tx.object(this.consts.zoCore.vaults[collateralToken].reservingFeeModel),
102
+ tx.object(this.consts.zoCore.symbols[symbol].fundingFeeModel),
103
+ tx.object(this.consts.zoCore.symbols[symbol].positionConfig),
104
+ tx.object(this.consts.pythFeeder.feeder[collateralToken]),
105
+ tx.object(this.consts.pythFeeder.feeder[indexToken]),
106
+ depositObject,
107
+ feeObject,
108
+ tx.pure.u8(allowTrade),
109
+ tx.pure.u64(size),
110
+ tx.pure.u64(reserveAmount),
111
+ tx.pure.u256(adjustCollateralPrice),
112
+ tx.pure.u256(adjustPrice),
113
+ ],
114
+ });
115
+ return tx;
116
+ };
117
+ this.pledgeInPosition = async (pcpId, collateralToken, indexToken, amount, coinObjects, long) => {
118
+ const tx = await this.initOracleTxb([collateralToken, indexToken]);
119
+ const coinObject = __classPrivateFieldGet(this, _API_processCoins, "f").call(this, tx, collateralToken, coinObjects);
120
+ const [depositObject] = tx.splitCoins(coinObject, [tx.pure.u64(amount)]);
121
+ tx.moveCall({
122
+ target: `${this.consts.zoCore.package}::market::pledge_in_position`,
123
+ typeArguments: [
124
+ `${this.consts.zoCore.package}::zlp::ZLP`,
125
+ this.consts.coins[collateralToken].module,
126
+ this.consts.coins[indexToken].module,
127
+ `${this.consts.zoCore.package}::market::${long ? 'LONG' : 'SHORT'}`,
128
+ ],
129
+ arguments: [
130
+ tx.object(this.consts.zoCore.market),
131
+ tx.object(pcpId),
132
+ depositObject,
133
+ ],
134
+ });
135
+ return tx;
136
+ };
137
+ this.redeemFromPosition = async (pcpId, collateralToken, indexToken, amount, long) => {
138
+ const tx = await this.initOracleTxb([collateralToken, indexToken]);
139
+ const symbol = (0, utils_2.joinSymbol)(long ? 'long' : 'short', indexToken);
140
+ tx.moveCall({
141
+ target: `${this.consts.zoCore.package}::market::redeem_from_position`,
142
+ typeArguments: [
143
+ `${this.consts.zoCore.package}::zlp::ZLP`,
144
+ this.consts.coins[collateralToken].module,
145
+ this.consts.coins[indexToken].module,
146
+ `${this.consts.zoCore.package}::market::${long ? 'LONG' : 'SHORT'}`,
147
+ ],
148
+ arguments: [
149
+ tx.object(utils_1.SUI_CLOCK_OBJECT_ID),
150
+ tx.object(this.consts.zoCore.market),
151
+ tx.object(pcpId),
152
+ tx.object(this.consts.zoCore.vaults[collateralToken].reservingFeeModel),
153
+ tx.object(this.consts.zoCore.symbols[symbol].fundingFeeModel),
154
+ tx.object(this.consts.pythFeeder.feeder[collateralToken]),
155
+ tx.object(this.consts.pythFeeder.feeder[indexToken]),
156
+ tx.pure.u64(amount),
157
+ ],
158
+ });
159
+ return tx;
160
+ };
161
+ this.decreasePosition = async (pcpId, collateralToken, indexToken, amount, long, indexPrice, collateralPrice, isTriggerOrder = false, isTakeProfitOrder = true, isIocOrder = false, slippage = 0.003, relayerFee = BigInt(1)) => {
162
+ const tx = await this.initOracleTxb([collateralToken, indexToken]);
163
+ const symbol = (0, utils_2.joinSymbol)(long ? 'long' : 'short', indexToken);
164
+ const feeObject = tx.splitCoins(tx.gas, [tx.pure.u64(relayerFee)]);
165
+ const adjustPrice = __classPrivateFieldGet(this, _API_instances, "m", _API_processSlippage).call(this, indexPrice, !long, isTriggerOrder ? 0 : slippage);
166
+ const adjustCollateralPrice = __classPrivateFieldGet(this, _API_instances, "m", _API_processSlippage).call(this, collateralPrice, false, 0.5);
167
+ let allowTrade = consts_1.ALLOW_TRADE_MUST_TRADE;
168
+ if (isTriggerOrder) {
169
+ allowTrade = isIocOrder || !isTakeProfitOrder ? consts_1.ALLOW_TRADE_NO_TRADE : consts_1.ALLOW_TRADE_CAN_TRADE;
170
+ }
171
+ else {
172
+ isTakeProfitOrder = true;
173
+ }
174
+ /* console.log('isTriggerOrder:', isTriggerOrder)
175
+ console.log('isIocOrder:', isIocOrder)
176
+ console.log('isTakeProfitOrder:', isTakeProfitOrder)
177
+ console.log('adjustPrice:', adjustPrice)
178
+ console.log('allowTrade:', allowTrade)
179
+ console.log('isTriggerOrder:', isTriggerOrder)
180
+ console.log('isTakeProfitOrder:', isTakeProfitOrder) */
181
+ tx.moveCall({
182
+ target: `${this.consts.zoCore.package}::market::decrease_position`,
183
+ typeArguments: [
184
+ `${this.consts.zoCore.package}::zlp::ZLP`,
185
+ this.consts.coins[collateralToken].module,
186
+ this.consts.coins[indexToken].module,
187
+ `${this.consts.zoCore.package}::market::${long ? 'LONG' : 'SHORT'}`,
188
+ this.consts.coins.sui.module,
189
+ ],
190
+ arguments: [
191
+ tx.object(utils_1.SUI_CLOCK_OBJECT_ID),
192
+ tx.object(this.consts.zoCore.market),
193
+ tx.object(pcpId),
194
+ tx.object(this.consts.zoCore.vaults[collateralToken].reservingFeeModel),
195
+ tx.object(this.consts.zoCore.symbols[symbol].fundingFeeModel),
196
+ tx.object(this.consts.pythFeeder.feeder[collateralToken]),
197
+ tx.object(this.consts.pythFeeder.feeder[indexToken]),
198
+ feeObject,
199
+ tx.pure.u8(allowTrade),
200
+ tx.pure.bool(isTakeProfitOrder),
201
+ tx.pure.u64(amount),
202
+ tx.pure.u256(adjustCollateralPrice),
203
+ tx.pure.u256(adjustPrice),
204
+ ],
205
+ });
206
+ return tx;
207
+ };
208
+ this.cancelOrder = (orderCapId, collateralToken, indexToken, long, type, isV11Order = false) => {
209
+ const tx = new transactions_1.Transaction();
210
+ let functionName = '';
211
+ switch (type) {
212
+ case 'OPEN_POSITION': {
213
+ functionName = isV11Order ? 'clear_open_position_order' : 'clear_open_position_order';
214
+ break;
215
+ }
216
+ case 'DECREASE_POSITION': {
217
+ functionName = isV11Order ? 'clear_decrease_position_order' : 'clear_decrease_position_order';
218
+ break;
219
+ }
220
+ default: {
221
+ throw new Error('invalid order type');
222
+ }
223
+ }
224
+ tx.moveCall({
225
+ target: `${this.consts.zoCore.package}::market::${functionName}`,
226
+ typeArguments: [
227
+ `${this.consts.zoCore.package}::zlp::ZLP`,
228
+ this.consts.coins[collateralToken].module,
229
+ this.consts.coins[indexToken].module,
230
+ `${this.consts.zoCore.package}::market::${long ? 'LONG' : 'SHORT'}`,
231
+ this.consts.coins.sui.module,
232
+ ],
233
+ arguments: [
234
+ tx.object(this.consts.zoCore.market),
235
+ tx.object(orderCapId),
236
+ ],
237
+ });
238
+ return tx;
239
+ };
240
+ this.swap = async (fromToken, toToken, fromAmount, fromCoinObjects) => {
241
+ const tx = await this.initOracleTxb(Object.keys(this.consts.zoCore.vaults));
242
+ const fromCoinObject = __classPrivateFieldGet(this, _API_processCoins, "f").call(this, tx, fromToken, fromCoinObjects);
243
+ const [fromDepositObject] = tx.splitCoins(fromCoinObject, [tx.pure.u64(fromAmount)]);
244
+ const vaultsValuation = this.valuateVaults(tx);
245
+ tx.moveCall({
246
+ target: `${this.consts.zoCore.package}::market::swap`,
247
+ typeArguments: [
248
+ `${this.consts.zoCore.package}::zlp::ZLP`,
249
+ this.consts.coins[fromToken].module,
250
+ this.consts.coins[toToken].module,
251
+ ],
252
+ arguments: [
253
+ tx.object(this.consts.zoCore.market),
254
+ tx.object(this.consts.zoCore.rebaseFeeModel),
255
+ fromDepositObject,
256
+ // FIXME: minAmountOut
257
+ tx.pure.u64(0),
258
+ vaultsValuation,
259
+ ],
260
+ });
261
+ return tx;
262
+ };
263
+ this.clearClosedPosition = (pcpId, collateralToken, indexToken, long, tx) => {
264
+ tx.moveCall({
265
+ target: `${this.consts.zoCore.package}::market::clear_closed_position`,
266
+ typeArguments: [
267
+ `${this.consts.zoCore.package}::zlp::ZLP`,
268
+ this.consts.coins[collateralToken].module,
269
+ this.consts.coins[indexToken].module,
270
+ `${this.consts.zoCore.package}::market::${long ? 'LONG' : 'SHORT'}`,
271
+ ],
272
+ arguments: [
273
+ tx.object(this.consts.zoCore.market),
274
+ tx.object(pcpId),
275
+ ],
276
+ });
277
+ };
278
+ this.clearOpenPositionOrder = (orderCapId, collateralToken, indexToken, long, tx, isV11Order = false) => {
279
+ const funcName = isV11Order ? 'clear_open_position_order' : 'clear_open_position_order';
280
+ tx.moveCall({
281
+ target: `${this.consts.zoCore.package}::market::${funcName}`,
282
+ typeArguments: [
283
+ `${this.consts.zoCore.package}::zlp::ZLP`,
284
+ this.consts.coins[collateralToken].module,
285
+ this.consts.coins[indexToken].module,
286
+ `${this.consts.zoCore.package}::market::${long ? 'LONG' : 'SHORT'}`,
287
+ this.consts.coins.sui.module,
288
+ ],
289
+ arguments: [
290
+ tx.object(this.consts.zoCore.market),
291
+ tx.object(orderCapId),
292
+ ],
293
+ });
294
+ };
295
+ this.clearDecreasePositionOrder = (orderCapId, collateralToken, indexToken, long, tx, isV11Order = false) => {
296
+ const funcName = isV11Order ? 'clear_decrease_position_order' : 'clear_decrease_position_order';
297
+ tx.moveCall({
298
+ target: `${this.consts.zoCore.package}::market::${funcName}`,
299
+ typeArguments: [
300
+ `${this.consts.zoCore.package}::zlp::ZLP`,
301
+ this.consts.coins[collateralToken].module,
302
+ this.consts.coins[indexToken].module,
303
+ `${this.consts.zoCore.package}::market::${long ? 'LONG' : 'SHORT'}`,
304
+ this.consts.coins.sui.module,
305
+ ],
306
+ arguments: [
307
+ tx.object(this.consts.zoCore.market),
308
+ tx.object(orderCapId),
309
+ ],
310
+ });
311
+ };
312
+ this.stake = (coinObjects, amount, pool, tx) => {
313
+ if (!tx) {
314
+ tx = new transactions_1.Transaction();
315
+ }
316
+ const coinObject = __classPrivateFieldGet(this, _API_processCoins, "f").call(this, tx, 'zlp', coinObjects);
317
+ const [depositObject] = tx.splitCoins(coinObject, [tx.pure.u64(amount)]);
318
+ tx.moveCall({
319
+ target: `${this.consts.zoStaking.package}::pool::deposit`,
320
+ typeArguments: [
321
+ `${this.consts.zoCore.package}::zlp::ZLP`,
322
+ this.consts.coins.sui.module,
323
+ ],
324
+ arguments: [
325
+ tx.object(pool),
326
+ tx.object(utils_1.SUI_CLOCK_OBJECT_ID),
327
+ depositObject,
328
+ ],
329
+ });
330
+ return tx;
331
+ };
332
+ this.unstake = (credentials, amount, pool, tx) => {
333
+ if (!tx) {
334
+ tx = new transactions_1.Transaction();
335
+ }
336
+ for (const credential of credentials) {
337
+ // eslint-disable-next-line unicorn/prefer-math-min-max
338
+ const withdrawAmount = amount < credential.amount ? amount : credential.amount;
339
+ amount -= withdrawAmount;
340
+ tx.moveCall({
341
+ target: `0xdb353cb79a88d5ee83b7c0ca0249662a1facab17ba62879080ea3d61b9d21112::pool::withdraw`,
342
+ typeArguments: [
343
+ `${this.consts.zoCore.package}::zlp::ZLP`,
344
+ this.consts.coins.sui.module,
345
+ ],
346
+ arguments: [
347
+ tx.object(pool),
348
+ tx.object(utils_1.SUI_CLOCK_OBJECT_ID),
349
+ tx.object(credential.id),
350
+ tx.pure.u64(withdrawAmount),
351
+ ],
352
+ });
353
+ if (credential.amount === BigInt(0)) {
354
+ tx.moveCall({
355
+ target: `${this.consts.zoStaking.package}::pool::clear_empty_credential`,
356
+ typeArguments: [
357
+ `${this.consts.zoCore.package}::zlp::ZLP`,
358
+ this.consts.coins.sui.module,
359
+ ],
360
+ arguments: [
361
+ tx.object(credential.id),
362
+ ],
363
+ });
364
+ }
365
+ }
366
+ return tx;
367
+ };
368
+ this.addReferral = (referrer, tx) => {
369
+ if (!tx) {
370
+ tx = new transactions_1.Transaction();
371
+ }
372
+ tx.moveCall({
373
+ target: `${this.consts.zoCore.package}::market::add_new_referral`,
374
+ typeArguments: [
375
+ `${this.consts.zoCore.package}::zlp::ZLP`,
376
+ ],
377
+ arguments: [
378
+ tx.object(this.consts.zoCore.market),
379
+ tx.object(referrer),
380
+ ],
381
+ });
382
+ return tx;
383
+ };
384
+ }
385
+ static getInstance(network, provider, apiEndpoint, connectionURL) {
386
+ if (!API.instance) {
387
+ API.instance = new API(network, provider, apiEndpoint, connectionURL);
388
+ }
389
+ return API.instance;
390
+ }
391
+ }
392
+ exports.API = API;
393
+ _API_processCoins = new WeakMap(), _API_instances = new WeakSet(), _API_processSlippage = function _API_processSlippage(indexPrice, long, slippage) {
394
+ const raw = long ? (indexPrice * (1 + slippage)) : (indexPrice * (1 - slippage));
395
+ return BigInt(Math.round(raw * 1e18));
396
+ };
397
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ {
2
+ "zo_core": {
3
+ "package": "",
4
+ "upgrade_cap": "",
5
+ "admin_cap": "",
6
+ "market": "",
7
+ "zlp_metadata": "",
8
+ "rebase_fee_model": "",
9
+ "referrals_parent": "",
10
+ "vaults_parent": "",
11
+ "symbols_parent": "",
12
+ "positions_parent": "",
13
+ "orders_parent": "",
14
+ "vaults": {},
15
+ "symbols": {}
16
+ },
17
+ "pyth_feeder": {
18
+ "package": "0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e",
19
+ "package_v2": "0x04e20ddf36af412a4096f9014f4a565af9e812db9a05cc40254846cf6ed0ad91",
20
+ "state": "0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",
21
+ "wormhole": {
22
+ "package": "0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a",
23
+ "state": "0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c"
24
+ },
25
+ "feeder": {}
26
+ },
27
+ "coins": {}
28
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "zo_core": {
3
+ "package": "0xa7d1d1f3a8346753674223473f6b71d6c8a6ca9475da0501368f57bb6d35cc0b",
4
+ "upgrade_cap": "0x7f6bb9305da4d35576be0ffd3b56c0085db46ba4b7ce8c0022f65b683c5ad5b4",
5
+ "admin_cap": "0x2d2ef02c1fd1ba0baf144e9f7a9d7365d50dff34e6f249be0e23ad01d7a1d700",
6
+ "market": "0xf6fb5acc78a6c85bfca39719088a7ac74ab199a58097bf8fe79df75ec5f535d1",
7
+ "zlp_metadata": "0xeb6eb4bd199cd4c0699855a5337fef75df05e0ee728ed507fed7041ecd8ed910",
8
+ "rebase_fee_model": "0x285d0c1f21858db319481ae35e1d6ad735c3176df7c3eef9b95b8deed24faf7d",
9
+ "referrals_parent": "0xcf63fb9086d2f3ed710d980f48da4443144225f1024f48debeba638072998345",
10
+ "vaults_parent": "0xa1ed162b3b9c545d2cc46224750bf76e22f55a12ddedc8eacd685930f1287da6",
11
+ "symbols_parent": "0xc73cc19cb9df994db7859638373279f678f7e837ba3f29f0e54029bcc9f7f376",
12
+ "positions_parent": "0x70c9c9cb6cfe9da0c730553a22281cb9c44c647d6a0d60a656b73e27eb08497d",
13
+ "orders_parent": "0xc62365fb575103f559c147fcac8379760faf68d91914e4e0ac296fbeb78c2905",
14
+ "vaults": {
15
+ "usdt": {
16
+ "weight": "1000000000000000000",
17
+ "reserving_fee_model": "0x095aa141f72af6045b0691773ca1da621bdd50de048f78226190627521c6bb99"
18
+ }
19
+ },
20
+ "symbols": {
21
+ "long_btc": {
22
+ "supported_collaterals": [
23
+ "usdt"
24
+ ],
25
+ "funding_fee_model": "0x13e2cf849c6bcbec5c2d95897359e956612dbfd9f6eac0f2f46f9954e725118a",
26
+ "position_config": "0x6a02e6e75dba447d7c2f59ac26ce94d33039a45c07b0180e50d0e67bb1ad3f43"
27
+ },
28
+ "short_btc": {
29
+ "supported_collaterals": [
30
+ "usdt"
31
+ ],
32
+ "funding_fee_model": "0x5a5ca35b5c6e997cff46b24137353d2df70365d801cab47f45eab113193a138f",
33
+ "position_config": "0x65b1d0f4f4c4d60e3f4670331f145d70f90cf3558280bc207dc369f38c8b40bb"
34
+ },
35
+ "long_eth": {
36
+ "supported_collaterals": [
37
+ "usdt"
38
+ ],
39
+ "funding_fee_model": "0xffcf6a37a465feff40e2f003dfb9c75875d9c66da520be8ab71a787af4d15fe9",
40
+ "position_config": "0x8fd32f908c4810d51cb088a5b147d5a5e0e463db252dbffc2fed8578077de35c"
41
+ },
42
+ "short_eth": {
43
+ "supported_collaterals": [
44
+ "usdt"
45
+ ],
46
+ "funding_fee_model": "0xe0a3468419ef07a4ec1a564b32971bdd301fb8a5a900b98280074d13914f0ec0",
47
+ "position_config": "0x1f499a262fa1d30c8177b2f887f2f5423ab4c33d9a5954606739743336673dac"
48
+ }
49
+ }
50
+ },
51
+ "pyth_feeder": {
52
+ "package": "0xabf837e98c26087cba0883c0a7a28326b1fa3c5e1e2c5abdb486f9e8f594c837",
53
+ "state": "0x243759059f4c3111179da5878c12f68d612c21a8d54d85edc86164bb18be1c7c",
54
+ "wormhole": {
55
+ "package": "0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94",
56
+ "state": "0x31358d198147da50db32eda2562951d53973a0c0ad5ed738e9b17d88b213d790"
57
+ },
58
+ "feeder": {
59
+ "btc": "0x72431a238277695d3f31e4425225a4462674ee6cceeea9d66447b210755fffba",
60
+ "sui": "0x1ebb295c789cc42b3b2a1606482cd1c7124076a0f5676718501fda8c7fd075a0",
61
+ "eth": "0x4fde30cb8a5dc3cfee1c1c358fc66dc308408827efb217247c7ba54d76ccbee9",
62
+ "sol": "0x33fbce1cad5ca155f2f5051430b23a694bc6e5de6df43e0f8aefe29f4a84336d",
63
+ "usdt": "0x956fdcbf83a26c962319f7742f5728a0a7ce59c7f0cbe13c112b259e7ee953cd"
64
+ }
65
+ },
66
+ "coins": {
67
+ "sui": {
68
+ "decimals": 9,
69
+ "module": "0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI",
70
+ "metadata": "0x9258181f5ceac8dbffb7030890243caed69a9599d2886d957a9cb7656af3bdb3"
71
+ },
72
+ "btc": {
73
+ "decimals": 6,
74
+ "module": "0x997965ea613857d34f13511fbe27f94728ab079615cd083ed24aef70516ab2e4::btc::BTC",
75
+ "metadata": "0xca50f9e2bae829ee73dc5079d3882298070b7b36451ec35f9455947163b4854e"
76
+ },
77
+ "eth": {
78
+ "decimals": 9,
79
+ "module": "0x0d3dd3ff9950dfbe34c52dbb552c36b618a3263f20f84309c9dfef7e140b6301::eth::ETH",
80
+ "metadata": "0x009c984d2d0c3afac3a598fd1ce77bb93740e8948e9665c7a7fe24046e129313"
81
+ },
82
+ "sol": {
83
+ "decimals": 9,
84
+ "module": "0x7eb2d1737cf4901218956dbd798f461a2606792da2df87b3c670e364ced35ce7::sol::SOL",
85
+ "metadata": "0xf77d6b54b007e45ea17ad9fa41821649e9ee16a9b14d3aabc2bb07b7874a90e9"
86
+ },
87
+ "usdt": {
88
+ "decimals": 6,
89
+ "module": "0x8684c115c57c725a832abe63b5cfa7268b77126a8a7a52883f602e5513c9de2d::usdt::USDT",
90
+ "metadata": "0xac3fcd1e6d7bd32d33afb1a0864b05b0adefeaddb2933ead5d5df1af21b1b741"
91
+ }
92
+ }
93
+ }