@cetusprotocol/aggregator-sdk 0.14.1 → 0.15.0

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.mjs CHANGED
@@ -5446,6 +5446,7 @@ var COIN_TYPE = "0x2::coin::Coin";
5446
5446
  var COIN_TYPE_ARG_REGEX = /^0x2::coin::Coin<(.+)>$/;
5447
5447
  var GAS_TYPE_ARG = "0x2::sui::SUI";
5448
5448
  var GAS_TYPE_ARG_LONG = "0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI";
5449
+ var SUI_SYSTEM_STATE_OBJECT_ID = "0x0000000000000000000000000000000000000005";
5449
5450
  var CoinUtils = class _CoinUtils {
5450
5451
  /**
5451
5452
  * Get the coin type argument from a SuiMoveObject.
@@ -6251,6 +6252,7 @@ var SteammCPMM = class {
6251
6252
  if (env !== 0 /* Mainnet */) {
6252
6253
  throw new Error("Steamm only supported on mainnet");
6253
6254
  }
6255
+ this.steammPublishedAt = "0x5ef2a1bca239764c8381ba26b758833060eadb8903682e4fb15e58c6406e2488";
6254
6256
  }
6255
6257
  swap(client, txb, path, inputCoin, packages) {
6256
6258
  return __async(this, null, function* () {
@@ -6289,7 +6291,10 @@ var SteammCPMM = class {
6289
6291
  inputCoin,
6290
6292
  txb.object(CLOCK_ADDRESS)
6291
6293
  ];
6292
- const publishedAt = getAggregatorV2Extend2PublishedAt(client.publishedAtV2Extend2(), packages);
6294
+ const publishedAt = getAggregatorV2Extend2PublishedAt(
6295
+ client.publishedAtV2Extend2(),
6296
+ packages
6297
+ );
6293
6298
  const res = txb.moveCall({
6294
6299
  target: `${publishedAt}::steamm_cpmm::${func}`,
6295
6300
  typeArguments: [
@@ -6302,10 +6307,54 @@ var SteammCPMM = class {
6302
6307
  ],
6303
6308
  arguments: args
6304
6309
  });
6310
+ rebalanceMoveCall(
6311
+ txb,
6312
+ this.steammPublishedAt,
6313
+ path.extendedDetails.steammBankA,
6314
+ path.extendedDetails.steammLendingMarket,
6315
+ path.extendedDetails.steammLendingMarketType,
6316
+ coinAType,
6317
+ path.extendedDetails.steammBCoinAType
6318
+ );
6319
+ rebalanceMoveCall(
6320
+ txb,
6321
+ this.steammPublishedAt,
6322
+ path.extendedDetails.steammBankB,
6323
+ path.extendedDetails.steammLendingMarket,
6324
+ path.extendedDetails.steammLendingMarketType,
6325
+ coinBType,
6326
+ path.extendedDetails.steammBCoinBType
6327
+ );
6305
6328
  return res;
6306
6329
  });
6307
6330
  }
6308
6331
  };
6332
+ function rebalanceMoveCall(txb, publishedAt, bank, lendingMarket, lendingMarketType, coinType, BcoinType) {
6333
+ if (coinType === "0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI") {
6334
+ const rebalanceArgs = [
6335
+ txb.object(bank),
6336
+ txb.object(lendingMarket),
6337
+ txb.object(SUI_SYSTEM_STATE_OBJECT_ID),
6338
+ txb.object(CLOCK_ADDRESS)
6339
+ ];
6340
+ txb.moveCall({
6341
+ target: `${publishedAt}::bank::rebalance_sui`,
6342
+ typeArguments: [lendingMarketType, BcoinType],
6343
+ arguments: rebalanceArgs
6344
+ });
6345
+ } else {
6346
+ const rebalanceArgs = [
6347
+ txb.object(bank),
6348
+ txb.object(lendingMarket),
6349
+ txb.object(CLOCK_ADDRESS)
6350
+ ];
6351
+ txb.moveCall({
6352
+ target: `${publishedAt}::bank::rebalance`,
6353
+ typeArguments: [lendingMarketType, coinType, BcoinType],
6354
+ arguments: rebalanceArgs
6355
+ });
6356
+ }
6357
+ }
6309
6358
 
6310
6359
  // src/transaction/steamm_omm.ts
6311
6360
  var SteammOmm = class {
@@ -6654,6 +6703,7 @@ var SteammOmmV2 = class {
6654
6703
  }
6655
6704
  this.pythPriceIDs = pythPriceIDs;
6656
6705
  this.oraclePackageId = "0xe84b649199654d18c38e727212f5d8dacfc3cf78d60d0a7fc85fd589f280eb2b";
6706
+ this.steammPublishedAt = "0x5ef2a1bca239764c8381ba26b758833060eadb8903682e4fb15e58c6406e2488";
6657
6707
  }
6658
6708
  swap(client, txb, path, inputCoin, packages) {
6659
6709
  return __async(this, null, function* () {
@@ -6704,7 +6754,9 @@ var SteammOmmV2 = class {
6704
6754
  const priceInfoObjectIdA = this.pythPriceIDs.get(priceSeedA);
6705
6755
  const priceInfoObjectIdB = this.pythPriceIDs.get(priceSeedB);
6706
6756
  if (!priceInfoObjectIdA || !priceInfoObjectIdB) {
6707
- throw new Error("Base price info object id or quote price info object id not found");
6757
+ throw new Error(
6758
+ "Base price info object id or quote price info object id not found"
6759
+ );
6708
6760
  }
6709
6761
  const oraclePriceUpdateA = txb.moveCall({
6710
6762
  target: `${this.oraclePackageId}::oracles::get_pyth_price`,
@@ -6736,7 +6788,10 @@ var SteammOmmV2 = class {
6736
6788
  inputCoin,
6737
6789
  txb.object(CLOCK_ADDRESS)
6738
6790
  ];
6739
- const publishedAt = getAggregatorV2Extend2PublishedAt(client.publishedAtV2Extend2(), packages);
6791
+ const publishedAt = getAggregatorV2Extend2PublishedAt(
6792
+ client.publishedAtV2Extend2(),
6793
+ packages
6794
+ );
6740
6795
  const res = txb.moveCall({
6741
6796
  target: `${publishedAt}::steamm_omm_v2::${func}`,
6742
6797
  typeArguments: [
@@ -6749,10 +6804,54 @@ var SteammOmmV2 = class {
6749
6804
  ],
6750
6805
  arguments: args
6751
6806
  });
6807
+ rebalanceMoveCall2(
6808
+ txb,
6809
+ this.steammPublishedAt,
6810
+ path.extendedDetails.steammBankA,
6811
+ path.extendedDetails.steammLendingMarket,
6812
+ path.extendedDetails.steammLendingMarketType,
6813
+ coinAType,
6814
+ path.extendedDetails.steammBCoinAType
6815
+ );
6816
+ rebalanceMoveCall2(
6817
+ txb,
6818
+ this.steammPublishedAt,
6819
+ path.extendedDetails.steammBankB,
6820
+ path.extendedDetails.steammLendingMarket,
6821
+ path.extendedDetails.steammLendingMarketType,
6822
+ coinBType,
6823
+ path.extendedDetails.steammBCoinBType
6824
+ );
6752
6825
  return res;
6753
6826
  });
6754
6827
  }
6755
6828
  };
6829
+ function rebalanceMoveCall2(txb, publishedAt, bank, lendingMarket, lendingMarketType, coinType, BcoinType) {
6830
+ if (coinType === "0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI") {
6831
+ const rebalanceArgs = [
6832
+ txb.object(bank),
6833
+ txb.object(lendingMarket),
6834
+ txb.object(SUI_SYSTEM_STATE_OBJECT_ID),
6835
+ txb.object(CLOCK_ADDRESS)
6836
+ ];
6837
+ txb.moveCall({
6838
+ target: `${publishedAt}::bank::rebalance_sui`,
6839
+ typeArguments: [lendingMarketType, BcoinType],
6840
+ arguments: rebalanceArgs
6841
+ });
6842
+ } else {
6843
+ const rebalanceArgs = [
6844
+ txb.object(bank),
6845
+ txb.object(lendingMarket),
6846
+ txb.object(CLOCK_ADDRESS)
6847
+ ];
6848
+ txb.moveCall({
6849
+ target: `${publishedAt}::bank::rebalance`,
6850
+ typeArguments: [lendingMarketType, coinType, BcoinType],
6851
+ arguments: rebalanceArgs
6852
+ });
6853
+ }
6854
+ }
6756
6855
 
6757
6856
  // src/transaction/magma.ts
6758
6857
  var Magma = class {
@@ -6864,6 +6963,51 @@ var Sevenk = class {
6864
6963
  }
6865
6964
  };
6866
6965
 
6966
+ // src/transaction/haedal_hmm_v2.ts
6967
+ var HaedalHMMV2 = class {
6968
+ constructor(env, pythPriceIDs) {
6969
+ if (env === 1 /* Testnet */) {
6970
+ throw new Error("HaedalHMMV2 is not supported on testnet");
6971
+ }
6972
+ this.pythPriceIDs = pythPriceIDs;
6973
+ }
6974
+ swap(client, txb, path, inputCoin, packages) {
6975
+ return __async(this, null, function* () {
6976
+ const { direction, from, target } = path;
6977
+ const [func, coinAType, coinBType] = direction ? ["swap_a2b", from, target] : ["swap_b2a", target, from];
6978
+ let basePriceSeed;
6979
+ if (path.extendedDetails == null) {
6980
+ throw new Error("Extended details not supported haedal pmm");
6981
+ } else {
6982
+ if (!path.extendedDetails.haedalHmmV2BasePriceSeed) {
6983
+ throw new Error("Base price seed not supported");
6984
+ }
6985
+ basePriceSeed = path.extendedDetails.haedalHmmV2BasePriceSeed;
6986
+ }
6987
+ const basePriceInfoObjectId = this.pythPriceIDs.get(basePriceSeed);
6988
+ if (!basePriceInfoObjectId) {
6989
+ throw new Error("Base price info object id not found");
6990
+ }
6991
+ const args = [
6992
+ txb.object(path.id),
6993
+ txb.object(basePriceInfoObjectId),
6994
+ inputCoin,
6995
+ txb.object(CLOCK_ADDRESS)
6996
+ ];
6997
+ const publishedAt = getAggregatorV2Extend2PublishedAt(
6998
+ client.publishedAtV2Extend2(),
6999
+ packages
7000
+ );
7001
+ const res = txb.moveCall({
7002
+ target: `${publishedAt}::haedal_hmm_v2::${func}`,
7003
+ typeArguments: [coinAType, coinBType],
7004
+ arguments: args
7005
+ });
7006
+ return res;
7007
+ });
7008
+ }
7009
+ };
7010
+
6867
7011
  // src/client.ts
6868
7012
  var CETUS = "CETUS";
6869
7013
  var DEEPBOOKV2 = "DEEPBOOK";
@@ -6893,6 +7037,7 @@ var MOMENTUM = "MOMENTUM";
6893
7037
  var STEAMM_OMM_V2 = "STEAMM_OMM_V2";
6894
7038
  var MAGMA = "MAGMA";
6895
7039
  var SEVENK = "SEVENK";
7040
+ var HAEDALHMMV2 = "HAEDALHMMV2";
6896
7041
  var DEFAULT_ENDPOINT = "https://api-sui.cetus.zone/router_v2";
6897
7042
  var ALL_DEXES = [
6898
7043
  CETUS,
@@ -6921,7 +7066,8 @@ var ALL_DEXES = [
6921
7066
  STEAMM_OMM,
6922
7067
  STEAMM_OMM_V2,
6923
7068
  MAGMA,
6924
- SEVENK
7069
+ SEVENK,
7070
+ HAEDALHMMV2
6925
7071
  ];
6926
7072
  function isBuilderRouterSwapParams(params) {
6927
7073
  return Array.isArray(params.routers);
@@ -7476,14 +7622,14 @@ var _AggregatorClient = class _AggregatorClient {
7476
7622
  // Include deepbookv3, scallop, bluefin
7477
7623
  publishedAtV2Extend() {
7478
7624
  if (this.env === 0 /* Mainnet */) {
7479
- return "0x8a2f7a5b20665eeccc79de3aa37c3b6c473eca233ada1e1cd4678ec07d4d4073";
7625
+ return "0xb39d6dddedd16ed8a40ce0b1e6b43c92acf0ff3fa2fac081fb82ef1b915c17b4";
7480
7626
  } else {
7481
7627
  return "0xabb6a81c8a216828e317719e06125de5bb2cb0fe8f9916ff8c023ca5be224c78";
7482
7628
  }
7483
7629
  }
7484
7630
  publishedAtV2Extend2() {
7485
7631
  if (this.env === 0 /* Mainnet */) {
7486
- return "0x5cb7499fc49c2642310e24a4ecffdbee00133f97e80e2b45bca90c64d55de880";
7632
+ return "0xfb34ee252871013594c87a84bd2718d1603f3ee2503f075b9fbcdfc829b707f4";
7487
7633
  } else {
7488
7634
  return "0x0";
7489
7635
  }
@@ -7596,6 +7742,8 @@ var _AggregatorClient = class _AggregatorClient {
7596
7742
  return new Magma(this.env);
7597
7743
  case SEVENK:
7598
7744
  return new Sevenk(this.env, pythPriceIDs);
7745
+ case HAEDALHMMV2:
7746
+ return new HaedalHMMV2(this.env, pythPriceIDs);
7599
7747
  default:
7600
7748
  throw new Error(`Unsupported dex ${provider}`);
7601
7749
  }
@@ -7691,7 +7839,7 @@ _AggregatorClient.CONFIG = {
7691
7839
  pythStateId: "0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8"
7692
7840
  }
7693
7841
  };
7694
- var AggregatorClient28 = _AggregatorClient;
7842
+ var AggregatorClient29 = _AggregatorClient;
7695
7843
  function findPythPriceIDs(routes) {
7696
7844
  const priceIDs = /* @__PURE__ */ new Set();
7697
7845
  for (const route of routes) {
@@ -7734,6 +7882,11 @@ function findPythPriceIDs(routes) {
7734
7882
  priceIDs.add(path.extendedDetails.sevenkCoinBPriceSeed);
7735
7883
  }
7736
7884
  }
7885
+ if (path.provider === HAEDALHMMV2) {
7886
+ if (path.extendedDetails && path.extendedDetails.haedalHmmV2BasePriceSeed) {
7887
+ priceIDs.add(path.extendedDetails.haedalHmmV2BasePriceSeed);
7888
+ }
7889
+ }
7737
7890
  }
7738
7891
  }
7739
7892
  return Array.from(priceIDs);
@@ -7757,19 +7910,19 @@ function parseRouterResponse(data, byAmountIn) {
7757
7910
  let routerData = {
7758
7911
  amountIn: new import_bn5.default(data.amount_in.toString()),
7759
7912
  amountOut: new import_bn5.default(data.amount_out.toString()),
7760
- deviationRatio: data.deviation_ratio ? Number(data.deviation_ratio) : 0,
7913
+ deviationRatio: data.deviation_ratio ? Number(data.deviation_ratio) : void 0,
7761
7914
  byAmountIn,
7762
7915
  insufficientLiquidity: false,
7763
7916
  routes: data.routes.map((route) => {
7764
7917
  return {
7765
7918
  path: route.path.map((path) => {
7766
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I;
7919
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J;
7767
7920
  let version;
7768
7921
  if (path.provider === AFTERMATH) {
7769
7922
  version = path.extended_details.aftermath_pool_flatness === 0 ? "v2" : "v3";
7770
7923
  }
7771
7924
  let extendedDetails;
7772
- if (path.provider === TURBOS || path.provider === AFTERMATH || path.provider === CETUS || path.provider === DEEPBOOKV3 || path.provider === SCALLOP || path.provider === HAEDALPMM || path.provider === METASTABLE || path.provider === OBRIC || path.provider === STEAMM || path.provider === STEAMM_OMM || path.provider === STEAMM_OMM_V2 || path.provider === SEVENK) {
7925
+ if (path.provider === TURBOS || path.provider === AFTERMATH || path.provider === CETUS || path.provider === DEEPBOOKV3 || path.provider === SCALLOP || path.provider === HAEDALPMM || path.provider === METASTABLE || path.provider === OBRIC || path.provider === STEAMM || path.provider === STEAMM_OMM || path.provider === STEAMM_OMM_V2 || path.provider === SEVENK || path.provider === HAEDALHMMV2) {
7773
7926
  extendedDetails = {
7774
7927
  aftermathLpSupplyType: (_a = path.extended_details) == null ? void 0 : _a.aftermath_lp_supply_type,
7775
7928
  turbosFeeType: (_b = path.extended_details) == null ? void 0 : _b.turbos_fee_type,
@@ -7805,7 +7958,8 @@ function parseRouterResponse(data, byAmountIn) {
7805
7958
  sevenkCoinBPriceSeed: (_F = path.extended_details) == null ? void 0 : _F.sevenk_coin_b_price_seed,
7806
7959
  sevenkCoinAOracleId: (_G = path.extended_details) == null ? void 0 : _G.sevenk_oracle_config_a,
7807
7960
  sevenkCoinBOracleId: (_H = path.extended_details) == null ? void 0 : _H.sevenk_oracle_config_b,
7808
- sevenkLPCapType: (_I = path.extended_details) == null ? void 0 : _I.sevenk_lp_cap_type
7961
+ sevenkLPCapType: (_I = path.extended_details) == null ? void 0 : _I.sevenk_lp_cap_type,
7962
+ haedalHmmV2BasePriceSeed: (_J = path.extended_details) == null ? void 0 : _J.haedalhmmv2_base_price_seed
7809
7963
  };
7810
7964
  }
7811
7965
  return {
@@ -7902,7 +8056,7 @@ function processEndpoint(endpoint) {
7902
8056
 
7903
8057
  // src/api.ts
7904
8058
  var import_bn7 = __toESM(require_bn());
7905
- var SDK_VERSION = 1001400;
8059
+ var SDK_VERSION = 1001500;
7906
8060
  function getRouterResult(endpoint, apiKey, params, overlayFee, overlayFeeReceiver) {
7907
8061
  return __async(this, null, function* () {
7908
8062
  let response;
@@ -8109,4 +8263,4 @@ decimal.js/decimal.mjs:
8109
8263
  *)
8110
8264
  */
8111
8265
 
8112
- export { AFSUI, AFTERMATH, AGGREGATOR_V2, AGGREGATOR_V2_EXTEND, AGGREGATOR_V2_EXTEND2, ALL_DEXES, ALPHAFI, AggregatorClient28 as AggregatorClient, BLUEFIN, BLUEMOVE, CETUS, CLOCK_ADDRESS, DEEPBOOKV2, DEEPBOOKV3, DEFAULT_ENDPOINT, Env, FLOWXV2, FLOWXV3, HAEDAL, HAEDALPMM, HAWAL, KRIYA, KRIYAV3, MAGMA, METASTABLE, MOMENTUM, OBRIC, ONE, SCALLOP, SEVENK, SPRINGSUI, STEAMM, STEAMM_OMM, STEAMM_OMM_V2, SUILEND, TEN_POW_NINE, TURBOS, TWO, U128, U64_MAX, U64_MAX_BN, VOLO, ZERO, buildInputCoin, checkInvalidSuiAddress, compareCoins, completionCoin, composeType, createTarget, dealWithFastRouterSwapParamsForMsafe, extractAddressFromType, extractStructTagFromType, findPythPriceIDs, fixSuiObjectId, getAggregatorV2Extend2PublishedAt, getAggregatorV2ExtendPublishedAt, getAggregatorV2PublishedAt, getAllProviders, getDeepbookV3Config, getProvidersExcluding, getProvidersIncluding, getRouterResult, isSortedSymbols, mintZeroCoin, normalizeCoinType, parseRouterResponse, patchFixSuiObjectId, printTransaction, processEndpoint, restituteMsafeFastRouterSwapParams };
8266
+ export { AFSUI, AFTERMATH, AGGREGATOR_V2, AGGREGATOR_V2_EXTEND, AGGREGATOR_V2_EXTEND2, ALL_DEXES, ALPHAFI, AggregatorClient29 as AggregatorClient, BLUEFIN, BLUEMOVE, CETUS, CLOCK_ADDRESS, DEEPBOOKV2, DEEPBOOKV3, DEFAULT_ENDPOINT, Env, FLOWXV2, FLOWXV3, HAEDAL, HAEDALHMMV2, HAEDALPMM, HAWAL, KRIYA, KRIYAV3, MAGMA, METASTABLE, MOMENTUM, OBRIC, ONE, SCALLOP, SEVENK, SPRINGSUI, STEAMM, STEAMM_OMM, STEAMM_OMM_V2, SUILEND, TEN_POW_NINE, TURBOS, TWO, U128, U64_MAX, U64_MAX_BN, VOLO, ZERO, buildInputCoin, checkInvalidSuiAddress, compareCoins, completionCoin, composeType, createTarget, dealWithFastRouterSwapParamsForMsafe, extractAddressFromType, extractStructTagFromType, findPythPriceIDs, fixSuiObjectId, getAggregatorV2Extend2PublishedAt, getAggregatorV2ExtendPublishedAt, getAggregatorV2PublishedAt, getAllProviders, getDeepbookV3Config, getProvidersExcluding, getProvidersIncluding, getRouterResult, isSortedSymbols, mintZeroCoin, normalizeCoinType, parseRouterResponse, patchFixSuiObjectId, printTransaction, processEndpoint, restituteMsafeFastRouterSwapParams };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cetusprotocol/aggregator-sdk",
3
- "version": "0.14.1",
3
+ "version": "0.15.0",
4
4
  "sideEffects": false,
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",