@cetusprotocol/aggregator-sdk 0.0.0-experimental-20250721190846 → 0.0.0-experimental-20250723103308

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
@@ -1,7 +1,7 @@
1
1
  import { SuiClient, getFullnodeUrl } from '@mysten/sui/client';
2
2
  import { normalizeSuiObjectId, SUI_FRAMEWORK_ADDRESS, SUI_CLOCK_OBJECT_ID } from '@mysten/sui/utils';
3
3
  import JSONbig from 'json-bigint';
4
- import { coinWithBalance, Transaction } from '@mysten/sui/transactions';
4
+ import { Transaction, coinWithBalance } from '@mysten/sui/transactions';
5
5
  import { SuiPythClient, SuiPriceServiceConnection } from '@pythnetwork/pyth-sui-js';
6
6
 
7
7
  var __create = Object.create;
@@ -4989,36 +4989,36 @@ var Env = /* @__PURE__ */ ((Env2) => {
4989
4989
  Env2[Env2["Testnet"] = 1] = "Testnet";
4990
4990
  return Env2;
4991
4991
  })(Env || {});
4992
- var Dex = /* @__PURE__ */ ((Dex29) => {
4993
- Dex29["CETUS"] = "CETUS";
4994
- Dex29["KRIYA"] = "KRIYA";
4995
- Dex29["FLOWX"] = "FLOWX";
4996
- Dex29["TURBOS"] = "TURBOS";
4997
- Dex29["AFTERMATH"] = "AFTERMATH";
4998
- Dex29["DEEPBOOK"] = "DEEPBOOK";
4999
- Dex29["DEEPBOOKV3"] = "DEEPBOOKV3";
5000
- Dex29["BLUEMOVE"] = "BLUEMOVE";
5001
- Dex29["BLUEFIN"] = "BLUEFIN";
5002
- Dex29["MOMENTUM"] = "MOMENTUM";
5003
- Dex29["MAGMA"] = "MAGMA";
5004
- Dex29["SCALLOP"] = "SCALLOP";
5005
- Dex29["STEAMM"] = "STEAMM";
5006
- Dex29["KRIYAV3"] = "KRIYAV3";
5007
- Dex29["FLOWXV3"] = "FLOWXV3";
5008
- Dex29["SUILEND"] = "SUILEND";
5009
- Dex29["SPRINGSUI"] = "SPRINGSUI";
5010
- Dex29["HAEDALPMM"] = "HAEDALPMM";
5011
- Dex29["OBRIC"] = "OBRIC";
5012
- Dex29["SEVENK"] = "SEVENK";
5013
- Dex29["STEAMM_OMM"] = "STEAMM_OMM";
5014
- Dex29["STEAMM_OMM_V2"] = "STEAMM_OMM_V2";
5015
- Dex29["METASTABLE"] = "METASTABLE";
5016
- Dex29["ALPHAFI"] = "ALPHAFI";
5017
- Dex29["VOLO"] = "VOLO";
5018
- Dex29["AFSUI"] = "AFSUI";
5019
- Dex29["HAEDAL"] = "HAEDAL";
5020
- Dex29["HAWAL"] = "HAWAL";
5021
- return Dex29;
4992
+ var Dex = /* @__PURE__ */ ((Dex2) => {
4993
+ Dex2["CETUS"] = "CETUS";
4994
+ Dex2["KRIYA"] = "KRIYA";
4995
+ Dex2["FLOWX"] = "FLOWX";
4996
+ Dex2["TURBOS"] = "TURBOS";
4997
+ Dex2["AFTERMATH"] = "AFTERMATH";
4998
+ Dex2["DEEPBOOK"] = "DEEPBOOK";
4999
+ Dex2["DEEPBOOKV3"] = "DEEPBOOKV3";
5000
+ Dex2["BLUEMOVE"] = "BLUEMOVE";
5001
+ Dex2["BLUEFIN"] = "BLUEFIN";
5002
+ Dex2["MOMENTUM"] = "MOMENTUM";
5003
+ Dex2["MAGMA"] = "MAGMA";
5004
+ Dex2["SCALLOP"] = "SCALLOP";
5005
+ Dex2["STEAMM"] = "STEAMM";
5006
+ Dex2["KRIYAV3"] = "KRIYAV3";
5007
+ Dex2["FLOWXV3"] = "FLOWXV3";
5008
+ Dex2["SUILEND"] = "SUILEND";
5009
+ Dex2["SPRINGSUI"] = "SPRINGSUI";
5010
+ Dex2["HAEDALPMM"] = "HAEDALPMM";
5011
+ Dex2["OBRIC"] = "OBRIC";
5012
+ Dex2["SEVENK"] = "SEVENK";
5013
+ Dex2["STEAMM_OMM"] = "STEAMM_OMM";
5014
+ Dex2["STEAMM_OMM_V2"] = "STEAMM_OMM_V2";
5015
+ Dex2["METASTABLE"] = "METASTABLE";
5016
+ Dex2["ALPHAFI"] = "ALPHAFI";
5017
+ Dex2["VOLO"] = "VOLO";
5018
+ Dex2["AFSUI"] = "AFSUI";
5019
+ Dex2["HAEDAL"] = "HAEDAL";
5020
+ Dex2["HAWAL"] = "HAWAL";
5021
+ return Dex2;
5022
5022
  })(Dex || {});
5023
5023
  var AggregatorConfig = class {
5024
5024
  constructor(endpoint, fullNodeUrl, signer, packages, env) {
@@ -5185,6 +5185,7 @@ var SuiZeroCoinFn = "0x2::coin::zero";
5185
5185
  var DEEPBOOK_PACKAGE_ID = "0x000000000000000000000000000000000000000000000000000000000000dee9";
5186
5186
  var DEEPBOOK_PUBLISHED_AT = "0x000000000000000000000000000000000000000000000000000000000000dee9";
5187
5187
  var CETUS_PUBLISHED_AT = "0x70968826ad1b4ba895753f634b0aea68d0672908ca1075a2abdf0fc9e0b2fc6a";
5188
+ var CETUS_V3_PUBLISHED_AT = "0xb85d33ef69a8308f7b1ae341e48bd8817476c144f14344d3ce612c16480d16f2";
5188
5189
  var MAINNET_CETUS_GLOBAL_CONFIG_ID = "0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f";
5189
5190
  var TESTNET_CETUS_GLOBAL_CONFIG_ID = "0x6f4149091a5aea0e818e7243a13adcfb403842d670b9a2089de058512620687a";
5190
5191
  var MAINNET_FLOWX_AMM_CONTAINER_ID = "0xb65dcbf63fd3ad5d0ebfbf334780dc9f785eff38a4459e37ab08fa79576ee511";
@@ -6442,7 +6443,7 @@ function sortAndFlattenRoutes(routerData) {
6442
6443
  lastOccurrenceIndex.set(from, i);
6443
6444
  }
6444
6445
  }
6445
- for (const [tokenType, lastIndex] of lastOccurrenceIndex) {
6446
+ for (const [_tokenType, lastIndex] of lastOccurrenceIndex) {
6446
6447
  flattenedPaths[lastIndex].isLastUseOfIntermediateToken = true;
6447
6448
  }
6448
6449
  return {
@@ -6508,6 +6509,44 @@ function topologicalSortKahn(dependencies) {
6508
6509
  return result;
6509
6510
  }
6510
6511
 
6512
+ // src/utils/aggregator-config.ts
6513
+ var AggregatorConfig2 = class {
6514
+ static setEnv(env) {
6515
+ this.currentEnv = env;
6516
+ }
6517
+ static getEnv() {
6518
+ return this.currentEnv;
6519
+ }
6520
+ static getPublishedAtV2(env) {
6521
+ const targetEnv = env != null ? env : this.currentEnv;
6522
+ return this.publishedAtV2Map.get(targetEnv) || "";
6523
+ }
6524
+ static getPublishedAtV2Extend(env) {
6525
+ const targetEnv = env != null ? env : this.currentEnv;
6526
+ return this.publishedAtV2ExtendMap.get(targetEnv) || "";
6527
+ }
6528
+ static getPublishedAtV2Extend2(env) {
6529
+ const targetEnv = env != null ? env : this.currentEnv;
6530
+ return this.publishedAtV2Extend2Map.get(targetEnv) || "";
6531
+ }
6532
+ };
6533
+ AggregatorConfig2.publishedAtV2Map = /* @__PURE__ */ new Map([
6534
+ [0 /* Mainnet */, "0x8ae871505a80d8bf6bf9c05906cda6edfeea460c85bebe2e26a4313f5e67874a"],
6535
+ // version 12
6536
+ [1 /* Testnet */, "0x52eae33adeb44de55cfb3f281d4cc9e02d976181c0952f5323648b5717b33934"]
6537
+ ]);
6538
+ AggregatorConfig2.publishedAtV2ExtendMap = /* @__PURE__ */ new Map([
6539
+ [0 /* Mainnet */, "0x8a2f7a5b20665eeccc79de3aa37c3b6c473eca233ada1e1cd4678ec07d4d4073"],
6540
+ // version 17
6541
+ [1 /* Testnet */, "0xabb6a81c8a216828e317719e06125de5bb2cb0fe8f9916ff8c023ca5be224c78"]
6542
+ ]);
6543
+ AggregatorConfig2.publishedAtV2Extend2Map = /* @__PURE__ */ new Map([
6544
+ [0 /* Mainnet */, "0x5cb7499fc49c2642310e24a4ecffdbee00133f97e80e2b45bca90c64d55de880"],
6545
+ // version 8
6546
+ [1 /* Testnet */, "0x0"]
6547
+ ]);
6548
+ AggregatorConfig2.currentEnv = 0 /* Mainnet */;
6549
+
6511
6550
  // src/transaction/aftermath.ts
6512
6551
  var import_bn5 = __toESM(require_bn());
6513
6552
  var Aftermath = class {
@@ -6532,7 +6571,7 @@ var Aftermath = class {
6532
6571
  if (path.extendedDetails == null) {
6533
6572
  throw new Error("Extended details not supported");
6534
6573
  } else {
6535
- if (path.extendedDetails.aftermathLpSupplyType == null) {
6574
+ if (path.extendedDetails.aftermath_lp_supply_type == null) {
6536
6575
  throw new Error("LP supply type not supported");
6537
6576
  }
6538
6577
  }
@@ -6547,13 +6586,16 @@ var Aftermath = class {
6547
6586
  txb.pure.u64(this.slippage),
6548
6587
  inputCoin
6549
6588
  ];
6550
- const publishedAt = getAggregatorV2PublishedAt(client.publishedAtV2(), packages);
6589
+ const publishedAt = getAggregatorV2PublishedAt(
6590
+ AggregatorConfig2.getPublishedAtV2(),
6591
+ packages
6592
+ );
6551
6593
  const res = txb.moveCall({
6552
6594
  target: `${publishedAt}::aftermath::${func}`,
6553
6595
  typeArguments: [
6554
6596
  coinAType,
6555
6597
  coinBType,
6556
- path.extendedDetails.aftermathLpSupplyType
6598
+ path.extendedDetails.aftermath_lp_supply_type
6557
6599
  ],
6558
6600
  arguments: args
6559
6601
  });
@@ -6771,7 +6813,7 @@ var Turbos = class {
6771
6813
  if (path.extendedDetails == null) {
6772
6814
  throw new Error("Extended details not supported");
6773
6815
  } else {
6774
- if (path.extendedDetails.turbosFeeType == null) {
6816
+ if (path.extendedDetails.turbos_fee_type == null) {
6775
6817
  throw new Error("Turbos fee type not supported");
6776
6818
  }
6777
6819
  }
@@ -6781,10 +6823,17 @@ var Turbos = class {
6781
6823
  txb.object(CLOCK_ADDRESS),
6782
6824
  txb.object(this.versioned)
6783
6825
  ];
6784
- const publishedAt = getAggregatorV2PublishedAt(client.publishedAtV2(), packages);
6826
+ const publishedAt = getAggregatorV2PublishedAt(
6827
+ client.publishedAtV2(),
6828
+ packages
6829
+ );
6785
6830
  const res = txb.moveCall({
6786
6831
  target: `${publishedAt}::turbos::${func}`,
6787
- typeArguments: [coinAType, coinBType, path.extendedDetails.turbosFeeType],
6832
+ typeArguments: [
6833
+ coinAType,
6834
+ coinBType,
6835
+ path.extendedDetails.turbos_fee_type
6836
+ ],
6788
6837
  arguments: args
6789
6838
  });
6790
6839
  return res;
@@ -7271,11 +7320,11 @@ var HaedalPmm = class {
7271
7320
  if (path.extendedDetails == null) {
7272
7321
  throw new Error("Extended details not supported haedal pmm");
7273
7322
  } else {
7274
- if (!path.extendedDetails.haedalPmmBasePriceSeed || !path.extendedDetails.haedalPmmQuotePriceSeed) {
7323
+ if (!path.extendedDetails.haedal_pmm_base_price_seed || !path.extendedDetails.haedal_pmm_quote_price_seed) {
7275
7324
  throw new Error("Base price seed or quote price seed not supported");
7276
7325
  }
7277
- basePriceSeed = path.extendedDetails.haedalPmmBasePriceSeed;
7278
- quotePriceSeed = path.extendedDetails.haedalPmmQuotePriceSeed;
7326
+ basePriceSeed = path.extendedDetails.haedal_pmm_base_price_seed;
7327
+ quotePriceSeed = path.extendedDetails.haedal_pmm_quote_price_seed;
7279
7328
  }
7280
7329
  const basePriceInfoObjectId = this.pythPriceIDs.get(basePriceSeed);
7281
7330
  const quotePriceInfoObjectId = this.pythPriceIDs.get(quotePriceSeed);
@@ -7346,46 +7395,49 @@ var SteammCPMM = class {
7346
7395
  if (path.extendedDetails == null) {
7347
7396
  throw new Error("Extended details not supported");
7348
7397
  } else {
7349
- if (path.extendedDetails.steammBankA == null) {
7398
+ if (path.extendedDetails.steamm_bank_a == null) {
7350
7399
  throw new Error("Steamm bank a type not supported");
7351
7400
  }
7352
- if (path.extendedDetails.steammBankB == null) {
7401
+ if (path.extendedDetails.steamm_bank_b == null) {
7353
7402
  throw new Error("Steamm bank b type not supported");
7354
7403
  }
7355
- if (path.extendedDetails.steammLendingMarket == null) {
7404
+ if (path.extendedDetails.steamm_lending_market == null) {
7356
7405
  throw new Error("Steamm lending market not supported");
7357
7406
  }
7358
- if (path.extendedDetails.steammLendingMarketType == null) {
7407
+ if (path.extendedDetails.steamm_lending_market_type == null) {
7359
7408
  throw new Error("Steamm lending market type not supported");
7360
7409
  }
7361
- if (path.extendedDetails.steammBCoinAType == null) {
7410
+ if (path.extendedDetails.steamm_b_coin_a_type == null) {
7362
7411
  throw new Error("Steamm b coin a type not supported");
7363
7412
  }
7364
- if (path.extendedDetails.steammBCoinBType == null) {
7413
+ if (path.extendedDetails.steamm_b_coin_b_type == null) {
7365
7414
  throw new Error("Steamm b coin b type not supported");
7366
7415
  }
7367
- if (path.extendedDetails.steammLPToken == null) {
7416
+ if (path.extendedDetails.steamm_lp_token == null) {
7368
7417
  throw new Error("Steamm lp token not supported");
7369
7418
  }
7370
7419
  }
7371
7420
  const args = [
7372
7421
  txb.object(path.id),
7373
- txb.object(path.extendedDetails.steammBankA),
7374
- txb.object(path.extendedDetails.steammBankB),
7375
- txb.object(path.extendedDetails.steammLendingMarket),
7422
+ txb.object(path.extendedDetails.steamm_bank_a),
7423
+ txb.object(path.extendedDetails.steamm_bank_b),
7424
+ txb.object(path.extendedDetails.steamm_lending_market),
7376
7425
  inputCoin,
7377
7426
  txb.object(CLOCK_ADDRESS)
7378
7427
  ];
7379
- const publishedAt = getAggregatorV2Extend2PublishedAt(client.publishedAtV2Extend2(), packages);
7428
+ const publishedAt = getAggregatorV2Extend2PublishedAt(
7429
+ client.publishedAtV2Extend2(),
7430
+ packages
7431
+ );
7380
7432
  const res = txb.moveCall({
7381
7433
  target: `${publishedAt}::steamm_cpmm::${func}`,
7382
7434
  typeArguments: [
7383
- path.extendedDetails.steammLendingMarketType,
7435
+ path.extendedDetails.steamm_lending_market_type,
7384
7436
  coinAType,
7385
7437
  coinBType,
7386
- path.extendedDetails.steammBCoinAType,
7387
- path.extendedDetails.steammBCoinBType,
7388
- path.extendedDetails.steammLPToken
7438
+ path.extendedDetails.steamm_b_coin_a_type,
7439
+ path.extendedDetails.steamm_b_coin_b_type,
7440
+ path.extendedDetails.steamm_lp_token
7389
7441
  ],
7390
7442
  arguments: args
7391
7443
  });
@@ -7409,58 +7461,60 @@ var SteammOmm = class {
7409
7461
  if (path.extendedDetails == null) {
7410
7462
  throw new Error("Extended details not supported");
7411
7463
  } else {
7412
- if (path.extendedDetails.steammBankA == null) {
7464
+ if (path.extendedDetails.steamm_bank_a == null) {
7413
7465
  throw new Error("Steamm bank a type not supported");
7414
7466
  }
7415
- if (path.extendedDetails.steammBankB == null) {
7467
+ if (path.extendedDetails.steamm_bank_b == null) {
7416
7468
  throw new Error("Steamm bank b type not supported");
7417
7469
  }
7418
- if (path.extendedDetails.steammLendingMarket == null) {
7470
+ if (path.extendedDetails.steamm_lending_market == null) {
7419
7471
  throw new Error("Steamm lending market not supported");
7420
7472
  }
7421
- if (path.extendedDetails.steammLendingMarketType == null) {
7473
+ if (path.extendedDetails.steamm_lending_market_type == null) {
7422
7474
  throw new Error("Steamm lending market type not supported");
7423
7475
  }
7424
- if (path.extendedDetails.steammBCoinAType == null) {
7476
+ if (path.extendedDetails.steamm_b_coin_a_type == null) {
7425
7477
  throw new Error("Steamm b coin a type not supported");
7426
7478
  }
7427
- if (path.extendedDetails.steammBCoinBType == null) {
7479
+ if (path.extendedDetails.steamm_b_coin_b_type == null) {
7428
7480
  throw new Error("Steamm b coin b type not supported");
7429
7481
  }
7430
- if (path.extendedDetails.steammLPToken == null) {
7482
+ if (path.extendedDetails.steamm_lp_token == null) {
7431
7483
  throw new Error("Steamm lp token not supported");
7432
7484
  }
7433
- if (path.extendedDetails.steammOracleRegistryId == null) {
7485
+ if (path.extendedDetails.steamm_oracle_registry_id == null) {
7434
7486
  throw new Error("Steamm oracle registry id not supported");
7435
7487
  }
7436
- if (path.extendedDetails.steammOracleIndexA == null) {
7488
+ if (path.extendedDetails.steamm_oracle_index_a == null) {
7437
7489
  throw new Error("Steamm oracle index a not supported");
7438
7490
  }
7439
- if (path.extendedDetails.steammOracleIndexB == null) {
7491
+ if (path.extendedDetails.steamm_oracle_index_b == null) {
7440
7492
  throw new Error("Steamm oracle index b not supported");
7441
7493
  }
7442
- if (path.extendedDetails.steammOraclePythPriceSeedA == null) {
7494
+ if (path.extendedDetails.steamm_oracle_pyth_price_seed_a == null) {
7443
7495
  throw new Error("Steamm oracle pyth price seed a not supported");
7444
7496
  }
7445
- if (path.extendedDetails.steammOraclePythPriceSeedB == null) {
7497
+ if (path.extendedDetails.steamm_oracle_pyth_price_seed_b == null) {
7446
7498
  throw new Error("Steamm oracle pyth price seed b not supported");
7447
7499
  }
7448
7500
  }
7449
7501
  const [func, coinAType, coinBType] = direction ? ["swap_a2b_v2", from, target] : ["swap_b2a_v2", target, from];
7450
- const priceSeedA = path.extendedDetails.steammOraclePythPriceSeedA;
7451
- const priceSeedB = path.extendedDetails.steammOraclePythPriceSeedB;
7502
+ const priceSeedA = path.extendedDetails.steamm_oracle_pyth_price_seed_a;
7503
+ const priceSeedB = path.extendedDetails.steamm_oracle_pyth_price_seed_b;
7452
7504
  const priceInfoObjectIdA = this.pythPriceIDs.get(priceSeedA);
7453
7505
  const priceInfoObjectIdB = this.pythPriceIDs.get(priceSeedB);
7454
7506
  if (!priceInfoObjectIdA || !priceInfoObjectIdB) {
7455
- throw new Error("Base price info object id or quote price info object id not found");
7507
+ throw new Error(
7508
+ "Base price info object id or quote price info object id not found"
7509
+ );
7456
7510
  }
7457
7511
  const oraclePriceUpdateA = txb.moveCall({
7458
7512
  target: `${this.oraclePackageId}::oracles::get_pyth_price`,
7459
7513
  typeArguments: [],
7460
7514
  arguments: [
7461
- txb.object(path.extendedDetails.steammOracleRegistryId),
7515
+ txb.object(path.extendedDetails.steamm_oracle_registry_id),
7462
7516
  txb.object(priceInfoObjectIdA),
7463
- txb.pure.u64(path.extendedDetails.steammOracleIndexA),
7517
+ txb.pure.u64(path.extendedDetails.steamm_oracle_index_a),
7464
7518
  txb.object(CLOCK_ADDRESS)
7465
7519
  ]
7466
7520
  });
@@ -7468,32 +7522,35 @@ var SteammOmm = class {
7468
7522
  target: `${this.oraclePackageId}::oracles::get_pyth_price`,
7469
7523
  typeArguments: [],
7470
7524
  arguments: [
7471
- txb.object(path.extendedDetails.steammOracleRegistryId),
7525
+ txb.object(path.extendedDetails.steamm_oracle_registry_id),
7472
7526
  txb.object(priceInfoObjectIdB),
7473
- txb.pure.u64(path.extendedDetails.steammOracleIndexB),
7527
+ txb.pure.u64(path.extendedDetails.steamm_oracle_index_b),
7474
7528
  txb.object(CLOCK_ADDRESS)
7475
7529
  ]
7476
7530
  });
7477
7531
  const args = [
7478
7532
  txb.object(path.id),
7479
- txb.object(path.extendedDetails.steammBankA),
7480
- txb.object(path.extendedDetails.steammBankB),
7481
- txb.object(path.extendedDetails.steammLendingMarket),
7533
+ txb.object(path.extendedDetails.steamm_bank_a),
7534
+ txb.object(path.extendedDetails.steamm_bank_b),
7535
+ txb.object(path.extendedDetails.steamm_lending_market),
7482
7536
  oraclePriceUpdateA,
7483
7537
  oraclePriceUpdateB,
7484
7538
  inputCoin,
7485
7539
  txb.object(CLOCK_ADDRESS)
7486
7540
  ];
7487
- const publishedAt = getAggregatorV2Extend2PublishedAt(client.publishedAtV2Extend2(), packages);
7541
+ const publishedAt = getAggregatorV2Extend2PublishedAt(
7542
+ client.publishedAtV2Extend2(),
7543
+ packages
7544
+ );
7488
7545
  const res = txb.moveCall({
7489
7546
  target: `${publishedAt}::steamm_omm::${func}`,
7490
7547
  typeArguments: [
7491
- path.extendedDetails.steammLendingMarketType,
7548
+ path.extendedDetails.steamm_lending_market_type,
7492
7549
  coinAType,
7493
7550
  coinBType,
7494
- path.extendedDetails.steammBCoinAType,
7495
- path.extendedDetails.steammBCoinBType,
7496
- path.extendedDetails.steammLPToken
7551
+ path.extendedDetails.steamm_b_coin_a_type,
7552
+ path.extendedDetails.steamm_b_coin_b_type,
7553
+ path.extendedDetails.steamm_lp_token
7497
7554
  ],
7498
7555
  arguments: args
7499
7556
  });
@@ -7524,43 +7581,50 @@ var Metastable = class {
7524
7581
  if (path.extendedDetails == null) {
7525
7582
  throw new Error("Extended details not supported metastable");
7526
7583
  } else {
7527
- if (!path.extendedDetails.metastableCreateCapPkgId || !path.extendedDetails.metastableCreateCapModule || !path.extendedDetails.metastableRegistryId || !path.extendedDetails.metastableWhitelistedAppId) {
7528
- throw new Error("CreateCapPkgId or CreateCapModule or RegistryId or WhitelistedAppId or CreateCapAllTypeParams not supported");
7584
+ if (!path.extendedDetails.metastable_create_cap_pkg_id || !path.extendedDetails.metastable_create_cap_module || !path.extendedDetails.metastable_registry_id || !path.extendedDetails.metastable_whitelisted_app_id) {
7585
+ throw new Error(
7586
+ "CreateCapPkgId or CreateCapModule or RegistryId or WhitelistedAppId or CreateCapAllTypeParams not supported"
7587
+ );
7529
7588
  }
7530
- createExchangePkgId = path.extendedDetails.metastableCreateCapPkgId;
7531
- createDepositModule = path.extendedDetails.metastableCreateCapModule;
7532
- metaSingletonId = path.extendedDetails.metastableWhitelistedAppId;
7589
+ createExchangePkgId = path.extendedDetails.metastable_create_cap_pkg_id;
7590
+ createDepositModule = path.extendedDetails.metastable_create_cap_module;
7591
+ metaSingletonId = path.extendedDetails.metastable_whitelisted_app_id;
7533
7592
  }
7534
- const createDepositCapTypeArgs = [
7535
- metaCoinType
7536
- ];
7537
- if (path.extendedDetails.metastableCreateCapAllTypeParams) {
7593
+ const createDepositCapTypeArgs = [metaCoinType];
7594
+ if (path.extendedDetails.metastable_create_cap_all_type_params) {
7538
7595
  createDepositCapTypeArgs.push(coinType);
7539
7596
  }
7540
- const depositArgs = [
7541
- txb.object(metaSingletonId),
7542
- txb.object(path.id)
7543
- ];
7597
+ const depositArgs = [txb.object(metaSingletonId), txb.object(path.id)];
7544
7598
  switch (metaCoinType) {
7545
7599
  case SUPER_SUI_TYPE: {
7546
- if (!path.extendedDetails.metastableRegistryId) {
7600
+ if (!path.extendedDetails.metastable_registry_id) {
7547
7601
  throw new Error("Not found registry id for super sui");
7548
7602
  }
7549
- depositArgs.push(txb.object(path.extendedDetails.metastableRegistryId));
7603
+ depositArgs.push(
7604
+ txb.object(path.extendedDetails.metastable_registry_id)
7605
+ );
7550
7606
  break;
7551
7607
  }
7552
7608
  case MUSD_TYPE: {
7553
- if (path.extendedDetails.metastablePriceSeed != null) {
7554
- const priceId = this.pythPriceIDs.get(path.extendedDetails.metastablePriceSeed);
7609
+ if (path.extendedDetails.metastable_price_seed != null) {
7610
+ const priceId = this.pythPriceIDs.get(
7611
+ path.extendedDetails.metastable_price_seed
7612
+ );
7555
7613
  if (priceId == null) {
7556
- throw new Error("Invalid Pyth price feed: " + path.extendedDetails.metastablePriceSeed);
7614
+ throw new Error(
7615
+ "Invalid Pyth price feed: " + path.extendedDetails.metastable_price_seed
7616
+ );
7557
7617
  }
7558
7618
  depositArgs.push(txb.object(priceId));
7559
7619
  }
7560
- if (path.extendedDetails.metastableETHPriceSeed != null) {
7561
- const priceId = this.pythPriceIDs.get(path.extendedDetails.metastableETHPriceSeed);
7620
+ if (path.extendedDetails.metastable_eth_price_seed != null) {
7621
+ const priceId = this.pythPriceIDs.get(
7622
+ path.extendedDetails.metastable_eth_price_seed
7623
+ );
7562
7624
  if (priceId == null) {
7563
- throw new Error("Invalid Pyth price feed: " + path.extendedDetails.metastableETHPriceSeed);
7625
+ throw new Error(
7626
+ "Invalid Pyth price feed: " + path.extendedDetails.metastable_eth_price_seed
7627
+ );
7564
7628
  }
7565
7629
  depositArgs.push(txb.object(priceId));
7566
7630
  }
@@ -7568,17 +7632,25 @@ var Metastable = class {
7568
7632
  break;
7569
7633
  }
7570
7634
  case METH_TYPE: {
7571
- if (path.extendedDetails.metastablePriceSeed != null) {
7572
- const priceId = this.pythPriceIDs.get(path.extendedDetails.metastablePriceSeed);
7635
+ if (path.extendedDetails.metastable_price_seed != null) {
7636
+ const priceId = this.pythPriceIDs.get(
7637
+ path.extendedDetails.metastable_price_seed
7638
+ );
7573
7639
  if (priceId == null) {
7574
- throw new Error("Invalid Pyth price feed: " + path.extendedDetails.metastablePriceSeed);
7640
+ throw new Error(
7641
+ "Invalid Pyth price feed: " + path.extendedDetails.metastable_price_seed
7642
+ );
7575
7643
  }
7576
7644
  depositArgs.push(txb.object(priceId));
7577
7645
  }
7578
- if (path.extendedDetails.metastableETHPriceSeed != null) {
7579
- const priceId = this.pythPriceIDs.get(path.extendedDetails.metastableETHPriceSeed);
7646
+ if (path.extendedDetails.metastable_eth_price_seed != null) {
7647
+ const priceId = this.pythPriceIDs.get(
7648
+ path.extendedDetails.metastable_eth_price_seed
7649
+ );
7580
7650
  if (priceId == null) {
7581
- throw new Error("Invalid Pyth price feed: " + path.extendedDetails.metastableETHPriceSeed);
7651
+ throw new Error(
7652
+ "Invalid Pyth price feed: " + path.extendedDetails.metastable_eth_price_seed
7653
+ );
7582
7654
  }
7583
7655
  depositArgs.push(txb.object(priceId));
7584
7656
  }
@@ -7599,13 +7671,13 @@ var Metastable = class {
7599
7671
  depositResult,
7600
7672
  inputCoin
7601
7673
  ];
7602
- const publishedAt = getAggregatorV2ExtendPublishedAt(client.publishedAtV2Extend(), packages);
7674
+ const publishedAt = getAggregatorV2ExtendPublishedAt(
7675
+ client.publishedAtV2Extend(),
7676
+ packages
7677
+ );
7603
7678
  const res = txb.moveCall({
7604
7679
  target: `${publishedAt}::metastable::${func}`,
7605
- typeArguments: [
7606
- coinType,
7607
- metaCoinType
7608
- ],
7680
+ typeArguments: [coinType, metaCoinType],
7609
7681
  arguments: swapArgs
7610
7682
  });
7611
7683
  return res;
@@ -7633,17 +7705,17 @@ var Obric = class {
7633
7705
  if (path.extendedDetails == null) {
7634
7706
  throw new Error("Extended details not supported in obric");
7635
7707
  } else {
7636
- if (path.extendedDetails.obricCoinAPriceSeed && path.extendedDetails.obricCoinBPriceSeed) {
7637
- coinAPriceSeed = path.extendedDetails.obricCoinAPriceSeed;
7708
+ if (path.extendedDetails.obric_coin_a_price_seed && path.extendedDetails.obric_coin_b_price_seed) {
7709
+ coinAPriceSeed = path.extendedDetails.obric_coin_a_price_seed;
7638
7710
  coinAPriceInfoObjectId = this.pythPriceIDs.get(coinAPriceSeed);
7639
- coinBPriceSeed = path.extendedDetails.obricCoinBPriceSeed;
7711
+ coinBPriceSeed = path.extendedDetails.obric_coin_b_price_seed;
7640
7712
  coinBPriceInfoObjectId = this.pythPriceIDs.get(coinBPriceSeed);
7641
7713
  } else {
7642
- if (!path.extendedDetails.obricCoinAPriceId || !path.extendedDetails.obricCoinBPriceId) {
7714
+ if (!path.extendedDetails.obric_coin_a_price_id || !path.extendedDetails.obric_coin_b_price_id) {
7643
7715
  throw new Error("Base price id or quote price id not supported");
7644
7716
  } else {
7645
- coinAPriceInfoObjectId = path.extendedDetails.obricCoinAPriceId;
7646
- coinBPriceInfoObjectId = path.extendedDetails.obricCoinBPriceId;
7717
+ coinAPriceInfoObjectId = path.extendedDetails.obric_coin_a_price_id;
7718
+ coinBPriceInfoObjectId = path.extendedDetails.obric_coin_b_price_id;
7647
7719
  }
7648
7720
  }
7649
7721
  }
@@ -7747,58 +7819,60 @@ var SteammOmmV2 = class {
7747
7819
  if (path.extendedDetails == null) {
7748
7820
  throw new Error("Extended details not supported");
7749
7821
  } else {
7750
- if (path.extendedDetails.steammBankA == null) {
7822
+ if (path.extendedDetails.steamm_bank_a == null) {
7751
7823
  throw new Error("Steamm bank a type not supported");
7752
7824
  }
7753
- if (path.extendedDetails.steammBankB == null) {
7825
+ if (path.extendedDetails.steamm_bank_b == null) {
7754
7826
  throw new Error("Steamm bank b type not supported");
7755
7827
  }
7756
- if (path.extendedDetails.steammLendingMarket == null) {
7828
+ if (path.extendedDetails.steamm_lending_market == null) {
7757
7829
  throw new Error("Steamm lending market not supported");
7758
7830
  }
7759
- if (path.extendedDetails.steammLendingMarketType == null) {
7831
+ if (path.extendedDetails.steamm_lending_market_type == null) {
7760
7832
  throw new Error("Steamm lending market type not supported");
7761
7833
  }
7762
- if (path.extendedDetails.steammBCoinAType == null) {
7834
+ if (path.extendedDetails.steamm_b_coin_a_type == null) {
7763
7835
  throw new Error("Steamm b coin a type not supported");
7764
7836
  }
7765
- if (path.extendedDetails.steammBCoinBType == null) {
7837
+ if (path.extendedDetails.steamm_b_coin_b_type == null) {
7766
7838
  throw new Error("Steamm b coin b type not supported");
7767
7839
  }
7768
- if (path.extendedDetails.steammLPToken == null) {
7840
+ if (path.extendedDetails.steamm_lp_token == null) {
7769
7841
  throw new Error("Steamm lp token not supported");
7770
7842
  }
7771
- if (path.extendedDetails.steammOracleRegistryId == null) {
7843
+ if (path.extendedDetails.steamm_oracle_registry_id == null) {
7772
7844
  throw new Error("Steamm oracle registry id not supported");
7773
7845
  }
7774
- if (path.extendedDetails.steammOracleIndexA == null) {
7846
+ if (path.extendedDetails.steamm_oracle_index_a == null) {
7775
7847
  throw new Error("Steamm oracle index a not supported");
7776
7848
  }
7777
- if (path.extendedDetails.steammOracleIndexB == null) {
7849
+ if (path.extendedDetails.steamm_oracle_index_b == null) {
7778
7850
  throw new Error("Steamm oracle index b not supported");
7779
7851
  }
7780
- if (path.extendedDetails.steammOraclePythPriceSeedA == null) {
7852
+ if (path.extendedDetails.steamm_oracle_pyth_price_seed_a == null) {
7781
7853
  throw new Error("Steamm oracle pyth price seed a not supported");
7782
7854
  }
7783
- if (path.extendedDetails.steammOraclePythPriceSeedB == null) {
7855
+ if (path.extendedDetails.steamm_oracle_pyth_price_seed_b == null) {
7784
7856
  throw new Error("Steamm oracle pyth price seed b not supported");
7785
7857
  }
7786
7858
  }
7787
7859
  const [func, coinAType, coinBType] = direction ? ["swap_a2b", from, target] : ["swap_b2a", target, from];
7788
- const priceSeedA = path.extendedDetails.steammOraclePythPriceSeedA;
7789
- const priceSeedB = path.extendedDetails.steammOraclePythPriceSeedB;
7860
+ const priceSeedA = path.extendedDetails.steamm_oracle_pyth_price_seed_a;
7861
+ const priceSeedB = path.extendedDetails.steamm_oracle_pyth_price_seed_b;
7790
7862
  const priceInfoObjectIdA = this.pythPriceIDs.get(priceSeedA);
7791
7863
  const priceInfoObjectIdB = this.pythPriceIDs.get(priceSeedB);
7792
7864
  if (!priceInfoObjectIdA || !priceInfoObjectIdB) {
7793
- throw new Error("Base price info object id or quote price info object id not found");
7865
+ throw new Error(
7866
+ "Base price info object id or quote price info object id not found"
7867
+ );
7794
7868
  }
7795
7869
  const oraclePriceUpdateA = txb.moveCall({
7796
7870
  target: `${this.oraclePackageId}::oracles::get_pyth_price`,
7797
7871
  typeArguments: [],
7798
7872
  arguments: [
7799
- txb.object(path.extendedDetails.steammOracleRegistryId),
7873
+ txb.object(path.extendedDetails.steamm_oracle_registry_id),
7800
7874
  txb.object(priceInfoObjectIdA),
7801
- txb.pure.u64(path.extendedDetails.steammOracleIndexA),
7875
+ txb.pure.u64(path.extendedDetails.steamm_oracle_index_a),
7802
7876
  txb.object(CLOCK_ADDRESS)
7803
7877
  ]
7804
7878
  });
@@ -7806,32 +7880,35 @@ var SteammOmmV2 = class {
7806
7880
  target: `${this.oraclePackageId}::oracles::get_pyth_price`,
7807
7881
  typeArguments: [],
7808
7882
  arguments: [
7809
- txb.object(path.extendedDetails.steammOracleRegistryId),
7883
+ txb.object(path.extendedDetails.steamm_oracle_registry_id),
7810
7884
  txb.object(priceInfoObjectIdB),
7811
- txb.pure.u64(path.extendedDetails.steammOracleIndexB),
7885
+ txb.pure.u64(path.extendedDetails.steamm_oracle_index_b),
7812
7886
  txb.object(CLOCK_ADDRESS)
7813
7887
  ]
7814
7888
  });
7815
7889
  const args = [
7816
7890
  txb.object(path.id),
7817
- txb.object(path.extendedDetails.steammBankA),
7818
- txb.object(path.extendedDetails.steammBankB),
7819
- txb.object(path.extendedDetails.steammLendingMarket),
7891
+ txb.object(path.extendedDetails.steamm_bank_a),
7892
+ txb.object(path.extendedDetails.steamm_bank_b),
7893
+ txb.object(path.extendedDetails.steamm_lending_market),
7820
7894
  oraclePriceUpdateA,
7821
7895
  oraclePriceUpdateB,
7822
7896
  inputCoin,
7823
7897
  txb.object(CLOCK_ADDRESS)
7824
7898
  ];
7825
- const publishedAt = getAggregatorV2Extend2PublishedAt(client.publishedAtV2Extend2(), packages);
7899
+ const publishedAt = getAggregatorV2Extend2PublishedAt(
7900
+ client.publishedAtV2Extend2(),
7901
+ packages
7902
+ );
7826
7903
  const res = txb.moveCall({
7827
7904
  target: `${publishedAt}::steamm_omm_v2::${func}`,
7828
7905
  typeArguments: [
7829
- path.extendedDetails.steammLendingMarketType,
7906
+ path.extendedDetails.steamm_lending_market_type,
7830
7907
  coinAType,
7831
7908
  coinBType,
7832
- path.extendedDetails.steammBCoinAType,
7833
- path.extendedDetails.steammBCoinBType,
7834
- path.extendedDetails.steammLPToken
7909
+ path.extendedDetails.steamm_b_coin_a_type,
7910
+ path.extendedDetails.steamm_b_coin_b_type,
7911
+ path.extendedDetails.steamm_lp_token
7835
7912
  ],
7836
7913
  arguments: args
7837
7914
  });
@@ -7890,14 +7967,14 @@ var Sevenk = class {
7890
7967
  if (path.extendedDetails == null) {
7891
7968
  throw new Error("Extended details not supported haedal pmm");
7892
7969
  } else {
7893
- if (!path.extendedDetails.sevenkCoinAPriceSeed || !path.extendedDetails.sevenkCoinBPriceSeed || !path.extendedDetails.sevenkCoinAOracleId || !path.extendedDetails.sevenkCoinBOracleId || !path.extendedDetails.sevenkLPCapType) {
7970
+ if (!path.extendedDetails.sevenk_coin_a_price_seed || !path.extendedDetails.sevenk_coin_b_price_seed || !path.extendedDetails.sevenk_oracle_config_a || !path.extendedDetails.sevenk_oracle_config_b || !path.extendedDetails.sevenk_lp_cap_type) {
7894
7971
  throw new Error("Base price seed or quote price seed not supported");
7895
7972
  }
7896
- coinAPriceSeed = path.extendedDetails.sevenkCoinAPriceSeed;
7897
- coinBPriceSeed = path.extendedDetails.sevenkCoinBPriceSeed;
7898
- coinAOracleId = path.extendedDetails.sevenkCoinAOracleId;
7899
- coinBOracleId = path.extendedDetails.sevenkCoinBOracleId;
7900
- lpCapType = path.extendedDetails.sevenkLPCapType;
7973
+ coinAPriceSeed = path.extendedDetails.sevenk_coin_a_price_seed;
7974
+ coinBPriceSeed = path.extendedDetails.sevenk_coin_b_price_seed;
7975
+ coinAOracleId = path.extendedDetails.sevenk_oracle_config_a;
7976
+ coinBOracleId = path.extendedDetails.sevenk_oracle_config_b;
7977
+ lpCapType = path.extendedDetails.sevenk_lp_cap_type;
7901
7978
  }
7902
7979
  const coinAPriceInfoObjectId = this.pythPriceIDs.get(coinAPriceSeed);
7903
7980
  const coinBPriceInfoObjectId = this.pythPriceIDs.get(coinBPriceSeed);
@@ -7931,11 +8008,7 @@ var Sevenk = class {
7931
8008
  txb.object(CLOCK_ADDRESS)
7932
8009
  ]
7933
8010
  });
7934
- const args = [
7935
- txb.object(path.id),
7936
- holder,
7937
- inputCoin
7938
- ];
8011
+ const args = [txb.object(path.id), holder, inputCoin];
7939
8012
  const publishedAt = getAggregatorV2Extend2PublishedAt(
7940
8013
  client.publishedAtV2Extend2(),
7941
8014
  packages
@@ -7993,6 +8066,7 @@ var _AggregatorClient = class _AggregatorClient {
7993
8066
  this.signer = params.signer || "";
7994
8067
  this.env = params.env || 0 /* Mainnet */;
7995
8068
  this.allCoins = /* @__PURE__ */ new Map();
8069
+ AggregatorConfig2.setEnv(this.env);
7996
8070
  const config2 = _AggregatorClient.CONFIG[this.env];
7997
8071
  this.pythConnections = this.newPythClients((_a = params.pythUrls) != null ? _a : []);
7998
8072
  this.pythClient = new SuiPythClient(
@@ -8513,26 +8587,14 @@ var _AggregatorClient = class _AggregatorClient {
8513
8587
  }
8514
8588
  // Include cetus、deepbookv2、flowxv2 & v3、kriyav2 & v3、turbos、aftermath、haedal、afsui、volo、bluemove
8515
8589
  publishedAtV2() {
8516
- if (this.env === 0 /* Mainnet */) {
8517
- return "0x8ae871505a80d8bf6bf9c05906cda6edfeea460c85bebe2e26a4313f5e67874a";
8518
- } else {
8519
- return "0x52eae33adeb44de55cfb3f281d4cc9e02d976181c0952f5323648b5717b33934";
8520
- }
8590
+ return AggregatorConfig2.getPublishedAtV2(this.env);
8521
8591
  }
8522
8592
  // Include deepbookv3, scallop, bluefin
8523
8593
  publishedAtV2Extend() {
8524
- if (this.env === 0 /* Mainnet */) {
8525
- return "0x8a2f7a5b20665eeccc79de3aa37c3b6c473eca233ada1e1cd4678ec07d4d4073";
8526
- } else {
8527
- return "0xabb6a81c8a216828e317719e06125de5bb2cb0fe8f9916ff8c023ca5be224c78";
8528
- }
8594
+ return AggregatorConfig2.getPublishedAtV2Extend(this.env);
8529
8595
  }
8530
8596
  publishedAtV2Extend2() {
8531
- if (this.env === 0 /* Mainnet */) {
8532
- return "0x5cb7499fc49c2642310e24a4ecffdbee00133f97e80e2b45bca90c64d55de880";
8533
- } else {
8534
- return "0x0";
8535
- }
8597
+ return AggregatorConfig2.getPublishedAtV2Extend2(this.env);
8536
8598
  }
8537
8599
  deepbookv3DeepFeeType() {
8538
8600
  if (this.env === 0 /* Mainnet */) {
@@ -8737,50 +8799,44 @@ _AggregatorClient.CONFIG = {
8737
8799
  pythStateId: "0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8"
8738
8800
  }
8739
8801
  };
8740
- var AggregatorClient28 = _AggregatorClient;
8802
+ var AggregatorClient = _AggregatorClient;
8741
8803
  function findPythPriceIDs(routes) {
8742
8804
  const priceIDs = /* @__PURE__ */ new Set();
8743
8805
  for (const route of routes) {
8744
8806
  for (const path of route.path) {
8745
8807
  if (path.provider === HAEDALPMM2) {
8746
- if (path.extendedDetails && path.extendedDetails.haedalPmmBasePriceSeed && path.extendedDetails.haedalPmmQuotePriceSeed) {
8747
- priceIDs.add(path.extendedDetails.haedalPmmBasePriceSeed);
8748
- priceIDs.add(path.extendedDetails.haedalPmmQuotePriceSeed);
8808
+ if (path.extendedDetails && path.extendedDetails.haedal_pmm_base_price_seed && path.extendedDetails.haedal_pmm_quote_price_seed) {
8809
+ priceIDs.add(path.extendedDetails.haedal_pmm_base_price_seed);
8810
+ priceIDs.add(path.extendedDetails.haedal_pmm_quote_price_seed);
8749
8811
  }
8750
8812
  }
8751
8813
  if (path.provider === METASTABLE2) {
8752
- if (path.extendedDetails && path.extendedDetails.metastablePriceSeed) {
8753
- priceIDs.add(path.extendedDetails.metastablePriceSeed);
8814
+ if (path.extendedDetails && path.extendedDetails.metastable_price_seed) {
8815
+ priceIDs.add(path.extendedDetails.metastable_price_seed);
8754
8816
  }
8755
- if (path.extendedDetails && path.extendedDetails.metastableETHPriceSeed) {
8756
- priceIDs.add(path.extendedDetails.metastableETHPriceSeed);
8817
+ if (path.extendedDetails && path.extendedDetails.metastable_eth_price_seed) {
8818
+ priceIDs.add(path.extendedDetails.metastable_eth_price_seed);
8757
8819
  }
8758
8820
  }
8759
8821
  if (path.provider === OBRIC2) {
8760
- if (path.extendedDetails && path.extendedDetails.obricCoinAPriceSeed) {
8761
- priceIDs.add(path.extendedDetails.obricCoinAPriceSeed);
8822
+ if (path.extendedDetails && path.extendedDetails.obric_coin_a_price_seed) {
8823
+ priceIDs.add(path.extendedDetails.obric_coin_a_price_seed);
8762
8824
  }
8763
- if (path.extendedDetails && path.extendedDetails.obricCoinBPriceSeed) {
8764
- priceIDs.add(path.extendedDetails.obricCoinBPriceSeed);
8825
+ if (path.extendedDetails && path.extendedDetails.obric_coin_b_price_seed) {
8826
+ priceIDs.add(path.extendedDetails.obric_coin_b_price_seed);
8765
8827
  }
8766
8828
  }
8767
8829
  if (path.provider === STEAMM_OMM2 || path.provider === STEAMM_OMM_V22) {
8768
- if (path.extendedDetails && path.extendedDetails.steammOraclePythPriceSeedA) {
8769
- priceIDs.add(path.extendedDetails.steammOraclePythPriceSeedA);
8830
+ if (path.extendedDetails && path.extendedDetails.steamm_oracle_pyth_price_seed_a) {
8831
+ priceIDs.add(path.extendedDetails.steamm_oracle_pyth_price_seed_a);
8770
8832
  }
8771
- if (path.extendedDetails && path.extendedDetails.steammOraclePythPriceSeedB) {
8772
- priceIDs.add(path.extendedDetails.steammOraclePythPriceSeedB);
8833
+ if (path.extendedDetails && path.extendedDetails.steamm_oracle_pyth_price_seed_b) {
8834
+ priceIDs.add(path.extendedDetails.steamm_oracle_pyth_price_seed_b);
8773
8835
  }
8774
8836
  }
8775
8837
  if (path.provider === SEVENK2) {
8776
8838
  if (path.extendedDetails) {
8777
8839
  const extDetails = path.extendedDetails;
8778
- if (extDetails.sevenkCoinAPriceSeed) {
8779
- priceIDs.add(extDetails.sevenkCoinAPriceSeed);
8780
- }
8781
- if (extDetails.sevenkCoinBPriceSeed) {
8782
- priceIDs.add(extDetails.sevenkCoinBPriceSeed);
8783
- }
8784
8840
  if (extDetails.sevenk_coin_a_price_seed) {
8785
8841
  priceIDs.add(extDetails.sevenk_coin_a_price_seed);
8786
8842
  }
@@ -8996,11 +9052,11 @@ var TurbosRouter = class {
8996
9052
  if (path.extendedDetails == null) {
8997
9053
  throw new Error("Extended details not supported");
8998
9054
  } else {
8999
- if (path.extendedDetails.turbosFeeType == null) {
9055
+ if (path.extendedDetails.turbos_fee_type == null) {
9000
9056
  throw new Error("Turbos fee type not supported");
9001
9057
  }
9002
9058
  }
9003
- const feeType = path.extendedDetails.turbosFeeType;
9059
+ const feeType = path.extendedDetails.turbos_fee_type;
9004
9060
  return {
9005
9061
  coinAType,
9006
9062
  coinBType,
@@ -9364,7 +9420,7 @@ var AftermathRouter = class {
9364
9420
  return {
9365
9421
  coinAType,
9366
9422
  coinBType,
9367
- feeType: ((_a = path.extendedDetails) == null ? void 0 : _a.aftermathLpSupplyType) || ((_b = path.extendedDetails) == null ? void 0 : _b.aftermath_lp_supply_type) || "0x2::sui::SUI",
9423
+ feeType: ((_a = path.extendedDetails) == null ? void 0 : _a.aftermath_lp_supply_type) || ((_b = path.extendedDetails) == null ? void 0 : _b.aftermath_lp_supply_type) || "0x2::sui::SUI",
9368
9424
  // Use LP supply type from path (handle both camelCase and snake_case)
9369
9425
  direction: path.direction,
9370
9426
  amountIn,
@@ -9494,7 +9550,7 @@ var ScallopRouter = class {
9494
9550
  if (flattenedPath.path.publishedAt == null) {
9495
9551
  throw new Error("Scallop not set publishedAt");
9496
9552
  }
9497
- const [coinAType, coinBType] = path.direction ? [path.from, path.target] : [path.target, path.from];
9553
+ const [coinAType, coinBType] = path.direction ? [path.from, path.target] : [path.from, path.target];
9498
9554
  const amountIn = flattenedPath.isLastUseOfIntermediateToken ? AGGREGATOR_V3_CONFIG.MAX_AMOUNT_IN : path.amountIn;
9499
9555
  if (path.extendedDetails == null) {
9500
9556
  throw new Error("Extended details not supported");
@@ -9634,10 +9690,10 @@ var HaedalPmmRouter = class {
9634
9690
  this.executeSwapContract(txb, swapData, swapContext);
9635
9691
  }
9636
9692
  validateExtendedDetails(extendedDetails) {
9637
- if (!extendedDetails.haedalPmmBasePriceSeed) {
9693
+ if (!extendedDetails.haedal_pmm_base_price_seed) {
9638
9694
  throw new Error("Haedal PMM base price seed not supported");
9639
9695
  }
9640
- if (!extendedDetails.haedalPmmQuotePriceSeed) {
9696
+ if (!extendedDetails.haedal_pmm_quote_price_seed) {
9641
9697
  throw new Error("Haedal PMM quote price seed not supported");
9642
9698
  }
9643
9699
  }
@@ -9649,8 +9705,8 @@ var HaedalPmmRouter = class {
9649
9705
  const extendedDetails = path.extendedDetails;
9650
9706
  const [coinAType, coinBType] = path.direction ? [path.from, path.target] : [path.target, path.from];
9651
9707
  const amountIn = flattenedPath.isLastUseOfIntermediateToken ? AGGREGATOR_V3_CONFIG.MAX_AMOUNT_IN : path.amountIn;
9652
- const basePriceSeed = extendedDetails.haedalPmmBasePriceSeed;
9653
- const quotePriceSeed = extendedDetails.haedalPmmQuotePriceSeed;
9708
+ const basePriceSeed = extendedDetails.haedal_pmm_base_price_seed;
9709
+ const quotePriceSeed = extendedDetails.haedal_pmm_quote_price_seed;
9654
9710
  const basePriceId = this.pythPriceIDs.get(basePriceSeed);
9655
9711
  const quotePriceId = this.pythPriceIDs.get(quotePriceSeed);
9656
9712
  if (!basePriceId || !quotePriceId) {
@@ -9903,8 +9959,8 @@ var SteammOmmRouter = class {
9903
9959
  const { direction, from, target } = path;
9904
9960
  const [func, coinAType, coinBType] = direction ? ["swap_a2b_v2", from, target] : ["swap_b2a_v2", target, from];
9905
9961
  const amountIn = flattenedPath.isLastUseOfIntermediateToken ? AGGREGATOR_V3_CONFIG.MAX_AMOUNT_IN : path.amountIn;
9906
- const priceSeedA = extendedDetails.steammOraclePythPriceSeedA;
9907
- const priceSeedB = extendedDetails.steammOraclePythPriceSeedB;
9962
+ const priceSeedA = extendedDetails.steamm_oracle_pyth_price_seed_a;
9963
+ const priceSeedB = extendedDetails.steamm_oracle_pyth_price_seed_b;
9908
9964
  if (!priceSeedA || !priceSeedB) {
9909
9965
  throw new Error("Steamm oracle price seeds not found");
9910
9966
  }
@@ -10022,8 +10078,8 @@ var SteammOmmV2Router = class {
10022
10078
  const { direction, from, target } = path;
10023
10079
  const [func, coinAType, coinBType] = direction ? ["swap_a2b", from, target] : ["swap_b2a", target, from];
10024
10080
  const amountIn = flattenedPath.isLastUseOfIntermediateToken ? AGGREGATOR_V3_CONFIG.MAX_AMOUNT_IN : path.amountIn;
10025
- const priceSeedA = extendedDetails.steammOraclePythPriceSeedA;
10026
- const priceSeedB = extendedDetails.steammOraclePythPriceSeedB;
10081
+ const priceSeedA = extendedDetails.steamm_oracle_pyth_price_seed_a;
10082
+ const priceSeedB = extendedDetails.steamm_oracle_pyth_price_seed_b;
10027
10083
  if (!priceSeedA || !priceSeedB) {
10028
10084
  throw new Error("Steamm OMM V2 oracle price seeds not found");
10029
10085
  }
@@ -10522,7 +10578,7 @@ function transfer_or_destroy_coin(params, txb) {
10522
10578
  arguments: [coin]
10523
10579
  });
10524
10580
  }
10525
- var AggregatorClientV3 = class extends AggregatorClient28 {
10581
+ var AggregatorClientV3 = class extends AggregatorClient {
10526
10582
  constructor(params) {
10527
10583
  var _a;
10528
10584
  const v3Params = __spreadProps(__spreadValues({}, params), {
@@ -10939,13 +10995,144 @@ var AggregatorClientV3 = class extends AggregatorClient28 {
10939
10995
  return this.fixableRouterSwapV3(params);
10940
10996
  });
10941
10997
  }
10998
+ swapInPools(params) {
10999
+ return __async(this, null, function* () {
11000
+ let result;
11001
+ try {
11002
+ result = yield this.swapInPoolsV3(params);
11003
+ } catch (e) {
11004
+ console.error("swapInPoolsV3 error:", e);
11005
+ return null;
11006
+ }
11007
+ return result;
11008
+ });
11009
+ }
11010
+ swapInPoolsV3(params) {
11011
+ return __async(this, null, function* () {
11012
+ var _a, _b, _c, _d, _e;
11013
+ const { from, target, amount, byAmountIn, pools } = params;
11014
+ const fromCoin = completionCoin(from);
11015
+ const targetCoin = completionCoin(target);
11016
+ const tx = new Transaction();
11017
+ const direction = compareCoins(fromCoin, targetCoin);
11018
+ const coinA = direction ? fromCoin : targetCoin;
11019
+ const coinB = direction ? targetCoin : fromCoin;
11020
+ const typeArguments = [coinA, coinB];
11021
+ const integratePublishedAt = this.env === 0 /* Mainnet */ ? "0xb2db7142fa83210a7d78d9c12ac49c043b3cbbd482224fea6e3da00aa5a5ae2d" : "0x4f920e1ef6318cfba77e20a0538a419a5a504c14230169438b99aba485db40a6";
11022
+ for (let i = 0; i < pools.length; i++) {
11023
+ const args = [
11024
+ tx.object(pools[i]),
11025
+ tx.pure.bool(direction),
11026
+ tx.pure.bool(byAmountIn),
11027
+ tx.pure.u64(amount.toString())
11028
+ ];
11029
+ tx.moveCall({
11030
+ target: `${integratePublishedAt}::fetcher_script::calculate_swap_result`,
11031
+ arguments: args,
11032
+ typeArguments
11033
+ });
11034
+ }
11035
+ if (!this.signer) {
11036
+ this.signer = "0x0";
11037
+ }
11038
+ printTransaction(tx);
11039
+ const simulateRes = yield this.client.devInspectTransactionBlock({
11040
+ transactionBlock: tx,
11041
+ sender: this.signer
11042
+ });
11043
+ if (simulateRes.error != null) {
11044
+ console.log("simulateRes.error", simulateRes.error);
11045
+ throw new Error("Simulation error: " + simulateRes.error);
11046
+ }
11047
+ const valueData = (_a = simulateRes.events) == null ? void 0 : _a.filter((item) => {
11048
+ return item.type.includes("CalculatedSwapResultEvent");
11049
+ });
11050
+ if (valueData.length === 0 || valueData.length !== pools.length) {
11051
+ throw new Error("Simulate event result error");
11052
+ }
11053
+ let tempMaxAmount = byAmountIn ? new import_bn9.default(0) : new import_bn9.default(U64_MAX);
11054
+ let tempIndex = 0;
11055
+ for (let i = 0; i < valueData.length; i += 1) {
11056
+ if (valueData[i].parsedJson.data.is_exceed) {
11057
+ continue;
11058
+ }
11059
+ if (params.byAmountIn) {
11060
+ const amount2 = new import_bn9.default(valueData[i].parsedJson.data.amount_out);
11061
+ if (amount2.gt(tempMaxAmount)) {
11062
+ tempIndex = i;
11063
+ tempMaxAmount = amount2;
11064
+ }
11065
+ } else {
11066
+ const amount2 = new import_bn9.default(valueData[i].parsedJson.data.amount_out);
11067
+ if (amount2.lt(tempMaxAmount)) {
11068
+ tempIndex = i;
11069
+ tempMaxAmount = amount2;
11070
+ }
11071
+ }
11072
+ }
11073
+ const event = valueData[tempIndex].parsedJson.data;
11074
+ const currentSqrtPrice = event.step_results[0].current_sqrt_price;
11075
+ const [decimalA, decimalB] = yield Promise.all([
11076
+ this.client.getCoinMetadata({ coinType: coinA }).then((metadata) => metadata == null ? void 0 : metadata.decimals),
11077
+ this.client.getCoinMetadata({ coinType: coinB }).then((metadata) => metadata == null ? void 0 : metadata.decimals)
11078
+ ]);
11079
+ if (decimalA == null || decimalB == null) {
11080
+ throw new Error("Cannot get coin decimals");
11081
+ }
11082
+ const sqrtPriceNum = new import_bn9.default(currentSqrtPrice);
11083
+ const price = sqrtPriceNum.mul(sqrtPriceNum).div(new import_bn9.default(2).pow(new import_bn9.default(128)));
11084
+ const priceScale = new import_bn9.default(10).pow(new import_bn9.default(decimalB - decimalA));
11085
+ const initialPriceNum = price.div(priceScale).toNumber();
11086
+ const initialPrice = new decimal_default(initialPriceNum);
11087
+ const feeRate = Number(event.fee_rate) / 1e6;
11088
+ const pureAmountIn = new import_bn9.default((_b = event.amount_in) != null ? _b : 0);
11089
+ const feeAmount = new import_bn9.default((_c = event.fee_amount) != null ? _c : 0);
11090
+ const amountIn = pureAmountIn.add(feeAmount);
11091
+ const routeData = {
11092
+ amountIn,
11093
+ amountOut: new import_bn9.default((_d = event.amount_out) != null ? _d : 0),
11094
+ routes: [
11095
+ {
11096
+ path: [
11097
+ {
11098
+ id: pools[tempIndex],
11099
+ direction,
11100
+ provider: CETUS,
11101
+ from: fromCoin,
11102
+ target: targetCoin,
11103
+ feeRate,
11104
+ amountIn: amountIn.toString(),
11105
+ amountOut: event.amount_out,
11106
+ publishedAt: CETUS_V3_PUBLISHED_AT,
11107
+ extendedDetails: {
11108
+ afterSqrtPrice: event.after_sqrt_price
11109
+ }
11110
+ }
11111
+ ],
11112
+ amountIn,
11113
+ amountOut: new import_bn9.default((_e = event.amount_out) != null ? _e : 0),
11114
+ initialPrice
11115
+ }
11116
+ ],
11117
+ insufficientLiquidity: false,
11118
+ byAmountIn: params.byAmountIn,
11119
+ quoteID: "cetus-pools-fallback",
11120
+ packages: /* @__PURE__ */ new Map([
11121
+ [
11122
+ PACKAGE_NAMES.AGGREGATOR_V3,
11123
+ AGGREGATOR_V3_CONFIG.DEFAULT_PUBLISHED_AT.Mainnet
11124
+ ]
11125
+ ])
11126
+ };
11127
+ const result = {
11128
+ isExceed: event.is_exceed,
11129
+ routeData
11130
+ };
11131
+ return result;
11132
+ });
11133
+ }
10942
11134
  };
10943
11135
 
10944
- // src/transaction/index.ts
10945
- var AGGREGATOR_V2 = "aggregator_v2";
10946
- var AGGREGATOR_V2_EXTEND = "aggregator_v2_extend";
10947
- var AGGREGATOR_V2_EXTEND2 = "aggregator_v2_extend2";
10948
-
10949
11136
  // src/types/sui.ts
10950
11137
  var getDefaultSuiInputType = (value) => {
10951
11138
  if (typeof value === "string" && value.startsWith("0x")) {
@@ -10971,4 +11158,4 @@ decimal.js/decimal.mjs:
10971
11158
  *)
10972
11159
  */
10973
11160
 
10974
- export { AFSUI, AFTERMATH, AFTERMATH_AMM, AFTERMATH_MODULE, AGGREGATOR, AGGREGATOR_V2, AGGREGATOR_V2_EXTEND, AGGREGATOR_V2_EXTEND2, AGGREGATOR_V3_CONFIG, ALL_DEXES, ALPHAFI, Afsui, Aftermath, AggregatorClient28 as AggregatorClient, AggregatorClientV3, AggregatorConfig, AggregatorError, AggregatorServerErrorCode, Alphafi, BLUEFIN, BLUEMOVE, Bluefin, Bluemove, CETUS, CETUS_DEX, CETUS_MODULE, CETUS_PUBLISHED_AT, CHECK_COINS_THRESHOLD_FUNC, CLIENT_CONFIG, CLOCK_ADDRESS, Cetus, 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_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, DeepbookV2, DeepbookV3, Dex, Env, FLOWXV2, FLOWXV3, FLOWX_AMM, FLOWX_AMM_MODULE, FlashSwapA2BFunc, FlashSwapB2AFunc, FlashSwapFunc, FlashSwapWithPartnerA2BFunc, FlashSwapWithPartnerB2AFunc, FlashSwapWithPartnerFunc, FlowxV2, FlowxV3, GAS_SYMBOL, GAS_TYPE_ARG, GAS_TYPE_ARG_LONG, HAEDAL, HAEDALPMM, HAWAL, HaWAL, Haedal, HaedalPmm, INTEGRATE, JOIN_FUNC, KRIYA, KRIYAV3, KRIYA_DEX, KRIYA_MODULE, KriyaV2, KriyaV3, 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_GLOBAL_CONFIG_ID, MAINNET_FLOWX_AMM_CONTAINER_ID, METASTABLE, MOMENTUM, Magma, Metastable, Momentum, OBRIC, ONE, Obric, 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, Scallop, Sevenk, SteammCPMM, SteammOmm, SteammOmmV2, SuiZeroCoinFn, Suilend, 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_GLOBAL_CONFIG_ID, TESTNET_FLOWX_AMM_CONTAINER_ID, TRANSFER_ACCOUNT_CAP, TRANSFER_OR_DESTORY_COIN_FUNC, TURBOS, TURBOS_DEX, TURBOS_MODULE, TURBOS_VERSIONED, TWO, TransactionErrorCode, Turbos, TypesErrorCode, U128, U64_MAX, U64_MAX_BN, UTILS_MODULE, VOLO, 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, getDeepbookV3Config, getDefaultSuiInputType, getOrCreateAccountCap, getRouterResult, isSortedSymbols, isValidDowngradeUuid6, mintZeroCoin, normalizeCoinType, parseAftermathFeeType, parseTurbosPoolFeeType, patchFixSuiObjectId, printTransaction, processEndpoint, restituteMsafeFastRouterSwapParams, sortAndFlattenRoutes };
11161
+ export { AFSUI, AFTERMATH, AFTERMATH_AMM, AFTERMATH_MODULE, AGGREGATOR, AGGREGATOR_V3_CONFIG, ALL_DEXES, ALPHAFI, AggregatorClient, AggregatorClientV3, AggregatorConfig, AggregatorError, AggregatorServerErrorCode, BLUEFIN, BLUEMOVE, CETUS, CETUS_DEX, CETUS_MODULE, CETUS_PUBLISHED_AT, CETUS_V3_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_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, Dex, Env, FLOWXV2, FLOWXV3, FLOWX_AMM, FLOWX_AMM_MODULE, FlashSwapA2BFunc, FlashSwapB2AFunc, FlashSwapFunc, FlashSwapWithPartnerA2BFunc, FlashSwapWithPartnerB2AFunc, FlashSwapWithPartnerFunc, GAS_SYMBOL, GAS_TYPE_ARG, GAS_TYPE_ARG_LONG, HAEDAL, 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_GLOBAL_CONFIG_ID, 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_GLOBAL_CONFIG_ID, 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, getDeepbookV3Config, getDefaultSuiInputType, getOrCreateAccountCap, getRouterResult, isSortedSymbols, isValidDowngradeUuid6, mintZeroCoin, normalizeCoinType, parseAftermathFeeType, parseTurbosPoolFeeType, patchFixSuiObjectId, printTransaction, processEndpoint, restituteMsafeFastRouterSwapParams, sortAndFlattenRoutes, swapInPools };