@minswap/noodles-sdk 0.0.59-beta.0 → 0.0.59-beta.1

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 CHANGED
@@ -1 +1 @@
1
- "use strict";const __rslib_import_meta_url__="u"<typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var aggregator_Aggregator,sevenk_aggregator_converter_SevenKAggregatorConverter,types_TradeFeeOptions,metastable_Metastable,cetus_aggregator_converter_CetusAggregatorConverter,flowx_aggregator_converter_FlowXAggregatorConverter,constants_BlastFunConstants,package_MathUtils,package_Bps,package_BlastFunPackage,custom_calculation_BlastFunCustomCalculation,bluefin_BluefinTx,custom_transaction_BlastFunCustomTransaction,sdk_calculation_BlastFunSDKCalculation,sdk_transaction_BlastFunSDKTransaction,constants_MoonbagsConstants,package_MoonbagsPackage,calculation_MoonbagsCalculation,transaction_MoonbagsTransaction,pyth_PythPrice,pyth_PythUtils,aftermath_cpmm_AftermathCpmm,aftermath_cpmm_router_AftermathCpmmRouter,aftermath_lsd_AftermathLsd,aftermath_lsd_router_AftermathLsdRouter,alphafi_lsd_router_AlphafiLsdRouter,blastfun_Blastfun,blastfun_router_BlastfunRouter,bluefin_clmm_BluefinClmm,bluefin_clmm_router_BluefinClmmRouter,bluemove_cpmm_BluemoveCpmm,bluemove_cpmm_router_BluemoveCpmmRouter,bolt_Bolt,bolt_router_BoltRouter,cetus_clmm_CetusClmm,cetus_clmm_router_CetusClmmRouter,cetus_dlmm_CetusDlmm,cetus_dlmm_router_CetusDlmmRouter,deepbook_v3_DeepbookV3,deepbook_v3_router_DeepbookV3Router,dip_cpmm_DipCpmm,dip_cpmm_router_DipCpmmRouter,ferra_clmm_FerraClmm,ferra_clmm_router_FerraClmmRouter,ferra_dlmm_FerraDlmm,ferra_dlmm_router_FerraDlmmRouter,flowx_clmm_FlowxClmm,flowx_clmm_router_FlowxClmmRouter,flowx_cpmm_FlowxCpmm,flowx_cpmm_router_FlowxCpmmRouter,fullsail_clmm_FullsailClmm,fullsail_clmm_router_FullsailClmmRouter,haedal_cpmm_router_HaedalCpmmRouter,haedal_cpmm_v2_router_HaedalCpmmV2Router,haedal_lsd_router_HaedalLsdRouter,walrus_Walrus,haedal_lsd_wal_HaedalLsdWal,haedal_lsd_wal_router_HaedalLsdWalRouter,kriya_clmm_KriyaClmm,kriya_clmm_router_KriyaClmmRouter,kriya_cpmm_router_KriyaCpmmRouter,magma_almm_MagmaAlmm,magma_almm_router_MagmaAlmmRouter,magma_clmm_MagmaClmm,magma_clmm_router_MagmaClmmRouter,metastable_router_MetastableRouter,momentum_clmm_MomentumClmm,momentum_clmm_router_MomentumClmmRouter,movepump_Movepump,movepump_router_MovepumpRouter,obric_Obric,obric_router_ObricRouter,scallop_Scallop,scallop_router_ScallopRouter,sevenk_cpmm_SevenkCpmm,sevenk_cpmm_router_SevenkCpmmRouter,sevenk_fun_SevenkFun,sevenk_fun_router_SevenkFunRouter,springsui_router_SpringsuiRouter,srm_cpmm_SrmCpmm,srm_cpmm_router_SrmCpmmRouter,steamm_Steamm,steamm_router_SteammRouter,suiswap_cpmm_router_SuiswapCpmmRouter,tradeport_clmm_TradeportClmm,tradeport_clmm_router_TradeportClmmRouter,turbos_clmm_TurbosClmm,turbos_clmm_router_TurbosClmmRouter,turbos_fun_TurbosFun,turbos_fun_router_TurbosFunRouter,volo_Volo,volo_router_VoloRouter,utils_RouterUtils,meta_aggregator_MetaAggregator,aggregator_converter_AggregatorConverter,__webpack_require__={};__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var o in t)__webpack_require__.o(t,o)&&!__webpack_require__.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{MagmaAlmm:()=>magma_almm_MagmaAlmm,denormalizeTokenType:()=>denormalizeTokenType,KriyaClmm:()=>kriya_clmm_KriyaClmm,TradeFeeOptions:()=>types_TradeFeeOptions,addGasFee:()=>addGasFee,getMemezPumpSDK:()=>getMemezPumpSDK,DeepbookV3:()=>deepbook_v3_DeepbookV3,BlastFunSDKCalculation:()=>sdk_calculation_BlastFunSDKCalculation,AftermathLsd:()=>aftermath_lsd_AftermathLsd,DraftTransferTx:()=>DraftTransferTx,MoonbagsConstants:()=>constants_MoonbagsConstants,NoodlesPaySdk:()=>NoodlesPaySdk,Bps:()=>package_Bps,ADMIN_CAP_ID:()=>ADMIN_CAP_ID,SevenKAggregatorConverter:()=>sevenk_aggregator_converter_SevenKAggregatorConverter,DipCpmm:()=>dip_cpmm_DipCpmm,getMoveObject:()=>getMoveObject,splitSuiCoinAfterFeeFromBuyTx:()=>splitSuiCoinAfterFeeFromBuyTx,CetusAggregatorConverter:()=>cetus_aggregator_converter_CetusAggregatorConverter,MomentumClmm:()=>momentum_clmm_MomentumClmm,MoonbagsCalculation:()=>calculation_MoonbagsCalculation,Steamm:()=>steamm_Steamm,Metastable:()=>metastable_Metastable,getSplitCoinsAfterFee:()=>getSplitCoinsAfterFee,AftermathCpmm:()=>aftermath_cpmm_AftermathCpmm,BluemoveCpmm:()=>bluemove_cpmm_BluemoveCpmm,AstrosAggregator:()=>astros_AstrosAggregator,BlastFunSDKTransaction:()=>sdk_transaction_BlastFunSDKTransaction,CONFIG_ID:()=>CONFIG_ID,AftermathAggregator:()=>aftermath_AftermathAggregator,CetusClmm:()=>cetus_clmm_CetusClmm,FlowXAggregator:()=>flowx_FlowXAggregator,SevenkCpmm:()=>sevenk_cpmm_SevenkCpmm,adaptSuiClient:()=>adaptSuiClient,AggregatorModule:()=>AggregatorModule,adaptTransaction:()=>adaptTransaction,Obric:()=>obric_Obric,getNeededGasFee:()=>getNeededGasFee,createCompatibleSuiClient:()=>createCompatibleSuiClient,FlowxCpmm:()=>flowx_cpmm_FlowxCpmm,FullsailClmm:()=>fullsail_clmm_FullsailClmm,SupportedAggregator:()=>common_SupportedAggregator,NATIVE_USDC_TOKEN_TYPE:()=>NATIVE_USDC_TOKEN_TYPE,BOOSTING_PACKAGE_ID:()=>BOOSTING_PACKAGE_ID,SUI_TYPE:()=>SUI_TYPE,USDC_TOKEN_TYPE:()=>USDC_TOKEN_TYPE,isSuiCoinType:()=>isSuiCoinType,normalizeTokenType:()=>normalizeTokenType,SevenkFun:()=>sevenk_fun_SevenkFun,MoonbagsPackage:()=>package_MoonbagsPackage,getCoinObjectIdsByAmount:()=>getCoinObjectIdsByAmount,SUI_FULL_TYPE:()=>SUI_FULL_TYPE,AggregatorConverter:()=>aggregator_converter_AggregatorConverter,splitSuiCoinAfterFeeFromSellTx:()=>splitSuiCoinAfterFeeFromSellTx,getAmountAfterFee:()=>getAmountAfterFee,Blastfun:()=>blastfun_Blastfun,PythPrice:()=>pyth_PythPrice,MetaAggregator:()=>meta_aggregator_MetaAggregator,TurbosFun:()=>turbos_fun_TurbosFun,BLUEFIN_PACKAGE_ID:()=>BLUEFIN_PACKAGE_ID,SubscriptionModule:()=>SubscriptionModule,checkIsSui:()=>checkIsSui,MathUtils:()=>package_MathUtils,CLOCK_OBJECT_ID:()=>CLOCK_OBJECT_ID,CurveModule:()=>CurveModule,MoonbagsTransaction:()=>transaction_MoonbagsTransaction,BlastFunPackage:()=>package_BlastFunPackage,CetusAggregator:()=>cetus_CetusAggregator,DEFAULT_TRADE_FEE:()=>DEFAULT_TRADE_FEE,BlastFunCustomTransaction:()=>custom_transaction_BlastFunCustomTransaction,NoodlesSdk:()=>NoodlesSdk,BoostingModule:()=>BoostingModule,PythUtils:()=>pyth_PythUtils,RouterUtils:()=>utils_RouterUtils,AggregatorProtocol:()=>types_AggregatorProtocol,FlowXAggregatorConverter:()=>flowx_aggregator_converter_FlowXAggregatorConverter,HaedalLsdWal:()=>haedal_lsd_wal_HaedalLsdWal,FerraClmm:()=>ferra_clmm_FerraClmm,BluefinClmm:()=>bluefin_clmm_BluefinClmm,MagmaClmm:()=>magma_clmm_MagmaClmm,SUBSCRIPTION_CONFIG:()=>SUBSCRIPTION_CONFIG,SrmCpmm:()=>srm_cpmm_SrmCpmm,Volo:()=>volo_Volo,BlastFunCustomCalculation:()=>custom_calculation_BlastFunCustomCalculation,FerraDlmm:()=>ferra_dlmm_FerraDlmm,Movepump:()=>movepump_Movepump,SupportedBondingCurve:()=>types_SupportedBondingCurve,BASE_BPS:()=>1e4,getMoveObjectContent:()=>getMoveObjectContent,getSplitCoinForTx:()=>getSplitCoinForTx,BluefinTx:()=>bluefin_BluefinTx,Scallop:()=>scallop_Scallop,CetusDlmm:()=>cetus_dlmm_CetusDlmm,SUI_METADATA_OBJECT_ID:()=>SUI_METADATA_OBJECT_ID,TurbosClmm:()=>turbos_clmm_TurbosClmm,Walrus:()=>walrus_Walrus,SevenKAggregator:()=>_7k_SevenKAggregator,Bolt:()=>bolt_Bolt,BlastFunConstants:()=>constants_BlastFunConstants,TradeportClmm:()=>tradeport_clmm_TradeportClmm});const bluefin7k_aggregator_sdk_namespaceObject=require("@bluefin-exchange/bluefin7k-aggregator-sdk"),transactions_namespaceObject=require("@mysten/sui/transactions"),external_bignumber_js_namespaceObject=require("bignumber.js");var external_bignumber_js_default=__webpack_require__.n(external_bignumber_js_namespaceObject);const tiny_invariant_namespaceObject=require("@minswap/tiny-invariant");var tiny_invariant_default=__webpack_require__.n(tiny_invariant_namespaceObject);const utils_namespaceObject=require("@mysten/sui/utils"),SUI_TYPE="0x2::sui::SUI",SUI_FULL_TYPE="0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI",USDC_TOKEN_TYPE="0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN",NATIVE_USDC_TOKEN_TYPE="0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC",SUI_METADATA_OBJECT_ID="0x9258181f5ceac8dbffb7030890243caed69a9599d2886d957a9cb7656af3bdb3",CLOCK_OBJECT_ID="0x0000000000000000000000000000000000000000000000000000000000000006";function isSuiCoinType(e){return e===SUI_TYPE||e===SUI_FULL_TYPE}function normalizeTokenType(e){return e===SUI_TYPE?SUI_FULL_TYPE:e}function denormalizeTokenType(e){return e===SUI_FULL_TYPE?SUI_TYPE:e}function checkIsSui(e){return e===SUI_FULL_TYPE||e===SUI_TYPE}!function(e){e.MAX_AMOUNT_IN="18446744073709551615",e.LAST_PACKAGE_ID="0x7e57926855b32baa3b3cabed89380b8d415606fdedadc18e58bd1ef1e60aee48",e.openSwap=function(t){let{tx:o,expectedAmountOut:a,minAmountOut:r,coinInType:n,coinOutType:_,inputCoin:i,aggregatorFeeBps:s,aggregatorFeeRecipient:c,partnerFeeRecipient:l,partnerFeeBps:u}=t,[p]=o.moveCall({target:`${e.LAST_PACKAGE_ID}::aggregator::open_swap`,typeArguments:[n,_],arguments:[o.pure.u64(a),o.pure.u64(r),i,o.pure.u32(s),o.pure.address(c),o.pure.u32(u??0),o.pure.option("address",l)]});return p},e.closeSwap=function(t){let{tx:o,coinOutType:a,swapSession:r}=t,[n]=o.moveCall({target:`${e.LAST_PACKAGE_ID}::aggregator::close_swap`,typeArguments:[a],arguments:[r]});return n}}(aggregator_Aggregator||(aggregator_Aggregator={}));var types_AggregatorProtocol=function(e){return e.AFTERMATH_CPMM="aftermath_cpmm",e.AFTERMATH_LSD="aftermath_lsd",e.ALPHAFI_LSD="alphafi_lsd",e.BLASTFUN="blastfun",e.BLUEFIN_CLMM="bluefin_clmm",e.BLUEMOVE_CPMM="bluemove_cpmm",e.BOLT="bolt",e.CETUS_CLMM="cetus_clmm",e.CETUS_DLMM="cetus_dlmm",e.DEEPBOOK_V3="deepbook_v3",e.DIP_CPMM="dip_cpmm",e.FLOWX_CPMM="flowx_cpmm",e.FLOWX_CLMM="flowx_clmm",e.FULLSAIL_CLMM="fullsail_clmm",e.FERRA_CLMM="ferra_clmm",e.FERRA_DLMM="ferra_dlmm",e.HAEDAL_CPMM="haedal_cpmm",e.HAEDAL_CPMM_V2="haedal_cpmm_v2",e.HAEDAL_LSD="haedal_lsd",e.HAEDAL_LSD_WAL="haedal_lsd_wal",e.KRIYA_CLMM="kriya_clmm",e.KRIYA_CPMM="kriya_cpmm",e.MAGMA_ALMM="magma_almm",e.MAGMA_CLMM="magma_clmm",e.METASTABLE="metastable",e.MOMENTUM_CLMM="momentum_clmm",e.MOVEPUMP="movepump",e.OBRIC="obric",e.SCALLOP="scallop",e.SEVENK_CPMM="sevenk_cpmm",e.SEVENK_FUN="sevenk_fun",e.SPRINGSUI="springsui",e.SRM_CPMM="srm_cpmm",e.STEAMM_CPMM="steamm_cpmm",e.SUISWAP_CPMM="suiswap_cpmm",e.STEAMM_OMM="steamm_omm",e.STEAMM_OMM_V2="steamm_omm_v2",e.TRADEPORT_CLMM="tradeport_clmm",e.TURBOS_CLMM="turbos_clmm",e.TURBOS_FUN="turbos_fun",e.VOLO="volo",e}({});!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=>{tiny_invariant_default()(e.extra?.poolStructTag,"Aftermath protocol requires poolStructTag");let[t]=_(e.extra.poolStructTag);return{...n(e),protocol:types_AggregatorProtocol.AFTERMATH_CPMM,coinLpType:t}},flowx_v3:e=>{tiny_invariant_default()(e.extra?.swapFeeRate,"flowx_v3 protocol requires swapFeeRate");let t=e.extra.swapFeeRate;return{...n(e),protocol:types_AggregatorProtocol.FLOWX_CLMM,poolFeeRate:t}},turbos:e=>{tiny_invariant_default()(e.extra?.poolStructTag,"turbos protocol requires poolStructTag");let[t,o,a]=_(e.extra.poolStructTag);return{...n(e),protocol:types_AggregatorProtocol.TURBOS_CLMM,coinFeeType:a}},obric:e=>(tiny_invariant_default()(e.extra?.oracles,"obric protocol requires oracles"),{...n(e),protocol:types_AggregatorProtocol.OBRIC,pythPriceFeedIdA:i(e.extra.oracles[0]),pythPriceFeedIdB:i(e.extra.oracles[1])}),haedal_pmm:e=>(tiny_invariant_default()(e.extra.oracles,"haedal_pmm protocol requires oracles"),{...n(e),protocol:types_AggregatorProtocol.HAEDAL_CPMM,pythPriceFeedIdA:i(e.extra.oracles[0]),pythPriceFeedIdB:i(e.extra.oracles[1])}),sevenk_v1:e=>{tiny_invariant_default()(e.extra?.poolStructTag,"sevenk_v1 protocol requires poolStructTag"),tiny_invariant_default()(e.extra?.oracleConfigX,"sevenk_v1 protocol requires oracleConfigX"),tiny_invariant_default()(e.extra?.oracleConfigY,"sevenk_v1 protocol requires oracleConfigY");let t=e.extra.oracles?.[0]?.Pyth?.bytes,o=e.extra.oracles?.[1]?.Pyth?.bytes;tiny_invariant_default()(t,"sevenk_v1 protocol requires pythPriceFeedIdA"),tiny_invariant_default()(o,"sevenk_v1 protocol requires pythPriceFeedIdB");let[a,r,i]=_(e.extra.poolStructTag);return{...n(e),protocol:types_AggregatorProtocol.SEVENK_CPMM,coinLpType:i,pythPriceFeedIdA:t,pythPriceFeedIdB:o,oracleConfigA:e.extra.oracleConfigX,oracleConfigB:e.extra.oracleConfigY}},steamm:e=>{tiny_invariant_default()(e.extra?.poolStructTag,"steamm protocol requires poolStructTag"),tiny_invariant_default()(e.extra?.bankAStructTag,"steamm protocol requires bankAStructTag"),tiny_invariant_default()(e.extra?.lendingMarketA,"steamm protocol requires lendingMarketA"),tiny_invariant_default()(e.extra?.bankA,"steamm protocol requires bankA"),tiny_invariant_default()(e.extra?.bankB,"steamm protocol requires bankB");let[t,o,a,r]=_(e.extra.poolStructTag),[i,s,c]=_(e.extra.bankAStructTag);return{...n(e),protocol:types_AggregatorProtocol.STEAMM_CPMM,bankAId:e.extra.bankA,bankBId:e.extra.bankB,lendingMarketId:e.extra.lendingMarketA,lendingMarketType:i,bCoinAType:t,bCoinBType:o,lpBCoinType:r}},steamm_oracle_quoter:e=>{tiny_invariant_default()(e.extra?.poolStructTag,"steamm_oracle_quoter protocol requires poolStructTag"),tiny_invariant_default()(e.extra?.bankAStructTag,"steamm_oracle_quoter protocol requires bankAStructTag"),tiny_invariant_default()(e.extra?.lendingMarketA,"steamm_oracle_quoter protocol requires lendingMarketA"),tiny_invariant_default()(e.extra?.oracleRegistry,"steamm_oracle_quoter protocol requires oracleRegistry"),tiny_invariant_default()(e.extra?.bankA,"steamm_oracle_quoter protocol requires bankA"),tiny_invariant_default()(e.extra?.bankB,"steamm_oracle_quoter protocol requires bankB"),tiny_invariant_default()(e.extra?.oracleIndexes,"steamm_oracle_quoter protocol requires oracleIndexes"),tiny_invariant_default()(e.extra?.oracles,"steamm_oracle_quoter protocol requires oracles");let[t,o,a,r]=_(e.extra?.poolStructTag),[s,c,l]=_(e.extra.bankAStructTag),[u,p]=e.extra.oracleIndexes;return{...n(e),protocol:types_AggregatorProtocol.STEAMM_OMM,bankAId:e.extra.bankA,bankBId:e.extra.bankB,lendingMarketId:e.extra.lendingMarketA,lendingMarketType:s,bCoinAType:t,bCoinBType:o,lpBCoinType:r,pythPriceFeedIdA:i(e.extra.oracles[0]),pythPriceFeedIdB:i(e.extra.oracles[1]),oracleRegistryId:e.extra.oracleRegistry,oracleIndexA:u,oracleIndexB:p}},steamm_oracle_quoter_v2:e=>{tiny_invariant_default()(e.extra?.poolStructTag,"steamm_oracle_quoter_v2 protocol requires poolStructTag"),tiny_invariant_default()(e.extra?.bankAStructTag,"steamm_oracle_quoter_v2 protocol requires bankAStructTag"),tiny_invariant_default()(e.extra?.lendingMarketA,"steamm_oracle_quoter_v2 protocol requires lendingMarketA"),tiny_invariant_default()(e.extra?.oracleRegistry,"steamm_oracle_quoter_v2 protocol requires oracleRegistry"),tiny_invariant_default()(e.extra?.bankA,"steamm_oracle_quoter_v2 protocol requires bankA"),tiny_invariant_default()(e.extra?.bankB,"steamm_oracle_quoter_v2 protocol requires bankB"),tiny_invariant_default()(e.extra?.oracleIndexes,"steamm_oracle_quoter_v2 protocol requires oracleIndexes"),tiny_invariant_default()(e.extra?.oracles,"steamm_oracle_quoter_v2 protocol requires oracles");let[t,o,a,r]=_(e.extra?.poolStructTag),[s,c,l]=_(e.extra.bankAStructTag),[u,p]=e.extra.oracleIndexes;return{...n(e),protocol:types_AggregatorProtocol.STEAMM_OMM_V2,bankAId:e.extra.bankA,bankBId:e.extra.bankB,lendingMarketId:e.extra.lendingMarketA,lendingMarketType:s,bCoinAType:t,bCoinBType:o,lpBCoinType:r,pythPriceFeedIdA:i(e.extra.oracles[0]),pythPriceFeedIdB:i(e.extra.oracles[1]),oracleRegistryId:e.extra.oracleRegistry,oracleIndexA:u,oracleIndexB:p}},cetus:e=>({...n(e),protocol:types_AggregatorProtocol.CETUS_CLMM}),bluemove:e=>({...n(e),protocol:types_AggregatorProtocol.BLUEMOVE_CPMM}),kriya:e=>({...n(e),protocol:types_AggregatorProtocol.KRIYA_CPMM}),kriya_v3:e=>({...n(e),protocol:types_AggregatorProtocol.KRIYA_CLMM}),deepbook_v3:e=>({...n(e),protocol:types_AggregatorProtocol.DEEPBOOK_V3}),flowx:e=>({...n(e),protocol:types_AggregatorProtocol.FLOWX_CPMM}),bluefin:e=>({...n(e),protocol:types_AggregatorProtocol.BLUEFIN_CLMM}),springsui:e=>({...n(e),protocol:types_AggregatorProtocol.SPRINGSUI}),magma:e=>({...n(e),protocol:types_AggregatorProtocol.MAGMA_CLMM}),momentum:e=>({...n(e),protocol:types_AggregatorProtocol.MOMENTUM_CLMM}),fullsail:e=>({...n(e),protocol:types_AggregatorProtocol.FULLSAIL_CLMM}),stsui:e=>({...n(e),protocol:types_AggregatorProtocol.ALPHAFI_LSD}),suiswap:e=>({...n(e),protocol:types_AggregatorProtocol.SUISWAP_CPMM}),cetus_dlmm:e=>({...n(e),protocol:types_AggregatorProtocol.CETUS_DLMM}),ferra_dlmm:e=>({...n(e),protocol:types_AggregatorProtocol.FERRA_DLMM}),ferra_clmm:e=>({...n(e),protocol:types_AggregatorProtocol.FERRA_CLMM})};function a(e){let a=e.pool.type;if(t.has(a))throw Error(`Unsupported SourceDex: ${a}`);return(0,o[a])(e)}function r(e){let t=new Map;for(let[o,a]of e.entries())t.set(a.assetIn,o);let o=e.map(a);for(let e of t.values())o[e].amountIn=aggregator_Aggregator.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 _(e){return(0,utils_namespaceObject.parseStructTag)(e||"").typeParams.map(utils_namespaceObject.normalizeStructTag)}function i(e){let t=e?.Pyth?.bytes||e?.Pyth?.price_identifier?.bytes;return tiny_invariant_default()(t,"Pyth price feed id is not found"),"0x"+(0,utils_namespaceObject.toHex)(Uint8Array.from(t))}e.toMetaAggregatorPath=a,e.toMetaAggregatorPaths=r,e.convert=function(e){var t,o,a;let n;tiny_invariant_default()(e.routes,"Invalid raw route: routes is missing");let _=(t=e.routes,n={},t.forEach(e=>{e.hops.forEach(e=>{n[e.poolId]=e.pool})}),n),i=r((o=e.swaps,a=_,o.map(e=>{let t=a[e.poolId],o=denormalizeTokenType(e.assetIn),r=denormalizeTokenType(e.assetOut),n={type:denormalizeTokenType(t?.allTokens?.[0]?.address),decimals:t?.allTokens?.[0]?.decimal},_={type:denormalizeTokenType(t?.allTokens?.[1]?.address),decimals:t?.allTokens?.[0]?.decimal},i=o===n.type;return{...e,pool:t,assetIn:o,assetOut:r,coinX:n,coinY:_,swapXtoY:i}})));return{coinInType:e.tokenIn,coinOutType:e.tokenOut,amountOut:e.returnAmountWithDecimal,tradePaths:i}}}(sevenk_aggregator_converter_SevenKAggregatorConverter||(sevenk_aggregator_converter_SevenKAggregatorConverter={}));class _7k_SevenKAggregator{_config;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:a,metaAggregator:r,supportedProtocols:n}){try{this._config.sevenKApiKey&&bluefin7k_aggregator_sdk_namespaceObject.Config.setApiKey(this._config.sevenKApiKey);let _=a?a.tradeFeePercent:this._config.defaultTradeFee.tradeFeePercent,i=n??(r?sevenk_aggregator_converter_SevenKAggregatorConverter.SUPPORTED_PROTOCOLS:void 0);return await (0,bluefin7k_aggregator_sdk_namespaceObject.getQuote)({tokenIn:t,tokenOut:o,amountIn:e.toString(),commissionBps:1e4*_,sources:i})}catch(e){return null}}async getTransaction({walletAddress:e,completeRoute:t,slippage:o,tradeFee:a}){let r,n;a?(r=a.tradeFeePercent,n=a.tradeFeeRecipientAddress):(r=this._config.defaultTradeFee.tradeFeePercent,n=this._config.defaultTradeFee.tradeFeeRecipientAddress);let _=await (0,bluefin7k_aggregator_sdk_namespaceObject.buildTx)({quoteResponse:t,slippage:o,accountAddress:e,commission:{partner:n,commissionBps:1e4*r}});return _.tx instanceof bluefin7k_aggregator_sdk_namespaceObject.BluefinXTx?transactions_namespaceObject.Transaction.from(_.tx.txBytes).build({client:this._suiClient}):(_.tx.setSender(e),_.tx.build({client:this._suiClient}))}}!function(e){e.toCommonTradeRoutes=function(e){let t=[];if(!e.routes||0===e.routes.length)return null;for(let o of e.routes){let e=[],a={};for(let t of o.hops){for(let e of t.pool.allTokens)a[e.address]=e.decimal;let o=a[t.tokenIn]??0,r=a[t.tokenOut]??0,n=BigInt(new(external_bignumber_js_default())(t.tokenInAmount).multipliedBy(10**o).toFixed(0,3)),_=BigInt(new(external_bignumber_js_default())(t.tokenOutAmount).multipliedBy(10**r).toFixed(0,3));e.push({poolAddress:t.poolId,coinIn:t.tokenIn,coinOut:t.tokenOut,amountIn:n,amountOut:_})}if(0===e.length)continue;let r=a[o.tokenIn]??0,n=a[o.tokenOut]??0,_=BigInt(new(external_bignumber_js_default())(o.tokenInAmount).multipliedBy(10**r).toFixed(0,3)),i=BigInt(new(external_bignumber_js_default())(o.tokenOutAmount).multipliedBy(10**n).toFixed(0,3));t.push({paths:e,coinIn:o.tokenIn,coinOut:o.tokenOut,amountIn:_,amountOut:i})}return 0===t.length?null:{coinIn:e.tokenIn,coinOut:e.tokenOut,amountIn:BigInt(e.swapAmountWithDecimal),amountOut:BigInt(e.returnAmountAfterCommissionWithDecimal),routes:t}}}(_7k_SevenKAggregator||(_7k_SevenKAggregator={}));const external_aftermath_ts_sdk_namespaceObject=require("aftermath-ts-sdk");class aftermath_AftermathAggregator{_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 external_aftermath_ts_sdk_namespaceObject.Aftermath(this._config.aftermathApiEndpoint):this._aftermathClient=new external_aftermath_ts_sdk_namespaceObject.Aftermath("MAINNET"),await this._aftermathClient.init(),this._config.aftermathApiKey){let e=external_aftermath_ts_sdk_namespaceObject.Helpers.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:a}){try{let r;r=a?{recipient:a.tradeFeeRecipientAddress,feePercentage:a.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:r})}catch(e){return null}}async getTransaction({completeRoute:e,walletAddress:t,slippage:o}){let a=await this.aftermathClient(),r=await a.Router().getTransactionForCompleteTradeRoute({completeRoute:e,walletAddress:t,slippage:o,isSponsoredTx:!1});return r.setSender(t),r.build({client:this._suiClient})}}!function(e){e.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}}}(aftermath_AftermathAggregator||(aftermath_AftermathAggregator={}));const astros_aggregator_sdk_namespaceObject=require("@naviprotocol/astros-aggregator-sdk");function isSuiCoin(e){return"0x2::sui::SUI"===e||"0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI"===e}class astros_AstrosAggregator{_config;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:a}){try{let r;return r=a?{fee:1e4*a.tradeFeePercent,receiverAddress:a.tradeFeeRecipientAddress}:{fee:1e4*this._config.defaultTradeFee.tradeFeePercent,receiverAddress:this._config.defaultTradeFee.tradeFeeRecipientAddress},await (0,astros_aggregator_sdk_namespaceObject.getQuote)(t,o,e,this._config.astrosApiKey,{byAmountIn:!0,serviceFee:r})}catch(e){return null}}returnMergedCoins(e,t,o){if(t.length<2)return e.object(t[0].coinObjectId);let a=0,r=[];t.sort((e,t)=>Number(t.balance)-Number(e.balance)).slice(1).forEach(e=>{a>=o||(a+=Number(e.balance),r.push(e.coinObjectId))});let n=t[0].coinObjectId;return e.mergeCoins(n,r),e.object(n)}async getTransaction({completeRoute:e,walletAddress:t,slippage:o,tradeFee:a}){let r,n;r=a?{fee:a.tradeFeePercent,receiverAddress:a.tradeFeeRecipientAddress}:{fee:this._config.defaultTradeFee.tradeFeePercent,receiverAddress:this._config.defaultTradeFee.tradeFeeRecipientAddress};let _=new(external_bignumber_js_default())(e.amount_out).multipliedBy(1-o-r.fee).toNumber(),i=new transactions_namespaceObject.Transaction;if(isSuiCoin(e.from))n=i.splitCoins(i.gas,[i.pure.u64(e.amount_in)]);else{let o=await (0,astros_aggregator_sdk_namespaceObject.getCoins)(this._suiClient,t,e.from),a=this.returnMergedCoins(i,o.data,Number.parseFloat(e.amount_in));n=i.splitCoins(a,[i.pure.u64(e.amount_in)])}let s=await (0,astros_aggregator_sdk_namespaceObject.buildSwapPTBFromQuote)(t,i,_,n,e,void 0,!1,this._config.astrosApiKey,{serviceFee:r});return i.transferObjects([s],t),i.setSender(t),i.build({client:this._suiClient})}}!function(e){e.toCommonTradeRoutes=function(e,t,o){if(0===e.routes.length)return null;let a=[];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&&a.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===a.length?null:{coinIn:t,coinOut:o,amountIn:BigInt(e.amount_in),amountOut:BigInt(e.amount_out),routes:a}}}(astros_AstrosAggregator||(astros_AstrosAggregator={}));const aggregator_sdk_namespaceObject=require("@cetusprotocol/aggregator-sdk"),external_bn_js_namespaceObject=require("bn.js");var external_bn_js_default=__webpack_require__.n(external_bn_js_namespaceObject);!function(e){e.equals=function(e,t){return e.tradeFeePercent===t.tradeFeePercent&&e.tradeFeeRecipientAddress===t.tradeFeeRecipientAddress}}(types_TradeFeeOptions||(types_TradeFeeOptions={})),function(e){var t;e.UNIVERSAL_META_VAULT_INTEGRATION_PACKAGE_ID="0xfd12517a9fc87c6a1f2357ad13b3421fb27a8bd7ca07d5fd5934ac35733baa47",(t=e.MetaCoinType||(e.MetaCoinType={})).SUPER_SUI="0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI",t.MUSD="0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD",t.METH="0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH",e.VERSION_OBJ_ID="0x4696559327b35ff2ab26904e7426a1646312e9c836d5c6cff6709a5ccc30915c",e.createCap=function(e){let t,{txb:o,coinType:a,metaCoin:r,createCapAllTypeParams:n,whitelistedAppId:_,poolId:i,pythInfoObjectIdMap:s,createCapPackageId:c,createCapModule:l,createCapFunc:u}=e,p=[r.toString()];switch(n&&p.push(a),e.metaCoin){case"0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI":t=[o.object(_),o.object(i),o.object(e.registryId)];break;case"0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD":{let a=s.get(e.pythPriceFeedIdMeta);tiny_invariant_default()(a,"Not found priceMetaId in pythObjectIdMap"),t=[o.object(_),o.object(i),o.object(a),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)];break}case"0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH":{let a=s.get(e.pythPriceFeedIdMeta);tiny_invariant_default()(a,"Not found priceId in pythObjectIdMap");let r=s.get(e.pythPriceFeedIdEth);tiny_invariant_default()(r,"Not found priceEthFeedId in pythObjectIdMap"),t=[o.object(_),o.object(i),o.object(a),o.object(r),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)];break}default:throw Error("Invalid MetaCoin: "+r.toString())}return o.moveCall({target:`${c}::${l}::${u}`,typeArguments:p,arguments:t})},e.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)}},e.isMetaCoinType=function(t){return Object.values(e.MetaCoinType).map(e=>e.toString()).includes(t)},e.getCreateCapAllTypeParams=function(t,o){switch(t){case"0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI":return o===e.UNIVERSAL_META_VAULT_INTEGRATION_PACKAGE_ID;case"0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD":case"0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH":return!0;default:throw Error("Invalid MetaCoin: "+t)}}}(metastable_Metastable||(metastable_Metastable={})),function(e){let t=[aggregator_sdk_namespaceObject.CETUS,aggregator_sdk_namespaceObject.KRIYA,aggregator_sdk_namespaceObject.FLOWXV2,aggregator_sdk_namespaceObject.FLOWXV3,aggregator_sdk_namespaceObject.KRIYAV3,aggregator_sdk_namespaceObject.TURBOS,aggregator_sdk_namespaceObject.AFTERMATH,aggregator_sdk_namespaceObject.HAEDAL,aggregator_sdk_namespaceObject.VOLO,aggregator_sdk_namespaceObject.AFSUI,aggregator_sdk_namespaceObject.BLUEMOVE,aggregator_sdk_namespaceObject.DEEPBOOKV3,aggregator_sdk_namespaceObject.SCALLOP,aggregator_sdk_namespaceObject.SUILEND,aggregator_sdk_namespaceObject.BLUEFIN,aggregator_sdk_namespaceObject.HAEDALPMM,aggregator_sdk_namespaceObject.ALPHAFI,aggregator_sdk_namespaceObject.SPRINGSUI,aggregator_sdk_namespaceObject.STEAMM,aggregator_sdk_namespaceObject.METASTABLE,aggregator_sdk_namespaceObject.OBRIC,aggregator_sdk_namespaceObject.HAWAL,aggregator_sdk_namespaceObject.STEAMM_OMM,aggregator_sdk_namespaceObject.MOMENTUM,aggregator_sdk_namespaceObject.STEAMM_OMM_V2,aggregator_sdk_namespaceObject.MAGMA,aggregator_sdk_namespaceObject.SEVENK,aggregator_sdk_namespaceObject.HAEDALHMMV2,aggregator_sdk_namespaceObject.FULLSAIL,aggregator_sdk_namespaceObject.CETUSDLMM,aggregator_sdk_namespaceObject.FERRADLMM,aggregator_sdk_namespaceObject.FERRACLMM];e.SUPPORTED_PROTOCOLS=[...t];let o=new Set(t),a=e=>({poolId:e.id,coinInType:e.from,coinOutType:e.target,aToB:e.direction,amountIn:e.amountIn});function r(t){if(!o.has(t.provider))throw Error(`Unsupported or unknown provider: ${t.provider} for pool ${t.id}`);return(0,e.TO_META_AGGREGATOR_PATH_FN_MAP[t.provider])(t)}function n(e){let t=new Map;for(let[o,a]of e.paths.entries())t.set(a.from,o);let o=[];for(let a=0;a<e.paths.length;a++){let n=e.paths[a],_=r(n);t.get(n.from)===a&&(_.amountIn=aggregator_Aggregator.MAX_AMOUNT_IN),o.push(_)}return o}e.TO_META_AGGREGATOR_PATH_FN_MAP={[aggregator_sdk_namespaceObject.METASTABLE]:e=>{let t=a(e),o=e.extendedDetails,r=e.direction?e.target:e.from;tiny_invariant_default()(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(r){case metastable_Metastable.MetaCoinType.SUPER_SUI:return tiny_invariant_default()(o.metastable_registry_id,`METASTABLE_SUPER_SUI protocol requires 'metastable_registry_id' in extendedDetails for pool ${e.id}.`),{...t,...n,protocol:types_AggregatorProtocol.METASTABLE,metaCoin:r,registryId:o.metastable_registry_id};case metastable_Metastable.MetaCoinType.MUSD:return tiny_invariant_default()(o.metastable_price_seed,`METASTABLE_MUSD protocol requires 'metastable_price_seed' in extendedDetails for pool ${e.id}.`),{...t,...n,protocol:types_AggregatorProtocol.METASTABLE,metaCoin:r,pythPriceFeedIdMeta:o.metastable_price_seed};case metastable_Metastable.MetaCoinType.METH:return tiny_invariant_default()(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:types_AggregatorProtocol.METASTABLE,metaCoin:r,pythPriceFeedIdMeta:o.metastable_price_seed,pythPriceFeedIdEth:o.metastable_eth_price_seed};default:throw Error(`METASTABLE protocol does not support ${r} as metaCoin.`)}},[aggregator_sdk_namespaceObject.DEEPBOOKV3]:e=>({...a(e),protocol:types_AggregatorProtocol.DEEPBOOK_V3}),[aggregator_sdk_namespaceObject.AFTERMATH]:e=>{let t=e.extendedDetails;return tiny_invariant_default()(t?.aftermath_lp_supply_type,`AFTERMATH_CPMM protocol requires 'aftermath_lp_type' in extendedDetails for pool ${e.id}.`),{...a(e),protocol:types_AggregatorProtocol.AFTERMATH_CPMM,coinLpType:t.aftermath_lp_supply_type}},[aggregator_sdk_namespaceObject.FLOWXV3]:e=>({...a(e),protocol:types_AggregatorProtocol.FLOWX_CLMM,poolFeeRate:String(1e6*e.feeRate)}),[aggregator_sdk_namespaceObject.HAEDALPMM]:e=>{let t=e.extendedDetails;return tiny_invariant_default()(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}.`),{...a(e),protocol:types_AggregatorProtocol.HAEDAL_CPMM,pythPriceFeedIdA:t.haedal_pmm_base_price_seed,pythPriceFeedIdB:t.haedal_pmm_quote_price_seed}},[aggregator_sdk_namespaceObject.HAEDALHMMV2]:e=>{let t=e.extendedDetails;return tiny_invariant_default()(t?.haedalhmmv2_base_price_seed,`HAEDAL_CPMM_V2 protocol requires 'haedal_pyth_price_base_id' in extendedDetails for pool ${e.id}.`),{...a(e),protocol:types_AggregatorProtocol.HAEDAL_CPMM_V2,pythPriceFeedIdBase:t.haedalhmmv2_base_price_seed}},[aggregator_sdk_namespaceObject.SCALLOP]:e=>(tiny_invariant_default()(e.extendedDetails?.scallop_scoin_treasury,`SCALLOP protocol requires 'scallop_scoin_treasury' in extendedDetails for pool ${e.id}.`),{...a(e),protocol:types_AggregatorProtocol.SCALLOP,scoinTreasury:e.extendedDetails.scallop_scoin_treasury}),[aggregator_sdk_namespaceObject.STEAMM]:e=>{let t=e.extendedDetails;return tiny_invariant_default()(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}.`),{...a(e),protocol:types_AggregatorProtocol.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}},[aggregator_sdk_namespaceObject.STEAMM_OMM]:e=>{let t=e.extendedDetails;return tiny_invariant_default()(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}.`),{...a(e),protocol:types_AggregatorProtocol.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)}},[aggregator_sdk_namespaceObject.STEAMM_OMM_V2]:e=>{let t=e.extendedDetails;return tiny_invariant_default()(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}.`),{...a(e),protocol:types_AggregatorProtocol.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)}},[aggregator_sdk_namespaceObject.OBRIC]:e=>{let t=a(e);if(e.extendedDetails?.obric_coin_a_price_id&&e.extendedDetails?.obric_coin_b_price_id)return{...t,protocol:types_AggregatorProtocol.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:types_AggregatorProtocol.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}.`)},[aggregator_sdk_namespaceObject.SEVENK]:e=>{let t=e.extendedDetails;return tiny_invariant_default()(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}.`),{...a(e),protocol:types_AggregatorProtocol.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}},[aggregator_sdk_namespaceObject.TURBOS]:e=>(tiny_invariant_default()(e.extendedDetails?.turbos_fee_type,`TURBOS_CLMM protocol requires 'coinFeeType' parameter for pool ${e.id}. Provide it via the parametersMap argument.`),{...a(e),protocol:types_AggregatorProtocol.TURBOS_CLMM,coinFeeType:e.extendedDetails.turbos_fee_type}),[aggregator_sdk_namespaceObject.AFSUI]:e=>({...a(e),protocol:types_AggregatorProtocol.AFTERMATH_LSD}),[aggregator_sdk_namespaceObject.ALPHAFI]:e=>({...a(e),protocol:types_AggregatorProtocol.ALPHAFI_LSD}),[aggregator_sdk_namespaceObject.BLUEFIN]:e=>({...a(e),protocol:types_AggregatorProtocol.BLUEFIN_CLMM}),[aggregator_sdk_namespaceObject.BLUEMOVE]:e=>({...a(e),protocol:types_AggregatorProtocol.BLUEMOVE_CPMM}),[aggregator_sdk_namespaceObject.CETUS]:e=>({...a(e),protocol:types_AggregatorProtocol.CETUS_CLMM}),[aggregator_sdk_namespaceObject.CETUSDLMM]:e=>({...a(e),protocol:types_AggregatorProtocol.CETUS_DLMM}),[aggregator_sdk_namespaceObject.FERRACLMM]:e=>({...a(e),protocol:types_AggregatorProtocol.FERRA_CLMM}),[aggregator_sdk_namespaceObject.FERRADLMM]:e=>({...a(e),protocol:types_AggregatorProtocol.FERRA_DLMM}),[aggregator_sdk_namespaceObject.FLOWXV2]:e=>({...a(e),protocol:types_AggregatorProtocol.FLOWX_CPMM}),[aggregator_sdk_namespaceObject.FULLSAIL]:e=>({...a(e),protocol:types_AggregatorProtocol.FULLSAIL_CLMM}),[aggregator_sdk_namespaceObject.HAEDAL]:e=>({...a(e),protocol:types_AggregatorProtocol.HAEDAL_LSD}),[aggregator_sdk_namespaceObject.HAWAL]:e=>({...a(e),protocol:types_AggregatorProtocol.HAEDAL_LSD_WAL}),[aggregator_sdk_namespaceObject.KRIYA]:e=>({...a(e),protocol:types_AggregatorProtocol.KRIYA_CPMM}),[aggregator_sdk_namespaceObject.KRIYAV3]:e=>({...a(e),protocol:types_AggregatorProtocol.KRIYA_CLMM}),[aggregator_sdk_namespaceObject.MAGMA]:e=>({...a(e),protocol:types_AggregatorProtocol.MAGMA_CLMM}),[aggregator_sdk_namespaceObject.MOMENTUM]:e=>({...a(e),protocol:types_AggregatorProtocol.MOMENTUM_CLMM}),[aggregator_sdk_namespaceObject.SUILEND]:e=>({...a(e),protocol:types_AggregatorProtocol.SPRINGSUI}),[aggregator_sdk_namespaceObject.SPRINGSUI]:e=>({...a(e),protocol:types_AggregatorProtocol.SPRINGSUI}),[aggregator_sdk_namespaceObject.VOLO]:e=>({...a(e),protocol:types_AggregatorProtocol.VOLO})},e.toMetaAggregatorPath=r,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)}}}(cetus_aggregator_converter_CetusAggregatorConverter||(cetus_aggregator_converter_CetusAggregatorConverter={}));class cetus_CetusAggregator{_config;_suiClient;_cetusClient;getCetusClientConfig({walletAddress:e,overlayFeeReceiver:t,overlayFeeRate:o}){return{client:this._suiClient,overlayFeeReceiver:t,overlayFeeRate:o,env:aggregator_sdk_namespaceObject.Env.Mainnet,signer:e,...this._config.cetusApiKey&&this._config.cetusApiEndpoint?{apiKey:this._config.cetusApiKey,endpoint:this._config.cetusApiEndpoint}:{},partner:this._config.cetusPartnerId}}constructor(e,t){this._config=e,this._suiClient=t}cetusClient(e,t){return t&&!types_TradeFeeOptions.equals(t,this._config.defaultTradeFee)?new aggregator_sdk_namespaceObject.AggregatorClient(this.getCetusClientConfig({walletAddress:e,overlayFeeReceiver:t.tradeFeeRecipientAddress,overlayFeeRate:t.tradeFeePercent})):(this._cetusClient||(this._cetusClient=new aggregator_sdk_namespaceObject.AggregatorClient(this.getCetusClientConfig({walletAddress:e,overlayFeeReceiver:this._config.defaultTradeFee.tradeFeeRecipientAddress,overlayFeeRate:this._config.defaultTradeFee.tradeFeePercent}))),this._cetusClient)}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:a,metaAggregator:r,supportedProtocols:n}){try{let _=this.cetusClient(void 0,a),i=n??(r?cetus_aggregator_converter_CetusAggregatorConverter.SUPPORTED_PROTOCOLS:void 0);return await _.findRouters({from:t,target:o,amount:new(external_bn_js_default())(e.toString()),byAmountIn:!0,providers:i})}catch(e){return null}}async getTransaction({completeRoute:e,walletAddress:t,slippage:o,tradeFee:a}){let r=this.cetusClient(t,a),n=new transactions_namespaceObject.Transaction;return n.setSender(t),await r.fastRouterSwap({router:e,txb:n,slippage:o}),n.build({client:this._suiClient})}}!function(e){e.toCommonTradeRoutes=function(e,t,o){if(0===e.paths.length)return null;let a=[],r=[],n=[];for(let t=0;t<e.paths.length;t++){let o=e.paths[t],a={poolAddress:o.id,amountIn:BigInt(o.amountIn),amountOut:BigInt(o.amountOut),coinIn:o.from,coinOut:o.target};if(n.push(a),t===e.paths.length-1)r.push([...n]);else{let a=e.paths[t+1];o.target!==a.from&&(r.push([...n]),n=[])}}for(let e of r)0!==e.length&&a.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===a.length?null:{coinIn:t,coinOut:o,amountIn:BigInt(e.amountIn.toString(10)),amountOut:BigInt(e.amountOut.toString(10)),routes:a}}}(cetus_CetusAggregator||(cetus_CetusAggregator={}));var common_SupportedAggregator=function(e){return e.ASTROS="ASTROS",e.AFTERMATH="AFTERMATH",e.SEVENK="7K",e.CETUS="CETUS",e.FLOWX="FLOWX",e}({});const sdk_namespaceObject=require("@flowx-finance/sdk");function getInputPercent(e){return 1e6*e}!function(e){let t=[sdk_namespaceObject.Protocol.HOP_FUN,sdk_namespaceObject.Protocol.FLOWX_PMM,sdk_namespaceObject.Protocol.DEEPBOOK,sdk_namespaceObject.Protocol.IPX_TIDE,sdk_namespaceObject.Protocol.METASTABLE];e.SUPPORTED_PROTOCOLS=Object.values(sdk_namespaceObject.Protocol).filter(e=>!t.includes(e));let o={[sdk_namespaceObject.Protocol.FLOWX_V2]:t=>({...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:types_AggregatorProtocol.FLOWX_CPMM}),[sdk_namespaceObject.Protocol.FLOWX_V3]:t=>(tiny_invariant_default()(void 0!==t.poolFee,`Pool fee is required for pool ${t.pool.id}`),tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.FLOWX_CLMM,poolFeeRate:t.poolFee.toString()}),[sdk_namespaceObject.Protocol.CETUS]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.CETUS_CLMM}),[sdk_namespaceObject.Protocol.CETUS_DLMM]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.CETUS_DLMM}),[sdk_namespaceObject.Protocol.AFTERMATH]:t=>(tiny_invariant_default()(t.lpCoinType,`AFTERMATH protocol requires lpCoinType for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:types_AggregatorProtocol.AFTERMATH_CPMM,coinLpType:t.lpCoinType}),[sdk_namespaceObject.Protocol.AFTERMATH_LSD]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:types_AggregatorProtocol.AFTERMATH_LSD}),[sdk_namespaceObject.Protocol.ALPHA_FI]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:types_AggregatorProtocol.ALPHAFI_LSD}),[sdk_namespaceObject.Protocol.BLUEFIN]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.BLUEFIN_CLMM}),[sdk_namespaceObject.Protocol.BLUEMOVE]:t=>({...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:types_AggregatorProtocol.BLUEMOVE_CPMM}),[sdk_namespaceObject.Protocol.DEEPBOOK_V3]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.DEEPBOOK_V3}),[sdk_namespaceObject.Protocol.FERRA_CLMM]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.FERRA_CLMM}),[sdk_namespaceObject.Protocol.FERRA_DLMM]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.FERRA_DLMM}),[sdk_namespaceObject.Protocol.FULL_SAIL]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.FULLSAIL_CLMM}),[sdk_namespaceObject.Protocol.HAEDAL]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:types_AggregatorProtocol.HAEDAL_LSD}),[sdk_namespaceObject.Protocol.HAEDAL_PMM]:t=>{let o=t.oracles;return tiny_invariant_default()(o&&o.length>=2,`HAEDAL_CPMM protocol requires oracle price feeds for pool ${t.pool.id}.`),tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.HAEDAL_CPMM,pythPriceFeedIdA:o[0].priceId,pythPriceFeedIdB:o[1].priceId}},[sdk_namespaceObject.Protocol.KRIYA_DEX]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.KRIYA_CPMM}),[sdk_namespaceObject.Protocol.KRIYA_V3]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.KRIYA_CLMM}),[sdk_namespaceObject.Protocol.MAGMA_FINANCE]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.MAGMA_CLMM}),[sdk_namespaceObject.Protocol.MAGMA_ALMM]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.MAGMA_ALMM}),[sdk_namespaceObject.Protocol.MOMENTUM_FINANCE]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.MOMENTUM_CLMM}),[sdk_namespaceObject.Protocol.OBRIC]:t=>(tiny_invariant_default()(t.xPriceId&&t.yPriceId,`OBRIC protocol requires price feeds for pool ${t.pool.id}`),tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.OBRIC,priceInfoObjIdA:t.xPriceId,priceInfoObjIdB:t.yPriceId}),[sdk_namespaceObject.Protocol.SPRING_SUI]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:types_AggregatorProtocol.SPRINGSUI}),[sdk_namespaceObject.Protocol.STEAMM]:t=>{tiny_invariant_default()(void 0!==t.bankXInfo&&void 0!==t.bankYInfo,`STEAMM protocol requires bank info for pool ${t.pool.id}`),tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),tiny_invariant_default()(void 0!==t.quoterType,`quoterType is required for pool ${t.pool.id}`),tiny_invariant_default()(void 0!==t.poolInfo,`poolInfo is required for pool ${t.pool.id}`),tiny_invariant_default()(void 0!==t.protocolConfig&&void 0!==t.protocolConfig.oracleRegistryId,`protocolConfig is required for pool ${t.pool.id}`);let o=t.oracles,a=e.toMetaAggregatorBasePath(t),r=t.xForY;switch(t.quoterType){case"constant_product":return{...a,aToB:r,protocol:types_AggregatorProtocol.STEAMM_CPMM,bankAId:r?t.bankXInfo.bankId:t.bankYInfo.bankId,bankBId:r?t.bankYInfo.bankId:t.bankXInfo.bankId,lendingMarketId:t.bankXInfo.lendingMarketId,lendingMarketType:t.bankXInfo.lendingMarketType,bCoinAType:r?t.bankXInfo.bTokenType:t.bankYInfo.bTokenType,bCoinBType:r?t.bankYInfo.bTokenType:t.bankXInfo.bTokenType,lpBCoinType:t.poolInfo.lpTokenType};case"oracle":case"oracle_v2":{tiny_invariant_default()(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 tiny_invariant_default()(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}.`),{...a,aToB:r,protocol:types_AggregatorProtocol.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}`)}},[sdk_namespaceObject.Protocol.SEVENK_V1]:t=>{let o=t.oracles;return tiny_invariant_default()(o&&o.length>=2,`SEVENK_CPMM protocol requires oracle price feeds for pool ${t.pool.id}.`),tiny_invariant_default()(t.poolStructTag,`SEVENK_V1 protocol requires poolStructTag for pool ${t.pool.id}`),tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.SEVENK_CPMM,coinLpType:t.poolStructTag,pythPriceFeedIdA:o[0].priceId,pythPriceFeedIdB:o[1].priceId,oracleConfigA:o[0].oracleId??"",oracleConfigB:o[1].oracleId??""}},[sdk_namespaceObject.Protocol.SUI_REWARDS]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.SRM_CPMM}),[sdk_namespaceObject.Protocol.TURBOS_FIANCE]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.TURBOS_CLMM,coinFeeType:t.poolStructTag?t.poolStructTag.split("<")[1].split(",")[2].trim().replace(">",""):""}),[sdk_namespaceObject.Protocol.VOLO_LSD]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:types_AggregatorProtocol.VOLO}),[sdk_namespaceObject.Protocol.TRADEPORT]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),tiny_invariant_default()(void 0!==t.poolFee,`Pool fee is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,poolFeeRate:t.poolFee.toString(),protocol:types_AggregatorProtocol.TRADEPORT_CLMM}),[sdk_namespaceObject.Protocol.TURBOS_FUN]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.TURBOS_FUN}),[sdk_namespaceObject.Protocol.BLUEMOVE_FUN]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,expectedAmountOut:t.amountOut.toString(),protocol:types_AggregatorProtocol.MOVEPUMP}),[sdk_namespaceObject.Protocol.SEVEN_K_FUN]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.SEVENK_FUN}),[sdk_namespaceObject.Protocol.DIPCOIN]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.DIP_CPMM}),[sdk_namespaceObject.Protocol.BOLT]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.BOLT})};function a(t){let o=[];for(let e of t)o.push(...e.paths);let a=new Map;for(let[e,t]of o.entries())a.set(t.input.coinType,e);let r=o.map(e.toMetaAggregatorPath);for(let e of a.values())r[e].amountIn=aggregator_Aggregator.MAX_AMOUNT_IN;return r}e.toMetaAggregatorBasePath=e=>({poolId:e.pool.id,coinInType:e.input.coinType,coinOutType:e.output.coinType,amountIn:e.amountIn.toString()}),e.toMetaAggregatorPath=e=>{let a=e.protocol();if(t.includes(a))throw Error(`Unsupported protocol: ${a}`);return(0,o[a])(e)},e.toMetaAggregatorPaths=a,e.convert=function(e){return{coinInType:e.coinIn.coinType,coinOutType:e.coinOut.coinType,amountOut:e.amountOut.toString(),tradePaths:a(e.routes)}}}(flowx_aggregator_converter_FlowXAggregatorConverter||(flowx_aggregator_converter_FlowXAggregatorConverter={}));class flowx_FlowXAggregator{_config;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}getCommission(e,t){let o,a;return t?(o=t.tradeFeePercent,a=t.tradeFeeRecipientAddress):(o=this._config.defaultTradeFee.tradeFeePercent,a=this._config.defaultTradeFee.tradeFeeRecipientAddress),new sdk_namespaceObject.Commission(a,new sdk_namespaceObject.Coin(e),sdk_namespaceObject.CommissionType.PERCENTAGE,getInputPercent(o),!0)}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:a,metaAggregator:r,supportedProtocols:n}){let _=new sdk_namespaceObject.AggregatorQuoter("mainnet",this._config.flowxApiKey),i=n??(r?flowx_aggregator_converter_FlowXAggregatorConverter.SUPPORTED_PROTOCOLS:void 0);try{return await _.getRoutes({tokenIn:t,tokenOut:o,amountIn:e.toString(),commission:this.getCommission(t,a),includeSources:i})}catch(e){return null}}async getTransaction({walletAddress:e,completeRoute:t,slippage:o,tradeFee:a}){return new sdk_namespaceObject.TradeBuilder("mainnet",t.routes).sender(e).slippage(getInputPercent(o)).commission(this.getCommission(t.coinIn.coinType,a)).build().buildTransaction({client:this._suiClient}).then(t=>(t.setSender(e),t.build({client:this._suiClient})))}}async function getMoveObjectContent(e,t){return(await getMoveObject(e,t)).fields}async function getMoveObject(e,t){let o=await e.getObject({id:t,options:{showContent:!0}}),a=o.data?.content;return tiny_invariant_default()(a,"Pool object not found or has no content"),tiny_invariant_default()("moveObject"===a.dataType,"Object is not a Move object"),a}!function(e){e.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}}}(flowx_FlowXAggregator||(flowx_FlowXAggregator={})),function(e){e.PACKAGE_ID_V4="0x7e6aa6e179466ab2814425a780b122575296d011119fa69d27f289f5a28814bd",e.MEMEZ_AV_OBJECT_ID="0x2319e3e76dfad73d8f4684bdbf42be4f32d8ce4521dd61becc8261dc918d82c0"}(constants_BlastFunConstants||(constants_BlastFunConstants={}));const BASE_BPS=1e4;function getSplitCoinsAfterFee(e,t){let o=BigInt(e),a=BigInt(1e4*Number(t));if(a===BigInt(0))return[o.toString()];let r=o*a/BigInt(1e4);return[(o-r).toString(),r.toString()]}function getAmountAfterFee(e,t){if(!t||0>=Number(t))return BigInt(e);let o=BigInt(e),a=BigInt(1e4*Number(t));if(a===BigInt(0))return o;let r=o*a/BigInt(1e4);return o-r}async function getNeededGasFee(e,t,o,a){let{effects:{gasUsed:r,status:n}}=await e.devInspectTransactionBlock({sender:o,transactionBlock:t});if("success"!==n.status)throw Error(`Transaction failed during dev inspect: ${n.error??""}`);let _=BigInt(r.computationCost)+BigInt(r.storageCost)-BigInt(r.storageRebate),i=BigInt(1e4*Number(a));return _*(BigInt(1e4)+i)/BigInt(1e4)}!function(e){(e.U64||(e.U64={})).mulDivUp=function(e,t,o){let a=BigInt(0);return e*t%o>BigInt(0)&&(a=BigInt(1)),e*t/o+a}}(package_MathUtils||(package_MathUtils={})),function(e){function t(e){return tiny_invariant_default()(BigInt(e)<=BigInt(1e4),"Bps overflow"),BigInt(e)}e.calcUp=function(e,t){let o,a=BigInt(e.pos0),r=BigInt(1e4);return o=a*t%r!==BigInt(0)?BigInt(1):BigInt(0),a*t/r+o},e.sub=function(e,t){return tiny_invariant_default()(BigInt(e.pos0)>=BigInt(t.pos0),"Bps underflow"),{pos0:(BigInt(e.pos0)-BigInt(t.pos0)).toString()}},e.value=function(e){return BigInt(e.pos0)},e.new_=function(e){return{pos0:t(e).toString()}},e.assertOverflow=t}(package_Bps||(package_Bps={})),function(e){var t,o;(e.MemezFun||(e.MemezFun={})).isSniperProtectedMemezFun=async function(e,t){return(await getMoveObjectContent(e,t)).public_key.length>0},(t=e.MemezFees||(e.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 a=e.fields.pos0.fields;if(BigInt(a.pos0)===BigInt(0))return BigInt(0);let r=package_Bps.calcUp(package_Bps.sub(a,o),t);if(t>=r)return r;throw Error(`Insufficient amount to cover fee. Required: ${r}, provided: ${t}`)}throw Error("Unknown fee variant")},t.calculateWithDiscount=function(e,t,o){if("Value"===e.variant)return BigInt(e.fields.pos0);if("Percentage"===e.variant){let a=e.fields.pos0.fields;return package_Bps.calcUp(package_Bps.sub(a,t),o)}throw Error("Unknown fee variant")},(e.MemezBurner||(e.MemezBurner={})).calculate=function(e,t){if(package_Bps.value(e.fee.fields)===BigInt(0)||t===BigInt(0)||t>=BigInt(e.target_liquidity))return package_Bps.new_(0);let o=BigInt(1e4);return package_Bps.new_(package_MathUtils.U64.mulDivUp(package_Bps.value(e.fee.fields),package_MathUtils.U64.mulDivUp(t,o,BigInt(e.target_liquidity)),o))},(o=e.MemezPump||(e.MemezPump={})).getPumpState=async function(e,t){return await getMoveObjectContent(e,t.inner_state)},o.pump=function(t,o){let a=t.constant_product.fields,r=e.MemezFees.takeWithDiscount(a.quote_swap_fee,o,a.quote_referrer_fee.fields),n=o-r,_=BigInt(a.meme_balance),i=BigInt(a.quote_balance),s=_*n/(BigInt(a.virtual_liquidity)+i+n),c=e.MemezFees.takeWithDiscount(a.meme_swap_fee,s,a.meme_referrer_fee.fields);return s-c},o.dump=function(t,o){let a=t.constant_product.fields,r=e.MemezFees.takeWithDiscount(a.meme_swap_fee,o,a.meme_referrer_fee.fields),n=o-r,_=BigInt(a.meme_balance),i=BigInt(a.quote_balance),s=BigInt(a.virtual_liquidity),c=e.MemezBurner.calculate(a.burner.fields,i),l=package_Bps.calcUp(c,n),u=n-(package_Bps.value(c)!==BigInt(0)?l:BigInt(0)),p=(s+i)*u/(_+u);p>i&&(p=i);let m=e.MemezFees.takeWithDiscount(a.quote_swap_fee,p,a.quote_referrer_fee.fields);return p-m}}(package_BlastFunPackage||(package_BlastFunPackage={})),function(e){e.getCurveAmountAfterBuy=async function(e,t){let{suiAmount:o,poolId:a,frontendFee:r}=e,n=await getMoveObjectContent(t,a),_=await package_BlastFunPackage.MemezPump.getPumpState(t,n);return o=getAmountAfterFee(o,r),package_BlastFunPackage.MemezPump.pump(_,o)},e.getSuiAmountAfterSell=async function(e,t){let{curveAmount:o,poolId:a,frontendFee:r}=e,n=await getMoveObjectContent(t,a),_=await package_BlastFunPackage.MemezPump.getPumpState(t,n);return getAmountAfterFee(package_BlastFunPackage.MemezPump.dump(_,o),r)}}(custom_calculation_BlastFunCustomCalculation||(custom_calculation_BlastFunCustomCalculation={}));const orderByKey=(e,t,o)=>{let a;if(e?.length){do{a=!1;for(let r=0;r<e.length-1;r++){let n=BigInt(e[r][t]),_=BigInt(e[r+1][t]);if("desc"===o?n<_:n>_){let t=e[r];e[r]=e[r+1],e[r+1]=t,a=!0}}}while(a);return e}},getCoinObjectIdsByAmount=async(e,t,o,a)=>{let r,n=[],_=!0;for(;_;)try{let o=await e.getCoins({owner:t,coinType:a,cursor:r});n=[...n,...o.data],_=o.hasNextPage,r=o.nextCursor}catch(e){console.error("Error fetching data:",e),_=!1}let i=orderByKey(n.map(e=>({...e,balance:e.balance})),"balance","desc")??[],s="0",c=[],l=[];for(let e of i)if(s=(BigInt(e.balance)+BigInt(s)).toString(10),c.push(e.coinObjectId),l.push(e),BigInt(s)>=BigInt(o))break;return{objectIds:c,balance:s,objectCoins:l}};async function getSplitCoinForTx(e,t){let{account:o,amount:a,splits:r,coinType:n,inheritTx:_,inspecTransaction:i,isSponsored:s=!1}=e,c=_??new transactions_namespaceObject.Transaction,{objectIds:l,balance:u}=await getCoinObjectIdsByAmount(t,o,a,n);if(BigInt(u)<BigInt(a))throw Error(`Insufficient balance for type ${n}. Required: ${a}, Available: ${u}`);if(0===l.length)throw Error(`No coins found for type ${n} with sufficient balance. Required: ${a}`);let p=l[0];if((0,utils_namespaceObject.normalizeStructTag)(n)===(0,utils_namespaceObject.normalizeStructTag)(SUI_FULL_TYPE)&&!s){let e;return i?(l.length>1&&c.mergeCoins(c.object(p),l.slice(1).map(e=>c.object(e))),e=c.splitCoins(c.object(p),r)):e=c.splitCoins(c.gas,r),{tx:c,coinData:e}}l.length>1&&c.mergeCoins(c.object(p),l.slice(1).map(e=>c.object(e)));let m=c.splitCoins(c.object(p),r);return{tx:c,coinData:m}}const BLUEFIN_PACKAGE_ID="0x62412b7268c35f3808336aee57a52836501f40b8ba5d936f8ad275e672befd04";async function splitSuiCoinAfterFeeFromBuyTx(e,t){let o,a,{inputAmount:r,accountAddress:n,frontendFee:_,frontendFeeRecipient:i,extendTx:s,isSponsored:c}=e;tiny_invariant_default()(e.inCoinType===SUI_FULL_TYPE||e.inCoinType===SUI_TYPE,"Input must be SUI");let{tx:l,coinIn:u}=s||{},p=getSplitCoinsAfterFee(r,_||"0"),m=l||new transactions_namespaceObject.Transaction;if(u)o=m.splitCoins(u,p),bluefin_BluefinTx.transferOrDestroyZeroCoin(m,SUI_FULL_TYPE,u,n);else{let{coinData:e}=await getSplitCoinForTx({account:n,amount:r,splits:p,coinType:SUI_FULL_TYPE,inheritTx:m,isSponsored:c||!1},t);o=e}if(_&&i){let[e,t]=o;a=e,m.transferObjects([t],m.pure.address(i||n))}else[a]=o;return{tx:m,coinOut:a}}async function splitSuiCoinAfterFeeFromSellTx(e,t,o){if(tiny_invariant_default()(t.outCoinType===SUI_FULL_TYPE||t.outCoinType===SUI_TYPE,"Output must be SUI"),0>=Number(t.frontendFee||0))return{tx:e,coinOut:o};let a=e.moveCall({target:"0x2::coin::value",typeArguments:[t.outCoinType],arguments:[o]}),r=e.moveCall({target:`${BLUEFIN_PACKAGE_ID}::math::mul_div_u64`,typeArguments:[],arguments:[a,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,r]});return e.transferObjects([n],e.pure.address(t.frontendFeeRecipient||t.accountAddress)),{tx:e,coinOut:o}}!function(e){e.transferOrDestroyZeroCoin=function(e,t,o,a){e.moveCall({target:`${BLUEFIN_PACKAGE_ID}::utils::transfer_or_destroy`,typeArguments:[t],arguments:[o,e.pure.address(a)]})}}(bluefin_BluefinTx||(bluefin_BluefinTx={})),function(e){async function t(e){let t=e||new transactions_namespaceObject.Transaction;return t.moveCall({target:`${constants_BlastFunConstants.PACKAGE_ID_V4}::memez_allowed_versions::get_allowed_versions`,arguments:[t.object(constants_BlastFunConstants.MEMEZ_AV_OBJECT_ID)],typeArguments:[]})}e.getAllowedVersions=t,e.buildBuyTx=async function(e,o){tiny_invariant_default()(!await package_BlastFunPackage.MemezFun.isSniperProtectedMemezFun(o,e.poolId),"This coin is a sniper protected coin, please use the Blast Fun website to trade it.");let{tx:a,coinOut:r}=await splitSuiCoinAfterFeeFromBuyTx(e,o);tiny_invariant_default()(r,"Coin out is required");let n=a.moveCall({target:`${constants_BlastFunConstants.PACKAGE_ID_V4}::memez_pump::pump`,typeArguments:[e.outCoinType,SUI_FULL_TYPE],arguments:[a.object(e.poolId),r,a.pure.vector("address",[]),a.pure.vector("vector<u8>",[]),a.pure.u64(e.minAmountOut),await t(a)]});return{tx:a,coinOut:n}},e.buildSellTx=async function(e,o){tiny_invariant_default()(e.outCoinType===SUI_FULL_TYPE||e.outCoinType===SUI_TYPE,"Output must be SUI");let a=await getMoveObjectContent(o,e.poolId),{tx:r,coinData:n}=await getSplitCoinForTx({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},o),[_]=n,[i]=r.moveCall({target:`${constants_BlastFunConstants.PACKAGE_ID_V4}::memez_pump::dump`,typeArguments:[e.inCoinType,e.outCoinType],arguments:[r.object(e.poolId),r.object(a.ipx_meme_coin_treasury),_,r.pure.vector("address",[]),r.pure.u64(e.minAmountOut),await t(r)]});return await splitSuiCoinAfterFeeFromSellTx(r,e,i)}}(custom_transaction_BlastFunCustomTransaction||(custom_transaction_BlastFunCustomTransaction={}));const memez_fun_sdk_namespaceObject=require("@interest-protocol/memez-fun-sdk"),sui_core_sdk_namespaceObject=require("@interest-protocol/sui-core-sdk"),client_namespaceObject=require("@mysten/sui/client"),payload={network:sui_core_sdk_namespaceObject.Network.MAINNET,fullNodeUrl:(0,client_namespaceObject.getFullnodeUrl)("mainnet")},memezPump=new memez_fun_sdk_namespaceObject.MemezPumpSDK(payload);function getMemezPumpSDK(){return memezPump}async function addGasFee(e,t){let{inheritTx:o,sender:a,feeAmount:r,suiInputAmount:n}=e,_=o||new transactions_namespaceObject.Transaction;r>BigInt(0)&&_.setGasBudget(r);let{objectCoins:i}=await getCoinObjectIdsByAmount(t,a,(BigInt(n||"0")+r).toString(),SUI_FULL_TYPE);return _.setGasPayment(i.map(e=>({objectId:e.coinObjectId,version:e.version,digest:e.digest}))),_}!function(e){e.getCurveAmountAfterBuy=async function(e){let{suiAmount:t,poolId:o,frontendFee:a}=e;t=getAmountAfterFee(t,a);let{memeAmountOut:r}=await getMemezPumpSDK().quotePump({pool:o,amount:t});return r},e.getSuiAmountAfterSell=async function(e){let{curveAmount:t,poolId:o,frontendFee:a}=e,{quoteAmountOut:r}=await getMemezPumpSDK().quoteDump({pool:o,amount:t});return getAmountAfterFee(r,a)}}(sdk_calculation_BlastFunSDKCalculation||(sdk_calculation_BlastFunSDKCalculation={})),function(e){async function t(e,t){let{tx:o,coinOut:a}=await splitSuiCoinAfterFeeFromBuyTx(e,t);tiny_invariant_default()(a,"Coin out is required");let{memeCoin:r,tx:n}=await getMemezPumpSDK().pump({pool:e.poolId,quoteCoin:a,minAmountOut:e.minAmountOut,tx:o});return{tx:n,coinOut:r}}async function o(e,t){tiny_invariant_default()(isSuiCoinType(e.outCoinType),"Output must be SUI");let{tx:o,coinData:a}=await getSplitCoinForTx({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[r]=a,{quoteCoin:n,tx:_}=await getMemezPumpSDK().dump({pool:e.poolId,memeCoin:r,tx:o,minAmountOut:e.minAmountOut});return await splitSuiCoinAfterFeeFromSellTx(_,e,n)}e.buildBuyTx=t,e.buildSellTx=o,e.getBuyTransaction=async function({coinInAmount:e,coinInType:o,coinOutType:a,poolId:r,slippage:n,walletAddress:_,tradeFee:i},s){tiny_invariant_default()(isSuiCoinType(o),"coinInType must be SUI for buy transaction"),tiny_invariant_default()(a!==o,"coinOutType must be different from coinInType"),tiny_invariant_default()(n>=0&&n<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),tiny_invariant_default()(e>0,"coinInAmount must be greater than 0");let c=await sdk_calculation_BlastFunSDKCalculation.getCurveAmountAfterBuy({poolId:r,suiAmount:e,frontendFee:i?i.tradeFeePercent:void 0}),l=BigInt(new(external_bignumber_js_default())(c.toString()).multipliedBy(1-n).toFixed(0,3)),{tx:u,coinOut:p}=await t({accountAddress:_,inCoinType:o,outCoinType:a,inputAmount:e.toString(),minAmountOut:l.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},s);tiny_invariant_default()(p,"Coin out is required"),u.transferObjects([p],u.pure.address(_)),u.setSender(_);let m=await getNeededGasFee(s,u,_,0);return(u=await addGasFee({inheritTx:u,sender:_,feeAmount:m,suiInputAmount:e},s)).build({client:s})},e.getSellTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:a,poolId:r,slippage:n,walletAddress:_,tradeFee:i},s){tiny_invariant_default()(isSuiCoinType(a),"coinOutType must be SUI for sell transaction"),tiny_invariant_default()(a!==t,"coinOutType must be different from coinInType"),tiny_invariant_default()(n>=0&&n<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),tiny_invariant_default()(e>0,"coinInAmount must be greater than 0");let c=await sdk_calculation_BlastFunSDKCalculation.getSuiAmountAfterSell({poolId:r,curveAmount:e,frontendFee:i?i.tradeFeePercent:void 0}),l=BigInt(new(external_bignumber_js_default())(c.toString()).multipliedBy(1-n).toFixed(0,3)),{tx:u,coinOut:p}=await o({accountAddress:_,inCoinType:t,outCoinType:a,inputAmount:e.toString(),minAmountOut:l.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},s);tiny_invariant_default()(p,"Coin out is required"),u.transferObjects([p],u.pure.address(_)),u.setSender(_);let m=await getNeededGasFee(s,u,_,0);return(u=await addGasFee({inheritTx:u,sender:_,feeAmount:m},s)).build({client:s})}}(sdk_transaction_BlastFunSDKTransaction||(sdk_transaction_BlastFunSDKTransaction={}));var types_SupportedBondingCurve=function(e){return e.BLAST_FUN="BLAST_FUN",e.MOONBAGS="MOONBAGS",e}({});!function(e){e.PACKAGE_ID="0xb8df325010942634a4afb3db3901ee215546af43a4ec4af781e7213b0bba7290",e.CONFIG_OBJECT_ID="0x74aecf86067c6913960ba4925333aefd2b1f929cafca7e21fd55a8f244b70499",e.LOCK_CONFIG_OBJECT_ID="0xfb09822d9808980abd04c51321adb850701f5f55535c6206658ef4d910c3e9be",e.BURN_MANAGER_OBJECT_ID="0x1d94aa32518d0cb00f9de6ed60d450c9a2090761f326752ffad06b2e9404f845",e.POOLS_OBJECT_ID="0xf699e7f2276f5c9a75944b37a0c5b5d9ddfd2471bf6242483b03ab2887d198d0",e.GLOBAL_CONFIG_OBJECT_ID="0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f",e.FEE_DENOMINATOR=BigInt(1e4)}(constants_MoonbagsConstants||(constants_MoonbagsConstants={})),function(e){var t,o;(t=e.Curves||(e.Curves={})).calculateAddLiquidityCost=function(e,t,o){return e*t/(t-o)-e},t.calculateRemoveLiquidityReturn=function(e,t,o){return t-e*t/(e+o)},t.calculateTokenAmountReceived=function(e,t,o){return t-e*t/(e+o)},(o=e.Moonbags||(e.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)},o.buyExactInReturnsWithLock=function(t){let{inputAmount:o,amountIn:a,pool:r,config:n,dynamicVirtualTokenReserves:_}=t,i=BigInt(r.virtual_sui_reserves),s=BigInt(r.virtual_token_reserves),c=BigInt(r.remain_token_reserves.fields.balance),l=e.Curves.calculateRemoveLiquidityReturn(i,s,a),u=s-(_||c),p=l,m=a;l>u&&(p=u,m=e.Curves.calculateAddLiquidityCost(i,s,u)+BigInt(1));let d=m*BigInt(n.platform_fee)/constants_MoonbagsConstants.FEE_DENOMINATOR;return tiny_invariant_default()(o>=m+d,"Input amount is less than used SUI + fee"),{receivedCurve:p,receivedSui:o-m-d}},o.sellReturns=function(t){let{amountIn:o,pool:a,config:r}=t,n=BigInt(a.virtual_sui_reserves),_=BigInt(a.virtual_token_reserves),i=BigInt(a.real_sui_reserves.fields.balance),s=e.Curves.calculateRemoveLiquidityReturn(_,n,o);s>i&&(s=i);let c=s*BigInt(r.platform_fee)/constants_MoonbagsConstants.FEE_DENOMINATOR,l=s-c;return{receivedCurve:BigInt(0),receivedSui:l}}}(package_MoonbagsPackage||(package_MoonbagsPackage={})),function(e){e.getCurveAmountAfterBuy=async function(e,t){let{suiAmount:o,poolId:a,frontendFee:r}=e,[n,_,i]=await Promise.all([getMoveObjectContent(t,a),getMoveObjectContent(t,constants_MoonbagsConstants.CONFIG_OBJECT_ID),package_MoonbagsPackage.Moonbags.getDynamicVirtualTokenReserves(t,a)]);void 0!==r&&(o=getAmountAfterFee(o,r));let s=o*constants_MoonbagsConstants.FEE_DENOMINATOR/(constants_MoonbagsConstants.FEE_DENOMINATOR+BigInt(_.platform_fee)),{receivedCurve:c}=package_MoonbagsPackage.Moonbags.buyExactInReturnsWithLock({inputAmount:o,amountIn:s,pool:n,config:_,dynamicVirtualTokenReserves:i});return c},e.getSuiAmountAfterSell=async function(e,t){let{curveAmount:o,poolId:a,frontendFee:r}=e,[n,_]=await Promise.all([getMoveObjectContent(t,a),getMoveObjectContent(t,constants_MoonbagsConstants.CONFIG_OBJECT_ID)]),{receivedSui:i}=package_MoonbagsPackage.Moonbags.sellReturns({amountIn:o,pool:n,config:_});return void 0!==r?getAmountAfterFee(i,r):i},e.getUsedSuiForTx=async function(e,t){let{suiAmount:o,frontendFee:a}=e,r=await getMoveObjectContent(t,constants_MoonbagsConstants.CONFIG_OBJECT_ID);return void 0!==a&&(o=getAmountAfterFee(o,a)),o*constants_MoonbagsConstants.FEE_DENOMINATOR/(constants_MoonbagsConstants.FEE_DENOMINATOR+BigInt(r.platform_fee))}}(calculation_MoonbagsCalculation||(calculation_MoonbagsCalculation={})),function(e){async function t(e,t){let{tx:o,coinOut:a}=await splitSuiCoinAfterFeeFromBuyTx(e,t);tiny_invariant_default()(a,"Coin out is required");let r=await calculation_MoonbagsCalculation.getUsedSuiForTx({suiAmount:BigInt(e.inputAmount),frontendFee:e.frontendFee},t),[n,_]=o.moveCall({target:`${constants_MoonbagsConstants.PACKAGE_ID}::moonbags::buy_exact_in_returns_with_lock`,typeArguments:[e.outCoinType],arguments:[o.object(constants_MoonbagsConstants.CONFIG_OBJECT_ID),o.object(constants_MoonbagsConstants.LOCK_CONFIG_OBJECT_ID),a,o.pure.u64(r),o.pure.u64(e.minAmountOut),o.object(constants_MoonbagsConstants.BURN_MANAGER_OBJECT_ID),o.object(constants_MoonbagsConstants.POOLS_OBJECT_ID),o.object(constants_MoonbagsConstants.GLOBAL_CONFIG_OBJECT_ID),o.object(SUI_METADATA_OBJECT_ID),o.object(CLOCK_OBJECT_ID)]});return bluefin_BluefinTx.transferOrDestroyZeroCoin(o,SUI_FULL_TYPE,n,e.accountAddress),{tx:o,coinOut:_}}async function o(e,t){tiny_invariant_default()(isSuiCoinType(e.outCoinType),"Output must be SUI");let{tx:o,coinData:a}=await getSplitCoinForTx({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[r]=a,[n,_]=o.moveCall({target:`${constants_MoonbagsConstants.PACKAGE_ID}::moonbags::sell_returns`,typeArguments:[e.inCoinType],arguments:[o.object(constants_MoonbagsConstants.CONFIG_OBJECT_ID),r,o.pure.u64(e.minAmountOut),o.object(CLOCK_OBJECT_ID)]});return bluefin_BluefinTx.transferOrDestroyZeroCoin(o,e.inCoinType,_,e.accountAddress),await splitSuiCoinAfterFeeFromSellTx(o,e,n)}e.buildBuyTx=t,e.buildSellTx=o,e.getBuyTransaction=async function({coinInAmount:e,coinInType:o,coinOutType:a,poolId:r,slippage:n,walletAddress:_,tradeFee:i},s){tiny_invariant_default()(isSuiCoinType(o),"coinInType must be SUI for buy transaction"),tiny_invariant_default()(a!==o,"coinOutType must be different from coinInType"),tiny_invariant_default()(n>=0&&n<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),tiny_invariant_default()(e>0,"coinInAmount must be greater than 0");let c=await calculation_MoonbagsCalculation.getCurveAmountAfterBuy({poolId:r,suiAmount:e,frontendFee:i?i.tradeFeePercent:void 0},s),l=BigInt(new(external_bignumber_js_default())(c.toString()).multipliedBy(1-n).toFixed(0,3)),{tx:u,coinOut:p}=await t({accountAddress:_,inCoinType:o,outCoinType:a,inputAmount:e.toString(),minAmountOut:l.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},s);tiny_invariant_default()(p,"Coin out is required"),u.transferObjects([p],u.pure.address(_)),u.setSender(_);let m=await getNeededGasFee(s,u,_,0);return(u=await addGasFee({inheritTx:u,sender:_,feeAmount:m,suiInputAmount:e},s)).build({client:s})},e.getSellTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:a,poolId:r,slippage:n,walletAddress:_,tradeFee:i},s){tiny_invariant_default()(isSuiCoinType(a),"coinOutType must be SUI for sell transaction"),tiny_invariant_default()(a!==t,"coinOutType must be different from coinInType"),tiny_invariant_default()(n>=0&&n<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),tiny_invariant_default()(e>0,"coinInAmount must be greater than 0");let c=await calculation_MoonbagsCalculation.getSuiAmountAfterSell({poolId:r,curveAmount:e,frontendFee:i?i.tradeFeePercent:void 0},s),l=BigInt(new(external_bignumber_js_default())(c.toString()).multipliedBy(1-n).toFixed(0,3)),{tx:u,coinOut:p}=await o({accountAddress:_,inCoinType:t,outCoinType:a,inputAmount:e.toString(),minAmountOut:l.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},s);tiny_invariant_default()(p,"Coin out is required"),u.transferObjects([p],u.pure.address(_)),u.setSender(_);let m=await getNeededGasFee(s,u,_,0);return(u=await addGasFee({inheritTx:u,sender:_,feeAmount:m},s)).build({client:s})}}(transaction_MoonbagsTransaction||(transaction_MoonbagsTransaction={}));const pyth_sui_js_namespaceObject=require("@pythnetwork/pyth-sui-js");function adaptSuiClient(e){return e}function adaptTransaction(e){return e}function createCompatibleSuiClient(e){return new Proxy(e,{get(e,t){let o=e[t];return"function"==typeof o?o.bind(e):o}})}!function(e){e.LAST_PACKAGE_ID="0x8c36ea167c5e6da8c3d60b4fc897416105dcb986471bd81cfbfd38720a4487c0",e.newHolder=function(t){return t.moveCall({target:`${e.LAST_PACKAGE_ID}::oracle::new_holder`,typeArguments:[],arguments:[]})},e.getPrice=function(t){let{txb:o,coinOracleId:a,holder:r,coinPriceId:n}=t;o.moveCall({target:`${e.LAST_PACKAGE_ID}::pyth::get_price`,typeArguments:[],arguments:[o.object(a),r,o.object(n),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(pyth_PythPrice||(pyth_PythPrice={})),function(e){e.PYTH_URLS=["https://hermes.pyth.network"],e.WORMHOLE_STATE_ID="0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",e.PYTH_STATE_ID="0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",e.newPythConnections=function(t){return t||(t=e.PYTH_URLS),t.map(e=>new pyth_sui_js_namespaceObject.SuiPriceServiceConnection(e,{timeout:3e3}))},e.newPythClient=function(t){return t||(t=new client_namespaceObject.SuiClient({url:"https://fullnode.mainnet.sui.io:443"})),new pyth_sui_js_namespaceObject.SuiPythClient(t,e.PYTH_STATE_ID,e.WORMHOLE_STATE_ID)},e.updatePythPriceIDs=async function(e){let{priceFeedIds:t,txb:o,pythConnections:a,pythClient:r}=e;if(0===t.length)return new Map;let n=null,_=null;for(let e of a)try{n=await e.getPriceFeedsUpdateData(t);break}catch(e){_=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: ${_?.message}`);let i=[];try{i=await r.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],i[e]);return s}}(pyth_PythUtils||(pyth_PythUtils={})),function(e){e.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"}(aftermath_cpmm_AftermathCpmm||(aftermath_cpmm_AftermathCpmm={})),function(e){e.LAST_PACKAGE_ID="0xf369250dc5a17e9d5a84a3b0cf5aea715c0682170e726dd601f03ade7ce4decb",e.swap=function(t){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.AFTERMATH_CPMM);let{txb:o,swapContext:a,poolId:r,aToB:n,amountIn:_,coinAType:i,coinBType:s,coinLpType:c,packageId:l}=t;o.moveCall({target:`${l??e.LAST_PACKAGE_ID}::aftermath_cpmm_router::swap`,typeArguments:[i,s,c],arguments:[a,o.object(r),o.object(aftermath_cpmm_AftermathCpmm.POOL_REGISTRY_OBJ_ID),o.object(aftermath_cpmm_AftermathCpmm.PROTOCOL_FEE_VAULT_OBJ_ID),o.object(aftermath_cpmm_AftermathCpmm.TREASURY_OBJ_ID),o.object(aftermath_cpmm_AftermathCpmm.INSURANCE_FUND_OBJ_ID),o.object(aftermath_cpmm_AftermathCpmm.REFERRAL_VAULT_OBJ_ID),o.pure.bool(n),o.pure.u64(_)]})}}(aftermath_cpmm_router_AftermathCpmmRouter||(aftermath_cpmm_router_AftermathCpmmRouter={})),function(e){e.STAKED_SUI_VAULT_OBJ_ID="0x2f8f6d5da7f13ea37daa397724280483ed062769813b6f31e9788e59cc88994d",e.SAFE_TREASURY_OBJECT_ID="0xeb685899830dd5837b47007809c76d91a098d52aabbf61e8ac467c59e5cc4610",e.REFERRAL_VAULT_OBJ_ID="0x4ce9a19b594599536c53edb25d22532f82f18038dc8ef618afd00fbbfb9845ef",e.VALIDATOR_ADDRESS="0xd30018ec3f5ff1a3c75656abf927a87d7f0529e6dc89c7ddd1bd27ecb05e3db2"}(aftermath_lsd_AftermathLsd||(aftermath_lsd_AftermathLsd={})),function(e){e.LAST_PACKAGE_ID="0x148c4e7ff5b308b2d520e050e6a21d986dd3eb203e0aa3eaaba28000977aebf1",e.swap=function(t){let{txb:o,swapContext:a,aToB:r,amountIn:n,packageId:_}=t;if(!r)throw Error("AFSUI not support bToA swap");o.moveCall({target:`${_??e.LAST_PACKAGE_ID}::aftermath_lsd_router::swap`,arguments:[a,o.object(aftermath_lsd_AftermathLsd.STAKED_SUI_VAULT_OBJ_ID),o.object(aftermath_lsd_AftermathLsd.SAFE_TREASURY_OBJECT_ID),o.object(utils_namespaceObject.SUI_SYSTEM_STATE_OBJECT_ID),o.object(aftermath_lsd_AftermathLsd.REFERRAL_VAULT_OBJ_ID),o.pure.address(aftermath_lsd_AftermathLsd.VALIDATOR_ADDRESS),o.pure.bool(r),o.pure.u64(n)]})}}(aftermath_lsd_router_AftermathLsdRouter||(aftermath_lsd_router_AftermathLsdRouter={})),function(e){e.LAST_PACKAGE_ID="0x108d5d07cf873dec0bc8034db862db55d38e495c1f3ee0e124cf4861af834f25",e.swap=function(t){let{txb:o,swapContext:a,poolId:r,amountIn:n,aToB:_,coinBType:i,packageId:s}=t;o.moveCall({target:`${s??e.LAST_PACKAGE_ID}::alphafi_lsd_router::swap`,typeArguments:[i],arguments:[a,o.object(r),o.object(utils_namespaceObject.SUI_SYSTEM_STATE_OBJECT_ID),o.pure.bool(_),o.pure.u64(n)]})}}(alphafi_lsd_router_AlphafiLsdRouter||(alphafi_lsd_router_AlphafiLsdRouter={})),function(e){e.MEMEZ_AV_OBJ_ID="0x2319e3e76dfad73d8f4684bdbf42be4f32d8ce4521dd61becc8261dc918d82c0",e.MEMEZ_FUN_OBJ_ID="0x943948644f06942b8b660ca541b10a05f6a7be23ce4069944a3665e7e698930d",e.IPX_TREASURY_STANDARD_OBJ_ID="0x051e11b667659192917db94e5175fa066909d4dfc04d2663528f499c4afc6999"}(blastfun_Blastfun||(blastfun_Blastfun={})),function(e){e.LAST_PACKAGE_ID="0x8b1e84ed9bc79d31160600254d65810f6bc6d2352f174a60ed041017d0a2a87a",e.swap=function(t){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.BLASTFUN,"Invalid protocol");let{txb:o,swapContext:a,coinAType:r,coinBType:n,aToB:_,amountIn:i,packageId:s}=t;o.moveCall({target:`${s??e.LAST_PACKAGE_ID}::blastfun_router::swap`,typeArguments:[r,n],arguments:[a,o.object(blastfun_Blastfun.MEMEZ_FUN_OBJ_ID),o.object(blastfun_Blastfun.IPX_TREASURY_STANDARD_OBJ_ID),o.object(blastfun_Blastfun.MEMEZ_AV_OBJ_ID),o.pure.bool(_),o.pure.u64(i)]})}}(blastfun_router_BlastfunRouter||(blastfun_router_BlastfunRouter={})),function(e){e.GLOBAL_CONFIG_OBJ_ID="0x03db251ba509a8d5d8777b6338836082335d93eecbdd09a11e190a1cff51c352"}(bluefin_clmm_BluefinClmm||(bluefin_clmm_BluefinClmm={})),function(e){e.LAST_PACKAGE_ID="0x9f8397124b6bdb55aeb7b5e43761e0e4dc94b9e22e94b1b25d8211d99df422d5",e.swap=function(t){let{txb:o,swapContext:a,poolId:r,amountIn:n,aToB:_,coinAType:i,coinBType:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::bluefin_clmm_router::swap`,typeArguments:[i,s],arguments:[a,o.object(bluefin_clmm_BluefinClmm.GLOBAL_CONFIG_OBJ_ID),o.object(r),o.pure.bool(_),o.pure.u64(n),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(bluefin_clmm_router_BluefinClmmRouter||(bluefin_clmm_router_BluefinClmmRouter={})),function(e){e.DEX_INFO_OBJ_ID="0x3f2d9f724f4a1ce5e71676448dc452be9a6243dac9c5b975a588c8c867066e92"}(bluemove_cpmm_BluemoveCpmm||(bluemove_cpmm_BluemoveCpmm={})),function(e){e.LAST_PACKAGE_ID="0xf52bdd65ee347e8994170f8c331cf0c23a55281b3282467f14ccbb3e2a7f928f",e.swap=function(t){let{txb:o,swapContext:a,aToB:r,amountIn:n,coinAType:_,coinBType:i,packageId:s}=t;o.moveCall({target:`${s??e.LAST_PACKAGE_ID}::bluemove_cpmm_router::swap`,typeArguments:[_,i],arguments:[a,o.object(bluemove_cpmm_BluemoveCpmm.DEX_INFO_OBJ_ID),o.pure.bool(r),o.pure.u64(n)]})}}(bluemove_cpmm_router_BluemoveCpmmRouter||(bluemove_cpmm_router_BluemoveCpmmRouter={})),function(e){e.ORACLE_OBJ_ID="0xfa3975b98f3d0e3df18ed88ae6e69db31836b3f4212df02fae144b1e5a89ca8e"}(bolt_Bolt||(bolt_Bolt={})),function(e){e.LAST_PACKAGE_ID="0xfb4f0f6fe3ddc4253e05d0e147556ea7941300c7db4262d1a5993eb20a6cbdb3",e.swap=function(t){let{txb:o,swapContext:a,poolId:r,coinAType:n,coinBType:_,aToB:i,amountIn:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::bolt_router::swap`,typeArguments:[n,_],arguments:[a,o.object(r),o.object(bolt_Bolt.ORACLE_OBJ_ID),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID),o.pure.u64(s),o.pure.bool(i)]})}}(bolt_router_BoltRouter||(bolt_router_BoltRouter={})),function(e){e.GLOBAL_CONFIG="0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f"}(cetus_clmm_CetusClmm||(cetus_clmm_CetusClmm={})),function(e){e.LAST_PACKAGE_ID="0xb3dbb229464cb14b9f8cfa087e5b162623c8f485395dc9b975e263a5ee7051e4",e.swap=function(t){let{txb:o,swapContext:a,coinAType:r,coinBType:n,poolId:_,aToB:i,amountIn:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::cetus_clmm_router::swap`,typeArguments:[r,n],arguments:[a,o.object(cetus_clmm_CetusClmm.GLOBAL_CONFIG),o.object(_),o.pure.bool(i),o.pure.u64(s),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(cetus_clmm_router_CetusClmmRouter||(cetus_clmm_router_CetusClmmRouter={})),function(e){e.GLOBAL_CONFIG_OBJ_ID="0xf31b605d117f959b9730e8c07b08b856cb05143c5e81d5751c90d2979e82f599",e.VERSIONED_OBJ_ID="0x05370b2d656612dd5759cbe80463de301e3b94a921dfc72dd9daa2ecdeb2d0a8"}(cetus_dlmm_CetusDlmm||(cetus_dlmm_CetusDlmm={})),function(e){e.LAST_PACKAGE_ID="0x9ab3ba62b4327a7d90e4aed1c025b62736f035911ad7bab830c065ec84ef1ffa",e.swap=function(t){let{txb:o,swapContext:a,poolId:r,amountIn:n,aToB:_,coinAType:i,coinBType:s,packageId:c}=t,l=[a,o.object(cetus_dlmm_CetusDlmm.GLOBAL_CONFIG_OBJ_ID),o.object(cetus_dlmm_CetusDlmm.VERSIONED_OBJ_ID),o.object(r),o.pure.bool(_),o.pure.u64(n),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)];o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::cetus_dlmm_router::swap`,typeArguments:[i,s],arguments:l})}}(cetus_dlmm_router_CetusDlmmRouter||(cetus_dlmm_router_CetusDlmmRouter={})),function(e){e.GLOBAL_CONFIG="0x699d455ab8c5e02075b4345ea1f91be55bf46064ae6026cc2528e701ce3ac135",e.DEEP_TYPE="0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP"}(deepbook_v3_DeepbookV3||(deepbook_v3_DeepbookV3={})),function(e){e.LAST_PACKAGE_ID="0xbc23dacd6f66386e4a512eef1f3b0ccaad8e7d24eac7432d67737b22f661a810",e.swap=function(t){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.DEEPBOOK_V3,"Invalid protocol");let{txb:o,swapContext:a,coinAType:r,coinBType:n,poolId:_,aToB:i,amountIn:s,deepFeeCoin:c,packageId:l}=t,u=c||o.moveCall({target:"0x2::coin::zero",typeArguments:[deepbook_v3_DeepbookV3.DEEP_TYPE]});o.moveCall({target:`${l??e.LAST_PACKAGE_ID}::deepbook_v3_router::swap`,typeArguments:[r,n],arguments:[a,o.object(deepbook_v3_DeepbookV3.GLOBAL_CONFIG),o.object(_),o.pure.u64(s),o.pure.bool(i),u,o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(deepbook_v3_router_DeepbookV3Router||(deepbook_v3_router_DeepbookV3Router={})),function(e){e.GLOBAL_OBJ_ID="0x935229a3c32399e9fb207ec8461a54f56c6af5744c64442435ac217ab28f0d59"}(dip_cpmm_DipCpmm||(dip_cpmm_DipCpmm={})),function(e){e.LAST_PACKAGE_ID="0xfd86c0308327eae31c04560460ee6190220e4ae1cdf5b999eef1110bf0b0f2b8",e.swap=function(t){let{txb:o,swapContext:a,poolId:r,coinAType:n,coinBType:_,aToB:i,amountIn:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::dip_cpmm_router::swap`,typeArguments:[n,_],arguments:[a,o.object(dip_cpmm_DipCpmm.GLOBAL_OBJ_ID),o.object(r),o.pure.bool(i),o.pure.u64(s)]})}}(dip_cpmm_router_DipCpmmRouter||(dip_cpmm_router_DipCpmmRouter={})),function(e){e.FERRA_GLOBAL_CONFIG_ID="0x2cd8382c19e6994f16df204e9b8cddd04bdc486c251de75ac66ac4e48e3e7081"}(ferra_clmm_FerraClmm||(ferra_clmm_FerraClmm={})),function(e){e.LAST_PACKAGE_ID="0x70c4318f67d88ebe4e83bacad15f9e2f5c8becd77695f63dc4bd9393730851cd",e.swap=function(t){let{txb:o,swapContext:a,poolId:r,aToB:n,amountIn:_,coinAType:i,coinBType:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::ferra_clmm_router::swap`,typeArguments:[i,s],arguments:[a,o.object(ferra_clmm_FerraClmm.FERRA_GLOBAL_CONFIG_ID),o.object(r),o.pure.bool(n),o.pure.u64(_),o.object("0x6")]})}}(ferra_clmm_router_FerraClmmRouter||(ferra_clmm_router_FerraClmmRouter={})),function(e){e.FERRA_GLOBAL_CONFIG_ID="0x5c9dacf5a678ea15b8569d65960330307e23d429289ca380e665b1aa175ebeca"}(ferra_dlmm_FerraDlmm||(ferra_dlmm_FerraDlmm={})),function(e){e.LAST_PACKAGE_ID="0x686e9eb19b04d46374c3fb82cb4ebb7b24ef8a9ae13f403915f4ae347e0f6593",e.swap=function(t){let{txb:o,swapContext:a,poolId:r,aToB:n,amountIn:_,coinAType:i,coinBType:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::ferra_dlmm_router::swap`,typeArguments:[i,s],arguments:[a,o.object(ferra_dlmm_FerraDlmm.FERRA_GLOBAL_CONFIG_ID),o.object(r),o.pure.bool(n),o.pure.u64(_),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(ferra_dlmm_router_FerraDlmmRouter||(ferra_dlmm_router_FerraDlmmRouter={})),function(e){e.POOL_REGISTRY_OBJ_ID="0x27565d24a4cd51127ac90e4074a841bbe356cca7bf5759ddc14a975be1632abc",e.VERSIONED_OBJ_ID="0x67624a1533b5aff5d0dfcf5e598684350efd38134d2d245f475524c03a64e656"}(flowx_clmm_FlowxClmm||(flowx_clmm_FlowxClmm={})),function(e){e.LAST_PACKAGE_ID="0x350a752d3388165e578cc33a39655a6da83613cf4e58c8d9d0723711c2603e17",e.swap=function(t){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.FLOWX_CLMM);let{txb:o,swapContext:a,coinAType:r,coinBType:n,poolFeeRate:_,amountIn:i,aToB:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::flowx_clmm_router::swap`,typeArguments:[r,n],arguments:[a,o.object(flowx_clmm_FlowxClmm.POOL_REGISTRY_OBJ_ID),o.object(flowx_clmm_FlowxClmm.VERSIONED_OBJ_ID),o.pure.u64(_),o.pure.u64(i),o.pure.bool(s),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(flowx_clmm_router_FlowxClmmRouter||(flowx_clmm_router_FlowxClmmRouter={})),function(e){e.CONTAINER_OBJ_ID="0xb65dcbf63fd3ad5d0ebfbf334780dc9f785eff38a4459e37ab08fa79576ee511"}(flowx_cpmm_FlowxCpmm||(flowx_cpmm_FlowxCpmm={})),function(e){e.LAST_PACKAGE_ID="0xd95b440ad340bb6cbf571897d312e43d4b6de37b60c69ef714c94b9835cb8866",e.swap=function(t){let{txb:o,swapContext:a,coinAType:r,coinBType:n,aToB:_,amountIn:i,packageId:s}=t;o.moveCall({target:`${s??e.LAST_PACKAGE_ID}::flowx_cpmm_router::swap`,typeArguments:[r,n],arguments:[a,o.object(flowx_cpmm_FlowxCpmm.CONTAINER_OBJ_ID),o.pure.bool(_),o.pure.u64(i)]})}}(flowx_cpmm_router_FlowxCpmmRouter||(flowx_cpmm_router_FlowxCpmmRouter={})),function(e){e.GLOBAL_CONFIG_OBJ_ID="0xe93baa80cb570b3a494cbf0621b2ba96bc993926d34dc92508c9446f9a05d615",e.REWARDER_VAULT_OBJ_ID="0xfb971d3a2fb98bde74e1c30ba15a3d8bef60a02789e59ae0b91660aeed3e64e1",e.STATS_OBJ_ID="0x6822a33d1d971e040c32f7cc74507010d1fe786f7d06ab89135083ddb07d2dc2",e.PRICE_PROVIDER_OBJ_ID="0x854b2d2c0381bb656ec962f8b443eb082654384cf97885359d1956c7d76e33c9"}(fullsail_clmm_FullsailClmm||(fullsail_clmm_FullsailClmm={})),function(e){e.LAST_PACKAGE_ID="0xf0bf13b5baaf3d368f165e846b919294bed79a3ab3ab0c9bd1e75f23533e44a5",e.swap=function(t){let{txb:o,swapContext:a,poolId:r,coinAType:n,coinBType:_,aToB:i,amountIn:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::fullsail_clmm_router::swap`,typeArguments:[n,_],arguments:[a,o.object(fullsail_clmm_FullsailClmm.GLOBAL_CONFIG_OBJ_ID),o.object(fullsail_clmm_FullsailClmm.REWARDER_VAULT_OBJ_ID),o.object(fullsail_clmm_FullsailClmm.STATS_OBJ_ID),o.object(fullsail_clmm_FullsailClmm.PRICE_PROVIDER_OBJ_ID),o.object(r),o.pure.bool(i),o.pure.u64(s),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(fullsail_clmm_router_FullsailClmmRouter||(fullsail_clmm_router_FullsailClmmRouter={})),function(e){e.LAST_PACKAGE_ID="0x8969ed3e56c1dbdaf9df52f812d69c6c45fe5a4bab7093c88f5a8697a409398e",e.swap=function(t){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.HAEDAL_CPMM);let{txb:o,swapContext:a,poolId:r,coinAType:n,coinBType:_,aToB:i,amountIn:s,pythPriceFeedIdA:c,pythPriceFeedIdB:l,pythInfoObjectIdMap:u,packageId:p}=t,m=u.get(c),d=u.get(l);tiny_invariant_default()(m,"Not found priceInfoAId in pythObjectIdMap"),tiny_invariant_default()(d,"Not found priceInfoBId in pythObjectIdMap"),o.moveCall({target:`${p??e.LAST_PACKAGE_ID}::haedal_cpmm_router::swap`,typeArguments:[n,_],arguments:[a,o.object(r),o.object(m),o.object(d),o.pure.u64(s),o.pure.bool(i),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(haedal_cpmm_router_HaedalCpmmRouter||(haedal_cpmm_router_HaedalCpmmRouter={})),function(e){e.LAST_PACKAGE_ID="0x5d01f22e5471a5912a88e15d62fdcb922beba65b8e8dfe1a715aebf743194f4a",e.swap=function(t){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.HAEDAL_CPMM_V2);let{txb:o,swapContext:a,poolId:r,coinAType:n,coinBType:_,aToB:i,amountIn:s,pythPriceFeedIdBase:c,pythInfoObjectIdMap:l,packageId:u}=t,p=l.get(c);tiny_invariant_default()(p,"Not found pythPriceBaseId in pythObjectIdMap"),o.moveCall({target:`${u??e.LAST_PACKAGE_ID}::haedal_cpmm_v2_router::swap`,typeArguments:[n,_],arguments:[a,o.object(r),o.object(p),o.pure.u64(s),o.pure.bool(i),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(haedal_cpmm_v2_router_HaedalCpmmV2Router||(haedal_cpmm_v2_router_HaedalCpmmV2Router={})),function(e){e.LAST_PACKAGE_ID="0x1644956086caa5eb791eba152f3b69ba862b3a5382ef0e1d8a474ab158aafa1a",e.swap=function(t){let{txb:o,swapContext:a,aToB:r,amountIn:n,poolId:_,packageId:i}=t;o.moveCall({target:`${i??e.LAST_PACKAGE_ID}::haedal_lsd_router::swap`,arguments:[a,o.object(_),o.object(utils_namespaceObject.SUI_SYSTEM_STATE_OBJECT_ID),o.pure.bool(r),o.pure.u64(n)]})}}(haedal_lsd_router_HaedalLsdRouter||(haedal_lsd_router_HaedalLsdRouter={})),function(e){e.STAKING_OBJ_ID="0x10b9d30c28448939ce6c4d6c6e0ffce4a7f8a4ada8248bdad09ef8b70e4a3904"}(walrus_Walrus||(walrus_Walrus={})),function(e){e.VALIDATOR_ID="0x7b3ba6de2ae58283f60d5b8dc04bb9e90e4796b3b2e0dea75569f491275242e7"}(haedal_lsd_wal_HaedalLsdWal||(haedal_lsd_wal_HaedalLsdWal={})),function(e){e.LAST_PACKAGE_ID="0x7be077dd73c85e788c2a49a51f0627066d81d3dc9982c268e3691265a81d544d",e.swap=function(t){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.HAEDAL_LSD_WAL),tiny_invariant_default()(t.aToB,"HAEDAL_LSD_WAL does not support bToA swap");let{txb:o,swapContext:a,poolId:r,aToB:n,amountIn:_,packageId:i}=t;o.moveCall({target:`${i??e.LAST_PACKAGE_ID}::haedal_wal_lsd_router::swap`,arguments:[a,o.object(walrus_Walrus.STAKING_OBJ_ID),o.object(r),o.pure.id(haedal_lsd_wal_HaedalLsdWal.VALIDATOR_ID),o.pure.bool(n),o.pure.u64(_)]})}}(haedal_lsd_wal_router_HaedalLsdWalRouter||(haedal_lsd_wal_router_HaedalLsdWalRouter={})),function(e){e.VERSION_OBJ_ID="0xf5145a7ac345ca8736cf8c76047d00d6d378f30e81be6f6eb557184d9de93c78"}(kriya_clmm_KriyaClmm||(kriya_clmm_KriyaClmm={})),function(e){e.LAST_PACKAGE_ID="0xcf141e1d18ff609b2ac56532b391f7648fc55e28696efe354186f5109c0eff06",e.swap=function(t){let{txb:o,swapContext:a,poolId:r,coinAType:n,coinBType:_,aToB:i,amountIn:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::kriya_clmm_router::swap`,typeArguments:[n,_],arguments:[a,o.object(r),o.object(kriya_clmm_KriyaClmm.VERSION_OBJ_ID),o.pure.bool(i),o.pure.u64(s),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(kriya_clmm_router_KriyaClmmRouter||(kriya_clmm_router_KriyaClmmRouter={})),function(e){e.LAST_PACKAGE_ID="0x50d37f46df75ef125ce656d4ac91b31b2cf0c1195752a96558561d163e45c223",e.swap=function(t){let{txb:o,swapContext:a,poolId:r,coinAType:n,coinBType:_,aToB:i,amountIn:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::kriya_cpmm_router::swap`,typeArguments:[n,_],arguments:[a,o.object(r),o.pure.bool(i),o.pure.u64(s)]})}}(kriya_cpmm_router_KriyaCpmmRouter||(kriya_cpmm_router_KriyaCpmmRouter={})),function(e){e.FACTORY_OBJ_ID="0xedb456e93e423dd75a8ddebedd9974bb661195043027e32ce01649d6ccee74cf",e.GLOBAL_CONFIG_OBJ_ID="0x4c4e1402401f72c7d8533d0ed8d5f8949da363c7a3319ccef261ffe153d32f8a"}(magma_almm_MagmaAlmm||(magma_almm_MagmaAlmm={})),function(e){e.LAST_PACKAGE_ID="0x950f94d33060c0575389c9f84fabab1e140776c6c84389d4237a0c2687a7adc9",e.swap=function(t){let{txb:o,swapContext:a,poolId:r,coinAType:n,coinBType:_,aToB:i,amountIn:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::magma_almm_router::swap`,typeArguments:[n,_],arguments:[a,o.object(r),o.object(magma_almm_MagmaAlmm.FACTORY_OBJ_ID),o.object(magma_almm_MagmaAlmm.GLOBAL_CONFIG_OBJ_ID),o.pure.u64(s),o.pure.bool(i),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(magma_almm_router_MagmaAlmmRouter||(magma_almm_router_MagmaAlmmRouter={})),function(e){e.GLOBAL_CONFIG="0x4c4e1402401f72c7d8533d0ed8d5f8949da363c7a3319ccef261ffe153d32f8a"}(magma_clmm_MagmaClmm||(magma_clmm_MagmaClmm={})),function(e){e.LAST_PACKAGE_ID="0xbe5f590339c55ca8ebbf93cedfb68aafd479d71e1c57043246f7dcf352745242",e.swap=function(t){let{txb:o,swapContext:a,coinAType:r,coinBType:n,poolId:_,aToB:i,amountIn:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::magma_clmm_router::swap`,typeArguments:[r,n],arguments:[a,o.object(magma_clmm_MagmaClmm.GLOBAL_CONFIG),o.object(_),o.pure.bool(i),o.pure.u64(s),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(magma_clmm_router_MagmaClmmRouter||(magma_clmm_router_MagmaClmmRouter={})),function(e){e.LATEST_PACKAGE_ID="0xfab91518218f10204b083dba1e62c8bfc23f14fb87742158043e5faec4670ec4",e.swap=function(t){let o,a,r;tiny_invariant_default()(t.protocol===types_AggregatorProtocol.METASTABLE,"Invalid protocol");let{txb:n,swapContext:_,aToB:i,amountIn:s,coinAType:c,coinBType:l,poolId:u,metaCoin:p,packageId:m}=t,[d,g]=i?[c,l]:[l,c];d===p?(r="swap_from_meta_coin",o=[p,g],a=[metastable_Metastable.createCap({coinType:g,createCapFunc:"create_withdraw_cap",...t})]):g===p?(r="swap_to_meta_coin",o=[p,d],a=[metastable_Metastable.createCap({coinType:d,createCapFunc:"create_deposit_cap",...t})]):(r="swap",o=[p,d,g],a=[metastable_Metastable.createCap({coinType:d,createCapFunc:"create_deposit_cap",...t}),metastable_Metastable.createCap({coinType:g,createCapFunc:"create_withdraw_cap",...t})]),n.moveCall({target:`${m??e.LATEST_PACKAGE_ID}::metastable_router::${r}`,typeArguments:o,arguments:[_,n.object(u),n.object(metastable_Metastable.VERSION_OBJ_ID),...a,n.pure.u64(s)]})}}(metastable_router_MetastableRouter||(metastable_router_MetastableRouter={})),function(e){e.VERSION_OBJ_ID="0x2375a0b1ec12010aaea3b2545acfa2ad34cfbba03ce4b59f4c39e1e25eed1b2a"}(momentum_clmm_MomentumClmm||(momentum_clmm_MomentumClmm={})),function(e){e.LAST_PACKAGE_ID="0xba7ab4c8c39024fa0052bb4f00548a2e7b60742bb4ed0b87bc1d945fd8209102",e.swap=function(t){let{txb:o,swapContext:a,coinAType:r,coinBType:n,poolId:_,aToB:i,amountIn:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::momentum_clmm_router::swap`,typeArguments:[r,n],arguments:[a,o.object(_),o.pure.bool(i),o.pure.u64(s),o.object(momentum_clmm_MomentumClmm.VERSION_OBJ_ID),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(momentum_clmm_router_MomentumClmmRouter||(momentum_clmm_router_MomentumClmmRouter={})),function(e){e.CONFIGURATION_OBJ_ID="0xd746495d04a6119987c2b9334c5fefd7d8cff52a8a02a3ea4e3995b9a041ace4"}(movepump_Movepump||(movepump_Movepump={})),function(e){e.LAST_PACKAGE_ID="0x5a259db4b1d17fafc09185c9a71bac36f25f9ee462e72894c8610e5a58b79f8f",e.swap=function(t){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.MOVEPUMP,"Invalid protocol");let{txb:o,swapContext:a,coinAType:r,coinBType:n,aToB:_,amountIn:i,expectedAmountOut:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::movepump_router::swap`,typeArguments:[_?n:r],arguments:[a,o.object(movepump_Movepump.CONFIGURATION_OBJ_ID),o.object(bluemove_cpmm_BluemoveCpmm.DEX_INFO_OBJ_ID),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID),o.pure.u64(s),o.pure.bool(_),o.pure.u64(i)]})}}(movepump_router_MovepumpRouter||(movepump_router_MovepumpRouter={})),function(e){e.STATE_OBJ_ID="0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8"}(obric_Obric||(obric_Obric={})),function(e){e.LAST_PACKAGE_ID="0xd615fed37d692280047068e80d3a6bb685aa9d574608054c9df881d6a7378fab",e.swap=function(t){let o,a;tiny_invariant_default()(t.protocol===types_AggregatorProtocol.OBRIC);let{txb:r,swapContext:n,poolId:_,coinAType:i,coinBType:s,aToB:c,amountIn:l,pythInfoObjectIdMap:u,packageId:p}=t;"priceInfoObjIdA"in t?(o=t.priceInfoObjIdA,a=t.priceInfoObjIdB):(o=u.get(t.pythPriceFeedIdA),a=u.get(t.pythPriceFeedIdB),tiny_invariant_default()(o,"Not found priceInfoAId in pythObjectIdMap"),tiny_invariant_default()(a,"Not found priceInfoBId in pythObjectIdMap")),r.moveCall({target:`${p??e.LAST_PACKAGE_ID}::obric_router::swap`,typeArguments:[i,s],arguments:[n,r.object(_),r.pure.u64(l),r.pure.bool(c),r.object(obric_Obric.STATE_OBJ_ID),r.object(o),r.object(a),r.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(obric_router_ObricRouter||(obric_router_ObricRouter={})),function(e){e.VERSION_OBJ_ID="0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7",e.MARKET_OBJ_ID="0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9"}(scallop_Scallop||(scallop_Scallop={})),function(e){e.LAST_PACKAGE_ID="0xea409bb08c8a09e4127f859d9c36b8b62ca609282aa1e443091db6b7a7409ee7",e.swap=function(t){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.SCALLOP);let{txb:o,swapContext:a,coinAType:r,coinBType:n,aToB:_,amountIn:i,scoinTreasury:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::scallop_router::swap`,typeArguments:[r,n],arguments:[a,o.object(scallop_Scallop.VERSION_OBJ_ID),o.object(scallop_Scallop.MARKET_OBJ_ID),o.object(s),o.pure.u64(i),o.pure.bool(_),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(scallop_router_ScallopRouter||(scallop_router_ScallopRouter={})),function(e){e.ORACLE_HOLDER_OBJ_ID="0x8c36ea167c5e6da8c3d60b4fc897416105dcb986471bd81cfbfd38720a4487c0"}(sevenk_cpmm_SevenkCpmm||(sevenk_cpmm_SevenkCpmm={})),function(e){e.LAST_PACKAGE_ID="0x918a30e2a05d24ea9451e2d2900d055f74e6752f2e10251fa50c7175831b1958",e.swap=function(t){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.SEVENK_CPMM,"Invalid protocol for sevenk_cpmm_router swap");let{txb:o,swapContext:a,poolId:r,coinAType:n,coinBType:_,aToB:i,amountIn:s,coinLpType:c,oracleConfigA:l,oracleConfigB:u,pythPriceFeedIdA:p,pythPriceFeedIdB:m,pythInfoObjectIdMap:d,packageId:g}=t,f=d.get(p),b=d.get(m);tiny_invariant_default()(f,"Not found priceInfoAId in pythObjectIdMap"),tiny_invariant_default()(b,"Not found priceInfoBId in pythObjectIdMap");let A=pyth_PythPrice.newHolder(o);pyth_PythPrice.getPrice({txb:o,coinPriceId:p,holder:A,coinOracleId:l}),pyth_PythPrice.getPrice({txb:o,coinPriceId:m,holder:A,coinOracleId:u}),o.moveCall({target:`${g??e.LAST_PACKAGE_ID}::sevenk_cpmm_router::swap`,typeArguments:[n,_,c],arguments:[a,o.object(r),o.object(sevenk_cpmm_SevenkCpmm.ORACLE_HOLDER_OBJ_ID),o.pure.bool(i),o.pure.u64(s)]})}}(sevenk_cpmm_router_SevenkCpmmRouter||(sevenk_cpmm_router_SevenkCpmmRouter={})),function(e){e.CONFIGURATION_OBJ_ID="0xe79fff6c77d81f9a8efb729e25bf0037deec42518d40b978f274a4915d7e1ec9"}(sevenk_fun_SevenkFun||(sevenk_fun_SevenkFun={})),function(e){e.LAST_PACKAGE_ID="0x0a5dc665dc3c1c846a6d1e00811c84cae3510c839ab4dc0873f85dc8908d0606",e.swap=function(t){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.SEVENK_FUN,"Invalid protocol");let{txb:o,swapContext:a,aToB:r,amountIn:n,coinBType:_,packageId:i}=t;o.moveCall({target:`${i??e.LAST_PACKAGE_ID}::sevenk_fun_router::swap`,typeArguments:[_],arguments:[a,o.object(sevenk_fun_SevenkFun.CONFIGURATION_OBJ_ID),o.object(flowx_cpmm_FlowxCpmm.CONTAINER_OBJ_ID),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID),o.pure.bool(r),o.pure.u64(n)]})}}(sevenk_fun_router_SevenkFunRouter||(sevenk_fun_router_SevenkFunRouter={})),function(e){e.LAST_PACKAGE_ID="0xa6d129c0b314e85d1bc5aecf305d64212bdd5d466457531f4f624fef5f2e7751",e.swap=function(t){let{txb:o,swapContext:a,poolId:r,amountIn:n,aToB:_,coinBType:i,packageId:s}=t;o.moveCall({target:`${s??e.LAST_PACKAGE_ID}::springsui_router::swap`,typeArguments:[i],arguments:[a,o.object(r),o.object(utils_namespaceObject.SUI_SYSTEM_STATE_OBJECT_ID),o.pure.u64(n),o.pure.bool(_)]})}}(springsui_router_SpringsuiRouter||(springsui_router_SpringsuiRouter={})),function(e){e.CONFIG_OBJ_ID="0x881fd0a12ca4fa48991f5c27ba57d17f1ec147fa15f43b3cb760cc3bd7ba9402"}(srm_cpmm_SrmCpmm||(srm_cpmm_SrmCpmm={})),function(e){e.LAST_PACKAGE_ID="0xa314a64962ed4b91a6b4085de4dff2e631fd4c731dbca671a74489955df322ef",e.swap=function(t){let{txb:o,swapContext:a,poolId:r,aToB:n,amountIn:_,coinAType:i,coinBType:s,packageId:c}=t,l=[a,o.object(r),o.object(srm_cpmm_SrmCpmm.CONFIG_OBJ_ID),o.pure.bool(n),o.pure.u64(_),o.object("0x6")];o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::srm_cpmm_router::swap`,typeArguments:[i,s],arguments:l})}}(srm_cpmm_router_SrmCpmmRouter||(srm_cpmm_router_SrmCpmmRouter={})),function(e){var t;(t=e.Oracle||(e.Oracle={})).PACKAGE_ID="0xe84b649199654d18c38e727212f5d8dacfc3cf78d60d0a7fc85fd589f280eb2b",t.getPythPrice=function(e){let{txb:o,oracleRegistryId:a,priceInfoId:r,oracleIndex:n}=e;return o.moveCall({target:`${t.PACKAGE_ID}::oracles::get_pyth_price`,typeArguments:[],arguments:[o.object(a),o.object(r),o.pure.u64(n),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(steamm_Steamm||(steamm_Steamm={})),function(e){function t(t,a){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.STEAMM_OMM||t.protocol===types_AggregatorProtocol.STEAMM_OMM_V2,"Invalid protocol for steamm _swapOmm swap");let{txb:r,swapContext:n,poolId:_,coinAType:i,coinBType:s,aToB:c,amountIn:l,bankAId:u,bankBId:p,lendingMarketId:m,lendingMarketType:d,bCoinAType:g,bCoinBType:f,lpBCoinType:b,pythPriceFeedIdA:A,pythPriceFeedIdB:C,pythInfoObjectIdMap:I,oracleRegistryId:T,oracleIndexA:y,oracleIndexB:O,packageId:S}=t,M=I.get(A),F=I.get(C);tiny_invariant_default()(M,"Not found priceInfoAId in pythObjectIdMap"),tiny_invariant_default()(F,"Not found priceInfoBId in pythObjectIdMap");let P=steamm_Steamm.Oracle.getPythPrice({txb:r,oracleRegistryId:T,priceInfoId:M,oracleIndex:y}),v=steamm_Steamm.Oracle.getPythPrice({txb:r,oracleRegistryId:T,priceInfoId:F,oracleIndex:O});r.moveCall({target:`${S??e.LAST_PACKAGE_ID}::${o(a)}::swap`,typeArguments:[d,i,s,g,f,b],arguments:[n,r.object(_),r.object(u),r.object(p),r.object(m),P,v,r.pure.bool(c),r.pure.u64(l),r.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}function o(e){switch(e){case 0:return"steamm_omm_router";case 1:return"steamm_omm_v2_router"}}e.LAST_PACKAGE_ID="0xd7430ec87be03b22e29ad95e811d8146fb0ece72037cf546618297def842b57e",e.swapCpmm=function(t){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.STEAMM_CPMM,"Invalid protocol for steamm_cpmm_router swap");let{txb:o,swapContext:a,poolId:r,coinAType:n,coinBType:_,aToB:i,amountIn:s,bankAId:c,bankBId:l,lendingMarketId:u,lendingMarketType:p,bCoinAType:m,bCoinBType:d,lpBCoinType:g}=t;o.moveCall({target:`${e.LAST_PACKAGE_ID}::steamm_cpmm_router::swap`,typeArguments:[p,n,_,m,d,g],arguments:[a,o.object(r),o.object(c),o.object(l),o.object(u),o.pure.bool(i),o.pure.u64(s),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})},e.swapOmm=function(e){t(e,0)},e.swapOmmV2=function(e){t(e,1)},e.getOmmRouterModule=o}(steamm_router_SteammRouter||(steamm_router_SteammRouter={})),function(e){e.LAST_PACKAGE_ID="0x7a1cf89025a60161e84809784d772263231fad08a7cb76a88ca1ba69e0a656da",e.swap=function(t){let{txb:o,swapContext:a,poolId:r,coinAType:n,coinBType:_,aToB:i,amountIn:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::suiswap_router::swap`,typeArguments:[n,_],arguments:[a,o.object(r),o.pure.bool(i),o.pure.u64(s),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(suiswap_cpmm_router_SuiswapCpmmRouter||(suiswap_cpmm_router_SuiswapCpmmRouter={})),function(e){e.VERSIONED="0x0309b66202e9aaf470081fffee7ffc0fbd50e3b7400d4f56fd06502e4dbbd676",e.POOL_REGISTRY="0xcd0a614c4cbbf173f59dee2602c43a1717f283215ed7a0bb1d55d786af16fbcd"}(tradeport_clmm_TradeportClmm||(tradeport_clmm_TradeportClmm={})),function(e){e.LAST_PACKAGE_ID="0x79957062a7424ed9c2eb83932e4c4fcc3fee67ab3c8f6f874c54e417178bbb7a",e.swap=function(t){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.TRADEPORT_CLMM,"Invalid protocol");let{txb:o,swapContext:a,coinAType:r,coinBType:n,aToB:_,amountIn:i,poolFeeRate:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::tradeport_clmm_router::swap`,typeArguments:[r,n],arguments:[a,o.object(tradeport_clmm_TradeportClmm.POOL_REGISTRY),o.pure.u64(s),o.object(tradeport_clmm_TradeportClmm.VERSIONED),o.pure.bool(_),o.pure.u64(i),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(tradeport_clmm_router_TradeportClmmRouter||(tradeport_clmm_router_TradeportClmmRouter={})),function(e){e.POOL_VERSIONED="0xf1cf0e81048df168ebeb1b8030fad24b3e0b53ae827c25053fff0779c1445b6f"}(turbos_clmm_TurbosClmm||(turbos_clmm_TurbosClmm={})),function(e){e.LAST_PACKAGE_ID="0x512d63711ff38353fb167238b0529001b6871c1727c67ce3bf6ec23556b0f1da",e.swap=function(t){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.TURBOS_CLMM,"Invalid protocol");let{txb:o,swapContext:a,coinAType:r,coinBType:n,coinFeeType:_,poolId:i,aToB:s,amountIn:c,packageId:l}=t;o.moveCall({target:`${l??e.LAST_PACKAGE_ID}::turbos_clmm_router::swap`,typeArguments:[r,n,_],arguments:[a,o.object(i),o.object(turbos_clmm_TurbosClmm.POOL_VERSIONED),o.pure.bool(s),o.pure.u64(c),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(turbos_clmm_router_TurbosClmmRouter||(turbos_clmm_router_TurbosClmmRouter={})),function(e){e.CONFIGURATION_OBJ_ID="0xd86685fc3c3d989385b9311ef55bfc01653105670209ac4276ebb6c83d7df928"}(turbos_fun_TurbosFun||(turbos_fun_TurbosFun={})),function(e){e.LAST_PACKAGE_ID="0x1fad13f09797aa87a4385d0b1efb2de963ba16742447b1ad5a3b0c5b1d1c588b",e.swap=function(t){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.TURBOS_FUN,"Invalid protocol");let{txb:o,swapContext:a,coinBType:r,aToB:n,amountIn:_,packageId:i}=t;o.moveCall({target:`${i??e.LAST_PACKAGE_ID}::turbos_fun_router::swap`,typeArguments:[r],arguments:[a,o.object(turbos_fun_TurbosFun.CONFIGURATION_OBJ_ID),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID),o.pure.bool(n),o.pure.u64(_)]})}}(turbos_fun_router_TurbosFunRouter||(turbos_fun_router_TurbosFunRouter={})),function(e){e.VOLO_CERT_METADATA_ID="0x680cd26af32b2bde8d3361e804c53ec1d1cfe24c7f039eb7f549e8dfde389a60"}(volo_Volo||(volo_Volo={})),function(e){e.LAST_PACKAGE_ID="0x7c8d95256342f904d5f251776903a17905d87c95f387b3a35cc2aecc23b3c042",e.swap=function(t){let{txb:o,swapContext:a,poolId:r,aToB:n,amountIn:_,packageId:i}=t;o.moveCall({target:`${i??e.LAST_PACKAGE_ID}::volo_router::swap`,arguments:[a,o.object(r),o.object(volo_Volo.VOLO_CERT_METADATA_ID),o.object(utils_namespaceObject.SUI_SYSTEM_STATE_OBJECT_ID),o.pure.bool(n),o.pure.u64(_)]})}}(volo_router_VoloRouter||(volo_router_VoloRouter={})),function(e){e.RouterSwapFunctionMap={[types_AggregatorProtocol.AFTERMATH_CPMM]:aftermath_cpmm_router_AftermathCpmmRouter.swap,[types_AggregatorProtocol.AFTERMATH_LSD]:aftermath_lsd_router_AftermathLsdRouter.swap,[types_AggregatorProtocol.ALPHAFI_LSD]:alphafi_lsd_router_AlphafiLsdRouter.swap,[types_AggregatorProtocol.BLASTFUN]:blastfun_router_BlastfunRouter.swap,[types_AggregatorProtocol.BLUEFIN_CLMM]:bluefin_clmm_router_BluefinClmmRouter.swap,[types_AggregatorProtocol.BLUEMOVE_CPMM]:bluemove_cpmm_router_BluemoveCpmmRouter.swap,[types_AggregatorProtocol.BOLT]:bolt_router_BoltRouter.swap,[types_AggregatorProtocol.CETUS_CLMM]:cetus_clmm_router_CetusClmmRouter.swap,[types_AggregatorProtocol.CETUS_DLMM]:cetus_dlmm_router_CetusDlmmRouter.swap,[types_AggregatorProtocol.DEEPBOOK_V3]:deepbook_v3_router_DeepbookV3Router.swap,[types_AggregatorProtocol.DIP_CPMM]:dip_cpmm_router_DipCpmmRouter.swap,[types_AggregatorProtocol.FERRA_CLMM]:ferra_clmm_router_FerraClmmRouter.swap,[types_AggregatorProtocol.FERRA_DLMM]:ferra_dlmm_router_FerraDlmmRouter.swap,[types_AggregatorProtocol.FLOWX_CPMM]:flowx_cpmm_router_FlowxCpmmRouter.swap,[types_AggregatorProtocol.FLOWX_CLMM]:flowx_clmm_router_FlowxClmmRouter.swap,[types_AggregatorProtocol.FULLSAIL_CLMM]:fullsail_clmm_router_FullsailClmmRouter.swap,[types_AggregatorProtocol.HAEDAL_CPMM]:haedal_cpmm_router_HaedalCpmmRouter.swap,[types_AggregatorProtocol.HAEDAL_CPMM_V2]:haedal_cpmm_v2_router_HaedalCpmmV2Router.swap,[types_AggregatorProtocol.HAEDAL_LSD]:haedal_lsd_router_HaedalLsdRouter.swap,[types_AggregatorProtocol.HAEDAL_LSD_WAL]:haedal_lsd_wal_router_HaedalLsdWalRouter.swap,[types_AggregatorProtocol.KRIYA_CLMM]:kriya_clmm_router_KriyaClmmRouter.swap,[types_AggregatorProtocol.KRIYA_CPMM]:kriya_cpmm_router_KriyaCpmmRouter.swap,[types_AggregatorProtocol.MAGMA_ALMM]:magma_almm_router_MagmaAlmmRouter.swap,[types_AggregatorProtocol.MAGMA_CLMM]:magma_clmm_router_MagmaClmmRouter.swap,[types_AggregatorProtocol.METASTABLE]:metastable_router_MetastableRouter.swap,[types_AggregatorProtocol.MOMENTUM_CLMM]:momentum_clmm_router_MomentumClmmRouter.swap,[types_AggregatorProtocol.MOVEPUMP]:movepump_router_MovepumpRouter.swap,[types_AggregatorProtocol.OBRIC]:obric_router_ObricRouter.swap,[types_AggregatorProtocol.SCALLOP]:scallop_router_ScallopRouter.swap,[types_AggregatorProtocol.SEVENK_CPMM]:sevenk_cpmm_router_SevenkCpmmRouter.swap,[types_AggregatorProtocol.SEVENK_FUN]:sevenk_fun_router_SevenkFunRouter.swap,[types_AggregatorProtocol.SPRINGSUI]:springsui_router_SpringsuiRouter.swap,[types_AggregatorProtocol.SRM_CPMM]:srm_cpmm_router_SrmCpmmRouter.swap,[types_AggregatorProtocol.STEAMM_CPMM]:steamm_router_SteammRouter.swapCpmm,[types_AggregatorProtocol.STEAMM_OMM]:steamm_router_SteammRouter.swapOmm,[types_AggregatorProtocol.STEAMM_OMM_V2]:steamm_router_SteammRouter.swapOmmV2,[types_AggregatorProtocol.SUISWAP_CPMM]:suiswap_cpmm_router_SuiswapCpmmRouter.swap,[types_AggregatorProtocol.TRADEPORT_CLMM]:tradeport_clmm_router_TradeportClmmRouter.swap,[types_AggregatorProtocol.TURBOS_CLMM]:turbos_clmm_router_TurbosClmmRouter.swap,[types_AggregatorProtocol.TURBOS_FUN]:turbos_fun_router_TurbosFunRouter.swap,[types_AggregatorProtocol.VOLO]:volo_router_VoloRouter.swap},e.swap=function(t){(0,e.RouterSwapFunctionMap[t.protocol])(t)}}(utils_RouterUtils||(utils_RouterUtils={})),function(e){e.buildAggregatorSwapTransaction=async function(e){let{tx:t,coinOutType:o,tradePaths:a,pythConnections:r,pythClient:n,packageIdMap:_}=e,i=aggregator_Aggregator.openSwap(e),s=await pyth_PythUtils.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]}(a),txb:t,pythClient:n,pythConnections:r});for(let e=0;e<a.length;e++){let o=a[e],[r,n]=o.aToB?[o.coinInType,o.coinOutType]:[o.coinOutType,o.coinInType];utils_RouterUtils.swap({...o,txb:t,swapContext:i,amountIn:o.amountIn,coinAType:r,coinBType:n,packageId:_?.get(o.protocol),pythInfoObjectIdMap:s})}return aggregator_Aggregator.closeSwap({tx:t,coinOutType:o,swapSession:i})}}(meta_aggregator_MetaAggregator||(meta_aggregator_MetaAggregator={}));const BASE_SLIPPAGE_BPS=1e4,DEFAULT_SLIPPAGE_BPS=100,BASE_FEE_BPS=1e6;function calculateExpectedAmountAfterFees(e){let{amountOut:t,aggregatorFeeBps:o,partnerFeeBps:a}=e,r=calculateAmountAfterFee(t,o);return a&&(r=calculateAmountAfterFee(r,a)),r}function calculateAmountAfterFee(e,t){let o=BigInt(e)*BigInt(t)/BigInt(1e6);return(BigInt(e)-o).toString()}function calculateMinAmountOut(e,t){let o=BigInt(e)*BigInt(t??100)/BigInt(1e4);return(BigInt(e)-o).toString()}function toFeeBps(e){return Math.floor(1e4*e)}function toSlippageBps(e){return e?Math.floor(100*e):100}const PYTH_CONNECTIONS=pyth_PythUtils.newPythConnections(),PYTH_CLIENT=pyth_PythUtils.newPythClient();var types_SourceAggregatorRoute=function(e){return e.CETUS="CETUS",e.FLOWX="FLOWX",e.SEVENK="SEVENK",e}({});!function(e){function t(e){let t,{buildTxParam:o,rawRouteParam:a}=e;switch(a.sourceRoute){case"CETUS":t=cetus_aggregator_converter_CetusAggregatorConverter.convert(a.rawRoute);break;case"FLOWX":t=flowx_aggregator_converter_FlowXAggregatorConverter.convert(a.rawRoute);break;case"SEVENK":t=sevenk_aggregator_converter_SevenKAggregatorConverter.convert(a.rawRoute);break;default:throw Error("Unsupported source route")}let r=toFeeBps(o.aggregatorFeeRatePercent),n=o.partnerFeeRatePercent?toFeeBps(o.partnerFeeRatePercent):void 0,_=o.expectedAmountOut??calculateExpectedAmountAfterFees({amountOut:t.amountOut,aggregatorFeeBps:r,partnerFeeBps:n}),i=calculateMinAmountOut(_,toSlippageBps(o.slippagePercent));return{...o,...t,expectedAmountOut:_,minAmountOut:i,aggregatorFeeBps:r,partnerFeeBps:n,pythConnections:o.pythConnections??PYTH_CONNECTIONS,pythClient:o.pythClient??PYTH_CLIENT}}e.toMetaAggregatorBuildTxParams=t,e.buildTx=function(e){let o=t(e);return meta_aggregator_MetaAggregator.buildAggregatorSwapTransaction(o)}}(aggregator_converter_AggregatorConverter||(aggregator_converter_AggregatorConverter={}));class AggregatorModule{sdk;_astrosAggregator;_aftermathAggregator;_sevenkAggregator;_cetusAggregator;_flowXAggregator;constructor(e){this.sdk=e,this._astrosAggregator=new astros_AstrosAggregator({defaultTradeFee:e.options.tradeFee,astrosApiKey:e.options.astrosApiKey},e.suiClient),this._aftermathAggregator=new aftermath_AftermathAggregator({defaultTradeFee:e.options.tradeFee,aftermathApiKey:e.options.aftermathApiKey,aftermathApiEndpoint:e.options.aftermathApiEndpoint},e.suiClient),this._sevenkAggregator=new _7k_SevenKAggregator({defaultTradeFee:e.options.tradeFee,sevenKApiKey:e.options.sevenKApiKey},e.suiClient),this._cetusAggregator=new cetus_CetusAggregator({defaultTradeFee:e.options.tradeFee,cetusApiKey:e.options.cetusApiKey,cetusApiEndpoint:e.options.cetusApiEndpoint,cetusPartnerId:e.options.cetusPartnerId},e.suiClient),this._flowXAggregator=new flowx_FlowXAggregator({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 common_SupportedAggregator.ASTROS:{let e,a=await this._astrosAggregator.getTradeRoute(t);if(!a)return null;let r=astros_AstrosAggregator.toCommonTradeRoutes(a,t.coinInType,t.coinOutType);if(!r)return null;e=t.tradeFee?t.tradeFee.tradeFeePercent:this.sdk.options.tradeFee.tradeFeePercent,r.amountOut=BigInt(new(external_bignumber_js_default())(a.amount_out).multipliedBy(1-e).toFixed(0,3)),o={route:r,aggregatorRoute:a};break}case common_SupportedAggregator.AFTERMATH:{let e=await this._aftermathAggregator.getTradeRoute(t);if(!e)return null;let a=aftermath_AftermathAggregator.toCommonTradeRoutes(e);if(!a)return null;o={route:a,aggregatorRoute:e};break}case common_SupportedAggregator.SEVENK:{let e=await this._sevenkAggregator.getTradeRoute(t);if(!e)return null;let a=_7k_SevenKAggregator.toCommonTradeRoutes(e);if(!a)return null;o={route:a,aggregatorRoute:e};break}case common_SupportedAggregator.CETUS:{let e=await this._cetusAggregator.getTradeRoute(t);if(!e)return null;let a=cetus_CetusAggregator.toCommonTradeRoutes(e,t.coinInType,t.coinOutType);if(!a)return null;o={route:a,aggregatorRoute:e};break}case common_SupportedAggregator.FLOWX:{let e=await this._flowXAggregator.getTradeRoute(t);if(!e)return null;let a=flowx_FlowXAggregator.toCommonTradeRoutes(e);if(!a)return null;o={route:a,aggregatorRoute:e}}}return o}async getTransactionByRoute(e,t){switch(e){case common_SupportedAggregator.ASTROS:return this._astrosAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case common_SupportedAggregator.AFTERMATH:return this._aftermathAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage});case common_SupportedAggregator.SEVENK:return this._sevenkAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case common_SupportedAggregator.CETUS:return this._cetusAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case common_SupportedAggregator.FLOWX:return this._flowXAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee})}}async getTradeTransaction(e,t){let o=await this.getTradeRoute(e,{coinInAmount:t.coinInAmount,coinInType:t.coinInType,coinOutType:t.coinOutType,tradeFee:t.tradeFee,metaAggregator:t.metaAggregator});if(!o)return null;let a=await this.getTransactionByRoute(e,{walletAddress:t.walletAddress,completeRoute:o.aggregatorRoute,slippage:t.slippage,tradeFee:t.tradeFee});return{route:o.route,aggregatorRoute:o.aggregatorRoute,transaction:a}}async getTradeTransactionWithBestRate(e){let t=Object.keys(common_SupportedAggregator),o=await Promise.all(t.map(async t=>{try{return await this.getTradeRoute(t,e)}catch{return null}})),a=null,r=null;for(let e=0;e<o.length;e++){let n=o[e],_=t[e];if(n&&(!a||n.route.amountOut>a.route.amountOut)){a=n,r=_;continue}}if(!a||!r)return null;let n=await this.getTransactionByRoute(r,{walletAddress:e.walletAddress,completeRoute:a.aggregatorRoute,slippage:e.slippage,tradeFee:e.tradeFee});return{route:a.route,aggregatorRoute:a.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(common_SupportedAggregator),o=null,a=null;for(let r of t){let t=await this.getAmountOut(r,e);null!==t&&(null===o||t>o)&&(o=t,a=r)}return null===o||null===a?null:{amountOut:o,aggregator:a}}}const BOOSTING_PACKAGE_ID="0x25fa0eb553dd69fa6a8028f73a38f1df7f289fa88a58ed3d7dc5a5360155bb19",CONFIG_ID="0x8b1a8ac6e34688cd8f8f8e5fefa9d5fb9e1ff74d2f132f8e208ae5ac9cc530bb",ADMIN_CAP_ID="0x13d101f44a0710a5475bec5f492a87b80e03d92d1cf540f26096f65850b23d26";class BoostingModule{sdk;constructor(e){this.sdk=e}async getConfig(){let e=await this.sdk.suiClient.getObject({id:CONFIG_ID,options:{showContent:!0}});tiny_invariant_default()(e.data?.content,"Config object not found or has no content"),tiny_invariant_default()(e.data?.content.dataType==="moveObject","Config object is not a Move object");let t=e.data.content.fields,o=t.id.id,a=t.fee_receiver,r=t.tiers.fields.contents,n={};for(let e of r){let t=e.fields.key,o=e.fields.value.fields.duration,a=e.fields.value.fields.amount,r=e.fields.value.fields.point,_=e.fields.value.fields.original_amount;n[t]={duration:BigInt(o),amount:BigInt(a),point:BigInt(r),originalAmount:BigInt(_)}}return{id:o,receiverAddress:a,tiers:n}}async buildPayBoostingTx({walletAddress:e,tierId:t,boostingCoinType:o,currentTx:a}){let r=await this.getConfig();tiny_invariant_default()(t in r.tiers,"Invalid tier ID");let n=r.tiers[t].amount,_=a||new transactions_namespaceObject.Transaction,i=_.splitCoins(_.gas,[_.pure.u64(n)]);_.moveCall({target:`${BOOSTING_PACKAGE_ID}::boosting::pay`,typeArguments:[(0,utils_namespaceObject.normalizeStructTag)(o)],arguments:[_.object(CONFIG_ID),_.pure.u64(t),i]}),_.setSender(e);let s=await getNeededGasFee(this.sdk.suiClient,_,e,0);return addGasFee({inheritTx:_,sender:e,feeAmount:s},this.sdk.suiClient)}async buildAddTierTx({adminAddress:e,tierId:t,duration:o,point:a,originalAmount:r,amount:n,currentTx:_}){let i=_||new transactions_namespaceObject.Transaction;i.moveCall({target:`${BOOSTING_PACKAGE_ID}::config::add_tier`,typeArguments:[],arguments:[i.object(CONFIG_ID),i.object(ADMIN_CAP_ID),i.pure.u64(t),i.pure.u64(a),i.pure.u64(o),i.pure.u64(r),i.pure.u64(n)]}),i.setSender(e);let s=await getNeededGasFee(this.sdk.suiClient,i,e,0);return addGasFee({inheritTx:i,sender:e,feeAmount:s},this.sdk.suiClient)}async buildUpdateTierTx({adminAddress:e,tierId:t,duration:o,amount:a,originalAmount:r,point:n,currentTx:_}){let i=_||new transactions_namespaceObject.Transaction;i.moveCall({target:`${BOOSTING_PACKAGE_ID}::config::update_tier`,typeArguments:[],arguments:[i.object(CONFIG_ID),i.object(ADMIN_CAP_ID),i.pure.u64(t),i.pure.u64(o),i.pure.u64(a),i.pure.u64(n),i.pure.u64(r)]}),i.setSender(e);let s=await getNeededGasFee(this.sdk.suiClient,i,e,0);return addGasFee({inheritTx:i,sender:e,feeAmount:s},this.sdk.suiClient)}async buildRemoveTierTx({adminAddress:e,tierId:t,currentTx:o}){let a=o||new transactions_namespaceObject.Transaction;a.moveCall({target:`${BOOSTING_PACKAGE_ID}::config::remove_tier`,typeArguments:[],arguments:[a.object(CONFIG_ID),a.object(ADMIN_CAP_ID),a.pure.u64(t)]}),a.setSender(e);let r=await getNeededGasFee(this.sdk.suiClient,a,e,0);return addGasFee({inheritTx:a,sender:e,feeAmount:r},this.sdk.suiClient)}async buildUpdateFeeReceiver({adminAddress:e,newReceiverAddress:t,currentTx:o}){let a=o||new transactions_namespaceObject.Transaction;a.moveCall({target:`${BOOSTING_PACKAGE_ID}::config::update_fee_receiver`,typeArguments:[],arguments:[a.object(CONFIG_ID),a.object(ADMIN_CAP_ID),a.pure.address(t)]}),a.setSender(e);let r=await getNeededGasFee(this.sdk.suiClient,a,e,0);return addGasFee({inheritTx:a,sender:e,feeAmount:r},this.sdk.suiClient)}async buildPayBoostingWithAdminTx({walletAddress:e,tierId:t,customAmount:o,boostingCoinType:a,currentTx:r}){let n=r||new transactions_namespaceObject.Transaction,_=n.splitCoins(n.gas,[n.pure.u64(o)]);n.moveCall({target:`${BOOSTING_PACKAGE_ID}::boosting::pay_with_admin`,typeArguments:[(0,utils_namespaceObject.normalizeStructTag)(a)],arguments:[n.object(ADMIN_CAP_ID),n.object(CONFIG_ID),n.pure.u64(t),n.pure.u64(o),_]}),n.setSender(e);let i=await getNeededGasFee(this.sdk.suiClient,n,e,0);return addGasFee({inheritTx:n,sender:e,feeAmount:i},this.sdk.suiClient)}}class CurveModule{sdk;constructor(e){this.sdk=e}async getEstimatedAmountOut(e,t){let{coinInType:o,coinOutType:a}=t;tiny_invariant_default()(o!==a,"coinInType and coinOutType must be different"),tiny_invariant_default()(isSuiCoinType(o)||isSuiCoinType(a),"One of coinInType or coinOutType must be SUI");let r=isSuiCoinType(o);switch(e){case types_SupportedBondingCurve.MOONBAGS:if(r)return await calculation_MoonbagsCalculation.getCurveAmountAfterBuy({poolId:t.poolId,suiAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0},this.sdk.suiClient);return await calculation_MoonbagsCalculation.getSuiAmountAfterSell({poolId:t.poolId,curveAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0},this.sdk.suiClient);case types_SupportedBondingCurve.BLAST_FUN:if(r)return await sdk_calculation_BlastFunSDKCalculation.getCurveAmountAfterBuy({poolId:t.poolId,suiAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0});return await sdk_calculation_BlastFunSDKCalculation.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:a,coinOutType:r}=t;tiny_invariant_default()(a!==r,"coinInType and coinOutType must be different"),tiny_invariant_default()(isSuiCoinType(a)||isSuiCoinType(r),"One of coinInType or coinOutType must be SUI");let n=isSuiCoinType(a);switch(e){case types_SupportedBondingCurve.MOONBAGS:o=n?await transaction_MoonbagsTransaction.getBuyTransaction(t,this.sdk.suiClient):await transaction_MoonbagsTransaction.getSellTransaction(t,this.sdk.suiClient);break;case types_SupportedBondingCurve.BLAST_FUN:o=n?await sdk_transaction_BlastFunSDKTransaction.getBuyTransaction(t,this.sdk.suiClient):await sdk_transaction_BlastFunSDKTransaction.getSellTransaction(t,this.sdk.suiClient);break;default:throw Error(`Unsupported bonding curve platform: ${e}`)}return o}}const SUBSCRIPTION_CONFIG={prod:{packageId:"0x3dd678c250a667f1551bc4b9e35fd070896f4775dd2900d5cb2910d2aea0b068",configId:"0x3eb7bd15f61b7cc1a9fd36151e9c3d05aa37bfadb0a58c3a26a6c02c2e99f3ca",adminCapId:"0xf375fcb3d95934143766cab2028ab49441fa04ef2ce27c08c01004c455bcbad4",paymentCoinType:"0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC"},staging:{packageId:"0xa83cd093ce5142649adae10d21fe87d55fa2df4e52a4292c77ba039bb12bfe67",configId:"0x19fb8f91946e58c068fa4238bdd7a531216a0c4dcfaa279a8a02c60cb02f6711",adminCapId:"0xd8139544d054702dfab6de4e9c55f162c8a6f30465935af56cffed99c5e1c2bd",paymentCoinType:"0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC"}};class SubscriptionModule{sdk;constructor(e){this.sdk=e}async getConfig(){let e=await this.sdk.suiClient.getObject({id:SUBSCRIPTION_CONFIG[this.sdk.env].configId,options:{showContent:!0}});tiny_invariant_default()(e.data,"Config object not found"),tiny_invariant_default()(e.data.content,"Config object has no content"),tiny_invariant_default()(e.data?.content.dataType==="moveObject","Config object is not a Move object");let t=e.data.content.fields,o=t.id.id,a=t.fee_receiver,r=t.paused,n=t.accepted_payment_type,_=t.plans.fields.contents,i={};for(let e of _){let t=e.fields.key,o=e.fields.value.fields.id,a=e.fields.value.fields.price,r=e.fields.value.fields.month_interval,n=e.fields.value.fields.ptype;i[t]={id:BigInt(o),price:BigInt(a),monthInterval:r,planType:n}}return{id:o,plans:i,feeReceiverWallet:a,paused:r,acceptedPaymentType:n}}async buildSubscribeCyclePlanTx({walletAddress:e,planId:t,reference:o,paymentCoinType:a=SUBSCRIPTION_CONFIG[this.sdk.env].paymentCoinType,currentTx:r}){let n=await this.getConfig();tiny_invariant_default()(!n.paused,"Contract is paused"),tiny_invariant_default()(t in n.plans,"Invalid plan ID");let _=n.plans[t],i=_.price*BigInt(_.monthInterval),{tx:s,coinData:c}=await getSplitCoinForTx({account:e,amount:i.toString(),splits:[i.toString()],coinType:a,inheritTx:r},this.sdk.suiClient);s.moveCall({target:`${SUBSCRIPTION_CONFIG[this.sdk.env].packageId}::subscription::subscribe_cycle_plan`,typeArguments:[a],arguments:[s.object(SUBSCRIPTION_CONFIG[this.sdk.env].configId),s.pure.u64(t),s.pure.string(o),c]}),s.setSender(e);let l=await getNeededGasFee(this.sdk.suiClient,s,e,0);return addGasFee({inheritTx:s,sender:e,feeAmount:l},this.sdk.suiClient)}async buildBuyMoreCUPlanTx({walletAddress:e,planId:t,reference:o,paidAmount:a,paymentCoinType:r=SUBSCRIPTION_CONFIG[this.sdk.env].paymentCoinType,currentTx:n}){let _=await this.getConfig();tiny_invariant_default()(!_.paused,"Contract is paused"),tiny_invariant_default()(t in _.plans,"Invalid plan ID");let{tx:i,coinData:s}=await getSplitCoinForTx({account:e,amount:a.toString(),splits:[a.toString()],coinType:r,inheritTx:n},this.sdk.suiClient);i.moveCall({target:`${SUBSCRIPTION_CONFIG[this.sdk.env].packageId}::subscription::buy_more_cu`,typeArguments:[r],arguments:[i.object(SUBSCRIPTION_CONFIG[this.sdk.env].configId),i.pure.u64(t),i.pure.string(o),i.pure.u64(a),s]}),i.setSender(e);let c=await getNeededGasFee(this.sdk.suiClient,i,e,0);return addGasFee({inheritTx:i,sender:e,feeAmount:c},this.sdk.suiClient)}async buildSubscribePlanWithAdminTx({walletAddress:e,planId:t,reference:o,customAmount:a,paymentCoinType:r=SUBSCRIPTION_CONFIG[this.sdk.env].paymentCoinType,currentTx:n}){let _=await this.getConfig();tiny_invariant_default()(!_.paused,"Contract is paused");let{tx:i,coinData:s}=await getSplitCoinForTx({account:e,amount:a.toString(),splits:[a.toString()],coinType:r,inheritTx:n},this.sdk.suiClient);i.moveCall({target:`${SUBSCRIPTION_CONFIG[this.sdk.env].packageId}::subscription::subscribe_plan_with_admin`,typeArguments:[r],arguments:[i.object(SUBSCRIPTION_CONFIG[this.sdk.env].adminCapId),i.object(SUBSCRIPTION_CONFIG[this.sdk.env].configId),i.pure.u64(t),i.pure.string(o),i.pure.u64(a),s]}),i.setSender(e);let c=await getNeededGasFee(this.sdk.suiClient,i,e,0);return addGasFee({inheritTx:i,sender:e,feeAmount:c},this.sdk.suiClient)}async buildAddPlanTx({adminAddress:e,planId:t,planType:o,monthInterval:a,price:r,currentTx:n}){let _=n||new transactions_namespaceObject.Transaction;_.moveCall({target:`${SUBSCRIPTION_CONFIG[this.sdk.env].packageId}::config::add_plan`,typeArguments:[],arguments:[_.object(SUBSCRIPTION_CONFIG[this.sdk.env].configId),_.object(SUBSCRIPTION_CONFIG[this.sdk.env].adminCapId),_.pure.u64(t),_.pure.u8(o),_.pure.u8(a),_.pure.u64(r)]}),_.setSender(e);let i=await getNeededGasFee(this.sdk.suiClient,_,e,0);return addGasFee({inheritTx:_,sender:e,feeAmount:i},this.sdk.suiClient)}async buildUpdatePlanTx({adminAddress:e,planId:t,planType:o,monthInterval:a,price:r,currentTx:n}){let _=n||new transactions_namespaceObject.Transaction;_.moveCall({target:`${SUBSCRIPTION_CONFIG[this.sdk.env].packageId}::config::update_plan`,typeArguments:[],arguments:[_.object(SUBSCRIPTION_CONFIG[this.sdk.env].configId),_.object(SUBSCRIPTION_CONFIG[this.sdk.env].adminCapId),_.pure.u64(BigInt(t)),_.pure.u8(o),_.pure.u8(a),_.pure.u64(r)]}),_.setSender(e);let i=await getNeededGasFee(this.sdk.suiClient,_,e,0);return addGasFee({inheritTx:_,sender:e,feeAmount:i},this.sdk.suiClient)}async buildRemovePlanTx({adminAddress:e,planId:t,currentTx:o}){let a=o||new transactions_namespaceObject.Transaction;a.moveCall({target:`${SUBSCRIPTION_CONFIG[this.sdk.env].packageId}::config::remove_plan`,typeArguments:[],arguments:[a.object(SUBSCRIPTION_CONFIG[this.sdk.env].configId),a.object(SUBSCRIPTION_CONFIG[this.sdk.env].adminCapId),a.pure.u64(BigInt(t))]}),a.setSender(e);let r=await getNeededGasFee(this.sdk.suiClient,a,e,0);return addGasFee({inheritTx:a,sender:e,feeAmount:r},this.sdk.suiClient)}async buildUpdateFeeReceiverWalletTx({adminAddress:e,newFeeReceiverWallet:t,currentTx:o}){let a=o||new transactions_namespaceObject.Transaction;a.moveCall({target:`${SUBSCRIPTION_CONFIG[this.sdk.env].packageId}::config::update_fee_receiver`,typeArguments:[],arguments:[a.object(SUBSCRIPTION_CONFIG[this.sdk.env].configId),a.object(SUBSCRIPTION_CONFIG[this.sdk.env].adminCapId),a.pure.address(t)]}),a.setSender(e);let r=await getNeededGasFee(this.sdk.suiClient,a,e,0);return addGasFee({inheritTx:a,sender:e,feeAmount:r},this.sdk.suiClient)}async buildSetPausedTx({adminAddress:e,paused:t,currentTx:o}){let a=o||new transactions_namespaceObject.Transaction;a.moveCall({target:`${SUBSCRIPTION_CONFIG[this.sdk.env].packageId}::config::set_paused`,typeArguments:[],arguments:[a.object(SUBSCRIPTION_CONFIG[this.sdk.env].configId),a.object(SUBSCRIPTION_CONFIG[this.sdk.env].adminCapId),a.pure.bool(t)]}),a.setSender(e);let r=await getNeededGasFee(this.sdk.suiClient,a,e,0);return addGasFee({inheritTx:a,sender:e,feeAmount:r},this.sdk.suiClient)}async buildSetAcceptedPaymentTypeTx({adminAddress:e,paymentCoinType:t,currentTx:o}){let a=o||new transactions_namespaceObject.Transaction;a.moveCall({target:`${SUBSCRIPTION_CONFIG[this.sdk.env].packageId}::config::set_accepted_payment_type`,typeArguments:[t],arguments:[a.object(SUBSCRIPTION_CONFIG[this.sdk.env].configId),a.object(SUBSCRIPTION_CONFIG[this.sdk.env].adminCapId)]}),a.setSender(e);let r=await getNeededGasFee(this.sdk.suiClient,a,e,0);return addGasFee({inheritTx:a,sender:e,feeAmount:r},this.sdk.suiClient)}}class NoodlesPaySdk{network;env;_suiClient;boostingModule;subscriptionModule;constructor(e="mainnet",t="prod"){this.network=e,this.env=t;const o=(0,client_namespaceObject.getFullnodeUrl)(e);this._suiClient=new client_namespaceObject.SuiClient({url:o}),this.subscriptionModule=new SubscriptionModule(this),this.boostingModule=new BoostingModule(this)}get suiClient(){return this._suiClient}}const DEFAULT_TRADE_FEE={tradeFeePercent:.01,tradeFeeRecipientAddress:"0xdaf1c8ed29d89cd8f217f609bad0a668fa6f158c12000bfa5f93e670c99e24ff"};class NoodlesSdk{network;env;options;_suiClient;aggregatorModule;curveModule;constructor(e,t="mainnet",o="prod"){this.options=e,this.network=t,this.env=o;const a=(0,client_namespaceObject.getFullnodeUrl)(t);this._suiClient=new client_namespaceObject.SuiClient({url:a}),this.aggregatorModule=new AggregatorModule(this),this.curveModule=new CurveModule(this)}get suiClient(){return this._suiClient}}const ed25519_namespaceObject=require("@mysten/sui/keypairs/ed25519"),CONSTANTS={GAS_FEE_BUFFER_PERCENTAGE:.1};class DraftTransferTx{suiClient;constructor(e){this.suiClient=e}validatePrivateKey(e,t){tiny_invariant_default()(e?.trim(),"Private key is required");let o=ed25519_namespaceObject.Ed25519Keypair.fromSecretKey(e),a=o.getPublicKey().toSuiAddress();if(a!==t)throw Error(`Private key mismatch. Expected: ${t}, Got: ${a}`);return o}async createDraft(e,t,o){tiny_invariant_default()(e?.trim(),"Sender address is required"),tiny_invariant_default()(t?.trim(),"Recipient address is required"),tiny_invariant_default()(e!==t,"Sender and recipient cannot be the same"),tiny_invariant_default()(o>0n,"Transfer amount must be at least 1 MIST");try{let a=new transactions_namespaceObject.Transaction,[r]=a.splitCoins(a.gas,[o]);a.transferObjects([r],t),a.setSender(e);let n=await this.suiClient.getReferenceGasPrice();a.setGasPrice(n);let _=await getNeededGasFee(this.suiClient,a,e,CONSTANTS.GAS_FEE_BUFFER_PERCENTAGE);a=await addGasFee({inheritTx:a,sender:e,feeAmount:_,suiInputAmount:o},this.suiClient);let i=await a.build({client:this.suiClient}),s=Buffer.from(i).toString("base64"),c=await a.getDigest();return{sender:e,recipient:t,amountMIST:o,txDraftBase64:s,txDigest:c}}catch(e){throw Error(`Failed to create draft transaction: ${e instanceof Error?e.message:"Unknown error"}`)}}async execute(e,t){try{tiny_invariant_default()(e,"Draft transaction is required"),tiny_invariant_default()(e.txDraftBase64?.trim(),"Transaction data is required");let o=this.validatePrivateKey(t,e.sender),a=(0,utils_namespaceObject.fromBase64)(e.txDraftBase64),{signature:r}=await o.signTransaction(a),n=await this.suiClient.executeTransactionBlock({transactionBlock:a,signature:r});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){tiny_invariant_default()(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"}}}for(var __rspack_i in exports.ADMIN_CAP_ID=__webpack_exports__.ADMIN_CAP_ID,exports.AftermathAggregator=__webpack_exports__.AftermathAggregator,exports.AftermathCpmm=__webpack_exports__.AftermathCpmm,exports.AftermathLsd=__webpack_exports__.AftermathLsd,exports.AggregatorConverter=__webpack_exports__.AggregatorConverter,exports.AggregatorModule=__webpack_exports__.AggregatorModule,exports.AggregatorProtocol=__webpack_exports__.AggregatorProtocol,exports.AstrosAggregator=__webpack_exports__.AstrosAggregator,exports.BASE_BPS=__webpack_exports__.BASE_BPS,exports.BLUEFIN_PACKAGE_ID=__webpack_exports__.BLUEFIN_PACKAGE_ID,exports.BOOSTING_PACKAGE_ID=__webpack_exports__.BOOSTING_PACKAGE_ID,exports.BlastFunConstants=__webpack_exports__.BlastFunConstants,exports.BlastFunCustomCalculation=__webpack_exports__.BlastFunCustomCalculation,exports.BlastFunCustomTransaction=__webpack_exports__.BlastFunCustomTransaction,exports.BlastFunPackage=__webpack_exports__.BlastFunPackage,exports.BlastFunSDKCalculation=__webpack_exports__.BlastFunSDKCalculation,exports.BlastFunSDKTransaction=__webpack_exports__.BlastFunSDKTransaction,exports.Blastfun=__webpack_exports__.Blastfun,exports.BluefinClmm=__webpack_exports__.BluefinClmm,exports.BluefinTx=__webpack_exports__.BluefinTx,exports.BluemoveCpmm=__webpack_exports__.BluemoveCpmm,exports.Bolt=__webpack_exports__.Bolt,exports.BoostingModule=__webpack_exports__.BoostingModule,exports.Bps=__webpack_exports__.Bps,exports.CLOCK_OBJECT_ID=__webpack_exports__.CLOCK_OBJECT_ID,exports.CONFIG_ID=__webpack_exports__.CONFIG_ID,exports.CetusAggregator=__webpack_exports__.CetusAggregator,exports.CetusAggregatorConverter=__webpack_exports__.CetusAggregatorConverter,exports.CetusClmm=__webpack_exports__.CetusClmm,exports.CetusDlmm=__webpack_exports__.CetusDlmm,exports.CurveModule=__webpack_exports__.CurveModule,exports.DEFAULT_TRADE_FEE=__webpack_exports__.DEFAULT_TRADE_FEE,exports.DeepbookV3=__webpack_exports__.DeepbookV3,exports.DipCpmm=__webpack_exports__.DipCpmm,exports.DraftTransferTx=__webpack_exports__.DraftTransferTx,exports.FerraClmm=__webpack_exports__.FerraClmm,exports.FerraDlmm=__webpack_exports__.FerraDlmm,exports.FlowXAggregator=__webpack_exports__.FlowXAggregator,exports.FlowXAggregatorConverter=__webpack_exports__.FlowXAggregatorConverter,exports.FlowxCpmm=__webpack_exports__.FlowxCpmm,exports.FullsailClmm=__webpack_exports__.FullsailClmm,exports.HaedalLsdWal=__webpack_exports__.HaedalLsdWal,exports.KriyaClmm=__webpack_exports__.KriyaClmm,exports.MagmaAlmm=__webpack_exports__.MagmaAlmm,exports.MagmaClmm=__webpack_exports__.MagmaClmm,exports.MathUtils=__webpack_exports__.MathUtils,exports.MetaAggregator=__webpack_exports__.MetaAggregator,exports.Metastable=__webpack_exports__.Metastable,exports.MomentumClmm=__webpack_exports__.MomentumClmm,exports.MoonbagsCalculation=__webpack_exports__.MoonbagsCalculation,exports.MoonbagsConstants=__webpack_exports__.MoonbagsConstants,exports.MoonbagsPackage=__webpack_exports__.MoonbagsPackage,exports.MoonbagsTransaction=__webpack_exports__.MoonbagsTransaction,exports.Movepump=__webpack_exports__.Movepump,exports.NATIVE_USDC_TOKEN_TYPE=__webpack_exports__.NATIVE_USDC_TOKEN_TYPE,exports.NoodlesPaySdk=__webpack_exports__.NoodlesPaySdk,exports.NoodlesSdk=__webpack_exports__.NoodlesSdk,exports.Obric=__webpack_exports__.Obric,exports.PythPrice=__webpack_exports__.PythPrice,exports.PythUtils=__webpack_exports__.PythUtils,exports.RouterUtils=__webpack_exports__.RouterUtils,exports.SUBSCRIPTION_CONFIG=__webpack_exports__.SUBSCRIPTION_CONFIG,exports.SUI_FULL_TYPE=__webpack_exports__.SUI_FULL_TYPE,exports.SUI_METADATA_OBJECT_ID=__webpack_exports__.SUI_METADATA_OBJECT_ID,exports.SUI_TYPE=__webpack_exports__.SUI_TYPE,exports.Scallop=__webpack_exports__.Scallop,exports.SevenKAggregator=__webpack_exports__.SevenKAggregator,exports.SevenKAggregatorConverter=__webpack_exports__.SevenKAggregatorConverter,exports.SevenkCpmm=__webpack_exports__.SevenkCpmm,exports.SevenkFun=__webpack_exports__.SevenkFun,exports.SrmCpmm=__webpack_exports__.SrmCpmm,exports.Steamm=__webpack_exports__.Steamm,exports.SubscriptionModule=__webpack_exports__.SubscriptionModule,exports.SupportedAggregator=__webpack_exports__.SupportedAggregator,exports.SupportedBondingCurve=__webpack_exports__.SupportedBondingCurve,exports.TradeFeeOptions=__webpack_exports__.TradeFeeOptions,exports.TradeportClmm=__webpack_exports__.TradeportClmm,exports.TurbosClmm=__webpack_exports__.TurbosClmm,exports.TurbosFun=__webpack_exports__.TurbosFun,exports.USDC_TOKEN_TYPE=__webpack_exports__.USDC_TOKEN_TYPE,exports.Volo=__webpack_exports__.Volo,exports.Walrus=__webpack_exports__.Walrus,exports.adaptSuiClient=__webpack_exports__.adaptSuiClient,exports.adaptTransaction=__webpack_exports__.adaptTransaction,exports.addGasFee=__webpack_exports__.addGasFee,exports.checkIsSui=__webpack_exports__.checkIsSui,exports.createCompatibleSuiClient=__webpack_exports__.createCompatibleSuiClient,exports.denormalizeTokenType=__webpack_exports__.denormalizeTokenType,exports.getAmountAfterFee=__webpack_exports__.getAmountAfterFee,exports.getCoinObjectIdsByAmount=__webpack_exports__.getCoinObjectIdsByAmount,exports.getMemezPumpSDK=__webpack_exports__.getMemezPumpSDK,exports.getMoveObject=__webpack_exports__.getMoveObject,exports.getMoveObjectContent=__webpack_exports__.getMoveObjectContent,exports.getNeededGasFee=__webpack_exports__.getNeededGasFee,exports.getSplitCoinForTx=__webpack_exports__.getSplitCoinForTx,exports.getSplitCoinsAfterFee=__webpack_exports__.getSplitCoinsAfterFee,exports.isSuiCoinType=__webpack_exports__.isSuiCoinType,exports.normalizeTokenType=__webpack_exports__.normalizeTokenType,exports.splitSuiCoinAfterFeeFromBuyTx=__webpack_exports__.splitSuiCoinAfterFeeFromBuyTx,exports.splitSuiCoinAfterFeeFromSellTx=__webpack_exports__.splitSuiCoinAfterFeeFromSellTx,__webpack_exports__)-1===["ADMIN_CAP_ID","AftermathAggregator","AftermathCpmm","AftermathLsd","AggregatorConverter","AggregatorModule","AggregatorProtocol","AstrosAggregator","BASE_BPS","BLUEFIN_PACKAGE_ID","BOOSTING_PACKAGE_ID","BlastFunConstants","BlastFunCustomCalculation","BlastFunCustomTransaction","BlastFunPackage","BlastFunSDKCalculation","BlastFunSDKTransaction","Blastfun","BluefinClmm","BluefinTx","BluemoveCpmm","Bolt","BoostingModule","Bps","CLOCK_OBJECT_ID","CONFIG_ID","CetusAggregator","CetusAggregatorConverter","CetusClmm","CetusDlmm","CurveModule","DEFAULT_TRADE_FEE","DeepbookV3","DipCpmm","DraftTransferTx","FerraClmm","FerraDlmm","FlowXAggregator","FlowXAggregatorConverter","FlowxCpmm","FullsailClmm","HaedalLsdWal","KriyaClmm","MagmaAlmm","MagmaClmm","MathUtils","MetaAggregator","Metastable","MomentumClmm","MoonbagsCalculation","MoonbagsConstants","MoonbagsPackage","MoonbagsTransaction","Movepump","NATIVE_USDC_TOKEN_TYPE","NoodlesPaySdk","NoodlesSdk","Obric","PythPrice","PythUtils","RouterUtils","SUBSCRIPTION_CONFIG","SUI_FULL_TYPE","SUI_METADATA_OBJECT_ID","SUI_TYPE","Scallop","SevenKAggregator","SevenKAggregatorConverter","SevenkCpmm","SevenkFun","SrmCpmm","Steamm","SubscriptionModule","SupportedAggregator","SupportedBondingCurve","TradeFeeOptions","TradeportClmm","TurbosClmm","TurbosFun","USDC_TOKEN_TYPE","Volo","Walrus","adaptSuiClient","adaptTransaction","addGasFee","checkIsSui","createCompatibleSuiClient","denormalizeTokenType","getAmountAfterFee","getCoinObjectIdsByAmount","getMemezPumpSDK","getMoveObject","getMoveObjectContent","getNeededGasFee","getSplitCoinForTx","getSplitCoinsAfterFee","isSuiCoinType","normalizeTokenType","splitSuiCoinAfterFeeFromBuyTx","splitSuiCoinAfterFeeFromSellTx"].indexOf(__rspack_i)&&(exports[__rspack_i]=__webpack_exports__[__rspack_i]);Object.defineProperty(exports,"__esModule",{value:!0});
1
+ "use strict";const __rslib_import_meta_url__="u"<typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var aggregator_Aggregator,sevenk_aggregator_converter_SevenKAggregatorConverter,types_TradeFeeOptions,metastable_Metastable,cetus_aggregator_converter_CetusAggregatorConverter,flowx_aggregator_converter_FlowXAggregatorConverter,constants_BlastFunConstants,package_MathUtils,package_Bps,package_BlastFunPackage,custom_calculation_BlastFunCustomCalculation,bluefin_BluefinTx,custom_transaction_BlastFunCustomTransaction,sdk_calculation_BlastFunSDKCalculation,sdk_transaction_BlastFunSDKTransaction,constants_MoonbagsConstants,package_MoonbagsPackage,calculation_MoonbagsCalculation,transaction_MoonbagsTransaction,pyth_PythPrice,pyth_PythUtils,aftermath_cpmm_AftermathCpmm,aftermath_cpmm_router_AftermathCpmmRouter,aftermath_lsd_AftermathLsd,aftermath_lsd_router_AftermathLsdRouter,alphafi_lsd_router_AlphafiLsdRouter,blastfun_Blastfun,blastfun_router_BlastfunRouter,bluefin_clmm_BluefinClmm,bluefin_clmm_router_BluefinClmmRouter,bluemove_cpmm_BluemoveCpmm,bluemove_cpmm_router_BluemoveCpmmRouter,bolt_Bolt,bolt_router_BoltRouter,cetus_clmm_CetusClmm,cetus_clmm_router_CetusClmmRouter,cetus_dlmm_CetusDlmm,cetus_dlmm_router_CetusDlmmRouter,deepbook_v3_DeepbookV3,deepbook_v3_router_DeepbookV3Router,dip_cpmm_DipCpmm,dip_cpmm_router_DipCpmmRouter,ferra_clmm_FerraClmm,ferra_clmm_router_FerraClmmRouter,ferra_dlmm_FerraDlmm,ferra_dlmm_router_FerraDlmmRouter,flowx_clmm_FlowxClmm,flowx_clmm_router_FlowxClmmRouter,flowx_cpmm_FlowxCpmm,flowx_cpmm_router_FlowxCpmmRouter,fullsail_clmm_FullsailClmm,fullsail_clmm_router_FullsailClmmRouter,haedal_cpmm_router_HaedalCpmmRouter,haedal_cpmm_v2_router_HaedalCpmmV2Router,haedal_lsd_router_HaedalLsdRouter,walrus_Walrus,haedal_lsd_wal_HaedalLsdWal,haedal_lsd_wal_router_HaedalLsdWalRouter,kriya_clmm_KriyaClmm,kriya_clmm_router_KriyaClmmRouter,kriya_cpmm_router_KriyaCpmmRouter,magma_almm_MagmaAlmm,magma_almm_router_MagmaAlmmRouter,magma_clmm_MagmaClmm,magma_clmm_router_MagmaClmmRouter,metastable_router_MetastableRouter,momentum_clmm_MomentumClmm,momentum_clmm_router_MomentumClmmRouter,movepump_Movepump,movepump_router_MovepumpRouter,obric_Obric,obric_router_ObricRouter,scallop_Scallop,scallop_router_ScallopRouter,sevenk_cpmm_SevenkCpmm,sevenk_cpmm_router_SevenkCpmmRouter,sevenk_fun_SevenkFun,sevenk_fun_router_SevenkFunRouter,springsui_router_SpringsuiRouter,srm_cpmm_SrmCpmm,srm_cpmm_router_SrmCpmmRouter,steamm_Steamm,steamm_router_SteammRouter,suiswap_cpmm_router_SuiswapCpmmRouter,tradeport_clmm_TradeportClmm,tradeport_clmm_router_TradeportClmmRouter,turbos_clmm_TurbosClmm,turbos_clmm_router_TurbosClmmRouter,turbos_fun_TurbosFun,turbos_fun_router_TurbosFunRouter,volo_Volo,volo_router_VoloRouter,utils_RouterUtils,meta_aggregator_MetaAggregator,aggregator_converter_AggregatorConverter,__webpack_require__={};__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var o in t)__webpack_require__.o(t,o)&&!__webpack_require__.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{MagmaAlmm:()=>magma_almm_MagmaAlmm,denormalizeTokenType:()=>denormalizeTokenType,KriyaClmm:()=>kriya_clmm_KriyaClmm,TradeFeeOptions:()=>types_TradeFeeOptions,addGasFee:()=>addGasFee,getMemezPumpSDK:()=>getMemezPumpSDK,DeepbookV3:()=>deepbook_v3_DeepbookV3,BlastFunSDKCalculation:()=>sdk_calculation_BlastFunSDKCalculation,AftermathLsd:()=>aftermath_lsd_AftermathLsd,DraftTransferTx:()=>DraftTransferTx,MoonbagsConstants:()=>constants_MoonbagsConstants,NoodlesPaySdk:()=>NoodlesPaySdk,Bps:()=>package_Bps,ADMIN_CAP_ID:()=>ADMIN_CAP_ID,SevenKAggregatorConverter:()=>sevenk_aggregator_converter_SevenKAggregatorConverter,DipCpmm:()=>dip_cpmm_DipCpmm,getMoveObject:()=>getMoveObject,splitSuiCoinAfterFeeFromBuyTx:()=>splitSuiCoinAfterFeeFromBuyTx,CetusAggregatorConverter:()=>cetus_aggregator_converter_CetusAggregatorConverter,MomentumClmm:()=>momentum_clmm_MomentumClmm,MoonbagsCalculation:()=>calculation_MoonbagsCalculation,Steamm:()=>steamm_Steamm,Metastable:()=>metastable_Metastable,getSplitCoinsAfterFee:()=>getSplitCoinsAfterFee,AftermathCpmm:()=>aftermath_cpmm_AftermathCpmm,BluemoveCpmm:()=>bluemove_cpmm_BluemoveCpmm,AstrosAggregator:()=>astros_AstrosAggregator,BlastFunSDKTransaction:()=>sdk_transaction_BlastFunSDKTransaction,CONFIG_ID:()=>CONFIG_ID,AftermathAggregator:()=>aftermath_AftermathAggregator,CetusClmm:()=>cetus_clmm_CetusClmm,FlowXAggregator:()=>flowx_FlowXAggregator,SevenkCpmm:()=>sevenk_cpmm_SevenkCpmm,adaptSuiClient:()=>adaptSuiClient,AggregatorModule:()=>AggregatorModule,adaptTransaction:()=>adaptTransaction,Obric:()=>obric_Obric,getNeededGasFee:()=>getNeededGasFee,createCompatibleSuiClient:()=>createCompatibleSuiClient,FlowxCpmm:()=>flowx_cpmm_FlowxCpmm,FullsailClmm:()=>fullsail_clmm_FullsailClmm,SupportedAggregator:()=>common_SupportedAggregator,NATIVE_USDC_TOKEN_TYPE:()=>NATIVE_USDC_TOKEN_TYPE,BOOSTING_PACKAGE_ID:()=>BOOSTING_PACKAGE_ID,SUI_TYPE:()=>SUI_TYPE,USDC_TOKEN_TYPE:()=>USDC_TOKEN_TYPE,isSuiCoinType:()=>isSuiCoinType,normalizeTokenType:()=>normalizeTokenType,SevenkFun:()=>sevenk_fun_SevenkFun,MoonbagsPackage:()=>package_MoonbagsPackage,getCoinObjectIdsByAmount:()=>getCoinObjectIdsByAmount,SUI_FULL_TYPE:()=>SUI_FULL_TYPE,AggregatorConverter:()=>aggregator_converter_AggregatorConverter,splitSuiCoinAfterFeeFromSellTx:()=>splitSuiCoinAfterFeeFromSellTx,getAmountAfterFee:()=>getAmountAfterFee,Blastfun:()=>blastfun_Blastfun,PythPrice:()=>pyth_PythPrice,MetaAggregator:()=>meta_aggregator_MetaAggregator,TurbosFun:()=>turbos_fun_TurbosFun,BLUEFIN_PACKAGE_ID:()=>BLUEFIN_PACKAGE_ID,SubscriptionModule:()=>SubscriptionModule,checkIsSui:()=>checkIsSui,MathUtils:()=>package_MathUtils,CLOCK_OBJECT_ID:()=>CLOCK_OBJECT_ID,CurveModule:()=>CurveModule,MoonbagsTransaction:()=>transaction_MoonbagsTransaction,BlastFunPackage:()=>package_BlastFunPackage,CetusAggregator:()=>cetus_CetusAggregator,DEFAULT_TRADE_FEE:()=>DEFAULT_TRADE_FEE,BlastFunCustomTransaction:()=>custom_transaction_BlastFunCustomTransaction,NoodlesSdk:()=>NoodlesSdk,BoostingModule:()=>BoostingModule,PythUtils:()=>pyth_PythUtils,RouterUtils:()=>utils_RouterUtils,AggregatorProtocol:()=>types_AggregatorProtocol,FlowXAggregatorConverter:()=>flowx_aggregator_converter_FlowXAggregatorConverter,HaedalLsdWal:()=>haedal_lsd_wal_HaedalLsdWal,FerraClmm:()=>ferra_clmm_FerraClmm,BluefinClmm:()=>bluefin_clmm_BluefinClmm,MagmaClmm:()=>magma_clmm_MagmaClmm,SUBSCRIPTION_CONFIG:()=>SUBSCRIPTION_CONFIG,SrmCpmm:()=>srm_cpmm_SrmCpmm,Volo:()=>volo_Volo,BlastFunCustomCalculation:()=>custom_calculation_BlastFunCustomCalculation,FerraDlmm:()=>ferra_dlmm_FerraDlmm,Movepump:()=>movepump_Movepump,SupportedBondingCurve:()=>types_SupportedBondingCurve,BASE_BPS:()=>1e4,getMoveObjectContent:()=>getMoveObjectContent,getSplitCoinForTx:()=>getSplitCoinForTx,BluefinTx:()=>bluefin_BluefinTx,Scallop:()=>scallop_Scallop,CetusDlmm:()=>cetus_dlmm_CetusDlmm,SUI_METADATA_OBJECT_ID:()=>SUI_METADATA_OBJECT_ID,TurbosClmm:()=>turbos_clmm_TurbosClmm,Walrus:()=>walrus_Walrus,SevenKAggregator:()=>_7k_SevenKAggregator,Bolt:()=>bolt_Bolt,BlastFunConstants:()=>constants_BlastFunConstants,TradeportClmm:()=>tradeport_clmm_TradeportClmm});const bluefin7k_aggregator_sdk_namespaceObject=require("@bluefin-exchange/bluefin7k-aggregator-sdk"),transactions_namespaceObject=require("@mysten/sui/transactions"),external_bignumber_js_namespaceObject=require("bignumber.js");var external_bignumber_js_default=__webpack_require__.n(external_bignumber_js_namespaceObject);const tiny_invariant_namespaceObject=require("@minswap/tiny-invariant");var tiny_invariant_default=__webpack_require__.n(tiny_invariant_namespaceObject);const utils_namespaceObject=require("@mysten/sui/utils"),SUI_TYPE="0x2::sui::SUI",SUI_FULL_TYPE="0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI",USDC_TOKEN_TYPE="0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN",NATIVE_USDC_TOKEN_TYPE="0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC",SUI_METADATA_OBJECT_ID="0x9258181f5ceac8dbffb7030890243caed69a9599d2886d957a9cb7656af3bdb3",CLOCK_OBJECT_ID="0x0000000000000000000000000000000000000000000000000000000000000006";function isSuiCoinType(e){return e===SUI_TYPE||e===SUI_FULL_TYPE}function normalizeTokenType(e){return e===SUI_TYPE?SUI_FULL_TYPE:e}function denormalizeTokenType(e){return e===SUI_FULL_TYPE?SUI_TYPE:e}function checkIsSui(e){return e===SUI_FULL_TYPE||e===SUI_TYPE}!function(e){e.MAX_AMOUNT_IN="18446744073709551615",e.LAST_PACKAGE_ID="0x7e57926855b32baa3b3cabed89380b8d415606fdedadc18e58bd1ef1e60aee48",e.openSwap=function(t){let{tx:o,expectedAmountOut:a,minAmountOut:r,coinInType:n,coinOutType:_,inputCoin:i,aggregatorFeeBps:s,aggregatorFeeRecipient:c,partnerFeeRecipient:l,partnerFeeBps:u}=t,[p]=o.moveCall({target:`${e.LAST_PACKAGE_ID}::aggregator::open_swap`,typeArguments:[n,_],arguments:[o.pure.u64(a),o.pure.u64(r),i,o.pure.u32(s),o.pure.address(c),o.pure.u32(u??0),o.pure.option("address",l)]});return p},e.closeSwap=function(t){let{tx:o,coinOutType:a,swapSession:r}=t,[n]=o.moveCall({target:`${e.LAST_PACKAGE_ID}::aggregator::close_swap`,typeArguments:[a],arguments:[r]});return n}}(aggregator_Aggregator||(aggregator_Aggregator={}));var types_AggregatorProtocol=function(e){return e.AFTERMATH_CPMM="aftermath_cpmm",e.AFTERMATH_LSD="aftermath_lsd",e.ALPHAFI_LSD="alphafi_lsd",e.BLASTFUN="blastfun",e.BLUEFIN_CLMM="bluefin_clmm",e.BLUEMOVE_CPMM="bluemove_cpmm",e.BOLT="bolt",e.CETUS_CLMM="cetus_clmm",e.CETUS_DLMM="cetus_dlmm",e.DEEPBOOK_V3="deepbook_v3",e.DIP_CPMM="dip_cpmm",e.FLOWX_CPMM="flowx_cpmm",e.FLOWX_CLMM="flowx_clmm",e.FULLSAIL_CLMM="fullsail_clmm",e.FERRA_CLMM="ferra_clmm",e.FERRA_DLMM="ferra_dlmm",e.HAEDAL_CPMM="haedal_cpmm",e.HAEDAL_CPMM_V2="haedal_cpmm_v2",e.HAEDAL_LSD="haedal_lsd",e.HAEDAL_LSD_WAL="haedal_lsd_wal",e.KRIYA_CLMM="kriya_clmm",e.KRIYA_CPMM="kriya_cpmm",e.MAGMA_ALMM="magma_almm",e.MAGMA_CLMM="magma_clmm",e.METASTABLE="metastable",e.MOMENTUM_CLMM="momentum_clmm",e.MOVEPUMP="movepump",e.OBRIC="obric",e.SCALLOP="scallop",e.SEVENK_CPMM="sevenk_cpmm",e.SEVENK_FUN="sevenk_fun",e.SPRINGSUI="springsui",e.SRM_CPMM="srm_cpmm",e.STEAMM_CPMM="steamm_cpmm",e.SUISWAP_CPMM="suiswap_cpmm",e.STEAMM_OMM="steamm_omm",e.STEAMM_OMM_V2="steamm_omm_v2",e.TRADEPORT_CLMM="tradeport_clmm",e.TURBOS_CLMM="turbos_clmm",e.TURBOS_FUN="turbos_fun",e.VOLO="volo",e}({});!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=>{tiny_invariant_default()(e.extra?.poolStructTag,"Aftermath protocol requires poolStructTag");let[t]=_(e.extra.poolStructTag);return{...n(e),protocol:types_AggregatorProtocol.AFTERMATH_CPMM,coinLpType:t}},flowx_v3:e=>{tiny_invariant_default()(e.extra?.swapFeeRate,"flowx_v3 protocol requires swapFeeRate");let t=e.extra.swapFeeRate;return{...n(e),protocol:types_AggregatorProtocol.FLOWX_CLMM,poolFeeRate:t}},turbos:e=>{tiny_invariant_default()(e.extra?.poolStructTag,"turbos protocol requires poolStructTag");let[t,o,a]=_(e.extra.poolStructTag);return{...n(e),protocol:types_AggregatorProtocol.TURBOS_CLMM,coinFeeType:a}},obric:e=>(tiny_invariant_default()(e.extra?.oracles,"obric protocol requires oracles"),{...n(e),protocol:types_AggregatorProtocol.OBRIC,pythPriceFeedIdA:i(e.extra.oracles[0]),pythPriceFeedIdB:i(e.extra.oracles[1])}),haedal_pmm:e=>(tiny_invariant_default()(e.extra.oracles,"haedal_pmm protocol requires oracles"),{...n(e),protocol:types_AggregatorProtocol.HAEDAL_CPMM,pythPriceFeedIdA:i(e.extra.oracles[0]),pythPriceFeedIdB:i(e.extra.oracles[1])}),sevenk_v1:e=>{tiny_invariant_default()(e.extra?.poolStructTag,"sevenk_v1 protocol requires poolStructTag"),tiny_invariant_default()(e.extra?.oracleConfigX,"sevenk_v1 protocol requires oracleConfigX"),tiny_invariant_default()(e.extra?.oracleConfigY,"sevenk_v1 protocol requires oracleConfigY");let t=e.extra.oracles?.[0]?.Pyth?.bytes,o=e.extra.oracles?.[1]?.Pyth?.bytes;tiny_invariant_default()(t,"sevenk_v1 protocol requires pythPriceFeedIdA"),tiny_invariant_default()(o,"sevenk_v1 protocol requires pythPriceFeedIdB");let[a,r,i]=_(e.extra.poolStructTag);return{...n(e),protocol:types_AggregatorProtocol.SEVENK_CPMM,coinLpType:i,pythPriceFeedIdA:t,pythPriceFeedIdB:o,oracleConfigA:e.extra.oracleConfigX,oracleConfigB:e.extra.oracleConfigY}},steamm:e=>{tiny_invariant_default()(e.extra?.poolStructTag,"steamm protocol requires poolStructTag"),tiny_invariant_default()(e.extra?.bankAStructTag,"steamm protocol requires bankAStructTag"),tiny_invariant_default()(e.extra?.lendingMarketA,"steamm protocol requires lendingMarketA"),tiny_invariant_default()(e.extra?.bankA,"steamm protocol requires bankA"),tiny_invariant_default()(e.extra?.bankB,"steamm protocol requires bankB");let[t,o,a,r]=_(e.extra.poolStructTag),[i,s,c]=_(e.extra.bankAStructTag);return{...n(e),protocol:types_AggregatorProtocol.STEAMM_CPMM,bankAId:e.extra.bankA,bankBId:e.extra.bankB,lendingMarketId:e.extra.lendingMarketA,lendingMarketType:i,bCoinAType:t,bCoinBType:o,lpBCoinType:r}},steamm_oracle_quoter:e=>{tiny_invariant_default()(e.extra?.poolStructTag,"steamm_oracle_quoter protocol requires poolStructTag"),tiny_invariant_default()(e.extra?.bankAStructTag,"steamm_oracle_quoter protocol requires bankAStructTag"),tiny_invariant_default()(e.extra?.lendingMarketA,"steamm_oracle_quoter protocol requires lendingMarketA"),tiny_invariant_default()(e.extra?.oracleRegistry,"steamm_oracle_quoter protocol requires oracleRegistry"),tiny_invariant_default()(e.extra?.bankA,"steamm_oracle_quoter protocol requires bankA"),tiny_invariant_default()(e.extra?.bankB,"steamm_oracle_quoter protocol requires bankB"),tiny_invariant_default()(e.extra?.oracleIndexes,"steamm_oracle_quoter protocol requires oracleIndexes"),tiny_invariant_default()(e.extra?.oracles,"steamm_oracle_quoter protocol requires oracles");let[t,o,a,r]=_(e.extra?.poolStructTag),[s,c,l]=_(e.extra.bankAStructTag),[u,p]=e.extra.oracleIndexes;return{...n(e),protocol:types_AggregatorProtocol.STEAMM_OMM,bankAId:e.extra.bankA,bankBId:e.extra.bankB,lendingMarketId:e.extra.lendingMarketA,lendingMarketType:s,bCoinAType:t,bCoinBType:o,lpBCoinType:r,pythPriceFeedIdA:i(e.extra.oracles[0]),pythPriceFeedIdB:i(e.extra.oracles[1]),oracleRegistryId:e.extra.oracleRegistry,oracleIndexA:u,oracleIndexB:p}},steamm_oracle_quoter_v2:e=>{tiny_invariant_default()(e.extra?.poolStructTag,"steamm_oracle_quoter_v2 protocol requires poolStructTag"),tiny_invariant_default()(e.extra?.bankAStructTag,"steamm_oracle_quoter_v2 protocol requires bankAStructTag"),tiny_invariant_default()(e.extra?.lendingMarketA,"steamm_oracle_quoter_v2 protocol requires lendingMarketA"),tiny_invariant_default()(e.extra?.oracleRegistry,"steamm_oracle_quoter_v2 protocol requires oracleRegistry"),tiny_invariant_default()(e.extra?.bankA,"steamm_oracle_quoter_v2 protocol requires bankA"),tiny_invariant_default()(e.extra?.bankB,"steamm_oracle_quoter_v2 protocol requires bankB"),tiny_invariant_default()(e.extra?.oracleIndexes,"steamm_oracle_quoter_v2 protocol requires oracleIndexes"),tiny_invariant_default()(e.extra?.oracles,"steamm_oracle_quoter_v2 protocol requires oracles");let[t,o,a,r]=_(e.extra?.poolStructTag),[s,c,l]=_(e.extra.bankAStructTag),[u,p]=e.extra.oracleIndexes;return{...n(e),protocol:types_AggregatorProtocol.STEAMM_OMM_V2,bankAId:e.extra.bankA,bankBId:e.extra.bankB,lendingMarketId:e.extra.lendingMarketA,lendingMarketType:s,bCoinAType:t,bCoinBType:o,lpBCoinType:r,pythPriceFeedIdA:i(e.extra.oracles[0]),pythPriceFeedIdB:i(e.extra.oracles[1]),oracleRegistryId:e.extra.oracleRegistry,oracleIndexA:u,oracleIndexB:p}},cetus:e=>({...n(e),protocol:types_AggregatorProtocol.CETUS_CLMM}),bluemove:e=>({...n(e),protocol:types_AggregatorProtocol.BLUEMOVE_CPMM}),kriya:e=>({...n(e),protocol:types_AggregatorProtocol.KRIYA_CPMM}),kriya_v3:e=>({...n(e),protocol:types_AggregatorProtocol.KRIYA_CLMM}),deepbook_v3:e=>({...n(e),protocol:types_AggregatorProtocol.DEEPBOOK_V3}),flowx:e=>({...n(e),protocol:types_AggregatorProtocol.FLOWX_CPMM}),bluefin:e=>({...n(e),protocol:types_AggregatorProtocol.BLUEFIN_CLMM}),springsui:e=>({...n(e),protocol:types_AggregatorProtocol.SPRINGSUI}),magma:e=>({...n(e),protocol:types_AggregatorProtocol.MAGMA_CLMM}),momentum:e=>({...n(e),protocol:types_AggregatorProtocol.MOMENTUM_CLMM}),fullsail:e=>({...n(e),protocol:types_AggregatorProtocol.FULLSAIL_CLMM}),stsui:e=>({...n(e),protocol:types_AggregatorProtocol.ALPHAFI_LSD}),suiswap:e=>({...n(e),protocol:types_AggregatorProtocol.SUISWAP_CPMM}),cetus_dlmm:e=>({...n(e),protocol:types_AggregatorProtocol.CETUS_DLMM}),ferra_dlmm:e=>({...n(e),protocol:types_AggregatorProtocol.FERRA_DLMM}),ferra_clmm:e=>({...n(e),protocol:types_AggregatorProtocol.FERRA_CLMM})};function a(e){let a=e.pool.type;if(t.has(a))throw Error(`Unsupported SourceDex: ${a}`);return(0,o[a])(e)}function r(e){let t=new Map;for(let[o,a]of e.entries())t.set(a.assetIn,o);let o=e.map(a);for(let e of t.values())o[e].amountIn=aggregator_Aggregator.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 _(e){return(0,utils_namespaceObject.parseStructTag)(e||"").typeParams.map(utils_namespaceObject.normalizeStructTag)}function i(e){let t=e?.Pyth?.bytes||e?.Pyth?.price_identifier?.bytes;return tiny_invariant_default()(t,"Pyth price feed id is not found"),"0x"+(0,utils_namespaceObject.toHex)(Uint8Array.from(t))}e.toMetaAggregatorPath=a,e.toMetaAggregatorPaths=r,e.convert=function(e){var t,o,a;let n;tiny_invariant_default()(e.routes,"Invalid raw route: routes is missing");let _=(t=e.routes,n={},t.forEach(e=>{e.hops.forEach(e=>{n[e.poolId]=e.pool})}),n),i=r((o=e.swaps,a=_,o.map(e=>{let t=a[e.poolId],o=denormalizeTokenType(e.assetIn),r=denormalizeTokenType(e.assetOut),n={type:denormalizeTokenType(t?.allTokens?.[0]?.address),decimals:t?.allTokens?.[0]?.decimal},_={type:denormalizeTokenType(t?.allTokens?.[1]?.address),decimals:t?.allTokens?.[0]?.decimal},i=o===n.type;return{...e,pool:t,assetIn:o,assetOut:r,coinX:n,coinY:_,swapXtoY:i}})));return{coinInType:e.tokenIn,coinOutType:e.tokenOut,amountOut:e.returnAmountWithDecimal,tradePaths:i}}}(sevenk_aggregator_converter_SevenKAggregatorConverter||(sevenk_aggregator_converter_SevenKAggregatorConverter={}));class _7k_SevenKAggregator{_config;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:a,metaAggregator:r,supportedProtocols:n}){try{this._config.sevenKApiKey&&bluefin7k_aggregator_sdk_namespaceObject.Config.setApiKey(this._config.sevenKApiKey);let _=a?a.tradeFeePercent:this._config.defaultTradeFee.tradeFeePercent,i=n??(r?sevenk_aggregator_converter_SevenKAggregatorConverter.SUPPORTED_PROTOCOLS:void 0);return await (0,bluefin7k_aggregator_sdk_namespaceObject.getQuote)({tokenIn:t,tokenOut:o,amountIn:e.toString(),commissionBps:1e4*_,sources:i})}catch(e){return null}}async getTransaction({walletAddress:e,completeRoute:t,slippage:o,tradeFee:a}){let r,n;a?(r=a.tradeFeePercent,n=a.tradeFeeRecipientAddress):(r=this._config.defaultTradeFee.tradeFeePercent,n=this._config.defaultTradeFee.tradeFeeRecipientAddress);let _=await (0,bluefin7k_aggregator_sdk_namespaceObject.buildTx)({quoteResponse:t,slippage:o,accountAddress:e,commission:{partner:n,commissionBps:1e4*r}});return _.tx instanceof bluefin7k_aggregator_sdk_namespaceObject.BluefinXTx?transactions_namespaceObject.Transaction.from(_.tx.txBytes).build({client:this._suiClient}):(_.tx.setSender(e),_.tx.build({client:this._suiClient}))}}!function(e){e.toCommonTradeRoutes=function(e){let t=[];if(!e.routes||0===e.routes.length)return null;for(let o of e.routes){let e=[],a={};for(let t of o.hops){for(let e of t.pool.allTokens)a[e.address]=e.decimal;let o=a[t.tokenIn]??0,r=a[t.tokenOut]??0,n=BigInt(new(external_bignumber_js_default())(t.tokenInAmount).multipliedBy(10**o).toFixed(0,3)),_=BigInt(new(external_bignumber_js_default())(t.tokenOutAmount).multipliedBy(10**r).toFixed(0,3));e.push({poolAddress:t.poolId,coinIn:t.tokenIn,coinOut:t.tokenOut,amountIn:n,amountOut:_})}if(0===e.length)continue;let r=a[o.tokenIn]??0,n=a[o.tokenOut]??0,_=BigInt(new(external_bignumber_js_default())(o.tokenInAmount).multipliedBy(10**r).toFixed(0,3)),i=BigInt(new(external_bignumber_js_default())(o.tokenOutAmount).multipliedBy(10**n).toFixed(0,3));t.push({paths:e,coinIn:o.tokenIn,coinOut:o.tokenOut,amountIn:_,amountOut:i})}return 0===t.length?null:{coinIn:e.tokenIn,coinOut:e.tokenOut,amountIn:BigInt(e.swapAmountWithDecimal),amountOut:BigInt(e.returnAmountAfterCommissionWithDecimal),routes:t}}}(_7k_SevenKAggregator||(_7k_SevenKAggregator={}));const external_aftermath_ts_sdk_namespaceObject=require("aftermath-ts-sdk");class aftermath_AftermathAggregator{_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 external_aftermath_ts_sdk_namespaceObject.Aftermath(this._config.aftermathApiEndpoint):this._aftermathClient=new external_aftermath_ts_sdk_namespaceObject.Aftermath("MAINNET"),await this._aftermathClient.init(),this._config.aftermathApiKey){let e=external_aftermath_ts_sdk_namespaceObject.Helpers.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:a}){try{let r;r=a?{recipient:a.tradeFeeRecipientAddress,feePercentage:a.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:r})}catch(e){return null}}async getTransaction({completeRoute:e,walletAddress:t,slippage:o}){let a=await this.aftermathClient(),r=await a.Router().getTransactionForCompleteTradeRoute({completeRoute:e,walletAddress:t,slippage:o,isSponsoredTx:!1});return r.setSender(t),r.build({client:this._suiClient})}}!function(e){e.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}}}(aftermath_AftermathAggregator||(aftermath_AftermathAggregator={}));const astros_aggregator_sdk_namespaceObject=require("@naviprotocol/astros-aggregator-sdk");function isSuiCoin(e){return"0x2::sui::SUI"===e||"0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI"===e}class astros_AstrosAggregator{_config;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:a}){try{let r;return r=a?{fee:100,receiverAddress:a.tradeFeeRecipientAddress}:{fee:100,receiverAddress:this._config.defaultTradeFee.tradeFeeRecipientAddress},await (0,astros_aggregator_sdk_namespaceObject.getQuote)(t,o,e,this._config.astrosApiKey,{byAmountIn:!0,serviceFee:r})}catch(e){return null}}returnMergedCoins(e,t,o){if(t.length<2)return e.object(t[0].coinObjectId);let a=0,r=[];t.sort((e,t)=>Number(t.balance)-Number(e.balance)).slice(1).forEach(e=>{a>=o||(a+=Number(e.balance),r.push(e.coinObjectId))});let n=t[0].coinObjectId;return e.mergeCoins(n,r),e.object(n)}async getTransaction({completeRoute:e,walletAddress:t,slippage:o,tradeFee:a}){let r,n;r=a?{fee:a.tradeFeePercent,receiverAddress:a.tradeFeeRecipientAddress}:{fee:this._config.defaultTradeFee.tradeFeePercent,receiverAddress:this._config.defaultTradeFee.tradeFeeRecipientAddress};let _=new(external_bignumber_js_default())(e.amount_out).multipliedBy(1-o-r.fee).toNumber(),i=new transactions_namespaceObject.Transaction;if(isSuiCoin(e.from))n=i.splitCoins(i.gas,[i.pure.u64(e.amount_in)]);else{let o=await (0,astros_aggregator_sdk_namespaceObject.getCoins)(this._suiClient,t,e.from),a=this.returnMergedCoins(i,o.data,Number.parseFloat(e.amount_in));n=i.splitCoins(a,[i.pure.u64(e.amount_in)])}let s=await (0,astros_aggregator_sdk_namespaceObject.buildSwapPTBFromQuote)(t,i,_,n,e,void 0,!1,this._config.astrosApiKey,{serviceFee:r});return i.transferObjects([s],t),i.setSender(t),i.build({client:this._suiClient})}}!function(e){e.toCommonTradeRoutes=function(e,t,o){if(0===e.routes.length)return null;let a=[];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&&a.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===a.length?null:{coinIn:t,coinOut:o,amountIn:BigInt(e.amount_in),amountOut:BigInt(e.amount_out),routes:a}}}(astros_AstrosAggregator||(astros_AstrosAggregator={}));const aggregator_sdk_namespaceObject=require("@cetusprotocol/aggregator-sdk"),external_bn_js_namespaceObject=require("bn.js");var external_bn_js_default=__webpack_require__.n(external_bn_js_namespaceObject);!function(e){e.equals=function(e,t){return e.tradeFeePercent===t.tradeFeePercent&&e.tradeFeeRecipientAddress===t.tradeFeeRecipientAddress}}(types_TradeFeeOptions||(types_TradeFeeOptions={})),function(e){var t;e.UNIVERSAL_META_VAULT_INTEGRATION_PACKAGE_ID="0xfd12517a9fc87c6a1f2357ad13b3421fb27a8bd7ca07d5fd5934ac35733baa47",(t=e.MetaCoinType||(e.MetaCoinType={})).SUPER_SUI="0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI",t.MUSD="0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD",t.METH="0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH",e.VERSION_OBJ_ID="0x4696559327b35ff2ab26904e7426a1646312e9c836d5c6cff6709a5ccc30915c",e.createCap=function(e){let t,{txb:o,coinType:a,metaCoin:r,createCapAllTypeParams:n,whitelistedAppId:_,poolId:i,pythInfoObjectIdMap:s,createCapPackageId:c,createCapModule:l,createCapFunc:u}=e,p=[r.toString()];switch(n&&p.push(a),e.metaCoin){case"0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI":t=[o.object(_),o.object(i),o.object(e.registryId)];break;case"0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD":{let a=s.get(e.pythPriceFeedIdMeta);tiny_invariant_default()(a,"Not found priceMetaId in pythObjectIdMap"),t=[o.object(_),o.object(i),o.object(a),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)];break}case"0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH":{let a=s.get(e.pythPriceFeedIdMeta);tiny_invariant_default()(a,"Not found priceId in pythObjectIdMap");let r=s.get(e.pythPriceFeedIdEth);tiny_invariant_default()(r,"Not found priceEthFeedId in pythObjectIdMap"),t=[o.object(_),o.object(i),o.object(a),o.object(r),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)];break}default:throw Error("Invalid MetaCoin: "+r.toString())}return o.moveCall({target:`${c}::${l}::${u}`,typeArguments:p,arguments:t})},e.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)}},e.isMetaCoinType=function(t){return Object.values(e.MetaCoinType).map(e=>e.toString()).includes(t)},e.getCreateCapAllTypeParams=function(t,o){switch(t){case"0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI":return o===e.UNIVERSAL_META_VAULT_INTEGRATION_PACKAGE_ID;case"0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD":case"0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH":return!0;default:throw Error("Invalid MetaCoin: "+t)}}}(metastable_Metastable||(metastable_Metastable={})),function(e){let t=[aggregator_sdk_namespaceObject.CETUS,aggregator_sdk_namespaceObject.KRIYA,aggregator_sdk_namespaceObject.FLOWXV2,aggregator_sdk_namespaceObject.FLOWXV3,aggregator_sdk_namespaceObject.KRIYAV3,aggregator_sdk_namespaceObject.TURBOS,aggregator_sdk_namespaceObject.AFTERMATH,aggregator_sdk_namespaceObject.HAEDAL,aggregator_sdk_namespaceObject.VOLO,aggregator_sdk_namespaceObject.AFSUI,aggregator_sdk_namespaceObject.BLUEMOVE,aggregator_sdk_namespaceObject.DEEPBOOKV3,aggregator_sdk_namespaceObject.SCALLOP,aggregator_sdk_namespaceObject.SUILEND,aggregator_sdk_namespaceObject.BLUEFIN,aggregator_sdk_namespaceObject.HAEDALPMM,aggregator_sdk_namespaceObject.ALPHAFI,aggregator_sdk_namespaceObject.SPRINGSUI,aggregator_sdk_namespaceObject.STEAMM,aggregator_sdk_namespaceObject.METASTABLE,aggregator_sdk_namespaceObject.OBRIC,aggregator_sdk_namespaceObject.HAWAL,aggregator_sdk_namespaceObject.STEAMM_OMM,aggregator_sdk_namespaceObject.MOMENTUM,aggregator_sdk_namespaceObject.STEAMM_OMM_V2,aggregator_sdk_namespaceObject.MAGMA,aggregator_sdk_namespaceObject.SEVENK,aggregator_sdk_namespaceObject.HAEDALHMMV2,aggregator_sdk_namespaceObject.FULLSAIL,aggregator_sdk_namespaceObject.CETUSDLMM,aggregator_sdk_namespaceObject.FERRADLMM,aggregator_sdk_namespaceObject.FERRACLMM];e.SUPPORTED_PROTOCOLS=[...t];let o=new Set(t),a=e=>({poolId:e.id,coinInType:e.from,coinOutType:e.target,aToB:e.direction,amountIn:e.amountIn});function r(t){if(!o.has(t.provider))throw Error(`Unsupported or unknown provider: ${t.provider} for pool ${t.id}`);return(0,e.TO_META_AGGREGATOR_PATH_FN_MAP[t.provider])(t)}function n(e){let t=new Map;for(let[o,a]of e.paths.entries())t.set(a.from,o);let o=[];for(let a=0;a<e.paths.length;a++){let n=e.paths[a],_=r(n);t.get(n.from)===a&&(_.amountIn=aggregator_Aggregator.MAX_AMOUNT_IN),o.push(_)}return o}e.TO_META_AGGREGATOR_PATH_FN_MAP={[aggregator_sdk_namespaceObject.METASTABLE]:e=>{let t=a(e),o=e.extendedDetails,r=e.direction?e.target:e.from;tiny_invariant_default()(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(r){case metastable_Metastable.MetaCoinType.SUPER_SUI:return tiny_invariant_default()(o.metastable_registry_id,`METASTABLE_SUPER_SUI protocol requires 'metastable_registry_id' in extendedDetails for pool ${e.id}.`),{...t,...n,protocol:types_AggregatorProtocol.METASTABLE,metaCoin:r,registryId:o.metastable_registry_id};case metastable_Metastable.MetaCoinType.MUSD:return tiny_invariant_default()(o.metastable_price_seed,`METASTABLE_MUSD protocol requires 'metastable_price_seed' in extendedDetails for pool ${e.id}.`),{...t,...n,protocol:types_AggregatorProtocol.METASTABLE,metaCoin:r,pythPriceFeedIdMeta:o.metastable_price_seed};case metastable_Metastable.MetaCoinType.METH:return tiny_invariant_default()(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:types_AggregatorProtocol.METASTABLE,metaCoin:r,pythPriceFeedIdMeta:o.metastable_price_seed,pythPriceFeedIdEth:o.metastable_eth_price_seed};default:throw Error(`METASTABLE protocol does not support ${r} as metaCoin.`)}},[aggregator_sdk_namespaceObject.DEEPBOOKV3]:e=>({...a(e),protocol:types_AggregatorProtocol.DEEPBOOK_V3}),[aggregator_sdk_namespaceObject.AFTERMATH]:e=>{let t=e.extendedDetails;return tiny_invariant_default()(t?.aftermath_lp_supply_type,`AFTERMATH_CPMM protocol requires 'aftermath_lp_type' in extendedDetails for pool ${e.id}.`),{...a(e),protocol:types_AggregatorProtocol.AFTERMATH_CPMM,coinLpType:t.aftermath_lp_supply_type}},[aggregator_sdk_namespaceObject.FLOWXV3]:e=>({...a(e),protocol:types_AggregatorProtocol.FLOWX_CLMM,poolFeeRate:String(1e6*e.feeRate)}),[aggregator_sdk_namespaceObject.HAEDALPMM]:e=>{let t=e.extendedDetails;return tiny_invariant_default()(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}.`),{...a(e),protocol:types_AggregatorProtocol.HAEDAL_CPMM,pythPriceFeedIdA:t.haedal_pmm_base_price_seed,pythPriceFeedIdB:t.haedal_pmm_quote_price_seed}},[aggregator_sdk_namespaceObject.HAEDALHMMV2]:e=>{let t=e.extendedDetails;return tiny_invariant_default()(t?.haedalhmmv2_base_price_seed,`HAEDAL_CPMM_V2 protocol requires 'haedal_pyth_price_base_id' in extendedDetails for pool ${e.id}.`),{...a(e),protocol:types_AggregatorProtocol.HAEDAL_CPMM_V2,pythPriceFeedIdBase:t.haedalhmmv2_base_price_seed}},[aggregator_sdk_namespaceObject.SCALLOP]:e=>(tiny_invariant_default()(e.extendedDetails?.scallop_scoin_treasury,`SCALLOP protocol requires 'scallop_scoin_treasury' in extendedDetails for pool ${e.id}.`),{...a(e),protocol:types_AggregatorProtocol.SCALLOP,scoinTreasury:e.extendedDetails.scallop_scoin_treasury}),[aggregator_sdk_namespaceObject.STEAMM]:e=>{let t=e.extendedDetails;return tiny_invariant_default()(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}.`),{...a(e),protocol:types_AggregatorProtocol.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}},[aggregator_sdk_namespaceObject.STEAMM_OMM]:e=>{let t=e.extendedDetails;return tiny_invariant_default()(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}.`),{...a(e),protocol:types_AggregatorProtocol.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)}},[aggregator_sdk_namespaceObject.STEAMM_OMM_V2]:e=>{let t=e.extendedDetails;return tiny_invariant_default()(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}.`),{...a(e),protocol:types_AggregatorProtocol.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)}},[aggregator_sdk_namespaceObject.OBRIC]:e=>{let t=a(e);if(e.extendedDetails?.obric_coin_a_price_id&&e.extendedDetails?.obric_coin_b_price_id)return{...t,protocol:types_AggregatorProtocol.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:types_AggregatorProtocol.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}.`)},[aggregator_sdk_namespaceObject.SEVENK]:e=>{let t=e.extendedDetails;return tiny_invariant_default()(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}.`),{...a(e),protocol:types_AggregatorProtocol.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}},[aggregator_sdk_namespaceObject.TURBOS]:e=>(tiny_invariant_default()(e.extendedDetails?.turbos_fee_type,`TURBOS_CLMM protocol requires 'coinFeeType' parameter for pool ${e.id}. Provide it via the parametersMap argument.`),{...a(e),protocol:types_AggregatorProtocol.TURBOS_CLMM,coinFeeType:e.extendedDetails.turbos_fee_type}),[aggregator_sdk_namespaceObject.AFSUI]:e=>({...a(e),protocol:types_AggregatorProtocol.AFTERMATH_LSD}),[aggregator_sdk_namespaceObject.ALPHAFI]:e=>({...a(e),protocol:types_AggregatorProtocol.ALPHAFI_LSD}),[aggregator_sdk_namespaceObject.BLUEFIN]:e=>({...a(e),protocol:types_AggregatorProtocol.BLUEFIN_CLMM}),[aggregator_sdk_namespaceObject.BLUEMOVE]:e=>({...a(e),protocol:types_AggregatorProtocol.BLUEMOVE_CPMM}),[aggregator_sdk_namespaceObject.CETUS]:e=>({...a(e),protocol:types_AggregatorProtocol.CETUS_CLMM}),[aggregator_sdk_namespaceObject.CETUSDLMM]:e=>({...a(e),protocol:types_AggregatorProtocol.CETUS_DLMM}),[aggregator_sdk_namespaceObject.FERRACLMM]:e=>({...a(e),protocol:types_AggregatorProtocol.FERRA_CLMM}),[aggregator_sdk_namespaceObject.FERRADLMM]:e=>({...a(e),protocol:types_AggregatorProtocol.FERRA_DLMM}),[aggregator_sdk_namespaceObject.FLOWXV2]:e=>({...a(e),protocol:types_AggregatorProtocol.FLOWX_CPMM}),[aggregator_sdk_namespaceObject.FULLSAIL]:e=>({...a(e),protocol:types_AggregatorProtocol.FULLSAIL_CLMM}),[aggregator_sdk_namespaceObject.HAEDAL]:e=>({...a(e),protocol:types_AggregatorProtocol.HAEDAL_LSD}),[aggregator_sdk_namespaceObject.HAWAL]:e=>({...a(e),protocol:types_AggregatorProtocol.HAEDAL_LSD_WAL}),[aggregator_sdk_namespaceObject.KRIYA]:e=>({...a(e),protocol:types_AggregatorProtocol.KRIYA_CPMM}),[aggregator_sdk_namespaceObject.KRIYAV3]:e=>({...a(e),protocol:types_AggregatorProtocol.KRIYA_CLMM}),[aggregator_sdk_namespaceObject.MAGMA]:e=>({...a(e),protocol:types_AggregatorProtocol.MAGMA_CLMM}),[aggregator_sdk_namespaceObject.MOMENTUM]:e=>({...a(e),protocol:types_AggregatorProtocol.MOMENTUM_CLMM}),[aggregator_sdk_namespaceObject.SUILEND]:e=>({...a(e),protocol:types_AggregatorProtocol.SPRINGSUI}),[aggregator_sdk_namespaceObject.SPRINGSUI]:e=>({...a(e),protocol:types_AggregatorProtocol.SPRINGSUI}),[aggregator_sdk_namespaceObject.VOLO]:e=>({...a(e),protocol:types_AggregatorProtocol.VOLO})},e.toMetaAggregatorPath=r,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)}}}(cetus_aggregator_converter_CetusAggregatorConverter||(cetus_aggregator_converter_CetusAggregatorConverter={}));class cetus_CetusAggregator{_config;_suiClient;_cetusClient;getCetusClientConfig({walletAddress:e,overlayFeeReceiver:t,overlayFeeRate:o}){return{client:this._suiClient,overlayFeeReceiver:t,overlayFeeRate:o,env:aggregator_sdk_namespaceObject.Env.Mainnet,signer:e,...this._config.cetusApiKey&&this._config.cetusApiEndpoint?{apiKey:this._config.cetusApiKey,endpoint:this._config.cetusApiEndpoint}:{},partner:this._config.cetusPartnerId}}constructor(e,t){this._config=e,this._suiClient=t}cetusClient(e,t){return t&&!types_TradeFeeOptions.equals(t,this._config.defaultTradeFee)?new aggregator_sdk_namespaceObject.AggregatorClient(this.getCetusClientConfig({walletAddress:e,overlayFeeReceiver:t.tradeFeeRecipientAddress,overlayFeeRate:t.tradeFeePercent})):(this._cetusClient||(this._cetusClient=new aggregator_sdk_namespaceObject.AggregatorClient(this.getCetusClientConfig({walletAddress:e,overlayFeeReceiver:this._config.defaultTradeFee.tradeFeeRecipientAddress,overlayFeeRate:this._config.defaultTradeFee.tradeFeePercent}))),this._cetusClient)}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:a,metaAggregator:r,supportedProtocols:n}){try{let _=this.cetusClient(void 0,a),i=n??(r?cetus_aggregator_converter_CetusAggregatorConverter.SUPPORTED_PROTOCOLS:void 0);return await _.findRouters({from:t,target:o,amount:new(external_bn_js_default())(e.toString()),byAmountIn:!0,providers:i})}catch(e){return null}}async getTransaction({completeRoute:e,walletAddress:t,slippage:o,tradeFee:a}){let r=this.cetusClient(t,a),n=new transactions_namespaceObject.Transaction;return n.setSender(t),await r.fastRouterSwap({router:e,txb:n,slippage:o}),n.build({client:this._suiClient})}}!function(e){e.toCommonTradeRoutes=function(e,t,o){if(0===e.paths.length)return null;let a=[],r=[],n=[];for(let t=0;t<e.paths.length;t++){let o=e.paths[t],a={poolAddress:o.id,amountIn:BigInt(o.amountIn),amountOut:BigInt(o.amountOut),coinIn:o.from,coinOut:o.target};if(n.push(a),t===e.paths.length-1)r.push([...n]);else{let a=e.paths[t+1];o.target!==a.from&&(r.push([...n]),n=[])}}for(let e of r)0!==e.length&&a.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===a.length?null:{coinIn:t,coinOut:o,amountIn:BigInt(e.amountIn.toString(10)),amountOut:BigInt(e.amountOut.toString(10)),routes:a}}}(cetus_CetusAggregator||(cetus_CetusAggregator={}));var common_SupportedAggregator=function(e){return e.ASTROS="ASTROS",e.AFTERMATH="AFTERMATH",e.SEVENK="7K",e.CETUS="CETUS",e.FLOWX="FLOWX",e}({});const sdk_namespaceObject=require("@flowx-finance/sdk");function getInputPercent(e){return 1e6*e}!function(e){let t=[sdk_namespaceObject.Protocol.HOP_FUN,sdk_namespaceObject.Protocol.FLOWX_PMM,sdk_namespaceObject.Protocol.DEEPBOOK,sdk_namespaceObject.Protocol.IPX_TIDE,sdk_namespaceObject.Protocol.METASTABLE];e.SUPPORTED_PROTOCOLS=Object.values(sdk_namespaceObject.Protocol).filter(e=>!t.includes(e));let o={[sdk_namespaceObject.Protocol.FLOWX_V2]:t=>({...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:types_AggregatorProtocol.FLOWX_CPMM}),[sdk_namespaceObject.Protocol.FLOWX_V3]:t=>(tiny_invariant_default()(void 0!==t.poolFee,`Pool fee is required for pool ${t.pool.id}`),tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.FLOWX_CLMM,poolFeeRate:t.poolFee.toString()}),[sdk_namespaceObject.Protocol.CETUS]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.CETUS_CLMM}),[sdk_namespaceObject.Protocol.CETUS_DLMM]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.CETUS_DLMM}),[sdk_namespaceObject.Protocol.AFTERMATH]:t=>(tiny_invariant_default()(t.lpCoinType,`AFTERMATH protocol requires lpCoinType for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:types_AggregatorProtocol.AFTERMATH_CPMM,coinLpType:t.lpCoinType}),[sdk_namespaceObject.Protocol.AFTERMATH_LSD]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:types_AggregatorProtocol.AFTERMATH_LSD}),[sdk_namespaceObject.Protocol.ALPHA_FI]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:types_AggregatorProtocol.ALPHAFI_LSD}),[sdk_namespaceObject.Protocol.BLUEFIN]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.BLUEFIN_CLMM}),[sdk_namespaceObject.Protocol.BLUEMOVE]:t=>({...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:types_AggregatorProtocol.BLUEMOVE_CPMM}),[sdk_namespaceObject.Protocol.DEEPBOOK_V3]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.DEEPBOOK_V3}),[sdk_namespaceObject.Protocol.FERRA_CLMM]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.FERRA_CLMM}),[sdk_namespaceObject.Protocol.FERRA_DLMM]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.FERRA_DLMM}),[sdk_namespaceObject.Protocol.FULL_SAIL]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.FULLSAIL_CLMM}),[sdk_namespaceObject.Protocol.HAEDAL]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:types_AggregatorProtocol.HAEDAL_LSD}),[sdk_namespaceObject.Protocol.HAEDAL_PMM]:t=>{let o=t.oracles;return tiny_invariant_default()(o&&o.length>=2,`HAEDAL_CPMM protocol requires oracle price feeds for pool ${t.pool.id}.`),tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.HAEDAL_CPMM,pythPriceFeedIdA:o[0].priceId,pythPriceFeedIdB:o[1].priceId}},[sdk_namespaceObject.Protocol.KRIYA_DEX]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.KRIYA_CPMM}),[sdk_namespaceObject.Protocol.KRIYA_V3]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.KRIYA_CLMM}),[sdk_namespaceObject.Protocol.MAGMA_FINANCE]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.MAGMA_CLMM}),[sdk_namespaceObject.Protocol.MAGMA_ALMM]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.MAGMA_ALMM}),[sdk_namespaceObject.Protocol.MOMENTUM_FINANCE]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.MOMENTUM_CLMM}),[sdk_namespaceObject.Protocol.OBRIC]:t=>(tiny_invariant_default()(t.xPriceId&&t.yPriceId,`OBRIC protocol requires price feeds for pool ${t.pool.id}`),tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.OBRIC,priceInfoObjIdA:t.xPriceId,priceInfoObjIdB:t.yPriceId}),[sdk_namespaceObject.Protocol.SPRING_SUI]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:types_AggregatorProtocol.SPRINGSUI}),[sdk_namespaceObject.Protocol.STEAMM]:t=>{tiny_invariant_default()(void 0!==t.bankXInfo&&void 0!==t.bankYInfo,`STEAMM protocol requires bank info for pool ${t.pool.id}`),tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),tiny_invariant_default()(void 0!==t.quoterType,`quoterType is required for pool ${t.pool.id}`),tiny_invariant_default()(void 0!==t.poolInfo,`poolInfo is required for pool ${t.pool.id}`),tiny_invariant_default()(void 0!==t.protocolConfig&&void 0!==t.protocolConfig.oracleRegistryId,`protocolConfig is required for pool ${t.pool.id}`);let o=t.oracles,a=e.toMetaAggregatorBasePath(t),r=t.xForY;switch(t.quoterType){case"constant_product":return{...a,aToB:r,protocol:types_AggregatorProtocol.STEAMM_CPMM,bankAId:r?t.bankXInfo.bankId:t.bankYInfo.bankId,bankBId:r?t.bankYInfo.bankId:t.bankXInfo.bankId,lendingMarketId:t.bankXInfo.lendingMarketId,lendingMarketType:t.bankXInfo.lendingMarketType,bCoinAType:r?t.bankXInfo.bTokenType:t.bankYInfo.bTokenType,bCoinBType:r?t.bankYInfo.bTokenType:t.bankXInfo.bTokenType,lpBCoinType:t.poolInfo.lpTokenType};case"oracle":case"oracle_v2":{tiny_invariant_default()(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 tiny_invariant_default()(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}.`),{...a,aToB:r,protocol:types_AggregatorProtocol.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}`)}},[sdk_namespaceObject.Protocol.SEVENK_V1]:t=>{let o=t.oracles;return tiny_invariant_default()(o&&o.length>=2,`SEVENK_CPMM protocol requires oracle price feeds for pool ${t.pool.id}.`),tiny_invariant_default()(t.poolStructTag,`SEVENK_V1 protocol requires poolStructTag for pool ${t.pool.id}`),tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.SEVENK_CPMM,coinLpType:t.poolStructTag,pythPriceFeedIdA:o[0].priceId,pythPriceFeedIdB:o[1].priceId,oracleConfigA:o[0].oracleId??"",oracleConfigB:o[1].oracleId??""}},[sdk_namespaceObject.Protocol.SUI_REWARDS]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.SRM_CPMM}),[sdk_namespaceObject.Protocol.TURBOS_FIANCE]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.TURBOS_CLMM,coinFeeType:t.poolStructTag?t.poolStructTag.split("<")[1].split(",")[2].trim().replace(">",""):""}),[sdk_namespaceObject.Protocol.VOLO_LSD]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:types_AggregatorProtocol.VOLO}),[sdk_namespaceObject.Protocol.TRADEPORT]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),tiny_invariant_default()(void 0!==t.poolFee,`Pool fee is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,poolFeeRate:t.poolFee.toString(),protocol:types_AggregatorProtocol.TRADEPORT_CLMM}),[sdk_namespaceObject.Protocol.TURBOS_FUN]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.TURBOS_FUN}),[sdk_namespaceObject.Protocol.BLUEMOVE_FUN]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,expectedAmountOut:t.amountOut.toString(),protocol:types_AggregatorProtocol.MOVEPUMP}),[sdk_namespaceObject.Protocol.SEVEN_K_FUN]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.SEVENK_FUN}),[sdk_namespaceObject.Protocol.DIPCOIN]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.DIP_CPMM}),[sdk_namespaceObject.Protocol.BOLT]:t=>(tiny_invariant_default()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:types_AggregatorProtocol.BOLT})};function a(t){let o=[];for(let e of t)o.push(...e.paths);let a=new Map;for(let[e,t]of o.entries())a.set(t.input.coinType,e);let r=o.map(e.toMetaAggregatorPath);for(let e of a.values())r[e].amountIn=aggregator_Aggregator.MAX_AMOUNT_IN;return r}e.toMetaAggregatorBasePath=e=>({poolId:e.pool.id,coinInType:e.input.coinType,coinOutType:e.output.coinType,amountIn:e.amountIn.toString()}),e.toMetaAggregatorPath=e=>{let a=e.protocol();if(t.includes(a))throw Error(`Unsupported protocol: ${a}`);return(0,o[a])(e)},e.toMetaAggregatorPaths=a,e.convert=function(e){return{coinInType:e.coinIn.coinType,coinOutType:e.coinOut.coinType,amountOut:e.amountOut.toString(),tradePaths:a(e.routes)}}}(flowx_aggregator_converter_FlowXAggregatorConverter||(flowx_aggregator_converter_FlowXAggregatorConverter={}));class flowx_FlowXAggregator{_config;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}getCommission(e,t){let o,a;return t?(o=t.tradeFeePercent,a=t.tradeFeeRecipientAddress):(o=this._config.defaultTradeFee.tradeFeePercent,a=this._config.defaultTradeFee.tradeFeeRecipientAddress),new sdk_namespaceObject.Commission(a,new sdk_namespaceObject.Coin(e),sdk_namespaceObject.CommissionType.PERCENTAGE,getInputPercent(o),!0)}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:a,metaAggregator:r,supportedProtocols:n}){let _=new sdk_namespaceObject.AggregatorQuoter("mainnet",this._config.flowxApiKey),i=n??(r?flowx_aggregator_converter_FlowXAggregatorConverter.SUPPORTED_PROTOCOLS:void 0);try{return await _.getRoutes({tokenIn:t,tokenOut:o,amountIn:e.toString(),commission:this.getCommission(t,a),includeSources:i})}catch(e){return null}}async getTransaction({walletAddress:e,completeRoute:t,slippage:o,tradeFee:a}){return new sdk_namespaceObject.TradeBuilder("mainnet",t.routes).sender(e).slippage(getInputPercent(o)).commission(this.getCommission(t.coinIn.coinType,a)).build().buildTransaction({client:this._suiClient}).then(t=>(t.setSender(e),t.build({client:this._suiClient})))}}async function getMoveObjectContent(e,t){return(await getMoveObject(e,t)).fields}async function getMoveObject(e,t){let o=await e.getObject({id:t,options:{showContent:!0}}),a=o.data?.content;return tiny_invariant_default()(a,"Pool object not found or has no content"),tiny_invariant_default()("moveObject"===a.dataType,"Object is not a Move object"),a}!function(e){e.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}}}(flowx_FlowXAggregator||(flowx_FlowXAggregator={})),function(e){e.PACKAGE_ID_V4="0x7e6aa6e179466ab2814425a780b122575296d011119fa69d27f289f5a28814bd",e.MEMEZ_AV_OBJECT_ID="0x2319e3e76dfad73d8f4684bdbf42be4f32d8ce4521dd61becc8261dc918d82c0"}(constants_BlastFunConstants||(constants_BlastFunConstants={}));const BASE_BPS=1e4;function getSplitCoinsAfterFee(e,t){let o=BigInt(e),a=BigInt(1e4*Number(t));if(a===BigInt(0))return[o.toString()];let r=o*a/BigInt(1e4);return[(o-r).toString(),r.toString()]}function getAmountAfterFee(e,t){if(!t||0>=Number(t))return BigInt(e);let o=BigInt(e),a=BigInt(1e4*Number(t));if(a===BigInt(0))return o;let r=o*a/BigInt(1e4);return o-r}async function getNeededGasFee(e,t,o,a){let{effects:{gasUsed:r,status:n}}=await e.devInspectTransactionBlock({sender:o,transactionBlock:t});if("success"!==n.status)throw Error(`Transaction failed during dev inspect: ${n.error??""}`);let _=BigInt(r.computationCost)+BigInt(r.storageCost)-BigInt(r.storageRebate),i=BigInt(1e4*Number(a));return _*(BigInt(1e4)+i)/BigInt(1e4)}!function(e){(e.U64||(e.U64={})).mulDivUp=function(e,t,o){let a=BigInt(0);return e*t%o>BigInt(0)&&(a=BigInt(1)),e*t/o+a}}(package_MathUtils||(package_MathUtils={})),function(e){function t(e){return tiny_invariant_default()(BigInt(e)<=BigInt(1e4),"Bps overflow"),BigInt(e)}e.calcUp=function(e,t){let o,a=BigInt(e.pos0),r=BigInt(1e4);return o=a*t%r!==BigInt(0)?BigInt(1):BigInt(0),a*t/r+o},e.sub=function(e,t){return tiny_invariant_default()(BigInt(e.pos0)>=BigInt(t.pos0),"Bps underflow"),{pos0:(BigInt(e.pos0)-BigInt(t.pos0)).toString()}},e.value=function(e){return BigInt(e.pos0)},e.new_=function(e){return{pos0:t(e).toString()}},e.assertOverflow=t}(package_Bps||(package_Bps={})),function(e){var t,o;(e.MemezFun||(e.MemezFun={})).isSniperProtectedMemezFun=async function(e,t){return(await getMoveObjectContent(e,t)).public_key.length>0},(t=e.MemezFees||(e.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 a=e.fields.pos0.fields;if(BigInt(a.pos0)===BigInt(0))return BigInt(0);let r=package_Bps.calcUp(package_Bps.sub(a,o),t);if(t>=r)return r;throw Error(`Insufficient amount to cover fee. Required: ${r}, provided: ${t}`)}throw Error("Unknown fee variant")},t.calculateWithDiscount=function(e,t,o){if("Value"===e.variant)return BigInt(e.fields.pos0);if("Percentage"===e.variant){let a=e.fields.pos0.fields;return package_Bps.calcUp(package_Bps.sub(a,t),o)}throw Error("Unknown fee variant")},(e.MemezBurner||(e.MemezBurner={})).calculate=function(e,t){if(package_Bps.value(e.fee.fields)===BigInt(0)||t===BigInt(0)||t>=BigInt(e.target_liquidity))return package_Bps.new_(0);let o=BigInt(1e4);return package_Bps.new_(package_MathUtils.U64.mulDivUp(package_Bps.value(e.fee.fields),package_MathUtils.U64.mulDivUp(t,o,BigInt(e.target_liquidity)),o))},(o=e.MemezPump||(e.MemezPump={})).getPumpState=async function(e,t){return await getMoveObjectContent(e,t.inner_state)},o.pump=function(t,o){let a=t.constant_product.fields,r=e.MemezFees.takeWithDiscount(a.quote_swap_fee,o,a.quote_referrer_fee.fields),n=o-r,_=BigInt(a.meme_balance),i=BigInt(a.quote_balance),s=_*n/(BigInt(a.virtual_liquidity)+i+n),c=e.MemezFees.takeWithDiscount(a.meme_swap_fee,s,a.meme_referrer_fee.fields);return s-c},o.dump=function(t,o){let a=t.constant_product.fields,r=e.MemezFees.takeWithDiscount(a.meme_swap_fee,o,a.meme_referrer_fee.fields),n=o-r,_=BigInt(a.meme_balance),i=BigInt(a.quote_balance),s=BigInt(a.virtual_liquidity),c=e.MemezBurner.calculate(a.burner.fields,i),l=package_Bps.calcUp(c,n),u=n-(package_Bps.value(c)!==BigInt(0)?l:BigInt(0)),p=(s+i)*u/(_+u);p>i&&(p=i);let m=e.MemezFees.takeWithDiscount(a.quote_swap_fee,p,a.quote_referrer_fee.fields);return p-m}}(package_BlastFunPackage||(package_BlastFunPackage={})),function(e){e.getCurveAmountAfterBuy=async function(e,t){let{suiAmount:o,poolId:a,frontendFee:r}=e,n=await getMoveObjectContent(t,a),_=await package_BlastFunPackage.MemezPump.getPumpState(t,n);return o=getAmountAfterFee(o,r),package_BlastFunPackage.MemezPump.pump(_,o)},e.getSuiAmountAfterSell=async function(e,t){let{curveAmount:o,poolId:a,frontendFee:r}=e,n=await getMoveObjectContent(t,a),_=await package_BlastFunPackage.MemezPump.getPumpState(t,n);return getAmountAfterFee(package_BlastFunPackage.MemezPump.dump(_,o),r)}}(custom_calculation_BlastFunCustomCalculation||(custom_calculation_BlastFunCustomCalculation={}));const orderByKey=(e,t,o)=>{let a;if(e?.length){do{a=!1;for(let r=0;r<e.length-1;r++){let n=BigInt(e[r][t]),_=BigInt(e[r+1][t]);if("desc"===o?n<_:n>_){let t=e[r];e[r]=e[r+1],e[r+1]=t,a=!0}}}while(a);return e}},getCoinObjectIdsByAmount=async(e,t,o,a)=>{let r,n=[],_=!0;for(;_;)try{let o=await e.getCoins({owner:t,coinType:a,cursor:r});n=[...n,...o.data],_=o.hasNextPage,r=o.nextCursor}catch(e){console.error("Error fetching data:",e),_=!1}let i=orderByKey(n.map(e=>({...e,balance:e.balance})),"balance","desc")??[],s="0",c=[],l=[];for(let e of i)if(s=(BigInt(e.balance)+BigInt(s)).toString(10),c.push(e.coinObjectId),l.push(e),BigInt(s)>=BigInt(o))break;return{objectIds:c,balance:s,objectCoins:l}};async function getSplitCoinForTx(e,t){let{account:o,amount:a,splits:r,coinType:n,inheritTx:_,inspecTransaction:i,isSponsored:s=!1}=e,c=_??new transactions_namespaceObject.Transaction,{objectIds:l,balance:u}=await getCoinObjectIdsByAmount(t,o,a,n);if(BigInt(u)<BigInt(a))throw Error(`Insufficient balance for type ${n}. Required: ${a}, Available: ${u}`);if(0===l.length)throw Error(`No coins found for type ${n} with sufficient balance. Required: ${a}`);let p=l[0];if((0,utils_namespaceObject.normalizeStructTag)(n)===(0,utils_namespaceObject.normalizeStructTag)(SUI_FULL_TYPE)&&!s){let e;return i?(l.length>1&&c.mergeCoins(c.object(p),l.slice(1).map(e=>c.object(e))),e=c.splitCoins(c.object(p),r)):e=c.splitCoins(c.gas,r),{tx:c,coinData:e}}l.length>1&&c.mergeCoins(c.object(p),l.slice(1).map(e=>c.object(e)));let m=c.splitCoins(c.object(p),r);return{tx:c,coinData:m}}const BLUEFIN_PACKAGE_ID="0x62412b7268c35f3808336aee57a52836501f40b8ba5d936f8ad275e672befd04";async function splitSuiCoinAfterFeeFromBuyTx(e,t){let o,a,{inputAmount:r,accountAddress:n,frontendFee:_,frontendFeeRecipient:i,extendTx:s,isSponsored:c}=e;tiny_invariant_default()(e.inCoinType===SUI_FULL_TYPE||e.inCoinType===SUI_TYPE,"Input must be SUI");let{tx:l,coinIn:u}=s||{},p=getSplitCoinsAfterFee(r,_||"0"),m=l||new transactions_namespaceObject.Transaction;if(u)o=m.splitCoins(u,p),bluefin_BluefinTx.transferOrDestroyZeroCoin(m,SUI_FULL_TYPE,u,n);else{let{coinData:e}=await getSplitCoinForTx({account:n,amount:r,splits:p,coinType:SUI_FULL_TYPE,inheritTx:m,isSponsored:c||!1},t);o=e}if(_&&i){let[e,t]=o;a=e,m.transferObjects([t],m.pure.address(i||n))}else[a]=o;return{tx:m,coinOut:a}}async function splitSuiCoinAfterFeeFromSellTx(e,t,o){if(tiny_invariant_default()(t.outCoinType===SUI_FULL_TYPE||t.outCoinType===SUI_TYPE,"Output must be SUI"),0>=Number(t.frontendFee||0))return{tx:e,coinOut:o};let a=e.moveCall({target:"0x2::coin::value",typeArguments:[t.outCoinType],arguments:[o]}),r=e.moveCall({target:`${BLUEFIN_PACKAGE_ID}::math::mul_div_u64`,typeArguments:[],arguments:[a,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,r]});return e.transferObjects([n],e.pure.address(t.frontendFeeRecipient||t.accountAddress)),{tx:e,coinOut:o}}!function(e){e.transferOrDestroyZeroCoin=function(e,t,o,a){e.moveCall({target:`${BLUEFIN_PACKAGE_ID}::utils::transfer_or_destroy`,typeArguments:[t],arguments:[o,e.pure.address(a)]})}}(bluefin_BluefinTx||(bluefin_BluefinTx={})),function(e){async function t(e){let t=e||new transactions_namespaceObject.Transaction;return t.moveCall({target:`${constants_BlastFunConstants.PACKAGE_ID_V4}::memez_allowed_versions::get_allowed_versions`,arguments:[t.object(constants_BlastFunConstants.MEMEZ_AV_OBJECT_ID)],typeArguments:[]})}e.getAllowedVersions=t,e.buildBuyTx=async function(e,o){tiny_invariant_default()(!await package_BlastFunPackage.MemezFun.isSniperProtectedMemezFun(o,e.poolId),"This coin is a sniper protected coin, please use the Blast Fun website to trade it.");let{tx:a,coinOut:r}=await splitSuiCoinAfterFeeFromBuyTx(e,o);tiny_invariant_default()(r,"Coin out is required");let n=a.moveCall({target:`${constants_BlastFunConstants.PACKAGE_ID_V4}::memez_pump::pump`,typeArguments:[e.outCoinType,SUI_FULL_TYPE],arguments:[a.object(e.poolId),r,a.pure.vector("address",[]),a.pure.vector("vector<u8>",[]),a.pure.u64(e.minAmountOut),await t(a)]});return{tx:a,coinOut:n}},e.buildSellTx=async function(e,o){tiny_invariant_default()(e.outCoinType===SUI_FULL_TYPE||e.outCoinType===SUI_TYPE,"Output must be SUI");let a=await getMoveObjectContent(o,e.poolId),{tx:r,coinData:n}=await getSplitCoinForTx({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},o),[_]=n,[i]=r.moveCall({target:`${constants_BlastFunConstants.PACKAGE_ID_V4}::memez_pump::dump`,typeArguments:[e.inCoinType,e.outCoinType],arguments:[r.object(e.poolId),r.object(a.ipx_meme_coin_treasury),_,r.pure.vector("address",[]),r.pure.u64(e.minAmountOut),await t(r)]});return await splitSuiCoinAfterFeeFromSellTx(r,e,i)}}(custom_transaction_BlastFunCustomTransaction||(custom_transaction_BlastFunCustomTransaction={}));const memez_fun_sdk_namespaceObject=require("@interest-protocol/memez-fun-sdk"),sui_core_sdk_namespaceObject=require("@interest-protocol/sui-core-sdk"),client_namespaceObject=require("@mysten/sui/client"),payload={network:sui_core_sdk_namespaceObject.Network.MAINNET,fullNodeUrl:(0,client_namespaceObject.getFullnodeUrl)("mainnet")},memezPump=new memez_fun_sdk_namespaceObject.MemezPumpSDK(payload);function getMemezPumpSDK(){return memezPump}async function addGasFee(e,t){let{inheritTx:o,sender:a,feeAmount:r,suiInputAmount:n}=e,_=o||new transactions_namespaceObject.Transaction;r>BigInt(0)&&_.setGasBudget(r);let{objectCoins:i}=await getCoinObjectIdsByAmount(t,a,(BigInt(n||"0")+r).toString(),SUI_FULL_TYPE);return _.setGasPayment(i.map(e=>({objectId:e.coinObjectId,version:e.version,digest:e.digest}))),_}!function(e){e.getCurveAmountAfterBuy=async function(e){let{suiAmount:t,poolId:o,frontendFee:a}=e;t=getAmountAfterFee(t,a);let{memeAmountOut:r}=await getMemezPumpSDK().quotePump({pool:o,amount:t});return r},e.getSuiAmountAfterSell=async function(e){let{curveAmount:t,poolId:o,frontendFee:a}=e,{quoteAmountOut:r}=await getMemezPumpSDK().quoteDump({pool:o,amount:t});return getAmountAfterFee(r,a)}}(sdk_calculation_BlastFunSDKCalculation||(sdk_calculation_BlastFunSDKCalculation={})),function(e){async function t(e,t){let{tx:o,coinOut:a}=await splitSuiCoinAfterFeeFromBuyTx(e,t);tiny_invariant_default()(a,"Coin out is required");let{memeCoin:r,tx:n}=await getMemezPumpSDK().pump({pool:e.poolId,quoteCoin:a,minAmountOut:e.minAmountOut,tx:o});return{tx:n,coinOut:r}}async function o(e,t){tiny_invariant_default()(isSuiCoinType(e.outCoinType),"Output must be SUI");let{tx:o,coinData:a}=await getSplitCoinForTx({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[r]=a,{quoteCoin:n,tx:_}=await getMemezPumpSDK().dump({pool:e.poolId,memeCoin:r,tx:o,minAmountOut:e.minAmountOut});return await splitSuiCoinAfterFeeFromSellTx(_,e,n)}e.buildBuyTx=t,e.buildSellTx=o,e.getBuyTransaction=async function({coinInAmount:e,coinInType:o,coinOutType:a,poolId:r,slippage:n,walletAddress:_,tradeFee:i},s){tiny_invariant_default()(isSuiCoinType(o),"coinInType must be SUI for buy transaction"),tiny_invariant_default()(a!==o,"coinOutType must be different from coinInType"),tiny_invariant_default()(n>=0&&n<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),tiny_invariant_default()(e>0,"coinInAmount must be greater than 0");let c=await sdk_calculation_BlastFunSDKCalculation.getCurveAmountAfterBuy({poolId:r,suiAmount:e,frontendFee:i?i.tradeFeePercent:void 0}),l=BigInt(new(external_bignumber_js_default())(c.toString()).multipliedBy(1-n).toFixed(0,3)),{tx:u,coinOut:p}=await t({accountAddress:_,inCoinType:o,outCoinType:a,inputAmount:e.toString(),minAmountOut:l.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},s);tiny_invariant_default()(p,"Coin out is required"),u.transferObjects([p],u.pure.address(_)),u.setSender(_);let m=await getNeededGasFee(s,u,_,0);return(u=await addGasFee({inheritTx:u,sender:_,feeAmount:m,suiInputAmount:e},s)).build({client:s})},e.getSellTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:a,poolId:r,slippage:n,walletAddress:_,tradeFee:i},s){tiny_invariant_default()(isSuiCoinType(a),"coinOutType must be SUI for sell transaction"),tiny_invariant_default()(a!==t,"coinOutType must be different from coinInType"),tiny_invariant_default()(n>=0&&n<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),tiny_invariant_default()(e>0,"coinInAmount must be greater than 0");let c=await sdk_calculation_BlastFunSDKCalculation.getSuiAmountAfterSell({poolId:r,curveAmount:e,frontendFee:i?i.tradeFeePercent:void 0}),l=BigInt(new(external_bignumber_js_default())(c.toString()).multipliedBy(1-n).toFixed(0,3)),{tx:u,coinOut:p}=await o({accountAddress:_,inCoinType:t,outCoinType:a,inputAmount:e.toString(),minAmountOut:l.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},s);tiny_invariant_default()(p,"Coin out is required"),u.transferObjects([p],u.pure.address(_)),u.setSender(_);let m=await getNeededGasFee(s,u,_,0);return(u=await addGasFee({inheritTx:u,sender:_,feeAmount:m},s)).build({client:s})}}(sdk_transaction_BlastFunSDKTransaction||(sdk_transaction_BlastFunSDKTransaction={}));var types_SupportedBondingCurve=function(e){return e.BLAST_FUN="BLAST_FUN",e.MOONBAGS="MOONBAGS",e}({});!function(e){e.PACKAGE_ID="0xb8df325010942634a4afb3db3901ee215546af43a4ec4af781e7213b0bba7290",e.CONFIG_OBJECT_ID="0x74aecf86067c6913960ba4925333aefd2b1f929cafca7e21fd55a8f244b70499",e.LOCK_CONFIG_OBJECT_ID="0xfb09822d9808980abd04c51321adb850701f5f55535c6206658ef4d910c3e9be",e.BURN_MANAGER_OBJECT_ID="0x1d94aa32518d0cb00f9de6ed60d450c9a2090761f326752ffad06b2e9404f845",e.POOLS_OBJECT_ID="0xf699e7f2276f5c9a75944b37a0c5b5d9ddfd2471bf6242483b03ab2887d198d0",e.GLOBAL_CONFIG_OBJECT_ID="0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f",e.FEE_DENOMINATOR=BigInt(1e4)}(constants_MoonbagsConstants||(constants_MoonbagsConstants={})),function(e){var t,o;(t=e.Curves||(e.Curves={})).calculateAddLiquidityCost=function(e,t,o){return e*t/(t-o)-e},t.calculateRemoveLiquidityReturn=function(e,t,o){return t-e*t/(e+o)},t.calculateTokenAmountReceived=function(e,t,o){return t-e*t/(e+o)},(o=e.Moonbags||(e.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)},o.buyExactInReturnsWithLock=function(t){let{inputAmount:o,amountIn:a,pool:r,config:n,dynamicVirtualTokenReserves:_}=t,i=BigInt(r.virtual_sui_reserves),s=BigInt(r.virtual_token_reserves),c=BigInt(r.remain_token_reserves.fields.balance),l=e.Curves.calculateRemoveLiquidityReturn(i,s,a),u=s-(_||c),p=l,m=a;l>u&&(p=u,m=e.Curves.calculateAddLiquidityCost(i,s,u)+BigInt(1));let d=m*BigInt(n.platform_fee)/constants_MoonbagsConstants.FEE_DENOMINATOR;return tiny_invariant_default()(o>=m+d,"Input amount is less than used SUI + fee"),{receivedCurve:p,receivedSui:o-m-d}},o.sellReturns=function(t){let{amountIn:o,pool:a,config:r}=t,n=BigInt(a.virtual_sui_reserves),_=BigInt(a.virtual_token_reserves),i=BigInt(a.real_sui_reserves.fields.balance),s=e.Curves.calculateRemoveLiquidityReturn(_,n,o);s>i&&(s=i);let c=s*BigInt(r.platform_fee)/constants_MoonbagsConstants.FEE_DENOMINATOR,l=s-c;return{receivedCurve:BigInt(0),receivedSui:l}}}(package_MoonbagsPackage||(package_MoonbagsPackage={})),function(e){e.getCurveAmountAfterBuy=async function(e,t){let{suiAmount:o,poolId:a,frontendFee:r}=e,[n,_,i]=await Promise.all([getMoveObjectContent(t,a),getMoveObjectContent(t,constants_MoonbagsConstants.CONFIG_OBJECT_ID),package_MoonbagsPackage.Moonbags.getDynamicVirtualTokenReserves(t,a)]);void 0!==r&&(o=getAmountAfterFee(o,r));let s=o*constants_MoonbagsConstants.FEE_DENOMINATOR/(constants_MoonbagsConstants.FEE_DENOMINATOR+BigInt(_.platform_fee)),{receivedCurve:c}=package_MoonbagsPackage.Moonbags.buyExactInReturnsWithLock({inputAmount:o,amountIn:s,pool:n,config:_,dynamicVirtualTokenReserves:i});return c},e.getSuiAmountAfterSell=async function(e,t){let{curveAmount:o,poolId:a,frontendFee:r}=e,[n,_]=await Promise.all([getMoveObjectContent(t,a),getMoveObjectContent(t,constants_MoonbagsConstants.CONFIG_OBJECT_ID)]),{receivedSui:i}=package_MoonbagsPackage.Moonbags.sellReturns({amountIn:o,pool:n,config:_});return void 0!==r?getAmountAfterFee(i,r):i},e.getUsedSuiForTx=async function(e,t){let{suiAmount:o,frontendFee:a}=e,r=await getMoveObjectContent(t,constants_MoonbagsConstants.CONFIG_OBJECT_ID);return void 0!==a&&(o=getAmountAfterFee(o,a)),o*constants_MoonbagsConstants.FEE_DENOMINATOR/(constants_MoonbagsConstants.FEE_DENOMINATOR+BigInt(r.platform_fee))}}(calculation_MoonbagsCalculation||(calculation_MoonbagsCalculation={})),function(e){async function t(e,t){let{tx:o,coinOut:a}=await splitSuiCoinAfterFeeFromBuyTx(e,t);tiny_invariant_default()(a,"Coin out is required");let r=await calculation_MoonbagsCalculation.getUsedSuiForTx({suiAmount:BigInt(e.inputAmount),frontendFee:e.frontendFee},t),[n,_]=o.moveCall({target:`${constants_MoonbagsConstants.PACKAGE_ID}::moonbags::buy_exact_in_returns_with_lock`,typeArguments:[e.outCoinType],arguments:[o.object(constants_MoonbagsConstants.CONFIG_OBJECT_ID),o.object(constants_MoonbagsConstants.LOCK_CONFIG_OBJECT_ID),a,o.pure.u64(r),o.pure.u64(e.minAmountOut),o.object(constants_MoonbagsConstants.BURN_MANAGER_OBJECT_ID),o.object(constants_MoonbagsConstants.POOLS_OBJECT_ID),o.object(constants_MoonbagsConstants.GLOBAL_CONFIG_OBJECT_ID),o.object(SUI_METADATA_OBJECT_ID),o.object(CLOCK_OBJECT_ID)]});return bluefin_BluefinTx.transferOrDestroyZeroCoin(o,SUI_FULL_TYPE,n,e.accountAddress),{tx:o,coinOut:_}}async function o(e,t){tiny_invariant_default()(isSuiCoinType(e.outCoinType),"Output must be SUI");let{tx:o,coinData:a}=await getSplitCoinForTx({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[r]=a,[n,_]=o.moveCall({target:`${constants_MoonbagsConstants.PACKAGE_ID}::moonbags::sell_returns`,typeArguments:[e.inCoinType],arguments:[o.object(constants_MoonbagsConstants.CONFIG_OBJECT_ID),r,o.pure.u64(e.minAmountOut),o.object(CLOCK_OBJECT_ID)]});return bluefin_BluefinTx.transferOrDestroyZeroCoin(o,e.inCoinType,_,e.accountAddress),await splitSuiCoinAfterFeeFromSellTx(o,e,n)}e.buildBuyTx=t,e.buildSellTx=o,e.getBuyTransaction=async function({coinInAmount:e,coinInType:o,coinOutType:a,poolId:r,slippage:n,walletAddress:_,tradeFee:i},s){tiny_invariant_default()(isSuiCoinType(o),"coinInType must be SUI for buy transaction"),tiny_invariant_default()(a!==o,"coinOutType must be different from coinInType"),tiny_invariant_default()(n>=0&&n<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),tiny_invariant_default()(e>0,"coinInAmount must be greater than 0");let c=await calculation_MoonbagsCalculation.getCurveAmountAfterBuy({poolId:r,suiAmount:e,frontendFee:i?i.tradeFeePercent:void 0},s),l=BigInt(new(external_bignumber_js_default())(c.toString()).multipliedBy(1-n).toFixed(0,3)),{tx:u,coinOut:p}=await t({accountAddress:_,inCoinType:o,outCoinType:a,inputAmount:e.toString(),minAmountOut:l.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},s);tiny_invariant_default()(p,"Coin out is required"),u.transferObjects([p],u.pure.address(_)),u.setSender(_);let m=await getNeededGasFee(s,u,_,0);return(u=await addGasFee({inheritTx:u,sender:_,feeAmount:m,suiInputAmount:e},s)).build({client:s})},e.getSellTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:a,poolId:r,slippage:n,walletAddress:_,tradeFee:i},s){tiny_invariant_default()(isSuiCoinType(a),"coinOutType must be SUI for sell transaction"),tiny_invariant_default()(a!==t,"coinOutType must be different from coinInType"),tiny_invariant_default()(n>=0&&n<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),tiny_invariant_default()(e>0,"coinInAmount must be greater than 0");let c=await calculation_MoonbagsCalculation.getSuiAmountAfterSell({poolId:r,curveAmount:e,frontendFee:i?i.tradeFeePercent:void 0},s),l=BigInt(new(external_bignumber_js_default())(c.toString()).multipliedBy(1-n).toFixed(0,3)),{tx:u,coinOut:p}=await o({accountAddress:_,inCoinType:t,outCoinType:a,inputAmount:e.toString(),minAmountOut:l.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},s);tiny_invariant_default()(p,"Coin out is required"),u.transferObjects([p],u.pure.address(_)),u.setSender(_);let m=await getNeededGasFee(s,u,_,0);return(u=await addGasFee({inheritTx:u,sender:_,feeAmount:m},s)).build({client:s})}}(transaction_MoonbagsTransaction||(transaction_MoonbagsTransaction={}));const pyth_sui_js_namespaceObject=require("@pythnetwork/pyth-sui-js");function adaptSuiClient(e){return e}function adaptTransaction(e){return e}function createCompatibleSuiClient(e){return new Proxy(e,{get(e,t){let o=e[t];return"function"==typeof o?o.bind(e):o}})}!function(e){e.LAST_PACKAGE_ID="0x8c36ea167c5e6da8c3d60b4fc897416105dcb986471bd81cfbfd38720a4487c0",e.newHolder=function(t){return t.moveCall({target:`${e.LAST_PACKAGE_ID}::oracle::new_holder`,typeArguments:[],arguments:[]})},e.getPrice=function(t){let{txb:o,coinOracleId:a,holder:r,coinPriceId:n}=t;o.moveCall({target:`${e.LAST_PACKAGE_ID}::pyth::get_price`,typeArguments:[],arguments:[o.object(a),r,o.object(n),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(pyth_PythPrice||(pyth_PythPrice={})),function(e){e.PYTH_URLS=["https://hermes.pyth.network"],e.WORMHOLE_STATE_ID="0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",e.PYTH_STATE_ID="0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",e.newPythConnections=function(t){return t||(t=e.PYTH_URLS),t.map(e=>new pyth_sui_js_namespaceObject.SuiPriceServiceConnection(e,{timeout:3e3}))},e.newPythClient=function(t){return t||(t=new client_namespaceObject.SuiClient({url:"https://fullnode.mainnet.sui.io:443"})),new pyth_sui_js_namespaceObject.SuiPythClient(t,e.PYTH_STATE_ID,e.WORMHOLE_STATE_ID)},e.updatePythPriceIDs=async function(e){let{priceFeedIds:t,txb:o,pythConnections:a,pythClient:r}=e;if(0===t.length)return new Map;let n=null,_=null;for(let e of a)try{n=await e.getPriceFeedsUpdateData(t);break}catch(e){_=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: ${_?.message}`);let i=[];try{i=await r.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],i[e]);return s}}(pyth_PythUtils||(pyth_PythUtils={})),function(e){e.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"}(aftermath_cpmm_AftermathCpmm||(aftermath_cpmm_AftermathCpmm={})),function(e){e.LAST_PACKAGE_ID="0xf369250dc5a17e9d5a84a3b0cf5aea715c0682170e726dd601f03ade7ce4decb",e.swap=function(t){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.AFTERMATH_CPMM);let{txb:o,swapContext:a,poolId:r,aToB:n,amountIn:_,coinAType:i,coinBType:s,coinLpType:c,packageId:l}=t;o.moveCall({target:`${l??e.LAST_PACKAGE_ID}::aftermath_cpmm_router::swap`,typeArguments:[i,s,c],arguments:[a,o.object(r),o.object(aftermath_cpmm_AftermathCpmm.POOL_REGISTRY_OBJ_ID),o.object(aftermath_cpmm_AftermathCpmm.PROTOCOL_FEE_VAULT_OBJ_ID),o.object(aftermath_cpmm_AftermathCpmm.TREASURY_OBJ_ID),o.object(aftermath_cpmm_AftermathCpmm.INSURANCE_FUND_OBJ_ID),o.object(aftermath_cpmm_AftermathCpmm.REFERRAL_VAULT_OBJ_ID),o.pure.bool(n),o.pure.u64(_)]})}}(aftermath_cpmm_router_AftermathCpmmRouter||(aftermath_cpmm_router_AftermathCpmmRouter={})),function(e){e.STAKED_SUI_VAULT_OBJ_ID="0x2f8f6d5da7f13ea37daa397724280483ed062769813b6f31e9788e59cc88994d",e.SAFE_TREASURY_OBJECT_ID="0xeb685899830dd5837b47007809c76d91a098d52aabbf61e8ac467c59e5cc4610",e.REFERRAL_VAULT_OBJ_ID="0x4ce9a19b594599536c53edb25d22532f82f18038dc8ef618afd00fbbfb9845ef",e.VALIDATOR_ADDRESS="0xd30018ec3f5ff1a3c75656abf927a87d7f0529e6dc89c7ddd1bd27ecb05e3db2"}(aftermath_lsd_AftermathLsd||(aftermath_lsd_AftermathLsd={})),function(e){e.LAST_PACKAGE_ID="0x148c4e7ff5b308b2d520e050e6a21d986dd3eb203e0aa3eaaba28000977aebf1",e.swap=function(t){let{txb:o,swapContext:a,aToB:r,amountIn:n,packageId:_}=t;if(!r)throw Error("AFSUI not support bToA swap");o.moveCall({target:`${_??e.LAST_PACKAGE_ID}::aftermath_lsd_router::swap`,arguments:[a,o.object(aftermath_lsd_AftermathLsd.STAKED_SUI_VAULT_OBJ_ID),o.object(aftermath_lsd_AftermathLsd.SAFE_TREASURY_OBJECT_ID),o.object(utils_namespaceObject.SUI_SYSTEM_STATE_OBJECT_ID),o.object(aftermath_lsd_AftermathLsd.REFERRAL_VAULT_OBJ_ID),o.pure.address(aftermath_lsd_AftermathLsd.VALIDATOR_ADDRESS),o.pure.bool(r),o.pure.u64(n)]})}}(aftermath_lsd_router_AftermathLsdRouter||(aftermath_lsd_router_AftermathLsdRouter={})),function(e){e.LAST_PACKAGE_ID="0x108d5d07cf873dec0bc8034db862db55d38e495c1f3ee0e124cf4861af834f25",e.swap=function(t){let{txb:o,swapContext:a,poolId:r,amountIn:n,aToB:_,coinBType:i,packageId:s}=t;o.moveCall({target:`${s??e.LAST_PACKAGE_ID}::alphafi_lsd_router::swap`,typeArguments:[i],arguments:[a,o.object(r),o.object(utils_namespaceObject.SUI_SYSTEM_STATE_OBJECT_ID),o.pure.bool(_),o.pure.u64(n)]})}}(alphafi_lsd_router_AlphafiLsdRouter||(alphafi_lsd_router_AlphafiLsdRouter={})),function(e){e.MEMEZ_AV_OBJ_ID="0x2319e3e76dfad73d8f4684bdbf42be4f32d8ce4521dd61becc8261dc918d82c0",e.MEMEZ_FUN_OBJ_ID="0x943948644f06942b8b660ca541b10a05f6a7be23ce4069944a3665e7e698930d",e.IPX_TREASURY_STANDARD_OBJ_ID="0x051e11b667659192917db94e5175fa066909d4dfc04d2663528f499c4afc6999"}(blastfun_Blastfun||(blastfun_Blastfun={})),function(e){e.LAST_PACKAGE_ID="0x8b1e84ed9bc79d31160600254d65810f6bc6d2352f174a60ed041017d0a2a87a",e.swap=function(t){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.BLASTFUN,"Invalid protocol");let{txb:o,swapContext:a,coinAType:r,coinBType:n,aToB:_,amountIn:i,packageId:s}=t;o.moveCall({target:`${s??e.LAST_PACKAGE_ID}::blastfun_router::swap`,typeArguments:[r,n],arguments:[a,o.object(blastfun_Blastfun.MEMEZ_FUN_OBJ_ID),o.object(blastfun_Blastfun.IPX_TREASURY_STANDARD_OBJ_ID),o.object(blastfun_Blastfun.MEMEZ_AV_OBJ_ID),o.pure.bool(_),o.pure.u64(i)]})}}(blastfun_router_BlastfunRouter||(blastfun_router_BlastfunRouter={})),function(e){e.GLOBAL_CONFIG_OBJ_ID="0x03db251ba509a8d5d8777b6338836082335d93eecbdd09a11e190a1cff51c352"}(bluefin_clmm_BluefinClmm||(bluefin_clmm_BluefinClmm={})),function(e){e.LAST_PACKAGE_ID="0x9f8397124b6bdb55aeb7b5e43761e0e4dc94b9e22e94b1b25d8211d99df422d5",e.swap=function(t){let{txb:o,swapContext:a,poolId:r,amountIn:n,aToB:_,coinAType:i,coinBType:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::bluefin_clmm_router::swap`,typeArguments:[i,s],arguments:[a,o.object(bluefin_clmm_BluefinClmm.GLOBAL_CONFIG_OBJ_ID),o.object(r),o.pure.bool(_),o.pure.u64(n),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(bluefin_clmm_router_BluefinClmmRouter||(bluefin_clmm_router_BluefinClmmRouter={})),function(e){e.DEX_INFO_OBJ_ID="0x3f2d9f724f4a1ce5e71676448dc452be9a6243dac9c5b975a588c8c867066e92"}(bluemove_cpmm_BluemoveCpmm||(bluemove_cpmm_BluemoveCpmm={})),function(e){e.LAST_PACKAGE_ID="0xf52bdd65ee347e8994170f8c331cf0c23a55281b3282467f14ccbb3e2a7f928f",e.swap=function(t){let{txb:o,swapContext:a,aToB:r,amountIn:n,coinAType:_,coinBType:i,packageId:s}=t;o.moveCall({target:`${s??e.LAST_PACKAGE_ID}::bluemove_cpmm_router::swap`,typeArguments:[_,i],arguments:[a,o.object(bluemove_cpmm_BluemoveCpmm.DEX_INFO_OBJ_ID),o.pure.bool(r),o.pure.u64(n)]})}}(bluemove_cpmm_router_BluemoveCpmmRouter||(bluemove_cpmm_router_BluemoveCpmmRouter={})),function(e){e.ORACLE_OBJ_ID="0xfa3975b98f3d0e3df18ed88ae6e69db31836b3f4212df02fae144b1e5a89ca8e"}(bolt_Bolt||(bolt_Bolt={})),function(e){e.LAST_PACKAGE_ID="0xfb4f0f6fe3ddc4253e05d0e147556ea7941300c7db4262d1a5993eb20a6cbdb3",e.swap=function(t){let{txb:o,swapContext:a,poolId:r,coinAType:n,coinBType:_,aToB:i,amountIn:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::bolt_router::swap`,typeArguments:[n,_],arguments:[a,o.object(r),o.object(bolt_Bolt.ORACLE_OBJ_ID),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID),o.pure.u64(s),o.pure.bool(i)]})}}(bolt_router_BoltRouter||(bolt_router_BoltRouter={})),function(e){e.GLOBAL_CONFIG="0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f"}(cetus_clmm_CetusClmm||(cetus_clmm_CetusClmm={})),function(e){e.LAST_PACKAGE_ID="0xb3dbb229464cb14b9f8cfa087e5b162623c8f485395dc9b975e263a5ee7051e4",e.swap=function(t){let{txb:o,swapContext:a,coinAType:r,coinBType:n,poolId:_,aToB:i,amountIn:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::cetus_clmm_router::swap`,typeArguments:[r,n],arguments:[a,o.object(cetus_clmm_CetusClmm.GLOBAL_CONFIG),o.object(_),o.pure.bool(i),o.pure.u64(s),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(cetus_clmm_router_CetusClmmRouter||(cetus_clmm_router_CetusClmmRouter={})),function(e){e.GLOBAL_CONFIG_OBJ_ID="0xf31b605d117f959b9730e8c07b08b856cb05143c5e81d5751c90d2979e82f599",e.VERSIONED_OBJ_ID="0x05370b2d656612dd5759cbe80463de301e3b94a921dfc72dd9daa2ecdeb2d0a8"}(cetus_dlmm_CetusDlmm||(cetus_dlmm_CetusDlmm={})),function(e){e.LAST_PACKAGE_ID="0x9ab3ba62b4327a7d90e4aed1c025b62736f035911ad7bab830c065ec84ef1ffa",e.swap=function(t){let{txb:o,swapContext:a,poolId:r,amountIn:n,aToB:_,coinAType:i,coinBType:s,packageId:c}=t,l=[a,o.object(cetus_dlmm_CetusDlmm.GLOBAL_CONFIG_OBJ_ID),o.object(cetus_dlmm_CetusDlmm.VERSIONED_OBJ_ID),o.object(r),o.pure.bool(_),o.pure.u64(n),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)];o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::cetus_dlmm_router::swap`,typeArguments:[i,s],arguments:l})}}(cetus_dlmm_router_CetusDlmmRouter||(cetus_dlmm_router_CetusDlmmRouter={})),function(e){e.GLOBAL_CONFIG="0x699d455ab8c5e02075b4345ea1f91be55bf46064ae6026cc2528e701ce3ac135",e.DEEP_TYPE="0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP"}(deepbook_v3_DeepbookV3||(deepbook_v3_DeepbookV3={})),function(e){e.LAST_PACKAGE_ID="0xbc23dacd6f66386e4a512eef1f3b0ccaad8e7d24eac7432d67737b22f661a810",e.swap=function(t){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.DEEPBOOK_V3,"Invalid protocol");let{txb:o,swapContext:a,coinAType:r,coinBType:n,poolId:_,aToB:i,amountIn:s,deepFeeCoin:c,packageId:l}=t,u=c||o.moveCall({target:"0x2::coin::zero",typeArguments:[deepbook_v3_DeepbookV3.DEEP_TYPE]});o.moveCall({target:`${l??e.LAST_PACKAGE_ID}::deepbook_v3_router::swap`,typeArguments:[r,n],arguments:[a,o.object(deepbook_v3_DeepbookV3.GLOBAL_CONFIG),o.object(_),o.pure.u64(s),o.pure.bool(i),u,o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(deepbook_v3_router_DeepbookV3Router||(deepbook_v3_router_DeepbookV3Router={})),function(e){e.GLOBAL_OBJ_ID="0x935229a3c32399e9fb207ec8461a54f56c6af5744c64442435ac217ab28f0d59"}(dip_cpmm_DipCpmm||(dip_cpmm_DipCpmm={})),function(e){e.LAST_PACKAGE_ID="0xfd86c0308327eae31c04560460ee6190220e4ae1cdf5b999eef1110bf0b0f2b8",e.swap=function(t){let{txb:o,swapContext:a,poolId:r,coinAType:n,coinBType:_,aToB:i,amountIn:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::dip_cpmm_router::swap`,typeArguments:[n,_],arguments:[a,o.object(dip_cpmm_DipCpmm.GLOBAL_OBJ_ID),o.object(r),o.pure.bool(i),o.pure.u64(s)]})}}(dip_cpmm_router_DipCpmmRouter||(dip_cpmm_router_DipCpmmRouter={})),function(e){e.FERRA_GLOBAL_CONFIG_ID="0x2cd8382c19e6994f16df204e9b8cddd04bdc486c251de75ac66ac4e48e3e7081"}(ferra_clmm_FerraClmm||(ferra_clmm_FerraClmm={})),function(e){e.LAST_PACKAGE_ID="0x70c4318f67d88ebe4e83bacad15f9e2f5c8becd77695f63dc4bd9393730851cd",e.swap=function(t){let{txb:o,swapContext:a,poolId:r,aToB:n,amountIn:_,coinAType:i,coinBType:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::ferra_clmm_router::swap`,typeArguments:[i,s],arguments:[a,o.object(ferra_clmm_FerraClmm.FERRA_GLOBAL_CONFIG_ID),o.object(r),o.pure.bool(n),o.pure.u64(_),o.object("0x6")]})}}(ferra_clmm_router_FerraClmmRouter||(ferra_clmm_router_FerraClmmRouter={})),function(e){e.FERRA_GLOBAL_CONFIG_ID="0x5c9dacf5a678ea15b8569d65960330307e23d429289ca380e665b1aa175ebeca"}(ferra_dlmm_FerraDlmm||(ferra_dlmm_FerraDlmm={})),function(e){e.LAST_PACKAGE_ID="0x686e9eb19b04d46374c3fb82cb4ebb7b24ef8a9ae13f403915f4ae347e0f6593",e.swap=function(t){let{txb:o,swapContext:a,poolId:r,aToB:n,amountIn:_,coinAType:i,coinBType:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::ferra_dlmm_router::swap`,typeArguments:[i,s],arguments:[a,o.object(ferra_dlmm_FerraDlmm.FERRA_GLOBAL_CONFIG_ID),o.object(r),o.pure.bool(n),o.pure.u64(_),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(ferra_dlmm_router_FerraDlmmRouter||(ferra_dlmm_router_FerraDlmmRouter={})),function(e){e.POOL_REGISTRY_OBJ_ID="0x27565d24a4cd51127ac90e4074a841bbe356cca7bf5759ddc14a975be1632abc",e.VERSIONED_OBJ_ID="0x67624a1533b5aff5d0dfcf5e598684350efd38134d2d245f475524c03a64e656"}(flowx_clmm_FlowxClmm||(flowx_clmm_FlowxClmm={})),function(e){e.LAST_PACKAGE_ID="0x350a752d3388165e578cc33a39655a6da83613cf4e58c8d9d0723711c2603e17",e.swap=function(t){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.FLOWX_CLMM);let{txb:o,swapContext:a,coinAType:r,coinBType:n,poolFeeRate:_,amountIn:i,aToB:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::flowx_clmm_router::swap`,typeArguments:[r,n],arguments:[a,o.object(flowx_clmm_FlowxClmm.POOL_REGISTRY_OBJ_ID),o.object(flowx_clmm_FlowxClmm.VERSIONED_OBJ_ID),o.pure.u64(_),o.pure.u64(i),o.pure.bool(s),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(flowx_clmm_router_FlowxClmmRouter||(flowx_clmm_router_FlowxClmmRouter={})),function(e){e.CONTAINER_OBJ_ID="0xb65dcbf63fd3ad5d0ebfbf334780dc9f785eff38a4459e37ab08fa79576ee511"}(flowx_cpmm_FlowxCpmm||(flowx_cpmm_FlowxCpmm={})),function(e){e.LAST_PACKAGE_ID="0xd95b440ad340bb6cbf571897d312e43d4b6de37b60c69ef714c94b9835cb8866",e.swap=function(t){let{txb:o,swapContext:a,coinAType:r,coinBType:n,aToB:_,amountIn:i,packageId:s}=t;o.moveCall({target:`${s??e.LAST_PACKAGE_ID}::flowx_cpmm_router::swap`,typeArguments:[r,n],arguments:[a,o.object(flowx_cpmm_FlowxCpmm.CONTAINER_OBJ_ID),o.pure.bool(_),o.pure.u64(i)]})}}(flowx_cpmm_router_FlowxCpmmRouter||(flowx_cpmm_router_FlowxCpmmRouter={})),function(e){e.GLOBAL_CONFIG_OBJ_ID="0xe93baa80cb570b3a494cbf0621b2ba96bc993926d34dc92508c9446f9a05d615",e.REWARDER_VAULT_OBJ_ID="0xfb971d3a2fb98bde74e1c30ba15a3d8bef60a02789e59ae0b91660aeed3e64e1",e.STATS_OBJ_ID="0x6822a33d1d971e040c32f7cc74507010d1fe786f7d06ab89135083ddb07d2dc2",e.PRICE_PROVIDER_OBJ_ID="0x854b2d2c0381bb656ec962f8b443eb082654384cf97885359d1956c7d76e33c9"}(fullsail_clmm_FullsailClmm||(fullsail_clmm_FullsailClmm={})),function(e){e.LAST_PACKAGE_ID="0xf0bf13b5baaf3d368f165e846b919294bed79a3ab3ab0c9bd1e75f23533e44a5",e.swap=function(t){let{txb:o,swapContext:a,poolId:r,coinAType:n,coinBType:_,aToB:i,amountIn:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::fullsail_clmm_router::swap`,typeArguments:[n,_],arguments:[a,o.object(fullsail_clmm_FullsailClmm.GLOBAL_CONFIG_OBJ_ID),o.object(fullsail_clmm_FullsailClmm.REWARDER_VAULT_OBJ_ID),o.object(fullsail_clmm_FullsailClmm.STATS_OBJ_ID),o.object(fullsail_clmm_FullsailClmm.PRICE_PROVIDER_OBJ_ID),o.object(r),o.pure.bool(i),o.pure.u64(s),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(fullsail_clmm_router_FullsailClmmRouter||(fullsail_clmm_router_FullsailClmmRouter={})),function(e){e.LAST_PACKAGE_ID="0x8969ed3e56c1dbdaf9df52f812d69c6c45fe5a4bab7093c88f5a8697a409398e",e.swap=function(t){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.HAEDAL_CPMM);let{txb:o,swapContext:a,poolId:r,coinAType:n,coinBType:_,aToB:i,amountIn:s,pythPriceFeedIdA:c,pythPriceFeedIdB:l,pythInfoObjectIdMap:u,packageId:p}=t,m=u.get(c),d=u.get(l);tiny_invariant_default()(m,"Not found priceInfoAId in pythObjectIdMap"),tiny_invariant_default()(d,"Not found priceInfoBId in pythObjectIdMap"),o.moveCall({target:`${p??e.LAST_PACKAGE_ID}::haedal_cpmm_router::swap`,typeArguments:[n,_],arguments:[a,o.object(r),o.object(m),o.object(d),o.pure.u64(s),o.pure.bool(i),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(haedal_cpmm_router_HaedalCpmmRouter||(haedal_cpmm_router_HaedalCpmmRouter={})),function(e){e.LAST_PACKAGE_ID="0x5d01f22e5471a5912a88e15d62fdcb922beba65b8e8dfe1a715aebf743194f4a",e.swap=function(t){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.HAEDAL_CPMM_V2);let{txb:o,swapContext:a,poolId:r,coinAType:n,coinBType:_,aToB:i,amountIn:s,pythPriceFeedIdBase:c,pythInfoObjectIdMap:l,packageId:u}=t,p=l.get(c);tiny_invariant_default()(p,"Not found pythPriceBaseId in pythObjectIdMap"),o.moveCall({target:`${u??e.LAST_PACKAGE_ID}::haedal_cpmm_v2_router::swap`,typeArguments:[n,_],arguments:[a,o.object(r),o.object(p),o.pure.u64(s),o.pure.bool(i),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(haedal_cpmm_v2_router_HaedalCpmmV2Router||(haedal_cpmm_v2_router_HaedalCpmmV2Router={})),function(e){e.LAST_PACKAGE_ID="0x1644956086caa5eb791eba152f3b69ba862b3a5382ef0e1d8a474ab158aafa1a",e.swap=function(t){let{txb:o,swapContext:a,aToB:r,amountIn:n,poolId:_,packageId:i}=t;o.moveCall({target:`${i??e.LAST_PACKAGE_ID}::haedal_lsd_router::swap`,arguments:[a,o.object(_),o.object(utils_namespaceObject.SUI_SYSTEM_STATE_OBJECT_ID),o.pure.bool(r),o.pure.u64(n)]})}}(haedal_lsd_router_HaedalLsdRouter||(haedal_lsd_router_HaedalLsdRouter={})),function(e){e.STAKING_OBJ_ID="0x10b9d30c28448939ce6c4d6c6e0ffce4a7f8a4ada8248bdad09ef8b70e4a3904"}(walrus_Walrus||(walrus_Walrus={})),function(e){e.VALIDATOR_ID="0x7b3ba6de2ae58283f60d5b8dc04bb9e90e4796b3b2e0dea75569f491275242e7"}(haedal_lsd_wal_HaedalLsdWal||(haedal_lsd_wal_HaedalLsdWal={})),function(e){e.LAST_PACKAGE_ID="0x7be077dd73c85e788c2a49a51f0627066d81d3dc9982c268e3691265a81d544d",e.swap=function(t){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.HAEDAL_LSD_WAL),tiny_invariant_default()(t.aToB,"HAEDAL_LSD_WAL does not support bToA swap");let{txb:o,swapContext:a,poolId:r,aToB:n,amountIn:_,packageId:i}=t;o.moveCall({target:`${i??e.LAST_PACKAGE_ID}::haedal_wal_lsd_router::swap`,arguments:[a,o.object(walrus_Walrus.STAKING_OBJ_ID),o.object(r),o.pure.id(haedal_lsd_wal_HaedalLsdWal.VALIDATOR_ID),o.pure.bool(n),o.pure.u64(_)]})}}(haedal_lsd_wal_router_HaedalLsdWalRouter||(haedal_lsd_wal_router_HaedalLsdWalRouter={})),function(e){e.VERSION_OBJ_ID="0xf5145a7ac345ca8736cf8c76047d00d6d378f30e81be6f6eb557184d9de93c78"}(kriya_clmm_KriyaClmm||(kriya_clmm_KriyaClmm={})),function(e){e.LAST_PACKAGE_ID="0xcf141e1d18ff609b2ac56532b391f7648fc55e28696efe354186f5109c0eff06",e.swap=function(t){let{txb:o,swapContext:a,poolId:r,coinAType:n,coinBType:_,aToB:i,amountIn:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::kriya_clmm_router::swap`,typeArguments:[n,_],arguments:[a,o.object(r),o.object(kriya_clmm_KriyaClmm.VERSION_OBJ_ID),o.pure.bool(i),o.pure.u64(s),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(kriya_clmm_router_KriyaClmmRouter||(kriya_clmm_router_KriyaClmmRouter={})),function(e){e.LAST_PACKAGE_ID="0x50d37f46df75ef125ce656d4ac91b31b2cf0c1195752a96558561d163e45c223",e.swap=function(t){let{txb:o,swapContext:a,poolId:r,coinAType:n,coinBType:_,aToB:i,amountIn:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::kriya_cpmm_router::swap`,typeArguments:[n,_],arguments:[a,o.object(r),o.pure.bool(i),o.pure.u64(s)]})}}(kriya_cpmm_router_KriyaCpmmRouter||(kriya_cpmm_router_KriyaCpmmRouter={})),function(e){e.FACTORY_OBJ_ID="0xedb456e93e423dd75a8ddebedd9974bb661195043027e32ce01649d6ccee74cf",e.GLOBAL_CONFIG_OBJ_ID="0x4c4e1402401f72c7d8533d0ed8d5f8949da363c7a3319ccef261ffe153d32f8a"}(magma_almm_MagmaAlmm||(magma_almm_MagmaAlmm={})),function(e){e.LAST_PACKAGE_ID="0x950f94d33060c0575389c9f84fabab1e140776c6c84389d4237a0c2687a7adc9",e.swap=function(t){let{txb:o,swapContext:a,poolId:r,coinAType:n,coinBType:_,aToB:i,amountIn:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::magma_almm_router::swap`,typeArguments:[n,_],arguments:[a,o.object(r),o.object(magma_almm_MagmaAlmm.FACTORY_OBJ_ID),o.object(magma_almm_MagmaAlmm.GLOBAL_CONFIG_OBJ_ID),o.pure.u64(s),o.pure.bool(i),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(magma_almm_router_MagmaAlmmRouter||(magma_almm_router_MagmaAlmmRouter={})),function(e){e.GLOBAL_CONFIG="0x4c4e1402401f72c7d8533d0ed8d5f8949da363c7a3319ccef261ffe153d32f8a"}(magma_clmm_MagmaClmm||(magma_clmm_MagmaClmm={})),function(e){e.LAST_PACKAGE_ID="0xbe5f590339c55ca8ebbf93cedfb68aafd479d71e1c57043246f7dcf352745242",e.swap=function(t){let{txb:o,swapContext:a,coinAType:r,coinBType:n,poolId:_,aToB:i,amountIn:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::magma_clmm_router::swap`,typeArguments:[r,n],arguments:[a,o.object(magma_clmm_MagmaClmm.GLOBAL_CONFIG),o.object(_),o.pure.bool(i),o.pure.u64(s),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(magma_clmm_router_MagmaClmmRouter||(magma_clmm_router_MagmaClmmRouter={})),function(e){e.LATEST_PACKAGE_ID="0xfab91518218f10204b083dba1e62c8bfc23f14fb87742158043e5faec4670ec4",e.swap=function(t){let o,a,r;tiny_invariant_default()(t.protocol===types_AggregatorProtocol.METASTABLE,"Invalid protocol");let{txb:n,swapContext:_,aToB:i,amountIn:s,coinAType:c,coinBType:l,poolId:u,metaCoin:p,packageId:m}=t,[d,g]=i?[c,l]:[l,c];d===p?(r="swap_from_meta_coin",o=[p,g],a=[metastable_Metastable.createCap({coinType:g,createCapFunc:"create_withdraw_cap",...t})]):g===p?(r="swap_to_meta_coin",o=[p,d],a=[metastable_Metastable.createCap({coinType:d,createCapFunc:"create_deposit_cap",...t})]):(r="swap",o=[p,d,g],a=[metastable_Metastable.createCap({coinType:d,createCapFunc:"create_deposit_cap",...t}),metastable_Metastable.createCap({coinType:g,createCapFunc:"create_withdraw_cap",...t})]),n.moveCall({target:`${m??e.LATEST_PACKAGE_ID}::metastable_router::${r}`,typeArguments:o,arguments:[_,n.object(u),n.object(metastable_Metastable.VERSION_OBJ_ID),...a,n.pure.u64(s)]})}}(metastable_router_MetastableRouter||(metastable_router_MetastableRouter={})),function(e){e.VERSION_OBJ_ID="0x2375a0b1ec12010aaea3b2545acfa2ad34cfbba03ce4b59f4c39e1e25eed1b2a"}(momentum_clmm_MomentumClmm||(momentum_clmm_MomentumClmm={})),function(e){e.LAST_PACKAGE_ID="0xba7ab4c8c39024fa0052bb4f00548a2e7b60742bb4ed0b87bc1d945fd8209102",e.swap=function(t){let{txb:o,swapContext:a,coinAType:r,coinBType:n,poolId:_,aToB:i,amountIn:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::momentum_clmm_router::swap`,typeArguments:[r,n],arguments:[a,o.object(_),o.pure.bool(i),o.pure.u64(s),o.object(momentum_clmm_MomentumClmm.VERSION_OBJ_ID),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(momentum_clmm_router_MomentumClmmRouter||(momentum_clmm_router_MomentumClmmRouter={})),function(e){e.CONFIGURATION_OBJ_ID="0xd746495d04a6119987c2b9334c5fefd7d8cff52a8a02a3ea4e3995b9a041ace4"}(movepump_Movepump||(movepump_Movepump={})),function(e){e.LAST_PACKAGE_ID="0x5a259db4b1d17fafc09185c9a71bac36f25f9ee462e72894c8610e5a58b79f8f",e.swap=function(t){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.MOVEPUMP,"Invalid protocol");let{txb:o,swapContext:a,coinAType:r,coinBType:n,aToB:_,amountIn:i,expectedAmountOut:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::movepump_router::swap`,typeArguments:[_?n:r],arguments:[a,o.object(movepump_Movepump.CONFIGURATION_OBJ_ID),o.object(bluemove_cpmm_BluemoveCpmm.DEX_INFO_OBJ_ID),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID),o.pure.u64(s),o.pure.bool(_),o.pure.u64(i)]})}}(movepump_router_MovepumpRouter||(movepump_router_MovepumpRouter={})),function(e){e.STATE_OBJ_ID="0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8"}(obric_Obric||(obric_Obric={})),function(e){e.LAST_PACKAGE_ID="0xd615fed37d692280047068e80d3a6bb685aa9d574608054c9df881d6a7378fab",e.swap=function(t){let o,a;tiny_invariant_default()(t.protocol===types_AggregatorProtocol.OBRIC);let{txb:r,swapContext:n,poolId:_,coinAType:i,coinBType:s,aToB:c,amountIn:l,pythInfoObjectIdMap:u,packageId:p}=t;"priceInfoObjIdA"in t?(o=t.priceInfoObjIdA,a=t.priceInfoObjIdB):(o=u.get(t.pythPriceFeedIdA),a=u.get(t.pythPriceFeedIdB),tiny_invariant_default()(o,"Not found priceInfoAId in pythObjectIdMap"),tiny_invariant_default()(a,"Not found priceInfoBId in pythObjectIdMap")),r.moveCall({target:`${p??e.LAST_PACKAGE_ID}::obric_router::swap`,typeArguments:[i,s],arguments:[n,r.object(_),r.pure.u64(l),r.pure.bool(c),r.object(obric_Obric.STATE_OBJ_ID),r.object(o),r.object(a),r.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(obric_router_ObricRouter||(obric_router_ObricRouter={})),function(e){e.VERSION_OBJ_ID="0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7",e.MARKET_OBJ_ID="0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9"}(scallop_Scallop||(scallop_Scallop={})),function(e){e.LAST_PACKAGE_ID="0xea409bb08c8a09e4127f859d9c36b8b62ca609282aa1e443091db6b7a7409ee7",e.swap=function(t){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.SCALLOP);let{txb:o,swapContext:a,coinAType:r,coinBType:n,aToB:_,amountIn:i,scoinTreasury:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::scallop_router::swap`,typeArguments:[r,n],arguments:[a,o.object(scallop_Scallop.VERSION_OBJ_ID),o.object(scallop_Scallop.MARKET_OBJ_ID),o.object(s),o.pure.u64(i),o.pure.bool(_),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(scallop_router_ScallopRouter||(scallop_router_ScallopRouter={})),function(e){e.ORACLE_HOLDER_OBJ_ID="0x8c36ea167c5e6da8c3d60b4fc897416105dcb986471bd81cfbfd38720a4487c0"}(sevenk_cpmm_SevenkCpmm||(sevenk_cpmm_SevenkCpmm={})),function(e){e.LAST_PACKAGE_ID="0x918a30e2a05d24ea9451e2d2900d055f74e6752f2e10251fa50c7175831b1958",e.swap=function(t){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.SEVENK_CPMM,"Invalid protocol for sevenk_cpmm_router swap");let{txb:o,swapContext:a,poolId:r,coinAType:n,coinBType:_,aToB:i,amountIn:s,coinLpType:c,oracleConfigA:l,oracleConfigB:u,pythPriceFeedIdA:p,pythPriceFeedIdB:m,pythInfoObjectIdMap:d,packageId:g}=t,f=d.get(p),b=d.get(m);tiny_invariant_default()(f,"Not found priceInfoAId in pythObjectIdMap"),tiny_invariant_default()(b,"Not found priceInfoBId in pythObjectIdMap");let A=pyth_PythPrice.newHolder(o);pyth_PythPrice.getPrice({txb:o,coinPriceId:p,holder:A,coinOracleId:l}),pyth_PythPrice.getPrice({txb:o,coinPriceId:m,holder:A,coinOracleId:u}),o.moveCall({target:`${g??e.LAST_PACKAGE_ID}::sevenk_cpmm_router::swap`,typeArguments:[n,_,c],arguments:[a,o.object(r),o.object(sevenk_cpmm_SevenkCpmm.ORACLE_HOLDER_OBJ_ID),o.pure.bool(i),o.pure.u64(s)]})}}(sevenk_cpmm_router_SevenkCpmmRouter||(sevenk_cpmm_router_SevenkCpmmRouter={})),function(e){e.CONFIGURATION_OBJ_ID="0xe79fff6c77d81f9a8efb729e25bf0037deec42518d40b978f274a4915d7e1ec9"}(sevenk_fun_SevenkFun||(sevenk_fun_SevenkFun={})),function(e){e.LAST_PACKAGE_ID="0x0a5dc665dc3c1c846a6d1e00811c84cae3510c839ab4dc0873f85dc8908d0606",e.swap=function(t){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.SEVENK_FUN,"Invalid protocol");let{txb:o,swapContext:a,aToB:r,amountIn:n,coinBType:_,packageId:i}=t;o.moveCall({target:`${i??e.LAST_PACKAGE_ID}::sevenk_fun_router::swap`,typeArguments:[_],arguments:[a,o.object(sevenk_fun_SevenkFun.CONFIGURATION_OBJ_ID),o.object(flowx_cpmm_FlowxCpmm.CONTAINER_OBJ_ID),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID),o.pure.bool(r),o.pure.u64(n)]})}}(sevenk_fun_router_SevenkFunRouter||(sevenk_fun_router_SevenkFunRouter={})),function(e){e.LAST_PACKAGE_ID="0xa6d129c0b314e85d1bc5aecf305d64212bdd5d466457531f4f624fef5f2e7751",e.swap=function(t){let{txb:o,swapContext:a,poolId:r,amountIn:n,aToB:_,coinBType:i,packageId:s}=t;o.moveCall({target:`${s??e.LAST_PACKAGE_ID}::springsui_router::swap`,typeArguments:[i],arguments:[a,o.object(r),o.object(utils_namespaceObject.SUI_SYSTEM_STATE_OBJECT_ID),o.pure.u64(n),o.pure.bool(_)]})}}(springsui_router_SpringsuiRouter||(springsui_router_SpringsuiRouter={})),function(e){e.CONFIG_OBJ_ID="0x881fd0a12ca4fa48991f5c27ba57d17f1ec147fa15f43b3cb760cc3bd7ba9402"}(srm_cpmm_SrmCpmm||(srm_cpmm_SrmCpmm={})),function(e){e.LAST_PACKAGE_ID="0xa314a64962ed4b91a6b4085de4dff2e631fd4c731dbca671a74489955df322ef",e.swap=function(t){let{txb:o,swapContext:a,poolId:r,aToB:n,amountIn:_,coinAType:i,coinBType:s,packageId:c}=t,l=[a,o.object(r),o.object(srm_cpmm_SrmCpmm.CONFIG_OBJ_ID),o.pure.bool(n),o.pure.u64(_),o.object("0x6")];o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::srm_cpmm_router::swap`,typeArguments:[i,s],arguments:l})}}(srm_cpmm_router_SrmCpmmRouter||(srm_cpmm_router_SrmCpmmRouter={})),function(e){var t;(t=e.Oracle||(e.Oracle={})).PACKAGE_ID="0xe84b649199654d18c38e727212f5d8dacfc3cf78d60d0a7fc85fd589f280eb2b",t.getPythPrice=function(e){let{txb:o,oracleRegistryId:a,priceInfoId:r,oracleIndex:n}=e;return o.moveCall({target:`${t.PACKAGE_ID}::oracles::get_pyth_price`,typeArguments:[],arguments:[o.object(a),o.object(r),o.pure.u64(n),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(steamm_Steamm||(steamm_Steamm={})),function(e){function t(t,a){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.STEAMM_OMM||t.protocol===types_AggregatorProtocol.STEAMM_OMM_V2,"Invalid protocol for steamm _swapOmm swap");let{txb:r,swapContext:n,poolId:_,coinAType:i,coinBType:s,aToB:c,amountIn:l,bankAId:u,bankBId:p,lendingMarketId:m,lendingMarketType:d,bCoinAType:g,bCoinBType:f,lpBCoinType:b,pythPriceFeedIdA:A,pythPriceFeedIdB:C,pythInfoObjectIdMap:I,oracleRegistryId:T,oracleIndexA:y,oracleIndexB:O,packageId:S}=t,M=I.get(A),F=I.get(C);tiny_invariant_default()(M,"Not found priceInfoAId in pythObjectIdMap"),tiny_invariant_default()(F,"Not found priceInfoBId in pythObjectIdMap");let P=steamm_Steamm.Oracle.getPythPrice({txb:r,oracleRegistryId:T,priceInfoId:M,oracleIndex:y}),v=steamm_Steamm.Oracle.getPythPrice({txb:r,oracleRegistryId:T,priceInfoId:F,oracleIndex:O});r.moveCall({target:`${S??e.LAST_PACKAGE_ID}::${o(a)}::swap`,typeArguments:[d,i,s,g,f,b],arguments:[n,r.object(_),r.object(u),r.object(p),r.object(m),P,v,r.pure.bool(c),r.pure.u64(l),r.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}function o(e){switch(e){case 0:return"steamm_omm_router";case 1:return"steamm_omm_v2_router"}}e.LAST_PACKAGE_ID="0xd7430ec87be03b22e29ad95e811d8146fb0ece72037cf546618297def842b57e",e.swapCpmm=function(t){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.STEAMM_CPMM,"Invalid protocol for steamm_cpmm_router swap");let{txb:o,swapContext:a,poolId:r,coinAType:n,coinBType:_,aToB:i,amountIn:s,bankAId:c,bankBId:l,lendingMarketId:u,lendingMarketType:p,bCoinAType:m,bCoinBType:d,lpBCoinType:g}=t;o.moveCall({target:`${e.LAST_PACKAGE_ID}::steamm_cpmm_router::swap`,typeArguments:[p,n,_,m,d,g],arguments:[a,o.object(r),o.object(c),o.object(l),o.object(u),o.pure.bool(i),o.pure.u64(s),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})},e.swapOmm=function(e){t(e,0)},e.swapOmmV2=function(e){t(e,1)},e.getOmmRouterModule=o}(steamm_router_SteammRouter||(steamm_router_SteammRouter={})),function(e){e.LAST_PACKAGE_ID="0x7a1cf89025a60161e84809784d772263231fad08a7cb76a88ca1ba69e0a656da",e.swap=function(t){let{txb:o,swapContext:a,poolId:r,coinAType:n,coinBType:_,aToB:i,amountIn:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::suiswap_router::swap`,typeArguments:[n,_],arguments:[a,o.object(r),o.pure.bool(i),o.pure.u64(s),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(suiswap_cpmm_router_SuiswapCpmmRouter||(suiswap_cpmm_router_SuiswapCpmmRouter={})),function(e){e.VERSIONED="0x0309b66202e9aaf470081fffee7ffc0fbd50e3b7400d4f56fd06502e4dbbd676",e.POOL_REGISTRY="0xcd0a614c4cbbf173f59dee2602c43a1717f283215ed7a0bb1d55d786af16fbcd"}(tradeport_clmm_TradeportClmm||(tradeport_clmm_TradeportClmm={})),function(e){e.LAST_PACKAGE_ID="0x79957062a7424ed9c2eb83932e4c4fcc3fee67ab3c8f6f874c54e417178bbb7a",e.swap=function(t){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.TRADEPORT_CLMM,"Invalid protocol");let{txb:o,swapContext:a,coinAType:r,coinBType:n,aToB:_,amountIn:i,poolFeeRate:s,packageId:c}=t;o.moveCall({target:`${c??e.LAST_PACKAGE_ID}::tradeport_clmm_router::swap`,typeArguments:[r,n],arguments:[a,o.object(tradeport_clmm_TradeportClmm.POOL_REGISTRY),o.pure.u64(s),o.object(tradeport_clmm_TradeportClmm.VERSIONED),o.pure.bool(_),o.pure.u64(i),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(tradeport_clmm_router_TradeportClmmRouter||(tradeport_clmm_router_TradeportClmmRouter={})),function(e){e.POOL_VERSIONED="0xf1cf0e81048df168ebeb1b8030fad24b3e0b53ae827c25053fff0779c1445b6f"}(turbos_clmm_TurbosClmm||(turbos_clmm_TurbosClmm={})),function(e){e.LAST_PACKAGE_ID="0x512d63711ff38353fb167238b0529001b6871c1727c67ce3bf6ec23556b0f1da",e.swap=function(t){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.TURBOS_CLMM,"Invalid protocol");let{txb:o,swapContext:a,coinAType:r,coinBType:n,coinFeeType:_,poolId:i,aToB:s,amountIn:c,packageId:l}=t;o.moveCall({target:`${l??e.LAST_PACKAGE_ID}::turbos_clmm_router::swap`,typeArguments:[r,n,_],arguments:[a,o.object(i),o.object(turbos_clmm_TurbosClmm.POOL_VERSIONED),o.pure.bool(s),o.pure.u64(c),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID)]})}}(turbos_clmm_router_TurbosClmmRouter||(turbos_clmm_router_TurbosClmmRouter={})),function(e){e.CONFIGURATION_OBJ_ID="0xd86685fc3c3d989385b9311ef55bfc01653105670209ac4276ebb6c83d7df928"}(turbos_fun_TurbosFun||(turbos_fun_TurbosFun={})),function(e){e.LAST_PACKAGE_ID="0x1fad13f09797aa87a4385d0b1efb2de963ba16742447b1ad5a3b0c5b1d1c588b",e.swap=function(t){tiny_invariant_default()(t.protocol===types_AggregatorProtocol.TURBOS_FUN,"Invalid protocol");let{txb:o,swapContext:a,coinBType:r,aToB:n,amountIn:_,packageId:i}=t;o.moveCall({target:`${i??e.LAST_PACKAGE_ID}::turbos_fun_router::swap`,typeArguments:[r],arguments:[a,o.object(turbos_fun_TurbosFun.CONFIGURATION_OBJ_ID),o.object(utils_namespaceObject.SUI_CLOCK_OBJECT_ID),o.pure.bool(n),o.pure.u64(_)]})}}(turbos_fun_router_TurbosFunRouter||(turbos_fun_router_TurbosFunRouter={})),function(e){e.VOLO_CERT_METADATA_ID="0x680cd26af32b2bde8d3361e804c53ec1d1cfe24c7f039eb7f549e8dfde389a60"}(volo_Volo||(volo_Volo={})),function(e){e.LAST_PACKAGE_ID="0x7c8d95256342f904d5f251776903a17905d87c95f387b3a35cc2aecc23b3c042",e.swap=function(t){let{txb:o,swapContext:a,poolId:r,aToB:n,amountIn:_,packageId:i}=t;o.moveCall({target:`${i??e.LAST_PACKAGE_ID}::volo_router::swap`,arguments:[a,o.object(r),o.object(volo_Volo.VOLO_CERT_METADATA_ID),o.object(utils_namespaceObject.SUI_SYSTEM_STATE_OBJECT_ID),o.pure.bool(n),o.pure.u64(_)]})}}(volo_router_VoloRouter||(volo_router_VoloRouter={})),function(e){e.RouterSwapFunctionMap={[types_AggregatorProtocol.AFTERMATH_CPMM]:aftermath_cpmm_router_AftermathCpmmRouter.swap,[types_AggregatorProtocol.AFTERMATH_LSD]:aftermath_lsd_router_AftermathLsdRouter.swap,[types_AggregatorProtocol.ALPHAFI_LSD]:alphafi_lsd_router_AlphafiLsdRouter.swap,[types_AggregatorProtocol.BLASTFUN]:blastfun_router_BlastfunRouter.swap,[types_AggregatorProtocol.BLUEFIN_CLMM]:bluefin_clmm_router_BluefinClmmRouter.swap,[types_AggregatorProtocol.BLUEMOVE_CPMM]:bluemove_cpmm_router_BluemoveCpmmRouter.swap,[types_AggregatorProtocol.BOLT]:bolt_router_BoltRouter.swap,[types_AggregatorProtocol.CETUS_CLMM]:cetus_clmm_router_CetusClmmRouter.swap,[types_AggregatorProtocol.CETUS_DLMM]:cetus_dlmm_router_CetusDlmmRouter.swap,[types_AggregatorProtocol.DEEPBOOK_V3]:deepbook_v3_router_DeepbookV3Router.swap,[types_AggregatorProtocol.DIP_CPMM]:dip_cpmm_router_DipCpmmRouter.swap,[types_AggregatorProtocol.FERRA_CLMM]:ferra_clmm_router_FerraClmmRouter.swap,[types_AggregatorProtocol.FERRA_DLMM]:ferra_dlmm_router_FerraDlmmRouter.swap,[types_AggregatorProtocol.FLOWX_CPMM]:flowx_cpmm_router_FlowxCpmmRouter.swap,[types_AggregatorProtocol.FLOWX_CLMM]:flowx_clmm_router_FlowxClmmRouter.swap,[types_AggregatorProtocol.FULLSAIL_CLMM]:fullsail_clmm_router_FullsailClmmRouter.swap,[types_AggregatorProtocol.HAEDAL_CPMM]:haedal_cpmm_router_HaedalCpmmRouter.swap,[types_AggregatorProtocol.HAEDAL_CPMM_V2]:haedal_cpmm_v2_router_HaedalCpmmV2Router.swap,[types_AggregatorProtocol.HAEDAL_LSD]:haedal_lsd_router_HaedalLsdRouter.swap,[types_AggregatorProtocol.HAEDAL_LSD_WAL]:haedal_lsd_wal_router_HaedalLsdWalRouter.swap,[types_AggregatorProtocol.KRIYA_CLMM]:kriya_clmm_router_KriyaClmmRouter.swap,[types_AggregatorProtocol.KRIYA_CPMM]:kriya_cpmm_router_KriyaCpmmRouter.swap,[types_AggregatorProtocol.MAGMA_ALMM]:magma_almm_router_MagmaAlmmRouter.swap,[types_AggregatorProtocol.MAGMA_CLMM]:magma_clmm_router_MagmaClmmRouter.swap,[types_AggregatorProtocol.METASTABLE]:metastable_router_MetastableRouter.swap,[types_AggregatorProtocol.MOMENTUM_CLMM]:momentum_clmm_router_MomentumClmmRouter.swap,[types_AggregatorProtocol.MOVEPUMP]:movepump_router_MovepumpRouter.swap,[types_AggregatorProtocol.OBRIC]:obric_router_ObricRouter.swap,[types_AggregatorProtocol.SCALLOP]:scallop_router_ScallopRouter.swap,[types_AggregatorProtocol.SEVENK_CPMM]:sevenk_cpmm_router_SevenkCpmmRouter.swap,[types_AggregatorProtocol.SEVENK_FUN]:sevenk_fun_router_SevenkFunRouter.swap,[types_AggregatorProtocol.SPRINGSUI]:springsui_router_SpringsuiRouter.swap,[types_AggregatorProtocol.SRM_CPMM]:srm_cpmm_router_SrmCpmmRouter.swap,[types_AggregatorProtocol.STEAMM_CPMM]:steamm_router_SteammRouter.swapCpmm,[types_AggregatorProtocol.STEAMM_OMM]:steamm_router_SteammRouter.swapOmm,[types_AggregatorProtocol.STEAMM_OMM_V2]:steamm_router_SteammRouter.swapOmmV2,[types_AggregatorProtocol.SUISWAP_CPMM]:suiswap_cpmm_router_SuiswapCpmmRouter.swap,[types_AggregatorProtocol.TRADEPORT_CLMM]:tradeport_clmm_router_TradeportClmmRouter.swap,[types_AggregatorProtocol.TURBOS_CLMM]:turbos_clmm_router_TurbosClmmRouter.swap,[types_AggregatorProtocol.TURBOS_FUN]:turbos_fun_router_TurbosFunRouter.swap,[types_AggregatorProtocol.VOLO]:volo_router_VoloRouter.swap},e.swap=function(t){(0,e.RouterSwapFunctionMap[t.protocol])(t)}}(utils_RouterUtils||(utils_RouterUtils={})),function(e){e.buildAggregatorSwapTransaction=async function(e){let{tx:t,coinOutType:o,tradePaths:a,pythConnections:r,pythClient:n,packageIdMap:_}=e,i=aggregator_Aggregator.openSwap(e),s=await pyth_PythUtils.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]}(a),txb:t,pythClient:n,pythConnections:r});for(let e=0;e<a.length;e++){let o=a[e],[r,n]=o.aToB?[o.coinInType,o.coinOutType]:[o.coinOutType,o.coinInType];utils_RouterUtils.swap({...o,txb:t,swapContext:i,amountIn:o.amountIn,coinAType:r,coinBType:n,packageId:_?.get(o.protocol),pythInfoObjectIdMap:s})}return aggregator_Aggregator.closeSwap({tx:t,coinOutType:o,swapSession:i})}}(meta_aggregator_MetaAggregator||(meta_aggregator_MetaAggregator={}));const BASE_SLIPPAGE_BPS=1e4,DEFAULT_SLIPPAGE_BPS=100,BASE_FEE_BPS=1e6;function calculateExpectedAmountAfterFees(e){let{amountOut:t,aggregatorFeeBps:o,partnerFeeBps:a}=e,r=calculateAmountAfterFee(t,o);return a&&(r=calculateAmountAfterFee(r,a)),r}function calculateAmountAfterFee(e,t){let o=BigInt(e)*BigInt(t)/BigInt(1e6);return(BigInt(e)-o).toString()}function calculateMinAmountOut(e,t){let o=BigInt(e)*BigInt(t??100)/BigInt(1e4);return(BigInt(e)-o).toString()}function toFeeBps(e){return Math.floor(1e4*e)}function toSlippageBps(e){return e?Math.floor(100*e):100}const PYTH_CONNECTIONS=pyth_PythUtils.newPythConnections(),PYTH_CLIENT=pyth_PythUtils.newPythClient();var types_SourceAggregatorRoute=function(e){return e.CETUS="CETUS",e.FLOWX="FLOWX",e.SEVENK="SEVENK",e}({});!function(e){function t(e){let t,{buildTxParam:o,rawRouteParam:a}=e;switch(a.sourceRoute){case"CETUS":t=cetus_aggregator_converter_CetusAggregatorConverter.convert(a.rawRoute);break;case"FLOWX":t=flowx_aggregator_converter_FlowXAggregatorConverter.convert(a.rawRoute);break;case"SEVENK":t=sevenk_aggregator_converter_SevenKAggregatorConverter.convert(a.rawRoute);break;default:throw Error("Unsupported source route")}let r=toFeeBps(o.aggregatorFeeRatePercent),n=o.partnerFeeRatePercent?toFeeBps(o.partnerFeeRatePercent):void 0,_=o.expectedAmountOut??calculateExpectedAmountAfterFees({amountOut:t.amountOut,aggregatorFeeBps:r,partnerFeeBps:n}),i=calculateMinAmountOut(_,toSlippageBps(o.slippagePercent));return{...o,...t,expectedAmountOut:_,minAmountOut:i,aggregatorFeeBps:r,partnerFeeBps:n,pythConnections:o.pythConnections??PYTH_CONNECTIONS,pythClient:o.pythClient??PYTH_CLIENT}}e.toMetaAggregatorBuildTxParams=t,e.buildTx=function(e){let o=t(e);return meta_aggregator_MetaAggregator.buildAggregatorSwapTransaction(o)}}(aggregator_converter_AggregatorConverter||(aggregator_converter_AggregatorConverter={}));class AggregatorModule{sdk;_astrosAggregator;_aftermathAggregator;_sevenkAggregator;_cetusAggregator;_flowXAggregator;constructor(e){this.sdk=e,this._astrosAggregator=new astros_AstrosAggregator({defaultTradeFee:e.options.tradeFee,astrosApiKey:e.options.astrosApiKey},e.suiClient),this._aftermathAggregator=new aftermath_AftermathAggregator({defaultTradeFee:e.options.tradeFee,aftermathApiKey:e.options.aftermathApiKey,aftermathApiEndpoint:e.options.aftermathApiEndpoint},e.suiClient),this._sevenkAggregator=new _7k_SevenKAggregator({defaultTradeFee:e.options.tradeFee,sevenKApiKey:e.options.sevenKApiKey},e.suiClient),this._cetusAggregator=new cetus_CetusAggregator({defaultTradeFee:e.options.tradeFee,cetusApiKey:e.options.cetusApiKey,cetusApiEndpoint:e.options.cetusApiEndpoint,cetusPartnerId:e.options.cetusPartnerId},e.suiClient),this._flowXAggregator=new flowx_FlowXAggregator({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 common_SupportedAggregator.ASTROS:{let e,a=await this._astrosAggregator.getTradeRoute(t);if(!a)return null;let r=astros_AstrosAggregator.toCommonTradeRoutes(a,t.coinInType,t.coinOutType);if(!r)return null;e=t.tradeFee?t.tradeFee.tradeFeePercent:this.sdk.options.tradeFee.tradeFeePercent,r.amountOut=BigInt(new(external_bignumber_js_default())(a.amount_out).multipliedBy(1-e).toFixed(0,3)),o={route:r,aggregatorRoute:a};break}case common_SupportedAggregator.AFTERMATH:{let e=await this._aftermathAggregator.getTradeRoute(t);if(!e)return null;let a=aftermath_AftermathAggregator.toCommonTradeRoutes(e);if(!a)return null;o={route:a,aggregatorRoute:e};break}case common_SupportedAggregator.SEVENK:{let e=await this._sevenkAggregator.getTradeRoute(t);if(!e)return null;let a=_7k_SevenKAggregator.toCommonTradeRoutes(e);if(!a)return null;o={route:a,aggregatorRoute:e};break}case common_SupportedAggregator.CETUS:{let e=await this._cetusAggregator.getTradeRoute(t);if(!e)return null;let a=cetus_CetusAggregator.toCommonTradeRoutes(e,t.coinInType,t.coinOutType);if(!a)return null;o={route:a,aggregatorRoute:e};break}case common_SupportedAggregator.FLOWX:{let e=await this._flowXAggregator.getTradeRoute(t);if(!e)return null;let a=flowx_FlowXAggregator.toCommonTradeRoutes(e);if(!a)return null;o={route:a,aggregatorRoute:e}}}return o}async getTransactionByRoute(e,t){switch(e){case common_SupportedAggregator.ASTROS:return this._astrosAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case common_SupportedAggregator.AFTERMATH:return this._aftermathAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage});case common_SupportedAggregator.SEVENK:return this._sevenkAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case common_SupportedAggregator.CETUS:return this._cetusAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case common_SupportedAggregator.FLOWX:return this._flowXAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee})}}async getTradeTransaction(e,t){let o=await this.getTradeRoute(e,{coinInAmount:t.coinInAmount,coinInType:t.coinInType,coinOutType:t.coinOutType,tradeFee:t.tradeFee,metaAggregator:t.metaAggregator});if(!o)return null;let a=await this.getTransactionByRoute(e,{walletAddress:t.walletAddress,completeRoute:o.aggregatorRoute,slippage:t.slippage,tradeFee:t.tradeFee});return{route:o.route,aggregatorRoute:o.aggregatorRoute,transaction:a}}async getTradeTransactionWithBestRate(e){let t=Object.keys(common_SupportedAggregator),o=await Promise.all(t.map(async t=>{try{return await this.getTradeRoute(t,e)}catch{return null}})),a=null,r=null;for(let e=0;e<o.length;e++){let n=o[e],_=t[e];if(n&&(!a||n.route.amountOut>a.route.amountOut)){a=n,r=_;continue}}if(!a||!r)return null;let n=await this.getTransactionByRoute(r,{walletAddress:e.walletAddress,completeRoute:a.aggregatorRoute,slippage:e.slippage,tradeFee:e.tradeFee});return{route:a.route,aggregatorRoute:a.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(common_SupportedAggregator),o=null,a=null;for(let r of t){let t=await this.getAmountOut(r,e);null!==t&&(null===o||t>o)&&(o=t,a=r)}return null===o||null===a?null:{amountOut:o,aggregator:a}}}const BOOSTING_PACKAGE_ID="0x25fa0eb553dd69fa6a8028f73a38f1df7f289fa88a58ed3d7dc5a5360155bb19",CONFIG_ID="0x8b1a8ac6e34688cd8f8f8e5fefa9d5fb9e1ff74d2f132f8e208ae5ac9cc530bb",ADMIN_CAP_ID="0x13d101f44a0710a5475bec5f492a87b80e03d92d1cf540f26096f65850b23d26";class BoostingModule{sdk;constructor(e){this.sdk=e}async getConfig(){let e=await this.sdk.suiClient.getObject({id:CONFIG_ID,options:{showContent:!0}});tiny_invariant_default()(e.data?.content,"Config object not found or has no content"),tiny_invariant_default()(e.data?.content.dataType==="moveObject","Config object is not a Move object");let t=e.data.content.fields,o=t.id.id,a=t.fee_receiver,r=t.tiers.fields.contents,n={};for(let e of r){let t=e.fields.key,o=e.fields.value.fields.duration,a=e.fields.value.fields.amount,r=e.fields.value.fields.point,_=e.fields.value.fields.original_amount;n[t]={duration:BigInt(o),amount:BigInt(a),point:BigInt(r),originalAmount:BigInt(_)}}return{id:o,receiverAddress:a,tiers:n}}async buildPayBoostingTx({walletAddress:e,tierId:t,boostingCoinType:o,currentTx:a}){let r=await this.getConfig();tiny_invariant_default()(t in r.tiers,"Invalid tier ID");let n=r.tiers[t].amount,_=a||new transactions_namespaceObject.Transaction,i=_.splitCoins(_.gas,[_.pure.u64(n)]);_.moveCall({target:`${BOOSTING_PACKAGE_ID}::boosting::pay`,typeArguments:[(0,utils_namespaceObject.normalizeStructTag)(o)],arguments:[_.object(CONFIG_ID),_.pure.u64(t),i]}),_.setSender(e);let s=await getNeededGasFee(this.sdk.suiClient,_,e,0);return addGasFee({inheritTx:_,sender:e,feeAmount:s},this.sdk.suiClient)}async buildAddTierTx({adminAddress:e,tierId:t,duration:o,point:a,originalAmount:r,amount:n,currentTx:_}){let i=_||new transactions_namespaceObject.Transaction;i.moveCall({target:`${BOOSTING_PACKAGE_ID}::config::add_tier`,typeArguments:[],arguments:[i.object(CONFIG_ID),i.object(ADMIN_CAP_ID),i.pure.u64(t),i.pure.u64(a),i.pure.u64(o),i.pure.u64(r),i.pure.u64(n)]}),i.setSender(e);let s=await getNeededGasFee(this.sdk.suiClient,i,e,0);return addGasFee({inheritTx:i,sender:e,feeAmount:s},this.sdk.suiClient)}async buildUpdateTierTx({adminAddress:e,tierId:t,duration:o,amount:a,originalAmount:r,point:n,currentTx:_}){let i=_||new transactions_namespaceObject.Transaction;i.moveCall({target:`${BOOSTING_PACKAGE_ID}::config::update_tier`,typeArguments:[],arguments:[i.object(CONFIG_ID),i.object(ADMIN_CAP_ID),i.pure.u64(t),i.pure.u64(o),i.pure.u64(a),i.pure.u64(n),i.pure.u64(r)]}),i.setSender(e);let s=await getNeededGasFee(this.sdk.suiClient,i,e,0);return addGasFee({inheritTx:i,sender:e,feeAmount:s},this.sdk.suiClient)}async buildRemoveTierTx({adminAddress:e,tierId:t,currentTx:o}){let a=o||new transactions_namespaceObject.Transaction;a.moveCall({target:`${BOOSTING_PACKAGE_ID}::config::remove_tier`,typeArguments:[],arguments:[a.object(CONFIG_ID),a.object(ADMIN_CAP_ID),a.pure.u64(t)]}),a.setSender(e);let r=await getNeededGasFee(this.sdk.suiClient,a,e,0);return addGasFee({inheritTx:a,sender:e,feeAmount:r},this.sdk.suiClient)}async buildUpdateFeeReceiver({adminAddress:e,newReceiverAddress:t,currentTx:o}){let a=o||new transactions_namespaceObject.Transaction;a.moveCall({target:`${BOOSTING_PACKAGE_ID}::config::update_fee_receiver`,typeArguments:[],arguments:[a.object(CONFIG_ID),a.object(ADMIN_CAP_ID),a.pure.address(t)]}),a.setSender(e);let r=await getNeededGasFee(this.sdk.suiClient,a,e,0);return addGasFee({inheritTx:a,sender:e,feeAmount:r},this.sdk.suiClient)}async buildPayBoostingWithAdminTx({walletAddress:e,tierId:t,customAmount:o,boostingCoinType:a,currentTx:r}){let n=r||new transactions_namespaceObject.Transaction,_=n.splitCoins(n.gas,[n.pure.u64(o)]);n.moveCall({target:`${BOOSTING_PACKAGE_ID}::boosting::pay_with_admin`,typeArguments:[(0,utils_namespaceObject.normalizeStructTag)(a)],arguments:[n.object(ADMIN_CAP_ID),n.object(CONFIG_ID),n.pure.u64(t),n.pure.u64(o),_]}),n.setSender(e);let i=await getNeededGasFee(this.sdk.suiClient,n,e,0);return addGasFee({inheritTx:n,sender:e,feeAmount:i},this.sdk.suiClient)}}class CurveModule{sdk;constructor(e){this.sdk=e}async getEstimatedAmountOut(e,t){let{coinInType:o,coinOutType:a}=t;tiny_invariant_default()(o!==a,"coinInType and coinOutType must be different"),tiny_invariant_default()(isSuiCoinType(o)||isSuiCoinType(a),"One of coinInType or coinOutType must be SUI");let r=isSuiCoinType(o);switch(e){case types_SupportedBondingCurve.MOONBAGS:if(r)return await calculation_MoonbagsCalculation.getCurveAmountAfterBuy({poolId:t.poolId,suiAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0},this.sdk.suiClient);return await calculation_MoonbagsCalculation.getSuiAmountAfterSell({poolId:t.poolId,curveAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0},this.sdk.suiClient);case types_SupportedBondingCurve.BLAST_FUN:if(r)return await sdk_calculation_BlastFunSDKCalculation.getCurveAmountAfterBuy({poolId:t.poolId,suiAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0});return await sdk_calculation_BlastFunSDKCalculation.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:a,coinOutType:r}=t;tiny_invariant_default()(a!==r,"coinInType and coinOutType must be different"),tiny_invariant_default()(isSuiCoinType(a)||isSuiCoinType(r),"One of coinInType or coinOutType must be SUI");let n=isSuiCoinType(a);switch(e){case types_SupportedBondingCurve.MOONBAGS:o=n?await transaction_MoonbagsTransaction.getBuyTransaction(t,this.sdk.suiClient):await transaction_MoonbagsTransaction.getSellTransaction(t,this.sdk.suiClient);break;case types_SupportedBondingCurve.BLAST_FUN:o=n?await sdk_transaction_BlastFunSDKTransaction.getBuyTransaction(t,this.sdk.suiClient):await sdk_transaction_BlastFunSDKTransaction.getSellTransaction(t,this.sdk.suiClient);break;default:throw Error(`Unsupported bonding curve platform: ${e}`)}return o}}const SUBSCRIPTION_CONFIG={prod:{packageId:"0x3dd678c250a667f1551bc4b9e35fd070896f4775dd2900d5cb2910d2aea0b068",configId:"0x3eb7bd15f61b7cc1a9fd36151e9c3d05aa37bfadb0a58c3a26a6c02c2e99f3ca",adminCapId:"0xf375fcb3d95934143766cab2028ab49441fa04ef2ce27c08c01004c455bcbad4",paymentCoinType:"0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC"},staging:{packageId:"0xa83cd093ce5142649adae10d21fe87d55fa2df4e52a4292c77ba039bb12bfe67",configId:"0x19fb8f91946e58c068fa4238bdd7a531216a0c4dcfaa279a8a02c60cb02f6711",adminCapId:"0xd8139544d054702dfab6de4e9c55f162c8a6f30465935af56cffed99c5e1c2bd",paymentCoinType:"0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC"}};class SubscriptionModule{sdk;constructor(e){this.sdk=e}async getConfig(){let e=await this.sdk.suiClient.getObject({id:SUBSCRIPTION_CONFIG[this.sdk.env].configId,options:{showContent:!0}});tiny_invariant_default()(e.data,"Config object not found"),tiny_invariant_default()(e.data.content,"Config object has no content"),tiny_invariant_default()(e.data?.content.dataType==="moveObject","Config object is not a Move object");let t=e.data.content.fields,o=t.id.id,a=t.fee_receiver,r=t.paused,n=t.accepted_payment_type,_=t.plans.fields.contents,i={};for(let e of _){let t=e.fields.key,o=e.fields.value.fields.id,a=e.fields.value.fields.price,r=e.fields.value.fields.month_interval,n=e.fields.value.fields.ptype;i[t]={id:BigInt(o),price:BigInt(a),monthInterval:r,planType:n}}return{id:o,plans:i,feeReceiverWallet:a,paused:r,acceptedPaymentType:n}}async buildSubscribeCyclePlanTx({walletAddress:e,planId:t,reference:o,paymentCoinType:a=SUBSCRIPTION_CONFIG[this.sdk.env].paymentCoinType,currentTx:r}){let n=await this.getConfig();tiny_invariant_default()(!n.paused,"Contract is paused"),tiny_invariant_default()(t in n.plans,"Invalid plan ID");let _=n.plans[t],i=_.price*BigInt(_.monthInterval),{tx:s,coinData:c}=await getSplitCoinForTx({account:e,amount:i.toString(),splits:[i.toString()],coinType:a,inheritTx:r},this.sdk.suiClient);s.moveCall({target:`${SUBSCRIPTION_CONFIG[this.sdk.env].packageId}::subscription::subscribe_cycle_plan`,typeArguments:[a],arguments:[s.object(SUBSCRIPTION_CONFIG[this.sdk.env].configId),s.pure.u64(t),s.pure.string(o),c]}),s.setSender(e);let l=await getNeededGasFee(this.sdk.suiClient,s,e,0);return addGasFee({inheritTx:s,sender:e,feeAmount:l},this.sdk.suiClient)}async buildBuyMoreCUPlanTx({walletAddress:e,planId:t,reference:o,paidAmount:a,paymentCoinType:r=SUBSCRIPTION_CONFIG[this.sdk.env].paymentCoinType,currentTx:n}){let _=await this.getConfig();tiny_invariant_default()(!_.paused,"Contract is paused"),tiny_invariant_default()(t in _.plans,"Invalid plan ID");let{tx:i,coinData:s}=await getSplitCoinForTx({account:e,amount:a.toString(),splits:[a.toString()],coinType:r,inheritTx:n},this.sdk.suiClient);i.moveCall({target:`${SUBSCRIPTION_CONFIG[this.sdk.env].packageId}::subscription::buy_more_cu`,typeArguments:[r],arguments:[i.object(SUBSCRIPTION_CONFIG[this.sdk.env].configId),i.pure.u64(t),i.pure.string(o),i.pure.u64(a),s]}),i.setSender(e);let c=await getNeededGasFee(this.sdk.suiClient,i,e,0);return addGasFee({inheritTx:i,sender:e,feeAmount:c},this.sdk.suiClient)}async buildSubscribePlanWithAdminTx({walletAddress:e,planId:t,reference:o,customAmount:a,paymentCoinType:r=SUBSCRIPTION_CONFIG[this.sdk.env].paymentCoinType,currentTx:n}){let _=await this.getConfig();tiny_invariant_default()(!_.paused,"Contract is paused");let{tx:i,coinData:s}=await getSplitCoinForTx({account:e,amount:a.toString(),splits:[a.toString()],coinType:r,inheritTx:n},this.sdk.suiClient);i.moveCall({target:`${SUBSCRIPTION_CONFIG[this.sdk.env].packageId}::subscription::subscribe_plan_with_admin`,typeArguments:[r],arguments:[i.object(SUBSCRIPTION_CONFIG[this.sdk.env].adminCapId),i.object(SUBSCRIPTION_CONFIG[this.sdk.env].configId),i.pure.u64(t),i.pure.string(o),i.pure.u64(a),s]}),i.setSender(e);let c=await getNeededGasFee(this.sdk.suiClient,i,e,0);return addGasFee({inheritTx:i,sender:e,feeAmount:c},this.sdk.suiClient)}async buildAddPlanTx({adminAddress:e,planId:t,planType:o,monthInterval:a,price:r,currentTx:n}){let _=n||new transactions_namespaceObject.Transaction;_.moveCall({target:`${SUBSCRIPTION_CONFIG[this.sdk.env].packageId}::config::add_plan`,typeArguments:[],arguments:[_.object(SUBSCRIPTION_CONFIG[this.sdk.env].configId),_.object(SUBSCRIPTION_CONFIG[this.sdk.env].adminCapId),_.pure.u64(t),_.pure.u8(o),_.pure.u8(a),_.pure.u64(r)]}),_.setSender(e);let i=await getNeededGasFee(this.sdk.suiClient,_,e,0);return addGasFee({inheritTx:_,sender:e,feeAmount:i},this.sdk.suiClient)}async buildUpdatePlanTx({adminAddress:e,planId:t,planType:o,monthInterval:a,price:r,currentTx:n}){let _=n||new transactions_namespaceObject.Transaction;_.moveCall({target:`${SUBSCRIPTION_CONFIG[this.sdk.env].packageId}::config::update_plan`,typeArguments:[],arguments:[_.object(SUBSCRIPTION_CONFIG[this.sdk.env].configId),_.object(SUBSCRIPTION_CONFIG[this.sdk.env].adminCapId),_.pure.u64(BigInt(t)),_.pure.u8(o),_.pure.u8(a),_.pure.u64(r)]}),_.setSender(e);let i=await getNeededGasFee(this.sdk.suiClient,_,e,0);return addGasFee({inheritTx:_,sender:e,feeAmount:i},this.sdk.suiClient)}async buildRemovePlanTx({adminAddress:e,planId:t,currentTx:o}){let a=o||new transactions_namespaceObject.Transaction;a.moveCall({target:`${SUBSCRIPTION_CONFIG[this.sdk.env].packageId}::config::remove_plan`,typeArguments:[],arguments:[a.object(SUBSCRIPTION_CONFIG[this.sdk.env].configId),a.object(SUBSCRIPTION_CONFIG[this.sdk.env].adminCapId),a.pure.u64(BigInt(t))]}),a.setSender(e);let r=await getNeededGasFee(this.sdk.suiClient,a,e,0);return addGasFee({inheritTx:a,sender:e,feeAmount:r},this.sdk.suiClient)}async buildUpdateFeeReceiverWalletTx({adminAddress:e,newFeeReceiverWallet:t,currentTx:o}){let a=o||new transactions_namespaceObject.Transaction;a.moveCall({target:`${SUBSCRIPTION_CONFIG[this.sdk.env].packageId}::config::update_fee_receiver`,typeArguments:[],arguments:[a.object(SUBSCRIPTION_CONFIG[this.sdk.env].configId),a.object(SUBSCRIPTION_CONFIG[this.sdk.env].adminCapId),a.pure.address(t)]}),a.setSender(e);let r=await getNeededGasFee(this.sdk.suiClient,a,e,0);return addGasFee({inheritTx:a,sender:e,feeAmount:r},this.sdk.suiClient)}async buildSetPausedTx({adminAddress:e,paused:t,currentTx:o}){let a=o||new transactions_namespaceObject.Transaction;a.moveCall({target:`${SUBSCRIPTION_CONFIG[this.sdk.env].packageId}::config::set_paused`,typeArguments:[],arguments:[a.object(SUBSCRIPTION_CONFIG[this.sdk.env].configId),a.object(SUBSCRIPTION_CONFIG[this.sdk.env].adminCapId),a.pure.bool(t)]}),a.setSender(e);let r=await getNeededGasFee(this.sdk.suiClient,a,e,0);return addGasFee({inheritTx:a,sender:e,feeAmount:r},this.sdk.suiClient)}async buildSetAcceptedPaymentTypeTx({adminAddress:e,paymentCoinType:t,currentTx:o}){let a=o||new transactions_namespaceObject.Transaction;a.moveCall({target:`${SUBSCRIPTION_CONFIG[this.sdk.env].packageId}::config::set_accepted_payment_type`,typeArguments:[t],arguments:[a.object(SUBSCRIPTION_CONFIG[this.sdk.env].configId),a.object(SUBSCRIPTION_CONFIG[this.sdk.env].adminCapId)]}),a.setSender(e);let r=await getNeededGasFee(this.sdk.suiClient,a,e,0);return addGasFee({inheritTx:a,sender:e,feeAmount:r},this.sdk.suiClient)}}class NoodlesPaySdk{network;env;_suiClient;boostingModule;subscriptionModule;constructor(e="mainnet",t="prod"){this.network=e,this.env=t;const o=(0,client_namespaceObject.getFullnodeUrl)(e);this._suiClient=new client_namespaceObject.SuiClient({url:o}),this.subscriptionModule=new SubscriptionModule(this),this.boostingModule=new BoostingModule(this)}get suiClient(){return this._suiClient}}const DEFAULT_TRADE_FEE={tradeFeePercent:.01,tradeFeeRecipientAddress:"0xdaf1c8ed29d89cd8f217f609bad0a668fa6f158c12000bfa5f93e670c99e24ff"};class NoodlesSdk{network;env;options;_suiClient;aggregatorModule;curveModule;constructor(e,t="mainnet",o="prod"){this.options=e,this.network=t,this.env=o;const a=(0,client_namespaceObject.getFullnodeUrl)(t);this._suiClient=new client_namespaceObject.SuiClient({url:a}),this.aggregatorModule=new AggregatorModule(this),this.curveModule=new CurveModule(this)}get suiClient(){return this._suiClient}}const ed25519_namespaceObject=require("@mysten/sui/keypairs/ed25519"),CONSTANTS={GAS_FEE_BUFFER_PERCENTAGE:.1};class DraftTransferTx{suiClient;constructor(e){this.suiClient=e}validatePrivateKey(e,t){tiny_invariant_default()(e?.trim(),"Private key is required");let o=ed25519_namespaceObject.Ed25519Keypair.fromSecretKey(e),a=o.getPublicKey().toSuiAddress();if(a!==t)throw Error(`Private key mismatch. Expected: ${t}, Got: ${a}`);return o}async createDraft(e,t,o){tiny_invariant_default()(e?.trim(),"Sender address is required"),tiny_invariant_default()(t?.trim(),"Recipient address is required"),tiny_invariant_default()(e!==t,"Sender and recipient cannot be the same"),tiny_invariant_default()(o>0n,"Transfer amount must be at least 1 MIST");try{let a=new transactions_namespaceObject.Transaction,[r]=a.splitCoins(a.gas,[o]);a.transferObjects([r],t),a.setSender(e);let n=await this.suiClient.getReferenceGasPrice();a.setGasPrice(n);let _=await getNeededGasFee(this.suiClient,a,e,CONSTANTS.GAS_FEE_BUFFER_PERCENTAGE);a=await addGasFee({inheritTx:a,sender:e,feeAmount:_,suiInputAmount:o},this.suiClient);let i=await a.build({client:this.suiClient}),s=Buffer.from(i).toString("base64"),c=await a.getDigest();return{sender:e,recipient:t,amountMIST:o,txDraftBase64:s,txDigest:c}}catch(e){throw Error(`Failed to create draft transaction: ${e instanceof Error?e.message:"Unknown error"}`)}}async execute(e,t){try{tiny_invariant_default()(e,"Draft transaction is required"),tiny_invariant_default()(e.txDraftBase64?.trim(),"Transaction data is required");let o=this.validatePrivateKey(t,e.sender),a=(0,utils_namespaceObject.fromBase64)(e.txDraftBase64),{signature:r}=await o.signTransaction(a),n=await this.suiClient.executeTransactionBlock({transactionBlock:a,signature:r});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){tiny_invariant_default()(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"}}}for(var __rspack_i in exports.ADMIN_CAP_ID=__webpack_exports__.ADMIN_CAP_ID,exports.AftermathAggregator=__webpack_exports__.AftermathAggregator,exports.AftermathCpmm=__webpack_exports__.AftermathCpmm,exports.AftermathLsd=__webpack_exports__.AftermathLsd,exports.AggregatorConverter=__webpack_exports__.AggregatorConverter,exports.AggregatorModule=__webpack_exports__.AggregatorModule,exports.AggregatorProtocol=__webpack_exports__.AggregatorProtocol,exports.AstrosAggregator=__webpack_exports__.AstrosAggregator,exports.BASE_BPS=__webpack_exports__.BASE_BPS,exports.BLUEFIN_PACKAGE_ID=__webpack_exports__.BLUEFIN_PACKAGE_ID,exports.BOOSTING_PACKAGE_ID=__webpack_exports__.BOOSTING_PACKAGE_ID,exports.BlastFunConstants=__webpack_exports__.BlastFunConstants,exports.BlastFunCustomCalculation=__webpack_exports__.BlastFunCustomCalculation,exports.BlastFunCustomTransaction=__webpack_exports__.BlastFunCustomTransaction,exports.BlastFunPackage=__webpack_exports__.BlastFunPackage,exports.BlastFunSDKCalculation=__webpack_exports__.BlastFunSDKCalculation,exports.BlastFunSDKTransaction=__webpack_exports__.BlastFunSDKTransaction,exports.Blastfun=__webpack_exports__.Blastfun,exports.BluefinClmm=__webpack_exports__.BluefinClmm,exports.BluefinTx=__webpack_exports__.BluefinTx,exports.BluemoveCpmm=__webpack_exports__.BluemoveCpmm,exports.Bolt=__webpack_exports__.Bolt,exports.BoostingModule=__webpack_exports__.BoostingModule,exports.Bps=__webpack_exports__.Bps,exports.CLOCK_OBJECT_ID=__webpack_exports__.CLOCK_OBJECT_ID,exports.CONFIG_ID=__webpack_exports__.CONFIG_ID,exports.CetusAggregator=__webpack_exports__.CetusAggregator,exports.CetusAggregatorConverter=__webpack_exports__.CetusAggregatorConverter,exports.CetusClmm=__webpack_exports__.CetusClmm,exports.CetusDlmm=__webpack_exports__.CetusDlmm,exports.CurveModule=__webpack_exports__.CurveModule,exports.DEFAULT_TRADE_FEE=__webpack_exports__.DEFAULT_TRADE_FEE,exports.DeepbookV3=__webpack_exports__.DeepbookV3,exports.DipCpmm=__webpack_exports__.DipCpmm,exports.DraftTransferTx=__webpack_exports__.DraftTransferTx,exports.FerraClmm=__webpack_exports__.FerraClmm,exports.FerraDlmm=__webpack_exports__.FerraDlmm,exports.FlowXAggregator=__webpack_exports__.FlowXAggregator,exports.FlowXAggregatorConverter=__webpack_exports__.FlowXAggregatorConverter,exports.FlowxCpmm=__webpack_exports__.FlowxCpmm,exports.FullsailClmm=__webpack_exports__.FullsailClmm,exports.HaedalLsdWal=__webpack_exports__.HaedalLsdWal,exports.KriyaClmm=__webpack_exports__.KriyaClmm,exports.MagmaAlmm=__webpack_exports__.MagmaAlmm,exports.MagmaClmm=__webpack_exports__.MagmaClmm,exports.MathUtils=__webpack_exports__.MathUtils,exports.MetaAggregator=__webpack_exports__.MetaAggregator,exports.Metastable=__webpack_exports__.Metastable,exports.MomentumClmm=__webpack_exports__.MomentumClmm,exports.MoonbagsCalculation=__webpack_exports__.MoonbagsCalculation,exports.MoonbagsConstants=__webpack_exports__.MoonbagsConstants,exports.MoonbagsPackage=__webpack_exports__.MoonbagsPackage,exports.MoonbagsTransaction=__webpack_exports__.MoonbagsTransaction,exports.Movepump=__webpack_exports__.Movepump,exports.NATIVE_USDC_TOKEN_TYPE=__webpack_exports__.NATIVE_USDC_TOKEN_TYPE,exports.NoodlesPaySdk=__webpack_exports__.NoodlesPaySdk,exports.NoodlesSdk=__webpack_exports__.NoodlesSdk,exports.Obric=__webpack_exports__.Obric,exports.PythPrice=__webpack_exports__.PythPrice,exports.PythUtils=__webpack_exports__.PythUtils,exports.RouterUtils=__webpack_exports__.RouterUtils,exports.SUBSCRIPTION_CONFIG=__webpack_exports__.SUBSCRIPTION_CONFIG,exports.SUI_FULL_TYPE=__webpack_exports__.SUI_FULL_TYPE,exports.SUI_METADATA_OBJECT_ID=__webpack_exports__.SUI_METADATA_OBJECT_ID,exports.SUI_TYPE=__webpack_exports__.SUI_TYPE,exports.Scallop=__webpack_exports__.Scallop,exports.SevenKAggregator=__webpack_exports__.SevenKAggregator,exports.SevenKAggregatorConverter=__webpack_exports__.SevenKAggregatorConverter,exports.SevenkCpmm=__webpack_exports__.SevenkCpmm,exports.SevenkFun=__webpack_exports__.SevenkFun,exports.SrmCpmm=__webpack_exports__.SrmCpmm,exports.Steamm=__webpack_exports__.Steamm,exports.SubscriptionModule=__webpack_exports__.SubscriptionModule,exports.SupportedAggregator=__webpack_exports__.SupportedAggregator,exports.SupportedBondingCurve=__webpack_exports__.SupportedBondingCurve,exports.TradeFeeOptions=__webpack_exports__.TradeFeeOptions,exports.TradeportClmm=__webpack_exports__.TradeportClmm,exports.TurbosClmm=__webpack_exports__.TurbosClmm,exports.TurbosFun=__webpack_exports__.TurbosFun,exports.USDC_TOKEN_TYPE=__webpack_exports__.USDC_TOKEN_TYPE,exports.Volo=__webpack_exports__.Volo,exports.Walrus=__webpack_exports__.Walrus,exports.adaptSuiClient=__webpack_exports__.adaptSuiClient,exports.adaptTransaction=__webpack_exports__.adaptTransaction,exports.addGasFee=__webpack_exports__.addGasFee,exports.checkIsSui=__webpack_exports__.checkIsSui,exports.createCompatibleSuiClient=__webpack_exports__.createCompatibleSuiClient,exports.denormalizeTokenType=__webpack_exports__.denormalizeTokenType,exports.getAmountAfterFee=__webpack_exports__.getAmountAfterFee,exports.getCoinObjectIdsByAmount=__webpack_exports__.getCoinObjectIdsByAmount,exports.getMemezPumpSDK=__webpack_exports__.getMemezPumpSDK,exports.getMoveObject=__webpack_exports__.getMoveObject,exports.getMoveObjectContent=__webpack_exports__.getMoveObjectContent,exports.getNeededGasFee=__webpack_exports__.getNeededGasFee,exports.getSplitCoinForTx=__webpack_exports__.getSplitCoinForTx,exports.getSplitCoinsAfterFee=__webpack_exports__.getSplitCoinsAfterFee,exports.isSuiCoinType=__webpack_exports__.isSuiCoinType,exports.normalizeTokenType=__webpack_exports__.normalizeTokenType,exports.splitSuiCoinAfterFeeFromBuyTx=__webpack_exports__.splitSuiCoinAfterFeeFromBuyTx,exports.splitSuiCoinAfterFeeFromSellTx=__webpack_exports__.splitSuiCoinAfterFeeFromSellTx,__webpack_exports__)-1===["ADMIN_CAP_ID","AftermathAggregator","AftermathCpmm","AftermathLsd","AggregatorConverter","AggregatorModule","AggregatorProtocol","AstrosAggregator","BASE_BPS","BLUEFIN_PACKAGE_ID","BOOSTING_PACKAGE_ID","BlastFunConstants","BlastFunCustomCalculation","BlastFunCustomTransaction","BlastFunPackage","BlastFunSDKCalculation","BlastFunSDKTransaction","Blastfun","BluefinClmm","BluefinTx","BluemoveCpmm","Bolt","BoostingModule","Bps","CLOCK_OBJECT_ID","CONFIG_ID","CetusAggregator","CetusAggregatorConverter","CetusClmm","CetusDlmm","CurveModule","DEFAULT_TRADE_FEE","DeepbookV3","DipCpmm","DraftTransferTx","FerraClmm","FerraDlmm","FlowXAggregator","FlowXAggregatorConverter","FlowxCpmm","FullsailClmm","HaedalLsdWal","KriyaClmm","MagmaAlmm","MagmaClmm","MathUtils","MetaAggregator","Metastable","MomentumClmm","MoonbagsCalculation","MoonbagsConstants","MoonbagsPackage","MoonbagsTransaction","Movepump","NATIVE_USDC_TOKEN_TYPE","NoodlesPaySdk","NoodlesSdk","Obric","PythPrice","PythUtils","RouterUtils","SUBSCRIPTION_CONFIG","SUI_FULL_TYPE","SUI_METADATA_OBJECT_ID","SUI_TYPE","Scallop","SevenKAggregator","SevenKAggregatorConverter","SevenkCpmm","SevenkFun","SrmCpmm","Steamm","SubscriptionModule","SupportedAggregator","SupportedBondingCurve","TradeFeeOptions","TradeportClmm","TurbosClmm","TurbosFun","USDC_TOKEN_TYPE","Volo","Walrus","adaptSuiClient","adaptTransaction","addGasFee","checkIsSui","createCompatibleSuiClient","denormalizeTokenType","getAmountAfterFee","getCoinObjectIdsByAmount","getMemezPumpSDK","getMoveObject","getMoveObjectContent","getNeededGasFee","getSplitCoinForTx","getSplitCoinsAfterFee","isSuiCoinType","normalizeTokenType","splitSuiCoinAfterFeeFromBuyTx","splitSuiCoinAfterFeeFromSellTx"].indexOf(__rspack_i)&&(exports[__rspack_i]=__webpack_exports__[__rspack_i]);Object.defineProperty(exports,"__esModule",{value:!0});
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 g,CETUSDLMM as A,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,toHex as er,getAmountAfterFee as ea,SUI_CLOCK_OBJECT_ID as en,getSplitCoinForTx 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_METADATA_OBJECT_ID as em,SUI_TYPE as ef,isSuiCoinType as eg,getFullnodeUrl as eA,getSplitCoinsAfterFee as eb,SUI_FULL_TYPE as eI,fromBase64 as eT,tiny_invariant as eC}from"./982.js";function eM(e){return e===ef?eI:e}function eO(e){return e===eI?ef:e}function eE(e){return e===eI||e===ef}(tP=tD||(tD={})).MAX_AMOUNT_IN="18446744073709551615",tP.LAST_PACKAGE_ID="0x7e57926855b32baa3b3cabed89380b8d415606fdedadc18e58bd1ef1e60aee48",tP.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:`${tP.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},tP.closeSwap=function(e){let{tx:t,coinOutType:o,swapSession:r}=e,[a]=t.moveCall({target:`${tP.LAST_PACKAGE_ID}::aggregator::close_swap`,typeArguments:[o],arguments:[r]});return a};var ey,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,e1,e2,e3,e5,e8,e9,e7,te,tt,to,tr,ta,tn,ti,tc,ts,tu,tl,td,tp,t_,tm,tf,tg,tA,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,t1,t2,t3,t5,t8,t9,t7,oe,ot,oo,or,oa,on,oi,oc,os,ou,ol,od,op,o_,om,of,og,oA,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,o1,o2,o3,o5,o8,o9,o7=((tx={}).AFTERMATH_CPMM="aftermath_cpmm",tx.AFTERMATH_LSD="aftermath_lsd",tx.ALPHAFI_LSD="alphafi_lsd",tx.BLASTFUN="blastfun",tx.BLUEFIN_CLMM="bluefin_clmm",tx.BLUEMOVE_CPMM="bluemove_cpmm",tx.BOLT="bolt",tx.CETUS_CLMM="cetus_clmm",tx.CETUS_DLMM="cetus_dlmm",tx.DEEPBOOK_V3="deepbook_v3",tx.DIP_CPMM="dip_cpmm",tx.FLOWX_CPMM="flowx_cpmm",tx.FLOWX_CLMM="flowx_clmm",tx.FULLSAIL_CLMM="fullsail_clmm",tx.FERRA_CLMM="ferra_clmm",tx.FERRA_DLMM="ferra_dlmm",tx.HAEDAL_CPMM="haedal_cpmm",tx.HAEDAL_CPMM_V2="haedal_cpmm_v2",tx.HAEDAL_LSD="haedal_lsd",tx.HAEDAL_LSD_WAL="haedal_lsd_wal",tx.KRIYA_CLMM="kriya_clmm",tx.KRIYA_CPMM="kriya_cpmm",tx.MAGMA_ALMM="magma_almm",tx.MAGMA_CLMM="magma_clmm",tx.METASTABLE="metastable",tx.MOMENTUM_CLMM="momentum_clmm",tx.MOVEPUMP="movepump",tx.OBRIC="obric",tx.SCALLOP="scallop",tx.SEVENK_CPMM="sevenk_cpmm",tx.SEVENK_FUN="sevenk_fun",tx.SPRINGSUI="springsui",tx.SRM_CPMM="srm_cpmm",tx.STEAMM_CPMM="steamm_cpmm",tx.SUISWAP_CPMM="suiswap_cpmm",tx.STEAMM_OMM="steamm_omm",tx.STEAMM_OMM_V2="steamm_omm_v2",tx.TRADEPORT_CLMM="tradeport_clmm",tx.TURBOS_CLMM="turbos_clmm",tx.TURBOS_FUN="turbos_fun",tx.VOLO="volo",tx);!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:o7.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:o7.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:o7.TURBOS_CLMM,coinFeeType:r}},obric:e=>(eC(e.extra?.oracles,"obric protocol requires oracles"),{...n(e),protocol:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.CETUS_CLMM}),bluemove:e=>({...n(e),protocol:o7.BLUEMOVE_CPMM}),kriya:e=>({...n(e),protocol:o7.KRIYA_CPMM}),kriya_v3:e=>({...n(e),protocol:o7.KRIYA_CLMM}),deepbook_v3:e=>({...n(e),protocol:o7.DEEPBOOK_V3}),flowx:e=>({...n(e),protocol:o7.FLOWX_CPMM}),bluefin:e=>({...n(e),protocol:o7.BLUEFIN_CLMM}),springsui:e=>({...n(e),protocol:o7.SPRINGSUI}),magma:e=>({...n(e),protocol:o7.MAGMA_CLMM}),momentum:e=>({...n(e),protocol:o7.MOMENTUM_CLMM}),fullsail:e=>({...n(e),protocol:o7.FULLSAIL_CLMM}),stsui:e=>({...n(e),protocol:o7.ALPHAFI_LSD}),suiswap:e=>({...n(e),protocol:o7.SUISWAP_CPMM}),cetus_dlmm:e=>({...n(e),protocol:o7.CETUS_DLMM}),ferra_dlmm:e=>({...n(e),protocol:o7.FERRA_DLMM}),ferra_clmm:e=>({...n(e),protocol:o7.FERRA_CLMM})};function r(e){let r=e.pool.type;if(t.has(r))throw Error(`Unsupported SourceDex: ${r}`);return(0,o[r])(e)}function a(e){let t=new Map;for(let[o,r]of e.entries())t.set(r.assetIn,o);let o=e.map(r);for(let e of t.values())o[e].amountIn=tD.MAX_AMOUNT_IN;return o}function n(e){return{poolId:e.poolId,coinInType:e.assetIn,coinOutType:e.assetOut,amountIn:e.amount,aToB:e.swapXtoY}}function i(e){return 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"+er(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=eO(e.assetIn),a=eO(e.assetOut),n={type:eO(t?.allTokens?.[0]?.address),decimals:t?.allTokens?.[0]?.decimal},i={type:eO(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}}}(tw||(tw={}));class re{_config;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}async getTradeRoute({coinInAmount:e,coinInType:o,coinOutType:a,tradeFee:n,metaAggregator:i,supportedProtocols:c}){try{this._config.sevenKApiKey&&t.setApiKey(this._config.sevenKApiKey);let s=n?n.tradeFeePercent:this._config.defaultTradeFee.tradeFeePercent,u=c??(i?tw.SUPPORTED_PROTOCOLS:void 0);return await r({tokenIn:o,tokenOut:a,amountIn:e.toString(),commissionBps:1e4*s,sources:u})}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}))}}(re||(re={})).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.returnAmountAfterCommissionWithDecimal),routes:t}};class rt{_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})}}(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({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 ro{_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:1e4*r.tradeFeePercent,receiverAddress:r.tradeFeeRecipientAddress}:{fee:1e4*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})}}(ro||(ro={})).toCommonTradeRoutes=function(e,t,o){if(0===e.routes.length)return null;let r=[];for(let t of e.routes){let e=[];for(let o of t.path)e.push({poolAddress:o.id,coinIn:o.from,coinOut:o.target,amountIn:BigInt(o.amount_in),amountOut:BigInt(o.amount_out)});0!==e.length&&r.push({amountIn:BigInt(t.amount_in),amountOut:BigInt(t.amount_out),coinIn:e[0].coinIn,coinOut:e[e.length-1].coinOut,paths:e})}return 0===r.length?null:{coinIn:t,coinOut:o,amountIn:BigInt(e.amount_in),amountOut:BigInt(e.amount_out),routes:r}},(tL||(tL={})).equals=function(e,t){return e.tradeFeePercent===t.tradeFeePercent&&e.tradeFeeRecipientAddress===t.tradeFeeRecipientAddress},(ey=tv||(tv={})).UNIVERSAL_META_VAULT_INTEGRATION_PACKAGE_ID="0xfd12517a9fc87c6a1f2357ad13b3421fb27a8bd7ca07d5fd5934ac35733baa47",(eS=ey.MetaCoinType||(ey.MetaCoinType={})).SUPER_SUI="0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI",eS.MUSD="0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD",eS.METH="0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH",ey.VERSION_OBJ_ID="0x4696559327b35ff2ab26904e7426a1646312e9c836d5c6cff6709a5ccc30915c",ey.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(en)];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(en)];break}default:throw Error("Invalid MetaCoin: "+a.toString())}return o.moveCall({target:`${u}::${l}::${d}`,typeArguments:p,arguments:t})},ey.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)}},ey.isMetaCoinType=function(e){return Object.values(ey.MetaCoinType).map(e=>e.toString()).includes(e)},ey.getCreateCapAllTypeParams=function(e,t){switch(e){case"0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI":return t===ey.UNIVERSAL_META_VAULT_INTEGRATION_PACKAGE_ID;case"0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD":case"0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH":return!0;default:throw Error("Invalid MetaCoin: "+e)}},function(e){let t=[g,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,A,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){let t=new Map;for(let[o,r]of e.paths.entries())t.set(r.from,o);let o=[];for(let r=0;r<e.paths.length;r++){let n=e.paths[r],i=a(n);t.get(n.from)===r&&(i.amountIn=tD.MAX_AMOUNT_IN),o.push(i)}return o}e.TO_META_AGGREGATOR_PATH_FN_MAP={[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 tv.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:o7.METASTABLE,metaCoin:a,registryId:o.metastable_registry_id};case tv.MetaCoinType.MUSD:return eC(o.metastable_price_seed,`METASTABLE_MUSD protocol requires 'metastable_price_seed' in extendedDetails for pool ${e.id}.`),{...t,...n,protocol:o7.METASTABLE,metaCoin:a,pythPriceFeedIdMeta:o.metastable_price_seed};case tv.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:o7.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:o7.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:o7.AFTERMATH_CPMM,coinLpType:t.aftermath_lp_supply_type}},[O]:e=>({...r(e),protocol:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.TURBOS_CLMM,coinFeeType:e.extendedDetails.turbos_fee_type}),[l]:e=>({...r(e),protocol:o7.AFTERMATH_LSD}),[p]:e=>({...r(e),protocol:o7.ALPHAFI_LSD}),[m]:e=>({...r(e),protocol:o7.BLUEFIN_CLMM}),[f]:e=>({...r(e),protocol:o7.BLUEMOVE_CPMM}),[g]:e=>({...r(e),protocol:o7.CETUS_CLMM}),[A]:e=>({...r(e),protocol:o7.CETUS_DLMM}),[T]:e=>({...r(e),protocol:o7.FERRA_CLMM}),[C]:e=>({...r(e),protocol:o7.FERRA_DLMM}),[M]:e=>({...r(e),protocol:o7.FLOWX_CPMM}),[E]:e=>({...r(e),protocol:o7.FULLSAIL_CLMM}),[y]:e=>({...r(e),protocol:o7.HAEDAL_LSD}),[F]:e=>({...r(e),protocol:o7.HAEDAL_LSD_WAL}),[B]:e=>({...r(e),protocol:o7.KRIYA_CPMM}),[P]:e=>({...r(e),protocol:o7.KRIYA_CLMM}),[x]:e=>({...r(e),protocol:o7.MAGMA_CLMM}),[w]:e=>({...r(e),protocol:o7.MOMENTUM_CLMM}),[j]:e=>({...r(e),protocol:o7.SPRINGSUI}),[k]:e=>({...r(e),protocol:o7.SPRINGSUI}),[q]:e=>({...r(e),protocol:o7.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)}}}(tR||(tR={}));class rr{_config;_suiClient;_cetusClient;getCetusClientConfig({walletAddress:e,overlayFeeReceiver:t,overlayFeeRate:o}){return{client:this._suiClient,overlayFeeReceiver:t,overlayFeeRate:o,env:I.Mainnet,signer:e,...this._config.cetusApiKey&&this._config.cetusApiEndpoint?{apiKey:this._config.cetusApiKey,endpoint:this._config.cetusApiEndpoint}:{},partner:this._config.cetusPartnerId}}constructor(e,t){this._config=e,this._suiClient=t}cetusClient(e,t){return t&&!tL.equals(t,this._config.defaultTradeFee)?new _(this.getCetusClientConfig({walletAddress:e,overlayFeeReceiver:t.tradeFeeRecipientAddress,overlayFeeRate:t.tradeFeePercent})):(this._cetusClient||(this._cetusClient=new _(this.getCetusClientConfig({walletAddress:e,overlayFeeReceiver:this._config.defaultTradeFee.tradeFeeRecipientAddress,overlayFeeRate:this._config.defaultTradeFee.tradeFeePercent}))),this._cetusClient)}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r,metaAggregator:a,supportedProtocols:n}){try{let i=this.cetusClient(void 0,r),c=n??(a?tR.SUPPORTED_PROTOCOLS:void 0);return await i.findRouters({from:t,target:o,amount:new Y(e.toString()),byAmountIn:!0,providers:c})}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})}}(rr||(rr={})).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 ra=((eh={}).ASTROS="ASTROS",eh.AFTERMATH="AFTERMATH",eh.SEVENK="7K",eh.CETUS="CETUS",eh.FLOWX="FLOWX",eh);!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:o7.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:o7.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:o7.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:o7.CETUS_DLMM}),[X.AFTERMATH]:t=>(eC(t.lpCoinType,`AFTERMATH protocol requires lpCoinType for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:o7.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:o7.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:o7.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:o7.BLUEFIN_CLMM}),[X.BLUEMOVE]:t=>({...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.BOLT})};function r(t){let o=[];for(let e of t)o.push(...e.paths);let r=new Map;for(let[e,t]of o.entries())r.set(t.input.coinType,e);let a=o.map(e.toMetaAggregatorPath);for(let e of r.values())a[e].amountIn=tD.MAX_AMOUNT_IN;return a}e.toMetaAggregatorBasePath=e=>({poolId:e.pool.id,coinInType:e.input.coinType,coinOutType:e.output.coinType,amountIn:e.amountIn.toString()}),e.toMetaAggregatorPath=e=>{let r=e.protocol();if(t.includes(r))throw Error(`Unsupported protocol: ${r}`);return(0,o[r])(e)},e.toMetaAggregatorPaths=r,e.convert=function(e){return{coinInType:e.coinIn.coinType,coinOutType:e.coinOut.coinType,amountOut:e.amountOut.toString(),tradePaths:r(e.routes)}}}(tk||(tk={}));class rn{_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,metaAggregator:a,supportedProtocols:n}){let i=new $("mainnet",this._config.flowxApiKey),c=n??(a?tk.SUPPORTED_PROTOCOLS:void 0);try{return await i.getRoutes({tokenIn:t,tokenOut:o,amountIn:e.toString(),commission:this.getCommission(t,r),includeSources:c})}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 ri(e,t){return(await rc(e,t)).fields}async function rc(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}(rn||(rn={})).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}},(eF=tN||(tN={})).PACKAGE_ID_V4="0x7e6aa6e179466ab2814425a780b122575296d011119fa69d27f289f5a28814bd",eF.MEMEZ_AV_OBJECT_ID="0x2319e3e76dfad73d8f4684bdbf42be4f32d8ce4521dd61becc8261dc918d82c0",((eB=tU||(tU={})).U64||(eB.U64={})).mulDivUp=function(e,t,o){let r=BigInt(0);return e*t%o>BigInt(0)&&(r=BigInt(1)),e*t/o+r};var rs=tG||(tG={});function ru(e){return eC(BigInt(e)<=BigInt(1e4),"Bps overflow"),BigInt(e)}rs.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},rs.sub=function(e,t){return eC(BigInt(e.pos0)>=BigInt(t.pos0),"Bps underflow"),{pos0:(BigInt(e.pos0)-BigInt(t.pos0)).toString()}},rs.value=function(e){return BigInt(e.pos0)},rs.new_=function(e){return{pos0:ru(e).toString()}},rs.assertOverflow=ru,((eP=tj||(tj={})).MemezFun||(eP.MemezFun={})).isSniperProtectedMemezFun=async function(e,t){return(await ri(e,t)).public_key.length>0},(ex=eP.MemezFees||(eP.MemezFees={})).takeWithDiscount=function(e,t,o){if("Value"===e.variant){let o=BigInt(e.fields.pos0);if(o===BigInt(0))return BigInt(0);if(t>=o)return o;throw Error(`Insufficient amount to cover fee. Required: ${o}, provided: ${t}`)}if("Percentage"===e.variant){let r=e.fields.pos0.fields;if(BigInt(r.pos0)===BigInt(0))return BigInt(0);let a=tG.calcUp(tG.sub(r,o),t);if(t>=a)return a;throw Error(`Insufficient amount to cover fee. Required: ${a}, provided: ${t}`)}throw Error("Unknown fee variant")},ex.calculateWithDiscount=function(e,t,o){if("Value"===e.variant)return BigInt(e.fields.pos0);if("Percentage"===e.variant){let r=e.fields.pos0.fields;return tG.calcUp(tG.sub(r,t),o)}throw Error("Unknown fee variant")},(eP.MemezBurner||(eP.MemezBurner={})).calculate=function(e,t){if(tG.value(e.fee.fields)===BigInt(0)||t===BigInt(0)||t>=BigInt(e.target_liquidity))return tG.new_(0);let o=BigInt(1e4);return tG.new_(tU.U64.mulDivUp(tG.value(e.fee.fields),tU.U64.mulDivUp(t,o,BigInt(e.target_liquidity)),o))},(eD=eP.MemezPump||(eP.MemezPump={})).getPumpState=async function(e,t){return await ri(e,t.inner_state)},eD.pump=function(e,t){let o=e.constant_product.fields,r=eP.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=eP.MemezFees.takeWithDiscount(o.meme_swap_fee,c,o.meme_referrer_fee.fields);return c-s},eD.dump=function(e,t){let o=e.constant_product.fields,r=eP.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=eP.MemezBurner.calculate(o.burner.fields,i),u=tG.calcUp(s,a),l=a-(tG.value(s)!==BigInt(0)?u:BigInt(0)),d=(c+i)*l/(n+l);d>i&&(d=i);let p=eP.MemezFees.takeWithDiscount(o.quote_swap_fee,d,o.quote_referrer_fee.fields);return d-p},(ew=tK||(tK={})).getCurveAmountAfterBuy=async function(e,t){let{suiAmount:o,poolId:r,frontendFee:a}=e,n=await ri(t,r),i=await tj.MemezPump.getPumpState(t,n);return o=ea(o,a),tj.MemezPump.pump(i,o)},ew.getSuiAmountAfterSell=async function(e,t){let{curveAmount:o,poolId:r,frontendFee:a}=e,n=await ri(t,r),i=await tj.MemezPump.getPumpState(t,n);return ea(tj.MemezPump.dump(i,o),a)};let rl="0x62412b7268c35f3808336aee57a52836501f40b8ba5d936f8ad275e672befd04";async function rd(e,t){let o,r,{inputAmount:a,accountAddress:n,frontendFee:i,frontendFeeRecipient:c,extendTx:s,isSponsored:u}=e;eC(e.inCoinType===eI||e.inCoinType===ef,"Input must be SUI");let{tx:l,coinIn:d}=s||{},p=eb(a,i||"0"),_=l||new ed;if(d)o=_.splitCoins(d,p),tq.transferOrDestroyZeroCoin(_,eI,d,n);else{let{coinData:e}=await ei({account:n,amount:a,splits:p,coinType:eI,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 rp(e,t,o){if(eC(t.outCoinType===eI||t.outCoinType===ef,"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:`${rl}::math::mul_div_u64`,typeArguments:[],arguments:[r,e.pure.u64(BigInt(1e4*Number(t.frontendFee||"0"))),e.pure.u64(BigInt(1e4))]}),n=e.moveCall({target:"0x2::coin::split",typeArguments:[t.outCoinType],arguments:[o,a]});return e.transferObjects([n],e.pure.address(t.frontendFeeRecipient||t.accountAddress)),{tx:e,coinOut:o}}(tq||(tq={})).transferOrDestroyZeroCoin=function(e,t,o,r){e.moveCall({target:`${rl}::utils::transfer_or_destroy`,typeArguments:[t],arguments:[o,e.pure.address(r)]})};var r_=tY||(tY={});async function rm(e){let t=e||new ed;return t.moveCall({target:`${tN.PACKAGE_ID_V4}::memez_allowed_versions::get_allowed_versions`,arguments:[t.object(tN.MEMEZ_AV_OBJECT_ID)],typeArguments:[]})}r_.getAllowedVersions=rm,r_.buildBuyTx=async function(e,t){eC(!await tj.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 rd(e,t);eC(r,"Coin out is required");let a=o.moveCall({target:`${tN.PACKAGE_ID_V4}::memez_pump::pump`,typeArguments:[e.outCoinType,eI],arguments:[o.object(e.poolId),r,o.pure.vector("address",[]),o.pure.vector("vector<u8>",[]),o.pure.u64(e.minAmountOut),await rm(o)]});return{tx:o,coinOut:a}},r_.buildSellTx=async function(e,t){eC(e.outCoinType===eI||e.outCoinType===ef,"Output must be SUI");let o=await ri(t,e.poolId),{tx:r,coinData:a}=await ei({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[n]=a,[i]=r.moveCall({target:`${tN.PACKAGE_ID_V4}::memez_pump::dump`,typeArguments:[e.inCoinType,e.outCoinType],arguments:[r.object(e.poolId),r.object(o.ipx_meme_coin_treasury),n,r.pure.vector("address",[]),r.pure.u64(e.minAmountOut),await rm(r)]});return await rp(r,e,i)};let rf=new z({network:Z.MAINNET,fullNodeUrl:eA("mainnet")});function rg(){return rf}(eL=t$||(t$={})).getCurveAmountAfterBuy=async function(e){let{suiAmount:t,poolId:o,frontendFee:r}=e;t=ea(t,r);let{memeAmountOut:a}=await rg().quotePump({pool:o,amount:t});return a},eL.getSuiAmountAfterSell=async function(e){let{curveAmount:t,poolId:o,frontendFee:r}=e,{quoteAmountOut:a}=await rg().quoteDump({pool:o,amount:t});return ea(a,r)};var rA=tV||(tV={});async function rb(e,t){let{tx:o,coinOut:r}=await rd(e,t);eC(r,"Coin out is required");let{memeCoin:a,tx:n}=await rg().pump({pool:e.poolId,quoteCoin:r,minAmountOut:e.minAmountOut,tx:o});return{tx:n,coinOut:a}}async function rI(e,t){eC(eg(e.outCoinType),"Output must be SUI");let{tx:o,coinData:r}=await ei({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[a]=r,{quoteCoin:n,tx:i}=await rg().dump({pool:e.poolId,memeCoin:a,tx:o,minAmountOut:e.minAmountOut});return await rp(i,e,n)}rA.buildBuyTx=rb,rA.buildSellTx=rI,rA.getBuyTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:n,walletAddress:i,tradeFee:c},s){eC(eg(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})).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})},rA.getSellTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:n,walletAddress:i,tradeFee:c},s){eC(eg(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})).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})};var rT=((ev={}).BLAST_FUN="BLAST_FUN",ev.MOONBAGS="MOONBAGS",ev);(eR=tJ||(tJ={})).PACKAGE_ID="0xb8df325010942634a4afb3db3901ee215546af43a4ec4af781e7213b0bba7290",eR.CONFIG_OBJECT_ID="0x74aecf86067c6913960ba4925333aefd2b1f929cafca7e21fd55a8f244b70499",eR.LOCK_CONFIG_OBJECT_ID="0xfb09822d9808980abd04c51321adb850701f5f55535c6206658ef4d910c3e9be",eR.BURN_MANAGER_OBJECT_ID="0x1d94aa32518d0cb00f9de6ed60d450c9a2090761f326752ffad06b2e9404f845",eR.POOLS_OBJECT_ID="0xf699e7f2276f5c9a75944b37a0c5b5d9ddfd2471bf6242483b03ab2887d198d0",eR.GLOBAL_CONFIG_OBJECT_ID="0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f",eR.FEE_DENOMINATOR=BigInt(1e4),(eN=(ek=tH||(tH={})).Curves||(ek.Curves={})).calculateAddLiquidityCost=function(e,t,o){return e*t/(t-o)-e},eN.calculateRemoveLiquidityReturn=function(e,t,o){return t-e*t/(e+o)},eN.calculateTokenAmountReceived=function(e,t,o){return t-e*t/(e+o)},(eU=ek.Moonbags||(ek.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)},eU.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=ek.Curves.calculateRemoveLiquidityReturn(i,c,o),l=c-(n||s),d=u,p=o;u>l&&(d=l,p=ek.Curves.calculateAddLiquidityCost(i,c,l)+BigInt(1));let _=p*BigInt(a.platform_fee)/tJ.FEE_DENOMINATOR;return eC(t>=p+_,"Input amount is less than used SUI + fee"),{receivedCurve:d,receivedSui:t-p-_}},eU.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=ek.Curves.calculateRemoveLiquidityReturn(n,a,t);c>i&&(c=i);let s=c*BigInt(r.platform_fee)/tJ.FEE_DENOMINATOR,u=c-s;return{receivedCurve:BigInt(0),receivedSui:u}},(eG=tX||(tX={})).getCurveAmountAfterBuy=async function(e,t){let{suiAmount:o,poolId:r,frontendFee:a}=e,[n,i,c]=await Promise.all([ri(t,r),ri(t,tJ.CONFIG_OBJECT_ID),tH.Moonbags.getDynamicVirtualTokenReserves(t,r)]);void 0!==a&&(o=ea(o,a));let s=o*tJ.FEE_DENOMINATOR/(tJ.FEE_DENOMINATOR+BigInt(i.platform_fee)),{receivedCurve:u}=tH.Moonbags.buyExactInReturnsWithLock({inputAmount:o,amountIn:s,pool:n,config:i,dynamicVirtualTokenReserves:c});return u},eG.getSuiAmountAfterSell=async function(e,t){let{curveAmount:o,poolId:r,frontendFee:a}=e,[n,i]=await Promise.all([ri(t,r),ri(t,tJ.CONFIG_OBJECT_ID)]),{receivedSui:c}=tH.Moonbags.sellReturns({amountIn:o,pool:n,config:i});return void 0!==a?ea(c,a):c},eG.getUsedSuiForTx=async function(e,t){let{suiAmount:o,frontendFee:r}=e,a=await ri(t,tJ.CONFIG_OBJECT_ID);return void 0!==r&&(o=ea(o,r)),o*tJ.FEE_DENOMINATOR/(tJ.FEE_DENOMINATOR+BigInt(a.platform_fee))};var rC=tW||(tW={});async function rM(e,t){let{tx:o,coinOut:r}=await rd(e,t);eC(r,"Coin out is required");let a=await tX.getUsedSuiForTx({suiAmount:BigInt(e.inputAmount),frontendFee:e.frontendFee},t),[n,i]=o.moveCall({target:`${tJ.PACKAGE_ID}::moonbags::buy_exact_in_returns_with_lock`,typeArguments:[e.outCoinType],arguments:[o.object(tJ.CONFIG_OBJECT_ID),o.object(tJ.LOCK_CONFIG_OBJECT_ID),r,o.pure.u64(a),o.pure.u64(e.minAmountOut),o.object(tJ.BURN_MANAGER_OBJECT_ID),o.object(tJ.POOLS_OBJECT_ID),o.object(tJ.GLOBAL_CONFIG_OBJECT_ID),o.object(em),o.object(e_)]});return tq.transferOrDestroyZeroCoin(o,eI,n,e.accountAddress),{tx:o,coinOut:i}}async function rO(e,t){eC(eg(e.outCoinType),"Output must be SUI");let{tx:o,coinData:r}=await ei({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[a]=r,[n,i]=o.moveCall({target:`${tJ.PACKAGE_ID}::moonbags::sell_returns`,typeArguments:[e.inCoinType],arguments:[o.object(tJ.CONFIG_OBJECT_ID),a,o.pure.u64(e.minAmountOut),o.object(e_)]});return tq.transferOrDestroyZeroCoin(o,e.inCoinType,i,e.accountAddress),await rp(o,e,n)}function rE(e){return e}function ry(e){return e}function rS(e){return new Proxy(e,{get(e,t){let o=e[t];return"function"==typeof o?o.bind(e):o}})}rC.buildBuyTx=rM,rC.buildSellTx=rO,rC.getBuyTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:n,walletAddress:i,tradeFee:c},s){eC(eg(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 tX.getCurveAmountAfterBuy({poolId:r,suiAmount:e,frontendFee:c?c.tradeFeePercent:void 0},s)).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})},rC.getSellTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:n,walletAddress:i,tradeFee:c},s){eC(eg(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 tX.getSuiAmountAfterSell({poolId:r,curveAmount:e,frontendFee:c?c.tradeFeePercent:void 0},s)).toString()).multipliedBy(1-n).toFixed(0,3)),{tx:l,coinOut:d}=await rO({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})},(ej=tz||(tz={})).LAST_PACKAGE_ID="0x8c36ea167c5e6da8c3d60b4fc897416105dcb986471bd81cfbfd38720a4487c0",ej.newHolder=function(e){return e.moveCall({target:`${ej.LAST_PACKAGE_ID}::oracle::new_holder`,typeArguments:[],arguments:[]})},ej.getPrice=function(e){let{txb:t,coinOracleId:o,holder:r,coinPriceId:a}=e;t.moveCall({target:`${ej.LAST_PACKAGE_ID}::pyth::get_price`,typeArguments:[],arguments:[t.object(o),r,t.object(a),t.object(en)]})},(eK=tZ||(tZ={})).PYTH_URLS=["https://hermes.pyth.network"],eK.WORMHOLE_STATE_ID="0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",eK.PYTH_STATE_ID="0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",eK.newPythConnections=function(e){return e||(e=eK.PYTH_URLS),e.map(e=>new Q(e,{timeout:3e3}))},eK.newPythClient=function(e){return e||(e=new ep({url:"https://fullnode.mainnet.sui.io:443"})),new ee(e,eK.PYTH_STATE_ID,eK.WORMHOLE_STATE_ID)},eK.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},(eq=tQ||(tQ={})).POOL_REGISTRY_OBJ_ID="0xfcc774493db2c45c79f688f88d28023a3e7d98e4ee9f48bbf5c7990f651577ae",eq.PROTOCOL_FEE_VAULT_OBJ_ID="0xf194d9b1bcad972e45a7dd67dd49b3ee1e3357a00a50850c52cd51bb450e13b4",eq.TREASURY_OBJ_ID="0x28e499dff5e864a2eafe476269a4f5035f1c16f338da7be18b103499abf271ce",eq.INSURANCE_FUND_OBJ_ID="0xf0c40d67b078000e18032334c3325c47b9ec9f3d9ae4128be820d54663d14e3b",eq.REFERRAL_VAULT_OBJ_ID="0x35d35b0e5b177593d8c3a801462485572fc30861e6ce96a55af6dc4730709278",(eY=t0||(t0={})).LAST_PACKAGE_ID="0xf369250dc5a17e9d5a84a3b0cf5aea715c0682170e726dd601f03ade7ce4decb",eY.swap=function(e){eC(e.protocol===o7.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(tQ.POOL_REGISTRY_OBJ_ID),t.object(tQ.PROTOCOL_FEE_VAULT_OBJ_ID),t.object(tQ.TREASURY_OBJ_ID),t.object(tQ.INSURANCE_FUND_OBJ_ID),t.object(tQ.REFERRAL_VAULT_OBJ_ID),t.pure.bool(a),t.pure.u64(n)]})},(e$=t6||(t6={})).STAKED_SUI_VAULT_OBJ_ID="0x2f8f6d5da7f13ea37daa397724280483ed062769813b6f31e9788e59cc88994d",e$.SAFE_TREASURY_OBJECT_ID="0xeb685899830dd5837b47007809c76d91a098d52aabbf61e8ac467c59e5cc4610",e$.REFERRAL_VAULT_OBJ_ID="0x4ce9a19b594599536c53edb25d22532f82f18038dc8ef618afd00fbbfb9845ef",e$.VALIDATOR_ADDRESS="0xd30018ec3f5ff1a3c75656abf927a87d7f0529e6dc89c7ddd1bd27ecb05e3db2",(eV=t4||(t4={})).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(t6.STAKED_SUI_VAULT_OBJ_ID),t.object(t6.SAFE_TREASURY_OBJECT_ID),t.object(eo),t.object(t6.REFERRAL_VAULT_OBJ_ID),t.pure.address(t6.VALIDATOR_ADDRESS),t.pure.bool(r),t.pure.u64(a)]})},(eJ=t1||(t1={})).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=t2||(t2={})).MEMEZ_AV_OBJ_ID="0x2319e3e76dfad73d8f4684bdbf42be4f32d8ce4521dd61becc8261dc918d82c0",eH.MEMEZ_FUN_OBJ_ID="0x943948644f06942b8b660ca541b10a05f6a7be23ce4069944a3665e7e698930d",eH.IPX_TREASURY_STANDARD_OBJ_ID="0x051e11b667659192917db94e5175fa066909d4dfc04d2663528f499c4afc6999",(eX=t3||(t3={})).LAST_PACKAGE_ID="0x8b1e84ed9bc79d31160600254d65810f6bc6d2352f174a60ed041017d0a2a87a",eX.swap=function(e){eC(e.protocol===o7.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(t2.MEMEZ_FUN_OBJ_ID),t.object(t2.IPX_TREASURY_STANDARD_OBJ_ID),t.object(t2.MEMEZ_AV_OBJ_ID),t.pure.bool(n),t.pure.u64(i)]})},(t5||(t5={})).GLOBAL_CONFIG_OBJ_ID="0x03db251ba509a8d5d8777b6338836082335d93eecbdd09a11e190a1cff51c352",(eW=t8||(t8={})).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(t5.GLOBAL_CONFIG_OBJ_ID),t.object(r),t.pure.bool(n),t.pure.u64(a),t.object(en)]})},(t9||(t9={})).DEX_INFO_OBJ_ID="0x3f2d9f724f4a1ce5e71676448dc452be9a6243dac9c5b975a588c8c867066e92",(ez=t7||(t7={})).LAST_PACKAGE_ID="0xf52bdd65ee347e8994170f8c331cf0c23a55281b3282467f14ccbb3e2a7f928f",ez.swap=function(e){let{txb:t,swapContext:o,aToB:r,amountIn:a,coinAType:n,coinBType:i,packageId:c}=e;t.moveCall({target:`${c??ez.LAST_PACKAGE_ID}::bluemove_cpmm_router::swap`,typeArguments:[n,i],arguments:[o,t.object(t9.DEX_INFO_OBJ_ID),t.pure.bool(r),t.pure.u64(a)]})},(oe||(oe={})).ORACLE_OBJ_ID="0xfa3975b98f3d0e3df18ed88ae6e69db31836b3f4212df02fae144b1e5a89ca8e",(eZ=ot||(ot={})).LAST_PACKAGE_ID="0xfb4f0f6fe3ddc4253e05d0e147556ea7941300c7db4262d1a5993eb20a6cbdb3",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(oe.ORACLE_OBJ_ID),t.object(en),t.pure.u64(c),t.pure.bool(i)]})},(oo||(oo={})).GLOBAL_CONFIG="0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f",(eQ=or||(or={})).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(oo.GLOBAL_CONFIG),t.object(n),t.pure.bool(i),t.pure.u64(c),t.object(en)]})},(e0=oa||(oa={})).GLOBAL_CONFIG_OBJ_ID="0xf31b605d117f959b9730e8c07b08b856cb05143c5e81d5751c90d2979e82f599",e0.VERSIONED_OBJ_ID="0x05370b2d656612dd5759cbe80463de301e3b94a921dfc72dd9daa2ecdeb2d0a8",(e6=on||(on={})).LAST_PACKAGE_ID="0x9ab3ba62b4327a7d90e4aed1c025b62736f035911ad7bab830c065ec84ef1ffa",e6.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinAType:i,coinBType:c,packageId:s}=e,u=[o,t.object(oa.GLOBAL_CONFIG_OBJ_ID),t.object(oa.VERSIONED_OBJ_ID),t.object(r),t.pure.bool(n),t.pure.u64(a),t.object(en)];t.moveCall({target:`${s??e6.LAST_PACKAGE_ID}::cetus_dlmm_router::swap`,typeArguments:[i,c],arguments:u})},(e4=oi||(oi={})).GLOBAL_CONFIG="0x699d455ab8c5e02075b4345ea1f91be55bf46064ae6026cc2528e701ce3ac135",e4.DEEP_TYPE="0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP",(e1=oc||(oc={})).LAST_PACKAGE_ID="0xbc23dacd6f66386e4a512eef1f3b0ccaad8e7d24eac7432d67737b22f661a810",e1.swap=function(e){eC(e.protocol===o7.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:[oi.DEEP_TYPE]});t.moveCall({target:`${u??e1.LAST_PACKAGE_ID}::deepbook_v3_router::swap`,typeArguments:[r,a],arguments:[o,t.object(oi.GLOBAL_CONFIG),t.object(n),t.pure.u64(c),t.pure.bool(i),l,t.object(en)]})},(os||(os={})).GLOBAL_OBJ_ID="0x935229a3c32399e9fb207ec8461a54f56c6af5744c64442435ac217ab28f0d59",(e2=ou||(ou={})).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(os.GLOBAL_OBJ_ID),t.object(r),t.pure.bool(i),t.pure.u64(c)]})},(ol||(ol={})).FERRA_GLOBAL_CONFIG_ID="0x2cd8382c19e6994f16df204e9b8cddd04bdc486c251de75ac66ac4e48e3e7081",(e3=od||(od={})).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(ol.FERRA_GLOBAL_CONFIG_ID),t.object(r),t.pure.bool(a),t.pure.u64(n),t.object("0x6")]})},(op||(op={})).FERRA_GLOBAL_CONFIG_ID="0x5c9dacf5a678ea15b8569d65960330307e23d429289ca380e665b1aa175ebeca",(e5=o_||(o_={})).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(op.FERRA_GLOBAL_CONFIG_ID),t.object(r),t.pure.bool(a),t.pure.u64(n),t.object(en)]})},(e8=om||(om={})).POOL_REGISTRY_OBJ_ID="0x27565d24a4cd51127ac90e4074a841bbe356cca7bf5759ddc14a975be1632abc",e8.VERSIONED_OBJ_ID="0x67624a1533b5aff5d0dfcf5e598684350efd38134d2d245f475524c03a64e656",(e9=of||(of={})).LAST_PACKAGE_ID="0x350a752d3388165e578cc33a39655a6da83613cf4e58c8d9d0723711c2603e17",e9.swap=function(e){eC(e.protocol===o7.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(om.POOL_REGISTRY_OBJ_ID),t.object(om.VERSIONED_OBJ_ID),t.pure.u64(n),t.pure.u64(i),t.pure.bool(c),t.object(en)]})},(og||(og={})).CONTAINER_OBJ_ID="0xb65dcbf63fd3ad5d0ebfbf334780dc9f785eff38a4459e37ab08fa79576ee511",(e7=oA||(oA={})).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(og.CONTAINER_OBJ_ID),t.pure.bool(n),t.pure.u64(i)]})},(te=ob||(ob={})).GLOBAL_CONFIG_OBJ_ID="0xe93baa80cb570b3a494cbf0621b2ba96bc993926d34dc92508c9446f9a05d615",te.REWARDER_VAULT_OBJ_ID="0xfb971d3a2fb98bde74e1c30ba15a3d8bef60a02789e59ae0b91660aeed3e64e1",te.STATS_OBJ_ID="0x6822a33d1d971e040c32f7cc74507010d1fe786f7d06ab89135083ddb07d2dc2",te.PRICE_PROVIDER_OBJ_ID="0x854b2d2c0381bb656ec962f8b443eb082654384cf97885359d1956c7d76e33c9",(tt=oI||(oI={})).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(ob.GLOBAL_CONFIG_OBJ_ID),t.object(ob.REWARDER_VAULT_OBJ_ID),t.object(ob.STATS_OBJ_ID),t.object(ob.PRICE_PROVIDER_OBJ_ID),t.object(r),t.pure.bool(i),t.pure.u64(c),t.object(en)]})},(to=oT||(oT={})).LAST_PACKAGE_ID="0x8969ed3e56c1dbdaf9df52f812d69c6c45fe5a4bab7093c88f5a8697a409398e",to.swap=function(e){eC(e.protocol===o7.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(en)]})},(tr=oC||(oC={})).LAST_PACKAGE_ID="0x5d01f22e5471a5912a88e15d62fdcb922beba65b8e8dfe1a715aebf743194f4a",tr.swap=function(e){eC(e.protocol===o7.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(en)]})},(ta=oM||(oM={})).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)]})},(oO||(oO={})).STAKING_OBJ_ID="0x10b9d30c28448939ce6c4d6c6e0ffce4a7f8a4ada8248bdad09ef8b70e4a3904",(oE||(oE={})).VALIDATOR_ID="0x7b3ba6de2ae58283f60d5b8dc04bb9e90e4796b3b2e0dea75569f491275242e7",(tn=oy||(oy={})).LAST_PACKAGE_ID="0x7be077dd73c85e788c2a49a51f0627066d81d3dc9982c268e3691265a81d544d",tn.swap=function(e){eC(e.protocol===o7.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(oO.STAKING_OBJ_ID),t.object(r),t.pure.id(oE.VALIDATOR_ID),t.pure.bool(a),t.pure.u64(n)]})},(oS||(oS={})).VERSION_OBJ_ID="0xf5145a7ac345ca8736cf8c76047d00d6d378f30e81be6f6eb557184d9de93c78",(ti=oh||(oh={})).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(oS.VERSION_OBJ_ID),t.pure.bool(i),t.pure.u64(c),t.object(en)]})},(tc=oF||(oF={})).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=oB||(oB={})).FACTORY_OBJ_ID="0xedb456e93e423dd75a8ddebedd9974bb661195043027e32ce01649d6ccee74cf",ts.GLOBAL_CONFIG_OBJ_ID="0x4c4e1402401f72c7d8533d0ed8d5f8949da363c7a3319ccef261ffe153d32f8a",(tu=oP||(oP={})).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(oB.FACTORY_OBJ_ID),t.object(oB.GLOBAL_CONFIG_OBJ_ID),t.pure.u64(c),t.pure.bool(i),t.object(en)]})},(ox||(ox={})).GLOBAL_CONFIG="0x4c4e1402401f72c7d8533d0ed8d5f8949da363c7a3319ccef261ffe153d32f8a",(tl=oD||(oD={})).LAST_PACKAGE_ID="0xbe5f590339c55ca8ebbf93cedfb68aafd479d71e1c57043246f7dcf352745242",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(ox.GLOBAL_CONFIG),t.object(n),t.pure.bool(i),t.pure.u64(c),t.object(en)]})},(td=ow||(ow={})).LATEST_PACKAGE_ID="0xfab91518218f10204b083dba1e62c8bfc23f14fb87742158043e5faec4670ec4",td.swap=function(e){let t,o,r;eC(e.protocol===o7.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=[tv.createCap({coinType:m,createCapFunc:"create_withdraw_cap",...e})]):m===d?(r="swap_to_meta_coin",t=[d,_],o=[tv.createCap({coinType:_,createCapFunc:"create_deposit_cap",...e})]):(r="swap",t=[d,_,m],o=[tv.createCap({coinType:_,createCapFunc:"create_deposit_cap",...e}),tv.createCap({coinType:m,createCapFunc:"create_withdraw_cap",...e})]),a.moveCall({target:`${p??td.LATEST_PACKAGE_ID}::metastable_router::${r}`,typeArguments:t,arguments:[n,a.object(l),a.object(tv.VERSION_OBJ_ID),...o,a.pure.u64(c)]})},(oL||(oL={})).VERSION_OBJ_ID="0x2375a0b1ec12010aaea3b2545acfa2ad34cfbba03ce4b59f4c39e1e25eed1b2a",(tp=ov||(ov={})).LAST_PACKAGE_ID="0xba7ab4c8c39024fa0052bb4f00548a2e7b60742bb4ed0b87bc1d945fd8209102",tp.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??tp.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(oL.VERSION_OBJ_ID),t.object(en)]})},(oR||(oR={})).CONFIGURATION_OBJ_ID="0xd746495d04a6119987c2b9334c5fefd7d8cff52a8a02a3ea4e3995b9a041ace4",(t_=ok||(ok={})).LAST_PACKAGE_ID="0x5a259db4b1d17fafc09185c9a71bac36f25f9ee462e72894c8610e5a58b79f8f",t_.swap=function(e){eC(e.protocol===o7.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??t_.LAST_PACKAGE_ID}::movepump_router::swap`,typeArguments:[n?a:r],arguments:[o,t.object(oR.CONFIGURATION_OBJ_ID),t.object(t9.DEX_INFO_OBJ_ID),t.object(en),t.pure.u64(c),t.pure.bool(n),t.pure.u64(i)]})},(oN||(oN={})).STATE_OBJ_ID="0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",(tm=oU||(oU={})).LAST_PACKAGE_ID="0xd615fed37d692280047068e80d3a6bb685aa9d574608054c9df881d6a7378fab",tm.swap=function(e){let t,o;eC(e.protocol===o7.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??tm.LAST_PACKAGE_ID}::obric_router::swap`,typeArguments:[i,c],arguments:[a,r.object(n),r.pure.u64(u),r.pure.bool(s),r.object(oN.STATE_OBJ_ID),r.object(t),r.object(o),r.object(en)]})},(tf=oG||(oG={})).VERSION_OBJ_ID="0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7",tf.MARKET_OBJ_ID="0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9",(tg=oj||(oj={})).LAST_PACKAGE_ID="0xea409bb08c8a09e4127f859d9c36b8b62ca609282aa1e443091db6b7a7409ee7",tg.swap=function(e){eC(e.protocol===o7.SCALLOP);let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,scoinTreasury:c,packageId:s}=e;t.moveCall({target:`${s??tg.LAST_PACKAGE_ID}::scallop_router::swap`,typeArguments:[r,a],arguments:[o,t.object(oG.VERSION_OBJ_ID),t.object(oG.MARKET_OBJ_ID),t.object(c),t.pure.u64(i),t.pure.bool(n),t.object(en)]})},(oK||(oK={})).ORACLE_HOLDER_OBJ_ID="0x8c36ea167c5e6da8c3d60b4fc897416105dcb986471bd81cfbfd38720a4487c0",(tA=oq||(oq={})).LAST_PACKAGE_ID="0x918a30e2a05d24ea9451e2d2900d055f74e6752f2e10251fa50c7175831b1958",tA.swap=function(e){eC(e.protocol===o7.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),g=_.get(p);eC(f,"Not found priceInfoAId in pythObjectIdMap"),eC(g,"Not found priceInfoBId in pythObjectIdMap");let A=tz.newHolder(t);tz.getPrice({txb:t,coinPriceId:d,holder:A,coinOracleId:u}),tz.getPrice({txb:t,coinPriceId:p,holder:A,coinOracleId:l}),t.moveCall({target:`${m??tA.LAST_PACKAGE_ID}::sevenk_cpmm_router::swap`,typeArguments:[a,n,s],arguments:[o,t.object(r),t.object(oK.ORACLE_HOLDER_OBJ_ID),t.pure.bool(i),t.pure.u64(c)]})},(oY||(oY={})).CONFIGURATION_OBJ_ID="0xe79fff6c77d81f9a8efb729e25bf0037deec42518d40b978f274a4915d7e1ec9",(tb=o$||(o$={})).LAST_PACKAGE_ID="0x0a5dc665dc3c1c846a6d1e00811c84cae3510c839ab4dc0873f85dc8908d0606",tb.swap=function(e){eC(e.protocol===o7.SEVENK_FUN,"Invalid protocol");let{txb:t,swapContext:o,aToB:r,amountIn:a,coinBType:n,packageId:i}=e;t.moveCall({target:`${i??tb.LAST_PACKAGE_ID}::sevenk_fun_router::swap`,typeArguments:[n],arguments:[o,t.object(oY.CONFIGURATION_OBJ_ID),t.object(og.CONTAINER_OBJ_ID),t.object(en),t.pure.bool(r),t.pure.u64(a)]})},(tI=oV||(oV={})).LAST_PACKAGE_ID="0xa6d129c0b314e85d1bc5aecf305d64212bdd5d466457531f4f624fef5f2e7751",tI.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinBType:i,packageId:c}=e;t.moveCall({target:`${c??tI.LAST_PACKAGE_ID}::springsui_router::swap`,typeArguments:[i],arguments:[o,t.object(r),t.object(eo),t.pure.u64(a),t.pure.bool(n)]})},(oJ||(oJ={})).CONFIG_OBJ_ID="0x881fd0a12ca4fa48991f5c27ba57d17f1ec147fa15f43b3cb760cc3bd7ba9402",(tT=oH||(oH={})).LAST_PACKAGE_ID="0xa314a64962ed4b91a6b4085de4dff2e631fd4c731dbca671a74489955df322ef",tT.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(oJ.CONFIG_OBJ_ID),t.pure.bool(a),t.pure.u64(n),t.object("0x6")];t.moveCall({target:`${s??tT.LAST_PACKAGE_ID}::srm_cpmm_router::swap`,typeArguments:[i,c],arguments:u})},(tM=(tC=oX||(oX={})).Oracle||(tC.Oracle={})).PACKAGE_ID="0xe84b649199654d18c38e727212f5d8dacfc3cf78d60d0a7fc85fd589f280eb2b",tM.getPythPrice=function(e){let{txb:t,oracleRegistryId:o,priceInfoId:r,oracleIndex:a}=e;return t.moveCall({target:`${tM.PACKAGE_ID}::oracles::get_pyth_price`,typeArguments:[],arguments:[t.object(o),t.object(r),t.pure.u64(a),t.object(en)]})};var rh=oW||(oW={});function rF(e,t){eC(e.protocol===o7.STEAMM_OMM||e.protocol===o7.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:g,pythPriceFeedIdB:A,pythInfoObjectIdMap:b,oracleRegistryId:I,oracleIndexA:T,oracleIndexB:C,packageId:M}=e,O=b.get(g),E=b.get(A);eC(O,"Not found priceInfoAId in pythObjectIdMap"),eC(E,"Not found priceInfoBId in pythObjectIdMap");let y=oX.Oracle.getPythPrice({txb:o,oracleRegistryId:I,priceInfoId:O,oracleIndex:T}),S=oX.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(en)]})}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="0xd7430ec87be03b22e29ad95e811d8146fb0ece72037cf546618297def842b57e",rh.swapCpmm=function(e){eC(e.protocol===o7.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(en)]})},rh.swapOmm=function(e){rF(e,0)},rh.swapOmmV2=function(e){rF(e,1)},rh.getOmmRouterModule=rB,(tO=oz||(oz={})).LAST_PACKAGE_ID="0x7a1cf89025a60161e84809784d772263231fad08a7cb76a88ca1ba69e0a656da",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}::suiswap_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.pure.bool(i),t.pure.u64(c),t.object(en)]})},(tE=oZ||(oZ={})).VERSIONED="0x0309b66202e9aaf470081fffee7ffc0fbd50e3b7400d4f56fd06502e4dbbd676",tE.POOL_REGISTRY="0xcd0a614c4cbbf173f59dee2602c43a1717f283215ed7a0bb1d55d786af16fbcd",(ty=oQ||(oQ={})).LAST_PACKAGE_ID="0x79957062a7424ed9c2eb83932e4c4fcc3fee67ab3c8f6f874c54e417178bbb7a",ty.swap=function(e){eC(e.protocol===o7.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??ty.LAST_PACKAGE_ID}::tradeport_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(oZ.POOL_REGISTRY),t.pure.u64(c),t.object(oZ.VERSIONED),t.pure.bool(n),t.pure.u64(i),t.object(en)]})},(o0||(o0={})).POOL_VERSIONED="0xf1cf0e81048df168ebeb1b8030fad24b3e0b53ae827c25053fff0779c1445b6f",(tS=o6||(o6={})).LAST_PACKAGE_ID="0x512d63711ff38353fb167238b0529001b6871c1727c67ce3bf6ec23556b0f1da",tS.swap=function(e){eC(e.protocol===o7.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??tS.LAST_PACKAGE_ID}::turbos_clmm_router::swap`,typeArguments:[r,a,n],arguments:[o,t.object(i),t.object(o0.POOL_VERSIONED),t.pure.bool(c),t.pure.u64(s),t.object(en)]})},(o4||(o4={})).CONFIGURATION_OBJ_ID="0xd86685fc3c3d989385b9311ef55bfc01653105670209ac4276ebb6c83d7df928",(th=o1||(o1={})).LAST_PACKAGE_ID="0x1fad13f09797aa87a4385d0b1efb2de963ba16742447b1ad5a3b0c5b1d1c588b",th.swap=function(e){eC(e.protocol===o7.TURBOS_FUN,"Invalid protocol");let{txb:t,swapContext:o,coinBType:r,aToB:a,amountIn:n,packageId:i}=e;t.moveCall({target:`${i??th.LAST_PACKAGE_ID}::turbos_fun_router::swap`,typeArguments:[r],arguments:[o,t.object(o4.CONFIGURATION_OBJ_ID),t.object(en),t.pure.bool(a),t.pure.u64(n)]})},(o2||(o2={})).VOLO_CERT_METADATA_ID="0x680cd26af32b2bde8d3361e804c53ec1d1cfe24c7f039eb7f549e8dfde389a60",(tF=o3||(o3={})).LAST_PACKAGE_ID="0x7c8d95256342f904d5f251776903a17905d87c95f387b3a35cc2aecc23b3c042",tF.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,packageId:i}=e;t.moveCall({target:`${i??tF.LAST_PACKAGE_ID}::volo_router::swap`,arguments:[o,t.object(r),t.object(o2.VOLO_CERT_METADATA_ID),t.object(eo),t.pure.bool(a),t.pure.u64(n)]})},(tB=o5||(o5={})).RouterSwapFunctionMap={[o7.AFTERMATH_CPMM]:t0.swap,[o7.AFTERMATH_LSD]:t4.swap,[o7.ALPHAFI_LSD]:t1.swap,[o7.BLASTFUN]:t3.swap,[o7.BLUEFIN_CLMM]:t8.swap,[o7.BLUEMOVE_CPMM]:t7.swap,[o7.BOLT]:ot.swap,[o7.CETUS_CLMM]:or.swap,[o7.CETUS_DLMM]:on.swap,[o7.DEEPBOOK_V3]:oc.swap,[o7.DIP_CPMM]:ou.swap,[o7.FERRA_CLMM]:od.swap,[o7.FERRA_DLMM]:o_.swap,[o7.FLOWX_CPMM]:oA.swap,[o7.FLOWX_CLMM]:of.swap,[o7.FULLSAIL_CLMM]:oI.swap,[o7.HAEDAL_CPMM]:oT.swap,[o7.HAEDAL_CPMM_V2]:oC.swap,[o7.HAEDAL_LSD]:oM.swap,[o7.HAEDAL_LSD_WAL]:oy.swap,[o7.KRIYA_CLMM]:oh.swap,[o7.KRIYA_CPMM]:oF.swap,[o7.MAGMA_ALMM]:oP.swap,[o7.MAGMA_CLMM]:oD.swap,[o7.METASTABLE]:ow.swap,[o7.MOMENTUM_CLMM]:ov.swap,[o7.MOVEPUMP]:ok.swap,[o7.OBRIC]:oU.swap,[o7.SCALLOP]:oj.swap,[o7.SEVENK_CPMM]:oq.swap,[o7.SEVENK_FUN]:o$.swap,[o7.SPRINGSUI]:oV.swap,[o7.SRM_CPMM]:oH.swap,[o7.STEAMM_CPMM]:oW.swapCpmm,[o7.STEAMM_OMM]:oW.swapOmm,[o7.STEAMM_OMM_V2]:oW.swapOmmV2,[o7.SUISWAP_CPMM]:oz.swap,[o7.TRADEPORT_CLMM]:oQ.swap,[o7.TURBOS_CLMM]:o6.swap,[o7.TURBOS_FUN]:o1.swap,[o7.VOLO]:o3.swap},tB.swap=function(e){(0,tB.RouterSwapFunctionMap[e.protocol])(e)},(o8||(o8={})).buildAggregatorSwapTransaction=async function(e){let{tx:t,coinOutType:o,tradePaths:r,pythConnections:a,pythClient:n,packageIdMap:i}=e,c=tD.openSwap(e),s=await tZ.updatePythPriceIDs({priceFeedIds:function(e){let t=new Set;for(let o of e)"pythPriceFeedIdA"in o&&t.add(o.pythPriceFeedIdA),"pythPriceFeedIdB"in o&&t.add(o.pythPriceFeedIdB),"pythPriceFeedIdBase"in o&&t.add(o.pythPriceFeedIdBase),"pythPriceFeedIdMeta"in o&&t.add(o.pythPriceFeedIdMeta),"pythPriceFeedIdEth"in o&&t.add(o.pythPriceFeedIdEth);return[...t]}(r),txb:t,pythClient:n,pythConnections:a});for(let e=0;e<r.length;e++){let o=r[e],[a,n]=o.aToB?[o.coinInType,o.coinOutType]:[o.coinOutType,o.coinInType];o5.swap({...o,txb:t,swapContext:c,amountIn:o.amountIn,coinAType:a,coinBType:n,packageId:i?.get(o.protocol),pythInfoObjectIdMap:s})}return tD.closeSwap({tx:t,coinOutType:o,swapSession:c})};let rD=tZ.newPythConnections(),rw=tZ.newPythClient();var rL=o9||(o9={});function rv(e){var t,o;let r,a,{buildTxParam:n,rawRouteParam:i}=e;switch(i.sourceRoute){case"CETUS":r=tR.convert(i.rawRoute);break;case"FLOWX":r=tk.convert(i.rawRoute);break;case"SEVENK":r=tw.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??rD,pythClient:n.pythClient??rw}}rL.toMetaAggregatorBuildTxParams=rv,rL.buildTx=function(e){let t=rv(e);return o8.buildAggregatorSwapTransaction(t)};class rR{sdk;_astrosAggregator;_aftermathAggregator;_sevenkAggregator;_cetusAggregator;_flowXAggregator;constructor(e){this.sdk=e,this._astrosAggregator=new ro({defaultTradeFee:e.options.tradeFee,astrosApiKey:e.options.astrosApiKey},e.suiClient),this._aftermathAggregator=new rt({defaultTradeFee:e.options.tradeFee,aftermathApiKey:e.options.aftermathApiKey,aftermathApiEndpoint:e.options.aftermathApiEndpoint},e.suiClient),this._sevenkAggregator=new re({defaultTradeFee:e.options.tradeFee,sevenKApiKey:e.options.sevenKApiKey},e.suiClient),this._cetusAggregator=new rr({defaultTradeFee:e.options.tradeFee,cetusApiKey:e.options.cetusApiKey,cetusApiEndpoint:e.options.cetusApiEndpoint,cetusPartnerId:e.options.cetusPartnerId},e.suiClient),this._flowXAggregator=new rn({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 ra.ASTROS:{let e,r=await this._astrosAggregator.getTradeRoute(t);if(!r)return null;let n=ro.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 ra.AFTERMATH:{let e=await this._aftermathAggregator.getTradeRoute(t);if(!e)return null;let r=rt.toCommonTradeRoutes(e);if(!r)return null;o={route:r,aggregatorRoute:e};break}case ra.SEVENK:{let e=await this._sevenkAggregator.getTradeRoute(t);if(!e)return null;let r=re.toCommonTradeRoutes(e);if(!r)return null;o={route:r,aggregatorRoute:e};break}case ra.CETUS:{let e=await this._cetusAggregator.getTradeRoute(t);if(!e)return null;let r=rr.toCommonTradeRoutes(e,t.coinInType,t.coinOutType);if(!r)return null;o={route:r,aggregatorRoute:e};break}case ra.FLOWX:{let e=await this._flowXAggregator.getTradeRoute(t);if(!e)return null;let r=rn.toCommonTradeRoutes(e);if(!r)return null;o={route:r,aggregatorRoute:e}}}return o}async getTransactionByRoute(e,t){switch(e){case ra.ASTROS:return this._astrosAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case ra.AFTERMATH:return this._aftermathAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage});case ra.SEVENK:return this._sevenkAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case ra.CETUS:return this._cetusAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case ra.FLOWX:return this._flowXAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee})}}async getTradeTransaction(e,t){let o=await this.getTradeRoute(e,{coinInAmount:t.coinInAmount,coinInType:t.coinInType,coinOutType:t.coinOutType,tradeFee:t.tradeFee,metaAggregator:t.metaAggregator});if(!o)return null;let r=await this.getTransactionByRoute(e,{walletAddress:t.walletAddress,completeRoute:o.aggregatorRoute,slippage:t.slippage,tradeFee:t.tradeFee});return{route:o.route,aggregatorRoute:o.aggregatorRoute,transaction:r}}async getTradeTransactionWithBestRate(e){let t=Object.keys(ra),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(ra),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(eg(o)||eg(r),"One of coinInType or coinOutType must be SUI");let a=eg(o);switch(e){case rT.MOONBAGS:if(a)return await tX.getCurveAmountAfterBuy({poolId:t.poolId,suiAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0},this.sdk.suiClient);return await tX.getSuiAmountAfterSell({poolId:t.poolId,curveAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0},this.sdk.suiClient);case rT.BLAST_FUN:if(a)return await t$.getCurveAmountAfterBuy({poolId:t.poolId,suiAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0});return await t$.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(eg(r)||eg(a),"One of coinInType or coinOutType must be SUI");let n=eg(r);switch(e){case rT.MOONBAGS:o=n?await tW.getBuyTransaction(t,this.sdk.suiClient):await tW.getSellTransaction(t,this.sdk.suiClient);break;case rT.BLAST_FUN:o=n?await tV.getBuyTransaction(t,this.sdk.suiClient):await tV.getSellTransaction(t,this.sdk.suiClient);break;default:throw Error(`Unsupported bonding curve platform: ${e}`)}return o}}let 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=eA(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,rl as BLUEFIN_PACKAGE_ID,rk as CurveModule,rN as DEFAULT_TRADE_FEE,rG as DraftTransferTx,rU as NoodlesSdk,re as SevenKAggregator,rE as adaptSuiClient,ry as adaptTransaction,rt as AftermathAggregator,tQ as AftermathCpmm,t6 as AftermathLsd,o9 as AggregatorConverter,ro as AstrosAggregator,t2 as Blastfun,tq as BluefinTx,t5 as BluefinClmm,t9 as BluemoveCpmm,oe as Bolt,tX as MoonbagsCalculation,rr as CetusAggregator,tR as CetusAggregatorConverter,oo as CetusClmm,oa as CetusDlmm,eE as checkIsSui,ra as SupportedAggregator,tN as BlastFunConstants,tJ as MoonbagsConstants,rS as createCompatibleSuiClient,tK as BlastFunCustomCalculation,tY as BlastFunCustomTransaction,oi as DeepbookV3,eO as denormalizeTokenType,os as DipCpmm,rj as BASE_BPS,ol as FerraClmm,op as FerraDlmm,rn as FlowXAggregator,tk as FlowXAggregatorConverter,og as FlowxCpmm,ob as FullsailClmm,rg as getMemezPumpSDK,rc as getMoveObject,ri as getMoveObjectContent,oE as HaedalLsdWal,oS as KriyaClmm,oB as MagmaAlmm,ox as MagmaClmm,o8 as MetaAggregator,tv as Metastable,oL as MomentumClmm,oR as Movepump,eM as normalizeTokenType,oN as Obric,tj as BlastFunPackage,tG as Bps,tU as MathUtils,tH as MoonbagsPackage,tz as PythPrice,tZ as PythUtils,oG as Scallop,t$ as BlastFunSDKCalculation,tV as BlastFunSDKTransaction,tw as SevenKAggregatorConverter,oK as SevenkCpmm,oY as SevenkFun,rd as splitSuiCoinAfterFeeFromBuyTx,rp as splitSuiCoinAfterFeeFromSellTx,oJ as SrmCpmm,oX as Steamm,oZ as TradeportClmm,tW as MoonbagsTransaction,o0 as TurbosClmm,o4 as TurbosFun,o7 as AggregatorProtocol,rT as SupportedBondingCurve,tL as TradeFeeOptions,o5 as RouterUtils,o2 as Volo,oO 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 g,CETUSDLMM as A,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,toHex as er,getAmountAfterFee as ea,SUI_CLOCK_OBJECT_ID as en,getSplitCoinForTx 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_METADATA_OBJECT_ID as em,SUI_TYPE as ef,isSuiCoinType as eg,getFullnodeUrl as eA,getSplitCoinsAfterFee as eb,SUI_FULL_TYPE as eI,fromBase64 as eT,tiny_invariant as eC}from"./982.js";function eM(e){return e===ef?eI:e}function eO(e){return e===eI?ef:e}function eE(e){return e===eI||e===ef}(tP=tD||(tD={})).MAX_AMOUNT_IN="18446744073709551615",tP.LAST_PACKAGE_ID="0x7e57926855b32baa3b3cabed89380b8d415606fdedadc18e58bd1ef1e60aee48",tP.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:`${tP.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},tP.closeSwap=function(e){let{tx:t,coinOutType:o,swapSession:r}=e,[a]=t.moveCall({target:`${tP.LAST_PACKAGE_ID}::aggregator::close_swap`,typeArguments:[o],arguments:[r]});return a};var ey,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,e1,e2,e3,e5,e8,e9,e7,te,tt,to,tr,ta,tn,ti,tc,ts,tu,tl,td,tp,t_,tm,tf,tg,tA,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,t1,t2,t3,t5,t8,t9,t7,oe,ot,oo,or,oa,on,oi,oc,os,ou,ol,od,op,o_,om,of,og,oA,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,o1,o2,o3,o5,o8,o9,o7=((tx={}).AFTERMATH_CPMM="aftermath_cpmm",tx.AFTERMATH_LSD="aftermath_lsd",tx.ALPHAFI_LSD="alphafi_lsd",tx.BLASTFUN="blastfun",tx.BLUEFIN_CLMM="bluefin_clmm",tx.BLUEMOVE_CPMM="bluemove_cpmm",tx.BOLT="bolt",tx.CETUS_CLMM="cetus_clmm",tx.CETUS_DLMM="cetus_dlmm",tx.DEEPBOOK_V3="deepbook_v3",tx.DIP_CPMM="dip_cpmm",tx.FLOWX_CPMM="flowx_cpmm",tx.FLOWX_CLMM="flowx_clmm",tx.FULLSAIL_CLMM="fullsail_clmm",tx.FERRA_CLMM="ferra_clmm",tx.FERRA_DLMM="ferra_dlmm",tx.HAEDAL_CPMM="haedal_cpmm",tx.HAEDAL_CPMM_V2="haedal_cpmm_v2",tx.HAEDAL_LSD="haedal_lsd",tx.HAEDAL_LSD_WAL="haedal_lsd_wal",tx.KRIYA_CLMM="kriya_clmm",tx.KRIYA_CPMM="kriya_cpmm",tx.MAGMA_ALMM="magma_almm",tx.MAGMA_CLMM="magma_clmm",tx.METASTABLE="metastable",tx.MOMENTUM_CLMM="momentum_clmm",tx.MOVEPUMP="movepump",tx.OBRIC="obric",tx.SCALLOP="scallop",tx.SEVENK_CPMM="sevenk_cpmm",tx.SEVENK_FUN="sevenk_fun",tx.SPRINGSUI="springsui",tx.SRM_CPMM="srm_cpmm",tx.STEAMM_CPMM="steamm_cpmm",tx.SUISWAP_CPMM="suiswap_cpmm",tx.STEAMM_OMM="steamm_omm",tx.STEAMM_OMM_V2="steamm_omm_v2",tx.TRADEPORT_CLMM="tradeport_clmm",tx.TURBOS_CLMM="turbos_clmm",tx.TURBOS_FUN="turbos_fun",tx.VOLO="volo",tx);!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:o7.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:o7.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:o7.TURBOS_CLMM,coinFeeType:r}},obric:e=>(eC(e.extra?.oracles,"obric protocol requires oracles"),{...n(e),protocol:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.CETUS_CLMM}),bluemove:e=>({...n(e),protocol:o7.BLUEMOVE_CPMM}),kriya:e=>({...n(e),protocol:o7.KRIYA_CPMM}),kriya_v3:e=>({...n(e),protocol:o7.KRIYA_CLMM}),deepbook_v3:e=>({...n(e),protocol:o7.DEEPBOOK_V3}),flowx:e=>({...n(e),protocol:o7.FLOWX_CPMM}),bluefin:e=>({...n(e),protocol:o7.BLUEFIN_CLMM}),springsui:e=>({...n(e),protocol:o7.SPRINGSUI}),magma:e=>({...n(e),protocol:o7.MAGMA_CLMM}),momentum:e=>({...n(e),protocol:o7.MOMENTUM_CLMM}),fullsail:e=>({...n(e),protocol:o7.FULLSAIL_CLMM}),stsui:e=>({...n(e),protocol:o7.ALPHAFI_LSD}),suiswap:e=>({...n(e),protocol:o7.SUISWAP_CPMM}),cetus_dlmm:e=>({...n(e),protocol:o7.CETUS_DLMM}),ferra_dlmm:e=>({...n(e),protocol:o7.FERRA_DLMM}),ferra_clmm:e=>({...n(e),protocol:o7.FERRA_CLMM})};function r(e){let r=e.pool.type;if(t.has(r))throw Error(`Unsupported SourceDex: ${r}`);return(0,o[r])(e)}function a(e){let t=new Map;for(let[o,r]of e.entries())t.set(r.assetIn,o);let o=e.map(r);for(let e of t.values())o[e].amountIn=tD.MAX_AMOUNT_IN;return o}function n(e){return{poolId:e.poolId,coinInType:e.assetIn,coinOutType:e.assetOut,amountIn:e.amount,aToB:e.swapXtoY}}function i(e){return 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"+er(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=eO(e.assetIn),a=eO(e.assetOut),n={type:eO(t?.allTokens?.[0]?.address),decimals:t?.allTokens?.[0]?.decimal},i={type:eO(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}}}(tw||(tw={}));class re{_config;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}async getTradeRoute({coinInAmount:e,coinInType:o,coinOutType:a,tradeFee:n,metaAggregator:i,supportedProtocols:c}){try{this._config.sevenKApiKey&&t.setApiKey(this._config.sevenKApiKey);let s=n?n.tradeFeePercent:this._config.defaultTradeFee.tradeFeePercent,u=c??(i?tw.SUPPORTED_PROTOCOLS:void 0);return await r({tokenIn:o,tokenOut:a,amountIn:e.toString(),commissionBps:1e4*s,sources:u})}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}))}}(re||(re={})).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.returnAmountAfterCommissionWithDecimal),routes:t}};class rt{_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})}}(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({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 ro{_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:100,receiverAddress:r.tradeFeeRecipientAddress}:{fee:100,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})}}(ro||(ro={})).toCommonTradeRoutes=function(e,t,o){if(0===e.routes.length)return null;let r=[];for(let t of e.routes){let e=[];for(let o of t.path)e.push({poolAddress:o.id,coinIn:o.from,coinOut:o.target,amountIn:BigInt(o.amount_in),amountOut:BigInt(o.amount_out)});0!==e.length&&r.push({amountIn:BigInt(t.amount_in),amountOut:BigInt(t.amount_out),coinIn:e[0].coinIn,coinOut:e[e.length-1].coinOut,paths:e})}return 0===r.length?null:{coinIn:t,coinOut:o,amountIn:BigInt(e.amount_in),amountOut:BigInt(e.amount_out),routes:r}},(tL||(tL={})).equals=function(e,t){return e.tradeFeePercent===t.tradeFeePercent&&e.tradeFeeRecipientAddress===t.tradeFeeRecipientAddress},(ey=tv||(tv={})).UNIVERSAL_META_VAULT_INTEGRATION_PACKAGE_ID="0xfd12517a9fc87c6a1f2357ad13b3421fb27a8bd7ca07d5fd5934ac35733baa47",(eS=ey.MetaCoinType||(ey.MetaCoinType={})).SUPER_SUI="0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI",eS.MUSD="0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD",eS.METH="0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH",ey.VERSION_OBJ_ID="0x4696559327b35ff2ab26904e7426a1646312e9c836d5c6cff6709a5ccc30915c",ey.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(en)];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(en)];break}default:throw Error("Invalid MetaCoin: "+a.toString())}return o.moveCall({target:`${u}::${l}::${d}`,typeArguments:p,arguments:t})},ey.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)}},ey.isMetaCoinType=function(e){return Object.values(ey.MetaCoinType).map(e=>e.toString()).includes(e)},ey.getCreateCapAllTypeParams=function(e,t){switch(e){case"0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI":return t===ey.UNIVERSAL_META_VAULT_INTEGRATION_PACKAGE_ID;case"0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD":case"0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH":return!0;default:throw Error("Invalid MetaCoin: "+e)}},function(e){let t=[g,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,A,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){let t=new Map;for(let[o,r]of e.paths.entries())t.set(r.from,o);let o=[];for(let r=0;r<e.paths.length;r++){let n=e.paths[r],i=a(n);t.get(n.from)===r&&(i.amountIn=tD.MAX_AMOUNT_IN),o.push(i)}return o}e.TO_META_AGGREGATOR_PATH_FN_MAP={[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 tv.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:o7.METASTABLE,metaCoin:a,registryId:o.metastable_registry_id};case tv.MetaCoinType.MUSD:return eC(o.metastable_price_seed,`METASTABLE_MUSD protocol requires 'metastable_price_seed' in extendedDetails for pool ${e.id}.`),{...t,...n,protocol:o7.METASTABLE,metaCoin:a,pythPriceFeedIdMeta:o.metastable_price_seed};case tv.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:o7.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:o7.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:o7.AFTERMATH_CPMM,coinLpType:t.aftermath_lp_supply_type}},[O]:e=>({...r(e),protocol:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.TURBOS_CLMM,coinFeeType:e.extendedDetails.turbos_fee_type}),[l]:e=>({...r(e),protocol:o7.AFTERMATH_LSD}),[p]:e=>({...r(e),protocol:o7.ALPHAFI_LSD}),[m]:e=>({...r(e),protocol:o7.BLUEFIN_CLMM}),[f]:e=>({...r(e),protocol:o7.BLUEMOVE_CPMM}),[g]:e=>({...r(e),protocol:o7.CETUS_CLMM}),[A]:e=>({...r(e),protocol:o7.CETUS_DLMM}),[T]:e=>({...r(e),protocol:o7.FERRA_CLMM}),[C]:e=>({...r(e),protocol:o7.FERRA_DLMM}),[M]:e=>({...r(e),protocol:o7.FLOWX_CPMM}),[E]:e=>({...r(e),protocol:o7.FULLSAIL_CLMM}),[y]:e=>({...r(e),protocol:o7.HAEDAL_LSD}),[F]:e=>({...r(e),protocol:o7.HAEDAL_LSD_WAL}),[B]:e=>({...r(e),protocol:o7.KRIYA_CPMM}),[P]:e=>({...r(e),protocol:o7.KRIYA_CLMM}),[x]:e=>({...r(e),protocol:o7.MAGMA_CLMM}),[w]:e=>({...r(e),protocol:o7.MOMENTUM_CLMM}),[j]:e=>({...r(e),protocol:o7.SPRINGSUI}),[k]:e=>({...r(e),protocol:o7.SPRINGSUI}),[q]:e=>({...r(e),protocol:o7.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)}}}(tR||(tR={}));class rr{_config;_suiClient;_cetusClient;getCetusClientConfig({walletAddress:e,overlayFeeReceiver:t,overlayFeeRate:o}){return{client:this._suiClient,overlayFeeReceiver:t,overlayFeeRate:o,env:I.Mainnet,signer:e,...this._config.cetusApiKey&&this._config.cetusApiEndpoint?{apiKey:this._config.cetusApiKey,endpoint:this._config.cetusApiEndpoint}:{},partner:this._config.cetusPartnerId}}constructor(e,t){this._config=e,this._suiClient=t}cetusClient(e,t){return t&&!tL.equals(t,this._config.defaultTradeFee)?new _(this.getCetusClientConfig({walletAddress:e,overlayFeeReceiver:t.tradeFeeRecipientAddress,overlayFeeRate:t.tradeFeePercent})):(this._cetusClient||(this._cetusClient=new _(this.getCetusClientConfig({walletAddress:e,overlayFeeReceiver:this._config.defaultTradeFee.tradeFeeRecipientAddress,overlayFeeRate:this._config.defaultTradeFee.tradeFeePercent}))),this._cetusClient)}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r,metaAggregator:a,supportedProtocols:n}){try{let i=this.cetusClient(void 0,r),c=n??(a?tR.SUPPORTED_PROTOCOLS:void 0);return await i.findRouters({from:t,target:o,amount:new Y(e.toString()),byAmountIn:!0,providers:c})}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})}}(rr||(rr={})).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 ra=((eh={}).ASTROS="ASTROS",eh.AFTERMATH="AFTERMATH",eh.SEVENK="7K",eh.CETUS="CETUS",eh.FLOWX="FLOWX",eh);!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:o7.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:o7.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:o7.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:o7.CETUS_DLMM}),[X.AFTERMATH]:t=>(eC(t.lpCoinType,`AFTERMATH protocol requires lpCoinType for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:o7.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:o7.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:o7.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:o7.BLUEFIN_CLMM}),[X.BLUEMOVE]:t=>({...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.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:o7.BOLT})};function r(t){let o=[];for(let e of t)o.push(...e.paths);let r=new Map;for(let[e,t]of o.entries())r.set(t.input.coinType,e);let a=o.map(e.toMetaAggregatorPath);for(let e of r.values())a[e].amountIn=tD.MAX_AMOUNT_IN;return a}e.toMetaAggregatorBasePath=e=>({poolId:e.pool.id,coinInType:e.input.coinType,coinOutType:e.output.coinType,amountIn:e.amountIn.toString()}),e.toMetaAggregatorPath=e=>{let r=e.protocol();if(t.includes(r))throw Error(`Unsupported protocol: ${r}`);return(0,o[r])(e)},e.toMetaAggregatorPaths=r,e.convert=function(e){return{coinInType:e.coinIn.coinType,coinOutType:e.coinOut.coinType,amountOut:e.amountOut.toString(),tradePaths:r(e.routes)}}}(tk||(tk={}));class rn{_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,metaAggregator:a,supportedProtocols:n}){let i=new $("mainnet",this._config.flowxApiKey),c=n??(a?tk.SUPPORTED_PROTOCOLS:void 0);try{return await i.getRoutes({tokenIn:t,tokenOut:o,amountIn:e.toString(),commission:this.getCommission(t,r),includeSources:c})}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 ri(e,t){return(await rc(e,t)).fields}async function rc(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}(rn||(rn={})).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}},(eF=tN||(tN={})).PACKAGE_ID_V4="0x7e6aa6e179466ab2814425a780b122575296d011119fa69d27f289f5a28814bd",eF.MEMEZ_AV_OBJECT_ID="0x2319e3e76dfad73d8f4684bdbf42be4f32d8ce4521dd61becc8261dc918d82c0",((eB=tU||(tU={})).U64||(eB.U64={})).mulDivUp=function(e,t,o){let r=BigInt(0);return e*t%o>BigInt(0)&&(r=BigInt(1)),e*t/o+r};var rs=tG||(tG={});function ru(e){return eC(BigInt(e)<=BigInt(1e4),"Bps overflow"),BigInt(e)}rs.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},rs.sub=function(e,t){return eC(BigInt(e.pos0)>=BigInt(t.pos0),"Bps underflow"),{pos0:(BigInt(e.pos0)-BigInt(t.pos0)).toString()}},rs.value=function(e){return BigInt(e.pos0)},rs.new_=function(e){return{pos0:ru(e).toString()}},rs.assertOverflow=ru,((eP=tj||(tj={})).MemezFun||(eP.MemezFun={})).isSniperProtectedMemezFun=async function(e,t){return(await ri(e,t)).public_key.length>0},(ex=eP.MemezFees||(eP.MemezFees={})).takeWithDiscount=function(e,t,o){if("Value"===e.variant){let o=BigInt(e.fields.pos0);if(o===BigInt(0))return BigInt(0);if(t>=o)return o;throw Error(`Insufficient amount to cover fee. Required: ${o}, provided: ${t}`)}if("Percentage"===e.variant){let r=e.fields.pos0.fields;if(BigInt(r.pos0)===BigInt(0))return BigInt(0);let a=tG.calcUp(tG.sub(r,o),t);if(t>=a)return a;throw Error(`Insufficient amount to cover fee. Required: ${a}, provided: ${t}`)}throw Error("Unknown fee variant")},ex.calculateWithDiscount=function(e,t,o){if("Value"===e.variant)return BigInt(e.fields.pos0);if("Percentage"===e.variant){let r=e.fields.pos0.fields;return tG.calcUp(tG.sub(r,t),o)}throw Error("Unknown fee variant")},(eP.MemezBurner||(eP.MemezBurner={})).calculate=function(e,t){if(tG.value(e.fee.fields)===BigInt(0)||t===BigInt(0)||t>=BigInt(e.target_liquidity))return tG.new_(0);let o=BigInt(1e4);return tG.new_(tU.U64.mulDivUp(tG.value(e.fee.fields),tU.U64.mulDivUp(t,o,BigInt(e.target_liquidity)),o))},(eD=eP.MemezPump||(eP.MemezPump={})).getPumpState=async function(e,t){return await ri(e,t.inner_state)},eD.pump=function(e,t){let o=e.constant_product.fields,r=eP.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=eP.MemezFees.takeWithDiscount(o.meme_swap_fee,c,o.meme_referrer_fee.fields);return c-s},eD.dump=function(e,t){let o=e.constant_product.fields,r=eP.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=eP.MemezBurner.calculate(o.burner.fields,i),u=tG.calcUp(s,a),l=a-(tG.value(s)!==BigInt(0)?u:BigInt(0)),d=(c+i)*l/(n+l);d>i&&(d=i);let p=eP.MemezFees.takeWithDiscount(o.quote_swap_fee,d,o.quote_referrer_fee.fields);return d-p},(ew=tK||(tK={})).getCurveAmountAfterBuy=async function(e,t){let{suiAmount:o,poolId:r,frontendFee:a}=e,n=await ri(t,r),i=await tj.MemezPump.getPumpState(t,n);return o=ea(o,a),tj.MemezPump.pump(i,o)},ew.getSuiAmountAfterSell=async function(e,t){let{curveAmount:o,poolId:r,frontendFee:a}=e,n=await ri(t,r),i=await tj.MemezPump.getPumpState(t,n);return ea(tj.MemezPump.dump(i,o),a)};let rl="0x62412b7268c35f3808336aee57a52836501f40b8ba5d936f8ad275e672befd04";async function rd(e,t){let o,r,{inputAmount:a,accountAddress:n,frontendFee:i,frontendFeeRecipient:c,extendTx:s,isSponsored:u}=e;eC(e.inCoinType===eI||e.inCoinType===ef,"Input must be SUI");let{tx:l,coinIn:d}=s||{},p=eb(a,i||"0"),_=l||new ed;if(d)o=_.splitCoins(d,p),tq.transferOrDestroyZeroCoin(_,eI,d,n);else{let{coinData:e}=await ei({account:n,amount:a,splits:p,coinType:eI,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 rp(e,t,o){if(eC(t.outCoinType===eI||t.outCoinType===ef,"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:`${rl}::math::mul_div_u64`,typeArguments:[],arguments:[r,e.pure.u64(BigInt(1e4*Number(t.frontendFee||"0"))),e.pure.u64(BigInt(1e4))]}),n=e.moveCall({target:"0x2::coin::split",typeArguments:[t.outCoinType],arguments:[o,a]});return e.transferObjects([n],e.pure.address(t.frontendFeeRecipient||t.accountAddress)),{tx:e,coinOut:o}}(tq||(tq={})).transferOrDestroyZeroCoin=function(e,t,o,r){e.moveCall({target:`${rl}::utils::transfer_or_destroy`,typeArguments:[t],arguments:[o,e.pure.address(r)]})};var r_=tY||(tY={});async function rm(e){let t=e||new ed;return t.moveCall({target:`${tN.PACKAGE_ID_V4}::memez_allowed_versions::get_allowed_versions`,arguments:[t.object(tN.MEMEZ_AV_OBJECT_ID)],typeArguments:[]})}r_.getAllowedVersions=rm,r_.buildBuyTx=async function(e,t){eC(!await tj.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 rd(e,t);eC(r,"Coin out is required");let a=o.moveCall({target:`${tN.PACKAGE_ID_V4}::memez_pump::pump`,typeArguments:[e.outCoinType,eI],arguments:[o.object(e.poolId),r,o.pure.vector("address",[]),o.pure.vector("vector<u8>",[]),o.pure.u64(e.minAmountOut),await rm(o)]});return{tx:o,coinOut:a}},r_.buildSellTx=async function(e,t){eC(e.outCoinType===eI||e.outCoinType===ef,"Output must be SUI");let o=await ri(t,e.poolId),{tx:r,coinData:a}=await ei({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[n]=a,[i]=r.moveCall({target:`${tN.PACKAGE_ID_V4}::memez_pump::dump`,typeArguments:[e.inCoinType,e.outCoinType],arguments:[r.object(e.poolId),r.object(o.ipx_meme_coin_treasury),n,r.pure.vector("address",[]),r.pure.u64(e.minAmountOut),await rm(r)]});return await rp(r,e,i)};let rf=new z({network:Z.MAINNET,fullNodeUrl:eA("mainnet")});function rg(){return rf}(eL=t$||(t$={})).getCurveAmountAfterBuy=async function(e){let{suiAmount:t,poolId:o,frontendFee:r}=e;t=ea(t,r);let{memeAmountOut:a}=await rg().quotePump({pool:o,amount:t});return a},eL.getSuiAmountAfterSell=async function(e){let{curveAmount:t,poolId:o,frontendFee:r}=e,{quoteAmountOut:a}=await rg().quoteDump({pool:o,amount:t});return ea(a,r)};var rA=tV||(tV={});async function rb(e,t){let{tx:o,coinOut:r}=await rd(e,t);eC(r,"Coin out is required");let{memeCoin:a,tx:n}=await rg().pump({pool:e.poolId,quoteCoin:r,minAmountOut:e.minAmountOut,tx:o});return{tx:n,coinOut:a}}async function rI(e,t){eC(eg(e.outCoinType),"Output must be SUI");let{tx:o,coinData:r}=await ei({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[a]=r,{quoteCoin:n,tx:i}=await rg().dump({pool:e.poolId,memeCoin:a,tx:o,minAmountOut:e.minAmountOut});return await rp(i,e,n)}rA.buildBuyTx=rb,rA.buildSellTx=rI,rA.getBuyTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:n,walletAddress:i,tradeFee:c},s){eC(eg(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})).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})},rA.getSellTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:n,walletAddress:i,tradeFee:c},s){eC(eg(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})).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})};var rT=((ev={}).BLAST_FUN="BLAST_FUN",ev.MOONBAGS="MOONBAGS",ev);(eR=tJ||(tJ={})).PACKAGE_ID="0xb8df325010942634a4afb3db3901ee215546af43a4ec4af781e7213b0bba7290",eR.CONFIG_OBJECT_ID="0x74aecf86067c6913960ba4925333aefd2b1f929cafca7e21fd55a8f244b70499",eR.LOCK_CONFIG_OBJECT_ID="0xfb09822d9808980abd04c51321adb850701f5f55535c6206658ef4d910c3e9be",eR.BURN_MANAGER_OBJECT_ID="0x1d94aa32518d0cb00f9de6ed60d450c9a2090761f326752ffad06b2e9404f845",eR.POOLS_OBJECT_ID="0xf699e7f2276f5c9a75944b37a0c5b5d9ddfd2471bf6242483b03ab2887d198d0",eR.GLOBAL_CONFIG_OBJECT_ID="0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f",eR.FEE_DENOMINATOR=BigInt(1e4),(eN=(ek=tH||(tH={})).Curves||(ek.Curves={})).calculateAddLiquidityCost=function(e,t,o){return e*t/(t-o)-e},eN.calculateRemoveLiquidityReturn=function(e,t,o){return t-e*t/(e+o)},eN.calculateTokenAmountReceived=function(e,t,o){return t-e*t/(e+o)},(eU=ek.Moonbags||(ek.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)},eU.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=ek.Curves.calculateRemoveLiquidityReturn(i,c,o),l=c-(n||s),d=u,p=o;u>l&&(d=l,p=ek.Curves.calculateAddLiquidityCost(i,c,l)+BigInt(1));let _=p*BigInt(a.platform_fee)/tJ.FEE_DENOMINATOR;return eC(t>=p+_,"Input amount is less than used SUI + fee"),{receivedCurve:d,receivedSui:t-p-_}},eU.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=ek.Curves.calculateRemoveLiquidityReturn(n,a,t);c>i&&(c=i);let s=c*BigInt(r.platform_fee)/tJ.FEE_DENOMINATOR,u=c-s;return{receivedCurve:BigInt(0),receivedSui:u}},(eG=tX||(tX={})).getCurveAmountAfterBuy=async function(e,t){let{suiAmount:o,poolId:r,frontendFee:a}=e,[n,i,c]=await Promise.all([ri(t,r),ri(t,tJ.CONFIG_OBJECT_ID),tH.Moonbags.getDynamicVirtualTokenReserves(t,r)]);void 0!==a&&(o=ea(o,a));let s=o*tJ.FEE_DENOMINATOR/(tJ.FEE_DENOMINATOR+BigInt(i.platform_fee)),{receivedCurve:u}=tH.Moonbags.buyExactInReturnsWithLock({inputAmount:o,amountIn:s,pool:n,config:i,dynamicVirtualTokenReserves:c});return u},eG.getSuiAmountAfterSell=async function(e,t){let{curveAmount:o,poolId:r,frontendFee:a}=e,[n,i]=await Promise.all([ri(t,r),ri(t,tJ.CONFIG_OBJECT_ID)]),{receivedSui:c}=tH.Moonbags.sellReturns({amountIn:o,pool:n,config:i});return void 0!==a?ea(c,a):c},eG.getUsedSuiForTx=async function(e,t){let{suiAmount:o,frontendFee:r}=e,a=await ri(t,tJ.CONFIG_OBJECT_ID);return void 0!==r&&(o=ea(o,r)),o*tJ.FEE_DENOMINATOR/(tJ.FEE_DENOMINATOR+BigInt(a.platform_fee))};var rC=tW||(tW={});async function rM(e,t){let{tx:o,coinOut:r}=await rd(e,t);eC(r,"Coin out is required");let a=await tX.getUsedSuiForTx({suiAmount:BigInt(e.inputAmount),frontendFee:e.frontendFee},t),[n,i]=o.moveCall({target:`${tJ.PACKAGE_ID}::moonbags::buy_exact_in_returns_with_lock`,typeArguments:[e.outCoinType],arguments:[o.object(tJ.CONFIG_OBJECT_ID),o.object(tJ.LOCK_CONFIG_OBJECT_ID),r,o.pure.u64(a),o.pure.u64(e.minAmountOut),o.object(tJ.BURN_MANAGER_OBJECT_ID),o.object(tJ.POOLS_OBJECT_ID),o.object(tJ.GLOBAL_CONFIG_OBJECT_ID),o.object(em),o.object(e_)]});return tq.transferOrDestroyZeroCoin(o,eI,n,e.accountAddress),{tx:o,coinOut:i}}async function rO(e,t){eC(eg(e.outCoinType),"Output must be SUI");let{tx:o,coinData:r}=await ei({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[a]=r,[n,i]=o.moveCall({target:`${tJ.PACKAGE_ID}::moonbags::sell_returns`,typeArguments:[e.inCoinType],arguments:[o.object(tJ.CONFIG_OBJECT_ID),a,o.pure.u64(e.minAmountOut),o.object(e_)]});return tq.transferOrDestroyZeroCoin(o,e.inCoinType,i,e.accountAddress),await rp(o,e,n)}function rE(e){return e}function ry(e){return e}function rS(e){return new Proxy(e,{get(e,t){let o=e[t];return"function"==typeof o?o.bind(e):o}})}rC.buildBuyTx=rM,rC.buildSellTx=rO,rC.getBuyTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:n,walletAddress:i,tradeFee:c},s){eC(eg(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 tX.getCurveAmountAfterBuy({poolId:r,suiAmount:e,frontendFee:c?c.tradeFeePercent:void 0},s)).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})},rC.getSellTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:n,walletAddress:i,tradeFee:c},s){eC(eg(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 tX.getSuiAmountAfterSell({poolId:r,curveAmount:e,frontendFee:c?c.tradeFeePercent:void 0},s)).toString()).multipliedBy(1-n).toFixed(0,3)),{tx:l,coinOut:d}=await rO({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})},(ej=tz||(tz={})).LAST_PACKAGE_ID="0x8c36ea167c5e6da8c3d60b4fc897416105dcb986471bd81cfbfd38720a4487c0",ej.newHolder=function(e){return e.moveCall({target:`${ej.LAST_PACKAGE_ID}::oracle::new_holder`,typeArguments:[],arguments:[]})},ej.getPrice=function(e){let{txb:t,coinOracleId:o,holder:r,coinPriceId:a}=e;t.moveCall({target:`${ej.LAST_PACKAGE_ID}::pyth::get_price`,typeArguments:[],arguments:[t.object(o),r,t.object(a),t.object(en)]})},(eK=tZ||(tZ={})).PYTH_URLS=["https://hermes.pyth.network"],eK.WORMHOLE_STATE_ID="0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",eK.PYTH_STATE_ID="0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",eK.newPythConnections=function(e){return e||(e=eK.PYTH_URLS),e.map(e=>new Q(e,{timeout:3e3}))},eK.newPythClient=function(e){return e||(e=new ep({url:"https://fullnode.mainnet.sui.io:443"})),new ee(e,eK.PYTH_STATE_ID,eK.WORMHOLE_STATE_ID)},eK.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},(eq=tQ||(tQ={})).POOL_REGISTRY_OBJ_ID="0xfcc774493db2c45c79f688f88d28023a3e7d98e4ee9f48bbf5c7990f651577ae",eq.PROTOCOL_FEE_VAULT_OBJ_ID="0xf194d9b1bcad972e45a7dd67dd49b3ee1e3357a00a50850c52cd51bb450e13b4",eq.TREASURY_OBJ_ID="0x28e499dff5e864a2eafe476269a4f5035f1c16f338da7be18b103499abf271ce",eq.INSURANCE_FUND_OBJ_ID="0xf0c40d67b078000e18032334c3325c47b9ec9f3d9ae4128be820d54663d14e3b",eq.REFERRAL_VAULT_OBJ_ID="0x35d35b0e5b177593d8c3a801462485572fc30861e6ce96a55af6dc4730709278",(eY=t0||(t0={})).LAST_PACKAGE_ID="0xf369250dc5a17e9d5a84a3b0cf5aea715c0682170e726dd601f03ade7ce4decb",eY.swap=function(e){eC(e.protocol===o7.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(tQ.POOL_REGISTRY_OBJ_ID),t.object(tQ.PROTOCOL_FEE_VAULT_OBJ_ID),t.object(tQ.TREASURY_OBJ_ID),t.object(tQ.INSURANCE_FUND_OBJ_ID),t.object(tQ.REFERRAL_VAULT_OBJ_ID),t.pure.bool(a),t.pure.u64(n)]})},(e$=t6||(t6={})).STAKED_SUI_VAULT_OBJ_ID="0x2f8f6d5da7f13ea37daa397724280483ed062769813b6f31e9788e59cc88994d",e$.SAFE_TREASURY_OBJECT_ID="0xeb685899830dd5837b47007809c76d91a098d52aabbf61e8ac467c59e5cc4610",e$.REFERRAL_VAULT_OBJ_ID="0x4ce9a19b594599536c53edb25d22532f82f18038dc8ef618afd00fbbfb9845ef",e$.VALIDATOR_ADDRESS="0xd30018ec3f5ff1a3c75656abf927a87d7f0529e6dc89c7ddd1bd27ecb05e3db2",(eV=t4||(t4={})).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(t6.STAKED_SUI_VAULT_OBJ_ID),t.object(t6.SAFE_TREASURY_OBJECT_ID),t.object(eo),t.object(t6.REFERRAL_VAULT_OBJ_ID),t.pure.address(t6.VALIDATOR_ADDRESS),t.pure.bool(r),t.pure.u64(a)]})},(eJ=t1||(t1={})).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=t2||(t2={})).MEMEZ_AV_OBJ_ID="0x2319e3e76dfad73d8f4684bdbf42be4f32d8ce4521dd61becc8261dc918d82c0",eH.MEMEZ_FUN_OBJ_ID="0x943948644f06942b8b660ca541b10a05f6a7be23ce4069944a3665e7e698930d",eH.IPX_TREASURY_STANDARD_OBJ_ID="0x051e11b667659192917db94e5175fa066909d4dfc04d2663528f499c4afc6999",(eX=t3||(t3={})).LAST_PACKAGE_ID="0x8b1e84ed9bc79d31160600254d65810f6bc6d2352f174a60ed041017d0a2a87a",eX.swap=function(e){eC(e.protocol===o7.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(t2.MEMEZ_FUN_OBJ_ID),t.object(t2.IPX_TREASURY_STANDARD_OBJ_ID),t.object(t2.MEMEZ_AV_OBJ_ID),t.pure.bool(n),t.pure.u64(i)]})},(t5||(t5={})).GLOBAL_CONFIG_OBJ_ID="0x03db251ba509a8d5d8777b6338836082335d93eecbdd09a11e190a1cff51c352",(eW=t8||(t8={})).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(t5.GLOBAL_CONFIG_OBJ_ID),t.object(r),t.pure.bool(n),t.pure.u64(a),t.object(en)]})},(t9||(t9={})).DEX_INFO_OBJ_ID="0x3f2d9f724f4a1ce5e71676448dc452be9a6243dac9c5b975a588c8c867066e92",(ez=t7||(t7={})).LAST_PACKAGE_ID="0xf52bdd65ee347e8994170f8c331cf0c23a55281b3282467f14ccbb3e2a7f928f",ez.swap=function(e){let{txb:t,swapContext:o,aToB:r,amountIn:a,coinAType:n,coinBType:i,packageId:c}=e;t.moveCall({target:`${c??ez.LAST_PACKAGE_ID}::bluemove_cpmm_router::swap`,typeArguments:[n,i],arguments:[o,t.object(t9.DEX_INFO_OBJ_ID),t.pure.bool(r),t.pure.u64(a)]})},(oe||(oe={})).ORACLE_OBJ_ID="0xfa3975b98f3d0e3df18ed88ae6e69db31836b3f4212df02fae144b1e5a89ca8e",(eZ=ot||(ot={})).LAST_PACKAGE_ID="0xfb4f0f6fe3ddc4253e05d0e147556ea7941300c7db4262d1a5993eb20a6cbdb3",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(oe.ORACLE_OBJ_ID),t.object(en),t.pure.u64(c),t.pure.bool(i)]})},(oo||(oo={})).GLOBAL_CONFIG="0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f",(eQ=or||(or={})).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(oo.GLOBAL_CONFIG),t.object(n),t.pure.bool(i),t.pure.u64(c),t.object(en)]})},(e0=oa||(oa={})).GLOBAL_CONFIG_OBJ_ID="0xf31b605d117f959b9730e8c07b08b856cb05143c5e81d5751c90d2979e82f599",e0.VERSIONED_OBJ_ID="0x05370b2d656612dd5759cbe80463de301e3b94a921dfc72dd9daa2ecdeb2d0a8",(e6=on||(on={})).LAST_PACKAGE_ID="0x9ab3ba62b4327a7d90e4aed1c025b62736f035911ad7bab830c065ec84ef1ffa",e6.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinAType:i,coinBType:c,packageId:s}=e,u=[o,t.object(oa.GLOBAL_CONFIG_OBJ_ID),t.object(oa.VERSIONED_OBJ_ID),t.object(r),t.pure.bool(n),t.pure.u64(a),t.object(en)];t.moveCall({target:`${s??e6.LAST_PACKAGE_ID}::cetus_dlmm_router::swap`,typeArguments:[i,c],arguments:u})},(e4=oi||(oi={})).GLOBAL_CONFIG="0x699d455ab8c5e02075b4345ea1f91be55bf46064ae6026cc2528e701ce3ac135",e4.DEEP_TYPE="0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP",(e1=oc||(oc={})).LAST_PACKAGE_ID="0xbc23dacd6f66386e4a512eef1f3b0ccaad8e7d24eac7432d67737b22f661a810",e1.swap=function(e){eC(e.protocol===o7.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:[oi.DEEP_TYPE]});t.moveCall({target:`${u??e1.LAST_PACKAGE_ID}::deepbook_v3_router::swap`,typeArguments:[r,a],arguments:[o,t.object(oi.GLOBAL_CONFIG),t.object(n),t.pure.u64(c),t.pure.bool(i),l,t.object(en)]})},(os||(os={})).GLOBAL_OBJ_ID="0x935229a3c32399e9fb207ec8461a54f56c6af5744c64442435ac217ab28f0d59",(e2=ou||(ou={})).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(os.GLOBAL_OBJ_ID),t.object(r),t.pure.bool(i),t.pure.u64(c)]})},(ol||(ol={})).FERRA_GLOBAL_CONFIG_ID="0x2cd8382c19e6994f16df204e9b8cddd04bdc486c251de75ac66ac4e48e3e7081",(e3=od||(od={})).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(ol.FERRA_GLOBAL_CONFIG_ID),t.object(r),t.pure.bool(a),t.pure.u64(n),t.object("0x6")]})},(op||(op={})).FERRA_GLOBAL_CONFIG_ID="0x5c9dacf5a678ea15b8569d65960330307e23d429289ca380e665b1aa175ebeca",(e5=o_||(o_={})).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(op.FERRA_GLOBAL_CONFIG_ID),t.object(r),t.pure.bool(a),t.pure.u64(n),t.object(en)]})},(e8=om||(om={})).POOL_REGISTRY_OBJ_ID="0x27565d24a4cd51127ac90e4074a841bbe356cca7bf5759ddc14a975be1632abc",e8.VERSIONED_OBJ_ID="0x67624a1533b5aff5d0dfcf5e598684350efd38134d2d245f475524c03a64e656",(e9=of||(of={})).LAST_PACKAGE_ID="0x350a752d3388165e578cc33a39655a6da83613cf4e58c8d9d0723711c2603e17",e9.swap=function(e){eC(e.protocol===o7.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(om.POOL_REGISTRY_OBJ_ID),t.object(om.VERSIONED_OBJ_ID),t.pure.u64(n),t.pure.u64(i),t.pure.bool(c),t.object(en)]})},(og||(og={})).CONTAINER_OBJ_ID="0xb65dcbf63fd3ad5d0ebfbf334780dc9f785eff38a4459e37ab08fa79576ee511",(e7=oA||(oA={})).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(og.CONTAINER_OBJ_ID),t.pure.bool(n),t.pure.u64(i)]})},(te=ob||(ob={})).GLOBAL_CONFIG_OBJ_ID="0xe93baa80cb570b3a494cbf0621b2ba96bc993926d34dc92508c9446f9a05d615",te.REWARDER_VAULT_OBJ_ID="0xfb971d3a2fb98bde74e1c30ba15a3d8bef60a02789e59ae0b91660aeed3e64e1",te.STATS_OBJ_ID="0x6822a33d1d971e040c32f7cc74507010d1fe786f7d06ab89135083ddb07d2dc2",te.PRICE_PROVIDER_OBJ_ID="0x854b2d2c0381bb656ec962f8b443eb082654384cf97885359d1956c7d76e33c9",(tt=oI||(oI={})).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(ob.GLOBAL_CONFIG_OBJ_ID),t.object(ob.REWARDER_VAULT_OBJ_ID),t.object(ob.STATS_OBJ_ID),t.object(ob.PRICE_PROVIDER_OBJ_ID),t.object(r),t.pure.bool(i),t.pure.u64(c),t.object(en)]})},(to=oT||(oT={})).LAST_PACKAGE_ID="0x8969ed3e56c1dbdaf9df52f812d69c6c45fe5a4bab7093c88f5a8697a409398e",to.swap=function(e){eC(e.protocol===o7.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(en)]})},(tr=oC||(oC={})).LAST_PACKAGE_ID="0x5d01f22e5471a5912a88e15d62fdcb922beba65b8e8dfe1a715aebf743194f4a",tr.swap=function(e){eC(e.protocol===o7.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(en)]})},(ta=oM||(oM={})).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)]})},(oO||(oO={})).STAKING_OBJ_ID="0x10b9d30c28448939ce6c4d6c6e0ffce4a7f8a4ada8248bdad09ef8b70e4a3904",(oE||(oE={})).VALIDATOR_ID="0x7b3ba6de2ae58283f60d5b8dc04bb9e90e4796b3b2e0dea75569f491275242e7",(tn=oy||(oy={})).LAST_PACKAGE_ID="0x7be077dd73c85e788c2a49a51f0627066d81d3dc9982c268e3691265a81d544d",tn.swap=function(e){eC(e.protocol===o7.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(oO.STAKING_OBJ_ID),t.object(r),t.pure.id(oE.VALIDATOR_ID),t.pure.bool(a),t.pure.u64(n)]})},(oS||(oS={})).VERSION_OBJ_ID="0xf5145a7ac345ca8736cf8c76047d00d6d378f30e81be6f6eb557184d9de93c78",(ti=oh||(oh={})).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(oS.VERSION_OBJ_ID),t.pure.bool(i),t.pure.u64(c),t.object(en)]})},(tc=oF||(oF={})).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=oB||(oB={})).FACTORY_OBJ_ID="0xedb456e93e423dd75a8ddebedd9974bb661195043027e32ce01649d6ccee74cf",ts.GLOBAL_CONFIG_OBJ_ID="0x4c4e1402401f72c7d8533d0ed8d5f8949da363c7a3319ccef261ffe153d32f8a",(tu=oP||(oP={})).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(oB.FACTORY_OBJ_ID),t.object(oB.GLOBAL_CONFIG_OBJ_ID),t.pure.u64(c),t.pure.bool(i),t.object(en)]})},(ox||(ox={})).GLOBAL_CONFIG="0x4c4e1402401f72c7d8533d0ed8d5f8949da363c7a3319ccef261ffe153d32f8a",(tl=oD||(oD={})).LAST_PACKAGE_ID="0xbe5f590339c55ca8ebbf93cedfb68aafd479d71e1c57043246f7dcf352745242",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(ox.GLOBAL_CONFIG),t.object(n),t.pure.bool(i),t.pure.u64(c),t.object(en)]})},(td=ow||(ow={})).LATEST_PACKAGE_ID="0xfab91518218f10204b083dba1e62c8bfc23f14fb87742158043e5faec4670ec4",td.swap=function(e){let t,o,r;eC(e.protocol===o7.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=[tv.createCap({coinType:m,createCapFunc:"create_withdraw_cap",...e})]):m===d?(r="swap_to_meta_coin",t=[d,_],o=[tv.createCap({coinType:_,createCapFunc:"create_deposit_cap",...e})]):(r="swap",t=[d,_,m],o=[tv.createCap({coinType:_,createCapFunc:"create_deposit_cap",...e}),tv.createCap({coinType:m,createCapFunc:"create_withdraw_cap",...e})]),a.moveCall({target:`${p??td.LATEST_PACKAGE_ID}::metastable_router::${r}`,typeArguments:t,arguments:[n,a.object(l),a.object(tv.VERSION_OBJ_ID),...o,a.pure.u64(c)]})},(oL||(oL={})).VERSION_OBJ_ID="0x2375a0b1ec12010aaea3b2545acfa2ad34cfbba03ce4b59f4c39e1e25eed1b2a",(tp=ov||(ov={})).LAST_PACKAGE_ID="0xba7ab4c8c39024fa0052bb4f00548a2e7b60742bb4ed0b87bc1d945fd8209102",tp.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??tp.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(oL.VERSION_OBJ_ID),t.object(en)]})},(oR||(oR={})).CONFIGURATION_OBJ_ID="0xd746495d04a6119987c2b9334c5fefd7d8cff52a8a02a3ea4e3995b9a041ace4",(t_=ok||(ok={})).LAST_PACKAGE_ID="0x5a259db4b1d17fafc09185c9a71bac36f25f9ee462e72894c8610e5a58b79f8f",t_.swap=function(e){eC(e.protocol===o7.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??t_.LAST_PACKAGE_ID}::movepump_router::swap`,typeArguments:[n?a:r],arguments:[o,t.object(oR.CONFIGURATION_OBJ_ID),t.object(t9.DEX_INFO_OBJ_ID),t.object(en),t.pure.u64(c),t.pure.bool(n),t.pure.u64(i)]})},(oN||(oN={})).STATE_OBJ_ID="0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",(tm=oU||(oU={})).LAST_PACKAGE_ID="0xd615fed37d692280047068e80d3a6bb685aa9d574608054c9df881d6a7378fab",tm.swap=function(e){let t,o;eC(e.protocol===o7.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??tm.LAST_PACKAGE_ID}::obric_router::swap`,typeArguments:[i,c],arguments:[a,r.object(n),r.pure.u64(u),r.pure.bool(s),r.object(oN.STATE_OBJ_ID),r.object(t),r.object(o),r.object(en)]})},(tf=oG||(oG={})).VERSION_OBJ_ID="0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7",tf.MARKET_OBJ_ID="0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9",(tg=oj||(oj={})).LAST_PACKAGE_ID="0xea409bb08c8a09e4127f859d9c36b8b62ca609282aa1e443091db6b7a7409ee7",tg.swap=function(e){eC(e.protocol===o7.SCALLOP);let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,scoinTreasury:c,packageId:s}=e;t.moveCall({target:`${s??tg.LAST_PACKAGE_ID}::scallop_router::swap`,typeArguments:[r,a],arguments:[o,t.object(oG.VERSION_OBJ_ID),t.object(oG.MARKET_OBJ_ID),t.object(c),t.pure.u64(i),t.pure.bool(n),t.object(en)]})},(oK||(oK={})).ORACLE_HOLDER_OBJ_ID="0x8c36ea167c5e6da8c3d60b4fc897416105dcb986471bd81cfbfd38720a4487c0",(tA=oq||(oq={})).LAST_PACKAGE_ID="0x918a30e2a05d24ea9451e2d2900d055f74e6752f2e10251fa50c7175831b1958",tA.swap=function(e){eC(e.protocol===o7.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),g=_.get(p);eC(f,"Not found priceInfoAId in pythObjectIdMap"),eC(g,"Not found priceInfoBId in pythObjectIdMap");let A=tz.newHolder(t);tz.getPrice({txb:t,coinPriceId:d,holder:A,coinOracleId:u}),tz.getPrice({txb:t,coinPriceId:p,holder:A,coinOracleId:l}),t.moveCall({target:`${m??tA.LAST_PACKAGE_ID}::sevenk_cpmm_router::swap`,typeArguments:[a,n,s],arguments:[o,t.object(r),t.object(oK.ORACLE_HOLDER_OBJ_ID),t.pure.bool(i),t.pure.u64(c)]})},(oY||(oY={})).CONFIGURATION_OBJ_ID="0xe79fff6c77d81f9a8efb729e25bf0037deec42518d40b978f274a4915d7e1ec9",(tb=o$||(o$={})).LAST_PACKAGE_ID="0x0a5dc665dc3c1c846a6d1e00811c84cae3510c839ab4dc0873f85dc8908d0606",tb.swap=function(e){eC(e.protocol===o7.SEVENK_FUN,"Invalid protocol");let{txb:t,swapContext:o,aToB:r,amountIn:a,coinBType:n,packageId:i}=e;t.moveCall({target:`${i??tb.LAST_PACKAGE_ID}::sevenk_fun_router::swap`,typeArguments:[n],arguments:[o,t.object(oY.CONFIGURATION_OBJ_ID),t.object(og.CONTAINER_OBJ_ID),t.object(en),t.pure.bool(r),t.pure.u64(a)]})},(tI=oV||(oV={})).LAST_PACKAGE_ID="0xa6d129c0b314e85d1bc5aecf305d64212bdd5d466457531f4f624fef5f2e7751",tI.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinBType:i,packageId:c}=e;t.moveCall({target:`${c??tI.LAST_PACKAGE_ID}::springsui_router::swap`,typeArguments:[i],arguments:[o,t.object(r),t.object(eo),t.pure.u64(a),t.pure.bool(n)]})},(oJ||(oJ={})).CONFIG_OBJ_ID="0x881fd0a12ca4fa48991f5c27ba57d17f1ec147fa15f43b3cb760cc3bd7ba9402",(tT=oH||(oH={})).LAST_PACKAGE_ID="0xa314a64962ed4b91a6b4085de4dff2e631fd4c731dbca671a74489955df322ef",tT.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(oJ.CONFIG_OBJ_ID),t.pure.bool(a),t.pure.u64(n),t.object("0x6")];t.moveCall({target:`${s??tT.LAST_PACKAGE_ID}::srm_cpmm_router::swap`,typeArguments:[i,c],arguments:u})},(tM=(tC=oX||(oX={})).Oracle||(tC.Oracle={})).PACKAGE_ID="0xe84b649199654d18c38e727212f5d8dacfc3cf78d60d0a7fc85fd589f280eb2b",tM.getPythPrice=function(e){let{txb:t,oracleRegistryId:o,priceInfoId:r,oracleIndex:a}=e;return t.moveCall({target:`${tM.PACKAGE_ID}::oracles::get_pyth_price`,typeArguments:[],arguments:[t.object(o),t.object(r),t.pure.u64(a),t.object(en)]})};var rh=oW||(oW={});function rF(e,t){eC(e.protocol===o7.STEAMM_OMM||e.protocol===o7.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:g,pythPriceFeedIdB:A,pythInfoObjectIdMap:b,oracleRegistryId:I,oracleIndexA:T,oracleIndexB:C,packageId:M}=e,O=b.get(g),E=b.get(A);eC(O,"Not found priceInfoAId in pythObjectIdMap"),eC(E,"Not found priceInfoBId in pythObjectIdMap");let y=oX.Oracle.getPythPrice({txb:o,oracleRegistryId:I,priceInfoId:O,oracleIndex:T}),S=oX.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(en)]})}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="0xd7430ec87be03b22e29ad95e811d8146fb0ece72037cf546618297def842b57e",rh.swapCpmm=function(e){eC(e.protocol===o7.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(en)]})},rh.swapOmm=function(e){rF(e,0)},rh.swapOmmV2=function(e){rF(e,1)},rh.getOmmRouterModule=rB,(tO=oz||(oz={})).LAST_PACKAGE_ID="0x7a1cf89025a60161e84809784d772263231fad08a7cb76a88ca1ba69e0a656da",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}::suiswap_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.pure.bool(i),t.pure.u64(c),t.object(en)]})},(tE=oZ||(oZ={})).VERSIONED="0x0309b66202e9aaf470081fffee7ffc0fbd50e3b7400d4f56fd06502e4dbbd676",tE.POOL_REGISTRY="0xcd0a614c4cbbf173f59dee2602c43a1717f283215ed7a0bb1d55d786af16fbcd",(ty=oQ||(oQ={})).LAST_PACKAGE_ID="0x79957062a7424ed9c2eb83932e4c4fcc3fee67ab3c8f6f874c54e417178bbb7a",ty.swap=function(e){eC(e.protocol===o7.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??ty.LAST_PACKAGE_ID}::tradeport_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(oZ.POOL_REGISTRY),t.pure.u64(c),t.object(oZ.VERSIONED),t.pure.bool(n),t.pure.u64(i),t.object(en)]})},(o0||(o0={})).POOL_VERSIONED="0xf1cf0e81048df168ebeb1b8030fad24b3e0b53ae827c25053fff0779c1445b6f",(tS=o6||(o6={})).LAST_PACKAGE_ID="0x512d63711ff38353fb167238b0529001b6871c1727c67ce3bf6ec23556b0f1da",tS.swap=function(e){eC(e.protocol===o7.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??tS.LAST_PACKAGE_ID}::turbos_clmm_router::swap`,typeArguments:[r,a,n],arguments:[o,t.object(i),t.object(o0.POOL_VERSIONED),t.pure.bool(c),t.pure.u64(s),t.object(en)]})},(o4||(o4={})).CONFIGURATION_OBJ_ID="0xd86685fc3c3d989385b9311ef55bfc01653105670209ac4276ebb6c83d7df928",(th=o1||(o1={})).LAST_PACKAGE_ID="0x1fad13f09797aa87a4385d0b1efb2de963ba16742447b1ad5a3b0c5b1d1c588b",th.swap=function(e){eC(e.protocol===o7.TURBOS_FUN,"Invalid protocol");let{txb:t,swapContext:o,coinBType:r,aToB:a,amountIn:n,packageId:i}=e;t.moveCall({target:`${i??th.LAST_PACKAGE_ID}::turbos_fun_router::swap`,typeArguments:[r],arguments:[o,t.object(o4.CONFIGURATION_OBJ_ID),t.object(en),t.pure.bool(a),t.pure.u64(n)]})},(o2||(o2={})).VOLO_CERT_METADATA_ID="0x680cd26af32b2bde8d3361e804c53ec1d1cfe24c7f039eb7f549e8dfde389a60",(tF=o3||(o3={})).LAST_PACKAGE_ID="0x7c8d95256342f904d5f251776903a17905d87c95f387b3a35cc2aecc23b3c042",tF.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,packageId:i}=e;t.moveCall({target:`${i??tF.LAST_PACKAGE_ID}::volo_router::swap`,arguments:[o,t.object(r),t.object(o2.VOLO_CERT_METADATA_ID),t.object(eo),t.pure.bool(a),t.pure.u64(n)]})},(tB=o5||(o5={})).RouterSwapFunctionMap={[o7.AFTERMATH_CPMM]:t0.swap,[o7.AFTERMATH_LSD]:t4.swap,[o7.ALPHAFI_LSD]:t1.swap,[o7.BLASTFUN]:t3.swap,[o7.BLUEFIN_CLMM]:t8.swap,[o7.BLUEMOVE_CPMM]:t7.swap,[o7.BOLT]:ot.swap,[o7.CETUS_CLMM]:or.swap,[o7.CETUS_DLMM]:on.swap,[o7.DEEPBOOK_V3]:oc.swap,[o7.DIP_CPMM]:ou.swap,[o7.FERRA_CLMM]:od.swap,[o7.FERRA_DLMM]:o_.swap,[o7.FLOWX_CPMM]:oA.swap,[o7.FLOWX_CLMM]:of.swap,[o7.FULLSAIL_CLMM]:oI.swap,[o7.HAEDAL_CPMM]:oT.swap,[o7.HAEDAL_CPMM_V2]:oC.swap,[o7.HAEDAL_LSD]:oM.swap,[o7.HAEDAL_LSD_WAL]:oy.swap,[o7.KRIYA_CLMM]:oh.swap,[o7.KRIYA_CPMM]:oF.swap,[o7.MAGMA_ALMM]:oP.swap,[o7.MAGMA_CLMM]:oD.swap,[o7.METASTABLE]:ow.swap,[o7.MOMENTUM_CLMM]:ov.swap,[o7.MOVEPUMP]:ok.swap,[o7.OBRIC]:oU.swap,[o7.SCALLOP]:oj.swap,[o7.SEVENK_CPMM]:oq.swap,[o7.SEVENK_FUN]:o$.swap,[o7.SPRINGSUI]:oV.swap,[o7.SRM_CPMM]:oH.swap,[o7.STEAMM_CPMM]:oW.swapCpmm,[o7.STEAMM_OMM]:oW.swapOmm,[o7.STEAMM_OMM_V2]:oW.swapOmmV2,[o7.SUISWAP_CPMM]:oz.swap,[o7.TRADEPORT_CLMM]:oQ.swap,[o7.TURBOS_CLMM]:o6.swap,[o7.TURBOS_FUN]:o1.swap,[o7.VOLO]:o3.swap},tB.swap=function(e){(0,tB.RouterSwapFunctionMap[e.protocol])(e)},(o8||(o8={})).buildAggregatorSwapTransaction=async function(e){let{tx:t,coinOutType:o,tradePaths:r,pythConnections:a,pythClient:n,packageIdMap:i}=e,c=tD.openSwap(e),s=await tZ.updatePythPriceIDs({priceFeedIds:function(e){let t=new Set;for(let o of e)"pythPriceFeedIdA"in o&&t.add(o.pythPriceFeedIdA),"pythPriceFeedIdB"in o&&t.add(o.pythPriceFeedIdB),"pythPriceFeedIdBase"in o&&t.add(o.pythPriceFeedIdBase),"pythPriceFeedIdMeta"in o&&t.add(o.pythPriceFeedIdMeta),"pythPriceFeedIdEth"in o&&t.add(o.pythPriceFeedIdEth);return[...t]}(r),txb:t,pythClient:n,pythConnections:a});for(let e=0;e<r.length;e++){let o=r[e],[a,n]=o.aToB?[o.coinInType,o.coinOutType]:[o.coinOutType,o.coinInType];o5.swap({...o,txb:t,swapContext:c,amountIn:o.amountIn,coinAType:a,coinBType:n,packageId:i?.get(o.protocol),pythInfoObjectIdMap:s})}return tD.closeSwap({tx:t,coinOutType:o,swapSession:c})};let rD=tZ.newPythConnections(),rw=tZ.newPythClient();var rL=o9||(o9={});function rv(e){var t,o;let r,a,{buildTxParam:n,rawRouteParam:i}=e;switch(i.sourceRoute){case"CETUS":r=tR.convert(i.rawRoute);break;case"FLOWX":r=tk.convert(i.rawRoute);break;case"SEVENK":r=tw.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??rD,pythClient:n.pythClient??rw}}rL.toMetaAggregatorBuildTxParams=rv,rL.buildTx=function(e){let t=rv(e);return o8.buildAggregatorSwapTransaction(t)};class rR{sdk;_astrosAggregator;_aftermathAggregator;_sevenkAggregator;_cetusAggregator;_flowXAggregator;constructor(e){this.sdk=e,this._astrosAggregator=new ro({defaultTradeFee:e.options.tradeFee,astrosApiKey:e.options.astrosApiKey},e.suiClient),this._aftermathAggregator=new rt({defaultTradeFee:e.options.tradeFee,aftermathApiKey:e.options.aftermathApiKey,aftermathApiEndpoint:e.options.aftermathApiEndpoint},e.suiClient),this._sevenkAggregator=new re({defaultTradeFee:e.options.tradeFee,sevenKApiKey:e.options.sevenKApiKey},e.suiClient),this._cetusAggregator=new rr({defaultTradeFee:e.options.tradeFee,cetusApiKey:e.options.cetusApiKey,cetusApiEndpoint:e.options.cetusApiEndpoint,cetusPartnerId:e.options.cetusPartnerId},e.suiClient),this._flowXAggregator=new rn({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 ra.ASTROS:{let e,r=await this._astrosAggregator.getTradeRoute(t);if(!r)return null;let n=ro.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 ra.AFTERMATH:{let e=await this._aftermathAggregator.getTradeRoute(t);if(!e)return null;let r=rt.toCommonTradeRoutes(e);if(!r)return null;o={route:r,aggregatorRoute:e};break}case ra.SEVENK:{let e=await this._sevenkAggregator.getTradeRoute(t);if(!e)return null;let r=re.toCommonTradeRoutes(e);if(!r)return null;o={route:r,aggregatorRoute:e};break}case ra.CETUS:{let e=await this._cetusAggregator.getTradeRoute(t);if(!e)return null;let r=rr.toCommonTradeRoutes(e,t.coinInType,t.coinOutType);if(!r)return null;o={route:r,aggregatorRoute:e};break}case ra.FLOWX:{let e=await this._flowXAggregator.getTradeRoute(t);if(!e)return null;let r=rn.toCommonTradeRoutes(e);if(!r)return null;o={route:r,aggregatorRoute:e}}}return o}async getTransactionByRoute(e,t){switch(e){case ra.ASTROS:return this._astrosAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case ra.AFTERMATH:return this._aftermathAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage});case ra.SEVENK:return this._sevenkAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case ra.CETUS:return this._cetusAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case ra.FLOWX:return this._flowXAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee})}}async getTradeTransaction(e,t){let o=await this.getTradeRoute(e,{coinInAmount:t.coinInAmount,coinInType:t.coinInType,coinOutType:t.coinOutType,tradeFee:t.tradeFee,metaAggregator:t.metaAggregator});if(!o)return null;let r=await this.getTransactionByRoute(e,{walletAddress:t.walletAddress,completeRoute:o.aggregatorRoute,slippage:t.slippage,tradeFee:t.tradeFee});return{route:o.route,aggregatorRoute:o.aggregatorRoute,transaction:r}}async getTradeTransactionWithBestRate(e){let t=Object.keys(ra),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(ra),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(eg(o)||eg(r),"One of coinInType or coinOutType must be SUI");let a=eg(o);switch(e){case rT.MOONBAGS:if(a)return await tX.getCurveAmountAfterBuy({poolId:t.poolId,suiAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0},this.sdk.suiClient);return await tX.getSuiAmountAfterSell({poolId:t.poolId,curveAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0},this.sdk.suiClient);case rT.BLAST_FUN:if(a)return await t$.getCurveAmountAfterBuy({poolId:t.poolId,suiAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0});return await t$.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(eg(r)||eg(a),"One of coinInType or coinOutType must be SUI");let n=eg(r);switch(e){case rT.MOONBAGS:o=n?await tW.getBuyTransaction(t,this.sdk.suiClient):await tW.getSellTransaction(t,this.sdk.suiClient);break;case rT.BLAST_FUN:o=n?await tV.getBuyTransaction(t,this.sdk.suiClient):await tV.getSellTransaction(t,this.sdk.suiClient);break;default:throw Error(`Unsupported bonding curve platform: ${e}`)}return o}}let 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=eA(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,rl as BLUEFIN_PACKAGE_ID,rk as CurveModule,rN as DEFAULT_TRADE_FEE,rG as DraftTransferTx,rU as NoodlesSdk,re as SevenKAggregator,rE as adaptSuiClient,ry as adaptTransaction,rt as AftermathAggregator,tQ as AftermathCpmm,t6 as AftermathLsd,o9 as AggregatorConverter,ro as AstrosAggregator,t2 as Blastfun,tq as BluefinTx,t5 as BluefinClmm,t9 as BluemoveCpmm,oe as Bolt,tX as MoonbagsCalculation,rr as CetusAggregator,tR as CetusAggregatorConverter,oo as CetusClmm,oa as CetusDlmm,eE as checkIsSui,ra as SupportedAggregator,tN as BlastFunConstants,tJ as MoonbagsConstants,rS as createCompatibleSuiClient,tK as BlastFunCustomCalculation,tY as BlastFunCustomTransaction,oi as DeepbookV3,eO as denormalizeTokenType,os as DipCpmm,rj as BASE_BPS,ol as FerraClmm,op as FerraDlmm,rn as FlowXAggregator,tk as FlowXAggregatorConverter,og as FlowxCpmm,ob as FullsailClmm,rg as getMemezPumpSDK,rc as getMoveObject,ri as getMoveObjectContent,oE as HaedalLsdWal,oS as KriyaClmm,oB as MagmaAlmm,ox as MagmaClmm,o8 as MetaAggregator,tv as Metastable,oL as MomentumClmm,oR as Movepump,eM as normalizeTokenType,oN as Obric,tj as BlastFunPackage,tG as Bps,tU as MathUtils,tH as MoonbagsPackage,tz as PythPrice,tZ as PythUtils,oG as Scallop,t$ as BlastFunSDKCalculation,tV as BlastFunSDKTransaction,tw as SevenKAggregatorConverter,oK as SevenkCpmm,oY as SevenkFun,rd as splitSuiCoinAfterFeeFromBuyTx,rp as splitSuiCoinAfterFeeFromSellTx,oJ as SrmCpmm,oX as Steamm,oZ as TradeportClmm,tW as MoonbagsTransaction,o0 as TurbosClmm,o4 as TurbosFun,o7 as AggregatorProtocol,rT as SupportedBondingCurve,tL as TradeFeeOptions,o5 as RouterUtils,o2 as Volo,oO as Walrus};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@minswap/noodles-sdk",
3
- "version": "0.0.59-beta.0",
3
+ "version": "0.0.59-beta.1",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "exports": {