@cetusprotocol/aggregator-sdk 1.1.4 → 1.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1652,6 +1652,7 @@ var require_bn = __commonJS({
1652
1652
  this.words[i] = carry;
1653
1653
  this.length++;
1654
1654
  }
1655
+ this.length = num === 0 ? 1 : this.length;
1655
1656
  return isNegNum ? this.ineg() : this;
1656
1657
  };
1657
1658
  BN7.prototype.muln = function muln(num) {
@@ -2993,7 +2994,7 @@ var GAS_TYPE_ARG = "0x2::sui::SUI";
2993
2994
  var GAS_TYPE_ARG_LONG = "0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI";
2994
2995
  var GAS_SYMBOL = "SUI";
2995
2996
  var DEFAULT_NFT_TRANSFER_GAS_FEE = 450;
2996
- var SUI_SYSTEM_STATE_OBJECT_ID = "0x0000000000000000000000000000000000000000000000000000000000000005";
2997
+ var SUI_SYSTEM_STATE_OBJECT_ID = "0x0000000000000000000000000000000000000005";
2997
2998
  var CoinUtils = class _CoinUtils {
2998
2999
  /**
2999
3000
  * Get the coin type argument from a SuiMoveObject.
@@ -3101,18 +3102,10 @@ var CoinUtils = class _CoinUtils {
3101
3102
  * @returns The CoinAsset objects that have a balance greater than or equal to the given amount.
3102
3103
  */
3103
3104
  static selectCoinObjectIdGreaterThanOrEqual(coins, amount, exclude = []) {
3104
- const selectedResult = _CoinUtils.selectCoinAssetGreaterThanOrEqual(
3105
- coins,
3106
- amount,
3107
- exclude
3108
- );
3109
- const objectArray = selectedResult.selectedCoins.map(
3110
- (item) => item.coinObjectId
3111
- );
3105
+ const selectedResult = _CoinUtils.selectCoinAssetGreaterThanOrEqual(coins, amount, exclude);
3106
+ const objectArray = selectedResult.selectedCoins.map((item) => item.coinObjectId);
3112
3107
  const remainCoins = selectedResult.remainingCoins;
3113
- const amountArray = selectedResult.selectedCoins.map(
3114
- (item) => item.balance.toString()
3115
- );
3108
+ const amountArray = selectedResult.selectedCoins.map((item) => item.balance.toString());
3116
3109
  return { objectArray, remainCoins, amountArray };
3117
3110
  }
3118
3111
  /**
@@ -3124,9 +3117,7 @@ var CoinUtils = class _CoinUtils {
3124
3117
  * @returns The CoinAsset objects that have a balance greater than or equal to the given amount.
3125
3118
  */
3126
3119
  static selectCoinAssetGreaterThanOrEqual(coins, amount, exclude = []) {
3127
- const sortedCoins = _CoinUtils.sortByBalance(
3128
- coins.filter((c) => !exclude.includes(c.coinObjectId))
3129
- );
3120
+ const sortedCoins = _CoinUtils.sortByBalance(coins.filter((c) => !exclude.includes(c.coinObjectId)));
3130
3121
  const total = _CoinUtils.calculateTotalBalance(sortedCoins);
3131
3122
  if (total < amount) {
3132
3123
  return { selectedCoins: [], remainingCoins: sortedCoins };
@@ -3139,13 +3130,9 @@ var CoinUtils = class _CoinUtils {
3139
3130
  const remainingCoins = [...sortedCoins];
3140
3131
  while (sum2 < total) {
3141
3132
  const target = amount - sum2;
3142
- const coinWithSmallestSufficientBalanceIndex = remainingCoins.findIndex(
3143
- (c) => c.balance >= target
3144
- );
3133
+ const coinWithSmallestSufficientBalanceIndex = remainingCoins.findIndex((c) => c.balance >= target);
3145
3134
  if (coinWithSmallestSufficientBalanceIndex !== -1) {
3146
- selectedCoins.push(
3147
- remainingCoins[coinWithSmallestSufficientBalanceIndex]
3148
- );
3135
+ selectedCoins.push(remainingCoins[coinWithSmallestSufficientBalanceIndex]);
3149
3136
  remainingCoins.splice(coinWithSmallestSufficientBalanceIndex, 1);
3150
3137
  break;
3151
3138
  }
@@ -3155,10 +3142,7 @@ var CoinUtils = class _CoinUtils {
3155
3142
  sum2 += coinWithLargestBalance.balance;
3156
3143
  }
3157
3144
  }
3158
- return {
3159
- selectedCoins: _CoinUtils.sortByBalance(selectedCoins),
3160
- remainingCoins: _CoinUtils.sortByBalance(remainingCoins)
3161
- };
3145
+ return { selectedCoins: _CoinUtils.sortByBalance(selectedCoins), remainingCoins: _CoinUtils.sortByBalance(remainingCoins) };
3162
3146
  }
3163
3147
  /**
3164
3148
  * Sort the CoinAsset objects by their balance.
@@ -3167,14 +3151,10 @@ var CoinUtils = class _CoinUtils {
3167
3151
  * @returns The sorted CoinAsset objects.
3168
3152
  */
3169
3153
  static sortByBalance(coins) {
3170
- return coins.sort(
3171
- (a, b) => a.balance < b.balance ? -1 : a.balance > b.balance ? 1 : 0
3172
- );
3154
+ return coins.sort((a, b) => a.balance < b.balance ? -1 : a.balance > b.balance ? 1 : 0);
3173
3155
  }
3174
3156
  static sortByBalanceDes(coins) {
3175
- return coins.sort(
3176
- (a, b) => a.balance > b.balance ? -1 : a.balance < b.balance ? 0 : 1
3177
- );
3157
+ return coins.sort((a, b) => a.balance > b.balance ? -1 : a.balance < b.balance ? 0 : 1);
3178
3158
  }
3179
3159
  /**
3180
3160
  * Calculate the total balance of a list of CoinAsset objects.
@@ -3261,7 +3241,7 @@ function buildInputCoin(txb, allCoins, amount, coinType) {
3261
3241
  }
3262
3242
  let totalCoinBalance = CoinUtils.calculateTotalBalance(usedCoinAsests);
3263
3243
  if (totalCoinBalance < amount) {
3264
- throw new AggregateError(
3244
+ throw new AggregatorError(
3265
3245
  "Insufficient balance when build merge coin, coinType: " + coinType,
3266
3246
  "InsufficientBalance" /* InsufficientBalance */ + coinType
3267
3247
  );
@@ -3355,7 +3335,7 @@ var SuiZeroCoinFn = "0x2::coin::zero";
3355
3335
  var DEEPBOOK_PACKAGE_ID = "0x000000000000000000000000000000000000000000000000000000000000dee9";
3356
3336
  var DEEPBOOK_PUBLISHED_AT = "0x000000000000000000000000000000000000000000000000000000000000dee9";
3357
3337
  var CETUS_PUBLISHED_AT = "0x70968826ad1b4ba895753f634b0aea68d0672908ca1075a2abdf0fc9e0b2fc6a";
3358
- var CETUS_V3_PUBLISHED_AT = "0x550dcd6070230d8bf18d99d34e3b2ca1d3657b76cc80ffdacdb2b5d28d7e0124";
3338
+ var CETUS_V3_PUBLISHED_AT = "0xb1e11ceaf3e7cd3031ef5e24804478ec3441c5aecdace910bdaca317a0c1c535";
3359
3339
  var MAINNET_CETUS_GLOBAL_CONFIG_ID = "0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f";
3360
3340
  var TESTNET_CETUS_GLOBAL_CONFIG_ID = "0x6f4149091a5aea0e818e7243a13adcfb403842d670b9a2089de058512620687a";
3361
3341
  var MAINNET_FLOWX_AMM_CONTAINER_ID = "0xb65dcbf63fd3ad5d0ebfbf334780dc9f785eff38a4459e37ab08fa79576ee511";
@@ -3412,9 +3392,9 @@ var DEEPBOOK_V3_DEEP_FEE_TYPES = {
3412
3392
  var CLIENT_CONFIG = {
3413
3393
  DEFAULT_PYTH_URL: "https://hermes.pyth.network",
3414
3394
  PYTH_TIMEOUT: 3e3,
3415
- MAX_OVERLAY_FEE_RATE_PARAMS: 0.1,
3395
+ MAX_OVERLAY_FEE_RATE: 0.1,
3396
+ MAX_OVERLAY_FEE_RATE_NUMERATOR: 1e5,
3416
3397
  FEE_RATE_MULTIPLIER: 1e6,
3417
- MAX_FEE_RATE: 1e5,
3418
3398
  DEFAULT_OVERLAY_FEE_RECEIVER: "0x0",
3419
3399
  // Error Messages
3420
3400
  ERRORS: {
@@ -3437,13 +3417,13 @@ var AGGREGATOR_V3_CONFIG = {
3437
3417
  // 10%
3438
3418
  MAX_AMOUNT_IN: U64_MAX,
3439
3419
  DEFAULT_PUBLISHED_AT: {
3440
- Mainnet: "0x07c27e879ba9282506284b0fef26d393978906fc9496550d978c6f493dbfa3e5",
3420
+ Mainnet: "0x33ec64e9bb369bf045ddc198c81adbf2acab424da37465d95296ee02045d2b17",
3441
3421
  Testnet: "0x0"
3442
3422
  }
3443
3423
  };
3444
3424
 
3445
3425
  // src/api.ts
3446
- var SDK_VERSION = 1010104;
3426
+ var SDK_VERSION = 1010106;
3447
3427
  function parseRouterResponse(data, byAmountIn) {
3448
3428
  let packages = /* @__PURE__ */ new Map();
3449
3429
  if (data.packages) {
@@ -3606,7 +3586,6 @@ function getRouter(endpoint, apiKey, params) {
3606
3586
  url += `&apiKey=${apiKey}`;
3607
3587
  }
3608
3588
  url += `&v=${SDK_VERSION}`;
3609
- console.log("url", url);
3610
3589
  const response = yield fetch(url);
3611
3590
  return response;
3612
3591
  } catch (error) {
@@ -3697,7 +3676,6 @@ function processFlattenRoutes(routerData) {
3697
3676
  flattenedPaths[i].isLastUseOfIntermediateToken = true;
3698
3677
  }
3699
3678
  }
3700
- console.log("flattenedPaths", flattenedPaths);
3701
3679
  return {
3702
3680
  quoteID: routerData.quoteID || "",
3703
3681
  amountIn: routerData.amountIn,
@@ -4016,18 +3994,17 @@ P.hyperbolicTangent = P.tanh = function() {
4016
3994
  return divide(x.sinh(), x.cosh(), Ctor.precision = pr, Ctor.rounding = rm);
4017
3995
  };
4018
3996
  P.inverseCosine = P.acos = function() {
4019
- var halfPi, x = this, Ctor = x.constructor, k = x.abs().cmp(1), pr = Ctor.precision, rm = Ctor.rounding;
3997
+ var x = this, Ctor = x.constructor, k = x.abs().cmp(1), pr = Ctor.precision, rm = Ctor.rounding;
4020
3998
  if (k !== -1) {
4021
3999
  return k === 0 ? x.isNeg() ? getPi(Ctor, pr, rm) : new Ctor(0) : new Ctor(NaN);
4022
4000
  }
4023
4001
  if (x.isZero()) return getPi(Ctor, pr + 4, rm).times(0.5);
4024
4002
  Ctor.precision = pr + 6;
4025
4003
  Ctor.rounding = 1;
4026
- x = x.asin();
4027
- halfPi = getPi(Ctor, pr + 4, rm).times(0.5);
4004
+ x = new Ctor(1).minus(x).div(x.plus(1)).sqrt().atan();
4028
4005
  Ctor.precision = pr;
4029
4006
  Ctor.rounding = rm;
4030
- return halfPi.minus(x);
4007
+ return x.times(2);
4031
4008
  };
4032
4009
  P.inverseHyperbolicCosine = P.acosh = function() {
4033
4010
  var pr, rm, x = this, Ctor = x.constructor;
@@ -4799,7 +4776,7 @@ function cosine(Ctor, x) {
4799
4776
  Ctor.precision -= k;
4800
4777
  return x;
4801
4778
  }
4802
- var divide = /* @__PURE__ */ function() {
4779
+ var divide = /* @__PURE__ */ (function() {
4803
4780
  function multiplyInteger(x, k, base) {
4804
4781
  var temp, carry = 0, i = x.length;
4805
4782
  for (x = x.slice(); i--; ) {
@@ -4957,7 +4934,7 @@ var divide = /* @__PURE__ */ function() {
4957
4934
  }
4958
4935
  return q;
4959
4936
  };
4960
- }();
4937
+ })();
4961
4938
  function finalise(x, sd, rm, isTruncated) {
4962
4939
  var digits, i, j, k, rd, roundUp, w, xd, xdi, Ctor = x.constructor;
4963
4940
  out: if (sd != null) {
@@ -5125,14 +5102,16 @@ function intPow(Ctor, x, n, pr) {
5125
5102
  function isOdd(n) {
5126
5103
  return n.d[n.d.length - 1] & 1;
5127
5104
  }
5128
- function maxOrMin(Ctor, args, ltgt) {
5129
- var y, x = new Ctor(args[0]), i = 0;
5105
+ function maxOrMin(Ctor, args, n) {
5106
+ var k, y, x = new Ctor(args[0]), i = 0;
5130
5107
  for (; ++i < args.length; ) {
5131
5108
  y = new Ctor(args[i]);
5132
5109
  if (!y.s) {
5133
5110
  x = y;
5134
5111
  break;
5135
- } else if (x[ltgt](y)) {
5112
+ }
5113
+ k = x.cmp(y);
5114
+ if (k === n || k === 0 && x.s === n) {
5136
5115
  x = y;
5137
5116
  }
5138
5117
  }
@@ -5675,24 +5654,35 @@ function clone(obj) {
5675
5654
  x.d = [v];
5676
5655
  }
5677
5656
  return;
5678
- } else if (v * 0 !== 0) {
5657
+ }
5658
+ if (v * 0 !== 0) {
5679
5659
  if (!v) x.s = NaN;
5680
5660
  x.e = NaN;
5681
5661
  x.d = null;
5682
5662
  return;
5683
5663
  }
5684
5664
  return parseDecimal(x, v.toString());
5685
- } else if (t !== "string") {
5686
- throw Error(invalidArgument + v);
5687
5665
  }
5688
- if ((i2 = v.charCodeAt(0)) === 45) {
5689
- v = v.slice(1);
5690
- x.s = -1;
5691
- } else {
5692
- if (i2 === 43) v = v.slice(1);
5693
- x.s = 1;
5666
+ if (t === "string") {
5667
+ if ((i2 = v.charCodeAt(0)) === 45) {
5668
+ v = v.slice(1);
5669
+ x.s = -1;
5670
+ } else {
5671
+ if (i2 === 43) v = v.slice(1);
5672
+ x.s = 1;
5673
+ }
5674
+ return isDecimal.test(v) ? parseDecimal(x, v) : parseOther(x, v);
5675
+ }
5676
+ if (t === "bigint") {
5677
+ if (v < 0) {
5678
+ v = -v;
5679
+ x.s = -1;
5680
+ } else {
5681
+ x.s = 1;
5682
+ }
5683
+ return parseDecimal(x, v.toString());
5694
5684
  }
5695
- return isDecimal.test(v) ? parseDecimal(x, v) : parseOther(x, v);
5685
+ throw Error(invalidArgument + v);
5696
5686
  }
5697
5687
  Decimal2.prototype = P;
5698
5688
  Decimal2.ROUND_UP = 0;
@@ -5799,10 +5789,10 @@ function log10(x) {
5799
5789
  return new this(x).log(10);
5800
5790
  }
5801
5791
  function max() {
5802
- return maxOrMin(this, arguments, "lt");
5792
+ return maxOrMin(this, arguments, -1);
5803
5793
  }
5804
5794
  function min() {
5805
- return maxOrMin(this, arguments, "gt");
5795
+ return maxOrMin(this, arguments, 1);
5806
5796
  }
5807
5797
  function mod(x, y) {
5808
5798
  return new this(x).mod(y);
@@ -6713,7 +6703,7 @@ var SpringsuiRouter = class {
6713
6703
  const args = [
6714
6704
  swapContext,
6715
6705
  txb.object(swapData.poolId),
6716
- txb.object(SUI_SYSTEM_STATE_OBJECT_ID),
6706
+ txb.object("0x5"),
6717
6707
  txb.pure.u64(swapData.amountIn),
6718
6708
  txb.pure.bool(swapData.direction)
6719
6709
  ];
@@ -7395,7 +7385,8 @@ var VoloRouter = class {
7395
7385
  swapContext,
7396
7386
  txb.object(this.stakePool),
7397
7387
  txb.object(this.metadata),
7398
- txb.object(SUI_SYSTEM_STATE_OBJECT_ID),
7388
+ txb.object("0x5"),
7389
+ // SuiSystemState
7399
7390
  txb.pure.bool(swapData.direction),
7400
7391
  txb.pure.u64(swapData.amountIn)
7401
7392
  ];
@@ -7446,7 +7437,8 @@ var AfsuiRouter = class {
7446
7437
  swapContext,
7447
7438
  txb.object(this.stakedSuiVault),
7448
7439
  txb.object(this.safe),
7449
- txb.object(SUI_SYSTEM_STATE_OBJECT_ID),
7440
+ txb.object("0x5"),
7441
+ // SuiSystemState
7450
7442
  txb.object(this.referVault),
7451
7443
  txb.object(this.validator),
7452
7444
  txb.pure.bool(swapData.direction),
@@ -7491,7 +7483,8 @@ var HaedalRouter = class {
7491
7483
  const args = [
7492
7484
  swapContext,
7493
7485
  txb.object(swapData.poolId),
7494
- txb.object(SUI_SYSTEM_STATE_OBJECT_ID),
7486
+ txb.object("0x5"),
7487
+ // SuiSystemState
7495
7488
  txb.pure.bool(swapData.direction),
7496
7489
  txb.pure.u64(swapData.amountIn)
7497
7490
  ];
@@ -8250,7 +8243,7 @@ var _AggregatorClient = class _AggregatorClient {
8250
8243
  this.apiKey = params.apiKey || "";
8251
8244
  this.partner = params.partner;
8252
8245
  if (params.overlayFeeRate) {
8253
- if (params.overlayFeeRate > 0 && params.overlayFeeRate <= CLIENT_CONFIG.MAX_OVERLAY_FEE_RATE_PARAMS) {
8246
+ if (params.overlayFeeRate > 0 && params.overlayFeeRate <= CLIENT_CONFIG.MAX_OVERLAY_FEE_RATE) {
8254
8247
  this.overlayFeeRate = params.overlayFeeRate * AGGREGATOR_V3_CONFIG.FEE_DENOMINATOR;
8255
8248
  if (this.overlayFeeRate > AGGREGATOR_V3_CONFIG.MAX_FEE_RATE) {
8256
8249
  throw new Error(
@@ -8891,7 +8884,7 @@ function recordFirstCoinIndex(paths) {
8891
8884
  return newCoinRecord;
8892
8885
  }
8893
8886
  function checkOverlayFeeConfig(overlayFeeRate, overlayFeeReceiver) {
8894
- if (overlayFeeRate > CLIENT_CONFIG.MAX_FEE_RATE) {
8887
+ if (overlayFeeRate > CLIENT_CONFIG.MAX_OVERLAY_FEE_RATE_NUMERATOR) {
8895
8888
  throw new Error(CLIENT_CONFIG.ERRORS.INVALID_OVERLAY_FEE_RATE);
8896
8889
  }
8897
8890
  if (overlayFeeReceiver === "0x0" && overlayFeeRate > 0) {
@@ -8912,16 +8905,19 @@ var getDefaultSuiInputType = (value) => {
8912
8905
  if (typeof value === "boolean") {
8913
8906
  return "bool";
8914
8907
  }
8915
- throw new AggregateError(`Unknown type for value: ${value}`, "InvalidType" /* InvalidType */);
8908
+ throw new AggregatorError(
8909
+ `Unknown type for value: ${value}`,
8910
+ "InvalidType" /* InvalidType */
8911
+ );
8916
8912
  };
8917
8913
  /*! Bundled license information:
8918
8914
 
8919
8915
  decimal.js/decimal.mjs:
8920
8916
  (*!
8921
- * decimal.js v10.4.3
8917
+ * decimal.js v10.6.0
8922
8918
  * An arbitrary-precision Decimal type for JavaScript.
8923
8919
  * https://github.com/MikeMcl/decimal.js
8924
- * Copyright (c) 2022 Michael Mclaughlin <M8ch88l@gmail.com>
8920
+ * Copyright (c) 2025 Michael Mclaughlin <M8ch88l@gmail.com>
8925
8921
  * MIT Licence
8926
8922
  *)
8927
8923
  */