@cetusprotocol/aggregator-sdk 1.5.3 → 1.5.5

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 = 1010503;
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",
@@ -8699,6 +8703,59 @@ var BoltRouter = class {
8699
8703
  });
8700
8704
  }
8701
8705
  };
8706
+ var MagmaPropAmmRouter = class {
8707
+ constructor(_env) {
8708
+ }
8709
+ swap(txb, flattenedPath, swapContext, _extends) {
8710
+ const path = flattenedPath.path;
8711
+ if (!path.extendedDetails) {
8712
+ throw new Error("Extended details not found for MAGMAPROPAMM");
8713
+ }
8714
+ this.validateExtendedDetails(path.extendedDetails);
8715
+ const swapData = this.prepareSwapData(flattenedPath);
8716
+ this.executeSwapContract(txb, swapData, swapContext);
8717
+ }
8718
+ validateExtendedDetails(extendedDetails) {
8719
+ if (!extendedDetails.magmapropamm_pool_id) {
8720
+ throw new Error("MAGMAPROPAMM pool id not found in extended details");
8721
+ }
8722
+ }
8723
+ prepareSwapData(flattenedPath) {
8724
+ const path = flattenedPath.path;
8725
+ if (path.publishedAt == null) {
8726
+ throw new Error("MAGMAPROPAMM not set publishedAt");
8727
+ }
8728
+ const extendedDetails = path.extendedDetails;
8729
+ const [coinTType0, coinTType1] = path.direction ? [path.from, path.target] : [path.target, path.from];
8730
+ const amountIn = flattenedPath.isLastUseOfIntermediateToken ? AGGREGATOR_V3_CONFIG.MAX_AMOUNT_IN : path.amountIn;
8731
+ return {
8732
+ coinTType0,
8733
+ coinTType1,
8734
+ a2b: path.direction,
8735
+ amountIn,
8736
+ publishedAt: path.publishedAt,
8737
+ poolId: extendedDetails.magmapropamm_pool_id
8738
+ };
8739
+ }
8740
+ executeSwapContract(txb, swapData, swapContext) {
8741
+ txb.moveCall({
8742
+ target: `${swapData.publishedAt}::magmapropamm::swap`,
8743
+ typeArguments: [swapData.coinTType0, swapData.coinTType1],
8744
+ arguments: [
8745
+ swapContext,
8746
+ // swap_ctx
8747
+ txb.object(swapData.poolId),
8748
+ // pool
8749
+ txb.object(SUI_CLOCK_OBJECT_ID),
8750
+ // clock
8751
+ txb.pure.bool(swapData.a2b),
8752
+ // a2b
8753
+ txb.pure.u64(swapData.amountIn)
8754
+ // amount_in
8755
+ ]
8756
+ });
8757
+ }
8758
+ };
8702
8759
 
8703
8760
  // src/client.ts
8704
8761
  var CETUS = "CETUS";
@@ -8735,6 +8792,7 @@ var CETUSDLMM = "CETUSDLMM";
8735
8792
  var FERRADLMM = "FERRADLMM";
8736
8793
  var FERRACLMM = "FERRACLMM";
8737
8794
  var BOLT = "BOLT";
8795
+ var MAGMAPROPAMM = "MAGMAPROPAMM";
8738
8796
  var DEFAULT_ENDPOINT = "https://api-sui.cetus.zone/router_v3";
8739
8797
  var ALL_DEXES = [
8740
8798
  CETUS,
@@ -8769,7 +8827,8 @@ var ALL_DEXES = [
8769
8827
  CETUSDLMM,
8770
8828
  FERRADLMM,
8771
8829
  FERRACLMM,
8772
- BOLT
8830
+ BOLT,
8831
+ MAGMAPROPAMM
8773
8832
  ];
8774
8833
  function getAllProviders() {
8775
8834
  return ALL_DEXES;
@@ -8836,8 +8895,8 @@ var _AggregatorClient = class _AggregatorClient {
8836
8895
  constructor(params) {
8837
8896
  this.endpoint = params.endpoint ? processEndpoint(params.endpoint) : DEFAULT_ENDPOINT;
8838
8897
  const network = params.env === 1 /* Testnet */ ? "testnet" : "mainnet";
8839
- const rpcUrl = params.env === 1 /* Testnet */ ? "https://fullnode.testnet.sui.io:443" : "https://fullnode.mainnet.sui.io:443";
8840
- this.client = params.client ?? new SuiJsonRpcClient({ network, url: rpcUrl });
8898
+ const grpcUrl = params.env === 1 /* Testnet */ ? "https://fullnode.testnet.sui.io:443" : "https://fullnode.mainnet.sui.io:443";
8899
+ this.client = params.client ?? new SuiGrpcClient({ network, baseUrl: grpcUrl });
8841
8900
  this.signer = params.signer || "";
8842
8901
  this.env = params.env || 0 /* Mainnet */;
8843
8902
  const config2 = _AggregatorClient.CONFIG[this.env];
@@ -8878,13 +8937,13 @@ var _AggregatorClient = class _AggregatorClient {
8878
8937
  }
8879
8938
  async getOneCoinUsedToMerge(coinType) {
8880
8939
  try {
8881
- const gotCoin = await this.client.getCoins({
8940
+ const gotCoin = await this.client.listCoins({
8882
8941
  owner: this.signer,
8883
8942
  coinType,
8884
8943
  limit: 1
8885
8944
  });
8886
- if (gotCoin.data.length === 1) {
8887
- return gotCoin.data[0].coinObjectId;
8945
+ if (gotCoin.objects.length === 1) {
8946
+ return gotCoin.objects[0].objectId;
8888
8947
  }
8889
8948
  return null;
8890
8949
  } catch (error) {
@@ -8979,6 +9038,8 @@ var _AggregatorClient = class _AggregatorClient {
8979
9038
  return new FerraClmmRouter(this.env);
8980
9039
  case BOLT:
8981
9040
  return new BoltRouter(this.env);
9041
+ case MAGMAPROPAMM:
9042
+ return new MagmaPropAmmRouter(this.env);
8982
9043
  default:
8983
9044
  throw new Error(
8984
9045
  `${CLIENT_CONFIG.ERRORS.UNSUPPORTED_DEX} ${provider}`
@@ -9356,15 +9417,7 @@ var _AggregatorClient = class _AggregatorClient {
9356
9417
  * @throws Error if input coin amount exceeds maxAmountIn
9357
9418
  */
9358
9419
  async routerSwapWithMaxAmountIn(params) {
9359
- const {
9360
- router,
9361
- inputCoin,
9362
- slippage,
9363
- txb,
9364
- partner,
9365
- cetusDlmmPartner,
9366
- maxAmountIn
9367
- } = params;
9420
+ const { router, inputCoin, slippage, txb, partner, maxAmountIn } = params;
9368
9421
  if (slippage > 1 || slippage < 0) {
9369
9422
  throw new Error(CLIENT_CONFIG.ERRORS.INVALID_SLIPPAGE);
9370
9423
  }
@@ -9399,8 +9452,7 @@ var _AggregatorClient = class _AggregatorClient {
9399
9452
  amountOut.toString(),
9400
9453
  amountLimit.toString(),
9401
9454
  priceInfoObjectIds,
9402
- partner ?? this.partner,
9403
- cetusDlmmPartner ?? this.cetusDlmmPartner
9455
+ partner ?? this.partner
9404
9456
  );
9405
9457
  } else {
9406
9458
  return this.expectOutputSwapV3WithMaxAmountIn(
@@ -9417,14 +9469,7 @@ var _AggregatorClient = class _AggregatorClient {
9417
9469
  // auto build input coin
9418
9470
  // auto merge, transfer or destory target coin.
9419
9471
  async fastRouterSwap(params) {
9420
- const {
9421
- router,
9422
- slippage,
9423
- txb,
9424
- partner,
9425
- cetusDlmmPartner,
9426
- payDeepFeeAmount
9427
- } = params;
9472
+ const { router, slippage, txb, partner, cetusDlmmPartner, payDeepFeeAmount } = params;
9428
9473
  const fromCoinType = router.paths[0].from;
9429
9474
  const targetCoinType = router.paths[router.paths.length - 1].target;
9430
9475
  const byAmountIn = router.byAmountIn;
@@ -9581,7 +9626,7 @@ var _AggregatorClient = class _AggregatorClient {
9581
9626
  }
9582
9627
  }
9583
9628
  async fixableRouterSwapV3(params) {
9584
- const { router, inputCoin, slippage, txb, partner, cetusDlmmPartner } = params;
9629
+ const { router, inputCoin, slippage, txb, partner } = params;
9585
9630
  checkOverlayFeeConfig(this.overlayFeeRate, this.overlayFeeReceiver);
9586
9631
  let overlayFee = 0;
9587
9632
  if (router.byAmountIn) {
@@ -9610,8 +9655,7 @@ var _AggregatorClient = class _AggregatorClient {
9610
9655
  expectedAmountOut.toString(),
9611
9656
  amountLimit.toString(),
9612
9657
  priceInfoObjectIds,
9613
- partner ?? this.partner,
9614
- cetusDlmmPartner ?? this.cetusDlmmPartner
9658
+ partner ?? this.partner
9615
9659
  );
9616
9660
  } else {
9617
9661
  return this.expectOutputSwapV3(
@@ -9648,16 +9692,18 @@ var _AggregatorClient = class _AggregatorClient {
9648
9692
  });
9649
9693
  }
9650
9694
  tx.setSenderIfNotSet(this.signer || "0x0");
9651
- const simulateRes = await this.client.devInspectTransactionBlock({
9652
- sender: this.signer || "0x0",
9653
- transactionBlock: tx
9695
+ const simulateRes = await this.client.simulateTransaction({
9696
+ transaction: tx,
9697
+ include: { events: true, effects: true }
9654
9698
  });
9655
- if (simulateRes.error) {
9656
- throw new Error("Simulation error: " + simulateRes.error);
9699
+ const txResult = simulateRes.Transaction ?? simulateRes.FailedTransaction;
9700
+ if (!txResult || simulateRes.$kind === "FailedTransaction") {
9701
+ const errorMsg = txResult?.status.success === false ? txResult.status.error.message : "Unknown error";
9702
+ throw new Error("Simulation error: " + errorMsg);
9657
9703
  }
9658
- const events = simulateRes.events ?? [];
9704
+ const events = txResult.events ?? [];
9659
9705
  const valueData = events.filter((item) => {
9660
- return item.type.includes("CalculatedSwapResultEvent");
9706
+ return item.eventType.includes("CalculatedSwapResultEvent");
9661
9707
  });
9662
9708
  if (valueData.length === 0 || valueData.length !== pools.length) {
9663
9709
  throw new Error("Simulate event result error");
@@ -9665,7 +9711,7 @@ var _AggregatorClient = class _AggregatorClient {
9665
9711
  let tempMaxAmount = byAmountIn ? new import_bn6.default(0) : new import_bn6.default(U64_MAX);
9666
9712
  let tempIndex = 0;
9667
9713
  for (let i = 0; i < valueData.length; i += 1) {
9668
- const eventJson2 = valueData[i].parsedJson;
9714
+ const eventJson2 = valueData[i].json;
9669
9715
  if (eventJson2?.data?.is_exceed) {
9670
9716
  continue;
9671
9717
  }
@@ -9683,11 +9729,11 @@ var _AggregatorClient = class _AggregatorClient {
9683
9729
  }
9684
9730
  }
9685
9731
  }
9686
- const eventJson = valueData[tempIndex].parsedJson;
9732
+ const eventJson = valueData[tempIndex].json;
9687
9733
  const eventData = eventJson?.data;
9688
9734
  const [decimalA, decimalB] = await Promise.all([
9689
- this.client.getCoinMetadata({ coinType: coinA }).then((res) => res?.decimals ?? null),
9690
- this.client.getCoinMetadata({ coinType: coinB }).then((res) => res?.decimals ?? null)
9735
+ this.client.getCoinMetadata({ coinType: coinA }).then((res) => res.coinMetadata?.decimals ?? null),
9736
+ this.client.getCoinMetadata({ coinType: coinB }).then((res) => res.coinMetadata?.decimals ?? null)
9691
9737
  ]);
9692
9738
  if (decimalA == null || decimalB == null) {
9693
9739
  throw new Error("Cannot get coin decimals");
@@ -9756,9 +9802,9 @@ var _AggregatorClient = class _AggregatorClient {
9756
9802
  }
9757
9803
  async devInspectTransactionBlock(txb) {
9758
9804
  txb.setSenderIfNotSet(this.signer || "0x0");
9759
- const res = await this.client.devInspectTransactionBlock({
9760
- sender: this.signer || "0x0",
9761
- transactionBlock: txb
9805
+ const res = await this.client.simulateTransaction({
9806
+ transaction: txb,
9807
+ include: { events: true, effects: true }
9762
9808
  });
9763
9809
  return res;
9764
9810
  }
@@ -9766,7 +9812,7 @@ var _AggregatorClient = class _AggregatorClient {
9766
9812
  const res = await this.client.signAndExecuteTransaction({
9767
9813
  transaction: txb,
9768
9814
  signer,
9769
- options: { showEffects: true, showEvents: true, showBalanceChanges: true }
9815
+ include: { effects: true, events: true, balanceChanges: true }
9770
9816
  });
9771
9817
  return res;
9772
9818
  }
@@ -9837,4 +9883,4 @@ decimal.js/decimal.mjs:
9837
9883
  *)
9838
9884
  */
9839
9885
 
9840
- 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, 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 };
9886
+ 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 };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cetusprotocol/aggregator-sdk",
3
- "version": "1.5.3",
3
+ "version": "1.5.5",
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",