@minswap/noodles-sdk 0.0.65-beta.2 → 0.0.65

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.ts CHANGED
@@ -22,18 +22,6 @@ import { TransactionObjectArgument } from '@mysten/sui/transactions';
22
22
  import { TransactionResult } from '@mysten/sui/transactions';
23
23
  import type { TxSorSwap } from '@bluefin-exchange/bluefin7k-aggregator-sdk';
24
24
 
25
- /**
26
- * Adapter to make SuiGrpcClient v1.38 compatible with libraries expecting v1.34
27
- * This works around TypeScript type incompatibilities between versions
28
- */
29
- export declare function adaptSuiClient(client: SuiGrpcClient): SuiGrpcClient;
30
-
31
- /**
32
- * Adapter to make Transaction v1.38 compatible with libraries expecting v1.34
33
- * This works around TypeScript type incompatibilities between versions
34
- */
35
- export declare function adaptTransaction(transaction: Transaction): Transaction;
36
-
37
25
  export declare function addGasFee(params: {
38
26
  inheritTx?: Transaction;
39
27
  sender: string;
@@ -877,11 +865,6 @@ export declare interface CommonTxParams {
877
865
  /** Configuration object ID for boosting settings */
878
866
  export declare const CONFIG_ID = "0x8b1a8ac6e34688cd8f8f8e5fefa9d5fb9e1ff74d2f132f8e208ae5ac9cc530bb";
879
867
 
880
- /**
881
- * Alternative: Create a proxy that ensures compatibility
882
- */
883
- export declare function createCompatibleSuiClient(client: SuiGrpcClient): LegacySuiClient;
884
-
885
868
  export declare class CurveModule implements IModule {
886
869
  readonly sdk: NoodlesSdk;
887
870
  constructor(sdk: NoodlesSdk);
@@ -1566,8 +1549,6 @@ export declare namespace KriyaClmm {
1566
1549
  const VERSION_OBJ_ID = "0xf5145a7ac345ca8736cf8c76047d00d6d378f30e81be6f6eb557184d9de93c78";
1567
1550
  }
1568
1551
 
1569
- declare type LegacySuiClient = SuiGrpcClient;
1570
-
1571
1552
  export declare namespace MagmaAlmm {
1572
1553
  const FACTORY_OBJ_ID = "0xedb456e93e423dd75a8ddebedd9974bb661195043027e32ce01649d6ccee74cf";
1573
1554
  const GLOBAL_CONFIG_OBJ_ID = "0x4c4e1402401f72c7d8533d0ed8d5f8949da363c7a3319ccef261ffe153d32f8a";
@@ -1963,7 +1944,7 @@ export declare namespace PythUtils {
1963
1944
  const WORMHOLE_STATE_ID = "0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c";
1964
1945
  const PYTH_STATE_ID = "0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8";
1965
1946
  export function newPythConnections(pythUrls?: string[]): SuiPriceServiceConnection[];
1966
- export function newPythClient(suiClient?: SuiGrpcClient): SuiPythClient;
1947
+ export function newPythClient(suiClient?: SuiJsonRpcClient): SuiPythClient;
1967
1948
  export function updatePythPriceIDs(params: {
1968
1949
  priceFeedIds: PythPriceFeedId[];
1969
1950
  txb: Transaction;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- let e;import{__webpack_require__ as t}from"./0~rslib-runtime.js";import{BluefinXTx as o,Config as r,buildTx as a,getQuote as n}from"@bluefin-exchange/bluefin7k-aggregator-sdk";import{Transaction as i}from"@mysten/sui/transactions";import s from"bignumber.js";import c from"@minswap/tiny-invariant";import{SUI_CLOCK_OBJECT_ID as u,SUI_SYSTEM_STATE_OBJECT_ID as l,fromBase64 as d,isValidSuiAddress as p,normalizeStructTag as _,normalizeSuiAddress as m,parseStructTag as f,toHex as g}from"@mysten/sui/utils";import{Aftermath as A,AftermathApi as b,Helpers as I}from"aftermath-ts-sdk";import{AFSUI as T,AFTERMATH as C,ALPHAFI as O,AggregatorClient as M,BLUEFIN as E,BLUEMOVE as y,CETUS as h,CETUSDLMM as S,DEEPBOOKV3 as F,Env as P,FERRACLMM as B,FERRADLMM as w,FLOWXV2 as D,FLOWXV3 as R,FULLSAIL as x,HAEDAL as L,HAEDALHMMV2 as v,HAEDALPMM as k,HAWAL as N,KRIYA as U,KRIYAV3 as G,MAGMA as K,METASTABLE as j,MOMENTUM as q,OBRIC as $,SCALLOP as Y,SEVENK as V,SPRINGSUI as J,STEAMM as H,STEAMM_OMM as X,STEAMM_OMM_V2 as W,SUILEND as z,TURBOS as Q,VOLO as Z}from"@cetusprotocol/aggregator-sdk";import ee from"bn.js";import{AggregatorQuoter as et,Coin as eo,Commission as er,CommissionType as ea,Protocol as en,TradeBuilder as ei}from"@flowx-finance/sdk";import{Network as es}from"@interest-protocol/sui-core-sdk";import{SuiGrpcClient as ec}from"@mysten/sui/grpc";import{Ed25519Keypair as eu}from"@mysten/sui/keypairs/ed25519";import{bcs as el}from"@mysten/sui/bcs";import{SuiPriceServiceConnection as ed,SuiPythClient as ep}from"@pythnetwork/pyth-sui-js";import{getAmountAfterFee as e_,getSplitCoinForTx as em,CLOCK_OBJECT_ID as ef,SUI_METADATA_OBJECT_ID as eg,SUI_TYPE as eA,isSuiCoinType as eb,getNeededGasFee as eI,addGasFee as eT,SUI_ADDRESS_ZERO as eC,getSplitCoinsAfterFee as eO,SUI_FULL_TYPE as eM}from"./832.js";var eE,ey,eh,eS,eF,eP,eB,ew,eD,eR,ex,eL,ev,ek,eN,eU,eG,eK,ej,eq,e$,eY,eV,eJ,eH,eX,eW,ez,eQ,eZ,e0,e1,e4,e6,e3,e2,e5,e8,e9,e7,te,tt,to,tr,ta,tn,ti,ts,tc,tu,tl,td,tp,t_,tm,tf,tg,tA,tb,tI,tT,tC,tO,tM,tE,ty,th,tS,tF,tP,tB,tw,tD,tR,tx,tL,tv,tk,tN,tU,tG,tK,tj,tq,t$,tY,tV,tJ,tH,tX,tW,tz,tQ,tZ,t0,t1,t4,t6,t3,t2,t5,t8,t9,t7,oe,ot,oo,or,oa,on,oi,os,oc,ou,ol,od,op,o_,om,of,og,oA,ob,oI,oT,oC,oO,oM,oE,oy,oh,oS,oF,oP,oB,ow,oD,oR,ox,oL,ov,ok,oN,oU,oG,oK,oj,oq,o$,oY,oV,oJ,oH,oX,oW,oz,oQ,oZ,o0,o1,o4,o6,o3,o2,o5,o8,o9,o7={};t.r(o7),t.d(o7,{Bluefin7kClient:()=>rK});var re={};t.r(re),t.d(re,{CetusClient:()=>rq});var rt={};function ro(e){return e===eA?eM:e}function rr(e){return e===eM?eA:e}function ra(e){return e===eM||e===eA}t.r(rt),t.d(rt,{FlowxClient:()=>r$}),(eE=tD||(tD={})).MAX_AMOUNT_IN="18446744073709551615",eE.LAST_PACKAGE_ID="0x7e57926855b32baa3b3cabed89380b8d415606fdedadc18e58bd1ef1e60aee48",eE.openSwap=function(e){let{tx:t,expectedAmountOut:o,minAmountOut:r,coinInType:a,coinOutType:n,inputCoin:i,aggregatorFeeBps:s,aggregatorFeeRecipient:c,partnerFeeRecipient:u,partnerFeeBps:l}=e,[d]=t.moveCall({target:`${eE.LAST_PACKAGE_ID}::aggregator::open_swap`,typeArguments:[a,n],arguments:[t.pure.u64(o),t.pure.u64(r),i,t.pure.u32(s),t.pure.address(c),t.pure.u32(l??0),t.pure.option("address",u)]});return d},eE.closeSwap=function(e){let{tx:t,coinOutType:o,swapSession:r}=e,[a]=t.moveCall({target:`${eE.LAST_PACKAGE_ID}::aggregator::close_swap`,typeArguments:[o],arguments:[r]});return a};var rn=((ey={}).AFTERMATH_CPMM="aftermath_cpmm",ey.AFTERMATH_LSD="aftermath_lsd",ey.ALPHAFI_LSD="alphafi_lsd",ey.BLASTFUN="blastfun",ey.BLUEFIN_CLMM="bluefin_clmm",ey.BLUEMOVE_CPMM="bluemove_cpmm",ey.BOLT="bolt",ey.CETUS_CLMM="cetus_clmm",ey.CETUS_DLMM="cetus_dlmm",ey.DEEPBOOK_V3="deepbook_v3",ey.DIP_CPMM="dip_cpmm",ey.FLOWX_CPMM="flowx_cpmm",ey.FLOWX_CLMM="flowx_clmm",ey.FULLSAIL_CLMM="fullsail_clmm",ey.FERRA_CLMM="ferra_clmm",ey.FERRA_DLMM="ferra_dlmm",ey.HAEDAL_CPMM="haedal_cpmm",ey.HAEDAL_CPMM_V2="haedal_cpmm_v2",ey.HAEDAL_LSD="haedal_lsd",ey.HAEDAL_LSD_WAL="haedal_lsd_wal",ey.KRIYA_CLMM="kriya_clmm",ey.KRIYA_CPMM="kriya_cpmm",ey.MAGMA_ALMM="magma_almm",ey.MAGMA_CLMM="magma_clmm",ey.METASTABLE="metastable",ey.MOMENTUM_CLMM="momentum_clmm",ey.MOVEPUMP="movepump",ey.OBRIC="obric",ey.SCALLOP="scallop",ey.SEVENK_CPMM="sevenk_cpmm",ey.SEVENK_FUN="sevenk_fun",ey.SPRINGSUI="springsui",ey.SRM_CPMM="srm_cpmm",ey.STEAMM_CPMM="steamm_cpmm",ey.SUISWAP_CPMM="suiswap_cpmm",ey.STEAMM_OMM="steamm_omm",ey.STEAMM_OMM_V2="steamm_omm_v2",ey.TRADEPORT_CLMM="tradeport_clmm",ey.TURBOS_CLMM="turbos_clmm",ey.TURBOS_FUN="turbos_fun",ey.VOLO="volo",ey);function ri(e,t){console.error(`NOODLES_SDK_AGGREGATOR_ROUTE_ERROR aggregator=${e} error=${function(e){if(e instanceof Error)return`${e.name}: ${e.message}`;if("string"==typeof e)return e;try{return JSON.stringify(e)}catch{return String(e)}}(t)}`)}!function(e){let t=new Set(["bluefinx","RFQ"]);e.SUPPORTED_PROTOCOLS=["suiswap","turbos","cetus","bluemove","kriya","kriya_v3","aftermath","deepbook_v3","flowx","flowx_v3","bluefin","springsui","obric","stsui","steamm","steamm_oracle_quoter","steamm_oracle_quoter_v2","magma","haedal_pmm","momentum","sevenk_v1","fullsail","cetus_dlmm","ferra_dlmm","ferra_clmm"];let o={aftermath:e=>{c(e.extra?.poolStructTag,"Aftermath protocol requires poolStructTag");let[t]=i(e.extra.poolStructTag);return{...n(e),protocol:rn.AFTERMATH_CPMM,coinLpType:t}},flowx_v3:e=>{c(e.extra?.swapFeeRate,"flowx_v3 protocol requires swapFeeRate");let t=e.extra.swapFeeRate;return{...n(e),protocol:rn.FLOWX_CLMM,poolFeeRate:t}},turbos:e=>{c(e.extra?.poolStructTag,"turbos protocol requires poolStructTag");let[t,o,r]=i(e.extra.poolStructTag);return{...n(e),protocol:rn.TURBOS_CLMM,coinFeeType:r}},obric:e=>(c(e.extra?.oracles,"obric protocol requires oracles"),{...n(e),protocol:rn.OBRIC,pythPriceFeedIdA:s(e.extra.oracles[0]),pythPriceFeedIdB:s(e.extra.oracles[1])}),haedal_pmm:e=>(c(e.extra.oracles,"haedal_pmm protocol requires oracles"),{...n(e),protocol:rn.HAEDAL_CPMM,pythPriceFeedIdA:s(e.extra.oracles[0]),pythPriceFeedIdB:s(e.extra.oracles[1])}),sevenk_v1:e=>{c(e.extra?.poolStructTag,"sevenk_v1 protocol requires poolStructTag"),c(e.extra?.oracleConfigX,"sevenk_v1 protocol requires oracleConfigX"),c(e.extra?.oracleConfigY,"sevenk_v1 protocol requires oracleConfigY");let t=e.extra.oracles?.[0]?.Pyth?.bytes,o=e.extra.oracles?.[1]?.Pyth?.bytes;c(t,"sevenk_v1 protocol requires pythPriceFeedIdA"),c(o,"sevenk_v1 protocol requires pythPriceFeedIdB");let[r,a,s]=i(e.extra.poolStructTag);return{...n(e),protocol:rn.SEVENK_CPMM,coinLpType:s,pythPriceFeedIdA:t,pythPriceFeedIdB:o,oracleConfigA:e.extra.oracleConfigX,oracleConfigB:e.extra.oracleConfigY}},steamm:e=>{c(e.extra?.poolStructTag,"steamm protocol requires poolStructTag"),c(e.extra?.bankAStructTag,"steamm protocol requires bankAStructTag"),c(e.extra?.lendingMarketA,"steamm protocol requires lendingMarketA"),c(e.extra?.bankA,"steamm protocol requires bankA"),c(e.extra?.bankB,"steamm protocol requires bankB");let[t,o,r,a]=i(e.extra.poolStructTag),[s,u,l]=i(e.extra.bankAStructTag);return{...n(e),protocol:rn.STEAMM_CPMM,bankAId:e.extra.bankA,bankBId:e.extra.bankB,lendingMarketId:e.extra.lendingMarketA,lendingMarketType:s,bCoinAType:t,bCoinBType:o,lpBCoinType:a}},steamm_oracle_quoter:e=>{c(e.extra?.poolStructTag,"steamm_oracle_quoter protocol requires poolStructTag"),c(e.extra?.bankAStructTag,"steamm_oracle_quoter protocol requires bankAStructTag"),c(e.extra?.lendingMarketA,"steamm_oracle_quoter protocol requires lendingMarketA"),c(e.extra?.oracleRegistry,"steamm_oracle_quoter protocol requires oracleRegistry"),c(e.extra?.bankA,"steamm_oracle_quoter protocol requires bankA"),c(e.extra?.bankB,"steamm_oracle_quoter protocol requires bankB"),c(e.extra?.oracleIndexes,"steamm_oracle_quoter protocol requires oracleIndexes"),c(e.extra?.oracles,"steamm_oracle_quoter protocol requires oracles");let[t,o,r,a]=i(e.extra?.poolStructTag),[u,l,d]=i(e.extra.bankAStructTag),[p,_]=e.extra.oracleIndexes;return{...n(e),protocol:rn.STEAMM_OMM,bankAId:e.extra.bankA,bankBId:e.extra.bankB,lendingMarketId:e.extra.lendingMarketA,lendingMarketType:u,bCoinAType:t,bCoinBType:o,lpBCoinType:a,pythPriceFeedIdA:s(e.extra.oracles[0]),pythPriceFeedIdB:s(e.extra.oracles[1]),oracleRegistryId:e.extra.oracleRegistry,oracleIndexA:p,oracleIndexB:_}},steamm_oracle_quoter_v2:e=>{c(e.extra?.poolStructTag,"steamm_oracle_quoter_v2 protocol requires poolStructTag"),c(e.extra?.bankAStructTag,"steamm_oracle_quoter_v2 protocol requires bankAStructTag"),c(e.extra?.lendingMarketA,"steamm_oracle_quoter_v2 protocol requires lendingMarketA"),c(e.extra?.oracleRegistry,"steamm_oracle_quoter_v2 protocol requires oracleRegistry"),c(e.extra?.bankA,"steamm_oracle_quoter_v2 protocol requires bankA"),c(e.extra?.bankB,"steamm_oracle_quoter_v2 protocol requires bankB"),c(e.extra?.oracleIndexes,"steamm_oracle_quoter_v2 protocol requires oracleIndexes"),c(e.extra?.oracles,"steamm_oracle_quoter_v2 protocol requires oracles");let[t,o,r,a]=i(e.extra?.poolStructTag),[u,l,d]=i(e.extra.bankAStructTag),[p,_]=e.extra.oracleIndexes;return{...n(e),protocol:rn.STEAMM_OMM_V2,bankAId:e.extra.bankA,bankBId:e.extra.bankB,lendingMarketId:e.extra.lendingMarketA,lendingMarketType:u,bCoinAType:t,bCoinBType:o,lpBCoinType:a,pythPriceFeedIdA:s(e.extra.oracles[0]),pythPriceFeedIdB:s(e.extra.oracles[1]),oracleRegistryId:e.extra.oracleRegistry,oracleIndexA:p,oracleIndexB:_}},cetus:e=>({...n(e),protocol:rn.CETUS_CLMM}),bluemove:e=>({...n(e),protocol:rn.BLUEMOVE_CPMM}),kriya:e=>({...n(e),protocol:rn.KRIYA_CPMM}),kriya_v3:e=>({...n(e),protocol:rn.KRIYA_CLMM}),deepbook_v3:e=>({...n(e),protocol:rn.DEEPBOOK_V3}),flowx:e=>({...n(e),protocol:rn.FLOWX_CPMM}),bluefin:e=>({...n(e),protocol:rn.BLUEFIN_CLMM}),springsui:e=>({...n(e),protocol:rn.SPRINGSUI}),magma:e=>({...n(e),protocol:rn.MAGMA_CLMM}),momentum:e=>({...n(e),protocol:rn.MOMENTUM_CLMM}),fullsail:e=>({...n(e),protocol:rn.FULLSAIL_CLMM}),stsui:e=>({...n(e),protocol:rn.ALPHAFI_LSD}),suiswap:e=>({...n(e),protocol:rn.SUISWAP_CPMM}),cetus_dlmm:e=>({...n(e),protocol:rn.CETUS_DLMM}),ferra_dlmm:e=>({...n(e),protocol:rn.FERRA_DLMM}),ferra_clmm:e=>({...n(e),protocol:rn.FERRA_CLMM})};function r(e){let r=e.pool.type;if(t.has(r))throw Error(`Unsupported SourceDex: ${r}`);return(0,o[r])(e)}function a(e){let t=new Map;for(let[o,r]of e.entries())t.set(r.assetIn,o);let o=e.map(r);for(let e of t.values())o[e].amountIn=tD.MAX_AMOUNT_IN;return o}function n(e){return{poolId:e.poolId,coinInType:e.assetIn,coinOutType:e.assetOut,amountIn:e.amount,aToB:e.swapXtoY}}function i(e){return f(e||"").typeParams.map(_)}function s(e){let t=e?.Pyth?.bytes||e?.Pyth?.price_identifier?.bytes;return c(t,"Pyth price feed id is not found"),"0x"+g(Uint8Array.from(t))}e.toMetaAggregatorPath=r,e.toMetaAggregatorPaths=a,e.convert=function(e){var t,o,r;let n;c(e.routes,"Invalid raw route: routes is missing");let i=(t=e.routes,n={},t.forEach(e=>{e.hops.forEach(e=>{n[e.poolId]=e.pool})}),n),s=a((o=e.swaps,r=i,o.map(e=>{let t=r[e.poolId],o=rr(e.assetIn),a=rr(e.assetOut),n={type:rr(t?.allTokens?.[0]?.address),decimals:t?.allTokens?.[0]?.decimal},i={type:rr(t?.allTokens?.[1]?.address),decimals:t?.allTokens?.[0]?.decimal},s=o===n.type;return{...e,pool:t,assetIn:o,assetOut:a,coinX:n,coinY:i,swapXtoY:s}})));return{coinInType:e.tokenIn,coinOutType:e.tokenOut,amountOut:e.returnAmountWithDecimal,tradePaths:s}}}(tR||(tR={}));class rs{_config;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:a,metaAggregator:i,supportedProtocols:s}){try{this._config.sevenKApiKey&&r.setApiKey(this._config.sevenKApiKey);let c=a?a.tradeFeePercent:this._config.defaultTradeFee.tradeFeePercent,u=s??(i?tR.SUPPORTED_PROTOCOLS:void 0);return await n({tokenIn:t,tokenOut:o,amountIn:e.toString(),commissionBps:1e4*c,sources:u})}catch(e){return ri("sevenk",e),null}}async getTransaction({walletAddress:e,completeRoute:t,slippage:r,tradeFee:n}){let s,c;n?(s=n.tradeFeePercent,c=n.tradeFeeRecipientAddress):(s=this._config.defaultTradeFee.tradeFeePercent,c=this._config.defaultTradeFee.tradeFeeRecipientAddress);let u=await a({quoteResponse:t,slippage:r,accountAddress:e,commission:{partner:c,commissionBps:1e4*s}});return u.tx instanceof o?i.from(u.tx.txBytes).build({client:this._suiClient}):(u.tx.setSender(e),u.tx.build({client:this._suiClient}))}}function rc(e){return"bigint"==typeof e?e:"string"==typeof e&&/^\d+$/.test(e)?BigInt(e):e}function ru(e){return{...e,coinIn:e.coinIn?{...e.coinIn,amount:rc(e.coinIn.amount),tradeFee:rc(e.coinIn.tradeFee)}:e.coinIn,coinOut:e.coinOut?{...e.coinOut,amount:rc(e.coinOut.amount),tradeFee:rc(e.coinOut.tradeFee)}:e.coinOut}}(rs||(rs={})).toCommonTradeRoutes=function(e){let t=[];if(!e.routes||0===e.routes.length)return null;for(let o of e.routes){let e=[],r={};for(let t of o.hops){for(let e of t.pool.allTokens)r[e.address]=e.decimal;let o=r[t.tokenIn]??0,a=r[t.tokenOut]??0,n=BigInt(new s(t.tokenInAmount).multipliedBy(10**o).toFixed(0,3)),i=BigInt(new s(t.tokenOutAmount).multipliedBy(10**a).toFixed(0,3));e.push({poolAddress:t.poolId,coinIn:t.tokenIn,coinOut:t.tokenOut,amountIn:n,amountOut:i})}if(0===e.length)continue;let a=r[o.tokenIn]??0,n=r[o.tokenOut]??0,i=BigInt(new s(o.tokenInAmount).multipliedBy(10**a).toFixed(0,3)),c=BigInt(new s(o.tokenOutAmount).multipliedBy(10**n).toFixed(0,3));t.push({paths:e,coinIn:o.tokenIn,coinOut:o.tokenOut,amountIn:i,amountOut:c})}return 0===t.length?null:{coinIn:e.tokenIn,coinOut:e.tokenOut,amountIn:BigInt(e.swapAmountWithDecimal),amountOut:BigInt(e.returnAmountAfterCommissionWithDecimal),routes:t}};class rl{_config;_aftermathClient;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}async aftermathClient(){if(this._aftermathClient)return this._aftermathClient;let e=new A(this._config.aftermathApiEndpoint?this._config.aftermathApiEndpoint:"MAINNET"),t=await e.getAddresses();if(this._aftermathClient=new A(this._config.aftermathApiEndpoint??"MAINNET",new b(this._suiClient,t)),this._config.aftermathApiKey){let e=I.keypairFromPrivateKey(this._config.aftermathApiKey);await this._aftermathClient.Auth().init({async signMessageCallback({message:t}){let{signature:o}=await e.signPersonalMessage(t);return{signature:o}},walletAddress:e.toSuiAddress()})}return this._aftermathClient}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r}){try{let a;a=r?{recipient:r.tradeFeeRecipientAddress,feePercentage:r.tradeFeePercent}:{recipient:this._config.defaultTradeFee.tradeFeeRecipientAddress,feePercentage:this._config.defaultTradeFee.tradeFeePercent};let n=await this.aftermathClient();return await n.Router().getCompleteTradeRouteGivenAmountIn({coinInAmount:e,coinInType:t,coinOutType:o,externalFee:a})}catch(e){return ri("aftermath",e),null}}async getTransaction({completeRoute:e,walletAddress:t,slippage:o}){let r=await this.aftermathClient(),a=await r.Router().getTransactionForCompleteTradeRoute({completeRoute:function(e){if("object"!=typeof e||null===e)return e;let t=ru(e);return{...t,routes:Array.isArray(t.routes)?t.routes.map(e=>{let t=ru(e);return{...t,portion:rc(t.portion),paths:Array.isArray(t.paths)?t.paths.map(e=>ru(e)):t.paths}}):t.routes,feeBreakdown:Array.isArray(t.feeBreakdown)?t.feeBreakdown.map(e=>({...e,amount:rc(e.amount)})):t.feeBreakdown}}(e),walletAddress:t,slippage:o,isSponsoredTx:!1});return a.setSender(t),a.build({client:this._suiClient})}}(rl||(rl={})).toCommonTradeRoutes=function(e){if(0===e.routes.length)return null;let t=[];for(let o of e.routes){let e=[];for(let t of o.paths)e.push({poolAddress:t.poolId,coinIn:t.coinIn.type,coinOut:t.coinOut.type,amountIn:BigInt(t.coinIn.amount),amountOut:BigInt(t.coinOut.amount)});0!==e.length&&t.push({paths:e,coinIn:o.coinIn.type,coinOut:o.coinOut.type,amountIn:o.coinIn.amount,amountOut:o.coinOut.amount})}return 0===t.length?null:{coinIn:e.coinIn.type,coinOut:e.coinOut.type,amountIn:e.coinIn.amount,amountOut:e.coinOut.amount,routes:t}};class rd{_config;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r}){try{let a;a=r?{fee:1e4*r.tradeFeePercent,receiverAddress:r.tradeFeeRecipientAddress}:{fee:1e4*this._config.defaultTradeFee.tradeFeePercent,receiverAddress:this._config.defaultTradeFee.tradeFeeRecipientAddress};let{getQuote:n}=await import("@naviprotocol/astros-aggregator-sdk");return await n(t,o,e,this._config.astrosApiKey,{byAmountIn:!0,serviceFee:a})}catch(e){return ri("astros",e),null}}returnMergedCoins(e,t,o){if(t.length<2)return e.object(t[0].coinObjectId);let r=0,a=[];t.sort((e,t)=>Number(t.balance)-Number(e.balance)).slice(1).forEach(e=>{r>=o||(r+=Number(e.balance),a.push(e.coinObjectId))});let n=t[0].coinObjectId;return e.mergeCoins(n,a),e.object(n)}async getTransaction({completeRoute:e,walletAddress:t,slippage:o,tradeFee:r}){var a;let n,c;n=r?{fee:r.tradeFeePercent,receiverAddress:r.tradeFeeRecipientAddress}:{fee:this._config.defaultTradeFee.tradeFeePercent,receiverAddress:this._config.defaultTradeFee.tradeFeeRecipientAddress};let u=new s(e.amount_out).multipliedBy(1-o-n.fee).toNumber(),l=new i,{buildSwapPTBFromQuote:d,getCoins:p}=await import("@naviprotocol/astros-aggregator-sdk"),_=this._suiClient;if("0x2::sui::SUI"===(a=e.from)||"0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI"===a)c=l.splitCoins(l.gas,[l.pure.u64(e.amount_in)]);else{let o=await p(_,t,e.from),r=this.returnMergedCoins(l,o.data,Number.parseFloat(e.amount_in));c=l.splitCoins(r,[l.pure.u64(e.amount_in)])}let m=await d(t,l,u,c,e,void 0,!1,this._config.astrosApiKey,{serviceFee:n});return l.transferObjects([m],t),l.setSender(t),l.build({client:this._suiClient})}}(rd||(rd={})).toCommonTradeRoutes=function(e,t,o){if(0===e.routes.length)return null;let r=[];for(let t of e.routes){let e=[];for(let o of t.path)e.push({poolAddress:o.id,coinIn:o.from,coinOut:o.target,amountIn:BigInt(o.amount_in),amountOut:BigInt(o.amount_out)});0!==e.length&&r.push({amountIn:BigInt(t.amount_in),amountOut:BigInt(t.amount_out),coinIn:e[0].coinIn,coinOut:e[e.length-1].coinOut,paths:e})}return 0===r.length?null:{coinIn:t,coinOut:o,amountIn:BigInt(e.amount_in),amountOut:BigInt(e.amount_out),routes:r}},(tx||(tx={})).equals=function(e,t){return e.tradeFeePercent===t.tradeFeePercent&&e.tradeFeeRecipientAddress===t.tradeFeeRecipientAddress},(eh=tL||(tL={})).UNIVERSAL_META_VAULT_INTEGRATION_PACKAGE_ID="0xfd12517a9fc87c6a1f2357ad13b3421fb27a8bd7ca07d5fd5934ac35733baa47",(eS=eh.MetaCoinType||(eh.MetaCoinType={})).SUPER_SUI="0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI",eS.MUSD="0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD",eS.METH="0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH",eh.VERSION_OBJ_ID="0x4696559327b35ff2ab26904e7426a1646312e9c836d5c6cff6709a5ccc30915c",eh.createCap=function(e){let t,{txb:o,coinType:r,metaCoin:a,createCapAllTypeParams:n,whitelistedAppId:i,poolId:s,pythInfoObjectIdMap:l,createCapPackageId:d,createCapModule:p,createCapFunc:_}=e,m=[a.toString()];switch(n&&m.push(r),e.metaCoin){case"0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI":t=[o.object(i),o.object(s),o.object(e.registryId)];break;case"0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD":{let r=l.get(e.pythPriceFeedIdMeta);c(r,"Not found priceMetaId in pythObjectIdMap"),t=[o.object(i),o.object(s),o.object(r),o.object(u)];break}case"0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH":{let r=l.get(e.pythPriceFeedIdMeta);c(r,"Not found priceId in pythObjectIdMap");let a=l.get(e.pythPriceFeedIdEth);c(a,"Not found priceEthFeedId in pythObjectIdMap"),t=[o.object(i),o.object(s),o.object(r),o.object(a),o.object(u)];break}default:throw Error("Invalid MetaCoin: "+a.toString())}return o.moveCall({target:`${d}::${p}::${_}`,typeArguments:m,arguments:t})},eh.getCreateCapModule=function(e){switch(e){case"0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI":return"exchange_rate";case"0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD":case"0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH":return"pyth";default:throw Error("Invalid MetaCoin: "+e)}},eh.isMetaCoinType=function(e){return Object.values(eh.MetaCoinType).map(e=>e.toString()).includes(e)},eh.getCreateCapAllTypeParams=function(e,t){switch(e){case"0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI":return t===eh.UNIVERSAL_META_VAULT_INTEGRATION_PACKAGE_ID;case"0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD":case"0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH":return!0;default:throw Error("Invalid MetaCoin: "+e)}},function(e){let t=[h,U,D,R,G,Q,C,L,Z,T,y,F,Y,z,E,k,O,J,H,j,$,N,X,q,W,K,V,v,x,S,w,B];e.SUPPORTED_PROTOCOLS=[...t];let o=new Set(t),r=e=>({poolId:e.id,coinInType:e.from,coinOutType:e.target,aToB:e.direction,amountIn:e.amountIn});function a(t){if(!o.has(t.provider))throw Error(`Unsupported or unknown provider: ${t.provider} for pool ${t.id}`);return(0,e.TO_META_AGGREGATOR_PATH_FN_MAP[t.provider])(t)}function n(e){let t=new Map;for(let[o,r]of e.paths.entries())t.set(r.from,o);let o=[];for(let r=0;r<e.paths.length;r++){let n=e.paths[r],i=a(n);t.get(n.from)===r&&(i.amountIn=tD.MAX_AMOUNT_IN),o.push(i)}return o}e.TO_META_AGGREGATOR_PATH_FN_MAP={[j]:e=>{let t=r(e),o=e.extendedDetails,a=e.direction?e.target:e.from;c(o&&void 0!==o.metastable_create_cap_pkg_id&&void 0!==o.metastable_create_cap_module&&void 0!==o.metastable_create_cap_all_type_params&&void 0!==o.metastable_whitelisted_app_id,`METASTABLE missing required extendedDetails for pool ${e.id}.`);let n={createCapPackageId:o.metastable_create_cap_pkg_id,createCapModule:o.metastable_create_cap_module,createCapAllTypeParams:o.metastable_create_cap_all_type_params,whitelistedAppId:o.metastable_whitelisted_app_id};switch(a){case tL.MetaCoinType.SUPER_SUI:return c(o.metastable_registry_id,`METASTABLE_SUPER_SUI protocol requires 'metastable_registry_id' in extendedDetails for pool ${e.id}.`),{...t,...n,protocol:rn.METASTABLE,metaCoin:a,registryId:o.metastable_registry_id};case tL.MetaCoinType.MUSD:return c(o.metastable_price_seed,`METASTABLE_MUSD protocol requires 'metastable_price_seed' in extendedDetails for pool ${e.id}.`),{...t,...n,protocol:rn.METASTABLE,metaCoin:a,pythPriceFeedIdMeta:o.metastable_price_seed};case tL.MetaCoinType.METH:return c(o.metastable_price_seed&&o.metastable_eth_price_seed,`METASTABLE_ETH protocol requires 'metastable_price_seed' and 'metastable_eth_price_seed' in extendedDetails for pool ${e.id}.`),{...t,...n,protocol:rn.METASTABLE,metaCoin:a,pythPriceFeedIdMeta:o.metastable_price_seed,pythPriceFeedIdEth:o.metastable_eth_price_seed};default:throw Error(`METASTABLE protocol does not support ${a} as metaCoin.`)}},[F]:e=>({...r(e),protocol:rn.DEEPBOOK_V3}),[C]:e=>{let t=e.extendedDetails;return c(t?.aftermath_lp_supply_type,`AFTERMATH_CPMM protocol requires 'aftermath_lp_type' in extendedDetails for pool ${e.id}.`),{...r(e),protocol:rn.AFTERMATH_CPMM,coinLpType:t.aftermath_lp_supply_type}},[R]:e=>({...r(e),protocol:rn.FLOWX_CLMM,poolFeeRate:String(1e6*e.feeRate)}),[k]:e=>{let t=e.extendedDetails;return c(t?.haedal_pmm_base_price_seed&&t?.haedal_pmm_quote_price_seed,`HAEDAL_CPMM protocol requires 'haedal_pyth_price_a_id' and 'haedal_pyth_price_b_id' in extendedDetails for pool ${e.id}.`),{...r(e),protocol:rn.HAEDAL_CPMM,pythPriceFeedIdA:t.haedal_pmm_base_price_seed,pythPriceFeedIdB:t.haedal_pmm_quote_price_seed}},[v]:e=>{let t=e.extendedDetails;return c(t?.haedalhmmv2_base_price_seed,`HAEDAL_CPMM_V2 protocol requires 'haedal_pyth_price_base_id' in extendedDetails for pool ${e.id}.`),{...r(e),protocol:rn.HAEDAL_CPMM_V2,pythPriceFeedIdBase:t.haedalhmmv2_base_price_seed}},[Y]:e=>(c(e.extendedDetails?.scallop_scoin_treasury,`SCALLOP protocol requires 'scallop_scoin_treasury' in extendedDetails for pool ${e.id}.`),{...r(e),protocol:rn.SCALLOP,scoinTreasury:e.extendedDetails.scallop_scoin_treasury}),[H]:e=>{let t=e.extendedDetails;return c(t?.steamm_bank_a&&t?.steamm_bank_b&&t?.steamm_lending_market&&t?.steamm_lending_market_type&&t?.steamm_btoken_a_type&&t?.steamm_btoken_b_type&&t?.steamm_lp_token_type,`STEAMM_CPMM protocol requires steamm fields in extendedDetails for pool ${e.id}.`),{...r(e),protocol:rn.STEAMM_CPMM,bankAId:t.steamm_bank_a,bankBId:t.steamm_bank_b,lendingMarketId:t.steamm_lending_market,lendingMarketType:t.steamm_lending_market_type,bCoinAType:t.steamm_btoken_a_type,bCoinBType:t.steamm_btoken_b_type,lpBCoinType:t.steamm_lp_token_type}},[X]:e=>{let t=e.extendedDetails;return c(t?.steamm_bank_a&&t?.steamm_bank_b&&t?.steamm_lending_market&&t?.steamm_lending_market_type&&t?.steamm_btoken_a_type&&t?.steamm_btoken_b_type&&t?.steamm_lp_token_type&&t?.steamm_oracle_pyth_price_seed_a&&t?.steamm_oracle_pyth_price_seed_b&&t?.steamm_oracle_registry_id&&t?.steamm_oracle_index_a&&t?.steamm_oracle_index_b,`STEAMM_OMM protocol requires steamm fields in extendedDetails for pool ${e.id}.`),{...r(e),protocol:rn.STEAMM_OMM,bankAId:t.steamm_bank_a,bankBId:t.steamm_bank_b,lendingMarketId:t.steamm_lending_market,lendingMarketType:t.steamm_lending_market_type,bCoinAType:t.steamm_btoken_a_type,bCoinBType:t.steamm_btoken_b_type,lpBCoinType:t.steamm_lp_token_type,pythPriceFeedIdA:t.steamm_oracle_pyth_price_seed_a,pythPriceFeedIdB:t.steamm_oracle_pyth_price_seed_b,oracleRegistryId:t.steamm_oracle_registry_id,oracleIndexA:String(t.steamm_oracle_index_a),oracleIndexB:String(t.steamm_oracle_index_b)}},[W]:e=>{let t=e.extendedDetails;return c(t?.steamm_bank_a&&t?.steamm_bank_b&&t?.steamm_lending_market&&t?.steamm_lending_market_type&&t?.steamm_btoken_a_type&&t?.steamm_btoken_b_type&&t?.steamm_lp_token_type&&t?.steamm_oracle_pyth_price_seed_a&&t?.steamm_oracle_pyth_price_seed_b&&t?.steamm_oracle_registry_id&&t?.steamm_oracle_index_a&&t?.steamm_oracle_index_b,`STEAMM_OMM_V2 protocol requires steamm fields in extendedDetails for pool ${e.id}.`),{...r(e),protocol:rn.STEAMM_OMM_V2,bankAId:t.steamm_bank_a,bankBId:t.steamm_bank_b,lendingMarketId:t.steamm_lending_market,lendingMarketType:t.steamm_lending_market_type,bCoinAType:t.steamm_btoken_a_type,bCoinBType:t.steamm_btoken_b_type,lpBCoinType:t.steamm_lp_token_type,pythPriceFeedIdA:t.steamm_oracle_pyth_price_seed_a,pythPriceFeedIdB:t.steamm_oracle_pyth_price_seed_b,oracleRegistryId:t.steamm_oracle_registry_id,oracleIndexA:String(t.steamm_oracle_index_a),oracleIndexB:String(t.steamm_oracle_index_b)}},[$]:e=>{let t=r(e);if(e.extendedDetails?.obric_coin_a_price_id&&e.extendedDetails?.obric_coin_b_price_id)return{...t,protocol:rn.OBRIC,priceInfoObjIdA:e.extendedDetails.obric_coin_a_price_id,priceInfoObjIdB:e.extendedDetails.obric_coin_b_price_id};if(e.extendedDetails?.obric_coin_a_price_seed&&e.extendedDetails?.obric_coin_b_price_seed)return{...t,protocol:rn.OBRIC,pythPriceFeedIdA:e.extendedDetails.obric_coin_a_price_seed,pythPriceFeedIdB:e.extendedDetails.obric_coin_b_price_seed};throw Error(`OBRIC protocol requires 'obric_coin_a_price_id' and 'obric_coin_b_price_id' in extendedDetails for pool ${e.id}.`)},[V]:e=>{let t=e.extendedDetails;return c(t?.sevenk_lp_cap_type&&t?.sevenk_coin_a_price_seed&&t?.sevenk_coin_b_price_seed&&t?.sevenk_oracle_config_a&&t?.sevenk_oracle_config_b,`SEVENK_CPMM protocol requires sevenk fields in extendedDetails for pool ${e.id}.`),{...r(e),protocol:rn.SEVENK_CPMM,coinLpType:t.sevenk_lp_cap_type,pythPriceFeedIdA:t.sevenk_coin_a_price_seed,pythPriceFeedIdB:t.sevenk_coin_b_price_seed,oracleConfigA:t.sevenk_oracle_config_a,oracleConfigB:t.sevenk_oracle_config_b}},[Q]:e=>(c(e.extendedDetails?.turbos_fee_type,`TURBOS_CLMM protocol requires 'coinFeeType' parameter for pool ${e.id}. Provide it via the parametersMap argument.`),{...r(e),protocol:rn.TURBOS_CLMM,coinFeeType:e.extendedDetails.turbos_fee_type}),[T]:e=>({...r(e),protocol:rn.AFTERMATH_LSD}),[O]:e=>({...r(e),protocol:rn.ALPHAFI_LSD}),[E]:e=>({...r(e),protocol:rn.BLUEFIN_CLMM}),[y]:e=>({...r(e),protocol:rn.BLUEMOVE_CPMM}),[h]:e=>({...r(e),protocol:rn.CETUS_CLMM}),[S]:e=>({...r(e),protocol:rn.CETUS_DLMM}),[B]:e=>({...r(e),protocol:rn.FERRA_CLMM}),[w]:e=>({...r(e),protocol:rn.FERRA_DLMM}),[D]:e=>({...r(e),protocol:rn.FLOWX_CPMM}),[x]:e=>({...r(e),protocol:rn.FULLSAIL_CLMM}),[L]:e=>({...r(e),protocol:rn.HAEDAL_LSD}),[N]:e=>({...r(e),protocol:rn.HAEDAL_LSD_WAL}),[U]:e=>({...r(e),protocol:rn.KRIYA_CPMM}),[G]:e=>({...r(e),protocol:rn.KRIYA_CLMM}),[K]:e=>({...r(e),protocol:rn.MAGMA_CLMM}),[q]:e=>({...r(e),protocol:rn.MOMENTUM_CLMM}),[z]:e=>({...r(e),protocol:rn.SPRINGSUI}),[J]:e=>({...r(e),protocol:rn.SPRINGSUI}),[Z]:e=>({...r(e),protocol:rn.VOLO})},e.toMetaAggregatorPath=a,e.toMetaAggregatorPaths=n,e.convert=function(e){return{coinInType:e.paths[0].from,coinOutType:e.paths[e.paths.length-1].target,amountOut:e.amountOut.toString(),tradePaths:n(e)}}}(tv||(tv={}));class rp{_config;_suiClient;_cetusClient;getCetusClientConfig({walletAddress:e,overlayFeeReceiver:t,overlayFeeRate:o}){return{client:this._suiClient,overlayFeeReceiver:t,overlayFeeRate:o,env:P.Mainnet,signer:e,...this._config.cetusApiKey&&this._config.cetusApiEndpoint?{apiKey:this._config.cetusApiKey,endpoint:this._config.cetusApiEndpoint}:{},partner:this._config.cetusPartnerId}}constructor(e,t){this._config=e,this._suiClient=t}cetusClient(e,t){return t&&!tx.equals(t,this._config.defaultTradeFee)?new M(this.getCetusClientConfig({walletAddress:e,overlayFeeReceiver:t.tradeFeeRecipientAddress,overlayFeeRate:t.tradeFeePercent})):(this._cetusClient||(this._cetusClient=new M(this.getCetusClientConfig({walletAddress:e,overlayFeeReceiver:this._config.defaultTradeFee.tradeFeeRecipientAddress,overlayFeeRate:this._config.defaultTradeFee.tradeFeePercent}))),this._cetusClient)}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r,metaAggregator:a,supportedProtocols:n}){try{let i=this.cetusClient(void 0,r),s=n??(a?tv.SUPPORTED_PROTOCOLS:void 0);return await i.findRouters({from:t,target:o,amount:new ee(e.toString()),byAmountIn:!0,providers:s})}catch(e){return ri("cetus",e),null}}async getTransaction({completeRoute:e,walletAddress:t,slippage:o,tradeFee:r}){let a=this.cetusClient(t,r),n=new i;return n.setSender(t),await a.fastRouterSwap({router:e,txb:n,slippage:o}),n.build({client:this._suiClient})}}(rp||(rp={})).toCommonTradeRoutes=function(e,t,o){if(0===e.paths.length)return null;let r=[],a=[],n=[];for(let t=0;t<e.paths.length;t++){let o=e.paths[t],r={poolAddress:o.id,amountIn:BigInt(o.amountIn),amountOut:BigInt(o.amountOut),coinIn:o.from,coinOut:o.target};if(n.push(r),t===e.paths.length-1)a.push([...n]);else{let r=e.paths[t+1];o.target!==r.from&&(a.push([...n]),n=[])}}for(let e of a)0!==e.length&&r.push({amountIn:e[0].amountIn,amountOut:e[e.length-1].amountOut,coinIn:e[0].coinIn,coinOut:e[e.length-1].coinOut,paths:e});return 0===r.length?null:{coinIn:t,coinOut:o,amountIn:BigInt(e.amountIn.toString(10)),amountOut:BigInt(e.amountOut.toString(10)),routes:r}};var r_=((eF={}).ASTROS="ASTROS",eF.AFTERMATH="AFTERMATH",eF.SEVENK="7K",eF.CETUS="CETUS",eF.FLOWX="FLOWX",eF);!function(e){let t=[en.HOP_FUN,en.FLOWX_PMM,en.DEEPBOOK,en.IPX_TIDE,en.METASTABLE];e.SUPPORTED_PROTOCOLS=Object.values(en).filter(e=>!t.includes(e));let o={[en.FLOWX_V2]:t=>({...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:rn.FLOWX_CPMM}),[en.FLOWX_V3]:t=>(c(void 0!==t.poolFee,`Pool fee is required for pool ${t.pool.id}`),c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rn.FLOWX_CLMM,poolFeeRate:t.poolFee.toString()}),[en.CETUS]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rn.CETUS_CLMM}),[en.CETUS_DLMM]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rn.CETUS_DLMM}),[en.AFTERMATH]:t=>(c(t.lpCoinType,`AFTERMATH protocol requires lpCoinType for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:rn.AFTERMATH_CPMM,coinLpType:t.lpCoinType}),[en.AFTERMATH_LSD]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:rn.AFTERMATH_LSD}),[en.ALPHA_FI]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:rn.ALPHAFI_LSD}),[en.BLUEFIN]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rn.BLUEFIN_CLMM}),[en.BLUEMOVE]:t=>({...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:rn.BLUEMOVE_CPMM}),[en.DEEPBOOK_V3]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rn.DEEPBOOK_V3}),[en.FERRA_CLMM]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rn.FERRA_CLMM}),[en.FERRA_DLMM]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rn.FERRA_DLMM}),[en.FULL_SAIL]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rn.FULLSAIL_CLMM}),[en.HAEDAL]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:rn.HAEDAL_LSD}),[en.HAEDAL_PMM]:t=>{let o=t.oracles;return c(o&&o.length>=2,`HAEDAL_CPMM protocol requires oracle price feeds for pool ${t.pool.id}.`),c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rn.HAEDAL_CPMM,pythPriceFeedIdA:o[0].priceId,pythPriceFeedIdB:o[1].priceId}},[en.KRIYA_DEX]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rn.KRIYA_CPMM}),[en.KRIYA_V3]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rn.KRIYA_CLMM}),[en.MAGMA_FINANCE]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rn.MAGMA_CLMM}),[en.MAGMA_ALMM]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rn.MAGMA_ALMM}),[en.MOMENTUM_FINANCE]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rn.MOMENTUM_CLMM}),[en.OBRIC]:t=>(c(t.xPriceId&&t.yPriceId,`OBRIC protocol requires price feeds for pool ${t.pool.id}`),c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rn.OBRIC,priceInfoObjIdA:t.xPriceId,priceInfoObjIdB:t.yPriceId}),[en.SPRING_SUI]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:rn.SPRINGSUI}),[en.STEAMM]:t=>{c(void 0!==t.bankXInfo&&void 0!==t.bankYInfo,`STEAMM protocol requires bank info for pool ${t.pool.id}`),c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),c(void 0!==t.quoterType,`quoterType is required for pool ${t.pool.id}`),c(void 0!==t.poolInfo,`poolInfo is required for pool ${t.pool.id}`),c(void 0!==t.protocolConfig&&void 0!==t.protocolConfig.oracleRegistryId,`protocolConfig is required for pool ${t.pool.id}`);let o=t.oracles,r=e.toMetaAggregatorBasePath(t),a=t.xForY;switch(t.quoterType){case"constant_product":return{...r,aToB:a,protocol:rn.STEAMM_CPMM,bankAId:a?t.bankXInfo.bankId:t.bankYInfo.bankId,bankBId:a?t.bankYInfo.bankId:t.bankXInfo.bankId,lendingMarketId:t.bankXInfo.lendingMarketId,lendingMarketType:t.bankXInfo.lendingMarketType,bCoinAType:a?t.bankXInfo.bTokenType:t.bankYInfo.bTokenType,bCoinBType:a?t.bankYInfo.bTokenType:t.bankXInfo.bTokenType,lpBCoinType:t.poolInfo.lpTokenType};case"oracle":case"oracle_v2":{c(void 0!==o&&o.length>=2,`STEAMM_OMM protocol requires oracle price feeds for pool ${t.pool.id}.`);let e=o[0],n=o[1];return c(void 0!==e.oracleId&&void 0!==n.oracleId&&void 0!==e.oracleIndex&&void 0!==n.oracleIndex,`STEAMM_OMM protocol requires oracle ids for pool ${t.pool.id}.`),{...r,aToB:a,protocol:rn.STEAMM_OMM,bankAId:t.bankXInfo.bankId,bankBId:t.bankYInfo.bankId,lendingMarketId:t.bankXInfo.lendingMarketId,lendingMarketType:t.bankXInfo.lendingMarketType,bCoinAType:t.bankXInfo.bTokenType,bCoinBType:t.bankYInfo.bTokenType,lpBCoinType:t.poolInfo.lpTokenType,pythPriceFeedIdA:e.priceId,pythPriceFeedIdB:n.priceId,oracleRegistryId:t.protocolConfig.oracleRegistryId,oracleIndexA:e.oracleIndex.toString(),oracleIndexB:n.oracleIndex.toString()}}default:throw Error(`Unsupported quoter type: ${t.quoterType} for pool ${t.pool.id}`)}},[en.SEVENK_V1]:t=>{let o=t.oracles;return c(o&&o.length>=2,`SEVENK_CPMM protocol requires oracle price feeds for pool ${t.pool.id}.`),c(t.poolStructTag,`SEVENK_V1 protocol requires poolStructTag for pool ${t.pool.id}`),c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rn.SEVENK_CPMM,coinLpType:t.poolStructTag,pythPriceFeedIdA:o[0].priceId,pythPriceFeedIdB:o[1].priceId,oracleConfigA:o[0].oracleId??"",oracleConfigB:o[1].oracleId??""}},[en.SUI_REWARDS]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rn.SRM_CPMM}),[en.TURBOS_FIANCE]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rn.TURBOS_CLMM,coinFeeType:t.poolStructTag?t.poolStructTag.split("<")[1].split(",")[2].trim().replace(">",""):""}),[en.VOLO_LSD]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:rn.VOLO}),[en.TRADEPORT]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),c(void 0!==t.poolFee,`Pool fee is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,poolFeeRate:t.poolFee.toString(),protocol:rn.TRADEPORT_CLMM}),[en.TURBOS_FUN]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rn.TURBOS_FUN}),[en.BLUEMOVE_FUN]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,expectedAmountOut:t.amountOut.toString(),protocol:rn.MOVEPUMP}),[en.SEVEN_K_FUN]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rn.SEVENK_FUN}),[en.DIPCOIN]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rn.DIP_CPMM}),[en.BOLT]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rn.BOLT})};function r(t){let o=[];for(let e of t)o.push(...e.paths);let r=new Map;for(let[e,t]of o.entries())r.set(t.input.coinType,e);let a=o.map(e.toMetaAggregatorPath);for(let e of r.values())a[e].amountIn=tD.MAX_AMOUNT_IN;return a}e.toMetaAggregatorBasePath=e=>({poolId:e.pool.id,coinInType:e.input.coinType,coinOutType:e.output.coinType,amountIn:e.amountIn.toString()}),e.toMetaAggregatorPath=e=>{let r=e.protocol();if(t.includes(r))throw Error(`Unsupported protocol: ${r}`);return(0,o[r])(e)},e.toMetaAggregatorPaths=r,e.convert=function(e){return{coinInType:e.coinIn.coinType,coinOutType:e.coinOut.coinType,amountOut:e.amountOut.toString(),tradePaths:r(e.routes)}}}(tk||(tk={}));class rm{_config;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}getCommission(e,t){let o,r;return t?(o=t.tradeFeePercent,r=t.tradeFeeRecipientAddress):(o=this._config.defaultTradeFee.tradeFeePercent,r=this._config.defaultTradeFee.tradeFeeRecipientAddress),new er(r,new eo(e),ea.PERCENTAGE,1e6*o,!0)}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r,metaAggregator:a,supportedProtocols:n}){let i=new et("mainnet",this._config.flowxApiKey),s=n??(a?tk.SUPPORTED_PROTOCOLS:void 0);try{return await i.getRoutes({tokenIn:t,tokenOut:o,amountIn:e.toString(),commission:this.getCommission(t,r),includeSources:s})}catch(e){return ri("flowx",e),null}}async getTransaction({walletAddress:e,completeRoute:t,slippage:o,tradeFee:r}){return new ei("mainnet",t.routes).sender(e).slippage(1e6*o).commission(this.getCommission(t.coinIn.coinType,r)).build().buildTransaction({client:this._suiClient}).then(t=>(t.setSender(e),t.build({client:this._suiClient})))}}async function rf(e,t){return(await rg(e,t)).fields}async function rg(e,t){let o=(await e.getObject({objectId:t,include:{json:!0}})).object;return c(o.json,"Pool object not found or has no content"),{dataType:"moveObject",fields:o.json,hasPublicTransfer:!0,type:o.type}}(rm||(rm={})).toCommonTradeRoutes=function(e){if(0===e.routes.length)return null;let t=[];for(let o of e.routes){let e=[];for(let t of o.paths)e.push({amountIn:BigInt(t.amountIn.toString()),amountOut:BigInt(t.amountOut.toString()),coinIn:t.input.coinType,coinOut:t.output.coinType,poolAddress:t.pool.id});0!==e.length&&t.push({amountIn:BigInt(o.amountIn.toString()),amountOut:BigInt(o.amountOut.toString()),coinIn:o.input.coinType,coinOut:o.output.coinType,paths:e})}return 0===t.length?null:{coinIn:e.coinIn.coinType,coinOut:e.coinOut.coinType,amountIn:BigInt(e.amountIn.toString()),amountOut:BigInt(e.amountOut.toString()),routes:t}},(eP=tN||(tN={})).PACKAGE_ID_V4="0x7e6aa6e179466ab2814425a780b122575296d011119fa69d27f289f5a28814bd",eP.MEMEZ_AV_OBJECT_ID="0x2319e3e76dfad73d8f4684bdbf42be4f32d8ce4521dd61becc8261dc918d82c0",((eB=tU||(tU={})).U64||(eB.U64={})).mulDivUp=function(e,t,o){let r=BigInt(0);return e*t%o>BigInt(0)&&(r=BigInt(1)),e*t/o+r};var rA=tG||(tG={});function rb(e){return c(BigInt(e)<=BigInt(1e4),"Bps overflow"),BigInt(e)}rA.calcUp=function(e,t){let o,r=BigInt(e.pos0),a=BigInt(1e4);return o=r*t%a!==BigInt(0)?BigInt(1):BigInt(0),r*t/a+o},rA.sub=function(e,t){return c(BigInt(e.pos0)>=BigInt(t.pos0),"Bps underflow"),{pos0:(BigInt(e.pos0)-BigInt(t.pos0)).toString()}},rA.value=function(e){return BigInt(e.pos0)},rA.new_=function(e){return{pos0:rb(e).toString()}},rA.assertOverflow=rb,((ew=tK||(tK={})).MemezFun||(ew.MemezFun={})).isSniperProtectedMemezFun=async function(e,t){return(await rf(e,t)).public_key.length>0},(eD=ew.MemezFees||(ew.MemezFees={})).takeWithDiscount=function(e,t,o){if("Value"===e.variant){let o=BigInt(e.fields.pos0);if(o===BigInt(0))return BigInt(0);if(t>=o)return o;throw Error(`Insufficient amount to cover fee. Required: ${o}, provided: ${t}`)}if("Percentage"===e.variant){let r=e.fields.pos0.fields;if(BigInt(r.pos0)===BigInt(0))return BigInt(0);let a=tG.calcUp(tG.sub(r,o),t);if(t>=a)return a;throw Error(`Insufficient amount to cover fee. Required: ${a}, provided: ${t}`)}throw Error("Unknown fee variant")},eD.calculateWithDiscount=function(e,t,o){if("Value"===e.variant)return BigInt(e.fields.pos0);if("Percentage"===e.variant){let r=e.fields.pos0.fields;return tG.calcUp(tG.sub(r,t),o)}throw Error("Unknown fee variant")},(ew.MemezBurner||(ew.MemezBurner={})).calculate=function(e,t){if(tG.value(e.fee.fields)===BigInt(0)||t===BigInt(0)||t>=BigInt(e.target_liquidity))return tG.new_(0);let o=BigInt(1e4);return tG.new_(tU.U64.mulDivUp(tG.value(e.fee.fields),tU.U64.mulDivUp(t,o,BigInt(e.target_liquidity)),o))},(eR=ew.MemezPump||(ew.MemezPump={})).getPumpState=async function(e,t){return await rf(e,t.inner_state)},eR.pump=function(e,t){let o=e.constant_product.fields,r=ew.MemezFees.takeWithDiscount(o.quote_swap_fee,t,o.quote_referrer_fee.fields),a=t-r,n=BigInt(o.meme_balance),i=BigInt(o.quote_balance),s=n*a/(BigInt(o.virtual_liquidity)+i+a),c=ew.MemezFees.takeWithDiscount(o.meme_swap_fee,s,o.meme_referrer_fee.fields);return s-c},eR.dump=function(e,t){let o=e.constant_product.fields,r=ew.MemezFees.takeWithDiscount(o.meme_swap_fee,t,o.meme_referrer_fee.fields),a=t-r,n=BigInt(o.meme_balance),i=BigInt(o.quote_balance),s=BigInt(o.virtual_liquidity),c=ew.MemezBurner.calculate(o.burner.fields,i),u=tG.calcUp(c,a),l=a-(tG.value(c)!==BigInt(0)?u:BigInt(0)),d=(s+i)*l/(n+l);d>i&&(d=i);let p=ew.MemezFees.takeWithDiscount(o.quote_swap_fee,d,o.quote_referrer_fee.fields);return d-p},(ex=tj||(tj={})).getCurveAmountAfterBuy=async function(e,t){let{suiAmount:o,poolId:r,frontendFee:a}=e,n=await rf(t,r),i=await tK.MemezPump.getPumpState(t,n);return o=e_(o,a),tK.MemezPump.pump(i,o)},ex.getSuiAmountAfterSell=async function(e,t){let{curveAmount:o,poolId:r,frontendFee:a}=e,n=await rf(t,r),i=await tK.MemezPump.getPumpState(t,n);return e_(tK.MemezPump.dump(i,o),a)};let rI="0x62412b7268c35f3808336aee57a52836501f40b8ba5d936f8ad275e672befd04";async function rT(e,t){let o,r,{inputAmount:a,accountAddress:n,frontendFee:s,frontendFeeRecipient:u,extendTx:l,isSponsored:d}=e;c(e.inCoinType===eM||e.inCoinType===eA,"Input must be SUI");let{tx:p,coinIn:_}=l||{},m=eO(a,s||"0"),f=p||new i;if(_)o=f.splitCoins(_,m),tq.transferOrDestroyZeroCoin(f,eM,_,n);else{let{coinData:e}=await em({account:n,amount:a,splits:m,coinType:eM,inheritTx:f,isSponsored:d||!1},t);o=e}if(s&&u){let[e,t]=o;r=e,f.transferObjects([t],f.pure.address(u||n))}else[r]=o;return{tx:f,coinOut:r}}async function rC(e,t,o){if(c(t.outCoinType===eM||t.outCoinType===eA,"Output must be SUI"),0>=Number(t.frontendFee||0))return{tx:e,coinOut:o};let r=e.moveCall({target:"0x2::coin::value",typeArguments:[t.outCoinType],arguments:[o]}),a=e.moveCall({target:`${rI}::math::mul_div_u64`,typeArguments:[],arguments:[r,e.pure.u64(BigInt(1e4*Number(t.frontendFee||"0"))),e.pure.u64(BigInt(1e4))]}),n=e.moveCall({target:"0x2::coin::split",typeArguments:[t.outCoinType],arguments:[o,a]});return e.transferObjects([n],e.pure.address(t.frontendFeeRecipient||t.accountAddress)),{tx:e,coinOut:o}}(tq||(tq={})).transferOrDestroyZeroCoin=function(e,t,o,r){e.moveCall({target:`${rI}::utils::transfer_or_destroy`,typeArguments:[t],arguments:[o,e.pure.address(r)]})};var rO=t$||(t$={});async function rM(e){let t=e||new i;return t.moveCall({target:`${tN.PACKAGE_ID_V4}::memez_allowed_versions::get_allowed_versions`,arguments:[t.object(tN.MEMEZ_AV_OBJECT_ID)],typeArguments:[]})}function rE(e){switch(e){case"mainnet":return"https://fullnode.mainnet.sui.io:443";case"testnet":return"https://fullnode.testnet.sui.io:443";case"devnet":return"https://fullnode.devnet.sui.io:443";case"localnet":return"http://127.0.0.1:9000";default:throw Error(`Unknown network: ${e}`)}}function ry(e){return rE(e)}function rh(e){return"Transaction"===e.$kind?e.Transaction.digest:e.FailedTransaction.digest}rO.getAllowedVersions=rM,rO.buildBuyTx=async function(e,t){c(!await tK.MemezFun.isSniperProtectedMemezFun(t,e.poolId),"This coin is a sniper protected coin, please use the Blast Fun website to trade it.");let{tx:o,coinOut:r}=await rT(e,t);c(r,"Coin out is required");let a=o.moveCall({target:`${tN.PACKAGE_ID_V4}::memez_pump::pump`,typeArguments:[e.outCoinType,eM],arguments:[o.object(e.poolId),r,o.pure.vector("address",[]),o.pure.vector("vector<u8>",[]),o.pure.u64(e.minAmountOut),await rM(o)]});return{tx:o,coinOut:a}},rO.buildSellTx=async function(e,t){c(e.outCoinType===eM||e.outCoinType===eA,"Output must be SUI");let o=await rf(t,e.poolId),{tx:r,coinData:a}=await em({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[n]=a,[i]=r.moveCall({target:`${tN.PACKAGE_ID_V4}::memez_pump::dump`,typeArguments:[e.inCoinType,e.outCoinType],arguments:[r.object(e.poolId),r.object(o.ipx_meme_coin_treasury),n,r.pure.vector("address",[]),r.pure.u64(e.minAmountOut),await rM(r)]});return await rC(r,e,i)};let rS={network:es.MAINNET,fullNodeUrl:rE("mainnet")};async function rF(){if(!e){let{MemezPumpSDK:t}=await import("@interest-protocol/memez-fun-sdk");e=new t(rS)}return e}(eL=tY||(tY={})).getCurveAmountAfterBuy=async function(e){let{suiAmount:t,poolId:o,frontendFee:r}=e;t=e_(t,r);let{memeAmountOut:a}=await (await rF()).quotePump({pool:o,amount:t});return a},eL.getSuiAmountAfterSell=async function(e){let{curveAmount:t,poolId:o,frontendFee:r}=e,{quoteAmountOut:a}=await (await rF()).quoteDump({pool:o,amount:t});return e_(a,r)};var rP=tV||(tV={});async function rB(e,t){let{tx:o,coinOut:r}=await rT(e,t);c(r,"Coin out is required");let{memeCoin:a,tx:n}=await (await rF()).pump({pool:e.poolId,quoteCoin:r,minAmountOut:e.minAmountOut,tx:o});return{tx:n,coinOut:a}}async function rw(e,t){c(eb(e.outCoinType),"Output must be SUI");let{tx:o,coinData:r}=await em({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[a]=r,{quoteCoin:n,tx:i}=await (await rF()).dump({pool:e.poolId,memeCoin:a,tx:o,minAmountOut:e.minAmountOut});return await rC(i,e,n)}rP.buildBuyTx=rB,rP.buildSellTx=rw,rP.getBuyTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:a,walletAddress:n,tradeFee:i},u){c(eb(t),"coinInType must be SUI for buy transaction"),c(o!==t,"coinOutType must be different from coinInType"),c(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),c(e>0,"coinInAmount must be greater than 0");let l=BigInt(new s((await tY.getCurveAmountAfterBuy({poolId:r,suiAmount:e,frontendFee:i?i.tradeFeePercent:void 0})).toString()).multipliedBy(1-a).toFixed(0,3)),{tx:d,coinOut:p}=await rB({accountAddress:n,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:l.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},u);c(p,"Coin out is required"),d.transferObjects([p],d.pure.address(n)),d.setSender(n);let _=await eI(u,d,n,0);return(d=await eT({inheritTx:d,sender:n,feeAmount:_,suiInputAmount:e},u)).build({client:u})},rP.getSellTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:a,walletAddress:n,tradeFee:i},u){c(eb(o),"coinOutType must be SUI for sell transaction"),c(o!==t,"coinOutType must be different from coinInType"),c(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),c(e>0,"coinInAmount must be greater than 0");let l=BigInt(new s((await tY.getSuiAmountAfterSell({poolId:r,curveAmount:e,frontendFee:i?i.tradeFeePercent:void 0})).toString()).multipliedBy(1-a).toFixed(0,3)),{tx:d,coinOut:p}=await rw({accountAddress:n,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:l.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},u);c(p,"Coin out is required"),d.transferObjects([p],d.pure.address(n)),d.setSender(n);let _=await eI(u,d,n,0);return(d=await eT({inheritTx:d,sender:n,feeAmount:_},u)).build({client:u})};var rD=((ev={}).BLAST_FUN="BLAST_FUN",ev.MOONBAGS="MOONBAGS",ev);(ek=tJ||(tJ={})).PACKAGE_ID="0xb8df325010942634a4afb3db3901ee215546af43a4ec4af781e7213b0bba7290",ek.CONFIG_OBJECT_ID="0x74aecf86067c6913960ba4925333aefd2b1f929cafca7e21fd55a8f244b70499",ek.LOCK_CONFIG_OBJECT_ID="0xfb09822d9808980abd04c51321adb850701f5f55535c6206658ef4d910c3e9be",ek.BURN_MANAGER_OBJECT_ID="0x1d94aa32518d0cb00f9de6ed60d450c9a2090761f326752ffad06b2e9404f845",ek.POOLS_OBJECT_ID="0xf699e7f2276f5c9a75944b37a0c5b5d9ddfd2471bf6242483b03ab2887d198d0",ek.GLOBAL_CONFIG_OBJECT_ID="0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f",ek.FEE_DENOMINATOR=BigInt(1e4),(eU=(eN=tH||(tH={})).Curves||(eN.Curves={})).calculateAddLiquidityCost=function(e,t,o){return e*t/(t-o)-e},eU.calculateRemoveLiquidityReturn=function(e,t,o){return t-e*t/(e+o)},eU.calculateTokenAmountReceived=function(e,t,o){return t-e*t/(e+o)},(eG=eN.Moonbags||(eN.Moonbags={})).getDynamicVirtualTokenReserves=async function(e,t){let o=await e.getDynamicField({parentId:t,name:{type:"vector<u8>",bcs:el.byteVector().serialize(new TextEncoder().encode("virtual_token_reserves")).toBytes()}});return BigInt(el.u64().parse(o.dynamicField.value.bcs))},eG.buyExactInReturnsWithLock=function(e){let{inputAmount:t,amountIn:o,pool:r,config:a,dynamicVirtualTokenReserves:n}=e,i=BigInt(r.virtual_sui_reserves),s=BigInt(r.virtual_token_reserves),u=BigInt(r.remain_token_reserves.fields.balance),l=eN.Curves.calculateRemoveLiquidityReturn(i,s,o),d=s-(n||u),p=l,_=o;l>d&&(p=d,_=eN.Curves.calculateAddLiquidityCost(i,s,d)+BigInt(1));let m=_*BigInt(a.platform_fee)/tJ.FEE_DENOMINATOR;return c(t>=_+m,"Input amount is less than used SUI + fee"),{receivedCurve:p,receivedSui:t-_-m}},eG.sellReturns=function(e){let{amountIn:t,pool:o,config:r}=e,a=BigInt(o.virtual_sui_reserves),n=BigInt(o.virtual_token_reserves),i=BigInt(o.real_sui_reserves.fields.balance),s=eN.Curves.calculateRemoveLiquidityReturn(n,a,t);s>i&&(s=i);let c=s*BigInt(r.platform_fee)/tJ.FEE_DENOMINATOR,u=s-c;return{receivedCurve:BigInt(0),receivedSui:u}},(eK=tX||(tX={})).getCurveAmountAfterBuy=async function(e,t){let{suiAmount:o,poolId:r,frontendFee:a}=e,[n,i,s]=await Promise.all([rf(t,r),rf(t,tJ.CONFIG_OBJECT_ID),tH.Moonbags.getDynamicVirtualTokenReserves(t,r)]);void 0!==a&&(o=e_(o,a));let c=o*tJ.FEE_DENOMINATOR/(tJ.FEE_DENOMINATOR+BigInt(i.platform_fee)),{receivedCurve:u}=tH.Moonbags.buyExactInReturnsWithLock({inputAmount:o,amountIn:c,pool:n,config:i,dynamicVirtualTokenReserves:s});return u},eK.getSuiAmountAfterSell=async function(e,t){let{curveAmount:o,poolId:r,frontendFee:a}=e,[n,i]=await Promise.all([rf(t,r),rf(t,tJ.CONFIG_OBJECT_ID)]),{receivedSui:s}=tH.Moonbags.sellReturns({amountIn:o,pool:n,config:i});return void 0!==a?e_(s,a):s},eK.getUsedSuiForTx=async function(e,t){let{suiAmount:o,frontendFee:r}=e,a=await rf(t,tJ.CONFIG_OBJECT_ID);return void 0!==r&&(o=e_(o,r)),o*tJ.FEE_DENOMINATOR/(tJ.FEE_DENOMINATOR+BigInt(a.platform_fee))};var rR=tW||(tW={});async function rx(e,t){let{tx:o,coinOut:r}=await rT(e,t);c(r,"Coin out is required");let a=await tX.getUsedSuiForTx({suiAmount:BigInt(e.inputAmount),frontendFee:e.frontendFee},t),[n,i]=o.moveCall({target:`${tJ.PACKAGE_ID}::moonbags::buy_exact_in_returns_with_lock`,typeArguments:[e.outCoinType],arguments:[o.object(tJ.CONFIG_OBJECT_ID),o.object(tJ.LOCK_CONFIG_OBJECT_ID),r,o.pure.u64(a),o.pure.u64(e.minAmountOut),o.object(tJ.BURN_MANAGER_OBJECT_ID),o.object(tJ.POOLS_OBJECT_ID),o.object(tJ.GLOBAL_CONFIG_OBJECT_ID),o.object(eg),o.object(ef)]});return tq.transferOrDestroyZeroCoin(o,eM,n,e.accountAddress),{tx:o,coinOut:i}}async function rL(e,t){c(eb(e.outCoinType),"Output must be SUI");let{tx:o,coinData:r}=await em({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[a]=r,[n,i]=o.moveCall({target:`${tJ.PACKAGE_ID}::moonbags::sell_returns`,typeArguments:[e.inCoinType],arguments:[o.object(tJ.CONFIG_OBJECT_ID),a,o.pure.u64(e.minAmountOut),o.object(ef)]});return tq.transferOrDestroyZeroCoin(o,e.inCoinType,i,e.accountAddress),await rC(o,e,n)}function rv(e){return e}function rk(e){return e}function rN(e){return new Proxy(e,{get(e,t){let o=e[t];return"function"==typeof o?o.bind(e):o}})}rR.buildBuyTx=rx,rR.buildSellTx=rL,rR.getBuyTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:a,walletAddress:n,tradeFee:i},u){c(eb(t),"coinInType must be SUI for buy transaction"),c(o!==t,"coinOutType must be different from coinInType"),c(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),c(e>0,"coinInAmount must be greater than 0");let l=BigInt(new s((await tX.getCurveAmountAfterBuy({poolId:r,suiAmount:e,frontendFee:i?i.tradeFeePercent:void 0},u)).toString()).multipliedBy(1-a).toFixed(0,3)),{tx:d,coinOut:p}=await rx({accountAddress:n,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:l.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},u);c(p,"Coin out is required"),d.transferObjects([p],d.pure.address(n)),d.setSender(n);let _=await eI(u,d,n,0);return(d=await eT({inheritTx:d,sender:n,feeAmount:_,suiInputAmount:e},u)).build({client:u})},rR.getSellTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:a,walletAddress:n,tradeFee:i},u){c(eb(o),"coinOutType must be SUI for sell transaction"),c(o!==t,"coinOutType must be different from coinInType"),c(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),c(e>0,"coinInAmount must be greater than 0");let l=BigInt(new s((await tX.getSuiAmountAfterSell({poolId:r,curveAmount:e,frontendFee:i?i.tradeFeePercent:void 0},u)).toString()).multipliedBy(1-a).toFixed(0,3)),{tx:d,coinOut:p}=await rL({accountAddress:n,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:l.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},u);c(p,"Coin out is required"),d.transferObjects([p],d.pure.address(n)),d.setSender(n);let _=await eI(u,d,n,0);return(d=await eT({inheritTx:d,sender:n,feeAmount:_},u)).build({client:u})},(ej=tz||(tz={})).LAST_PACKAGE_ID="0x8c36ea167c5e6da8c3d60b4fc897416105dcb986471bd81cfbfd38720a4487c0",ej.newHolder=function(e){return e.moveCall({target:`${ej.LAST_PACKAGE_ID}::oracle::new_holder`,typeArguments:[],arguments:[]})},ej.getPrice=function(e){let{txb:t,coinOracleId:o,holder:r,coinPriceId:a}=e;t.moveCall({target:`${ej.LAST_PACKAGE_ID}::pyth::get_price`,typeArguments:[],arguments:[t.object(o),r,t.object(a),t.object(u)]})},(eq=tQ||(tQ={})).PYTH_URLS=["https://hermes.pyth.network"],eq.WORMHOLE_STATE_ID="0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",eq.PYTH_STATE_ID="0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",eq.newPythConnections=function(e){return e||(e=eq.PYTH_URLS),e.map(e=>new ed(e,{timeout:3e3}))},eq.newPythClient=function(e){return e||(e=new ec({network:"mainnet",baseUrl:"https://fullnode.mainnet.sui.io:443"})),new ep(e,eq.PYTH_STATE_ID,eq.WORMHOLE_STATE_ID)},eq.updatePythPriceIDs=async function(e){let{priceFeedIds:t,txb:o,pythConnections:r,pythClient:a}=e;if(0===t.length)return new Map;let n=null,i=null;for(let e of r)try{n=await e.getPriceFeedsUpdateData(t);break}catch(e){i=e,console.log("Error: ",e)}if(null==n)throw Error(`All Pyth price nodes are unavailable. Cannot fetch price data. Please switch to or add new available Pyth nodes. Detailed error: ${i?.message}`);let s=[];try{s=await a.updatePriceFeeds(o,n,t)}catch(e){throw Error(`All Pyth price nodes are unavailable. Cannot fetch price data. Please switch to or add new available Pyth nodes in the pythUrls parameter when initializing AggregatorClient, for example: new AggregatorClient({ pythUrls: ["https://your-pyth-node-url"] }). Detailed error: ${e}`)}let c=new Map;for(let e=0;e<t.length;e++)c.set(t[e],s[e]);return c};var rU=((e$={})[e$.UNKNOWN=1e3]="UNKNOWN",e$[e$.TIMEOUT=1001]="TIMEOUT",e$[e$.PROVIDER_NOT_FOUND=1002]="PROVIDER_NOT_FOUND",e$[e$.PROVIDER_NOT_SUPPORTED=1003]="PROVIDER_NOT_SUPPORTED",e$[e$.INVALID_QUOTE=1004]="INVALID_QUOTE",e$[e$.QUOTE_NOT_FOUND=1005]="QUOTE_NOT_FOUND",e$[e$.INVALID_SIGNER_ADDRESS=1006]="INVALID_SIGNER_ADDRESS",e$[e$.PROVIDER_NOT_SUPPORT_SWAP=1007]="PROVIDER_NOT_SUPPORT_SWAP",e$[e$.SIMULATION_FAILED=1008]="SIMULATION_FAILED",e$);class rG extends Error{code;details;constructor(e,t,o){super(e),this.name="MetaAgError",this.code=t??1e3,this.details=o}static assert(e,t,o,r){if(!e)throw new rG(t??"Assertion failed",o,r)}}class rK{options;kind="SEVENK";constructor(e,t){this.options=e,e.apiKey&&r.setApiKey(e.apiKey),r.setSuiClient(t)}async quote(e){let t=[];if(this.options.sources)for(let e of this.options.sources)tR.SUPPORTED_PROTOCOLS.includes(e)&&t.push(e);else t.push(...tR.SUPPORTED_PROTOCOLS);let o=await n({tokenIn:e.coinTypeIn,tokenOut:e.coinTypeOut,amountIn:e.amountIn,sources:t,excludedPools:this.options.excludedPools,targetPools:this.options.targetPools});return rG.assert(!!o,"No quote found",rU.QUOTE_NOT_FOUND,{provider:this.kind}),{sourceRoute:"SEVENK",rawRoute:o,amountIn:o.swapAmountWithDecimal,amountOut:o.returnAmountWithDecimal,coinTypeIn:e.coinTypeIn,coinTypeOut:e.coinTypeOut}}}let rj=tQ.PYTH_URLS;class rq{options;kind="CETUS";cetusClient;constructor(e,t,o){this.options=e,this.cetusClient=new M({apiKey:e.apiKey,client:o,endpoint:e.api,env:P.Mainnet,pythUrls:t.hermesApi?t.hermesApi:rj})}async quote(e){let t=[];if(this.options.sources)for(let e of this.options.sources)tv.SUPPORTED_PROTOCOLS.includes(e)&&t.push(e);else t.push(...tv.SUPPORTED_PROTOCOLS);let o=await this.cetusClient.findRouters({amount:e.amountIn,byAmountIn:!0,from:e.coinTypeIn,target:e.coinTypeOut,providers:t,splitCount:this.options.splitCount,splitAlgorithm:this.options.splitAlgorithm,splitFactor:this.options.splitFactor,depth:this.options.depth,liquidityChanges:this.options.liquidityChanges});return rG.assert(!!o,"No quote found",rU.QUOTE_NOT_FOUND,{provider:this.kind}),{sourceRoute:"CETUS",rawRoute:o,amountIn:o.amountIn.toString()||"0",amountOut:o.amountOut.toString()||"0",coinTypeIn:e.coinTypeIn,coinTypeOut:e.coinTypeOut}}}class r${options;kind="FLOWX";quoter;constructor(e){this.options=e,this.quoter=new et("mainnet",e.apiKey)}async quote(e){let t=[];if(this.options.sources)for(let e of this.options.sources)tk.SUPPORTED_PROTOCOLS.includes(e)&&t.push(e);else t.push(...tk.SUPPORTED_PROTOCOLS);let o=await this.quoter.getRoutes({amountIn:e.amountIn,tokenIn:e.coinTypeIn,tokenOut:e.coinTypeOut,includeSources:t,excludePools:this.options.excludePools,excludeSources:this.options.excludeSources,maxHops:this.options.maxHops,splitDistributionPercent:this.options.splitDistributionPercent});return{sourceRoute:"FLOWX",rawRoute:o,amountIn:o.amountIn?.toString()??"0",amountOut:o.amountOut?.toString()??"0",coinTypeIn:e.coinTypeIn,coinTypeOut:e.coinTypeOut}}}(eY=tZ||(tZ={})).POOL_REGISTRY_OBJ_ID="0xfcc774493db2c45c79f688f88d28023a3e7d98e4ee9f48bbf5c7990f651577ae",eY.PROTOCOL_FEE_VAULT_OBJ_ID="0xf194d9b1bcad972e45a7dd67dd49b3ee1e3357a00a50850c52cd51bb450e13b4",eY.TREASURY_OBJ_ID="0x28e499dff5e864a2eafe476269a4f5035f1c16f338da7be18b103499abf271ce",eY.INSURANCE_FUND_OBJ_ID="0xf0c40d67b078000e18032334c3325c47b9ec9f3d9ae4128be820d54663d14e3b",eY.REFERRAL_VAULT_OBJ_ID="0x35d35b0e5b177593d8c3a801462485572fc30861e6ce96a55af6dc4730709278",(eV=t0||(t0={})).LAST_PACKAGE_ID="0xf369250dc5a17e9d5a84a3b0cf5aea715c0682170e726dd601f03ade7ce4decb",eV.swap=function(e){c(e.protocol===rn.AFTERMATH_CPMM);let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:s,coinLpType:u,packageId:l}=e;t.moveCall({target:`${l??eV.LAST_PACKAGE_ID}::aftermath_cpmm_router::swap`,typeArguments:[i,s,u],arguments:[o,t.object(r),t.object(tZ.POOL_REGISTRY_OBJ_ID),t.object(tZ.PROTOCOL_FEE_VAULT_OBJ_ID),t.object(tZ.TREASURY_OBJ_ID),t.object(tZ.INSURANCE_FUND_OBJ_ID),t.object(tZ.REFERRAL_VAULT_OBJ_ID),t.pure.bool(a),t.pure.u64(n)]})},(eJ=t1||(t1={})).STAKED_SUI_VAULT_OBJ_ID="0x2f8f6d5da7f13ea37daa397724280483ed062769813b6f31e9788e59cc88994d",eJ.SAFE_TREASURY_OBJECT_ID="0xeb685899830dd5837b47007809c76d91a098d52aabbf61e8ac467c59e5cc4610",eJ.REFERRAL_VAULT_OBJ_ID="0x4ce9a19b594599536c53edb25d22532f82f18038dc8ef618afd00fbbfb9845ef",eJ.VALIDATOR_ADDRESS="0xd30018ec3f5ff1a3c75656abf927a87d7f0529e6dc89c7ddd1bd27ecb05e3db2",(eH=t4||(t4={})).LAST_PACKAGE_ID="0x148c4e7ff5b308b2d520e050e6a21d986dd3eb203e0aa3eaaba28000977aebf1",eH.swap=function(e){let{txb:t,swapContext:o,aToB:r,amountIn:a,packageId:n}=e;if(!r)throw Error("AFSUI not support bToA swap");t.moveCall({target:`${n??eH.LAST_PACKAGE_ID}::aftermath_lsd_router::swap`,arguments:[o,t.object(t1.STAKED_SUI_VAULT_OBJ_ID),t.object(t1.SAFE_TREASURY_OBJECT_ID),t.object(l),t.object(t1.REFERRAL_VAULT_OBJ_ID),t.pure.address(t1.VALIDATOR_ADDRESS),t.pure.bool(r),t.pure.u64(a)]})},(eX=t6||(t6={})).LAST_PACKAGE_ID="0x108d5d07cf873dec0bc8034db862db55d38e495c1f3ee0e124cf4861af834f25",eX.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinBType:i,packageId:s}=e;t.moveCall({target:`${s??eX.LAST_PACKAGE_ID}::alphafi_lsd_router::swap`,typeArguments:[i],arguments:[o,t.object(r),t.object(l),t.pure.bool(n),t.pure.u64(a)]})},(eW=t3||(t3={})).MEMEZ_AV_OBJ_ID="0x2319e3e76dfad73d8f4684bdbf42be4f32d8ce4521dd61becc8261dc918d82c0",eW.MEMEZ_FUN_OBJ_ID="0x943948644f06942b8b660ca541b10a05f6a7be23ce4069944a3665e7e698930d",eW.IPX_TREASURY_STANDARD_OBJ_ID="0x051e11b667659192917db94e5175fa066909d4dfc04d2663528f499c4afc6999",(ez=t2||(t2={})).LAST_PACKAGE_ID="0x8b1e84ed9bc79d31160600254d65810f6bc6d2352f174a60ed041017d0a2a87a",ez.swap=function(e){c(e.protocol===rn.BLASTFUN,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,packageId:s}=e;t.moveCall({target:`${s??ez.LAST_PACKAGE_ID}::blastfun_router::swap`,typeArguments:[r,a],arguments:[o,t.object(t3.MEMEZ_FUN_OBJ_ID),t.object(t3.IPX_TREASURY_STANDARD_OBJ_ID),t.object(t3.MEMEZ_AV_OBJ_ID),t.pure.bool(n),t.pure.u64(i)]})},(t5||(t5={})).GLOBAL_CONFIG_OBJ_ID="0x03db251ba509a8d5d8777b6338836082335d93eecbdd09a11e190a1cff51c352",(eQ=t8||(t8={})).LAST_PACKAGE_ID="0x9f8397124b6bdb55aeb7b5e43761e0e4dc94b9e22e94b1b25d8211d99df422d5",eQ.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinAType:i,coinBType:s,packageId:c}=e;t.moveCall({target:`${c??eQ.LAST_PACKAGE_ID}::bluefin_clmm_router::swap`,typeArguments:[i,s],arguments:[o,t.object(t5.GLOBAL_CONFIG_OBJ_ID),t.object(r),t.pure.bool(n),t.pure.u64(a),t.object(u)]})},(t9||(t9={})).DEX_INFO_OBJ_ID="0x3f2d9f724f4a1ce5e71676448dc452be9a6243dac9c5b975a588c8c867066e92",(eZ=t7||(t7={})).LAST_PACKAGE_ID="0xf52bdd65ee347e8994170f8c331cf0c23a55281b3282467f14ccbb3e2a7f928f",eZ.swap=function(e){let{txb:t,swapContext:o,aToB:r,amountIn:a,coinAType:n,coinBType:i,packageId:s}=e;t.moveCall({target:`${s??eZ.LAST_PACKAGE_ID}::bluemove_cpmm_router::swap`,typeArguments:[n,i],arguments:[o,t.object(t9.DEX_INFO_OBJ_ID),t.pure.bool(r),t.pure.u64(a)]})},(oe||(oe={})).ORACLE_OBJ_ID="0xfa3975b98f3d0e3df18ed88ae6e69db31836b3f4212df02fae144b1e5a89ca8e",(e0=ot||(ot={})).LAST_PACKAGE_ID="0x2dd7b04509f332bdb93a8f228ab5c40b34baee4645b2ebe5e5fa2c3502b2c088",e0.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??e0.LAST_PACKAGE_ID}::bolt_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(oe.ORACLE_OBJ_ID),t.object(u),t.pure.u64(s),t.pure.bool(i)]})},(oo||(oo={})).GLOBAL_CONFIG="0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f",(e1=or||(or={})).LAST_PACKAGE_ID="0xb3dbb229464cb14b9f8cfa087e5b162623c8f485395dc9b975e263a5ee7051e4",e1.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??e1.LAST_PACKAGE_ID}::cetus_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(oo.GLOBAL_CONFIG),t.object(n),t.pure.bool(i),t.pure.u64(s),t.object(u)]})},(e4=oa||(oa={})).GLOBAL_CONFIG_OBJ_ID="0xf31b605d117f959b9730e8c07b08b856cb05143c5e81d5751c90d2979e82f599",e4.VERSIONED_OBJ_ID="0x05370b2d656612dd5759cbe80463de301e3b94a921dfc72dd9daa2ecdeb2d0a8",(e6=on||(on={})).LAST_PACKAGE_ID="0x9ab3ba62b4327a7d90e4aed1c025b62736f035911ad7bab830c065ec84ef1ffa",e6.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinAType:i,coinBType:s,packageId:c}=e,l=[o,t.object(oa.GLOBAL_CONFIG_OBJ_ID),t.object(oa.VERSIONED_OBJ_ID),t.object(r),t.pure.bool(n),t.pure.u64(a),t.object(u)];t.moveCall({target:`${c??e6.LAST_PACKAGE_ID}::cetus_dlmm_router::swap`,typeArguments:[i,s],arguments:l})},(e3=oi||(oi={})).GLOBAL_CONFIG="0x699d455ab8c5e02075b4345ea1f91be55bf46064ae6026cc2528e701ce3ac135",e3.DEEP_TYPE="0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP",(e2=os||(os={})).LAST_PACKAGE_ID="0xff274b63c0f6e3a01f3dd0e923aefcb3146e05e2f6bef4ae339e2703b085f8ed",e2.swap=function(e){c(e.protocol===rn.DEEPBOOK_V3,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:s,deepFeeCoin:l,packageId:d}=e,p=l||t.moveCall({target:"0x2::coin::zero",typeArguments:[oi.DEEP_TYPE]});t.moveCall({target:`${d??e2.LAST_PACKAGE_ID}::deepbook_v3_router::swap`,typeArguments:[r,a],arguments:[o,t.object(oi.GLOBAL_CONFIG),t.object(n),t.pure.u64(s),t.pure.bool(i),p,t.object(u)]})},(oc||(oc={})).GLOBAL_OBJ_ID="0x935229a3c32399e9fb207ec8461a54f56c6af5744c64442435ac217ab28f0d59",(e5=ou||(ou={})).LAST_PACKAGE_ID="0xfd86c0308327eae31c04560460ee6190220e4ae1cdf5b999eef1110bf0b0f2b8",e5.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??e5.LAST_PACKAGE_ID}::dip_cpmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(oc.GLOBAL_OBJ_ID),t.object(r),t.pure.bool(i),t.pure.u64(s)]})},(ol||(ol={})).FERRA_GLOBAL_CONFIG_ID="0x2cd8382c19e6994f16df204e9b8cddd04bdc486c251de75ac66ac4e48e3e7081",(e8=od||(od={})).LAST_PACKAGE_ID="0x70c4318f67d88ebe4e83bacad15f9e2f5c8becd77695f63dc4bd9393730851cd",e8.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:s,packageId:c}=e;t.moveCall({target:`${c??e8.LAST_PACKAGE_ID}::ferra_clmm_router::swap`,typeArguments:[i,s],arguments:[o,t.object(ol.FERRA_GLOBAL_CONFIG_ID),t.object(r),t.pure.bool(a),t.pure.u64(n),t.object("0x6")]})},(op||(op={})).FERRA_GLOBAL_CONFIG_ID="0x5c9dacf5a678ea15b8569d65960330307e23d429289ca380e665b1aa175ebeca",(e9=o_||(o_={})).LAST_PACKAGE_ID="0x686e9eb19b04d46374c3fb82cb4ebb7b24ef8a9ae13f403915f4ae347e0f6593",e9.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:s,packageId:c}=e;t.moveCall({target:`${c??e9.LAST_PACKAGE_ID}::ferra_dlmm_router::swap`,typeArguments:[i,s],arguments:[o,t.object(op.FERRA_GLOBAL_CONFIG_ID),t.object(r),t.pure.bool(a),t.pure.u64(n),t.object(u)]})},(e7=om||(om={})).POOL_REGISTRY_OBJ_ID="0x27565d24a4cd51127ac90e4074a841bbe356cca7bf5759ddc14a975be1632abc",e7.VERSIONED_OBJ_ID="0x67624a1533b5aff5d0dfcf5e598684350efd38134d2d245f475524c03a64e656",(te=of||(of={})).LAST_PACKAGE_ID="0x350a752d3388165e578cc33a39655a6da83613cf4e58c8d9d0723711c2603e17",te.swap=function(e){c(e.protocol===rn.FLOWX_CLMM);let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolFeeRate:n,amountIn:i,aToB:s,packageId:l}=e;t.moveCall({target:`${l??te.LAST_PACKAGE_ID}::flowx_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(om.POOL_REGISTRY_OBJ_ID),t.object(om.VERSIONED_OBJ_ID),t.pure.u64(n),t.pure.u64(i),t.pure.bool(s),t.object(u)]})},(og||(og={})).CONTAINER_OBJ_ID="0xb65dcbf63fd3ad5d0ebfbf334780dc9f785eff38a4459e37ab08fa79576ee511",(tt=oA||(oA={})).LAST_PACKAGE_ID="0xd95b440ad340bb6cbf571897d312e43d4b6de37b60c69ef714c94b9835cb8866",tt.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,packageId:s}=e;t.moveCall({target:`${s??tt.LAST_PACKAGE_ID}::flowx_cpmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(og.CONTAINER_OBJ_ID),t.pure.bool(n),t.pure.u64(i)]})},(to=ob||(ob={})).GLOBAL_CONFIG_OBJ_ID="0xe93baa80cb570b3a494cbf0621b2ba96bc993926d34dc92508c9446f9a05d615",to.REWARDER_VAULT_OBJ_ID="0xfb971d3a2fb98bde74e1c30ba15a3d8bef60a02789e59ae0b91660aeed3e64e1",to.STATS_OBJ_ID="0x6822a33d1d971e040c32f7cc74507010d1fe786f7d06ab89135083ddb07d2dc2",to.PRICE_PROVIDER_OBJ_ID="0x854b2d2c0381bb656ec962f8b443eb082654384cf97885359d1956c7d76e33c9",(tr=oI||(oI={})).LAST_PACKAGE_ID="0xf0bf13b5baaf3d368f165e846b919294bed79a3ab3ab0c9bd1e75f23533e44a5",tr.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??tr.LAST_PACKAGE_ID}::fullsail_clmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(ob.GLOBAL_CONFIG_OBJ_ID),t.object(ob.REWARDER_VAULT_OBJ_ID),t.object(ob.STATS_OBJ_ID),t.object(ob.PRICE_PROVIDER_OBJ_ID),t.object(r),t.pure.bool(i),t.pure.u64(s),t.object(u)]})},(ta=oT||(oT={})).LAST_PACKAGE_ID="0x8969ed3e56c1dbdaf9df52f812d69c6c45fe5a4bab7093c88f5a8697a409398e",ta.swap=function(e){c(e.protocol===rn.HAEDAL_CPMM);let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,pythPriceFeedIdA:l,pythPriceFeedIdB:d,pythInfoObjectIdMap:p,packageId:_}=e,m=p.get(l),f=p.get(d);c(m,"Not found priceInfoAId in pythObjectIdMap"),c(f,"Not found priceInfoBId in pythObjectIdMap"),t.moveCall({target:`${_??ta.LAST_PACKAGE_ID}::haedal_cpmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(m),t.object(f),t.pure.u64(s),t.pure.bool(i),t.object(u)]})},(tn=oC||(oC={})).LAST_PACKAGE_ID="0x5d01f22e5471a5912a88e15d62fdcb922beba65b8e8dfe1a715aebf743194f4a",tn.swap=function(e){c(e.protocol===rn.HAEDAL_CPMM_V2);let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,pythPriceFeedIdBase:l,pythInfoObjectIdMap:d,packageId:p}=e,_=d.get(l);c(_,"Not found pythPriceBaseId in pythObjectIdMap"),t.moveCall({target:`${p??tn.LAST_PACKAGE_ID}::haedal_cpmm_v2_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(_),t.pure.u64(s),t.pure.bool(i),t.object(u)]})},(ti=oO||(oO={})).LAST_PACKAGE_ID="0x1644956086caa5eb791eba152f3b69ba862b3a5382ef0e1d8a474ab158aafa1a",ti.swap=function(e){let{txb:t,swapContext:o,aToB:r,amountIn:a,poolId:n,packageId:i}=e;t.moveCall({target:`${i??ti.LAST_PACKAGE_ID}::haedal_lsd_router::swap`,arguments:[o,t.object(n),t.object(l),t.pure.bool(r),t.pure.u64(a)]})},(oM||(oM={})).STAKING_OBJ_ID="0x10b9d30c28448939ce6c4d6c6e0ffce4a7f8a4ada8248bdad09ef8b70e4a3904",(oE||(oE={})).VALIDATOR_ID="0x7b3ba6de2ae58283f60d5b8dc04bb9e90e4796b3b2e0dea75569f491275242e7",(ts=oy||(oy={})).LAST_PACKAGE_ID="0x7be077dd73c85e788c2a49a51f0627066d81d3dc9982c268e3691265a81d544d",ts.swap=function(e){c(e.protocol===rn.HAEDAL_LSD_WAL),c(e.aToB,"HAEDAL_LSD_WAL does not support bToA swap");let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,packageId:i}=e;t.moveCall({target:`${i??ts.LAST_PACKAGE_ID}::haedal_wal_lsd_router::swap`,arguments:[o,t.object(oM.STAKING_OBJ_ID),t.object(r),t.pure.id(oE.VALIDATOR_ID),t.pure.bool(a),t.pure.u64(n)]})},(oh||(oh={})).VERSION_OBJ_ID="0xf5145a7ac345ca8736cf8c76047d00d6d378f30e81be6f6eb557184d9de93c78",(tc=oS||(oS={})).LAST_PACKAGE_ID="0xcf141e1d18ff609b2ac56532b391f7648fc55e28696efe354186f5109c0eff06",tc.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??tc.LAST_PACKAGE_ID}::kriya_clmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(oh.VERSION_OBJ_ID),t.pure.bool(i),t.pure.u64(s),t.object(u)]})},(tu=oF||(oF={})).LAST_PACKAGE_ID="0x50d37f46df75ef125ce656d4ac91b31b2cf0c1195752a96558561d163e45c223",tu.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??tu.LAST_PACKAGE_ID}::kriya_cpmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.pure.bool(i),t.pure.u64(s)]})},(tl=oP||(oP={})).FACTORY_OBJ_ID="0xedb456e93e423dd75a8ddebedd9974bb661195043027e32ce01649d6ccee74cf",tl.GLOBAL_CONFIG_OBJ_ID="0x4c4e1402401f72c7d8533d0ed8d5f8949da363c7a3319ccef261ffe153d32f8a",(td=oB||(oB={})).LAST_PACKAGE_ID="0x950f94d33060c0575389c9f84fabab1e140776c6c84389d4237a0c2687a7adc9",td.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??td.LAST_PACKAGE_ID}::magma_almm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(oP.FACTORY_OBJ_ID),t.object(oP.GLOBAL_CONFIG_OBJ_ID),t.pure.u64(s),t.pure.bool(i),t.object(u)]})},(ow||(ow={})).GLOBAL_CONFIG="0x4c4e1402401f72c7d8533d0ed8d5f8949da363c7a3319ccef261ffe153d32f8a",(tp=oD||(oD={})).LAST_PACKAGE_ID="0xbe5f590339c55ca8ebbf93cedfb68aafd479d71e1c57043246f7dcf352745242",tp.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??tp.LAST_PACKAGE_ID}::magma_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(ow.GLOBAL_CONFIG),t.object(n),t.pure.bool(i),t.pure.u64(s),t.object(u)]})},(t_=oR||(oR={})).LATEST_PACKAGE_ID="0xfab91518218f10204b083dba1e62c8bfc23f14fb87742158043e5faec4670ec4",t_.swap=function(e){let t,o,r;c(e.protocol===rn.METASTABLE,"Invalid protocol");let{txb:a,swapContext:n,aToB:i,amountIn:s,coinAType:u,coinBType:l,poolId:d,metaCoin:p,packageId:_}=e,[m,f]=i?[u,l]:[l,u];m===p?(r="swap_from_meta_coin",t=[p,f],o=[tL.createCap({coinType:f,createCapFunc:"create_withdraw_cap",...e})]):f===p?(r="swap_to_meta_coin",t=[p,m],o=[tL.createCap({coinType:m,createCapFunc:"create_deposit_cap",...e})]):(r="swap",t=[p,m,f],o=[tL.createCap({coinType:m,createCapFunc:"create_deposit_cap",...e}),tL.createCap({coinType:f,createCapFunc:"create_withdraw_cap",...e})]),a.moveCall({target:`${_??t_.LATEST_PACKAGE_ID}::metastable_router::${r}`,typeArguments:t,arguments:[n,a.object(d),a.object(tL.VERSION_OBJ_ID),...o,a.pure.u64(s)]})},(ox||(ox={})).VERSION_OBJ_ID="0x2375a0b1ec12010aaea3b2545acfa2ad34cfbba03ce4b59f4c39e1e25eed1b2a",(tm=oL||(oL={})).LAST_PACKAGE_ID="0xba7ab4c8c39024fa0052bb4f00548a2e7b60742bb4ed0b87bc1d945fd8209102",tm.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??tm.LAST_PACKAGE_ID}::momentum_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(n),t.pure.bool(i),t.pure.u64(s),t.object(ox.VERSION_OBJ_ID),t.object(u)]})},(ov||(ov={})).CONFIGURATION_OBJ_ID="0xd746495d04a6119987c2b9334c5fefd7d8cff52a8a02a3ea4e3995b9a041ace4",(tf=ok||(ok={})).LAST_PACKAGE_ID="0x5a259db4b1d17fafc09185c9a71bac36f25f9ee462e72894c8610e5a58b79f8f",tf.swap=function(e){c(e.protocol===rn.MOVEPUMP,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,expectedAmountOut:s,packageId:l}=e;t.moveCall({target:`${l??tf.LAST_PACKAGE_ID}::movepump_router::swap`,typeArguments:[n?a:r],arguments:[o,t.object(ov.CONFIGURATION_OBJ_ID),t.object(t9.DEX_INFO_OBJ_ID),t.object(u),t.pure.u64(s),t.pure.bool(n),t.pure.u64(i)]})},(oN||(oN={})).STATE_OBJ_ID="0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",(tg=oU||(oU={})).LAST_PACKAGE_ID="0xd615fed37d692280047068e80d3a6bb685aa9d574608054c9df881d6a7378fab",tg.swap=function(e){let t,o;c(e.protocol===rn.OBRIC);let{txb:r,swapContext:a,poolId:n,coinAType:i,coinBType:s,aToB:l,amountIn:d,pythInfoObjectIdMap:p,packageId:_}=e;"priceInfoObjIdA"in e?(t=e.priceInfoObjIdA,o=e.priceInfoObjIdB):(t=p.get(e.pythPriceFeedIdA),o=p.get(e.pythPriceFeedIdB),c(t,"Not found priceInfoAId in pythObjectIdMap"),c(o,"Not found priceInfoBId in pythObjectIdMap")),r.moveCall({target:`${_??tg.LAST_PACKAGE_ID}::obric_router::swap`,typeArguments:[i,s],arguments:[a,r.object(n),r.pure.u64(d),r.pure.bool(l),r.object(oN.STATE_OBJ_ID),r.object(t),r.object(o),r.object(u)]})},(tA=oG||(oG={})).VERSION_OBJ_ID="0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7",tA.MARKET_OBJ_ID="0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9",(tb=oK||(oK={})).LAST_PACKAGE_ID="0xea409bb08c8a09e4127f859d9c36b8b62ca609282aa1e443091db6b7a7409ee7",tb.swap=function(e){c(e.protocol===rn.SCALLOP);let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,scoinTreasury:s,packageId:l}=e;t.moveCall({target:`${l??tb.LAST_PACKAGE_ID}::scallop_router::swap`,typeArguments:[r,a],arguments:[o,t.object(oG.VERSION_OBJ_ID),t.object(oG.MARKET_OBJ_ID),t.object(s),t.pure.u64(i),t.pure.bool(n),t.object(u)]})},(oj||(oj={})).ORACLE_HOLDER_OBJ_ID="0x8c36ea167c5e6da8c3d60b4fc897416105dcb986471bd81cfbfd38720a4487c0",(tI=oq||(oq={})).LAST_PACKAGE_ID="0x918a30e2a05d24ea9451e2d2900d055f74e6752f2e10251fa50c7175831b1958",tI.swap=function(e){c(e.protocol===rn.SEVENK_CPMM,"Invalid protocol for sevenk_cpmm_router swap");let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,coinLpType:u,oracleConfigA:l,oracleConfigB:d,pythPriceFeedIdA:p,pythPriceFeedIdB:_,pythInfoObjectIdMap:m,packageId:f}=e,g=m.get(p),A=m.get(_);c(g,"Not found priceInfoAId in pythObjectIdMap"),c(A,"Not found priceInfoBId in pythObjectIdMap");let b=tz.newHolder(t);tz.getPrice({txb:t,coinPriceId:p,holder:b,coinOracleId:l}),tz.getPrice({txb:t,coinPriceId:_,holder:b,coinOracleId:d}),t.moveCall({target:`${f??tI.LAST_PACKAGE_ID}::sevenk_cpmm_router::swap`,typeArguments:[a,n,u],arguments:[o,t.object(r),t.object(oj.ORACLE_HOLDER_OBJ_ID),t.pure.bool(i),t.pure.u64(s)]})},(o$||(o$={})).CONFIGURATION_OBJ_ID="0xe79fff6c77d81f9a8efb729e25bf0037deec42518d40b978f274a4915d7e1ec9",(tT=oY||(oY={})).LAST_PACKAGE_ID="0x0a5dc665dc3c1c846a6d1e00811c84cae3510c839ab4dc0873f85dc8908d0606",tT.swap=function(e){c(e.protocol===rn.SEVENK_FUN,"Invalid protocol");let{txb:t,swapContext:o,aToB:r,amountIn:a,coinBType:n,packageId:i}=e;t.moveCall({target:`${i??tT.LAST_PACKAGE_ID}::sevenk_fun_router::swap`,typeArguments:[n],arguments:[o,t.object(o$.CONFIGURATION_OBJ_ID),t.object(og.CONTAINER_OBJ_ID),t.object(u),t.pure.bool(r),t.pure.u64(a)]})},(tC=oV||(oV={})).LAST_PACKAGE_ID="0xa6d129c0b314e85d1bc5aecf305d64212bdd5d466457531f4f624fef5f2e7751",tC.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinBType:i,packageId:s}=e;t.moveCall({target:`${s??tC.LAST_PACKAGE_ID}::springsui_router::swap`,typeArguments:[i],arguments:[o,t.object(r),t.object(l),t.pure.u64(a),t.pure.bool(n)]})},(oJ||(oJ={})).CONFIG_OBJ_ID="0x881fd0a12ca4fa48991f5c27ba57d17f1ec147fa15f43b3cb760cc3bd7ba9402",(tO=oH||(oH={})).LAST_PACKAGE_ID="0xa314a64962ed4b91a6b4085de4dff2e631fd4c731dbca671a74489955df322ef",tO.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:s,packageId:c}=e,u=[o,t.object(r),t.object(oJ.CONFIG_OBJ_ID),t.pure.bool(a),t.pure.u64(n),t.object("0x6")];t.moveCall({target:`${c??tO.LAST_PACKAGE_ID}::srm_cpmm_router::swap`,typeArguments:[i,s],arguments:u})},(tE=(tM=oX||(oX={})).Oracle||(tM.Oracle={})).PACKAGE_ID="0xe84b649199654d18c38e727212f5d8dacfc3cf78d60d0a7fc85fd589f280eb2b",tE.getPythPrice=function(e){let{txb:t,oracleRegistryId:o,priceInfoId:r,oracleIndex:a}=e;return t.moveCall({target:`${tE.PACKAGE_ID}::oracles::get_pyth_price`,typeArguments:[],arguments:[t.object(o),t.object(r),t.pure.u64(a),t.object(u)]})};var rY=oW||(oW={});function rV(e,t){c(e.protocol===rn.STEAMM_OMM||e.protocol===rn.STEAMM_OMM_V2,"Invalid protocol for steamm _swapOmm swap");let{txb:o,swapContext:r,poolId:a,coinAType:n,coinBType:i,aToB:s,amountIn:l,bankAId:d,bankBId:p,lendingMarketId:_,lendingMarketType:m,bCoinAType:f,bCoinBType:g,lpBCoinType:A,pythPriceFeedIdA:b,pythPriceFeedIdB:I,pythInfoObjectIdMap:T,oracleRegistryId:C,oracleIndexA:O,oracleIndexB:M,packageId:E}=e,y=T.get(b),h=T.get(I);c(y,"Not found priceInfoAId in pythObjectIdMap"),c(h,"Not found priceInfoBId in pythObjectIdMap");let S=oX.Oracle.getPythPrice({txb:o,oracleRegistryId:C,priceInfoId:y,oracleIndex:O}),F=oX.Oracle.getPythPrice({txb:o,oracleRegistryId:C,priceInfoId:h,oracleIndex:M});o.moveCall({target:`${E??rY.LAST_PACKAGE_ID}::${rJ(t)}::swap`,typeArguments:[m,n,i,f,g,A],arguments:[r,o.object(a),o.object(d),o.object(p),o.object(_),S,F,o.pure.bool(s),o.pure.u64(l),o.object(u)]})}function rJ(e){switch(e){case 0:return"steamm_omm_router";case 1:return"steamm_omm_v2_router"}}function rH(e){let{amountOut:t,aggregatorFeeBps:o,partnerFeeBps:r}=e,a=rX(t,o);return r&&(a=rX(a,r)),a}function rX(e,t){let o=BigInt(e)*BigInt(t)/BigInt(1e4);return(BigInt(e)-o).toString()}function rW(e){return Math.floor(100*e)}rY.LAST_PACKAGE_ID="0xd606880d67c399f349758111a91582d5515f31dd051632402653d872818f594e",rY.swapCpmm=function(e){c(e.protocol===rn.STEAMM_CPMM,"Invalid protocol for steamm_cpmm_router swap");let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,bankAId:l,bankBId:d,lendingMarketId:p,lendingMarketType:_,bCoinAType:m,bCoinBType:f,lpBCoinType:g}=e;t.moveCall({target:`${rY.LAST_PACKAGE_ID}::steamm_cpmm_router::swap`,typeArguments:[_,a,n,m,f,g],arguments:[o,t.object(r),t.object(l),t.object(d),t.object(p),t.pure.bool(i),t.pure.u64(s),t.object(u)]})},rY.swapOmm=function(e){rV(e,0)},rY.swapOmmV2=function(e){rV(e,1)},rY.getOmmRouterModule=rJ,(ty=oz||(oz={})).LAST_PACKAGE_ID="0x7a1cf89025a60161e84809784d772263231fad08a7cb76a88ca1ba69e0a656da",ty.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??ty.LAST_PACKAGE_ID}::suiswap_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.pure.bool(i),t.pure.u64(s),t.object(u)]})},(th=oQ||(oQ={})).VERSIONED="0x0309b66202e9aaf470081fffee7ffc0fbd50e3b7400d4f56fd06502e4dbbd676",th.POOL_REGISTRY="0xcd0a614c4cbbf173f59dee2602c43a1717f283215ed7a0bb1d55d786af16fbcd",(tS=oZ||(oZ={})).LAST_PACKAGE_ID="0x79957062a7424ed9c2eb83932e4c4fcc3fee67ab3c8f6f874c54e417178bbb7a",tS.swap=function(e){c(e.protocol===rn.TRADEPORT_CLMM,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,poolFeeRate:s,packageId:l}=e;t.moveCall({target:`${l??tS.LAST_PACKAGE_ID}::tradeport_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(oQ.POOL_REGISTRY),t.pure.u64(s),t.object(oQ.VERSIONED),t.pure.bool(n),t.pure.u64(i),t.object(u)]})},(o0||(o0={})).POOL_VERSIONED="0xf1cf0e81048df168ebeb1b8030fad24b3e0b53ae827c25053fff0779c1445b6f",(tF=o1||(o1={})).LAST_PACKAGE_ID="0x512d63711ff38353fb167238b0529001b6871c1727c67ce3bf6ec23556b0f1da",tF.swap=function(e){c(e.protocol===rn.TURBOS_CLMM,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,coinFeeType:n,poolId:i,aToB:s,amountIn:l,packageId:d}=e;t.moveCall({target:`${d??tF.LAST_PACKAGE_ID}::turbos_clmm_router::swap`,typeArguments:[r,a,n],arguments:[o,t.object(i),t.object(o0.POOL_VERSIONED),t.pure.bool(s),t.pure.u64(l),t.object(u)]})},(o4||(o4={})).CONFIGURATION_OBJ_ID="0xd86685fc3c3d989385b9311ef55bfc01653105670209ac4276ebb6c83d7df928",(tP=o6||(o6={})).LAST_PACKAGE_ID="0x1fad13f09797aa87a4385d0b1efb2de963ba16742447b1ad5a3b0c5b1d1c588b",tP.swap=function(e){c(e.protocol===rn.TURBOS_FUN,"Invalid protocol");let{txb:t,swapContext:o,coinBType:r,aToB:a,amountIn:n,packageId:i}=e;t.moveCall({target:`${i??tP.LAST_PACKAGE_ID}::turbos_fun_router::swap`,typeArguments:[r],arguments:[o,t.object(o4.CONFIGURATION_OBJ_ID),t.object(u),t.pure.bool(a),t.pure.u64(n)]})},(o3||(o3={})).VOLO_CERT_METADATA_ID="0x680cd26af32b2bde8d3361e804c53ec1d1cfe24c7f039eb7f549e8dfde389a60",(tB=o2||(o2={})).LAST_PACKAGE_ID="0x7c8d95256342f904d5f251776903a17905d87c95f387b3a35cc2aecc23b3c042",tB.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,packageId:i}=e;t.moveCall({target:`${i??tB.LAST_PACKAGE_ID}::volo_router::swap`,arguments:[o,t.object(r),t.object(o3.VOLO_CERT_METADATA_ID),t.object(l),t.pure.bool(a),t.pure.u64(n)]})},(tw=o5||(o5={})).RouterSwapFunctionMap={[rn.AFTERMATH_CPMM]:t0.swap,[rn.AFTERMATH_LSD]:t4.swap,[rn.ALPHAFI_LSD]:t6.swap,[rn.BLASTFUN]:t2.swap,[rn.BLUEFIN_CLMM]:t8.swap,[rn.BLUEMOVE_CPMM]:t7.swap,[rn.BOLT]:ot.swap,[rn.CETUS_CLMM]:or.swap,[rn.CETUS_DLMM]:on.swap,[rn.DEEPBOOK_V3]:os.swap,[rn.DIP_CPMM]:ou.swap,[rn.FERRA_CLMM]:od.swap,[rn.FERRA_DLMM]:o_.swap,[rn.FLOWX_CPMM]:oA.swap,[rn.FLOWX_CLMM]:of.swap,[rn.FULLSAIL_CLMM]:oI.swap,[rn.HAEDAL_CPMM]:oT.swap,[rn.HAEDAL_CPMM_V2]:oC.swap,[rn.HAEDAL_LSD]:oO.swap,[rn.HAEDAL_LSD_WAL]:oy.swap,[rn.KRIYA_CLMM]:oS.swap,[rn.KRIYA_CPMM]:oF.swap,[rn.MAGMA_ALMM]:oB.swap,[rn.MAGMA_CLMM]:oD.swap,[rn.METASTABLE]:oR.swap,[rn.MOMENTUM_CLMM]:oL.swap,[rn.MOVEPUMP]:ok.swap,[rn.OBRIC]:oU.swap,[rn.SCALLOP]:oK.swap,[rn.SEVENK_CPMM]:oq.swap,[rn.SEVENK_FUN]:oY.swap,[rn.SPRINGSUI]:oV.swap,[rn.SRM_CPMM]:oH.swap,[rn.STEAMM_CPMM]:oW.swapCpmm,[rn.STEAMM_OMM]:oW.swapOmm,[rn.STEAMM_OMM_V2]:oW.swapOmmV2,[rn.SUISWAP_CPMM]:oz.swap,[rn.TRADEPORT_CLMM]:oZ.swap,[rn.TURBOS_CLMM]:o1.swap,[rn.TURBOS_FUN]:o6.swap,[rn.VOLO]:o2.swap},tw.swap=function(e){(0,tw.RouterSwapFunctionMap[e.protocol])(e)},(o8||(o8={})).buildAggregatorSwapTransaction=async function(e){let{tx:t,coinOutType:o,tradePaths:r,pythConnections:a,pythClient:n,packageIdMap:i}=e,s=tD.openSwap(e),c=await tQ.updatePythPriceIDs({priceFeedIds:function(e){let t=new Set;for(let o of e)"pythPriceFeedIdA"in o&&t.add(o.pythPriceFeedIdA),"pythPriceFeedIdB"in o&&t.add(o.pythPriceFeedIdB),"pythPriceFeedIdBase"in o&&t.add(o.pythPriceFeedIdBase),"pythPriceFeedIdMeta"in o&&t.add(o.pythPriceFeedIdMeta),"pythPriceFeedIdEth"in o&&t.add(o.pythPriceFeedIdEth);return[...t]}(r),txb:t,pythClient:n,pythConnections:a});for(let e=0;e<r.length;e++){let o=r[e],[a,n]=o.aToB?[o.coinInType,o.coinOutType]:[o.coinOutType,o.coinInType];o5.swap({...o,txb:t,swapContext:s,amountIn:o.amountIn,coinAType:a,coinBType:n,packageId:i?.get(o.protocol),pythInfoObjectIdMap:c})}return tD.closeSwap({tx:t,coinOutType:o,swapSession:s})};let rz=tQ.newPythConnections(),rQ=tQ.newPythClient();var rZ=o9||(o9={});function r0(e){var t,o;let r,a,{buildTxParam:n,rawRouteParam:i}=e;switch(i.sourceRoute){case"CETUS":r=tv.convert(i.rawRoute);break;case"FLOWX":r=tk.convert(i.rawRoute);break;case"SEVENK":r=tR.convert(i.rawRoute);break;default:throw Error("Unsupported source route")}let s=rW(n.aggregatorFeeRatePercent),c=n.partnerFeeRatePercent?rW(n.partnerFeeRatePercent):void 0,u=n.expectedAmountOut??rH({amountOut:r.amountOut,aggregatorFeeBps:s,partnerFeeBps:c}),l=(o=(t=n.slippagePercent)?Math.floor(100*t):100,a=BigInt(u)*BigInt(o??100)/BigInt(1e4),(BigInt(u)-a).toString());return{...n,...r,expectedAmountOut:u,minAmountOut:l,aggregatorFeeBps:s,partnerFeeBps:c,pythConnections:n.pythConnections??rz,pythClient:n.pythClient??rQ}}rZ.toMetaAggregatorBuildTxParams=r0,rZ.buildTx=function(e){let t=r0(e);return o8.buildAggregatorSwapTransaction(t)};let r1=async(e,t,o)=>t<=0?e():new Promise((r,a)=>{let n=setTimeout(()=>a(new rG(`Timeout ${o??"operation"}`,rU.TIMEOUT,{timeout:t})),t);e().then(r).catch(a).finally(()=>clearTimeout(n))}),r4=(e,t,o,r=0)=>{if(t>1e4)throw Error("Slippage must be less than 100%");if(o>1e4)throw Error("Commission must be less than 100%");if(r>1e4)throw Error("Tip must be less than 100%");let a=BigInt(e),n=a*BigInt(r||0)/10000n,i=(a-n)*BigInt(o)/10000n,s=a-n-i;return{tipAmount:n,minAmount:s*BigInt(1e4-t)/10000n,commissionAmount:i,expectedAmount:s.toString(10)}},r6={SEVENK:{},FLOWX:{},CETUS:{}};class r3{client;jsonRpcClient;providers={};options;constructor(e){this.options={providers:{...r6,...e?.providers},clients:e.clients,slippageBps:e?.slippageBps??100,hermesApi:e?.hermesApi??tQ.PYTH_URLS,partner:e?.partner??eC,partnerCommissionBps:e?.partnerCommissionBps??0,tipBps:e?.tipBps??0},this.client=e.clients.grpc,this.jsonRpcClient=e.clients.jsonRpc}async getQuoteClient(e){let t=this.providers[e];if(t)return t;let o=this.options.providers[e];switch(rG.assert(!!o,`Provider not found: ${e}`,rU.PROVIDER_NOT_FOUND,{provider:e}),e){case"SEVENK":{let{Bluefin7kClient:e}=await Promise.resolve(o7).catch(r2("SEVENK"));this.providers.SEVENK=new e(o,this.client);break}case"FLOWX":{let{FlowxClient:e}=await Promise.resolve(rt).catch(r2("FLOWX"));this.providers.FLOWX=new e(o);break}case"CETUS":{let{CetusClient:e}=await Promise.resolve(re).catch(r2("CETUS"));this.providers.CETUS=new e(o,this.options,this.jsonRpcClient);break}default:throw new rG(`Provider not supported: ${e}`,rU.PROVIDER_NOT_SUPPORTED,{provider:e})}return this.providers[e]}async getQuoteByClient(e,t){return await r1(async()=>{let o=await e.quote(t);return o?(o.amountOut=rH({amountOut:o.amountOut,partnerFeeBps:this.options.partnerCommissionBps,aggregatorFeeBps:this.options.tipBps}),o):null},t.timeout??2e3,`quote for ${e.kind} provider from ${t.coinTypeIn} to ${t.coinTypeOut}`)}async getQuote(e){let t={...e,coinTypeIn:_(e.coinTypeIn),coinTypeOut:_(e.coinTypeOut)};return(await Promise.allSettled(Object.entries(this.options.providers).filter(([e,t])=>!t.disabled).map(async([e])=>{let o=await this.getQuoteClient(e);return this.getQuoteByClient(o,t)}))).map(e=>"fulfilled"===e.status?e.value:(console.warn(e.reason),null)).filter(e=>null!==e)}async swap(e){let{quote:t,signer:o,tx:r,coinIn:a,slippageBps:n}=e,i=m(o);rG.assert(p(i),`Invalid signer address: ${o}`,rU.INVALID_SIGNER_ADDRESS,{signer:o}),r.setSender(i);let s=(n??this.options.slippageBps)/1e4,c=this.options.partner&&this.options.partner!==eC?this.options.partner:void 0,u=c&&this.options.partnerCommissionBps>0?this.options.partnerCommissionBps/1e4:void 0;return o9.buildTx({buildTxParam:{tx:r,inputCoin:a,expectedAmountOut:t.amountOut,slippagePercent:s,aggregatorFeeRatePercent:this.options.tipBps/1e4,aggregatorFeeRecipient:"0xdaf1c8ed29d89cd8f217f609bad0a668fa6f158c12000bfa5f93e670c99e24ff",partnerFeeRatePercent:u,partnerFeeRecipient:c,pythConnections:tQ.newPythConnections(this.options.hermesApi),pythClient:tQ.newPythClient(this.client)},rawRouteParam:{...t}})}}let r2=e=>t=>{throw console.warn(`Please install ${{CETUS:"@cetusprotocol/aggregator-sdk",FLOWX:"@flowx-finance/sdk",SEVENK:"@bluefin-exchange/bluefin7k-aggregator-sdk"}[e]} to use ${e} provider`),t};class r5{sdk;_astrosAggregator;_aftermathAggregator;_sevenkAggregator;_cetusAggregator;_flowXAggregator;constructor(e){this.sdk=e,this._astrosAggregator=new rd({defaultTradeFee:e.options.tradeFee,astrosApiKey:e.options.astrosApiKey},e.suiJsonRpcClient),this._aftermathAggregator=new rl({defaultTradeFee:e.options.tradeFee,aftermathApiKey:e.options.aftermathApiKey,aftermathApiEndpoint:e.options.aftermathApiEndpoint},e.suiJsonRpcClient),this._sevenkAggregator=new rs({defaultTradeFee:e.options.tradeFee,sevenKApiKey:e.options.sevenKApiKey},e.suiClient),this._cetusAggregator=new rp({defaultTradeFee:e.options.tradeFee,cetusApiKey:e.options.cetusApiKey,cetusApiEndpoint:e.options.cetusApiEndpoint,cetusPartnerId:e.options.cetusPartnerId},e.suiJsonRpcClient),this._flowXAggregator=new rm({defaultTradeFee:e.options.tradeFee,flowxApiKey:e.options.flowxApiKey},e.suiClient)}get astrosAggregator(){return this._astrosAggregator}get aftermathAggregator(){return this._aftermathAggregator}get sevenkAggregator(){return this._sevenkAggregator}get cetusAggregator(){return this._cetusAggregator}get flowXAggregator(){return this._flowXAggregator}async getTradeRoute(e,t){let o;switch(e){case r_.ASTROS:{let e,r=await this._astrosAggregator.getTradeRoute(t);if(!r)return null;let a=rd.toCommonTradeRoutes(r,t.coinInType,t.coinOutType);if(!a)return null;e=t.tradeFee?t.tradeFee.tradeFeePercent:this.sdk.options.tradeFee.tradeFeePercent,a.amountOut=BigInt(new s(r.amount_out).multipliedBy(1-e).toFixed(0,3)),o={route:a,aggregatorRoute:r};break}case r_.AFTERMATH:{let e=await this._aftermathAggregator.getTradeRoute(t);if(!e)return null;let r=rl.toCommonTradeRoutes(e);if(!r)return null;o={route:r,aggregatorRoute:e};break}case r_.SEVENK:{let e=await this._sevenkAggregator.getTradeRoute(t);if(!e)return null;let r=rs.toCommonTradeRoutes(e);if(!r)return null;o={route:r,aggregatorRoute:e};break}case r_.CETUS:{let e=await this._cetusAggregator.getTradeRoute(t);if(!e)return null;let r=rp.toCommonTradeRoutes(e,t.coinInType,t.coinOutType);if(!r)return null;o={route:r,aggregatorRoute:e};break}case r_.FLOWX:{let e=await this._flowXAggregator.getTradeRoute(t);if(!e)return null;let r=rm.toCommonTradeRoutes(e);if(!r)return null;o={route:r,aggregatorRoute:e}}}return o}async getTransactionByRoute(e,t){switch(e){case r_.ASTROS:return this._astrosAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case r_.AFTERMATH:return this._aftermathAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage});case r_.SEVENK:return this._sevenkAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case r_.CETUS:return this._cetusAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case r_.FLOWX:return this._flowXAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee})}}async getTradeTransaction(e,t){let o=await this.getTradeRoute(e,{coinInAmount:t.coinInAmount,coinInType:t.coinInType,coinOutType:t.coinOutType,tradeFee:t.tradeFee,metaAggregator:t.metaAggregator});if(!o)return null;let r=await this.getTransactionByRoute(e,{walletAddress:t.walletAddress,completeRoute:o.aggregatorRoute,slippage:t.slippage,tradeFee:t.tradeFee});return{route:o.route,aggregatorRoute:o.aggregatorRoute,transaction:r}}async getTradeTransactionWithBestRate(e){let t=Object.keys(r_),o=await Promise.all(t.map(async t=>{try{return await this.getTradeRoute(t,e)}catch{return null}})),r=null,a=null;for(let e=0;e<o.length;e++){let n=o[e],i=t[e];if(n&&(!r||n.route.amountOut>r.route.amountOut)){r=n,a=i;continue}}if(!r||!a)return null;let n=await this.getTransactionByRoute(a,{walletAddress:e.walletAddress,completeRoute:r.aggregatorRoute,slippage:e.slippage,tradeFee:e.tradeFee});return{route:r.route,aggregatorRoute:r.aggregatorRoute,transaction:n}}async getAmountOut(e,t){let o=await this.getTradeRoute(e,t);return o?o.route.amountOut:null}async getBestAmountOut(e){let t=Object.keys(r_),o=null,r=null;for(let a of t){let t=await this.getAmountOut(a,e);null!==t&&(null===o||t>o)&&(o=t,r=a)}return null===o||null===r?null:{amountOut:o,aggregator:r}}}class r8{sdk;constructor(e){this.sdk=e}async getEstimatedAmountOut(e,t){let{coinInType:o,coinOutType:r}=t;c(o!==r,"coinInType and coinOutType must be different"),c(eb(o)||eb(r),"One of coinInType or coinOutType must be SUI");let a=eb(o);switch(e){case rD.MOONBAGS:if(a)return await tX.getCurveAmountAfterBuy({poolId:t.poolId,suiAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0},this.sdk.suiClient);return await tX.getSuiAmountAfterSell({poolId:t.poolId,curveAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0},this.sdk.suiClient);case rD.BLAST_FUN:if(a)return await tY.getCurveAmountAfterBuy({poolId:t.poolId,suiAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0});return await tY.getSuiAmountAfterSell({poolId:t.poolId,curveAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0});default:throw Error(`Unsupported bonding curve platform: ${e}`)}}async getTradeTransaction(e,t){let o,{coinInType:r,coinOutType:a}=t;c(r!==a,"coinInType and coinOutType must be different"),c(eb(r)||eb(a),"One of coinInType or coinOutType must be SUI");let n=eb(r);switch(e){case rD.MOONBAGS:o=n?await tW.getBuyTransaction(t,this.sdk.suiClient):await tW.getSellTransaction(t,this.sdk.suiClient);break;case rD.BLAST_FUN:o=n?await tV.getBuyTransaction(t,this.sdk.suiClient):await tV.getSellTransaction(t,this.sdk.suiClient);break;default:throw Error(`Unsupported bonding curve platform: ${e}`)}return o}}let r9={tradeFeePercent:.01,tradeFeeRecipientAddress:"0xdaf1c8ed29d89cd8f217f609bad0a668fa6f158c12000bfa5f93e670c99e24ff"};class r7{network;env;options;_suiGrpcClient;_suiJsonRpcClient;aggregatorModule;curveModule;constructor(e,t="mainnet",o="prod"){this.options=e,this.network=t,this.env=o,this._suiGrpcClient=e.clients.grpc,this._suiJsonRpcClient=e.clients.jsonRpc,this.aggregatorModule=new r5(this),this.curveModule=new r8(this)}get suiClient(){return this._suiGrpcClient}get suiJsonRpcClient(){return this._suiJsonRpcClient}}class ae{suiClient;constructor(e){this.suiClient=e}validatePrivateKey(e,t){c(e?.trim(),"Private key is required");let o=eu.fromSecretKey(e),r=o.getPublicKey().toSuiAddress();if(r!==t)throw Error(`Private key mismatch. Expected: ${t}, Got: ${r}`);return o}async createDraft(e,t,o){c(e?.trim(),"Sender address is required"),c(t?.trim(),"Recipient address is required"),c(e!==t,"Sender and recipient cannot be the same"),c(o>0n,"Transfer amount must be at least 1 MIST");try{let r=new i,[a]=r.splitCoins(r.gas,[o]);r.transferObjects([a],t),r.setSender(e);let{referenceGasPrice:n}=await this.suiClient.getReferenceGasPrice();r.setGasPrice(n);let s=await eI(this.suiClient,r,e,.1);r=await eT({inheritTx:r,sender:e,feeAmount:s,suiInputAmount:o},this.suiClient);let c=await r.build({client:this.suiClient}),u=Buffer.from(c).toString("base64"),l=await r.getDigest();return{sender:e,recipient:t,amountMIST:o,txDraftBase64:u,txDigest:l}}catch(e){throw Error(`Failed to create draft transaction: ${e instanceof Error?e.message:"Unknown error"}`)}}async execute(e,t){try{c(e,"Draft transaction is required"),c(e.txDraftBase64?.trim(),"Transaction data is required");let o=this.validatePrivateKey(t,e.sender),r=d(e.txDraftBase64),{signature:a}=await o.signTransaction(r),n=await this.suiClient.executeTransaction({transaction:r,signatures:[a],include:{effects:!0}}),i="Transaction"===n.$kind?n.Transaction:n.FailedTransaction;return{success:!0,txDigest:i.digest,effects:i.effects}}catch(e){return{success:!1,error:e instanceof Error?e.message:"Unknown error occurred"}}}async getTransactionStatus(e){c(e?.trim(),"Transaction digest is required");try{let t=await this.suiClient.getTransaction({digest:e,include:{effects:!0}}),o="Transaction"===t.$kind?t.Transaction:t.FailedTransaction;if(!o.effects?.status)return"pending";return o.effects.status.success?"success":"failure"}catch(e){if(e instanceof Error&&(e.message.includes("not found")||e.message.includes("Could not find")))return"pending";return"failure"}}}var at=1e4;export{ADMIN_CAP_ID,BOOSTING_PACKAGE_ID,BoostingModule,CLOCK_OBJECT_ID,CONFIG_ID,NATIVE_USDC_TOKEN_TYPE,NoodlesPaySdk,SUBSCRIPTION_CONFIG,SUI_ADDRESS_ZERO,SUI_FULL_TYPE,SUI_METADATA_OBJECT_ID,SUI_TYPE,SubscriptionModule,USDC_TOKEN_TYPE,addGasFee,getAmountAfterFee,getCoinObjectIdsByAmount,getNeededGasFee,getSplitCoinForTx,getSplitCoinsAfterFee,isSuiCoinType}from"./832.js";export{SuiJsonRpcClient}from"@mysten/sui/jsonRpc";export{r5 as AggregatorModule,rI as BLUEFIN_PACKAGE_ID,r8 as CurveModule,r9 as DEFAULT_TRADE_FEE,ae as DraftTransferTx,rG as MetaAgError,r3 as MetaClient,r7 as NoodlesSdk,ec as SuiGrpcClient,rs as SevenKAggregator,rv as adaptSuiClient,rk as adaptTransaction,rl as AftermathAggregator,tZ as AftermathCpmm,t1 as AftermathLsd,o9 as AggregatorConverter,rd as AstrosAggregator,t3 as Blastfun,rK as Bluefin7kClient,tq as BluefinTx,t5 as BluefinClmm,t9 as BluemoveCpmm,oe as Bolt,tX as MoonbagsCalculation,rp as CetusAggregator,tv as CetusAggregatorConverter,rq as CetusClient,oo as CetusClmm,oa as CetusDlmm,ra as checkIsSui,r_ as SupportedAggregator,tN as BlastFunConstants,tJ as MoonbagsConstants,rN as createCompatibleSuiClient,tj as BlastFunCustomCalculation,t$ as BlastFunCustomTransaction,oi as DeepbookV3,rr as denormalizeTokenType,oc as DipCpmm,rU as MetaAgErrorCode,at as BASE_BPS,ol as FerraClmm,op as FerraDlmm,rm as FlowXAggregator,tk as FlowXAggregatorConverter,r$ as FlowxClient,og as FlowxCpmm,ob as FullsailClmm,r4 as getExpectedReturn,rE as getGrpcFullnodeUrl,ry as getJsonRpcFullnodeUrl,rF as getMemezPumpSDK,rg as getMoveObject,rf as getMoveObjectContent,rh as getTransactionResultDigest,oE as HaedalLsdWal,oh as KriyaClmm,oP as MagmaAlmm,ow as MagmaClmm,o8 as MetaAggregator,tL as Metastable,ox as MomentumClmm,ov as Movepump,ro as normalizeTokenType,oN as Obric,tK as BlastFunPackage,tG as Bps,tU as MathUtils,tH as MoonbagsPackage,tz as PythPrice,tQ as PythUtils,oG as Scallop,tY as BlastFunSDKCalculation,tV as BlastFunSDKTransaction,tR as SevenKAggregatorConverter,oj as SevenkCpmm,o$ as SevenkFun,rT as splitSuiCoinAfterFeeFromBuyTx,rC as splitSuiCoinAfterFeeFromSellTx,oJ as SrmCpmm,oX as Steamm,oQ as TradeportClmm,tW as MoonbagsTransaction,o0 as TurbosClmm,o4 as TurbosFun,rn as AggregatorProtocol,rD as SupportedBondingCurve,tx as TradeFeeOptions,o5 as RouterUtils,r1 as timeout,o3 as Volo,oM as Walrus};
1
+ let e;import{__webpack_require__ as t}from"./0~rslib-runtime.js";import{BluefinXTx as o,Config as r,buildTx as a,getQuote as n}from"@bluefin-exchange/bluefin7k-aggregator-sdk";import{Transaction as i}from"@mysten/sui/transactions";import s from"bignumber.js";import c from"@minswap/tiny-invariant";import{SUI_CLOCK_OBJECT_ID as u,SUI_SYSTEM_STATE_OBJECT_ID as l,fromBase64 as d,isValidSuiAddress as p,normalizeStructTag as _,normalizeSuiAddress as m,parseStructTag as f,toHex as g}from"@mysten/sui/utils";import{Aftermath as A,AftermathApi as b,Helpers as I}from"aftermath-ts-sdk";import{AFSUI as T,AFTERMATH as C,ALPHAFI as O,AggregatorClient as M,BLUEFIN as E,BLUEMOVE as h,CETUS as y,CETUSDLMM as S,DEEPBOOKV3 as F,Env as P,FERRACLMM as B,FERRADLMM as w,FLOWXV2 as R,FLOWXV3 as D,FULLSAIL as x,HAEDAL as L,HAEDALHMMV2 as v,HAEDALPMM as k,HAWAL as N,KRIYA as U,KRIYAV3 as j,MAGMA as G,METASTABLE as K,MOMENTUM as q,OBRIC as $,SCALLOP as Y,SEVENK as V,SPRINGSUI as J,STEAMM as H,STEAMM_OMM as X,STEAMM_OMM_V2 as W,SUILEND as z,TURBOS as Q,VOLO as Z}from"@cetusprotocol/aggregator-sdk";import ee from"bn.js";import{AggregatorQuoter as et,Coin as eo,Commission as er,CommissionType as ea,Protocol as en,TradeBuilder as ei}from"@flowx-finance/sdk";import{bcs as es}from"@mysten/sui/bcs";import{Network as ec}from"@interest-protocol/sui-core-sdk";import{Ed25519Keypair as eu}from"@mysten/sui/keypairs/ed25519";import{SuiJsonRpcClient as el,getJsonRpcFullnodeUrl as ed}from"@mysten/sui/jsonRpc";import{SuiPriceServiceConnection as ep,SuiPythClient as e_}from"@pythnetwork/pyth-sui-js";import{getAmountAfterFee as em,getSplitCoinForTx as ef,CLOCK_OBJECT_ID as eg,SUI_METADATA_OBJECT_ID as eA,SUI_TYPE as eb,isSuiCoinType as eI,getNeededGasFee as eT,addGasFee as eC,SUI_ADDRESS_ZERO as eO,getSplitCoinsAfterFee as eM,SUI_FULL_TYPE as eE}from"./832.js";var eh,ey,eS,eF,eP,eB,ew,eR,eD,ex,eL,ev,ek,eN,eU,ej,eG,eK,eq,e$,eY,eV,eJ,eH,eX,eW,ez,eQ,eZ,e0,e1,e4,e6,e3,e2,e5,e8,e9,e7,te,tt,to,tr,ta,tn,ti,ts,tc,tu,tl,td,tp,t_,tm,tf,tg,tA,tb,tI,tT,tC,tO,tM,tE,th,ty,tS,tF,tP,tB,tw,tR,tD,tx,tL,tv,tk,tN,tU,tj,tG,tK,tq,t$,tY,tV,tJ,tH,tX,tW,tz,tQ,tZ,t0,t1,t4,t6,t3,t2,t5,t8,t9,t7,oe,ot,oo,or,oa,on,oi,os,oc,ou,ol,od,op,o_,om,of,og,oA,ob,oI,oT,oC,oO,oM,oE,oh,oy,oS,oF,oP,oB,ow,oR,oD,ox,oL,ov,ok,oN,oU,oj,oG,oK,oq,o$,oY,oV,oJ,oH,oX,oW,oz,oQ,oZ,o0,o1,o4,o6,o3,o2,o5,o8,o9,o7,re={};t.r(re),t.d(re,{Bluefin7kClient:()=>rU});var rt={};t.r(rt),t.d(rt,{CetusClient:()=>rG});var ro={};function rr(e){return e===eb?eE:e}function ra(e){return e===eE?eb:e}function rn(e){return e===eE||e===eb}t.r(ro),t.d(ro,{FlowxClient:()=>rK}),(eh=tD||(tD={})).MAX_AMOUNT_IN="18446744073709551615",eh.LAST_PACKAGE_ID="0x7e57926855b32baa3b3cabed89380b8d415606fdedadc18e58bd1ef1e60aee48",eh.openSwap=function(e){let{tx:t,expectedAmountOut:o,minAmountOut:r,coinInType:a,coinOutType:n,inputCoin:i,aggregatorFeeBps:s,aggregatorFeeRecipient:c,partnerFeeRecipient:u,partnerFeeBps:l}=e,[d]=t.moveCall({target:`${eh.LAST_PACKAGE_ID}::aggregator::open_swap`,typeArguments:[a,n],arguments:[t.pure.u64(o),t.pure.u64(r),i,t.pure.u32(s),t.pure.address(c),t.pure.u32(l??0),t.pure.option("address",u)]});return d},eh.closeSwap=function(e){let{tx:t,coinOutType:o,swapSession:r}=e,[a]=t.moveCall({target:`${eh.LAST_PACKAGE_ID}::aggregator::close_swap`,typeArguments:[o],arguments:[r]});return a};var ri=((ey={}).AFTERMATH_CPMM="aftermath_cpmm",ey.AFTERMATH_LSD="aftermath_lsd",ey.ALPHAFI_LSD="alphafi_lsd",ey.BLASTFUN="blastfun",ey.BLUEFIN_CLMM="bluefin_clmm",ey.BLUEMOVE_CPMM="bluemove_cpmm",ey.BOLT="bolt",ey.CETUS_CLMM="cetus_clmm",ey.CETUS_DLMM="cetus_dlmm",ey.DEEPBOOK_V3="deepbook_v3",ey.DIP_CPMM="dip_cpmm",ey.FLOWX_CPMM="flowx_cpmm",ey.FLOWX_CLMM="flowx_clmm",ey.FULLSAIL_CLMM="fullsail_clmm",ey.FERRA_CLMM="ferra_clmm",ey.FERRA_DLMM="ferra_dlmm",ey.HAEDAL_CPMM="haedal_cpmm",ey.HAEDAL_CPMM_V2="haedal_cpmm_v2",ey.HAEDAL_LSD="haedal_lsd",ey.HAEDAL_LSD_WAL="haedal_lsd_wal",ey.KRIYA_CLMM="kriya_clmm",ey.KRIYA_CPMM="kriya_cpmm",ey.MAGMA_ALMM="magma_almm",ey.MAGMA_CLMM="magma_clmm",ey.METASTABLE="metastable",ey.MOMENTUM_CLMM="momentum_clmm",ey.MOVEPUMP="movepump",ey.OBRIC="obric",ey.SCALLOP="scallop",ey.SEVENK_CPMM="sevenk_cpmm",ey.SEVENK_FUN="sevenk_fun",ey.SPRINGSUI="springsui",ey.SRM_CPMM="srm_cpmm",ey.STEAMM_CPMM="steamm_cpmm",ey.SUISWAP_CPMM="suiswap_cpmm",ey.STEAMM_OMM="steamm_omm",ey.STEAMM_OMM_V2="steamm_omm_v2",ey.TRADEPORT_CLMM="tradeport_clmm",ey.TURBOS_CLMM="turbos_clmm",ey.TURBOS_FUN="turbos_fun",ey.VOLO="volo",ey);function rs(e,t){console.error(`NOODLES_SDK_AGGREGATOR_ROUTE_ERROR aggregator=${e} error=${function(e){if(e instanceof Error)return`${e.name}: ${e.message}`;if("string"==typeof e)return e;try{return JSON.stringify(e)}catch{return String(e)}}(t)}`)}!function(e){let t=new Set(["bluefinx","RFQ"]);e.SUPPORTED_PROTOCOLS=["suiswap","turbos","cetus","bluemove","kriya","kriya_v3","aftermath","deepbook_v3","flowx","flowx_v3","bluefin","springsui","obric","stsui","steamm","steamm_oracle_quoter","steamm_oracle_quoter_v2","magma","haedal_pmm","momentum","sevenk_v1","fullsail","cetus_dlmm","ferra_dlmm","ferra_clmm"];let o={aftermath:e=>{c(e.extra?.poolStructTag,"Aftermath protocol requires poolStructTag");let[t]=i(e.extra.poolStructTag);return{...n(e),protocol:ri.AFTERMATH_CPMM,coinLpType:t}},flowx_v3:e=>{c(e.extra?.swapFeeRate,"flowx_v3 protocol requires swapFeeRate");let t=e.extra.swapFeeRate;return{...n(e),protocol:ri.FLOWX_CLMM,poolFeeRate:t}},turbos:e=>{c(e.extra?.poolStructTag,"turbos protocol requires poolStructTag");let[t,o,r]=i(e.extra.poolStructTag);return{...n(e),protocol:ri.TURBOS_CLMM,coinFeeType:r}},obric:e=>(c(e.extra?.oracles,"obric protocol requires oracles"),{...n(e),protocol:ri.OBRIC,pythPriceFeedIdA:s(e.extra.oracles[0]),pythPriceFeedIdB:s(e.extra.oracles[1])}),haedal_pmm:e=>(c(e.extra.oracles,"haedal_pmm protocol requires oracles"),{...n(e),protocol:ri.HAEDAL_CPMM,pythPriceFeedIdA:s(e.extra.oracles[0]),pythPriceFeedIdB:s(e.extra.oracles[1])}),sevenk_v1:e=>{c(e.extra?.poolStructTag,"sevenk_v1 protocol requires poolStructTag"),c(e.extra?.oracleConfigX,"sevenk_v1 protocol requires oracleConfigX"),c(e.extra?.oracleConfigY,"sevenk_v1 protocol requires oracleConfigY");let t=e.extra.oracles?.[0]?.Pyth?.bytes,o=e.extra.oracles?.[1]?.Pyth?.bytes;c(t,"sevenk_v1 protocol requires pythPriceFeedIdA"),c(o,"sevenk_v1 protocol requires pythPriceFeedIdB");let[r,a,s]=i(e.extra.poolStructTag);return{...n(e),protocol:ri.SEVENK_CPMM,coinLpType:s,pythPriceFeedIdA:t,pythPriceFeedIdB:o,oracleConfigA:e.extra.oracleConfigX,oracleConfigB:e.extra.oracleConfigY}},steamm:e=>{c(e.extra?.poolStructTag,"steamm protocol requires poolStructTag"),c(e.extra?.bankAStructTag,"steamm protocol requires bankAStructTag"),c(e.extra?.lendingMarketA,"steamm protocol requires lendingMarketA"),c(e.extra?.bankA,"steamm protocol requires bankA"),c(e.extra?.bankB,"steamm protocol requires bankB");let[t,o,r,a]=i(e.extra.poolStructTag),[s,u,l]=i(e.extra.bankAStructTag);return{...n(e),protocol:ri.STEAMM_CPMM,bankAId:e.extra.bankA,bankBId:e.extra.bankB,lendingMarketId:e.extra.lendingMarketA,lendingMarketType:s,bCoinAType:t,bCoinBType:o,lpBCoinType:a}},steamm_oracle_quoter:e=>{c(e.extra?.poolStructTag,"steamm_oracle_quoter protocol requires poolStructTag"),c(e.extra?.bankAStructTag,"steamm_oracle_quoter protocol requires bankAStructTag"),c(e.extra?.lendingMarketA,"steamm_oracle_quoter protocol requires lendingMarketA"),c(e.extra?.oracleRegistry,"steamm_oracle_quoter protocol requires oracleRegistry"),c(e.extra?.bankA,"steamm_oracle_quoter protocol requires bankA"),c(e.extra?.bankB,"steamm_oracle_quoter protocol requires bankB"),c(e.extra?.oracleIndexes,"steamm_oracle_quoter protocol requires oracleIndexes"),c(e.extra?.oracles,"steamm_oracle_quoter protocol requires oracles");let[t,o,r,a]=i(e.extra?.poolStructTag),[u,l,d]=i(e.extra.bankAStructTag),[p,_]=e.extra.oracleIndexes;return{...n(e),protocol:ri.STEAMM_OMM,bankAId:e.extra.bankA,bankBId:e.extra.bankB,lendingMarketId:e.extra.lendingMarketA,lendingMarketType:u,bCoinAType:t,bCoinBType:o,lpBCoinType:a,pythPriceFeedIdA:s(e.extra.oracles[0]),pythPriceFeedIdB:s(e.extra.oracles[1]),oracleRegistryId:e.extra.oracleRegistry,oracleIndexA:p,oracleIndexB:_}},steamm_oracle_quoter_v2:e=>{c(e.extra?.poolStructTag,"steamm_oracle_quoter_v2 protocol requires poolStructTag"),c(e.extra?.bankAStructTag,"steamm_oracle_quoter_v2 protocol requires bankAStructTag"),c(e.extra?.lendingMarketA,"steamm_oracle_quoter_v2 protocol requires lendingMarketA"),c(e.extra?.oracleRegistry,"steamm_oracle_quoter_v2 protocol requires oracleRegistry"),c(e.extra?.bankA,"steamm_oracle_quoter_v2 protocol requires bankA"),c(e.extra?.bankB,"steamm_oracle_quoter_v2 protocol requires bankB"),c(e.extra?.oracleIndexes,"steamm_oracle_quoter_v2 protocol requires oracleIndexes"),c(e.extra?.oracles,"steamm_oracle_quoter_v2 protocol requires oracles");let[t,o,r,a]=i(e.extra?.poolStructTag),[u,l,d]=i(e.extra.bankAStructTag),[p,_]=e.extra.oracleIndexes;return{...n(e),protocol:ri.STEAMM_OMM_V2,bankAId:e.extra.bankA,bankBId:e.extra.bankB,lendingMarketId:e.extra.lendingMarketA,lendingMarketType:u,bCoinAType:t,bCoinBType:o,lpBCoinType:a,pythPriceFeedIdA:s(e.extra.oracles[0]),pythPriceFeedIdB:s(e.extra.oracles[1]),oracleRegistryId:e.extra.oracleRegistry,oracleIndexA:p,oracleIndexB:_}},cetus:e=>({...n(e),protocol:ri.CETUS_CLMM}),bluemove:e=>({...n(e),protocol:ri.BLUEMOVE_CPMM}),kriya:e=>({...n(e),protocol:ri.KRIYA_CPMM}),kriya_v3:e=>({...n(e),protocol:ri.KRIYA_CLMM}),deepbook_v3:e=>({...n(e),protocol:ri.DEEPBOOK_V3}),flowx:e=>({...n(e),protocol:ri.FLOWX_CPMM}),bluefin:e=>({...n(e),protocol:ri.BLUEFIN_CLMM}),springsui:e=>({...n(e),protocol:ri.SPRINGSUI}),magma:e=>({...n(e),protocol:ri.MAGMA_CLMM}),momentum:e=>({...n(e),protocol:ri.MOMENTUM_CLMM}),fullsail:e=>({...n(e),protocol:ri.FULLSAIL_CLMM}),stsui:e=>({...n(e),protocol:ri.ALPHAFI_LSD}),suiswap:e=>({...n(e),protocol:ri.SUISWAP_CPMM}),cetus_dlmm:e=>({...n(e),protocol:ri.CETUS_DLMM}),ferra_dlmm:e=>({...n(e),protocol:ri.FERRA_DLMM}),ferra_clmm:e=>({...n(e),protocol:ri.FERRA_CLMM})};function r(e){let r=e.pool.type;if(t.has(r))throw Error(`Unsupported SourceDex: ${r}`);return(0,o[r])(e)}function a(e){let t=new Map;for(let[o,r]of e.entries())t.set(r.assetIn,o);let o=e.map(r);for(let e of t.values())o[e].amountIn=tD.MAX_AMOUNT_IN;return o}function n(e){return{poolId:e.poolId,coinInType:e.assetIn,coinOutType:e.assetOut,amountIn:e.amount,aToB:e.swapXtoY}}function i(e){return f(e||"").typeParams.map(_)}function s(e){let t=e?.Pyth?.bytes||e?.Pyth?.price_identifier?.bytes;return c(t,"Pyth price feed id is not found"),"0x"+g(Uint8Array.from(t))}e.toMetaAggregatorPath=r,e.toMetaAggregatorPaths=a,e.convert=function(e){var t,o,r;let n;c(e.routes,"Invalid raw route: routes is missing");let i=(t=e.routes,n={},t.forEach(e=>{e.hops.forEach(e=>{n[e.poolId]=e.pool})}),n),s=a((o=e.swaps,r=i,o.map(e=>{let t=r[e.poolId],o=ra(e.assetIn),a=ra(e.assetOut),n={type:ra(t?.allTokens?.[0]?.address),decimals:t?.allTokens?.[0]?.decimal},i={type:ra(t?.allTokens?.[1]?.address),decimals:t?.allTokens?.[0]?.decimal},s=o===n.type;return{...e,pool:t,assetIn:o,assetOut:a,coinX:n,coinY:i,swapXtoY:s}})));return{coinInType:e.tokenIn,coinOutType:e.tokenOut,amountOut:e.returnAmountWithDecimal,tradePaths:s}}}(tx||(tx={}));class rc{_config;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:a,metaAggregator:i,supportedProtocols:s}){try{this._config.sevenKApiKey&&r.setApiKey(this._config.sevenKApiKey);let c=a?a.tradeFeePercent:this._config.defaultTradeFee.tradeFeePercent,u=s??(i?tx.SUPPORTED_PROTOCOLS:void 0);return await n({tokenIn:t,tokenOut:o,amountIn:e.toString(),commissionBps:1e4*c,sources:u})}catch(e){return rs("sevenk",e),null}}async getTransaction({walletAddress:e,completeRoute:t,slippage:r,tradeFee:n}){let s,c;n?(s=n.tradeFeePercent,c=n.tradeFeeRecipientAddress):(s=this._config.defaultTradeFee.tradeFeePercent,c=this._config.defaultTradeFee.tradeFeeRecipientAddress);let u=await a({quoteResponse:t,slippage:r,accountAddress:e,commission:{partner:c,commissionBps:1e4*s}});return u.tx instanceof o?i.from(u.tx.txBytes).build({client:this._suiClient}):(u.tx.setSender(e),u.tx.build({client:this._suiClient}))}}function ru(e){return"bigint"==typeof e?e:"string"==typeof e&&/^\d+$/.test(e)?BigInt(e):e}function rl(e){return{...e,coinIn:e.coinIn?{...e.coinIn,amount:ru(e.coinIn.amount),tradeFee:ru(e.coinIn.tradeFee)}:e.coinIn,coinOut:e.coinOut?{...e.coinOut,amount:ru(e.coinOut.amount),tradeFee:ru(e.coinOut.tradeFee)}:e.coinOut}}(rc||(rc={})).toCommonTradeRoutes=function(e){let t=[];if(!e.routes||0===e.routes.length)return null;for(let o of e.routes){let e=[],r={};for(let t of o.hops){for(let e of t.pool.allTokens)r[e.address]=e.decimal;let o=r[t.tokenIn]??0,a=r[t.tokenOut]??0,n=BigInt(new s(t.tokenInAmount).multipliedBy(10**o).toFixed(0,3)),i=BigInt(new s(t.tokenOutAmount).multipliedBy(10**a).toFixed(0,3));e.push({poolAddress:t.poolId,coinIn:t.tokenIn,coinOut:t.tokenOut,amountIn:n,amountOut:i})}if(0===e.length)continue;let a=r[o.tokenIn]??0,n=r[o.tokenOut]??0,i=BigInt(new s(o.tokenInAmount).multipliedBy(10**a).toFixed(0,3)),c=BigInt(new s(o.tokenOutAmount).multipliedBy(10**n).toFixed(0,3));t.push({paths:e,coinIn:o.tokenIn,coinOut:o.tokenOut,amountIn:i,amountOut:c})}return 0===t.length?null:{coinIn:e.tokenIn,coinOut:e.tokenOut,amountIn:BigInt(e.swapAmountWithDecimal),amountOut:BigInt(e.returnAmountAfterCommissionWithDecimal),routes:t}};class rd{_config;_aftermathClient;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}async aftermathClient(){if(this._aftermathClient)return this._aftermathClient;let e=new A(this._config.aftermathApiEndpoint?this._config.aftermathApiEndpoint:"MAINNET"),t=await e.getAddresses();if(this._aftermathClient=new A(this._config.aftermathApiEndpoint??"MAINNET",new b(this._suiClient,t)),this._config.aftermathApiKey){let e=I.keypairFromPrivateKey(this._config.aftermathApiKey);await this._aftermathClient.Auth().init({async signMessageCallback({message:t}){let{signature:o}=await e.signPersonalMessage(t);return{signature:o}},walletAddress:e.toSuiAddress()})}return this._aftermathClient}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r}){try{let a;a=r?{recipient:r.tradeFeeRecipientAddress,feePercentage:r.tradeFeePercent}:{recipient:this._config.defaultTradeFee.tradeFeeRecipientAddress,feePercentage:this._config.defaultTradeFee.tradeFeePercent};let n=await this.aftermathClient();return await n.Router().getCompleteTradeRouteGivenAmountIn({coinInAmount:e,coinInType:t,coinOutType:o,externalFee:a})}catch(e){return rs("aftermath",e),null}}async getTransaction({completeRoute:e,walletAddress:t,slippage:o}){let r=await this.aftermathClient(),a=await r.Router().getTransactionForCompleteTradeRoute({completeRoute:function(e){if("object"!=typeof e||null===e)return e;let t=rl(e);return{...t,routes:Array.isArray(t.routes)?t.routes.map(e=>{let t=rl(e);return{...t,portion:ru(t.portion),paths:Array.isArray(t.paths)?t.paths.map(e=>rl(e)):t.paths}}):t.routes,feeBreakdown:Array.isArray(t.feeBreakdown)?t.feeBreakdown.map(e=>({...e,amount:ru(e.amount)})):t.feeBreakdown}}(e),walletAddress:t,slippage:o,isSponsoredTx:!1});return a.setSender(t),a.build({client:this._suiClient})}}(rd||(rd={})).toCommonTradeRoutes=function(e){if(0===e.routes.length)return null;let t=[];for(let o of e.routes){let e=[];for(let t of o.paths)e.push({poolAddress:t.poolId,coinIn:t.coinIn.type,coinOut:t.coinOut.type,amountIn:BigInt(t.coinIn.amount),amountOut:BigInt(t.coinOut.amount)});0!==e.length&&t.push({paths:e,coinIn:o.coinIn.type,coinOut:o.coinOut.type,amountIn:o.coinIn.amount,amountOut:o.coinOut.amount})}return 0===t.length?null:{coinIn:e.coinIn.type,coinOut:e.coinOut.type,amountIn:e.coinIn.amount,amountOut:e.coinOut.amount,routes:t}};class rp{_config;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r}){try{let a;a=r?{fee:1e4*r.tradeFeePercent,receiverAddress:r.tradeFeeRecipientAddress}:{fee:1e4*this._config.defaultTradeFee.tradeFeePercent,receiverAddress:this._config.defaultTradeFee.tradeFeeRecipientAddress};let{getQuote:n}=await import("@naviprotocol/astros-aggregator-sdk");return await n(t,o,e,this._config.astrosApiKey,{byAmountIn:!0,serviceFee:a})}catch(e){return rs("astros",e),null}}returnMergedCoins(e,t,o){if(t.length<2)return e.object(t[0].coinObjectId);let r=0,a=[];t.sort((e,t)=>Number(t.balance)-Number(e.balance)).slice(1).forEach(e=>{r>=o||(r+=Number(e.balance),a.push(e.coinObjectId))});let n=t[0].coinObjectId;return e.mergeCoins(n,a),e.object(n)}async getTransaction({completeRoute:e,walletAddress:t,slippage:o,tradeFee:r}){var a;let n,c;n=r?{fee:r.tradeFeePercent,receiverAddress:r.tradeFeeRecipientAddress}:{fee:this._config.defaultTradeFee.tradeFeePercent,receiverAddress:this._config.defaultTradeFee.tradeFeeRecipientAddress};let u=new s(e.amount_out).multipliedBy(1-o-n.fee).toNumber(),l=new i,{buildSwapPTBFromQuote:d,getCoins:p}=await import("@naviprotocol/astros-aggregator-sdk"),_=this._suiClient;if("0x2::sui::SUI"===(a=e.from)||"0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI"===a)c=l.splitCoins(l.gas,[l.pure.u64(e.amount_in)]);else{let o=await p(_,t,e.from),r=this.returnMergedCoins(l,o.data,Number.parseFloat(e.amount_in));c=l.splitCoins(r,[l.pure.u64(e.amount_in)])}let m=await d(t,l,u,c,e,void 0,!1,this._config.astrosApiKey,{serviceFee:n});return l.transferObjects([m],t),l.setSender(t),l.build({client:this._suiClient})}}(rp||(rp={})).toCommonTradeRoutes=function(e,t,o){if(0===e.routes.length)return null;let r=[];for(let t of e.routes){let e=[];for(let o of t.path)e.push({poolAddress:o.id,coinIn:o.from,coinOut:o.target,amountIn:BigInt(o.amount_in),amountOut:BigInt(o.amount_out)});0!==e.length&&r.push({amountIn:BigInt(t.amount_in),amountOut:BigInt(t.amount_out),coinIn:e[0].coinIn,coinOut:e[e.length-1].coinOut,paths:e})}return 0===r.length?null:{coinIn:t,coinOut:o,amountIn:BigInt(e.amount_in),amountOut:BigInt(e.amount_out),routes:r}},(tL||(tL={})).equals=function(e,t){return e.tradeFeePercent===t.tradeFeePercent&&e.tradeFeeRecipientAddress===t.tradeFeeRecipientAddress},(eS=tv||(tv={})).UNIVERSAL_META_VAULT_INTEGRATION_PACKAGE_ID="0xfd12517a9fc87c6a1f2357ad13b3421fb27a8bd7ca07d5fd5934ac35733baa47",(eF=eS.MetaCoinType||(eS.MetaCoinType={})).SUPER_SUI="0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI",eF.MUSD="0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD",eF.METH="0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH",eS.VERSION_OBJ_ID="0x4696559327b35ff2ab26904e7426a1646312e9c836d5c6cff6709a5ccc30915c",eS.createCap=function(e){let t,{txb:o,coinType:r,metaCoin:a,createCapAllTypeParams:n,whitelistedAppId:i,poolId:s,pythInfoObjectIdMap:l,createCapPackageId:d,createCapModule:p,createCapFunc:_}=e,m=[a.toString()];switch(n&&m.push(r),e.metaCoin){case"0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI":t=[o.object(i),o.object(s),o.object(e.registryId)];break;case"0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD":{let r=l.get(e.pythPriceFeedIdMeta);c(r,"Not found priceMetaId in pythObjectIdMap"),t=[o.object(i),o.object(s),o.object(r),o.object(u)];break}case"0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH":{let r=l.get(e.pythPriceFeedIdMeta);c(r,"Not found priceId in pythObjectIdMap");let a=l.get(e.pythPriceFeedIdEth);c(a,"Not found priceEthFeedId in pythObjectIdMap"),t=[o.object(i),o.object(s),o.object(r),o.object(a),o.object(u)];break}default:throw Error("Invalid MetaCoin: "+a.toString())}return o.moveCall({target:`${d}::${p}::${_}`,typeArguments:m,arguments:t})},eS.getCreateCapModule=function(e){switch(e){case"0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI":return"exchange_rate";case"0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD":case"0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH":return"pyth";default:throw Error("Invalid MetaCoin: "+e)}},eS.isMetaCoinType=function(e){return Object.values(eS.MetaCoinType).map(e=>e.toString()).includes(e)},eS.getCreateCapAllTypeParams=function(e,t){switch(e){case"0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI":return t===eS.UNIVERSAL_META_VAULT_INTEGRATION_PACKAGE_ID;case"0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD":case"0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH":return!0;default:throw Error("Invalid MetaCoin: "+e)}},function(e){let t=[y,U,R,D,j,Q,C,L,Z,T,h,F,Y,z,E,k,O,J,H,K,$,N,X,q,W,G,V,v,x,S,w,B];e.SUPPORTED_PROTOCOLS=[...t];let o=new Set(t),r=e=>({poolId:e.id,coinInType:e.from,coinOutType:e.target,aToB:e.direction,amountIn:e.amountIn});function a(t){if(!o.has(t.provider))throw Error(`Unsupported or unknown provider: ${t.provider} for pool ${t.id}`);return(0,e.TO_META_AGGREGATOR_PATH_FN_MAP[t.provider])(t)}function n(e){let t=new Map;for(let[o,r]of e.paths.entries())t.set(r.from,o);let o=[];for(let r=0;r<e.paths.length;r++){let n=e.paths[r],i=a(n);t.get(n.from)===r&&(i.amountIn=tD.MAX_AMOUNT_IN),o.push(i)}return o}e.TO_META_AGGREGATOR_PATH_FN_MAP={[K]:e=>{let t=r(e),o=e.extendedDetails,a=e.direction?e.target:e.from;c(o&&void 0!==o.metastable_create_cap_pkg_id&&void 0!==o.metastable_create_cap_module&&void 0!==o.metastable_create_cap_all_type_params&&void 0!==o.metastable_whitelisted_app_id,`METASTABLE missing required extendedDetails for pool ${e.id}.`);let n={createCapPackageId:o.metastable_create_cap_pkg_id,createCapModule:o.metastable_create_cap_module,createCapAllTypeParams:o.metastable_create_cap_all_type_params,whitelistedAppId:o.metastable_whitelisted_app_id};switch(a){case tv.MetaCoinType.SUPER_SUI:return c(o.metastable_registry_id,`METASTABLE_SUPER_SUI protocol requires 'metastable_registry_id' in extendedDetails for pool ${e.id}.`),{...t,...n,protocol:ri.METASTABLE,metaCoin:a,registryId:o.metastable_registry_id};case tv.MetaCoinType.MUSD:return c(o.metastable_price_seed,`METASTABLE_MUSD protocol requires 'metastable_price_seed' in extendedDetails for pool ${e.id}.`),{...t,...n,protocol:ri.METASTABLE,metaCoin:a,pythPriceFeedIdMeta:o.metastable_price_seed};case tv.MetaCoinType.METH:return c(o.metastable_price_seed&&o.metastable_eth_price_seed,`METASTABLE_ETH protocol requires 'metastable_price_seed' and 'metastable_eth_price_seed' in extendedDetails for pool ${e.id}.`),{...t,...n,protocol:ri.METASTABLE,metaCoin:a,pythPriceFeedIdMeta:o.metastable_price_seed,pythPriceFeedIdEth:o.metastable_eth_price_seed};default:throw Error(`METASTABLE protocol does not support ${a} as metaCoin.`)}},[F]:e=>({...r(e),protocol:ri.DEEPBOOK_V3}),[C]:e=>{let t=e.extendedDetails;return c(t?.aftermath_lp_supply_type,`AFTERMATH_CPMM protocol requires 'aftermath_lp_type' in extendedDetails for pool ${e.id}.`),{...r(e),protocol:ri.AFTERMATH_CPMM,coinLpType:t.aftermath_lp_supply_type}},[D]:e=>({...r(e),protocol:ri.FLOWX_CLMM,poolFeeRate:String(1e6*e.feeRate)}),[k]:e=>{let t=e.extendedDetails;return c(t?.haedal_pmm_base_price_seed&&t?.haedal_pmm_quote_price_seed,`HAEDAL_CPMM protocol requires 'haedal_pyth_price_a_id' and 'haedal_pyth_price_b_id' in extendedDetails for pool ${e.id}.`),{...r(e),protocol:ri.HAEDAL_CPMM,pythPriceFeedIdA:t.haedal_pmm_base_price_seed,pythPriceFeedIdB:t.haedal_pmm_quote_price_seed}},[v]:e=>{let t=e.extendedDetails;return c(t?.haedalhmmv2_base_price_seed,`HAEDAL_CPMM_V2 protocol requires 'haedal_pyth_price_base_id' in extendedDetails for pool ${e.id}.`),{...r(e),protocol:ri.HAEDAL_CPMM_V2,pythPriceFeedIdBase:t.haedalhmmv2_base_price_seed}},[Y]:e=>(c(e.extendedDetails?.scallop_scoin_treasury,`SCALLOP protocol requires 'scallop_scoin_treasury' in extendedDetails for pool ${e.id}.`),{...r(e),protocol:ri.SCALLOP,scoinTreasury:e.extendedDetails.scallop_scoin_treasury}),[H]:e=>{let t=e.extendedDetails;return c(t?.steamm_bank_a&&t?.steamm_bank_b&&t?.steamm_lending_market&&t?.steamm_lending_market_type&&t?.steamm_btoken_a_type&&t?.steamm_btoken_b_type&&t?.steamm_lp_token_type,`STEAMM_CPMM protocol requires steamm fields in extendedDetails for pool ${e.id}.`),{...r(e),protocol:ri.STEAMM_CPMM,bankAId:t.steamm_bank_a,bankBId:t.steamm_bank_b,lendingMarketId:t.steamm_lending_market,lendingMarketType:t.steamm_lending_market_type,bCoinAType:t.steamm_btoken_a_type,bCoinBType:t.steamm_btoken_b_type,lpBCoinType:t.steamm_lp_token_type}},[X]:e=>{let t=e.extendedDetails;return c(t?.steamm_bank_a&&t?.steamm_bank_b&&t?.steamm_lending_market&&t?.steamm_lending_market_type&&t?.steamm_btoken_a_type&&t?.steamm_btoken_b_type&&t?.steamm_lp_token_type&&t?.steamm_oracle_pyth_price_seed_a&&t?.steamm_oracle_pyth_price_seed_b&&t?.steamm_oracle_registry_id&&t?.steamm_oracle_index_a&&t?.steamm_oracle_index_b,`STEAMM_OMM protocol requires steamm fields in extendedDetails for pool ${e.id}.`),{...r(e),protocol:ri.STEAMM_OMM,bankAId:t.steamm_bank_a,bankBId:t.steamm_bank_b,lendingMarketId:t.steamm_lending_market,lendingMarketType:t.steamm_lending_market_type,bCoinAType:t.steamm_btoken_a_type,bCoinBType:t.steamm_btoken_b_type,lpBCoinType:t.steamm_lp_token_type,pythPriceFeedIdA:t.steamm_oracle_pyth_price_seed_a,pythPriceFeedIdB:t.steamm_oracle_pyth_price_seed_b,oracleRegistryId:t.steamm_oracle_registry_id,oracleIndexA:String(t.steamm_oracle_index_a),oracleIndexB:String(t.steamm_oracle_index_b)}},[W]:e=>{let t=e.extendedDetails;return c(t?.steamm_bank_a&&t?.steamm_bank_b&&t?.steamm_lending_market&&t?.steamm_lending_market_type&&t?.steamm_btoken_a_type&&t?.steamm_btoken_b_type&&t?.steamm_lp_token_type&&t?.steamm_oracle_pyth_price_seed_a&&t?.steamm_oracle_pyth_price_seed_b&&t?.steamm_oracle_registry_id&&t?.steamm_oracle_index_a&&t?.steamm_oracle_index_b,`STEAMM_OMM_V2 protocol requires steamm fields in extendedDetails for pool ${e.id}.`),{...r(e),protocol:ri.STEAMM_OMM_V2,bankAId:t.steamm_bank_a,bankBId:t.steamm_bank_b,lendingMarketId:t.steamm_lending_market,lendingMarketType:t.steamm_lending_market_type,bCoinAType:t.steamm_btoken_a_type,bCoinBType:t.steamm_btoken_b_type,lpBCoinType:t.steamm_lp_token_type,pythPriceFeedIdA:t.steamm_oracle_pyth_price_seed_a,pythPriceFeedIdB:t.steamm_oracle_pyth_price_seed_b,oracleRegistryId:t.steamm_oracle_registry_id,oracleIndexA:String(t.steamm_oracle_index_a),oracleIndexB:String(t.steamm_oracle_index_b)}},[$]:e=>{let t=r(e);if(e.extendedDetails?.obric_coin_a_price_id&&e.extendedDetails?.obric_coin_b_price_id)return{...t,protocol:ri.OBRIC,priceInfoObjIdA:e.extendedDetails.obric_coin_a_price_id,priceInfoObjIdB:e.extendedDetails.obric_coin_b_price_id};if(e.extendedDetails?.obric_coin_a_price_seed&&e.extendedDetails?.obric_coin_b_price_seed)return{...t,protocol:ri.OBRIC,pythPriceFeedIdA:e.extendedDetails.obric_coin_a_price_seed,pythPriceFeedIdB:e.extendedDetails.obric_coin_b_price_seed};throw Error(`OBRIC protocol requires 'obric_coin_a_price_id' and 'obric_coin_b_price_id' in extendedDetails for pool ${e.id}.`)},[V]:e=>{let t=e.extendedDetails;return c(t?.sevenk_lp_cap_type&&t?.sevenk_coin_a_price_seed&&t?.sevenk_coin_b_price_seed&&t?.sevenk_oracle_config_a&&t?.sevenk_oracle_config_b,`SEVENK_CPMM protocol requires sevenk fields in extendedDetails for pool ${e.id}.`),{...r(e),protocol:ri.SEVENK_CPMM,coinLpType:t.sevenk_lp_cap_type,pythPriceFeedIdA:t.sevenk_coin_a_price_seed,pythPriceFeedIdB:t.sevenk_coin_b_price_seed,oracleConfigA:t.sevenk_oracle_config_a,oracleConfigB:t.sevenk_oracle_config_b}},[Q]:e=>(c(e.extendedDetails?.turbos_fee_type,`TURBOS_CLMM protocol requires 'coinFeeType' parameter for pool ${e.id}. Provide it via the parametersMap argument.`),{...r(e),protocol:ri.TURBOS_CLMM,coinFeeType:e.extendedDetails.turbos_fee_type}),[T]:e=>({...r(e),protocol:ri.AFTERMATH_LSD}),[O]:e=>({...r(e),protocol:ri.ALPHAFI_LSD}),[E]:e=>({...r(e),protocol:ri.BLUEFIN_CLMM}),[h]:e=>({...r(e),protocol:ri.BLUEMOVE_CPMM}),[y]:e=>({...r(e),protocol:ri.CETUS_CLMM}),[S]:e=>({...r(e),protocol:ri.CETUS_DLMM}),[B]:e=>({...r(e),protocol:ri.FERRA_CLMM}),[w]:e=>({...r(e),protocol:ri.FERRA_DLMM}),[R]:e=>({...r(e),protocol:ri.FLOWX_CPMM}),[x]:e=>({...r(e),protocol:ri.FULLSAIL_CLMM}),[L]:e=>({...r(e),protocol:ri.HAEDAL_LSD}),[N]:e=>({...r(e),protocol:ri.HAEDAL_LSD_WAL}),[U]:e=>({...r(e),protocol:ri.KRIYA_CPMM}),[j]:e=>({...r(e),protocol:ri.KRIYA_CLMM}),[G]:e=>({...r(e),protocol:ri.MAGMA_CLMM}),[q]:e=>({...r(e),protocol:ri.MOMENTUM_CLMM}),[z]:e=>({...r(e),protocol:ri.SPRINGSUI}),[J]:e=>({...r(e),protocol:ri.SPRINGSUI}),[Z]:e=>({...r(e),protocol:ri.VOLO})},e.toMetaAggregatorPath=a,e.toMetaAggregatorPaths=n,e.convert=function(e){return{coinInType:e.paths[0].from,coinOutType:e.paths[e.paths.length-1].target,amountOut:e.amountOut.toString(),tradePaths:n(e)}}}(tk||(tk={}));class r_{_config;_suiClient;_cetusClient;getCetusClientConfig({walletAddress:e,overlayFeeReceiver:t,overlayFeeRate:o}){return{client:this._suiClient,overlayFeeReceiver:t,overlayFeeRate:o,env:P.Mainnet,signer:e,...this._config.cetusApiKey&&this._config.cetusApiEndpoint?{apiKey:this._config.cetusApiKey,endpoint:this._config.cetusApiEndpoint}:{},partner:this._config.cetusPartnerId}}constructor(e,t){this._config=e,this._suiClient=t}cetusClient(e,t){return t&&!tL.equals(t,this._config.defaultTradeFee)?new M(this.getCetusClientConfig({walletAddress:e,overlayFeeReceiver:t.tradeFeeRecipientAddress,overlayFeeRate:t.tradeFeePercent})):(this._cetusClient||(this._cetusClient=new M(this.getCetusClientConfig({walletAddress:e,overlayFeeReceiver:this._config.defaultTradeFee.tradeFeeRecipientAddress,overlayFeeRate:this._config.defaultTradeFee.tradeFeePercent}))),this._cetusClient)}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r,metaAggregator:a,supportedProtocols:n}){try{let i=this.cetusClient(void 0,r),s=n??(a?tk.SUPPORTED_PROTOCOLS:void 0);return await i.findRouters({from:t,target:o,amount:new ee(e.toString()),byAmountIn:!0,providers:s})}catch(e){return rs("cetus",e),null}}async getTransaction({completeRoute:e,walletAddress:t,slippage:o,tradeFee:r}){let a=this.cetusClient(t,r),n=new i;return n.setSender(t),await a.fastRouterSwap({router:e,txb:n,slippage:o}),n.build({client:this._suiClient})}}(r_||(r_={})).toCommonTradeRoutes=function(e,t,o){if(0===e.paths.length)return null;let r=[],a=[],n=[];for(let t=0;t<e.paths.length;t++){let o=e.paths[t],r={poolAddress:o.id,amountIn:BigInt(o.amountIn),amountOut:BigInt(o.amountOut),coinIn:o.from,coinOut:o.target};if(n.push(r),t===e.paths.length-1)a.push([...n]);else{let r=e.paths[t+1];o.target!==r.from&&(a.push([...n]),n=[])}}for(let e of a)0!==e.length&&r.push({amountIn:e[0].amountIn,amountOut:e[e.length-1].amountOut,coinIn:e[0].coinIn,coinOut:e[e.length-1].coinOut,paths:e});return 0===r.length?null:{coinIn:t,coinOut:o,amountIn:BigInt(e.amountIn.toString(10)),amountOut:BigInt(e.amountOut.toString(10)),routes:r}};var rm=((eP={}).ASTROS="ASTROS",eP.AFTERMATH="AFTERMATH",eP.SEVENK="7K",eP.CETUS="CETUS",eP.FLOWX="FLOWX",eP);!function(e){let t=[en.HOP_FUN,en.FLOWX_PMM,en.DEEPBOOK,en.IPX_TIDE,en.METASTABLE];e.SUPPORTED_PROTOCOLS=Object.values(en).filter(e=>!t.includes(e));let o={[en.FLOWX_V2]:t=>({...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:ri.FLOWX_CPMM}),[en.FLOWX_V3]:t=>(c(void 0!==t.poolFee,`Pool fee is required for pool ${t.pool.id}`),c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.FLOWX_CLMM,poolFeeRate:t.poolFee.toString()}),[en.CETUS]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.CETUS_CLMM}),[en.CETUS_DLMM]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.CETUS_DLMM}),[en.AFTERMATH]:t=>(c(t.lpCoinType,`AFTERMATH protocol requires lpCoinType for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:ri.AFTERMATH_CPMM,coinLpType:t.lpCoinType}),[en.AFTERMATH_LSD]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:ri.AFTERMATH_LSD}),[en.ALPHA_FI]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:ri.ALPHAFI_LSD}),[en.BLUEFIN]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.BLUEFIN_CLMM}),[en.BLUEMOVE]:t=>({...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:ri.BLUEMOVE_CPMM}),[en.DEEPBOOK_V3]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.DEEPBOOK_V3}),[en.FERRA_CLMM]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.FERRA_CLMM}),[en.FERRA_DLMM]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.FERRA_DLMM}),[en.FULL_SAIL]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.FULLSAIL_CLMM}),[en.HAEDAL]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:ri.HAEDAL_LSD}),[en.HAEDAL_PMM]:t=>{let o=t.oracles;return c(o&&o.length>=2,`HAEDAL_CPMM protocol requires oracle price feeds for pool ${t.pool.id}.`),c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.HAEDAL_CPMM,pythPriceFeedIdA:o[0].priceId,pythPriceFeedIdB:o[1].priceId}},[en.KRIYA_DEX]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.KRIYA_CPMM}),[en.KRIYA_V3]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.KRIYA_CLMM}),[en.MAGMA_FINANCE]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.MAGMA_CLMM}),[en.MAGMA_ALMM]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.MAGMA_ALMM}),[en.MOMENTUM_FINANCE]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.MOMENTUM_CLMM}),[en.OBRIC]:t=>(c(t.xPriceId&&t.yPriceId,`OBRIC protocol requires price feeds for pool ${t.pool.id}`),c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.OBRIC,priceInfoObjIdA:t.xPriceId,priceInfoObjIdB:t.yPriceId}),[en.SPRING_SUI]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:ri.SPRINGSUI}),[en.STEAMM]:t=>{c(void 0!==t.bankXInfo&&void 0!==t.bankYInfo,`STEAMM protocol requires bank info for pool ${t.pool.id}`),c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),c(void 0!==t.quoterType,`quoterType is required for pool ${t.pool.id}`),c(void 0!==t.poolInfo,`poolInfo is required for pool ${t.pool.id}`),c(void 0!==t.protocolConfig&&void 0!==t.protocolConfig.oracleRegistryId,`protocolConfig is required for pool ${t.pool.id}`);let o=t.oracles,r=e.toMetaAggregatorBasePath(t),a=t.xForY;switch(t.quoterType){case"constant_product":return{...r,aToB:a,protocol:ri.STEAMM_CPMM,bankAId:a?t.bankXInfo.bankId:t.bankYInfo.bankId,bankBId:a?t.bankYInfo.bankId:t.bankXInfo.bankId,lendingMarketId:t.bankXInfo.lendingMarketId,lendingMarketType:t.bankXInfo.lendingMarketType,bCoinAType:a?t.bankXInfo.bTokenType:t.bankYInfo.bTokenType,bCoinBType:a?t.bankYInfo.bTokenType:t.bankXInfo.bTokenType,lpBCoinType:t.poolInfo.lpTokenType};case"oracle":case"oracle_v2":{c(void 0!==o&&o.length>=2,`STEAMM_OMM protocol requires oracle price feeds for pool ${t.pool.id}.`);let e=o[0],n=o[1];return c(void 0!==e.oracleId&&void 0!==n.oracleId&&void 0!==e.oracleIndex&&void 0!==n.oracleIndex,`STEAMM_OMM protocol requires oracle ids for pool ${t.pool.id}.`),{...r,aToB:a,protocol:ri.STEAMM_OMM,bankAId:t.bankXInfo.bankId,bankBId:t.bankYInfo.bankId,lendingMarketId:t.bankXInfo.lendingMarketId,lendingMarketType:t.bankXInfo.lendingMarketType,bCoinAType:t.bankXInfo.bTokenType,bCoinBType:t.bankYInfo.bTokenType,lpBCoinType:t.poolInfo.lpTokenType,pythPriceFeedIdA:e.priceId,pythPriceFeedIdB:n.priceId,oracleRegistryId:t.protocolConfig.oracleRegistryId,oracleIndexA:e.oracleIndex.toString(),oracleIndexB:n.oracleIndex.toString()}}default:throw Error(`Unsupported quoter type: ${t.quoterType} for pool ${t.pool.id}`)}},[en.SEVENK_V1]:t=>{let o=t.oracles;return c(o&&o.length>=2,`SEVENK_CPMM protocol requires oracle price feeds for pool ${t.pool.id}.`),c(t.poolStructTag,`SEVENK_V1 protocol requires poolStructTag for pool ${t.pool.id}`),c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.SEVENK_CPMM,coinLpType:t.poolStructTag,pythPriceFeedIdA:o[0].priceId,pythPriceFeedIdB:o[1].priceId,oracleConfigA:o[0].oracleId??"",oracleConfigB:o[1].oracleId??""}},[en.SUI_REWARDS]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.SRM_CPMM}),[en.TURBOS_FIANCE]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.TURBOS_CLMM,coinFeeType:t.poolStructTag?t.poolStructTag.split("<")[1].split(",")[2].trim().replace(">",""):""}),[en.VOLO_LSD]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:ri.VOLO}),[en.TRADEPORT]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),c(void 0!==t.poolFee,`Pool fee is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,poolFeeRate:t.poolFee.toString(),protocol:ri.TRADEPORT_CLMM}),[en.TURBOS_FUN]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.TURBOS_FUN}),[en.BLUEMOVE_FUN]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,expectedAmountOut:t.amountOut.toString(),protocol:ri.MOVEPUMP}),[en.SEVEN_K_FUN]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.SEVENK_FUN}),[en.DIPCOIN]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.DIP_CPMM}),[en.BOLT]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.BOLT})};function r(t){let o=[];for(let e of t)o.push(...e.paths);let r=new Map;for(let[e,t]of o.entries())r.set(t.input.coinType,e);let a=o.map(e.toMetaAggregatorPath);for(let e of r.values())a[e].amountIn=tD.MAX_AMOUNT_IN;return a}e.toMetaAggregatorBasePath=e=>({poolId:e.pool.id,coinInType:e.input.coinType,coinOutType:e.output.coinType,amountIn:e.amountIn.toString()}),e.toMetaAggregatorPath=e=>{let r=e.protocol();if(t.includes(r))throw Error(`Unsupported protocol: ${r}`);return(0,o[r])(e)},e.toMetaAggregatorPaths=r,e.convert=function(e){return{coinInType:e.coinIn.coinType,coinOutType:e.coinOut.coinType,amountOut:e.amountOut.toString(),tradePaths:r(e.routes)}}}(tN||(tN={}));class rf{_config;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}getCommission(e,t){let o,r;return t?(o=t.tradeFeePercent,r=t.tradeFeeRecipientAddress):(o=this._config.defaultTradeFee.tradeFeePercent,r=this._config.defaultTradeFee.tradeFeeRecipientAddress),new er(r,new eo(e),ea.PERCENTAGE,1e6*o,!0)}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r,metaAggregator:a,supportedProtocols:n}){let i=new et("mainnet",this._config.flowxApiKey),s=n??(a?tN.SUPPORTED_PROTOCOLS:void 0);try{return await i.getRoutes({tokenIn:t,tokenOut:o,amountIn:e.toString(),commission:this.getCommission(t,r),includeSources:s})}catch(e){return rs("flowx",e),null}}async getTransaction({walletAddress:e,completeRoute:t,slippage:o,tradeFee:r}){return new ei("mainnet",t.routes).sender(e).slippage(1e6*o).commission(this.getCommission(t.coinIn.coinType,r)).build().buildTransaction({client:this._suiClient}).then(t=>(t.setSender(e),t.build({client:this._suiClient})))}}async function rg(e,t){return(await rA(e,t)).fields}async function rA(e,t){let o=(await e.getObject({objectId:t,include:{json:!0,objectBcs:!0}})).object;c(o,"Pool object not found or has no content"),c(o.json,"Pool object not found or has no content"),c(o.objectBcs,"Pool object not found or has no content");let r=es.Object.parse(o.objectBcs);return c("Move"===r.data.$kind,"Pool object is not a Move object"),{dataType:"moveObject",fields:o.json,hasPublicTransfer:r.data.Move.hasPublicTransfer,type:o.type}}(rf||(rf={})).toCommonTradeRoutes=function(e){if(0===e.routes.length)return null;let t=[];for(let o of e.routes){let e=[];for(let t of o.paths)e.push({amountIn:BigInt(t.amountIn.toString()),amountOut:BigInt(t.amountOut.toString()),coinIn:t.input.coinType,coinOut:t.output.coinType,poolAddress:t.pool.id});0!==e.length&&t.push({amountIn:BigInt(o.amountIn.toString()),amountOut:BigInt(o.amountOut.toString()),coinIn:o.input.coinType,coinOut:o.output.coinType,paths:e})}return 0===t.length?null:{coinIn:e.coinIn.coinType,coinOut:e.coinOut.coinType,amountIn:BigInt(e.amountIn.toString()),amountOut:BigInt(e.amountOut.toString()),routes:t}},(eB=tU||(tU={})).PACKAGE_ID_V4="0x7e6aa6e179466ab2814425a780b122575296d011119fa69d27f289f5a28814bd",eB.MEMEZ_AV_OBJECT_ID="0x2319e3e76dfad73d8f4684bdbf42be4f32d8ce4521dd61becc8261dc918d82c0",((ew=tj||(tj={})).U64||(ew.U64={})).mulDivUp=function(e,t,o){let r=BigInt(0);return e*t%o>BigInt(0)&&(r=BigInt(1)),e*t/o+r};var rb=tG||(tG={});function rI(e){return c(BigInt(e)<=BigInt(1e4),"Bps overflow"),BigInt(e)}rb.calcUp=function(e,t){let o,r=BigInt(e.pos0),a=BigInt(1e4);return o=r*t%a!==BigInt(0)?BigInt(1):BigInt(0),r*t/a+o},rb.sub=function(e,t){return c(BigInt(e.pos0)>=BigInt(t.pos0),"Bps underflow"),{pos0:(BigInt(e.pos0)-BigInt(t.pos0)).toString()}},rb.value=function(e){return BigInt(e.pos0)},rb.new_=function(e){return{pos0:rI(e).toString()}},rb.assertOverflow=rI,((eR=tK||(tK={})).MemezFun||(eR.MemezFun={})).isSniperProtectedMemezFun=async function(e,t){return(await rg(e,t)).public_key.length>0},(eD=eR.MemezFees||(eR.MemezFees={})).takeWithDiscount=function(e,t,o){if("Value"===e.variant){let o=BigInt(e.fields.pos0);if(o===BigInt(0))return BigInt(0);if(t>=o)return o;throw Error(`Insufficient amount to cover fee. Required: ${o}, provided: ${t}`)}if("Percentage"===e.variant){let r=e.fields.pos0.fields;if(BigInt(r.pos0)===BigInt(0))return BigInt(0);let a=tG.calcUp(tG.sub(r,o),t);if(t>=a)return a;throw Error(`Insufficient amount to cover fee. Required: ${a}, provided: ${t}`)}throw Error("Unknown fee variant")},eD.calculateWithDiscount=function(e,t,o){if("Value"===e.variant)return BigInt(e.fields.pos0);if("Percentage"===e.variant){let r=e.fields.pos0.fields;return tG.calcUp(tG.sub(r,t),o)}throw Error("Unknown fee variant")},(eR.MemezBurner||(eR.MemezBurner={})).calculate=function(e,t){if(tG.value(e.fee.fields)===BigInt(0)||t===BigInt(0)||t>=BigInt(e.target_liquidity))return tG.new_(0);let o=BigInt(1e4);return tG.new_(tj.U64.mulDivUp(tG.value(e.fee.fields),tj.U64.mulDivUp(t,o,BigInt(e.target_liquidity)),o))},(ex=eR.MemezPump||(eR.MemezPump={})).getPumpState=async function(e,t){return await rg(e,t.inner_state)},ex.pump=function(e,t){let o=e.constant_product.fields,r=eR.MemezFees.takeWithDiscount(o.quote_swap_fee,t,o.quote_referrer_fee.fields),a=t-r,n=BigInt(o.meme_balance),i=BigInt(o.quote_balance),s=n*a/(BigInt(o.virtual_liquidity)+i+a),c=eR.MemezFees.takeWithDiscount(o.meme_swap_fee,s,o.meme_referrer_fee.fields);return s-c},ex.dump=function(e,t){let o=e.constant_product.fields,r=eR.MemezFees.takeWithDiscount(o.meme_swap_fee,t,o.meme_referrer_fee.fields),a=t-r,n=BigInt(o.meme_balance),i=BigInt(o.quote_balance),s=BigInt(o.virtual_liquidity),c=eR.MemezBurner.calculate(o.burner.fields,i),u=tG.calcUp(c,a),l=a-(tG.value(c)!==BigInt(0)?u:BigInt(0)),d=(s+i)*l/(n+l);d>i&&(d=i);let p=eR.MemezFees.takeWithDiscount(o.quote_swap_fee,d,o.quote_referrer_fee.fields);return d-p},(eL=tq||(tq={})).getCurveAmountAfterBuy=async function(e,t){let{suiAmount:o,poolId:r,frontendFee:a}=e,n=await rg(t,r),i=await tK.MemezPump.getPumpState(t,n);return o=em(o,a),tK.MemezPump.pump(i,o)},eL.getSuiAmountAfterSell=async function(e,t){let{curveAmount:o,poolId:r,frontendFee:a}=e,n=await rg(t,r),i=await tK.MemezPump.getPumpState(t,n);return em(tK.MemezPump.dump(i,o),a)};let rT="0x62412b7268c35f3808336aee57a52836501f40b8ba5d936f8ad275e672befd04";async function rC(e,t){let o,r,{inputAmount:a,accountAddress:n,frontendFee:s,frontendFeeRecipient:u,extendTx:l,isSponsored:d}=e;c(e.inCoinType===eE||e.inCoinType===eb,"Input must be SUI");let{tx:p,coinIn:_}=l||{},m=eM(a,s||"0"),f=p||new i;if(_)o=f.splitCoins(_,m),t$.transferOrDestroyZeroCoin(f,eE,_,n);else{let{coinData:e}=await ef({account:n,amount:a,splits:m,coinType:eE,inheritTx:f,isSponsored:d||!1},t);o=e}if(s&&u){let[e,t]=o;r=e,f.transferObjects([t],f.pure.address(u||n))}else[r]=o;return{tx:f,coinOut:r}}async function rO(e,t,o){if(c(t.outCoinType===eE||t.outCoinType===eb,"Output must be SUI"),0>=Number(t.frontendFee||0))return{tx:e,coinOut:o};let r=e.moveCall({target:"0x2::coin::value",typeArguments:[t.outCoinType],arguments:[o]}),a=e.moveCall({target:`${rT}::math::mul_div_u64`,typeArguments:[],arguments:[r,e.pure.u64(BigInt(1e4*Number(t.frontendFee||"0"))),e.pure.u64(BigInt(1e4))]}),n=e.moveCall({target:"0x2::coin::split",typeArguments:[t.outCoinType],arguments:[o,a]});return e.transferObjects([n],e.pure.address(t.frontendFeeRecipient||t.accountAddress)),{tx:e,coinOut:o}}(t$||(t$={})).transferOrDestroyZeroCoin=function(e,t,o,r){e.moveCall({target:`${rT}::utils::transfer_or_destroy`,typeArguments:[t],arguments:[o,e.pure.address(r)]})};var rM=tY||(tY={});async function rE(e){let t=e||new i;return t.moveCall({target:`${tU.PACKAGE_ID_V4}::memez_allowed_versions::get_allowed_versions`,arguments:[t.object(tU.MEMEZ_AV_OBJECT_ID)],typeArguments:[]})}function rh(e){switch(e){case"mainnet":return"https://fullnode.mainnet.sui.io:443";case"testnet":return"https://fullnode.testnet.sui.io:443";case"devnet":return"https://fullnode.devnet.sui.io:443";case"localnet":return"http://127.0.0.1:9000";default:throw Error(`Unknown network: ${e}`)}}function ry(e){return rh(e)}function rS(e){return"Transaction"===e.$kind?e.Transaction.digest:e.FailedTransaction.digest}rM.getAllowedVersions=rE,rM.buildBuyTx=async function(e,t){c(!await tK.MemezFun.isSniperProtectedMemezFun(t,e.poolId),"This coin is a sniper protected coin, please use the Blast Fun website to trade it.");let{tx:o,coinOut:r}=await rC(e,t);c(r,"Coin out is required");let a=o.moveCall({target:`${tU.PACKAGE_ID_V4}::memez_pump::pump`,typeArguments:[e.outCoinType,eE],arguments:[o.object(e.poolId),r,o.pure.vector("address",[]),o.pure.vector("vector<u8>",[]),o.pure.u64(e.minAmountOut),await rE(o)]});return{tx:o,coinOut:a}},rM.buildSellTx=async function(e,t){c(e.outCoinType===eE||e.outCoinType===eb,"Output must be SUI");let o=await rg(t,e.poolId),{tx:r,coinData:a}=await ef({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[n]=a,[i]=r.moveCall({target:`${tU.PACKAGE_ID_V4}::memez_pump::dump`,typeArguments:[e.inCoinType,e.outCoinType],arguments:[r.object(e.poolId),r.object(o.ipx_meme_coin_treasury),n,r.pure.vector("address",[]),r.pure.u64(e.minAmountOut),await rE(r)]});return await rO(r,e,i)};let rF={network:ec.MAINNET,fullNodeUrl:rh("mainnet")};async function rP(){if(!e){let{MemezPumpSDK:t}=await import("@interest-protocol/memez-fun-sdk");e=new t(rF)}return e}(ev=tV||(tV={})).getCurveAmountAfterBuy=async function(e){let{suiAmount:t,poolId:o,frontendFee:r}=e;t=em(t,r);let{memeAmountOut:a}=await (await rP()).quotePump({pool:o,amount:t});return a},ev.getSuiAmountAfterSell=async function(e){let{curveAmount:t,poolId:o,frontendFee:r}=e,{quoteAmountOut:a}=await (await rP()).quoteDump({pool:o,amount:t});return em(a,r)};var rB=tJ||(tJ={});async function rw(e,t){let{tx:o,coinOut:r}=await rC(e,t);c(r,"Coin out is required");let{memeCoin:a,tx:n}=await (await rP()).pump({pool:e.poolId,quoteCoin:r,minAmountOut:e.minAmountOut,tx:o});return{tx:n,coinOut:a}}async function rR(e,t){c(eI(e.outCoinType),"Output must be SUI");let{tx:o,coinData:r}=await ef({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[a]=r,{quoteCoin:n,tx:i}=await (await rP()).dump({pool:e.poolId,memeCoin:a,tx:o,minAmountOut:e.minAmountOut});return await rO(i,e,n)}rB.buildBuyTx=rw,rB.buildSellTx=rR,rB.getBuyTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:a,walletAddress:n,tradeFee:i},u){c(eI(t),"coinInType must be SUI for buy transaction"),c(o!==t,"coinOutType must be different from coinInType"),c(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),c(e>0,"coinInAmount must be greater than 0");let l=BigInt(new s((await tV.getCurveAmountAfterBuy({poolId:r,suiAmount:e,frontendFee:i?i.tradeFeePercent:void 0})).toString()).multipliedBy(1-a).toFixed(0,3)),{tx:d,coinOut:p}=await rw({accountAddress:n,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:l.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},u);c(p,"Coin out is required"),d.transferObjects([p],d.pure.address(n)),d.setSender(n);let _=await eT(u,d,n,0);return(d=await eC({inheritTx:d,sender:n,feeAmount:_,suiInputAmount:e},u)).build({client:u})},rB.getSellTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:a,walletAddress:n,tradeFee:i},u){c(eI(o),"coinOutType must be SUI for sell transaction"),c(o!==t,"coinOutType must be different from coinInType"),c(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),c(e>0,"coinInAmount must be greater than 0");let l=BigInt(new s((await tV.getSuiAmountAfterSell({poolId:r,curveAmount:e,frontendFee:i?i.tradeFeePercent:void 0})).toString()).multipliedBy(1-a).toFixed(0,3)),{tx:d,coinOut:p}=await rR({accountAddress:n,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:l.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},u);c(p,"Coin out is required"),d.transferObjects([p],d.pure.address(n)),d.setSender(n);let _=await eT(u,d,n,0);return(d=await eC({inheritTx:d,sender:n,feeAmount:_},u)).build({client:u})};var rD=((ek={}).BLAST_FUN="BLAST_FUN",ek.MOONBAGS="MOONBAGS",ek);(eN=tH||(tH={})).PACKAGE_ID="0xb8df325010942634a4afb3db3901ee215546af43a4ec4af781e7213b0bba7290",eN.CONFIG_OBJECT_ID="0x74aecf86067c6913960ba4925333aefd2b1f929cafca7e21fd55a8f244b70499",eN.LOCK_CONFIG_OBJECT_ID="0xfb09822d9808980abd04c51321adb850701f5f55535c6206658ef4d910c3e9be",eN.BURN_MANAGER_OBJECT_ID="0x1d94aa32518d0cb00f9de6ed60d450c9a2090761f326752ffad06b2e9404f845",eN.POOLS_OBJECT_ID="0xf699e7f2276f5c9a75944b37a0c5b5d9ddfd2471bf6242483b03ab2887d198d0",eN.GLOBAL_CONFIG_OBJECT_ID="0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f",eN.FEE_DENOMINATOR=BigInt(1e4),(ej=(eU=tX||(tX={})).Curves||(eU.Curves={})).calculateAddLiquidityCost=function(e,t,o){return e*t/(t-o)-e},ej.calculateRemoveLiquidityReturn=function(e,t,o){return t-e*t/(e+o)},ej.calculateTokenAmountReceived=function(e,t,o){return t-e*t/(e+o)},(eG=eU.Moonbags||(eU.Moonbags={})).getDynamicVirtualTokenReserves=async function(e,t){try{let o=await e.getDynamicField({parentId:t,name:{type:"vector<u8>",bcs:es.byteVector().serialize(new TextEncoder().encode("virtual_token_reserves")).toBytes()}});if(!o.dynamicField?.value)return;return BigInt(es.u64().parse(o.dynamicField.value.bcs))}catch(e){if("object"==typeof e&&null!==e&&"code"in e&&"dynamicFieldNotFound"===e.code)return;throw e}},eG.buyExactInReturnsWithLock=function(e){let{inputAmount:t,amountIn:o,pool:r,config:a,dynamicVirtualTokenReserves:n}=e,i=BigInt(r.virtual_sui_reserves),s=BigInt(r.virtual_token_reserves),u=BigInt(r.remain_token_reserves.fields.balance),l=eU.Curves.calculateRemoveLiquidityReturn(i,s,o),d=s-(n||u),p=l,_=o;l>d&&(p=d,_=eU.Curves.calculateAddLiquidityCost(i,s,d)+BigInt(1));let m=_*BigInt(a.platform_fee)/tH.FEE_DENOMINATOR;return c(t>=_+m,"Input amount is less than used SUI + fee"),{receivedCurve:p,receivedSui:t-_-m}},eG.sellReturns=function(e){let{amountIn:t,pool:o,config:r}=e,a=BigInt(o.virtual_sui_reserves),n=BigInt(o.virtual_token_reserves),i=BigInt(o.real_sui_reserves.fields.balance),s=eU.Curves.calculateRemoveLiquidityReturn(n,a,t);s>i&&(s=i);let c=s*BigInt(r.platform_fee)/tH.FEE_DENOMINATOR,u=s-c;return{receivedCurve:BigInt(0),receivedSui:u}},(eK=tW||(tW={})).getCurveAmountAfterBuy=async function(e,t){let{suiAmount:o,poolId:r,frontendFee:a}=e,[n,i,s]=await Promise.all([rg(t,r),rg(t,tH.CONFIG_OBJECT_ID),tX.Moonbags.getDynamicVirtualTokenReserves(t,r)]);void 0!==a&&(o=em(o,a));let c=o*tH.FEE_DENOMINATOR/(tH.FEE_DENOMINATOR+BigInt(i.platform_fee)),{receivedCurve:u}=tX.Moonbags.buyExactInReturnsWithLock({inputAmount:o,amountIn:c,pool:n,config:i,dynamicVirtualTokenReserves:s});return u},eK.getSuiAmountAfterSell=async function(e,t){let{curveAmount:o,poolId:r,frontendFee:a}=e,[n,i]=await Promise.all([rg(t,r),rg(t,tH.CONFIG_OBJECT_ID)]),{receivedSui:s}=tX.Moonbags.sellReturns({amountIn:o,pool:n,config:i});return void 0!==a?em(s,a):s},eK.getUsedSuiForTx=async function(e,t){let{suiAmount:o,frontendFee:r}=e,a=await rg(t,tH.CONFIG_OBJECT_ID);return void 0!==r&&(o=em(o,r)),o*tH.FEE_DENOMINATOR/(tH.FEE_DENOMINATOR+BigInt(a.platform_fee))};var rx=tz||(tz={});async function rL(e,t){let{tx:o,coinOut:r}=await rC(e,t);c(r,"Coin out is required");let a=await tW.getUsedSuiForTx({suiAmount:BigInt(e.inputAmount),frontendFee:e.frontendFee},t),[n,i]=o.moveCall({target:`${tH.PACKAGE_ID}::moonbags::buy_exact_in_returns_with_lock`,typeArguments:[e.outCoinType],arguments:[o.object(tH.CONFIG_OBJECT_ID),o.object(tH.LOCK_CONFIG_OBJECT_ID),r,o.pure.u64(a),o.pure.u64(e.minAmountOut),o.object(tH.BURN_MANAGER_OBJECT_ID),o.object(tH.POOLS_OBJECT_ID),o.object(tH.GLOBAL_CONFIG_OBJECT_ID),o.object(eA),o.object(eg)]});return t$.transferOrDestroyZeroCoin(o,eE,n,e.accountAddress),{tx:o,coinOut:i}}async function rv(e,t){c(eI(e.outCoinType),"Output must be SUI");let{tx:o,coinData:r}=await ef({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[a]=r,[n,i]=o.moveCall({target:`${tH.PACKAGE_ID}::moonbags::sell_returns`,typeArguments:[e.inCoinType],arguments:[o.object(tH.CONFIG_OBJECT_ID),a,o.pure.u64(e.minAmountOut),o.object(eg)]});return t$.transferOrDestroyZeroCoin(o,e.inCoinType,i,e.accountAddress),await rO(o,e,n)}rx.buildBuyTx=rL,rx.buildSellTx=rv,rx.getBuyTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:a,walletAddress:n,tradeFee:i},u){c(eI(t),"coinInType must be SUI for buy transaction"),c(o!==t,"coinOutType must be different from coinInType"),c(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),c(e>0,"coinInAmount must be greater than 0");let l=BigInt(new s((await tW.getCurveAmountAfterBuy({poolId:r,suiAmount:e,frontendFee:i?i.tradeFeePercent:void 0},u)).toString()).multipliedBy(1-a).toFixed(0,3)),{tx:d,coinOut:p}=await rL({accountAddress:n,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:l.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},u);c(p,"Coin out is required"),d.transferObjects([p],d.pure.address(n)),d.setSender(n);let _=await eT(u,d,n,0);return(d=await eC({inheritTx:d,sender:n,feeAmount:_,suiInputAmount:e},u)).build({client:u})},rx.getSellTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:a,walletAddress:n,tradeFee:i},u){c(eI(o),"coinOutType must be SUI for sell transaction"),c(o!==t,"coinOutType must be different from coinInType"),c(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),c(e>0,"coinInAmount must be greater than 0");let l=BigInt(new s((await tW.getSuiAmountAfterSell({poolId:r,curveAmount:e,frontendFee:i?i.tradeFeePercent:void 0},u)).toString()).multipliedBy(1-a).toFixed(0,3)),{tx:d,coinOut:p}=await rv({accountAddress:n,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:l.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},u);c(p,"Coin out is required"),d.transferObjects([p],d.pure.address(n)),d.setSender(n);let _=await eT(u,d,n,0);return(d=await eC({inheritTx:d,sender:n,feeAmount:_},u)).build({client:u})},(eq=tQ||(tQ={})).LAST_PACKAGE_ID="0x8c36ea167c5e6da8c3d60b4fc897416105dcb986471bd81cfbfd38720a4487c0",eq.newHolder=function(e){return e.moveCall({target:`${eq.LAST_PACKAGE_ID}::oracle::new_holder`,typeArguments:[],arguments:[]})},eq.getPrice=function(e){let{txb:t,coinOracleId:o,holder:r,coinPriceId:a}=e;t.moveCall({target:`${eq.LAST_PACKAGE_ID}::pyth::get_price`,typeArguments:[],arguments:[t.object(o),r,t.object(a),t.object(u)]})},(e$=tZ||(tZ={})).PYTH_URLS=["https://hermes.pyth.network"],e$.WORMHOLE_STATE_ID="0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",e$.PYTH_STATE_ID="0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",e$.newPythConnections=function(e){return e||(e=e$.PYTH_URLS),e.map(e=>new ep(e,{timeout:3e3}))},e$.newPythClient=function(e){return e||(e=new el({network:"mainnet",url:ed("mainnet")})),new e_(e,e$.PYTH_STATE_ID,e$.WORMHOLE_STATE_ID)},e$.updatePythPriceIDs=async function(e){let{priceFeedIds:t,txb:o,pythConnections:r,pythClient:a}=e;if(0===t.length)return new Map;let n=null,i=null;for(let e of r)try{n=await e.getPriceFeedsUpdateData(t);break}catch(e){i=e,console.log("Error: ",e)}if(null==n)throw Error(`All Pyth price nodes are unavailable. Cannot fetch price data. Please switch to or add new available Pyth nodes. Detailed error: ${i?.message}`);let s=[];try{s=await a.updatePriceFeeds(o,n,t)}catch(e){throw Error(`All Pyth price nodes are unavailable. Cannot fetch price data. Please switch to or add new available Pyth nodes in the pythUrls parameter when initializing AggregatorClient, for example: new AggregatorClient({ pythUrls: ["https://your-pyth-node-url"] }). Detailed error: ${e}`)}let c=new Map;for(let e=0;e<t.length;e++)c.set(t[e],s[e]);return c};var rk=((eY={})[eY.UNKNOWN=1e3]="UNKNOWN",eY[eY.TIMEOUT=1001]="TIMEOUT",eY[eY.PROVIDER_NOT_FOUND=1002]="PROVIDER_NOT_FOUND",eY[eY.PROVIDER_NOT_SUPPORTED=1003]="PROVIDER_NOT_SUPPORTED",eY[eY.INVALID_QUOTE=1004]="INVALID_QUOTE",eY[eY.QUOTE_NOT_FOUND=1005]="QUOTE_NOT_FOUND",eY[eY.INVALID_SIGNER_ADDRESS=1006]="INVALID_SIGNER_ADDRESS",eY[eY.PROVIDER_NOT_SUPPORT_SWAP=1007]="PROVIDER_NOT_SUPPORT_SWAP",eY[eY.SIMULATION_FAILED=1008]="SIMULATION_FAILED",eY);class rN extends Error{code;details;constructor(e,t,o){super(e),this.name="MetaAgError",this.code=t??1e3,this.details=o}static assert(e,t,o,r){if(!e)throw new rN(t??"Assertion failed",o,r)}}class rU{options;kind="SEVENK";constructor(e,t){this.options=e,e.apiKey&&r.setApiKey(e.apiKey),r.setSuiClient(t)}async quote(e){let t=[];if(this.options.sources)for(let e of this.options.sources)tx.SUPPORTED_PROTOCOLS.includes(e)&&t.push(e);else t.push(...tx.SUPPORTED_PROTOCOLS);let o=await n({tokenIn:e.coinTypeIn,tokenOut:e.coinTypeOut,amountIn:e.amountIn,sources:t,excludedPools:this.options.excludedPools,targetPools:this.options.targetPools});return rN.assert(!!o,"No quote found",rk.QUOTE_NOT_FOUND,{provider:this.kind}),{sourceRoute:"SEVENK",rawRoute:o,amountIn:o.swapAmountWithDecimal,amountOut:o.returnAmountWithDecimal,coinTypeIn:e.coinTypeIn,coinTypeOut:e.coinTypeOut}}}let rj=tZ.PYTH_URLS;class rG{options;kind="CETUS";cetusClient;constructor(e,t,o){this.options=e,this.cetusClient=new M({apiKey:e.apiKey,client:o,endpoint:e.api,env:P.Mainnet,pythUrls:t.hermesApi?t.hermesApi:rj})}async quote(e){let t=[];if(this.options.sources)for(let e of this.options.sources)tk.SUPPORTED_PROTOCOLS.includes(e)&&t.push(e);else t.push(...tk.SUPPORTED_PROTOCOLS);let o=await this.cetusClient.findRouters({amount:e.amountIn,byAmountIn:!0,from:e.coinTypeIn,target:e.coinTypeOut,providers:t,splitCount:this.options.splitCount,splitAlgorithm:this.options.splitAlgorithm,splitFactor:this.options.splitFactor,depth:this.options.depth,liquidityChanges:this.options.liquidityChanges});return rN.assert(!!o,"No quote found",rk.QUOTE_NOT_FOUND,{provider:this.kind}),{sourceRoute:"CETUS",rawRoute:o,amountIn:o.amountIn.toString()||"0",amountOut:o.amountOut.toString()||"0",coinTypeIn:e.coinTypeIn,coinTypeOut:e.coinTypeOut}}}class rK{options;kind="FLOWX";quoter;constructor(e){this.options=e,this.quoter=new et("mainnet",e.apiKey)}async quote(e){let t=[];if(this.options.sources)for(let e of this.options.sources)tN.SUPPORTED_PROTOCOLS.includes(e)&&t.push(e);else t.push(...tN.SUPPORTED_PROTOCOLS);let o=await this.quoter.getRoutes({amountIn:e.amountIn,tokenIn:e.coinTypeIn,tokenOut:e.coinTypeOut,includeSources:t,excludePools:this.options.excludePools,excludeSources:this.options.excludeSources,maxHops:this.options.maxHops,splitDistributionPercent:this.options.splitDistributionPercent});return{sourceRoute:"FLOWX",rawRoute:o,amountIn:o.amountIn?.toString()??"0",amountOut:o.amountOut?.toString()??"0",coinTypeIn:e.coinTypeIn,coinTypeOut:e.coinTypeOut}}}(eV=t0||(t0={})).POOL_REGISTRY_OBJ_ID="0xfcc774493db2c45c79f688f88d28023a3e7d98e4ee9f48bbf5c7990f651577ae",eV.PROTOCOL_FEE_VAULT_OBJ_ID="0xf194d9b1bcad972e45a7dd67dd49b3ee1e3357a00a50850c52cd51bb450e13b4",eV.TREASURY_OBJ_ID="0x28e499dff5e864a2eafe476269a4f5035f1c16f338da7be18b103499abf271ce",eV.INSURANCE_FUND_OBJ_ID="0xf0c40d67b078000e18032334c3325c47b9ec9f3d9ae4128be820d54663d14e3b",eV.REFERRAL_VAULT_OBJ_ID="0x35d35b0e5b177593d8c3a801462485572fc30861e6ce96a55af6dc4730709278",(eJ=t1||(t1={})).LAST_PACKAGE_ID="0xf369250dc5a17e9d5a84a3b0cf5aea715c0682170e726dd601f03ade7ce4decb",eJ.swap=function(e){c(e.protocol===ri.AFTERMATH_CPMM);let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:s,coinLpType:u,packageId:l}=e;t.moveCall({target:`${l??eJ.LAST_PACKAGE_ID}::aftermath_cpmm_router::swap`,typeArguments:[i,s,u],arguments:[o,t.object(r),t.object(t0.POOL_REGISTRY_OBJ_ID),t.object(t0.PROTOCOL_FEE_VAULT_OBJ_ID),t.object(t0.TREASURY_OBJ_ID),t.object(t0.INSURANCE_FUND_OBJ_ID),t.object(t0.REFERRAL_VAULT_OBJ_ID),t.pure.bool(a),t.pure.u64(n)]})},(eH=t4||(t4={})).STAKED_SUI_VAULT_OBJ_ID="0x2f8f6d5da7f13ea37daa397724280483ed062769813b6f31e9788e59cc88994d",eH.SAFE_TREASURY_OBJECT_ID="0xeb685899830dd5837b47007809c76d91a098d52aabbf61e8ac467c59e5cc4610",eH.REFERRAL_VAULT_OBJ_ID="0x4ce9a19b594599536c53edb25d22532f82f18038dc8ef618afd00fbbfb9845ef",eH.VALIDATOR_ADDRESS="0xd30018ec3f5ff1a3c75656abf927a87d7f0529e6dc89c7ddd1bd27ecb05e3db2",(eX=t6||(t6={})).LAST_PACKAGE_ID="0x148c4e7ff5b308b2d520e050e6a21d986dd3eb203e0aa3eaaba28000977aebf1",eX.swap=function(e){let{txb:t,swapContext:o,aToB:r,amountIn:a,packageId:n}=e;if(!r)throw Error("AFSUI not support bToA swap");t.moveCall({target:`${n??eX.LAST_PACKAGE_ID}::aftermath_lsd_router::swap`,arguments:[o,t.object(t4.STAKED_SUI_VAULT_OBJ_ID),t.object(t4.SAFE_TREASURY_OBJECT_ID),t.object(l),t.object(t4.REFERRAL_VAULT_OBJ_ID),t.pure.address(t4.VALIDATOR_ADDRESS),t.pure.bool(r),t.pure.u64(a)]})},(eW=t3||(t3={})).LAST_PACKAGE_ID="0x108d5d07cf873dec0bc8034db862db55d38e495c1f3ee0e124cf4861af834f25",eW.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinBType:i,packageId:s}=e;t.moveCall({target:`${s??eW.LAST_PACKAGE_ID}::alphafi_lsd_router::swap`,typeArguments:[i],arguments:[o,t.object(r),t.object(l),t.pure.bool(n),t.pure.u64(a)]})},(ez=t2||(t2={})).MEMEZ_AV_OBJ_ID="0x2319e3e76dfad73d8f4684bdbf42be4f32d8ce4521dd61becc8261dc918d82c0",ez.MEMEZ_FUN_OBJ_ID="0x943948644f06942b8b660ca541b10a05f6a7be23ce4069944a3665e7e698930d",ez.IPX_TREASURY_STANDARD_OBJ_ID="0x051e11b667659192917db94e5175fa066909d4dfc04d2663528f499c4afc6999",(eQ=t5||(t5={})).LAST_PACKAGE_ID="0x8b1e84ed9bc79d31160600254d65810f6bc6d2352f174a60ed041017d0a2a87a",eQ.swap=function(e){c(e.protocol===ri.BLASTFUN,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,packageId:s}=e;t.moveCall({target:`${s??eQ.LAST_PACKAGE_ID}::blastfun_router::swap`,typeArguments:[r,a],arguments:[o,t.object(t2.MEMEZ_FUN_OBJ_ID),t.object(t2.IPX_TREASURY_STANDARD_OBJ_ID),t.object(t2.MEMEZ_AV_OBJ_ID),t.pure.bool(n),t.pure.u64(i)]})},(t8||(t8={})).GLOBAL_CONFIG_OBJ_ID="0x03db251ba509a8d5d8777b6338836082335d93eecbdd09a11e190a1cff51c352",(eZ=t9||(t9={})).LAST_PACKAGE_ID="0x9f8397124b6bdb55aeb7b5e43761e0e4dc94b9e22e94b1b25d8211d99df422d5",eZ.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinAType:i,coinBType:s,packageId:c}=e;t.moveCall({target:`${c??eZ.LAST_PACKAGE_ID}::bluefin_clmm_router::swap`,typeArguments:[i,s],arguments:[o,t.object(t8.GLOBAL_CONFIG_OBJ_ID),t.object(r),t.pure.bool(n),t.pure.u64(a),t.object(u)]})},(t7||(t7={})).DEX_INFO_OBJ_ID="0x3f2d9f724f4a1ce5e71676448dc452be9a6243dac9c5b975a588c8c867066e92",(e0=oe||(oe={})).LAST_PACKAGE_ID="0xf52bdd65ee347e8994170f8c331cf0c23a55281b3282467f14ccbb3e2a7f928f",e0.swap=function(e){let{txb:t,swapContext:o,aToB:r,amountIn:a,coinAType:n,coinBType:i,packageId:s}=e;t.moveCall({target:`${s??e0.LAST_PACKAGE_ID}::bluemove_cpmm_router::swap`,typeArguments:[n,i],arguments:[o,t.object(t7.DEX_INFO_OBJ_ID),t.pure.bool(r),t.pure.u64(a)]})},(ot||(ot={})).ORACLE_OBJ_ID="0xfa3975b98f3d0e3df18ed88ae6e69db31836b3f4212df02fae144b1e5a89ca8e",(e1=oo||(oo={})).LAST_PACKAGE_ID="0x2dd7b04509f332bdb93a8f228ab5c40b34baee4645b2ebe5e5fa2c3502b2c088",e1.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??e1.LAST_PACKAGE_ID}::bolt_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(ot.ORACLE_OBJ_ID),t.object(u),t.pure.u64(s),t.pure.bool(i)]})},(or||(or={})).GLOBAL_CONFIG="0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f",(e4=oa||(oa={})).LAST_PACKAGE_ID="0xb3dbb229464cb14b9f8cfa087e5b162623c8f485395dc9b975e263a5ee7051e4",e4.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??e4.LAST_PACKAGE_ID}::cetus_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(or.GLOBAL_CONFIG),t.object(n),t.pure.bool(i),t.pure.u64(s),t.object(u)]})},(e6=on||(on={})).GLOBAL_CONFIG_OBJ_ID="0xf31b605d117f959b9730e8c07b08b856cb05143c5e81d5751c90d2979e82f599",e6.VERSIONED_OBJ_ID="0x05370b2d656612dd5759cbe80463de301e3b94a921dfc72dd9daa2ecdeb2d0a8",(e3=oi||(oi={})).LAST_PACKAGE_ID="0x9ab3ba62b4327a7d90e4aed1c025b62736f035911ad7bab830c065ec84ef1ffa",e3.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinAType:i,coinBType:s,packageId:c}=e,l=[o,t.object(on.GLOBAL_CONFIG_OBJ_ID),t.object(on.VERSIONED_OBJ_ID),t.object(r),t.pure.bool(n),t.pure.u64(a),t.object(u)];t.moveCall({target:`${c??e3.LAST_PACKAGE_ID}::cetus_dlmm_router::swap`,typeArguments:[i,s],arguments:l})},(e2=os||(os={})).GLOBAL_CONFIG="0x699d455ab8c5e02075b4345ea1f91be55bf46064ae6026cc2528e701ce3ac135",e2.DEEP_TYPE="0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP",(e5=oc||(oc={})).LAST_PACKAGE_ID="0xff274b63c0f6e3a01f3dd0e923aefcb3146e05e2f6bef4ae339e2703b085f8ed",e5.swap=function(e){c(e.protocol===ri.DEEPBOOK_V3,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:s,deepFeeCoin:l,packageId:d}=e,p=l||t.moveCall({target:"0x2::coin::zero",typeArguments:[os.DEEP_TYPE]});t.moveCall({target:`${d??e5.LAST_PACKAGE_ID}::deepbook_v3_router::swap`,typeArguments:[r,a],arguments:[o,t.object(os.GLOBAL_CONFIG),t.object(n),t.pure.u64(s),t.pure.bool(i),p,t.object(u)]})},(ou||(ou={})).GLOBAL_OBJ_ID="0x935229a3c32399e9fb207ec8461a54f56c6af5744c64442435ac217ab28f0d59",(e8=ol||(ol={})).LAST_PACKAGE_ID="0xfd86c0308327eae31c04560460ee6190220e4ae1cdf5b999eef1110bf0b0f2b8",e8.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??e8.LAST_PACKAGE_ID}::dip_cpmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(ou.GLOBAL_OBJ_ID),t.object(r),t.pure.bool(i),t.pure.u64(s)]})},(od||(od={})).FERRA_GLOBAL_CONFIG_ID="0x2cd8382c19e6994f16df204e9b8cddd04bdc486c251de75ac66ac4e48e3e7081",(e9=op||(op={})).LAST_PACKAGE_ID="0x70c4318f67d88ebe4e83bacad15f9e2f5c8becd77695f63dc4bd9393730851cd",e9.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:s,packageId:c}=e;t.moveCall({target:`${c??e9.LAST_PACKAGE_ID}::ferra_clmm_router::swap`,typeArguments:[i,s],arguments:[o,t.object(od.FERRA_GLOBAL_CONFIG_ID),t.object(r),t.pure.bool(a),t.pure.u64(n),t.object("0x6")]})},(o_||(o_={})).FERRA_GLOBAL_CONFIG_ID="0x5c9dacf5a678ea15b8569d65960330307e23d429289ca380e665b1aa175ebeca",(e7=om||(om={})).LAST_PACKAGE_ID="0x686e9eb19b04d46374c3fb82cb4ebb7b24ef8a9ae13f403915f4ae347e0f6593",e7.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:s,packageId:c}=e;t.moveCall({target:`${c??e7.LAST_PACKAGE_ID}::ferra_dlmm_router::swap`,typeArguments:[i,s],arguments:[o,t.object(o_.FERRA_GLOBAL_CONFIG_ID),t.object(r),t.pure.bool(a),t.pure.u64(n),t.object(u)]})},(te=of||(of={})).POOL_REGISTRY_OBJ_ID="0x27565d24a4cd51127ac90e4074a841bbe356cca7bf5759ddc14a975be1632abc",te.VERSIONED_OBJ_ID="0x67624a1533b5aff5d0dfcf5e598684350efd38134d2d245f475524c03a64e656",(tt=og||(og={})).LAST_PACKAGE_ID="0x350a752d3388165e578cc33a39655a6da83613cf4e58c8d9d0723711c2603e17",tt.swap=function(e){c(e.protocol===ri.FLOWX_CLMM);let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolFeeRate:n,amountIn:i,aToB:s,packageId:l}=e;t.moveCall({target:`${l??tt.LAST_PACKAGE_ID}::flowx_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(of.POOL_REGISTRY_OBJ_ID),t.object(of.VERSIONED_OBJ_ID),t.pure.u64(n),t.pure.u64(i),t.pure.bool(s),t.object(u)]})},(oA||(oA={})).CONTAINER_OBJ_ID="0xb65dcbf63fd3ad5d0ebfbf334780dc9f785eff38a4459e37ab08fa79576ee511",(to=ob||(ob={})).LAST_PACKAGE_ID="0xd95b440ad340bb6cbf571897d312e43d4b6de37b60c69ef714c94b9835cb8866",to.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,packageId:s}=e;t.moveCall({target:`${s??to.LAST_PACKAGE_ID}::flowx_cpmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(oA.CONTAINER_OBJ_ID),t.pure.bool(n),t.pure.u64(i)]})},(tr=oI||(oI={})).GLOBAL_CONFIG_OBJ_ID="0xe93baa80cb570b3a494cbf0621b2ba96bc993926d34dc92508c9446f9a05d615",tr.REWARDER_VAULT_OBJ_ID="0xfb971d3a2fb98bde74e1c30ba15a3d8bef60a02789e59ae0b91660aeed3e64e1",tr.STATS_OBJ_ID="0x6822a33d1d971e040c32f7cc74507010d1fe786f7d06ab89135083ddb07d2dc2",tr.PRICE_PROVIDER_OBJ_ID="0x854b2d2c0381bb656ec962f8b443eb082654384cf97885359d1956c7d76e33c9",(ta=oT||(oT={})).LAST_PACKAGE_ID="0xf0bf13b5baaf3d368f165e846b919294bed79a3ab3ab0c9bd1e75f23533e44a5",ta.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??ta.LAST_PACKAGE_ID}::fullsail_clmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(oI.GLOBAL_CONFIG_OBJ_ID),t.object(oI.REWARDER_VAULT_OBJ_ID),t.object(oI.STATS_OBJ_ID),t.object(oI.PRICE_PROVIDER_OBJ_ID),t.object(r),t.pure.bool(i),t.pure.u64(s),t.object(u)]})},(tn=oC||(oC={})).LAST_PACKAGE_ID="0x8969ed3e56c1dbdaf9df52f812d69c6c45fe5a4bab7093c88f5a8697a409398e",tn.swap=function(e){c(e.protocol===ri.HAEDAL_CPMM);let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,pythPriceFeedIdA:l,pythPriceFeedIdB:d,pythInfoObjectIdMap:p,packageId:_}=e,m=p.get(l),f=p.get(d);c(m,"Not found priceInfoAId in pythObjectIdMap"),c(f,"Not found priceInfoBId in pythObjectIdMap"),t.moveCall({target:`${_??tn.LAST_PACKAGE_ID}::haedal_cpmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(m),t.object(f),t.pure.u64(s),t.pure.bool(i),t.object(u)]})},(ti=oO||(oO={})).LAST_PACKAGE_ID="0x5d01f22e5471a5912a88e15d62fdcb922beba65b8e8dfe1a715aebf743194f4a",ti.swap=function(e){c(e.protocol===ri.HAEDAL_CPMM_V2);let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,pythPriceFeedIdBase:l,pythInfoObjectIdMap:d,packageId:p}=e,_=d.get(l);c(_,"Not found pythPriceBaseId in pythObjectIdMap"),t.moveCall({target:`${p??ti.LAST_PACKAGE_ID}::haedal_cpmm_v2_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(_),t.pure.u64(s),t.pure.bool(i),t.object(u)]})},(ts=oM||(oM={})).LAST_PACKAGE_ID="0x1644956086caa5eb791eba152f3b69ba862b3a5382ef0e1d8a474ab158aafa1a",ts.swap=function(e){let{txb:t,swapContext:o,aToB:r,amountIn:a,poolId:n,packageId:i}=e;t.moveCall({target:`${i??ts.LAST_PACKAGE_ID}::haedal_lsd_router::swap`,arguments:[o,t.object(n),t.object(l),t.pure.bool(r),t.pure.u64(a)]})},(oE||(oE={})).STAKING_OBJ_ID="0x10b9d30c28448939ce6c4d6c6e0ffce4a7f8a4ada8248bdad09ef8b70e4a3904",(oh||(oh={})).VALIDATOR_ID="0x7b3ba6de2ae58283f60d5b8dc04bb9e90e4796b3b2e0dea75569f491275242e7",(tc=oy||(oy={})).LAST_PACKAGE_ID="0x7be077dd73c85e788c2a49a51f0627066d81d3dc9982c268e3691265a81d544d",tc.swap=function(e){c(e.protocol===ri.HAEDAL_LSD_WAL),c(e.aToB,"HAEDAL_LSD_WAL does not support bToA swap");let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,packageId:i}=e;t.moveCall({target:`${i??tc.LAST_PACKAGE_ID}::haedal_wal_lsd_router::swap`,arguments:[o,t.object(oE.STAKING_OBJ_ID),t.object(r),t.pure.id(oh.VALIDATOR_ID),t.pure.bool(a),t.pure.u64(n)]})},(oS||(oS={})).VERSION_OBJ_ID="0xf5145a7ac345ca8736cf8c76047d00d6d378f30e81be6f6eb557184d9de93c78",(tu=oF||(oF={})).LAST_PACKAGE_ID="0xcf141e1d18ff609b2ac56532b391f7648fc55e28696efe354186f5109c0eff06",tu.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??tu.LAST_PACKAGE_ID}::kriya_clmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(oS.VERSION_OBJ_ID),t.pure.bool(i),t.pure.u64(s),t.object(u)]})},(tl=oP||(oP={})).LAST_PACKAGE_ID="0x50d37f46df75ef125ce656d4ac91b31b2cf0c1195752a96558561d163e45c223",tl.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??tl.LAST_PACKAGE_ID}::kriya_cpmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.pure.bool(i),t.pure.u64(s)]})},(td=oB||(oB={})).FACTORY_OBJ_ID="0xedb456e93e423dd75a8ddebedd9974bb661195043027e32ce01649d6ccee74cf",td.GLOBAL_CONFIG_OBJ_ID="0x4c4e1402401f72c7d8533d0ed8d5f8949da363c7a3319ccef261ffe153d32f8a",(tp=ow||(ow={})).LAST_PACKAGE_ID="0x950f94d33060c0575389c9f84fabab1e140776c6c84389d4237a0c2687a7adc9",tp.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??tp.LAST_PACKAGE_ID}::magma_almm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(oB.FACTORY_OBJ_ID),t.object(oB.GLOBAL_CONFIG_OBJ_ID),t.pure.u64(s),t.pure.bool(i),t.object(u)]})},(oR||(oR={})).GLOBAL_CONFIG="0x4c4e1402401f72c7d8533d0ed8d5f8949da363c7a3319ccef261ffe153d32f8a",(t_=oD||(oD={})).LAST_PACKAGE_ID="0xbe5f590339c55ca8ebbf93cedfb68aafd479d71e1c57043246f7dcf352745242",t_.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??t_.LAST_PACKAGE_ID}::magma_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(oR.GLOBAL_CONFIG),t.object(n),t.pure.bool(i),t.pure.u64(s),t.object(u)]})},(tm=ox||(ox={})).LATEST_PACKAGE_ID="0xfab91518218f10204b083dba1e62c8bfc23f14fb87742158043e5faec4670ec4",tm.swap=function(e){let t,o,r;c(e.protocol===ri.METASTABLE,"Invalid protocol");let{txb:a,swapContext:n,aToB:i,amountIn:s,coinAType:u,coinBType:l,poolId:d,metaCoin:p,packageId:_}=e,[m,f]=i?[u,l]:[l,u];m===p?(r="swap_from_meta_coin",t=[p,f],o=[tv.createCap({coinType:f,createCapFunc:"create_withdraw_cap",...e})]):f===p?(r="swap_to_meta_coin",t=[p,m],o=[tv.createCap({coinType:m,createCapFunc:"create_deposit_cap",...e})]):(r="swap",t=[p,m,f],o=[tv.createCap({coinType:m,createCapFunc:"create_deposit_cap",...e}),tv.createCap({coinType:f,createCapFunc:"create_withdraw_cap",...e})]),a.moveCall({target:`${_??tm.LATEST_PACKAGE_ID}::metastable_router::${r}`,typeArguments:t,arguments:[n,a.object(d),a.object(tv.VERSION_OBJ_ID),...o,a.pure.u64(s)]})},(oL||(oL={})).VERSION_OBJ_ID="0x2375a0b1ec12010aaea3b2545acfa2ad34cfbba03ce4b59f4c39e1e25eed1b2a",(tf=ov||(ov={})).LAST_PACKAGE_ID="0xba7ab4c8c39024fa0052bb4f00548a2e7b60742bb4ed0b87bc1d945fd8209102",tf.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??tf.LAST_PACKAGE_ID}::momentum_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(n),t.pure.bool(i),t.pure.u64(s),t.object(oL.VERSION_OBJ_ID),t.object(u)]})},(ok||(ok={})).CONFIGURATION_OBJ_ID="0xd746495d04a6119987c2b9334c5fefd7d8cff52a8a02a3ea4e3995b9a041ace4",(tg=oN||(oN={})).LAST_PACKAGE_ID="0x5a259db4b1d17fafc09185c9a71bac36f25f9ee462e72894c8610e5a58b79f8f",tg.swap=function(e){c(e.protocol===ri.MOVEPUMP,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,expectedAmountOut:s,packageId:l}=e;t.moveCall({target:`${l??tg.LAST_PACKAGE_ID}::movepump_router::swap`,typeArguments:[n?a:r],arguments:[o,t.object(ok.CONFIGURATION_OBJ_ID),t.object(t7.DEX_INFO_OBJ_ID),t.object(u),t.pure.u64(s),t.pure.bool(n),t.pure.u64(i)]})},(oU||(oU={})).STATE_OBJ_ID="0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",(tA=oj||(oj={})).LAST_PACKAGE_ID="0xd615fed37d692280047068e80d3a6bb685aa9d574608054c9df881d6a7378fab",tA.swap=function(e){let t,o;c(e.protocol===ri.OBRIC);let{txb:r,swapContext:a,poolId:n,coinAType:i,coinBType:s,aToB:l,amountIn:d,pythInfoObjectIdMap:p,packageId:_}=e;"priceInfoObjIdA"in e?(t=e.priceInfoObjIdA,o=e.priceInfoObjIdB):(t=p.get(e.pythPriceFeedIdA),o=p.get(e.pythPriceFeedIdB),c(t,"Not found priceInfoAId in pythObjectIdMap"),c(o,"Not found priceInfoBId in pythObjectIdMap")),r.moveCall({target:`${_??tA.LAST_PACKAGE_ID}::obric_router::swap`,typeArguments:[i,s],arguments:[a,r.object(n),r.pure.u64(d),r.pure.bool(l),r.object(oU.STATE_OBJ_ID),r.object(t),r.object(o),r.object(u)]})},(tb=oG||(oG={})).VERSION_OBJ_ID="0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7",tb.MARKET_OBJ_ID="0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9",(tI=oK||(oK={})).LAST_PACKAGE_ID="0xea409bb08c8a09e4127f859d9c36b8b62ca609282aa1e443091db6b7a7409ee7",tI.swap=function(e){c(e.protocol===ri.SCALLOP);let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,scoinTreasury:s,packageId:l}=e;t.moveCall({target:`${l??tI.LAST_PACKAGE_ID}::scallop_router::swap`,typeArguments:[r,a],arguments:[o,t.object(oG.VERSION_OBJ_ID),t.object(oG.MARKET_OBJ_ID),t.object(s),t.pure.u64(i),t.pure.bool(n),t.object(u)]})},(oq||(oq={})).ORACLE_HOLDER_OBJ_ID="0x8c36ea167c5e6da8c3d60b4fc897416105dcb986471bd81cfbfd38720a4487c0",(tT=o$||(o$={})).LAST_PACKAGE_ID="0x918a30e2a05d24ea9451e2d2900d055f74e6752f2e10251fa50c7175831b1958",tT.swap=function(e){c(e.protocol===ri.SEVENK_CPMM,"Invalid protocol for sevenk_cpmm_router swap");let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,coinLpType:u,oracleConfigA:l,oracleConfigB:d,pythPriceFeedIdA:p,pythPriceFeedIdB:_,pythInfoObjectIdMap:m,packageId:f}=e,g=m.get(p),A=m.get(_);c(g,"Not found priceInfoAId in pythObjectIdMap"),c(A,"Not found priceInfoBId in pythObjectIdMap");let b=tQ.newHolder(t);tQ.getPrice({txb:t,coinPriceId:p,holder:b,coinOracleId:l}),tQ.getPrice({txb:t,coinPriceId:_,holder:b,coinOracleId:d}),t.moveCall({target:`${f??tT.LAST_PACKAGE_ID}::sevenk_cpmm_router::swap`,typeArguments:[a,n,u],arguments:[o,t.object(r),t.object(oq.ORACLE_HOLDER_OBJ_ID),t.pure.bool(i),t.pure.u64(s)]})},(oY||(oY={})).CONFIGURATION_OBJ_ID="0xe79fff6c77d81f9a8efb729e25bf0037deec42518d40b978f274a4915d7e1ec9",(tC=oV||(oV={})).LAST_PACKAGE_ID="0x0a5dc665dc3c1c846a6d1e00811c84cae3510c839ab4dc0873f85dc8908d0606",tC.swap=function(e){c(e.protocol===ri.SEVENK_FUN,"Invalid protocol");let{txb:t,swapContext:o,aToB:r,amountIn:a,coinBType:n,packageId:i}=e;t.moveCall({target:`${i??tC.LAST_PACKAGE_ID}::sevenk_fun_router::swap`,typeArguments:[n],arguments:[o,t.object(oY.CONFIGURATION_OBJ_ID),t.object(oA.CONTAINER_OBJ_ID),t.object(u),t.pure.bool(r),t.pure.u64(a)]})},(tO=oJ||(oJ={})).LAST_PACKAGE_ID="0xa6d129c0b314e85d1bc5aecf305d64212bdd5d466457531f4f624fef5f2e7751",tO.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinBType:i,packageId:s}=e;t.moveCall({target:`${s??tO.LAST_PACKAGE_ID}::springsui_router::swap`,typeArguments:[i],arguments:[o,t.object(r),t.object(l),t.pure.u64(a),t.pure.bool(n)]})},(oH||(oH={})).CONFIG_OBJ_ID="0x881fd0a12ca4fa48991f5c27ba57d17f1ec147fa15f43b3cb760cc3bd7ba9402",(tM=oX||(oX={})).LAST_PACKAGE_ID="0xa314a64962ed4b91a6b4085de4dff2e631fd4c731dbca671a74489955df322ef",tM.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:s,packageId:c}=e,u=[o,t.object(r),t.object(oH.CONFIG_OBJ_ID),t.pure.bool(a),t.pure.u64(n),t.object("0x6")];t.moveCall({target:`${c??tM.LAST_PACKAGE_ID}::srm_cpmm_router::swap`,typeArguments:[i,s],arguments:u})},(th=(tE=oW||(oW={})).Oracle||(tE.Oracle={})).PACKAGE_ID="0xe84b649199654d18c38e727212f5d8dacfc3cf78d60d0a7fc85fd589f280eb2b",th.getPythPrice=function(e){let{txb:t,oracleRegistryId:o,priceInfoId:r,oracleIndex:a}=e;return t.moveCall({target:`${th.PACKAGE_ID}::oracles::get_pyth_price`,typeArguments:[],arguments:[t.object(o),t.object(r),t.pure.u64(a),t.object(u)]})};var rq=oz||(oz={});function r$(e,t){c(e.protocol===ri.STEAMM_OMM||e.protocol===ri.STEAMM_OMM_V2,"Invalid protocol for steamm _swapOmm swap");let{txb:o,swapContext:r,poolId:a,coinAType:n,coinBType:i,aToB:s,amountIn:l,bankAId:d,bankBId:p,lendingMarketId:_,lendingMarketType:m,bCoinAType:f,bCoinBType:g,lpBCoinType:A,pythPriceFeedIdA:b,pythPriceFeedIdB:I,pythInfoObjectIdMap:T,oracleRegistryId:C,oracleIndexA:O,oracleIndexB:M,packageId:E}=e,h=T.get(b),y=T.get(I);c(h,"Not found priceInfoAId in pythObjectIdMap"),c(y,"Not found priceInfoBId in pythObjectIdMap");let S=oW.Oracle.getPythPrice({txb:o,oracleRegistryId:C,priceInfoId:h,oracleIndex:O}),F=oW.Oracle.getPythPrice({txb:o,oracleRegistryId:C,priceInfoId:y,oracleIndex:M});o.moveCall({target:`${E??rq.LAST_PACKAGE_ID}::${rY(t)}::swap`,typeArguments:[m,n,i,f,g,A],arguments:[r,o.object(a),o.object(d),o.object(p),o.object(_),S,F,o.pure.bool(s),o.pure.u64(l),o.object(u)]})}function rY(e){switch(e){case 0:return"steamm_omm_router";case 1:return"steamm_omm_v2_router"}}function rV(e){let{amountOut:t,aggregatorFeeBps:o,partnerFeeBps:r}=e,a=rJ(t,o);return r&&(a=rJ(a,r)),a}function rJ(e,t){let o=BigInt(e)*BigInt(t)/BigInt(1e4);return(BigInt(e)-o).toString()}function rH(e){return Math.floor(100*e)}rq.LAST_PACKAGE_ID="0xd606880d67c399f349758111a91582d5515f31dd051632402653d872818f594e",rq.swapCpmm=function(e){c(e.protocol===ri.STEAMM_CPMM,"Invalid protocol for steamm_cpmm_router swap");let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,bankAId:l,bankBId:d,lendingMarketId:p,lendingMarketType:_,bCoinAType:m,bCoinBType:f,lpBCoinType:g}=e;t.moveCall({target:`${rq.LAST_PACKAGE_ID}::steamm_cpmm_router::swap`,typeArguments:[_,a,n,m,f,g],arguments:[o,t.object(r),t.object(l),t.object(d),t.object(p),t.pure.bool(i),t.pure.u64(s),t.object(u)]})},rq.swapOmm=function(e){r$(e,0)},rq.swapOmmV2=function(e){r$(e,1)},rq.getOmmRouterModule=rY,(ty=oQ||(oQ={})).LAST_PACKAGE_ID="0x7a1cf89025a60161e84809784d772263231fad08a7cb76a88ca1ba69e0a656da",ty.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??ty.LAST_PACKAGE_ID}::suiswap_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.pure.bool(i),t.pure.u64(s),t.object(u)]})},(tS=oZ||(oZ={})).VERSIONED="0x0309b66202e9aaf470081fffee7ffc0fbd50e3b7400d4f56fd06502e4dbbd676",tS.POOL_REGISTRY="0xcd0a614c4cbbf173f59dee2602c43a1717f283215ed7a0bb1d55d786af16fbcd",(tF=o0||(o0={})).LAST_PACKAGE_ID="0x79957062a7424ed9c2eb83932e4c4fcc3fee67ab3c8f6f874c54e417178bbb7a",tF.swap=function(e){c(e.protocol===ri.TRADEPORT_CLMM,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,poolFeeRate:s,packageId:l}=e;t.moveCall({target:`${l??tF.LAST_PACKAGE_ID}::tradeport_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(oZ.POOL_REGISTRY),t.pure.u64(s),t.object(oZ.VERSIONED),t.pure.bool(n),t.pure.u64(i),t.object(u)]})},(o1||(o1={})).POOL_VERSIONED="0xf1cf0e81048df168ebeb1b8030fad24b3e0b53ae827c25053fff0779c1445b6f",(tP=o4||(o4={})).LAST_PACKAGE_ID="0x512d63711ff38353fb167238b0529001b6871c1727c67ce3bf6ec23556b0f1da",tP.swap=function(e){c(e.protocol===ri.TURBOS_CLMM,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,coinFeeType:n,poolId:i,aToB:s,amountIn:l,packageId:d}=e;t.moveCall({target:`${d??tP.LAST_PACKAGE_ID}::turbos_clmm_router::swap`,typeArguments:[r,a,n],arguments:[o,t.object(i),t.object(o1.POOL_VERSIONED),t.pure.bool(s),t.pure.u64(l),t.object(u)]})},(o6||(o6={})).CONFIGURATION_OBJ_ID="0xd86685fc3c3d989385b9311ef55bfc01653105670209ac4276ebb6c83d7df928",(tB=o3||(o3={})).LAST_PACKAGE_ID="0x1fad13f09797aa87a4385d0b1efb2de963ba16742447b1ad5a3b0c5b1d1c588b",tB.swap=function(e){c(e.protocol===ri.TURBOS_FUN,"Invalid protocol");let{txb:t,swapContext:o,coinBType:r,aToB:a,amountIn:n,packageId:i}=e;t.moveCall({target:`${i??tB.LAST_PACKAGE_ID}::turbos_fun_router::swap`,typeArguments:[r],arguments:[o,t.object(o6.CONFIGURATION_OBJ_ID),t.object(u),t.pure.bool(a),t.pure.u64(n)]})},(o2||(o2={})).VOLO_CERT_METADATA_ID="0x680cd26af32b2bde8d3361e804c53ec1d1cfe24c7f039eb7f549e8dfde389a60",(tw=o5||(o5={})).LAST_PACKAGE_ID="0x7c8d95256342f904d5f251776903a17905d87c95f387b3a35cc2aecc23b3c042",tw.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,packageId:i}=e;t.moveCall({target:`${i??tw.LAST_PACKAGE_ID}::volo_router::swap`,arguments:[o,t.object(r),t.object(o2.VOLO_CERT_METADATA_ID),t.object(l),t.pure.bool(a),t.pure.u64(n)]})},(tR=o8||(o8={})).RouterSwapFunctionMap={[ri.AFTERMATH_CPMM]:t1.swap,[ri.AFTERMATH_LSD]:t6.swap,[ri.ALPHAFI_LSD]:t3.swap,[ri.BLASTFUN]:t5.swap,[ri.BLUEFIN_CLMM]:t9.swap,[ri.BLUEMOVE_CPMM]:oe.swap,[ri.BOLT]:oo.swap,[ri.CETUS_CLMM]:oa.swap,[ri.CETUS_DLMM]:oi.swap,[ri.DEEPBOOK_V3]:oc.swap,[ri.DIP_CPMM]:ol.swap,[ri.FERRA_CLMM]:op.swap,[ri.FERRA_DLMM]:om.swap,[ri.FLOWX_CPMM]:ob.swap,[ri.FLOWX_CLMM]:og.swap,[ri.FULLSAIL_CLMM]:oT.swap,[ri.HAEDAL_CPMM]:oC.swap,[ri.HAEDAL_CPMM_V2]:oO.swap,[ri.HAEDAL_LSD]:oM.swap,[ri.HAEDAL_LSD_WAL]:oy.swap,[ri.KRIYA_CLMM]:oF.swap,[ri.KRIYA_CPMM]:oP.swap,[ri.MAGMA_ALMM]:ow.swap,[ri.MAGMA_CLMM]:oD.swap,[ri.METASTABLE]:ox.swap,[ri.MOMENTUM_CLMM]:ov.swap,[ri.MOVEPUMP]:oN.swap,[ri.OBRIC]:oj.swap,[ri.SCALLOP]:oK.swap,[ri.SEVENK_CPMM]:o$.swap,[ri.SEVENK_FUN]:oV.swap,[ri.SPRINGSUI]:oJ.swap,[ri.SRM_CPMM]:oX.swap,[ri.STEAMM_CPMM]:oz.swapCpmm,[ri.STEAMM_OMM]:oz.swapOmm,[ri.STEAMM_OMM_V2]:oz.swapOmmV2,[ri.SUISWAP_CPMM]:oQ.swap,[ri.TRADEPORT_CLMM]:o0.swap,[ri.TURBOS_CLMM]:o4.swap,[ri.TURBOS_FUN]:o3.swap,[ri.VOLO]:o5.swap},tR.swap=function(e){(0,tR.RouterSwapFunctionMap[e.protocol])(e)},(o9||(o9={})).buildAggregatorSwapTransaction=async function(e){let{tx:t,coinOutType:o,tradePaths:r,pythConnections:a,pythClient:n,packageIdMap:i}=e,s=tD.openSwap(e),c=await tZ.updatePythPriceIDs({priceFeedIds:function(e){let t=new Set;for(let o of e)"pythPriceFeedIdA"in o&&t.add(o.pythPriceFeedIdA),"pythPriceFeedIdB"in o&&t.add(o.pythPriceFeedIdB),"pythPriceFeedIdBase"in o&&t.add(o.pythPriceFeedIdBase),"pythPriceFeedIdMeta"in o&&t.add(o.pythPriceFeedIdMeta),"pythPriceFeedIdEth"in o&&t.add(o.pythPriceFeedIdEth);return[...t]}(r),txb:t,pythClient:n,pythConnections:a});for(let e=0;e<r.length;e++){let o=r[e],[a,n]=o.aToB?[o.coinInType,o.coinOutType]:[o.coinOutType,o.coinInType];o8.swap({...o,txb:t,swapContext:s,amountIn:o.amountIn,coinAType:a,coinBType:n,packageId:i?.get(o.protocol),pythInfoObjectIdMap:c})}return tD.closeSwap({tx:t,coinOutType:o,swapSession:s})};let rX=tZ.newPythConnections(),rW=tZ.newPythClient();var rz=o7||(o7={});function rQ(e){var t,o;let r,a,{buildTxParam:n,rawRouteParam:i}=e;switch(i.sourceRoute){case"CETUS":r=tk.convert(i.rawRoute);break;case"FLOWX":r=tN.convert(i.rawRoute);break;case"SEVENK":r=tx.convert(i.rawRoute);break;default:throw Error("Unsupported source route")}let s=rH(n.aggregatorFeeRatePercent),c=n.partnerFeeRatePercent?rH(n.partnerFeeRatePercent):void 0,u=n.expectedAmountOut??rV({amountOut:r.amountOut,aggregatorFeeBps:s,partnerFeeBps:c}),l=(o=(t=n.slippagePercent)?Math.floor(100*t):100,a=BigInt(u)*BigInt(o??100)/BigInt(1e4),(BigInt(u)-a).toString());return{...n,...r,expectedAmountOut:u,minAmountOut:l,aggregatorFeeBps:s,partnerFeeBps:c,pythConnections:n.pythConnections??rX,pythClient:n.pythClient??rW}}rz.toMetaAggregatorBuildTxParams=rQ,rz.buildTx=function(e){let t=rQ(e);return o9.buildAggregatorSwapTransaction(t)};let rZ=async(e,t,o)=>t<=0?e():new Promise((r,a)=>{let n=setTimeout(()=>a(new rN(`Timeout ${o??"operation"}`,rk.TIMEOUT,{timeout:t})),t);e().then(r).catch(a).finally(()=>clearTimeout(n))}),r0=(e,t,o,r=0)=>{if(t>1e4)throw Error("Slippage must be less than 100%");if(o>1e4)throw Error("Commission must be less than 100%");if(r>1e4)throw Error("Tip must be less than 100%");let a=BigInt(e),n=a*BigInt(r||0)/10000n,i=(a-n)*BigInt(o)/10000n,s=a-n-i;return{tipAmount:n,minAmount:s*BigInt(1e4-t)/10000n,commissionAmount:i,expectedAmount:s.toString(10)}},r1={SEVENK:{},FLOWX:{},CETUS:{}};class r4{client;jsonRpcClient;providers={};options;constructor(e){this.options={providers:{...r1,...e?.providers},clients:e.clients,slippageBps:e?.slippageBps??100,hermesApi:e?.hermesApi??tZ.PYTH_URLS,partner:e?.partner??eO,partnerCommissionBps:e?.partnerCommissionBps??0,tipBps:e?.tipBps??0},this.client=e.clients.grpc,this.jsonRpcClient=e.clients.jsonRpc}async getQuoteClient(e){let t=this.providers[e];if(t)return t;let o=this.options.providers[e];switch(rN.assert(!!o,`Provider not found: ${e}`,rk.PROVIDER_NOT_FOUND,{provider:e}),e){case"SEVENK":{let{Bluefin7kClient:e}=await Promise.resolve(re).catch(r6("SEVENK"));this.providers.SEVENK=new e(o,this.client);break}case"FLOWX":{let{FlowxClient:e}=await Promise.resolve(ro).catch(r6("FLOWX"));this.providers.FLOWX=new e(o);break}case"CETUS":{let{CetusClient:e}=await Promise.resolve(rt).catch(r6("CETUS"));this.providers.CETUS=new e(o,this.options,this.jsonRpcClient);break}default:throw new rN(`Provider not supported: ${e}`,rk.PROVIDER_NOT_SUPPORTED,{provider:e})}return this.providers[e]}async getQuoteByClient(e,t){return await rZ(async()=>{let o=await e.quote(t);return o?(o.amountOut=rV({amountOut:o.amountOut,partnerFeeBps:this.options.partnerCommissionBps,aggregatorFeeBps:this.options.tipBps}),o):null},t.timeout??2e3,`quote for ${e.kind} provider from ${t.coinTypeIn} to ${t.coinTypeOut}`)}async getQuote(e){let t={...e,coinTypeIn:_(e.coinTypeIn),coinTypeOut:_(e.coinTypeOut)};return(await Promise.allSettled(Object.entries(this.options.providers).filter(([e,t])=>!t.disabled).map(async([e])=>{let o=await this.getQuoteClient(e);return this.getQuoteByClient(o,t)}))).map(e=>"fulfilled"===e.status?e.value:(console.warn(e.reason),null)).filter(e=>null!==e)}async swap(e){let{quote:t,signer:o,tx:r,coinIn:a,slippageBps:n}=e,i=m(o);rN.assert(p(i),`Invalid signer address: ${o}`,rk.INVALID_SIGNER_ADDRESS,{signer:o}),r.setSender(i);let s=(n??this.options.slippageBps)/1e4,c=this.options.partner&&this.options.partner!==eO?this.options.partner:void 0,u=c&&this.options.partnerCommissionBps>0?this.options.partnerCommissionBps/1e4:void 0;return o7.buildTx({buildTxParam:{tx:r,inputCoin:a,expectedAmountOut:t.amountOut,slippagePercent:s,aggregatorFeeRatePercent:this.options.tipBps/1e4,aggregatorFeeRecipient:"0xdaf1c8ed29d89cd8f217f609bad0a668fa6f158c12000bfa5f93e670c99e24ff",partnerFeeRatePercent:u,partnerFeeRecipient:c,pythConnections:tZ.newPythConnections(this.options.hermesApi),pythClient:tZ.newPythClient(this.jsonRpcClient)},rawRouteParam:{...t}})}}let r6=e=>t=>{throw console.warn(`Please install ${{CETUS:"@cetusprotocol/aggregator-sdk",FLOWX:"@flowx-finance/sdk",SEVENK:"@bluefin-exchange/bluefin7k-aggregator-sdk"}[e]} to use ${e} provider`),t};class r3{sdk;_astrosAggregator;_aftermathAggregator;_sevenkAggregator;_cetusAggregator;_flowXAggregator;constructor(e){this.sdk=e,this._astrosAggregator=new rp({defaultTradeFee:e.options.tradeFee,astrosApiKey:e.options.astrosApiKey},e.suiJsonRpcClient),this._aftermathAggregator=new rd({defaultTradeFee:e.options.tradeFee,aftermathApiKey:e.options.aftermathApiKey,aftermathApiEndpoint:e.options.aftermathApiEndpoint},e.suiJsonRpcClient),this._sevenkAggregator=new rc({defaultTradeFee:e.options.tradeFee,sevenKApiKey:e.options.sevenKApiKey},e.suiClient),this._cetusAggregator=new r_({defaultTradeFee:e.options.tradeFee,cetusApiKey:e.options.cetusApiKey,cetusApiEndpoint:e.options.cetusApiEndpoint,cetusPartnerId:e.options.cetusPartnerId},e.suiJsonRpcClient),this._flowXAggregator=new rf({defaultTradeFee:e.options.tradeFee,flowxApiKey:e.options.flowxApiKey},e.suiClient)}get astrosAggregator(){return this._astrosAggregator}get aftermathAggregator(){return this._aftermathAggregator}get sevenkAggregator(){return this._sevenkAggregator}get cetusAggregator(){return this._cetusAggregator}get flowXAggregator(){return this._flowXAggregator}async getTradeRoute(e,t){let o;switch(e){case rm.ASTROS:{let e,r=await this._astrosAggregator.getTradeRoute(t);if(!r)return null;let a=rp.toCommonTradeRoutes(r,t.coinInType,t.coinOutType);if(!a)return null;e=t.tradeFee?t.tradeFee.tradeFeePercent:this.sdk.options.tradeFee.tradeFeePercent,a.amountOut=BigInt(new s(r.amount_out).multipliedBy(1-e).toFixed(0,3)),o={route:a,aggregatorRoute:r};break}case rm.AFTERMATH:{let e=await this._aftermathAggregator.getTradeRoute(t);if(!e)return null;let r=rd.toCommonTradeRoutes(e);if(!r)return null;o={route:r,aggregatorRoute:e};break}case rm.SEVENK:{let e=await this._sevenkAggregator.getTradeRoute(t);if(!e)return null;let r=rc.toCommonTradeRoutes(e);if(!r)return null;o={route:r,aggregatorRoute:e};break}case rm.CETUS:{let e=await this._cetusAggregator.getTradeRoute(t);if(!e)return null;let r=r_.toCommonTradeRoutes(e,t.coinInType,t.coinOutType);if(!r)return null;o={route:r,aggregatorRoute:e};break}case rm.FLOWX:{let e=await this._flowXAggregator.getTradeRoute(t);if(!e)return null;let r=rf.toCommonTradeRoutes(e);if(!r)return null;o={route:r,aggregatorRoute:e}}}return o}async getTransactionByRoute(e,t){switch(e){case rm.ASTROS:return this._astrosAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case rm.AFTERMATH:return this._aftermathAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage});case rm.SEVENK:return this._sevenkAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case rm.CETUS:return this._cetusAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case rm.FLOWX:return this._flowXAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee})}}async getTradeTransaction(e,t){let o=await this.getTradeRoute(e,{coinInAmount:t.coinInAmount,coinInType:t.coinInType,coinOutType:t.coinOutType,tradeFee:t.tradeFee,metaAggregator:t.metaAggregator});if(!o)return null;let r=await this.getTransactionByRoute(e,{walletAddress:t.walletAddress,completeRoute:o.aggregatorRoute,slippage:t.slippage,tradeFee:t.tradeFee});return{route:o.route,aggregatorRoute:o.aggregatorRoute,transaction:r}}async getTradeTransactionWithBestRate(e){let t=Object.keys(rm),o=await Promise.all(t.map(async t=>{try{return await this.getTradeRoute(t,e)}catch{return null}})),r=null,a=null;for(let e=0;e<o.length;e++){let n=o[e],i=t[e];if(n&&(!r||n.route.amountOut>r.route.amountOut)){r=n,a=i;continue}}if(!r||!a)return null;let n=await this.getTransactionByRoute(a,{walletAddress:e.walletAddress,completeRoute:r.aggregatorRoute,slippage:e.slippage,tradeFee:e.tradeFee});return{route:r.route,aggregatorRoute:r.aggregatorRoute,transaction:n}}async getAmountOut(e,t){let o=await this.getTradeRoute(e,t);return o?o.route.amountOut:null}async getBestAmountOut(e){let t=Object.keys(rm),o=null,r=null;for(let a of t){let t=await this.getAmountOut(a,e);null!==t&&(null===o||t>o)&&(o=t,r=a)}return null===o||null===r?null:{amountOut:o,aggregator:r}}}class r2{sdk;constructor(e){this.sdk=e}async getEstimatedAmountOut(e,t){let{coinInType:o,coinOutType:r}=t;c(o!==r,"coinInType and coinOutType must be different"),c(eI(o)||eI(r),"One of coinInType or coinOutType must be SUI");let a=eI(o);switch(e){case rD.MOONBAGS:if(a)return await tW.getCurveAmountAfterBuy({poolId:t.poolId,suiAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0},this.sdk.suiClient);return await tW.getSuiAmountAfterSell({poolId:t.poolId,curveAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0},this.sdk.suiClient);case rD.BLAST_FUN:if(a)return await tV.getCurveAmountAfterBuy({poolId:t.poolId,suiAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0});return await tV.getSuiAmountAfterSell({poolId:t.poolId,curveAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0});default:throw Error(`Unsupported bonding curve platform: ${e}`)}}async getTradeTransaction(e,t){let o,{coinInType:r,coinOutType:a}=t;c(r!==a,"coinInType and coinOutType must be different"),c(eI(r)||eI(a),"One of coinInType or coinOutType must be SUI");let n=eI(r);switch(e){case rD.MOONBAGS:o=n?await tz.getBuyTransaction(t,this.sdk.suiClient):await tz.getSellTransaction(t,this.sdk.suiClient);break;case rD.BLAST_FUN:o=n?await tJ.getBuyTransaction(t,this.sdk.suiClient):await tJ.getSellTransaction(t,this.sdk.suiClient);break;default:throw Error(`Unsupported bonding curve platform: ${e}`)}return o}}let r5={tradeFeePercent:.01,tradeFeeRecipientAddress:"0xdaf1c8ed29d89cd8f217f609bad0a668fa6f158c12000bfa5f93e670c99e24ff"};class r8{network;env;options;_suiGrpcClient;_suiJsonRpcClient;aggregatorModule;curveModule;constructor(e,t="mainnet",o="prod"){this.options=e,this.network=t,this.env=o,this._suiGrpcClient=e.clients.grpc,this._suiJsonRpcClient=e.clients.jsonRpc,this.aggregatorModule=new r3(this),this.curveModule=new r2(this)}get suiClient(){return this._suiGrpcClient}get suiJsonRpcClient(){return this._suiJsonRpcClient}}class r9{suiClient;constructor(e){this.suiClient=e}validatePrivateKey(e,t){c(e?.trim(),"Private key is required");let o=eu.fromSecretKey(e),r=o.getPublicKey().toSuiAddress();if(r!==t)throw Error(`Private key mismatch. Expected: ${t}, Got: ${r}`);return o}async createDraft(e,t,o){c(e?.trim(),"Sender address is required"),c(t?.trim(),"Recipient address is required"),c(e!==t,"Sender and recipient cannot be the same"),c(o>0n,"Transfer amount must be at least 1 MIST");try{let r=new i,[a]=r.splitCoins(r.gas,[o]);r.transferObjects([a],t),r.setSender(e);let{referenceGasPrice:n}=await this.suiClient.getReferenceGasPrice();r.setGasPrice(n);let s=await eT(this.suiClient,r,e,.1);r=await eC({inheritTx:r,sender:e,feeAmount:s,suiInputAmount:o},this.suiClient);let c=await r.build({client:this.suiClient}),u=Buffer.from(c).toString("base64"),l=await r.getDigest();return{sender:e,recipient:t,amountMIST:o,txDraftBase64:u,txDigest:l}}catch(e){throw Error(`Failed to create draft transaction: ${e instanceof Error?e.message:"Unknown error"}`)}}async execute(e,t){try{c(e,"Draft transaction is required"),c(e.txDraftBase64?.trim(),"Transaction data is required");let o=this.validatePrivateKey(t,e.sender),r=d(e.txDraftBase64),{signature:a}=await o.signTransaction(r),n=await this.suiClient.executeTransaction({transaction:r,signatures:[a],include:{effects:!0}}),i="Transaction"===n.$kind?n.Transaction:n.FailedTransaction,{status:s}=i;return{success:s.success,txDigest:i.digest,effects:i.effects,error:s.success?void 0:s.error.message}}catch(e){return{success:!1,error:e instanceof Error?e.message:"Unknown error occurred"}}}async getTransactionStatus(e){c(e?.trim(),"Transaction digest is required");try{let t=await this.suiClient.getTransaction({digest:e,include:{effects:!0}}),o="Transaction"===t.$kind?t.Transaction:t.FailedTransaction;if(!o.effects?.status)return"pending";return o.effects.status.success?"success":"failure"}catch(e){if(e instanceof Error&&(e.message.includes("not found")||e.message.includes("Could not find")))return"pending";return"failure"}}}var r7=1e4;export{ADMIN_CAP_ID,BOOSTING_PACKAGE_ID,BoostingModule,CLOCK_OBJECT_ID,CONFIG_ID,NATIVE_USDC_TOKEN_TYPE,NoodlesPaySdk,SUBSCRIPTION_CONFIG,SUI_ADDRESS_ZERO,SUI_FULL_TYPE,SUI_METADATA_OBJECT_ID,SUI_TYPE,SubscriptionModule,USDC_TOKEN_TYPE,addGasFee,getAmountAfterFee,getCoinObjectIdsByAmount,getNeededGasFee,getSplitCoinForTx,getSplitCoinsAfterFee,isSuiCoinType}from"./832.js";export{SuiGrpcClient}from"@mysten/sui/grpc";export{r3 as AggregatorModule,rT as BLUEFIN_PACKAGE_ID,r2 as CurveModule,r5 as DEFAULT_TRADE_FEE,r9 as DraftTransferTx,rN as MetaAgError,r4 as MetaClient,r8 as NoodlesSdk,el as SuiJsonRpcClient,rc as SevenKAggregator,rd as AftermathAggregator,t0 as AftermathCpmm,t4 as AftermathLsd,o7 as AggregatorConverter,rp as AstrosAggregator,t2 as Blastfun,rU as Bluefin7kClient,t$ as BluefinTx,t8 as BluefinClmm,t7 as BluemoveCpmm,ot as Bolt,tW as MoonbagsCalculation,r_ as CetusAggregator,tk as CetusAggregatorConverter,rG as CetusClient,or as CetusClmm,on as CetusDlmm,rn as checkIsSui,rm as SupportedAggregator,tU as BlastFunConstants,tH as MoonbagsConstants,tq as BlastFunCustomCalculation,tY as BlastFunCustomTransaction,os as DeepbookV3,ra as denormalizeTokenType,ou as DipCpmm,rk as MetaAgErrorCode,r7 as BASE_BPS,od as FerraClmm,o_ as FerraDlmm,rf as FlowXAggregator,tN as FlowXAggregatorConverter,rK as FlowxClient,oA as FlowxCpmm,oI as FullsailClmm,r0 as getExpectedReturn,rh as getGrpcFullnodeUrl,ry as getJsonRpcFullnodeUrl,rP as getMemezPumpSDK,rA as getMoveObject,rg as getMoveObjectContent,rS as getTransactionResultDigest,oh as HaedalLsdWal,oS as KriyaClmm,oB as MagmaAlmm,oR as MagmaClmm,o9 as MetaAggregator,tv as Metastable,oL as MomentumClmm,ok as Movepump,rr as normalizeTokenType,oU as Obric,tK as BlastFunPackage,tG as Bps,tj as MathUtils,tX as MoonbagsPackage,tQ as PythPrice,tZ as PythUtils,oG as Scallop,tV as BlastFunSDKCalculation,tJ as BlastFunSDKTransaction,tx as SevenKAggregatorConverter,oq as SevenkCpmm,oY as SevenkFun,rC as splitSuiCoinAfterFeeFromBuyTx,rO as splitSuiCoinAfterFeeFromSellTx,oH as SrmCpmm,oW as Steamm,oZ as TradeportClmm,tz as MoonbagsTransaction,o1 as TurbosClmm,o6 as TurbosFun,ri as AggregatorProtocol,rD as SupportedBondingCurve,tL as TradeFeeOptions,o8 as RouterUtils,rZ as timeout,o2 as Volo,oE as Walrus};