@cetusprotocol/aggregator-sdk 1.5.4 → 1.5.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/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { coinWithBalance, Transaction } from '@mysten/sui/transactions';
2
2
  import JSONbig from 'json-bigint';
3
3
  import { normalizeSuiObjectId, SUI_CLOCK_OBJECT_ID } from '@mysten/sui/utils';
4
- import { SuiJsonRpcClient } from '@mysten/sui/jsonRpc';
4
+ import { SuiGrpcClient } from '@mysten/sui/grpc';
5
5
  import { HermesClient } from '@pythnetwork/hermes-client';
6
6
  import { bcs } from '@mysten/sui/bcs';
7
7
 
@@ -37,9 +37,9 @@ var __toESM = (mod2, isNodeMode, target) => (target = mod2 != null ? __create(__
37
37
  mod2
38
38
  ));
39
39
 
40
- // node_modules/.pnpm/bn.js@5.2.3/node_modules/bn.js/lib/bn.js
40
+ // node_modules/bn.js/lib/bn.js
41
41
  var require_bn = __commonJS({
42
- "node_modules/.pnpm/bn.js@5.2.3/node_modules/bn.js/lib/bn.js"(exports$1, module) {
42
+ "node_modules/bn.js/lib/bn.js"(exports, module) {
43
43
  (function(module2, exports2) {
44
44
  function assert(val, msg) {
45
45
  if (!val) throw new Error(msg || "Assertion failed");
@@ -345,7 +345,7 @@ var require_bn = __commonJS({
345
345
  };
346
346
  if (typeof Symbol !== "undefined" && typeof Symbol.for === "function") {
347
347
  try {
348
- BN7.prototype[/* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom")] = inspect;
348
+ BN7.prototype[Symbol.for("nodejs.util.inspect.custom")] = inspect;
349
349
  } catch (e) {
350
350
  BN7.prototype.inspect = inspect;
351
351
  }
@@ -1762,10 +1762,6 @@ var require_bn = __commonJS({
1762
1762
  var mask = 67108863 ^ 67108863 >>> r << r;
1763
1763
  this.words[this.length - 1] &= mask;
1764
1764
  }
1765
- if (this.length === 0) {
1766
- this.words[0] = 0;
1767
- this.length = 1;
1768
- }
1769
1765
  return this._strip();
1770
1766
  };
1771
1767
  BN7.prototype.maskn = function maskn(bits) {
@@ -2781,7 +2777,7 @@ var require_bn = __commonJS({
2781
2777
  var res = this.imod(a._invmp(this.m).mul(this.r2));
2782
2778
  return res._forceRed(this);
2783
2779
  };
2784
- })(typeof module === "undefined" || module, exports$1);
2780
+ })(typeof module === "undefined" || module, exports);
2785
2781
  }
2786
2782
  });
2787
2783
 
@@ -3414,7 +3410,7 @@ var AGGREGATOR_V3_CONFIG = {
3414
3410
  };
3415
3411
 
3416
3412
  // src/api.ts
3417
- var SDK_VERSION = 1010504;
3413
+ var SDK_VERSION = 1010505;
3418
3414
  function parseRouterResponse(data, byAmountIn) {
3419
3415
  let packages = /* @__PURE__ */ new Map();
3420
3416
  if (data.packages) {
@@ -3850,7 +3846,7 @@ var AggregatorConfig = class {
3850
3846
  // src/math.ts
3851
3847
  var import_bn3 = __toESM(require_bn());
3852
3848
 
3853
- // node_modules/.pnpm/decimal.js@10.6.0/node_modules/decimal.js/decimal.mjs
3849
+ // node_modules/decimal.js/decimal.mjs
3854
3850
  var EXP_LIMIT = 9e15;
3855
3851
  var MAX_DIGITS = 1e9;
3856
3852
  var NUMERALS = "0123456789abcdef";
@@ -6019,7 +6015,7 @@ function tanh(x) {
6019
6015
  function trunc(x) {
6020
6016
  return finalise(x = new this(x), x.e + 1, 1);
6021
6017
  }
6022
- P[/* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom")] = P.toString;
6018
+ P[Symbol.for("nodejs.util.inspect.custom")] = P.toString;
6023
6019
  P[Symbol.toStringTag] = "Decimal";
6024
6020
  var Decimal = P.constructor = clone(DEFAULTS);
6025
6021
  LN10 = new Decimal(LN10);
@@ -7855,12 +7851,11 @@ var PythAdapter = class {
7855
7851
  if (this.baseUpdateFee !== void 0) {
7856
7852
  return this.baseUpdateFee;
7857
7853
  }
7858
- const res = await this.client.getObject({
7859
- id: this.pythStateId,
7860
- options: { showContent: true }
7854
+ const { object } = await this.client.getObject({
7855
+ objectId: this.pythStateId,
7856
+ include: { json: true }
7861
7857
  });
7862
- const content = res.data?.content;
7863
- const json = content && "fields" in content ? content.fields : null;
7858
+ const json = object.json;
7864
7859
  if (!json) {
7865
7860
  throw new Error("Unable to fetch pyth state object");
7866
7861
  }
@@ -7868,21 +7863,16 @@ var PythAdapter = class {
7868
7863
  return this.baseUpdateFee;
7869
7864
  }
7870
7865
  async getPackageId(objectId) {
7871
- const res = await this.client.getObject({
7872
- id: objectId,
7873
- options: { showContent: true }
7866
+ const { object } = await this.client.getObject({
7867
+ objectId,
7868
+ include: { json: true }
7874
7869
  });
7875
- const content = res.data?.content;
7876
- const json = content && "fields" in content ? content.fields : null;
7870
+ const json = object.json;
7877
7871
  if (!json) {
7878
7872
  throw new Error(`Cannot fetch package id for object ${objectId}`);
7879
7873
  }
7880
7874
  if ("upgrade_cap" in json) {
7881
- const upgradeCap = json.upgrade_cap;
7882
- const packageId = upgradeCap?.fields?.package;
7883
- if (typeof packageId === "string") {
7884
- return packageId;
7885
- }
7875
+ return json.upgrade_cap.package;
7886
7876
  }
7887
7877
  throw new Error("upgrade_cap not found");
7888
7878
  }
@@ -7906,19 +7896,20 @@ var PythAdapter = class {
7906
7896
  const { id: tableId, fieldType } = await this.getPriceTableInfo();
7907
7897
  const feedIdBytes = Buffer.from(normalizedFeedId, "hex");
7908
7898
  try {
7909
- const result = await this.client.getDynamicFieldObject({
7899
+ const PriceIdentifier = bcs.struct("PriceIdentifier", {
7900
+ bytes: bcs.vector(bcs.u8())
7901
+ });
7902
+ const bcsBytes = PriceIdentifier.serialize({ bytes: Array.from(feedIdBytes) }).toBytes();
7903
+ const result = await this.client.getDynamicField({
7910
7904
  parentId: tableId,
7911
7905
  name: {
7912
- type: `${fieldType}::price_identifier::PriceIdentifier`,
7913
- value: { bytes: Array.from(feedIdBytes) }
7906
+ type: fieldType,
7907
+ bcs: bcsBytes
7914
7908
  }
7915
7909
  });
7916
- const content = result.data?.content;
7917
- const json = content && "fields" in content ? content.fields : null;
7918
- const objectId = typeof json?.value === "string" ? json.value : void 0;
7919
- if (!objectId) {
7920
- return void 0;
7921
- }
7910
+ const valueBcs = result.dynamicField.value.bcs;
7911
+ const valueBytes = valueBcs instanceof Uint8Array ? valueBcs : new Uint8Array(Object.values(valueBcs));
7912
+ const objectId = "0x" + Array.from(valueBytes).map((b) => b.toString(16).padStart(2, "0")).join("");
7922
7913
  this.priceFeedObjectIdCache.set(normalizedFeedId, objectId);
7923
7914
  return objectId;
7924
7915
  } catch {
@@ -7929,27 +7920,40 @@ var PythAdapter = class {
7929
7920
  if (this.priceTableInfo !== void 0) {
7930
7921
  return this.priceTableInfo;
7931
7922
  }
7932
- const result = await this.client.getDynamicFieldObject({
7933
- parentId: this.pythStateId,
7934
- name: {
7935
- type: "vector<u8>",
7936
- value: "price_info"
7923
+ let cursor = null;
7924
+ let hasNextPage = true;
7925
+ while (hasNextPage) {
7926
+ const dynamicFields = await this.client.listDynamicFields({
7927
+ parentId: this.pythStateId,
7928
+ cursor
7929
+ });
7930
+ for (const field of dynamicFields.dynamicFields) {
7931
+ if (field.name.type === "vector<u8>") {
7932
+ const objectId = field.$kind === "DynamicObject" && field.childId ? field.childId : field.fieldId;
7933
+ const fieldObj = await this.client.getObject({
7934
+ objectId,
7935
+ include: { json: true }
7936
+ });
7937
+ const type = fieldObj.object.type;
7938
+ if (type.includes("table::Table")) {
7939
+ const innerTypes = type.replace(/.*table::Table</, "").replace(/>$/, "");
7940
+ const fieldType = innerTypes.split(",")[0].trim();
7941
+ this.priceTableInfo = { id: fieldObj.object.objectId, fieldType };
7942
+ return this.priceTableInfo;
7943
+ }
7944
+ }
7937
7945
  }
7938
- });
7939
- if (!result.data?.type) {
7940
- throw new Error(
7941
- "Price Table not found, contract may not be initialized"
7942
- );
7946
+ hasNextPage = dynamicFields.hasNextPage;
7947
+ cursor = dynamicFields.cursor;
7943
7948
  }
7944
- let type = result.data.type.replace("0x2::table::Table<", "");
7945
- type = type.replace("::price_identifier::PriceIdentifier, 0x2::object::ID>", "");
7946
- this.priceTableInfo = { id: result.data.objectId, fieldType: type };
7947
- return this.priceTableInfo;
7949
+ throw new Error(
7950
+ "Price Table not found, contract may not be initialized"
7951
+ );
7948
7952
  }
7949
7953
  extractVaaBytesFromAccumulatorMessage(accumulatorMessage) {
7950
- const trailingPayloadSize = accumulatorMessage.readUint8(6);
7954
+ const trailingPayloadSize = accumulatorMessage.readUInt8(6);
7951
7955
  const vaaSizeOffset = 7 + trailingPayloadSize + 1;
7952
- const vaaSize = accumulatorMessage.readUint16BE(vaaSizeOffset);
7956
+ const vaaSize = accumulatorMessage.readUInt16BE(vaaSizeOffset);
7953
7957
  const vaaOffset = vaaSizeOffset + 2;
7954
7958
  return accumulatorMessage.subarray(vaaOffset, vaaOffset + vaaSize);
7955
7959
  }
@@ -8128,21 +8132,21 @@ async function getOrCreateAccountCap(txb, client, owner) {
8128
8132
  }
8129
8133
  async function getAccountCap(client, owner) {
8130
8134
  const limit = 50;
8131
- let cursor = void 0;
8135
+ let cursor = null;
8132
8136
  while (true) {
8133
- const ownedObjects = await client.getOwnedObjects({
8137
+ const ownedObjects = await client.listOwnedObjects({
8134
8138
  owner,
8135
8139
  cursor,
8136
8140
  limit,
8137
- filter: { StructType: `${DEEPBOOK_PACKAGE_ID}::${DEEPBOOK_CUSTODIAN_V2_MODULE}::AccountCap` }
8141
+ type: `${DEEPBOOK_PACKAGE_ID}::${DEEPBOOK_CUSTODIAN_V2_MODULE}::AccountCap`
8138
8142
  });
8139
- if (ownedObjects.data.length !== 0) {
8140
- return ownedObjects.data[0].data?.objectId ?? null;
8143
+ if (ownedObjects.objects.length !== 0) {
8144
+ return ownedObjects.objects[0].objectId;
8141
8145
  }
8142
8146
  if (!ownedObjects.hasNextPage) {
8143
8147
  break;
8144
8148
  }
8145
- cursor = ownedObjects.nextCursor ?? void 0;
8149
+ cursor = ownedObjects.cursor;
8146
8150
  }
8147
8151
  return null;
8148
8152
  }
@@ -8170,10 +8174,10 @@ function getAggregatorV2Extend2PublishedAt(publishedAt, packages) {
8170
8174
  // src/utils/gas.ts
8171
8175
  var import_bn4 = __toESM(require_bn());
8172
8176
  function extractGasMetrics(result) {
8173
- const effects = result.effects;
8174
- const isSuccess = !result.error && effects.status.status === "success";
8175
- if (!isSuccess) {
8176
- const errorMsg = result.error ?? effects.status.error ?? "Unknown error";
8177
+ const txResult = result.Transaction ?? result.FailedTransaction;
8178
+ const effects = txResult?.effects;
8179
+ if (!effects || !effects.status.success) {
8180
+ const errorMsg = effects?.status.success === false ? effects.status.error.message : "Unknown error";
8177
8181
  return {
8178
8182
  computationCost: "0",
8179
8183
  storageCost: "0",
@@ -8752,6 +8756,83 @@ var MagmaPropAmmRouter = class {
8752
8756
  });
8753
8757
  }
8754
8758
  };
8759
+ var TideRouter = class {
8760
+ constructor(_env) {
8761
+ }
8762
+ swap(txb, flattenedPath, swapContext, _extends) {
8763
+ const path = flattenedPath.path;
8764
+ if (!path.extendedDetails) {
8765
+ throw new Error("Extended details not found for TIDE");
8766
+ }
8767
+ this.validateExtendedDetails(path.extendedDetails);
8768
+ const swapData = this.prepareSwapData(flattenedPath);
8769
+ this.executeSwapContract(txb, swapData, swapContext);
8770
+ }
8771
+ validateExtendedDetails(extendedDetails) {
8772
+ if (!extendedDetails.tide_pool_id) {
8773
+ throw new Error("TIDE pool id not found in extended details");
8774
+ }
8775
+ if (!extendedDetails.tide_regime_id) {
8776
+ throw new Error("TIDE regime id not found in extended details");
8777
+ }
8778
+ if (extendedDetails.tide_oracle_mode !== "pyth_core") {
8779
+ throw new Error(
8780
+ `TIDE oracle mode "${extendedDetails.tide_oracle_mode}" not supported (only "pyth_core")`
8781
+ );
8782
+ }
8783
+ if (!extendedDetails.tide_base_price_info_object) {
8784
+ throw new Error("TIDE base price info object not found in extended details");
8785
+ }
8786
+ if (!extendedDetails.tide_quote_price_info_object) {
8787
+ throw new Error(
8788
+ "TIDE quote price info object not found in extended details"
8789
+ );
8790
+ }
8791
+ }
8792
+ prepareSwapData(flattenedPath) {
8793
+ const path = flattenedPath.path;
8794
+ if (path.publishedAt == null) {
8795
+ throw new Error("TIDE not set publishedAt");
8796
+ }
8797
+ const extendedDetails = path.extendedDetails;
8798
+ const [baseType, quoteType] = path.direction ? [path.from, path.target] : [path.target, path.from];
8799
+ const amountIn = flattenedPath.isLastUseOfIntermediateToken ? AGGREGATOR_V3_CONFIG.MAX_AMOUNT_IN : path.amountIn;
8800
+ return {
8801
+ baseType,
8802
+ quoteType,
8803
+ a2b: path.direction,
8804
+ amountIn,
8805
+ publishedAt: path.publishedAt,
8806
+ poolId: extendedDetails.tide_pool_id,
8807
+ regimeId: extendedDetails.tide_regime_id,
8808
+ basePriceInfoObject: extendedDetails.tide_base_price_info_object,
8809
+ quotePriceInfoObject: extendedDetails.tide_quote_price_info_object
8810
+ };
8811
+ }
8812
+ executeSwapContract(txb, swapData, swapContext) {
8813
+ const fn = swapData.a2b ? "swap_a2b_pyth_core" : "swap_b2a_pyth_core";
8814
+ txb.moveCall({
8815
+ target: `${swapData.publishedAt}::tide::${fn}`,
8816
+ typeArguments: [swapData.baseType, swapData.quoteType],
8817
+ arguments: [
8818
+ swapContext,
8819
+ // swap_ctx
8820
+ txb.object(swapData.poolId),
8821
+ // pool_state
8822
+ txb.object(swapData.regimeId),
8823
+ // regime_state
8824
+ txb.object(SUI_CLOCK_OBJECT_ID),
8825
+ // clock
8826
+ txb.object(swapData.basePriceInfoObject),
8827
+ // base_price_info_object
8828
+ txb.object(swapData.quotePriceInfoObject),
8829
+ // quote_price_info_object
8830
+ txb.pure.u64(swapData.amountIn)
8831
+ // amount_in
8832
+ ]
8833
+ });
8834
+ }
8835
+ };
8755
8836
 
8756
8837
  // src/client.ts
8757
8838
  var CETUS = "CETUS";
@@ -8789,6 +8870,7 @@ var FERRADLMM = "FERRADLMM";
8789
8870
  var FERRACLMM = "FERRACLMM";
8790
8871
  var BOLT = "BOLT";
8791
8872
  var MAGMAPROPAMM = "MAGMAPROPAMM";
8873
+ var TIDE = "TIDE";
8792
8874
  var DEFAULT_ENDPOINT = "https://api-sui.cetus.zone/router_v3";
8793
8875
  var ALL_DEXES = [
8794
8876
  CETUS,
@@ -8824,7 +8906,8 @@ var ALL_DEXES = [
8824
8906
  FERRADLMM,
8825
8907
  FERRACLMM,
8826
8908
  BOLT,
8827
- MAGMAPROPAMM
8909
+ MAGMAPROPAMM,
8910
+ TIDE
8828
8911
  ];
8829
8912
  function getAllProviders() {
8830
8913
  return ALL_DEXES;
@@ -8891,8 +8974,8 @@ var _AggregatorClient = class _AggregatorClient {
8891
8974
  constructor(params) {
8892
8975
  this.endpoint = params.endpoint ? processEndpoint(params.endpoint) : DEFAULT_ENDPOINT;
8893
8976
  const network = params.env === 1 /* Testnet */ ? "testnet" : "mainnet";
8894
- const rpcUrl = params.env === 1 /* Testnet */ ? "https://fullnode.testnet.sui.io:443" : "https://fullnode.mainnet.sui.io:443";
8895
- this.client = params.client ?? new SuiJsonRpcClient({ network, url: rpcUrl });
8977
+ const grpcUrl = params.env === 1 /* Testnet */ ? "https://fullnode.testnet.sui.io:443" : "https://fullnode.mainnet.sui.io:443";
8978
+ this.client = params.client ?? new SuiGrpcClient({ network, baseUrl: grpcUrl });
8896
8979
  this.signer = params.signer || "";
8897
8980
  this.env = params.env || 0 /* Mainnet */;
8898
8981
  const config2 = _AggregatorClient.CONFIG[this.env];
@@ -8933,13 +9016,13 @@ var _AggregatorClient = class _AggregatorClient {
8933
9016
  }
8934
9017
  async getOneCoinUsedToMerge(coinType) {
8935
9018
  try {
8936
- const gotCoin = await this.client.getCoins({
9019
+ const gotCoin = await this.client.listCoins({
8937
9020
  owner: this.signer,
8938
9021
  coinType,
8939
9022
  limit: 1
8940
9023
  });
8941
- if (gotCoin.data.length === 1) {
8942
- return gotCoin.data[0].coinObjectId;
9024
+ if (gotCoin.objects.length === 1) {
9025
+ return gotCoin.objects[0].objectId;
8943
9026
  }
8944
9027
  return null;
8945
9028
  } catch (error) {
@@ -9036,6 +9119,8 @@ var _AggregatorClient = class _AggregatorClient {
9036
9119
  return new BoltRouter(this.env);
9037
9120
  case MAGMAPROPAMM:
9038
9121
  return new MagmaPropAmmRouter(this.env);
9122
+ case TIDE:
9123
+ return new TideRouter(this.env);
9039
9124
  default:
9040
9125
  throw new Error(
9041
9126
  `${CLIENT_CONFIG.ERRORS.UNSUPPORTED_DEX} ${provider}`
@@ -9413,15 +9498,7 @@ var _AggregatorClient = class _AggregatorClient {
9413
9498
  * @throws Error if input coin amount exceeds maxAmountIn
9414
9499
  */
9415
9500
  async routerSwapWithMaxAmountIn(params) {
9416
- const {
9417
- router,
9418
- inputCoin,
9419
- slippage,
9420
- txb,
9421
- partner,
9422
- cetusDlmmPartner,
9423
- maxAmountIn
9424
- } = params;
9501
+ const { router, inputCoin, slippage, txb, partner, maxAmountIn } = params;
9425
9502
  if (slippage > 1 || slippage < 0) {
9426
9503
  throw new Error(CLIENT_CONFIG.ERRORS.INVALID_SLIPPAGE);
9427
9504
  }
@@ -9456,8 +9533,7 @@ var _AggregatorClient = class _AggregatorClient {
9456
9533
  amountOut.toString(),
9457
9534
  amountLimit.toString(),
9458
9535
  priceInfoObjectIds,
9459
- partner ?? this.partner,
9460
- cetusDlmmPartner ?? this.cetusDlmmPartner
9536
+ partner ?? this.partner
9461
9537
  );
9462
9538
  } else {
9463
9539
  return this.expectOutputSwapV3WithMaxAmountIn(
@@ -9474,14 +9550,7 @@ var _AggregatorClient = class _AggregatorClient {
9474
9550
  // auto build input coin
9475
9551
  // auto merge, transfer or destory target coin.
9476
9552
  async fastRouterSwap(params) {
9477
- const {
9478
- router,
9479
- slippage,
9480
- txb,
9481
- partner,
9482
- cetusDlmmPartner,
9483
- payDeepFeeAmount
9484
- } = params;
9553
+ const { router, slippage, txb, partner, cetusDlmmPartner, payDeepFeeAmount } = params;
9485
9554
  const fromCoinType = router.paths[0].from;
9486
9555
  const targetCoinType = router.paths[router.paths.length - 1].target;
9487
9556
  const byAmountIn = router.byAmountIn;
@@ -9638,7 +9707,7 @@ var _AggregatorClient = class _AggregatorClient {
9638
9707
  }
9639
9708
  }
9640
9709
  async fixableRouterSwapV3(params) {
9641
- const { router, inputCoin, slippage, txb, partner, cetusDlmmPartner } = params;
9710
+ const { router, inputCoin, slippage, txb, partner } = params;
9642
9711
  checkOverlayFeeConfig(this.overlayFeeRate, this.overlayFeeReceiver);
9643
9712
  let overlayFee = 0;
9644
9713
  if (router.byAmountIn) {
@@ -9667,8 +9736,7 @@ var _AggregatorClient = class _AggregatorClient {
9667
9736
  expectedAmountOut.toString(),
9668
9737
  amountLimit.toString(),
9669
9738
  priceInfoObjectIds,
9670
- partner ?? this.partner,
9671
- cetusDlmmPartner ?? this.cetusDlmmPartner
9739
+ partner ?? this.partner
9672
9740
  );
9673
9741
  } else {
9674
9742
  return this.expectOutputSwapV3(
@@ -9705,16 +9773,18 @@ var _AggregatorClient = class _AggregatorClient {
9705
9773
  });
9706
9774
  }
9707
9775
  tx.setSenderIfNotSet(this.signer || "0x0");
9708
- const simulateRes = await this.client.devInspectTransactionBlock({
9709
- sender: this.signer || "0x0",
9710
- transactionBlock: tx
9776
+ const simulateRes = await this.client.simulateTransaction({
9777
+ transaction: tx,
9778
+ include: { events: true, effects: true }
9711
9779
  });
9712
- if (simulateRes.error) {
9713
- throw new Error("Simulation error: " + simulateRes.error);
9780
+ const txResult = simulateRes.Transaction ?? simulateRes.FailedTransaction;
9781
+ if (!txResult || simulateRes.$kind === "FailedTransaction") {
9782
+ const errorMsg = txResult?.status.success === false ? txResult.status.error.message : "Unknown error";
9783
+ throw new Error("Simulation error: " + errorMsg);
9714
9784
  }
9715
- const events = simulateRes.events ?? [];
9785
+ const events = txResult.events ?? [];
9716
9786
  const valueData = events.filter((item) => {
9717
- return item.type.includes("CalculatedSwapResultEvent");
9787
+ return item.eventType.includes("CalculatedSwapResultEvent");
9718
9788
  });
9719
9789
  if (valueData.length === 0 || valueData.length !== pools.length) {
9720
9790
  throw new Error("Simulate event result error");
@@ -9722,7 +9792,7 @@ var _AggregatorClient = class _AggregatorClient {
9722
9792
  let tempMaxAmount = byAmountIn ? new import_bn6.default(0) : new import_bn6.default(U64_MAX);
9723
9793
  let tempIndex = 0;
9724
9794
  for (let i = 0; i < valueData.length; i += 1) {
9725
- const eventJson2 = valueData[i].parsedJson;
9795
+ const eventJson2 = valueData[i].json;
9726
9796
  if (eventJson2?.data?.is_exceed) {
9727
9797
  continue;
9728
9798
  }
@@ -9740,11 +9810,11 @@ var _AggregatorClient = class _AggregatorClient {
9740
9810
  }
9741
9811
  }
9742
9812
  }
9743
- const eventJson = valueData[tempIndex].parsedJson;
9813
+ const eventJson = valueData[tempIndex].json;
9744
9814
  const eventData = eventJson?.data;
9745
9815
  const [decimalA, decimalB] = await Promise.all([
9746
- this.client.getCoinMetadata({ coinType: coinA }).then((res) => res?.decimals ?? null),
9747
- this.client.getCoinMetadata({ coinType: coinB }).then((res) => res?.decimals ?? null)
9816
+ this.client.getCoinMetadata({ coinType: coinA }).then((res) => res.coinMetadata?.decimals ?? null),
9817
+ this.client.getCoinMetadata({ coinType: coinB }).then((res) => res.coinMetadata?.decimals ?? null)
9748
9818
  ]);
9749
9819
  if (decimalA == null || decimalB == null) {
9750
9820
  throw new Error("Cannot get coin decimals");
@@ -9813,9 +9883,9 @@ var _AggregatorClient = class _AggregatorClient {
9813
9883
  }
9814
9884
  async devInspectTransactionBlock(txb) {
9815
9885
  txb.setSenderIfNotSet(this.signer || "0x0");
9816
- const res = await this.client.devInspectTransactionBlock({
9817
- sender: this.signer || "0x0",
9818
- transactionBlock: txb
9886
+ const res = await this.client.simulateTransaction({
9887
+ transaction: txb,
9888
+ include: { events: true, effects: true }
9819
9889
  });
9820
9890
  return res;
9821
9891
  }
@@ -9823,7 +9893,7 @@ var _AggregatorClient = class _AggregatorClient {
9823
9893
  const res = await this.client.signAndExecuteTransaction({
9824
9894
  transaction: txb,
9825
9895
  signer,
9826
- options: { showEffects: true, showEvents: true, showBalanceChanges: true }
9896
+ include: { effects: true, events: true, balanceChanges: true }
9827
9897
  });
9828
9898
  return res;
9829
9899
  }
@@ -9894,4 +9964,4 @@ decimal.js/decimal.mjs:
9894
9964
  *)
9895
9965
  */
9896
9966
 
9897
- export { AFSUI, AFTERMATH, AFTERMATH_AMM, AFTERMATH_MODULE, AGGREGATOR, AGGREGATOR_V3_CONFIG, ALL_DEXES, ALPHAFI, AggregatorClient, AggregatorConfig, AggregatorError, AggregatorServerErrorCode, BLUEFIN, BLUEMOVE, BOLT, CETUS, CETUSDLMM, CETUS_DEX, CETUS_MODULE, CETUS_PUBLISHED_AT, CHECK_COINS_THRESHOLD_FUNC, CLIENT_CONFIG, CLOCK_ADDRESS, CoinInfoAddress, CoinStoreAddress, CoinUtils, ConfigErrorCode, DEEPBOOKV2, DEEPBOOKV3, DEEPBOOK_CLOB_V2_MODULE, DEEPBOOK_CUSTODIAN_V2_MODULE, DEEPBOOK_DEX, DEEPBOOK_MODULE, DEEPBOOK_PACKAGE_ID, DEEPBOOK_PUBLISHED_AT, DEEPBOOK_V3_DEEP_FEE_TYPES, DEFAULT_AGG_V2_ENDPOINT, DEFAULT_AGG_V3_ENDPOINT, DEFAULT_ENDPOINT, DEFAULT_GAS_BUDGET_FOR_MERGE, DEFAULT_GAS_BUDGET_FOR_SPLIT, DEFAULT_GAS_BUDGET_FOR_STAKE, DEFAULT_GAS_BUDGET_FOR_TRANSFER, DEFAULT_GAS_BUDGET_FOR_TRANSFER_SUI, DEFAULT_NFT_TRANSFER_GAS_FEE, Env, FERRACLMM, FERRADLMM, FLOWXV2, FLOWXV3, FLOWX_AMM, FLOWX_AMM_MODULE, FULLSAIL, FlashSwapA2BFunc, FlashSwapB2AFunc, FlashSwapFunc, FlashSwapWithPartnerA2BFunc, FlashSwapWithPartnerB2AFunc, FlashSwapWithPartnerFunc, GAS_SYMBOL, GAS_TYPE_ARG, GAS_TYPE_ARG_LONG, HAEDAL, HAEDALHMMV2, HAEDALPMM, HAWAL, INTEGRATE, JOIN_FUNC, KRIYA, KRIYAV3, KRIYA_DEX, KRIYA_MODULE, MAGMA, MAGMAPROPAMM, MAINNET_AFTERMATH_INSURANCE_FUND_ID, MAINNET_AFTERMATH_PROTOCOL_FEE_VAULT_ID, MAINNET_AFTERMATH_REFERRAL_VAULT_ID, MAINNET_AFTERMATH_REGISTRY_ID, MAINNET_AFTERMATH_TREASURY_ID, MAINNET_CETUS_V3_PUBLISHED_AT, MAINNET_FLOWX_AMM_CONTAINER_ID, METASTABLE, MOMENTUM, OBRIC, ONE, PACKAGE_NAMES, PAY_MODULE, POOL_MODULT, PUBLISHED_ADDRESSES, PYTH_CONFIG, REPAY_FLASH_SWAP_A2B_FUNC, REPAY_FLASH_SWAP_B2A_FUNC, REPAY_FLASH_SWAP_WITH_PARTNER_A2B_FUNC, REPAY_FLASH_SWAP_WITH_PARTNER_B2A_FUNC, RepayFalshSwapFunc, RepayFlashSwapWithPartnerFunc, SCALLOP, SEVENK, SPRINGSUI, STEAMM, STEAMM_OMM, STEAMM_OMM_V2, SUILEND, SUI_SYSTEM_STATE_OBJECT_ID, SWAP_A2B_FUNC, SWAP_B2A_FUNC, SuiZeroCoinFn, TEN_POW_NINE, TESTNET_AFTERMATH_INSURANCE_FUND_ID, TESTNET_AFTERMATH_PROTOCOL_FEE_VAULT_ID, TESTNET_AFTERMATH_REFERRAL_VAULT_ID, TESTNET_AFTERMATH_REGISTRY_ID, TESTNET_AFTERMATH_TREASURY_ID, TESTNET_CETUS_V3_PUBLISHED_AT, TESTNET_FLOWX_AMM_CONTAINER_ID, TRANSFER_ACCOUNT_CAP, TRANSFER_OR_DESTORY_COIN_FUNC, TURBOS, TURBOS_DEX, TURBOS_MODULE, TURBOS_VERSIONED, TWO, TransactionErrorCode, TypesErrorCode, U128, U64_MAX, U64_MAX_BN, UTILS_MODULE, VOLO, ZERO, buildInputCoin, calculateGasEfficiency, calculatePriceImpact, checkInvalidSuiAddress, compareCoins, compareGasMetrics, completionCoin, composeType, createTarget, dealWithFastRouterSwapParamsForMsafe, exportToCSV, exportToJSON, extractAddressFromType, extractGasMetrics, extractStructTagFromType, extractTimestampFromDowngradeUuid6, fixSuiObjectId, formatGasMetrics, generateDowngradeUuid6, generateSimpleDowngradeUuid6, getAggregatorServerErrorMessage, getAggregatorV2Extend2PublishedAt, getAggregatorV2ExtendPublishedAt, getAggregatorV2PublishedAt, getAllProviders, getDeepbookV3Config, getDefaultSuiInputType, getMergeSwapResult, getOrCreateAccountCap, getProvidersExcluding, getProvidersIncluding, getRouterResult, isSortedSymbols, isValidDowngradeUuid6, mintZeroCoin, normalizeCoinType, parseAftermathFeeType, parseTurbosPoolFeeType, patchFixSuiObjectId, printTransaction, processEndpoint, processFlattenRoutes, restituteMsafeFastRouterSwapParams };
9967
+ export { AFSUI, AFTERMATH, AFTERMATH_AMM, AFTERMATH_MODULE, AGGREGATOR, AGGREGATOR_V3_CONFIG, ALL_DEXES, ALPHAFI, AggregatorClient, AggregatorConfig, AggregatorError, AggregatorServerErrorCode, BLUEFIN, BLUEMOVE, BOLT, CETUS, CETUSDLMM, CETUS_DEX, CETUS_MODULE, CETUS_PUBLISHED_AT, CHECK_COINS_THRESHOLD_FUNC, CLIENT_CONFIG, CLOCK_ADDRESS, CoinInfoAddress, CoinStoreAddress, CoinUtils, ConfigErrorCode, DEEPBOOKV2, DEEPBOOKV3, DEEPBOOK_CLOB_V2_MODULE, DEEPBOOK_CUSTODIAN_V2_MODULE, DEEPBOOK_DEX, DEEPBOOK_MODULE, DEEPBOOK_PACKAGE_ID, DEEPBOOK_PUBLISHED_AT, DEEPBOOK_V3_DEEP_FEE_TYPES, DEFAULT_AGG_V2_ENDPOINT, DEFAULT_AGG_V3_ENDPOINT, DEFAULT_ENDPOINT, DEFAULT_GAS_BUDGET_FOR_MERGE, DEFAULT_GAS_BUDGET_FOR_SPLIT, DEFAULT_GAS_BUDGET_FOR_STAKE, DEFAULT_GAS_BUDGET_FOR_TRANSFER, DEFAULT_GAS_BUDGET_FOR_TRANSFER_SUI, DEFAULT_NFT_TRANSFER_GAS_FEE, Env, FERRACLMM, FERRADLMM, FLOWXV2, FLOWXV3, FLOWX_AMM, FLOWX_AMM_MODULE, FULLSAIL, FlashSwapA2BFunc, FlashSwapB2AFunc, FlashSwapFunc, FlashSwapWithPartnerA2BFunc, FlashSwapWithPartnerB2AFunc, FlashSwapWithPartnerFunc, GAS_SYMBOL, GAS_TYPE_ARG, GAS_TYPE_ARG_LONG, HAEDAL, HAEDALHMMV2, HAEDALPMM, HAWAL, INTEGRATE, JOIN_FUNC, KRIYA, KRIYAV3, KRIYA_DEX, KRIYA_MODULE, MAGMA, MAGMAPROPAMM, MAINNET_AFTERMATH_INSURANCE_FUND_ID, MAINNET_AFTERMATH_PROTOCOL_FEE_VAULT_ID, MAINNET_AFTERMATH_REFERRAL_VAULT_ID, MAINNET_AFTERMATH_REGISTRY_ID, MAINNET_AFTERMATH_TREASURY_ID, MAINNET_CETUS_V3_PUBLISHED_AT, MAINNET_FLOWX_AMM_CONTAINER_ID, METASTABLE, MOMENTUM, OBRIC, ONE, PACKAGE_NAMES, PAY_MODULE, POOL_MODULT, PUBLISHED_ADDRESSES, PYTH_CONFIG, REPAY_FLASH_SWAP_A2B_FUNC, REPAY_FLASH_SWAP_B2A_FUNC, REPAY_FLASH_SWAP_WITH_PARTNER_A2B_FUNC, REPAY_FLASH_SWAP_WITH_PARTNER_B2A_FUNC, RepayFalshSwapFunc, RepayFlashSwapWithPartnerFunc, SCALLOP, SEVENK, SPRINGSUI, STEAMM, STEAMM_OMM, STEAMM_OMM_V2, SUILEND, SUI_SYSTEM_STATE_OBJECT_ID, SWAP_A2B_FUNC, SWAP_B2A_FUNC, SuiZeroCoinFn, TEN_POW_NINE, TESTNET_AFTERMATH_INSURANCE_FUND_ID, TESTNET_AFTERMATH_PROTOCOL_FEE_VAULT_ID, TESTNET_AFTERMATH_REFERRAL_VAULT_ID, TESTNET_AFTERMATH_REGISTRY_ID, TESTNET_AFTERMATH_TREASURY_ID, TESTNET_CETUS_V3_PUBLISHED_AT, TESTNET_FLOWX_AMM_CONTAINER_ID, TIDE, TRANSFER_ACCOUNT_CAP, TRANSFER_OR_DESTORY_COIN_FUNC, TURBOS, TURBOS_DEX, TURBOS_MODULE, TURBOS_VERSIONED, TWO, TransactionErrorCode, TypesErrorCode, U128, U64_MAX, U64_MAX_BN, UTILS_MODULE, VOLO, ZERO, buildInputCoin, calculateGasEfficiency, calculatePriceImpact, checkInvalidSuiAddress, compareCoins, compareGasMetrics, completionCoin, composeType, createTarget, dealWithFastRouterSwapParamsForMsafe, exportToCSV, exportToJSON, extractAddressFromType, extractGasMetrics, extractStructTagFromType, extractTimestampFromDowngradeUuid6, fixSuiObjectId, formatGasMetrics, generateDowngradeUuid6, generateSimpleDowngradeUuid6, getAggregatorServerErrorMessage, getAggregatorV2Extend2PublishedAt, getAggregatorV2ExtendPublishedAt, getAggregatorV2PublishedAt, getAllProviders, getDeepbookV3Config, getDefaultSuiInputType, getMergeSwapResult, getOrCreateAccountCap, getProvidersExcluding, getProvidersIncluding, getRouterResult, isSortedSymbols, isValidDowngradeUuid6, mintZeroCoin, normalizeCoinType, parseAftermathFeeType, parseTurbosPoolFeeType, patchFixSuiObjectId, printTransaction, processEndpoint, processFlattenRoutes, restituteMsafeFastRouterSwapParams };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cetusprotocol/aggregator-sdk",
3
- "version": "1.5.4",
3
+ "version": "1.5.6",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "main": "dist/index.js",
@@ -22,7 +22,7 @@
22
22
  "typescript": "^5.0.0"
23
23
  },
24
24
  "dependencies": {
25
- "@mysten/sui": "^2.6.0",
25
+ "@mysten/sui": "^2.16.3",
26
26
  "@pythnetwork/hermes-client": "^3.1.0",
27
27
  "bip39": "^3.1.0",
28
28
  "dotenv": "^16.4.5",