zo-sdk 0.1.4 → 0.1.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/dist/consts/deployments-usdz-mainnet.json +185 -2
- package/dist/implementations/USDZAPI.cjs +230 -18
- package/dist/implementations/USDZAPI.cjs.map +1 -1
- package/dist/implementations/USDZAPI.d.cts +21 -21
- package/dist/implementations/USDZAPI.d.cts.map +1 -1
- package/dist/implementations/USDZAPI.d.mts +21 -21
- package/dist/implementations/USDZAPI.d.mts.map +1 -1
- package/dist/implementations/USDZAPI.mjs +230 -18
- package/dist/implementations/USDZAPI.mjs.map +1 -1
- package/dist/implementations/USDZDataAPI.cjs +1 -0
- package/dist/implementations/USDZDataAPI.cjs.map +1 -1
- package/dist/implementations/USDZDataAPI.d.cts.map +1 -1
- package/dist/implementations/USDZDataAPI.d.mts.map +1 -1
- package/dist/implementations/USDZDataAPI.mjs +1 -0
- package/dist/implementations/USDZDataAPI.mjs.map +1 -1
- package/dist/implementations/ZLPDataAPI.cjs +1 -0
- package/dist/implementations/ZLPDataAPI.cjs.map +1 -1
- package/dist/implementations/ZLPDataAPI.d.cts.map +1 -1
- package/dist/implementations/ZLPDataAPI.d.mts.map +1 -1
- package/dist/implementations/ZLPDataAPI.mjs +1 -0
- package/dist/implementations/ZLPDataAPI.mjs.map +1 -1
- package/package.json +8 -8
- package/src/consts/deployments-usdz-mainnet.json +185 -2
- package/src/implementations/USDZAPI.ts +330 -24
- package/src/implementations/USDZDataAPI.ts +1 -0
- package/src/implementations/ZLPDataAPI.ts +1 -0
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import type { KioskClient, KioskOwnerCap } from '@mysten/kiosk'
|
|
7
|
+
import { KioskTransaction } from '@mysten/kiosk'
|
|
7
8
|
import type { SuiClient } from '@mysten/sui/client'
|
|
8
9
|
import { Transaction } from '@mysten/sui/transactions'
|
|
9
10
|
import { SUI_CLOCK_OBJECT_ID } from '@mysten/sui/utils'
|
|
@@ -52,30 +53,6 @@ export class USDZAPI extends BaseAPI implements IUSDZAPI {
|
|
|
52
53
|
throw new Error(`Method not implemented in ${this.constructor.name}.`)
|
|
53
54
|
}
|
|
54
55
|
|
|
55
|
-
public clearClosedPosition(_pcpId: string, _collateralToken: string, _indexToken: string, _long: boolean, _tx: Transaction): void {
|
|
56
|
-
throw new Error(`Method not implemented in ${this.constructor.name}.`)
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
public clearOpenPositionOrder(_orderCapId: string, _collateralToken: string, _indexToken: string, _long: boolean, _tx: Transaction, _isV11Order?: boolean): void {
|
|
60
|
-
throw new Error(`Method not implemented in ${this.constructor.name}.`)
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
public clearDecreasePositionOrder(_orderCapId: string, _collateralToken: string, _indexToken: string, _long: boolean, _tx: Transaction, _isV11Order?: boolean): void {
|
|
64
|
-
throw new Error(`Method not implemented in ${this.constructor.name}.`)
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
public 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> {
|
|
68
|
-
throw new Error(`Method not implemented in ${this.constructor.name}.`)
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
public decreasePositionWithSCard(_pcpId: string, _collateralToken: string, _indexToken: string, _amount: bigint, _long: boolean, _indexPrice: number, _collateralPrice: number, _kioskClient: KioskClient, _kioskCap: KioskOwnerCap, _scard: string, _isTriggerOrder?: boolean, _isTakeProfitOrder?: boolean, _isIocOrder?: boolean, _pricesSlippage?: number, _collateralSlippage?: number, _relayerFee?: bigint, _coinObjects?: string[]): Promise<Transaction> {
|
|
72
|
-
throw new Error(`Method not implemented in ${this.constructor.name}.`)
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
public decreaseMultiPositionsWithSCard(_positions: Array<{ 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[] }>, _kioskClient: KioskClient, _kioskCap: KioskOwnerCap, _scard: string, _tx?: Transaction): Promise<Transaction> {
|
|
76
|
-
throw new Error(`Method not implemented in ${this.constructor.name}.`)
|
|
77
|
-
}
|
|
78
|
-
|
|
79
56
|
public claimTokenFromSCard(_token: string, _coinObjects: string[], _kioskClient: KioskClient, _kioskCap: KioskOwnerCap, _scard: string): Transaction {
|
|
80
57
|
throw new Error(`Method not implemented in ${this.constructor.name}.`)
|
|
81
58
|
}
|
|
@@ -176,6 +153,335 @@ export class USDZAPI extends BaseAPI implements IUSDZAPI {
|
|
|
176
153
|
throw new Error(`Method not implemented in ${this.constructor.name}.`)
|
|
177
154
|
}
|
|
178
155
|
|
|
156
|
+
public clearClosedPosition(pcpId: string, collateralToken: string, indexToken: string, long: boolean, tx: Transaction): void {
|
|
157
|
+
tx.moveCall({
|
|
158
|
+
target: `${this.consts.zoCore.package}::market::clear_closed_position`,
|
|
159
|
+
typeArguments: [
|
|
160
|
+
`${this.consts.zoCore.package}::usdz::USDZ`,
|
|
161
|
+
this.consts.coins[collateralToken].module,
|
|
162
|
+
this.consts.coins[indexToken].module,
|
|
163
|
+
`${this.consts.zoCore.package}::market::${long ? 'LONG' : 'SHORT'}`,
|
|
164
|
+
],
|
|
165
|
+
arguments: [tx.object(this.consts.zoCore.market), tx.object(pcpId)],
|
|
166
|
+
})
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
public clearOpenPositionOrder(orderCapId: string, collateralToken: string, indexToken: string, long: boolean, tx: Transaction, isV11Order?: boolean): void {
|
|
170
|
+
const funcName = isV11Order ? 'clear_open_position_order' : 'clear_open_position_order'
|
|
171
|
+
tx.moveCall({
|
|
172
|
+
target: `${this.consts.zoCore.package}::market::${funcName}`,
|
|
173
|
+
typeArguments: [
|
|
174
|
+
`${this.consts.zoCore.package}::usdz::USDZ`,
|
|
175
|
+
this.consts.coins[collateralToken].module,
|
|
176
|
+
this.consts.coins[indexToken].module,
|
|
177
|
+
`${this.consts.zoCore.package}::market::${long ? 'LONG' : 'SHORT'}`,
|
|
178
|
+
this.consts.coins[collateralToken].module,
|
|
179
|
+
],
|
|
180
|
+
arguments: [tx.object(this.consts.zoCore.market), tx.object(orderCapId)],
|
|
181
|
+
})
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
public clearDecreasePositionOrder(orderCapId: string, collateralToken: string, indexToken: string, long: boolean, tx: Transaction, isV11Order?: boolean): void {
|
|
185
|
+
const funcName = isV11Order ? 'clear_decrease_position_order' : 'clear_decrease_position_order'
|
|
186
|
+
tx.moveCall({
|
|
187
|
+
target: `${this.consts.zoCore.package}::market::${funcName}`,
|
|
188
|
+
typeArguments: [
|
|
189
|
+
`${this.consts.zoCore.package}::usdz::USDZ`,
|
|
190
|
+
this.consts.coins[collateralToken].module,
|
|
191
|
+
this.consts.coins[indexToken].module,
|
|
192
|
+
`${this.consts.zoCore.package}::market::${long ? 'LONG' : 'SHORT'}`,
|
|
193
|
+
this.consts.coins[collateralToken].module,
|
|
194
|
+
],
|
|
195
|
+
arguments: [tx.object(this.consts.zoCore.market), tx.object(orderCapId)],
|
|
196
|
+
})
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
public async openPositionWithSCard(
|
|
200
|
+
collateralToken: string,
|
|
201
|
+
indexToken: string,
|
|
202
|
+
size: bigint,
|
|
203
|
+
collateralAmount: bigint,
|
|
204
|
+
coinObjects: string[],
|
|
205
|
+
long: boolean,
|
|
206
|
+
reserveAmount: bigint,
|
|
207
|
+
indexPrice: number,
|
|
208
|
+
collateralPrice: number,
|
|
209
|
+
kioskClient: KioskClient,
|
|
210
|
+
kioskCap: KioskOwnerCap,
|
|
211
|
+
scard: string,
|
|
212
|
+
isLimitOrder?: boolean,
|
|
213
|
+
isIocOrder?: boolean,
|
|
214
|
+
pricesSlippage = 0.003,
|
|
215
|
+
collateralSlippage = 0.5,
|
|
216
|
+
relayerFee = BigInt(0.5),
|
|
217
|
+
referralAddress?: string,
|
|
218
|
+
sender?: string,
|
|
219
|
+
): Promise<Transaction> {
|
|
220
|
+
let tx = new Transaction()
|
|
221
|
+
if (referralAddress && !(await this.dataAPI.hasReferral(sender || ''))) {
|
|
222
|
+
tx = await this.addReferral(referralAddress, tx)
|
|
223
|
+
}
|
|
224
|
+
tx = await this.initOracleTxb([collateralToken, indexToken], tx)
|
|
225
|
+
const coinObject = this.processCoins(tx, collateralToken, coinObjects)
|
|
226
|
+
const [depositObject, feeObject] = tx.splitCoins(coinObject, [
|
|
227
|
+
tx.pure.u64(collateralAmount),
|
|
228
|
+
tx.pure.u64(relayerFee),
|
|
229
|
+
])
|
|
230
|
+
|
|
231
|
+
const symbol = joinSymbol(long ? 'long' : 'short', indexToken)
|
|
232
|
+
const adjustPrice = this.processSlippage(indexPrice, long, isLimitOrder ? 0 : pricesSlippage)
|
|
233
|
+
const adjustCollateralPrice = this.processSlippage(collateralPrice, false, collateralSlippage)
|
|
234
|
+
|
|
235
|
+
let allowTrade = ALLOW_TRADE_MUST_TRADE
|
|
236
|
+
if (isLimitOrder) {
|
|
237
|
+
allowTrade = isIocOrder ? ALLOW_TRADE_NO_TRADE : ALLOW_TRADE_CAN_TRADE
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
const kioskTx = new KioskTransaction({
|
|
241
|
+
transaction: tx,
|
|
242
|
+
kioskClient,
|
|
243
|
+
cap: kioskCap,
|
|
244
|
+
})
|
|
245
|
+
|
|
246
|
+
const [sudoCard, promise] = kioskTx.borrow({
|
|
247
|
+
itemType: `0xe7e651e4974fe367aa2837712d68081efb299c470242a15e2b9c26ea326159ec::card::SudoCard`,
|
|
248
|
+
itemId: scard,
|
|
249
|
+
})
|
|
250
|
+
|
|
251
|
+
tx.moveCall({
|
|
252
|
+
target: `${this.consts.zoCore.package}::market::open_position_with_scard`,
|
|
253
|
+
typeArguments: [
|
|
254
|
+
`${this.consts.zoCore.package}::usdz::USDZ`,
|
|
255
|
+
this.consts.coins[collateralToken].module,
|
|
256
|
+
this.consts.coins[indexToken].module,
|
|
257
|
+
`${this.consts.zoCore.package}::market::${long ? 'LONG' : 'SHORT'}`,
|
|
258
|
+
this.consts.coins[collateralToken].module,
|
|
259
|
+
],
|
|
260
|
+
arguments: [
|
|
261
|
+
tx.object(SUI_CLOCK_OBJECT_ID),
|
|
262
|
+
tx.object(this.consts.zoCore.market),
|
|
263
|
+
tx.object(this.consts.zoCore.vaults[collateralToken].reservingFeeModel),
|
|
264
|
+
tx.object(this.consts.zoCore.symbols[symbol].fundingFeeModel),
|
|
265
|
+
tx.object(this.consts.zoCore.symbols[symbol].positionConfig),
|
|
266
|
+
tx.object(this.consts.pythFeeder.feeder[collateralToken]),
|
|
267
|
+
tx.object(this.consts.pythFeeder.feeder[indexToken]),
|
|
268
|
+
depositObject,
|
|
269
|
+
feeObject,
|
|
270
|
+
tx.pure.u8(allowTrade),
|
|
271
|
+
tx.pure.u64(size),
|
|
272
|
+
tx.pure.u64(reserveAmount),
|
|
273
|
+
tx.pure.u256(adjustCollateralPrice),
|
|
274
|
+
tx.pure.u256(adjustPrice),
|
|
275
|
+
sudoCard,
|
|
276
|
+
],
|
|
277
|
+
})
|
|
278
|
+
|
|
279
|
+
kioskTx
|
|
280
|
+
.return({
|
|
281
|
+
itemType: `0xe7e651e4974fe367aa2837712d68081efb299c470242a15e2b9c26ea326159ec::card::SudoCard`,
|
|
282
|
+
item: sudoCard,
|
|
283
|
+
promise,
|
|
284
|
+
})
|
|
285
|
+
.finalize()
|
|
286
|
+
return tx
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
public async decreasePositionWithSCard(
|
|
290
|
+
pcpId: string,
|
|
291
|
+
collateralToken: string,
|
|
292
|
+
indexToken: string,
|
|
293
|
+
amount: bigint,
|
|
294
|
+
long: boolean,
|
|
295
|
+
indexPrice: number,
|
|
296
|
+
collateralPrice: number,
|
|
297
|
+
kioskClient: KioskClient,
|
|
298
|
+
kioskCap: KioskOwnerCap,
|
|
299
|
+
scard: string,
|
|
300
|
+
isTriggerOrder = false,
|
|
301
|
+
isTakeProfitOrder = true,
|
|
302
|
+
isIocOrder = false,
|
|
303
|
+
pricesSlippage = 0.003,
|
|
304
|
+
collateralSlippage = 0.5,
|
|
305
|
+
relayerFee = BigInt(0.5),
|
|
306
|
+
coinObjects?: string[],
|
|
307
|
+
): Promise<Transaction> {
|
|
308
|
+
if (!coinObjects) {
|
|
309
|
+
throw new Error(`${this.constructor.name}: coinObjects is required`)
|
|
310
|
+
}
|
|
311
|
+
const tx = await this.initOracleTxb([collateralToken, indexToken])
|
|
312
|
+
|
|
313
|
+
const kioskTx = new KioskTransaction({
|
|
314
|
+
transaction: tx,
|
|
315
|
+
kioskClient,
|
|
316
|
+
cap: kioskCap,
|
|
317
|
+
})
|
|
318
|
+
|
|
319
|
+
const [sudoCard, promise] = kioskTx.borrow({
|
|
320
|
+
itemType: `0xe7e651e4974fe367aa2837712d68081efb299c470242a15e2b9c26ea326159ec::card::SudoCard`,
|
|
321
|
+
itemId: scard,
|
|
322
|
+
})
|
|
323
|
+
|
|
324
|
+
const symbol = joinSymbol(long ? 'long' : 'short', indexToken)
|
|
325
|
+
const coinObject = this.processCoins(tx, collateralToken, coinObjects || [])
|
|
326
|
+
const feeObject = tx.splitCoins(coinObject, [tx.pure.u64(relayerFee)])
|
|
327
|
+
|
|
328
|
+
const adjustPrice = this.processSlippage(indexPrice, !long, isTriggerOrder ? 0 : pricesSlippage)
|
|
329
|
+
const adjustCollateralPrice = this.processSlippage(collateralPrice, false, collateralSlippage)
|
|
330
|
+
|
|
331
|
+
let allowTrade = ALLOW_TRADE_MUST_TRADE
|
|
332
|
+
if (isTriggerOrder) {
|
|
333
|
+
allowTrade = isIocOrder || !isTakeProfitOrder ? ALLOW_TRADE_NO_TRADE : ALLOW_TRADE_CAN_TRADE
|
|
334
|
+
}
|
|
335
|
+
else {
|
|
336
|
+
isTakeProfitOrder = true
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
tx.moveCall({
|
|
340
|
+
target: `${this.consts.zoCore.package}::market::decrease_position_with_scard`,
|
|
341
|
+
typeArguments: [
|
|
342
|
+
`${this.consts.zoCore.package}::usdz::USDZ`,
|
|
343
|
+
this.consts.coins[collateralToken].module,
|
|
344
|
+
this.consts.coins[indexToken].module,
|
|
345
|
+
`${this.consts.zoCore.package}::market::${long ? 'LONG' : 'SHORT'}`,
|
|
346
|
+
this.consts.coins[collateralToken].module,
|
|
347
|
+
],
|
|
348
|
+
arguments: [
|
|
349
|
+
tx.object(SUI_CLOCK_OBJECT_ID),
|
|
350
|
+
tx.object(this.consts.zoCore.market),
|
|
351
|
+
tx.object(pcpId),
|
|
352
|
+
tx.object(this.consts.zoCore.vaults[collateralToken].reservingFeeModel),
|
|
353
|
+
tx.object(this.consts.zoCore.symbols[symbol].fundingFeeModel),
|
|
354
|
+
tx.object(this.consts.pythFeeder.feeder[collateralToken]),
|
|
355
|
+
tx.object(this.consts.pythFeeder.feeder[indexToken]),
|
|
356
|
+
feeObject,
|
|
357
|
+
tx.pure.u8(allowTrade),
|
|
358
|
+
tx.pure.bool(isTakeProfitOrder),
|
|
359
|
+
tx.pure.u64(amount),
|
|
360
|
+
tx.pure.u256(adjustCollateralPrice),
|
|
361
|
+
tx.pure.u256(adjustPrice),
|
|
362
|
+
sudoCard,
|
|
363
|
+
],
|
|
364
|
+
})
|
|
365
|
+
|
|
366
|
+
kioskTx
|
|
367
|
+
.return({
|
|
368
|
+
itemType: `0xe7e651e4974fe367aa2837712d68081efb299c470242a15e2b9c26ea326159ec::card::SudoCard`,
|
|
369
|
+
item: sudoCard,
|
|
370
|
+
promise,
|
|
371
|
+
})
|
|
372
|
+
.finalize()
|
|
373
|
+
return tx
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
public async decreaseMultiPositionsWithSCard(
|
|
377
|
+
positions: Array<{
|
|
378
|
+
pcpId: string
|
|
379
|
+
collateralToken: string
|
|
380
|
+
indexToken: string
|
|
381
|
+
amount: bigint
|
|
382
|
+
long: boolean
|
|
383
|
+
indexPrice: number
|
|
384
|
+
collateralPrice: number
|
|
385
|
+
isTriggerOrder?: boolean
|
|
386
|
+
isTakeProfitOrder?: boolean
|
|
387
|
+
isIocOrder?: boolean
|
|
388
|
+
pricesSlippage?: number
|
|
389
|
+
collateralSlippage?: number
|
|
390
|
+
relayerFee?: bigint
|
|
391
|
+
coinObjects?: string[]
|
|
392
|
+
}>,
|
|
393
|
+
kioskClient: KioskClient,
|
|
394
|
+
kioskCap: KioskOwnerCap,
|
|
395
|
+
scard: string,
|
|
396
|
+
tx?: Transaction,
|
|
397
|
+
): Promise<Transaction> {
|
|
398
|
+
if (!tx) {
|
|
399
|
+
tx = new Transaction()
|
|
400
|
+
}
|
|
401
|
+
tx = await this.initOracleTxb(positions.flatMap(position => [position.collateralToken, position.indexToken]), tx)
|
|
402
|
+
|
|
403
|
+
const kioskTx = new KioskTransaction({
|
|
404
|
+
transaction: tx,
|
|
405
|
+
kioskClient,
|
|
406
|
+
cap: kioskCap,
|
|
407
|
+
})
|
|
408
|
+
|
|
409
|
+
const [sudoCard, promise] = kioskTx.borrow({
|
|
410
|
+
itemType: `0xe7e651e4974fe367aa2837712d68081efb299c470242a15e2b9c26ea326159ec::card::SudoCard`,
|
|
411
|
+
itemId: scard,
|
|
412
|
+
})
|
|
413
|
+
|
|
414
|
+
for (const position of positions) {
|
|
415
|
+
const {
|
|
416
|
+
pcpId,
|
|
417
|
+
collateralToken,
|
|
418
|
+
coinObjects = [],
|
|
419
|
+
indexToken,
|
|
420
|
+
amount,
|
|
421
|
+
long,
|
|
422
|
+
indexPrice,
|
|
423
|
+
collateralPrice,
|
|
424
|
+
isTriggerOrder = false,
|
|
425
|
+
isTakeProfitOrder = true,
|
|
426
|
+
isIocOrder = false,
|
|
427
|
+
pricesSlippage = 0.003,
|
|
428
|
+
collateralSlippage = 0.5,
|
|
429
|
+
relayerFee = BigInt(0.5),
|
|
430
|
+
} = position
|
|
431
|
+
let innerIsTakeProfitOrder = isTakeProfitOrder
|
|
432
|
+
const symbol = joinSymbol(long ? 'long' : 'short', indexToken)
|
|
433
|
+
const coinObject = this.processCoins(tx, collateralToken, coinObjects)
|
|
434
|
+
const feeObject = tx.splitCoins(coinObject, [tx.pure.u64(relayerFee)])
|
|
435
|
+
|
|
436
|
+
const adjustPrice = this.processSlippage(indexPrice, !long, isTriggerOrder ? 0 : pricesSlippage)
|
|
437
|
+
const adjustCollateralPrice = this.processSlippage(collateralPrice, false, collateralSlippage)
|
|
438
|
+
|
|
439
|
+
let allowTrade = ALLOW_TRADE_MUST_TRADE
|
|
440
|
+
if (isTriggerOrder) {
|
|
441
|
+
allowTrade = isIocOrder || !innerIsTakeProfitOrder ? ALLOW_TRADE_NO_TRADE : ALLOW_TRADE_CAN_TRADE
|
|
442
|
+
}
|
|
443
|
+
else {
|
|
444
|
+
innerIsTakeProfitOrder = true
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
tx.moveCall({
|
|
448
|
+
target: `${this.consts.zoCore.package}::market::decrease_position_with_scard`,
|
|
449
|
+
typeArguments: [
|
|
450
|
+
`${this.consts.zoCore.package}::usdz::USDZ`,
|
|
451
|
+
this.consts.coins[collateralToken].module,
|
|
452
|
+
this.consts.coins[indexToken].module,
|
|
453
|
+
`${this.consts.zoCore.package}::market::${long ? 'LONG' : 'SHORT'}`,
|
|
454
|
+
this.consts.coins[collateralToken].module,
|
|
455
|
+
],
|
|
456
|
+
arguments: [
|
|
457
|
+
tx.object(SUI_CLOCK_OBJECT_ID),
|
|
458
|
+
tx.object(this.consts.zoCore.market),
|
|
459
|
+
tx.object(pcpId),
|
|
460
|
+
tx.object(this.consts.zoCore.vaults[collateralToken].reservingFeeModel),
|
|
461
|
+
tx.object(this.consts.zoCore.symbols[symbol].fundingFeeModel),
|
|
462
|
+
tx.object(this.consts.pythFeeder.feeder[collateralToken]),
|
|
463
|
+
tx.object(this.consts.pythFeeder.feeder[indexToken]),
|
|
464
|
+
feeObject,
|
|
465
|
+
tx.pure.u8(allowTrade),
|
|
466
|
+
tx.pure.bool(innerIsTakeProfitOrder),
|
|
467
|
+
tx.pure.u64(amount),
|
|
468
|
+
tx.pure.u256(adjustCollateralPrice),
|
|
469
|
+
tx.pure.u256(adjustPrice),
|
|
470
|
+
sudoCard,
|
|
471
|
+
],
|
|
472
|
+
})
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
kioskTx
|
|
476
|
+
.return({
|
|
477
|
+
itemType: `0xe7e651e4974fe367aa2837712d68081efb299c470242a15e2b9c26ea326159ec::card::SudoCard`,
|
|
478
|
+
item: sudoCard,
|
|
479
|
+
promise,
|
|
480
|
+
})
|
|
481
|
+
.finalize()
|
|
482
|
+
return tx
|
|
483
|
+
}
|
|
484
|
+
|
|
179
485
|
/**
|
|
180
486
|
* Deposits collateral into USDZ vault
|
|
181
487
|
*/
|
|
@@ -526,6 +526,7 @@ export class USDZDataAPI extends BaseDataAPI implements IUSDZDataAPI {
|
|
|
526
526
|
params.append('symbol', symbol)
|
|
527
527
|
}
|
|
528
528
|
|
|
529
|
+
params.append('lpType', 'USDZ')
|
|
529
530
|
const url = `${this.apiEndpoint}/traderEvents?${params}`
|
|
530
531
|
const res = await fetch(url, {
|
|
531
532
|
method: 'GET',
|
|
@@ -556,6 +556,7 @@ export class ZLPDataAPI extends BaseDataAPI implements IZLPDataAPI {
|
|
|
556
556
|
params.append('symbol', symbol)
|
|
557
557
|
}
|
|
558
558
|
|
|
559
|
+
params.append('lpType', 'ZLP')
|
|
559
560
|
const url = `${this.apiEndpoint}/traderEvents?${params}`
|
|
560
561
|
const res = await fetch(url, {
|
|
561
562
|
method: 'GET',
|