@cetusprotocol/aggregator-sdk 0.0.3 → 0.0.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.d.mts CHANGED
@@ -166,9 +166,10 @@ declare class AggregatorClient {
166
166
  swapInPools(params: SwapInPoolsParams): Promise<SwapInPoolsResult | null>;
167
167
  routerSwap(params: BuildRouterSwapParams): Promise<Transaction>;
168
168
  signAndExecuteTransaction(txb: Transaction, signer: Signer): Promise<_mysten_sui_client.SuiTransactionBlockResponse>;
169
- devInspectTransactionBlock(txb: Transaction, signer: Signer): Promise<_mysten_sui_client.DevInspectResults>;
169
+ sdevInspectTransactionBlock(txb: Transaction): Promise<_mysten_sui_client.DevInspectResults>;
170
170
  sendTransaction(txb: Transaction, signer: Signer): Promise<_mysten_sui_client.SuiTransactionBlockResponse>;
171
171
  }
172
+ declare function parseRouterResponse(data: any): RouterData;
172
173
 
173
174
  declare function expectInputRouterSwap(client: SuiClient, params: BuildRouterSwapParams, txb: Transaction, fromCoin: TransactionObjectArgument, config: AggregatorConfig, partner?: string): Promise<TransactionObjectArgument[]>;
174
175
  declare function expectOutputRouterSwap(params: BuildRouterSwapParams, txb: Transaction, fromCoin: TransactionObjectArgument, config: AggregatorConfig, partner?: string): Promise<TransactionObjectArgument[]>;
@@ -264,4 +265,4 @@ declare const TESTNET_AFTERMATH_INSURANCE_FUND_ID = "";
264
265
  declare const MAINNET_AFTERMATH_REFERRAL_VAULT_ID = "0x35d35b0e5b177593d8c3a801462485572fc30861e6ce96a55af6dc4730709278";
265
266
  declare const TESTNET_AFTERMATH_REFERRAL_VAULT_ID = "";
266
267
 
267
- export { AFTERMATH_AMM, AFTERMATH_MODULE, AGGREGATOR, AggregatorClient, AggregatorConfig, type AggregatorResponse, type BuildRouterSwapParams, CETUS_DEX, CETUS_MODULE, CETUS_PUBLISHED_AT, CHECK_COINS_THRESHOLD_FUNC, CLOCK_ADDRESS, CoinInfoAddress, CoinStoreAddress, DEEPBOOK_CLOB_V2_MODULE, DEEPBOOK_CUSTODIAN_V2_MODULE, DEEPBOOK_DEX, DEEPBOOK_MODULE, DEEPBOOK_PACKAGE_ID, DEEPBOOK_PUBLISHED_AT, ENV, type ExtendedDetails, FLOWX_AMM, FLOWX_AMM_MODULE, type FindRouterParams, FlashSwapA2BFunc, FlashSwapB2AFunc, FlashSwapFunc, FlashSwapWithPartnerA2BFunc, FlashSwapWithPartnerB2AFunc, FlashSwapWithPartnerFunc, INTEGRATE, JOIN_FUNC, KRIYA_DEX, KRIYA_MODULE, 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, ONE, PAY_MODULE, POOL_MODULT, type Package, type Path, 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, type Router, type RouterData, SWAP_A2B_FUNC, SWAP_B2A_FUNC, SuiZeroCoinFn, type SwapInPoolsParams, type SwapInPoolsResult, 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_DEX, TURBOS_MODULE, TURBOS_VERSIONED, TWO, U128, U64_MAX, U64_MAX_BN, UTILS_MODULE, ZERO, composeType, createTarget, expectInputRouterSwap, expectOutputRouterSwap, extractAddressFromType, extractStructTagFromType, fixSuiObjectId, isSortedSymbols, normalizeCoinType, patchFixSuiObjectId };
268
+ export { AFTERMATH_AMM, AFTERMATH_MODULE, AGGREGATOR, AggregatorClient, AggregatorConfig, type AggregatorResponse, type BuildRouterSwapParams, CETUS_DEX, CETUS_MODULE, CETUS_PUBLISHED_AT, CHECK_COINS_THRESHOLD_FUNC, CLOCK_ADDRESS, CoinInfoAddress, CoinStoreAddress, DEEPBOOK_CLOB_V2_MODULE, DEEPBOOK_CUSTODIAN_V2_MODULE, DEEPBOOK_DEX, DEEPBOOK_MODULE, DEEPBOOK_PACKAGE_ID, DEEPBOOK_PUBLISHED_AT, ENV, type ExtendedDetails, FLOWX_AMM, FLOWX_AMM_MODULE, type FindRouterParams, FlashSwapA2BFunc, FlashSwapB2AFunc, FlashSwapFunc, FlashSwapWithPartnerA2BFunc, FlashSwapWithPartnerB2AFunc, FlashSwapWithPartnerFunc, INTEGRATE, JOIN_FUNC, KRIYA_DEX, KRIYA_MODULE, 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, ONE, PAY_MODULE, POOL_MODULT, type Package, type Path, 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, type Router, type RouterData, SWAP_A2B_FUNC, SWAP_B2A_FUNC, SuiZeroCoinFn, type SwapInPoolsParams, type SwapInPoolsResult, 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_DEX, TURBOS_MODULE, TURBOS_VERSIONED, TWO, U128, U64_MAX, U64_MAX_BN, UTILS_MODULE, ZERO, composeType, createTarget, expectInputRouterSwap, expectOutputRouterSwap, extractAddressFromType, extractStructTagFromType, fixSuiObjectId, isSortedSymbols, normalizeCoinType, parseRouterResponse, patchFixSuiObjectId };
package/dist/index.d.ts CHANGED
@@ -166,9 +166,10 @@ declare class AggregatorClient {
166
166
  swapInPools(params: SwapInPoolsParams): Promise<SwapInPoolsResult | null>;
167
167
  routerSwap(params: BuildRouterSwapParams): Promise<Transaction>;
168
168
  signAndExecuteTransaction(txb: Transaction, signer: Signer): Promise<_mysten_sui_client.SuiTransactionBlockResponse>;
169
- devInspectTransactionBlock(txb: Transaction, signer: Signer): Promise<_mysten_sui_client.DevInspectResults>;
169
+ sdevInspectTransactionBlock(txb: Transaction): Promise<_mysten_sui_client.DevInspectResults>;
170
170
  sendTransaction(txb: Transaction, signer: Signer): Promise<_mysten_sui_client.SuiTransactionBlockResponse>;
171
171
  }
172
+ declare function parseRouterResponse(data: any): RouterData;
172
173
 
173
174
  declare function expectInputRouterSwap(client: SuiClient, params: BuildRouterSwapParams, txb: Transaction, fromCoin: TransactionObjectArgument, config: AggregatorConfig, partner?: string): Promise<TransactionObjectArgument[]>;
174
175
  declare function expectOutputRouterSwap(params: BuildRouterSwapParams, txb: Transaction, fromCoin: TransactionObjectArgument, config: AggregatorConfig, partner?: string): Promise<TransactionObjectArgument[]>;
@@ -264,4 +265,4 @@ declare const TESTNET_AFTERMATH_INSURANCE_FUND_ID = "";
264
265
  declare const MAINNET_AFTERMATH_REFERRAL_VAULT_ID = "0x35d35b0e5b177593d8c3a801462485572fc30861e6ce96a55af6dc4730709278";
265
266
  declare const TESTNET_AFTERMATH_REFERRAL_VAULT_ID = "";
266
267
 
267
- export { AFTERMATH_AMM, AFTERMATH_MODULE, AGGREGATOR, AggregatorClient, AggregatorConfig, type AggregatorResponse, type BuildRouterSwapParams, CETUS_DEX, CETUS_MODULE, CETUS_PUBLISHED_AT, CHECK_COINS_THRESHOLD_FUNC, CLOCK_ADDRESS, CoinInfoAddress, CoinStoreAddress, DEEPBOOK_CLOB_V2_MODULE, DEEPBOOK_CUSTODIAN_V2_MODULE, DEEPBOOK_DEX, DEEPBOOK_MODULE, DEEPBOOK_PACKAGE_ID, DEEPBOOK_PUBLISHED_AT, ENV, type ExtendedDetails, FLOWX_AMM, FLOWX_AMM_MODULE, type FindRouterParams, FlashSwapA2BFunc, FlashSwapB2AFunc, FlashSwapFunc, FlashSwapWithPartnerA2BFunc, FlashSwapWithPartnerB2AFunc, FlashSwapWithPartnerFunc, INTEGRATE, JOIN_FUNC, KRIYA_DEX, KRIYA_MODULE, 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, ONE, PAY_MODULE, POOL_MODULT, type Package, type Path, 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, type Router, type RouterData, SWAP_A2B_FUNC, SWAP_B2A_FUNC, SuiZeroCoinFn, type SwapInPoolsParams, type SwapInPoolsResult, 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_DEX, TURBOS_MODULE, TURBOS_VERSIONED, TWO, U128, U64_MAX, U64_MAX_BN, UTILS_MODULE, ZERO, composeType, createTarget, expectInputRouterSwap, expectOutputRouterSwap, extractAddressFromType, extractStructTagFromType, fixSuiObjectId, isSortedSymbols, normalizeCoinType, patchFixSuiObjectId };
268
+ export { AFTERMATH_AMM, AFTERMATH_MODULE, AGGREGATOR, AggregatorClient, AggregatorConfig, type AggregatorResponse, type BuildRouterSwapParams, CETUS_DEX, CETUS_MODULE, CETUS_PUBLISHED_AT, CHECK_COINS_THRESHOLD_FUNC, CLOCK_ADDRESS, CoinInfoAddress, CoinStoreAddress, DEEPBOOK_CLOB_V2_MODULE, DEEPBOOK_CUSTODIAN_V2_MODULE, DEEPBOOK_DEX, DEEPBOOK_MODULE, DEEPBOOK_PACKAGE_ID, DEEPBOOK_PUBLISHED_AT, ENV, type ExtendedDetails, FLOWX_AMM, FLOWX_AMM_MODULE, type FindRouterParams, FlashSwapA2BFunc, FlashSwapB2AFunc, FlashSwapFunc, FlashSwapWithPartnerA2BFunc, FlashSwapWithPartnerB2AFunc, FlashSwapWithPartnerFunc, INTEGRATE, JOIN_FUNC, KRIYA_DEX, KRIYA_MODULE, 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, ONE, PAY_MODULE, POOL_MODULT, type Package, type Path, 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, type Router, type RouterData, SWAP_A2B_FUNC, SWAP_B2A_FUNC, SuiZeroCoinFn, type SwapInPoolsParams, type SwapInPoolsResult, 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_DEX, TURBOS_MODULE, TURBOS_VERSIONED, TWO, U128, U64_MAX, U64_MAX_BN, UTILS_MODULE, ZERO, composeType, createTarget, expectInputRouterSwap, expectOutputRouterSwap, extractAddressFromType, extractStructTagFromType, fixSuiObjectId, isSortedSymbols, normalizeCoinType, parseRouterResponse, patchFixSuiObjectId };
package/dist/index.js CHANGED
@@ -5347,7 +5347,14 @@ function buildInputCoin(txb, allCoins, amount, coinType) {
5347
5347
  targetCoinAmount: 0
5348
5348
  };
5349
5349
  }
5350
- if (CoinUtils.isSuiCoin(coinType)) {
5350
+ let totalCoinBalance = CoinUtils.calculateTotalBalance(usedCoinAsests);
5351
+ if (totalCoinBalance < amount) {
5352
+ throw new AggregateError(
5353
+ "Insufficient balance when build merge coin",
5354
+ "InsufficientBalance" /* InsufficientBalance */
5355
+ );
5356
+ }
5357
+ if (CoinUtils.isSuiCoin(coinType) && amount <= BigInt(95e10)) {
5351
5358
  const resultCoin = txb.splitCoins(txb.gas, [
5352
5359
  txb.pure.u64(amount.toString())
5353
5360
  ]);
@@ -5357,13 +5364,6 @@ function buildInputCoin(txb, allCoins, amount, coinType) {
5357
5364
  targetCoinAmount: Number(amount.toString())
5358
5365
  };
5359
5366
  }
5360
- let totalCoinBalance = CoinUtils.calculateTotalBalance(usedCoinAsests);
5361
- if (totalCoinBalance < amount) {
5362
- throw new AggregateError(
5363
- "Insufficient balance when build merge coin",
5364
- "InsufficientBalance" /* InsufficientBalance */
5365
- );
5366
- }
5367
5367
  let sortCoinAssets = CoinUtils.sortByBalance(usedCoinAsests);
5368
5368
  let totalThreeCoinBalance = sortCoinAssets.slice(0, 3).reduce((acc, coin) => acc + coin.balance, BigInt(0));
5369
5369
  if (totalThreeCoinBalance < BigInt(amount)) {
@@ -6558,6 +6558,7 @@ var AggregatorClient = class {
6558
6558
  try {
6559
6559
  result = yield swapInPools(this.client, params, this.config);
6560
6560
  } catch (e) {
6561
+ console.error("swapInPools error:", e);
6561
6562
  return null;
6562
6563
  }
6563
6564
  return result;
@@ -6673,11 +6674,12 @@ var AggregatorClient = class {
6673
6674
  return res;
6674
6675
  });
6675
6676
  }
6676
- devInspectTransactionBlock(txb, signer) {
6677
+ sdevInspectTransactionBlock(txb) {
6677
6678
  return __async(this, null, function* () {
6679
+ console.log(this.wallet);
6678
6680
  const res = yield this.client.devInspectTransactionBlock({
6679
6681
  transactionBlock: txb,
6680
- sender: signer.getPublicKey().toSuiAddress()
6682
+ sender: this.wallet
6681
6683
  });
6682
6684
  return res;
6683
6685
  });
@@ -6821,4 +6823,5 @@ exports.extractStructTagFromType = extractStructTagFromType;
6821
6823
  exports.fixSuiObjectId = fixSuiObjectId;
6822
6824
  exports.isSortedSymbols = isSortedSymbols;
6823
6825
  exports.normalizeCoinType = normalizeCoinType;
6826
+ exports.parseRouterResponse = parseRouterResponse;
6824
6827
  exports.patchFixSuiObjectId = patchFixSuiObjectId;
package/dist/index.mjs CHANGED
@@ -5345,7 +5345,14 @@ function buildInputCoin(txb, allCoins, amount, coinType) {
5345
5345
  targetCoinAmount: 0
5346
5346
  };
5347
5347
  }
5348
- if (CoinUtils.isSuiCoin(coinType)) {
5348
+ let totalCoinBalance = CoinUtils.calculateTotalBalance(usedCoinAsests);
5349
+ if (totalCoinBalance < amount) {
5350
+ throw new AggregateError(
5351
+ "Insufficient balance when build merge coin",
5352
+ "InsufficientBalance" /* InsufficientBalance */
5353
+ );
5354
+ }
5355
+ if (CoinUtils.isSuiCoin(coinType) && amount <= BigInt(95e10)) {
5349
5356
  const resultCoin = txb.splitCoins(txb.gas, [
5350
5357
  txb.pure.u64(amount.toString())
5351
5358
  ]);
@@ -5355,13 +5362,6 @@ function buildInputCoin(txb, allCoins, amount, coinType) {
5355
5362
  targetCoinAmount: Number(amount.toString())
5356
5363
  };
5357
5364
  }
5358
- let totalCoinBalance = CoinUtils.calculateTotalBalance(usedCoinAsests);
5359
- if (totalCoinBalance < amount) {
5360
- throw new AggregateError(
5361
- "Insufficient balance when build merge coin",
5362
- "InsufficientBalance" /* InsufficientBalance */
5363
- );
5364
- }
5365
5365
  let sortCoinAssets = CoinUtils.sortByBalance(usedCoinAsests);
5366
5366
  let totalThreeCoinBalance = sortCoinAssets.slice(0, 3).reduce((acc, coin) => acc + coin.balance, BigInt(0));
5367
5367
  if (totalThreeCoinBalance < BigInt(amount)) {
@@ -6556,6 +6556,7 @@ var AggregatorClient = class {
6556
6556
  try {
6557
6557
  result = yield swapInPools(this.client, params, this.config);
6558
6558
  } catch (e) {
6559
+ console.error("swapInPools error:", e);
6559
6560
  return null;
6560
6561
  }
6561
6562
  return result;
@@ -6671,11 +6672,12 @@ var AggregatorClient = class {
6671
6672
  return res;
6672
6673
  });
6673
6674
  }
6674
- devInspectTransactionBlock(txb, signer) {
6675
+ sdevInspectTransactionBlock(txb) {
6675
6676
  return __async(this, null, function* () {
6677
+ console.log(this.wallet);
6676
6678
  const res = yield this.client.devInspectTransactionBlock({
6677
6679
  transactionBlock: txb,
6678
- sender: signer.getPublicKey().toSuiAddress()
6680
+ sender: this.wallet
6679
6681
  });
6680
6682
  return res;
6681
6683
  });
@@ -6742,4 +6744,4 @@ decimal.js/decimal.mjs:
6742
6744
  *)
6743
6745
  */
6744
6746
 
6745
- export { AFTERMATH_AMM, AFTERMATH_MODULE, AGGREGATOR, AggregatorClient, AggregatorConfig, CETUS_DEX, CETUS_MODULE, CETUS_PUBLISHED_AT, CHECK_COINS_THRESHOLD_FUNC, CLOCK_ADDRESS, CoinInfoAddress, CoinStoreAddress, DEEPBOOK_CLOB_V2_MODULE, DEEPBOOK_CUSTODIAN_V2_MODULE, DEEPBOOK_DEX, DEEPBOOK_MODULE, DEEPBOOK_PACKAGE_ID, DEEPBOOK_PUBLISHED_AT, ENV, FLOWX_AMM, FLOWX_AMM_MODULE, FlashSwapA2BFunc, FlashSwapB2AFunc, FlashSwapFunc, FlashSwapWithPartnerA2BFunc, FlashSwapWithPartnerB2AFunc, FlashSwapWithPartnerFunc, INTEGRATE, JOIN_FUNC, KRIYA_DEX, KRIYA_MODULE, 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, ONE, PAY_MODULE, POOL_MODULT, 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, SWAP_A2B_FUNC, SWAP_B2A_FUNC, SuiZeroCoinFn, 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_DEX, TURBOS_MODULE, TURBOS_VERSIONED, TWO, U128, U64_MAX, U64_MAX_BN, UTILS_MODULE, ZERO, composeType, createTarget, expectInputRouterSwap, expectOutputRouterSwap, extractAddressFromType, extractStructTagFromType, fixSuiObjectId, isSortedSymbols, normalizeCoinType, patchFixSuiObjectId };
6747
+ export { AFTERMATH_AMM, AFTERMATH_MODULE, AGGREGATOR, AggregatorClient, AggregatorConfig, CETUS_DEX, CETUS_MODULE, CETUS_PUBLISHED_AT, CHECK_COINS_THRESHOLD_FUNC, CLOCK_ADDRESS, CoinInfoAddress, CoinStoreAddress, DEEPBOOK_CLOB_V2_MODULE, DEEPBOOK_CUSTODIAN_V2_MODULE, DEEPBOOK_DEX, DEEPBOOK_MODULE, DEEPBOOK_PACKAGE_ID, DEEPBOOK_PUBLISHED_AT, ENV, FLOWX_AMM, FLOWX_AMM_MODULE, FlashSwapA2BFunc, FlashSwapB2AFunc, FlashSwapFunc, FlashSwapWithPartnerA2BFunc, FlashSwapWithPartnerB2AFunc, FlashSwapWithPartnerFunc, INTEGRATE, JOIN_FUNC, KRIYA_DEX, KRIYA_MODULE, 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, ONE, PAY_MODULE, POOL_MODULT, 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, SWAP_A2B_FUNC, SWAP_B2A_FUNC, SuiZeroCoinFn, 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_DEX, TURBOS_MODULE, TURBOS_VERSIONED, TWO, U128, U64_MAX, U64_MAX_BN, UTILS_MODULE, ZERO, composeType, createTarget, expectInputRouterSwap, expectOutputRouterSwap, extractAddressFromType, extractStructTagFromType, fixSuiObjectId, isSortedSymbols, normalizeCoinType, parseRouterResponse, patchFixSuiObjectId };
@@ -83,6 +83,7 @@ export declare class AggregatorClient {
83
83
  swapInPools(params: SwapInPoolsParams): Promise<SwapInPoolsResult | null>;
84
84
  routerSwap(params: BuildRouterSwapParams): Promise<Transaction>;
85
85
  signAndExecuteTransaction(txb: Transaction, signer: Signer): Promise<import("@mysten/sui/client").SuiTransactionBlockResponse>;
86
- devInspectTransactionBlock(txb: Transaction, signer: Signer): Promise<import("@mysten/sui/client").DevInspectResults>;
86
+ sdevInspectTransactionBlock(txb: Transaction): Promise<import("@mysten/sui/client").DevInspectResults>;
87
87
  sendTransaction(txb: Transaction, signer: Signer): Promise<import("@mysten/sui/client").SuiTransactionBlockResponse>;
88
88
  }
89
+ export declare function parseRouterResponse(data: any): RouterData;
@@ -1,4 +1,2 @@
1
1
  export declare function completionCoin(s: string): string;
2
2
  export declare function compareCoins(coinA: string, coinB: string): boolean;
3
- export declare function parseTurbosPoolFeeType(typeData: string): string | null;
4
- export declare function parseAftermathFeeType(typeData: string): string | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cetusprotocol/aggregator-sdk",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "sideEffects": false,
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/client.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { AggregatorConfig } from "./config"
2
2
  import Decimal from "decimal.js"
3
3
  import { SuiClient } from "@mysten/sui/client"
4
- import { CoinAsset } from "./types/sui"
4
+ import { CoinAsset, SuiAddress } from "./types/sui"
5
5
  import { createTarget, extractStructTagFromType } from "./utils"
6
6
  import { Transaction } from "@mysten/sui/transactions"
7
7
  import {
@@ -209,6 +209,7 @@ export class AggregatorClient {
209
209
  try {
210
210
  result = await swapInPools(this.client, params, this.config)
211
211
  } catch (e) {
212
+ console.error("swapInPools error:", e)
212
213
  return null
213
214
  }
214
215
 
@@ -235,6 +236,7 @@ export class AggregatorClient {
235
236
  )
236
237
 
237
238
  const txb = new Transaction()
239
+ // txb.setGasBudget(42392686100000000)
238
240
 
239
241
  if (refreshAllCoins || this.allCoins.length === 0) {
240
242
  this.allCoins = await this.getAllCoins()
@@ -329,10 +331,11 @@ export class AggregatorClient {
329
331
  return res
330
332
  }
331
333
 
332
- async devInspectTransactionBlock(txb: Transaction, signer: Signer) {
334
+ async sdevInspectTransactionBlock(txb: Transaction) {
335
+ console.log(this.wallet)
333
336
  const res = await this.client.devInspectTransactionBlock({
334
337
  transactionBlock: txb,
335
- sender: signer.getPublicKey().toSuiAddress(),
338
+ sender: this.wallet,
336
339
  })
337
340
 
338
341
  return res
@@ -348,7 +351,7 @@ export class AggregatorClient {
348
351
  }
349
352
  }
350
353
 
351
- function parseRouterResponse(data: any): RouterData {
354
+ export function parseRouterResponse(data: any): RouterData {
352
355
  return {
353
356
  amountIn: new BN(data.amount_in.toString()),
354
357
  amountOut: new BN(data.amount_out.toString()),
package/src/math.ts CHANGED
@@ -7,7 +7,11 @@ import { ZERO } from "./const"
7
7
  import Decimal from "decimal.js"
8
8
 
9
9
  // `slippage` is a percentage, for example, 0.01 means 1%.
10
- export function CalculateAmountLimit(expectAmount: BN, byAmountIn: boolean, slippage: number): number {
10
+ export function CalculateAmountLimit(
11
+ expectAmount: BN,
12
+ byAmountIn: boolean,
13
+ slippage: number
14
+ ): number {
11
15
  let amountLimit = ZERO
12
16
  if (byAmountIn) {
13
17
  amountLimit = expectAmount.muln(1 - slippage)
@@ -18,20 +22,22 @@ export function CalculateAmountLimit(expectAmount: BN, byAmountIn: boolean, slip
18
22
  return Number(amountLimit.toString())
19
23
  }
20
24
 
21
- const MAX_SQER_PRICE_X64 = '79226673515401279992447579055'
22
- const MIN_SQER_PRICE_X64 = '4295048016'
25
+ const MAX_SQER_PRICE_X64 = "79226673515401279992447579055"
26
+ const MIN_SQER_PRICE_X64 = "4295048016"
23
27
 
24
28
  export function GetDefaultSqrtPriceLimit(a2b: boolean): BN {
25
29
  if (a2b) {
26
30
  return new BN(MIN_SQER_PRICE_X64)
27
31
  } else {
28
- return new BN(MAX_SQER_PRICE_X64)
32
+ return new BN(MAX_SQER_PRICE_X64)
29
33
  }
30
34
  }
31
35
 
32
- export function sqrtPriceX64ToPrice(sqrtPriceStr: string, decimalsA: number, decimalsB: number): Decimal {
36
+ export function sqrtPriceX64ToPrice(
37
+ sqrtPriceStr: string,
38
+ decimalsA: number,
39
+ decimalsB: number
40
+ ): Decimal {
33
41
  const sqrtPriceX64 = new Decimal(sqrtPriceStr).mul(Decimal.pow(2, -64))
34
- return sqrtPriceX64
35
- .pow(2)
36
- .mul(Decimal.pow(10, decimalsA - decimalsB))
42
+ return sqrtPriceX64.pow(2).mul(Decimal.pow(10, decimalsA - decimalsB))
37
43
  }
@@ -51,7 +51,15 @@ export function buildInputCoin(
51
51
  }
52
52
  }
53
53
 
54
- if (CoinUtils.isSuiCoin(coinType)) {
54
+ let totalCoinBalance = CoinUtils.calculateTotalBalance(usedCoinAsests)
55
+ if (totalCoinBalance < amount) {
56
+ throw new AggregateError(
57
+ "Insufficient balance when build merge coin",
58
+ TransactionErrorCode.InsufficientBalance
59
+ )
60
+ }
61
+
62
+ if (CoinUtils.isSuiCoin(coinType) && amount <= BigInt(950000000000)) {
55
63
  const resultCoin = txb.splitCoins(txb.gas, [
56
64
  txb.pure.u64(amount.toString()),
57
65
  ])
@@ -62,14 +70,6 @@ export function buildInputCoin(
62
70
  }
63
71
  }
64
72
 
65
- let totalCoinBalance = CoinUtils.calculateTotalBalance(usedCoinAsests)
66
- if (totalCoinBalance < amount) {
67
- throw new AggregateError(
68
- "Insufficient balance when build merge coin",
69
- TransactionErrorCode.InsufficientBalance
70
- )
71
- }
72
-
73
73
  // sort used coin by amount, asc
74
74
  let sortCoinAssets = CoinUtils.sortByBalance(usedCoinAsests)
75
75
 
package/src/utils/coin.ts CHANGED
@@ -38,24 +38,3 @@ export function compareCoins(coinA: string, coinB: string): boolean {
38
38
  // If both strings are the same length and all characters are equal
39
39
  return true // or coinB, they are equal
40
40
  }
41
-
42
- export function parseTurbosPoolFeeType(typeData: string) {
43
- // "0x91bfbc386a41afcfd9b2533058d7e915a1d3829089cc268ff4333d54d6339ca1::pool::Pool<0xc91acfb75009c5ff2fd57c54f3caaee12ad1fbe997681334adc0b574fc277a07::icorgi::ICORGI, 0x2::sui::SUI, 0x91bfbc386a41afcfd9b2533058d7e915a1d3829089cc268ff4333d54d6339ca1::fee10000bps::FEE10000BPS>"
44
- const regex = /,([^,>]*>)/g
45
- const matches = [...typeData.matchAll(regex)]
46
- if (matches.length > 0) {
47
- const lastMatch = matches[matches.length - 1][1]
48
- return lastMatch.substring(0, lastMatch.length - 1).trim()
49
- }
50
- return null
51
- }
52
-
53
- export function parseAftermathFeeType(typeData: string) {
54
- // 0xefe170ec0be4d762196bedecd7a065816576198a6527c99282a2551aaa7da38c::pool::Pool<0xf66c5ba62888cd0694677bbfbd2332d08ead3b8a4332c40006c474e83b1a6786::af_lp::AF_LP>
55
- // get 0xf66c5ba62888cd0694677bbfbd2332d08ead3b8a4332c40006c474e83b1a6786::af_lp::AF_LP
56
- const regex = /<([^>]*)>/
57
- const matches = typeData.match(regex)
58
- if (matches) {
59
- return matches[1]
60
- }
61
- }
@@ -0,0 +1,13 @@
1
+ import { Ed25519Keypair } from "@mysten/sui/keypairs/ed25519"
2
+ import { sqrtPriceX64ToPrice } from "~/math"
3
+
4
+ describe("test math functions", () => {
5
+ test("test sqrt price x64 to price", () => {
6
+ const sqrtPriceStr = "1312674575678912631"
7
+ const decimalsA = 9
8
+ const decimalsB = 6
9
+
10
+ const price = sqrtPriceX64ToPrice(sqrtPriceStr, decimalsA, decimalsB)
11
+ console.log("price", price.toFixed(9))
12
+ })
13
+ })
@@ -15,6 +15,7 @@ import { Ed25519Keypair } from "@mysten/sui/keypairs/ed25519"
15
15
  import { printTransaction } from "~/utils/transaction"
16
16
  import BN from "bn.js"
17
17
  import { fromHEX } from "@mysten/bcs"
18
+ import { fromB64 } from "@mysten/sui/utils"
18
19
 
19
20
  dotenv.config()
20
21
 
@@ -35,16 +36,17 @@ describe("router module", () => {
35
36
  const secret = process.env.SUI_WALLET_SECRET!
36
37
 
37
38
  // const byte = Buffer.from(secret, "hex")
38
- const byte = Buffer.from(secret, "base64")
39
- const u8Array = new Uint8Array(byte)
40
39
  // keypair = secret
41
40
  // ? Ed25519Keypair.fromSecretKey(u8Array.slice(1, 33))
42
41
  // : buildTestAccount()
42
+ const byte = Buffer.from(secret, "base64")
43
+ const u8Array = new Uint8Array(byte)
43
44
 
44
- keypair = Ed25519Keypair.fromSecretKey(fromHEX(secret))
45
+ keypair = Ed25519Keypair.fromSecretKey(fromB64(secret).slice(1, 33))
45
46
 
46
47
  const wallet = keypair.getPublicKey().toSuiAddress()
47
48
  console.log("wallet", wallet)
49
+
48
50
  // const wallet =
49
51
  // "0x1d30e55c730f92a02a33dbdf6b052cd178e5d924aa58c5e2350a24852250ae58"
50
52
  // const wallet = "0xaabf2fedcb36146db164bec930b74a47969c4df98216e049342a3c49b6d11580"
@@ -93,12 +95,12 @@ describe("router module", () => {
93
95
  const amount = 1000000
94
96
 
95
97
  const res = await client.swapInPools({
96
- from: M_NAVI,
98
+ from: M_USDC,
97
99
  target: M_SUI,
98
100
  amount: new BN(amount),
99
- byAmountIn: false,
101
+ byAmountIn: true,
100
102
  pools: [
101
- "0x0254747f5ca059a1972cd7f6016485d51392a3fde608107b93bbaebea550f703",
103
+ "0xcf994611fd4c48e277ce3ffd4d4364c914af2c3cbb05f7bf6facd371de688630",
102
104
  ],
103
105
  })
104
106
 
@@ -108,26 +110,18 @@ describe("router module", () => {
108
110
  })
109
111
 
110
112
  test("Find router", async () => {
111
- const amount = "10000000000000000"
113
+ const amount = "42392676100000000"
112
114
 
113
115
  const res = await client.findRouter({
114
116
  from: M_SUI,
115
117
  target: M_USDC,
116
118
  amount: new BN(amount),
117
119
  byAmountIn: true,
118
- depth: 1,
120
+ depth: 3,
119
121
  splitAlgorithm: null,
120
122
  splitFactor: null,
121
123
  splitCount: 1,
122
- providers: [
123
- // "AFTERMATH",
124
- // "CETUS",
125
- "DEEPBOOK",
126
- // "KRIYA",
127
- // "FLOWX",
128
- // "AFTERMATH",
129
- // "TRUBOS",
130
- ],
124
+ providers: ["CETUS"],
131
125
  })
132
126
 
133
127
  if (res != null) {
@@ -140,10 +134,10 @@ describe("router module", () => {
140
134
 
141
135
  test("Build router tx", async () => {
142
136
  const byAmountIn = true
143
- const amount = 500000000
137
+ const amount = "42392676100000000"
144
138
 
145
139
  const from = M_SUI
146
- const target = M_NAVI
140
+ const target = M_USDC
147
141
 
148
142
  const res = await client.findRouter({
149
143
  from,
@@ -154,7 +148,7 @@ describe("router module", () => {
154
148
  splitAlgorithm: null,
155
149
  splitFactor: null,
156
150
  splitCount: null,
157
- providers: ["CETUS", "DEEPBOOK", "KRIYA", "FLOWX", "AFTERMATH", "TURBOS"],
151
+ providers: ["CETUS"],
158
152
  })
159
153
 
160
154
  if (res != null) {
@@ -175,12 +169,11 @@ describe("router module", () => {
175
169
  fromCoinType: from,
176
170
  targetCoinType: target,
177
171
  partner: undefined,
178
- isMergeTragetCoin: true,
172
+ isMergeTragetCoin: false,
173
+ refreshAllCoins: true,
179
174
  })
180
175
 
181
- printTransaction(routerTx)
182
-
183
- let result = await client.devInspectTransactionBlock(routerTx, keypair)
176
+ let result = await client.devInspectTransactionBlock(routerTx)
184
177
 
185
178
  if (result.effects.status.status === "success") {
186
179
  console.log("Sim exec transaction success")
@@ -233,10 +226,7 @@ describe("router module", () => {
233
226
  isMergeTragetCoin: false,
234
227
  })
235
228
 
236
- let result = await client.devInspectTransactionBlock(
237
- routerTx,
238
- keypair
239
- )
229
+ let result = await client.devInspectTransactionBlock(routerTx)
240
230
  // console.log('result', result)
241
231
 
242
232
  if (result.effects.status.status === "success") {
@@ -1,10 +0,0 @@
1
- import { parseTurbosPoolFeeType } from "./coin"
2
-
3
- describe("Coin Utils", () => {
4
- it("should fetch token infos by URL and return data", async () => {
5
- const typeDate =
6
- "0x91bfbc386a41afcfd9b2533058d7e915a1d3829089cc268ff4333d54d6339ca1::pool::Pool<0xc91acfb75009c5ff2fd57c54f3caaee12ad1fbe997681334adc0b574fc277a07::icorgi::ICORGI, 0x2::sui::SUI, 0x91bfbc386a41afcfd9b2533058d7e915a1d3829089cc268ff4333d54d6339ca1::fee10000bps::FEE10000BPS>"
7
- const result = parseTurbosPoolFeeType(typeDate)
8
- console.log("parse turbos pool type", result)
9
- })
10
- })