@minswap/noodles-sdk 0.0.45 → 0.0.48
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.cjs +1 -1
- package/dist/index.d.ts +43 -24
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -155,16 +155,14 @@ export declare namespace AftermathLsd {
|
|
|
155
155
|
}
|
|
156
156
|
|
|
157
157
|
export declare namespace AggregatorConverter {
|
|
158
|
-
export function toMetaAggregatorBuildTxParams(param:
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
rawRoute: QuoteResponse;
|
|
167
|
-
})): MetaAggregator.BuildAggregatorSwapTransactionParam;
|
|
158
|
+
export function toMetaAggregatorBuildTxParams(param: {
|
|
159
|
+
buildTxParam: BuildTxFromRawRouteParams;
|
|
160
|
+
rawRouteParam: RawRouteParams;
|
|
161
|
+
}): MetaAggregator.BuildAggregatorSwapTransactionParam;
|
|
162
|
+
export function buildTx(param: {
|
|
163
|
+
buildTxParam: BuildTxFromRawRouteParams;
|
|
164
|
+
rawRouteParam: RawRouteParams;
|
|
165
|
+
}): Promise<TransactionObjectArgument>;
|
|
168
166
|
}
|
|
169
167
|
|
|
170
168
|
/**
|
|
@@ -668,9 +666,18 @@ export declare type BuildSwapTxParams = CommonTxParams & {
|
|
|
668
666
|
poolId: string;
|
|
669
667
|
};
|
|
670
668
|
|
|
671
|
-
declare type BuildTxFromRawRouteParams =
|
|
669
|
+
declare type BuildTxFromRawRouteParams = {
|
|
670
|
+
tx: Transaction;
|
|
671
|
+
inputCoin: TransactionObjectArgument;
|
|
672
672
|
expectedAmountOut?: string;
|
|
673
|
-
|
|
673
|
+
slippagePercent?: number;
|
|
674
|
+
aggregatorFeeRatePercent: number;
|
|
675
|
+
aggregatorFeeRecipient: string;
|
|
676
|
+
partnerFeeRatePercent?: number;
|
|
677
|
+
partnerFeeRecipient?: string;
|
|
678
|
+
pythConnections?: SuiPriceServiceConnection[];
|
|
679
|
+
pythClient?: SuiPythClient;
|
|
680
|
+
packageIdMap?: Map<AggregatorProtocol, string>;
|
|
674
681
|
};
|
|
675
682
|
|
|
676
683
|
export declare type BuildTxResult = {
|
|
@@ -768,9 +775,7 @@ export declare namespace CetusAggregatorConverter {
|
|
|
768
775
|
const TO_META_AGGREGATOR_PATH_FN_MAP: Record<SupportProtocol, (route: Path) => MetaAggregatorPath>;
|
|
769
776
|
export function toMetaAggregatorPath(route: Path): MetaAggregatorPath;
|
|
770
777
|
export function toMetaAggregatorPaths(route: RouterDataV3): MetaAggregatorPath[];
|
|
771
|
-
export function
|
|
772
|
-
rawRoute: RouterDataV3;
|
|
773
|
-
}): MetaAggregator.BuildAggregatorSwapTransactionParam;
|
|
778
|
+
export function convert(rawRoute: RouterDataV3): RouteConverterResult;
|
|
774
779
|
{};
|
|
775
780
|
}
|
|
776
781
|
|
|
@@ -1160,9 +1165,7 @@ export declare namespace FlowXAggregatorConverter {
|
|
|
1160
1165
|
const toMetaAggregatorBasePath: (swap: FlowXSwapRoute) => Omit<MetaAggregatorBasePath, "aToB">;
|
|
1161
1166
|
const toMetaAggregatorPath: (swap: FlowXSwapRoute) => MetaAggregatorPath;
|
|
1162
1167
|
export function toMetaAggregatorPaths<CInput extends Coin_2, COutput extends Coin_2>(routes: Route<CInput, COutput>[]): MetaAggregatorPath[];
|
|
1163
|
-
export function
|
|
1164
|
-
rawRoute: GetRoutesResult<CInput, COutput>;
|
|
1165
|
-
}): MetaAggregator.BuildAggregatorSwapTransactionParam;
|
|
1168
|
+
export function convert<CInput extends Coin_2, COutput extends Coin_2>(rawRoute: GetRoutesResult<CInput, COutput>): RouteConverterResult;
|
|
1166
1169
|
{};
|
|
1167
1170
|
}
|
|
1168
1171
|
|
|
@@ -1500,9 +1503,9 @@ export declare namespace MetaAggregator {
|
|
|
1500
1503
|
inputCoin: TransactionObjectArgument;
|
|
1501
1504
|
expectedAmountOut: string;
|
|
1502
1505
|
minAmountOut: string;
|
|
1503
|
-
|
|
1506
|
+
aggregatorFeeBps: number;
|
|
1504
1507
|
aggregatorFeeRecipient: string;
|
|
1505
|
-
|
|
1508
|
+
partnerFeeBps?: number;
|
|
1506
1509
|
partnerFeeRecipient?: string;
|
|
1507
1510
|
tradePaths: MetaAggregatorPath[];
|
|
1508
1511
|
pythConnections: SuiPriceServiceConnection[];
|
|
@@ -1739,7 +1742,7 @@ export declare namespace PythUtils {
|
|
|
1739
1742
|
const WORMHOLE_STATE_ID = "0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c";
|
|
1740
1743
|
const PYTH_STATE_ID = "0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8";
|
|
1741
1744
|
export function newPythConnections(pythUrls?: string[]): SuiPriceServiceConnection[];
|
|
1742
|
-
export function
|
|
1745
|
+
export function newPythClient(suiClient?: SuiClient): SuiPythClient;
|
|
1743
1746
|
export function updatePythPriceIDs(params: {
|
|
1744
1747
|
priceFeedIds: PythPriceFeedId[];
|
|
1745
1748
|
txb: Transaction;
|
|
@@ -1748,6 +1751,17 @@ export declare namespace PythUtils {
|
|
|
1748
1751
|
}): Promise<Map<PythPriceFeedId, PythInfoObjectId>>;
|
|
1749
1752
|
}
|
|
1750
1753
|
|
|
1754
|
+
declare type RawRouteParams = {
|
|
1755
|
+
sourceRoute: SourceAggregatorRoute.CETUS;
|
|
1756
|
+
rawRoute: RouterDataV3;
|
|
1757
|
+
} | {
|
|
1758
|
+
sourceRoute: SourceAggregatorRoute.FLOWX;
|
|
1759
|
+
rawRoute: GetRoutesResult<any, any>;
|
|
1760
|
+
} | {
|
|
1761
|
+
sourceRoute: SourceAggregatorRoute.SEVENK;
|
|
1762
|
+
rawRoute: QuoteResponse;
|
|
1763
|
+
};
|
|
1764
|
+
|
|
1751
1765
|
/**
|
|
1752
1766
|
* Parameters for removing a subscription plan (admin only).
|
|
1753
1767
|
*/
|
|
@@ -1772,6 +1786,13 @@ export declare type RemoveTierRequest = {
|
|
|
1772
1786
|
currentTx?: Transaction;
|
|
1773
1787
|
};
|
|
1774
1788
|
|
|
1789
|
+
declare type RouteConverterResult = {
|
|
1790
|
+
coinInType: string;
|
|
1791
|
+
coinOutType: string;
|
|
1792
|
+
amountOut: string;
|
|
1793
|
+
tradePaths: MetaAggregatorPath[];
|
|
1794
|
+
};
|
|
1795
|
+
|
|
1775
1796
|
export declare namespace RouterUtils {
|
|
1776
1797
|
const RouterSwapFunctionMap: Record<AggregatorProtocol, BuildRouterSwapTxFunction>;
|
|
1777
1798
|
export function swap(param: BuildRouterSwapTxParam): void;
|
|
@@ -1885,9 +1906,7 @@ export declare namespace SevenKAggregatorConverter {
|
|
|
1885
1906
|
const SUPPORTED_PROTOCOLS: SupportedProtocol[];
|
|
1886
1907
|
export function toMetaAggregatorPath(swap: TxSorSwap): MetaAggregatorPath;
|
|
1887
1908
|
export function toMetaAggregatorPaths(swaps: TxSorSwap[]): MetaAggregatorPath[];
|
|
1888
|
-
export function
|
|
1889
|
-
rawRoute: QuoteResponse;
|
|
1890
|
-
}): MetaAggregator.BuildAggregatorSwapTransactionParam;
|
|
1909
|
+
export function convert(rawRoute: QuoteResponse): RouteConverterResult;
|
|
1891
1910
|
{};
|
|
1892
1911
|
}
|
|
1893
1912
|
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{BluefinXTx as e,Config as t,buildTx as o,getQuote as r}from"@bluefin-exchange/bluefin7k-aggregator-sdk";import a from"bignumber.js";import{Aftermath as n,Helpers as i}from"aftermath-ts-sdk";import{buildSwapPTBFromQuote as c,getCoins as s,getQuote as u}from"@naviprotocol/astros-aggregator-sdk";import{AFSUI as l,AFTERMATH as d,ALPHAFI as p,AggregatorClient as _,BLUEFIN as m,BLUEMOVE as f,CETUS as A,CETUSDLMM as g,DEEPBOOKV3 as b,Env as I,FERRACLMM as T,FERRADLMM as C,FLOWXV2 as M,FLOWXV3 as O,FULLSAIL as E,HAEDAL as y,HAEDALHMMV2 as S,HAEDALPMM as h,HAWAL as F,KRIYA as B,KRIYAV3 as P,MAGMA as x,METASTABLE as D,MOMENTUM as w,OBRIC as L,SCALLOP as v,SEVENK as R,SPRINGSUI as k,STEAMM as N,STEAMM_OMM as U,STEAMM_OMM_V2 as G,SUILEND as j,TURBOS as K,VOLO as q}from"@cetusprotocol/aggregator-sdk";import Y from"bn.js";import{AggregatorQuoter as $,Coin as V,Commission as J,CommissionType as H,Protocol as X,TradeBuilder as W}from"@flowx-finance/sdk";import{MemezPumpSDK as z}from"@interest-protocol/memez-fun-sdk";import{Network as Z}from"@interest-protocol/sui-core-sdk";import{SuiPriceServiceConnection as Q,SuiPythClient as ee}from"@pythnetwork/pyth-sui-js";import{Ed25519Keypair as et}from"@mysten/sui/keypairs/ed25519";import{SUI_SYSTEM_STATE_OBJECT_ID as eo,getAmountAfterFee as er,toHex as ea,getSplitCoinForTx as en,SUI_CLOCK_OBJECT_ID as ei,getNeededGasFee as ec,addGasFee as es,normalizeStructTag as eu,parseStructTag as el,Transaction as ed,SuiClient as ep,CLOCK_OBJECT_ID as e_,SUI_TYPE as em,isSuiCoinType as ef,SUI_METADATA_OBJECT_ID as eA,getFullnodeUrl as eg,SUI_FULL_TYPE as eb,getSplitCoinsAfterFee as eI,fromBase64 as eT,tiny_invariant as eC}from"./982.js";class eM{_config;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}async getTradeRoute({coinInAmount:e,coinInType:o,coinOutType:a,tradeFee:n,supportedProtocols:i}){try{this._config.sevenKApiKey&&t.setApiKey(this._config.sevenKApiKey);let c=n?n.tradeFeePercent:this._config.defaultTradeFee.tradeFeePercent;return await r({tokenIn:o,tokenOut:a,amountIn:e.toString(),commissionBps:1e4*c,sources:i??void 0})}catch(e){return null}}async getTransaction({walletAddress:t,completeRoute:r,slippage:a,tradeFee:n}){let i,c;n?(i=n.tradeFeePercent,c=n.tradeFeeRecipientAddress):(i=this._config.defaultTradeFee.tradeFeePercent,c=this._config.defaultTradeFee.tradeFeeRecipientAddress);let s=await o({quoteResponse:r,slippage:a,accountAddress:t,commission:{partner:c,commissionBps:1e4*i}});return s.tx instanceof e?ed.from(s.tx.txBytes).build({client:this._suiClient}):(s.tx.setSender(t),s.tx.build({client:this._suiClient}))}}(eM||(eM={})).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,n=r[t.tokenOut]??0,i=BigInt(new a(t.tokenInAmount).multipliedBy(10**o).toFixed(0,3)),c=BigInt(new a(t.tokenOutAmount).multipliedBy(10**n).toFixed(0,3));e.push({poolAddress:t.poolId,coinIn:t.tokenIn,coinOut:t.tokenOut,amountIn:i,amountOut:c})}if(0===e.length)continue;let n=r[o.tokenIn]??0,i=r[o.tokenOut]??0,c=BigInt(new a(o.tokenInAmount).multipliedBy(10**n).toFixed(0,3)),s=BigInt(new a(o.tokenOutAmount).multipliedBy(10**i).toFixed(0,3));t.push({paths:e,coinIn:o.tokenIn,coinOut:o.tokenOut,amountIn:c,amountOut:s})}return 0===t.length?null:{coinIn:e.tokenIn,coinOut:e.tokenOut,amountIn:BigInt(e.swapAmountWithDecimal),amountOut:BigInt(e.returnAmountWithDecimal),routes:t}};class eO{_config;_aftermathClient;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}async aftermathClient(){if(this._aftermathClient)return this._aftermathClient;if(this._config.aftermathApiEndpoint?this._aftermathClient=new n(this._config.aftermathApiEndpoint):this._aftermathClient=new n("MAINNET"),await this._aftermathClient.init(),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 null}}async getTransaction({completeRoute:e,walletAddress:t,slippage:o}){let r=await this.aftermathClient(),a=await r.Router().getTransactionForCompleteTradeRoute({completeRoute:e,walletAddress:t,slippage:o,isSponsoredTx:!1});return a.setSender(t),a.build({client:this._suiClient})}}(eO||(eO={})).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 eE{_config;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r}){try{let a;return a=r?{fee:r.tradeFeePercent,receiverAddress:r.tradeFeeRecipientAddress}:{fee:this._config.defaultTradeFee.tradeFeePercent,receiverAddress:this._config.defaultTradeFee.tradeFeeRecipientAddress},await u(t,o,e,this._config.astrosApiKey,{byAmountIn:!0,serviceFee:a})}catch(e){return 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 n;let i,u;i=r?{fee:r.tradeFeePercent,receiverAddress:r.tradeFeeRecipientAddress}:{fee:this._config.defaultTradeFee.tradeFeePercent,receiverAddress:this._config.defaultTradeFee.tradeFeeRecipientAddress};let l=new a(e.amount_out).multipliedBy(1-o-i.fee).toNumber(),d=new ed;if("0x2::sui::SUI"===(n=e.from)||"0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI"===n)u=d.splitCoins(d.gas,[d.pure.u64(e.amount_in)]);else{let o=await s(this._suiClient,t,e.from),r=this.returnMergedCoins(d,o.data,Number.parseFloat(e.amount_in));u=d.splitCoins(r,[d.pure.u64(e.amount_in)])}let p=await c(t,d,l,u,e,void 0,!1,this._config.astrosApiKey,{serviceFee:i});return d.transferObjects([p],t),d.setSender(t),d.build({client:this._suiClient})}}(eE||(eE={})).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}},(tw||(tw={})).equals=function(e,t){return e.tradeFeePercent===t.tradeFeePercent&&e.tradeFeeRecipientAddress===t.tradeFeeRecipientAddress};class ey{_config;_suiClient;_cetusClient;constructor(e,t){this._config=e,this._suiClient=t}cetusClient(e,t){return t&&!tw.equals(t,this._config.defaultTradeFee)?new _({client:this._suiClient,overlayFeeReceiver:t.tradeFeeRecipientAddress,overlayFeeRate:t.tradeFeePercent,env:I.Mainnet,signer:e,...this._config.cetusApiKey&&this._config.cetusApiEndpoint?{apiKey:this._config.cetusApiKey,endpoint:this._config.cetusApiEndpoint}:{},partner:this._config.cetusPartnerId}):(this._cetusClient||(this._cetusClient=new _({client:this._suiClient,overlayFeeReceiver:this._config.defaultTradeFee.tradeFeeRecipientAddress,overlayFeeRate:this._config.defaultTradeFee.tradeFeePercent,env:I.Mainnet,signer:e,...this._config.cetusApiKey&&this._config.cetusApiEndpoint?{apiKey:this._config.cetusApiKey,endpoint:this._config.cetusApiEndpoint}:{},partner:this._config.cetusPartnerId})),this._cetusClient)}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r,supportedProtocols:a}){try{let n=this.cetusClient(void 0,r);return await n.findRouters({from:t,target:o,amount:new Y(e.toString()),byAmountIn:!0,providers:a})}catch(e){return null}}async getTransaction({completeRoute:e,walletAddress:t,slippage:o,tradeFee:r}){let a=this.cetusClient(t,r),n=new ed;return n.setSender(t),await a.fastRouterSwap({router:e,txb:n,slippage:o}),n.build({client:this._suiClient})}}(ey||(ey={})).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 eS,eh,eF,eB,eP,ex,eD,ew,eL,ev,eR,ek,eN,eU,eG,ej,eK,eq,eY,e$,eV,eJ,eH,eX,eW,ez,eZ,eQ,e0,e6,e4,e3,e1,e2,e9,e8,e5,e7,te,tt,to,tr,ta,tn,ti,tc,ts,tu,tl,td,tp,t_,tm,tf,tA,tg,tb,tI,tT,tC,tM,tO,tE,ty,tS,th,tF,tB,tP,tx,tD,tw,tL,tv,tR,tk,tN,tU,tG,tj,tK,tq,tY,t$,tV,tJ,tH,tX,tW,tz,tZ,tQ,t0,t6,t4,t3,t1,t2,t9,t8,t5,t7,oe,ot,oo,or,oa,on,oi,oc,os,ou,ol,od,op,o_,om,of,oA,og,ob,oI,oT,oC,oM,oO,oE,oy,oS,oh,oF,oB,oP,ox,oD,ow,oL,ov,oR,ok,oN,oU,oG,oj,oK,oq,oY,o$,oV,oJ,oH,oX,oW,oz,oZ,oQ,o0,o6,o4,o3,o1,o2,o9,o8,o5,o7,re=((tD={}).ASTROS="ASTROS",tD.AFTERMATH="AFTERMATH",tD.SEVENK="7K",tD.CETUS="CETUS",tD.FLOWX="FLOWX",tD);class rt{_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 J(r,new V(e),H.PERCENTAGE,1e6*o,!0)}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r,supportedProtocols:a}){let n=new $("mainnet",this._config.flowxApiKey);try{return await n.getRoutes({tokenIn:t,tokenOut:o,amountIn:e.toString(),commission:this.getCommission(t,r),includeSources:a??void 0})}catch(e){return null}}async getTransaction({walletAddress:e,completeRoute:t,slippage:o,tradeFee:r}){return new W("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 ro(e,t){return(await rr(e,t)).fields}async function rr(e,t){let o=await e.getObject({id:t,options:{showContent:!0}}),r=o.data?.content;return eC(r,"Pool object not found or has no content"),eC("moveObject"===r.dataType,"Object is not a Move object"),r}(rt||(rt={})).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}},(eS=tL||(tL={})).PACKAGE_ID_V4="0x7e6aa6e179466ab2814425a780b122575296d011119fa69d27f289f5a28814bd",eS.MEMEZ_AV_OBJECT_ID="0x2319e3e76dfad73d8f4684bdbf42be4f32d8ce4521dd61becc8261dc918d82c0",((eh=tv||(tv={})).U64||(eh.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=tR||(tR={});function rn(e){return eC(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 eC(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:rn(e).toString()}},ra.assertOverflow=rn,((eF=tk||(tk={})).MemezFun||(eF.MemezFun={})).isSniperProtectedMemezFun=async function(e,t){return(await ro(e,t)).public_key.length>0},(eB=eF.MemezFees||(eF.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=tR.calcUp(tR.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")},eB.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 tR.calcUp(tR.sub(r,t),o)}throw Error("Unknown fee variant")},(eF.MemezBurner||(eF.MemezBurner={})).calculate=function(e,t){if(tR.value(e.fee.fields)===BigInt(0)||t===BigInt(0)||t>=BigInt(e.target_liquidity))return tR.new_(0);let o=BigInt(1e4);return tR.new_(tv.U64.mulDivUp(tR.value(e.fee.fields),tv.U64.mulDivUp(t,o,BigInt(e.target_liquidity)),o))},(eP=eF.MemezPump||(eF.MemezPump={})).getPumpState=async function(e,t){return await ro(e,t.inner_state)},eP.pump=function(e,t){let o=e.constant_product.fields,r=eF.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),c=n*a/(BigInt(o.virtual_liquidity)+i+a),s=eF.MemezFees.takeWithDiscount(o.meme_swap_fee,c,o.meme_referrer_fee.fields);return c-s},eP.dump=function(e,t){let o=e.constant_product.fields,r=eF.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),c=BigInt(o.virtual_liquidity),s=eF.MemezBurner.calculate(o.burner.fields,i),u=tR.calcUp(s,a),l=a-(tR.value(s)!==BigInt(0)?u:BigInt(0)),d=(c+i)*l/(n+l);d>i&&(d=i);let p=eF.MemezFees.takeWithDiscount(o.quote_swap_fee,d,o.quote_referrer_fee.fields);return d-p},(ex=tN||(tN={})).getCurveAmountAfterBuy=async function(e,t){let{suiAmount:o,poolId:r,frontendFee:a}=e,n=await ro(t,r),i=await tk.MemezPump.getPumpState(t,n);return o=er(o,a),tk.MemezPump.pump(i,o)},ex.getSuiAmountAfterSell=async function(e,t){let{curveAmount:o,poolId:r,frontendFee:a}=e,n=await ro(t,r),i=await tk.MemezPump.getPumpState(t,n);return er(tk.MemezPump.dump(i,o),a)};let ri="0x62412b7268c35f3808336aee57a52836501f40b8ba5d936f8ad275e672befd04";async function rc(e,t){let o,r,{inputAmount:a,accountAddress:n,frontendFee:i,frontendFeeRecipient:c,extendTx:s,isSponsored:u}=e;eC(e.inCoinType===eb||e.inCoinType===em,"Input must be SUI");let{tx:l,coinIn:d}=s||{},p=eI(a,i||"0"),_=l||new ed;if(d)o=_.splitCoins(d,p),tU.transferOrDestroyZeroCoin(_,eb,d,n);else{let{coinData:e}=await en({account:n,amount:a,splits:p,coinType:eb,inheritTx:_,isSponsored:u||!1},t);o=e}if(i&&c){let[e,t]=o;r=e,_.transferObjects([t],_.pure.address(c||n))}else[r]=o;return{tx:_,coinOut:r}}async function rs(e,t,o){if(eC(t.outCoinType===eb||t.outCoinType===em,"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}}(tU||(tU={})).transferOrDestroyZeroCoin=function(e,t,o,r){e.moveCall({target:`${ri}::utils::transfer_or_destroy`,typeArguments:[t],arguments:[o,e.pure.address(r)]})};var ru=tG||(tG={});async function rl(e){let t=e||new ed;return t.moveCall({target:`${tL.PACKAGE_ID_V4}::memez_allowed_versions::get_allowed_versions`,arguments:[t.object(tL.MEMEZ_AV_OBJECT_ID)],typeArguments:[]})}ru.getAllowedVersions=rl,ru.buildBuyTx=async function(e,t){eC(!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);eC(r,"Coin out is required");let a=o.moveCall({target:`${tL.PACKAGE_ID_V4}::memez_pump::pump`,typeArguments:[e.outCoinType,eb],arguments:[o.object(e.poolId),r,o.pure.vector("address",[]),o.pure.vector("vector<u8>",[]),o.pure.u64(e.minAmountOut),await rl(o)]});return{tx:o,coinOut:a}},ru.buildSellTx=async function(e,t){eC(e.outCoinType===eb||e.outCoinType===em,"Output must be SUI");let o=await ro(t,e.poolId),{tx:r,coinData:a}=await en({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[n]=a,[i]=r.moveCall({target:`${tL.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 rl(r)]});return await rs(r,e,i)};let rd=new z({network:Z.MAINNET,fullNodeUrl:eg("mainnet")});function rp(){return rd}(eD=tj||(tj={})).getCurveAmountAfterBuy=async function(e){let{suiAmount:t,poolId:o,frontendFee:r}=e;t=er(t,r);let{memeAmountOut:a}=await rp().quotePump({pool:o,amount:t});return a},eD.getSuiAmountAfterSell=async function(e){let{curveAmount:t,poolId:o,frontendFee:r}=e,{quoteAmountOut:a}=await rp().quoteDump({pool:o,amount:t});return er(a,r)};var r_=tK||(tK={});async function rm(e,t){let{tx:o,coinOut:r}=await rc(e,t);eC(r,"Coin out is required");let{memeCoin:a,tx:n}=await rp().pump({pool:e.poolId,quoteCoin:r,minAmountOut:e.minAmountOut,tx:o});return{tx:n,coinOut:a}}async function rf(e,t){eC(ef(e.outCoinType),"Output must be SUI");let{tx:o,coinData:r}=await en({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[a]=r,{quoteCoin:n,tx:i}=await rp().dump({pool:e.poolId,memeCoin:a,tx:o,minAmountOut:e.minAmountOut});return await rs(i,e,n)}r_.buildBuyTx=rm,r_.buildSellTx=rf,r_.getBuyTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:n,walletAddress:i,tradeFee:c},s){eC(ef(t),"coinInType must be SUI for buy transaction"),eC(o!==t,"coinOutType must be different from coinInType"),eC(n>=0&&n<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),eC(e>0,"coinInAmount must be greater than 0");let u=BigInt(new a((await tj.getCurveAmountAfterBuy({poolId:r,suiAmount:e,frontendFee:c?c.tradeFeePercent:void 0})).toString()).multipliedBy(1-n).toFixed(0,3)),{tx:l,coinOut:d}=await rm({accountAddress:i,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:u.toString(),poolId:r,frontendFee:c?c.tradeFeePercent:void 0,frontendFeeRecipient:c?c.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},s);eC(d,"Coin out is required"),l.transferObjects([d],l.pure.address(i)),l.setSender(i);let p=await ec(s,l,i,0);return(l=await es({inheritTx:l,sender:i,feeAmount:p,suiInputAmount:e},s)).build({client:s})},r_.getSellTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:n,walletAddress:i,tradeFee:c},s){eC(ef(o),"coinOutType must be SUI for sell transaction"),eC(o!==t,"coinOutType must be different from coinInType"),eC(n>=0&&n<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),eC(e>0,"coinInAmount must be greater than 0");let u=BigInt(new a((await tj.getSuiAmountAfterSell({poolId:r,curveAmount:e,frontendFee:c?c.tradeFeePercent:void 0})).toString()).multipliedBy(1-n).toFixed(0,3)),{tx:l,coinOut:d}=await rf({accountAddress:i,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:u.toString(),poolId:r,frontendFee:c?c.tradeFeePercent:void 0,frontendFeeRecipient:c?c.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},s);eC(d,"Coin out is required"),l.transferObjects([d],l.pure.address(i)),l.setSender(i);let p=await ec(s,l,i,0);return(l=await es({inheritTx:l,sender:i,feeAmount:p},s)).build({client:s})};var rA=((ew={}).BLAST_FUN="BLAST_FUN",ew.MOONBAGS="MOONBAGS",ew);(eL=tq||(tq={})).PACKAGE_ID="0xb8df325010942634a4afb3db3901ee215546af43a4ec4af781e7213b0bba7290",eL.CONFIG_OBJECT_ID="0x74aecf86067c6913960ba4925333aefd2b1f929cafca7e21fd55a8f244b70499",eL.LOCK_CONFIG_OBJECT_ID="0xfb09822d9808980abd04c51321adb850701f5f55535c6206658ef4d910c3e9be",eL.BURN_MANAGER_OBJECT_ID="0x1d94aa32518d0cb00f9de6ed60d450c9a2090761f326752ffad06b2e9404f845",eL.POOLS_OBJECT_ID="0xf699e7f2276f5c9a75944b37a0c5b5d9ddfd2471bf6242483b03ab2887d198d0",eL.GLOBAL_CONFIG_OBJECT_ID="0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f",eL.FEE_DENOMINATOR=BigInt(1e4),(eR=(ev=tY||(tY={})).Curves||(ev.Curves={})).calculateAddLiquidityCost=function(e,t,o){return e*t/(t-o)-e},eR.calculateRemoveLiquidityReturn=function(e,t,o){return t-e*t/(e+o)},eR.calculateTokenAmountReceived=function(e,t,o){return t-e*t/(e+o)},(ek=ev.Moonbags||(ev.Moonbags={})).getDynamicVirtualTokenReserves=async function(e,t){let o=await e.getDynamicFieldObject({parentId:t,name:{type:"vector<u8>",value:"virtual_token_reserves"}});if(o.data)return BigInt(o.data.content.fields.value)},ek.buyExactInReturnsWithLock=function(e){let{inputAmount:t,amountIn:o,pool:r,config:a,dynamicVirtualTokenReserves:n}=e,i=BigInt(r.virtual_sui_reserves),c=BigInt(r.virtual_token_reserves),s=BigInt(r.remain_token_reserves.fields.balance),u=ev.Curves.calculateRemoveLiquidityReturn(i,c,o),l=c-(n||s),d=u,p=o;u>l&&(d=l,p=ev.Curves.calculateAddLiquidityCost(i,c,l)+BigInt(1));let _=p*BigInt(a.platform_fee)/tq.FEE_DENOMINATOR;return eC(t>=p+_,"Input amount is less than used SUI + fee"),{receivedCurve:d,receivedSui:t-p-_}},ek.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),c=ev.Curves.calculateRemoveLiquidityReturn(n,a,t);c>i&&(c=i);let s=c*BigInt(r.platform_fee)/tq.FEE_DENOMINATOR,u=c-s;return{receivedCurve:BigInt(0),receivedSui:u}},(eN=t$||(t$={})).getCurveAmountAfterBuy=async function(e,t){let{suiAmount:o,poolId:r,frontendFee:a}=e,[n,i,c]=await Promise.all([ro(t,r),ro(t,tq.CONFIG_OBJECT_ID),tY.Moonbags.getDynamicVirtualTokenReserves(t,r)]);void 0!==a&&(o=er(o,a));let s=o*tq.FEE_DENOMINATOR/(tq.FEE_DENOMINATOR+BigInt(i.platform_fee)),{receivedCurve:u}=tY.Moonbags.buyExactInReturnsWithLock({inputAmount:o,amountIn:s,pool:n,config:i,dynamicVirtualTokenReserves:c});return u},eN.getSuiAmountAfterSell=async function(e,t){let{curveAmount:o,poolId:r,frontendFee:a}=e,[n,i]=await Promise.all([ro(t,r),ro(t,tq.CONFIG_OBJECT_ID)]),{receivedSui:c}=tY.Moonbags.sellReturns({amountIn:o,pool:n,config:i});return void 0!==a?er(c,a):c},eN.getUsedSuiForTx=async function(e,t){let{suiAmount:o,frontendFee:r}=e,a=await ro(t,tq.CONFIG_OBJECT_ID);return void 0!==r&&(o=er(o,r)),o*tq.FEE_DENOMINATOR/(tq.FEE_DENOMINATOR+BigInt(a.platform_fee))};var rg=tV||(tV={});async function rb(e,t){let{tx:o,coinOut:r}=await rc(e,t);eC(r,"Coin out is required");let a=await t$.getUsedSuiForTx({suiAmount:BigInt(e.inputAmount),frontendFee:e.frontendFee},t),[n,i]=o.moveCall({target:`${tq.PACKAGE_ID}::moonbags::buy_exact_in_returns_with_lock`,typeArguments:[e.outCoinType],arguments:[o.object(tq.CONFIG_OBJECT_ID),o.object(tq.LOCK_CONFIG_OBJECT_ID),r,o.pure.u64(a),o.pure.u64(e.minAmountOut),o.object(tq.BURN_MANAGER_OBJECT_ID),o.object(tq.POOLS_OBJECT_ID),o.object(tq.GLOBAL_CONFIG_OBJECT_ID),o.object(eA),o.object(e_)]});return tU.transferOrDestroyZeroCoin(o,eb,n,e.accountAddress),{tx:o,coinOut:i}}async function rI(e,t){eC(ef(e.outCoinType),"Output must be SUI");let{tx:o,coinData:r}=await en({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[a]=r,[n,i]=o.moveCall({target:`${tq.PACKAGE_ID}::moonbags::sell_returns`,typeArguments:[e.inCoinType],arguments:[o.object(tq.CONFIG_OBJECT_ID),a,o.pure.u64(e.minAmountOut),o.object(e_)]});return tU.transferOrDestroyZeroCoin(o,e.inCoinType,i,e.accountAddress),await rs(o,e,n)}function rT(e){return e}function rC(e){return e}function rM(e){return new Proxy(e,{get(e,t){let o=e[t];return"function"==typeof o?o.bind(e):o}})}function rO(e){return e===em?eb:e}function rE(e){return e===eb?em:e}function ry(e){return e===eb||e===em}rg.buildBuyTx=rb,rg.buildSellTx=rI,rg.getBuyTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:n,walletAddress:i,tradeFee:c},s){eC(ef(t),"coinInType must be SUI for buy transaction"),eC(o!==t,"coinOutType must be different from coinInType"),eC(n>=0&&n<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),eC(e>0,"coinInAmount must be greater than 0");let u=BigInt(new a((await t$.getCurveAmountAfterBuy({poolId:r,suiAmount:e,frontendFee:c?c.tradeFeePercent:void 0},s)).toString()).multipliedBy(1-n).toFixed(0,3)),{tx:l,coinOut:d}=await rb({accountAddress:i,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:u.toString(),poolId:r,frontendFee:c?c.tradeFeePercent:void 0,frontendFeeRecipient:c?c.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},s);eC(d,"Coin out is required"),l.transferObjects([d],l.pure.address(i)),l.setSender(i);let p=await ec(s,l,i,0);return(l=await es({inheritTx:l,sender:i,feeAmount:p,suiInputAmount:e},s)).build({client:s})},rg.getSellTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:n,walletAddress:i,tradeFee:c},s){eC(ef(o),"coinOutType must be SUI for sell transaction"),eC(o!==t,"coinOutType must be different from coinInType"),eC(n>=0&&n<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),eC(e>0,"coinInAmount must be greater than 0");let u=BigInt(new a((await t$.getSuiAmountAfterSell({poolId:r,curveAmount:e,frontendFee:c?c.tradeFeePercent:void 0},s)).toString()).multipliedBy(1-n).toFixed(0,3)),{tx:l,coinOut:d}=await rI({accountAddress:i,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:u.toString(),poolId:r,frontendFee:c?c.tradeFeePercent:void 0,frontendFeeRecipient:c?c.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},s);eC(d,"Coin out is required"),l.transferObjects([d],l.pure.address(i)),l.setSender(i);let p=await ec(s,l,i,0);return(l=await es({inheritTx:l,sender:i,feeAmount:p},s)).build({client:s})},(eU=tJ||(tJ={})).LAST_PACKAGE_ID="0x8c36ea167c5e6da8c3d60b4fc897416105dcb986471bd81cfbfd38720a4487c0",eU.newHolder=function(e){return e.moveCall({target:`${eU.LAST_PACKAGE_ID}::oracle::new_holder`,typeArguments:[],arguments:[]})},eU.getPrice=function(e){let{txb:t,coinOracleId:o,holder:r,coinPriceId:a}=e;t.moveCall({target:`${eU.LAST_PACKAGE_ID}::pyth::get_price`,typeArguments:[],arguments:[t.object(o),r,t.object(a),t.object(ei)]})},(eG=tH||(tH={})).PYTH_URLS=["https://hermes.pyth.network"],eG.WORMHOLE_STATE_ID="0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",eG.PYTH_STATE_ID="0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",eG.newPythConnections=function(e){return e||(e=eG.PYTH_URLS),e.map(e=>new Q(e,{timeout:3e3}))},eG.newPthClient=function(e){return e||(e=new ep({network:"mainnet",url:""})),new ee(e,eG.PYTH_STATE_ID,eG.WORMHOLE_STATE_ID)},eG.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 c=[];try{c=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 s=new Map;for(let e=0;e<t.length;e++)s.set(t[e],c[e]);return s},(ej=tX||(tX={})).UNIVERSAL_META_VAULT_INTEGRATION_PACKAGE_ID="0xfd12517a9fc87c6a1f2357ad13b3421fb27a8bd7ca07d5fd5934ac35733baa47",(eK=ej.MetaCoinType||(ej.MetaCoinType={})).SUPER_SUI="0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI",eK.MUSD="0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD",eK.METH="0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH",ej.VERSION_OBJ_ID="0x4696559327b35ff2ab26904e7426a1646312e9c836d5c6cff6709a5ccc30915c",ej.createCap=function(e){let t,{txb:o,coinType:r,metaCoin:a,createCapAllTypeParams:n,whitelistedAppId:i,poolId:c,pythInfoObjectIdMap:s,createCapPackageId:u,createCapModule:l,createCapFunc:d}=e,p=[a.toString()];switch(n&&p.push(r),e.metaCoin){case"0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI":t=[o.object(i),o.object(c),o.object(e.registryId)];break;case"0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD":{let r=s.get(e.pythPriceFeedIdMeta);eC(r,"Not found priceMetaId in pythObjectIdMap"),t=[o.object(i),o.object(c),o.object(r),o.object(ei)];break}case"0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH":{let r=s.get(e.pythPriceFeedIdMeta);eC(r,"Not found priceId in pythObjectIdMap");let a=s.get(e.pythPriceFeedIdEth);eC(a,"Not found priceEthFeedId in pythObjectIdMap"),t=[o.object(i),o.object(c),o.object(r),o.object(a),o.object(ei)];break}default:throw Error("Invalid MetaCoin: "+a.toString())}return o.moveCall({target:`${u}::${l}::${d}`,typeArguments:p,arguments:t})},ej.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)}},ej.isMetaCoinType=function(e){return Object.values(ej.MetaCoinType).map(e=>e.toString()).includes(e)},ej.getCreateCapAllTypeParams=function(e,t){switch(e){case"0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI":return t===ej.UNIVERSAL_META_VAULT_INTEGRATION_PACKAGE_ID;case"0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD":case"0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH":return!0;default:throw Error("Invalid MetaCoin: "+e)}};var rS=((eq={}).AFTERMATH_CPMM="aftermath_cpmm",eq.AFTERMATH_LSD="aftermath_lsd",eq.ALPHAFI_LSD="alphafi_lsd",eq.BLASTFUN="blastfun",eq.BLUEFIN_CLMM="bluefin_clmm",eq.BLUEMOVE_CPMM="bluemove_cpmm",eq.BOLT="bolt",eq.CETUS_CLMM="cetus_clmm",eq.CETUS_DLMM="cetus_dlmm",eq.DEEPBOOK_V3="deepbook_v3",eq.DIP_CPMM="dip_cpmm",eq.FLOWX_CPMM="flowx_cpmm",eq.FLOWX_CLMM="flowx_clmm",eq.FULLSAIL_CLMM="fullsail_clmm",eq.FERRA_CLMM="ferra_clmm",eq.FERRA_DLMM="ferra_dlmm",eq.HAEDAL_CPMM="haedal_cpmm",eq.HAEDAL_CPMM_V2="haedal_cpmm_v2",eq.HAEDAL_LSD="haedal_lsd",eq.HAEDAL_LSD_WAL="haedal_lsd_wal",eq.KRIYA_CLMM="kriya_clmm",eq.KRIYA_CPMM="kriya_cpmm",eq.MAGMA_ALMM="magma_almm",eq.MAGMA_CLMM="magma_clmm",eq.METASTABLE="metastable",eq.MOMENTUM_CLMM="momentum_clmm",eq.MOVEPUMP="movepump",eq.OBRIC="obric",eq.SCALLOP="scallop",eq.SEVENK_CPMM="sevenk_cpmm",eq.SEVENK_FUN="sevenk_fun",eq.SPRINGSUI="springsui",eq.SRM_CPMM="srm_cpmm",eq.STEAMM_CPMM="steamm_cpmm",eq.SUISWAP_CPMM="suiswap_cpmm",eq.STEAMM_OMM="steamm_omm",eq.STEAMM_OMM_V2="steamm_omm_v2",eq.TRADEPORT_CLMM="tradeport_clmm",eq.TURBOS_CLMM="turbos_clmm",eq.TURBOS_FUN="turbos_fun",eq.VOLO="volo",eq);!function(e){let t=[A,B,M,O,P,K,d,y,q,l,f,b,v,j,m,h,p,k,N,D,L,F,U,w,G,x,R,S,E,g,C,T];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){return e.paths.map(a)}e.TO_META_AGGREGATOR_PATH_FN_MAP={[D]:e=>{let t=r(e),o=e.extendedDetails,a=e.direction?e.target:e.from;eC(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 tX.MetaCoinType.SUPER_SUI:return eC(o.metastable_registry_id,`METASTABLE_SUPER_SUI protocol requires 'metastable_registry_id' in extendedDetails for pool ${e.id}.`),{...t,...n,protocol:rS.METASTABLE,metaCoin:a,registryId:o.metastable_registry_id};case tX.MetaCoinType.MUSD:return eC(o.metastable_price_seed,`METASTABLE_MUSD protocol requires 'metastable_price_seed' in extendedDetails for pool ${e.id}.`),{...t,...n,protocol:rS.METASTABLE,metaCoin:a,pythPriceFeedIdMeta:o.metastable_price_seed};case tX.MetaCoinType.METH:return eC(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:rS.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.`)}},[b]:e=>({...r(e),protocol:rS.DEEPBOOK_V3}),[d]:e=>{let t=e.extendedDetails;return eC(t?.aftermath_lp_supply_type,`AFTERMATH_CPMM protocol requires 'aftermath_lp_type' in extendedDetails for pool ${e.id}.`),{...r(e),protocol:rS.AFTERMATH_CPMM,coinLpType:t.aftermath_lp_supply_type}},[O]:e=>({...r(e),protocol:rS.FLOWX_CLMM,poolFeeRate:String(1e6*e.feeRate)}),[h]:e=>{let t=e.extendedDetails;return eC(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:rS.HAEDAL_CPMM,pythPriceFeedIdA:t.haedal_pmm_base_price_seed,pythPriceFeedIdB:t.haedal_pmm_quote_price_seed}},[S]:e=>{let t=e.extendedDetails;return eC(t?.haedalhmmv2_base_price_seed,`HAEDAL_CPMM_V2 protocol requires 'haedal_pyth_price_base_id' in extendedDetails for pool ${e.id}.`),{...r(e),protocol:rS.HAEDAL_CPMM_V2,pythPriceFeedIdBase:t.haedalhmmv2_base_price_seed}},[v]:e=>(eC(e.extendedDetails?.scallop_scoin_treasury,`SCALLOP protocol requires 'scallop_scoin_treasury' in extendedDetails for pool ${e.id}.`),{...r(e),protocol:rS.SCALLOP,scoinTreasury:e.extendedDetails.scallop_scoin_treasury}),[N]:e=>{let t=e.extendedDetails;return eC(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:rS.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}},[U]:e=>{let t=e.extendedDetails;return eC(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:rS.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)}},[G]:e=>{let t=e.extendedDetails;return eC(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:rS.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)}},[L]:e=>{let t=r(e);if(e.extendedDetails?.obric_coin_a_price_id&&e.extendedDetails?.obric_coin_b_price_id)return{...t,protocol:rS.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:rS.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}.`)},[R]:e=>{let t=e.extendedDetails;return eC(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:rS.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}},[K]:e=>(eC(e.extendedDetails?.turbos_fee_type,`TURBOS_CLMM protocol requires 'coinFeeType' parameter for pool ${e.id}. Provide it via the parametersMap argument.`),{...r(e),protocol:rS.TURBOS_CLMM,coinFeeType:e.extendedDetails.turbos_fee_type}),[l]:e=>({...r(e),protocol:rS.AFTERMATH_LSD}),[p]:e=>({...r(e),protocol:rS.ALPHAFI_LSD}),[m]:e=>({...r(e),protocol:rS.BLUEFIN_CLMM}),[f]:e=>({...r(e),protocol:rS.BLUEMOVE_CPMM}),[A]:e=>({...r(e),protocol:rS.CETUS_CLMM}),[g]:e=>({...r(e),protocol:rS.CETUS_DLMM}),[T]:e=>({...r(e),protocol:rS.FERRA_CLMM}),[C]:e=>({...r(e),protocol:rS.FERRA_DLMM}),[M]:e=>({...r(e),protocol:rS.FLOWX_CPMM}),[E]:e=>({...r(e),protocol:rS.FULLSAIL_CLMM}),[y]:e=>({...r(e),protocol:rS.HAEDAL_LSD}),[F]:e=>({...r(e),protocol:rS.HAEDAL_LSD_WAL}),[B]:e=>({...r(e),protocol:rS.KRIYA_CPMM}),[P]:e=>({...r(e),protocol:rS.KRIYA_CLMM}),[x]:e=>({...r(e),protocol:rS.MAGMA_CLMM}),[w]:e=>({...r(e),protocol:rS.MOMENTUM_CLMM}),[j]:e=>({...r(e),protocol:rS.SPRINGSUI}),[k]:e=>({...r(e),protocol:rS.SPRINGSUI}),[q]:e=>({...r(e),protocol:rS.VOLO})},e.toMetaAggregatorPath=a,e.toMetaAggregatorPaths=n,e.toMetaAggregatorBuildTxParams=function(e){let{tx:t,inputCoin:o,rawRoute:r,aggregatorFeeRate:a,aggregatorFeeRecipient:i,partnerFeeRate:c,partnerFeeRecipient:s,pythConnections:u,pythClient:l,minAmountOut:d,expectedAmountOut:p}=e;return{tx:t,inputCoin:o,coinInType:r.paths[0].from,coinOutType:r.paths[r.paths.length-1].target,aggregatorFeeRate:a,aggregatorFeeRecipient:i,partnerFeeRate:c,partnerFeeRecipient:s,expectedAmountOut:p??r.amountOut.toString(),minAmountOut:d??"0",pythConnections:u,pythClient:l,tradePaths:n(r)}}}(tW||(tW={})),(eY=tz||(tz={})).MAX_AMOUNT_IN="18446744073709551615",eY.LAST_PACKAGE_ID="0x03d4964588ec53d5495071af008abad2a3f0927ea00bf8b7f394dee2444cee89",eY.openSwap=function(e){let{tx:t,expectedAmountOut:o,minAmountOut:r,coinInType:a,coinOutType:n,inputCoin:i,aggregatorFeeRate:c,aggregatorFeeRecipient:s,partnerFeeRecipient:u,partnerFeeRate:l}=e,[d]=t.moveCall({target:`${eY.LAST_PACKAGE_ID}::aggregator::open_swap`,typeArguments:[a,n],arguments:[t.pure.u64(o),t.pure.u64(r),i,t.pure.u32(c),t.pure.address(s),t.pure.u32(l??0),t.pure.option("address",u)]});return d},eY.completeSwap=function(e){let{tx:t,coinOutType:o,swapSession:r}=e,[a]=t.moveCall({target:`${eY.LAST_PACKAGE_ID}::aggregator::complete_swap`,typeArguments:[o],arguments:[r]});return a},function(e){let t=[X.HOP_FUN,X.FLOWX_PMM,X.DEEPBOOK,X.IPX_TIDE,X.METASTABLE];e.SUPPORTED_PROTOCOLS=Object.values(X).filter(e=>!t.includes(e));let o={[X.FLOWX_V2]:t=>({...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:rS.FLOWX_CPMM}),[X.FLOWX_V3]:t=>(eC(void 0!==t.poolFee,`Pool fee is required for pool ${t.pool.id}`),eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.FLOWX_CLMM,poolFeeRate:t.poolFee.toString()}),[X.CETUS]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.CETUS_CLMM}),[X.CETUS_DLMM]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.CETUS_DLMM}),[X.AFTERMATH]:t=>(eC(t.lpCoinType,`AFTERMATH protocol requires lpCoinType for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:rS.AFTERMATH_CPMM,coinLpType:t.lpCoinType}),[X.AFTERMATH_LSD]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:rS.AFTERMATH_LSD}),[X.ALPHA_FI]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:rS.ALPHAFI_LSD}),[X.BLUEFIN]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.BLUEFIN_CLMM}),[X.BLUEMOVE]:t=>({...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:rS.BLUEMOVE_CPMM}),[X.DEEPBOOK_V3]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.DEEPBOOK_V3}),[X.FERRA_CLMM]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.FERRA_CLMM}),[X.FERRA_DLMM]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.FERRA_DLMM}),[X.FULL_SAIL]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.FULLSAIL_CLMM}),[X.HAEDAL]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:rS.HAEDAL_LSD}),[X.HAEDAL_PMM]:t=>{let o=t.oracles;return eC(o&&o.length>=2,`HAEDAL_CPMM protocol requires oracle price feeds for pool ${t.pool.id}.`),eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.HAEDAL_CPMM,pythPriceFeedIdA:o[0].priceId,pythPriceFeedIdB:o[1].priceId}},[X.KRIYA_DEX]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.KRIYA_CPMM}),[X.KRIYA_V3]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.KRIYA_CLMM}),[X.MAGMA_FINANCE]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.MAGMA_CLMM}),[X.MAGMA_ALMM]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.MAGMA_ALMM}),[X.MOMENTUM_FINANCE]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.MOMENTUM_CLMM}),[X.OBRIC]:t=>(eC(t.xPriceId&&t.yPriceId,`OBRIC protocol requires price feeds for pool ${t.pool.id}`),eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.OBRIC,priceInfoObjIdA:t.xPriceId,priceInfoObjIdB:t.yPriceId}),[X.SPRING_SUI]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:rS.SPRINGSUI}),[X.STEAMM]:t=>{eC(void 0!==t.bankXInfo&&void 0!==t.bankYInfo,`STEAMM protocol requires bank info for pool ${t.pool.id}`),eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),eC(void 0!==t.quoterType,`quoterType is required for pool ${t.pool.id}`),eC(void 0!==t.poolInfo,`poolInfo is required for pool ${t.pool.id}`),eC(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:rS.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":{eC(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 eC(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:rS.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}`)}},[X.SEVENK_V1]:t=>{let o=t.oracles;return eC(o&&o.length>=2,`SEVENK_CPMM protocol requires oracle price feeds for pool ${t.pool.id}.`),eC(t.poolStructTag,`SEVENK_V1 protocol requires poolStructTag for pool ${t.pool.id}`),eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.SEVENK_CPMM,coinLpType:t.poolStructTag,pythPriceFeedIdA:o[0].priceId,pythPriceFeedIdB:o[1].priceId,oracleConfigA:o[0].oracleId??"",oracleConfigB:o[1].oracleId??""}},[X.SUI_REWARDS]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.SRM_CPMM}),[X.TURBOS_FIANCE]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.TURBOS_CLMM,coinFeeType:t.poolStructTag?t.poolStructTag.split("<")[1].split(",")[2].trim().replace(">",""):""}),[X.VOLO_LSD]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:rS.VOLO}),[X.TRADEPORT]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),eC(void 0!==t.poolFee,`Pool fee is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,poolFeeRate:t.poolFee.toString(),protocol:rS.TRADEPORT_CLMM}),[X.TURBOS_FUN]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.TURBOS_FUN}),[X.BLUEMOVE_FUN]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,expectedAmountOut:t.amountOut.toString(),protocol:rS.MOVEPUMP}),[X.SEVEN_K_FUN]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.SEVENK_FUN}),[X.DIPCOIN]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.DIP_CPMM}),[X.BOLT]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.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=tz.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.toMetaAggregatorBuildTxParams=function(e){let{tx:t,rawRoute:o,inputCoin:a,partnerFeeRate:n,partnerFeeRecipient:i,aggregatorFeeRecipient:c,aggregatorFeeRate:s,pythClient:u,expectedAmountOut:l,minAmountOut:d,pythConnections:p}=e;return{tx:t,coinInType:o.coinIn.coinType,coinOutType:o.coinOut.coinType,inputCoin:a,expectedAmountOut:l??o.amountOut.toString(),minAmountOut:d??o.priceImpact.add(1).multiply(o.amountOut.toString()).divide(100).toFixed(0,void 0,0),aggregatorFeeRecipient:c,aggregatorFeeRate:s,partnerFeeRecipient:i,partnerFeeRate:n,tradePaths:r(o.routes),pythClient:u,pythConnections:p}}}(tZ||(tZ={})),function(e){let t=new Set(["bluefinx"]);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=>{eC(e.extra?.poolStructTag,"Aftermath protocol requires poolStructTag");let[t]=i(e.extra.poolStructTag);return{...n(e),protocol:rS.AFTERMATH_CPMM,coinLpType:t}},flowx_v3:e=>{eC(e.extra?.swapFeeRate,"flowx_v3 protocol requires swapFeeRate");let t=e.extra.swapFeeRate;return{...n(e),protocol:rS.FLOWX_CLMM,poolFeeRate:t}},turbos:e=>{eC(e.extra?.poolStructTag,"turbos protocol requires poolStructTag");let[t,o,r]=i(e.extra.poolStructTag);return{...n(e),protocol:rS.TURBOS_CLMM,coinFeeType:r}},obric:e=>(eC(e.extra?.oracles,"obric protocol requires oracles"),{...n(e),protocol:rS.OBRIC,pythPriceFeedIdA:c(e.extra.oracles[0]),pythPriceFeedIdB:c(e.extra.oracles[1])}),haedal_pmm:e=>(eC(e.extra.oracles,"haedal_pmm protocol requires oracles"),{...n(e),protocol:rS.HAEDAL_CPMM,pythPriceFeedIdA:c(e.extra.oracles[0]),pythPriceFeedIdB:c(e.extra.oracles[1])}),sevenk_v1:e=>{eC(e.extra?.poolStructTag,"sevenk_v1 protocol requires poolStructTag"),eC(e.extra?.oracleConfigX,"sevenk_v1 protocol requires oracleConfigX"),eC(e.extra?.oracleConfigY,"sevenk_v1 protocol requires oracleConfigY");let t=e.extra.oracles?.[0]?.Pyth?.bytes,o=e.extra.oracles?.[1]?.Pyth?.bytes;eC(t,"sevenk_v1 protocol requires pythPriceFeedIdA"),eC(o,"sevenk_v1 protocol requires pythPriceFeedIdB");let[r,a,c]=i(e.extra.poolStructTag);return{...n(e),protocol:rS.SEVENK_CPMM,coinLpType:c,pythPriceFeedIdA:t,pythPriceFeedIdB:o,oracleConfigA:e.extra.oracleConfigX,oracleConfigB:e.extra.oracleConfigY}},steamm:e=>{eC(e.extra?.poolStructTag,"steamm protocol requires poolStructTag"),eC(e.extra?.bankAStructTag,"steamm protocol requires bankAStructTag"),eC(e.extra?.lendingMarketA,"steamm protocol requires lendingMarketA"),eC(e.extra?.bankA,"steamm protocol requires bankA"),eC(e.extra?.bankB,"steamm protocol requires bankB");let[t,o,r,a]=i(e.extra.poolStructTag),[c,s,u]=i(e.extra.bankAStructTag);return{...n(e),protocol:rS.STEAMM_CPMM,bankAId:e.extra.bankA,bankBId:e.extra.bankB,lendingMarketId:e.extra.lendingMarketA,lendingMarketType:c,bCoinAType:t,bCoinBType:o,lpBCoinType:a}},steamm_oracle_quoter:e=>{eC(e.extra?.poolStructTag,"steamm_oracle_quoter protocol requires poolStructTag"),eC(e.extra?.bankAStructTag,"steamm_oracle_quoter protocol requires bankAStructTag"),eC(e.extra?.lendingMarketA,"steamm_oracle_quoter protocol requires lendingMarketA"),eC(e.extra?.oracleRegistry,"steamm_oracle_quoter protocol requires oracleRegistry"),eC(e.extra?.bankA,"steamm_oracle_quoter protocol requires bankA"),eC(e.extra?.bankB,"steamm_oracle_quoter protocol requires bankB"),eC(e.extra?.oracleIndexes,"steamm_oracle_quoter protocol requires oracleIndexes"),eC(e.extra?.oracles,"steamm_oracle_quoter protocol requires oracles");let[t,o,r,a]=i(e.extra?.poolStructTag),[s,u,l]=i(e.extra.bankAStructTag),[d,p]=e.extra.oracleIndexes;return{...n(e),protocol:rS.STEAMM_OMM,bankAId:e.extra.bankA,bankBId:e.extra.bankB,lendingMarketId:e.extra.lendingMarketA,lendingMarketType:s,bCoinAType:t,bCoinBType:o,lpBCoinType:a,pythPriceFeedIdA:c(e.extra.oracles[0]),pythPriceFeedIdB:c(e.extra.oracles[1]),oracleRegistryId:e.extra.oracleRegistry,oracleIndexA:d,oracleIndexB:p}},steamm_oracle_quoter_v2:e=>{eC(e.extra?.poolStructTag,"steamm_oracle_quoter_v2 protocol requires poolStructTag"),eC(e.extra?.bankAStructTag,"steamm_oracle_quoter_v2 protocol requires bankAStructTag"),eC(e.extra?.lendingMarketA,"steamm_oracle_quoter_v2 protocol requires lendingMarketA"),eC(e.extra?.oracleRegistry,"steamm_oracle_quoter_v2 protocol requires oracleRegistry"),eC(e.extra?.bankA,"steamm_oracle_quoter_v2 protocol requires bankA"),eC(e.extra?.bankB,"steamm_oracle_quoter_v2 protocol requires bankB"),eC(e.extra?.oracleIndexes,"steamm_oracle_quoter_v2 protocol requires oracleIndexes"),eC(e.extra?.oracles,"steamm_oracle_quoter_v2 protocol requires oracles");let[t,o,r,a]=i(e.extra?.poolStructTag),[s,u,l]=i(e.extra.bankAStructTag),[d,p]=e.extra.oracleIndexes;return{...n(e),protocol:rS.STEAMM_OMM_V2,bankAId:e.extra.bankA,bankBId:e.extra.bankB,lendingMarketId:e.extra.lendingMarketA,lendingMarketType:s,bCoinAType:t,bCoinBType:o,lpBCoinType:a,pythPriceFeedIdA:c(e.extra.oracles[0]),pythPriceFeedIdB:c(e.extra.oracles[1]),oracleRegistryId:e.extra.oracleRegistry,oracleIndexA:d,oracleIndexB:p}},cetus:e=>({...n(e),protocol:rS.CETUS_CLMM}),bluemove:e=>({...n(e),protocol:rS.BLUEMOVE_CPMM}),kriya:e=>({...n(e),protocol:rS.KRIYA_CPMM}),kriya_v3:e=>({...n(e),protocol:rS.KRIYA_CLMM}),deepbook_v3:e=>({...n(e),protocol:rS.DEEPBOOK_V3}),flowx:e=>({...n(e),protocol:rS.FLOWX_CPMM}),bluefin:e=>({...n(e),protocol:rS.BLUEFIN_CLMM}),springsui:e=>({...n(e),protocol:rS.SPRINGSUI}),magma:e=>({...n(e),protocol:rS.MAGMA_CLMM}),momentum:e=>({...n(e),protocol:rS.MOMENTUM_CLMM}),fullsail:e=>({...n(e),protocol:rS.FULLSAIL_CLMM}),stsui:e=>({...n(e),protocol:rS.ALPHAFI_LSD}),suiswap:e=>({...n(e),protocol:rS.SUISWAP_CPMM}),cetus_dlmm:e=>({...n(e),protocol:rS.CETUS_DLMM}),ferra_dlmm:e=>({...n(e),protocol:rS.FERRA_DLMM}),ferra_clmm:e=>({...n(e),protocol:rS.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=tz.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 el(e||"").typeParams.map(eu)}function c(e){let t=e?.Pyth?.bytes||e?.Pyth?.price_identifier?.bytes;return eC(t,"Pyth price feed id is not found"),"0x"+ea(Uint8Array.from(t))}e.toMetaAggregatorPath=r,e.toMetaAggregatorPaths=a,e.toMetaAggregatorBuildTxParams=function(e){var t,o,r;let n,{tx:i,rawRoute:c,inputCoin:s,partnerFeeRate:u,partnerFeeRecipient:l,aggregatorFeeRecipient:d,aggregatorFeeRate:p,minAmountOut:_,pythConnections:m,pythClient:f,packageIdMap:A}=e;if(!c.routes||!c.swaps)throw Error("Invalid quoteResponse");let g=(t=c.routes,n={},t.forEach(e=>{e.hops.forEach(e=>{n[e.poolId]=e.pool})}),n),b=a((o=c.swaps,r=g,o.map(e=>{let t=r[e.poolId],o=rE(e.assetIn),a=rE(e.assetOut),n={type:rE(t?.allTokens?.[0]?.address),decimals:t?.allTokens?.[0]?.decimal},i={type:rE(t?.allTokens?.[1]?.address),decimals:t?.allTokens?.[0]?.decimal},c=o===n.type;return{...e,pool:t,assetIn:o,assetOut:a,coinX:n,coinY:i,swapXtoY:c}})));return{tx:i,coinInType:c.tokenIn,coinOutType:c.tokenOut,inputCoin:s,expectedAmountOut:c.returnAmountWithDecimal,minAmountOut:_??"0",aggregatorFeeRate:p,aggregatorFeeRecipient:d,partnerFeeRate:u,partnerFeeRecipient:l,tradePaths:b,pythConnections:m,pythClient:f,packageIdMap:A}}}(tQ||(tQ={})),(t0||(t0={})).toMetaAggregatorBuildTxParams=function(e){switch(e.sourceRoute){case"CETUS":return tW.toMetaAggregatorBuildTxParams(e);case"FLOWX":return tZ.toMetaAggregatorBuildTxParams(e);case"SEVENK":return tQ.toMetaAggregatorBuildTxParams(e)}},(e$=t6||(t6={})).POOL_REGISTRY_OBJ_ID="0xfcc774493db2c45c79f688f88d28023a3e7d98e4ee9f48bbf5c7990f651577ae",e$.PROTOCOL_FEE_VAULT_OBJ_ID="0xf194d9b1bcad972e45a7dd67dd49b3ee1e3357a00a50850c52cd51bb450e13b4",e$.TREASURY_OBJ_ID="0x28e499dff5e864a2eafe476269a4f5035f1c16f338da7be18b103499abf271ce",e$.INSURANCE_FUND_OBJ_ID="0xf0c40d67b078000e18032334c3325c47b9ec9f3d9ae4128be820d54663d14e3b",e$.REFERRAL_VAULT_OBJ_ID="0x35d35b0e5b177593d8c3a801462485572fc30861e6ce96a55af6dc4730709278",(eV=t4||(t4={})).STAKED_SUI_VAULT_OBJ_ID="0x2f8f6d5da7f13ea37daa397724280483ed062769813b6f31e9788e59cc88994d",eV.SAFE_TREASURY_OBJECT_ID="0xeb685899830dd5837b47007809c76d91a098d52aabbf61e8ac467c59e5cc4610",eV.REFERRAL_VAULT_OBJ_ID="0x4ce9a19b594599536c53edb25d22532f82f18038dc8ef618afd00fbbfb9845ef",eV.VALIDATOR_ADDRESS="0xd30018ec3f5ff1a3c75656abf927a87d7f0529e6dc89c7ddd1bd27ecb05e3db2",(eJ=t3||(t3={})).MEMEZ_AV_OBJ_ID="0x2319e3e76dfad73d8f4684bdbf42be4f32d8ce4521dd61becc8261dc918d82c0",eJ.MEMEZ_FUN_OBJ_ID="0x943948644f06942b8b660ca541b10a05f6a7be23ce4069944a3665e7e698930d",eJ.IPX_TREASURY_STANDARD_OBJ_ID="0x051e11b667659192917db94e5175fa066909d4dfc04d2663528f499c4afc6999",(t1||(t1={})).GLOBAL_CONFIG_OBJ_ID="0x03db251ba509a8d5d8777b6338836082335d93eecbdd09a11e190a1cff51c352",(t2||(t2={})).DEX_INFO_OBJ_ID="0x3f2d9f724f4a1ce5e71676448dc452be9a6243dac9c5b975a588c8c867066e92",(t9||(t9={})).ORACLE_OBJ_ID="0xfa3975b98f3d0e3df18ed88ae6e69db31836b3f4212df02fae144b1e5a89ca8e",(t8||(t8={})).GLOBAL_CONFIG="0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f",(eH=t5||(t5={})).GLOBAL_CONFIG_OBJ_ID="0xf31b605d117f959b9730e8c07b08b856cb05143c5e81d5751c90d2979e82f599",eH.VERSIONED_OBJ_ID="0x05370b2d656612dd5759cbe80463de301e3b94a921dfc72dd9daa2ecdeb2d0a8",(eX=t7||(t7={})).GLOBAL_CONFIG="0x699d455ab8c5e02075b4345ea1f91be55bf46064ae6026cc2528e701ce3ac135",eX.DEEP_TYPE="0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP",(oe||(oe={})).GLOBAL_OBJ_ID="0x935229a3c32399e9fb207ec8461a54f56c6af5744c64442435ac217ab28f0d59",(ot||(ot={})).FERRA_GLOBAL_CONFIG_ID="0x2cd8382c19e6994f16df204e9b8cddd04bdc486c251de75ac66ac4e48e3e7081",(oo||(oo={})).FERRA_GLOBAL_CONFIG_ID="0x5c9dacf5a678ea15b8569d65960330307e23d429289ca380e665b1aa175ebeca",(or||(or={})).CONTAINER_OBJ_ID="0xb65dcbf63fd3ad5d0ebfbf334780dc9f785eff38a4459e37ab08fa79576ee511",(eW=oa||(oa={})).GLOBAL_CONFIG_OBJ_ID="0xe93baa80cb570b3a494cbf0621b2ba96bc993926d34dc92508c9446f9a05d615",eW.REWARDER_VAULT_OBJ_ID="0xfb971d3a2fb98bde74e1c30ba15a3d8bef60a02789e59ae0b91660aeed3e64e1",eW.STATS_OBJ_ID="0x6822a33d1d971e040c32f7cc74507010d1fe786f7d06ab89135083ddb07d2dc2",eW.PRICE_PROVIDER_OBJ_ID="0x854b2d2c0381bb656ec962f8b443eb082654384cf97885359d1956c7d76e33c9",(on||(on={})).VALIDATOR_ID="0x7b3ba6de2ae58283f60d5b8dc04bb9e90e4796b3b2e0dea75569f491275242e7",(oi||(oi={})).VERSION_OBJ_ID="0xf5145a7ac345ca8736cf8c76047d00d6d378f30e81be6f6eb557184d9de93c78",(ez=oc||(oc={})).FACTORY_OBJ_ID="0xedb456e93e423dd75a8ddebedd9974bb661195043027e32ce01649d6ccee74cf",ez.GLOBAL_CONFIG_OBJ_ID="0x4c4e1402401f72c7d8533d0ed8d5f8949da363c7a3319ccef261ffe153d32f8a",(os||(os={})).GLOBAL_CONFIG="0x4c4e1402401f72c7d8533d0ed8d5f8949da363c7a3319ccef261ffe153d32f8a",(ou||(ou={})).VERSION_OBJ_ID="0x2375a0b1ec12010aaea3b2545acfa2ad34cfbba03ce4b59f4c39e1e25eed1b2a",(ol||(ol={})).CONFIGURATION_OBJ_ID="0xd746495d04a6119987c2b9334c5fefd7d8cff52a8a02a3ea4e3995b9a041ace4",(od||(od={})).STATE_OBJ_ID="0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",(eZ=op||(op={})).VERSION_OBJ_ID="0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7",eZ.MARKET_OBJ_ID="0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9",(o_||(o_={})).ORACLE_HOLDER_OBJ_ID="0x8c36ea167c5e6da8c3d60b4fc897416105dcb986471bd81cfbfd38720a4487c0",(om||(om={})).CONFIGURATION_OBJ_ID="0xe79fff6c77d81f9a8efb729e25bf0037deec42518d40b978f274a4915d7e1ec9",(of||(of={})).CONFIG_OBJ_ID="0x881fd0a12ca4fa48991f5c27ba57d17f1ec147fa15f43b3cb760cc3bd7ba9402",(e0=(eQ=oA||(oA={})).Oracle||(eQ.Oracle={})).PACKAGE_ID="0xe84b649199654d18c38e727212f5d8dacfc3cf78d60d0a7fc85fd589f280eb2b",e0.getPythPrice=function(e){let{txb:t,oracleRegistryId:o,priceInfoId:r,oracleIndex:a}=e;return t.moveCall({target:`${e0.PACKAGE_ID}::oracles::get_pyth_price`,typeArguments:[],arguments:[t.object(o),t.object(r),t.pure.u64(a),t.object(ei)]})},(e6=og||(og={})).VERSIONED="0x0309b66202e9aaf470081fffee7ffc0fbd50e3b7400d4f56fd06502e4dbbd676",e6.POOL_REGISTRY="0xcd0a614c4cbbf173f59dee2602c43a1717f283215ed7a0bb1d55d786af16fbcd",(ob||(ob={})).POOL_VERSIONED="0xf1cf0e81048df168ebeb1b8030fad24b3e0b53ae827c25053fff0779c1445b6f",(oI||(oI={})).CONFIGURATION_OBJ_ID="0xd86685fc3c3d989385b9311ef55bfc01653105670209ac4276ebb6c83d7df928",(oT||(oT={})).VOLO_CERT_METADATA_ID="0x680cd26af32b2bde8d3361e804c53ec1d1cfe24c7f039eb7f549e8dfde389a60",(oC||(oC={})).STAKING_OBJ_ID="0x10b9d30c28448939ce6c4d6c6e0ffce4a7f8a4ada8248bdad09ef8b70e4a3904",(e4=oM||(oM={})).LAST_PACKAGE_ID="0x313c8d7a61113ace4c53846c417b34346863df43798c6f8b176e971304804703",e4.swap=function(e){eC(e.protocol===rS.AFTERMATH_CPMM);let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:c,coinLpType:s,packageId:u}=e;t.moveCall({target:`${u??e4.LAST_PACKAGE_ID}::aftermath_cpmm_router::swap`,typeArguments:[i,c,s],arguments:[o,t.object(r),t.object(t6.POOL_REGISTRY_OBJ_ID),t.object(t6.PROTOCOL_FEE_VAULT_OBJ_ID),t.object(t6.TREASURY_OBJ_ID),t.object(t6.INSURANCE_FUND_OBJ_ID),t.object(t6.REFERRAL_VAULT_OBJ_ID),t.pure.bool(a),t.pure.u64(n)]})},(e3=oO||(oO={})).LAST_PACKAGE_ID="0xea33b5b50f33dbf0c1d6e7fb921f8226a033914cf71c6e8f1ef0af706ea3fa09",e3.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??e3.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(eo),t.object(t4.REFERRAL_VAULT_OBJ_ID),t.pure.address(t4.VALIDATOR_ADDRESS),t.pure.bool(r),t.pure.u64(a)]})},(e1=oE||(oE={})).LAST_PACKAGE_ID="0xf1fdbaaa5dbd41b41639a961b47b851fa30e6e11078c2ceb676c50953349ae99",e1.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinBType:i,packageId:c}=e;t.moveCall({target:`${c??e1.LAST_PACKAGE_ID}::alphafi_lsd_router::swap`,typeArguments:[i],arguments:[o,t.object(r),t.object(eo),t.pure.bool(n),t.pure.u64(a)]})},(e2=oy||(oy={})).LAST_PACKAGE_ID="0xa65e440f75ea363d8b274f96a28305fdcf0ccf706d49be6658fc4e9faf2cae8e",e2.swap=function(e){eC(e.protocol===rS.BLASTFUN,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,packageId:c}=e;t.moveCall({target:`${c??e2.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)]})},(e9=oS||(oS={})).LAST_PACKAGE_ID="0x49358d990963f2dcffd6d16b37bf34f9668837f46bc120ae9925a27f0c2f2241",e9.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinAType:i,coinBType:c,packageId:s}=e;t.moveCall({target:`${s??e9.LAST_PACKAGE_ID}::bluefin_clmm_router::swap`,typeArguments:[i,c],arguments:[o,t.object(t1.GLOBAL_CONFIG_OBJ_ID),t.object(r),t.pure.bool(n),t.pure.u64(a),t.object(ei)]})},(e8=oh||(oh={})).LAST_PACKAGE_ID="0x6e765c6fe8deea8d29363eb702560c4f7a8da58fb7e853f14ba25755b768e281",e8.swap=function(e){let{txb:t,swapContext:o,aToB:r,amountIn:a,coinAType:n,coinBType:i,packageId:c}=e;t.moveCall({target:`${c??e8.LAST_PACKAGE_ID}::bluemove_cpmm_router::swap`,typeArguments:[n,i],arguments:[o,t.object(t2.DEX_INFO_OBJ_ID),t.pure.bool(r),t.pure.u64(a)]})},(e5=oF||(oF={})).LAST_PACKAGE_ID="0xbaae4fe32c083b1de62c3d3f76ed6b302ef4f23c8c0778ef45bea206b7e1c0ec",e5.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:c,packageId:s}=e;t.moveCall({target:`${s??e5.LAST_PACKAGE_ID}::bolt_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(t9.ORACLE_OBJ_ID),t.object(ei),t.pure.u64(c),t.pure.bool(i)]})},(e7=oB||(oB={})).LAST_PACKAGE_ID="0x2c0d2b6ae0dfaf4b6f5eca5e69a5998fb3ca277159cb479d7ef271bd0eb74fe2",e7.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:c,packageId:s}=e;t.moveCall({target:`${s??e7.LAST_PACKAGE_ID}::cetus_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(t8.GLOBAL_CONFIG),t.object(n),t.pure.bool(i),t.pure.u64(c),t.object(ei)]})},(te=oP||(oP={})).LAST_PACKAGE_ID="0xe290913eb5118dfb92a1286885dd59c979bcee09464e406a68c21f0a059c4d11",te.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinAType:i,coinBType:c,packageId:s}=e,u=[o,t.object(t5.GLOBAL_CONFIG_OBJ_ID),t.object(t5.VERSIONED_OBJ_ID),t.object(r),t.pure.bool(n),t.pure.u64(a),t.object(ei)];t.moveCall({target:`${s??te.LAST_PACKAGE_ID}::cetus_dlmm_router::swap`,typeArguments:[i,c],arguments:u})},(tt=ox||(ox={})).LAST_PACKAGE_ID="0x65fe133263cda79fe338fe95dacd601be17a784ccae740f7481e6971d93c4e6c",tt.swap=function(e){eC(e.protocol===rS.DEEPBOOK_V3,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:c,deepFeeCoin:s,packageId:u}=e,l=s||t.moveCall({target:"0x2::coin::zero",typeArguments:[t7.DEEP_TYPE]});t.moveCall({target:`${u??tt.LAST_PACKAGE_ID}::deepbook_v3_router::swap`,typeArguments:[r,a],arguments:[o,t.object(t7.GLOBAL_CONFIG),t.object(n),t.pure.u64(c),t.pure.bool(i),l,t.object(ei)]})},(to=oD||(oD={})).LAST_PACKAGE_ID="0x161cdef58f67ae147c361385b3b41f551cd07c23638fd12233a5bd03e5289300",to.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:c,packageId:s}=e;t.moveCall({target:`${s??to.LAST_PACKAGE_ID}::dip_cpmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(oe.GLOBAL_OBJ_ID),t.object(r),t.pure.bool(i),t.pure.u64(c)]})},(tr=ow||(ow={})).LAST_PACKAGE_ID="0xdb6d9b5e539fb67aa72bac8e8b6ea74c431847c8886d6b1affec57a19ec47caa",tr.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:c,packageId:s}=e;t.moveCall({target:`${s??tr.LAST_PACKAGE_ID}::ferra_clmm_router::swap`,typeArguments:[i,c],arguments:[o,t.object(ot.FERRA_GLOBAL_CONFIG_ID),t.object(r),t.pure.bool(a),t.pure.u64(n),t.object("0x6")]})},(ta=oL||(oL={})).LAST_PACKAGE_ID="0x798955f14b7e64b524285a3971fa2a6d91404a38fbaa156f2dc8fe5e8106cffa",ta.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:c,packageId:s}=e;t.moveCall({target:`${s??ta.LAST_PACKAGE_ID}::ferra_dlmm_router::swap`,typeArguments:[i,c],arguments:[o,t.object(oo.FERRA_GLOBAL_CONFIG_ID),t.object(r),t.pure.bool(a),t.pure.u64(n),t.object(ei)]})},(tn=ov||(ov={})).POOL_REGISTRY_OBJ_ID="0x27565d24a4cd51127ac90e4074a841bbe356cca7bf5759ddc14a975be1632abc",tn.VERSIONED_OBJ_ID="0x67624a1533b5aff5d0dfcf5e598684350efd38134d2d245f475524c03a64e656",(ti=oR||(oR={})).LAST_PACKAGE_ID="0x6c7b58218fe3de367858ae10778ae55ccc5e6dac31cc01397c6777cd44d798c0",ti.swap=function(e){eC(e.protocol===rS.FLOWX_CLMM);let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolFeeRate:n,amountIn:i,aToB:c,packageId:s}=e;t.moveCall({target:`${s??ti.LAST_PACKAGE_ID}::flowx_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(ov.POOL_REGISTRY_OBJ_ID),t.object(ov.VERSIONED_OBJ_ID),t.pure.u64(n),t.pure.u64(i),t.pure.bool(c),t.object(ei)]})},(tc=ok||(ok={})).LAST_PACKAGE_ID="0x9717424f4d232de2bf39a993c8850a446d5f83cf0598c66c8d6957c1e77465c8",tc.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,packageId:c}=e;t.moveCall({target:`${c??tc.LAST_PACKAGE_ID}::flowx_cpmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(or.CONTAINER_OBJ_ID),t.pure.bool(n),t.pure.u64(i)]})},(ts=oN||(oN={})).LAST_PACKAGE_ID="0x9cdd5e851502a2d6c98e9b8facd4cb267b3bad5c9e502ce193214653bf2420d1",ts.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:c,packageId:s}=e;t.moveCall({target:`${s??ts.LAST_PACKAGE_ID}::fullsail_clmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(oa.GLOBAL_CONFIG_OBJ_ID),t.object(oa.REWARDER_VAULT_OBJ_ID),t.object(oa.STATS_OBJ_ID),t.object(oa.PRICE_PROVIDER_OBJ_ID),t.object(r),t.pure.bool(i),t.pure.u64(c),t.object(ei)]})},(tu=oU||(oU={})).LAST_PACKAGE_ID="0x8fbaa53b3b6fb58f41a61c9f40756a0b0a20558d48d1c067fc767804bad6d8ba",tu.swap=function(e){eC(e.protocol===rS.HAEDAL_CPMM);let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:c,pythPriceFeedIdA:s,pythPriceFeedIdB:u,pythInfoObjectIdMap:l,packageId:d}=e,p=l.get(s),_=l.get(u);eC(p,"Not found priceInfoAId in pythObjectIdMap"),eC(_,"Not found priceInfoBId in pythObjectIdMap"),t.moveCall({target:`${d??tu.LAST_PACKAGE_ID}::haedal_cpmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(p),t.object(_),t.pure.u64(c),t.pure.bool(i),t.object(ei)]})},(tl=oG||(oG={})).LAST_PACKAGE_ID="0xbe1a2bd1f72f1ca996650e0e49b006a780bef03b1e1d9d899081a3d5f0f99483",tl.swap=function(e){eC(e.protocol===rS.HAEDAL_CPMM_V2);let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:c,pythPriceFeedIdBase:s,pythInfoObjectIdMap:u,packageId:l}=e,d=u.get(s);eC(d,"Not found pythPriceBaseId in pythObjectIdMap"),t.moveCall({target:`${l??tl.LAST_PACKAGE_ID}::haedal_cpmm_v2_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(d),t.pure.u64(c),t.pure.bool(i),t.object(ei)]})},(td=oj||(oj={})).LAST_PACKAGE_ID="0x6689cdc1b4525a10039490d33eca1624483d1fdd1c3df01106c7b3d7b5d7527a",td.swap=function(e){let{txb:t,swapContext:o,aToB:r,amountIn:a,poolId:n,packageId:i}=e;t.moveCall({target:`${i??td.LAST_PACKAGE_ID}::haedal_lsd_router::swap`,arguments:[o,t.object(n),t.object(eo),t.pure.bool(r),t.pure.u64(a)]})},(tp=oK||(oK={})).LAST_PACKAGE_ID="0x43cb9b94ac81ba5e99488c412289804487f04ffa338970c632d1ee93cd858fd6",tp.swap=function(e){eC(e.protocol===rS.HAEDAL_LSD_WAL),eC(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??tp.LAST_PACKAGE_ID}::haedal_wal_lsd_router::swap`,arguments:[o,t.object(oC.STAKING_OBJ_ID),t.object(r),t.pure.id(on.VALIDATOR_ID),t.pure.bool(a),t.pure.u64(n)]})},(t_=oq||(oq={})).LAST_PACKAGE_ID="0x7a5a9033e8c020b8a34b5901660e9780edc6b4e2cac1375d89b5761b52955f63",t_.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:c,packageId:s}=e;t.moveCall({target:`${s??t_.LAST_PACKAGE_ID}::kriya_clmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(oi.VERSION_OBJ_ID),t.pure.bool(i),t.pure.u64(c),t.object(ei)]})},(tm=oY||(oY={})).LAST_PACKAGE_ID="0x7c2f2251b4c4bddb75f049514a666052f8fee0f7bb5ad3da479faa56459f822c",tm.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:c,packageId:s}=e;t.moveCall({target:`${s??tm.LAST_PACKAGE_ID}::kriya_cpmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.pure.bool(i),t.pure.u64(c)]})},(tf=o$||(o$={})).LAST_PACKAGE_ID="0xd8b58cd8a50664780d4ebf9787e1149d574c3261697bb419391a438fad3fe179",tf.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:c,packageId:s}=e;t.moveCall({target:`${s??tf.LAST_PACKAGE_ID}::magma_almm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(oc.FACTORY_OBJ_ID),t.object(oc.GLOBAL_CONFIG_OBJ_ID),t.pure.u64(c),t.pure.bool(i),t.object(ei)]})},(tA=oV||(oV={})).LAST_PACKAGE_ID="0xd25cfebaa3acd86004c29e78b1cabf097f3d9645a4a5cc9090684ae60b411c48",tA.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:c,packageId:s}=e;t.moveCall({target:`${s??tA.LAST_PACKAGE_ID}::magma_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(os.GLOBAL_CONFIG),t.object(n),t.pure.bool(i),t.pure.u64(c),t.object(ei)]})},(tg=oJ||(oJ={})).LATEST_PACKAGE_ID="0x33d2b3b847d6c5e556726e10eb32c527236e3eb2a9529cc3f47e4e9fc2d8398c",tg.swap=function(e){let t,o,r;eC(e.protocol===rS.METASTABLE,"Invalid protocol");let{txb:a,swapContext:n,aToB:i,amountIn:c,coinAType:s,coinBType:u,poolId:l,metaCoin:d,packageId:p}=e,[_,m]=i?[s,u]:[u,s];_===d?(r="swap_from_meta_coin",t=[d,m],o=[tX.createCap({coinType:m,createCapFunc:"create_withdraw_cap",...e})]):m===d?(r="swap_to_meta_coin",t=[d,_],o=[tX.createCap({coinType:_,createCapFunc:"create_deposit_cap",...e})]):(r="swap",t=[d,_,m],o=[tX.createCap({coinType:_,createCapFunc:"create_deposit_cap",...e}),tX.createCap({coinType:m,createCapFunc:"create_withdraw_cap",...e})]),a.moveCall({target:`${p??tg.LATEST_PACKAGE_ID}::metastable_router::${r}`,typeArguments:t,arguments:[n,a.object(l),a.object(tX.VERSION_OBJ_ID),...o,a.pure.u64(c)]})},(tb=oH||(oH={})).LAST_PACKAGE_ID="0x4eb34a9295594e9051b76f821aeb7a410c3365aa53ad3d6cadd6938a6307969a",tb.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:c,packageId:s}=e;t.moveCall({target:`${s??tb.LAST_PACKAGE_ID}::momentum_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(n),t.pure.bool(i),t.pure.u64(c),t.object(ou.VERSION_OBJ_ID),t.object(ei)]})},(tI=oX||(oX={})).LAST_PACKAGE_ID="0x616abe8f75bdd5fb7c50e806410527552b3285bfac56dbcdda2388404fb87644",tI.swap=function(e){eC(e.protocol===rS.MOVEPUMP,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,expectedAmountOut:c,packageId:s}=e;t.moveCall({target:`${s??tI.LAST_PACKAGE_ID}::movepump_router::swap`,typeArguments:[n?a:r],arguments:[o,t.object(ol.CONFIGURATION_OBJ_ID),t.object(t2.DEX_INFO_OBJ_ID),t.object(ei),t.pure.u64(c),t.pure.bool(n),t.pure.u64(i)]})},(tT=oW||(oW={})).LAST_PACKAGE_ID="0xace3bdffd6fbc1a7c8193a6ef23099e192d0037e90168274091047e8d2957171",tT.swap=function(e){let t,o;eC(e.protocol===rS.OBRIC);let{txb:r,swapContext:a,poolId:n,coinAType:i,coinBType:c,aToB:s,amountIn:u,pythInfoObjectIdMap:l,packageId:d}=e;"priceInfoObjIdA"in e?(t=e.priceInfoObjIdA,o=e.priceInfoObjIdB):(t=l.get(e.pythPriceFeedIdA),o=l.get(e.pythPriceFeedIdB),eC(t,"Not found priceInfoAId in pythObjectIdMap"),eC(o,"Not found priceInfoBId in pythObjectIdMap")),r.moveCall({target:`${d??tT.LAST_PACKAGE_ID}::obric_router::swap`,typeArguments:[i,c],arguments:[a,r.object(n),r.pure.u64(u),r.pure.bool(s),r.object(od.STATE_OBJ_ID),r.object(t),r.object(o),r.object(ei)]})},(tC=oz||(oz={})).LAST_PACKAGE_ID="0xc001df89110423025bbc9212decafaaf9ada3031f3e85712265b5f5bd5c8a156",tC.swap=function(e){eC(e.protocol===rS.SCALLOP);let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,scoinTreasury:c,packageId:s}=e;t.moveCall({target:`${s??tC.LAST_PACKAGE_ID}::scallop_router::swap`,typeArguments:[r,a],arguments:[o,t.object(op.VERSION_OBJ_ID),t.object(op.MARKET_OBJ_ID),t.object(c),t.pure.u64(i),t.pure.bool(n),t.object(ei)]})},(tM=oZ||(oZ={})).LAST_PACKAGE_ID="0xa4bfc04f1b32f7f84a654088a6aa2ed0168944b7f218bcbe0b11a23f799c6bbb",tM.swap=function(e){eC(e.protocol===rS.SEVENK_CPMM,"Invalid protocol for sevenk_cpmm_router swap");let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:c,coinLpType:s,oracleConfigA:u,oracleConfigB:l,pythPriceFeedIdA:d,pythPriceFeedIdB:p,pythInfoObjectIdMap:_,packageId:m}=e,f=_.get(d),A=_.get(p);eC(f,"Not found priceInfoAId in pythObjectIdMap"),eC(A,"Not found priceInfoBId in pythObjectIdMap");let g=tJ.newHolder(t);tJ.getPrice({txb:t,coinPriceId:d,holder:g,coinOracleId:u}),tJ.getPrice({txb:t,coinPriceId:p,holder:g,coinOracleId:l}),t.moveCall({target:`${m??tM.LAST_PACKAGE_ID}::sevenk_cpmm_router::swap`,typeArguments:[a,n,s],arguments:[o,t.object(r),t.object(o_.ORACLE_HOLDER_OBJ_ID),t.pure.bool(i),t.pure.u64(c)]})},(tO=oQ||(oQ={})).LAST_PACKAGE_ID="0x493130ff5430cbf23819324567c8389c34aa4d967d7b541b42cec102679481d1",tO.swap=function(e){eC(e.protocol===rS.SEVENK_FUN,"Invalid protocol");let{txb:t,swapContext:o,aToB:r,amountIn:a,coinBType:n,packageId:i}=e;t.moveCall({target:`${i??tO.LAST_PACKAGE_ID}::sevenk_fun_router::swap`,typeArguments:[n],arguments:[o,t.object(om.CONFIGURATION_OBJ_ID),t.object(or.CONTAINER_OBJ_ID),t.object(ei),t.pure.bool(r),t.pure.u64(a)]})},(tE=o0||(o0={})).LAST_PACKAGE_ID="0xb0ecf0ad87d3d4a6810780b9434b45bb196152fad1c961febfa92b2c12f49df9",tE.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinBType:i,packageId:c}=e;t.moveCall({target:`${c??tE.LAST_PACKAGE_ID}::springsui_router::swap`,typeArguments:[i],arguments:[o,t.object(r),t.object(eo),t.pure.u64(a),t.pure.bool(n)]})},(ty=o6||(o6={})).LAST_PACKAGE_ID="0x49562d122c58e01035128fe297381d75bcf8d77ae8991aacead6a07dc7496cfd",ty.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:c,packageId:s}=e,u=[o,t.object(r),t.object(of.CONFIG_OBJ_ID),t.pure.bool(a),t.pure.u64(n),t.object("0x6")];t.moveCall({target:`${s??ty.LAST_PACKAGE_ID}::srm_cpmm_router::swap`,typeArguments:[i,c],arguments:u})};var rh=o4||(o4={});function rF(e,t){eC(e.protocol===rS.STEAMM_OMM||e.protocol===rS.STEAMM_OMM_V2,"Invalid protocol for steamm _swapOmm swap");let{txb:o,swapContext:r,poolId:a,coinAType:n,coinBType:i,aToB:c,amountIn:s,bankAId:u,bankBId:l,lendingMarketId:d,lendingMarketType:p,bCoinAType:_,bCoinBType:m,lpBCoinType:f,pythPriceFeedIdA:A,pythPriceFeedIdB:g,pythInfoObjectIdMap:b,oracleRegistryId:I,oracleIndexA:T,oracleIndexB:C,packageId:M}=e,O=b.get(A),E=b.get(g);eC(O,"Not found priceInfoAId in pythObjectIdMap"),eC(E,"Not found priceInfoBId in pythObjectIdMap");let y=oA.Oracle.getPythPrice({txb:o,oracleRegistryId:I,priceInfoId:O,oracleIndex:T}),S=oA.Oracle.getPythPrice({txb:o,oracleRegistryId:I,priceInfoId:E,oracleIndex:C});o.moveCall({target:`${M??rh.LAST_PACKAGE_ID}::${rB(t)}::swap`,typeArguments:[p,n,i,_,m,f],arguments:[r,o.object(a),o.object(u),o.object(l),o.object(d),y,S,o.pure.bool(c),o.pure.u64(s),o.object(ei)]})}function rB(e){switch(e){case 0:return"steamm_omm_router";case 1:return"steamm_omm_v2_router"}}rh.LAST_PACKAGE_ID="0xf5624616fd9108e8960fc47321195e937bffcaab1ac34ab02a1ead169670ed95",rh.swapCpmm=function(e){eC(e.protocol===rS.STEAMM_CPMM,"Invalid protocol for steamm_cpmm_router swap");let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:c,bankAId:s,bankBId:u,lendingMarketId:l,lendingMarketType:d,bCoinAType:p,bCoinBType:_,lpBCoinType:m}=e;t.moveCall({target:`${rh.LAST_PACKAGE_ID}::steamm_cpmm_router::swap`,typeArguments:[d,a,n,p,_,m],arguments:[o,t.object(r),t.object(s),t.object(u),t.object(l),t.pure.bool(i),t.pure.u64(c),t.object(ei)]})},rh.swapOmm=function(e){rF(e,0)},rh.swapOmmV2=function(e){rF(e,1)},rh.getOmmRouterModule=rB,(tS=o3||(o3={})).LAST_PACKAGE_ID="0xf1d401c0a6212d14b1afc5af3b1e193175793ae30d3474026294d8e2b2b96c9a",tS.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:c,packageId:s}=e;t.moveCall({target:`${s??tS.LAST_PACKAGE_ID}::suiswap_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.pure.bool(i),t.pure.u64(c),t.object(ei)]})},(th=o1||(o1={})).LAST_PACKAGE_ID="0xa25ea41dfb7d585f8766c8a1fd8084eff8b8fd9aeca4838ad3c8f90555fba663",th.swap=function(e){eC(e.protocol===rS.TRADEPORT_CLMM,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,poolFeeRate:c,packageId:s}=e;t.moveCall({target:`${s??th.LAST_PACKAGE_ID}::tradeport_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(og.POOL_REGISTRY),t.pure.u64(c),t.object(og.VERSIONED),t.pure.bool(n),t.pure.u64(i),t.object(ei)]})},(tF=o2||(o2={})).LAST_PACKAGE_ID="0x50fec02454be91b218f57b36b00141a28f47c69650daac75e925a9fe0ff47f6a",tF.swap=function(e){eC(e.protocol===rS.TURBOS_CLMM,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,coinFeeType:n,poolId:i,aToB:c,amountIn:s,packageId:u}=e;t.moveCall({target:`${u??tF.LAST_PACKAGE_ID}::turbos_clmm_router::swap`,typeArguments:[r,a,n],arguments:[o,t.object(i),t.object(ob.POOL_VERSIONED),t.pure.bool(c),t.pure.u64(s),t.object(ei)]})},(tB=o9||(o9={})).LAST_PACKAGE_ID="0x8e90a4a7e648b8c9d28df079feffb1c89ca2c7859268db9b4a9b15ba36447eb7",tB.swap=function(e){eC(e.protocol===rS.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(oI.CONFIGURATION_OBJ_ID),t.object(ei),t.pure.bool(a),t.pure.u64(n)]})},(tP=o8||(o8={})).LAST_PACKAGE_ID="0x04352998e5d8923f63f7f1fb4835e0330ff3b2ee8305550472c669e210f2c650",tP.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,packageId:i}=e;t.moveCall({target:`${i??tP.LAST_PACKAGE_ID}::volo_router::swap`,arguments:[o,t.object(r),t.object(oT.VOLO_CERT_METADATA_ID),t.object(eo),t.pure.bool(a),t.pure.u64(n)]})},(tx=o5||(o5={})).RouterSwapFunctionMap={[rS.AFTERMATH_CPMM]:oM.swap,[rS.AFTERMATH_LSD]:oO.swap,[rS.ALPHAFI_LSD]:oE.swap,[rS.BLASTFUN]:oy.swap,[rS.BLUEFIN_CLMM]:oS.swap,[rS.BLUEMOVE_CPMM]:oh.swap,[rS.BOLT]:oF.swap,[rS.CETUS_CLMM]:oB.swap,[rS.CETUS_DLMM]:oP.swap,[rS.DEEPBOOK_V3]:ox.swap,[rS.DIP_CPMM]:oD.swap,[rS.FERRA_CLMM]:ow.swap,[rS.FERRA_DLMM]:oL.swap,[rS.FLOWX_CPMM]:ok.swap,[rS.FLOWX_CLMM]:oR.swap,[rS.FULLSAIL_CLMM]:oN.swap,[rS.HAEDAL_CPMM]:oU.swap,[rS.HAEDAL_CPMM_V2]:oG.swap,[rS.HAEDAL_LSD]:oj.swap,[rS.HAEDAL_LSD_WAL]:oK.swap,[rS.KRIYA_CLMM]:oq.swap,[rS.KRIYA_CPMM]:oY.swap,[rS.MAGMA_ALMM]:o$.swap,[rS.MAGMA_CLMM]:oV.swap,[rS.METASTABLE]:oJ.swap,[rS.MOMENTUM_CLMM]:oH.swap,[rS.MOVEPUMP]:oX.swap,[rS.OBRIC]:oW.swap,[rS.SCALLOP]:oz.swap,[rS.SEVENK_CPMM]:oZ.swap,[rS.SEVENK_FUN]:oQ.swap,[rS.SPRINGSUI]:o0.swap,[rS.SRM_CPMM]:o6.swap,[rS.STEAMM_CPMM]:o4.swapCpmm,[rS.STEAMM_OMM]:o4.swapOmm,[rS.STEAMM_OMM_V2]:o4.swapOmmV2,[rS.SUISWAP_CPMM]:o3.swap,[rS.TRADEPORT_CLMM]:o1.swap,[rS.TURBOS_CLMM]:o2.swap,[rS.TURBOS_FUN]:o9.swap,[rS.VOLO]:o8.swap},tx.swap=function(e){(0,tx.RouterSwapFunctionMap[e.protocol])(e)},(o7||(o7={})).buildAggregatorSwapTransaction=async function(e){let{tx:t,coinOutType:o,tradePaths:r,pythConnections:a,pythClient:n,packageIdMap:i}=e,c=tz.openSwap(e),s=await tH.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:c,amountIn:o.amountIn,coinAType:a,coinBType:n,packageId:i?.get(o.protocol),pythInfoObjectIdMap:s})}return tz.completeSwap({tx:t,coinOutType:o,swapSession:c})};class rP{sdk;_astrosAggregator;_aftermathAggregator;_sevenkAggregator;_cetusAggregator;_flowXAggregator;constructor(e){this.sdk=e,this._astrosAggregator=new eE({defaultTradeFee:e.options.tradeFee,astrosApiKey:e.options.astrosApiKey},e.suiClient),this._aftermathAggregator=new eO({defaultTradeFee:e.options.tradeFee,aftermathApiKey:e.options.aftermathApiKey,aftermathApiEndpoint:e.options.aftermathApiEndpoint},e.suiClient),this._sevenkAggregator=new eM({defaultTradeFee:e.options.tradeFee,sevenKApiKey:e.options.sevenKApiKey},e.suiClient),this._cetusAggregator=new ey({defaultTradeFee:e.options.tradeFee,cetusApiKey:e.options.cetusApiKey,cetusApiEndpoint:e.options.cetusApiEndpoint,cetusPartnerId:e.options.cetusPartnerId},e.suiClient),this._flowXAggregator=new rt({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 re.ASTROS:{let e,r=await this._astrosAggregator.getTradeRoute(t);if(!r)return null;let n=eE.toCommonTradeRoutes(r,t.coinInType,t.coinOutType);if(!n)return null;e=t.tradeFee?t.tradeFee.tradeFeePercent:this.sdk.options.tradeFee.tradeFeePercent,n.amountOut=BigInt(new a(r.amount_out).multipliedBy(1-e).toFixed(0,3)),o={route:n,aggregatorRoute:r};break}case re.AFTERMATH:{let e=await this._aftermathAggregator.getTradeRoute(t);if(!e)return null;let r=eO.toCommonTradeRoutes(e);if(!r)return null;o={route:r,aggregatorRoute:e};break}case re.SEVENK:{let e=await this._sevenkAggregator.getTradeRoute(t);if(!e)return null;let r=eM.toCommonTradeRoutes(e);if(!r)return null;o={route:r,aggregatorRoute:e};break}case re.CETUS:{let e=await this._cetusAggregator.getTradeRoute(t);if(!e)return null;let r=ey.toCommonTradeRoutes(e,t.coinInType,t.coinOutType);if(!r)return null;o={route:r,aggregatorRoute:e};break}case re.FLOWX:{let e=await this._flowXAggregator.getTradeRoute(t);if(!e)return null;let r=rt.toCommonTradeRoutes(e);if(!r)return null;o={route:r,aggregatorRoute:e}}}return o}async getTransactionByRoute(e,t){switch(e){case re.ASTROS:return this._astrosAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case re.AFTERMATH:return this._aftermathAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage});case re.SEVENK:return this._sevenkAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case re.CETUS:return this._cetusAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case re.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});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(re),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(re),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 rx{sdk;constructor(e){this.sdk=e}async getEstimatedAmountOut(e,t){let{coinInType:o,coinOutType:r}=t;eC(o!==r,"coinInType and coinOutType must be different"),eC(ef(o)||ef(r),"One of coinInType or coinOutType must be SUI");let a=ef(o);switch(e){case rA.MOONBAGS:if(a)return await t$.getCurveAmountAfterBuy({poolId:t.poolId,suiAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0},this.sdk.suiClient);return await t$.getSuiAmountAfterSell({poolId:t.poolId,curveAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0},this.sdk.suiClient);case rA.BLAST_FUN:if(a)return await tj.getCurveAmountAfterBuy({poolId:t.poolId,suiAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0});return await tj.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;eC(r!==a,"coinInType and coinOutType must be different"),eC(ef(r)||ef(a),"One of coinInType or coinOutType must be SUI");let n=ef(r);switch(e){case rA.MOONBAGS:o=n?await tV.getBuyTransaction(t,this.sdk.suiClient):await tV.getSellTransaction(t,this.sdk.suiClient);break;case rA.BLAST_FUN:o=n?await tK.getBuyTransaction(t,this.sdk.suiClient):await tK.getSellTransaction(t,this.sdk.suiClient);break;default:throw Error(`Unsupported bonding curve platform: ${e}`)}return o}}let rD={tradeFeePercent:.01,tradeFeeRecipientAddress:"0xdaf1c8ed29d89cd8f217f609bad0a668fa6f158c12000bfa5f93e670c99e24ff"};class rw{network;env;options;_suiClient;aggregatorModule;curveModule;constructor(e,t="mainnet",o="prod"){this.options=e,this.network=t,this.env=o;let r=eg(t);this._suiClient=new ep({url:r}),this.aggregatorModule=new rP(this),this.curveModule=new rx(this)}get suiClient(){return this._suiClient}}class rL{suiClient;constructor(e){this.suiClient=e}validatePrivateKey(e,t){eC(e?.trim(),"Private key is required");let o=et.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){eC(e?.trim(),"Sender address is required"),eC(t?.trim(),"Recipient address is required"),eC(e!==t,"Sender and recipient cannot be the same"),eC(o>0n,"Transfer amount must be at least 1 MIST");try{let r=new ed,[a]=r.splitCoins(r.gas,[o]);r.transferObjects([a],t),r.setSender(e);let n=await this.suiClient.getReferenceGasPrice();r.setGasPrice(n);let i=await ec(this.suiClient,r,e,.1);r=await es({inheritTx:r,sender:e,feeAmount:i,suiInputAmount:o},this.suiClient);let c=await r.build({client:this.suiClient}),s=Buffer.from(c).toString("base64"),u=await r.getDigest();return{sender:e,recipient:t,amountMIST:o,txDraftBase64:s,txDigest:u}}catch(e){throw Error(`Failed to create draft transaction: ${e instanceof Error?e.message:"Unknown error"}`)}}async execute(e,t){try{eC(e,"Draft transaction is required"),eC(e.txDraftBase64?.trim(),"Transaction data is required");let o=this.validatePrivateKey(t,e.sender),r=eT(e.txDraftBase64),{signature:a}=await o.signTransaction(r),n=await this.suiClient.executeTransactionBlock({transactionBlock:r,signature:a});return{success:!0,txDigest:n.digest,effects:n.effects}}catch(e){return{success:!1,error:e instanceof Error?e.message:"Unknown error occurred"}}}async getTransactionStatus(e){eC(e?.trim(),"Transaction digest is required");try{let t=await this.suiClient.getTransactionBlock({digest:e,options:{showEffects:!0}});if(!t?.effects?.status)return"pending";return"success"===t.effects.status.status?"success":"failure"}catch(e){if(e instanceof Error&&(e.message.includes("not found")||e.message.includes("Could not find")))return"pending";return"failure"}}}var rv=1e4;export{ADMIN_CAP_ID,BOOSTING_PACKAGE_ID,BoostingModule,CLOCK_OBJECT_ID,CONFIG_ID,NATIVE_USDC_TOKEN_TYPE,NoodlesPaySdk,SUBSCRIPTION_CONFIG,SUI_FULL_TYPE,SUI_METADATA_OBJECT_ID,SUI_TYPE,SubscriptionModule,USDC_TOKEN_TYPE,addGasFee,getAmountAfterFee,getCoinObjectIdsByAmount,getNeededGasFee,getSplitCoinForTx,getSplitCoinsAfterFee,isSuiCoinType}from"./982.js";export{rP as AggregatorModule,ri as BLUEFIN_PACKAGE_ID,rx as CurveModule,rD as DEFAULT_TRADE_FEE,rL as DraftTransferTx,rw as NoodlesSdk,eM as SevenKAggregator,rT as adaptSuiClient,rC as adaptTransaction,eO as AftermathAggregator,t6 as AftermathCpmm,t4 as AftermathLsd,t0 as AggregatorConverter,eE as AstrosAggregator,t3 as Blastfun,tU as BluefinTx,t1 as BluefinClmm,t2 as BluemoveCpmm,t9 as Bolt,t$ as MoonbagsCalculation,ey as CetusAggregator,tW as CetusAggregatorConverter,t8 as CetusClmm,t5 as CetusDlmm,ry as checkIsSui,re as SupportedAggregator,tL as BlastFunConstants,tq as MoonbagsConstants,rM as createCompatibleSuiClient,tN as BlastFunCustomCalculation,tG as BlastFunCustomTransaction,t7 as DeepbookV3,rE as denormalizeTokenType,oe as DipCpmm,rv as BASE_BPS,ot as FerraClmm,oo as FerraDlmm,rt as FlowXAggregator,tZ as FlowXAggregatorConverter,or as FlowxCpmm,oa as FullsailClmm,rp as getMemezPumpSDK,rr as getMoveObject,ro as getMoveObjectContent,on as HaedalLsdWal,oi as KriyaClmm,oc as MagmaAlmm,os as MagmaClmm,o7 as MetaAggregator,tX as Metastable,ou as MomentumClmm,ol as Movepump,rO as normalizeTokenType,od as Obric,tk as BlastFunPackage,tR as Bps,tv as MathUtils,tY as MoonbagsPackage,tJ as PythPrice,tH as PythUtils,op as Scallop,tj as BlastFunSDKCalculation,tK as BlastFunSDKTransaction,tQ as SevenKAggregatorConverter,o_ as SevenkCpmm,om as SevenkFun,rc as splitSuiCoinAfterFeeFromBuyTx,rs as splitSuiCoinAfterFeeFromSellTx,of as SrmCpmm,oA as Steamm,og as TradeportClmm,tV as MoonbagsTransaction,ob as TurbosClmm,oI as TurbosFun,rS as AggregatorProtocol,rA as SupportedBondingCurve,tw as TradeFeeOptions,o5 as RouterUtils,oT as Volo,oC as Walrus};
|
|
1
|
+
import{BluefinXTx as e,Config as t,buildTx as o,getQuote as r}from"@bluefin-exchange/bluefin7k-aggregator-sdk";import a from"bignumber.js";import{Aftermath as n,Helpers as i}from"aftermath-ts-sdk";import{buildSwapPTBFromQuote as c,getCoins as s,getQuote as u}from"@naviprotocol/astros-aggregator-sdk";import{AFSUI as l,AFTERMATH as d,ALPHAFI as p,AggregatorClient as _,BLUEFIN as m,BLUEMOVE as f,CETUS as A,CETUSDLMM as g,DEEPBOOKV3 as b,Env as I,FERRACLMM as T,FERRADLMM as C,FLOWXV2 as M,FLOWXV3 as O,FULLSAIL as E,HAEDAL as y,HAEDALHMMV2 as S,HAEDALPMM as h,HAWAL as F,KRIYA as B,KRIYAV3 as P,MAGMA as x,METASTABLE as w,MOMENTUM as D,OBRIC as L,SCALLOP as v,SEVENK as R,SPRINGSUI as k,STEAMM as N,STEAMM_OMM as U,STEAMM_OMM_V2 as G,SUILEND as j,TURBOS as K,VOLO as q}from"@cetusprotocol/aggregator-sdk";import Y from"bn.js";import{AggregatorQuoter as $,Coin as V,Commission as J,CommissionType as H,Protocol as X,TradeBuilder as W}from"@flowx-finance/sdk";import{MemezPumpSDK as z}from"@interest-protocol/memez-fun-sdk";import{Network as Z}from"@interest-protocol/sui-core-sdk";import{SuiPriceServiceConnection as Q,SuiPythClient as ee}from"@pythnetwork/pyth-sui-js";import{Ed25519Keypair as et}from"@mysten/sui/keypairs/ed25519";import{SUI_SYSTEM_STATE_OBJECT_ID as eo,getAmountAfterFee as er,toHex as ea,getSplitCoinForTx as en,SUI_CLOCK_OBJECT_ID as ei,getNeededGasFee as ec,addGasFee as es,normalizeStructTag as eu,parseStructTag as el,Transaction as ed,SuiClient as ep,CLOCK_OBJECT_ID as e_,SUI_TYPE as em,isSuiCoinType as ef,SUI_METADATA_OBJECT_ID as eA,getFullnodeUrl as eg,SUI_FULL_TYPE as eb,getSplitCoinsAfterFee as eI,fromBase64 as eT,tiny_invariant as eC}from"./982.js";class eM{_config;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}async getTradeRoute({coinInAmount:e,coinInType:o,coinOutType:a,tradeFee:n,supportedProtocols:i}){try{this._config.sevenKApiKey&&t.setApiKey(this._config.sevenKApiKey);let c=n?n.tradeFeePercent:this._config.defaultTradeFee.tradeFeePercent;return await r({tokenIn:o,tokenOut:a,amountIn:e.toString(),commissionBps:1e4*c,sources:i??void 0})}catch(e){return null}}async getTransaction({walletAddress:t,completeRoute:r,slippage:a,tradeFee:n}){let i,c;n?(i=n.tradeFeePercent,c=n.tradeFeeRecipientAddress):(i=this._config.defaultTradeFee.tradeFeePercent,c=this._config.defaultTradeFee.tradeFeeRecipientAddress);let s=await o({quoteResponse:r,slippage:a,accountAddress:t,commission:{partner:c,commissionBps:1e4*i}});return s.tx instanceof e?ed.from(s.tx.txBytes).build({client:this._suiClient}):(s.tx.setSender(t),s.tx.build({client:this._suiClient}))}}(eM||(eM={})).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,n=r[t.tokenOut]??0,i=BigInt(new a(t.tokenInAmount).multipliedBy(10**o).toFixed(0,3)),c=BigInt(new a(t.tokenOutAmount).multipliedBy(10**n).toFixed(0,3));e.push({poolAddress:t.poolId,coinIn:t.tokenIn,coinOut:t.tokenOut,amountIn:i,amountOut:c})}if(0===e.length)continue;let n=r[o.tokenIn]??0,i=r[o.tokenOut]??0,c=BigInt(new a(o.tokenInAmount).multipliedBy(10**n).toFixed(0,3)),s=BigInt(new a(o.tokenOutAmount).multipliedBy(10**i).toFixed(0,3));t.push({paths:e,coinIn:o.tokenIn,coinOut:o.tokenOut,amountIn:c,amountOut:s})}return 0===t.length?null:{coinIn:e.tokenIn,coinOut:e.tokenOut,amountIn:BigInt(e.swapAmountWithDecimal),amountOut:BigInt(e.returnAmountWithDecimal),routes:t}};class eO{_config;_aftermathClient;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}async aftermathClient(){if(this._aftermathClient)return this._aftermathClient;if(this._config.aftermathApiEndpoint?this._aftermathClient=new n(this._config.aftermathApiEndpoint):this._aftermathClient=new n("MAINNET"),await this._aftermathClient.init(),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 null}}async getTransaction({completeRoute:e,walletAddress:t,slippage:o}){let r=await this.aftermathClient(),a=await r.Router().getTransactionForCompleteTradeRoute({completeRoute:e,walletAddress:t,slippage:o,isSponsoredTx:!1});return a.setSender(t),a.build({client:this._suiClient})}}(eO||(eO={})).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 eE{_config;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r}){try{let a;return a=r?{fee:r.tradeFeePercent,receiverAddress:r.tradeFeeRecipientAddress}:{fee:this._config.defaultTradeFee.tradeFeePercent,receiverAddress:this._config.defaultTradeFee.tradeFeeRecipientAddress},await u(t,o,e,this._config.astrosApiKey,{byAmountIn:!0,serviceFee:a})}catch(e){return 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 n;let i,u;i=r?{fee:r.tradeFeePercent,receiverAddress:r.tradeFeeRecipientAddress}:{fee:this._config.defaultTradeFee.tradeFeePercent,receiverAddress:this._config.defaultTradeFee.tradeFeeRecipientAddress};let l=new a(e.amount_out).multipliedBy(1-o-i.fee).toNumber(),d=new ed;if("0x2::sui::SUI"===(n=e.from)||"0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI"===n)u=d.splitCoins(d.gas,[d.pure.u64(e.amount_in)]);else{let o=await s(this._suiClient,t,e.from),r=this.returnMergedCoins(d,o.data,Number.parseFloat(e.amount_in));u=d.splitCoins(r,[d.pure.u64(e.amount_in)])}let p=await c(t,d,l,u,e,void 0,!1,this._config.astrosApiKey,{serviceFee:i});return d.transferObjects([p],t),d.setSender(t),d.build({client:this._suiClient})}}(eE||(eE={})).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}},(tD||(tD={})).equals=function(e,t){return e.tradeFeePercent===t.tradeFeePercent&&e.tradeFeeRecipientAddress===t.tradeFeeRecipientAddress};class ey{_config;_suiClient;_cetusClient;constructor(e,t){this._config=e,this._suiClient=t}cetusClient(e,t){return t&&!tD.equals(t,this._config.defaultTradeFee)?new _({client:this._suiClient,overlayFeeReceiver:t.tradeFeeRecipientAddress,overlayFeeRate:t.tradeFeePercent,env:I.Mainnet,signer:e,...this._config.cetusApiKey&&this._config.cetusApiEndpoint?{apiKey:this._config.cetusApiKey,endpoint:this._config.cetusApiEndpoint}:{},partner:this._config.cetusPartnerId}):(this._cetusClient||(this._cetusClient=new _({client:this._suiClient,overlayFeeReceiver:this._config.defaultTradeFee.tradeFeeRecipientAddress,overlayFeeRate:this._config.defaultTradeFee.tradeFeePercent,env:I.Mainnet,signer:e,...this._config.cetusApiKey&&this._config.cetusApiEndpoint?{apiKey:this._config.cetusApiKey,endpoint:this._config.cetusApiEndpoint}:{},partner:this._config.cetusPartnerId})),this._cetusClient)}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r,supportedProtocols:a}){try{let n=this.cetusClient(void 0,r);return await n.findRouters({from:t,target:o,amount:new Y(e.toString()),byAmountIn:!0,providers:a})}catch(e){return null}}async getTransaction({completeRoute:e,walletAddress:t,slippage:o,tradeFee:r}){let a=this.cetusClient(t,r),n=new ed;return n.setSender(t),await a.fastRouterSwap({router:e,txb:n,slippage:o}),n.build({client:this._suiClient})}}(ey||(ey={})).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 eS,eh,eF,eB,eP,ex,ew,eD,eL,ev,eR,ek,eN,eU,eG,ej,eK,eq,eY,e$,eV,eJ,eH,eX,eW,ez,eZ,eQ,e0,e6,e4,e1,e2,e3,e5,e8,e9,e7,te,tt,to,tr,ta,tn,ti,tc,ts,tu,tl,td,tp,t_,tm,tf,tA,tg,tb,tI,tT,tC,tM,tO,tE,ty,tS,th,tF,tB,tP,tx,tw,tD,tL,tv,tR,tk,tN,tU,tG,tj,tK,tq,tY,t$,tV,tJ,tH,tX,tW,tz,tZ,tQ,t0,t6,t4,t1,t2,t3,t5,t8,t9,t7,oe,ot,oo,or,oa,on,oi,oc,os,ou,ol,od,op,o_,om,of,oA,og,ob,oI,oT,oC,oM,oO,oE,oy,oS,oh,oF,oB,oP,ox,ow,oD,oL,ov,oR,ok,oN,oU,oG,oj,oK,oq,oY,o$,oV,oJ,oH,oX,oW,oz,oZ,oQ,o0,o6,o4,o1,o2,o3,o5,o8,o9,o7,re=((tw={}).ASTROS="ASTROS",tw.AFTERMATH="AFTERMATH",tw.SEVENK="7K",tw.CETUS="CETUS",tw.FLOWX="FLOWX",tw);class rt{_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 J(r,new V(e),H.PERCENTAGE,1e6*o,!0)}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r,supportedProtocols:a}){let n=new $("mainnet",this._config.flowxApiKey);try{return await n.getRoutes({tokenIn:t,tokenOut:o,amountIn:e.toString(),commission:this.getCommission(t,r),includeSources:a??void 0})}catch(e){return null}}async getTransaction({walletAddress:e,completeRoute:t,slippage:o,tradeFee:r}){return new W("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 ro(e,t){return(await rr(e,t)).fields}async function rr(e,t){let o=await e.getObject({id:t,options:{showContent:!0}}),r=o.data?.content;return eC(r,"Pool object not found or has no content"),eC("moveObject"===r.dataType,"Object is not a Move object"),r}(rt||(rt={})).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}},(eS=tL||(tL={})).PACKAGE_ID_V4="0x7e6aa6e179466ab2814425a780b122575296d011119fa69d27f289f5a28814bd",eS.MEMEZ_AV_OBJECT_ID="0x2319e3e76dfad73d8f4684bdbf42be4f32d8ce4521dd61becc8261dc918d82c0",((eh=tv||(tv={})).U64||(eh.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=tR||(tR={});function rn(e){return eC(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 eC(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:rn(e).toString()}},ra.assertOverflow=rn,((eF=tk||(tk={})).MemezFun||(eF.MemezFun={})).isSniperProtectedMemezFun=async function(e,t){return(await ro(e,t)).public_key.length>0},(eB=eF.MemezFees||(eF.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=tR.calcUp(tR.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")},eB.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 tR.calcUp(tR.sub(r,t),o)}throw Error("Unknown fee variant")},(eF.MemezBurner||(eF.MemezBurner={})).calculate=function(e,t){if(tR.value(e.fee.fields)===BigInt(0)||t===BigInt(0)||t>=BigInt(e.target_liquidity))return tR.new_(0);let o=BigInt(1e4);return tR.new_(tv.U64.mulDivUp(tR.value(e.fee.fields),tv.U64.mulDivUp(t,o,BigInt(e.target_liquidity)),o))},(eP=eF.MemezPump||(eF.MemezPump={})).getPumpState=async function(e,t){return await ro(e,t.inner_state)},eP.pump=function(e,t){let o=e.constant_product.fields,r=eF.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),c=n*a/(BigInt(o.virtual_liquidity)+i+a),s=eF.MemezFees.takeWithDiscount(o.meme_swap_fee,c,o.meme_referrer_fee.fields);return c-s},eP.dump=function(e,t){let o=e.constant_product.fields,r=eF.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),c=BigInt(o.virtual_liquidity),s=eF.MemezBurner.calculate(o.burner.fields,i),u=tR.calcUp(s,a),l=a-(tR.value(s)!==BigInt(0)?u:BigInt(0)),d=(c+i)*l/(n+l);d>i&&(d=i);let p=eF.MemezFees.takeWithDiscount(o.quote_swap_fee,d,o.quote_referrer_fee.fields);return d-p},(ex=tN||(tN={})).getCurveAmountAfterBuy=async function(e,t){let{suiAmount:o,poolId:r,frontendFee:a}=e,n=await ro(t,r),i=await tk.MemezPump.getPumpState(t,n);return o=er(o,a),tk.MemezPump.pump(i,o)},ex.getSuiAmountAfterSell=async function(e,t){let{curveAmount:o,poolId:r,frontendFee:a}=e,n=await ro(t,r),i=await tk.MemezPump.getPumpState(t,n);return er(tk.MemezPump.dump(i,o),a)};let ri="0x62412b7268c35f3808336aee57a52836501f40b8ba5d936f8ad275e672befd04";async function rc(e,t){let o,r,{inputAmount:a,accountAddress:n,frontendFee:i,frontendFeeRecipient:c,extendTx:s,isSponsored:u}=e;eC(e.inCoinType===eb||e.inCoinType===em,"Input must be SUI");let{tx:l,coinIn:d}=s||{},p=eI(a,i||"0"),_=l||new ed;if(d)o=_.splitCoins(d,p),tU.transferOrDestroyZeroCoin(_,eb,d,n);else{let{coinData:e}=await en({account:n,amount:a,splits:p,coinType:eb,inheritTx:_,isSponsored:u||!1},t);o=e}if(i&&c){let[e,t]=o;r=e,_.transferObjects([t],_.pure.address(c||n))}else[r]=o;return{tx:_,coinOut:r}}async function rs(e,t,o){if(eC(t.outCoinType===eb||t.outCoinType===em,"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}}(tU||(tU={})).transferOrDestroyZeroCoin=function(e,t,o,r){e.moveCall({target:`${ri}::utils::transfer_or_destroy`,typeArguments:[t],arguments:[o,e.pure.address(r)]})};var ru=tG||(tG={});async function rl(e){let t=e||new ed;return t.moveCall({target:`${tL.PACKAGE_ID_V4}::memez_allowed_versions::get_allowed_versions`,arguments:[t.object(tL.MEMEZ_AV_OBJECT_ID)],typeArguments:[]})}ru.getAllowedVersions=rl,ru.buildBuyTx=async function(e,t){eC(!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);eC(r,"Coin out is required");let a=o.moveCall({target:`${tL.PACKAGE_ID_V4}::memez_pump::pump`,typeArguments:[e.outCoinType,eb],arguments:[o.object(e.poolId),r,o.pure.vector("address",[]),o.pure.vector("vector<u8>",[]),o.pure.u64(e.minAmountOut),await rl(o)]});return{tx:o,coinOut:a}},ru.buildSellTx=async function(e,t){eC(e.outCoinType===eb||e.outCoinType===em,"Output must be SUI");let o=await ro(t,e.poolId),{tx:r,coinData:a}=await en({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[n]=a,[i]=r.moveCall({target:`${tL.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 rl(r)]});return await rs(r,e,i)};let rd=new z({network:Z.MAINNET,fullNodeUrl:eg("mainnet")});function rp(){return rd}(ew=tj||(tj={})).getCurveAmountAfterBuy=async function(e){let{suiAmount:t,poolId:o,frontendFee:r}=e;t=er(t,r);let{memeAmountOut:a}=await rp().quotePump({pool:o,amount:t});return a},ew.getSuiAmountAfterSell=async function(e){let{curveAmount:t,poolId:o,frontendFee:r}=e,{quoteAmountOut:a}=await rp().quoteDump({pool:o,amount:t});return er(a,r)};var r_=tK||(tK={});async function rm(e,t){let{tx:o,coinOut:r}=await rc(e,t);eC(r,"Coin out is required");let{memeCoin:a,tx:n}=await rp().pump({pool:e.poolId,quoteCoin:r,minAmountOut:e.minAmountOut,tx:o});return{tx:n,coinOut:a}}async function rf(e,t){eC(ef(e.outCoinType),"Output must be SUI");let{tx:o,coinData:r}=await en({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[a]=r,{quoteCoin:n,tx:i}=await rp().dump({pool:e.poolId,memeCoin:a,tx:o,minAmountOut:e.minAmountOut});return await rs(i,e,n)}r_.buildBuyTx=rm,r_.buildSellTx=rf,r_.getBuyTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:n,walletAddress:i,tradeFee:c},s){eC(ef(t),"coinInType must be SUI for buy transaction"),eC(o!==t,"coinOutType must be different from coinInType"),eC(n>=0&&n<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),eC(e>0,"coinInAmount must be greater than 0");let u=BigInt(new a((await tj.getCurveAmountAfterBuy({poolId:r,suiAmount:e,frontendFee:c?c.tradeFeePercent:void 0})).toString()).multipliedBy(1-n).toFixed(0,3)),{tx:l,coinOut:d}=await rm({accountAddress:i,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:u.toString(),poolId:r,frontendFee:c?c.tradeFeePercent:void 0,frontendFeeRecipient:c?c.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},s);eC(d,"Coin out is required"),l.transferObjects([d],l.pure.address(i)),l.setSender(i);let p=await ec(s,l,i,0);return(l=await es({inheritTx:l,sender:i,feeAmount:p,suiInputAmount:e},s)).build({client:s})},r_.getSellTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:n,walletAddress:i,tradeFee:c},s){eC(ef(o),"coinOutType must be SUI for sell transaction"),eC(o!==t,"coinOutType must be different from coinInType"),eC(n>=0&&n<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),eC(e>0,"coinInAmount must be greater than 0");let u=BigInt(new a((await tj.getSuiAmountAfterSell({poolId:r,curveAmount:e,frontendFee:c?c.tradeFeePercent:void 0})).toString()).multipliedBy(1-n).toFixed(0,3)),{tx:l,coinOut:d}=await rf({accountAddress:i,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:u.toString(),poolId:r,frontendFee:c?c.tradeFeePercent:void 0,frontendFeeRecipient:c?c.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},s);eC(d,"Coin out is required"),l.transferObjects([d],l.pure.address(i)),l.setSender(i);let p=await ec(s,l,i,0);return(l=await es({inheritTx:l,sender:i,feeAmount:p},s)).build({client:s})};var rA=((eD={}).BLAST_FUN="BLAST_FUN",eD.MOONBAGS="MOONBAGS",eD);(eL=tq||(tq={})).PACKAGE_ID="0xb8df325010942634a4afb3db3901ee215546af43a4ec4af781e7213b0bba7290",eL.CONFIG_OBJECT_ID="0x74aecf86067c6913960ba4925333aefd2b1f929cafca7e21fd55a8f244b70499",eL.LOCK_CONFIG_OBJECT_ID="0xfb09822d9808980abd04c51321adb850701f5f55535c6206658ef4d910c3e9be",eL.BURN_MANAGER_OBJECT_ID="0x1d94aa32518d0cb00f9de6ed60d450c9a2090761f326752ffad06b2e9404f845",eL.POOLS_OBJECT_ID="0xf699e7f2276f5c9a75944b37a0c5b5d9ddfd2471bf6242483b03ab2887d198d0",eL.GLOBAL_CONFIG_OBJECT_ID="0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f",eL.FEE_DENOMINATOR=BigInt(1e4),(eR=(ev=tY||(tY={})).Curves||(ev.Curves={})).calculateAddLiquidityCost=function(e,t,o){return e*t/(t-o)-e},eR.calculateRemoveLiquidityReturn=function(e,t,o){return t-e*t/(e+o)},eR.calculateTokenAmountReceived=function(e,t,o){return t-e*t/(e+o)},(ek=ev.Moonbags||(ev.Moonbags={})).getDynamicVirtualTokenReserves=async function(e,t){let o=await e.getDynamicFieldObject({parentId:t,name:{type:"vector<u8>",value:"virtual_token_reserves"}});if(o.data)return BigInt(o.data.content.fields.value)},ek.buyExactInReturnsWithLock=function(e){let{inputAmount:t,amountIn:o,pool:r,config:a,dynamicVirtualTokenReserves:n}=e,i=BigInt(r.virtual_sui_reserves),c=BigInt(r.virtual_token_reserves),s=BigInt(r.remain_token_reserves.fields.balance),u=ev.Curves.calculateRemoveLiquidityReturn(i,c,o),l=c-(n||s),d=u,p=o;u>l&&(d=l,p=ev.Curves.calculateAddLiquidityCost(i,c,l)+BigInt(1));let _=p*BigInt(a.platform_fee)/tq.FEE_DENOMINATOR;return eC(t>=p+_,"Input amount is less than used SUI + fee"),{receivedCurve:d,receivedSui:t-p-_}},ek.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),c=ev.Curves.calculateRemoveLiquidityReturn(n,a,t);c>i&&(c=i);let s=c*BigInt(r.platform_fee)/tq.FEE_DENOMINATOR,u=c-s;return{receivedCurve:BigInt(0),receivedSui:u}},(eN=t$||(t$={})).getCurveAmountAfterBuy=async function(e,t){let{suiAmount:o,poolId:r,frontendFee:a}=e,[n,i,c]=await Promise.all([ro(t,r),ro(t,tq.CONFIG_OBJECT_ID),tY.Moonbags.getDynamicVirtualTokenReserves(t,r)]);void 0!==a&&(o=er(o,a));let s=o*tq.FEE_DENOMINATOR/(tq.FEE_DENOMINATOR+BigInt(i.platform_fee)),{receivedCurve:u}=tY.Moonbags.buyExactInReturnsWithLock({inputAmount:o,amountIn:s,pool:n,config:i,dynamicVirtualTokenReserves:c});return u},eN.getSuiAmountAfterSell=async function(e,t){let{curveAmount:o,poolId:r,frontendFee:a}=e,[n,i]=await Promise.all([ro(t,r),ro(t,tq.CONFIG_OBJECT_ID)]),{receivedSui:c}=tY.Moonbags.sellReturns({amountIn:o,pool:n,config:i});return void 0!==a?er(c,a):c},eN.getUsedSuiForTx=async function(e,t){let{suiAmount:o,frontendFee:r}=e,a=await ro(t,tq.CONFIG_OBJECT_ID);return void 0!==r&&(o=er(o,r)),o*tq.FEE_DENOMINATOR/(tq.FEE_DENOMINATOR+BigInt(a.platform_fee))};var rg=tV||(tV={});async function rb(e,t){let{tx:o,coinOut:r}=await rc(e,t);eC(r,"Coin out is required");let a=await t$.getUsedSuiForTx({suiAmount:BigInt(e.inputAmount),frontendFee:e.frontendFee},t),[n,i]=o.moveCall({target:`${tq.PACKAGE_ID}::moonbags::buy_exact_in_returns_with_lock`,typeArguments:[e.outCoinType],arguments:[o.object(tq.CONFIG_OBJECT_ID),o.object(tq.LOCK_CONFIG_OBJECT_ID),r,o.pure.u64(a),o.pure.u64(e.minAmountOut),o.object(tq.BURN_MANAGER_OBJECT_ID),o.object(tq.POOLS_OBJECT_ID),o.object(tq.GLOBAL_CONFIG_OBJECT_ID),o.object(eA),o.object(e_)]});return tU.transferOrDestroyZeroCoin(o,eb,n,e.accountAddress),{tx:o,coinOut:i}}async function rI(e,t){eC(ef(e.outCoinType),"Output must be SUI");let{tx:o,coinData:r}=await en({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[a]=r,[n,i]=o.moveCall({target:`${tq.PACKAGE_ID}::moonbags::sell_returns`,typeArguments:[e.inCoinType],arguments:[o.object(tq.CONFIG_OBJECT_ID),a,o.pure.u64(e.minAmountOut),o.object(e_)]});return tU.transferOrDestroyZeroCoin(o,e.inCoinType,i,e.accountAddress),await rs(o,e,n)}function rT(e){return e}function rC(e){return e}function rM(e){return new Proxy(e,{get(e,t){let o=e[t];return"function"==typeof o?o.bind(e):o}})}function rO(e){return e===em?eb:e}function rE(e){return e===eb?em:e}function ry(e){return e===eb||e===em}rg.buildBuyTx=rb,rg.buildSellTx=rI,rg.getBuyTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:n,walletAddress:i,tradeFee:c},s){eC(ef(t),"coinInType must be SUI for buy transaction"),eC(o!==t,"coinOutType must be different from coinInType"),eC(n>=0&&n<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),eC(e>0,"coinInAmount must be greater than 0");let u=BigInt(new a((await t$.getCurveAmountAfterBuy({poolId:r,suiAmount:e,frontendFee:c?c.tradeFeePercent:void 0},s)).toString()).multipliedBy(1-n).toFixed(0,3)),{tx:l,coinOut:d}=await rb({accountAddress:i,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:u.toString(),poolId:r,frontendFee:c?c.tradeFeePercent:void 0,frontendFeeRecipient:c?c.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},s);eC(d,"Coin out is required"),l.transferObjects([d],l.pure.address(i)),l.setSender(i);let p=await ec(s,l,i,0);return(l=await es({inheritTx:l,sender:i,feeAmount:p,suiInputAmount:e},s)).build({client:s})},rg.getSellTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:n,walletAddress:i,tradeFee:c},s){eC(ef(o),"coinOutType must be SUI for sell transaction"),eC(o!==t,"coinOutType must be different from coinInType"),eC(n>=0&&n<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),eC(e>0,"coinInAmount must be greater than 0");let u=BigInt(new a((await t$.getSuiAmountAfterSell({poolId:r,curveAmount:e,frontendFee:c?c.tradeFeePercent:void 0},s)).toString()).multipliedBy(1-n).toFixed(0,3)),{tx:l,coinOut:d}=await rI({accountAddress:i,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:u.toString(),poolId:r,frontendFee:c?c.tradeFeePercent:void 0,frontendFeeRecipient:c?c.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},s);eC(d,"Coin out is required"),l.transferObjects([d],l.pure.address(i)),l.setSender(i);let p=await ec(s,l,i,0);return(l=await es({inheritTx:l,sender:i,feeAmount:p},s)).build({client:s})},(eU=tJ||(tJ={})).LAST_PACKAGE_ID="0x8c36ea167c5e6da8c3d60b4fc897416105dcb986471bd81cfbfd38720a4487c0",eU.newHolder=function(e){return e.moveCall({target:`${eU.LAST_PACKAGE_ID}::oracle::new_holder`,typeArguments:[],arguments:[]})},eU.getPrice=function(e){let{txb:t,coinOracleId:o,holder:r,coinPriceId:a}=e;t.moveCall({target:`${eU.LAST_PACKAGE_ID}::pyth::get_price`,typeArguments:[],arguments:[t.object(o),r,t.object(a),t.object(ei)]})},(eG=tH||(tH={})).PYTH_URLS=["https://hermes.pyth.network"],eG.WORMHOLE_STATE_ID="0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",eG.PYTH_STATE_ID="0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",eG.newPythConnections=function(e){return e||(e=eG.PYTH_URLS),e.map(e=>new Q(e,{timeout:3e3}))},eG.newPythClient=function(e){return e||(e=new ep({network:"mainnet",url:""})),new ee(e,eG.PYTH_STATE_ID,eG.WORMHOLE_STATE_ID)},eG.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 c=[];try{c=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 s=new Map;for(let e=0;e<t.length;e++)s.set(t[e],c[e]);return s},(ej=tX||(tX={})).MAX_AMOUNT_IN="18446744073709551615",ej.LAST_PACKAGE_ID="0x7e57926855b32baa3b3cabed89380b8d415606fdedadc18e58bd1ef1e60aee48",ej.openSwap=function(e){let{tx:t,expectedAmountOut:o,minAmountOut:r,coinInType:a,coinOutType:n,inputCoin:i,aggregatorFeeBps:c,aggregatorFeeRecipient:s,partnerFeeRecipient:u,partnerFeeBps:l}=e,[d]=t.moveCall({target:`${ej.LAST_PACKAGE_ID}::aggregator::open_swap`,typeArguments:[a,n],arguments:[t.pure.u64(o),t.pure.u64(r),i,t.pure.u32(c),t.pure.address(s),t.pure.u32(l??0),t.pure.option("address",u)]});return d},ej.closeSwap=function(e){let{tx:t,coinOutType:o,swapSession:r}=e,[a]=t.moveCall({target:`${ej.LAST_PACKAGE_ID}::aggregator::close_swap`,typeArguments:[o],arguments:[r]});return a},(eK=tW||(tW={})).POOL_REGISTRY_OBJ_ID="0xfcc774493db2c45c79f688f88d28023a3e7d98e4ee9f48bbf5c7990f651577ae",eK.PROTOCOL_FEE_VAULT_OBJ_ID="0xf194d9b1bcad972e45a7dd67dd49b3ee1e3357a00a50850c52cd51bb450e13b4",eK.TREASURY_OBJ_ID="0x28e499dff5e864a2eafe476269a4f5035f1c16f338da7be18b103499abf271ce",eK.INSURANCE_FUND_OBJ_ID="0xf0c40d67b078000e18032334c3325c47b9ec9f3d9ae4128be820d54663d14e3b",eK.REFERRAL_VAULT_OBJ_ID="0x35d35b0e5b177593d8c3a801462485572fc30861e6ce96a55af6dc4730709278";var rS=((eq={}).AFTERMATH_CPMM="aftermath_cpmm",eq.AFTERMATH_LSD="aftermath_lsd",eq.ALPHAFI_LSD="alphafi_lsd",eq.BLASTFUN="blastfun",eq.BLUEFIN_CLMM="bluefin_clmm",eq.BLUEMOVE_CPMM="bluemove_cpmm",eq.BOLT="bolt",eq.CETUS_CLMM="cetus_clmm",eq.CETUS_DLMM="cetus_dlmm",eq.DEEPBOOK_V3="deepbook_v3",eq.DIP_CPMM="dip_cpmm",eq.FLOWX_CPMM="flowx_cpmm",eq.FLOWX_CLMM="flowx_clmm",eq.FULLSAIL_CLMM="fullsail_clmm",eq.FERRA_CLMM="ferra_clmm",eq.FERRA_DLMM="ferra_dlmm",eq.HAEDAL_CPMM="haedal_cpmm",eq.HAEDAL_CPMM_V2="haedal_cpmm_v2",eq.HAEDAL_LSD="haedal_lsd",eq.HAEDAL_LSD_WAL="haedal_lsd_wal",eq.KRIYA_CLMM="kriya_clmm",eq.KRIYA_CPMM="kriya_cpmm",eq.MAGMA_ALMM="magma_almm",eq.MAGMA_CLMM="magma_clmm",eq.METASTABLE="metastable",eq.MOMENTUM_CLMM="momentum_clmm",eq.MOVEPUMP="movepump",eq.OBRIC="obric",eq.SCALLOP="scallop",eq.SEVENK_CPMM="sevenk_cpmm",eq.SEVENK_FUN="sevenk_fun",eq.SPRINGSUI="springsui",eq.SRM_CPMM="srm_cpmm",eq.STEAMM_CPMM="steamm_cpmm",eq.SUISWAP_CPMM="suiswap_cpmm",eq.STEAMM_OMM="steamm_omm",eq.STEAMM_OMM_V2="steamm_omm_v2",eq.TRADEPORT_CLMM="tradeport_clmm",eq.TURBOS_CLMM="turbos_clmm",eq.TURBOS_FUN="turbos_fun",eq.VOLO="volo",eq);(eY=tz||(tz={})).LAST_PACKAGE_ID="0x32df1999bd5f2fecfd920e9de2e4a866de6705284955084818606dc444364ab8",eY.swap=function(e){eC(e.protocol===rS.AFTERMATH_CPMM);let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:c,coinLpType:s,packageId:u}=e;t.moveCall({target:`${u??eY.LAST_PACKAGE_ID}::aftermath_cpmm_router::swap`,typeArguments:[i,c,s],arguments:[o,t.object(r),t.object(tW.POOL_REGISTRY_OBJ_ID),t.object(tW.PROTOCOL_FEE_VAULT_OBJ_ID),t.object(tW.TREASURY_OBJ_ID),t.object(tW.INSURANCE_FUND_OBJ_ID),t.object(tW.REFERRAL_VAULT_OBJ_ID),t.pure.bool(a),t.pure.u64(n)]})},(e$=tZ||(tZ={})).STAKED_SUI_VAULT_OBJ_ID="0x2f8f6d5da7f13ea37daa397724280483ed062769813b6f31e9788e59cc88994d",e$.SAFE_TREASURY_OBJECT_ID="0xeb685899830dd5837b47007809c76d91a098d52aabbf61e8ac467c59e5cc4610",e$.REFERRAL_VAULT_OBJ_ID="0x4ce9a19b594599536c53edb25d22532f82f18038dc8ef618afd00fbbfb9845ef",e$.VALIDATOR_ADDRESS="0xd30018ec3f5ff1a3c75656abf927a87d7f0529e6dc89c7ddd1bd27ecb05e3db2",(eV=tQ||(tQ={})).LAST_PACKAGE_ID="0x148c4e7ff5b308b2d520e050e6a21d986dd3eb203e0aa3eaaba28000977aebf1",eV.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??eV.LAST_PACKAGE_ID}::aftermath_lsd_router::swap`,arguments:[o,t.object(tZ.STAKED_SUI_VAULT_OBJ_ID),t.object(tZ.SAFE_TREASURY_OBJECT_ID),t.object(eo),t.object(tZ.REFERRAL_VAULT_OBJ_ID),t.pure.address(tZ.VALIDATOR_ADDRESS),t.pure.bool(r),t.pure.u64(a)]})},(eJ=t0||(t0={})).LAST_PACKAGE_ID="0x108d5d07cf873dec0bc8034db862db55d38e495c1f3ee0e124cf4861af834f25",eJ.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinBType:i,packageId:c}=e;t.moveCall({target:`${c??eJ.LAST_PACKAGE_ID}::alphafi_lsd_router::swap`,typeArguments:[i],arguments:[o,t.object(r),t.object(eo),t.pure.bool(n),t.pure.u64(a)]})},(eH=t6||(t6={})).MEMEZ_AV_OBJ_ID="0x2319e3e76dfad73d8f4684bdbf42be4f32d8ce4521dd61becc8261dc918d82c0",eH.MEMEZ_FUN_OBJ_ID="0x943948644f06942b8b660ca541b10a05f6a7be23ce4069944a3665e7e698930d",eH.IPX_TREASURY_STANDARD_OBJ_ID="0x051e11b667659192917db94e5175fa066909d4dfc04d2663528f499c4afc6999",(eX=t4||(t4={})).LAST_PACKAGE_ID="0x8af2695672e0e668c13040d65b486f5dbc9dd9bcfe59965e787a766ca39ceb41",eX.swap=function(e){eC(e.protocol===rS.BLASTFUN,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,packageId:c}=e;t.moveCall({target:`${c??eX.LAST_PACKAGE_ID}::blastfun_router::swap`,typeArguments:[r,a],arguments:[o,t.object(t6.MEMEZ_FUN_OBJ_ID),t.object(t6.IPX_TREASURY_STANDARD_OBJ_ID),t.object(t6.MEMEZ_AV_OBJ_ID),t.pure.bool(n),t.pure.u64(i)]})},(t1||(t1={})).GLOBAL_CONFIG_OBJ_ID="0x03db251ba509a8d5d8777b6338836082335d93eecbdd09a11e190a1cff51c352",(eW=t2||(t2={})).LAST_PACKAGE_ID="0x9f8397124b6bdb55aeb7b5e43761e0e4dc94b9e22e94b1b25d8211d99df422d5",eW.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinAType:i,coinBType:c,packageId:s}=e;t.moveCall({target:`${s??eW.LAST_PACKAGE_ID}::bluefin_clmm_router::swap`,typeArguments:[i,c],arguments:[o,t.object(t1.GLOBAL_CONFIG_OBJ_ID),t.object(r),t.pure.bool(n),t.pure.u64(a),t.object(ei)]})},(t3||(t3={})).DEX_INFO_OBJ_ID="0x3f2d9f724f4a1ce5e71676448dc452be9a6243dac9c5b975a588c8c867066e92",(ez=t5||(t5={})).LAST_PACKAGE_ID="0xf52bdd65ee347e8994170f8c331cf0c23a55281b3282467f14ccbb3e2a7f928f",ez.swap=function(e){let{txb:t,swapContext:o,aToB:r,amountIn:a,coinAType:n,coinBType:i,packageId:c}=e;t.moveCall({target:`${c??ez.LAST_PACKAGE_ID}::bluemove_cpmm_router::swap`,typeArguments:[n,i],arguments:[o,t.object(t3.DEX_INFO_OBJ_ID),t.pure.bool(r),t.pure.u64(a)]})},(t8||(t8={})).ORACLE_OBJ_ID="0xfa3975b98f3d0e3df18ed88ae6e69db31836b3f4212df02fae144b1e5a89ca8e",(eZ=t9||(t9={})).LAST_PACKAGE_ID="0x29e560001bde1ab4e7eebcad8b95eca52a149a692d87e443713f7f8839623b38",eZ.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:c,packageId:s}=e;t.moveCall({target:`${s??eZ.LAST_PACKAGE_ID}::bolt_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(t8.ORACLE_OBJ_ID),t.object(ei),t.pure.u64(c),t.pure.bool(i)]})},(t7||(t7={})).GLOBAL_CONFIG="0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f",(eQ=oe||(oe={})).LAST_PACKAGE_ID="0xb3dbb229464cb14b9f8cfa087e5b162623c8f485395dc9b975e263a5ee7051e4",eQ.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:c,packageId:s}=e;t.moveCall({target:`${s??eQ.LAST_PACKAGE_ID}::cetus_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(t7.GLOBAL_CONFIG),t.object(n),t.pure.bool(i),t.pure.u64(c),t.object(ei)]})},(e0=ot||(ot={})).GLOBAL_CONFIG_OBJ_ID="0xf31b605d117f959b9730e8c07b08b856cb05143c5e81d5751c90d2979e82f599",e0.VERSIONED_OBJ_ID="0x05370b2d656612dd5759cbe80463de301e3b94a921dfc72dd9daa2ecdeb2d0a8",(e6=oo||(oo={})).LAST_PACKAGE_ID="0x3ee4f5e6974fc1173f2e8da7c15cfcd7f9f8b20c6de58c8fb688ba075fbfa9d5",e6.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinAType:i,coinBType:c,packageId:s}=e,u=[o,t.object(ot.GLOBAL_CONFIG_OBJ_ID),t.object(ot.VERSIONED_OBJ_ID),t.object(r),t.pure.bool(n),t.pure.u64(a),t.object(ei)];t.moveCall({target:`${s??e6.LAST_PACKAGE_ID}::cetus_dlmm_router::swap`,typeArguments:[i,c],arguments:u})},(e4=or||(or={})).GLOBAL_CONFIG="0x699d455ab8c5e02075b4345ea1f91be55bf46064ae6026cc2528e701ce3ac135",e4.DEEP_TYPE="0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP",(e1=oa||(oa={})).LAST_PACKAGE_ID="0xdf261327a42466cc78c484a27ec5900d91a2a8964e74bf02bb3d718d167cf04a",e1.swap=function(e){eC(e.protocol===rS.DEEPBOOK_V3,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:c,deepFeeCoin:s,packageId:u}=e,l=s||t.moveCall({target:"0x2::coin::zero",typeArguments:[or.DEEP_TYPE]});t.moveCall({target:`${u??e1.LAST_PACKAGE_ID}::deepbook_v3_router::swap`,typeArguments:[r,a],arguments:[o,t.object(or.GLOBAL_CONFIG),t.object(n),t.pure.u64(c),t.pure.bool(i),l,t.object(ei)]})},(on||(on={})).GLOBAL_OBJ_ID="0x935229a3c32399e9fb207ec8461a54f56c6af5744c64442435ac217ab28f0d59",(e2=oi||(oi={})).LAST_PACKAGE_ID="0xfd86c0308327eae31c04560460ee6190220e4ae1cdf5b999eef1110bf0b0f2b8",e2.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:c,packageId:s}=e;t.moveCall({target:`${s??e2.LAST_PACKAGE_ID}::dip_cpmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(on.GLOBAL_OBJ_ID),t.object(r),t.pure.bool(i),t.pure.u64(c)]})},(oc||(oc={})).FERRA_GLOBAL_CONFIG_ID="0x2cd8382c19e6994f16df204e9b8cddd04bdc486c251de75ac66ac4e48e3e7081",(e3=os||(os={})).LAST_PACKAGE_ID="0x70c4318f67d88ebe4e83bacad15f9e2f5c8becd77695f63dc4bd9393730851cd",e3.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:c,packageId:s}=e;t.moveCall({target:`${s??e3.LAST_PACKAGE_ID}::ferra_clmm_router::swap`,typeArguments:[i,c],arguments:[o,t.object(oc.FERRA_GLOBAL_CONFIG_ID),t.object(r),t.pure.bool(a),t.pure.u64(n),t.object("0x6")]})},(ou||(ou={})).FERRA_GLOBAL_CONFIG_ID="0x5c9dacf5a678ea15b8569d65960330307e23d429289ca380e665b1aa175ebeca",(e5=ol||(ol={})).LAST_PACKAGE_ID="0x686e9eb19b04d46374c3fb82cb4ebb7b24ef8a9ae13f403915f4ae347e0f6593",e5.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:c,packageId:s}=e;t.moveCall({target:`${s??e5.LAST_PACKAGE_ID}::ferra_dlmm_router::swap`,typeArguments:[i,c],arguments:[o,t.object(ou.FERRA_GLOBAL_CONFIG_ID),t.object(r),t.pure.bool(a),t.pure.u64(n),t.object(ei)]})},(e8=od||(od={})).POOL_REGISTRY_OBJ_ID="0x27565d24a4cd51127ac90e4074a841bbe356cca7bf5759ddc14a975be1632abc",e8.VERSIONED_OBJ_ID="0x67624a1533b5aff5d0dfcf5e598684350efd38134d2d245f475524c03a64e656",(e9=op||(op={})).LAST_PACKAGE_ID="0x350a752d3388165e578cc33a39655a6da83613cf4e58c8d9d0723711c2603e17",e9.swap=function(e){eC(e.protocol===rS.FLOWX_CLMM);let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolFeeRate:n,amountIn:i,aToB:c,packageId:s}=e;t.moveCall({target:`${s??e9.LAST_PACKAGE_ID}::flowx_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(od.POOL_REGISTRY_OBJ_ID),t.object(od.VERSIONED_OBJ_ID),t.pure.u64(n),t.pure.u64(i),t.pure.bool(c),t.object(ei)]})},(o_||(o_={})).CONTAINER_OBJ_ID="0xb65dcbf63fd3ad5d0ebfbf334780dc9f785eff38a4459e37ab08fa79576ee511",(e7=om||(om={})).LAST_PACKAGE_ID="0xd95b440ad340bb6cbf571897d312e43d4b6de37b60c69ef714c94b9835cb8866",e7.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,packageId:c}=e;t.moveCall({target:`${c??e7.LAST_PACKAGE_ID}::flowx_cpmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(o_.CONTAINER_OBJ_ID),t.pure.bool(n),t.pure.u64(i)]})},(te=of||(of={})).GLOBAL_CONFIG_OBJ_ID="0xe93baa80cb570b3a494cbf0621b2ba96bc993926d34dc92508c9446f9a05d615",te.REWARDER_VAULT_OBJ_ID="0xfb971d3a2fb98bde74e1c30ba15a3d8bef60a02789e59ae0b91660aeed3e64e1",te.STATS_OBJ_ID="0x6822a33d1d971e040c32f7cc74507010d1fe786f7d06ab89135083ddb07d2dc2",te.PRICE_PROVIDER_OBJ_ID="0x854b2d2c0381bb656ec962f8b443eb082654384cf97885359d1956c7d76e33c9",(tt=oA||(oA={})).LAST_PACKAGE_ID="0xf0bf13b5baaf3d368f165e846b919294bed79a3ab3ab0c9bd1e75f23533e44a5",tt.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:c,packageId:s}=e;t.moveCall({target:`${s??tt.LAST_PACKAGE_ID}::fullsail_clmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(of.GLOBAL_CONFIG_OBJ_ID),t.object(of.REWARDER_VAULT_OBJ_ID),t.object(of.STATS_OBJ_ID),t.object(of.PRICE_PROVIDER_OBJ_ID),t.object(r),t.pure.bool(i),t.pure.u64(c),t.object(ei)]})},(to=og||(og={})).LAST_PACKAGE_ID="0xdcf84326a9557dba65cce63b4c1d669e8b58b63bbefbf2e55af857319c2212d1",to.swap=function(e){eC(e.protocol===rS.HAEDAL_CPMM);let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:c,pythPriceFeedIdA:s,pythPriceFeedIdB:u,pythInfoObjectIdMap:l,packageId:d}=e,p=l.get(s),_=l.get(u);eC(p,"Not found priceInfoAId in pythObjectIdMap"),eC(_,"Not found priceInfoBId in pythObjectIdMap"),t.moveCall({target:`${d??to.LAST_PACKAGE_ID}::haedal_cpmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(p),t.object(_),t.pure.u64(c),t.pure.bool(i),t.object(ei)]})},(tr=ob||(ob={})).LAST_PACKAGE_ID="0x5d01f22e5471a5912a88e15d62fdcb922beba65b8e8dfe1a715aebf743194f4a",tr.swap=function(e){eC(e.protocol===rS.HAEDAL_CPMM_V2);let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:c,pythPriceFeedIdBase:s,pythInfoObjectIdMap:u,packageId:l}=e,d=u.get(s);eC(d,"Not found pythPriceBaseId in pythObjectIdMap"),t.moveCall({target:`${l??tr.LAST_PACKAGE_ID}::haedal_cpmm_v2_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(d),t.pure.u64(c),t.pure.bool(i),t.object(ei)]})},(ta=oI||(oI={})).LAST_PACKAGE_ID="0x1644956086caa5eb791eba152f3b69ba862b3a5382ef0e1d8a474ab158aafa1a",ta.swap=function(e){let{txb:t,swapContext:o,aToB:r,amountIn:a,poolId:n,packageId:i}=e;t.moveCall({target:`${i??ta.LAST_PACKAGE_ID}::haedal_lsd_router::swap`,arguments:[o,t.object(n),t.object(eo),t.pure.bool(r),t.pure.u64(a)]})},(oT||(oT={})).STAKING_OBJ_ID="0x10b9d30c28448939ce6c4d6c6e0ffce4a7f8a4ada8248bdad09ef8b70e4a3904",(oC||(oC={})).VALIDATOR_ID="0x7b3ba6de2ae58283f60d5b8dc04bb9e90e4796b3b2e0dea75569f491275242e7",(tn=oM||(oM={})).LAST_PACKAGE_ID="0x7be077dd73c85e788c2a49a51f0627066d81d3dc9982c268e3691265a81d544d",tn.swap=function(e){eC(e.protocol===rS.HAEDAL_LSD_WAL),eC(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??tn.LAST_PACKAGE_ID}::haedal_wal_lsd_router::swap`,arguments:[o,t.object(oT.STAKING_OBJ_ID),t.object(r),t.pure.id(oC.VALIDATOR_ID),t.pure.bool(a),t.pure.u64(n)]})},(oO||(oO={})).VERSION_OBJ_ID="0xf5145a7ac345ca8736cf8c76047d00d6d378f30e81be6f6eb557184d9de93c78",(ti=oE||(oE={})).LAST_PACKAGE_ID="0xcf141e1d18ff609b2ac56532b391f7648fc55e28696efe354186f5109c0eff06",ti.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:c,packageId:s}=e;t.moveCall({target:`${s??ti.LAST_PACKAGE_ID}::kriya_clmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(oO.VERSION_OBJ_ID),t.pure.bool(i),t.pure.u64(c),t.object(ei)]})},(tc=oy||(oy={})).LAST_PACKAGE_ID="0x50d37f46df75ef125ce656d4ac91b31b2cf0c1195752a96558561d163e45c223",tc.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:c,packageId:s}=e;t.moveCall({target:`${s??tc.LAST_PACKAGE_ID}::kriya_cpmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.pure.bool(i),t.pure.u64(c)]})},(ts=oS||(oS={})).FACTORY_OBJ_ID="0xedb456e93e423dd75a8ddebedd9974bb661195043027e32ce01649d6ccee74cf",ts.GLOBAL_CONFIG_OBJ_ID="0x4c4e1402401f72c7d8533d0ed8d5f8949da363c7a3319ccef261ffe153d32f8a",(tu=oh||(oh={})).LAST_PACKAGE_ID="0x950f94d33060c0575389c9f84fabab1e140776c6c84389d4237a0c2687a7adc9",tu.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:c,packageId:s}=e;t.moveCall({target:`${s??tu.LAST_PACKAGE_ID}::magma_almm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(oS.FACTORY_OBJ_ID),t.object(oS.GLOBAL_CONFIG_OBJ_ID),t.pure.u64(c),t.pure.bool(i),t.object(ei)]})},(oF||(oF={})).GLOBAL_CONFIG="0x4c4e1402401f72c7d8533d0ed8d5f8949da363c7a3319ccef261ffe153d32f8a",(tl=oB||(oB={})).LAST_PACKAGE_ID="0x5b050c5a4b35e6b4cc37637ff16e065e93c7bfe6d495451d90f48522ba28aaf1",tl.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:c,packageId:s}=e;t.moveCall({target:`${s??tl.LAST_PACKAGE_ID}::magma_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(oF.GLOBAL_CONFIG),t.object(n),t.pure.bool(i),t.pure.u64(c),t.object(ei)]})},(td=oP||(oP={})).UNIVERSAL_META_VAULT_INTEGRATION_PACKAGE_ID="0xfd12517a9fc87c6a1f2357ad13b3421fb27a8bd7ca07d5fd5934ac35733baa47",(tp=td.MetaCoinType||(td.MetaCoinType={})).SUPER_SUI="0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI",tp.MUSD="0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD",tp.METH="0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH",td.VERSION_OBJ_ID="0x4696559327b35ff2ab26904e7426a1646312e9c836d5c6cff6709a5ccc30915c",td.createCap=function(e){let t,{txb:o,coinType:r,metaCoin:a,createCapAllTypeParams:n,whitelistedAppId:i,poolId:c,pythInfoObjectIdMap:s,createCapPackageId:u,createCapModule:l,createCapFunc:d}=e,p=[a.toString()];switch(n&&p.push(r),e.metaCoin){case"0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI":t=[o.object(i),o.object(c),o.object(e.registryId)];break;case"0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD":{let r=s.get(e.pythPriceFeedIdMeta);eC(r,"Not found priceMetaId in pythObjectIdMap"),t=[o.object(i),o.object(c),o.object(r),o.object(ei)];break}case"0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH":{let r=s.get(e.pythPriceFeedIdMeta);eC(r,"Not found priceId in pythObjectIdMap");let a=s.get(e.pythPriceFeedIdEth);eC(a,"Not found priceEthFeedId in pythObjectIdMap"),t=[o.object(i),o.object(c),o.object(r),o.object(a),o.object(ei)];break}default:throw Error("Invalid MetaCoin: "+a.toString())}return o.moveCall({target:`${u}::${l}::${d}`,typeArguments:p,arguments:t})},td.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)}},td.isMetaCoinType=function(e){return Object.values(td.MetaCoinType).map(e=>e.toString()).includes(e)},td.getCreateCapAllTypeParams=function(e,t){switch(e){case"0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI":return t===td.UNIVERSAL_META_VAULT_INTEGRATION_PACKAGE_ID;case"0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD":case"0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH":return!0;default:throw Error("Invalid MetaCoin: "+e)}},(t_=ox||(ox={})).LATEST_PACKAGE_ID="0xfab91518218f10204b083dba1e62c8bfc23f14fb87742158043e5faec4670ec4",t_.swap=function(e){let t,o,r;eC(e.protocol===rS.METASTABLE,"Invalid protocol");let{txb:a,swapContext:n,aToB:i,amountIn:c,coinAType:s,coinBType:u,poolId:l,metaCoin:d,packageId:p}=e,[_,m]=i?[s,u]:[u,s];_===d?(r="swap_from_meta_coin",t=[d,m],o=[oP.createCap({coinType:m,createCapFunc:"create_withdraw_cap",...e})]):m===d?(r="swap_to_meta_coin",t=[d,_],o=[oP.createCap({coinType:_,createCapFunc:"create_deposit_cap",...e})]):(r="swap",t=[d,_,m],o=[oP.createCap({coinType:_,createCapFunc:"create_deposit_cap",...e}),oP.createCap({coinType:m,createCapFunc:"create_withdraw_cap",...e})]),a.moveCall({target:`${p??t_.LATEST_PACKAGE_ID}::metastable_router::${r}`,typeArguments:t,arguments:[n,a.object(l),a.object(oP.VERSION_OBJ_ID),...o,a.pure.u64(c)]})},(ow||(ow={})).VERSION_OBJ_ID="0x2375a0b1ec12010aaea3b2545acfa2ad34cfbba03ce4b59f4c39e1e25eed1b2a",(tm=oD||(oD={})).LAST_PACKAGE_ID="0xba7ab4c8c39024fa0052bb4f00548a2e7b60742bb4ed0b87bc1d945fd8209102",tm.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:c,packageId:s}=e;t.moveCall({target:`${s??tm.LAST_PACKAGE_ID}::momentum_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(n),t.pure.bool(i),t.pure.u64(c),t.object(ow.VERSION_OBJ_ID),t.object(ei)]})},(oL||(oL={})).CONFIGURATION_OBJ_ID="0xd746495d04a6119987c2b9334c5fefd7d8cff52a8a02a3ea4e3995b9a041ace4",(tf=ov||(ov={})).LAST_PACKAGE_ID="0x5a259db4b1d17fafc09185c9a71bac36f25f9ee462e72894c8610e5a58b79f8f",tf.swap=function(e){eC(e.protocol===rS.MOVEPUMP,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,expectedAmountOut:c,packageId:s}=e;t.moveCall({target:`${s??tf.LAST_PACKAGE_ID}::movepump_router::swap`,typeArguments:[n?a:r],arguments:[o,t.object(oL.CONFIGURATION_OBJ_ID),t.object(t3.DEX_INFO_OBJ_ID),t.object(ei),t.pure.u64(c),t.pure.bool(n),t.pure.u64(i)]})},(oR||(oR={})).STATE_OBJ_ID="0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",(tA=ok||(ok={})).LAST_PACKAGE_ID="0x83612627f7833208937f109bd62b9f6d1aa76fede94ef2a154cd789fa1c0f90a",tA.swap=function(e){let t,o;eC(e.protocol===rS.OBRIC);let{txb:r,swapContext:a,poolId:n,coinAType:i,coinBType:c,aToB:s,amountIn:u,pythInfoObjectIdMap:l,packageId:d}=e;"priceInfoObjIdA"in e?(t=e.priceInfoObjIdA,o=e.priceInfoObjIdB):(t=l.get(e.pythPriceFeedIdA),o=l.get(e.pythPriceFeedIdB),eC(t,"Not found priceInfoAId in pythObjectIdMap"),eC(o,"Not found priceInfoBId in pythObjectIdMap")),r.moveCall({target:`${d??tA.LAST_PACKAGE_ID}::obric_router::swap`,typeArguments:[i,c],arguments:[a,r.object(n),r.pure.u64(u),r.pure.bool(s),r.object(oR.STATE_OBJ_ID),r.object(t),r.object(o),r.object(ei)]})},(tg=oN||(oN={})).VERSION_OBJ_ID="0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7",tg.MARKET_OBJ_ID="0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9",(tb=oU||(oU={})).LAST_PACKAGE_ID="0xea409bb08c8a09e4127f859d9c36b8b62ca609282aa1e443091db6b7a7409ee7",tb.swap=function(e){eC(e.protocol===rS.SCALLOP);let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,scoinTreasury:c,packageId:s}=e;t.moveCall({target:`${s??tb.LAST_PACKAGE_ID}::scallop_router::swap`,typeArguments:[r,a],arguments:[o,t.object(oN.VERSION_OBJ_ID),t.object(oN.MARKET_OBJ_ID),t.object(c),t.pure.u64(i),t.pure.bool(n),t.object(ei)]})},(oG||(oG={})).ORACLE_HOLDER_OBJ_ID="0x8c36ea167c5e6da8c3d60b4fc897416105dcb986471bd81cfbfd38720a4487c0",(tI=oj||(oj={})).LAST_PACKAGE_ID="0x16636f97aff0dc55e3c9fa29bcb949ed22966a0a274ce9f2738454977006c6a8",tI.swap=function(e){eC(e.protocol===rS.SEVENK_CPMM,"Invalid protocol for sevenk_cpmm_router swap");let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:c,coinLpType:s,oracleConfigA:u,oracleConfigB:l,pythPriceFeedIdA:d,pythPriceFeedIdB:p,pythInfoObjectIdMap:_,packageId:m}=e,f=_.get(d),A=_.get(p);eC(f,"Not found priceInfoAId in pythObjectIdMap"),eC(A,"Not found priceInfoBId in pythObjectIdMap");let g=tJ.newHolder(t);tJ.getPrice({txb:t,coinPriceId:d,holder:g,coinOracleId:u}),tJ.getPrice({txb:t,coinPriceId:p,holder:g,coinOracleId:l}),t.moveCall({target:`${m??tI.LAST_PACKAGE_ID}::sevenk_cpmm_router::swap`,typeArguments:[a,n,s],arguments:[o,t.object(r),t.object(oG.ORACLE_HOLDER_OBJ_ID),t.pure.bool(i),t.pure.u64(c)]})},(oK||(oK={})).CONFIGURATION_OBJ_ID="0xe79fff6c77d81f9a8efb729e25bf0037deec42518d40b978f274a4915d7e1ec9",(tT=oq||(oq={})).LAST_PACKAGE_ID="0x0a5dc665dc3c1c846a6d1e00811c84cae3510c839ab4dc0873f85dc8908d0606",tT.swap=function(e){eC(e.protocol===rS.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(oK.CONFIGURATION_OBJ_ID),t.object(o_.CONTAINER_OBJ_ID),t.object(ei),t.pure.bool(r),t.pure.u64(a)]})},(tC=oY||(oY={})).LAST_PACKAGE_ID="0xa6d129c0b314e85d1bc5aecf305d64212bdd5d466457531f4f624fef5f2e7751",tC.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinBType:i,packageId:c}=e;t.moveCall({target:`${c??tC.LAST_PACKAGE_ID}::springsui_router::swap`,typeArguments:[i],arguments:[o,t.object(r),t.object(eo),t.pure.u64(a),t.pure.bool(n)]})},(o$||(o$={})).CONFIG_OBJ_ID="0x881fd0a12ca4fa48991f5c27ba57d17f1ec147fa15f43b3cb760cc3bd7ba9402",(tM=oV||(oV={})).LAST_PACKAGE_ID="0xa314a64962ed4b91a6b4085de4dff2e631fd4c731dbca671a74489955df322ef",tM.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:c,packageId:s}=e,u=[o,t.object(r),t.object(o$.CONFIG_OBJ_ID),t.pure.bool(a),t.pure.u64(n),t.object("0x6")];t.moveCall({target:`${s??tM.LAST_PACKAGE_ID}::srm_cpmm_router::swap`,typeArguments:[i,c],arguments:u})},(tE=(tO=oJ||(oJ={})).Oracle||(tO.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(ei)]})};var rh=oH||(oH={});function rF(e,t){eC(e.protocol===rS.STEAMM_OMM||e.protocol===rS.STEAMM_OMM_V2,"Invalid protocol for steamm _swapOmm swap");let{txb:o,swapContext:r,poolId:a,coinAType:n,coinBType:i,aToB:c,amountIn:s,bankAId:u,bankBId:l,lendingMarketId:d,lendingMarketType:p,bCoinAType:_,bCoinBType:m,lpBCoinType:f,pythPriceFeedIdA:A,pythPriceFeedIdB:g,pythInfoObjectIdMap:b,oracleRegistryId:I,oracleIndexA:T,oracleIndexB:C,packageId:M}=e,O=b.get(A),E=b.get(g);eC(O,"Not found priceInfoAId in pythObjectIdMap"),eC(E,"Not found priceInfoBId in pythObjectIdMap");let y=oJ.Oracle.getPythPrice({txb:o,oracleRegistryId:I,priceInfoId:O,oracleIndex:T}),S=oJ.Oracle.getPythPrice({txb:o,oracleRegistryId:I,priceInfoId:E,oracleIndex:C});o.moveCall({target:`${M??rh.LAST_PACKAGE_ID}::${rB(t)}::swap`,typeArguments:[p,n,i,_,m,f],arguments:[r,o.object(a),o.object(u),o.object(l),o.object(d),y,S,o.pure.bool(c),o.pure.u64(s),o.object(ei)]})}function rB(e){switch(e){case 0:return"steamm_omm_router";case 1:return"steamm_omm_v2_router"}}function rP(e,t){let o=BigInt(e)*BigInt(t)/BigInt(1e6);return(BigInt(e)-o).toString()}function rx(e){return Math.floor(1e4*e)}rh.LAST_PACKAGE_ID="0x3347763f44ddf560749b0856ff047acd7b4cd99775cffa032dab51e4aec6ae24",rh.swapCpmm=function(e){eC(e.protocol===rS.STEAMM_CPMM,"Invalid protocol for steamm_cpmm_router swap");let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:c,bankAId:s,bankBId:u,lendingMarketId:l,lendingMarketType:d,bCoinAType:p,bCoinBType:_,lpBCoinType:m}=e;t.moveCall({target:`${rh.LAST_PACKAGE_ID}::steamm_cpmm_router::swap`,typeArguments:[d,a,n,p,_,m],arguments:[o,t.object(r),t.object(s),t.object(u),t.object(l),t.pure.bool(i),t.pure.u64(c),t.object(ei)]})},rh.swapOmm=function(e){rF(e,0)},rh.swapOmmV2=function(e){rF(e,1)},rh.getOmmRouterModule=rB,(ty=oX||(oX={})).LAST_PACKAGE_ID="0x7a1cf89025a60161e84809784d772263231fad08a7cb76a88ca1ba69e0a656da",ty.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:c,packageId:s}=e;t.moveCall({target:`${s??ty.LAST_PACKAGE_ID}::suiswap_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.pure.bool(i),t.pure.u64(c),t.object(ei)]})},(tS=oW||(oW={})).VERSIONED="0x0309b66202e9aaf470081fffee7ffc0fbd50e3b7400d4f56fd06502e4dbbd676",tS.POOL_REGISTRY="0xcd0a614c4cbbf173f59dee2602c43a1717f283215ed7a0bb1d55d786af16fbcd",(th=oz||(oz={})).LAST_PACKAGE_ID="0x79957062a7424ed9c2eb83932e4c4fcc3fee67ab3c8f6f874c54e417178bbb7a",th.swap=function(e){eC(e.protocol===rS.TRADEPORT_CLMM,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,poolFeeRate:c,packageId:s}=e;t.moveCall({target:`${s??th.LAST_PACKAGE_ID}::tradeport_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(oW.POOL_REGISTRY),t.pure.u64(c),t.object(oW.VERSIONED),t.pure.bool(n),t.pure.u64(i),t.object(ei)]})},(oZ||(oZ={})).POOL_VERSIONED="0xf1cf0e81048df168ebeb1b8030fad24b3e0b53ae827c25053fff0779c1445b6f",(tF=oQ||(oQ={})).LAST_PACKAGE_ID="0x512d63711ff38353fb167238b0529001b6871c1727c67ce3bf6ec23556b0f1da",tF.swap=function(e){eC(e.protocol===rS.TURBOS_CLMM,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,coinFeeType:n,poolId:i,aToB:c,amountIn:s,packageId:u}=e;t.moveCall({target:`${u??tF.LAST_PACKAGE_ID}::turbos_clmm_router::swap`,typeArguments:[r,a,n],arguments:[o,t.object(i),t.object(oZ.POOL_VERSIONED),t.pure.bool(c),t.pure.u64(s),t.object(ei)]})},(o0||(o0={})).CONFIGURATION_OBJ_ID="0xd86685fc3c3d989385b9311ef55bfc01653105670209ac4276ebb6c83d7df928",(tB=o6||(o6={})).LAST_PACKAGE_ID="0x1fad13f09797aa87a4385d0b1efb2de963ba16742447b1ad5a3b0c5b1d1c588b",tB.swap=function(e){eC(e.protocol===rS.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(o0.CONFIGURATION_OBJ_ID),t.object(ei),t.pure.bool(a),t.pure.u64(n)]})},(o4||(o4={})).VOLO_CERT_METADATA_ID="0x680cd26af32b2bde8d3361e804c53ec1d1cfe24c7f039eb7f549e8dfde389a60",(tP=o1||(o1={})).LAST_PACKAGE_ID="0x7c8d95256342f904d5f251776903a17905d87c95f387b3a35cc2aecc23b3c042",tP.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,packageId:i}=e;t.moveCall({target:`${i??tP.LAST_PACKAGE_ID}::volo_router::swap`,arguments:[o,t.object(r),t.object(o4.VOLO_CERT_METADATA_ID),t.object(eo),t.pure.bool(a),t.pure.u64(n)]})},(tx=o2||(o2={})).RouterSwapFunctionMap={[rS.AFTERMATH_CPMM]:tz.swap,[rS.AFTERMATH_LSD]:tQ.swap,[rS.ALPHAFI_LSD]:t0.swap,[rS.BLASTFUN]:t4.swap,[rS.BLUEFIN_CLMM]:t2.swap,[rS.BLUEMOVE_CPMM]:t5.swap,[rS.BOLT]:t9.swap,[rS.CETUS_CLMM]:oe.swap,[rS.CETUS_DLMM]:oo.swap,[rS.DEEPBOOK_V3]:oa.swap,[rS.DIP_CPMM]:oi.swap,[rS.FERRA_CLMM]:os.swap,[rS.FERRA_DLMM]:ol.swap,[rS.FLOWX_CPMM]:om.swap,[rS.FLOWX_CLMM]:op.swap,[rS.FULLSAIL_CLMM]:oA.swap,[rS.HAEDAL_CPMM]:og.swap,[rS.HAEDAL_CPMM_V2]:ob.swap,[rS.HAEDAL_LSD]:oI.swap,[rS.HAEDAL_LSD_WAL]:oM.swap,[rS.KRIYA_CLMM]:oE.swap,[rS.KRIYA_CPMM]:oy.swap,[rS.MAGMA_ALMM]:oh.swap,[rS.MAGMA_CLMM]:oB.swap,[rS.METASTABLE]:ox.swap,[rS.MOMENTUM_CLMM]:oD.swap,[rS.MOVEPUMP]:ov.swap,[rS.OBRIC]:ok.swap,[rS.SCALLOP]:oU.swap,[rS.SEVENK_CPMM]:oj.swap,[rS.SEVENK_FUN]:oq.swap,[rS.SPRINGSUI]:oY.swap,[rS.SRM_CPMM]:oV.swap,[rS.STEAMM_CPMM]:oH.swapCpmm,[rS.STEAMM_OMM]:oH.swapOmm,[rS.STEAMM_OMM_V2]:oH.swapOmmV2,[rS.SUISWAP_CPMM]:oX.swap,[rS.TRADEPORT_CLMM]:oz.swap,[rS.TURBOS_CLMM]:oQ.swap,[rS.TURBOS_FUN]:o6.swap,[rS.VOLO]:o1.swap},tx.swap=function(e){(0,tx.RouterSwapFunctionMap[e.protocol])(e)},(o3||(o3={})).buildAggregatorSwapTransaction=async function(e){let{tx:t,coinOutType:o,tradePaths:r,pythConnections:a,pythClient:n,packageIdMap:i}=e,c=tX.openSwap(e),s=await tH.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];o2.swap({...o,txb:t,swapContext:c,amountIn:o.amountIn,coinAType:a,coinBType:n,packageId:i?.get(o.protocol),pythInfoObjectIdMap:s})}return tX.closeSwap({tx:t,coinOutType:o,swapSession:c})},function(e){let t=[A,B,M,O,P,K,d,y,q,l,f,b,v,j,m,h,p,k,N,w,L,F,U,D,G,x,R,S,E,g,C,T];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){return e.paths.map(a)}e.TO_META_AGGREGATOR_PATH_FN_MAP={[w]:e=>{let t=r(e),o=e.extendedDetails,a=e.direction?e.target:e.from;eC(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 oP.MetaCoinType.SUPER_SUI:return eC(o.metastable_registry_id,`METASTABLE_SUPER_SUI protocol requires 'metastable_registry_id' in extendedDetails for pool ${e.id}.`),{...t,...n,protocol:rS.METASTABLE,metaCoin:a,registryId:o.metastable_registry_id};case oP.MetaCoinType.MUSD:return eC(o.metastable_price_seed,`METASTABLE_MUSD protocol requires 'metastable_price_seed' in extendedDetails for pool ${e.id}.`),{...t,...n,protocol:rS.METASTABLE,metaCoin:a,pythPriceFeedIdMeta:o.metastable_price_seed};case oP.MetaCoinType.METH:return eC(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:rS.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.`)}},[b]:e=>({...r(e),protocol:rS.DEEPBOOK_V3}),[d]:e=>{let t=e.extendedDetails;return eC(t?.aftermath_lp_supply_type,`AFTERMATH_CPMM protocol requires 'aftermath_lp_type' in extendedDetails for pool ${e.id}.`),{...r(e),protocol:rS.AFTERMATH_CPMM,coinLpType:t.aftermath_lp_supply_type}},[O]:e=>({...r(e),protocol:rS.FLOWX_CLMM,poolFeeRate:String(1e6*e.feeRate)}),[h]:e=>{let t=e.extendedDetails;return eC(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:rS.HAEDAL_CPMM,pythPriceFeedIdA:t.haedal_pmm_base_price_seed,pythPriceFeedIdB:t.haedal_pmm_quote_price_seed}},[S]:e=>{let t=e.extendedDetails;return eC(t?.haedalhmmv2_base_price_seed,`HAEDAL_CPMM_V2 protocol requires 'haedal_pyth_price_base_id' in extendedDetails for pool ${e.id}.`),{...r(e),protocol:rS.HAEDAL_CPMM_V2,pythPriceFeedIdBase:t.haedalhmmv2_base_price_seed}},[v]:e=>(eC(e.extendedDetails?.scallop_scoin_treasury,`SCALLOP protocol requires 'scallop_scoin_treasury' in extendedDetails for pool ${e.id}.`),{...r(e),protocol:rS.SCALLOP,scoinTreasury:e.extendedDetails.scallop_scoin_treasury}),[N]:e=>{let t=e.extendedDetails;return eC(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:rS.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}},[U]:e=>{let t=e.extendedDetails;return eC(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:rS.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)}},[G]:e=>{let t=e.extendedDetails;return eC(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:rS.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)}},[L]:e=>{let t=r(e);if(e.extendedDetails?.obric_coin_a_price_id&&e.extendedDetails?.obric_coin_b_price_id)return{...t,protocol:rS.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:rS.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}.`)},[R]:e=>{let t=e.extendedDetails;return eC(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:rS.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}},[K]:e=>(eC(e.extendedDetails?.turbos_fee_type,`TURBOS_CLMM protocol requires 'coinFeeType' parameter for pool ${e.id}. Provide it via the parametersMap argument.`),{...r(e),protocol:rS.TURBOS_CLMM,coinFeeType:e.extendedDetails.turbos_fee_type}),[l]:e=>({...r(e),protocol:rS.AFTERMATH_LSD}),[p]:e=>({...r(e),protocol:rS.ALPHAFI_LSD}),[m]:e=>({...r(e),protocol:rS.BLUEFIN_CLMM}),[f]:e=>({...r(e),protocol:rS.BLUEMOVE_CPMM}),[A]:e=>({...r(e),protocol:rS.CETUS_CLMM}),[g]:e=>({...r(e),protocol:rS.CETUS_DLMM}),[T]:e=>({...r(e),protocol:rS.FERRA_CLMM}),[C]:e=>({...r(e),protocol:rS.FERRA_DLMM}),[M]:e=>({...r(e),protocol:rS.FLOWX_CPMM}),[E]:e=>({...r(e),protocol:rS.FULLSAIL_CLMM}),[y]:e=>({...r(e),protocol:rS.HAEDAL_LSD}),[F]:e=>({...r(e),protocol:rS.HAEDAL_LSD_WAL}),[B]:e=>({...r(e),protocol:rS.KRIYA_CPMM}),[P]:e=>({...r(e),protocol:rS.KRIYA_CLMM}),[x]:e=>({...r(e),protocol:rS.MAGMA_CLMM}),[D]:e=>({...r(e),protocol:rS.MOMENTUM_CLMM}),[j]:e=>({...r(e),protocol:rS.SPRINGSUI}),[k]:e=>({...r(e),protocol:rS.SPRINGSUI}),[q]:e=>({...r(e),protocol:rS.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)}}}(o5||(o5={})),function(e){let t=[X.HOP_FUN,X.FLOWX_PMM,X.DEEPBOOK,X.IPX_TIDE,X.METASTABLE];e.SUPPORTED_PROTOCOLS=Object.values(X).filter(e=>!t.includes(e));let o={[X.FLOWX_V2]:t=>({...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:rS.FLOWX_CPMM}),[X.FLOWX_V3]:t=>(eC(void 0!==t.poolFee,`Pool fee is required for pool ${t.pool.id}`),eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.FLOWX_CLMM,poolFeeRate:t.poolFee.toString()}),[X.CETUS]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.CETUS_CLMM}),[X.CETUS_DLMM]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.CETUS_DLMM}),[X.AFTERMATH]:t=>(eC(t.lpCoinType,`AFTERMATH protocol requires lpCoinType for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:rS.AFTERMATH_CPMM,coinLpType:t.lpCoinType}),[X.AFTERMATH_LSD]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:rS.AFTERMATH_LSD}),[X.ALPHA_FI]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:rS.ALPHAFI_LSD}),[X.BLUEFIN]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.BLUEFIN_CLMM}),[X.BLUEMOVE]:t=>({...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:rS.BLUEMOVE_CPMM}),[X.DEEPBOOK_V3]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.DEEPBOOK_V3}),[X.FERRA_CLMM]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.FERRA_CLMM}),[X.FERRA_DLMM]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.FERRA_DLMM}),[X.FULL_SAIL]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.FULLSAIL_CLMM}),[X.HAEDAL]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:rS.HAEDAL_LSD}),[X.HAEDAL_PMM]:t=>{let o=t.oracles;return eC(o&&o.length>=2,`HAEDAL_CPMM protocol requires oracle price feeds for pool ${t.pool.id}.`),eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.HAEDAL_CPMM,pythPriceFeedIdA:o[0].priceId,pythPriceFeedIdB:o[1].priceId}},[X.KRIYA_DEX]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.KRIYA_CPMM}),[X.KRIYA_V3]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.KRIYA_CLMM}),[X.MAGMA_FINANCE]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.MAGMA_CLMM}),[X.MAGMA_ALMM]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.MAGMA_ALMM}),[X.MOMENTUM_FINANCE]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.MOMENTUM_CLMM}),[X.OBRIC]:t=>(eC(t.xPriceId&&t.yPriceId,`OBRIC protocol requires price feeds for pool ${t.pool.id}`),eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.OBRIC,priceInfoObjIdA:t.xPriceId,priceInfoObjIdB:t.yPriceId}),[X.SPRING_SUI]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:rS.SPRINGSUI}),[X.STEAMM]:t=>{eC(void 0!==t.bankXInfo&&void 0!==t.bankYInfo,`STEAMM protocol requires bank info for pool ${t.pool.id}`),eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),eC(void 0!==t.quoterType,`quoterType is required for pool ${t.pool.id}`),eC(void 0!==t.poolInfo,`poolInfo is required for pool ${t.pool.id}`),eC(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:rS.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":{eC(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 eC(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:rS.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}`)}},[X.SEVENK_V1]:t=>{let o=t.oracles;return eC(o&&o.length>=2,`SEVENK_CPMM protocol requires oracle price feeds for pool ${t.pool.id}.`),eC(t.poolStructTag,`SEVENK_V1 protocol requires poolStructTag for pool ${t.pool.id}`),eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.SEVENK_CPMM,coinLpType:t.poolStructTag,pythPriceFeedIdA:o[0].priceId,pythPriceFeedIdB:o[1].priceId,oracleConfigA:o[0].oracleId??"",oracleConfigB:o[1].oracleId??""}},[X.SUI_REWARDS]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.SRM_CPMM}),[X.TURBOS_FIANCE]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.TURBOS_CLMM,coinFeeType:t.poolStructTag?t.poolStructTag.split("<")[1].split(",")[2].trim().replace(">",""):""}),[X.VOLO_LSD]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:rS.VOLO}),[X.TRADEPORT]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),eC(void 0!==t.poolFee,`Pool fee is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,poolFeeRate:t.poolFee.toString(),protocol:rS.TRADEPORT_CLMM}),[X.TURBOS_FUN]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.TURBOS_FUN}),[X.BLUEMOVE_FUN]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,expectedAmountOut:t.amountOut.toString(),protocol:rS.MOVEPUMP}),[X.SEVEN_K_FUN]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.SEVENK_FUN}),[X.DIPCOIN]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.DIP_CPMM}),[X.BOLT]:t=>(eC(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rS.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=tX.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)}}}(o8||(o8={})),!function(e){let t=new Set(["bluefinx"]);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=>{eC(e.extra?.poolStructTag,"Aftermath protocol requires poolStructTag");let[t]=i(e.extra.poolStructTag);return{...n(e),protocol:rS.AFTERMATH_CPMM,coinLpType:t}},flowx_v3:e=>{eC(e.extra?.swapFeeRate,"flowx_v3 protocol requires swapFeeRate");let t=e.extra.swapFeeRate;return{...n(e),protocol:rS.FLOWX_CLMM,poolFeeRate:t}},turbos:e=>{eC(e.extra?.poolStructTag,"turbos protocol requires poolStructTag");let[t,o,r]=i(e.extra.poolStructTag);return{...n(e),protocol:rS.TURBOS_CLMM,coinFeeType:r}},obric:e=>(eC(e.extra?.oracles,"obric protocol requires oracles"),{...n(e),protocol:rS.OBRIC,pythPriceFeedIdA:c(e.extra.oracles[0]),pythPriceFeedIdB:c(e.extra.oracles[1])}),haedal_pmm:e=>(eC(e.extra.oracles,"haedal_pmm protocol requires oracles"),{...n(e),protocol:rS.HAEDAL_CPMM,pythPriceFeedIdA:c(e.extra.oracles[0]),pythPriceFeedIdB:c(e.extra.oracles[1])}),sevenk_v1:e=>{eC(e.extra?.poolStructTag,"sevenk_v1 protocol requires poolStructTag"),eC(e.extra?.oracleConfigX,"sevenk_v1 protocol requires oracleConfigX"),eC(e.extra?.oracleConfigY,"sevenk_v1 protocol requires oracleConfigY");let t=e.extra.oracles?.[0]?.Pyth?.bytes,o=e.extra.oracles?.[1]?.Pyth?.bytes;eC(t,"sevenk_v1 protocol requires pythPriceFeedIdA"),eC(o,"sevenk_v1 protocol requires pythPriceFeedIdB");let[r,a,c]=i(e.extra.poolStructTag);return{...n(e),protocol:rS.SEVENK_CPMM,coinLpType:c,pythPriceFeedIdA:t,pythPriceFeedIdB:o,oracleConfigA:e.extra.oracleConfigX,oracleConfigB:e.extra.oracleConfigY}},steamm:e=>{eC(e.extra?.poolStructTag,"steamm protocol requires poolStructTag"),eC(e.extra?.bankAStructTag,"steamm protocol requires bankAStructTag"),eC(e.extra?.lendingMarketA,"steamm protocol requires lendingMarketA"),eC(e.extra?.bankA,"steamm protocol requires bankA"),eC(e.extra?.bankB,"steamm protocol requires bankB");let[t,o,r,a]=i(e.extra.poolStructTag),[c,s,u]=i(e.extra.bankAStructTag);return{...n(e),protocol:rS.STEAMM_CPMM,bankAId:e.extra.bankA,bankBId:e.extra.bankB,lendingMarketId:e.extra.lendingMarketA,lendingMarketType:c,bCoinAType:t,bCoinBType:o,lpBCoinType:a}},steamm_oracle_quoter:e=>{eC(e.extra?.poolStructTag,"steamm_oracle_quoter protocol requires poolStructTag"),eC(e.extra?.bankAStructTag,"steamm_oracle_quoter protocol requires bankAStructTag"),eC(e.extra?.lendingMarketA,"steamm_oracle_quoter protocol requires lendingMarketA"),eC(e.extra?.oracleRegistry,"steamm_oracle_quoter protocol requires oracleRegistry"),eC(e.extra?.bankA,"steamm_oracle_quoter protocol requires bankA"),eC(e.extra?.bankB,"steamm_oracle_quoter protocol requires bankB"),eC(e.extra?.oracleIndexes,"steamm_oracle_quoter protocol requires oracleIndexes"),eC(e.extra?.oracles,"steamm_oracle_quoter protocol requires oracles");let[t,o,r,a]=i(e.extra?.poolStructTag),[s,u,l]=i(e.extra.bankAStructTag),[d,p]=e.extra.oracleIndexes;return{...n(e),protocol:rS.STEAMM_OMM,bankAId:e.extra.bankA,bankBId:e.extra.bankB,lendingMarketId:e.extra.lendingMarketA,lendingMarketType:s,bCoinAType:t,bCoinBType:o,lpBCoinType:a,pythPriceFeedIdA:c(e.extra.oracles[0]),pythPriceFeedIdB:c(e.extra.oracles[1]),oracleRegistryId:e.extra.oracleRegistry,oracleIndexA:d,oracleIndexB:p}},steamm_oracle_quoter_v2:e=>{eC(e.extra?.poolStructTag,"steamm_oracle_quoter_v2 protocol requires poolStructTag"),eC(e.extra?.bankAStructTag,"steamm_oracle_quoter_v2 protocol requires bankAStructTag"),eC(e.extra?.lendingMarketA,"steamm_oracle_quoter_v2 protocol requires lendingMarketA"),eC(e.extra?.oracleRegistry,"steamm_oracle_quoter_v2 protocol requires oracleRegistry"),eC(e.extra?.bankA,"steamm_oracle_quoter_v2 protocol requires bankA"),eC(e.extra?.bankB,"steamm_oracle_quoter_v2 protocol requires bankB"),eC(e.extra?.oracleIndexes,"steamm_oracle_quoter_v2 protocol requires oracleIndexes"),eC(e.extra?.oracles,"steamm_oracle_quoter_v2 protocol requires oracles");let[t,o,r,a]=i(e.extra?.poolStructTag),[s,u,l]=i(e.extra.bankAStructTag),[d,p]=e.extra.oracleIndexes;return{...n(e),protocol:rS.STEAMM_OMM_V2,bankAId:e.extra.bankA,bankBId:e.extra.bankB,lendingMarketId:e.extra.lendingMarketA,lendingMarketType:s,bCoinAType:t,bCoinBType:o,lpBCoinType:a,pythPriceFeedIdA:c(e.extra.oracles[0]),pythPriceFeedIdB:c(e.extra.oracles[1]),oracleRegistryId:e.extra.oracleRegistry,oracleIndexA:d,oracleIndexB:p}},cetus:e=>({...n(e),protocol:rS.CETUS_CLMM}),bluemove:e=>({...n(e),protocol:rS.BLUEMOVE_CPMM}),kriya:e=>({...n(e),protocol:rS.KRIYA_CPMM}),kriya_v3:e=>({...n(e),protocol:rS.KRIYA_CLMM}),deepbook_v3:e=>({...n(e),protocol:rS.DEEPBOOK_V3}),flowx:e=>({...n(e),protocol:rS.FLOWX_CPMM}),bluefin:e=>({...n(e),protocol:rS.BLUEFIN_CLMM}),springsui:e=>({...n(e),protocol:rS.SPRINGSUI}),magma:e=>({...n(e),protocol:rS.MAGMA_CLMM}),momentum:e=>({...n(e),protocol:rS.MOMENTUM_CLMM}),fullsail:e=>({...n(e),protocol:rS.FULLSAIL_CLMM}),stsui:e=>({...n(e),protocol:rS.ALPHAFI_LSD}),suiswap:e=>({...n(e),protocol:rS.SUISWAP_CPMM}),cetus_dlmm:e=>({...n(e),protocol:rS.CETUS_DLMM}),ferra_dlmm:e=>({...n(e),protocol:rS.FERRA_DLMM}),ferra_clmm:e=>({...n(e),protocol:rS.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=tX.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 el(e||"").typeParams.map(eu)}function c(e){let t=e?.Pyth?.bytes||e?.Pyth?.price_identifier?.bytes;return eC(t,"Pyth price feed id is not found"),"0x"+ea(Uint8Array.from(t))}e.toMetaAggregatorPath=r,e.toMetaAggregatorPaths=a,e.convert=function(e){var t,o,r;let n;eC(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),c=a((o=e.swaps,r=i,o.map(e=>{let t=r[e.poolId],o=rE(e.assetIn),a=rE(e.assetOut),n={type:rE(t?.allTokens?.[0]?.address),decimals:t?.allTokens?.[0]?.decimal},i={type:rE(t?.allTokens?.[1]?.address),decimals:t?.allTokens?.[0]?.decimal},c=o===n.type;return{...e,pool:t,assetIn:o,assetOut:a,coinX:n,coinY:i,swapXtoY:c}})));return{coinInType:e.tokenIn,coinOutType:e.tokenOut,amountOut:e.returnAmountWithDecimal,tradePaths:c}}}(o9||(o9={}));let rw=tH.newPythConnections(),rD=tH.newPythClient();var rL=o7||(o7={});function rv(e){var t,o;let r,a,{buildTxParam:n,rawRouteParam:i}=e;switch(i.sourceRoute){case"CETUS":r=o5.convert(i.rawRoute);break;case"FLOWX":r=o8.convert(i.rawRoute);break;case"SEVENK":r=o9.convert(i.rawRoute);break;default:throw Error("Unsupported source route")}let c=rx(n.aggregatorFeeRatePercent),s=n.partnerFeeRatePercent?rx(n.partnerFeeRatePercent):void 0,u=n.expectedAmountOut??function(e){let{amountOut:t,aggregatorFeeBps:o,partnerFeeBps:r}=e,a=rP(t,o);return r&&(a=rP(a,r)),a}({amountOut:r.amountOut,aggregatorFeeBps:c,partnerFeeBps:s}),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:c,partnerFeeBps:s,pythConnections:n.pythConnections??rw,pythClient:n.pythClient??rD}}rL.toMetaAggregatorBuildTxParams=rv,rL.buildTx=function(e){let t=rv(e);return o3.buildAggregatorSwapTransaction(t)};class rR{sdk;_astrosAggregator;_aftermathAggregator;_sevenkAggregator;_cetusAggregator;_flowXAggregator;constructor(e){this.sdk=e,this._astrosAggregator=new eE({defaultTradeFee:e.options.tradeFee,astrosApiKey:e.options.astrosApiKey},e.suiClient),this._aftermathAggregator=new eO({defaultTradeFee:e.options.tradeFee,aftermathApiKey:e.options.aftermathApiKey,aftermathApiEndpoint:e.options.aftermathApiEndpoint},e.suiClient),this._sevenkAggregator=new eM({defaultTradeFee:e.options.tradeFee,sevenKApiKey:e.options.sevenKApiKey},e.suiClient),this._cetusAggregator=new ey({defaultTradeFee:e.options.tradeFee,cetusApiKey:e.options.cetusApiKey,cetusApiEndpoint:e.options.cetusApiEndpoint,cetusPartnerId:e.options.cetusPartnerId},e.suiClient),this._flowXAggregator=new rt({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 re.ASTROS:{let e,r=await this._astrosAggregator.getTradeRoute(t);if(!r)return null;let n=eE.toCommonTradeRoutes(r,t.coinInType,t.coinOutType);if(!n)return null;e=t.tradeFee?t.tradeFee.tradeFeePercent:this.sdk.options.tradeFee.tradeFeePercent,n.amountOut=BigInt(new a(r.amount_out).multipliedBy(1-e).toFixed(0,3)),o={route:n,aggregatorRoute:r};break}case re.AFTERMATH:{let e=await this._aftermathAggregator.getTradeRoute(t);if(!e)return null;let r=eO.toCommonTradeRoutes(e);if(!r)return null;o={route:r,aggregatorRoute:e};break}case re.SEVENK:{let e=await this._sevenkAggregator.getTradeRoute(t);if(!e)return null;let r=eM.toCommonTradeRoutes(e);if(!r)return null;o={route:r,aggregatorRoute:e};break}case re.CETUS:{let e=await this._cetusAggregator.getTradeRoute(t);if(!e)return null;let r=ey.toCommonTradeRoutes(e,t.coinInType,t.coinOutType);if(!r)return null;o={route:r,aggregatorRoute:e};break}case re.FLOWX:{let e=await this._flowXAggregator.getTradeRoute(t);if(!e)return null;let r=rt.toCommonTradeRoutes(e);if(!r)return null;o={route:r,aggregatorRoute:e}}}return o}async getTransactionByRoute(e,t){switch(e){case re.ASTROS:return this._astrosAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case re.AFTERMATH:return this._aftermathAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage});case re.SEVENK:return this._sevenkAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case re.CETUS:return this._cetusAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case re.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});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(re),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(re),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 rk{sdk;constructor(e){this.sdk=e}async getEstimatedAmountOut(e,t){let{coinInType:o,coinOutType:r}=t;eC(o!==r,"coinInType and coinOutType must be different"),eC(ef(o)||ef(r),"One of coinInType or coinOutType must be SUI");let a=ef(o);switch(e){case rA.MOONBAGS:if(a)return await t$.getCurveAmountAfterBuy({poolId:t.poolId,suiAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0},this.sdk.suiClient);return await t$.getSuiAmountAfterSell({poolId:t.poolId,curveAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0},this.sdk.suiClient);case rA.BLAST_FUN:if(a)return await tj.getCurveAmountAfterBuy({poolId:t.poolId,suiAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0});return await tj.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;eC(r!==a,"coinInType and coinOutType must be different"),eC(ef(r)||ef(a),"One of coinInType or coinOutType must be SUI");let n=ef(r);switch(e){case rA.MOONBAGS:o=n?await tV.getBuyTransaction(t,this.sdk.suiClient):await tV.getSellTransaction(t,this.sdk.suiClient);break;case rA.BLAST_FUN:o=n?await tK.getBuyTransaction(t,this.sdk.suiClient):await tK.getSellTransaction(t,this.sdk.suiClient);break;default:throw Error(`Unsupported bonding curve platform: ${e}`)}return o}}let rN={tradeFeePercent:.01,tradeFeeRecipientAddress:"0xdaf1c8ed29d89cd8f217f609bad0a668fa6f158c12000bfa5f93e670c99e24ff"};class rU{network;env;options;_suiClient;aggregatorModule;curveModule;constructor(e,t="mainnet",o="prod"){this.options=e,this.network=t,this.env=o;let r=eg(t);this._suiClient=new ep({url:r}),this.aggregatorModule=new rR(this),this.curveModule=new rk(this)}get suiClient(){return this._suiClient}}class rG{suiClient;constructor(e){this.suiClient=e}validatePrivateKey(e,t){eC(e?.trim(),"Private key is required");let o=et.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){eC(e?.trim(),"Sender address is required"),eC(t?.trim(),"Recipient address is required"),eC(e!==t,"Sender and recipient cannot be the same"),eC(o>0n,"Transfer amount must be at least 1 MIST");try{let r=new ed,[a]=r.splitCoins(r.gas,[o]);r.transferObjects([a],t),r.setSender(e);let n=await this.suiClient.getReferenceGasPrice();r.setGasPrice(n);let i=await ec(this.suiClient,r,e,.1);r=await es({inheritTx:r,sender:e,feeAmount:i,suiInputAmount:o},this.suiClient);let c=await r.build({client:this.suiClient}),s=Buffer.from(c).toString("base64"),u=await r.getDigest();return{sender:e,recipient:t,amountMIST:o,txDraftBase64:s,txDigest:u}}catch(e){throw Error(`Failed to create draft transaction: ${e instanceof Error?e.message:"Unknown error"}`)}}async execute(e,t){try{eC(e,"Draft transaction is required"),eC(e.txDraftBase64?.trim(),"Transaction data is required");let o=this.validatePrivateKey(t,e.sender),r=eT(e.txDraftBase64),{signature:a}=await o.signTransaction(r),n=await this.suiClient.executeTransactionBlock({transactionBlock:r,signature:a});return{success:!0,txDigest:n.digest,effects:n.effects}}catch(e){return{success:!1,error:e instanceof Error?e.message:"Unknown error occurred"}}}async getTransactionStatus(e){eC(e?.trim(),"Transaction digest is required");try{let t=await this.suiClient.getTransactionBlock({digest:e,options:{showEffects:!0}});if(!t?.effects?.status)return"pending";return"success"===t.effects.status.status?"success":"failure"}catch(e){if(e instanceof Error&&(e.message.includes("not found")||e.message.includes("Could not find")))return"pending";return"failure"}}}var rj=1e4;export{ADMIN_CAP_ID,BOOSTING_PACKAGE_ID,BoostingModule,CLOCK_OBJECT_ID,CONFIG_ID,NATIVE_USDC_TOKEN_TYPE,NoodlesPaySdk,SUBSCRIPTION_CONFIG,SUI_FULL_TYPE,SUI_METADATA_OBJECT_ID,SUI_TYPE,SubscriptionModule,USDC_TOKEN_TYPE,addGasFee,getAmountAfterFee,getCoinObjectIdsByAmount,getNeededGasFee,getSplitCoinForTx,getSplitCoinsAfterFee,isSuiCoinType}from"./982.js";export{rR as AggregatorModule,ri as BLUEFIN_PACKAGE_ID,rk as CurveModule,rN as DEFAULT_TRADE_FEE,rG as DraftTransferTx,rU as NoodlesSdk,eM as SevenKAggregator,rT as adaptSuiClient,rC as adaptTransaction,eO as AftermathAggregator,tW as AftermathCpmm,tZ as AftermathLsd,o7 as AggregatorConverter,eE as AstrosAggregator,t6 as Blastfun,tU as BluefinTx,t1 as BluefinClmm,t3 as BluemoveCpmm,t8 as Bolt,t$ as MoonbagsCalculation,ey as CetusAggregator,o5 as CetusAggregatorConverter,t7 as CetusClmm,ot as CetusDlmm,ry as checkIsSui,re as SupportedAggregator,tL as BlastFunConstants,tq as MoonbagsConstants,rM as createCompatibleSuiClient,tN as BlastFunCustomCalculation,tG as BlastFunCustomTransaction,or as DeepbookV3,rE as denormalizeTokenType,on as DipCpmm,rj as BASE_BPS,oc as FerraClmm,ou as FerraDlmm,rt as FlowXAggregator,o8 as FlowXAggregatorConverter,o_ as FlowxCpmm,of as FullsailClmm,rp as getMemezPumpSDK,rr as getMoveObject,ro as getMoveObjectContent,oC as HaedalLsdWal,oO as KriyaClmm,oS as MagmaAlmm,oF as MagmaClmm,o3 as MetaAggregator,oP as Metastable,ow as MomentumClmm,oL as Movepump,rO as normalizeTokenType,oR as Obric,tk as BlastFunPackage,tR as Bps,tv as MathUtils,tY as MoonbagsPackage,tJ as PythPrice,tH as PythUtils,oN as Scallop,tj as BlastFunSDKCalculation,tK as BlastFunSDKTransaction,o9 as SevenKAggregatorConverter,oG as SevenkCpmm,oK as SevenkFun,rc as splitSuiCoinAfterFeeFromBuyTx,rs as splitSuiCoinAfterFeeFromSellTx,o$ as SrmCpmm,oJ as Steamm,oW as TradeportClmm,tV as MoonbagsTransaction,oZ as TurbosClmm,o0 as TurbosFun,rS as AggregatorProtocol,rA as SupportedBondingCurve,tD as TradeFeeOptions,o2 as RouterUtils,o4 as Volo,oT as Walrus};
|