zo-sdk 0.1.16 → 0.1.18

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.
@@ -2,6 +2,7 @@
2
2
  * USDZ-specific interfaces and types
3
3
  * Extends base interfaces with USDZ-specific implementations
4
4
  */
5
+ import type { Transaction } from "@mysten/sui/transactions";
5
6
  import type { IBaseAPI, IBaseCredential, IBaseDataAPI, IBaseFundingFeeModel, IBaseHistory, IBaseMarketInfo, IBaseMarketValuationInfo, IBaseOrderCapInfo, IBaseOrderInfo, IBasePositionCapInfo, IBasePositionConfig, IBasePositionInfo, IBaseRebaseFeeModel, IBaseReservingFeeModel, IBaseStakePool, IBaseSymbolInfo, IBaseVaultInfo } from "./base.cjs";
6
7
  export interface IUSDZMarketValuationInfo extends IBaseMarketValuationInfo {
7
8
  }
@@ -57,5 +58,7 @@ export interface IUSDZDataAPI extends IBaseDataAPI {
57
58
  getSymbolConfig: (indexToken: string, long: boolean) => Promise<IUSDZSymbolConfig | null>;
58
59
  }
59
60
  export interface IUSDZAPI extends IBaseAPI {
61
+ depositPtb: (coin: string, coinObjects: string[], amount: number, minAmountOut?: number, referralAddress?: string, sender?: string, tx?: Transaction, sponsoredTx?: boolean, suiCoinObjectsForPythUpdate?: string[]) => Promise<any>;
62
+ stakeCoinObject: (coinObject: any, pool: string, tx?: Transaction) => any;
60
63
  }
61
64
  //# sourceMappingURL=usdz.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"usdz.d.cts","sourceRoot":"","sources":["../../src/interfaces/usdz.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,wBAAwB,EACxB,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,cAAc,EACf,mBAAc;AAGf,MAAM,WAAW,wBAAyB,SAAQ,wBAAwB;CAAI;AAE9E,MAAM,WAAW,cAAe,SAAQ,cAAc;CAAI;AAE1D,MAAM,WAAW,sBAAuB,SAAQ,sBAAsB;CAAI;AAE1E,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;CAAI;AAEtE,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;CAAI;AAEpE,MAAM,WAAW,eAAgB,SAAQ,eAAe;CAAI;AAE5D,MAAM,WAAW,eAAgB,SAAQ,eAAe;CAEvD;AAED,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;CAE3D;AAED,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;CAAI;AAEpE,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;CAAI;AAEtE,MAAM,WAAW,cAAe,SAAQ,cAAc;CAAI;AAE1D,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;CAAI;AAEhE,MAAM,WAAW,YAAa,SAAQ,YAAY;CAEjD;AAED,MAAM,WAAW,cAAe,SAAQ,cAAc;IAEpD,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,eAAgB,SAAQ,eAAe;CAEvD;AAGD,MAAM,WAAW,iCAAiC;IAChD,sCAAsC,EAAE,MAAM,CAAA;IAC9C,2BAA2B,EAAE,MAAM,CAAA;IACnC,+BAA+B,EAAE,OAAO,CAAA;IACxC,sCAAsC,EAAE,MAAM,CAAA;IAC9C,2BAA2B,EAAE,MAAM,CAAA;IACnC,+BAA+B,EAAE,OAAO,CAAA;IACxC,sCAAsC,EAAE,MAAM,CAAA;IAC9C,2BAA2B,EAAE,MAAM,CAAA;IACnC,+BAA+B,EAAE,OAAO,CAAA;CACzC;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,gBAAgB,EAAE,MAAM,CAAA;IACxB,wBAAwB,EAAE,OAAO,CAAA;IACjC,6BAA6B,EAAE,MAAM,CAAA;IACrC,qCAAqC,EAAE,OAAO,CAAA;IAC9C,uBAAuB,EAAE,iCAAiC,CAAA;CAC3D;AAGD,MAAM,WAAW,YAAa,SAAQ,YAAY;IAChD,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;CAC1F;AAGD,MAAM,WAAW,QAAS,SAAQ,QAAQ;CAAI"}
1
+ {"version":3,"file":"usdz.d.cts","sourceRoot":"","sources":["../../src/interfaces/usdz.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,iCAAgC;AAE3D,OAAO,KAAK,EACV,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,wBAAwB,EACxB,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,cAAc,EACf,mBAAc;AAGf,MAAM,WAAW,wBAAyB,SAAQ,wBAAwB;CAAI;AAE9E,MAAM,WAAW,cAAe,SAAQ,cAAc;CAAI;AAE1D,MAAM,WAAW,sBAAuB,SAAQ,sBAAsB;CAAI;AAE1E,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;CAAI;AAEtE,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;CAAI;AAEpE,MAAM,WAAW,eAAgB,SAAQ,eAAe;CAAI;AAE5D,MAAM,WAAW,eAAgB,SAAQ,eAAe;CAEvD;AAED,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;CAE3D;AAED,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;CAAI;AAEpE,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;CAAI;AAEtE,MAAM,WAAW,cAAe,SAAQ,cAAc;CAAI;AAE1D,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;CAAI;AAEhE,MAAM,WAAW,YAAa,SAAQ,YAAY;CAEjD;AAED,MAAM,WAAW,cAAe,SAAQ,cAAc;IAEpD,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,eAAgB,SAAQ,eAAe;CAEvD;AAGD,MAAM,WAAW,iCAAiC;IAChD,sCAAsC,EAAE,MAAM,CAAA;IAC9C,2BAA2B,EAAE,MAAM,CAAA;IACnC,+BAA+B,EAAE,OAAO,CAAA;IACxC,sCAAsC,EAAE,MAAM,CAAA;IAC9C,2BAA2B,EAAE,MAAM,CAAA;IACnC,+BAA+B,EAAE,OAAO,CAAA;IACxC,sCAAsC,EAAE,MAAM,CAAA;IAC9C,2BAA2B,EAAE,MAAM,CAAA;IACnC,+BAA+B,EAAE,OAAO,CAAA;CACzC;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,gBAAgB,EAAE,MAAM,CAAA;IACxB,wBAAwB,EAAE,OAAO,CAAA;IACjC,6BAA6B,EAAE,MAAM,CAAA;IACrC,qCAAqC,EAAE,OAAO,CAAA;IAC9C,uBAAuB,EAAE,iCAAiC,CAAA;CAC3D;AAGD,MAAM,WAAW,YAAa,SAAQ,YAAY;IAChD,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;CAC1F;AAGD,MAAM,WAAW,QAAS,SAAQ,QAAQ;IACxC,UAAU,EAAE,CACV,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EAAE,EACrB,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,EACrB,eAAe,CAAC,EAAE,MAAM,EACxB,MAAM,CAAC,EAAE,MAAM,EACf,EAAE,CAAC,EAAE,WAAW,EAChB,WAAW,CAAC,EAAE,OAAO,EACrB,2BAA2B,CAAC,EAAE,MAAM,EAAE,KACnC,OAAO,CAAC,GAAG,CAAC,CAAA;IACjB,eAAe,EAAE,CACf,UAAU,EAAE,GAAG,EACf,IAAI,EAAE,MAAM,EACZ,EAAE,CAAC,EAAE,WAAW,KACb,GAAG,CAAA;CACT"}
@@ -2,6 +2,7 @@
2
2
  * USDZ-specific interfaces and types
3
3
  * Extends base interfaces with USDZ-specific implementations
4
4
  */
5
+ import type { Transaction } from "@mysten/sui/transactions";
5
6
  import type { IBaseAPI, IBaseCredential, IBaseDataAPI, IBaseFundingFeeModel, IBaseHistory, IBaseMarketInfo, IBaseMarketValuationInfo, IBaseOrderCapInfo, IBaseOrderInfo, IBasePositionCapInfo, IBasePositionConfig, IBasePositionInfo, IBaseRebaseFeeModel, IBaseReservingFeeModel, IBaseStakePool, IBaseSymbolInfo, IBaseVaultInfo } from "./base.mjs";
6
7
  export interface IUSDZMarketValuationInfo extends IBaseMarketValuationInfo {
7
8
  }
@@ -57,5 +58,7 @@ export interface IUSDZDataAPI extends IBaseDataAPI {
57
58
  getSymbolConfig: (indexToken: string, long: boolean) => Promise<IUSDZSymbolConfig | null>;
58
59
  }
59
60
  export interface IUSDZAPI extends IBaseAPI {
61
+ depositPtb: (coin: string, coinObjects: string[], amount: number, minAmountOut?: number, referralAddress?: string, sender?: string, tx?: Transaction, sponsoredTx?: boolean, suiCoinObjectsForPythUpdate?: string[]) => Promise<any>;
62
+ stakeCoinObject: (coinObject: any, pool: string, tx?: Transaction) => any;
60
63
  }
61
64
  //# sourceMappingURL=usdz.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"usdz.d.mts","sourceRoot":"","sources":["../../src/interfaces/usdz.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,wBAAwB,EACxB,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,cAAc,EACf,mBAAc;AAGf,MAAM,WAAW,wBAAyB,SAAQ,wBAAwB;CAAI;AAE9E,MAAM,WAAW,cAAe,SAAQ,cAAc;CAAI;AAE1D,MAAM,WAAW,sBAAuB,SAAQ,sBAAsB;CAAI;AAE1E,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;CAAI;AAEtE,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;CAAI;AAEpE,MAAM,WAAW,eAAgB,SAAQ,eAAe;CAAI;AAE5D,MAAM,WAAW,eAAgB,SAAQ,eAAe;CAEvD;AAED,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;CAE3D;AAED,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;CAAI;AAEpE,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;CAAI;AAEtE,MAAM,WAAW,cAAe,SAAQ,cAAc;CAAI;AAE1D,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;CAAI;AAEhE,MAAM,WAAW,YAAa,SAAQ,YAAY;CAEjD;AAED,MAAM,WAAW,cAAe,SAAQ,cAAc;IAEpD,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,eAAgB,SAAQ,eAAe;CAEvD;AAGD,MAAM,WAAW,iCAAiC;IAChD,sCAAsC,EAAE,MAAM,CAAA;IAC9C,2BAA2B,EAAE,MAAM,CAAA;IACnC,+BAA+B,EAAE,OAAO,CAAA;IACxC,sCAAsC,EAAE,MAAM,CAAA;IAC9C,2BAA2B,EAAE,MAAM,CAAA;IACnC,+BAA+B,EAAE,OAAO,CAAA;IACxC,sCAAsC,EAAE,MAAM,CAAA;IAC9C,2BAA2B,EAAE,MAAM,CAAA;IACnC,+BAA+B,EAAE,OAAO,CAAA;CACzC;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,gBAAgB,EAAE,MAAM,CAAA;IACxB,wBAAwB,EAAE,OAAO,CAAA;IACjC,6BAA6B,EAAE,MAAM,CAAA;IACrC,qCAAqC,EAAE,OAAO,CAAA;IAC9C,uBAAuB,EAAE,iCAAiC,CAAA;CAC3D;AAGD,MAAM,WAAW,YAAa,SAAQ,YAAY;IAChD,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;CAC1F;AAGD,MAAM,WAAW,QAAS,SAAQ,QAAQ;CAAI"}
1
+ {"version":3,"file":"usdz.d.mts","sourceRoot":"","sources":["../../src/interfaces/usdz.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,iCAAgC;AAE3D,OAAO,KAAK,EACV,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,wBAAwB,EACxB,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,cAAc,EACf,mBAAc;AAGf,MAAM,WAAW,wBAAyB,SAAQ,wBAAwB;CAAI;AAE9E,MAAM,WAAW,cAAe,SAAQ,cAAc;CAAI;AAE1D,MAAM,WAAW,sBAAuB,SAAQ,sBAAsB;CAAI;AAE1E,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;CAAI;AAEtE,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;CAAI;AAEpE,MAAM,WAAW,eAAgB,SAAQ,eAAe;CAAI;AAE5D,MAAM,WAAW,eAAgB,SAAQ,eAAe;CAEvD;AAED,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;CAE3D;AAED,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;CAAI;AAEpE,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;CAAI;AAEtE,MAAM,WAAW,cAAe,SAAQ,cAAc;CAAI;AAE1D,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;CAAI;AAEhE,MAAM,WAAW,YAAa,SAAQ,YAAY;CAEjD;AAED,MAAM,WAAW,cAAe,SAAQ,cAAc;IAEpD,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,eAAgB,SAAQ,eAAe;CAEvD;AAGD,MAAM,WAAW,iCAAiC;IAChD,sCAAsC,EAAE,MAAM,CAAA;IAC9C,2BAA2B,EAAE,MAAM,CAAA;IACnC,+BAA+B,EAAE,OAAO,CAAA;IACxC,sCAAsC,EAAE,MAAM,CAAA;IAC9C,2BAA2B,EAAE,MAAM,CAAA;IACnC,+BAA+B,EAAE,OAAO,CAAA;IACxC,sCAAsC,EAAE,MAAM,CAAA;IAC9C,2BAA2B,EAAE,MAAM,CAAA;IACnC,+BAA+B,EAAE,OAAO,CAAA;CACzC;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,gBAAgB,EAAE,MAAM,CAAA;IACxB,wBAAwB,EAAE,OAAO,CAAA;IACjC,6BAA6B,EAAE,MAAM,CAAA;IACrC,qCAAqC,EAAE,OAAO,CAAA;IAC9C,uBAAuB,EAAE,iCAAiC,CAAA;CAC3D;AAGD,MAAM,WAAW,YAAa,SAAQ,YAAY;IAChD,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;CAC1F;AAGD,MAAM,WAAW,QAAS,SAAQ,QAAQ;IACxC,UAAU,EAAE,CACV,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EAAE,EACrB,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,EACrB,eAAe,CAAC,EAAE,MAAM,EACxB,MAAM,CAAC,EAAE,MAAM,EACf,EAAE,CAAC,EAAE,WAAW,EAChB,WAAW,CAAC,EAAE,OAAO,EACrB,2BAA2B,CAAC,EAAE,MAAM,EAAE,KACnC,OAAO,CAAC,GAAG,CAAC,CAAA;IACjB,eAAe,EAAE,CACf,UAAU,EAAE,GAAG,EACf,IAAI,EAAE,MAAM,EACZ,EAAE,CAAC,EAAE,WAAW,KACb,GAAG,CAAA;CACT"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "zo-sdk",
3
3
  "type": "module",
4
- "version": "0.1.16",
4
+ "version": "0.1.18",
5
5
  "author": "zo",
6
6
  "exports": {
7
7
  ".": {
@@ -636,7 +636,7 @@
636
636
  },
637
637
  "zo_lootbox": {
638
638
  "package": "0x6682aaed15da135e34449cce7f89bf9e79c0fce1087173391a041742d8081690",
639
- "upgraded_package": "0x4872ca742dccbf4ef5d39a052039396eafaaed17aadaa0de77d2973f48440b43",
639
+ "upgraded_package": "0xb65898d45d8500de8b5b5538f1aacd207c0b2b9ba66ff8fdee7774260095c562",
640
640
  "upgrade_cap": "0xd4b532d243b4297a585d939806372b70a403e25ae0661f926e5cf47a7e259485",
641
641
  "admin_cap": "0x3741e6ef40ac7995a71ea94d1e99b9e3c8219a07086fbb9f33c1a392257931a3",
642
642
  "lootbox_publisher": "0x37692f6fe75bfd872a8c13200190fbb1499409a4527d1f2a95f83c1726d0fb40",
@@ -607,6 +607,87 @@ export class USDZAPI extends BaseAPI implements IUSDZAPI {
607
607
  return tx
608
608
  }
609
609
 
610
+ /**
611
+ * Deposits collateral into USDZ vault
612
+ */
613
+ public async depositPtb(
614
+ coin: string,
615
+ coinObjects: string[],
616
+ amount: number,
617
+ minAmountOut = 0,
618
+ referralAddress?: string,
619
+ sender?: string,
620
+ tx?: Transaction,
621
+ sponsoredTx?: boolean,
622
+ suiCoinObjectsForPythUpdate?: string[],
623
+ ): Promise<any> {
624
+ if (!tx) {
625
+ tx = new Transaction()
626
+ }
627
+
628
+ // Add referral if needed
629
+ if (referralAddress && !(await this.dataAPI.hasReferral(sender || ''))) {
630
+ tx = await this.addReferral(referralAddress, tx)
631
+ }
632
+
633
+ // Initialize oracle transaction
634
+ const pythFeederKeys = Object.keys(this.consts.pythFeeder.feeder)
635
+
636
+ // Handle sponsored transaction case
637
+ if (sponsoredTx) {
638
+ const suiCoinObject = this.processCoins(tx, 'sui', suiCoinObjectsForPythUpdate || [], true)
639
+ tx = await this.initOracleTxb(pythFeederKeys, tx, true, suiCoinObject)
640
+
641
+ // Process deposit coins
642
+ const depositObject = coin === 'sui'
643
+ ? tx.splitCoins(suiCoinObject, [tx.pure.u64(amount)])[0]
644
+ : tx.splitCoins(this.processCoins(tx, coin, coinObjects, true), [tx.pure.u64(amount)])[0]
645
+
646
+ const { vaultsValuation, symbolsValuation } = this.dataAPI.valuate(tx)
647
+
648
+ const [mintedCoin] = tx.moveCall({
649
+ target: `${this.consts.zoCore.upgradedPackage}::market::deposit_ptb`,
650
+ typeArguments: [`${this.consts.zoCore.package}::usdz::USDZ`, this.consts.coins[coin].module],
651
+ arguments: [
652
+ tx.object(this.consts.zoCore.market),
653
+ tx.object(this.consts.zoCore.rebaseFeeModel),
654
+ depositObject,
655
+ tx.pure.u64(minAmountOut),
656
+ vaultsValuation,
657
+ symbolsValuation,
658
+ ],
659
+ })
660
+ return mintedCoin
661
+ }
662
+
663
+ // Handle non-sponsored transaction case
664
+ tx = await this.initOracleTxb(pythFeederKeys, tx)
665
+ const depositObject = tx.splitCoins(
666
+ this.processCoins(tx, coin, coinObjects, false),
667
+ [tx.pure.u64(amount)],
668
+ )[0]
669
+
670
+ const { vaultsValuation, symbolsValuation } = this.dataAPI.valuate(tx)
671
+
672
+ const [mintedCoin] = tx.moveCall({
673
+ target: `${this.consts.zoCore.upgradedPackage}::market::deposit_ptb`,
674
+ typeArguments: [
675
+ `${this.consts.zoCore.package}::usdz::USDZ`,
676
+ this.consts.coins[coin].module,
677
+ ],
678
+ arguments: [
679
+ tx.object(this.consts.zoCore.market),
680
+ tx.object(this.consts.zoCore.rebaseFeeModel),
681
+ depositObject,
682
+ tx.pure.u64(minAmountOut),
683
+ vaultsValuation,
684
+ symbolsValuation,
685
+ ],
686
+ })
687
+
688
+ return mintedCoin
689
+ }
690
+
610
691
  /**
611
692
  * Withdraws collateral from USDZ vault
612
693
  */
@@ -659,12 +740,16 @@ export class USDZAPI extends BaseAPI implements IUSDZAPI {
659
740
  lpCoinObjects: string[],
660
741
  amount: bigint,
661
742
  pool: string,
743
+ tx?: Transaction,
662
744
  ): Transaction {
663
745
  if (!this.consts.zoStaking) {
664
746
  throw new Error('ZO staking configuration not found')
665
747
  }
666
748
 
667
- const tx = new Transaction()
749
+ if (!tx) {
750
+ tx = new Transaction()
751
+ }
752
+
668
753
  const coinObject = this.processCoins(tx, 'usdz', lpCoinObjects)
669
754
  const [depositObject] = tx.splitCoins(coinObject, [tx.pure.u64(amount)])
670
755
 
@@ -683,6 +768,37 @@ export class USDZAPI extends BaseAPI implements IUSDZAPI {
683
768
  return tx
684
769
  }
685
770
 
771
+ /**
772
+ * Stakes USDZ tokens using coin object only (PTB)
773
+ */
774
+ public stakeCoinObject(
775
+ coinObject: any,
776
+ pool: string,
777
+ tx?: Transaction,
778
+ ): Transaction {
779
+ if (!this.consts.zoStaking) {
780
+ throw new Error('ZO staking configuration not found')
781
+ }
782
+
783
+ if (!tx) {
784
+ tx = new Transaction()
785
+ }
786
+
787
+ tx.moveCall({
788
+ target: `${this.consts.zoStaking.package}::pool::deposit`,
789
+ typeArguments: [
790
+ `${this.consts.zoCore.package}::usdz::USDZ`,
791
+ `${this.consts.coins.sui.module}`,
792
+ ],
793
+ arguments: [
794
+ tx.object(pool),
795
+ tx.object(SUI_CLOCK_OBJECT_ID),
796
+ coinObject,
797
+ ],
798
+ })
799
+ return tx
800
+ }
801
+
686
802
  /**
687
803
  * Unstakes USDZ tokens from ZO staking pools
688
804
  */
@@ -690,14 +806,16 @@ export class USDZAPI extends BaseAPI implements IUSDZAPI {
690
806
  credentials: IUSDZCredential[],
691
807
  amount: bigint,
692
808
  pool: string,
809
+ tx?: Transaction,
693
810
  ): Transaction {
694
811
  if (!this.consts.zoStaking) {
695
812
  throw new Error('ZO staking configuration not found')
696
813
  }
697
814
 
698
815
  let unstakeAmount = amount
699
- const tx = new Transaction()
700
-
816
+ if (!tx) {
817
+ tx = new Transaction()
818
+ }
701
819
  for (const credential of credentials) {
702
820
  const withdrawAmount = (() => {
703
821
  const min = (a: bigint, b: bigint) => a < b ? a : b
@@ -1378,7 +1378,7 @@ export class ZLPAPI extends BaseAPI implements IZLPAPI {
1378
1378
  }
1379
1379
 
1380
1380
  tx.moveCall({
1381
- target: `${this.consts.zoLootbox.package}::lootbox::open_lootbox`,
1381
+ target: `${this.consts.zoLootbox.upgradedPackage}::lootbox::open_lootbox`,
1382
1382
  typeArguments: [module],
1383
1383
  arguments: [
1384
1384
  tx.object(`${this.consts.zoLootbox.lootboxTreasury}`),
@@ -3,6 +3,8 @@
3
3
  * Extends base interfaces with USDZ-specific implementations
4
4
  */
5
5
 
6
+ import type { Transaction } from '@mysten/sui/transactions'
7
+
6
8
  import type {
7
9
  IBaseAPI,
8
10
  IBaseCredential,
@@ -93,4 +95,21 @@ export interface IUSDZDataAPI extends IBaseDataAPI {
93
95
  }
94
96
 
95
97
  // USDZ-specific API interface
96
- export interface IUSDZAPI extends IBaseAPI { }
98
+ export interface IUSDZAPI extends IBaseAPI {
99
+ depositPtb: (
100
+ coin: string,
101
+ coinObjects: string[],
102
+ amount: number,
103
+ minAmountOut?: number,
104
+ referralAddress?: string,
105
+ sender?: string,
106
+ tx?: Transaction,
107
+ sponsoredTx?: boolean,
108
+ suiCoinObjectsForPythUpdate?: string[],
109
+ ) => Promise<any>
110
+ stakeCoinObject: (
111
+ coinObject: any,
112
+ pool: string,
113
+ tx?: Transaction,
114
+ ) => any
115
+ }