@minswap/noodles-sdk 0.0.65 → 0.0.66

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 __webpack_modules__={"./src/constant/sui.ts"(e,t,o){o.d(t,{IC:()=>s,N3:()=>n,P9:()=>a,VV:()=>c,lM:()=>i,nD:()=>r,qb:()=>u,tC:()=>l});let r="0x2::sui::SUI",a="0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI",n="0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN",i="0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC",s="0x9258181f5ceac8dbffb7030890243caed69a9599d2886d957a9cb7656af3bdb3",c="0x0000000000000000000000000000000000000000000000000000000000000006",u="0x0000000000000000000000000000000000000000000000000000000000000000";function l(e){return e===r||e===a}},"./src/libs/pyth.ts"(e,t,o){o.d(t,{L:()=>n,j:()=>i});var r,a,n,i,s=o("@mysten/sui/jsonRpc"),c=o("@mysten/sui/utils");let u=require("@pythnetwork/pyth-sui-js");(r=n||(n={})).LAST_PACKAGE_ID="0x8c36ea167c5e6da8c3d60b4fc897416105dcb986471bd81cfbfd38720a4487c0",r.newHolder=function(e){return e.moveCall({target:`${r.LAST_PACKAGE_ID}::oracle::new_holder`,typeArguments:[],arguments:[]})},r.getPrice=function(e){let{txb:t,coinOracleId:o,holder:a,coinPriceId:n}=e;t.moveCall({target:`${r.LAST_PACKAGE_ID}::pyth::get_price`,typeArguments:[],arguments:[t.object(o),a,t.object(n),t.object(c.SUI_CLOCK_OBJECT_ID)]})},(a=i||(i={})).PYTH_URLS=["https://hermes.pyth.network"],a.WORMHOLE_STATE_ID="0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",a.PYTH_STATE_ID="0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",a.newPythConnections=function(e){return e||(e=a.PYTH_URLS),e.map(e=>new u.SuiPriceServiceConnection(e,{timeout:3e3}))},a.newPythClient=function(e){return e||(e=new s.SuiJsonRpcClient({network:"mainnet",url:(0,s.getJsonRpcFullnodeUrl)("mainnet")})),new u.SuiPythClient(e,a.PYTH_STATE_ID,a.WORMHOLE_STATE_ID)},a.updatePythPriceIDs=async function(e){let{priceFeedIds:t,txb:o,pythConnections:r,pythClient:a}=e;if(0===t.length)return new Map;let n=null,i=null;for(let e of r)try{n=await e.getPriceFeedsUpdateData(t);break}catch(e){i=e,console.log("Error: ",e)}if(null==n)throw Error(`All Pyth price nodes are unavailable. Cannot fetch price data. Please switch to or add new available Pyth nodes. Detailed error: ${i?.message}`);let s=[];try{s=await a.updatePriceFeeds(o,n,t)}catch(e){throw Error(`All Pyth price nodes are unavailable. Cannot fetch price data. Please switch to or add new available Pyth nodes in the pythUrls parameter when initializing AggregatorClient, for example: new AggregatorClient({ pythUrls: ["https://your-pyth-node-url"] }). Detailed error: ${e}`)}let c=new Map;for(let e=0;e<t.length;e++)c.set(t[e],s[e]);return c}},"./src/libs/token-type.ts"(e,t,o){o.d(t,{YY:()=>i,eP:()=>n,nr:()=>a});var r=o("./src/constant/sui.ts");function a(e){return e===r.nD?r.P9:e}function n(e){return e===r.P9?r.nD:e}function i(e){return e===r.P9||e===r.nD}},"./src/meta-aggregator/aggregator/aggregator.ts"(e,t,o){var r,a;o.d(t,{u:()=>r}),(a=r||(r={})).MAX_AMOUNT_IN="18446744073709551615",a.LAST_PACKAGE_ID="0x7e57926855b32baa3b3cabed89380b8d415606fdedadc18e58bd1ef1e60aee48",a.openSwap=function(e){let{tx:t,expectedAmountOut:o,minAmountOut:r,coinInType:n,coinOutType:i,inputCoin:s,aggregatorFeeBps:c,aggregatorFeeRecipient:u,partnerFeeRecipient:l,partnerFeeBps:_}=e,[p]=t.moveCall({target:`${a.LAST_PACKAGE_ID}::aggregator::open_swap`,typeArguments:[n,i],arguments:[t.pure.u64(o),t.pure.u64(r),s,t.pure.u32(c),t.pure.address(u),t.pure.u32(_??0),t.pure.option("address",l)]});return p},a.closeSwap=function(e){let{tx:t,coinOutType:o,swapSession:r}=e,[n]=t.moveCall({target:`${a.LAST_PACKAGE_ID}::aggregator::close_swap`,typeArguments:[o],arguments:[r]});return n}},"./src/meta-aggregator/client/bluefin7k-client.ts"(e,t,o){o.r(t),o.d(t,{Bluefin7kClient:()=>i});var r=o("@bluefin-exchange/bluefin7k-aggregator-sdk"),a=o("./src/meta-aggregator/converter-route/sevenk-aggregator-converter.ts"),n=o("./src/meta-aggregator/client/error.ts");class i{options;kind="SEVENK";constructor(e,t){this.options=e,e.apiKey&&r.Config.setApiKey(e.apiKey),r.Config.setSuiClient(t)}async quote(e){let t=[];if(this.options.sources)for(let e of this.options.sources)a.m.SUPPORTED_PROTOCOLS.includes(e)&&t.push(e);else t.push(...a.m.SUPPORTED_PROTOCOLS);let o=await (0,r.getQuote)({tokenIn:e.coinTypeIn,tokenOut:e.coinTypeOut,amountIn:e.amountIn,sources:t,excludedPools:this.options.excludedPools,targetPools:this.options.targetPools});return n.u.assert(!!o,"No quote found",n.j.QUOTE_NOT_FOUND,{provider:this.kind}),{sourceRoute:"SEVENK",rawRoute:o,amountIn:o.swapAmountWithDecimal,amountOut:o.returnAmountWithDecimal,coinTypeIn:e.coinTypeIn,coinTypeOut:e.coinTypeOut}}}},"./src/meta-aggregator/client/cetus-client.ts"(e,t,o){o.r(t),o.d(t,{CetusClient:()=>c});var r=o("@cetusprotocol/aggregator-sdk"),a=o("./src/libs/pyth.ts"),n=o("./src/meta-aggregator/converter-route/cetus-aggregator-converter.ts"),i=o("./src/meta-aggregator/client/error.ts");let s=a.j.PYTH_URLS;class c{options;kind="CETUS";cetusClient;constructor(e,t,o){this.options=e,this.cetusClient=new r.AggregatorClient({apiKey:e.apiKey,client:o,endpoint:e.api,env:r.Env.Mainnet,pythUrls:t.hermesApi?t.hermesApi:s})}async quote(e){let t=[];if(this.options.sources)for(let e of this.options.sources)n.M.SUPPORTED_PROTOCOLS.includes(e)&&t.push(e);else t.push(...n.M.SUPPORTED_PROTOCOLS);let o=await this.cetusClient.findRouters({amount:e.amountIn,byAmountIn:!0,from:e.coinTypeIn,target:e.coinTypeOut,providers:t,splitCount:this.options.splitCount,splitAlgorithm:this.options.splitAlgorithm,splitFactor:this.options.splitFactor,depth:this.options.depth,liquidityChanges:this.options.liquidityChanges});return i.u.assert(!!o,"No quote found",i.j.QUOTE_NOT_FOUND,{provider:this.kind}),{sourceRoute:"CETUS",rawRoute:o,amountIn:o.amountIn.toString()||"0",amountOut:o.amountOut.toString()||"0",coinTypeIn:e.coinTypeIn,coinTypeOut:e.coinTypeOut}}}},"./src/meta-aggregator/client/error.ts"(e,t,o){o.d(t,{j:()=>a,u:()=>n});var r,a=((r={})[r.UNKNOWN=1e3]="UNKNOWN",r[r.TIMEOUT=1001]="TIMEOUT",r[r.PROVIDER_NOT_FOUND=1002]="PROVIDER_NOT_FOUND",r[r.PROVIDER_NOT_SUPPORTED=1003]="PROVIDER_NOT_SUPPORTED",r[r.INVALID_QUOTE=1004]="INVALID_QUOTE",r[r.QUOTE_NOT_FOUND=1005]="QUOTE_NOT_FOUND",r[r.INVALID_SIGNER_ADDRESS=1006]="INVALID_SIGNER_ADDRESS",r[r.PROVIDER_NOT_SUPPORT_SWAP=1007]="PROVIDER_NOT_SUPPORT_SWAP",r[r.SIMULATION_FAILED=1008]="SIMULATION_FAILED",r);class n extends Error{code;details;constructor(e,t,o){super(e),this.name="MetaAgError",this.code=t??1e3,this.details=o}static assert(e,t,o,r){if(!e)throw new n(t??"Assertion failed",o,r)}}},"./src/meta-aggregator/client/flowx-client.ts"(e,t,o){o.r(t),o.d(t,{FlowxClient:()=>n});var r=o("@flowx-finance/sdk"),a=o("./src/meta-aggregator/converter-route/flowx-aggregator-converter.ts");class n{options;kind="FLOWX";quoter;constructor(e){this.options=e,this.quoter=new r.AggregatorQuoter("mainnet",e.apiKey)}async quote(e){let t=[];if(this.options.sources)for(let e of this.options.sources)a.m.SUPPORTED_PROTOCOLS.includes(e)&&t.push(e);else t.push(...a.m.SUPPORTED_PROTOCOLS);let o=await this.quoter.getRoutes({amountIn:e.amountIn,tokenIn:e.coinTypeIn,tokenOut:e.coinTypeOut,includeSources:t,excludePools:this.options.excludePools,excludeSources:this.options.excludeSources,maxHops:this.options.maxHops,splitDistributionPercent:this.options.splitDistributionPercent});return{sourceRoute:"FLOWX",rawRoute:o,amountIn:o.amountIn?.toString()??"0",amountOut:o.amountOut?.toString()??"0",coinTypeIn:e.coinTypeIn,coinTypeOut:e.coinTypeOut}}}},"./src/meta-aggregator/converter-route/cetus-aggregator-converter.ts"(e,t,o){o.d(t,{M:()=>r});var r,a=o("@cetusprotocol/aggregator-sdk"),n=o("@minswap/tiny-invariant"),i=o.n(n),s=o("./src/meta-aggregator/aggregator/aggregator.ts"),c=o("./src/meta-aggregator/external/metastable.ts"),u=o("./src/meta-aggregator/router/types.ts");!function(e){let t=[a.CETUS,a.KRIYA,a.FLOWXV2,a.FLOWXV3,a.KRIYAV3,a.TURBOS,a.AFTERMATH,a.HAEDAL,a.VOLO,a.AFSUI,a.BLUEMOVE,a.DEEPBOOKV3,a.SCALLOP,a.SUILEND,a.BLUEFIN,a.HAEDALPMM,a.ALPHAFI,a.SPRINGSUI,a.STEAMM,a.METASTABLE,a.OBRIC,a.HAWAL,a.STEAMM_OMM,a.MOMENTUM,a.STEAMM_OMM_V2,a.MAGMA,a.SEVENK,a.HAEDALHMMV2,a.FULLSAIL,a.CETUSDLMM,a.FERRADLMM,a.FERRACLMM];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 n(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 l(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 a=e.paths[r],i=n(a);t.get(a.from)===r&&(i.amountIn=s.u.MAX_AMOUNT_IN),o.push(i)}return o}e.TO_META_AGGREGATOR_PATH_FN_MAP={[a.METASTABLE]:e=>{let t=r(e),o=e.extendedDetails,a=e.direction?e.target:e.from;i()(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 c.b.MetaCoinType.SUPER_SUI:return i()(o.metastable_registry_id,`METASTABLE_SUPER_SUI protocol requires 'metastable_registry_id' in extendedDetails for pool ${e.id}.`),{...t,...n,protocol:u.S.METASTABLE,metaCoin:a,registryId:o.metastable_registry_id};case c.b.MetaCoinType.MUSD:return i()(o.metastable_price_seed,`METASTABLE_MUSD protocol requires 'metastable_price_seed' in extendedDetails for pool ${e.id}.`),{...t,...n,protocol:u.S.METASTABLE,metaCoin:a,pythPriceFeedIdMeta:o.metastable_price_seed};case c.b.MetaCoinType.METH:return i()(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:u.S.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.`)}},[a.DEEPBOOKV3]:e=>({...r(e),protocol:u.S.DEEPBOOK_V3}),[a.AFTERMATH]:e=>{let t=e.extendedDetails;return i()(t?.aftermath_lp_supply_type,`AFTERMATH_CPMM protocol requires 'aftermath_lp_type' in extendedDetails for pool ${e.id}.`),{...r(e),protocol:u.S.AFTERMATH_CPMM,coinLpType:t.aftermath_lp_supply_type}},[a.FLOWXV3]:e=>({...r(e),protocol:u.S.FLOWX_CLMM,poolFeeRate:String(1e6*e.feeRate)}),[a.HAEDALPMM]:e=>{let t=e.extendedDetails;return i()(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:u.S.HAEDAL_CPMM,pythPriceFeedIdA:t.haedal_pmm_base_price_seed,pythPriceFeedIdB:t.haedal_pmm_quote_price_seed}},[a.HAEDALHMMV2]:e=>{let t=e.extendedDetails;return i()(t?.haedalhmmv2_base_price_seed,`HAEDAL_CPMM_V2 protocol requires 'haedal_pyth_price_base_id' in extendedDetails for pool ${e.id}.`),{...r(e),protocol:u.S.HAEDAL_CPMM_V2,pythPriceFeedIdBase:t.haedalhmmv2_base_price_seed}},[a.SCALLOP]:e=>(i()(e.extendedDetails?.scallop_scoin_treasury,`SCALLOP protocol requires 'scallop_scoin_treasury' in extendedDetails for pool ${e.id}.`),{...r(e),protocol:u.S.SCALLOP,scoinTreasury:e.extendedDetails.scallop_scoin_treasury}),[a.STEAMM]:e=>{let t=e.extendedDetails;return i()(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:u.S.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}},[a.STEAMM_OMM]:e=>{let t=e.extendedDetails;return i()(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:u.S.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)}},[a.STEAMM_OMM_V2]:e=>{let t=e.extendedDetails;return i()(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:u.S.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)}},[a.OBRIC]:e=>{let t=r(e);if(e.extendedDetails?.obric_coin_a_price_id&&e.extendedDetails?.obric_coin_b_price_id)return{...t,protocol:u.S.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:u.S.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}.`)},[a.SEVENK]:e=>{let t=e.extendedDetails;return i()(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:u.S.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}},[a.TURBOS]:e=>(i()(e.extendedDetails?.turbos_fee_type,`TURBOS_CLMM protocol requires 'coinFeeType' parameter for pool ${e.id}. Provide it via the parametersMap argument.`),{...r(e),protocol:u.S.TURBOS_CLMM,coinFeeType:e.extendedDetails.turbos_fee_type}),[a.AFSUI]:e=>({...r(e),protocol:u.S.AFTERMATH_LSD}),[a.ALPHAFI]:e=>({...r(e),protocol:u.S.ALPHAFI_LSD}),[a.BLUEFIN]:e=>({...r(e),protocol:u.S.BLUEFIN_CLMM}),[a.BLUEMOVE]:e=>({...r(e),protocol:u.S.BLUEMOVE_CPMM}),[a.CETUS]:e=>({...r(e),protocol:u.S.CETUS_CLMM}),[a.CETUSDLMM]:e=>({...r(e),protocol:u.S.CETUS_DLMM}),[a.FERRACLMM]:e=>({...r(e),protocol:u.S.FERRA_CLMM}),[a.FERRADLMM]:e=>({...r(e),protocol:u.S.FERRA_DLMM}),[a.FLOWXV2]:e=>({...r(e),protocol:u.S.FLOWX_CPMM}),[a.FULLSAIL]:e=>({...r(e),protocol:u.S.FULLSAIL_CLMM}),[a.HAEDAL]:e=>({...r(e),protocol:u.S.HAEDAL_LSD}),[a.HAWAL]:e=>({...r(e),protocol:u.S.HAEDAL_LSD_WAL}),[a.KRIYA]:e=>({...r(e),protocol:u.S.KRIYA_CPMM}),[a.KRIYAV3]:e=>({...r(e),protocol:u.S.KRIYA_CLMM}),[a.MAGMA]:e=>({...r(e),protocol:u.S.MAGMA_CLMM}),[a.MOMENTUM]:e=>({...r(e),protocol:u.S.MOMENTUM_CLMM}),[a.SUILEND]:e=>({...r(e),protocol:u.S.SPRINGSUI}),[a.SPRINGSUI]:e=>({...r(e),protocol:u.S.SPRINGSUI}),[a.VOLO]:e=>({...r(e),protocol:u.S.VOLO})},e.toMetaAggregatorPath=n,e.toMetaAggregatorPaths=l,e.convert=function(e){return{coinInType:e.paths[0].from,coinOutType:e.paths[e.paths.length-1].target,amountOut:e.amountOut.toString(),tradePaths:l(e)}}}(r||(r={}))},"./src/meta-aggregator/converter-route/flowx-aggregator-converter.ts"(e,t,o){o.d(t,{m:()=>r});var r,a=o("@flowx-finance/sdk"),n=o("@minswap/tiny-invariant"),i=o.n(n),s=o("./src/meta-aggregator/aggregator/aggregator.ts"),c=o("./src/meta-aggregator/router/types.ts");!function(e){let t=[a.Protocol.HOP_FUN,a.Protocol.FLOWX_PMM,a.Protocol.DEEPBOOK,a.Protocol.IPX_TIDE,a.Protocol.METASTABLE];e.SUPPORTED_PROTOCOLS=Object.values(a.Protocol).filter(e=>!t.includes(e));let o={[a.Protocol.FLOWX_V2]:t=>({...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:c.S.FLOWX_CPMM}),[a.Protocol.FLOWX_V3]:t=>(i()(void 0!==t.poolFee,`Pool fee is required for pool ${t.pool.id}`),i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.FLOWX_CLMM,poolFeeRate:t.poolFee.toString()}),[a.Protocol.CETUS]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.CETUS_CLMM}),[a.Protocol.CETUS_DLMM]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.CETUS_DLMM}),[a.Protocol.AFTERMATH]:t=>(i()(t.lpCoinType,`AFTERMATH protocol requires lpCoinType for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:c.S.AFTERMATH_CPMM,coinLpType:t.lpCoinType}),[a.Protocol.AFTERMATH_LSD]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:c.S.AFTERMATH_LSD}),[a.Protocol.ALPHA_FI]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:c.S.ALPHAFI_LSD}),[a.Protocol.BLUEFIN]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.BLUEFIN_CLMM}),[a.Protocol.BLUEMOVE]:t=>({...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:c.S.BLUEMOVE_CPMM}),[a.Protocol.DEEPBOOK_V3]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.DEEPBOOK_V3}),[a.Protocol.FERRA_CLMM]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.FERRA_CLMM}),[a.Protocol.FERRA_DLMM]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.FERRA_DLMM}),[a.Protocol.FULL_SAIL]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.FULLSAIL_CLMM}),[a.Protocol.HAEDAL]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:c.S.HAEDAL_LSD}),[a.Protocol.HAEDAL_PMM]:t=>{let o=t.oracles;return i()(o&&o.length>=2,`HAEDAL_CPMM protocol requires oracle price feeds for pool ${t.pool.id}.`),i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.HAEDAL_CPMM,pythPriceFeedIdA:o[0].priceId,pythPriceFeedIdB:o[1].priceId}},[a.Protocol.KRIYA_DEX]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.KRIYA_CPMM}),[a.Protocol.KRIYA_V3]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.KRIYA_CLMM}),[a.Protocol.MAGMA_FINANCE]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.MAGMA_CLMM}),[a.Protocol.MAGMA_ALMM]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.MAGMA_ALMM}),[a.Protocol.MOMENTUM_FINANCE]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.MOMENTUM_CLMM}),[a.Protocol.OBRIC]:t=>(i()(t.xPriceId&&t.yPriceId,`OBRIC protocol requires price feeds for pool ${t.pool.id}`),i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.OBRIC,priceInfoObjIdA:t.xPriceId,priceInfoObjIdB:t.yPriceId}),[a.Protocol.SPRING_SUI]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:c.S.SPRINGSUI}),[a.Protocol.STEAMM]:t=>{i()(void 0!==t.bankXInfo&&void 0!==t.bankYInfo,`STEAMM protocol requires bank info for pool ${t.pool.id}`),i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),i()(void 0!==t.quoterType,`quoterType is required for pool ${t.pool.id}`),i()(void 0!==t.poolInfo,`poolInfo is required for pool ${t.pool.id}`),i()(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:c.S.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":{i()(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 i()(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:c.S.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}`)}},[a.Protocol.SEVENK_V1]:t=>{let o=t.oracles;return i()(o&&o.length>=2,`SEVENK_CPMM protocol requires oracle price feeds for pool ${t.pool.id}.`),i()(t.poolStructTag,`SEVENK_V1 protocol requires poolStructTag for pool ${t.pool.id}`),i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.SEVENK_CPMM,coinLpType:t.poolStructTag,pythPriceFeedIdA:o[0].priceId,pythPriceFeedIdB:o[1].priceId,oracleConfigA:o[0].oracleId??"",oracleConfigB:o[1].oracleId??""}},[a.Protocol.SUI_REWARDS]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.SRM_CPMM}),[a.Protocol.TURBOS_FIANCE]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.TURBOS_CLMM,coinFeeType:t.poolStructTag?t.poolStructTag.split("<")[1].split(",")[2].trim().replace(">",""):""}),[a.Protocol.VOLO_LSD]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:c.S.VOLO}),[a.Protocol.TRADEPORT]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),i()(void 0!==t.poolFee,`Pool fee is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,poolFeeRate:t.poolFee.toString(),protocol:c.S.TRADEPORT_CLMM}),[a.Protocol.TURBOS_FUN]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.TURBOS_FUN}),[a.Protocol.BLUEMOVE_FUN]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,expectedAmountOut:t.amountOut.toString(),protocol:c.S.MOVEPUMP}),[a.Protocol.SEVEN_K_FUN]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.SEVENK_FUN}),[a.Protocol.DIPCOIN]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.DIP_CPMM}),[a.Protocol.BOLT]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.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=s.u.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)}}}(r||(r={}))},"./src/meta-aggregator/converter-route/sevenk-aggregator-converter.ts"(e,t,o){o.d(t,{m:()=>r});var r,a=o("@minswap/tiny-invariant"),n=o.n(a),i=o("@mysten/sui/utils"),s=o("./src/libs/token-type.ts"),c=o("./src/meta-aggregator/aggregator/aggregator.ts"),u=o("./src/meta-aggregator/router/types.ts");!function(e){let t=new Set(["bluefinx","RFQ"]);e.SUPPORTED_PROTOCOLS=["suiswap","turbos","cetus","bluemove","kriya","kriya_v3","aftermath","deepbook_v3","flowx","flowx_v3","bluefin","springsui","obric","stsui","steamm","steamm_oracle_quoter","steamm_oracle_quoter_v2","magma","haedal_pmm","momentum","sevenk_v1","fullsail","cetus_dlmm","ferra_dlmm","ferra_clmm"];let o={aftermath:e=>{n()(e.extra?.poolStructTag,"Aftermath protocol requires poolStructTag");let[t]=_(e.extra.poolStructTag);return{...l(e),protocol:u.S.AFTERMATH_CPMM,coinLpType:t}},flowx_v3:e=>{n()(e.extra?.swapFeeRate,"flowx_v3 protocol requires swapFeeRate");let t=e.extra.swapFeeRate;return{...l(e),protocol:u.S.FLOWX_CLMM,poolFeeRate:t}},turbos:e=>{n()(e.extra?.poolStructTag,"turbos protocol requires poolStructTag");let[t,o,r]=_(e.extra.poolStructTag);return{...l(e),protocol:u.S.TURBOS_CLMM,coinFeeType:r}},obric:e=>(n()(e.extra?.oracles,"obric protocol requires oracles"),{...l(e),protocol:u.S.OBRIC,pythPriceFeedIdA:p(e.extra.oracles[0]),pythPriceFeedIdB:p(e.extra.oracles[1])}),haedal_pmm:e=>(n()(e.extra.oracles,"haedal_pmm protocol requires oracles"),{...l(e),protocol:u.S.HAEDAL_CPMM,pythPriceFeedIdA:p(e.extra.oracles[0]),pythPriceFeedIdB:p(e.extra.oracles[1])}),sevenk_v1:e=>{n()(e.extra?.poolStructTag,"sevenk_v1 protocol requires poolStructTag"),n()(e.extra?.oracleConfigX,"sevenk_v1 protocol requires oracleConfigX"),n()(e.extra?.oracleConfigY,"sevenk_v1 protocol requires oracleConfigY");let t=e.extra.oracles?.[0]?.Pyth?.bytes,o=e.extra.oracles?.[1]?.Pyth?.bytes;n()(t,"sevenk_v1 protocol requires pythPriceFeedIdA"),n()(o,"sevenk_v1 protocol requires pythPriceFeedIdB");let[r,a,i]=_(e.extra.poolStructTag);return{...l(e),protocol:u.S.SEVENK_CPMM,coinLpType:i,pythPriceFeedIdA:t,pythPriceFeedIdB:o,oracleConfigA:e.extra.oracleConfigX,oracleConfigB:e.extra.oracleConfigY}},steamm:e=>{n()(e.extra?.poolStructTag,"steamm protocol requires poolStructTag"),n()(e.extra?.bankAStructTag,"steamm protocol requires bankAStructTag"),n()(e.extra?.lendingMarketA,"steamm protocol requires lendingMarketA"),n()(e.extra?.bankA,"steamm protocol requires bankA"),n()(e.extra?.bankB,"steamm protocol requires bankB");let[t,o,r,a]=_(e.extra.poolStructTag),[i,s,c]=_(e.extra.bankAStructTag);return{...l(e),protocol:u.S.STEAMM_CPMM,bankAId:e.extra.bankA,bankBId:e.extra.bankB,lendingMarketId:e.extra.lendingMarketA,lendingMarketType:i,bCoinAType:t,bCoinBType:o,lpBCoinType:a}},steamm_oracle_quoter:e=>{n()(e.extra?.poolStructTag,"steamm_oracle_quoter protocol requires poolStructTag"),n()(e.extra?.bankAStructTag,"steamm_oracle_quoter protocol requires bankAStructTag"),n()(e.extra?.lendingMarketA,"steamm_oracle_quoter protocol requires lendingMarketA"),n()(e.extra?.oracleRegistry,"steamm_oracle_quoter protocol requires oracleRegistry"),n()(e.extra?.bankA,"steamm_oracle_quoter protocol requires bankA"),n()(e.extra?.bankB,"steamm_oracle_quoter protocol requires bankB"),n()(e.extra?.oracleIndexes,"steamm_oracle_quoter protocol requires oracleIndexes"),n()(e.extra?.oracles,"steamm_oracle_quoter protocol requires oracles");let[t,o,r,a]=_(e.extra?.poolStructTag),[i,s,c]=_(e.extra.bankAStructTag),[d,g]=e.extra.oracleIndexes;return{...l(e),protocol:u.S.STEAMM_OMM,bankAId:e.extra.bankA,bankBId:e.extra.bankB,lendingMarketId:e.extra.lendingMarketA,lendingMarketType:i,bCoinAType:t,bCoinBType:o,lpBCoinType:a,pythPriceFeedIdA:p(e.extra.oracles[0]),pythPriceFeedIdB:p(e.extra.oracles[1]),oracleRegistryId:e.extra.oracleRegistry,oracleIndexA:d,oracleIndexB:g}},steamm_oracle_quoter_v2:e=>{n()(e.extra?.poolStructTag,"steamm_oracle_quoter_v2 protocol requires poolStructTag"),n()(e.extra?.bankAStructTag,"steamm_oracle_quoter_v2 protocol requires bankAStructTag"),n()(e.extra?.lendingMarketA,"steamm_oracle_quoter_v2 protocol requires lendingMarketA"),n()(e.extra?.oracleRegistry,"steamm_oracle_quoter_v2 protocol requires oracleRegistry"),n()(e.extra?.bankA,"steamm_oracle_quoter_v2 protocol requires bankA"),n()(e.extra?.bankB,"steamm_oracle_quoter_v2 protocol requires bankB"),n()(e.extra?.oracleIndexes,"steamm_oracle_quoter_v2 protocol requires oracleIndexes"),n()(e.extra?.oracles,"steamm_oracle_quoter_v2 protocol requires oracles");let[t,o,r,a]=_(e.extra?.poolStructTag),[i,s,c]=_(e.extra.bankAStructTag),[d,g]=e.extra.oracleIndexes;return{...l(e),protocol:u.S.STEAMM_OMM_V2,bankAId:e.extra.bankA,bankBId:e.extra.bankB,lendingMarketId:e.extra.lendingMarketA,lendingMarketType:i,bCoinAType:t,bCoinBType:o,lpBCoinType:a,pythPriceFeedIdA:p(e.extra.oracles[0]),pythPriceFeedIdB:p(e.extra.oracles[1]),oracleRegistryId:e.extra.oracleRegistry,oracleIndexA:d,oracleIndexB:g}},cetus:e=>({...l(e),protocol:u.S.CETUS_CLMM}),bluemove:e=>({...l(e),protocol:u.S.BLUEMOVE_CPMM}),kriya:e=>({...l(e),protocol:u.S.KRIYA_CPMM}),kriya_v3:e=>({...l(e),protocol:u.S.KRIYA_CLMM}),deepbook_v3:e=>({...l(e),protocol:u.S.DEEPBOOK_V3}),flowx:e=>({...l(e),protocol:u.S.FLOWX_CPMM}),bluefin:e=>({...l(e),protocol:u.S.BLUEFIN_CLMM}),springsui:e=>({...l(e),protocol:u.S.SPRINGSUI}),magma:e=>({...l(e),protocol:u.S.MAGMA_CLMM}),momentum:e=>({...l(e),protocol:u.S.MOMENTUM_CLMM}),fullsail:e=>({...l(e),protocol:u.S.FULLSAIL_CLMM}),stsui:e=>({...l(e),protocol:u.S.ALPHAFI_LSD}),suiswap:e=>({...l(e),protocol:u.S.SUISWAP_CPMM}),cetus_dlmm:e=>({...l(e),protocol:u.S.CETUS_DLMM}),ferra_dlmm:e=>({...l(e),protocol:u.S.FERRA_DLMM}),ferra_clmm:e=>({...l(e),protocol:u.S.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=c.u.MAX_AMOUNT_IN;return o}function l(e){return{poolId:e.poolId,coinInType:e.assetIn,coinOutType:e.assetOut,amountIn:e.amount,aToB:e.swapXtoY}}function _(e){return(0,i.parseStructTag)(e||"").typeParams.map(i.normalizeStructTag)}function p(e){let t=e?.Pyth?.bytes||e?.Pyth?.price_identifier?.bytes;return n()(t,"Pyth price feed id is not found"),"0x"+(0,i.toHex)(Uint8Array.from(t))}e.toMetaAggregatorPath=r,e.toMetaAggregatorPaths=a,e.convert=function(e){var t,o,r;let i;n()(e.routes,"Invalid raw route: routes is missing");let c=(t=e.routes,i={},t.forEach(e=>{e.hops.forEach(e=>{i[e.poolId]=e.pool})}),i),u=a((o=e.swaps,r=c,o.map(e=>{let t=r[e.poolId],o=(0,s.eP)(e.assetIn),a=(0,s.eP)(e.assetOut),n={type:(0,s.eP)(t?.allTokens?.[0]?.address),decimals:t?.allTokens?.[0]?.decimal},i={type:(0,s.eP)(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:u}}}(r||(r={}))},"./src/meta-aggregator/external/metastable.ts"(e,t,o){o.d(t,{b:()=>n});var r,a,n,i=o("@minswap/tiny-invariant"),s=o.n(i),c=o("@mysten/sui/utils");(r=n||(n={})).UNIVERSAL_META_VAULT_INTEGRATION_PACKAGE_ID="0xfd12517a9fc87c6a1f2357ad13b3421fb27a8bd7ca07d5fd5934ac35733baa47",(a=r.MetaCoinType||(r.MetaCoinType={})).SUPER_SUI="0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI",a.MUSD="0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD",a.METH="0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH",r.VERSION_OBJ_ID="0x4696559327b35ff2ab26904e7426a1646312e9c836d5c6cff6709a5ccc30915c",r.createCap=function(e){let t,{txb:o,coinType:r,metaCoin:a,createCapAllTypeParams:n,whitelistedAppId:i,poolId:u,pythInfoObjectIdMap:l,createCapPackageId:_,createCapModule:p,createCapFunc:d}=e,g=[a.toString()];switch(n&&g.push(r),e.metaCoin){case"0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI":t=[o.object(i),o.object(u),o.object(e.registryId)];break;case"0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD":{let r=l.get(e.pythPriceFeedIdMeta);s()(r,"Not found priceMetaId in pythObjectIdMap"),t=[o.object(i),o.object(u),o.object(r),o.object(c.SUI_CLOCK_OBJECT_ID)];break}case"0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH":{let r=l.get(e.pythPriceFeedIdMeta);s()(r,"Not found priceId in pythObjectIdMap");let a=l.get(e.pythPriceFeedIdEth);s()(a,"Not found priceEthFeedId in pythObjectIdMap"),t=[o.object(i),o.object(u),o.object(r),o.object(a),o.object(c.SUI_CLOCK_OBJECT_ID)];break}default:throw Error("Invalid MetaCoin: "+a.toString())}return o.moveCall({target:`${_}::${p}::${d}`,typeArguments:g,arguments:t})},r.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)}},r.isMetaCoinType=function(e){return Object.values(r.MetaCoinType).map(e=>e.toString()).includes(e)},r.getCreateCapAllTypeParams=function(e,t){switch(e){case"0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI":return t===r.UNIVERSAL_META_VAULT_INTEGRATION_PACKAGE_ID;case"0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD":case"0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH":return!0;default:throw Error("Invalid MetaCoin: "+e)}}},"./src/meta-aggregator/router/types.ts"(e,t,o){o.d(t,{S:()=>a});var r,a=((r={}).AFTERMATH_CPMM="aftermath_cpmm",r.AFTERMATH_LSD="aftermath_lsd",r.ALPHAFI_LSD="alphafi_lsd",r.BLASTFUN="blastfun",r.BLUEFIN_CLMM="bluefin_clmm",r.BLUEMOVE_CPMM="bluemove_cpmm",r.BOLT="bolt",r.CETUS_CLMM="cetus_clmm",r.CETUS_DLMM="cetus_dlmm",r.DEEPBOOK_V3="deepbook_v3",r.DIP_CPMM="dip_cpmm",r.FLOWX_CPMM="flowx_cpmm",r.FLOWX_CLMM="flowx_clmm",r.FULLSAIL_CLMM="fullsail_clmm",r.FERRA_CLMM="ferra_clmm",r.FERRA_DLMM="ferra_dlmm",r.HAEDAL_CPMM="haedal_cpmm",r.HAEDAL_CPMM_V2="haedal_cpmm_v2",r.HAEDAL_LSD="haedal_lsd",r.HAEDAL_LSD_WAL="haedal_lsd_wal",r.KRIYA_CLMM="kriya_clmm",r.KRIYA_CPMM="kriya_cpmm",r.MAGMA_ALMM="magma_almm",r.MAGMA_CLMM="magma_clmm",r.METASTABLE="metastable",r.MOMENTUM_CLMM="momentum_clmm",r.MOVEPUMP="movepump",r.OBRIC="obric",r.SCALLOP="scallop",r.SEVENK_CPMM="sevenk_cpmm",r.SEVENK_FUN="sevenk_fun",r.SPRINGSUI="springsui",r.SRM_CPMM="srm_cpmm",r.STEAMM_CPMM="steamm_cpmm",r.SUISWAP_CPMM="suiswap_cpmm",r.STEAMM_OMM="steamm_omm",r.STEAMM_OMM_V2="steamm_omm_v2",r.TRADEPORT_CLMM="tradeport_clmm",r.TURBOS_CLMM="turbos_clmm",r.TURBOS_FUN="turbos_fun",r.VOLO="volo",r)},"@bluefin-exchange/bluefin7k-aggregator-sdk"(e){e.exports=require("@bluefin-exchange/bluefin7k-aggregator-sdk")},"@cetusprotocol/aggregator-sdk"(e){e.exports=require("@cetusprotocol/aggregator-sdk")},"@flowx-finance/sdk"(e){e.exports=require("@flowx-finance/sdk")},"@minswap/tiny-invariant"(e){e.exports=require("@minswap/tiny-invariant")},"@mysten/sui/jsonRpc"(e){e.exports=require("@mysten/sui/jsonRpc")},"@mysten/sui/utils"(e){e.exports=require("@mysten/sui/utils")}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var o=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](o,o.exports,__webpack_require__),o.exports}__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__={};for(var __rspack_i in(()=>{let e;__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{ADMIN_CAP_ID:()=>o6,AftermathAggregator:()=>tY,AftermathCpmm:()=>ex,AftermathLsd:()=>ey,AggregatorConverter:()=>tv,AggregatorModule:()=>oQ,AggregatorProtocol:()=>ov.S,AstrosAggregator:()=>tJ,BASE_BPS:()=>1e4,BLUEFIN_PACKAGE_ID:()=>os,BOOSTING_PACKAGE_ID:()=>oZ,BlastFunConstants:()=>ed,BlastFunCustomCalculation:()=>eb,BlastFunCustomTransaction:()=>eI,BlastFunPackage:()=>ef,BlastFunSDKCalculation:()=>eC,BlastFunSDKTransaction:()=>eT,Blastfun:()=>eB,Bluefin7kClient:()=>oP.Bluefin7kClient,BluefinClmm:()=>ek,BluefinTx:()=>eA,BluemoveCpmm:()=>ev,Bolt:()=>eL,BoostingModule:()=>o4,Bps:()=>em,CLOCK_OBJECT_ID:()=>or.VV,CONFIG_ID:()=>o0,CetusAggregator:()=>tQ,CetusAggregatorConverter:()=>tz.M,CetusClient:()=>oB.CetusClient,CetusClmm:()=>eN,CetusDlmm:()=>eK,CurveModule:()=>o1,DEFAULT_TRADE_FEE:()=>o8,DeepbookV3:()=>eq,DipCpmm:()=>eV,DraftTransferTx:()=>rt,FerraClmm:()=>eJ,FerraDlmm:()=>eW,FlowXAggregator:()=>t4,FlowXAggregatorConverter:()=>t6.m,FlowxClient:()=>ok.FlowxClient,FlowxCpmm:()=>eZ,FullsailClmm:()=>e6,HaedalLsdWal:()=>e8,KriyaClmm:()=>e7,MagmaAlmm:()=>to,MagmaClmm:()=>ta,MathUtils:()=>eg,MetaAgError:()=>oF.u,MetaAgErrorCode:()=>oF.j,MetaAggregator:()=>tD,MetaClient:()=>oX,Metastable:()=>oR.b,MomentumClmm:()=>ts,MoonbagsCalculation:()=>eM,MoonbagsConstants:()=>eS,MoonbagsPackage:()=>eO,MoonbagsTransaction:()=>eE,Movepump:()=>tu,NATIVE_USDC_TOKEN_TYPE:()=>or.lM,NoodlesPaySdk:()=>o5,NoodlesSdk:()=>o9,Obric:()=>t_,PythPrice:()=>oy.L,PythUtils:()=>oy.j,RouterUtils:()=>tk,SUBSCRIPTION_CONFIG:()=>o3,SUI_ADDRESS_ZERO:()=>or.qb,SUI_FULL_TYPE:()=>or.P9,SUI_METADATA_OBJECT_ID:()=>or.IC,SUI_TYPE:()=>or.nD,Scallop:()=>td,SevenKAggregator:()=>tG,SevenKAggregatorConverter:()=>tj.m,SevenkCpmm:()=>tm,SevenkFun:()=>tb,SrmCpmm:()=>tC,Steamm:()=>tS,SubscriptionModule:()=>o2,SuiGrpcClient:()=>od.SuiGrpcClient,SuiJsonRpcClient:()=>og.SuiJsonRpcClient,SupportedAggregator:()=>tZ,SupportedBondingCurve:()=>oM,TradeFeeOptions:()=>ep,TradeportClmm:()=>tE,TurbosClmm:()=>th,TurbosFun:()=>tw,USDC_TOKEN_TYPE:()=>or.N3,Volo:()=>tB,Walrus:()=>e5,addGasFee:()=>oC,checkIsSui:()=>ow.YY,denormalizeTokenType:()=>ow.eP,getAmountAfterFee:()=>t7,getCoinObjectIdsByAmount:()=>on,getExpectedReturn:()=>oH,getGrpcFullnodeUrl:()=>om,getJsonRpcFullnodeUrl:()=>of,getMemezPumpSDK:()=>oI,getMoveObject:()=>t8,getMoveObjectContent:()=>t5,getNeededGasFee:()=>oe,getSplitCoinForTx:()=>oi,getSplitCoinsAfterFee:()=>t9,getTransactionResultDigest:()=>ob,isSuiCoinType:()=>or.tC,normalizeTokenType:()=>ow.nr,splitSuiCoinAfterFeeFromBuyTx:()=>oc,splitSuiCoinAfterFeeFromSellTx:()=>ou,timeout:()=>oJ});var t,o,r,a,n,i,s,c,u,l,_,p,d,g,m,f,b,A,I,C,T,S,O,M,E,x,h,y,w,P,B,F,k,D,v,R,L,U,N,j,K,G,q,$,V,Y,J,H,W,X,z,Q,Z,ee,et,eo,er,ea,en,ei,es,ec,eu,el,e_,ep,ed,eg,em,ef,eb,eA,eI,eC,eT,eS,eO,eM,eE,ex,eh,ey,ew,eP,eB,eF,ek,eD,ev,eR,eL,eU,eN,ej,eK,eG,eq,e$,eV,eY,eJ,eH,eW,eX,ez,eQ,eZ,e0,e6,e4,e1,e3,e2,e5,e8,e9,e7,te,tt,to,tr,ta,tn,ti,ts,tc,tu,tl,t_,tp,td,tg,tm,tf,tb,tA,tI,tC,tT,tS,tO,tM,tE,tx,th,ty,tw,tP,tB,tF,tk,tD,tv,tR=__webpack_require__("@bluefin-exchange/bluefin7k-aggregator-sdk");let tL=require("@mysten/sui/transactions"),tU=require("bignumber.js");var tN=__webpack_require__.n(tU),tj=__webpack_require__("./src/meta-aggregator/converter-route/sevenk-aggregator-converter.ts");function tK(e,t){console.error(`NOODLES_SDK_AGGREGATOR_ROUTE_ERROR aggregator=${e} error=${function(e){if(e instanceof Error)return`${e.name}: ${e.message}`;if("string"==typeof e)return e;try{return JSON.stringify(e)}catch{return String(e)}}(t)}`)}class tG{_config;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r,metaAggregator:a,supportedProtocols:n}){try{this._config.sevenKApiKey&&tR.Config.setApiKey(this._config.sevenKApiKey);let i=r?r.tradeFeePercent:this._config.defaultTradeFee.tradeFeePercent,s=n??(a?tj.m.SUPPORTED_PROTOCOLS:void 0);return await (0,tR.getQuote)({tokenIn:t,tokenOut:o,amountIn:e.toString(),commissionBps:1e4*i,sources:s})}catch(e){return tK("sevenk",e),null}}async getTransaction({walletAddress:e,completeRoute:t,slippage:o,tradeFee:r}){let a,n;r?(a=r.tradeFeePercent,n=r.tradeFeeRecipientAddress):(a=this._config.defaultTradeFee.tradeFeePercent,n=this._config.defaultTradeFee.tradeFeeRecipientAddress);let i=await (0,tR.buildTx)({quoteResponse:t,slippage:o,accountAddress:e,commission:{partner:n,commissionBps:1e4*a}});return i.tx instanceof tR.BluefinXTx?tL.Transaction.from(i.tx.txBytes).build({client:this._suiClient}):(i.tx.setSender(e),i.tx.build({client:this._suiClient}))}}(tG||(tG={})).toCommonTradeRoutes=function(e){let t=[];if(!e.routes||0===e.routes.length)return null;for(let o of e.routes){let e=[],r={};for(let t of o.hops){for(let e of t.pool.allTokens)r[e.address]=e.decimal;let o=r[t.tokenIn]??0,a=r[t.tokenOut]??0,n=BigInt(new(tN())(t.tokenInAmount).multipliedBy(10**o).toFixed(0,3)),i=BigInt(new(tN())(t.tokenOutAmount).multipliedBy(10**a).toFixed(0,3));e.push({poolAddress:t.poolId,coinIn:t.tokenIn,coinOut:t.tokenOut,amountIn:n,amountOut:i})}if(0===e.length)continue;let a=r[o.tokenIn]??0,n=r[o.tokenOut]??0,i=BigInt(new(tN())(o.tokenInAmount).multipliedBy(10**a).toFixed(0,3)),s=BigInt(new(tN())(o.tokenOutAmount).multipliedBy(10**n).toFixed(0,3));t.push({paths:e,coinIn:o.tokenIn,coinOut:o.tokenOut,amountIn:i,amountOut:s})}return 0===t.length?null:{coinIn:e.tokenIn,coinOut:e.tokenOut,amountIn:BigInt(e.swapAmountWithDecimal),amountOut:BigInt(e.returnAmountAfterCommissionWithDecimal),routes:t}};let tq=require("aftermath-ts-sdk");function t$(e){return"bigint"==typeof e?e:"string"==typeof e&&/^\d+$/.test(e)?BigInt(e):e}function tV(e){return{...e,coinIn:e.coinIn?{...e.coinIn,amount:t$(e.coinIn.amount),tradeFee:t$(e.coinIn.tradeFee)}:e.coinIn,coinOut:e.coinOut?{...e.coinOut,amount:t$(e.coinOut.amount),tradeFee:t$(e.coinOut.tradeFee)}:e.coinOut}}class tY{_config;_aftermathClient;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}async aftermathClient(){if(this._aftermathClient)return this._aftermathClient;let e=new tq.Aftermath(this._config.aftermathApiEndpoint?this._config.aftermathApiEndpoint:"MAINNET"),t=await e.getAddresses();if(this._aftermathClient=new tq.Aftermath(this._config.aftermathApiEndpoint??"MAINNET",new tq.AftermathApi(this._suiClient,t)),this._config.aftermathApiKey){let e=tq.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: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 tK("aftermath",e),null}}async getTransaction({completeRoute:e,walletAddress:t,slippage:o}){let r=await this.aftermathClient(),a=await r.Router().getTransactionForCompleteTradeRoute({completeRoute:function(e){if("object"!=typeof e||null===e)return e;let t=tV(e);return{...t,routes:Array.isArray(t.routes)?t.routes.map(e=>{let t=tV(e);return{...t,portion:t$(t.portion),paths:Array.isArray(t.paths)?t.paths.map(e=>tV(e)):t.paths}}):t.routes,feeBreakdown:Array.isArray(t.feeBreakdown)?t.feeBreakdown.map(e=>({...e,amount:t$(e.amount)})):t.feeBreakdown}}(e),walletAddress:t,slippage:o,isSponsoredTx:!1});return a.setSender(t),a.build({client:this._suiClient})}}(tY||(tY={})).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 tJ{_config;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r}){try{let a;a=r?{fee:1e4*r.tradeFeePercent,receiverAddress:r.tradeFeeRecipientAddress}:{fee:1e4*this._config.defaultTradeFee.tradeFeePercent,receiverAddress:this._config.defaultTradeFee.tradeFeeRecipientAddress};let{getQuote:n}=await import("@naviprotocol/astros-aggregator-sdk");return await n(t,o,e,this._config.astrosApiKey,{byAmountIn:!0,serviceFee:a})}catch(e){return tK("astros",e),null}}returnMergedCoins(e,t,o){if(t.length<2)return e.object(t[0].coinObjectId);let r=0,a=[];t.sort((e,t)=>Number(t.balance)-Number(e.balance)).slice(1).forEach(e=>{r>=o||(r+=Number(e.balance),a.push(e.coinObjectId))});let n=t[0].coinObjectId;return e.mergeCoins(n,a),e.object(n)}async getTransaction({completeRoute:e,walletAddress:t,slippage:o,tradeFee:r}){var a;let n,i;n=r?{fee:r.tradeFeePercent,receiverAddress:r.tradeFeeRecipientAddress}:{fee:this._config.defaultTradeFee.tradeFeePercent,receiverAddress:this._config.defaultTradeFee.tradeFeeRecipientAddress};let s=new(tN())(e.amount_out).multipliedBy(1-o-n.fee).toNumber(),c=new tL.Transaction,{buildSwapPTBFromQuote:u,getCoins:l}=await import("@naviprotocol/astros-aggregator-sdk"),_=this._suiClient;if("0x2::sui::SUI"===(a=e.from)||"0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI"===a)i=c.splitCoins(c.gas,[c.pure.u64(e.amount_in)]);else{let o=await l(_,t,e.from),r=this.returnMergedCoins(c,o.data,Number.parseFloat(e.amount_in));i=c.splitCoins(r,[c.pure.u64(e.amount_in)])}let p=await u(t,c,s,i,e,void 0,!1,this._config.astrosApiKey,{serviceFee:n});return c.transferObjects([p],t),c.setSender(t),c.build({client:this._suiClient})}}(tJ||(tJ={})).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}};var tH=__webpack_require__("@cetusprotocol/aggregator-sdk");let tW=require("bn.js");var tX=__webpack_require__.n(tW);(ep||(ep={})).equals=function(e,t){return e.tradeFeePercent===t.tradeFeePercent&&e.tradeFeeRecipientAddress===t.tradeFeeRecipientAddress};var tz=__webpack_require__("./src/meta-aggregator/converter-route/cetus-aggregator-converter.ts");class tQ{_config;_suiClient;_cetusClient;getCetusClientConfig({walletAddress:e,overlayFeeReceiver:t,overlayFeeRate:o}){return{client:this._suiClient,overlayFeeReceiver:t,overlayFeeRate:o,env:tH.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&&!ep.equals(t,this._config.defaultTradeFee)?new tH.AggregatorClient(this.getCetusClientConfig({walletAddress:e,overlayFeeReceiver:t.tradeFeeRecipientAddress,overlayFeeRate:t.tradeFeePercent})):(this._cetusClient||(this._cetusClient=new tH.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:r,metaAggregator:a,supportedProtocols:n}){try{let i=this.cetusClient(void 0,r),s=n??(a?tz.M.SUPPORTED_PROTOCOLS:void 0);return await i.findRouters({from:t,target:o,amount:new(tX())(e.toString()),byAmountIn:!0,providers:s})}catch(e){return tK("cetus",e),null}}async getTransaction({completeRoute:e,walletAddress:t,slippage:o,tradeFee:r}){let a=this.cetusClient(t,r),n=new tL.Transaction;return n.setSender(t),await a.fastRouterSwap({router:e,txb:n,slippage:o}),n.build({client:this._suiClient})}}(tQ||(tQ={})).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 tZ=((t={}).ASTROS="ASTROS",t.AFTERMATH="AFTERMATH",t.SEVENK="7K",t.CETUS="CETUS",t.FLOWX="FLOWX",t),t0=__webpack_require__("@flowx-finance/sdk"),t6=__webpack_require__("./src/meta-aggregator/converter-route/flowx-aggregator-converter.ts");class t4{_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 t0.Commission(r,new t0.Coin(e),t0.CommissionType.PERCENTAGE,1e6*o,!0)}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r,metaAggregator:a,supportedProtocols:n}){let i=new t0.AggregatorQuoter("mainnet",this._config.flowxApiKey),s=n??(a?t6.m.SUPPORTED_PROTOCOLS:void 0);try{return await i.getRoutes({tokenIn:t,tokenOut:o,amountIn:e.toString(),commission:this.getCommission(t,r),includeSources:s})}catch(e){return tK("flowx",e),null}}async getTransaction({walletAddress:e,completeRoute:t,slippage:o,tradeFee:r}){return new t0.TradeBuilder("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})))}}(t4||(t4={})).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}},(o=ed||(ed={})).PACKAGE_ID_V4="0x7e6aa6e179466ab2814425a780b122575296d011119fa69d27f289f5a28814bd",o.MEMEZ_AV_OBJECT_ID="0x2319e3e76dfad73d8f4684bdbf42be4f32d8ce4521dd61becc8261dc918d82c0";var t1=__webpack_require__("@minswap/tiny-invariant"),t3=__webpack_require__.n(t1);let t2=require("@mysten/sui/bcs");async function t5(e,t){return(await t8(e,t)).fields}async function t8(e,t){let o=(await e.getObject({objectId:t,include:{json:!0,objectBcs:!0}})).object;t3()(o,"Pool object not found or has no content"),t3()(o.json,"Pool object not found or has no content"),t3()(o.objectBcs,"Pool object not found or has no content");let r=t2.bcs.Object.parse(o.objectBcs);return t3()("Move"===r.data.$kind,"Pool object is not a Move object"),{dataType:"moveObject",fields:o.json,hasPublicTransfer:r.data.Move.hasPublicTransfer,type:o.type}}function t9(e,t){let o=BigInt(e),r=BigInt(1e4*Number(t));if(r===BigInt(0))return[o.toString()];let a=o*r/BigInt(1e4);return[(o-a).toString(),a.toString()]}function t7(e,t){if(!t||0>=Number(t))return BigInt(e);let o=BigInt(e),r=BigInt(1e4*Number(t));if(r===BigInt(0))return o;let a=o*r/BigInt(1e4);return o-a}async function oe(e,t,o,r){t.setSenderIfNotSet(o);let a=await e.simulateTransaction({transaction:t,include:{effects:!0},checksEnabled:!1}),{gasUsed:n,status:i}=("Transaction"===a.$kind?a.Transaction:a.FailedTransaction).effects;if(!i.success)throw Error(`Transaction failed during simulation: ${i.error?.message??""}`);let s=BigInt(n.computationCost)+BigInt(n.storageCost)-BigInt(n.storageRebate),c=BigInt(1e4*Number(r));return s*(BigInt(1e4)+c)/BigInt(1e4)}((r=eg||(eg={})).U64||(r.U64={})).mulDivUp=function(e,t,o){let r=BigInt(0);return e*t%o>BigInt(0)&&(r=BigInt(1)),e*t/o+r};var ot=em||(em={});function oo(e){return t3()(BigInt(e)<=BigInt(1e4),"Bps overflow"),BigInt(e)}ot.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},ot.sub=function(e,t){return t3()(BigInt(e.pos0)>=BigInt(t.pos0),"Bps underflow"),{pos0:(BigInt(e.pos0)-BigInt(t.pos0)).toString()}},ot.value=function(e){return BigInt(e.pos0)},ot.new_=function(e){return{pos0:oo(e).toString()}},ot.assertOverflow=oo,((a=ef||(ef={})).MemezFun||(a.MemezFun={})).isSniperProtectedMemezFun=async function(e,t){return(await t5(e,t)).public_key.length>0},(n=a.MemezFees||(a.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=em.calcUp(em.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")},n.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 em.calcUp(em.sub(r,t),o)}throw Error("Unknown fee variant")},(a.MemezBurner||(a.MemezBurner={})).calculate=function(e,t){if(em.value(e.fee.fields)===BigInt(0)||t===BigInt(0)||t>=BigInt(e.target_liquidity))return em.new_(0);let o=BigInt(1e4);return em.new_(eg.U64.mulDivUp(em.value(e.fee.fields),eg.U64.mulDivUp(t,o,BigInt(e.target_liquidity)),o))},(i=a.MemezPump||(a.MemezPump={})).getPumpState=async function(e,t){return await t5(e,t.inner_state)},i.pump=function(e,t){let o=e.constant_product.fields,r=a.MemezFees.takeWithDiscount(o.quote_swap_fee,t,o.quote_referrer_fee.fields),n=t-r,i=BigInt(o.meme_balance),s=BigInt(o.quote_balance),c=i*n/(BigInt(o.virtual_liquidity)+s+n),u=a.MemezFees.takeWithDiscount(o.meme_swap_fee,c,o.meme_referrer_fee.fields);return c-u},i.dump=function(e,t){let o=e.constant_product.fields,r=a.MemezFees.takeWithDiscount(o.meme_swap_fee,t,o.meme_referrer_fee.fields),n=t-r,i=BigInt(o.meme_balance),s=BigInt(o.quote_balance),c=BigInt(o.virtual_liquidity),u=a.MemezBurner.calculate(o.burner.fields,s),l=em.calcUp(u,n),_=n-(em.value(u)!==BigInt(0)?l:BigInt(0)),p=(c+s)*_/(i+_);p>s&&(p=s);let d=a.MemezFees.takeWithDiscount(o.quote_swap_fee,p,o.quote_referrer_fee.fields);return p-d},(s=eb||(eb={})).getCurveAmountAfterBuy=async function(e,t){let{suiAmount:o,poolId:r,frontendFee:a}=e,n=await t5(t,r),i=await ef.MemezPump.getPumpState(t,n);return o=t7(o,a),ef.MemezPump.pump(i,o)},s.getSuiAmountAfterSell=async function(e,t){let{curveAmount:o,poolId:r,frontendFee:a}=e,n=await t5(t,r),i=await ef.MemezPump.getPumpState(t,n);return t7(ef.MemezPump.dump(i,o),a)};var or=__webpack_require__("./src/constant/sui.ts"),oa=__webpack_require__("@mysten/sui/utils");let on=async(e,t,o,r)=>{let a,n=[],i=!0;for(;i;)try{let o=await e.listCoins({owner:t,coinType:r,cursor:a});n=[...n,...o.objects.map(e=>({coinObjectId:e.objectId,version:e.version,digest:e.digest,balance:e.balance}))],i=o.hasNextPage,a=o.cursor}catch(e){console.error("Error fetching data:",e),i=!1}let s=((e,t,o)=>{let r;if(e?.length){do{r=!1;for(let a=0;a<e.length-1;a++){let n=BigInt(e[a][t]),i=BigInt(e[a+1][t]);if("desc"===o?n<i:n>i){let t=e[a];e[a]=e[a+1],e[a+1]=t,r=!0}}}while(r);return e}})(n.map(e=>({...e,balance:e.balance})),"balance","desc")??[],c="0",u=[],l=[];for(let e of s)if(c=(BigInt(e.balance)+BigInt(c)).toString(10),u.push(e.coinObjectId),l.push(e),BigInt(c)>=BigInt(o))break;return{objectIds:u,balance:c,objectCoins:l}};async function oi(e,t){let{account:o,amount:r,splits:a,coinType:n,inheritTx:i,inspecTransaction:s,isSponsored:c=!1}=e,u=i??new tL.Transaction,{objectIds:l,balance:_}=await on(t,o,r,n);if(BigInt(_)<BigInt(r))throw Error(`Insufficient balance for type ${n}. Required: ${r}, Available: ${_}`);if(0===l.length)throw Error(`No coins found for type ${n} with sufficient balance. Required: ${r}`);let p=l[0];if((0,oa.normalizeStructTag)(n)===(0,oa.normalizeStructTag)(or.P9)&&!c){let e;return s?(l.length>1&&u.mergeCoins(u.object(p),l.slice(1).map(e=>u.object(e))),e=u.splitCoins(u.object(p),a)):e=u.splitCoins(u.gas,a),{tx:u,coinData:e}}l.length>1&&u.mergeCoins(u.object(p),l.slice(1).map(e=>u.object(e)));let d=u.splitCoins(u.object(p),a);return{tx:u,coinData:d}}let os="0x62412b7268c35f3808336aee57a52836501f40b8ba5d936f8ad275e672befd04";async function oc(e,t){let o,r,{inputAmount:a,accountAddress:n,frontendFee:i,frontendFeeRecipient:s,extendTx:c,isSponsored:u}=e;t3()(e.inCoinType===or.P9||e.inCoinType===or.nD,"Input must be SUI");let{tx:l,coinIn:_}=c||{},p=t9(a,i||"0"),d=l||new tL.Transaction;if(_)o=d.splitCoins(_,p),eA.transferOrDestroyZeroCoin(d,or.P9,_,n);else{let{coinData:e}=await oi({account:n,amount:a,splits:p,coinType:or.P9,inheritTx:d,isSponsored:u||!1},t);o=e}if(i&&s){let[e,t]=o;r=e,d.transferObjects([t],d.pure.address(s||n))}else[r]=o;return{tx:d,coinOut:r}}async function ou(e,t,o){if(t3()(t.outCoinType===or.P9||t.outCoinType===or.nD,"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:`${os}::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}}(eA||(eA={})).transferOrDestroyZeroCoin=function(e,t,o,r){e.moveCall({target:`${os}::utils::transfer_or_destroy`,typeArguments:[t],arguments:[o,e.pure.address(r)]})};var ol=eI||(eI={});async function o_(e){let t=e||new tL.Transaction;return t.moveCall({target:`${ed.PACKAGE_ID_V4}::memez_allowed_versions::get_allowed_versions`,arguments:[t.object(ed.MEMEZ_AV_OBJECT_ID)],typeArguments:[]})}ol.getAllowedVersions=o_,ol.buildBuyTx=async function(e,t){t3()(!await ef.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 oc(e,t);t3()(r,"Coin out is required");let a=o.moveCall({target:`${ed.PACKAGE_ID_V4}::memez_pump::pump`,typeArguments:[e.outCoinType,or.P9],arguments:[o.object(e.poolId),r,o.pure.vector("address",[]),o.pure.vector("vector<u8>",[]),o.pure.u64(e.minAmountOut),await o_(o)]});return{tx:o,coinOut:a}},ol.buildSellTx=async function(e,t){t3()(e.outCoinType===or.P9||e.outCoinType===or.nD,"Output must be SUI");let o=await t5(t,e.poolId),{tx:r,coinData:a}=await oi({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[n]=a,[i]=r.moveCall({target:`${ed.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 o_(r)]});return await ou(r,e,i)};let op=require("@interest-protocol/sui-core-sdk"),od=require("@mysten/sui/grpc");var og=__webpack_require__("@mysten/sui/jsonRpc");function om(e){switch(e){case"mainnet":return"https://fullnode.mainnet.sui.io:443";case"testnet":return"https://fullnode.testnet.sui.io:443";case"devnet":return"https://fullnode.devnet.sui.io:443";case"localnet":return"http://127.0.0.1:9000";default:throw Error(`Unknown network: ${e}`)}}function of(e){return om(e)}function ob(e){return"Transaction"===e.$kind?e.Transaction.digest:e.FailedTransaction.digest}let oA={network:op.Network.MAINNET,fullNodeUrl:om("mainnet")};async function oI(){if(!e){let{MemezPumpSDK:t}=await import("@interest-protocol/memez-fun-sdk");e=new t(oA)}return e}async function oC(e,t){let{inheritTx:o,sender:r,feeAmount:a,suiInputAmount:n}=e,i=o||new tL.Transaction;a>BigInt(0)&&i.setGasBudget(a);let{objectCoins:s}=await on(t,r,(BigInt(n||"0")+a).toString(),or.P9);return i.setGasPayment(s.map(e=>({objectId:e.coinObjectId,version:e.version,digest:e.digest}))),i}(c=eC||(eC={})).getCurveAmountAfterBuy=async function(e){let{suiAmount:t,poolId:o,frontendFee:r}=e;t=t7(t,r);let{memeAmountOut:a}=await (await oI()).quotePump({pool:o,amount:t});return a},c.getSuiAmountAfterSell=async function(e){let{curveAmount:t,poolId:o,frontendFee:r}=e,{quoteAmountOut:a}=await (await oI()).quoteDump({pool:o,amount:t});return t7(a,r)};var oT=eT||(eT={});async function oS(e,t){let{tx:o,coinOut:r}=await oc(e,t);t3()(r,"Coin out is required");let{memeCoin:a,tx:n}=await (await oI()).pump({pool:e.poolId,quoteCoin:r,minAmountOut:e.minAmountOut,tx:o});return{tx:n,coinOut:a}}async function oO(e,t){t3()((0,or.tC)(e.outCoinType),"Output must be SUI");let{tx:o,coinData:r}=await oi({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[a]=r,{quoteCoin:n,tx:i}=await (await oI()).dump({pool:e.poolId,memeCoin:a,tx:o,minAmountOut:e.minAmountOut});return await ou(i,e,n)}oT.buildBuyTx=oS,oT.buildSellTx=oO,oT.getBuyTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:a,walletAddress:n,tradeFee:i},s){t3()((0,or.tC)(t),"coinInType must be SUI for buy transaction"),t3()(o!==t,"coinOutType must be different from coinInType"),t3()(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),t3()(e>0,"coinInAmount must be greater than 0");let c=await eC.getCurveAmountAfterBuy({poolId:r,suiAmount:e,frontendFee:i?i.tradeFeePercent:void 0}),u=BigInt(new(tN())(c.toString()).multipliedBy(1-a).toFixed(0,3)),{tx:l,coinOut:_}=await oS({accountAddress:n,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:u.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},s);t3()(_,"Coin out is required"),l.transferObjects([_],l.pure.address(n)),l.setSender(n);let p=await oe(s,l,n,0);return(l=await oC({inheritTx:l,sender:n,feeAmount:p,suiInputAmount:e},s)).build({client:s})},oT.getSellTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:a,walletAddress:n,tradeFee:i},s){t3()((0,or.tC)(o),"coinOutType must be SUI for sell transaction"),t3()(o!==t,"coinOutType must be different from coinInType"),t3()(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),t3()(e>0,"coinInAmount must be greater than 0");let c=await eC.getSuiAmountAfterSell({poolId:r,curveAmount:e,frontendFee:i?i.tradeFeePercent:void 0}),u=BigInt(new(tN())(c.toString()).multipliedBy(1-a).toFixed(0,3)),{tx:l,coinOut:_}=await oO({accountAddress:n,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:u.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},s);t3()(_,"Coin out is required"),l.transferObjects([_],l.pure.address(n)),l.setSender(n);let p=await oe(s,l,n,0);return(l=await oC({inheritTx:l,sender:n,feeAmount:p},s)).build({client:s})};var oM=((u={}).BLAST_FUN="BLAST_FUN",u.MOONBAGS="MOONBAGS",u);(l=eS||(eS={})).PACKAGE_ID="0xb8df325010942634a4afb3db3901ee215546af43a4ec4af781e7213b0bba7290",l.CONFIG_OBJECT_ID="0x74aecf86067c6913960ba4925333aefd2b1f929cafca7e21fd55a8f244b70499",l.LOCK_CONFIG_OBJECT_ID="0xfb09822d9808980abd04c51321adb850701f5f55535c6206658ef4d910c3e9be",l.BURN_MANAGER_OBJECT_ID="0x1d94aa32518d0cb00f9de6ed60d450c9a2090761f326752ffad06b2e9404f845",l.POOLS_OBJECT_ID="0xf699e7f2276f5c9a75944b37a0c5b5d9ddfd2471bf6242483b03ab2887d198d0",l.GLOBAL_CONFIG_OBJECT_ID="0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f",l.FEE_DENOMINATOR=BigInt(1e4),(p=(_=eO||(eO={})).Curves||(_.Curves={})).calculateAddLiquidityCost=function(e,t,o){return e*t/(t-o)-e},p.calculateRemoveLiquidityReturn=function(e,t,o){return t-e*t/(e+o)},p.calculateTokenAmountReceived=function(e,t,o){return t-e*t/(e+o)},(d=_.Moonbags||(_.Moonbags={})).getDynamicVirtualTokenReserves=async function(e,t){try{let o=await e.getDynamicField({parentId:t,name:{type:"vector<u8>",bcs:t2.bcs.byteVector().serialize(new TextEncoder().encode("virtual_token_reserves")).toBytes()}});if(!o.dynamicField?.value)return;return BigInt(t2.bcs.u64().parse(o.dynamicField.value.bcs))}catch(e){if("object"==typeof e&&null!==e&&"code"in e&&"dynamicFieldNotFound"===e.code)return;throw e}},d.buyExactInReturnsWithLock=function(e){let{inputAmount:t,amountIn:o,pool:r,config:a,dynamicVirtualTokenReserves:n}=e,i=BigInt(r.virtual_sui_reserves),s=BigInt(r.virtual_token_reserves),c=BigInt(r.remain_token_reserves.fields.balance),u=_.Curves.calculateRemoveLiquidityReturn(i,s,o),l=s-(n||c),p=u,d=o;u>l&&(p=l,d=_.Curves.calculateAddLiquidityCost(i,s,l)+BigInt(1));let g=d*BigInt(a.platform_fee)/eS.FEE_DENOMINATOR;return t3()(t>=d+g,"Input amount is less than used SUI + fee"),{receivedCurve:p,receivedSui:t-d-g}},d.sellReturns=function(e){let{amountIn:t,pool:o,config:r}=e,a=BigInt(o.virtual_sui_reserves),n=BigInt(o.virtual_token_reserves),i=BigInt(o.real_sui_reserves.fields.balance),s=_.Curves.calculateRemoveLiquidityReturn(n,a,t);s>i&&(s=i);let c=s*BigInt(r.platform_fee)/eS.FEE_DENOMINATOR,u=s-c;return{receivedCurve:BigInt(0),receivedSui:u}},(g=eM||(eM={})).getCurveAmountAfterBuy=async function(e,t){let{suiAmount:o,poolId:r,frontendFee:a}=e,[n,i,s]=await Promise.all([t5(t,r),t5(t,eS.CONFIG_OBJECT_ID),eO.Moonbags.getDynamicVirtualTokenReserves(t,r)]);void 0!==a&&(o=t7(o,a));let c=o*eS.FEE_DENOMINATOR/(eS.FEE_DENOMINATOR+BigInt(i.platform_fee)),{receivedCurve:u}=eO.Moonbags.buyExactInReturnsWithLock({inputAmount:o,amountIn:c,pool:n,config:i,dynamicVirtualTokenReserves:s});return u},g.getSuiAmountAfterSell=async function(e,t){let{curveAmount:o,poolId:r,frontendFee:a}=e,[n,i]=await Promise.all([t5(t,r),t5(t,eS.CONFIG_OBJECT_ID)]),{receivedSui:s}=eO.Moonbags.sellReturns({amountIn:o,pool:n,config:i});return void 0!==a?t7(s,a):s},g.getUsedSuiForTx=async function(e,t){let{suiAmount:o,frontendFee:r}=e,a=await t5(t,eS.CONFIG_OBJECT_ID);return void 0!==r&&(o=t7(o,r)),o*eS.FEE_DENOMINATOR/(eS.FEE_DENOMINATOR+BigInt(a.platform_fee))};var oE=eE||(eE={});async function ox(e,t){let{tx:o,coinOut:r}=await oc(e,t);t3()(r,"Coin out is required");let a=await eM.getUsedSuiForTx({suiAmount:BigInt(e.inputAmount),frontendFee:e.frontendFee},t),[n,i]=o.moveCall({target:`${eS.PACKAGE_ID}::moonbags::buy_exact_in_returns_with_lock`,typeArguments:[e.outCoinType],arguments:[o.object(eS.CONFIG_OBJECT_ID),o.object(eS.LOCK_CONFIG_OBJECT_ID),r,o.pure.u64(a),o.pure.u64(e.minAmountOut),o.object(eS.BURN_MANAGER_OBJECT_ID),o.object(eS.POOLS_OBJECT_ID),o.object(eS.GLOBAL_CONFIG_OBJECT_ID),o.object(or.IC),o.object(or.VV)]});return eA.transferOrDestroyZeroCoin(o,or.P9,n,e.accountAddress),{tx:o,coinOut:i}}async function oh(e,t){t3()((0,or.tC)(e.outCoinType),"Output must be SUI");let{tx:o,coinData:r}=await oi({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[a]=r,[n,i]=o.moveCall({target:`${eS.PACKAGE_ID}::moonbags::sell_returns`,typeArguments:[e.inCoinType],arguments:[o.object(eS.CONFIG_OBJECT_ID),a,o.pure.u64(e.minAmountOut),o.object(or.VV)]});return eA.transferOrDestroyZeroCoin(o,e.inCoinType,i,e.accountAddress),await ou(o,e,n)}oE.buildBuyTx=ox,oE.buildSellTx=oh,oE.getBuyTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:a,walletAddress:n,tradeFee:i},s){t3()((0,or.tC)(t),"coinInType must be SUI for buy transaction"),t3()(o!==t,"coinOutType must be different from coinInType"),t3()(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),t3()(e>0,"coinInAmount must be greater than 0");let c=await eM.getCurveAmountAfterBuy({poolId:r,suiAmount:e,frontendFee:i?i.tradeFeePercent:void 0},s),u=BigInt(new(tN())(c.toString()).multipliedBy(1-a).toFixed(0,3)),{tx:l,coinOut:_}=await ox({accountAddress:n,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:u.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},s);t3()(_,"Coin out is required"),l.transferObjects([_],l.pure.address(n)),l.setSender(n);let p=await oe(s,l,n,0);return(l=await oC({inheritTx:l,sender:n,feeAmount:p,suiInputAmount:e},s)).build({client:s})},oE.getSellTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:a,walletAddress:n,tradeFee:i},s){t3()((0,or.tC)(o),"coinOutType must be SUI for sell transaction"),t3()(o!==t,"coinOutType must be different from coinInType"),t3()(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),t3()(e>0,"coinInAmount must be greater than 0");let c=await eM.getSuiAmountAfterSell({poolId:r,curveAmount:e,frontendFee:i?i.tradeFeePercent:void 0},s),u=BigInt(new(tN())(c.toString()).multipliedBy(1-a).toFixed(0,3)),{tx:l,coinOut:_}=await oh({accountAddress:n,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:u.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},s);t3()(_,"Coin out is required"),l.transferObjects([_],l.pure.address(n)),l.setSender(n);let p=await oe(s,l,n,0);return(l=await oC({inheritTx:l,sender:n,feeAmount:p},s)).build({client:s})};var oy=__webpack_require__("./src/libs/pyth.ts"),ow=__webpack_require__("./src/libs/token-type.ts"),oP=__webpack_require__("./src/meta-aggregator/client/bluefin7k-client.ts"),oB=__webpack_require__("./src/meta-aggregator/client/cetus-client.ts"),oF=__webpack_require__("./src/meta-aggregator/client/error.ts"),ok=__webpack_require__("./src/meta-aggregator/client/flowx-client.ts"),oD=__webpack_require__("./src/meta-aggregator/aggregator/aggregator.ts");(m=ex||(ex={})).POOL_REGISTRY_OBJ_ID="0xfcc774493db2c45c79f688f88d28023a3e7d98e4ee9f48bbf5c7990f651577ae",m.PROTOCOL_FEE_VAULT_OBJ_ID="0xf194d9b1bcad972e45a7dd67dd49b3ee1e3357a00a50850c52cd51bb450e13b4",m.TREASURY_OBJ_ID="0x28e499dff5e864a2eafe476269a4f5035f1c16f338da7be18b103499abf271ce",m.INSURANCE_FUND_OBJ_ID="0xf0c40d67b078000e18032334c3325c47b9ec9f3d9ae4128be820d54663d14e3b",m.REFERRAL_VAULT_OBJ_ID="0x35d35b0e5b177593d8c3a801462485572fc30861e6ce96a55af6dc4730709278";var ov=__webpack_require__("./src/meta-aggregator/router/types.ts");(f=eh||(eh={})).LAST_PACKAGE_ID="0xf369250dc5a17e9d5a84a3b0cf5aea715c0682170e726dd601f03ade7ce4decb",f.swap=function(e){t3()(e.protocol===ov.S.AFTERMATH_CPMM);let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:s,coinLpType:c,packageId:u}=e;t.moveCall({target:`${u??f.LAST_PACKAGE_ID}::aftermath_cpmm_router::swap`,typeArguments:[i,s,c],arguments:[o,t.object(r),t.object(ex.POOL_REGISTRY_OBJ_ID),t.object(ex.PROTOCOL_FEE_VAULT_OBJ_ID),t.object(ex.TREASURY_OBJ_ID),t.object(ex.INSURANCE_FUND_OBJ_ID),t.object(ex.REFERRAL_VAULT_OBJ_ID),t.pure.bool(a),t.pure.u64(n)]})},(b=ey||(ey={})).STAKED_SUI_VAULT_OBJ_ID="0x2f8f6d5da7f13ea37daa397724280483ed062769813b6f31e9788e59cc88994d",b.SAFE_TREASURY_OBJECT_ID="0xeb685899830dd5837b47007809c76d91a098d52aabbf61e8ac467c59e5cc4610",b.REFERRAL_VAULT_OBJ_ID="0x4ce9a19b594599536c53edb25d22532f82f18038dc8ef618afd00fbbfb9845ef",b.VALIDATOR_ADDRESS="0xd30018ec3f5ff1a3c75656abf927a87d7f0529e6dc89c7ddd1bd27ecb05e3db2",(A=ew||(ew={})).LAST_PACKAGE_ID="0x148c4e7ff5b308b2d520e050e6a21d986dd3eb203e0aa3eaaba28000977aebf1",A.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??A.LAST_PACKAGE_ID}::aftermath_lsd_router::swap`,arguments:[o,t.object(ey.STAKED_SUI_VAULT_OBJ_ID),t.object(ey.SAFE_TREASURY_OBJECT_ID),t.object(oa.SUI_SYSTEM_STATE_OBJECT_ID),t.object(ey.REFERRAL_VAULT_OBJ_ID),t.pure.address(ey.VALIDATOR_ADDRESS),t.pure.bool(r),t.pure.u64(a)]})},(I=eP||(eP={})).LAST_PACKAGE_ID="0x108d5d07cf873dec0bc8034db862db55d38e495c1f3ee0e124cf4861af834f25",I.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinBType:i,packageId:s}=e;t.moveCall({target:`${s??I.LAST_PACKAGE_ID}::alphafi_lsd_router::swap`,typeArguments:[i],arguments:[o,t.object(r),t.object(oa.SUI_SYSTEM_STATE_OBJECT_ID),t.pure.bool(n),t.pure.u64(a)]})},(C=eB||(eB={})).MEMEZ_AV_OBJ_ID="0x2319e3e76dfad73d8f4684bdbf42be4f32d8ce4521dd61becc8261dc918d82c0",C.MEMEZ_FUN_OBJ_ID="0x943948644f06942b8b660ca541b10a05f6a7be23ce4069944a3665e7e698930d",C.IPX_TREASURY_STANDARD_OBJ_ID="0x051e11b667659192917db94e5175fa066909d4dfc04d2663528f499c4afc6999",(T=eF||(eF={})).LAST_PACKAGE_ID="0x8b1e84ed9bc79d31160600254d65810f6bc6d2352f174a60ed041017d0a2a87a",T.swap=function(e){t3()(e.protocol===ov.S.BLASTFUN,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,packageId:s}=e;t.moveCall({target:`${s??T.LAST_PACKAGE_ID}::blastfun_router::swap`,typeArguments:[r,a],arguments:[o,t.object(eB.MEMEZ_FUN_OBJ_ID),t.object(eB.IPX_TREASURY_STANDARD_OBJ_ID),t.object(eB.MEMEZ_AV_OBJ_ID),t.pure.bool(n),t.pure.u64(i)]})},(ek||(ek={})).GLOBAL_CONFIG_OBJ_ID="0x03db251ba509a8d5d8777b6338836082335d93eecbdd09a11e190a1cff51c352",(S=eD||(eD={})).LAST_PACKAGE_ID="0x9f8397124b6bdb55aeb7b5e43761e0e4dc94b9e22e94b1b25d8211d99df422d5",S.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinAType:i,coinBType:s,packageId:c}=e;t.moveCall({target:`${c??S.LAST_PACKAGE_ID}::bluefin_clmm_router::swap`,typeArguments:[i,s],arguments:[o,t.object(ek.GLOBAL_CONFIG_OBJ_ID),t.object(r),t.pure.bool(n),t.pure.u64(a),t.object(oa.SUI_CLOCK_OBJECT_ID)]})},(ev||(ev={})).DEX_INFO_OBJ_ID="0x3f2d9f724f4a1ce5e71676448dc452be9a6243dac9c5b975a588c8c867066e92",(O=eR||(eR={})).LAST_PACKAGE_ID="0xf52bdd65ee347e8994170f8c331cf0c23a55281b3282467f14ccbb3e2a7f928f",O.swap=function(e){let{txb:t,swapContext:o,aToB:r,amountIn:a,coinAType:n,coinBType:i,packageId:s}=e;t.moveCall({target:`${s??O.LAST_PACKAGE_ID}::bluemove_cpmm_router::swap`,typeArguments:[n,i],arguments:[o,t.object(ev.DEX_INFO_OBJ_ID),t.pure.bool(r),t.pure.u64(a)]})},(eL||(eL={})).ORACLE_OBJ_ID="0xfa3975b98f3d0e3df18ed88ae6e69db31836b3f4212df02fae144b1e5a89ca8e",(M=eU||(eU={})).LAST_PACKAGE_ID="0x2dd7b04509f332bdb93a8f228ab5c40b34baee4645b2ebe5e5fa2c3502b2c088",M.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??M.LAST_PACKAGE_ID}::bolt_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(eL.ORACLE_OBJ_ID),t.object(oa.SUI_CLOCK_OBJECT_ID),t.pure.u64(s),t.pure.bool(i)]})},(eN||(eN={})).GLOBAL_CONFIG="0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f",(E=ej||(ej={})).LAST_PACKAGE_ID="0xb3dbb229464cb14b9f8cfa087e5b162623c8f485395dc9b975e263a5ee7051e4",E.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??E.LAST_PACKAGE_ID}::cetus_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(eN.GLOBAL_CONFIG),t.object(n),t.pure.bool(i),t.pure.u64(s),t.object(oa.SUI_CLOCK_OBJECT_ID)]})},(x=eK||(eK={})).GLOBAL_CONFIG_OBJ_ID="0xf31b605d117f959b9730e8c07b08b856cb05143c5e81d5751c90d2979e82f599",x.VERSIONED_OBJ_ID="0x05370b2d656612dd5759cbe80463de301e3b94a921dfc72dd9daa2ecdeb2d0a8",(h=eG||(eG={})).LAST_PACKAGE_ID="0x9ab3ba62b4327a7d90e4aed1c025b62736f035911ad7bab830c065ec84ef1ffa",h.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinAType:i,coinBType:s,packageId:c}=e,u=[o,t.object(eK.GLOBAL_CONFIG_OBJ_ID),t.object(eK.VERSIONED_OBJ_ID),t.object(r),t.pure.bool(n),t.pure.u64(a),t.object(oa.SUI_CLOCK_OBJECT_ID)];t.moveCall({target:`${c??h.LAST_PACKAGE_ID}::cetus_dlmm_router::swap`,typeArguments:[i,s],arguments:u})},(y=eq||(eq={})).GLOBAL_CONFIG="0x699d455ab8c5e02075b4345ea1f91be55bf46064ae6026cc2528e701ce3ac135",y.DEEP_TYPE="0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP",(w=e$||(e$={})).LAST_PACKAGE_ID="0xff274b63c0f6e3a01f3dd0e923aefcb3146e05e2f6bef4ae339e2703b085f8ed",w.swap=function(e){t3()(e.protocol===ov.S.DEEPBOOK_V3,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:s,deepFeeCoin:c,packageId:u}=e,l=c||t.moveCall({target:"0x2::coin::zero",typeArguments:[eq.DEEP_TYPE]});t.moveCall({target:`${u??w.LAST_PACKAGE_ID}::deepbook_v3_router::swap`,typeArguments:[r,a],arguments:[o,t.object(eq.GLOBAL_CONFIG),t.object(n),t.pure.u64(s),t.pure.bool(i),l,t.object(oa.SUI_CLOCK_OBJECT_ID)]})},(eV||(eV={})).GLOBAL_OBJ_ID="0x935229a3c32399e9fb207ec8461a54f56c6af5744c64442435ac217ab28f0d59",(P=eY||(eY={})).LAST_PACKAGE_ID="0xfd86c0308327eae31c04560460ee6190220e4ae1cdf5b999eef1110bf0b0f2b8",P.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??P.LAST_PACKAGE_ID}::dip_cpmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(eV.GLOBAL_OBJ_ID),t.object(r),t.pure.bool(i),t.pure.u64(s)]})},(eJ||(eJ={})).FERRA_GLOBAL_CONFIG_ID="0x2cd8382c19e6994f16df204e9b8cddd04bdc486c251de75ac66ac4e48e3e7081",(B=eH||(eH={})).LAST_PACKAGE_ID="0x70c4318f67d88ebe4e83bacad15f9e2f5c8becd77695f63dc4bd9393730851cd",B.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:s,packageId:c}=e;t.moveCall({target:`${c??B.LAST_PACKAGE_ID}::ferra_clmm_router::swap`,typeArguments:[i,s],arguments:[o,t.object(eJ.FERRA_GLOBAL_CONFIG_ID),t.object(r),t.pure.bool(a),t.pure.u64(n),t.object("0x6")]})},(eW||(eW={})).FERRA_GLOBAL_CONFIG_ID="0x5c9dacf5a678ea15b8569d65960330307e23d429289ca380e665b1aa175ebeca",(F=eX||(eX={})).LAST_PACKAGE_ID="0x686e9eb19b04d46374c3fb82cb4ebb7b24ef8a9ae13f403915f4ae347e0f6593",F.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:s,packageId:c}=e;t.moveCall({target:`${c??F.LAST_PACKAGE_ID}::ferra_dlmm_router::swap`,typeArguments:[i,s],arguments:[o,t.object(eW.FERRA_GLOBAL_CONFIG_ID),t.object(r),t.pure.bool(a),t.pure.u64(n),t.object(oa.SUI_CLOCK_OBJECT_ID)]})},(k=ez||(ez={})).POOL_REGISTRY_OBJ_ID="0x27565d24a4cd51127ac90e4074a841bbe356cca7bf5759ddc14a975be1632abc",k.VERSIONED_OBJ_ID="0x67624a1533b5aff5d0dfcf5e598684350efd38134d2d245f475524c03a64e656",(D=eQ||(eQ={})).LAST_PACKAGE_ID="0x350a752d3388165e578cc33a39655a6da83613cf4e58c8d9d0723711c2603e17",D.swap=function(e){t3()(e.protocol===ov.S.FLOWX_CLMM);let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolFeeRate:n,amountIn:i,aToB:s,packageId:c}=e;t.moveCall({target:`${c??D.LAST_PACKAGE_ID}::flowx_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(ez.POOL_REGISTRY_OBJ_ID),t.object(ez.VERSIONED_OBJ_ID),t.pure.u64(n),t.pure.u64(i),t.pure.bool(s),t.object(oa.SUI_CLOCK_OBJECT_ID)]})},(eZ||(eZ={})).CONTAINER_OBJ_ID="0xb65dcbf63fd3ad5d0ebfbf334780dc9f785eff38a4459e37ab08fa79576ee511",(v=e0||(e0={})).LAST_PACKAGE_ID="0xd95b440ad340bb6cbf571897d312e43d4b6de37b60c69ef714c94b9835cb8866",v.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,packageId:s}=e;t.moveCall({target:`${s??v.LAST_PACKAGE_ID}::flowx_cpmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(eZ.CONTAINER_OBJ_ID),t.pure.bool(n),t.pure.u64(i)]})},(R=e6||(e6={})).GLOBAL_CONFIG_OBJ_ID="0xe93baa80cb570b3a494cbf0621b2ba96bc993926d34dc92508c9446f9a05d615",R.REWARDER_VAULT_OBJ_ID="0xfb971d3a2fb98bde74e1c30ba15a3d8bef60a02789e59ae0b91660aeed3e64e1",R.STATS_OBJ_ID="0x6822a33d1d971e040c32f7cc74507010d1fe786f7d06ab89135083ddb07d2dc2",R.PRICE_PROVIDER_OBJ_ID="0x854b2d2c0381bb656ec962f8b443eb082654384cf97885359d1956c7d76e33c9",(L=e4||(e4={})).LAST_PACKAGE_ID="0xf0bf13b5baaf3d368f165e846b919294bed79a3ab3ab0c9bd1e75f23533e44a5",L.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??L.LAST_PACKAGE_ID}::fullsail_clmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(e6.GLOBAL_CONFIG_OBJ_ID),t.object(e6.REWARDER_VAULT_OBJ_ID),t.object(e6.STATS_OBJ_ID),t.object(e6.PRICE_PROVIDER_OBJ_ID),t.object(r),t.pure.bool(i),t.pure.u64(s),t.object(oa.SUI_CLOCK_OBJECT_ID)]})},(U=e1||(e1={})).LAST_PACKAGE_ID="0x8969ed3e56c1dbdaf9df52f812d69c6c45fe5a4bab7093c88f5a8697a409398e",U.swap=function(e){t3()(e.protocol===ov.S.HAEDAL_CPMM);let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,pythPriceFeedIdA:c,pythPriceFeedIdB:u,pythInfoObjectIdMap:l,packageId:_}=e,p=l.get(c),d=l.get(u);t3()(p,"Not found priceInfoAId in pythObjectIdMap"),t3()(d,"Not found priceInfoBId in pythObjectIdMap"),t.moveCall({target:`${_??U.LAST_PACKAGE_ID}::haedal_cpmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(p),t.object(d),t.pure.u64(s),t.pure.bool(i),t.object(oa.SUI_CLOCK_OBJECT_ID)]})},(N=e3||(e3={})).LAST_PACKAGE_ID="0x5d01f22e5471a5912a88e15d62fdcb922beba65b8e8dfe1a715aebf743194f4a",N.swap=function(e){t3()(e.protocol===ov.S.HAEDAL_CPMM_V2);let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,pythPriceFeedIdBase:c,pythInfoObjectIdMap:u,packageId:l}=e,_=u.get(c);t3()(_,"Not found pythPriceBaseId in pythObjectIdMap"),t.moveCall({target:`${l??N.LAST_PACKAGE_ID}::haedal_cpmm_v2_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(_),t.pure.u64(s),t.pure.bool(i),t.object(oa.SUI_CLOCK_OBJECT_ID)]})},(j=e2||(e2={})).LAST_PACKAGE_ID="0x1644956086caa5eb791eba152f3b69ba862b3a5382ef0e1d8a474ab158aafa1a",j.swap=function(e){let{txb:t,swapContext:o,aToB:r,amountIn:a,poolId:n,packageId:i}=e;t.moveCall({target:`${i??j.LAST_PACKAGE_ID}::haedal_lsd_router::swap`,arguments:[o,t.object(n),t.object(oa.SUI_SYSTEM_STATE_OBJECT_ID),t.pure.bool(r),t.pure.u64(a)]})},(e5||(e5={})).STAKING_OBJ_ID="0x10b9d30c28448939ce6c4d6c6e0ffce4a7f8a4ada8248bdad09ef8b70e4a3904",(e8||(e8={})).VALIDATOR_ID="0x7b3ba6de2ae58283f60d5b8dc04bb9e90e4796b3b2e0dea75569f491275242e7",(K=e9||(e9={})).LAST_PACKAGE_ID="0x7be077dd73c85e788c2a49a51f0627066d81d3dc9982c268e3691265a81d544d",K.swap=function(e){t3()(e.protocol===ov.S.HAEDAL_LSD_WAL),t3()(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??K.LAST_PACKAGE_ID}::haedal_wal_lsd_router::swap`,arguments:[o,t.object(e5.STAKING_OBJ_ID),t.object(r),t.pure.id(e8.VALIDATOR_ID),t.pure.bool(a),t.pure.u64(n)]})},(e7||(e7={})).VERSION_OBJ_ID="0xf5145a7ac345ca8736cf8c76047d00d6d378f30e81be6f6eb557184d9de93c78",(G=te||(te={})).LAST_PACKAGE_ID="0xcf141e1d18ff609b2ac56532b391f7648fc55e28696efe354186f5109c0eff06",G.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??G.LAST_PACKAGE_ID}::kriya_clmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(e7.VERSION_OBJ_ID),t.pure.bool(i),t.pure.u64(s),t.object(oa.SUI_CLOCK_OBJECT_ID)]})},(q=tt||(tt={})).LAST_PACKAGE_ID="0x50d37f46df75ef125ce656d4ac91b31b2cf0c1195752a96558561d163e45c223",q.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??q.LAST_PACKAGE_ID}::kriya_cpmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.pure.bool(i),t.pure.u64(s)]})},($=to||(to={})).FACTORY_OBJ_ID="0xedb456e93e423dd75a8ddebedd9974bb661195043027e32ce01649d6ccee74cf",$.GLOBAL_CONFIG_OBJ_ID="0x4c4e1402401f72c7d8533d0ed8d5f8949da363c7a3319ccef261ffe153d32f8a",(V=tr||(tr={})).LAST_PACKAGE_ID="0x950f94d33060c0575389c9f84fabab1e140776c6c84389d4237a0c2687a7adc9",V.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??V.LAST_PACKAGE_ID}::magma_almm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(to.FACTORY_OBJ_ID),t.object(to.GLOBAL_CONFIG_OBJ_ID),t.pure.u64(s),t.pure.bool(i),t.object(oa.SUI_CLOCK_OBJECT_ID)]})},(ta||(ta={})).GLOBAL_CONFIG="0x4c4e1402401f72c7d8533d0ed8d5f8949da363c7a3319ccef261ffe153d32f8a",(Y=tn||(tn={})).LAST_PACKAGE_ID="0xbe5f590339c55ca8ebbf93cedfb68aafd479d71e1c57043246f7dcf352745242",Y.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??Y.LAST_PACKAGE_ID}::magma_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(ta.GLOBAL_CONFIG),t.object(n),t.pure.bool(i),t.pure.u64(s),t.object(oa.SUI_CLOCK_OBJECT_ID)]})};var oR=__webpack_require__("./src/meta-aggregator/external/metastable.ts");(J=ti||(ti={})).LATEST_PACKAGE_ID="0xfab91518218f10204b083dba1e62c8bfc23f14fb87742158043e5faec4670ec4",J.swap=function(e){let t,o,r;t3()(e.protocol===ov.S.METASTABLE,"Invalid protocol");let{txb:a,swapContext:n,aToB:i,amountIn:s,coinAType:c,coinBType:u,poolId:l,metaCoin:_,packageId:p}=e,[d,g]=i?[c,u]:[u,c];d===_?(r="swap_from_meta_coin",t=[_,g],o=[oR.b.createCap({coinType:g,createCapFunc:"create_withdraw_cap",...e})]):g===_?(r="swap_to_meta_coin",t=[_,d],o=[oR.b.createCap({coinType:d,createCapFunc:"create_deposit_cap",...e})]):(r="swap",t=[_,d,g],o=[oR.b.createCap({coinType:d,createCapFunc:"create_deposit_cap",...e}),oR.b.createCap({coinType:g,createCapFunc:"create_withdraw_cap",...e})]),a.moveCall({target:`${p??J.LATEST_PACKAGE_ID}::metastable_router::${r}`,typeArguments:t,arguments:[n,a.object(l),a.object(oR.b.VERSION_OBJ_ID),...o,a.pure.u64(s)]})},(ts||(ts={})).VERSION_OBJ_ID="0x2375a0b1ec12010aaea3b2545acfa2ad34cfbba03ce4b59f4c39e1e25eed1b2a",(H=tc||(tc={})).LAST_PACKAGE_ID="0xba7ab4c8c39024fa0052bb4f00548a2e7b60742bb4ed0b87bc1d945fd8209102",H.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??H.LAST_PACKAGE_ID}::momentum_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(n),t.pure.bool(i),t.pure.u64(s),t.object(ts.VERSION_OBJ_ID),t.object(oa.SUI_CLOCK_OBJECT_ID)]})},(tu||(tu={})).CONFIGURATION_OBJ_ID="0xd746495d04a6119987c2b9334c5fefd7d8cff52a8a02a3ea4e3995b9a041ace4",(W=tl||(tl={})).LAST_PACKAGE_ID="0x5a259db4b1d17fafc09185c9a71bac36f25f9ee462e72894c8610e5a58b79f8f",W.swap=function(e){t3()(e.protocol===ov.S.MOVEPUMP,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,expectedAmountOut:s,packageId:c}=e;t.moveCall({target:`${c??W.LAST_PACKAGE_ID}::movepump_router::swap`,typeArguments:[n?a:r],arguments:[o,t.object(tu.CONFIGURATION_OBJ_ID),t.object(ev.DEX_INFO_OBJ_ID),t.object(oa.SUI_CLOCK_OBJECT_ID),t.pure.u64(s),t.pure.bool(n),t.pure.u64(i)]})},(t_||(t_={})).STATE_OBJ_ID="0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",(X=tp||(tp={})).LAST_PACKAGE_ID="0xd615fed37d692280047068e80d3a6bb685aa9d574608054c9df881d6a7378fab",X.swap=function(e){let t,o;t3()(e.protocol===ov.S.OBRIC);let{txb:r,swapContext:a,poolId:n,coinAType:i,coinBType:s,aToB:c,amountIn:u,pythInfoObjectIdMap:l,packageId:_}=e;"priceInfoObjIdA"in e?(t=e.priceInfoObjIdA,o=e.priceInfoObjIdB):(t=l.get(e.pythPriceFeedIdA),o=l.get(e.pythPriceFeedIdB),t3()(t,"Not found priceInfoAId in pythObjectIdMap"),t3()(o,"Not found priceInfoBId in pythObjectIdMap")),r.moveCall({target:`${_??X.LAST_PACKAGE_ID}::obric_router::swap`,typeArguments:[i,s],arguments:[a,r.object(n),r.pure.u64(u),r.pure.bool(c),r.object(t_.STATE_OBJ_ID),r.object(t),r.object(o),r.object(oa.SUI_CLOCK_OBJECT_ID)]})},(z=td||(td={})).VERSION_OBJ_ID="0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7",z.MARKET_OBJ_ID="0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9",(Q=tg||(tg={})).LAST_PACKAGE_ID="0xea409bb08c8a09e4127f859d9c36b8b62ca609282aa1e443091db6b7a7409ee7",Q.swap=function(e){t3()(e.protocol===ov.S.SCALLOP);let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,scoinTreasury:s,packageId:c}=e;t.moveCall({target:`${c??Q.LAST_PACKAGE_ID}::scallop_router::swap`,typeArguments:[r,a],arguments:[o,t.object(td.VERSION_OBJ_ID),t.object(td.MARKET_OBJ_ID),t.object(s),t.pure.u64(i),t.pure.bool(n),t.object(oa.SUI_CLOCK_OBJECT_ID)]})},(tm||(tm={})).ORACLE_HOLDER_OBJ_ID="0x8c36ea167c5e6da8c3d60b4fc897416105dcb986471bd81cfbfd38720a4487c0",(Z=tf||(tf={})).LAST_PACKAGE_ID="0x918a30e2a05d24ea9451e2d2900d055f74e6752f2e10251fa50c7175831b1958",Z.swap=function(e){t3()(e.protocol===ov.S.SEVENK_CPMM,"Invalid protocol for sevenk_cpmm_router swap");let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,coinLpType:c,oracleConfigA:u,oracleConfigB:l,pythPriceFeedIdA:_,pythPriceFeedIdB:p,pythInfoObjectIdMap:d,packageId:g}=e,m=d.get(_),f=d.get(p);t3()(m,"Not found priceInfoAId in pythObjectIdMap"),t3()(f,"Not found priceInfoBId in pythObjectIdMap");let b=oy.L.newHolder(t);oy.L.getPrice({txb:t,coinPriceId:_,holder:b,coinOracleId:u}),oy.L.getPrice({txb:t,coinPriceId:p,holder:b,coinOracleId:l}),t.moveCall({target:`${g??Z.LAST_PACKAGE_ID}::sevenk_cpmm_router::swap`,typeArguments:[a,n,c],arguments:[o,t.object(r),t.object(tm.ORACLE_HOLDER_OBJ_ID),t.pure.bool(i),t.pure.u64(s)]})},(tb||(tb={})).CONFIGURATION_OBJ_ID="0xe79fff6c77d81f9a8efb729e25bf0037deec42518d40b978f274a4915d7e1ec9",(ee=tA||(tA={})).LAST_PACKAGE_ID="0x0a5dc665dc3c1c846a6d1e00811c84cae3510c839ab4dc0873f85dc8908d0606",ee.swap=function(e){t3()(e.protocol===ov.S.SEVENK_FUN,"Invalid protocol");let{txb:t,swapContext:o,aToB:r,amountIn:a,coinBType:n,packageId:i}=e;t.moveCall({target:`${i??ee.LAST_PACKAGE_ID}::sevenk_fun_router::swap`,typeArguments:[n],arguments:[o,t.object(tb.CONFIGURATION_OBJ_ID),t.object(eZ.CONTAINER_OBJ_ID),t.object(oa.SUI_CLOCK_OBJECT_ID),t.pure.bool(r),t.pure.u64(a)]})},(et=tI||(tI={})).LAST_PACKAGE_ID="0xa6d129c0b314e85d1bc5aecf305d64212bdd5d466457531f4f624fef5f2e7751",et.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinBType:i,packageId:s}=e;t.moveCall({target:`${s??et.LAST_PACKAGE_ID}::springsui_router::swap`,typeArguments:[i],arguments:[o,t.object(r),t.object(oa.SUI_SYSTEM_STATE_OBJECT_ID),t.pure.u64(a),t.pure.bool(n)]})},(tC||(tC={})).CONFIG_OBJ_ID="0x881fd0a12ca4fa48991f5c27ba57d17f1ec147fa15f43b3cb760cc3bd7ba9402",(eo=tT||(tT={})).LAST_PACKAGE_ID="0xa314a64962ed4b91a6b4085de4dff2e631fd4c731dbca671a74489955df322ef",eo.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:s,packageId:c}=e,u=[o,t.object(r),t.object(tC.CONFIG_OBJ_ID),t.pure.bool(a),t.pure.u64(n),t.object("0x6")];t.moveCall({target:`${c??eo.LAST_PACKAGE_ID}::srm_cpmm_router::swap`,typeArguments:[i,s],arguments:u})},(ea=(er=tS||(tS={})).Oracle||(er.Oracle={})).PACKAGE_ID="0xe84b649199654d18c38e727212f5d8dacfc3cf78d60d0a7fc85fd589f280eb2b",ea.getPythPrice=function(e){let{txb:t,oracleRegistryId:o,priceInfoId:r,oracleIndex:a}=e;return t.moveCall({target:`${ea.PACKAGE_ID}::oracles::get_pyth_price`,typeArguments:[],arguments:[t.object(o),t.object(r),t.pure.u64(a),t.object(oa.SUI_CLOCK_OBJECT_ID)]})};var oL=tO||(tO={});function oU(e,t){t3()(e.protocol===ov.S.STEAMM_OMM||e.protocol===ov.S.STEAMM_OMM_V2,"Invalid protocol for steamm _swapOmm swap");let{txb:o,swapContext:r,poolId:a,coinAType:n,coinBType:i,aToB:s,amountIn:c,bankAId:u,bankBId:l,lendingMarketId:_,lendingMarketType:p,bCoinAType:d,bCoinBType:g,lpBCoinType:m,pythPriceFeedIdA:f,pythPriceFeedIdB:b,pythInfoObjectIdMap:A,oracleRegistryId:I,oracleIndexA:C,oracleIndexB:T,packageId:S}=e,O=A.get(f),M=A.get(b);t3()(O,"Not found priceInfoAId in pythObjectIdMap"),t3()(M,"Not found priceInfoBId in pythObjectIdMap");let E=tS.Oracle.getPythPrice({txb:o,oracleRegistryId:I,priceInfoId:O,oracleIndex:C}),x=tS.Oracle.getPythPrice({txb:o,oracleRegistryId:I,priceInfoId:M,oracleIndex:T});o.moveCall({target:`${S??oL.LAST_PACKAGE_ID}::${oN(t)}::swap`,typeArguments:[p,n,i,d,g,m],arguments:[r,o.object(a),o.object(u),o.object(l),o.object(_),E,x,o.pure.bool(s),o.pure.u64(c),o.object(oa.SUI_CLOCK_OBJECT_ID)]})}function oN(e){switch(e){case 0:return"steamm_omm_router";case 1:return"steamm_omm_v2_router"}}function oj(e){let{amountOut:t,aggregatorFeeBps:o,partnerFeeBps:r}=e,a=oK(t,o);return r&&(a=oK(a,r)),a}function oK(e,t){let o=BigInt(e)*BigInt(t)/BigInt(1e4);return(BigInt(e)-o).toString()}function oG(e){return Math.floor(100*e)}oL.LAST_PACKAGE_ID="0xd606880d67c399f349758111a91582d5515f31dd051632402653d872818f594e",oL.swapCpmm=function(e){t3()(e.protocol===ov.S.STEAMM_CPMM,"Invalid protocol for steamm_cpmm_router swap");let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,bankAId:c,bankBId:u,lendingMarketId:l,lendingMarketType:_,bCoinAType:p,bCoinBType:d,lpBCoinType:g}=e;t.moveCall({target:`${oL.LAST_PACKAGE_ID}::steamm_cpmm_router::swap`,typeArguments:[_,a,n,p,d,g],arguments:[o,t.object(r),t.object(c),t.object(u),t.object(l),t.pure.bool(i),t.pure.u64(s),t.object(oa.SUI_CLOCK_OBJECT_ID)]})},oL.swapOmm=function(e){oU(e,0)},oL.swapOmmV2=function(e){oU(e,1)},oL.getOmmRouterModule=oN,(en=tM||(tM={})).LAST_PACKAGE_ID="0x7a1cf89025a60161e84809784d772263231fad08a7cb76a88ca1ba69e0a656da",en.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??en.LAST_PACKAGE_ID}::suiswap_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.pure.bool(i),t.pure.u64(s),t.object(oa.SUI_CLOCK_OBJECT_ID)]})},(ei=tE||(tE={})).VERSIONED="0x0309b66202e9aaf470081fffee7ffc0fbd50e3b7400d4f56fd06502e4dbbd676",ei.POOL_REGISTRY="0xcd0a614c4cbbf173f59dee2602c43a1717f283215ed7a0bb1d55d786af16fbcd",(es=tx||(tx={})).LAST_PACKAGE_ID="0x79957062a7424ed9c2eb83932e4c4fcc3fee67ab3c8f6f874c54e417178bbb7a",es.swap=function(e){t3()(e.protocol===ov.S.TRADEPORT_CLMM,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,poolFeeRate:s,packageId:c}=e;t.moveCall({target:`${c??es.LAST_PACKAGE_ID}::tradeport_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(tE.POOL_REGISTRY),t.pure.u64(s),t.object(tE.VERSIONED),t.pure.bool(n),t.pure.u64(i),t.object(oa.SUI_CLOCK_OBJECT_ID)]})},(th||(th={})).POOL_VERSIONED="0xf1cf0e81048df168ebeb1b8030fad24b3e0b53ae827c25053fff0779c1445b6f",(ec=ty||(ty={})).LAST_PACKAGE_ID="0x512d63711ff38353fb167238b0529001b6871c1727c67ce3bf6ec23556b0f1da",ec.swap=function(e){t3()(e.protocol===ov.S.TURBOS_CLMM,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,coinFeeType:n,poolId:i,aToB:s,amountIn:c,packageId:u}=e;t.moveCall({target:`${u??ec.LAST_PACKAGE_ID}::turbos_clmm_router::swap`,typeArguments:[r,a,n],arguments:[o,t.object(i),t.object(th.POOL_VERSIONED),t.pure.bool(s),t.pure.u64(c),t.object(oa.SUI_CLOCK_OBJECT_ID)]})},(tw||(tw={})).CONFIGURATION_OBJ_ID="0xd86685fc3c3d989385b9311ef55bfc01653105670209ac4276ebb6c83d7df928",(eu=tP||(tP={})).LAST_PACKAGE_ID="0x1fad13f09797aa87a4385d0b1efb2de963ba16742447b1ad5a3b0c5b1d1c588b",eu.swap=function(e){t3()(e.protocol===ov.S.TURBOS_FUN,"Invalid protocol");let{txb:t,swapContext:o,coinBType:r,aToB:a,amountIn:n,packageId:i}=e;t.moveCall({target:`${i??eu.LAST_PACKAGE_ID}::turbos_fun_router::swap`,typeArguments:[r],arguments:[o,t.object(tw.CONFIGURATION_OBJ_ID),t.object(oa.SUI_CLOCK_OBJECT_ID),t.pure.bool(a),t.pure.u64(n)]})},(tB||(tB={})).VOLO_CERT_METADATA_ID="0x680cd26af32b2bde8d3361e804c53ec1d1cfe24c7f039eb7f549e8dfde389a60",(el=tF||(tF={})).LAST_PACKAGE_ID="0x7c8d95256342f904d5f251776903a17905d87c95f387b3a35cc2aecc23b3c042",el.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,packageId:i}=e;t.moveCall({target:`${i??el.LAST_PACKAGE_ID}::volo_router::swap`,arguments:[o,t.object(r),t.object(tB.VOLO_CERT_METADATA_ID),t.object(oa.SUI_SYSTEM_STATE_OBJECT_ID),t.pure.bool(a),t.pure.u64(n)]})},(e_=tk||(tk={})).RouterSwapFunctionMap={[ov.S.AFTERMATH_CPMM]:eh.swap,[ov.S.AFTERMATH_LSD]:ew.swap,[ov.S.ALPHAFI_LSD]:eP.swap,[ov.S.BLASTFUN]:eF.swap,[ov.S.BLUEFIN_CLMM]:eD.swap,[ov.S.BLUEMOVE_CPMM]:eR.swap,[ov.S.BOLT]:eU.swap,[ov.S.CETUS_CLMM]:ej.swap,[ov.S.CETUS_DLMM]:eG.swap,[ov.S.DEEPBOOK_V3]:e$.swap,[ov.S.DIP_CPMM]:eY.swap,[ov.S.FERRA_CLMM]:eH.swap,[ov.S.FERRA_DLMM]:eX.swap,[ov.S.FLOWX_CPMM]:e0.swap,[ov.S.FLOWX_CLMM]:eQ.swap,[ov.S.FULLSAIL_CLMM]:e4.swap,[ov.S.HAEDAL_CPMM]:e1.swap,[ov.S.HAEDAL_CPMM_V2]:e3.swap,[ov.S.HAEDAL_LSD]:e2.swap,[ov.S.HAEDAL_LSD_WAL]:e9.swap,[ov.S.KRIYA_CLMM]:te.swap,[ov.S.KRIYA_CPMM]:tt.swap,[ov.S.MAGMA_ALMM]:tr.swap,[ov.S.MAGMA_CLMM]:tn.swap,[ov.S.METASTABLE]:ti.swap,[ov.S.MOMENTUM_CLMM]:tc.swap,[ov.S.MOVEPUMP]:tl.swap,[ov.S.OBRIC]:tp.swap,[ov.S.SCALLOP]:tg.swap,[ov.S.SEVENK_CPMM]:tf.swap,[ov.S.SEVENK_FUN]:tA.swap,[ov.S.SPRINGSUI]:tI.swap,[ov.S.SRM_CPMM]:tT.swap,[ov.S.STEAMM_CPMM]:tO.swapCpmm,[ov.S.STEAMM_OMM]:tO.swapOmm,[ov.S.STEAMM_OMM_V2]:tO.swapOmmV2,[ov.S.SUISWAP_CPMM]:tM.swap,[ov.S.TRADEPORT_CLMM]:tx.swap,[ov.S.TURBOS_CLMM]:ty.swap,[ov.S.TURBOS_FUN]:tP.swap,[ov.S.VOLO]:tF.swap},e_.swap=function(e){(0,e_.RouterSwapFunctionMap[e.protocol])(e)},(tD||(tD={})).buildAggregatorSwapTransaction=async function(e){let{tx:t,coinOutType:o,tradePaths:r,pythConnections:a,pythClient:n,packageIdMap:i}=e,s=oD.u.openSwap(e),c=await oy.j.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];tk.swap({...o,txb:t,swapContext:s,amountIn:o.amountIn,coinAType:a,coinBType:n,packageId:i?.get(o.protocol),pythInfoObjectIdMap:c})}return oD.u.closeSwap({tx:t,coinOutType:o,swapSession:s})};let oq=oy.j.newPythConnections(),o$=oy.j.newPythClient();var oV=tv||(tv={});function oY(e){var t,o,r;let a,n,{buildTxParam:i,rawRouteParam:s}=e;switch(s.sourceRoute){case"CETUS":a=tz.M.convert(s.rawRoute);break;case"FLOWX":a=t6.m.convert(s.rawRoute);break;case"SEVENK":a=tj.m.convert(s.rawRoute);break;default:throw Error("Unsupported source route")}let c=oG(i.aggregatorFeeRatePercent),u=i.partnerFeeRatePercent?oG(i.partnerFeeRatePercent):void 0,l=i.expectedAmountOut??oj({amountOut:a.amountOut,aggregatorFeeBps:c,partnerFeeBps:u}),_=(o=l,r=(t=i.slippagePercent)?Math.floor(100*t):100,n=BigInt(o)*BigInt(r??100)/BigInt(1e4),(BigInt(o)-n).toString());return{...i,...a,expectedAmountOut:l,minAmountOut:_,aggregatorFeeBps:c,partnerFeeBps:u,pythConnections:i.pythConnections??oq,pythClient:i.pythClient??o$}}oV.toMetaAggregatorBuildTxParams=oY,oV.buildTx=function(e){let t=oY(e);return tD.buildAggregatorSwapTransaction(t)};let oJ=async(e,t,o)=>t<=0?e():new Promise((r,a)=>{let n=setTimeout(()=>a(new oF.u(`Timeout ${o??"operation"}`,oF.j.TIMEOUT,{timeout:t})),t);e().then(r).catch(a).finally(()=>clearTimeout(n))}),oH=(e,t,o,r=0)=>{if(t>1e4)throw Error("Slippage must be less than 100%");if(o>1e4)throw Error("Commission must be less than 100%");if(r>1e4)throw Error("Tip must be less than 100%");let a=BigInt(e),n=a*BigInt(r||0)/10000n,i=(a-n)*BigInt(o)/10000n,s=a-n-i;return{tipAmount:n,minAmount:s*BigInt(1e4-t)/10000n,commissionAmount:i,expectedAmount:s.toString(10)}},oW={SEVENK:{},FLOWX:{},CETUS:{}};class oX{client;jsonRpcClient;providers={};options;constructor(e){this.options={providers:{...oW,...e?.providers},clients:e.clients,slippageBps:e?.slippageBps??100,hermesApi:e?.hermesApi??oy.j.PYTH_URLS,partner:e?.partner??or.qb,partnerCommissionBps:e?.partnerCommissionBps??0,tipBps:e?.tipBps??0},this.client=e.clients.grpc,this.jsonRpcClient=e.clients.jsonRpc}async getQuoteClient(e){let t=this.providers[e];if(t)return t;let o=this.options.providers[e];switch(oF.u.assert(!!o,`Provider not found: ${e}`,oF.j.PROVIDER_NOT_FOUND,{provider:e}),e){case"SEVENK":{let{Bluefin7kClient:e}=await Promise.resolve().then(__webpack_require__.bind(__webpack_require__,"./src/meta-aggregator/client/bluefin7k-client.ts")).catch(oz("SEVENK"));this.providers.SEVENK=new e(o,this.client);break}case"FLOWX":{let{FlowxClient:e}=await Promise.resolve().then(__webpack_require__.bind(__webpack_require__,"./src/meta-aggregator/client/flowx-client.ts")).catch(oz("FLOWX"));this.providers.FLOWX=new e(o);break}case"CETUS":{let{CetusClient:e}=await Promise.resolve().then(__webpack_require__.bind(__webpack_require__,"./src/meta-aggregator/client/cetus-client.ts")).catch(oz("CETUS"));this.providers.CETUS=new e(o,this.options,this.jsonRpcClient);break}default:throw new oF.u(`Provider not supported: ${e}`,oF.j.PROVIDER_NOT_SUPPORTED,{provider:e})}return this.providers[e]}async getQuoteByClient(e,t){return await oJ(async()=>{let o=await e.quote(t);return o?(o.amountOut=oj({amountOut:o.amountOut,partnerFeeBps:this.options.partnerCommissionBps,aggregatorFeeBps:this.options.tipBps}),o):null},t.timeout??2e3,`quote for ${e.kind} provider from ${t.coinTypeIn} to ${t.coinTypeOut}`)}async getQuote(e){let t={...e,coinTypeIn:(0,oa.normalizeStructTag)(e.coinTypeIn),coinTypeOut:(0,oa.normalizeStructTag)(e.coinTypeOut)};return(await Promise.allSettled(Object.entries(this.options.providers).filter(([e,t])=>!t.disabled).map(async([e])=>{let o=await this.getQuoteClient(e);return this.getQuoteByClient(o,t)}))).map(e=>"fulfilled"===e.status?e.value:(console.warn(e.reason),null)).filter(e=>null!==e)}async swap(e){let{quote:t,signer:o,tx:r,coinIn:a,slippageBps:n}=e,i=(0,oa.normalizeSuiAddress)(o);oF.u.assert((0,oa.isValidSuiAddress)(i),`Invalid signer address: ${o}`,oF.j.INVALID_SIGNER_ADDRESS,{signer:o}),r.setSender(i);let s=(n??this.options.slippageBps)/1e4,c=this.options.partner&&this.options.partner!==or.qb?this.options.partner:void 0,u=c&&this.options.partnerCommissionBps>0?this.options.partnerCommissionBps/1e4:void 0;return tv.buildTx({buildTxParam:{tx:r,inputCoin:a,expectedAmountOut:t.amountOut,slippagePercent:s,aggregatorFeeRatePercent:this.options.tipBps/1e4,aggregatorFeeRecipient:"0xdaf1c8ed29d89cd8f217f609bad0a668fa6f158c12000bfa5f93e670c99e24ff",partnerFeeRatePercent:u,partnerFeeRecipient:c,pythConnections:oy.j.newPythConnections(this.options.hermesApi),pythClient:oy.j.newPythClient(this.jsonRpcClient)},rawRouteParam:{...t}})}}let oz=e=>t=>{throw console.warn(`Please install ${{CETUS:"@cetusprotocol/aggregator-sdk",FLOWX:"@flowx-finance/sdk",SEVENK:"@bluefin-exchange/bluefin7k-aggregator-sdk"}[e]} to use ${e} provider`),t};class oQ{sdk;_astrosAggregator;_aftermathAggregator;_sevenkAggregator;_cetusAggregator;_flowXAggregator;constructor(e){this.sdk=e,this._astrosAggregator=new tJ({defaultTradeFee:e.options.tradeFee,astrosApiKey:e.options.astrosApiKey},e.suiJsonRpcClient),this._aftermathAggregator=new tY({defaultTradeFee:e.options.tradeFee,aftermathApiKey:e.options.aftermathApiKey,aftermathApiEndpoint:e.options.aftermathApiEndpoint},e.suiJsonRpcClient),this._sevenkAggregator=new tG({defaultTradeFee:e.options.tradeFee,sevenKApiKey:e.options.sevenKApiKey},e.suiClient),this._cetusAggregator=new tQ({defaultTradeFee:e.options.tradeFee,cetusApiKey:e.options.cetusApiKey,cetusApiEndpoint:e.options.cetusApiEndpoint,cetusPartnerId:e.options.cetusPartnerId},e.suiJsonRpcClient),this._flowXAggregator=new t4({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 tZ.ASTROS:{let e,r=await this._astrosAggregator.getTradeRoute(t);if(!r)return null;let a=tJ.toCommonTradeRoutes(r,t.coinInType,t.coinOutType);if(!a)return null;e=t.tradeFee?t.tradeFee.tradeFeePercent:this.sdk.options.tradeFee.tradeFeePercent,a.amountOut=BigInt(new(tN())(r.amount_out).multipliedBy(1-e).toFixed(0,3)),o={route:a,aggregatorRoute:r};break}case tZ.AFTERMATH:{let e=await this._aftermathAggregator.getTradeRoute(t);if(!e)return null;let r=tY.toCommonTradeRoutes(e);if(!r)return null;o={route:r,aggregatorRoute:e};break}case tZ.SEVENK:{let e=await this._sevenkAggregator.getTradeRoute(t);if(!e)return null;let r=tG.toCommonTradeRoutes(e);if(!r)return null;o={route:r,aggregatorRoute:e};break}case tZ.CETUS:{let e=await this._cetusAggregator.getTradeRoute(t);if(!e)return null;let r=tQ.toCommonTradeRoutes(e,t.coinInType,t.coinOutType);if(!r)return null;o={route:r,aggregatorRoute:e};break}case tZ.FLOWX:{let e=await this._flowXAggregator.getTradeRoute(t);if(!e)return null;let r=t4.toCommonTradeRoutes(e);if(!r)return null;o={route:r,aggregatorRoute:e}}}return o}async getTransactionByRoute(e,t){switch(e){case tZ.ASTROS:return this._astrosAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case tZ.AFTERMATH:return this._aftermathAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage});case tZ.SEVENK:return this._sevenkAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case tZ.CETUS:return this._cetusAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case tZ.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(tZ),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(tZ),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}}}let oZ="0x25fa0eb553dd69fa6a8028f73a38f1df7f289fa88a58ed3d7dc5a5360155bb19",o0="0x8b1a8ac6e34688cd8f8f8e5fefa9d5fb9e1ff74d2f132f8e208ae5ac9cc530bb",o6="0x13d101f44a0710a5475bec5f492a87b80e03d92d1cf540f26096f65850b23d26";class o4{sdk;constructor(e){this.sdk=e}async getConfig(){let e=await this.sdk.suiClient.getObject({objectId:o0,include:{json:!0}});t3()(e.object,"Config object not found"),t3()(e.object.json,"Config object has no content");let t=e.object.json,o=t.id.id,r=t.fee_receiver,a=t.tiers.fields.contents,n={};for(let e of a){let t=e.fields.key,o=e.fields.value.fields.duration,r=e.fields.value.fields.amount,a=e.fields.value.fields.point,i=e.fields.value.fields.original_amount;n[t]={duration:BigInt(o),amount:BigInt(r),point:BigInt(a),originalAmount:BigInt(i)}}return{id:o,receiverAddress:r,tiers:n}}async buildPayBoostingTx({walletAddress:e,tierId:t,boostingCoinType:o,currentTx:r}){let a=await this.getConfig();t3()(t in a.tiers,"Invalid tier ID");let n=a.tiers[t].amount,i=r||new tL.Transaction,s=i.splitCoins(i.gas,[i.pure.u64(n)]);i.moveCall({target:`${oZ}::boosting::pay`,typeArguments:[(0,oa.normalizeStructTag)(o)],arguments:[i.object(o0),i.pure.u64(t),s]}),i.setSender(e);let c=await oe(this.sdk.suiClient,i,e,0);return oC({inheritTx:i,sender:e,feeAmount:c},this.sdk.suiClient)}async buildAddTierTx({adminAddress:e,tierId:t,duration:o,point:r,originalAmount:a,amount:n,currentTx:i}){let s=i||new tL.Transaction;s.moveCall({target:`${oZ}::config::add_tier`,typeArguments:[],arguments:[s.object(o0),s.object(o6),s.pure.u64(t),s.pure.u64(r),s.pure.u64(o),s.pure.u64(a),s.pure.u64(n)]}),s.setSender(e);let c=await oe(this.sdk.suiClient,s,e,0);return oC({inheritTx:s,sender:e,feeAmount:c},this.sdk.suiClient)}async buildUpdateTierTx({adminAddress:e,tierId:t,duration:o,amount:r,originalAmount:a,point:n,currentTx:i}){let s=i||new tL.Transaction;s.moveCall({target:`${oZ}::config::update_tier`,typeArguments:[],arguments:[s.object(o0),s.object(o6),s.pure.u64(t),s.pure.u64(o),s.pure.u64(r),s.pure.u64(n),s.pure.u64(a)]}),s.setSender(e);let c=await oe(this.sdk.suiClient,s,e,0);return oC({inheritTx:s,sender:e,feeAmount:c},this.sdk.suiClient)}async buildRemoveTierTx({adminAddress:e,tierId:t,currentTx:o}){let r=o||new tL.Transaction;r.moveCall({target:`${oZ}::config::remove_tier`,typeArguments:[],arguments:[r.object(o0),r.object(o6),r.pure.u64(t)]}),r.setSender(e);let a=await oe(this.sdk.suiClient,r,e,0);return oC({inheritTx:r,sender:e,feeAmount:a},this.sdk.suiClient)}async buildUpdateFeeReceiver({adminAddress:e,newReceiverAddress:t,currentTx:o}){let r=o||new tL.Transaction;r.moveCall({target:`${oZ}::config::update_fee_receiver`,typeArguments:[],arguments:[r.object(o0),r.object(o6),r.pure.address(t)]}),r.setSender(e);let a=await oe(this.sdk.suiClient,r,e,0);return oC({inheritTx:r,sender:e,feeAmount:a},this.sdk.suiClient)}async buildPayBoostingWithAdminTx({walletAddress:e,tierId:t,customAmount:o,boostingCoinType:r,currentTx:a}){let n=a||new tL.Transaction,i=n.splitCoins(n.gas,[n.pure.u64(o)]);n.moveCall({target:`${oZ}::boosting::pay_with_admin`,typeArguments:[(0,oa.normalizeStructTag)(r)],arguments:[n.object(o6),n.object(o0),n.pure.u64(t),n.pure.u64(o),i]}),n.setSender(e);let s=await oe(this.sdk.suiClient,n,e,0);return oC({inheritTx:n,sender:e,feeAmount:s},this.sdk.suiClient)}}class o1{sdk;constructor(e){this.sdk=e}async getEstimatedAmountOut(e,t){let{coinInType:o,coinOutType:r}=t;t3()(o!==r,"coinInType and coinOutType must be different"),t3()((0,or.tC)(o)||(0,or.tC)(r),"One of coinInType or coinOutType must be SUI");let a=(0,or.tC)(o);switch(e){case oM.MOONBAGS:if(a)return await eM.getCurveAmountAfterBuy({poolId:t.poolId,suiAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0},this.sdk.suiClient);return await eM.getSuiAmountAfterSell({poolId:t.poolId,curveAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0},this.sdk.suiClient);case oM.BLAST_FUN:if(a)return await eC.getCurveAmountAfterBuy({poolId:t.poolId,suiAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0});return await eC.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;t3()(r!==a,"coinInType and coinOutType must be different"),t3()((0,or.tC)(r)||(0,or.tC)(a),"One of coinInType or coinOutType must be SUI");let n=(0,or.tC)(r);switch(e){case oM.MOONBAGS:o=n?await eE.getBuyTransaction(t,this.sdk.suiClient):await eE.getSellTransaction(t,this.sdk.suiClient);break;case oM.BLAST_FUN:o=n?await eT.getBuyTransaction(t,this.sdk.suiClient):await eT.getSellTransaction(t,this.sdk.suiClient);break;default:throw Error(`Unsupported bonding curve platform: ${e}`)}return o}}let o3={prod:{packageId:"0x3dd678c250a667f1551bc4b9e35fd070896f4775dd2900d5cb2910d2aea0b068",configId:"0x3eb7bd15f61b7cc1a9fd36151e9c3d05aa37bfadb0a58c3a26a6c02c2e99f3ca",adminCapId:"0xf375fcb3d95934143766cab2028ab49441fa04ef2ce27c08c01004c455bcbad4",paymentCoinType:"0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC"},staging:{packageId:"0xa83cd093ce5142649adae10d21fe87d55fa2df4e52a4292c77ba039bb12bfe67",configId:"0x19fb8f91946e58c068fa4238bdd7a531216a0c4dcfaa279a8a02c60cb02f6711",adminCapId:"0xd8139544d054702dfab6de4e9c55f162c8a6f30465935af56cffed99c5e1c2bd",paymentCoinType:"0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC"}};class o2{sdk;constructor(e){this.sdk=e}async getConfig(){let e=await this.sdk.suiClient.getObject({objectId:o3[this.sdk.env].configId,include:{json:!0}});t3()(e.object,"Config object not found"),t3()(e.object.json,"Config object has no content");let t=e.object.json,o=t.id.id,r=t.fee_receiver,a=t.paused,n=t.accepted_payment_type,i=t.plans.fields.contents,s={};for(let e of i){let t=e.fields.key,o=e.fields.value.fields.id,r=e.fields.value.fields.price,a=e.fields.value.fields.month_interval,n=e.fields.value.fields.ptype;s[t]={id:BigInt(o),price:BigInt(r),monthInterval:a,planType:n}}return{id:o,plans:s,feeReceiverWallet:r,paused:a,acceptedPaymentType:n}}async buildSubscribeCyclePlanTx({walletAddress:e,planId:t,reference:o,paymentCoinType:r=o3[this.sdk.env].paymentCoinType,currentTx:a}){let n=await this.getConfig();t3()(!n.paused,"Contract is paused"),t3()(t in n.plans,"Invalid plan ID");let i=n.plans[t],s=i.price*BigInt(i.monthInterval),{tx:c,coinData:u}=await oi({account:e,amount:s.toString(),splits:[s.toString()],coinType:r,inheritTx:a},this.sdk.suiClient);c.moveCall({target:`${o3[this.sdk.env].packageId}::subscription::subscribe_cycle_plan`,typeArguments:[r],arguments:[c.object(o3[this.sdk.env].configId),c.pure.u64(t),c.pure.string(o),u]}),c.setSender(e);let l=await oe(this.sdk.suiClient,c,e,0);return oC({inheritTx:c,sender:e,feeAmount:l},this.sdk.suiClient)}async buildBuyMoreCUPlanTx({walletAddress:e,planId:t,reference:o,paidAmount:r,paymentCoinType:a=o3[this.sdk.env].paymentCoinType,currentTx:n}){let i=await this.getConfig();t3()(!i.paused,"Contract is paused"),t3()(t in i.plans,"Invalid plan ID");let{tx:s,coinData:c}=await oi({account:e,amount:r.toString(),splits:[r.toString()],coinType:a,inheritTx:n},this.sdk.suiClient);s.moveCall({target:`${o3[this.sdk.env].packageId}::subscription::buy_more_cu`,typeArguments:[a],arguments:[s.object(o3[this.sdk.env].configId),s.pure.u64(t),s.pure.string(o),s.pure.u64(r),c]}),s.setSender(e);let u=await oe(this.sdk.suiClient,s,e,0);return oC({inheritTx:s,sender:e,feeAmount:u},this.sdk.suiClient)}async buildSubscribePlanWithAdminTx({walletAddress:e,planId:t,reference:o,customAmount:r,paymentCoinType:a=o3[this.sdk.env].paymentCoinType,currentTx:n}){let i=await this.getConfig();t3()(!i.paused,"Contract is paused");let{tx:s,coinData:c}=await oi({account:e,amount:r.toString(),splits:[r.toString()],coinType:a,inheritTx:n},this.sdk.suiClient);s.moveCall({target:`${o3[this.sdk.env].packageId}::subscription::subscribe_plan_with_admin`,typeArguments:[a],arguments:[s.object(o3[this.sdk.env].adminCapId),s.object(o3[this.sdk.env].configId),s.pure.u64(t),s.pure.string(o),s.pure.u64(r),c]}),s.setSender(e);let u=await oe(this.sdk.suiClient,s,e,0);return oC({inheritTx:s,sender:e,feeAmount:u},this.sdk.suiClient)}async buildAddPlanTx({adminAddress:e,planId:t,planType:o,monthInterval:r,price:a,currentTx:n}){let i=n||new tL.Transaction;i.moveCall({target:`${o3[this.sdk.env].packageId}::config::add_plan`,typeArguments:[],arguments:[i.object(o3[this.sdk.env].configId),i.object(o3[this.sdk.env].adminCapId),i.pure.u64(t),i.pure.u8(o),i.pure.u8(r),i.pure.u64(a)]}),i.setSender(e);let s=await oe(this.sdk.suiClient,i,e,0);return oC({inheritTx:i,sender:e,feeAmount:s},this.sdk.suiClient)}async buildUpdatePlanTx({adminAddress:e,planId:t,planType:o,monthInterval:r,price:a,currentTx:n}){let i=n||new tL.Transaction;i.moveCall({target:`${o3[this.sdk.env].packageId}::config::update_plan`,typeArguments:[],arguments:[i.object(o3[this.sdk.env].configId),i.object(o3[this.sdk.env].adminCapId),i.pure.u64(BigInt(t)),i.pure.u8(o),i.pure.u8(r),i.pure.u64(a)]}),i.setSender(e);let s=await oe(this.sdk.suiClient,i,e,0);return oC({inheritTx:i,sender:e,feeAmount:s},this.sdk.suiClient)}async buildRemovePlanTx({adminAddress:e,planId:t,currentTx:o}){let r=o||new tL.Transaction;r.moveCall({target:`${o3[this.sdk.env].packageId}::config::remove_plan`,typeArguments:[],arguments:[r.object(o3[this.sdk.env].configId),r.object(o3[this.sdk.env].adminCapId),r.pure.u64(BigInt(t))]}),r.setSender(e);let a=await oe(this.sdk.suiClient,r,e,0);return oC({inheritTx:r,sender:e,feeAmount:a},this.sdk.suiClient)}async buildUpdateFeeReceiverWalletTx({adminAddress:e,newFeeReceiverWallet:t,currentTx:o}){let r=o||new tL.Transaction;r.moveCall({target:`${o3[this.sdk.env].packageId}::config::update_fee_receiver`,typeArguments:[],arguments:[r.object(o3[this.sdk.env].configId),r.object(o3[this.sdk.env].adminCapId),r.pure.address(t)]}),r.setSender(e);let a=await oe(this.sdk.suiClient,r,e,0);return oC({inheritTx:r,sender:e,feeAmount:a},this.sdk.suiClient)}async buildSetPausedTx({adminAddress:e,paused:t,currentTx:o}){let r=o||new tL.Transaction;r.moveCall({target:`${o3[this.sdk.env].packageId}::config::set_paused`,typeArguments:[],arguments:[r.object(o3[this.sdk.env].configId),r.object(o3[this.sdk.env].adminCapId),r.pure.bool(t)]}),r.setSender(e);let a=await oe(this.sdk.suiClient,r,e,0);return oC({inheritTx:r,sender:e,feeAmount:a},this.sdk.suiClient)}async buildSetAcceptedPaymentTypeTx({adminAddress:e,paymentCoinType:t,currentTx:o}){let r=o||new tL.Transaction;r.moveCall({target:`${o3[this.sdk.env].packageId}::config::set_accepted_payment_type`,typeArguments:[t],arguments:[r.object(o3[this.sdk.env].configId),r.object(o3[this.sdk.env].adminCapId)]}),r.setSender(e);let a=await oe(this.sdk.suiClient,r,e,0);return oC({inheritTx:r,sender:e,feeAmount:a},this.sdk.suiClient)}}class o5{network;env;_suiClient;boostingModule;subscriptionModule;constructor(e,t="mainnet",o="prod"){this.network=t,this.env=o,this._suiClient=e,this.subscriptionModule=new o2(this),this.boostingModule=new o4(this)}get suiClient(){return this._suiClient}}let o8={tradeFeePercent:.01,tradeFeeRecipientAddress:"0xdaf1c8ed29d89cd8f217f609bad0a668fa6f158c12000bfa5f93e670c99e24ff"};class o9{network;env;options;_suiGrpcClient;_suiJsonRpcClient;aggregatorModule;curveModule;constructor(e,t="mainnet",o="prod"){this.options=e,this.network=t,this.env=o,this._suiGrpcClient=e.clients.grpc,this._suiJsonRpcClient=e.clients.jsonRpc,this.aggregatorModule=new oQ(this),this.curveModule=new o1(this)}get suiClient(){return this._suiGrpcClient}get suiJsonRpcClient(){return this._suiJsonRpcClient}}let o7=require("@mysten/sui/keypairs/ed25519"),re=.1;class rt{suiClient;constructor(e){this.suiClient=e}validatePrivateKey(e,t){t3()(e?.trim(),"Private key is required");let o=o7.Ed25519Keypair.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){t3()(e?.trim(),"Sender address is required"),t3()(t?.trim(),"Recipient address is required"),t3()(e!==t,"Sender and recipient cannot be the same"),t3()(o>0n,"Transfer amount must be at least 1 MIST");try{let r=new tL.Transaction,[a]=r.splitCoins(r.gas,[o]);r.transferObjects([a],t),r.setSender(e);let{referenceGasPrice:n}=await this.suiClient.getReferenceGasPrice();r.setGasPrice(n);let i=await oe(this.suiClient,r,e,re);r=await oC({inheritTx:r,sender:e,feeAmount:i,suiInputAmount:o},this.suiClient);let s=await r.build({client:this.suiClient}),c=Buffer.from(s).toString("base64"),u=await r.getDigest();return{sender:e,recipient:t,amountMIST:o,txDraftBase64:c,txDigest:u}}catch(e){throw Error(`Failed to create draft transaction: ${e instanceof Error?e.message:"Unknown error"}`)}}async execute(e,t){try{t3()(e,"Draft transaction is required"),t3()(e.txDraftBase64?.trim(),"Transaction data is required");let o=this.validatePrivateKey(t,e.sender),r=(0,oa.fromBase64)(e.txDraftBase64),{signature:a}=await o.signTransaction(r),n=await this.suiClient.executeTransaction({transaction:r,signatures:[a],include:{effects:!0}}),i="Transaction"===n.$kind?n.Transaction:n.FailedTransaction,{status:s}=i;return{success:s.success,txDigest:i.digest,effects:i.effects,error:s.success?void 0:s.error.message}}catch(e){return{success:!1,error:e instanceof Error?e.message:"Unknown error occurred"}}}async getTransactionStatus(e){t3()(e?.trim(),"Transaction digest is required");try{let t=await this.suiClient.getTransaction({digest:e,include:{effects:!0}}),o="Transaction"===t.$kind?t.Transaction:t.FailedTransaction;if(!o.effects?.status)return"pending";return o.effects.status.success?"success":"failure"}catch(e){if(e instanceof Error&&(e.message.includes("not found")||e.message.includes("Could not find")))return"pending";return"failure"}}}})(),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.Bluefin7kClient=__webpack_exports__.Bluefin7kClient,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.CetusClient=__webpack_exports__.CetusClient,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.FlowxClient=__webpack_exports__.FlowxClient,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.MetaAgError=__webpack_exports__.MetaAgError,exports.MetaAgErrorCode=__webpack_exports__.MetaAgErrorCode,exports.MetaAggregator=__webpack_exports__.MetaAggregator,exports.MetaClient=__webpack_exports__.MetaClient,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_ADDRESS_ZERO=__webpack_exports__.SUI_ADDRESS_ZERO,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.SuiGrpcClient=__webpack_exports__.SuiGrpcClient,exports.SuiJsonRpcClient=__webpack_exports__.SuiJsonRpcClient,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.addGasFee=__webpack_exports__.addGasFee,exports.checkIsSui=__webpack_exports__.checkIsSui,exports.denormalizeTokenType=__webpack_exports__.denormalizeTokenType,exports.getAmountAfterFee=__webpack_exports__.getAmountAfterFee,exports.getCoinObjectIdsByAmount=__webpack_exports__.getCoinObjectIdsByAmount,exports.getExpectedReturn=__webpack_exports__.getExpectedReturn,exports.getGrpcFullnodeUrl=__webpack_exports__.getGrpcFullnodeUrl,exports.getJsonRpcFullnodeUrl=__webpack_exports__.getJsonRpcFullnodeUrl,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.getTransactionResultDigest=__webpack_exports__.getTransactionResultDigest,exports.isSuiCoinType=__webpack_exports__.isSuiCoinType,exports.normalizeTokenType=__webpack_exports__.normalizeTokenType,exports.splitSuiCoinAfterFeeFromBuyTx=__webpack_exports__.splitSuiCoinAfterFeeFromBuyTx,exports.splitSuiCoinAfterFeeFromSellTx=__webpack_exports__.splitSuiCoinAfterFeeFromSellTx,exports.timeout=__webpack_exports__.timeout,__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","Bluefin7kClient","BluefinClmm","BluefinTx","BluemoveCpmm","Bolt","BoostingModule","Bps","CLOCK_OBJECT_ID","CONFIG_ID","CetusAggregator","CetusAggregatorConverter","CetusClient","CetusClmm","CetusDlmm","CurveModule","DEFAULT_TRADE_FEE","DeepbookV3","DipCpmm","DraftTransferTx","FerraClmm","FerraDlmm","FlowXAggregator","FlowXAggregatorConverter","FlowxClient","FlowxCpmm","FullsailClmm","HaedalLsdWal","KriyaClmm","MagmaAlmm","MagmaClmm","MathUtils","MetaAgError","MetaAgErrorCode","MetaAggregator","MetaClient","Metastable","MomentumClmm","MoonbagsCalculation","MoonbagsConstants","MoonbagsPackage","MoonbagsTransaction","Movepump","NATIVE_USDC_TOKEN_TYPE","NoodlesPaySdk","NoodlesSdk","Obric","PythPrice","PythUtils","RouterUtils","SUBSCRIPTION_CONFIG","SUI_ADDRESS_ZERO","SUI_FULL_TYPE","SUI_METADATA_OBJECT_ID","SUI_TYPE","Scallop","SevenKAggregator","SevenKAggregatorConverter","SevenkCpmm","SevenkFun","SrmCpmm","Steamm","SubscriptionModule","SuiGrpcClient","SuiJsonRpcClient","SupportedAggregator","SupportedBondingCurve","TradeFeeOptions","TradeportClmm","TurbosClmm","TurbosFun","USDC_TOKEN_TYPE","Volo","Walrus","addGasFee","checkIsSui","denormalizeTokenType","getAmountAfterFee","getCoinObjectIdsByAmount","getExpectedReturn","getGrpcFullnodeUrl","getJsonRpcFullnodeUrl","getMemezPumpSDK","getMoveObject","getMoveObjectContent","getNeededGasFee","getSplitCoinForTx","getSplitCoinsAfterFee","getTransactionResultDigest","isSuiCoinType","normalizeTokenType","splitSuiCoinAfterFeeFromBuyTx","splitSuiCoinAfterFeeFromSellTx","timeout"].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 __webpack_modules__={"./src/constant/sui.ts"(e,t,o){o.d(t,{IC:()=>s,N3:()=>n,P9:()=>a,VV:()=>c,lM:()=>i,nD:()=>r,qb:()=>u,tC:()=>l});let r="0x2::sui::SUI",a="0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI",n="0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN",i="0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC",s="0x9258181f5ceac8dbffb7030890243caed69a9599d2886d957a9cb7656af3bdb3",c="0x0000000000000000000000000000000000000000000000000000000000000006",u="0x0000000000000000000000000000000000000000000000000000000000000000";function l(e){return e===r||e===a}},"./src/libs/pyth.ts"(e,t,o){o.d(t,{L:()=>n,j:()=>i});var r,a,n,i,s=o("@mysten/sui/jsonRpc"),c=o("@mysten/sui/utils");let u=require("@pythnetwork/pyth-sui-js");(r=n||(n={})).LAST_PACKAGE_ID="0x8c36ea167c5e6da8c3d60b4fc897416105dcb986471bd81cfbfd38720a4487c0",r.newHolder=function(e){return e.moveCall({target:`${r.LAST_PACKAGE_ID}::oracle::new_holder`,typeArguments:[],arguments:[]})},r.getPrice=function(e){let{txb:t,coinOracleId:o,holder:a,coinPriceId:n}=e;t.moveCall({target:`${r.LAST_PACKAGE_ID}::pyth::get_price`,typeArguments:[],arguments:[t.object(o),a,t.object(n),t.object(c.SUI_CLOCK_OBJECT_ID)]})},(a=i||(i={})).PYTH_URLS=["https://hermes.pyth.network"],a.WORMHOLE_STATE_ID="0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",a.PYTH_STATE_ID="0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",a.newPythConnections=function(e){return e||(e=a.PYTH_URLS),e.map(e=>new u.SuiPriceServiceConnection(e,{timeout:3e3}))},a.newPythClient=function(e){return e||(e=new s.SuiJsonRpcClient({network:"mainnet",url:(0,s.getJsonRpcFullnodeUrl)("mainnet")})),new u.SuiPythClient(e,a.PYTH_STATE_ID,a.WORMHOLE_STATE_ID)},a.updatePythPriceIDs=async function(e){let{priceFeedIds:t,txb:o,pythConnections:r,pythClient:a}=e;if(0===t.length)return new Map;let n=null,i=null;for(let e of r)try{n=await e.getPriceFeedsUpdateData(t);break}catch(e){i=e,console.log("Error: ",e)}if(null==n)throw Error(`All Pyth price nodes are unavailable. Cannot fetch price data. Please switch to or add new available Pyth nodes. Detailed error: ${i?.message}`);let s=[];try{s=await a.updatePriceFeeds(o,n,t)}catch(e){throw Error(`All Pyth price nodes are unavailable. Cannot fetch price data. Please switch to or add new available Pyth nodes in the pythUrls parameter when initializing AggregatorClient, for example: new AggregatorClient({ pythUrls: ["https://your-pyth-node-url"] }). Detailed error: ${e}`)}let c=new Map;for(let e=0;e<t.length;e++)c.set(t[e],s[e]);return c}},"./src/libs/token-type.ts"(e,t,o){o.d(t,{YY:()=>i,eP:()=>n,nr:()=>a});var r=o("./src/constant/sui.ts");function a(e){return e===r.nD?r.P9:e}function n(e){return e===r.P9?r.nD:e}function i(e){return e===r.P9||e===r.nD}},"./src/meta-aggregator/aggregator/aggregator.ts"(e,t,o){var r,a;o.d(t,{u:()=>r}),(a=r||(r={})).MAX_AMOUNT_IN="18446744073709551615",a.LAST_PACKAGE_ID="0x7e57926855b32baa3b3cabed89380b8d415606fdedadc18e58bd1ef1e60aee48",a.openSwap=function(e){let{tx:t,expectedAmountOut:o,minAmountOut:r,coinInType:n,coinOutType:i,inputCoin:s,aggregatorFeeBps:c,aggregatorFeeRecipient:u,partnerFeeRecipient:l,partnerFeeBps:_}=e,[p]=t.moveCall({target:`${a.LAST_PACKAGE_ID}::aggregator::open_swap`,typeArguments:[n,i],arguments:[t.pure.u64(o),t.pure.u64(r),s,t.pure.u32(c),t.pure.address(u),t.pure.u32(_??0),t.pure.option("address",l)]});return p},a.closeSwap=function(e){let{tx:t,coinOutType:o,swapSession:r}=e,[n]=t.moveCall({target:`${a.LAST_PACKAGE_ID}::aggregator::close_swap`,typeArguments:[o],arguments:[r]});return n}},"./src/meta-aggregator/client/bluefin7k-client.ts"(e,t,o){o.r(t),o.d(t,{Bluefin7kClient:()=>i});var r=o("@bluefin-exchange/bluefin7k-aggregator-sdk"),a=o("./src/meta-aggregator/converter-route/sevenk-aggregator-converter.ts"),n=o("./src/meta-aggregator/client/error.ts");class i{options;kind="SEVENK";constructor(e,t){this.options=e,e.apiKey&&r.Config.setApiKey(e.apiKey),r.Config.setSuiClient(t)}async quote(e){let t=[];if(this.options.sources)for(let e of this.options.sources)a.m.SUPPORTED_PROTOCOLS.includes(e)&&t.push(e);else t.push(...a.m.SUPPORTED_PROTOCOLS);let o=await (0,r.getQuote)({tokenIn:e.coinTypeIn,tokenOut:e.coinTypeOut,amountIn:e.amountIn,sources:t,excludedPools:this.options.excludedPools,targetPools:this.options.targetPools});return n.u.assert(!!o,"No quote found",n.j.QUOTE_NOT_FOUND,{provider:this.kind}),{sourceRoute:"SEVENK",rawRoute:o,amountIn:o.swapAmountWithDecimal,amountOut:o.returnAmountWithDecimal,coinTypeIn:e.coinTypeIn,coinTypeOut:e.coinTypeOut}}}},"./src/meta-aggregator/client/cetus-client.ts"(e,t,o){o.r(t),o.d(t,{CetusClient:()=>c});var r=o("@cetusprotocol/aggregator-sdk"),a=o("./src/libs/pyth.ts"),n=o("./src/meta-aggregator/converter-route/cetus-aggregator-converter.ts"),i=o("./src/meta-aggregator/client/error.ts");let s=a.j.PYTH_URLS;class c{options;kind="CETUS";cetusClient;constructor(e,t,o){this.options=e,this.cetusClient=new r.AggregatorClient({apiKey:e.apiKey,client:o,endpoint:e.api,env:r.Env.Mainnet,pythUrls:t.hermesApi?t.hermesApi:s})}async quote(e){let t=[];if(this.options.sources)for(let e of this.options.sources)n.M.SUPPORTED_PROTOCOLS.includes(e)&&t.push(e);else t.push(...n.M.SUPPORTED_PROTOCOLS);let o=await this.cetusClient.findRouters({amount:e.amountIn,byAmountIn:!0,from:e.coinTypeIn,target:e.coinTypeOut,providers:t,splitCount:this.options.splitCount,splitAlgorithm:this.options.splitAlgorithm,splitFactor:this.options.splitFactor,depth:this.options.depth,liquidityChanges:this.options.liquidityChanges});return i.u.assert(!!o,"No quote found",i.j.QUOTE_NOT_FOUND,{provider:this.kind}),{sourceRoute:"CETUS",rawRoute:o,amountIn:o.amountIn.toString()||"0",amountOut:o.amountOut.toString()||"0",coinTypeIn:e.coinTypeIn,coinTypeOut:e.coinTypeOut}}}},"./src/meta-aggregator/client/error.ts"(e,t,o){o.d(t,{j:()=>a,u:()=>n});var r,a=((r={})[r.UNKNOWN=1e3]="UNKNOWN",r[r.TIMEOUT=1001]="TIMEOUT",r[r.PROVIDER_NOT_FOUND=1002]="PROVIDER_NOT_FOUND",r[r.PROVIDER_NOT_SUPPORTED=1003]="PROVIDER_NOT_SUPPORTED",r[r.INVALID_QUOTE=1004]="INVALID_QUOTE",r[r.QUOTE_NOT_FOUND=1005]="QUOTE_NOT_FOUND",r[r.INVALID_SIGNER_ADDRESS=1006]="INVALID_SIGNER_ADDRESS",r[r.PROVIDER_NOT_SUPPORT_SWAP=1007]="PROVIDER_NOT_SUPPORT_SWAP",r[r.SIMULATION_FAILED=1008]="SIMULATION_FAILED",r);class n extends Error{code;details;constructor(e,t,o){super(e),this.name="MetaAgError",this.code=t??1e3,this.details=o}static assert(e,t,o,r){if(!e)throw new n(t??"Assertion failed",o,r)}}},"./src/meta-aggregator/client/flowx-client.ts"(e,t,o){o.r(t),o.d(t,{FlowxClient:()=>n});var r=o("@flowx-finance/sdk"),a=o("./src/meta-aggregator/converter-route/flowx-aggregator-converter.ts");class n{options;kind="FLOWX";quoter;constructor(e){this.options=e,this.quoter=new r.AggregatorQuoter("mainnet",e.apiKey)}async quote(e){let t=[];if(this.options.sources)for(let e of this.options.sources)a.m.SUPPORTED_PROTOCOLS.includes(e)&&t.push(e);else t.push(...a.m.SUPPORTED_PROTOCOLS);let o=await this.quoter.getRoutes({amountIn:e.amountIn,tokenIn:e.coinTypeIn,tokenOut:e.coinTypeOut,includeSources:t,excludePools:this.options.excludePools,excludeSources:this.options.excludeSources,maxHops:this.options.maxHops,splitDistributionPercent:this.options.splitDistributionPercent});return{sourceRoute:"FLOWX",rawRoute:o,amountIn:o.amountIn?.toString()??"0",amountOut:o.amountOut?.toString()??"0",coinTypeIn:e.coinTypeIn,coinTypeOut:e.coinTypeOut}}}},"./src/meta-aggregator/converter-route/cetus-aggregator-converter.ts"(e,t,o){o.d(t,{M:()=>r});var r,a=o("@cetusprotocol/aggregator-sdk"),n=o("@minswap/tiny-invariant"),i=o.n(n),s=o("./src/meta-aggregator/aggregator/aggregator.ts"),c=o("./src/meta-aggregator/external/metastable.ts"),u=o("./src/meta-aggregator/router/types.ts");!function(e){let t=[a.CETUS,a.KRIYA,a.FLOWXV2,a.FLOWXV3,a.KRIYAV3,a.TURBOS,a.AFTERMATH,a.HAEDAL,a.VOLO,a.AFSUI,a.BLUEMOVE,a.DEEPBOOKV3,a.SCALLOP,a.SUILEND,a.BLUEFIN,a.HAEDALPMM,a.ALPHAFI,a.SPRINGSUI,a.STEAMM,a.METASTABLE,a.OBRIC,a.HAWAL,a.STEAMM_OMM,a.MOMENTUM,a.STEAMM_OMM_V2,a.MAGMA,a.SEVENK,a.HAEDALHMMV2,a.FULLSAIL,a.CETUSDLMM,a.FERRADLMM,a.FERRACLMM];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 n(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 l(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 a=e.paths[r],i=n(a);t.get(a.from)===r&&(i.amountIn=s.u.MAX_AMOUNT_IN),o.push(i)}return o}e.TO_META_AGGREGATOR_PATH_FN_MAP={[a.METASTABLE]:e=>{let t=r(e),o=e.extendedDetails,a=e.direction?e.target:e.from;i()(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 c.b.MetaCoinType.SUPER_SUI:return i()(o.metastable_registry_id,`METASTABLE_SUPER_SUI protocol requires 'metastable_registry_id' in extendedDetails for pool ${e.id}.`),{...t,...n,protocol:u.S.METASTABLE,metaCoin:a,registryId:o.metastable_registry_id};case c.b.MetaCoinType.MUSD:return i()(o.metastable_price_seed,`METASTABLE_MUSD protocol requires 'metastable_price_seed' in extendedDetails for pool ${e.id}.`),{...t,...n,protocol:u.S.METASTABLE,metaCoin:a,pythPriceFeedIdMeta:o.metastable_price_seed};case c.b.MetaCoinType.METH:return i()(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:u.S.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.`)}},[a.DEEPBOOKV3]:e=>({...r(e),protocol:u.S.DEEPBOOK_V3}),[a.AFTERMATH]:e=>{let t=e.extendedDetails;return i()(t?.aftermath_lp_supply_type,`AFTERMATH_CPMM protocol requires 'aftermath_lp_type' in extendedDetails for pool ${e.id}.`),{...r(e),protocol:u.S.AFTERMATH_CPMM,coinLpType:t.aftermath_lp_supply_type}},[a.FLOWXV3]:e=>({...r(e),protocol:u.S.FLOWX_CLMM,poolFeeRate:String(1e6*e.feeRate)}),[a.HAEDALPMM]:e=>{let t=e.extendedDetails;return i()(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:u.S.HAEDAL_CPMM,pythPriceFeedIdA:t.haedal_pmm_base_price_seed,pythPriceFeedIdB:t.haedal_pmm_quote_price_seed}},[a.HAEDALHMMV2]:e=>{let t=e.extendedDetails;return i()(t?.haedalhmmv2_base_price_seed,`HAEDAL_CPMM_V2 protocol requires 'haedal_pyth_price_base_id' in extendedDetails for pool ${e.id}.`),{...r(e),protocol:u.S.HAEDAL_CPMM_V2,pythPriceFeedIdBase:t.haedalhmmv2_base_price_seed}},[a.SCALLOP]:e=>(i()(e.extendedDetails?.scallop_scoin_treasury,`SCALLOP protocol requires 'scallop_scoin_treasury' in extendedDetails for pool ${e.id}.`),{...r(e),protocol:u.S.SCALLOP,scoinTreasury:e.extendedDetails.scallop_scoin_treasury}),[a.STEAMM]:e=>{let t=e.extendedDetails;return i()(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:u.S.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}},[a.STEAMM_OMM]:e=>{let t=e.extendedDetails;return i()(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:u.S.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)}},[a.STEAMM_OMM_V2]:e=>{let t=e.extendedDetails;return i()(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:u.S.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)}},[a.OBRIC]:e=>{let t=r(e);if(e.extendedDetails?.obric_coin_a_price_id&&e.extendedDetails?.obric_coin_b_price_id)return{...t,protocol:u.S.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:u.S.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}.`)},[a.SEVENK]:e=>{let t=e.extendedDetails;return i()(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:u.S.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}},[a.TURBOS]:e=>(i()(e.extendedDetails?.turbos_fee_type,`TURBOS_CLMM protocol requires 'coinFeeType' parameter for pool ${e.id}. Provide it via the parametersMap argument.`),{...r(e),protocol:u.S.TURBOS_CLMM,coinFeeType:e.extendedDetails.turbos_fee_type}),[a.AFSUI]:e=>({...r(e),protocol:u.S.AFTERMATH_LSD}),[a.ALPHAFI]:e=>({...r(e),protocol:u.S.ALPHAFI_LSD}),[a.BLUEFIN]:e=>({...r(e),protocol:u.S.BLUEFIN_CLMM}),[a.BLUEMOVE]:e=>({...r(e),protocol:u.S.BLUEMOVE_CPMM}),[a.CETUS]:e=>({...r(e),protocol:u.S.CETUS_CLMM}),[a.CETUSDLMM]:e=>({...r(e),protocol:u.S.CETUS_DLMM}),[a.FERRACLMM]:e=>({...r(e),protocol:u.S.FERRA_CLMM}),[a.FERRADLMM]:e=>({...r(e),protocol:u.S.FERRA_DLMM}),[a.FLOWXV2]:e=>({...r(e),protocol:u.S.FLOWX_CPMM}),[a.FULLSAIL]:e=>({...r(e),protocol:u.S.FULLSAIL_CLMM}),[a.HAEDAL]:e=>({...r(e),protocol:u.S.HAEDAL_LSD}),[a.HAWAL]:e=>({...r(e),protocol:u.S.HAEDAL_LSD_WAL}),[a.KRIYA]:e=>({...r(e),protocol:u.S.KRIYA_CPMM}),[a.KRIYAV3]:e=>({...r(e),protocol:u.S.KRIYA_CLMM}),[a.MAGMA]:e=>({...r(e),protocol:u.S.MAGMA_CLMM}),[a.MOMENTUM]:e=>({...r(e),protocol:u.S.MOMENTUM_CLMM}),[a.SUILEND]:e=>({...r(e),protocol:u.S.SPRINGSUI}),[a.SPRINGSUI]:e=>({...r(e),protocol:u.S.SPRINGSUI}),[a.VOLO]:e=>({...r(e),protocol:u.S.VOLO})},e.toMetaAggregatorPath=n,e.toMetaAggregatorPaths=l,e.convert=function(e){return{coinInType:e.paths[0].from,coinOutType:e.paths[e.paths.length-1].target,amountOut:e.amountOut.toString(),tradePaths:l(e)}}}(r||(r={}))},"./src/meta-aggregator/converter-route/flowx-aggregator-converter.ts"(e,t,o){o.d(t,{m:()=>r});var r,a=o("@flowx-finance/sdk"),n=o("@minswap/tiny-invariant"),i=o.n(n),s=o("./src/meta-aggregator/aggregator/aggregator.ts"),c=o("./src/meta-aggregator/router/types.ts");!function(e){let t=[a.Protocol.HOP_FUN,a.Protocol.FLOWX_PMM,a.Protocol.DEEPBOOK,a.Protocol.IPX_TIDE,a.Protocol.METASTABLE];e.SUPPORTED_PROTOCOLS=Object.values(a.Protocol).filter(e=>!t.includes(e));let o={[a.Protocol.FLOWX_V2]:t=>({...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:c.S.FLOWX_CPMM}),[a.Protocol.FLOWX_V3]:t=>(i()(void 0!==t.poolFee,`Pool fee is required for pool ${t.pool.id}`),i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.FLOWX_CLMM,poolFeeRate:t.poolFee.toString()}),[a.Protocol.CETUS]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.CETUS_CLMM}),[a.Protocol.CETUS_DLMM]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.CETUS_DLMM}),[a.Protocol.AFTERMATH]:t=>(i()(t.lpCoinType,`AFTERMATH protocol requires lpCoinType for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:c.S.AFTERMATH_CPMM,coinLpType:t.lpCoinType}),[a.Protocol.AFTERMATH_LSD]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:c.S.AFTERMATH_LSD}),[a.Protocol.ALPHA_FI]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:c.S.ALPHAFI_LSD}),[a.Protocol.BLUEFIN]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.BLUEFIN_CLMM}),[a.Protocol.BLUEMOVE]:t=>({...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:c.S.BLUEMOVE_CPMM}),[a.Protocol.DEEPBOOK_V3]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.DEEPBOOK_V3}),[a.Protocol.FERRA_CLMM]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.FERRA_CLMM}),[a.Protocol.FERRA_DLMM]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.FERRA_DLMM}),[a.Protocol.FULL_SAIL]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.FULLSAIL_CLMM}),[a.Protocol.HAEDAL]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:c.S.HAEDAL_LSD}),[a.Protocol.HAEDAL_PMM]:t=>{let o=t.oracles;return i()(o&&o.length>=2,`HAEDAL_CPMM protocol requires oracle price feeds for pool ${t.pool.id}.`),i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.HAEDAL_CPMM,pythPriceFeedIdA:o[0].priceId,pythPriceFeedIdB:o[1].priceId}},[a.Protocol.KRIYA_DEX]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.KRIYA_CPMM}),[a.Protocol.KRIYA_V3]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.KRIYA_CLMM}),[a.Protocol.MAGMA_FINANCE]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.MAGMA_CLMM}),[a.Protocol.MAGMA_ALMM]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.MAGMA_ALMM}),[a.Protocol.MOMENTUM_FINANCE]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.MOMENTUM_CLMM}),[a.Protocol.OBRIC]:t=>(i()(t.xPriceId&&t.yPriceId,`OBRIC protocol requires price feeds for pool ${t.pool.id}`),i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.OBRIC,priceInfoObjIdA:t.xPriceId,priceInfoObjIdB:t.yPriceId}),[a.Protocol.SPRING_SUI]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:c.S.SPRINGSUI}),[a.Protocol.STEAMM]:t=>{i()(void 0!==t.bankXInfo&&void 0!==t.bankYInfo,`STEAMM protocol requires bank info for pool ${t.pool.id}`),i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),i()(void 0!==t.quoterType,`quoterType is required for pool ${t.pool.id}`),i()(void 0!==t.poolInfo,`poolInfo is required for pool ${t.pool.id}`),i()(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:c.S.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":{i()(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 i()(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:c.S.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}`)}},[a.Protocol.SEVENK_V1]:t=>{let o=t.oracles;return i()(o&&o.length>=2,`SEVENK_CPMM protocol requires oracle price feeds for pool ${t.pool.id}.`),i()(t.poolStructTag,`SEVENK_V1 protocol requires poolStructTag for pool ${t.pool.id}`),i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.SEVENK_CPMM,coinLpType:t.poolStructTag,pythPriceFeedIdA:o[0].priceId,pythPriceFeedIdB:o[1].priceId,oracleConfigA:o[0].oracleId??"",oracleConfigB:o[1].oracleId??""}},[a.Protocol.SUI_REWARDS]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.SRM_CPMM}),[a.Protocol.TURBOS_FIANCE]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.TURBOS_CLMM,coinFeeType:t.poolStructTag?t.poolStructTag.split("<")[1].split(",")[2].trim().replace(">",""):""}),[a.Protocol.VOLO_LSD]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:c.S.VOLO}),[a.Protocol.TRADEPORT]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),i()(void 0!==t.poolFee,`Pool fee is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,poolFeeRate:t.poolFee.toString(),protocol:c.S.TRADEPORT_CLMM}),[a.Protocol.TURBOS_FUN]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.TURBOS_FUN}),[a.Protocol.BLUEMOVE_FUN]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,expectedAmountOut:t.amountOut.toString(),protocol:c.S.MOVEPUMP}),[a.Protocol.SEVEN_K_FUN]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.SEVENK_FUN}),[a.Protocol.DIPCOIN]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.DIP_CPMM}),[a.Protocol.BOLT]:t=>(i()(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:c.S.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=s.u.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)}}}(r||(r={}))},"./src/meta-aggregator/converter-route/sevenk-aggregator-converter.ts"(e,t,o){o.d(t,{m:()=>r});var r,a=o("@minswap/tiny-invariant"),n=o.n(a),i=o("@mysten/sui/utils"),s=o("./src/libs/token-type.ts"),c=o("./src/meta-aggregator/aggregator/aggregator.ts"),u=o("./src/meta-aggregator/router/types.ts");!function(e){let t=new Set(["bluefinx","RFQ"]);e.SUPPORTED_PROTOCOLS=["suiswap","turbos","cetus","bluemove","kriya","kriya_v3","aftermath","deepbook_v3","flowx","flowx_v3","bluefin","springsui","obric","stsui","steamm","steamm_oracle_quoter","steamm_oracle_quoter_v2","magma","haedal_pmm","momentum","sevenk_v1","fullsail","cetus_dlmm","ferra_dlmm","ferra_clmm"];let o={aftermath:e=>{n()(e.extra?.poolStructTag,"Aftermath protocol requires poolStructTag");let[t]=_(e.extra.poolStructTag);return{...l(e),protocol:u.S.AFTERMATH_CPMM,coinLpType:t}},flowx_v3:e=>{n()(e.extra?.swapFeeRate,"flowx_v3 protocol requires swapFeeRate");let t=e.extra.swapFeeRate;return{...l(e),protocol:u.S.FLOWX_CLMM,poolFeeRate:t}},turbos:e=>{n()(e.extra?.poolStructTag,"turbos protocol requires poolStructTag");let[t,o,r]=_(e.extra.poolStructTag);return{...l(e),protocol:u.S.TURBOS_CLMM,coinFeeType:r}},obric:e=>(n()(e.extra?.oracles,"obric protocol requires oracles"),{...l(e),protocol:u.S.OBRIC,pythPriceFeedIdA:p(e.extra.oracles[0]),pythPriceFeedIdB:p(e.extra.oracles[1])}),haedal_pmm:e=>(n()(e.extra.oracles,"haedal_pmm protocol requires oracles"),{...l(e),protocol:u.S.HAEDAL_CPMM,pythPriceFeedIdA:p(e.extra.oracles[0]),pythPriceFeedIdB:p(e.extra.oracles[1])}),sevenk_v1:e=>{n()(e.extra?.poolStructTag,"sevenk_v1 protocol requires poolStructTag"),n()(e.extra?.oracleConfigX,"sevenk_v1 protocol requires oracleConfigX"),n()(e.extra?.oracleConfigY,"sevenk_v1 protocol requires oracleConfigY");let t=e.extra.oracles?.[0]?.Pyth?.bytes,o=e.extra.oracles?.[1]?.Pyth?.bytes;n()(t,"sevenk_v1 protocol requires pythPriceFeedIdA"),n()(o,"sevenk_v1 protocol requires pythPriceFeedIdB");let[r,a,i]=_(e.extra.poolStructTag);return{...l(e),protocol:u.S.SEVENK_CPMM,coinLpType:i,pythPriceFeedIdA:t,pythPriceFeedIdB:o,oracleConfigA:e.extra.oracleConfigX,oracleConfigB:e.extra.oracleConfigY}},steamm:e=>{n()(e.extra?.poolStructTag,"steamm protocol requires poolStructTag"),n()(e.extra?.bankAStructTag,"steamm protocol requires bankAStructTag"),n()(e.extra?.lendingMarketA,"steamm protocol requires lendingMarketA"),n()(e.extra?.bankA,"steamm protocol requires bankA"),n()(e.extra?.bankB,"steamm protocol requires bankB");let[t,o,r,a]=_(e.extra.poolStructTag),[i,s,c]=_(e.extra.bankAStructTag);return{...l(e),protocol:u.S.STEAMM_CPMM,bankAId:e.extra.bankA,bankBId:e.extra.bankB,lendingMarketId:e.extra.lendingMarketA,lendingMarketType:i,bCoinAType:t,bCoinBType:o,lpBCoinType:a}},steamm_oracle_quoter:e=>{n()(e.extra?.poolStructTag,"steamm_oracle_quoter protocol requires poolStructTag"),n()(e.extra?.bankAStructTag,"steamm_oracle_quoter protocol requires bankAStructTag"),n()(e.extra?.lendingMarketA,"steamm_oracle_quoter protocol requires lendingMarketA"),n()(e.extra?.oracleRegistry,"steamm_oracle_quoter protocol requires oracleRegistry"),n()(e.extra?.bankA,"steamm_oracle_quoter protocol requires bankA"),n()(e.extra?.bankB,"steamm_oracle_quoter protocol requires bankB"),n()(e.extra?.oracleIndexes,"steamm_oracle_quoter protocol requires oracleIndexes"),n()(e.extra?.oracles,"steamm_oracle_quoter protocol requires oracles");let[t,o,r,a]=_(e.extra?.poolStructTag),[i,s,c]=_(e.extra.bankAStructTag),[d,g]=e.extra.oracleIndexes;return{...l(e),protocol:u.S.STEAMM_OMM,bankAId:e.extra.bankA,bankBId:e.extra.bankB,lendingMarketId:e.extra.lendingMarketA,lendingMarketType:i,bCoinAType:t,bCoinBType:o,lpBCoinType:a,pythPriceFeedIdA:p(e.extra.oracles[0]),pythPriceFeedIdB:p(e.extra.oracles[1]),oracleRegistryId:e.extra.oracleRegistry,oracleIndexA:d,oracleIndexB:g}},steamm_oracle_quoter_v2:e=>{n()(e.extra?.poolStructTag,"steamm_oracle_quoter_v2 protocol requires poolStructTag"),n()(e.extra?.bankAStructTag,"steamm_oracle_quoter_v2 protocol requires bankAStructTag"),n()(e.extra?.lendingMarketA,"steamm_oracle_quoter_v2 protocol requires lendingMarketA"),n()(e.extra?.oracleRegistry,"steamm_oracle_quoter_v2 protocol requires oracleRegistry"),n()(e.extra?.bankA,"steamm_oracle_quoter_v2 protocol requires bankA"),n()(e.extra?.bankB,"steamm_oracle_quoter_v2 protocol requires bankB"),n()(e.extra?.oracleIndexes,"steamm_oracle_quoter_v2 protocol requires oracleIndexes"),n()(e.extra?.oracles,"steamm_oracle_quoter_v2 protocol requires oracles");let[t,o,r,a]=_(e.extra?.poolStructTag),[i,s,c]=_(e.extra.bankAStructTag),[d,g]=e.extra.oracleIndexes;return{...l(e),protocol:u.S.STEAMM_OMM_V2,bankAId:e.extra.bankA,bankBId:e.extra.bankB,lendingMarketId:e.extra.lendingMarketA,lendingMarketType:i,bCoinAType:t,bCoinBType:o,lpBCoinType:a,pythPriceFeedIdA:p(e.extra.oracles[0]),pythPriceFeedIdB:p(e.extra.oracles[1]),oracleRegistryId:e.extra.oracleRegistry,oracleIndexA:d,oracleIndexB:g}},cetus:e=>({...l(e),protocol:u.S.CETUS_CLMM}),bluemove:e=>({...l(e),protocol:u.S.BLUEMOVE_CPMM}),kriya:e=>({...l(e),protocol:u.S.KRIYA_CPMM}),kriya_v3:e=>({...l(e),protocol:u.S.KRIYA_CLMM}),deepbook_v3:e=>({...l(e),protocol:u.S.DEEPBOOK_V3}),flowx:e=>({...l(e),protocol:u.S.FLOWX_CPMM}),bluefin:e=>({...l(e),protocol:u.S.BLUEFIN_CLMM}),springsui:e=>({...l(e),protocol:u.S.SPRINGSUI}),magma:e=>({...l(e),protocol:u.S.MAGMA_CLMM}),momentum:e=>({...l(e),protocol:u.S.MOMENTUM_CLMM}),fullsail:e=>({...l(e),protocol:u.S.FULLSAIL_CLMM}),stsui:e=>({...l(e),protocol:u.S.ALPHAFI_LSD}),suiswap:e=>({...l(e),protocol:u.S.SUISWAP_CPMM}),cetus_dlmm:e=>({...l(e),protocol:u.S.CETUS_DLMM}),ferra_dlmm:e=>({...l(e),protocol:u.S.FERRA_DLMM}),ferra_clmm:e=>({...l(e),protocol:u.S.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=c.u.MAX_AMOUNT_IN;return o}function l(e){return{poolId:e.poolId,coinInType:e.assetIn,coinOutType:e.assetOut,amountIn:e.amount,aToB:e.swapXtoY}}function _(e){return(0,i.parseStructTag)(e||"").typeParams.map(i.normalizeStructTag)}function p(e){let t=e?.Pyth?.bytes||e?.Pyth?.price_identifier?.bytes;return n()(t,"Pyth price feed id is not found"),"0x"+(0,i.toHex)(Uint8Array.from(t))}e.toMetaAggregatorPath=r,e.toMetaAggregatorPaths=a,e.convert=function(e){var t,o,r;let i;n()(e.routes,"Invalid raw route: routes is missing");let c=(t=e.routes,i={},t.forEach(e=>{e.hops.forEach(e=>{i[e.poolId]=e.pool})}),i),u=a((o=e.swaps,r=c,o.map(e=>{let t=r[e.poolId],o=(0,s.eP)(e.assetIn),a=(0,s.eP)(e.assetOut),n={type:(0,s.eP)(t?.allTokens?.[0]?.address),decimals:t?.allTokens?.[0]?.decimal},i={type:(0,s.eP)(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:u}}}(r||(r={}))},"./src/meta-aggregator/external/metastable.ts"(e,t,o){o.d(t,{b:()=>n});var r,a,n,i=o("@minswap/tiny-invariant"),s=o.n(i),c=o("@mysten/sui/utils");(r=n||(n={})).UNIVERSAL_META_VAULT_INTEGRATION_PACKAGE_ID="0xfd12517a9fc87c6a1f2357ad13b3421fb27a8bd7ca07d5fd5934ac35733baa47",(a=r.MetaCoinType||(r.MetaCoinType={})).SUPER_SUI="0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI",a.MUSD="0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD",a.METH="0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH",r.VERSION_OBJ_ID="0x4696559327b35ff2ab26904e7426a1646312e9c836d5c6cff6709a5ccc30915c",r.createCap=function(e){let t,{txb:o,coinType:r,metaCoin:a,createCapAllTypeParams:n,whitelistedAppId:i,poolId:u,pythInfoObjectIdMap:l,createCapPackageId:_,createCapModule:p,createCapFunc:d}=e,g=[a.toString()];switch(n&&g.push(r),e.metaCoin){case"0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI":t=[o.object(i),o.object(u),o.object(e.registryId)];break;case"0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD":{let r=l.get(e.pythPriceFeedIdMeta);s()(r,"Not found priceMetaId in pythObjectIdMap"),t=[o.object(i),o.object(u),o.object(r),o.object(c.SUI_CLOCK_OBJECT_ID)];break}case"0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH":{let r=l.get(e.pythPriceFeedIdMeta);s()(r,"Not found priceId in pythObjectIdMap");let a=l.get(e.pythPriceFeedIdEth);s()(a,"Not found priceEthFeedId in pythObjectIdMap"),t=[o.object(i),o.object(u),o.object(r),o.object(a),o.object(c.SUI_CLOCK_OBJECT_ID)];break}default:throw Error("Invalid MetaCoin: "+a.toString())}return o.moveCall({target:`${_}::${p}::${d}`,typeArguments:g,arguments:t})},r.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)}},r.isMetaCoinType=function(e){return Object.values(r.MetaCoinType).map(e=>e.toString()).includes(e)},r.getCreateCapAllTypeParams=function(e,t){switch(e){case"0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI":return t===r.UNIVERSAL_META_VAULT_INTEGRATION_PACKAGE_ID;case"0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD":case"0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH":return!0;default:throw Error("Invalid MetaCoin: "+e)}}},"./src/meta-aggregator/router/types.ts"(e,t,o){o.d(t,{S:()=>a});var r,a=((r={}).AFTERMATH_CPMM="aftermath_cpmm",r.AFTERMATH_LSD="aftermath_lsd",r.ALPHAFI_LSD="alphafi_lsd",r.BLASTFUN="blastfun",r.BLUEFIN_CLMM="bluefin_clmm",r.BLUEMOVE_CPMM="bluemove_cpmm",r.BOLT="bolt",r.CETUS_CLMM="cetus_clmm",r.CETUS_DLMM="cetus_dlmm",r.DEEPBOOK_V3="deepbook_v3",r.DIP_CPMM="dip_cpmm",r.FLOWX_CPMM="flowx_cpmm",r.FLOWX_CLMM="flowx_clmm",r.FULLSAIL_CLMM="fullsail_clmm",r.FERRA_CLMM="ferra_clmm",r.FERRA_DLMM="ferra_dlmm",r.HAEDAL_CPMM="haedal_cpmm",r.HAEDAL_CPMM_V2="haedal_cpmm_v2",r.HAEDAL_LSD="haedal_lsd",r.HAEDAL_LSD_WAL="haedal_lsd_wal",r.KRIYA_CLMM="kriya_clmm",r.KRIYA_CPMM="kriya_cpmm",r.MAGMA_ALMM="magma_almm",r.MAGMA_CLMM="magma_clmm",r.METASTABLE="metastable",r.MOMENTUM_CLMM="momentum_clmm",r.MOVEPUMP="movepump",r.OBRIC="obric",r.SCALLOP="scallop",r.SEVENK_CPMM="sevenk_cpmm",r.SEVENK_FUN="sevenk_fun",r.SPRINGSUI="springsui",r.SRM_CPMM="srm_cpmm",r.STEAMM_CPMM="steamm_cpmm",r.SUISWAP_CPMM="suiswap_cpmm",r.STEAMM_OMM="steamm_omm",r.STEAMM_OMM_V2="steamm_omm_v2",r.TRADEPORT_CLMM="tradeport_clmm",r.TURBOS_CLMM="turbos_clmm",r.TURBOS_FUN="turbos_fun",r.VOLO="volo",r)},"@bluefin-exchange/bluefin7k-aggregator-sdk"(e){e.exports=require("@bluefin-exchange/bluefin7k-aggregator-sdk")},"@cetusprotocol/aggregator-sdk"(e){e.exports=require("@cetusprotocol/aggregator-sdk")},"@flowx-finance/sdk"(e){e.exports=require("@flowx-finance/sdk")},"@minswap/tiny-invariant"(e){e.exports=require("@minswap/tiny-invariant")},"@mysten/sui/jsonRpc"(e){e.exports=require("@mysten/sui/jsonRpc")},"@mysten/sui/utils"(e){e.exports=require("@mysten/sui/utils")}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var o=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](o,o.exports,__webpack_require__),o.exports}__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__={};for(var __rspack_i in(()=>{let e;__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{ADMIN_CAP_ID:()=>oQ,AftermathAggregator:()=>tq,AftermathCpmm:()=>eO,AftermathLsd:()=>eE,AggregatorConverter:()=>tF,AggregatorModule:()=>oW,AggregatorProtocol:()=>oF.S,AstrosAggregator:()=>t$,BASE_BPS:()=>1e4,BLUEFIN_PACKAGE_ID:()=>oa,BOOSTING_PACKAGE_ID:()=>oX,BlastFunConstants:()=>el,BlastFunCustomCalculation:()=>eg,BlastFunCustomTransaction:()=>ef,BlastFunPackage:()=>ed,BlastFunSDKCalculation:()=>eb,BlastFunSDKTransaction:()=>eA,Blastfun:()=>ey,Bluefin7kClient:()=>oh.Bluefin7kClient,BluefinClmm:()=>eP,BluefinTx:()=>em,BluemoveCpmm:()=>eF,Bolt:()=>eD,BoostingModule:()=>oZ,Bps:()=>ep,CLOCK_OBJECT_ID:()=>oe.VV,CONFIG_ID:()=>oz,CetusAggregator:()=>tW,CetusAggregatorConverter:()=>tH.M,CetusClient:()=>oy.CetusClient,CetusClmm:()=>eR,CetusDlmm:()=>eU,CurveModule:()=>o0,DEFAULT_TRADE_FEE:()=>o3,DeepbookV3:()=>ej,DipCpmm:()=>eG,DraftTransferTx:()=>o9,FerraClmm:()=>e$,FerraDlmm:()=>eY,FlowXAggregator:()=>tZ,FlowXAggregatorConverter:()=>tQ.m,FlowxClient:()=>oP.FlowxClient,FlowxCpmm:()=>eX,FullsailClmm:()=>eQ,HaedalLsdWal:()=>e3,KriyaClmm:()=>e5,MagmaAlmm:()=>e7,MagmaClmm:()=>tt,MathUtils:()=>e_,MetaAgError:()=>ow.u,MetaAgErrorCode:()=>ow.j,MetaAggregator:()=>tB,MetaClient:()=>oJ,Metastable:()=>ok.b,MomentumClmm:()=>ta,MoonbagsCalculation:()=>eT,MoonbagsConstants:()=>eI,MoonbagsPackage:()=>eC,MoonbagsTransaction:()=>eS,Movepump:()=>ti,NATIVE_USDC_TOKEN_TYPE:()=>oe.lM,NoodlesPaySdk:()=>o1,NoodlesSdk:()=>o2,Obric:()=>tc,PythPrice:()=>oE.L,PythUtils:()=>oE.j,RouterUtils:()=>tP,SUBSCRIPTION_CONFIG:()=>o6,SUI_ADDRESS_ZERO:()=>oe.qb,SUI_FULL_TYPE:()=>oe.P9,SUI_METADATA_OBJECT_ID:()=>oe.IC,SUI_TYPE:()=>oe.nD,Scallop:()=>tl,SevenKAggregator:()=>tN,SevenKAggregatorConverter:()=>tL.m,SevenkCpmm:()=>tp,SevenkFun:()=>tg,SrmCpmm:()=>tb,Steamm:()=>tI,SubscriptionModule:()=>o4,SuiGrpcClient:()=>ol.SuiGrpcClient,SuiJsonRpcClient:()=>o_.SuiJsonRpcClient,SupportedAggregator:()=>tX,SupportedBondingCurve:()=>oT,TradeFeeOptions:()=>eu,TradeportClmm:()=>tS,TurbosClmm:()=>tM,TurbosFun:()=>tx,USDC_TOKEN_TYPE:()=>oe.N3,Volo:()=>ty,Walrus:()=>e1,addGasFee:()=>ob,checkIsSui:()=>ox.YY,denormalizeTokenType:()=>ox.eP,getAmountAfterFee:()=>t5,getCoinObjectIdsByAmount:()=>oo,getExpectedReturn:()=>oV,getGrpcFullnodeUrl:()=>op,getJsonRpcFullnodeUrl:()=>od,getMemezPumpSDK:()=>of,getMoveObject:()=>t3,getMoveObjectContent:()=>t1,getNeededGasFee:()=>t8,getSplitCoinForTx:()=>or,getSplitCoinsAfterFee:()=>t2,getTransactionResultDigest:()=>og,isSuiCoinType:()=>oe.tC,normalizeTokenType:()=>ox.nr,splitSuiCoinAfterFeeFromBuyTx:()=>on,splitSuiCoinAfterFeeFromSellTx:()=>oi,timeout:()=>o$});var t,o,r,a,n,i,s,c,u,l,_,p,d,g,m,f,b,A,I,C,T,S,O,M,E,x,h,y,w,P,B,F,k,D,v,R,L,U,N,j,K,G,q,$,V,Y,J,H,W,X,z,Q,Z,ee,et,eo,er,ea,en,ei,es,ec,eu,el,e_,ep,ed,eg,em,ef,eb,eA,eI,eC,eT,eS,eO,eM,eE,ex,eh,ey,ew,eP,eB,eF,ek,eD,ev,eR,eL,eU,eN,ej,eK,eG,eq,e$,eV,eY,eJ,eH,eW,eX,ez,eQ,eZ,e0,e6,e4,e1,e3,e2,e5,e8,e9,e7,te,tt,to,tr,ta,tn,ti,ts,tc,tu,tl,t_,tp,td,tg,tm,tf,tb,tA,tI,tC,tT,tS,tO,tM,tE,tx,th,ty,tw,tP,tB,tF,tk=__webpack_require__("@bluefin-exchange/bluefin7k-aggregator-sdk");let tD=require("@mysten/sui/transactions"),tv=require("bignumber.js");var tR=__webpack_require__.n(tv),tL=__webpack_require__("./src/meta-aggregator/converter-route/sevenk-aggregator-converter.ts");function tU(e,t){console.error(`NOODLES_SDK_AGGREGATOR_ROUTE_ERROR aggregator=${e} error=${function(e){if(e instanceof Error)return`${e.name}: ${e.message}`;if("string"==typeof e)return e;try{return JSON.stringify(e)}catch{return String(e)}}(t)}`)}class tN{_config;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r,metaAggregator:a,supportedProtocols:n}){try{this._config.sevenKApiKey&&tk.Config.setApiKey(this._config.sevenKApiKey);let i=r?r.tradeFeePercent:this._config.defaultTradeFee.tradeFeePercent,s=n??(a?tL.m.SUPPORTED_PROTOCOLS:void 0);return await (0,tk.getQuote)({tokenIn:t,tokenOut:o,amountIn:e.toString(),commissionBps:1e4*i,sources:s})}catch(e){return tU("sevenk",e),null}}async getTransaction({walletAddress:e,completeRoute:t,slippage:o,tradeFee:r}){let a,n;r?(a=r.tradeFeePercent,n=r.tradeFeeRecipientAddress):(a=this._config.defaultTradeFee.tradeFeePercent,n=this._config.defaultTradeFee.tradeFeeRecipientAddress);let i=await (0,tk.buildTx)({quoteResponse:t,slippage:o,accountAddress:e,commission:{partner:n,commissionBps:1e4*a}});return i.tx instanceof tk.BluefinXTx?tD.Transaction.from(i.tx.txBytes).build({client:this._suiClient}):(i.tx.setSender(e),i.tx.build({client:this._suiClient}))}}(tN||(tN={})).toCommonTradeRoutes=function(e){let t=[];if(!e.routes||0===e.routes.length)return null;for(let o of e.routes){let e=[],r={};for(let t of o.hops){for(let e of t.pool.allTokens)r[e.address]=e.decimal;let o=r[t.tokenIn]??0,a=r[t.tokenOut]??0,n=BigInt(new(tR())(t.tokenInAmount).multipliedBy(10**o).toFixed(0,3)),i=BigInt(new(tR())(t.tokenOutAmount).multipliedBy(10**a).toFixed(0,3));e.push({poolAddress:t.poolId,coinIn:t.tokenIn,coinOut:t.tokenOut,amountIn:n,amountOut:i})}if(0===e.length)continue;let a=r[o.tokenIn]??0,n=r[o.tokenOut]??0,i=BigInt(new(tR())(o.tokenInAmount).multipliedBy(10**a).toFixed(0,3)),s=BigInt(new(tR())(o.tokenOutAmount).multipliedBy(10**n).toFixed(0,3));t.push({paths:e,coinIn:o.tokenIn,coinOut:o.tokenOut,amountIn:i,amountOut:s})}return 0===t.length?null:{coinIn:e.tokenIn,coinOut:e.tokenOut,amountIn:BigInt(e.swapAmountWithDecimal),amountOut:BigInt(e.returnAmountAfterCommissionWithDecimal),routes:t}};let tj=require("aftermath-ts-sdk");function tK(e){return"bigint"==typeof e?e:"string"==typeof e&&/^\d+$/.test(e)?BigInt(e):e}function tG(e){return{...e,coinIn:e.coinIn?{...e.coinIn,amount:tK(e.coinIn.amount),tradeFee:tK(e.coinIn.tradeFee)}:e.coinIn,coinOut:e.coinOut?{...e.coinOut,amount:tK(e.coinOut.amount),tradeFee:tK(e.coinOut.tradeFee)}:e.coinOut}}class tq{_config;_aftermathClient;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}async aftermathClient(){if(this._aftermathClient)return this._aftermathClient;let e=new tj.Aftermath(this._config.aftermathApiEndpoint?this._config.aftermathApiEndpoint:"MAINNET"),t=await e.getAddresses();if(this._aftermathClient=new tj.Aftermath(this._config.aftermathApiEndpoint??"MAINNET",new tj.AftermathApi(this._suiClient,t)),this._config.aftermathApiKey){let e=tj.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: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 tU("aftermath",e),null}}async getTransaction({completeRoute:e,walletAddress:t,slippage:o}){let r=await this.aftermathClient(),a=await r.Router().getTransactionForCompleteTradeRoute({completeRoute:function(e){if("object"!=typeof e||null===e)return e;let t=tG(e);return{...t,routes:Array.isArray(t.routes)?t.routes.map(e=>{let t=tG(e);return{...t,portion:tK(t.portion),paths:Array.isArray(t.paths)?t.paths.map(e=>tG(e)):t.paths}}):t.routes,feeBreakdown:Array.isArray(t.feeBreakdown)?t.feeBreakdown.map(e=>({...e,amount:tK(e.amount)})):t.feeBreakdown}}(e),walletAddress:t,slippage:o+(e.netTradeFeePercentage??0),isSponsoredTx:!1});return a.setSender(t),a.build({client:this._suiClient})}}(tq||(tq={})).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 t${_config;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r}){try{let a;a=r?{fee:1e4*r.tradeFeePercent,receiverAddress:r.tradeFeeRecipientAddress}:{fee:1e4*this._config.defaultTradeFee.tradeFeePercent,receiverAddress:this._config.defaultTradeFee.tradeFeeRecipientAddress};let{getQuote:n}=await import("@naviprotocol/astros-aggregator-sdk");return await n(t,o,e,this._config.astrosApiKey,{byAmountIn:!0,serviceFee:a})}catch(e){return tU("astros",e),null}}returnMergedCoins(e,t,o){if(t.length<2)return e.object(t[0].coinObjectId);let r=0,a=[];t.sort((e,t)=>Number(t.balance)-Number(e.balance)).slice(1).forEach(e=>{r>=o||(r+=Number(e.balance),a.push(e.coinObjectId))});let n=t[0].coinObjectId;return e.mergeCoins(n,a),e.object(n)}async getTransaction({completeRoute:e,walletAddress:t,slippage:o,tradeFee:r}){var a;let n,i;n=r?{fee:r.tradeFeePercent,receiverAddress:r.tradeFeeRecipientAddress}:{fee:this._config.defaultTradeFee.tradeFeePercent,receiverAddress:this._config.defaultTradeFee.tradeFeeRecipientAddress};let s=new(tR())(e.amount_out).multipliedBy(1-o-n.fee).toNumber(),c=new tD.Transaction,{buildSwapPTBFromQuote:u,getCoins:l}=await import("@naviprotocol/astros-aggregator-sdk"),_=this._suiClient;if("0x2::sui::SUI"===(a=e.from)||"0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI"===a)i=c.splitCoins(c.gas,[c.pure.u64(e.amount_in)]);else{let o=await l(_,t,e.from),r=this.returnMergedCoins(c,o.data,Number.parseFloat(e.amount_in));i=c.splitCoins(r,[c.pure.u64(e.amount_in)])}let p=await u(t,c,s,i,e,void 0,!1,this._config.astrosApiKey,{serviceFee:n});return c.transferObjects([p],t),c.setSender(t),c.build({client:this._suiClient})}}(t$||(t$={})).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}};var tV=__webpack_require__("@cetusprotocol/aggregator-sdk");let tY=require("bn.js");var tJ=__webpack_require__.n(tY);(eu||(eu={})).equals=function(e,t){return e.tradeFeePercent===t.tradeFeePercent&&e.tradeFeeRecipientAddress===t.tradeFeeRecipientAddress};var tH=__webpack_require__("./src/meta-aggregator/converter-route/cetus-aggregator-converter.ts");class tW{_config;_suiClient;_cetusClient;getCetusClientConfig({walletAddress:e,overlayFeeReceiver:t,overlayFeeRate:o}){return{client:this._suiClient,overlayFeeReceiver:t,overlayFeeRate:o,env:tV.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&&!eu.equals(t,this._config.defaultTradeFee)?new tV.AggregatorClient(this.getCetusClientConfig({walletAddress:e,overlayFeeReceiver:t.tradeFeeRecipientAddress,overlayFeeRate:t.tradeFeePercent})):(this._cetusClient||(this._cetusClient=new tV.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:r,metaAggregator:a,supportedProtocols:n}){try{let i=this.cetusClient(void 0,r),s=n??(a?tH.M.SUPPORTED_PROTOCOLS:void 0);return await i.findRouters({from:t,target:o,amount:new(tJ())(e.toString()),byAmountIn:!0,providers:s})}catch(e){return tU("cetus",e),null}}async getTransaction({completeRoute:e,walletAddress:t,slippage:o,tradeFee:r}){let a=this.cetusClient(t,r),n=new tD.Transaction;return n.setSender(t),await a.fastRouterSwap({router:e,txb:n,slippage:o}),n.build({client:this._suiClient})}}(tW||(tW={})).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 tX=((t={}).ASTROS="ASTROS",t.AFTERMATH="AFTERMATH",t.SEVENK="7K",t.CETUS="CETUS",t.FLOWX="FLOWX",t),tz=__webpack_require__("@flowx-finance/sdk"),tQ=__webpack_require__("./src/meta-aggregator/converter-route/flowx-aggregator-converter.ts");class tZ{_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 tz.Commission(r,new tz.Coin(e),tz.CommissionType.PERCENTAGE,1e6*o,!0)}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r,metaAggregator:a,supportedProtocols:n}){let i=new tz.AggregatorQuoter("mainnet",this._config.flowxApiKey),s=n??(a?tQ.m.SUPPORTED_PROTOCOLS:void 0);try{return await i.getRoutes({tokenIn:t,tokenOut:o,amountIn:e.toString(),commission:this.getCommission(t,r),includeSources:s})}catch(e){return tU("flowx",e),null}}async getTransaction({walletAddress:e,completeRoute:t,slippage:o,tradeFee:r}){return new tz.TradeBuilder("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})))}}(tZ||(tZ={})).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}},(o=el||(el={})).PACKAGE_ID_V4="0x7e6aa6e179466ab2814425a780b122575296d011119fa69d27f289f5a28814bd",o.MEMEZ_AV_OBJECT_ID="0x2319e3e76dfad73d8f4684bdbf42be4f32d8ce4521dd61becc8261dc918d82c0";var t0=__webpack_require__("@minswap/tiny-invariant"),t6=__webpack_require__.n(t0);let t4=require("@mysten/sui/bcs");async function t1(e,t){return(await t3(e,t)).fields}async function t3(e,t){let o=(await e.getObject({objectId:t,include:{json:!0,objectBcs:!0}})).object;t6()(o,"Pool object not found or has no content"),t6()(o.json,"Pool object not found or has no content"),t6()(o.objectBcs,"Pool object not found or has no content");let r=t4.bcs.Object.parse(o.objectBcs);return t6()("Move"===r.data.$kind,"Pool object is not a Move object"),{dataType:"moveObject",fields:o.json,hasPublicTransfer:r.data.Move.hasPublicTransfer,type:o.type}}function t2(e,t){let o=BigInt(e),r=BigInt(1e4*Number(t));if(r===BigInt(0))return[o.toString()];let a=o*r/BigInt(1e4);return[(o-a).toString(),a.toString()]}function t5(e,t){if(!t||0>=Number(t))return BigInt(e);let o=BigInt(e),r=BigInt(1e4*Number(t));if(r===BigInt(0))return o;let a=o*r/BigInt(1e4);return o-a}async function t8(e,t,o,r){t.setSenderIfNotSet(o);let a=await e.simulateTransaction({transaction:t,include:{effects:!0},checksEnabled:!1}),{gasUsed:n,status:i}=("Transaction"===a.$kind?a.Transaction:a.FailedTransaction).effects;if(!i.success)throw Error(`Transaction failed during simulation: ${i.error?.message??""}`);let s=BigInt(n.computationCost)+BigInt(n.storageCost)-BigInt(n.storageRebate),c=BigInt(1e4*Number(r));return s*(BigInt(1e4)+c)/BigInt(1e4)}((r=e_||(e_={})).U64||(r.U64={})).mulDivUp=function(e,t,o){let r=BigInt(0);return e*t%o>BigInt(0)&&(r=BigInt(1)),e*t/o+r};var t9=ep||(ep={});function t7(e){return t6()(BigInt(e)<=BigInt(1e4),"Bps overflow"),BigInt(e)}t9.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},t9.sub=function(e,t){return t6()(BigInt(e.pos0)>=BigInt(t.pos0),"Bps underflow"),{pos0:(BigInt(e.pos0)-BigInt(t.pos0)).toString()}},t9.value=function(e){return BigInt(e.pos0)},t9.new_=function(e){return{pos0:t7(e).toString()}},t9.assertOverflow=t7,((a=ed||(ed={})).MemezFun||(a.MemezFun={})).isSniperProtectedMemezFun=async function(e,t){return(await t1(e,t)).public_key.length>0},(n=a.MemezFees||(a.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=ep.calcUp(ep.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")},n.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 ep.calcUp(ep.sub(r,t),o)}throw Error("Unknown fee variant")},(a.MemezBurner||(a.MemezBurner={})).calculate=function(e,t){if(ep.value(e.fee.fields)===BigInt(0)||t===BigInt(0)||t>=BigInt(e.target_liquidity))return ep.new_(0);let o=BigInt(1e4);return ep.new_(e_.U64.mulDivUp(ep.value(e.fee.fields),e_.U64.mulDivUp(t,o,BigInt(e.target_liquidity)),o))},(i=a.MemezPump||(a.MemezPump={})).getPumpState=async function(e,t){return await t1(e,t.inner_state)},i.pump=function(e,t){let o=e.constant_product.fields,r=a.MemezFees.takeWithDiscount(o.quote_swap_fee,t,o.quote_referrer_fee.fields),n=t-r,i=BigInt(o.meme_balance),s=BigInt(o.quote_balance),c=i*n/(BigInt(o.virtual_liquidity)+s+n),u=a.MemezFees.takeWithDiscount(o.meme_swap_fee,c,o.meme_referrer_fee.fields);return c-u},i.dump=function(e,t){let o=e.constant_product.fields,r=a.MemezFees.takeWithDiscount(o.meme_swap_fee,t,o.meme_referrer_fee.fields),n=t-r,i=BigInt(o.meme_balance),s=BigInt(o.quote_balance),c=BigInt(o.virtual_liquidity),u=a.MemezBurner.calculate(o.burner.fields,s),l=ep.calcUp(u,n),_=n-(ep.value(u)!==BigInt(0)?l:BigInt(0)),p=(c+s)*_/(i+_);p>s&&(p=s);let d=a.MemezFees.takeWithDiscount(o.quote_swap_fee,p,o.quote_referrer_fee.fields);return p-d},(s=eg||(eg={})).getCurveAmountAfterBuy=async function(e,t){let{suiAmount:o,poolId:r,frontendFee:a}=e,n=await t1(t,r),i=await ed.MemezPump.getPumpState(t,n);return o=t5(o,a),ed.MemezPump.pump(i,o)},s.getSuiAmountAfterSell=async function(e,t){let{curveAmount:o,poolId:r,frontendFee:a}=e,n=await t1(t,r),i=await ed.MemezPump.getPumpState(t,n);return t5(ed.MemezPump.dump(i,o),a)};var oe=__webpack_require__("./src/constant/sui.ts"),ot=__webpack_require__("@mysten/sui/utils");let oo=async(e,t,o,r)=>{let a,n=[],i=!0;for(;i;)try{let o=await e.listCoins({owner:t,coinType:r,cursor:a});n=[...n,...o.objects.map(e=>({coinObjectId:e.objectId,version:e.version,digest:e.digest,balance:e.balance}))],i=o.hasNextPage,a=o.cursor}catch(e){console.error("Error fetching data:",e),i=!1}let s=((e,t,o)=>{let r;if(e?.length){do{r=!1;for(let a=0;a<e.length-1;a++){let n=BigInt(e[a][t]),i=BigInt(e[a+1][t]);if("desc"===o?n<i:n>i){let t=e[a];e[a]=e[a+1],e[a+1]=t,r=!0}}}while(r);return e}})(n.map(e=>({...e,balance:e.balance})),"balance","desc")??[],c="0",u=[],l=[];for(let e of s)if(c=(BigInt(e.balance)+BigInt(c)).toString(10),u.push(e.coinObjectId),l.push(e),BigInt(c)>=BigInt(o))break;return{objectIds:u,balance:c,objectCoins:l}};async function or(e,t){let{account:o,amount:r,splits:a,coinType:n,inheritTx:i,inspecTransaction:s,isSponsored:c=!1}=e,u=i??new tD.Transaction,{objectIds:l,balance:_}=await oo(t,o,r,n);if(BigInt(_)<BigInt(r))throw Error(`Insufficient balance for type ${n}. Required: ${r}, Available: ${_}`);if(0===l.length)throw Error(`No coins found for type ${n} with sufficient balance. Required: ${r}`);let p=l[0];if((0,ot.normalizeStructTag)(n)===(0,ot.normalizeStructTag)(oe.P9)&&!c){let e;return s?(l.length>1&&u.mergeCoins(u.object(p),l.slice(1).map(e=>u.object(e))),e=u.splitCoins(u.object(p),a)):e=u.splitCoins(u.gas,a),{tx:u,coinData:e}}l.length>1&&u.mergeCoins(u.object(p),l.slice(1).map(e=>u.object(e)));let d=u.splitCoins(u.object(p),a);return{tx:u,coinData:d}}let oa="0x62412b7268c35f3808336aee57a52836501f40b8ba5d936f8ad275e672befd04";async function on(e,t){let o,r,{inputAmount:a,accountAddress:n,frontendFee:i,frontendFeeRecipient:s,extendTx:c,isSponsored:u}=e;t6()(e.inCoinType===oe.P9||e.inCoinType===oe.nD,"Input must be SUI");let{tx:l,coinIn:_}=c||{},p=t2(a,i||"0"),d=l||new tD.Transaction;if(_)o=d.splitCoins(_,p),em.transferOrDestroyZeroCoin(d,oe.P9,_,n);else{let{coinData:e}=await or({account:n,amount:a,splits:p,coinType:oe.P9,inheritTx:d,isSponsored:u||!1},t);o=e}if(i&&s){let[e,t]=o;r=e,d.transferObjects([t],d.pure.address(s||n))}else[r]=o;return{tx:d,coinOut:r}}async function oi(e,t,o){if(t6()(t.outCoinType===oe.P9||t.outCoinType===oe.nD,"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:`${oa}::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}}(em||(em={})).transferOrDestroyZeroCoin=function(e,t,o,r){e.moveCall({target:`${oa}::utils::transfer_or_destroy`,typeArguments:[t],arguments:[o,e.pure.address(r)]})};var os=ef||(ef={});async function oc(e){let t=e||new tD.Transaction;return t.moveCall({target:`${el.PACKAGE_ID_V4}::memez_allowed_versions::get_allowed_versions`,arguments:[t.object(el.MEMEZ_AV_OBJECT_ID)],typeArguments:[]})}os.getAllowedVersions=oc,os.buildBuyTx=async function(e,t){t6()(!await ed.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 on(e,t);t6()(r,"Coin out is required");let a=o.moveCall({target:`${el.PACKAGE_ID_V4}::memez_pump::pump`,typeArguments:[e.outCoinType,oe.P9],arguments:[o.object(e.poolId),r,o.pure.vector("address",[]),o.pure.vector("vector<u8>",[]),o.pure.u64(e.minAmountOut),await oc(o)]});return{tx:o,coinOut:a}},os.buildSellTx=async function(e,t){t6()(e.outCoinType===oe.P9||e.outCoinType===oe.nD,"Output must be SUI");let o=await t1(t,e.poolId),{tx:r,coinData:a}=await or({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[n]=a,[i]=r.moveCall({target:`${el.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 oc(r)]});return await oi(r,e,i)};let ou=require("@interest-protocol/sui-core-sdk"),ol=require("@mysten/sui/grpc");var o_=__webpack_require__("@mysten/sui/jsonRpc");function op(e){switch(e){case"mainnet":return"https://fullnode.mainnet.sui.io:443";case"testnet":return"https://fullnode.testnet.sui.io:443";case"devnet":return"https://fullnode.devnet.sui.io:443";case"localnet":return"http://127.0.0.1:9000";default:throw Error(`Unknown network: ${e}`)}}function od(e){return op(e)}function og(e){return"Transaction"===e.$kind?e.Transaction.digest:e.FailedTransaction.digest}let om={network:ou.Network.MAINNET,fullNodeUrl:op("mainnet")};async function of(){if(!e){let{MemezPumpSDK:t}=await import("@interest-protocol/memez-fun-sdk");e=new t(om)}return e}async function ob(e,t){let{inheritTx:o,sender:r,feeAmount:a,suiInputAmount:n}=e,i=o||new tD.Transaction;a>BigInt(0)&&i.setGasBudget(a);let{objectCoins:s}=await oo(t,r,(BigInt(n||"0")+a).toString(),oe.P9);return i.setGasPayment(s.map(e=>({objectId:e.coinObjectId,version:e.version,digest:e.digest}))),i}(c=eb||(eb={})).getCurveAmountAfterBuy=async function(e){let{suiAmount:t,poolId:o,frontendFee:r}=e;t=t5(t,r);let{memeAmountOut:a}=await (await of()).quotePump({pool:o,amount:t});return a},c.getSuiAmountAfterSell=async function(e){let{curveAmount:t,poolId:o,frontendFee:r}=e,{quoteAmountOut:a}=await (await of()).quoteDump({pool:o,amount:t});return t5(a,r)};var oA=eA||(eA={});async function oI(e,t){let{tx:o,coinOut:r}=await on(e,t);t6()(r,"Coin out is required");let{memeCoin:a,tx:n}=await (await of()).pump({pool:e.poolId,quoteCoin:r,minAmountOut:e.minAmountOut,tx:o});return{tx:n,coinOut:a}}async function oC(e,t){t6()((0,oe.tC)(e.outCoinType),"Output must be SUI");let{tx:o,coinData:r}=await or({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[a]=r,{quoteCoin:n,tx:i}=await (await of()).dump({pool:e.poolId,memeCoin:a,tx:o,minAmountOut:e.minAmountOut});return await oi(i,e,n)}oA.buildBuyTx=oI,oA.buildSellTx=oC,oA.getBuyTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:a,walletAddress:n,tradeFee:i},s){t6()((0,oe.tC)(t),"coinInType must be SUI for buy transaction"),t6()(o!==t,"coinOutType must be different from coinInType"),t6()(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),t6()(e>0,"coinInAmount must be greater than 0");let c=await eb.getCurveAmountAfterBuy({poolId:r,suiAmount:e,frontendFee:i?i.tradeFeePercent:void 0}),u=BigInt(new(tR())(c.toString()).multipliedBy(1-a).toFixed(0,3)),{tx:l,coinOut:_}=await oI({accountAddress:n,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:u.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},s);t6()(_,"Coin out is required"),l.transferObjects([_],l.pure.address(n)),l.setSender(n);let p=await t8(s,l,n,0);return(l=await ob({inheritTx:l,sender:n,feeAmount:p,suiInputAmount:e},s)).build({client:s})},oA.getSellTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:a,walletAddress:n,tradeFee:i},s){t6()((0,oe.tC)(o),"coinOutType must be SUI for sell transaction"),t6()(o!==t,"coinOutType must be different from coinInType"),t6()(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),t6()(e>0,"coinInAmount must be greater than 0");let c=await eb.getSuiAmountAfterSell({poolId:r,curveAmount:e,frontendFee:i?i.tradeFeePercent:void 0}),u=BigInt(new(tR())(c.toString()).multipliedBy(1-a).toFixed(0,3)),{tx:l,coinOut:_}=await oC({accountAddress:n,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:u.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},s);t6()(_,"Coin out is required"),l.transferObjects([_],l.pure.address(n)),l.setSender(n);let p=await t8(s,l,n,0);return(l=await ob({inheritTx:l,sender:n,feeAmount:p},s)).build({client:s})};var oT=((u={}).BLAST_FUN="BLAST_FUN",u.MOONBAGS="MOONBAGS",u);(l=eI||(eI={})).PACKAGE_ID="0xb8df325010942634a4afb3db3901ee215546af43a4ec4af781e7213b0bba7290",l.CONFIG_OBJECT_ID="0x74aecf86067c6913960ba4925333aefd2b1f929cafca7e21fd55a8f244b70499",l.LOCK_CONFIG_OBJECT_ID="0xfb09822d9808980abd04c51321adb850701f5f55535c6206658ef4d910c3e9be",l.BURN_MANAGER_OBJECT_ID="0x1d94aa32518d0cb00f9de6ed60d450c9a2090761f326752ffad06b2e9404f845",l.POOLS_OBJECT_ID="0xf699e7f2276f5c9a75944b37a0c5b5d9ddfd2471bf6242483b03ab2887d198d0",l.GLOBAL_CONFIG_OBJECT_ID="0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f",l.FEE_DENOMINATOR=BigInt(1e4),function(e){(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)};var t,o=e.Moonbags||(e.Moonbags={});function r(e){return"fields"in e?e.fields.balance:e.balance}o.getDynamicVirtualTokenReserves=async function(e,t){try{let o=await e.getDynamicField({parentId:t,name:{type:"vector<u8>",bcs:t4.bcs.byteVector().serialize(new TextEncoder().encode("virtual_token_reserves")).toBytes()}});if(!o.dynamicField?.value)return;return BigInt(t4.bcs.u64().parse(o.dynamicField.value.bcs))}catch(e){if("object"==typeof e&&null!==e&&"code"in e&&"dynamicFieldNotFound"===e.code)return;throw e}},o.buyExactInReturnsWithLock=function(t){let{inputAmount:o,amountIn:a,pool:n,config:i,dynamicVirtualTokenReserves:s}=t,c=BigInt(n.virtual_sui_reserves),u=BigInt(n.virtual_token_reserves),l=BigInt(r(n.remain_token_reserves)),_=e.Curves.calculateRemoveLiquidityReturn(c,u,a),p=u-(s||l),d=_,g=a;_>p&&(d=p,g=e.Curves.calculateAddLiquidityCost(c,u,p)+BigInt(1));let m=g*BigInt(i.platform_fee)/eI.FEE_DENOMINATOR;return t6()(o>=g+m,"Input amount is less than used SUI + fee"),{receivedCurve:d,receivedSui:o-g-m}},o.sellReturns=function(t){let{amountIn:o,pool:a,config:n}=t,i=BigInt(a.virtual_sui_reserves),s=BigInt(a.virtual_token_reserves),c=BigInt(r(a.real_sui_reserves)),u=e.Curves.calculateRemoveLiquidityReturn(s,i,o);u>c&&(u=c);let l=u*BigInt(n.platform_fee)/eI.FEE_DENOMINATOR,_=u-l;return{receivedCurve:BigInt(0),receivedSui:_}}}(eC||(eC={})),(_=eT||(eT={})).getCurveAmountAfterBuy=async function(e,t){let{suiAmount:o,poolId:r,frontendFee:a}=e,[n,i,s]=await Promise.all([t1(t,r),t1(t,eI.CONFIG_OBJECT_ID),eC.Moonbags.getDynamicVirtualTokenReserves(t,r)]);void 0!==a&&(o=t5(o,a));let c=o*eI.FEE_DENOMINATOR/(eI.FEE_DENOMINATOR+BigInt(i.platform_fee)),{receivedCurve:u}=eC.Moonbags.buyExactInReturnsWithLock({inputAmount:o,amountIn:c,pool:n,config:i,dynamicVirtualTokenReserves:s});return u},_.getSuiAmountAfterSell=async function(e,t){let{curveAmount:o,poolId:r,frontendFee:a}=e,[n,i]=await Promise.all([t1(t,r),t1(t,eI.CONFIG_OBJECT_ID)]),{receivedSui:s}=eC.Moonbags.sellReturns({amountIn:o,pool:n,config:i});return void 0!==a?t5(s,a):s},_.getUsedSuiForTx=async function(e,t){let{suiAmount:o,frontendFee:r}=e,a=await t1(t,eI.CONFIG_OBJECT_ID);return void 0!==r&&(o=t5(o,r)),o*eI.FEE_DENOMINATOR/(eI.FEE_DENOMINATOR+BigInt(a.platform_fee))};var oS=eS||(eS={});async function oO(e,t){let{tx:o,coinOut:r}=await on(e,t);t6()(r,"Coin out is required");let a=await eT.getUsedSuiForTx({suiAmount:BigInt(e.inputAmount),frontendFee:e.frontendFee},t),[n,i]=o.moveCall({target:`${eI.PACKAGE_ID}::moonbags::buy_exact_in_returns_with_lock`,typeArguments:[e.outCoinType],arguments:[o.object(eI.CONFIG_OBJECT_ID),o.object(eI.LOCK_CONFIG_OBJECT_ID),r,o.pure.u64(a),o.pure.u64(e.minAmountOut),o.object(eI.BURN_MANAGER_OBJECT_ID),o.object(eI.POOLS_OBJECT_ID),o.object(eI.GLOBAL_CONFIG_OBJECT_ID),o.object(oe.IC),o.object(oe.VV)]});return em.transferOrDestroyZeroCoin(o,oe.P9,n,e.accountAddress),{tx:o,coinOut:i}}async function oM(e,t){t6()((0,oe.tC)(e.outCoinType),"Output must be SUI");let{tx:o,coinData:r}=await or({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[a]=r,[n,i]=o.moveCall({target:`${eI.PACKAGE_ID}::moonbags::sell_returns`,typeArguments:[e.inCoinType],arguments:[o.object(eI.CONFIG_OBJECT_ID),a,o.pure.u64(e.minAmountOut),o.object(oe.VV)]});return em.transferOrDestroyZeroCoin(o,e.inCoinType,i,e.accountAddress),await oi(o,e,n)}oS.buildBuyTx=oO,oS.buildSellTx=oM,oS.getBuyTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:a,walletAddress:n,tradeFee:i},s){t6()((0,oe.tC)(t),"coinInType must be SUI for buy transaction"),t6()(o!==t,"coinOutType must be different from coinInType"),t6()(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),t6()(e>0,"coinInAmount must be greater than 0");let c=await eT.getCurveAmountAfterBuy({poolId:r,suiAmount:e,frontendFee:i?i.tradeFeePercent:void 0},s),u=BigInt(new(tR())(c.toString()).multipliedBy(1-a).toFixed(0,3)),{tx:l,coinOut:_}=await oO({accountAddress:n,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:u.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},s);t6()(_,"Coin out is required"),l.transferObjects([_],l.pure.address(n)),l.setSender(n);let p=await t8(s,l,n,0);return(l=await ob({inheritTx:l,sender:n,feeAmount:p,suiInputAmount:e},s)).build({client:s})},oS.getSellTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:a,walletAddress:n,tradeFee:i},s){t6()((0,oe.tC)(o),"coinOutType must be SUI for sell transaction"),t6()(o!==t,"coinOutType must be different from coinInType"),t6()(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),t6()(e>0,"coinInAmount must be greater than 0");let c=await eT.getSuiAmountAfterSell({poolId:r,curveAmount:e,frontendFee:i?i.tradeFeePercent:void 0},s),u=BigInt(new(tR())(c.toString()).multipliedBy(1-a).toFixed(0,3)),{tx:l,coinOut:_}=await oM({accountAddress:n,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:u.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},s);t6()(_,"Coin out is required"),l.transferObjects([_],l.pure.address(n)),l.setSender(n);let p=await t8(s,l,n,0);return(l=await ob({inheritTx:l,sender:n,feeAmount:p},s)).build({client:s})};var oE=__webpack_require__("./src/libs/pyth.ts"),ox=__webpack_require__("./src/libs/token-type.ts"),oh=__webpack_require__("./src/meta-aggregator/client/bluefin7k-client.ts"),oy=__webpack_require__("./src/meta-aggregator/client/cetus-client.ts"),ow=__webpack_require__("./src/meta-aggregator/client/error.ts"),oP=__webpack_require__("./src/meta-aggregator/client/flowx-client.ts"),oB=__webpack_require__("./src/meta-aggregator/aggregator/aggregator.ts");(p=eO||(eO={})).POOL_REGISTRY_OBJ_ID="0xfcc774493db2c45c79f688f88d28023a3e7d98e4ee9f48bbf5c7990f651577ae",p.PROTOCOL_FEE_VAULT_OBJ_ID="0xf194d9b1bcad972e45a7dd67dd49b3ee1e3357a00a50850c52cd51bb450e13b4",p.TREASURY_OBJ_ID="0x28e499dff5e864a2eafe476269a4f5035f1c16f338da7be18b103499abf271ce",p.INSURANCE_FUND_OBJ_ID="0xf0c40d67b078000e18032334c3325c47b9ec9f3d9ae4128be820d54663d14e3b",p.REFERRAL_VAULT_OBJ_ID="0x35d35b0e5b177593d8c3a801462485572fc30861e6ce96a55af6dc4730709278";var oF=__webpack_require__("./src/meta-aggregator/router/types.ts");(d=eM||(eM={})).LAST_PACKAGE_ID="0xf369250dc5a17e9d5a84a3b0cf5aea715c0682170e726dd601f03ade7ce4decb",d.swap=function(e){t6()(e.protocol===oF.S.AFTERMATH_CPMM);let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:s,coinLpType:c,packageId:u}=e;t.moveCall({target:`${u??d.LAST_PACKAGE_ID}::aftermath_cpmm_router::swap`,typeArguments:[i,s,c],arguments:[o,t.object(r),t.object(eO.POOL_REGISTRY_OBJ_ID),t.object(eO.PROTOCOL_FEE_VAULT_OBJ_ID),t.object(eO.TREASURY_OBJ_ID),t.object(eO.INSURANCE_FUND_OBJ_ID),t.object(eO.REFERRAL_VAULT_OBJ_ID),t.pure.bool(a),t.pure.u64(n)]})},(g=eE||(eE={})).STAKED_SUI_VAULT_OBJ_ID="0x2f8f6d5da7f13ea37daa397724280483ed062769813b6f31e9788e59cc88994d",g.SAFE_TREASURY_OBJECT_ID="0xeb685899830dd5837b47007809c76d91a098d52aabbf61e8ac467c59e5cc4610",g.REFERRAL_VAULT_OBJ_ID="0x4ce9a19b594599536c53edb25d22532f82f18038dc8ef618afd00fbbfb9845ef",g.VALIDATOR_ADDRESS="0xd30018ec3f5ff1a3c75656abf927a87d7f0529e6dc89c7ddd1bd27ecb05e3db2",(m=ex||(ex={})).LAST_PACKAGE_ID="0x148c4e7ff5b308b2d520e050e6a21d986dd3eb203e0aa3eaaba28000977aebf1",m.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??m.LAST_PACKAGE_ID}::aftermath_lsd_router::swap`,arguments:[o,t.object(eE.STAKED_SUI_VAULT_OBJ_ID),t.object(eE.SAFE_TREASURY_OBJECT_ID),t.object(ot.SUI_SYSTEM_STATE_OBJECT_ID),t.object(eE.REFERRAL_VAULT_OBJ_ID),t.pure.address(eE.VALIDATOR_ADDRESS),t.pure.bool(r),t.pure.u64(a)]})},(f=eh||(eh={})).LAST_PACKAGE_ID="0x108d5d07cf873dec0bc8034db862db55d38e495c1f3ee0e124cf4861af834f25",f.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinBType:i,packageId:s}=e;t.moveCall({target:`${s??f.LAST_PACKAGE_ID}::alphafi_lsd_router::swap`,typeArguments:[i],arguments:[o,t.object(r),t.object(ot.SUI_SYSTEM_STATE_OBJECT_ID),t.pure.bool(n),t.pure.u64(a)]})},(b=ey||(ey={})).MEMEZ_AV_OBJ_ID="0x2319e3e76dfad73d8f4684bdbf42be4f32d8ce4521dd61becc8261dc918d82c0",b.MEMEZ_FUN_OBJ_ID="0x943948644f06942b8b660ca541b10a05f6a7be23ce4069944a3665e7e698930d",b.IPX_TREASURY_STANDARD_OBJ_ID="0x051e11b667659192917db94e5175fa066909d4dfc04d2663528f499c4afc6999",(A=ew||(ew={})).LAST_PACKAGE_ID="0x8b1e84ed9bc79d31160600254d65810f6bc6d2352f174a60ed041017d0a2a87a",A.swap=function(e){t6()(e.protocol===oF.S.BLASTFUN,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,packageId:s}=e;t.moveCall({target:`${s??A.LAST_PACKAGE_ID}::blastfun_router::swap`,typeArguments:[r,a],arguments:[o,t.object(ey.MEMEZ_FUN_OBJ_ID),t.object(ey.IPX_TREASURY_STANDARD_OBJ_ID),t.object(ey.MEMEZ_AV_OBJ_ID),t.pure.bool(n),t.pure.u64(i)]})},(eP||(eP={})).GLOBAL_CONFIG_OBJ_ID="0x03db251ba509a8d5d8777b6338836082335d93eecbdd09a11e190a1cff51c352",(I=eB||(eB={})).LAST_PACKAGE_ID="0x9f8397124b6bdb55aeb7b5e43761e0e4dc94b9e22e94b1b25d8211d99df422d5",I.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinAType:i,coinBType:s,packageId:c}=e;t.moveCall({target:`${c??I.LAST_PACKAGE_ID}::bluefin_clmm_router::swap`,typeArguments:[i,s],arguments:[o,t.object(eP.GLOBAL_CONFIG_OBJ_ID),t.object(r),t.pure.bool(n),t.pure.u64(a),t.object(ot.SUI_CLOCK_OBJECT_ID)]})},(eF||(eF={})).DEX_INFO_OBJ_ID="0x3f2d9f724f4a1ce5e71676448dc452be9a6243dac9c5b975a588c8c867066e92",(C=ek||(ek={})).LAST_PACKAGE_ID="0xf52bdd65ee347e8994170f8c331cf0c23a55281b3282467f14ccbb3e2a7f928f",C.swap=function(e){let{txb:t,swapContext:o,aToB:r,amountIn:a,coinAType:n,coinBType:i,packageId:s}=e;t.moveCall({target:`${s??C.LAST_PACKAGE_ID}::bluemove_cpmm_router::swap`,typeArguments:[n,i],arguments:[o,t.object(eF.DEX_INFO_OBJ_ID),t.pure.bool(r),t.pure.u64(a)]})},(eD||(eD={})).ORACLE_OBJ_ID="0xfa3975b98f3d0e3df18ed88ae6e69db31836b3f4212df02fae144b1e5a89ca8e",(T=ev||(ev={})).LAST_PACKAGE_ID="0x2dd7b04509f332bdb93a8f228ab5c40b34baee4645b2ebe5e5fa2c3502b2c088",T.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??T.LAST_PACKAGE_ID}::bolt_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(eD.ORACLE_OBJ_ID),t.object(ot.SUI_CLOCK_OBJECT_ID),t.pure.u64(s),t.pure.bool(i)]})},(eR||(eR={})).GLOBAL_CONFIG="0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f",(S=eL||(eL={})).LAST_PACKAGE_ID="0xb3dbb229464cb14b9f8cfa087e5b162623c8f485395dc9b975e263a5ee7051e4",S.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??S.LAST_PACKAGE_ID}::cetus_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(eR.GLOBAL_CONFIG),t.object(n),t.pure.bool(i),t.pure.u64(s),t.object(ot.SUI_CLOCK_OBJECT_ID)]})},(O=eU||(eU={})).GLOBAL_CONFIG_OBJ_ID="0xf31b605d117f959b9730e8c07b08b856cb05143c5e81d5751c90d2979e82f599",O.VERSIONED_OBJ_ID="0x05370b2d656612dd5759cbe80463de301e3b94a921dfc72dd9daa2ecdeb2d0a8",(M=eN||(eN={})).LAST_PACKAGE_ID="0x9ab3ba62b4327a7d90e4aed1c025b62736f035911ad7bab830c065ec84ef1ffa",M.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinAType:i,coinBType:s,packageId:c}=e,u=[o,t.object(eU.GLOBAL_CONFIG_OBJ_ID),t.object(eU.VERSIONED_OBJ_ID),t.object(r),t.pure.bool(n),t.pure.u64(a),t.object(ot.SUI_CLOCK_OBJECT_ID)];t.moveCall({target:`${c??M.LAST_PACKAGE_ID}::cetus_dlmm_router::swap`,typeArguments:[i,s],arguments:u})},(E=ej||(ej={})).GLOBAL_CONFIG="0x699d455ab8c5e02075b4345ea1f91be55bf46064ae6026cc2528e701ce3ac135",E.DEEP_TYPE="0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP",(x=eK||(eK={})).LAST_PACKAGE_ID="0xff274b63c0f6e3a01f3dd0e923aefcb3146e05e2f6bef4ae339e2703b085f8ed",x.swap=function(e){t6()(e.protocol===oF.S.DEEPBOOK_V3,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:s,deepFeeCoin:c,packageId:u}=e,l=c||t.moveCall({target:"0x2::coin::zero",typeArguments:[ej.DEEP_TYPE]});t.moveCall({target:`${u??x.LAST_PACKAGE_ID}::deepbook_v3_router::swap`,typeArguments:[r,a],arguments:[o,t.object(ej.GLOBAL_CONFIG),t.object(n),t.pure.u64(s),t.pure.bool(i),l,t.object(ot.SUI_CLOCK_OBJECT_ID)]})},(eG||(eG={})).GLOBAL_OBJ_ID="0x935229a3c32399e9fb207ec8461a54f56c6af5744c64442435ac217ab28f0d59",(h=eq||(eq={})).LAST_PACKAGE_ID="0xfd86c0308327eae31c04560460ee6190220e4ae1cdf5b999eef1110bf0b0f2b8",h.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??h.LAST_PACKAGE_ID}::dip_cpmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(eG.GLOBAL_OBJ_ID),t.object(r),t.pure.bool(i),t.pure.u64(s)]})},(e$||(e$={})).FERRA_GLOBAL_CONFIG_ID="0x2cd8382c19e6994f16df204e9b8cddd04bdc486c251de75ac66ac4e48e3e7081",(y=eV||(eV={})).LAST_PACKAGE_ID="0x70c4318f67d88ebe4e83bacad15f9e2f5c8becd77695f63dc4bd9393730851cd",y.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:s,packageId:c}=e;t.moveCall({target:`${c??y.LAST_PACKAGE_ID}::ferra_clmm_router::swap`,typeArguments:[i,s],arguments:[o,t.object(e$.FERRA_GLOBAL_CONFIG_ID),t.object(r),t.pure.bool(a),t.pure.u64(n),t.object("0x6")]})},(eY||(eY={})).FERRA_GLOBAL_CONFIG_ID="0x5c9dacf5a678ea15b8569d65960330307e23d429289ca380e665b1aa175ebeca",(w=eJ||(eJ={})).LAST_PACKAGE_ID="0x686e9eb19b04d46374c3fb82cb4ebb7b24ef8a9ae13f403915f4ae347e0f6593",w.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:s,packageId:c}=e;t.moveCall({target:`${c??w.LAST_PACKAGE_ID}::ferra_dlmm_router::swap`,typeArguments:[i,s],arguments:[o,t.object(eY.FERRA_GLOBAL_CONFIG_ID),t.object(r),t.pure.bool(a),t.pure.u64(n),t.object(ot.SUI_CLOCK_OBJECT_ID)]})},(P=eH||(eH={})).POOL_REGISTRY_OBJ_ID="0x27565d24a4cd51127ac90e4074a841bbe356cca7bf5759ddc14a975be1632abc",P.VERSIONED_OBJ_ID="0x67624a1533b5aff5d0dfcf5e598684350efd38134d2d245f475524c03a64e656",(B=eW||(eW={})).LAST_PACKAGE_ID="0x350a752d3388165e578cc33a39655a6da83613cf4e58c8d9d0723711c2603e17",B.swap=function(e){t6()(e.protocol===oF.S.FLOWX_CLMM);let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolFeeRate:n,amountIn:i,aToB:s,packageId:c}=e;t.moveCall({target:`${c??B.LAST_PACKAGE_ID}::flowx_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(eH.POOL_REGISTRY_OBJ_ID),t.object(eH.VERSIONED_OBJ_ID),t.pure.u64(n),t.pure.u64(i),t.pure.bool(s),t.object(ot.SUI_CLOCK_OBJECT_ID)]})},(eX||(eX={})).CONTAINER_OBJ_ID="0xb65dcbf63fd3ad5d0ebfbf334780dc9f785eff38a4459e37ab08fa79576ee511",(F=ez||(ez={})).LAST_PACKAGE_ID="0xd95b440ad340bb6cbf571897d312e43d4b6de37b60c69ef714c94b9835cb8866",F.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,packageId:s}=e;t.moveCall({target:`${s??F.LAST_PACKAGE_ID}::flowx_cpmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(eX.CONTAINER_OBJ_ID),t.pure.bool(n),t.pure.u64(i)]})},(k=eQ||(eQ={})).GLOBAL_CONFIG_OBJ_ID="0xe93baa80cb570b3a494cbf0621b2ba96bc993926d34dc92508c9446f9a05d615",k.REWARDER_VAULT_OBJ_ID="0xfb971d3a2fb98bde74e1c30ba15a3d8bef60a02789e59ae0b91660aeed3e64e1",k.STATS_OBJ_ID="0x6822a33d1d971e040c32f7cc74507010d1fe786f7d06ab89135083ddb07d2dc2",k.PRICE_PROVIDER_OBJ_ID="0x854b2d2c0381bb656ec962f8b443eb082654384cf97885359d1956c7d76e33c9",(D=eZ||(eZ={})).LAST_PACKAGE_ID="0xf0bf13b5baaf3d368f165e846b919294bed79a3ab3ab0c9bd1e75f23533e44a5",D.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??D.LAST_PACKAGE_ID}::fullsail_clmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(eQ.GLOBAL_CONFIG_OBJ_ID),t.object(eQ.REWARDER_VAULT_OBJ_ID),t.object(eQ.STATS_OBJ_ID),t.object(eQ.PRICE_PROVIDER_OBJ_ID),t.object(r),t.pure.bool(i),t.pure.u64(s),t.object(ot.SUI_CLOCK_OBJECT_ID)]})},(v=e0||(e0={})).LAST_PACKAGE_ID="0x8969ed3e56c1dbdaf9df52f812d69c6c45fe5a4bab7093c88f5a8697a409398e",v.swap=function(e){t6()(e.protocol===oF.S.HAEDAL_CPMM);let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,pythPriceFeedIdA:c,pythPriceFeedIdB:u,pythInfoObjectIdMap:l,packageId:_}=e,p=l.get(c),d=l.get(u);t6()(p,"Not found priceInfoAId in pythObjectIdMap"),t6()(d,"Not found priceInfoBId in pythObjectIdMap"),t.moveCall({target:`${_??v.LAST_PACKAGE_ID}::haedal_cpmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(p),t.object(d),t.pure.u64(s),t.pure.bool(i),t.object(ot.SUI_CLOCK_OBJECT_ID)]})},(R=e6||(e6={})).LAST_PACKAGE_ID="0x5d01f22e5471a5912a88e15d62fdcb922beba65b8e8dfe1a715aebf743194f4a",R.swap=function(e){t6()(e.protocol===oF.S.HAEDAL_CPMM_V2);let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,pythPriceFeedIdBase:c,pythInfoObjectIdMap:u,packageId:l}=e,_=u.get(c);t6()(_,"Not found pythPriceBaseId in pythObjectIdMap"),t.moveCall({target:`${l??R.LAST_PACKAGE_ID}::haedal_cpmm_v2_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(_),t.pure.u64(s),t.pure.bool(i),t.object(ot.SUI_CLOCK_OBJECT_ID)]})},(L=e4||(e4={})).LAST_PACKAGE_ID="0x1644956086caa5eb791eba152f3b69ba862b3a5382ef0e1d8a474ab158aafa1a",L.swap=function(e){let{txb:t,swapContext:o,aToB:r,amountIn:a,poolId:n,packageId:i}=e;t.moveCall({target:`${i??L.LAST_PACKAGE_ID}::haedal_lsd_router::swap`,arguments:[o,t.object(n),t.object(ot.SUI_SYSTEM_STATE_OBJECT_ID),t.pure.bool(r),t.pure.u64(a)]})},(e1||(e1={})).STAKING_OBJ_ID="0x10b9d30c28448939ce6c4d6c6e0ffce4a7f8a4ada8248bdad09ef8b70e4a3904",(e3||(e3={})).VALIDATOR_ID="0x7b3ba6de2ae58283f60d5b8dc04bb9e90e4796b3b2e0dea75569f491275242e7",(U=e2||(e2={})).LAST_PACKAGE_ID="0x7be077dd73c85e788c2a49a51f0627066d81d3dc9982c268e3691265a81d544d",U.swap=function(e){t6()(e.protocol===oF.S.HAEDAL_LSD_WAL),t6()(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??U.LAST_PACKAGE_ID}::haedal_wal_lsd_router::swap`,arguments:[o,t.object(e1.STAKING_OBJ_ID),t.object(r),t.pure.id(e3.VALIDATOR_ID),t.pure.bool(a),t.pure.u64(n)]})},(e5||(e5={})).VERSION_OBJ_ID="0xf5145a7ac345ca8736cf8c76047d00d6d378f30e81be6f6eb557184d9de93c78",(N=e8||(e8={})).LAST_PACKAGE_ID="0xcf141e1d18ff609b2ac56532b391f7648fc55e28696efe354186f5109c0eff06",N.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??N.LAST_PACKAGE_ID}::kriya_clmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(e5.VERSION_OBJ_ID),t.pure.bool(i),t.pure.u64(s),t.object(ot.SUI_CLOCK_OBJECT_ID)]})},(j=e9||(e9={})).LAST_PACKAGE_ID="0x50d37f46df75ef125ce656d4ac91b31b2cf0c1195752a96558561d163e45c223",j.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??j.LAST_PACKAGE_ID}::kriya_cpmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.pure.bool(i),t.pure.u64(s)]})},(K=e7||(e7={})).FACTORY_OBJ_ID="0xedb456e93e423dd75a8ddebedd9974bb661195043027e32ce01649d6ccee74cf",K.GLOBAL_CONFIG_OBJ_ID="0x4c4e1402401f72c7d8533d0ed8d5f8949da363c7a3319ccef261ffe153d32f8a",(G=te||(te={})).LAST_PACKAGE_ID="0x950f94d33060c0575389c9f84fabab1e140776c6c84389d4237a0c2687a7adc9",G.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??G.LAST_PACKAGE_ID}::magma_almm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(e7.FACTORY_OBJ_ID),t.object(e7.GLOBAL_CONFIG_OBJ_ID),t.pure.u64(s),t.pure.bool(i),t.object(ot.SUI_CLOCK_OBJECT_ID)]})},(tt||(tt={})).GLOBAL_CONFIG="0x4c4e1402401f72c7d8533d0ed8d5f8949da363c7a3319ccef261ffe153d32f8a",(q=to||(to={})).LAST_PACKAGE_ID="0xbe5f590339c55ca8ebbf93cedfb68aafd479d71e1c57043246f7dcf352745242",q.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??q.LAST_PACKAGE_ID}::magma_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(tt.GLOBAL_CONFIG),t.object(n),t.pure.bool(i),t.pure.u64(s),t.object(ot.SUI_CLOCK_OBJECT_ID)]})};var ok=__webpack_require__("./src/meta-aggregator/external/metastable.ts");($=tr||(tr={})).LATEST_PACKAGE_ID="0xfab91518218f10204b083dba1e62c8bfc23f14fb87742158043e5faec4670ec4",$.swap=function(e){let t,o,r;t6()(e.protocol===oF.S.METASTABLE,"Invalid protocol");let{txb:a,swapContext:n,aToB:i,amountIn:s,coinAType:c,coinBType:u,poolId:l,metaCoin:_,packageId:p}=e,[d,g]=i?[c,u]:[u,c];d===_?(r="swap_from_meta_coin",t=[_,g],o=[ok.b.createCap({coinType:g,createCapFunc:"create_withdraw_cap",...e})]):g===_?(r="swap_to_meta_coin",t=[_,d],o=[ok.b.createCap({coinType:d,createCapFunc:"create_deposit_cap",...e})]):(r="swap",t=[_,d,g],o=[ok.b.createCap({coinType:d,createCapFunc:"create_deposit_cap",...e}),ok.b.createCap({coinType:g,createCapFunc:"create_withdraw_cap",...e})]),a.moveCall({target:`${p??$.LATEST_PACKAGE_ID}::metastable_router::${r}`,typeArguments:t,arguments:[n,a.object(l),a.object(ok.b.VERSION_OBJ_ID),...o,a.pure.u64(s)]})},(ta||(ta={})).VERSION_OBJ_ID="0x2375a0b1ec12010aaea3b2545acfa2ad34cfbba03ce4b59f4c39e1e25eed1b2a",(V=tn||(tn={})).LAST_PACKAGE_ID="0xba7ab4c8c39024fa0052bb4f00548a2e7b60742bb4ed0b87bc1d945fd8209102",V.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??V.LAST_PACKAGE_ID}::momentum_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(n),t.pure.bool(i),t.pure.u64(s),t.object(ta.VERSION_OBJ_ID),t.object(ot.SUI_CLOCK_OBJECT_ID)]})},(ti||(ti={})).CONFIGURATION_OBJ_ID="0xd746495d04a6119987c2b9334c5fefd7d8cff52a8a02a3ea4e3995b9a041ace4",(Y=ts||(ts={})).LAST_PACKAGE_ID="0x5a259db4b1d17fafc09185c9a71bac36f25f9ee462e72894c8610e5a58b79f8f",Y.swap=function(e){t6()(e.protocol===oF.S.MOVEPUMP,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,expectedAmountOut:s,packageId:c}=e;t.moveCall({target:`${c??Y.LAST_PACKAGE_ID}::movepump_router::swap`,typeArguments:[n?a:r],arguments:[o,t.object(ti.CONFIGURATION_OBJ_ID),t.object(eF.DEX_INFO_OBJ_ID),t.object(ot.SUI_CLOCK_OBJECT_ID),t.pure.u64(s),t.pure.bool(n),t.pure.u64(i)]})},(tc||(tc={})).STATE_OBJ_ID="0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",(J=tu||(tu={})).LAST_PACKAGE_ID="0xd615fed37d692280047068e80d3a6bb685aa9d574608054c9df881d6a7378fab",J.swap=function(e){let t,o;t6()(e.protocol===oF.S.OBRIC);let{txb:r,swapContext:a,poolId:n,coinAType:i,coinBType:s,aToB:c,amountIn:u,pythInfoObjectIdMap:l,packageId:_}=e;"priceInfoObjIdA"in e?(t=e.priceInfoObjIdA,o=e.priceInfoObjIdB):(t=l.get(e.pythPriceFeedIdA),o=l.get(e.pythPriceFeedIdB),t6()(t,"Not found priceInfoAId in pythObjectIdMap"),t6()(o,"Not found priceInfoBId in pythObjectIdMap")),r.moveCall({target:`${_??J.LAST_PACKAGE_ID}::obric_router::swap`,typeArguments:[i,s],arguments:[a,r.object(n),r.pure.u64(u),r.pure.bool(c),r.object(tc.STATE_OBJ_ID),r.object(t),r.object(o),r.object(ot.SUI_CLOCK_OBJECT_ID)]})},(H=tl||(tl={})).VERSION_OBJ_ID="0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7",H.MARKET_OBJ_ID="0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9",(W=t_||(t_={})).LAST_PACKAGE_ID="0xea409bb08c8a09e4127f859d9c36b8b62ca609282aa1e443091db6b7a7409ee7",W.swap=function(e){t6()(e.protocol===oF.S.SCALLOP);let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,scoinTreasury:s,packageId:c}=e;t.moveCall({target:`${c??W.LAST_PACKAGE_ID}::scallop_router::swap`,typeArguments:[r,a],arguments:[o,t.object(tl.VERSION_OBJ_ID),t.object(tl.MARKET_OBJ_ID),t.object(s),t.pure.u64(i),t.pure.bool(n),t.object(ot.SUI_CLOCK_OBJECT_ID)]})},(tp||(tp={})).ORACLE_HOLDER_OBJ_ID="0x8c36ea167c5e6da8c3d60b4fc897416105dcb986471bd81cfbfd38720a4487c0",(X=td||(td={})).LAST_PACKAGE_ID="0x918a30e2a05d24ea9451e2d2900d055f74e6752f2e10251fa50c7175831b1958",X.swap=function(e){t6()(e.protocol===oF.S.SEVENK_CPMM,"Invalid protocol for sevenk_cpmm_router swap");let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,coinLpType:c,oracleConfigA:u,oracleConfigB:l,pythPriceFeedIdA:_,pythPriceFeedIdB:p,pythInfoObjectIdMap:d,packageId:g}=e,m=d.get(_),f=d.get(p);t6()(m,"Not found priceInfoAId in pythObjectIdMap"),t6()(f,"Not found priceInfoBId in pythObjectIdMap");let b=oE.L.newHolder(t);oE.L.getPrice({txb:t,coinPriceId:_,holder:b,coinOracleId:u}),oE.L.getPrice({txb:t,coinPriceId:p,holder:b,coinOracleId:l}),t.moveCall({target:`${g??X.LAST_PACKAGE_ID}::sevenk_cpmm_router::swap`,typeArguments:[a,n,c],arguments:[o,t.object(r),t.object(tp.ORACLE_HOLDER_OBJ_ID),t.pure.bool(i),t.pure.u64(s)]})},(tg||(tg={})).CONFIGURATION_OBJ_ID="0xe79fff6c77d81f9a8efb729e25bf0037deec42518d40b978f274a4915d7e1ec9",(z=tm||(tm={})).LAST_PACKAGE_ID="0x0a5dc665dc3c1c846a6d1e00811c84cae3510c839ab4dc0873f85dc8908d0606",z.swap=function(e){t6()(e.protocol===oF.S.SEVENK_FUN,"Invalid protocol");let{txb:t,swapContext:o,aToB:r,amountIn:a,coinBType:n,packageId:i}=e;t.moveCall({target:`${i??z.LAST_PACKAGE_ID}::sevenk_fun_router::swap`,typeArguments:[n],arguments:[o,t.object(tg.CONFIGURATION_OBJ_ID),t.object(eX.CONTAINER_OBJ_ID),t.object(ot.SUI_CLOCK_OBJECT_ID),t.pure.bool(r),t.pure.u64(a)]})},(Q=tf||(tf={})).LAST_PACKAGE_ID="0xa6d129c0b314e85d1bc5aecf305d64212bdd5d466457531f4f624fef5f2e7751",Q.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinBType:i,packageId:s}=e;t.moveCall({target:`${s??Q.LAST_PACKAGE_ID}::springsui_router::swap`,typeArguments:[i],arguments:[o,t.object(r),t.object(ot.SUI_SYSTEM_STATE_OBJECT_ID),t.pure.u64(a),t.pure.bool(n)]})},(tb||(tb={})).CONFIG_OBJ_ID="0x881fd0a12ca4fa48991f5c27ba57d17f1ec147fa15f43b3cb760cc3bd7ba9402",(Z=tA||(tA={})).LAST_PACKAGE_ID="0xa314a64962ed4b91a6b4085de4dff2e631fd4c731dbca671a74489955df322ef",Z.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:s,packageId:c}=e,u=[o,t.object(r),t.object(tb.CONFIG_OBJ_ID),t.pure.bool(a),t.pure.u64(n),t.object("0x6")];t.moveCall({target:`${c??Z.LAST_PACKAGE_ID}::srm_cpmm_router::swap`,typeArguments:[i,s],arguments:u})},(et=(ee=tI||(tI={})).Oracle||(ee.Oracle={})).PACKAGE_ID="0xe84b649199654d18c38e727212f5d8dacfc3cf78d60d0a7fc85fd589f280eb2b",et.getPythPrice=function(e){let{txb:t,oracleRegistryId:o,priceInfoId:r,oracleIndex:a}=e;return t.moveCall({target:`${et.PACKAGE_ID}::oracles::get_pyth_price`,typeArguments:[],arguments:[t.object(o),t.object(r),t.pure.u64(a),t.object(ot.SUI_CLOCK_OBJECT_ID)]})};var oD=tC||(tC={});function ov(e,t){t6()(e.protocol===oF.S.STEAMM_OMM||e.protocol===oF.S.STEAMM_OMM_V2,"Invalid protocol for steamm _swapOmm swap");let{txb:o,swapContext:r,poolId:a,coinAType:n,coinBType:i,aToB:s,amountIn:c,bankAId:u,bankBId:l,lendingMarketId:_,lendingMarketType:p,bCoinAType:d,bCoinBType:g,lpBCoinType:m,pythPriceFeedIdA:f,pythPriceFeedIdB:b,pythInfoObjectIdMap:A,oracleRegistryId:I,oracleIndexA:C,oracleIndexB:T,packageId:S}=e,O=A.get(f),M=A.get(b);t6()(O,"Not found priceInfoAId in pythObjectIdMap"),t6()(M,"Not found priceInfoBId in pythObjectIdMap");let E=tI.Oracle.getPythPrice({txb:o,oracleRegistryId:I,priceInfoId:O,oracleIndex:C}),x=tI.Oracle.getPythPrice({txb:o,oracleRegistryId:I,priceInfoId:M,oracleIndex:T});o.moveCall({target:`${S??oD.LAST_PACKAGE_ID}::${oR(t)}::swap`,typeArguments:[p,n,i,d,g,m],arguments:[r,o.object(a),o.object(u),o.object(l),o.object(_),E,x,o.pure.bool(s),o.pure.u64(c),o.object(ot.SUI_CLOCK_OBJECT_ID)]})}function oR(e){switch(e){case 0:return"steamm_omm_router";case 1:return"steamm_omm_v2_router"}}function oL(e){let{amountOut:t,aggregatorFeeBps:o,partnerFeeBps:r}=e,a=oU(t,o);return r&&(a=oU(a,r)),a}function oU(e,t){let o=BigInt(e)*BigInt(t)/BigInt(1e4);return(BigInt(e)-o).toString()}function oN(e){return Math.floor(100*e)}oD.LAST_PACKAGE_ID="0xd606880d67c399f349758111a91582d5515f31dd051632402653d872818f594e",oD.swapCpmm=function(e){t6()(e.protocol===oF.S.STEAMM_CPMM,"Invalid protocol for steamm_cpmm_router swap");let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,bankAId:c,bankBId:u,lendingMarketId:l,lendingMarketType:_,bCoinAType:p,bCoinBType:d,lpBCoinType:g}=e;t.moveCall({target:`${oD.LAST_PACKAGE_ID}::steamm_cpmm_router::swap`,typeArguments:[_,a,n,p,d,g],arguments:[o,t.object(r),t.object(c),t.object(u),t.object(l),t.pure.bool(i),t.pure.u64(s),t.object(ot.SUI_CLOCK_OBJECT_ID)]})},oD.swapOmm=function(e){ov(e,0)},oD.swapOmmV2=function(e){ov(e,1)},oD.getOmmRouterModule=oR,(eo=tT||(tT={})).LAST_PACKAGE_ID="0x7a1cf89025a60161e84809784d772263231fad08a7cb76a88ca1ba69e0a656da",eo.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??eo.LAST_PACKAGE_ID}::suiswap_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.pure.bool(i),t.pure.u64(s),t.object(ot.SUI_CLOCK_OBJECT_ID)]})},(er=tS||(tS={})).VERSIONED="0x0309b66202e9aaf470081fffee7ffc0fbd50e3b7400d4f56fd06502e4dbbd676",er.POOL_REGISTRY="0xcd0a614c4cbbf173f59dee2602c43a1717f283215ed7a0bb1d55d786af16fbcd",(ea=tO||(tO={})).LAST_PACKAGE_ID="0x79957062a7424ed9c2eb83932e4c4fcc3fee67ab3c8f6f874c54e417178bbb7a",ea.swap=function(e){t6()(e.protocol===oF.S.TRADEPORT_CLMM,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,poolFeeRate:s,packageId:c}=e;t.moveCall({target:`${c??ea.LAST_PACKAGE_ID}::tradeport_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(tS.POOL_REGISTRY),t.pure.u64(s),t.object(tS.VERSIONED),t.pure.bool(n),t.pure.u64(i),t.object(ot.SUI_CLOCK_OBJECT_ID)]})},(tM||(tM={})).POOL_VERSIONED="0xf1cf0e81048df168ebeb1b8030fad24b3e0b53ae827c25053fff0779c1445b6f",(en=tE||(tE={})).LAST_PACKAGE_ID="0x512d63711ff38353fb167238b0529001b6871c1727c67ce3bf6ec23556b0f1da",en.swap=function(e){t6()(e.protocol===oF.S.TURBOS_CLMM,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,coinFeeType:n,poolId:i,aToB:s,amountIn:c,packageId:u}=e;t.moveCall({target:`${u??en.LAST_PACKAGE_ID}::turbos_clmm_router::swap`,typeArguments:[r,a,n],arguments:[o,t.object(i),t.object(tM.POOL_VERSIONED),t.pure.bool(s),t.pure.u64(c),t.object(ot.SUI_CLOCK_OBJECT_ID)]})},(tx||(tx={})).CONFIGURATION_OBJ_ID="0xd86685fc3c3d989385b9311ef55bfc01653105670209ac4276ebb6c83d7df928",(ei=th||(th={})).LAST_PACKAGE_ID="0x1fad13f09797aa87a4385d0b1efb2de963ba16742447b1ad5a3b0c5b1d1c588b",ei.swap=function(e){t6()(e.protocol===oF.S.TURBOS_FUN,"Invalid protocol");let{txb:t,swapContext:o,coinBType:r,aToB:a,amountIn:n,packageId:i}=e;t.moveCall({target:`${i??ei.LAST_PACKAGE_ID}::turbos_fun_router::swap`,typeArguments:[r],arguments:[o,t.object(tx.CONFIGURATION_OBJ_ID),t.object(ot.SUI_CLOCK_OBJECT_ID),t.pure.bool(a),t.pure.u64(n)]})},(ty||(ty={})).VOLO_CERT_METADATA_ID="0x680cd26af32b2bde8d3361e804c53ec1d1cfe24c7f039eb7f549e8dfde389a60",(es=tw||(tw={})).LAST_PACKAGE_ID="0x7c8d95256342f904d5f251776903a17905d87c95f387b3a35cc2aecc23b3c042",es.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,packageId:i}=e;t.moveCall({target:`${i??es.LAST_PACKAGE_ID}::volo_router::swap`,arguments:[o,t.object(r),t.object(ty.VOLO_CERT_METADATA_ID),t.object(ot.SUI_SYSTEM_STATE_OBJECT_ID),t.pure.bool(a),t.pure.u64(n)]})},(ec=tP||(tP={})).RouterSwapFunctionMap={[oF.S.AFTERMATH_CPMM]:eM.swap,[oF.S.AFTERMATH_LSD]:ex.swap,[oF.S.ALPHAFI_LSD]:eh.swap,[oF.S.BLASTFUN]:ew.swap,[oF.S.BLUEFIN_CLMM]:eB.swap,[oF.S.BLUEMOVE_CPMM]:ek.swap,[oF.S.BOLT]:ev.swap,[oF.S.CETUS_CLMM]:eL.swap,[oF.S.CETUS_DLMM]:eN.swap,[oF.S.DEEPBOOK_V3]:eK.swap,[oF.S.DIP_CPMM]:eq.swap,[oF.S.FERRA_CLMM]:eV.swap,[oF.S.FERRA_DLMM]:eJ.swap,[oF.S.FLOWX_CPMM]:ez.swap,[oF.S.FLOWX_CLMM]:eW.swap,[oF.S.FULLSAIL_CLMM]:eZ.swap,[oF.S.HAEDAL_CPMM]:e0.swap,[oF.S.HAEDAL_CPMM_V2]:e6.swap,[oF.S.HAEDAL_LSD]:e4.swap,[oF.S.HAEDAL_LSD_WAL]:e2.swap,[oF.S.KRIYA_CLMM]:e8.swap,[oF.S.KRIYA_CPMM]:e9.swap,[oF.S.MAGMA_ALMM]:te.swap,[oF.S.MAGMA_CLMM]:to.swap,[oF.S.METASTABLE]:tr.swap,[oF.S.MOMENTUM_CLMM]:tn.swap,[oF.S.MOVEPUMP]:ts.swap,[oF.S.OBRIC]:tu.swap,[oF.S.SCALLOP]:t_.swap,[oF.S.SEVENK_CPMM]:td.swap,[oF.S.SEVENK_FUN]:tm.swap,[oF.S.SPRINGSUI]:tf.swap,[oF.S.SRM_CPMM]:tA.swap,[oF.S.STEAMM_CPMM]:tC.swapCpmm,[oF.S.STEAMM_OMM]:tC.swapOmm,[oF.S.STEAMM_OMM_V2]:tC.swapOmmV2,[oF.S.SUISWAP_CPMM]:tT.swap,[oF.S.TRADEPORT_CLMM]:tO.swap,[oF.S.TURBOS_CLMM]:tE.swap,[oF.S.TURBOS_FUN]:th.swap,[oF.S.VOLO]:tw.swap},ec.swap=function(e){(0,ec.RouterSwapFunctionMap[e.protocol])(e)},(tB||(tB={})).buildAggregatorSwapTransaction=async function(e){let{tx:t,coinOutType:o,tradePaths:r,pythConnections:a,pythClient:n,packageIdMap:i}=e,s=oB.u.openSwap(e),c=await oE.j.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];tP.swap({...o,txb:t,swapContext:s,amountIn:o.amountIn,coinAType:a,coinBType:n,packageId:i?.get(o.protocol),pythInfoObjectIdMap:c})}return oB.u.closeSwap({tx:t,coinOutType:o,swapSession:s})};let oj=oE.j.newPythConnections(),oK=oE.j.newPythClient();var oG=tF||(tF={});function oq(e){var t,o,r;let a,n,{buildTxParam:i,rawRouteParam:s}=e;switch(s.sourceRoute){case"CETUS":a=tH.M.convert(s.rawRoute);break;case"FLOWX":a=tQ.m.convert(s.rawRoute);break;case"SEVENK":a=tL.m.convert(s.rawRoute);break;default:throw Error("Unsupported source route")}let c=oN(i.aggregatorFeeRatePercent),u=i.partnerFeeRatePercent?oN(i.partnerFeeRatePercent):void 0,l=i.expectedAmountOut??oL({amountOut:a.amountOut,aggregatorFeeBps:c,partnerFeeBps:u}),_=(o=l,r=(t=i.slippagePercent)?Math.floor(100*t):100,n=BigInt(o)*BigInt(r??100)/BigInt(1e4),(BigInt(o)-n).toString());return{...i,...a,expectedAmountOut:l,minAmountOut:_,aggregatorFeeBps:c,partnerFeeBps:u,pythConnections:i.pythConnections??oj,pythClient:i.pythClient??oK}}oG.toMetaAggregatorBuildTxParams=oq,oG.buildTx=function(e){let t=oq(e);return tB.buildAggregatorSwapTransaction(t)};let o$=async(e,t,o)=>t<=0?e():new Promise((r,a)=>{let n=setTimeout(()=>a(new ow.u(`Timeout ${o??"operation"}`,ow.j.TIMEOUT,{timeout:t})),t);e().then(r).catch(a).finally(()=>clearTimeout(n))}),oV=(e,t,o,r=0)=>{if(t>1e4)throw Error("Slippage must be less than 100%");if(o>1e4)throw Error("Commission must be less than 100%");if(r>1e4)throw Error("Tip must be less than 100%");let a=BigInt(e),n=a*BigInt(r||0)/10000n,i=(a-n)*BigInt(o)/10000n,s=a-n-i;return{tipAmount:n,minAmount:s*BigInt(1e4-t)/10000n,commissionAmount:i,expectedAmount:s.toString(10)}},oY={SEVENK:{},FLOWX:{},CETUS:{}};class oJ{client;jsonRpcClient;providers={};options;constructor(e){this.options={providers:{...oY,...e?.providers},clients:e.clients,slippageBps:e?.slippageBps??100,hermesApi:e?.hermesApi??oE.j.PYTH_URLS,partner:e?.partner??oe.qb,partnerCommissionBps:e?.partnerCommissionBps??0,tipBps:e?.tipBps??0},this.client=e.clients.grpc,this.jsonRpcClient=e.clients.jsonRpc}async getQuoteClient(e){let t=this.providers[e];if(t)return t;let o=this.options.providers[e];switch(ow.u.assert(!!o,`Provider not found: ${e}`,ow.j.PROVIDER_NOT_FOUND,{provider:e}),e){case"SEVENK":{let{Bluefin7kClient:e}=await Promise.resolve().then(__webpack_require__.bind(__webpack_require__,"./src/meta-aggregator/client/bluefin7k-client.ts")).catch(oH("SEVENK"));this.providers.SEVENK=new e(o,this.client);break}case"FLOWX":{let{FlowxClient:e}=await Promise.resolve().then(__webpack_require__.bind(__webpack_require__,"./src/meta-aggregator/client/flowx-client.ts")).catch(oH("FLOWX"));this.providers.FLOWX=new e(o);break}case"CETUS":{let{CetusClient:e}=await Promise.resolve().then(__webpack_require__.bind(__webpack_require__,"./src/meta-aggregator/client/cetus-client.ts")).catch(oH("CETUS"));this.providers.CETUS=new e(o,this.options,this.jsonRpcClient);break}default:throw new ow.u(`Provider not supported: ${e}`,ow.j.PROVIDER_NOT_SUPPORTED,{provider:e})}return this.providers[e]}async getQuoteByClient(e,t){return await o$(async()=>{let o=await e.quote(t);return o?(o.amountOut=oL({amountOut:o.amountOut,partnerFeeBps:this.options.partnerCommissionBps,aggregatorFeeBps:this.options.tipBps}),o):null},t.timeout??2e3,`quote for ${e.kind} provider from ${t.coinTypeIn} to ${t.coinTypeOut}`)}async getQuote(e){let t={...e,coinTypeIn:(0,ot.normalizeStructTag)(e.coinTypeIn),coinTypeOut:(0,ot.normalizeStructTag)(e.coinTypeOut)};return(await Promise.allSettled(Object.entries(this.options.providers).filter(([e,t])=>!t.disabled).map(async([e])=>{let o=await this.getQuoteClient(e);return this.getQuoteByClient(o,t)}))).map(e=>"fulfilled"===e.status?e.value:(console.warn(e.reason),null)).filter(e=>null!==e)}async swap(e){let{quote:t,signer:o,tx:r,coinIn:a,slippageBps:n}=e,i=(0,ot.normalizeSuiAddress)(o);ow.u.assert((0,ot.isValidSuiAddress)(i),`Invalid signer address: ${o}`,ow.j.INVALID_SIGNER_ADDRESS,{signer:o}),r.setSender(i);let s=(n??this.options.slippageBps)/1e4,c=this.options.partner&&this.options.partner!==oe.qb?this.options.partner:void 0,u=c&&this.options.partnerCommissionBps>0?this.options.partnerCommissionBps/1e4:void 0;return tF.buildTx({buildTxParam:{tx:r,inputCoin:a,expectedAmountOut:t.amountOut,slippagePercent:s,aggregatorFeeRatePercent:this.options.tipBps/1e4,aggregatorFeeRecipient:"0xdaf1c8ed29d89cd8f217f609bad0a668fa6f158c12000bfa5f93e670c99e24ff",partnerFeeRatePercent:u,partnerFeeRecipient:c,pythConnections:oE.j.newPythConnections(this.options.hermesApi),pythClient:oE.j.newPythClient(this.jsonRpcClient)},rawRouteParam:{...t}})}}let oH=e=>t=>{throw console.warn(`Please install ${{CETUS:"@cetusprotocol/aggregator-sdk",FLOWX:"@flowx-finance/sdk",SEVENK:"@bluefin-exchange/bluefin7k-aggregator-sdk"}[e]} to use ${e} provider`),t};class oW{sdk;_astrosAggregator;_aftermathAggregator;_sevenkAggregator;_cetusAggregator;_flowXAggregator;constructor(e){this.sdk=e,this._astrosAggregator=new t$({defaultTradeFee:e.options.tradeFee,astrosApiKey:e.options.astrosApiKey},e.suiJsonRpcClient),this._aftermathAggregator=new tq({defaultTradeFee:e.options.tradeFee,aftermathApiKey:e.options.aftermathApiKey,aftermathApiEndpoint:e.options.aftermathApiEndpoint},e.suiJsonRpcClient),this._sevenkAggregator=new tN({defaultTradeFee:e.options.tradeFee,sevenKApiKey:e.options.sevenKApiKey},e.suiClient),this._cetusAggregator=new tW({defaultTradeFee:e.options.tradeFee,cetusApiKey:e.options.cetusApiKey,cetusApiEndpoint:e.options.cetusApiEndpoint,cetusPartnerId:e.options.cetusPartnerId},e.suiJsonRpcClient),this._flowXAggregator=new tZ({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 tX.ASTROS:{let e,r=await this._astrosAggregator.getTradeRoute(t);if(!r)return null;let a=t$.toCommonTradeRoutes(r,t.coinInType,t.coinOutType);if(!a)return null;e=t.tradeFee?t.tradeFee.tradeFeePercent:this.sdk.options.tradeFee.tradeFeePercent,a.amountOut=BigInt(new(tR())(r.amount_out).multipliedBy(1-e).toFixed(0,3)),o={route:a,aggregatorRoute:r};break}case tX.AFTERMATH:{let e=await this._aftermathAggregator.getTradeRoute(t);if(!e)return null;let r=tq.toCommonTradeRoutes(e);if(!r)return null;o={route:r,aggregatorRoute:e};break}case tX.SEVENK:{let e=await this._sevenkAggregator.getTradeRoute(t);if(!e)return null;let r=tN.toCommonTradeRoutes(e);if(!r)return null;o={route:r,aggregatorRoute:e};break}case tX.CETUS:{let e=await this._cetusAggregator.getTradeRoute(t);if(!e)return null;let r=tW.toCommonTradeRoutes(e,t.coinInType,t.coinOutType);if(!r)return null;o={route:r,aggregatorRoute:e};break}case tX.FLOWX:{let e=await this._flowXAggregator.getTradeRoute(t);if(!e)return null;let r=tZ.toCommonTradeRoutes(e);if(!r)return null;o={route:r,aggregatorRoute:e}}}return o}async getTransactionByRoute(e,t){switch(e){case tX.ASTROS:return this._astrosAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case tX.AFTERMATH:return this._aftermathAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage});case tX.SEVENK:return this._sevenkAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case tX.CETUS:return this._cetusAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case tX.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(tX),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(tX),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}}}let oX="0x25fa0eb553dd69fa6a8028f73a38f1df7f289fa88a58ed3d7dc5a5360155bb19",oz="0x8b1a8ac6e34688cd8f8f8e5fefa9d5fb9e1ff74d2f132f8e208ae5ac9cc530bb",oQ="0x13d101f44a0710a5475bec5f492a87b80e03d92d1cf540f26096f65850b23d26";class oZ{sdk;constructor(e){this.sdk=e}async getConfig(){let e=await this.sdk.suiClient.getObject({objectId:oz,include:{json:!0}});t6()(e.object,"Config object not found"),t6()(e.object.json,"Config object has no content");let t=e.object.json,o=t.id.id,r=t.fee_receiver,a=t.tiers.fields.contents,n={};for(let e of a){let t=e.fields.key,o=e.fields.value.fields.duration,r=e.fields.value.fields.amount,a=e.fields.value.fields.point,i=e.fields.value.fields.original_amount;n[t]={duration:BigInt(o),amount:BigInt(r),point:BigInt(a),originalAmount:BigInt(i)}}return{id:o,receiverAddress:r,tiers:n}}async buildPayBoostingTx({walletAddress:e,tierId:t,boostingCoinType:o,currentTx:r}){let a=await this.getConfig();t6()(t in a.tiers,"Invalid tier ID");let n=a.tiers[t].amount,i=r||new tD.Transaction,s=i.splitCoins(i.gas,[i.pure.u64(n)]);i.moveCall({target:`${oX}::boosting::pay`,typeArguments:[(0,ot.normalizeStructTag)(o)],arguments:[i.object(oz),i.pure.u64(t),s]}),i.setSender(e);let c=await t8(this.sdk.suiClient,i,e,0);return ob({inheritTx:i,sender:e,feeAmount:c},this.sdk.suiClient)}async buildAddTierTx({adminAddress:e,tierId:t,duration:o,point:r,originalAmount:a,amount:n,currentTx:i}){let s=i||new tD.Transaction;s.moveCall({target:`${oX}::config::add_tier`,typeArguments:[],arguments:[s.object(oz),s.object(oQ),s.pure.u64(t),s.pure.u64(r),s.pure.u64(o),s.pure.u64(a),s.pure.u64(n)]}),s.setSender(e);let c=await t8(this.sdk.suiClient,s,e,0);return ob({inheritTx:s,sender:e,feeAmount:c},this.sdk.suiClient)}async buildUpdateTierTx({adminAddress:e,tierId:t,duration:o,amount:r,originalAmount:a,point:n,currentTx:i}){let s=i||new tD.Transaction;s.moveCall({target:`${oX}::config::update_tier`,typeArguments:[],arguments:[s.object(oz),s.object(oQ),s.pure.u64(t),s.pure.u64(o),s.pure.u64(r),s.pure.u64(n),s.pure.u64(a)]}),s.setSender(e);let c=await t8(this.sdk.suiClient,s,e,0);return ob({inheritTx:s,sender:e,feeAmount:c},this.sdk.suiClient)}async buildRemoveTierTx({adminAddress:e,tierId:t,currentTx:o}){let r=o||new tD.Transaction;r.moveCall({target:`${oX}::config::remove_tier`,typeArguments:[],arguments:[r.object(oz),r.object(oQ),r.pure.u64(t)]}),r.setSender(e);let a=await t8(this.sdk.suiClient,r,e,0);return ob({inheritTx:r,sender:e,feeAmount:a},this.sdk.suiClient)}async buildUpdateFeeReceiver({adminAddress:e,newReceiverAddress:t,currentTx:o}){let r=o||new tD.Transaction;r.moveCall({target:`${oX}::config::update_fee_receiver`,typeArguments:[],arguments:[r.object(oz),r.object(oQ),r.pure.address(t)]}),r.setSender(e);let a=await t8(this.sdk.suiClient,r,e,0);return ob({inheritTx:r,sender:e,feeAmount:a},this.sdk.suiClient)}async buildPayBoostingWithAdminTx({walletAddress:e,tierId:t,customAmount:o,boostingCoinType:r,currentTx:a}){let n=a||new tD.Transaction,i=n.splitCoins(n.gas,[n.pure.u64(o)]);n.moveCall({target:`${oX}::boosting::pay_with_admin`,typeArguments:[(0,ot.normalizeStructTag)(r)],arguments:[n.object(oQ),n.object(oz),n.pure.u64(t),n.pure.u64(o),i]}),n.setSender(e);let s=await t8(this.sdk.suiClient,n,e,0);return ob({inheritTx:n,sender:e,feeAmount:s},this.sdk.suiClient)}}class o0{sdk;constructor(e){this.sdk=e}async getEstimatedAmountOut(e,t){let{coinInType:o,coinOutType:r}=t;t6()(o!==r,"coinInType and coinOutType must be different"),t6()((0,oe.tC)(o)||(0,oe.tC)(r),"One of coinInType or coinOutType must be SUI");let a=(0,oe.tC)(o);switch(e){case oT.MOONBAGS:if(a)return await eT.getCurveAmountAfterBuy({poolId:t.poolId,suiAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0},this.sdk.suiClient);return await eT.getSuiAmountAfterSell({poolId:t.poolId,curveAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0},this.sdk.suiClient);case oT.BLAST_FUN:if(a)return await eb.getCurveAmountAfterBuy({poolId:t.poolId,suiAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0});return await eb.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;t6()(r!==a,"coinInType and coinOutType must be different"),t6()((0,oe.tC)(r)||(0,oe.tC)(a),"One of coinInType or coinOutType must be SUI");let n=(0,oe.tC)(r);switch(e){case oT.MOONBAGS:o=n?await eS.getBuyTransaction(t,this.sdk.suiClient):await eS.getSellTransaction(t,this.sdk.suiClient);break;case oT.BLAST_FUN:o=n?await eA.getBuyTransaction(t,this.sdk.suiClient):await eA.getSellTransaction(t,this.sdk.suiClient);break;default:throw Error(`Unsupported bonding curve platform: ${e}`)}return o}}let o6={prod:{packageId:"0x3dd678c250a667f1551bc4b9e35fd070896f4775dd2900d5cb2910d2aea0b068",configId:"0x3eb7bd15f61b7cc1a9fd36151e9c3d05aa37bfadb0a58c3a26a6c02c2e99f3ca",adminCapId:"0xf375fcb3d95934143766cab2028ab49441fa04ef2ce27c08c01004c455bcbad4",paymentCoinType:"0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC"},staging:{packageId:"0xa83cd093ce5142649adae10d21fe87d55fa2df4e52a4292c77ba039bb12bfe67",configId:"0x19fb8f91946e58c068fa4238bdd7a531216a0c4dcfaa279a8a02c60cb02f6711",adminCapId:"0xd8139544d054702dfab6de4e9c55f162c8a6f30465935af56cffed99c5e1c2bd",paymentCoinType:"0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC"}};class o4{sdk;constructor(e){this.sdk=e}async getConfig(){let e=await this.sdk.suiClient.getObject({objectId:o6[this.sdk.env].configId,include:{json:!0}});t6()(e.object,"Config object not found"),t6()(e.object.json,"Config object has no content");let t=e.object.json,o=t.id.id,r=t.fee_receiver,a=t.paused,n=t.accepted_payment_type,i=t.plans.fields.contents,s={};for(let e of i){let t=e.fields.key,o=e.fields.value.fields.id,r=e.fields.value.fields.price,a=e.fields.value.fields.month_interval,n=e.fields.value.fields.ptype;s[t]={id:BigInt(o),price:BigInt(r),monthInterval:a,planType:n}}return{id:o,plans:s,feeReceiverWallet:r,paused:a,acceptedPaymentType:n}}async buildSubscribeCyclePlanTx({walletAddress:e,planId:t,reference:o,paymentCoinType:r=o6[this.sdk.env].paymentCoinType,currentTx:a}){let n=await this.getConfig();t6()(!n.paused,"Contract is paused"),t6()(t in n.plans,"Invalid plan ID");let i=n.plans[t],s=i.price*BigInt(i.monthInterval),{tx:c,coinData:u}=await or({account:e,amount:s.toString(),splits:[s.toString()],coinType:r,inheritTx:a},this.sdk.suiClient);c.moveCall({target:`${o6[this.sdk.env].packageId}::subscription::subscribe_cycle_plan`,typeArguments:[r],arguments:[c.object(o6[this.sdk.env].configId),c.pure.u64(t),c.pure.string(o),u]}),c.setSender(e);let l=await t8(this.sdk.suiClient,c,e,0);return ob({inheritTx:c,sender:e,feeAmount:l},this.sdk.suiClient)}async buildBuyMoreCUPlanTx({walletAddress:e,planId:t,reference:o,paidAmount:r,paymentCoinType:a=o6[this.sdk.env].paymentCoinType,currentTx:n}){let i=await this.getConfig();t6()(!i.paused,"Contract is paused"),t6()(t in i.plans,"Invalid plan ID");let{tx:s,coinData:c}=await or({account:e,amount:r.toString(),splits:[r.toString()],coinType:a,inheritTx:n},this.sdk.suiClient);s.moveCall({target:`${o6[this.sdk.env].packageId}::subscription::buy_more_cu`,typeArguments:[a],arguments:[s.object(o6[this.sdk.env].configId),s.pure.u64(t),s.pure.string(o),s.pure.u64(r),c]}),s.setSender(e);let u=await t8(this.sdk.suiClient,s,e,0);return ob({inheritTx:s,sender:e,feeAmount:u},this.sdk.suiClient)}async buildSubscribePlanWithAdminTx({walletAddress:e,planId:t,reference:o,customAmount:r,paymentCoinType:a=o6[this.sdk.env].paymentCoinType,currentTx:n}){let i=await this.getConfig();t6()(!i.paused,"Contract is paused");let{tx:s,coinData:c}=await or({account:e,amount:r.toString(),splits:[r.toString()],coinType:a,inheritTx:n},this.sdk.suiClient);s.moveCall({target:`${o6[this.sdk.env].packageId}::subscription::subscribe_plan_with_admin`,typeArguments:[a],arguments:[s.object(o6[this.sdk.env].adminCapId),s.object(o6[this.sdk.env].configId),s.pure.u64(t),s.pure.string(o),s.pure.u64(r),c]}),s.setSender(e);let u=await t8(this.sdk.suiClient,s,e,0);return ob({inheritTx:s,sender:e,feeAmount:u},this.sdk.suiClient)}async buildAddPlanTx({adminAddress:e,planId:t,planType:o,monthInterval:r,price:a,currentTx:n}){let i=n||new tD.Transaction;i.moveCall({target:`${o6[this.sdk.env].packageId}::config::add_plan`,typeArguments:[],arguments:[i.object(o6[this.sdk.env].configId),i.object(o6[this.sdk.env].adminCapId),i.pure.u64(t),i.pure.u8(o),i.pure.u8(r),i.pure.u64(a)]}),i.setSender(e);let s=await t8(this.sdk.suiClient,i,e,0);return ob({inheritTx:i,sender:e,feeAmount:s},this.sdk.suiClient)}async buildUpdatePlanTx({adminAddress:e,planId:t,planType:o,monthInterval:r,price:a,currentTx:n}){let i=n||new tD.Transaction;i.moveCall({target:`${o6[this.sdk.env].packageId}::config::update_plan`,typeArguments:[],arguments:[i.object(o6[this.sdk.env].configId),i.object(o6[this.sdk.env].adminCapId),i.pure.u64(BigInt(t)),i.pure.u8(o),i.pure.u8(r),i.pure.u64(a)]}),i.setSender(e);let s=await t8(this.sdk.suiClient,i,e,0);return ob({inheritTx:i,sender:e,feeAmount:s},this.sdk.suiClient)}async buildRemovePlanTx({adminAddress:e,planId:t,currentTx:o}){let r=o||new tD.Transaction;r.moveCall({target:`${o6[this.sdk.env].packageId}::config::remove_plan`,typeArguments:[],arguments:[r.object(o6[this.sdk.env].configId),r.object(o6[this.sdk.env].adminCapId),r.pure.u64(BigInt(t))]}),r.setSender(e);let a=await t8(this.sdk.suiClient,r,e,0);return ob({inheritTx:r,sender:e,feeAmount:a},this.sdk.suiClient)}async buildUpdateFeeReceiverWalletTx({adminAddress:e,newFeeReceiverWallet:t,currentTx:o}){let r=o||new tD.Transaction;r.moveCall({target:`${o6[this.sdk.env].packageId}::config::update_fee_receiver`,typeArguments:[],arguments:[r.object(o6[this.sdk.env].configId),r.object(o6[this.sdk.env].adminCapId),r.pure.address(t)]}),r.setSender(e);let a=await t8(this.sdk.suiClient,r,e,0);return ob({inheritTx:r,sender:e,feeAmount:a},this.sdk.suiClient)}async buildSetPausedTx({adminAddress:e,paused:t,currentTx:o}){let r=o||new tD.Transaction;r.moveCall({target:`${o6[this.sdk.env].packageId}::config::set_paused`,typeArguments:[],arguments:[r.object(o6[this.sdk.env].configId),r.object(o6[this.sdk.env].adminCapId),r.pure.bool(t)]}),r.setSender(e);let a=await t8(this.sdk.suiClient,r,e,0);return ob({inheritTx:r,sender:e,feeAmount:a},this.sdk.suiClient)}async buildSetAcceptedPaymentTypeTx({adminAddress:e,paymentCoinType:t,currentTx:o}){let r=o||new tD.Transaction;r.moveCall({target:`${o6[this.sdk.env].packageId}::config::set_accepted_payment_type`,typeArguments:[t],arguments:[r.object(o6[this.sdk.env].configId),r.object(o6[this.sdk.env].adminCapId)]}),r.setSender(e);let a=await t8(this.sdk.suiClient,r,e,0);return ob({inheritTx:r,sender:e,feeAmount:a},this.sdk.suiClient)}}class o1{network;env;_suiClient;boostingModule;subscriptionModule;constructor(e,t="mainnet",o="prod"){this.network=t,this.env=o,this._suiClient=e,this.subscriptionModule=new o4(this),this.boostingModule=new oZ(this)}get suiClient(){return this._suiClient}}let o3={tradeFeePercent:.01,tradeFeeRecipientAddress:"0xdaf1c8ed29d89cd8f217f609bad0a668fa6f158c12000bfa5f93e670c99e24ff"};class o2{network;env;options;_suiGrpcClient;_suiJsonRpcClient;aggregatorModule;curveModule;constructor(e,t="mainnet",o="prod"){this.options=e,this.network=t,this.env=o,this._suiGrpcClient=e.clients.grpc,this._suiJsonRpcClient=e.clients.jsonRpc,this.aggregatorModule=new oW(this),this.curveModule=new o0(this)}get suiClient(){return this._suiGrpcClient}get suiJsonRpcClient(){return this._suiJsonRpcClient}}let o5=require("@mysten/sui/keypairs/ed25519"),o8=.1;class o9{suiClient;constructor(e){this.suiClient=e}validatePrivateKey(e,t){t6()(e?.trim(),"Private key is required");let o=o5.Ed25519Keypair.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){t6()(e?.trim(),"Sender address is required"),t6()(t?.trim(),"Recipient address is required"),t6()(e!==t,"Sender and recipient cannot be the same"),t6()(o>0n,"Transfer amount must be at least 1 MIST");try{let r=new tD.Transaction,[a]=r.splitCoins(r.gas,[o]);r.transferObjects([a],t),r.setSender(e);let{referenceGasPrice:n}=await this.suiClient.getReferenceGasPrice();r.setGasPrice(n);let i=await t8(this.suiClient,r,e,o8);r=await ob({inheritTx:r,sender:e,feeAmount:i,suiInputAmount:o},this.suiClient);let s=await r.build({client:this.suiClient}),c=Buffer.from(s).toString("base64"),u=await r.getDigest();return{sender:e,recipient:t,amountMIST:o,txDraftBase64:c,txDigest:u}}catch(e){throw Error(`Failed to create draft transaction: ${e instanceof Error?e.message:"Unknown error"}`)}}async execute(e,t){try{t6()(e,"Draft transaction is required"),t6()(e.txDraftBase64?.trim(),"Transaction data is required");let o=this.validatePrivateKey(t,e.sender),r=(0,ot.fromBase64)(e.txDraftBase64),{signature:a}=await o.signTransaction(r),n=await this.suiClient.executeTransaction({transaction:r,signatures:[a],include:{effects:!0}}),i="Transaction"===n.$kind?n.Transaction:n.FailedTransaction,{status:s}=i;return{success:s.success,txDigest:i.digest,effects:i.effects,error:s.success?void 0:s.error.message}}catch(e){return{success:!1,error:e instanceof Error?e.message:"Unknown error occurred"}}}async getTransactionStatus(e){t6()(e?.trim(),"Transaction digest is required");try{let t=await this.suiClient.getTransaction({digest:e,include:{effects:!0}}),o="Transaction"===t.$kind?t.Transaction:t.FailedTransaction;if(!o.effects?.status)return"pending";return o.effects.status.success?"success":"failure"}catch(e){if(e instanceof Error&&(e.message.includes("not found")||e.message.includes("Could not find")))return"pending";return"failure"}}}})(),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.Bluefin7kClient=__webpack_exports__.Bluefin7kClient,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.CetusClient=__webpack_exports__.CetusClient,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.FlowxClient=__webpack_exports__.FlowxClient,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.MetaAgError=__webpack_exports__.MetaAgError,exports.MetaAgErrorCode=__webpack_exports__.MetaAgErrorCode,exports.MetaAggregator=__webpack_exports__.MetaAggregator,exports.MetaClient=__webpack_exports__.MetaClient,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_ADDRESS_ZERO=__webpack_exports__.SUI_ADDRESS_ZERO,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.SuiGrpcClient=__webpack_exports__.SuiGrpcClient,exports.SuiJsonRpcClient=__webpack_exports__.SuiJsonRpcClient,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.addGasFee=__webpack_exports__.addGasFee,exports.checkIsSui=__webpack_exports__.checkIsSui,exports.denormalizeTokenType=__webpack_exports__.denormalizeTokenType,exports.getAmountAfterFee=__webpack_exports__.getAmountAfterFee,exports.getCoinObjectIdsByAmount=__webpack_exports__.getCoinObjectIdsByAmount,exports.getExpectedReturn=__webpack_exports__.getExpectedReturn,exports.getGrpcFullnodeUrl=__webpack_exports__.getGrpcFullnodeUrl,exports.getJsonRpcFullnodeUrl=__webpack_exports__.getJsonRpcFullnodeUrl,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.getTransactionResultDigest=__webpack_exports__.getTransactionResultDigest,exports.isSuiCoinType=__webpack_exports__.isSuiCoinType,exports.normalizeTokenType=__webpack_exports__.normalizeTokenType,exports.splitSuiCoinAfterFeeFromBuyTx=__webpack_exports__.splitSuiCoinAfterFeeFromBuyTx,exports.splitSuiCoinAfterFeeFromSellTx=__webpack_exports__.splitSuiCoinAfterFeeFromSellTx,exports.timeout=__webpack_exports__.timeout,__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","Bluefin7kClient","BluefinClmm","BluefinTx","BluemoveCpmm","Bolt","BoostingModule","Bps","CLOCK_OBJECT_ID","CONFIG_ID","CetusAggregator","CetusAggregatorConverter","CetusClient","CetusClmm","CetusDlmm","CurveModule","DEFAULT_TRADE_FEE","DeepbookV3","DipCpmm","DraftTransferTx","FerraClmm","FerraDlmm","FlowXAggregator","FlowXAggregatorConverter","FlowxClient","FlowxCpmm","FullsailClmm","HaedalLsdWal","KriyaClmm","MagmaAlmm","MagmaClmm","MathUtils","MetaAgError","MetaAgErrorCode","MetaAggregator","MetaClient","Metastable","MomentumClmm","MoonbagsCalculation","MoonbagsConstants","MoonbagsPackage","MoonbagsTransaction","Movepump","NATIVE_USDC_TOKEN_TYPE","NoodlesPaySdk","NoodlesSdk","Obric","PythPrice","PythUtils","RouterUtils","SUBSCRIPTION_CONFIG","SUI_ADDRESS_ZERO","SUI_FULL_TYPE","SUI_METADATA_OBJECT_ID","SUI_TYPE","Scallop","SevenKAggregator","SevenKAggregatorConverter","SevenkCpmm","SevenkFun","SrmCpmm","Steamm","SubscriptionModule","SuiGrpcClient","SuiJsonRpcClient","SupportedAggregator","SupportedBondingCurve","TradeFeeOptions","TradeportClmm","TurbosClmm","TurbosFun","USDC_TOKEN_TYPE","Volo","Walrus","addGasFee","checkIsSui","denormalizeTokenType","getAmountAfterFee","getCoinObjectIdsByAmount","getExpectedReturn","getGrpcFullnodeUrl","getJsonRpcFullnodeUrl","getMemezPumpSDK","getMoveObject","getMoveObjectContent","getNeededGasFee","getSplitCoinForTx","getSplitCoinsAfterFee","getTransactionResultDigest","isSuiCoinType","normalizeTokenType","splitSuiCoinAfterFeeFromBuyTx","splitSuiCoinAfterFeeFromSellTx","timeout"].indexOf(__rspack_i)&&(exports[__rspack_i]=__webpack_exports__[__rspack_i]);Object.defineProperty(exports,"__esModule",{value:!0});
package/dist/index.d.ts CHANGED
@@ -1797,8 +1797,8 @@ export declare namespace MoonbagsPackage {
1797
1797
  };
1798
1798
  virtual_sui_reserves: string;
1799
1799
  virtual_token_reserves: string;
1800
- remain_token_reserves: MoveObjectStruct<BalanceContent>;
1801
- real_sui_reserves: MoveObjectStruct<BalanceContent>;
1800
+ remain_token_reserves: BalanceContent | MoveObjectStruct<BalanceContent>;
1801
+ real_sui_reserves: BalanceContent | MoveObjectStruct<BalanceContent>;
1802
1802
  };
1803
1803
  export type DynamicVirtualTokenReserves = {
1804
1804
  id: {
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- let e;import{__webpack_require__ as t}from"./0~rslib-runtime.js";import{BluefinXTx as o,Config as r,buildTx as a,getQuote as n}from"@bluefin-exchange/bluefin7k-aggregator-sdk";import{Transaction as i}from"@mysten/sui/transactions";import s from"bignumber.js";import c from"@minswap/tiny-invariant";import{SUI_CLOCK_OBJECT_ID as u,SUI_SYSTEM_STATE_OBJECT_ID as l,fromBase64 as d,isValidSuiAddress as p,normalizeStructTag as _,normalizeSuiAddress as m,parseStructTag as f,toHex as g}from"@mysten/sui/utils";import{Aftermath as A,AftermathApi as b,Helpers as I}from"aftermath-ts-sdk";import{AFSUI as T,AFTERMATH as C,ALPHAFI as O,AggregatorClient as M,BLUEFIN as E,BLUEMOVE as h,CETUS as y,CETUSDLMM as S,DEEPBOOKV3 as F,Env as P,FERRACLMM as B,FERRADLMM as w,FLOWXV2 as R,FLOWXV3 as D,FULLSAIL as x,HAEDAL as L,HAEDALHMMV2 as v,HAEDALPMM as k,HAWAL as N,KRIYA as U,KRIYAV3 as j,MAGMA as G,METASTABLE as K,MOMENTUM as q,OBRIC as $,SCALLOP as Y,SEVENK as V,SPRINGSUI as J,STEAMM as H,STEAMM_OMM as X,STEAMM_OMM_V2 as W,SUILEND as z,TURBOS as Q,VOLO as Z}from"@cetusprotocol/aggregator-sdk";import ee from"bn.js";import{AggregatorQuoter as et,Coin as eo,Commission as er,CommissionType as ea,Protocol as en,TradeBuilder as ei}from"@flowx-finance/sdk";import{bcs as es}from"@mysten/sui/bcs";import{Network as ec}from"@interest-protocol/sui-core-sdk";import{Ed25519Keypair as eu}from"@mysten/sui/keypairs/ed25519";import{SuiJsonRpcClient as el,getJsonRpcFullnodeUrl as ed}from"@mysten/sui/jsonRpc";import{SuiPriceServiceConnection as ep,SuiPythClient as e_}from"@pythnetwork/pyth-sui-js";import{getAmountAfterFee as em,getSplitCoinForTx as ef,CLOCK_OBJECT_ID as eg,SUI_METADATA_OBJECT_ID as eA,SUI_TYPE as eb,isSuiCoinType as eI,getNeededGasFee as eT,addGasFee as eC,SUI_ADDRESS_ZERO as eO,getSplitCoinsAfterFee as eM,SUI_FULL_TYPE as eE}from"./832.js";var eh,ey,eS,eF,eP,eB,ew,eR,eD,ex,eL,ev,ek,eN,eU,ej,eG,eK,eq,e$,eY,eV,eJ,eH,eX,eW,ez,eQ,eZ,e0,e1,e4,e6,e3,e2,e5,e8,e9,e7,te,tt,to,tr,ta,tn,ti,ts,tc,tu,tl,td,tp,t_,tm,tf,tg,tA,tb,tI,tT,tC,tO,tM,tE,th,ty,tS,tF,tP,tB,tw,tR,tD,tx,tL,tv,tk,tN,tU,tj,tG,tK,tq,t$,tY,tV,tJ,tH,tX,tW,tz,tQ,tZ,t0,t1,t4,t6,t3,t2,t5,t8,t9,t7,oe,ot,oo,or,oa,on,oi,os,oc,ou,ol,od,op,o_,om,of,og,oA,ob,oI,oT,oC,oO,oM,oE,oh,oy,oS,oF,oP,oB,ow,oR,oD,ox,oL,ov,ok,oN,oU,oj,oG,oK,oq,o$,oY,oV,oJ,oH,oX,oW,oz,oQ,oZ,o0,o1,o4,o6,o3,o2,o5,o8,o9,o7,re={};t.r(re),t.d(re,{Bluefin7kClient:()=>rU});var rt={};t.r(rt),t.d(rt,{CetusClient:()=>rG});var ro={};function rr(e){return e===eb?eE:e}function ra(e){return e===eE?eb:e}function rn(e){return e===eE||e===eb}t.r(ro),t.d(ro,{FlowxClient:()=>rK}),(eh=tD||(tD={})).MAX_AMOUNT_IN="18446744073709551615",eh.LAST_PACKAGE_ID="0x7e57926855b32baa3b3cabed89380b8d415606fdedadc18e58bd1ef1e60aee48",eh.openSwap=function(e){let{tx:t,expectedAmountOut:o,minAmountOut:r,coinInType:a,coinOutType:n,inputCoin:i,aggregatorFeeBps:s,aggregatorFeeRecipient:c,partnerFeeRecipient:u,partnerFeeBps:l}=e,[d]=t.moveCall({target:`${eh.LAST_PACKAGE_ID}::aggregator::open_swap`,typeArguments:[a,n],arguments:[t.pure.u64(o),t.pure.u64(r),i,t.pure.u32(s),t.pure.address(c),t.pure.u32(l??0),t.pure.option("address",u)]});return d},eh.closeSwap=function(e){let{tx:t,coinOutType:o,swapSession:r}=e,[a]=t.moveCall({target:`${eh.LAST_PACKAGE_ID}::aggregator::close_swap`,typeArguments:[o],arguments:[r]});return a};var ri=((ey={}).AFTERMATH_CPMM="aftermath_cpmm",ey.AFTERMATH_LSD="aftermath_lsd",ey.ALPHAFI_LSD="alphafi_lsd",ey.BLASTFUN="blastfun",ey.BLUEFIN_CLMM="bluefin_clmm",ey.BLUEMOVE_CPMM="bluemove_cpmm",ey.BOLT="bolt",ey.CETUS_CLMM="cetus_clmm",ey.CETUS_DLMM="cetus_dlmm",ey.DEEPBOOK_V3="deepbook_v3",ey.DIP_CPMM="dip_cpmm",ey.FLOWX_CPMM="flowx_cpmm",ey.FLOWX_CLMM="flowx_clmm",ey.FULLSAIL_CLMM="fullsail_clmm",ey.FERRA_CLMM="ferra_clmm",ey.FERRA_DLMM="ferra_dlmm",ey.HAEDAL_CPMM="haedal_cpmm",ey.HAEDAL_CPMM_V2="haedal_cpmm_v2",ey.HAEDAL_LSD="haedal_lsd",ey.HAEDAL_LSD_WAL="haedal_lsd_wal",ey.KRIYA_CLMM="kriya_clmm",ey.KRIYA_CPMM="kriya_cpmm",ey.MAGMA_ALMM="magma_almm",ey.MAGMA_CLMM="magma_clmm",ey.METASTABLE="metastable",ey.MOMENTUM_CLMM="momentum_clmm",ey.MOVEPUMP="movepump",ey.OBRIC="obric",ey.SCALLOP="scallop",ey.SEVENK_CPMM="sevenk_cpmm",ey.SEVENK_FUN="sevenk_fun",ey.SPRINGSUI="springsui",ey.SRM_CPMM="srm_cpmm",ey.STEAMM_CPMM="steamm_cpmm",ey.SUISWAP_CPMM="suiswap_cpmm",ey.STEAMM_OMM="steamm_omm",ey.STEAMM_OMM_V2="steamm_omm_v2",ey.TRADEPORT_CLMM="tradeport_clmm",ey.TURBOS_CLMM="turbos_clmm",ey.TURBOS_FUN="turbos_fun",ey.VOLO="volo",ey);function rs(e,t){console.error(`NOODLES_SDK_AGGREGATOR_ROUTE_ERROR aggregator=${e} error=${function(e){if(e instanceof Error)return`${e.name}: ${e.message}`;if("string"==typeof e)return e;try{return JSON.stringify(e)}catch{return String(e)}}(t)}`)}!function(e){let t=new Set(["bluefinx","RFQ"]);e.SUPPORTED_PROTOCOLS=["suiswap","turbos","cetus","bluemove","kriya","kriya_v3","aftermath","deepbook_v3","flowx","flowx_v3","bluefin","springsui","obric","stsui","steamm","steamm_oracle_quoter","steamm_oracle_quoter_v2","magma","haedal_pmm","momentum","sevenk_v1","fullsail","cetus_dlmm","ferra_dlmm","ferra_clmm"];let o={aftermath:e=>{c(e.extra?.poolStructTag,"Aftermath protocol requires poolStructTag");let[t]=i(e.extra.poolStructTag);return{...n(e),protocol:ri.AFTERMATH_CPMM,coinLpType:t}},flowx_v3:e=>{c(e.extra?.swapFeeRate,"flowx_v3 protocol requires swapFeeRate");let t=e.extra.swapFeeRate;return{...n(e),protocol:ri.FLOWX_CLMM,poolFeeRate:t}},turbos:e=>{c(e.extra?.poolStructTag,"turbos protocol requires poolStructTag");let[t,o,r]=i(e.extra.poolStructTag);return{...n(e),protocol:ri.TURBOS_CLMM,coinFeeType:r}},obric:e=>(c(e.extra?.oracles,"obric protocol requires oracles"),{...n(e),protocol:ri.OBRIC,pythPriceFeedIdA:s(e.extra.oracles[0]),pythPriceFeedIdB:s(e.extra.oracles[1])}),haedal_pmm:e=>(c(e.extra.oracles,"haedal_pmm protocol requires oracles"),{...n(e),protocol:ri.HAEDAL_CPMM,pythPriceFeedIdA:s(e.extra.oracles[0]),pythPriceFeedIdB:s(e.extra.oracles[1])}),sevenk_v1:e=>{c(e.extra?.poolStructTag,"sevenk_v1 protocol requires poolStructTag"),c(e.extra?.oracleConfigX,"sevenk_v1 protocol requires oracleConfigX"),c(e.extra?.oracleConfigY,"sevenk_v1 protocol requires oracleConfigY");let t=e.extra.oracles?.[0]?.Pyth?.bytes,o=e.extra.oracles?.[1]?.Pyth?.bytes;c(t,"sevenk_v1 protocol requires pythPriceFeedIdA"),c(o,"sevenk_v1 protocol requires pythPriceFeedIdB");let[r,a,s]=i(e.extra.poolStructTag);return{...n(e),protocol:ri.SEVENK_CPMM,coinLpType:s,pythPriceFeedIdA:t,pythPriceFeedIdB:o,oracleConfigA:e.extra.oracleConfigX,oracleConfigB:e.extra.oracleConfigY}},steamm:e=>{c(e.extra?.poolStructTag,"steamm protocol requires poolStructTag"),c(e.extra?.bankAStructTag,"steamm protocol requires bankAStructTag"),c(e.extra?.lendingMarketA,"steamm protocol requires lendingMarketA"),c(e.extra?.bankA,"steamm protocol requires bankA"),c(e.extra?.bankB,"steamm protocol requires bankB");let[t,o,r,a]=i(e.extra.poolStructTag),[s,u,l]=i(e.extra.bankAStructTag);return{...n(e),protocol:ri.STEAMM_CPMM,bankAId:e.extra.bankA,bankBId:e.extra.bankB,lendingMarketId:e.extra.lendingMarketA,lendingMarketType:s,bCoinAType:t,bCoinBType:o,lpBCoinType:a}},steamm_oracle_quoter:e=>{c(e.extra?.poolStructTag,"steamm_oracle_quoter protocol requires poolStructTag"),c(e.extra?.bankAStructTag,"steamm_oracle_quoter protocol requires bankAStructTag"),c(e.extra?.lendingMarketA,"steamm_oracle_quoter protocol requires lendingMarketA"),c(e.extra?.oracleRegistry,"steamm_oracle_quoter protocol requires oracleRegistry"),c(e.extra?.bankA,"steamm_oracle_quoter protocol requires bankA"),c(e.extra?.bankB,"steamm_oracle_quoter protocol requires bankB"),c(e.extra?.oracleIndexes,"steamm_oracle_quoter protocol requires oracleIndexes"),c(e.extra?.oracles,"steamm_oracle_quoter protocol requires oracles");let[t,o,r,a]=i(e.extra?.poolStructTag),[u,l,d]=i(e.extra.bankAStructTag),[p,_]=e.extra.oracleIndexes;return{...n(e),protocol:ri.STEAMM_OMM,bankAId:e.extra.bankA,bankBId:e.extra.bankB,lendingMarketId:e.extra.lendingMarketA,lendingMarketType:u,bCoinAType:t,bCoinBType:o,lpBCoinType:a,pythPriceFeedIdA:s(e.extra.oracles[0]),pythPriceFeedIdB:s(e.extra.oracles[1]),oracleRegistryId:e.extra.oracleRegistry,oracleIndexA:p,oracleIndexB:_}},steamm_oracle_quoter_v2:e=>{c(e.extra?.poolStructTag,"steamm_oracle_quoter_v2 protocol requires poolStructTag"),c(e.extra?.bankAStructTag,"steamm_oracle_quoter_v2 protocol requires bankAStructTag"),c(e.extra?.lendingMarketA,"steamm_oracle_quoter_v2 protocol requires lendingMarketA"),c(e.extra?.oracleRegistry,"steamm_oracle_quoter_v2 protocol requires oracleRegistry"),c(e.extra?.bankA,"steamm_oracle_quoter_v2 protocol requires bankA"),c(e.extra?.bankB,"steamm_oracle_quoter_v2 protocol requires bankB"),c(e.extra?.oracleIndexes,"steamm_oracle_quoter_v2 protocol requires oracleIndexes"),c(e.extra?.oracles,"steamm_oracle_quoter_v2 protocol requires oracles");let[t,o,r,a]=i(e.extra?.poolStructTag),[u,l,d]=i(e.extra.bankAStructTag),[p,_]=e.extra.oracleIndexes;return{...n(e),protocol:ri.STEAMM_OMM_V2,bankAId:e.extra.bankA,bankBId:e.extra.bankB,lendingMarketId:e.extra.lendingMarketA,lendingMarketType:u,bCoinAType:t,bCoinBType:o,lpBCoinType:a,pythPriceFeedIdA:s(e.extra.oracles[0]),pythPriceFeedIdB:s(e.extra.oracles[1]),oracleRegistryId:e.extra.oracleRegistry,oracleIndexA:p,oracleIndexB:_}},cetus:e=>({...n(e),protocol:ri.CETUS_CLMM}),bluemove:e=>({...n(e),protocol:ri.BLUEMOVE_CPMM}),kriya:e=>({...n(e),protocol:ri.KRIYA_CPMM}),kriya_v3:e=>({...n(e),protocol:ri.KRIYA_CLMM}),deepbook_v3:e=>({...n(e),protocol:ri.DEEPBOOK_V3}),flowx:e=>({...n(e),protocol:ri.FLOWX_CPMM}),bluefin:e=>({...n(e),protocol:ri.BLUEFIN_CLMM}),springsui:e=>({...n(e),protocol:ri.SPRINGSUI}),magma:e=>({...n(e),protocol:ri.MAGMA_CLMM}),momentum:e=>({...n(e),protocol:ri.MOMENTUM_CLMM}),fullsail:e=>({...n(e),protocol:ri.FULLSAIL_CLMM}),stsui:e=>({...n(e),protocol:ri.ALPHAFI_LSD}),suiswap:e=>({...n(e),protocol:ri.SUISWAP_CPMM}),cetus_dlmm:e=>({...n(e),protocol:ri.CETUS_DLMM}),ferra_dlmm:e=>({...n(e),protocol:ri.FERRA_DLMM}),ferra_clmm:e=>({...n(e),protocol:ri.FERRA_CLMM})};function r(e){let r=e.pool.type;if(t.has(r))throw Error(`Unsupported SourceDex: ${r}`);return(0,o[r])(e)}function a(e){let t=new Map;for(let[o,r]of e.entries())t.set(r.assetIn,o);let o=e.map(r);for(let e of t.values())o[e].amountIn=tD.MAX_AMOUNT_IN;return o}function n(e){return{poolId:e.poolId,coinInType:e.assetIn,coinOutType:e.assetOut,amountIn:e.amount,aToB:e.swapXtoY}}function i(e){return f(e||"").typeParams.map(_)}function s(e){let t=e?.Pyth?.bytes||e?.Pyth?.price_identifier?.bytes;return c(t,"Pyth price feed id is not found"),"0x"+g(Uint8Array.from(t))}e.toMetaAggregatorPath=r,e.toMetaAggregatorPaths=a,e.convert=function(e){var t,o,r;let n;c(e.routes,"Invalid raw route: routes is missing");let i=(t=e.routes,n={},t.forEach(e=>{e.hops.forEach(e=>{n[e.poolId]=e.pool})}),n),s=a((o=e.swaps,r=i,o.map(e=>{let t=r[e.poolId],o=ra(e.assetIn),a=ra(e.assetOut),n={type:ra(t?.allTokens?.[0]?.address),decimals:t?.allTokens?.[0]?.decimal},i={type:ra(t?.allTokens?.[1]?.address),decimals:t?.allTokens?.[0]?.decimal},s=o===n.type;return{...e,pool:t,assetIn:o,assetOut:a,coinX:n,coinY:i,swapXtoY:s}})));return{coinInType:e.tokenIn,coinOutType:e.tokenOut,amountOut:e.returnAmountWithDecimal,tradePaths:s}}}(tx||(tx={}));class rc{_config;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:a,metaAggregator:i,supportedProtocols:s}){try{this._config.sevenKApiKey&&r.setApiKey(this._config.sevenKApiKey);let c=a?a.tradeFeePercent:this._config.defaultTradeFee.tradeFeePercent,u=s??(i?tx.SUPPORTED_PROTOCOLS:void 0);return await n({tokenIn:t,tokenOut:o,amountIn:e.toString(),commissionBps:1e4*c,sources:u})}catch(e){return rs("sevenk",e),null}}async getTransaction({walletAddress:e,completeRoute:t,slippage:r,tradeFee:n}){let s,c;n?(s=n.tradeFeePercent,c=n.tradeFeeRecipientAddress):(s=this._config.defaultTradeFee.tradeFeePercent,c=this._config.defaultTradeFee.tradeFeeRecipientAddress);let u=await a({quoteResponse:t,slippage:r,accountAddress:e,commission:{partner:c,commissionBps:1e4*s}});return u.tx instanceof o?i.from(u.tx.txBytes).build({client:this._suiClient}):(u.tx.setSender(e),u.tx.build({client:this._suiClient}))}}function ru(e){return"bigint"==typeof e?e:"string"==typeof e&&/^\d+$/.test(e)?BigInt(e):e}function rl(e){return{...e,coinIn:e.coinIn?{...e.coinIn,amount:ru(e.coinIn.amount),tradeFee:ru(e.coinIn.tradeFee)}:e.coinIn,coinOut:e.coinOut?{...e.coinOut,amount:ru(e.coinOut.amount),tradeFee:ru(e.coinOut.tradeFee)}:e.coinOut}}(rc||(rc={})).toCommonTradeRoutes=function(e){let t=[];if(!e.routes||0===e.routes.length)return null;for(let o of e.routes){let e=[],r={};for(let t of o.hops){for(let e of t.pool.allTokens)r[e.address]=e.decimal;let o=r[t.tokenIn]??0,a=r[t.tokenOut]??0,n=BigInt(new s(t.tokenInAmount).multipliedBy(10**o).toFixed(0,3)),i=BigInt(new s(t.tokenOutAmount).multipliedBy(10**a).toFixed(0,3));e.push({poolAddress:t.poolId,coinIn:t.tokenIn,coinOut:t.tokenOut,amountIn:n,amountOut:i})}if(0===e.length)continue;let a=r[o.tokenIn]??0,n=r[o.tokenOut]??0,i=BigInt(new s(o.tokenInAmount).multipliedBy(10**a).toFixed(0,3)),c=BigInt(new s(o.tokenOutAmount).multipliedBy(10**n).toFixed(0,3));t.push({paths:e,coinIn:o.tokenIn,coinOut:o.tokenOut,amountIn:i,amountOut:c})}return 0===t.length?null:{coinIn:e.tokenIn,coinOut:e.tokenOut,amountIn:BigInt(e.swapAmountWithDecimal),amountOut:BigInt(e.returnAmountAfterCommissionWithDecimal),routes:t}};class rd{_config;_aftermathClient;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}async aftermathClient(){if(this._aftermathClient)return this._aftermathClient;let e=new A(this._config.aftermathApiEndpoint?this._config.aftermathApiEndpoint:"MAINNET"),t=await e.getAddresses();if(this._aftermathClient=new A(this._config.aftermathApiEndpoint??"MAINNET",new b(this._suiClient,t)),this._config.aftermathApiKey){let e=I.keypairFromPrivateKey(this._config.aftermathApiKey);await this._aftermathClient.Auth().init({async signMessageCallback({message:t}){let{signature:o}=await e.signPersonalMessage(t);return{signature:o}},walletAddress:e.toSuiAddress()})}return this._aftermathClient}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r}){try{let a;a=r?{recipient:r.tradeFeeRecipientAddress,feePercentage:r.tradeFeePercent}:{recipient:this._config.defaultTradeFee.tradeFeeRecipientAddress,feePercentage:this._config.defaultTradeFee.tradeFeePercent};let n=await this.aftermathClient();return await n.Router().getCompleteTradeRouteGivenAmountIn({coinInAmount:e,coinInType:t,coinOutType:o,externalFee:a})}catch(e){return rs("aftermath",e),null}}async getTransaction({completeRoute:e,walletAddress:t,slippage:o}){let r=await this.aftermathClient(),a=await r.Router().getTransactionForCompleteTradeRoute({completeRoute:function(e){if("object"!=typeof e||null===e)return e;let t=rl(e);return{...t,routes:Array.isArray(t.routes)?t.routes.map(e=>{let t=rl(e);return{...t,portion:ru(t.portion),paths:Array.isArray(t.paths)?t.paths.map(e=>rl(e)):t.paths}}):t.routes,feeBreakdown:Array.isArray(t.feeBreakdown)?t.feeBreakdown.map(e=>({...e,amount:ru(e.amount)})):t.feeBreakdown}}(e),walletAddress:t,slippage:o,isSponsoredTx:!1});return a.setSender(t),a.build({client:this._suiClient})}}(rd||(rd={})).toCommonTradeRoutes=function(e){if(0===e.routes.length)return null;let t=[];for(let o of e.routes){let e=[];for(let t of o.paths)e.push({poolAddress:t.poolId,coinIn:t.coinIn.type,coinOut:t.coinOut.type,amountIn:BigInt(t.coinIn.amount),amountOut:BigInt(t.coinOut.amount)});0!==e.length&&t.push({paths:e,coinIn:o.coinIn.type,coinOut:o.coinOut.type,amountIn:o.coinIn.amount,amountOut:o.coinOut.amount})}return 0===t.length?null:{coinIn:e.coinIn.type,coinOut:e.coinOut.type,amountIn:e.coinIn.amount,amountOut:e.coinOut.amount,routes:t}};class rp{_config;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r}){try{let a;a=r?{fee:1e4*r.tradeFeePercent,receiverAddress:r.tradeFeeRecipientAddress}:{fee:1e4*this._config.defaultTradeFee.tradeFeePercent,receiverAddress:this._config.defaultTradeFee.tradeFeeRecipientAddress};let{getQuote:n}=await import("@naviprotocol/astros-aggregator-sdk");return await n(t,o,e,this._config.astrosApiKey,{byAmountIn:!0,serviceFee:a})}catch(e){return rs("astros",e),null}}returnMergedCoins(e,t,o){if(t.length<2)return e.object(t[0].coinObjectId);let r=0,a=[];t.sort((e,t)=>Number(t.balance)-Number(e.balance)).slice(1).forEach(e=>{r>=o||(r+=Number(e.balance),a.push(e.coinObjectId))});let n=t[0].coinObjectId;return e.mergeCoins(n,a),e.object(n)}async getTransaction({completeRoute:e,walletAddress:t,slippage:o,tradeFee:r}){var a;let n,c;n=r?{fee:r.tradeFeePercent,receiverAddress:r.tradeFeeRecipientAddress}:{fee:this._config.defaultTradeFee.tradeFeePercent,receiverAddress:this._config.defaultTradeFee.tradeFeeRecipientAddress};let u=new s(e.amount_out).multipliedBy(1-o-n.fee).toNumber(),l=new i,{buildSwapPTBFromQuote:d,getCoins:p}=await import("@naviprotocol/astros-aggregator-sdk"),_=this._suiClient;if("0x2::sui::SUI"===(a=e.from)||"0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI"===a)c=l.splitCoins(l.gas,[l.pure.u64(e.amount_in)]);else{let o=await p(_,t,e.from),r=this.returnMergedCoins(l,o.data,Number.parseFloat(e.amount_in));c=l.splitCoins(r,[l.pure.u64(e.amount_in)])}let m=await d(t,l,u,c,e,void 0,!1,this._config.astrosApiKey,{serviceFee:n});return l.transferObjects([m],t),l.setSender(t),l.build({client:this._suiClient})}}(rp||(rp={})).toCommonTradeRoutes=function(e,t,o){if(0===e.routes.length)return null;let r=[];for(let t of e.routes){let e=[];for(let o of t.path)e.push({poolAddress:o.id,coinIn:o.from,coinOut:o.target,amountIn:BigInt(o.amount_in),amountOut:BigInt(o.amount_out)});0!==e.length&&r.push({amountIn:BigInt(t.amount_in),amountOut:BigInt(t.amount_out),coinIn:e[0].coinIn,coinOut:e[e.length-1].coinOut,paths:e})}return 0===r.length?null:{coinIn:t,coinOut:o,amountIn:BigInt(e.amount_in),amountOut:BigInt(e.amount_out),routes:r}},(tL||(tL={})).equals=function(e,t){return e.tradeFeePercent===t.tradeFeePercent&&e.tradeFeeRecipientAddress===t.tradeFeeRecipientAddress},(eS=tv||(tv={})).UNIVERSAL_META_VAULT_INTEGRATION_PACKAGE_ID="0xfd12517a9fc87c6a1f2357ad13b3421fb27a8bd7ca07d5fd5934ac35733baa47",(eF=eS.MetaCoinType||(eS.MetaCoinType={})).SUPER_SUI="0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI",eF.MUSD="0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD",eF.METH="0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH",eS.VERSION_OBJ_ID="0x4696559327b35ff2ab26904e7426a1646312e9c836d5c6cff6709a5ccc30915c",eS.createCap=function(e){let t,{txb:o,coinType:r,metaCoin:a,createCapAllTypeParams:n,whitelistedAppId:i,poolId:s,pythInfoObjectIdMap:l,createCapPackageId:d,createCapModule:p,createCapFunc:_}=e,m=[a.toString()];switch(n&&m.push(r),e.metaCoin){case"0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI":t=[o.object(i),o.object(s),o.object(e.registryId)];break;case"0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD":{let r=l.get(e.pythPriceFeedIdMeta);c(r,"Not found priceMetaId in pythObjectIdMap"),t=[o.object(i),o.object(s),o.object(r),o.object(u)];break}case"0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH":{let r=l.get(e.pythPriceFeedIdMeta);c(r,"Not found priceId in pythObjectIdMap");let a=l.get(e.pythPriceFeedIdEth);c(a,"Not found priceEthFeedId in pythObjectIdMap"),t=[o.object(i),o.object(s),o.object(r),o.object(a),o.object(u)];break}default:throw Error("Invalid MetaCoin: "+a.toString())}return o.moveCall({target:`${d}::${p}::${_}`,typeArguments:m,arguments:t})},eS.getCreateCapModule=function(e){switch(e){case"0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI":return"exchange_rate";case"0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD":case"0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH":return"pyth";default:throw Error("Invalid MetaCoin: "+e)}},eS.isMetaCoinType=function(e){return Object.values(eS.MetaCoinType).map(e=>e.toString()).includes(e)},eS.getCreateCapAllTypeParams=function(e,t){switch(e){case"0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI":return t===eS.UNIVERSAL_META_VAULT_INTEGRATION_PACKAGE_ID;case"0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD":case"0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH":return!0;default:throw Error("Invalid MetaCoin: "+e)}},function(e){let t=[y,U,R,D,j,Q,C,L,Z,T,h,F,Y,z,E,k,O,J,H,K,$,N,X,q,W,G,V,v,x,S,w,B];e.SUPPORTED_PROTOCOLS=[...t];let o=new Set(t),r=e=>({poolId:e.id,coinInType:e.from,coinOutType:e.target,aToB:e.direction,amountIn:e.amountIn});function a(t){if(!o.has(t.provider))throw Error(`Unsupported or unknown provider: ${t.provider} for pool ${t.id}`);return(0,e.TO_META_AGGREGATOR_PATH_FN_MAP[t.provider])(t)}function n(e){let t=new Map;for(let[o,r]of e.paths.entries())t.set(r.from,o);let o=[];for(let r=0;r<e.paths.length;r++){let n=e.paths[r],i=a(n);t.get(n.from)===r&&(i.amountIn=tD.MAX_AMOUNT_IN),o.push(i)}return o}e.TO_META_AGGREGATOR_PATH_FN_MAP={[K]:e=>{let t=r(e),o=e.extendedDetails,a=e.direction?e.target:e.from;c(o&&void 0!==o.metastable_create_cap_pkg_id&&void 0!==o.metastable_create_cap_module&&void 0!==o.metastable_create_cap_all_type_params&&void 0!==o.metastable_whitelisted_app_id,`METASTABLE missing required extendedDetails for pool ${e.id}.`);let n={createCapPackageId:o.metastable_create_cap_pkg_id,createCapModule:o.metastable_create_cap_module,createCapAllTypeParams:o.metastable_create_cap_all_type_params,whitelistedAppId:o.metastable_whitelisted_app_id};switch(a){case tv.MetaCoinType.SUPER_SUI:return c(o.metastable_registry_id,`METASTABLE_SUPER_SUI protocol requires 'metastable_registry_id' in extendedDetails for pool ${e.id}.`),{...t,...n,protocol:ri.METASTABLE,metaCoin:a,registryId:o.metastable_registry_id};case tv.MetaCoinType.MUSD:return c(o.metastable_price_seed,`METASTABLE_MUSD protocol requires 'metastable_price_seed' in extendedDetails for pool ${e.id}.`),{...t,...n,protocol:ri.METASTABLE,metaCoin:a,pythPriceFeedIdMeta:o.metastable_price_seed};case tv.MetaCoinType.METH:return c(o.metastable_price_seed&&o.metastable_eth_price_seed,`METASTABLE_ETH protocol requires 'metastable_price_seed' and 'metastable_eth_price_seed' in extendedDetails for pool ${e.id}.`),{...t,...n,protocol:ri.METASTABLE,metaCoin:a,pythPriceFeedIdMeta:o.metastable_price_seed,pythPriceFeedIdEth:o.metastable_eth_price_seed};default:throw Error(`METASTABLE protocol does not support ${a} as metaCoin.`)}},[F]:e=>({...r(e),protocol:ri.DEEPBOOK_V3}),[C]:e=>{let t=e.extendedDetails;return c(t?.aftermath_lp_supply_type,`AFTERMATH_CPMM protocol requires 'aftermath_lp_type' in extendedDetails for pool ${e.id}.`),{...r(e),protocol:ri.AFTERMATH_CPMM,coinLpType:t.aftermath_lp_supply_type}},[D]:e=>({...r(e),protocol:ri.FLOWX_CLMM,poolFeeRate:String(1e6*e.feeRate)}),[k]:e=>{let t=e.extendedDetails;return c(t?.haedal_pmm_base_price_seed&&t?.haedal_pmm_quote_price_seed,`HAEDAL_CPMM protocol requires 'haedal_pyth_price_a_id' and 'haedal_pyth_price_b_id' in extendedDetails for pool ${e.id}.`),{...r(e),protocol:ri.HAEDAL_CPMM,pythPriceFeedIdA:t.haedal_pmm_base_price_seed,pythPriceFeedIdB:t.haedal_pmm_quote_price_seed}},[v]:e=>{let t=e.extendedDetails;return c(t?.haedalhmmv2_base_price_seed,`HAEDAL_CPMM_V2 protocol requires 'haedal_pyth_price_base_id' in extendedDetails for pool ${e.id}.`),{...r(e),protocol:ri.HAEDAL_CPMM_V2,pythPriceFeedIdBase:t.haedalhmmv2_base_price_seed}},[Y]:e=>(c(e.extendedDetails?.scallop_scoin_treasury,`SCALLOP protocol requires 'scallop_scoin_treasury' in extendedDetails for pool ${e.id}.`),{...r(e),protocol:ri.SCALLOP,scoinTreasury:e.extendedDetails.scallop_scoin_treasury}),[H]:e=>{let t=e.extendedDetails;return c(t?.steamm_bank_a&&t?.steamm_bank_b&&t?.steamm_lending_market&&t?.steamm_lending_market_type&&t?.steamm_btoken_a_type&&t?.steamm_btoken_b_type&&t?.steamm_lp_token_type,`STEAMM_CPMM protocol requires steamm fields in extendedDetails for pool ${e.id}.`),{...r(e),protocol:ri.STEAMM_CPMM,bankAId:t.steamm_bank_a,bankBId:t.steamm_bank_b,lendingMarketId:t.steamm_lending_market,lendingMarketType:t.steamm_lending_market_type,bCoinAType:t.steamm_btoken_a_type,bCoinBType:t.steamm_btoken_b_type,lpBCoinType:t.steamm_lp_token_type}},[X]:e=>{let t=e.extendedDetails;return c(t?.steamm_bank_a&&t?.steamm_bank_b&&t?.steamm_lending_market&&t?.steamm_lending_market_type&&t?.steamm_btoken_a_type&&t?.steamm_btoken_b_type&&t?.steamm_lp_token_type&&t?.steamm_oracle_pyth_price_seed_a&&t?.steamm_oracle_pyth_price_seed_b&&t?.steamm_oracle_registry_id&&t?.steamm_oracle_index_a&&t?.steamm_oracle_index_b,`STEAMM_OMM protocol requires steamm fields in extendedDetails for pool ${e.id}.`),{...r(e),protocol:ri.STEAMM_OMM,bankAId:t.steamm_bank_a,bankBId:t.steamm_bank_b,lendingMarketId:t.steamm_lending_market,lendingMarketType:t.steamm_lending_market_type,bCoinAType:t.steamm_btoken_a_type,bCoinBType:t.steamm_btoken_b_type,lpBCoinType:t.steamm_lp_token_type,pythPriceFeedIdA:t.steamm_oracle_pyth_price_seed_a,pythPriceFeedIdB:t.steamm_oracle_pyth_price_seed_b,oracleRegistryId:t.steamm_oracle_registry_id,oracleIndexA:String(t.steamm_oracle_index_a),oracleIndexB:String(t.steamm_oracle_index_b)}},[W]:e=>{let t=e.extendedDetails;return c(t?.steamm_bank_a&&t?.steamm_bank_b&&t?.steamm_lending_market&&t?.steamm_lending_market_type&&t?.steamm_btoken_a_type&&t?.steamm_btoken_b_type&&t?.steamm_lp_token_type&&t?.steamm_oracle_pyth_price_seed_a&&t?.steamm_oracle_pyth_price_seed_b&&t?.steamm_oracle_registry_id&&t?.steamm_oracle_index_a&&t?.steamm_oracle_index_b,`STEAMM_OMM_V2 protocol requires steamm fields in extendedDetails for pool ${e.id}.`),{...r(e),protocol:ri.STEAMM_OMM_V2,bankAId:t.steamm_bank_a,bankBId:t.steamm_bank_b,lendingMarketId:t.steamm_lending_market,lendingMarketType:t.steamm_lending_market_type,bCoinAType:t.steamm_btoken_a_type,bCoinBType:t.steamm_btoken_b_type,lpBCoinType:t.steamm_lp_token_type,pythPriceFeedIdA:t.steamm_oracle_pyth_price_seed_a,pythPriceFeedIdB:t.steamm_oracle_pyth_price_seed_b,oracleRegistryId:t.steamm_oracle_registry_id,oracleIndexA:String(t.steamm_oracle_index_a),oracleIndexB:String(t.steamm_oracle_index_b)}},[$]:e=>{let t=r(e);if(e.extendedDetails?.obric_coin_a_price_id&&e.extendedDetails?.obric_coin_b_price_id)return{...t,protocol:ri.OBRIC,priceInfoObjIdA:e.extendedDetails.obric_coin_a_price_id,priceInfoObjIdB:e.extendedDetails.obric_coin_b_price_id};if(e.extendedDetails?.obric_coin_a_price_seed&&e.extendedDetails?.obric_coin_b_price_seed)return{...t,protocol:ri.OBRIC,pythPriceFeedIdA:e.extendedDetails.obric_coin_a_price_seed,pythPriceFeedIdB:e.extendedDetails.obric_coin_b_price_seed};throw Error(`OBRIC protocol requires 'obric_coin_a_price_id' and 'obric_coin_b_price_id' in extendedDetails for pool ${e.id}.`)},[V]:e=>{let t=e.extendedDetails;return c(t?.sevenk_lp_cap_type&&t?.sevenk_coin_a_price_seed&&t?.sevenk_coin_b_price_seed&&t?.sevenk_oracle_config_a&&t?.sevenk_oracle_config_b,`SEVENK_CPMM protocol requires sevenk fields in extendedDetails for pool ${e.id}.`),{...r(e),protocol:ri.SEVENK_CPMM,coinLpType:t.sevenk_lp_cap_type,pythPriceFeedIdA:t.sevenk_coin_a_price_seed,pythPriceFeedIdB:t.sevenk_coin_b_price_seed,oracleConfigA:t.sevenk_oracle_config_a,oracleConfigB:t.sevenk_oracle_config_b}},[Q]:e=>(c(e.extendedDetails?.turbos_fee_type,`TURBOS_CLMM protocol requires 'coinFeeType' parameter for pool ${e.id}. Provide it via the parametersMap argument.`),{...r(e),protocol:ri.TURBOS_CLMM,coinFeeType:e.extendedDetails.turbos_fee_type}),[T]:e=>({...r(e),protocol:ri.AFTERMATH_LSD}),[O]:e=>({...r(e),protocol:ri.ALPHAFI_LSD}),[E]:e=>({...r(e),protocol:ri.BLUEFIN_CLMM}),[h]:e=>({...r(e),protocol:ri.BLUEMOVE_CPMM}),[y]:e=>({...r(e),protocol:ri.CETUS_CLMM}),[S]:e=>({...r(e),protocol:ri.CETUS_DLMM}),[B]:e=>({...r(e),protocol:ri.FERRA_CLMM}),[w]:e=>({...r(e),protocol:ri.FERRA_DLMM}),[R]:e=>({...r(e),protocol:ri.FLOWX_CPMM}),[x]:e=>({...r(e),protocol:ri.FULLSAIL_CLMM}),[L]:e=>({...r(e),protocol:ri.HAEDAL_LSD}),[N]:e=>({...r(e),protocol:ri.HAEDAL_LSD_WAL}),[U]:e=>({...r(e),protocol:ri.KRIYA_CPMM}),[j]:e=>({...r(e),protocol:ri.KRIYA_CLMM}),[G]:e=>({...r(e),protocol:ri.MAGMA_CLMM}),[q]:e=>({...r(e),protocol:ri.MOMENTUM_CLMM}),[z]:e=>({...r(e),protocol:ri.SPRINGSUI}),[J]:e=>({...r(e),protocol:ri.SPRINGSUI}),[Z]:e=>({...r(e),protocol:ri.VOLO})},e.toMetaAggregatorPath=a,e.toMetaAggregatorPaths=n,e.convert=function(e){return{coinInType:e.paths[0].from,coinOutType:e.paths[e.paths.length-1].target,amountOut:e.amountOut.toString(),tradePaths:n(e)}}}(tk||(tk={}));class r_{_config;_suiClient;_cetusClient;getCetusClientConfig({walletAddress:e,overlayFeeReceiver:t,overlayFeeRate:o}){return{client:this._suiClient,overlayFeeReceiver:t,overlayFeeRate:o,env:P.Mainnet,signer:e,...this._config.cetusApiKey&&this._config.cetusApiEndpoint?{apiKey:this._config.cetusApiKey,endpoint:this._config.cetusApiEndpoint}:{},partner:this._config.cetusPartnerId}}constructor(e,t){this._config=e,this._suiClient=t}cetusClient(e,t){return t&&!tL.equals(t,this._config.defaultTradeFee)?new M(this.getCetusClientConfig({walletAddress:e,overlayFeeReceiver:t.tradeFeeRecipientAddress,overlayFeeRate:t.tradeFeePercent})):(this._cetusClient||(this._cetusClient=new M(this.getCetusClientConfig({walletAddress:e,overlayFeeReceiver:this._config.defaultTradeFee.tradeFeeRecipientAddress,overlayFeeRate:this._config.defaultTradeFee.tradeFeePercent}))),this._cetusClient)}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r,metaAggregator:a,supportedProtocols:n}){try{let i=this.cetusClient(void 0,r),s=n??(a?tk.SUPPORTED_PROTOCOLS:void 0);return await i.findRouters({from:t,target:o,amount:new ee(e.toString()),byAmountIn:!0,providers:s})}catch(e){return rs("cetus",e),null}}async getTransaction({completeRoute:e,walletAddress:t,slippage:o,tradeFee:r}){let a=this.cetusClient(t,r),n=new i;return n.setSender(t),await a.fastRouterSwap({router:e,txb:n,slippage:o}),n.build({client:this._suiClient})}}(r_||(r_={})).toCommonTradeRoutes=function(e,t,o){if(0===e.paths.length)return null;let r=[],a=[],n=[];for(let t=0;t<e.paths.length;t++){let o=e.paths[t],r={poolAddress:o.id,amountIn:BigInt(o.amountIn),amountOut:BigInt(o.amountOut),coinIn:o.from,coinOut:o.target};if(n.push(r),t===e.paths.length-1)a.push([...n]);else{let r=e.paths[t+1];o.target!==r.from&&(a.push([...n]),n=[])}}for(let e of a)0!==e.length&&r.push({amountIn:e[0].amountIn,amountOut:e[e.length-1].amountOut,coinIn:e[0].coinIn,coinOut:e[e.length-1].coinOut,paths:e});return 0===r.length?null:{coinIn:t,coinOut:o,amountIn:BigInt(e.amountIn.toString(10)),amountOut:BigInt(e.amountOut.toString(10)),routes:r}};var rm=((eP={}).ASTROS="ASTROS",eP.AFTERMATH="AFTERMATH",eP.SEVENK="7K",eP.CETUS="CETUS",eP.FLOWX="FLOWX",eP);!function(e){let t=[en.HOP_FUN,en.FLOWX_PMM,en.DEEPBOOK,en.IPX_TIDE,en.METASTABLE];e.SUPPORTED_PROTOCOLS=Object.values(en).filter(e=>!t.includes(e));let o={[en.FLOWX_V2]:t=>({...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:ri.FLOWX_CPMM}),[en.FLOWX_V3]:t=>(c(void 0!==t.poolFee,`Pool fee is required for pool ${t.pool.id}`),c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.FLOWX_CLMM,poolFeeRate:t.poolFee.toString()}),[en.CETUS]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.CETUS_CLMM}),[en.CETUS_DLMM]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.CETUS_DLMM}),[en.AFTERMATH]:t=>(c(t.lpCoinType,`AFTERMATH protocol requires lpCoinType for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:ri.AFTERMATH_CPMM,coinLpType:t.lpCoinType}),[en.AFTERMATH_LSD]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:ri.AFTERMATH_LSD}),[en.ALPHA_FI]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:ri.ALPHAFI_LSD}),[en.BLUEFIN]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.BLUEFIN_CLMM}),[en.BLUEMOVE]:t=>({...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:ri.BLUEMOVE_CPMM}),[en.DEEPBOOK_V3]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.DEEPBOOK_V3}),[en.FERRA_CLMM]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.FERRA_CLMM}),[en.FERRA_DLMM]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.FERRA_DLMM}),[en.FULL_SAIL]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.FULLSAIL_CLMM}),[en.HAEDAL]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:ri.HAEDAL_LSD}),[en.HAEDAL_PMM]:t=>{let o=t.oracles;return c(o&&o.length>=2,`HAEDAL_CPMM protocol requires oracle price feeds for pool ${t.pool.id}.`),c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.HAEDAL_CPMM,pythPriceFeedIdA:o[0].priceId,pythPriceFeedIdB:o[1].priceId}},[en.KRIYA_DEX]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.KRIYA_CPMM}),[en.KRIYA_V3]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.KRIYA_CLMM}),[en.MAGMA_FINANCE]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.MAGMA_CLMM}),[en.MAGMA_ALMM]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.MAGMA_ALMM}),[en.MOMENTUM_FINANCE]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.MOMENTUM_CLMM}),[en.OBRIC]:t=>(c(t.xPriceId&&t.yPriceId,`OBRIC protocol requires price feeds for pool ${t.pool.id}`),c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.OBRIC,priceInfoObjIdA:t.xPriceId,priceInfoObjIdB:t.yPriceId}),[en.SPRING_SUI]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:ri.SPRINGSUI}),[en.STEAMM]:t=>{c(void 0!==t.bankXInfo&&void 0!==t.bankYInfo,`STEAMM protocol requires bank info for pool ${t.pool.id}`),c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),c(void 0!==t.quoterType,`quoterType is required for pool ${t.pool.id}`),c(void 0!==t.poolInfo,`poolInfo is required for pool ${t.pool.id}`),c(void 0!==t.protocolConfig&&void 0!==t.protocolConfig.oracleRegistryId,`protocolConfig is required for pool ${t.pool.id}`);let o=t.oracles,r=e.toMetaAggregatorBasePath(t),a=t.xForY;switch(t.quoterType){case"constant_product":return{...r,aToB:a,protocol:ri.STEAMM_CPMM,bankAId:a?t.bankXInfo.bankId:t.bankYInfo.bankId,bankBId:a?t.bankYInfo.bankId:t.bankXInfo.bankId,lendingMarketId:t.bankXInfo.lendingMarketId,lendingMarketType:t.bankXInfo.lendingMarketType,bCoinAType:a?t.bankXInfo.bTokenType:t.bankYInfo.bTokenType,bCoinBType:a?t.bankYInfo.bTokenType:t.bankXInfo.bTokenType,lpBCoinType:t.poolInfo.lpTokenType};case"oracle":case"oracle_v2":{c(void 0!==o&&o.length>=2,`STEAMM_OMM protocol requires oracle price feeds for pool ${t.pool.id}.`);let e=o[0],n=o[1];return c(void 0!==e.oracleId&&void 0!==n.oracleId&&void 0!==e.oracleIndex&&void 0!==n.oracleIndex,`STEAMM_OMM protocol requires oracle ids for pool ${t.pool.id}.`),{...r,aToB:a,protocol:ri.STEAMM_OMM,bankAId:t.bankXInfo.bankId,bankBId:t.bankYInfo.bankId,lendingMarketId:t.bankXInfo.lendingMarketId,lendingMarketType:t.bankXInfo.lendingMarketType,bCoinAType:t.bankXInfo.bTokenType,bCoinBType:t.bankYInfo.bTokenType,lpBCoinType:t.poolInfo.lpTokenType,pythPriceFeedIdA:e.priceId,pythPriceFeedIdB:n.priceId,oracleRegistryId:t.protocolConfig.oracleRegistryId,oracleIndexA:e.oracleIndex.toString(),oracleIndexB:n.oracleIndex.toString()}}default:throw Error(`Unsupported quoter type: ${t.quoterType} for pool ${t.pool.id}`)}},[en.SEVENK_V1]:t=>{let o=t.oracles;return c(o&&o.length>=2,`SEVENK_CPMM protocol requires oracle price feeds for pool ${t.pool.id}.`),c(t.poolStructTag,`SEVENK_V1 protocol requires poolStructTag for pool ${t.pool.id}`),c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.SEVENK_CPMM,coinLpType:t.poolStructTag,pythPriceFeedIdA:o[0].priceId,pythPriceFeedIdB:o[1].priceId,oracleConfigA:o[0].oracleId??"",oracleConfigB:o[1].oracleId??""}},[en.SUI_REWARDS]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.SRM_CPMM}),[en.TURBOS_FIANCE]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.TURBOS_CLMM,coinFeeType:t.poolStructTag?t.poolStructTag.split("<")[1].split(",")[2].trim().replace(">",""):""}),[en.VOLO_LSD]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:ri.VOLO}),[en.TRADEPORT]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),c(void 0!==t.poolFee,`Pool fee is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,poolFeeRate:t.poolFee.toString(),protocol:ri.TRADEPORT_CLMM}),[en.TURBOS_FUN]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.TURBOS_FUN}),[en.BLUEMOVE_FUN]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,expectedAmountOut:t.amountOut.toString(),protocol:ri.MOVEPUMP}),[en.SEVEN_K_FUN]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.SEVENK_FUN}),[en.DIPCOIN]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.DIP_CPMM}),[en.BOLT]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:ri.BOLT})};function r(t){let o=[];for(let e of t)o.push(...e.paths);let r=new Map;for(let[e,t]of o.entries())r.set(t.input.coinType,e);let a=o.map(e.toMetaAggregatorPath);for(let e of r.values())a[e].amountIn=tD.MAX_AMOUNT_IN;return a}e.toMetaAggregatorBasePath=e=>({poolId:e.pool.id,coinInType:e.input.coinType,coinOutType:e.output.coinType,amountIn:e.amountIn.toString()}),e.toMetaAggregatorPath=e=>{let r=e.protocol();if(t.includes(r))throw Error(`Unsupported protocol: ${r}`);return(0,o[r])(e)},e.toMetaAggregatorPaths=r,e.convert=function(e){return{coinInType:e.coinIn.coinType,coinOutType:e.coinOut.coinType,amountOut:e.amountOut.toString(),tradePaths:r(e.routes)}}}(tN||(tN={}));class rf{_config;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}getCommission(e,t){let o,r;return t?(o=t.tradeFeePercent,r=t.tradeFeeRecipientAddress):(o=this._config.defaultTradeFee.tradeFeePercent,r=this._config.defaultTradeFee.tradeFeeRecipientAddress),new er(r,new eo(e),ea.PERCENTAGE,1e6*o,!0)}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r,metaAggregator:a,supportedProtocols:n}){let i=new et("mainnet",this._config.flowxApiKey),s=n??(a?tN.SUPPORTED_PROTOCOLS:void 0);try{return await i.getRoutes({tokenIn:t,tokenOut:o,amountIn:e.toString(),commission:this.getCommission(t,r),includeSources:s})}catch(e){return rs("flowx",e),null}}async getTransaction({walletAddress:e,completeRoute:t,slippage:o,tradeFee:r}){return new ei("mainnet",t.routes).sender(e).slippage(1e6*o).commission(this.getCommission(t.coinIn.coinType,r)).build().buildTransaction({client:this._suiClient}).then(t=>(t.setSender(e),t.build({client:this._suiClient})))}}async function rg(e,t){return(await rA(e,t)).fields}async function rA(e,t){let o=(await e.getObject({objectId:t,include:{json:!0,objectBcs:!0}})).object;c(o,"Pool object not found or has no content"),c(o.json,"Pool object not found or has no content"),c(o.objectBcs,"Pool object not found or has no content");let r=es.Object.parse(o.objectBcs);return c("Move"===r.data.$kind,"Pool object is not a Move object"),{dataType:"moveObject",fields:o.json,hasPublicTransfer:r.data.Move.hasPublicTransfer,type:o.type}}(rf||(rf={})).toCommonTradeRoutes=function(e){if(0===e.routes.length)return null;let t=[];for(let o of e.routes){let e=[];for(let t of o.paths)e.push({amountIn:BigInt(t.amountIn.toString()),amountOut:BigInt(t.amountOut.toString()),coinIn:t.input.coinType,coinOut:t.output.coinType,poolAddress:t.pool.id});0!==e.length&&t.push({amountIn:BigInt(o.amountIn.toString()),amountOut:BigInt(o.amountOut.toString()),coinIn:o.input.coinType,coinOut:o.output.coinType,paths:e})}return 0===t.length?null:{coinIn:e.coinIn.coinType,coinOut:e.coinOut.coinType,amountIn:BigInt(e.amountIn.toString()),amountOut:BigInt(e.amountOut.toString()),routes:t}},(eB=tU||(tU={})).PACKAGE_ID_V4="0x7e6aa6e179466ab2814425a780b122575296d011119fa69d27f289f5a28814bd",eB.MEMEZ_AV_OBJECT_ID="0x2319e3e76dfad73d8f4684bdbf42be4f32d8ce4521dd61becc8261dc918d82c0",((ew=tj||(tj={})).U64||(ew.U64={})).mulDivUp=function(e,t,o){let r=BigInt(0);return e*t%o>BigInt(0)&&(r=BigInt(1)),e*t/o+r};var rb=tG||(tG={});function rI(e){return c(BigInt(e)<=BigInt(1e4),"Bps overflow"),BigInt(e)}rb.calcUp=function(e,t){let o,r=BigInt(e.pos0),a=BigInt(1e4);return o=r*t%a!==BigInt(0)?BigInt(1):BigInt(0),r*t/a+o},rb.sub=function(e,t){return c(BigInt(e.pos0)>=BigInt(t.pos0),"Bps underflow"),{pos0:(BigInt(e.pos0)-BigInt(t.pos0)).toString()}},rb.value=function(e){return BigInt(e.pos0)},rb.new_=function(e){return{pos0:rI(e).toString()}},rb.assertOverflow=rI,((eR=tK||(tK={})).MemezFun||(eR.MemezFun={})).isSniperProtectedMemezFun=async function(e,t){return(await rg(e,t)).public_key.length>0},(eD=eR.MemezFees||(eR.MemezFees={})).takeWithDiscount=function(e,t,o){if("Value"===e.variant){let o=BigInt(e.fields.pos0);if(o===BigInt(0))return BigInt(0);if(t>=o)return o;throw Error(`Insufficient amount to cover fee. Required: ${o}, provided: ${t}`)}if("Percentage"===e.variant){let r=e.fields.pos0.fields;if(BigInt(r.pos0)===BigInt(0))return BigInt(0);let a=tG.calcUp(tG.sub(r,o),t);if(t>=a)return a;throw Error(`Insufficient amount to cover fee. Required: ${a}, provided: ${t}`)}throw Error("Unknown fee variant")},eD.calculateWithDiscount=function(e,t,o){if("Value"===e.variant)return BigInt(e.fields.pos0);if("Percentage"===e.variant){let r=e.fields.pos0.fields;return tG.calcUp(tG.sub(r,t),o)}throw Error("Unknown fee variant")},(eR.MemezBurner||(eR.MemezBurner={})).calculate=function(e,t){if(tG.value(e.fee.fields)===BigInt(0)||t===BigInt(0)||t>=BigInt(e.target_liquidity))return tG.new_(0);let o=BigInt(1e4);return tG.new_(tj.U64.mulDivUp(tG.value(e.fee.fields),tj.U64.mulDivUp(t,o,BigInt(e.target_liquidity)),o))},(ex=eR.MemezPump||(eR.MemezPump={})).getPumpState=async function(e,t){return await rg(e,t.inner_state)},ex.pump=function(e,t){let o=e.constant_product.fields,r=eR.MemezFees.takeWithDiscount(o.quote_swap_fee,t,o.quote_referrer_fee.fields),a=t-r,n=BigInt(o.meme_balance),i=BigInt(o.quote_balance),s=n*a/(BigInt(o.virtual_liquidity)+i+a),c=eR.MemezFees.takeWithDiscount(o.meme_swap_fee,s,o.meme_referrer_fee.fields);return s-c},ex.dump=function(e,t){let o=e.constant_product.fields,r=eR.MemezFees.takeWithDiscount(o.meme_swap_fee,t,o.meme_referrer_fee.fields),a=t-r,n=BigInt(o.meme_balance),i=BigInt(o.quote_balance),s=BigInt(o.virtual_liquidity),c=eR.MemezBurner.calculate(o.burner.fields,i),u=tG.calcUp(c,a),l=a-(tG.value(c)!==BigInt(0)?u:BigInt(0)),d=(s+i)*l/(n+l);d>i&&(d=i);let p=eR.MemezFees.takeWithDiscount(o.quote_swap_fee,d,o.quote_referrer_fee.fields);return d-p},(eL=tq||(tq={})).getCurveAmountAfterBuy=async function(e,t){let{suiAmount:o,poolId:r,frontendFee:a}=e,n=await rg(t,r),i=await tK.MemezPump.getPumpState(t,n);return o=em(o,a),tK.MemezPump.pump(i,o)},eL.getSuiAmountAfterSell=async function(e,t){let{curveAmount:o,poolId:r,frontendFee:a}=e,n=await rg(t,r),i=await tK.MemezPump.getPumpState(t,n);return em(tK.MemezPump.dump(i,o),a)};let rT="0x62412b7268c35f3808336aee57a52836501f40b8ba5d936f8ad275e672befd04";async function rC(e,t){let o,r,{inputAmount:a,accountAddress:n,frontendFee:s,frontendFeeRecipient:u,extendTx:l,isSponsored:d}=e;c(e.inCoinType===eE||e.inCoinType===eb,"Input must be SUI");let{tx:p,coinIn:_}=l||{},m=eM(a,s||"0"),f=p||new i;if(_)o=f.splitCoins(_,m),t$.transferOrDestroyZeroCoin(f,eE,_,n);else{let{coinData:e}=await ef({account:n,amount:a,splits:m,coinType:eE,inheritTx:f,isSponsored:d||!1},t);o=e}if(s&&u){let[e,t]=o;r=e,f.transferObjects([t],f.pure.address(u||n))}else[r]=o;return{tx:f,coinOut:r}}async function rO(e,t,o){if(c(t.outCoinType===eE||t.outCoinType===eb,"Output must be SUI"),0>=Number(t.frontendFee||0))return{tx:e,coinOut:o};let r=e.moveCall({target:"0x2::coin::value",typeArguments:[t.outCoinType],arguments:[o]}),a=e.moveCall({target:`${rT}::math::mul_div_u64`,typeArguments:[],arguments:[r,e.pure.u64(BigInt(1e4*Number(t.frontendFee||"0"))),e.pure.u64(BigInt(1e4))]}),n=e.moveCall({target:"0x2::coin::split",typeArguments:[t.outCoinType],arguments:[o,a]});return e.transferObjects([n],e.pure.address(t.frontendFeeRecipient||t.accountAddress)),{tx:e,coinOut:o}}(t$||(t$={})).transferOrDestroyZeroCoin=function(e,t,o,r){e.moveCall({target:`${rT}::utils::transfer_or_destroy`,typeArguments:[t],arguments:[o,e.pure.address(r)]})};var rM=tY||(tY={});async function rE(e){let t=e||new i;return t.moveCall({target:`${tU.PACKAGE_ID_V4}::memez_allowed_versions::get_allowed_versions`,arguments:[t.object(tU.MEMEZ_AV_OBJECT_ID)],typeArguments:[]})}function rh(e){switch(e){case"mainnet":return"https://fullnode.mainnet.sui.io:443";case"testnet":return"https://fullnode.testnet.sui.io:443";case"devnet":return"https://fullnode.devnet.sui.io:443";case"localnet":return"http://127.0.0.1:9000";default:throw Error(`Unknown network: ${e}`)}}function ry(e){return rh(e)}function rS(e){return"Transaction"===e.$kind?e.Transaction.digest:e.FailedTransaction.digest}rM.getAllowedVersions=rE,rM.buildBuyTx=async function(e,t){c(!await tK.MemezFun.isSniperProtectedMemezFun(t,e.poolId),"This coin is a sniper protected coin, please use the Blast Fun website to trade it.");let{tx:o,coinOut:r}=await rC(e,t);c(r,"Coin out is required");let a=o.moveCall({target:`${tU.PACKAGE_ID_V4}::memez_pump::pump`,typeArguments:[e.outCoinType,eE],arguments:[o.object(e.poolId),r,o.pure.vector("address",[]),o.pure.vector("vector<u8>",[]),o.pure.u64(e.minAmountOut),await rE(o)]});return{tx:o,coinOut:a}},rM.buildSellTx=async function(e,t){c(e.outCoinType===eE||e.outCoinType===eb,"Output must be SUI");let o=await rg(t,e.poolId),{tx:r,coinData:a}=await ef({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[n]=a,[i]=r.moveCall({target:`${tU.PACKAGE_ID_V4}::memez_pump::dump`,typeArguments:[e.inCoinType,e.outCoinType],arguments:[r.object(e.poolId),r.object(o.ipx_meme_coin_treasury),n,r.pure.vector("address",[]),r.pure.u64(e.minAmountOut),await rE(r)]});return await rO(r,e,i)};let rF={network:ec.MAINNET,fullNodeUrl:rh("mainnet")};async function rP(){if(!e){let{MemezPumpSDK:t}=await import("@interest-protocol/memez-fun-sdk");e=new t(rF)}return e}(ev=tV||(tV={})).getCurveAmountAfterBuy=async function(e){let{suiAmount:t,poolId:o,frontendFee:r}=e;t=em(t,r);let{memeAmountOut:a}=await (await rP()).quotePump({pool:o,amount:t});return a},ev.getSuiAmountAfterSell=async function(e){let{curveAmount:t,poolId:o,frontendFee:r}=e,{quoteAmountOut:a}=await (await rP()).quoteDump({pool:o,amount:t});return em(a,r)};var rB=tJ||(tJ={});async function rw(e,t){let{tx:o,coinOut:r}=await rC(e,t);c(r,"Coin out is required");let{memeCoin:a,tx:n}=await (await rP()).pump({pool:e.poolId,quoteCoin:r,minAmountOut:e.minAmountOut,tx:o});return{tx:n,coinOut:a}}async function rR(e,t){c(eI(e.outCoinType),"Output must be SUI");let{tx:o,coinData:r}=await ef({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[a]=r,{quoteCoin:n,tx:i}=await (await rP()).dump({pool:e.poolId,memeCoin:a,tx:o,minAmountOut:e.minAmountOut});return await rO(i,e,n)}rB.buildBuyTx=rw,rB.buildSellTx=rR,rB.getBuyTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:a,walletAddress:n,tradeFee:i},u){c(eI(t),"coinInType must be SUI for buy transaction"),c(o!==t,"coinOutType must be different from coinInType"),c(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),c(e>0,"coinInAmount must be greater than 0");let l=BigInt(new s((await tV.getCurveAmountAfterBuy({poolId:r,suiAmount:e,frontendFee:i?i.tradeFeePercent:void 0})).toString()).multipliedBy(1-a).toFixed(0,3)),{tx:d,coinOut:p}=await rw({accountAddress:n,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:l.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},u);c(p,"Coin out is required"),d.transferObjects([p],d.pure.address(n)),d.setSender(n);let _=await eT(u,d,n,0);return(d=await eC({inheritTx:d,sender:n,feeAmount:_,suiInputAmount:e},u)).build({client:u})},rB.getSellTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:a,walletAddress:n,tradeFee:i},u){c(eI(o),"coinOutType must be SUI for sell transaction"),c(o!==t,"coinOutType must be different from coinInType"),c(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),c(e>0,"coinInAmount must be greater than 0");let l=BigInt(new s((await tV.getSuiAmountAfterSell({poolId:r,curveAmount:e,frontendFee:i?i.tradeFeePercent:void 0})).toString()).multipliedBy(1-a).toFixed(0,3)),{tx:d,coinOut:p}=await rR({accountAddress:n,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:l.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},u);c(p,"Coin out is required"),d.transferObjects([p],d.pure.address(n)),d.setSender(n);let _=await eT(u,d,n,0);return(d=await eC({inheritTx:d,sender:n,feeAmount:_},u)).build({client:u})};var rD=((ek={}).BLAST_FUN="BLAST_FUN",ek.MOONBAGS="MOONBAGS",ek);(eN=tH||(tH={})).PACKAGE_ID="0xb8df325010942634a4afb3db3901ee215546af43a4ec4af781e7213b0bba7290",eN.CONFIG_OBJECT_ID="0x74aecf86067c6913960ba4925333aefd2b1f929cafca7e21fd55a8f244b70499",eN.LOCK_CONFIG_OBJECT_ID="0xfb09822d9808980abd04c51321adb850701f5f55535c6206658ef4d910c3e9be",eN.BURN_MANAGER_OBJECT_ID="0x1d94aa32518d0cb00f9de6ed60d450c9a2090761f326752ffad06b2e9404f845",eN.POOLS_OBJECT_ID="0xf699e7f2276f5c9a75944b37a0c5b5d9ddfd2471bf6242483b03ab2887d198d0",eN.GLOBAL_CONFIG_OBJECT_ID="0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f",eN.FEE_DENOMINATOR=BigInt(1e4),(ej=(eU=tX||(tX={})).Curves||(eU.Curves={})).calculateAddLiquidityCost=function(e,t,o){return e*t/(t-o)-e},ej.calculateRemoveLiquidityReturn=function(e,t,o){return t-e*t/(e+o)},ej.calculateTokenAmountReceived=function(e,t,o){return t-e*t/(e+o)},(eG=eU.Moonbags||(eU.Moonbags={})).getDynamicVirtualTokenReserves=async function(e,t){try{let o=await e.getDynamicField({parentId:t,name:{type:"vector<u8>",bcs:es.byteVector().serialize(new TextEncoder().encode("virtual_token_reserves")).toBytes()}});if(!o.dynamicField?.value)return;return BigInt(es.u64().parse(o.dynamicField.value.bcs))}catch(e){if("object"==typeof e&&null!==e&&"code"in e&&"dynamicFieldNotFound"===e.code)return;throw e}},eG.buyExactInReturnsWithLock=function(e){let{inputAmount:t,amountIn:o,pool:r,config:a,dynamicVirtualTokenReserves:n}=e,i=BigInt(r.virtual_sui_reserves),s=BigInt(r.virtual_token_reserves),u=BigInt(r.remain_token_reserves.fields.balance),l=eU.Curves.calculateRemoveLiquidityReturn(i,s,o),d=s-(n||u),p=l,_=o;l>d&&(p=d,_=eU.Curves.calculateAddLiquidityCost(i,s,d)+BigInt(1));let m=_*BigInt(a.platform_fee)/tH.FEE_DENOMINATOR;return c(t>=_+m,"Input amount is less than used SUI + fee"),{receivedCurve:p,receivedSui:t-_-m}},eG.sellReturns=function(e){let{amountIn:t,pool:o,config:r}=e,a=BigInt(o.virtual_sui_reserves),n=BigInt(o.virtual_token_reserves),i=BigInt(o.real_sui_reserves.fields.balance),s=eU.Curves.calculateRemoveLiquidityReturn(n,a,t);s>i&&(s=i);let c=s*BigInt(r.platform_fee)/tH.FEE_DENOMINATOR,u=s-c;return{receivedCurve:BigInt(0),receivedSui:u}},(eK=tW||(tW={})).getCurveAmountAfterBuy=async function(e,t){let{suiAmount:o,poolId:r,frontendFee:a}=e,[n,i,s]=await Promise.all([rg(t,r),rg(t,tH.CONFIG_OBJECT_ID),tX.Moonbags.getDynamicVirtualTokenReserves(t,r)]);void 0!==a&&(o=em(o,a));let c=o*tH.FEE_DENOMINATOR/(tH.FEE_DENOMINATOR+BigInt(i.platform_fee)),{receivedCurve:u}=tX.Moonbags.buyExactInReturnsWithLock({inputAmount:o,amountIn:c,pool:n,config:i,dynamicVirtualTokenReserves:s});return u},eK.getSuiAmountAfterSell=async function(e,t){let{curveAmount:o,poolId:r,frontendFee:a}=e,[n,i]=await Promise.all([rg(t,r),rg(t,tH.CONFIG_OBJECT_ID)]),{receivedSui:s}=tX.Moonbags.sellReturns({amountIn:o,pool:n,config:i});return void 0!==a?em(s,a):s},eK.getUsedSuiForTx=async function(e,t){let{suiAmount:o,frontendFee:r}=e,a=await rg(t,tH.CONFIG_OBJECT_ID);return void 0!==r&&(o=em(o,r)),o*tH.FEE_DENOMINATOR/(tH.FEE_DENOMINATOR+BigInt(a.platform_fee))};var rx=tz||(tz={});async function rL(e,t){let{tx:o,coinOut:r}=await rC(e,t);c(r,"Coin out is required");let a=await tW.getUsedSuiForTx({suiAmount:BigInt(e.inputAmount),frontendFee:e.frontendFee},t),[n,i]=o.moveCall({target:`${tH.PACKAGE_ID}::moonbags::buy_exact_in_returns_with_lock`,typeArguments:[e.outCoinType],arguments:[o.object(tH.CONFIG_OBJECT_ID),o.object(tH.LOCK_CONFIG_OBJECT_ID),r,o.pure.u64(a),o.pure.u64(e.minAmountOut),o.object(tH.BURN_MANAGER_OBJECT_ID),o.object(tH.POOLS_OBJECT_ID),o.object(tH.GLOBAL_CONFIG_OBJECT_ID),o.object(eA),o.object(eg)]});return t$.transferOrDestroyZeroCoin(o,eE,n,e.accountAddress),{tx:o,coinOut:i}}async function rv(e,t){c(eI(e.outCoinType),"Output must be SUI");let{tx:o,coinData:r}=await ef({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[a]=r,[n,i]=o.moveCall({target:`${tH.PACKAGE_ID}::moonbags::sell_returns`,typeArguments:[e.inCoinType],arguments:[o.object(tH.CONFIG_OBJECT_ID),a,o.pure.u64(e.minAmountOut),o.object(eg)]});return t$.transferOrDestroyZeroCoin(o,e.inCoinType,i,e.accountAddress),await rO(o,e,n)}rx.buildBuyTx=rL,rx.buildSellTx=rv,rx.getBuyTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:a,walletAddress:n,tradeFee:i},u){c(eI(t),"coinInType must be SUI for buy transaction"),c(o!==t,"coinOutType must be different from coinInType"),c(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),c(e>0,"coinInAmount must be greater than 0");let l=BigInt(new s((await tW.getCurveAmountAfterBuy({poolId:r,suiAmount:e,frontendFee:i?i.tradeFeePercent:void 0},u)).toString()).multipliedBy(1-a).toFixed(0,3)),{tx:d,coinOut:p}=await rL({accountAddress:n,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:l.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},u);c(p,"Coin out is required"),d.transferObjects([p],d.pure.address(n)),d.setSender(n);let _=await eT(u,d,n,0);return(d=await eC({inheritTx:d,sender:n,feeAmount:_,suiInputAmount:e},u)).build({client:u})},rx.getSellTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:a,walletAddress:n,tradeFee:i},u){c(eI(o),"coinOutType must be SUI for sell transaction"),c(o!==t,"coinOutType must be different from coinInType"),c(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),c(e>0,"coinInAmount must be greater than 0");let l=BigInt(new s((await tW.getSuiAmountAfterSell({poolId:r,curveAmount:e,frontendFee:i?i.tradeFeePercent:void 0},u)).toString()).multipliedBy(1-a).toFixed(0,3)),{tx:d,coinOut:p}=await rv({accountAddress:n,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:l.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},u);c(p,"Coin out is required"),d.transferObjects([p],d.pure.address(n)),d.setSender(n);let _=await eT(u,d,n,0);return(d=await eC({inheritTx:d,sender:n,feeAmount:_},u)).build({client:u})},(eq=tQ||(tQ={})).LAST_PACKAGE_ID="0x8c36ea167c5e6da8c3d60b4fc897416105dcb986471bd81cfbfd38720a4487c0",eq.newHolder=function(e){return e.moveCall({target:`${eq.LAST_PACKAGE_ID}::oracle::new_holder`,typeArguments:[],arguments:[]})},eq.getPrice=function(e){let{txb:t,coinOracleId:o,holder:r,coinPriceId:a}=e;t.moveCall({target:`${eq.LAST_PACKAGE_ID}::pyth::get_price`,typeArguments:[],arguments:[t.object(o),r,t.object(a),t.object(u)]})},(e$=tZ||(tZ={})).PYTH_URLS=["https://hermes.pyth.network"],e$.WORMHOLE_STATE_ID="0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",e$.PYTH_STATE_ID="0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",e$.newPythConnections=function(e){return e||(e=e$.PYTH_URLS),e.map(e=>new ep(e,{timeout:3e3}))},e$.newPythClient=function(e){return e||(e=new el({network:"mainnet",url:ed("mainnet")})),new e_(e,e$.PYTH_STATE_ID,e$.WORMHOLE_STATE_ID)},e$.updatePythPriceIDs=async function(e){let{priceFeedIds:t,txb:o,pythConnections:r,pythClient:a}=e;if(0===t.length)return new Map;let n=null,i=null;for(let e of r)try{n=await e.getPriceFeedsUpdateData(t);break}catch(e){i=e,console.log("Error: ",e)}if(null==n)throw Error(`All Pyth price nodes are unavailable. Cannot fetch price data. Please switch to or add new available Pyth nodes. Detailed error: ${i?.message}`);let s=[];try{s=await a.updatePriceFeeds(o,n,t)}catch(e){throw Error(`All Pyth price nodes are unavailable. Cannot fetch price data. Please switch to or add new available Pyth nodes in the pythUrls parameter when initializing AggregatorClient, for example: new AggregatorClient({ pythUrls: ["https://your-pyth-node-url"] }). Detailed error: ${e}`)}let c=new Map;for(let e=0;e<t.length;e++)c.set(t[e],s[e]);return c};var rk=((eY={})[eY.UNKNOWN=1e3]="UNKNOWN",eY[eY.TIMEOUT=1001]="TIMEOUT",eY[eY.PROVIDER_NOT_FOUND=1002]="PROVIDER_NOT_FOUND",eY[eY.PROVIDER_NOT_SUPPORTED=1003]="PROVIDER_NOT_SUPPORTED",eY[eY.INVALID_QUOTE=1004]="INVALID_QUOTE",eY[eY.QUOTE_NOT_FOUND=1005]="QUOTE_NOT_FOUND",eY[eY.INVALID_SIGNER_ADDRESS=1006]="INVALID_SIGNER_ADDRESS",eY[eY.PROVIDER_NOT_SUPPORT_SWAP=1007]="PROVIDER_NOT_SUPPORT_SWAP",eY[eY.SIMULATION_FAILED=1008]="SIMULATION_FAILED",eY);class rN extends Error{code;details;constructor(e,t,o){super(e),this.name="MetaAgError",this.code=t??1e3,this.details=o}static assert(e,t,o,r){if(!e)throw new rN(t??"Assertion failed",o,r)}}class rU{options;kind="SEVENK";constructor(e,t){this.options=e,e.apiKey&&r.setApiKey(e.apiKey),r.setSuiClient(t)}async quote(e){let t=[];if(this.options.sources)for(let e of this.options.sources)tx.SUPPORTED_PROTOCOLS.includes(e)&&t.push(e);else t.push(...tx.SUPPORTED_PROTOCOLS);let o=await n({tokenIn:e.coinTypeIn,tokenOut:e.coinTypeOut,amountIn:e.amountIn,sources:t,excludedPools:this.options.excludedPools,targetPools:this.options.targetPools});return rN.assert(!!o,"No quote found",rk.QUOTE_NOT_FOUND,{provider:this.kind}),{sourceRoute:"SEVENK",rawRoute:o,amountIn:o.swapAmountWithDecimal,amountOut:o.returnAmountWithDecimal,coinTypeIn:e.coinTypeIn,coinTypeOut:e.coinTypeOut}}}let rj=tZ.PYTH_URLS;class rG{options;kind="CETUS";cetusClient;constructor(e,t,o){this.options=e,this.cetusClient=new M({apiKey:e.apiKey,client:o,endpoint:e.api,env:P.Mainnet,pythUrls:t.hermesApi?t.hermesApi:rj})}async quote(e){let t=[];if(this.options.sources)for(let e of this.options.sources)tk.SUPPORTED_PROTOCOLS.includes(e)&&t.push(e);else t.push(...tk.SUPPORTED_PROTOCOLS);let o=await this.cetusClient.findRouters({amount:e.amountIn,byAmountIn:!0,from:e.coinTypeIn,target:e.coinTypeOut,providers:t,splitCount:this.options.splitCount,splitAlgorithm:this.options.splitAlgorithm,splitFactor:this.options.splitFactor,depth:this.options.depth,liquidityChanges:this.options.liquidityChanges});return rN.assert(!!o,"No quote found",rk.QUOTE_NOT_FOUND,{provider:this.kind}),{sourceRoute:"CETUS",rawRoute:o,amountIn:o.amountIn.toString()||"0",amountOut:o.amountOut.toString()||"0",coinTypeIn:e.coinTypeIn,coinTypeOut:e.coinTypeOut}}}class rK{options;kind="FLOWX";quoter;constructor(e){this.options=e,this.quoter=new et("mainnet",e.apiKey)}async quote(e){let t=[];if(this.options.sources)for(let e of this.options.sources)tN.SUPPORTED_PROTOCOLS.includes(e)&&t.push(e);else t.push(...tN.SUPPORTED_PROTOCOLS);let o=await this.quoter.getRoutes({amountIn:e.amountIn,tokenIn:e.coinTypeIn,tokenOut:e.coinTypeOut,includeSources:t,excludePools:this.options.excludePools,excludeSources:this.options.excludeSources,maxHops:this.options.maxHops,splitDistributionPercent:this.options.splitDistributionPercent});return{sourceRoute:"FLOWX",rawRoute:o,amountIn:o.amountIn?.toString()??"0",amountOut:o.amountOut?.toString()??"0",coinTypeIn:e.coinTypeIn,coinTypeOut:e.coinTypeOut}}}(eV=t0||(t0={})).POOL_REGISTRY_OBJ_ID="0xfcc774493db2c45c79f688f88d28023a3e7d98e4ee9f48bbf5c7990f651577ae",eV.PROTOCOL_FEE_VAULT_OBJ_ID="0xf194d9b1bcad972e45a7dd67dd49b3ee1e3357a00a50850c52cd51bb450e13b4",eV.TREASURY_OBJ_ID="0x28e499dff5e864a2eafe476269a4f5035f1c16f338da7be18b103499abf271ce",eV.INSURANCE_FUND_OBJ_ID="0xf0c40d67b078000e18032334c3325c47b9ec9f3d9ae4128be820d54663d14e3b",eV.REFERRAL_VAULT_OBJ_ID="0x35d35b0e5b177593d8c3a801462485572fc30861e6ce96a55af6dc4730709278",(eJ=t1||(t1={})).LAST_PACKAGE_ID="0xf369250dc5a17e9d5a84a3b0cf5aea715c0682170e726dd601f03ade7ce4decb",eJ.swap=function(e){c(e.protocol===ri.AFTERMATH_CPMM);let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:s,coinLpType:u,packageId:l}=e;t.moveCall({target:`${l??eJ.LAST_PACKAGE_ID}::aftermath_cpmm_router::swap`,typeArguments:[i,s,u],arguments:[o,t.object(r),t.object(t0.POOL_REGISTRY_OBJ_ID),t.object(t0.PROTOCOL_FEE_VAULT_OBJ_ID),t.object(t0.TREASURY_OBJ_ID),t.object(t0.INSURANCE_FUND_OBJ_ID),t.object(t0.REFERRAL_VAULT_OBJ_ID),t.pure.bool(a),t.pure.u64(n)]})},(eH=t4||(t4={})).STAKED_SUI_VAULT_OBJ_ID="0x2f8f6d5da7f13ea37daa397724280483ed062769813b6f31e9788e59cc88994d",eH.SAFE_TREASURY_OBJECT_ID="0xeb685899830dd5837b47007809c76d91a098d52aabbf61e8ac467c59e5cc4610",eH.REFERRAL_VAULT_OBJ_ID="0x4ce9a19b594599536c53edb25d22532f82f18038dc8ef618afd00fbbfb9845ef",eH.VALIDATOR_ADDRESS="0xd30018ec3f5ff1a3c75656abf927a87d7f0529e6dc89c7ddd1bd27ecb05e3db2",(eX=t6||(t6={})).LAST_PACKAGE_ID="0x148c4e7ff5b308b2d520e050e6a21d986dd3eb203e0aa3eaaba28000977aebf1",eX.swap=function(e){let{txb:t,swapContext:o,aToB:r,amountIn:a,packageId:n}=e;if(!r)throw Error("AFSUI not support bToA swap");t.moveCall({target:`${n??eX.LAST_PACKAGE_ID}::aftermath_lsd_router::swap`,arguments:[o,t.object(t4.STAKED_SUI_VAULT_OBJ_ID),t.object(t4.SAFE_TREASURY_OBJECT_ID),t.object(l),t.object(t4.REFERRAL_VAULT_OBJ_ID),t.pure.address(t4.VALIDATOR_ADDRESS),t.pure.bool(r),t.pure.u64(a)]})},(eW=t3||(t3={})).LAST_PACKAGE_ID="0x108d5d07cf873dec0bc8034db862db55d38e495c1f3ee0e124cf4861af834f25",eW.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinBType:i,packageId:s}=e;t.moveCall({target:`${s??eW.LAST_PACKAGE_ID}::alphafi_lsd_router::swap`,typeArguments:[i],arguments:[o,t.object(r),t.object(l),t.pure.bool(n),t.pure.u64(a)]})},(ez=t2||(t2={})).MEMEZ_AV_OBJ_ID="0x2319e3e76dfad73d8f4684bdbf42be4f32d8ce4521dd61becc8261dc918d82c0",ez.MEMEZ_FUN_OBJ_ID="0x943948644f06942b8b660ca541b10a05f6a7be23ce4069944a3665e7e698930d",ez.IPX_TREASURY_STANDARD_OBJ_ID="0x051e11b667659192917db94e5175fa066909d4dfc04d2663528f499c4afc6999",(eQ=t5||(t5={})).LAST_PACKAGE_ID="0x8b1e84ed9bc79d31160600254d65810f6bc6d2352f174a60ed041017d0a2a87a",eQ.swap=function(e){c(e.protocol===ri.BLASTFUN,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,packageId:s}=e;t.moveCall({target:`${s??eQ.LAST_PACKAGE_ID}::blastfun_router::swap`,typeArguments:[r,a],arguments:[o,t.object(t2.MEMEZ_FUN_OBJ_ID),t.object(t2.IPX_TREASURY_STANDARD_OBJ_ID),t.object(t2.MEMEZ_AV_OBJ_ID),t.pure.bool(n),t.pure.u64(i)]})},(t8||(t8={})).GLOBAL_CONFIG_OBJ_ID="0x03db251ba509a8d5d8777b6338836082335d93eecbdd09a11e190a1cff51c352",(eZ=t9||(t9={})).LAST_PACKAGE_ID="0x9f8397124b6bdb55aeb7b5e43761e0e4dc94b9e22e94b1b25d8211d99df422d5",eZ.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinAType:i,coinBType:s,packageId:c}=e;t.moveCall({target:`${c??eZ.LAST_PACKAGE_ID}::bluefin_clmm_router::swap`,typeArguments:[i,s],arguments:[o,t.object(t8.GLOBAL_CONFIG_OBJ_ID),t.object(r),t.pure.bool(n),t.pure.u64(a),t.object(u)]})},(t7||(t7={})).DEX_INFO_OBJ_ID="0x3f2d9f724f4a1ce5e71676448dc452be9a6243dac9c5b975a588c8c867066e92",(e0=oe||(oe={})).LAST_PACKAGE_ID="0xf52bdd65ee347e8994170f8c331cf0c23a55281b3282467f14ccbb3e2a7f928f",e0.swap=function(e){let{txb:t,swapContext:o,aToB:r,amountIn:a,coinAType:n,coinBType:i,packageId:s}=e;t.moveCall({target:`${s??e0.LAST_PACKAGE_ID}::bluemove_cpmm_router::swap`,typeArguments:[n,i],arguments:[o,t.object(t7.DEX_INFO_OBJ_ID),t.pure.bool(r),t.pure.u64(a)]})},(ot||(ot={})).ORACLE_OBJ_ID="0xfa3975b98f3d0e3df18ed88ae6e69db31836b3f4212df02fae144b1e5a89ca8e",(e1=oo||(oo={})).LAST_PACKAGE_ID="0x2dd7b04509f332bdb93a8f228ab5c40b34baee4645b2ebe5e5fa2c3502b2c088",e1.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??e1.LAST_PACKAGE_ID}::bolt_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(ot.ORACLE_OBJ_ID),t.object(u),t.pure.u64(s),t.pure.bool(i)]})},(or||(or={})).GLOBAL_CONFIG="0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f",(e4=oa||(oa={})).LAST_PACKAGE_ID="0xb3dbb229464cb14b9f8cfa087e5b162623c8f485395dc9b975e263a5ee7051e4",e4.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??e4.LAST_PACKAGE_ID}::cetus_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(or.GLOBAL_CONFIG),t.object(n),t.pure.bool(i),t.pure.u64(s),t.object(u)]})},(e6=on||(on={})).GLOBAL_CONFIG_OBJ_ID="0xf31b605d117f959b9730e8c07b08b856cb05143c5e81d5751c90d2979e82f599",e6.VERSIONED_OBJ_ID="0x05370b2d656612dd5759cbe80463de301e3b94a921dfc72dd9daa2ecdeb2d0a8",(e3=oi||(oi={})).LAST_PACKAGE_ID="0x9ab3ba62b4327a7d90e4aed1c025b62736f035911ad7bab830c065ec84ef1ffa",e3.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinAType:i,coinBType:s,packageId:c}=e,l=[o,t.object(on.GLOBAL_CONFIG_OBJ_ID),t.object(on.VERSIONED_OBJ_ID),t.object(r),t.pure.bool(n),t.pure.u64(a),t.object(u)];t.moveCall({target:`${c??e3.LAST_PACKAGE_ID}::cetus_dlmm_router::swap`,typeArguments:[i,s],arguments:l})},(e2=os||(os={})).GLOBAL_CONFIG="0x699d455ab8c5e02075b4345ea1f91be55bf46064ae6026cc2528e701ce3ac135",e2.DEEP_TYPE="0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP",(e5=oc||(oc={})).LAST_PACKAGE_ID="0xff274b63c0f6e3a01f3dd0e923aefcb3146e05e2f6bef4ae339e2703b085f8ed",e5.swap=function(e){c(e.protocol===ri.DEEPBOOK_V3,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:s,deepFeeCoin:l,packageId:d}=e,p=l||t.moveCall({target:"0x2::coin::zero",typeArguments:[os.DEEP_TYPE]});t.moveCall({target:`${d??e5.LAST_PACKAGE_ID}::deepbook_v3_router::swap`,typeArguments:[r,a],arguments:[o,t.object(os.GLOBAL_CONFIG),t.object(n),t.pure.u64(s),t.pure.bool(i),p,t.object(u)]})},(ou||(ou={})).GLOBAL_OBJ_ID="0x935229a3c32399e9fb207ec8461a54f56c6af5744c64442435ac217ab28f0d59",(e8=ol||(ol={})).LAST_PACKAGE_ID="0xfd86c0308327eae31c04560460ee6190220e4ae1cdf5b999eef1110bf0b0f2b8",e8.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??e8.LAST_PACKAGE_ID}::dip_cpmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(ou.GLOBAL_OBJ_ID),t.object(r),t.pure.bool(i),t.pure.u64(s)]})},(od||(od={})).FERRA_GLOBAL_CONFIG_ID="0x2cd8382c19e6994f16df204e9b8cddd04bdc486c251de75ac66ac4e48e3e7081",(e9=op||(op={})).LAST_PACKAGE_ID="0x70c4318f67d88ebe4e83bacad15f9e2f5c8becd77695f63dc4bd9393730851cd",e9.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:s,packageId:c}=e;t.moveCall({target:`${c??e9.LAST_PACKAGE_ID}::ferra_clmm_router::swap`,typeArguments:[i,s],arguments:[o,t.object(od.FERRA_GLOBAL_CONFIG_ID),t.object(r),t.pure.bool(a),t.pure.u64(n),t.object("0x6")]})},(o_||(o_={})).FERRA_GLOBAL_CONFIG_ID="0x5c9dacf5a678ea15b8569d65960330307e23d429289ca380e665b1aa175ebeca",(e7=om||(om={})).LAST_PACKAGE_ID="0x686e9eb19b04d46374c3fb82cb4ebb7b24ef8a9ae13f403915f4ae347e0f6593",e7.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:s,packageId:c}=e;t.moveCall({target:`${c??e7.LAST_PACKAGE_ID}::ferra_dlmm_router::swap`,typeArguments:[i,s],arguments:[o,t.object(o_.FERRA_GLOBAL_CONFIG_ID),t.object(r),t.pure.bool(a),t.pure.u64(n),t.object(u)]})},(te=of||(of={})).POOL_REGISTRY_OBJ_ID="0x27565d24a4cd51127ac90e4074a841bbe356cca7bf5759ddc14a975be1632abc",te.VERSIONED_OBJ_ID="0x67624a1533b5aff5d0dfcf5e598684350efd38134d2d245f475524c03a64e656",(tt=og||(og={})).LAST_PACKAGE_ID="0x350a752d3388165e578cc33a39655a6da83613cf4e58c8d9d0723711c2603e17",tt.swap=function(e){c(e.protocol===ri.FLOWX_CLMM);let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolFeeRate:n,amountIn:i,aToB:s,packageId:l}=e;t.moveCall({target:`${l??tt.LAST_PACKAGE_ID}::flowx_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(of.POOL_REGISTRY_OBJ_ID),t.object(of.VERSIONED_OBJ_ID),t.pure.u64(n),t.pure.u64(i),t.pure.bool(s),t.object(u)]})},(oA||(oA={})).CONTAINER_OBJ_ID="0xb65dcbf63fd3ad5d0ebfbf334780dc9f785eff38a4459e37ab08fa79576ee511",(to=ob||(ob={})).LAST_PACKAGE_ID="0xd95b440ad340bb6cbf571897d312e43d4b6de37b60c69ef714c94b9835cb8866",to.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,packageId:s}=e;t.moveCall({target:`${s??to.LAST_PACKAGE_ID}::flowx_cpmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(oA.CONTAINER_OBJ_ID),t.pure.bool(n),t.pure.u64(i)]})},(tr=oI||(oI={})).GLOBAL_CONFIG_OBJ_ID="0xe93baa80cb570b3a494cbf0621b2ba96bc993926d34dc92508c9446f9a05d615",tr.REWARDER_VAULT_OBJ_ID="0xfb971d3a2fb98bde74e1c30ba15a3d8bef60a02789e59ae0b91660aeed3e64e1",tr.STATS_OBJ_ID="0x6822a33d1d971e040c32f7cc74507010d1fe786f7d06ab89135083ddb07d2dc2",tr.PRICE_PROVIDER_OBJ_ID="0x854b2d2c0381bb656ec962f8b443eb082654384cf97885359d1956c7d76e33c9",(ta=oT||(oT={})).LAST_PACKAGE_ID="0xf0bf13b5baaf3d368f165e846b919294bed79a3ab3ab0c9bd1e75f23533e44a5",ta.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??ta.LAST_PACKAGE_ID}::fullsail_clmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(oI.GLOBAL_CONFIG_OBJ_ID),t.object(oI.REWARDER_VAULT_OBJ_ID),t.object(oI.STATS_OBJ_ID),t.object(oI.PRICE_PROVIDER_OBJ_ID),t.object(r),t.pure.bool(i),t.pure.u64(s),t.object(u)]})},(tn=oC||(oC={})).LAST_PACKAGE_ID="0x8969ed3e56c1dbdaf9df52f812d69c6c45fe5a4bab7093c88f5a8697a409398e",tn.swap=function(e){c(e.protocol===ri.HAEDAL_CPMM);let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,pythPriceFeedIdA:l,pythPriceFeedIdB:d,pythInfoObjectIdMap:p,packageId:_}=e,m=p.get(l),f=p.get(d);c(m,"Not found priceInfoAId in pythObjectIdMap"),c(f,"Not found priceInfoBId in pythObjectIdMap"),t.moveCall({target:`${_??tn.LAST_PACKAGE_ID}::haedal_cpmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(m),t.object(f),t.pure.u64(s),t.pure.bool(i),t.object(u)]})},(ti=oO||(oO={})).LAST_PACKAGE_ID="0x5d01f22e5471a5912a88e15d62fdcb922beba65b8e8dfe1a715aebf743194f4a",ti.swap=function(e){c(e.protocol===ri.HAEDAL_CPMM_V2);let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,pythPriceFeedIdBase:l,pythInfoObjectIdMap:d,packageId:p}=e,_=d.get(l);c(_,"Not found pythPriceBaseId in pythObjectIdMap"),t.moveCall({target:`${p??ti.LAST_PACKAGE_ID}::haedal_cpmm_v2_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(_),t.pure.u64(s),t.pure.bool(i),t.object(u)]})},(ts=oM||(oM={})).LAST_PACKAGE_ID="0x1644956086caa5eb791eba152f3b69ba862b3a5382ef0e1d8a474ab158aafa1a",ts.swap=function(e){let{txb:t,swapContext:o,aToB:r,amountIn:a,poolId:n,packageId:i}=e;t.moveCall({target:`${i??ts.LAST_PACKAGE_ID}::haedal_lsd_router::swap`,arguments:[o,t.object(n),t.object(l),t.pure.bool(r),t.pure.u64(a)]})},(oE||(oE={})).STAKING_OBJ_ID="0x10b9d30c28448939ce6c4d6c6e0ffce4a7f8a4ada8248bdad09ef8b70e4a3904",(oh||(oh={})).VALIDATOR_ID="0x7b3ba6de2ae58283f60d5b8dc04bb9e90e4796b3b2e0dea75569f491275242e7",(tc=oy||(oy={})).LAST_PACKAGE_ID="0x7be077dd73c85e788c2a49a51f0627066d81d3dc9982c268e3691265a81d544d",tc.swap=function(e){c(e.protocol===ri.HAEDAL_LSD_WAL),c(e.aToB,"HAEDAL_LSD_WAL does not support bToA swap");let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,packageId:i}=e;t.moveCall({target:`${i??tc.LAST_PACKAGE_ID}::haedal_wal_lsd_router::swap`,arguments:[o,t.object(oE.STAKING_OBJ_ID),t.object(r),t.pure.id(oh.VALIDATOR_ID),t.pure.bool(a),t.pure.u64(n)]})},(oS||(oS={})).VERSION_OBJ_ID="0xf5145a7ac345ca8736cf8c76047d00d6d378f30e81be6f6eb557184d9de93c78",(tu=oF||(oF={})).LAST_PACKAGE_ID="0xcf141e1d18ff609b2ac56532b391f7648fc55e28696efe354186f5109c0eff06",tu.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??tu.LAST_PACKAGE_ID}::kriya_clmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(oS.VERSION_OBJ_ID),t.pure.bool(i),t.pure.u64(s),t.object(u)]})},(tl=oP||(oP={})).LAST_PACKAGE_ID="0x50d37f46df75ef125ce656d4ac91b31b2cf0c1195752a96558561d163e45c223",tl.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??tl.LAST_PACKAGE_ID}::kriya_cpmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.pure.bool(i),t.pure.u64(s)]})},(td=oB||(oB={})).FACTORY_OBJ_ID="0xedb456e93e423dd75a8ddebedd9974bb661195043027e32ce01649d6ccee74cf",td.GLOBAL_CONFIG_OBJ_ID="0x4c4e1402401f72c7d8533d0ed8d5f8949da363c7a3319ccef261ffe153d32f8a",(tp=ow||(ow={})).LAST_PACKAGE_ID="0x950f94d33060c0575389c9f84fabab1e140776c6c84389d4237a0c2687a7adc9",tp.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??tp.LAST_PACKAGE_ID}::magma_almm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(oB.FACTORY_OBJ_ID),t.object(oB.GLOBAL_CONFIG_OBJ_ID),t.pure.u64(s),t.pure.bool(i),t.object(u)]})},(oR||(oR={})).GLOBAL_CONFIG="0x4c4e1402401f72c7d8533d0ed8d5f8949da363c7a3319ccef261ffe153d32f8a",(t_=oD||(oD={})).LAST_PACKAGE_ID="0xbe5f590339c55ca8ebbf93cedfb68aafd479d71e1c57043246f7dcf352745242",t_.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??t_.LAST_PACKAGE_ID}::magma_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(oR.GLOBAL_CONFIG),t.object(n),t.pure.bool(i),t.pure.u64(s),t.object(u)]})},(tm=ox||(ox={})).LATEST_PACKAGE_ID="0xfab91518218f10204b083dba1e62c8bfc23f14fb87742158043e5faec4670ec4",tm.swap=function(e){let t,o,r;c(e.protocol===ri.METASTABLE,"Invalid protocol");let{txb:a,swapContext:n,aToB:i,amountIn:s,coinAType:u,coinBType:l,poolId:d,metaCoin:p,packageId:_}=e,[m,f]=i?[u,l]:[l,u];m===p?(r="swap_from_meta_coin",t=[p,f],o=[tv.createCap({coinType:f,createCapFunc:"create_withdraw_cap",...e})]):f===p?(r="swap_to_meta_coin",t=[p,m],o=[tv.createCap({coinType:m,createCapFunc:"create_deposit_cap",...e})]):(r="swap",t=[p,m,f],o=[tv.createCap({coinType:m,createCapFunc:"create_deposit_cap",...e}),tv.createCap({coinType:f,createCapFunc:"create_withdraw_cap",...e})]),a.moveCall({target:`${_??tm.LATEST_PACKAGE_ID}::metastable_router::${r}`,typeArguments:t,arguments:[n,a.object(d),a.object(tv.VERSION_OBJ_ID),...o,a.pure.u64(s)]})},(oL||(oL={})).VERSION_OBJ_ID="0x2375a0b1ec12010aaea3b2545acfa2ad34cfbba03ce4b59f4c39e1e25eed1b2a",(tf=ov||(ov={})).LAST_PACKAGE_ID="0xba7ab4c8c39024fa0052bb4f00548a2e7b60742bb4ed0b87bc1d945fd8209102",tf.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??tf.LAST_PACKAGE_ID}::momentum_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(n),t.pure.bool(i),t.pure.u64(s),t.object(oL.VERSION_OBJ_ID),t.object(u)]})},(ok||(ok={})).CONFIGURATION_OBJ_ID="0xd746495d04a6119987c2b9334c5fefd7d8cff52a8a02a3ea4e3995b9a041ace4",(tg=oN||(oN={})).LAST_PACKAGE_ID="0x5a259db4b1d17fafc09185c9a71bac36f25f9ee462e72894c8610e5a58b79f8f",tg.swap=function(e){c(e.protocol===ri.MOVEPUMP,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,expectedAmountOut:s,packageId:l}=e;t.moveCall({target:`${l??tg.LAST_PACKAGE_ID}::movepump_router::swap`,typeArguments:[n?a:r],arguments:[o,t.object(ok.CONFIGURATION_OBJ_ID),t.object(t7.DEX_INFO_OBJ_ID),t.object(u),t.pure.u64(s),t.pure.bool(n),t.pure.u64(i)]})},(oU||(oU={})).STATE_OBJ_ID="0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",(tA=oj||(oj={})).LAST_PACKAGE_ID="0xd615fed37d692280047068e80d3a6bb685aa9d574608054c9df881d6a7378fab",tA.swap=function(e){let t,o;c(e.protocol===ri.OBRIC);let{txb:r,swapContext:a,poolId:n,coinAType:i,coinBType:s,aToB:l,amountIn:d,pythInfoObjectIdMap:p,packageId:_}=e;"priceInfoObjIdA"in e?(t=e.priceInfoObjIdA,o=e.priceInfoObjIdB):(t=p.get(e.pythPriceFeedIdA),o=p.get(e.pythPriceFeedIdB),c(t,"Not found priceInfoAId in pythObjectIdMap"),c(o,"Not found priceInfoBId in pythObjectIdMap")),r.moveCall({target:`${_??tA.LAST_PACKAGE_ID}::obric_router::swap`,typeArguments:[i,s],arguments:[a,r.object(n),r.pure.u64(d),r.pure.bool(l),r.object(oU.STATE_OBJ_ID),r.object(t),r.object(o),r.object(u)]})},(tb=oG||(oG={})).VERSION_OBJ_ID="0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7",tb.MARKET_OBJ_ID="0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9",(tI=oK||(oK={})).LAST_PACKAGE_ID="0xea409bb08c8a09e4127f859d9c36b8b62ca609282aa1e443091db6b7a7409ee7",tI.swap=function(e){c(e.protocol===ri.SCALLOP);let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,scoinTreasury:s,packageId:l}=e;t.moveCall({target:`${l??tI.LAST_PACKAGE_ID}::scallop_router::swap`,typeArguments:[r,a],arguments:[o,t.object(oG.VERSION_OBJ_ID),t.object(oG.MARKET_OBJ_ID),t.object(s),t.pure.u64(i),t.pure.bool(n),t.object(u)]})},(oq||(oq={})).ORACLE_HOLDER_OBJ_ID="0x8c36ea167c5e6da8c3d60b4fc897416105dcb986471bd81cfbfd38720a4487c0",(tT=o$||(o$={})).LAST_PACKAGE_ID="0x918a30e2a05d24ea9451e2d2900d055f74e6752f2e10251fa50c7175831b1958",tT.swap=function(e){c(e.protocol===ri.SEVENK_CPMM,"Invalid protocol for sevenk_cpmm_router swap");let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,coinLpType:u,oracleConfigA:l,oracleConfigB:d,pythPriceFeedIdA:p,pythPriceFeedIdB:_,pythInfoObjectIdMap:m,packageId:f}=e,g=m.get(p),A=m.get(_);c(g,"Not found priceInfoAId in pythObjectIdMap"),c(A,"Not found priceInfoBId in pythObjectIdMap");let b=tQ.newHolder(t);tQ.getPrice({txb:t,coinPriceId:p,holder:b,coinOracleId:l}),tQ.getPrice({txb:t,coinPriceId:_,holder:b,coinOracleId:d}),t.moveCall({target:`${f??tT.LAST_PACKAGE_ID}::sevenk_cpmm_router::swap`,typeArguments:[a,n,u],arguments:[o,t.object(r),t.object(oq.ORACLE_HOLDER_OBJ_ID),t.pure.bool(i),t.pure.u64(s)]})},(oY||(oY={})).CONFIGURATION_OBJ_ID="0xe79fff6c77d81f9a8efb729e25bf0037deec42518d40b978f274a4915d7e1ec9",(tC=oV||(oV={})).LAST_PACKAGE_ID="0x0a5dc665dc3c1c846a6d1e00811c84cae3510c839ab4dc0873f85dc8908d0606",tC.swap=function(e){c(e.protocol===ri.SEVENK_FUN,"Invalid protocol");let{txb:t,swapContext:o,aToB:r,amountIn:a,coinBType:n,packageId:i}=e;t.moveCall({target:`${i??tC.LAST_PACKAGE_ID}::sevenk_fun_router::swap`,typeArguments:[n],arguments:[o,t.object(oY.CONFIGURATION_OBJ_ID),t.object(oA.CONTAINER_OBJ_ID),t.object(u),t.pure.bool(r),t.pure.u64(a)]})},(tO=oJ||(oJ={})).LAST_PACKAGE_ID="0xa6d129c0b314e85d1bc5aecf305d64212bdd5d466457531f4f624fef5f2e7751",tO.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinBType:i,packageId:s}=e;t.moveCall({target:`${s??tO.LAST_PACKAGE_ID}::springsui_router::swap`,typeArguments:[i],arguments:[o,t.object(r),t.object(l),t.pure.u64(a),t.pure.bool(n)]})},(oH||(oH={})).CONFIG_OBJ_ID="0x881fd0a12ca4fa48991f5c27ba57d17f1ec147fa15f43b3cb760cc3bd7ba9402",(tM=oX||(oX={})).LAST_PACKAGE_ID="0xa314a64962ed4b91a6b4085de4dff2e631fd4c731dbca671a74489955df322ef",tM.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:s,packageId:c}=e,u=[o,t.object(r),t.object(oH.CONFIG_OBJ_ID),t.pure.bool(a),t.pure.u64(n),t.object("0x6")];t.moveCall({target:`${c??tM.LAST_PACKAGE_ID}::srm_cpmm_router::swap`,typeArguments:[i,s],arguments:u})},(th=(tE=oW||(oW={})).Oracle||(tE.Oracle={})).PACKAGE_ID="0xe84b649199654d18c38e727212f5d8dacfc3cf78d60d0a7fc85fd589f280eb2b",th.getPythPrice=function(e){let{txb:t,oracleRegistryId:o,priceInfoId:r,oracleIndex:a}=e;return t.moveCall({target:`${th.PACKAGE_ID}::oracles::get_pyth_price`,typeArguments:[],arguments:[t.object(o),t.object(r),t.pure.u64(a),t.object(u)]})};var rq=oz||(oz={});function r$(e,t){c(e.protocol===ri.STEAMM_OMM||e.protocol===ri.STEAMM_OMM_V2,"Invalid protocol for steamm _swapOmm swap");let{txb:o,swapContext:r,poolId:a,coinAType:n,coinBType:i,aToB:s,amountIn:l,bankAId:d,bankBId:p,lendingMarketId:_,lendingMarketType:m,bCoinAType:f,bCoinBType:g,lpBCoinType:A,pythPriceFeedIdA:b,pythPriceFeedIdB:I,pythInfoObjectIdMap:T,oracleRegistryId:C,oracleIndexA:O,oracleIndexB:M,packageId:E}=e,h=T.get(b),y=T.get(I);c(h,"Not found priceInfoAId in pythObjectIdMap"),c(y,"Not found priceInfoBId in pythObjectIdMap");let S=oW.Oracle.getPythPrice({txb:o,oracleRegistryId:C,priceInfoId:h,oracleIndex:O}),F=oW.Oracle.getPythPrice({txb:o,oracleRegistryId:C,priceInfoId:y,oracleIndex:M});o.moveCall({target:`${E??rq.LAST_PACKAGE_ID}::${rY(t)}::swap`,typeArguments:[m,n,i,f,g,A],arguments:[r,o.object(a),o.object(d),o.object(p),o.object(_),S,F,o.pure.bool(s),o.pure.u64(l),o.object(u)]})}function rY(e){switch(e){case 0:return"steamm_omm_router";case 1:return"steamm_omm_v2_router"}}function rV(e){let{amountOut:t,aggregatorFeeBps:o,partnerFeeBps:r}=e,a=rJ(t,o);return r&&(a=rJ(a,r)),a}function rJ(e,t){let o=BigInt(e)*BigInt(t)/BigInt(1e4);return(BigInt(e)-o).toString()}function rH(e){return Math.floor(100*e)}rq.LAST_PACKAGE_ID="0xd606880d67c399f349758111a91582d5515f31dd051632402653d872818f594e",rq.swapCpmm=function(e){c(e.protocol===ri.STEAMM_CPMM,"Invalid protocol for steamm_cpmm_router swap");let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,bankAId:l,bankBId:d,lendingMarketId:p,lendingMarketType:_,bCoinAType:m,bCoinBType:f,lpBCoinType:g}=e;t.moveCall({target:`${rq.LAST_PACKAGE_ID}::steamm_cpmm_router::swap`,typeArguments:[_,a,n,m,f,g],arguments:[o,t.object(r),t.object(l),t.object(d),t.object(p),t.pure.bool(i),t.pure.u64(s),t.object(u)]})},rq.swapOmm=function(e){r$(e,0)},rq.swapOmmV2=function(e){r$(e,1)},rq.getOmmRouterModule=rY,(ty=oQ||(oQ={})).LAST_PACKAGE_ID="0x7a1cf89025a60161e84809784d772263231fad08a7cb76a88ca1ba69e0a656da",ty.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??ty.LAST_PACKAGE_ID}::suiswap_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.pure.bool(i),t.pure.u64(s),t.object(u)]})},(tS=oZ||(oZ={})).VERSIONED="0x0309b66202e9aaf470081fffee7ffc0fbd50e3b7400d4f56fd06502e4dbbd676",tS.POOL_REGISTRY="0xcd0a614c4cbbf173f59dee2602c43a1717f283215ed7a0bb1d55d786af16fbcd",(tF=o0||(o0={})).LAST_PACKAGE_ID="0x79957062a7424ed9c2eb83932e4c4fcc3fee67ab3c8f6f874c54e417178bbb7a",tF.swap=function(e){c(e.protocol===ri.TRADEPORT_CLMM,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,poolFeeRate:s,packageId:l}=e;t.moveCall({target:`${l??tF.LAST_PACKAGE_ID}::tradeport_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(oZ.POOL_REGISTRY),t.pure.u64(s),t.object(oZ.VERSIONED),t.pure.bool(n),t.pure.u64(i),t.object(u)]})},(o1||(o1={})).POOL_VERSIONED="0xf1cf0e81048df168ebeb1b8030fad24b3e0b53ae827c25053fff0779c1445b6f",(tP=o4||(o4={})).LAST_PACKAGE_ID="0x512d63711ff38353fb167238b0529001b6871c1727c67ce3bf6ec23556b0f1da",tP.swap=function(e){c(e.protocol===ri.TURBOS_CLMM,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,coinFeeType:n,poolId:i,aToB:s,amountIn:l,packageId:d}=e;t.moveCall({target:`${d??tP.LAST_PACKAGE_ID}::turbos_clmm_router::swap`,typeArguments:[r,a,n],arguments:[o,t.object(i),t.object(o1.POOL_VERSIONED),t.pure.bool(s),t.pure.u64(l),t.object(u)]})},(o6||(o6={})).CONFIGURATION_OBJ_ID="0xd86685fc3c3d989385b9311ef55bfc01653105670209ac4276ebb6c83d7df928",(tB=o3||(o3={})).LAST_PACKAGE_ID="0x1fad13f09797aa87a4385d0b1efb2de963ba16742447b1ad5a3b0c5b1d1c588b",tB.swap=function(e){c(e.protocol===ri.TURBOS_FUN,"Invalid protocol");let{txb:t,swapContext:o,coinBType:r,aToB:a,amountIn:n,packageId:i}=e;t.moveCall({target:`${i??tB.LAST_PACKAGE_ID}::turbos_fun_router::swap`,typeArguments:[r],arguments:[o,t.object(o6.CONFIGURATION_OBJ_ID),t.object(u),t.pure.bool(a),t.pure.u64(n)]})},(o2||(o2={})).VOLO_CERT_METADATA_ID="0x680cd26af32b2bde8d3361e804c53ec1d1cfe24c7f039eb7f549e8dfde389a60",(tw=o5||(o5={})).LAST_PACKAGE_ID="0x7c8d95256342f904d5f251776903a17905d87c95f387b3a35cc2aecc23b3c042",tw.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,packageId:i}=e;t.moveCall({target:`${i??tw.LAST_PACKAGE_ID}::volo_router::swap`,arguments:[o,t.object(r),t.object(o2.VOLO_CERT_METADATA_ID),t.object(l),t.pure.bool(a),t.pure.u64(n)]})},(tR=o8||(o8={})).RouterSwapFunctionMap={[ri.AFTERMATH_CPMM]:t1.swap,[ri.AFTERMATH_LSD]:t6.swap,[ri.ALPHAFI_LSD]:t3.swap,[ri.BLASTFUN]:t5.swap,[ri.BLUEFIN_CLMM]:t9.swap,[ri.BLUEMOVE_CPMM]:oe.swap,[ri.BOLT]:oo.swap,[ri.CETUS_CLMM]:oa.swap,[ri.CETUS_DLMM]:oi.swap,[ri.DEEPBOOK_V3]:oc.swap,[ri.DIP_CPMM]:ol.swap,[ri.FERRA_CLMM]:op.swap,[ri.FERRA_DLMM]:om.swap,[ri.FLOWX_CPMM]:ob.swap,[ri.FLOWX_CLMM]:og.swap,[ri.FULLSAIL_CLMM]:oT.swap,[ri.HAEDAL_CPMM]:oC.swap,[ri.HAEDAL_CPMM_V2]:oO.swap,[ri.HAEDAL_LSD]:oM.swap,[ri.HAEDAL_LSD_WAL]:oy.swap,[ri.KRIYA_CLMM]:oF.swap,[ri.KRIYA_CPMM]:oP.swap,[ri.MAGMA_ALMM]:ow.swap,[ri.MAGMA_CLMM]:oD.swap,[ri.METASTABLE]:ox.swap,[ri.MOMENTUM_CLMM]:ov.swap,[ri.MOVEPUMP]:oN.swap,[ri.OBRIC]:oj.swap,[ri.SCALLOP]:oK.swap,[ri.SEVENK_CPMM]:o$.swap,[ri.SEVENK_FUN]:oV.swap,[ri.SPRINGSUI]:oJ.swap,[ri.SRM_CPMM]:oX.swap,[ri.STEAMM_CPMM]:oz.swapCpmm,[ri.STEAMM_OMM]:oz.swapOmm,[ri.STEAMM_OMM_V2]:oz.swapOmmV2,[ri.SUISWAP_CPMM]:oQ.swap,[ri.TRADEPORT_CLMM]:o0.swap,[ri.TURBOS_CLMM]:o4.swap,[ri.TURBOS_FUN]:o3.swap,[ri.VOLO]:o5.swap},tR.swap=function(e){(0,tR.RouterSwapFunctionMap[e.protocol])(e)},(o9||(o9={})).buildAggregatorSwapTransaction=async function(e){let{tx:t,coinOutType:o,tradePaths:r,pythConnections:a,pythClient:n,packageIdMap:i}=e,s=tD.openSwap(e),c=await tZ.updatePythPriceIDs({priceFeedIds:function(e){let t=new Set;for(let o of e)"pythPriceFeedIdA"in o&&t.add(o.pythPriceFeedIdA),"pythPriceFeedIdB"in o&&t.add(o.pythPriceFeedIdB),"pythPriceFeedIdBase"in o&&t.add(o.pythPriceFeedIdBase),"pythPriceFeedIdMeta"in o&&t.add(o.pythPriceFeedIdMeta),"pythPriceFeedIdEth"in o&&t.add(o.pythPriceFeedIdEth);return[...t]}(r),txb:t,pythClient:n,pythConnections:a});for(let e=0;e<r.length;e++){let o=r[e],[a,n]=o.aToB?[o.coinInType,o.coinOutType]:[o.coinOutType,o.coinInType];o8.swap({...o,txb:t,swapContext:s,amountIn:o.amountIn,coinAType:a,coinBType:n,packageId:i?.get(o.protocol),pythInfoObjectIdMap:c})}return tD.closeSwap({tx:t,coinOutType:o,swapSession:s})};let rX=tZ.newPythConnections(),rW=tZ.newPythClient();var rz=o7||(o7={});function rQ(e){var t,o;let r,a,{buildTxParam:n,rawRouteParam:i}=e;switch(i.sourceRoute){case"CETUS":r=tk.convert(i.rawRoute);break;case"FLOWX":r=tN.convert(i.rawRoute);break;case"SEVENK":r=tx.convert(i.rawRoute);break;default:throw Error("Unsupported source route")}let s=rH(n.aggregatorFeeRatePercent),c=n.partnerFeeRatePercent?rH(n.partnerFeeRatePercent):void 0,u=n.expectedAmountOut??rV({amountOut:r.amountOut,aggregatorFeeBps:s,partnerFeeBps:c}),l=(o=(t=n.slippagePercent)?Math.floor(100*t):100,a=BigInt(u)*BigInt(o??100)/BigInt(1e4),(BigInt(u)-a).toString());return{...n,...r,expectedAmountOut:u,minAmountOut:l,aggregatorFeeBps:s,partnerFeeBps:c,pythConnections:n.pythConnections??rX,pythClient:n.pythClient??rW}}rz.toMetaAggregatorBuildTxParams=rQ,rz.buildTx=function(e){let t=rQ(e);return o9.buildAggregatorSwapTransaction(t)};let rZ=async(e,t,o)=>t<=0?e():new Promise((r,a)=>{let n=setTimeout(()=>a(new rN(`Timeout ${o??"operation"}`,rk.TIMEOUT,{timeout:t})),t);e().then(r).catch(a).finally(()=>clearTimeout(n))}),r0=(e,t,o,r=0)=>{if(t>1e4)throw Error("Slippage must be less than 100%");if(o>1e4)throw Error("Commission must be less than 100%");if(r>1e4)throw Error("Tip must be less than 100%");let a=BigInt(e),n=a*BigInt(r||0)/10000n,i=(a-n)*BigInt(o)/10000n,s=a-n-i;return{tipAmount:n,minAmount:s*BigInt(1e4-t)/10000n,commissionAmount:i,expectedAmount:s.toString(10)}},r1={SEVENK:{},FLOWX:{},CETUS:{}};class r4{client;jsonRpcClient;providers={};options;constructor(e){this.options={providers:{...r1,...e?.providers},clients:e.clients,slippageBps:e?.slippageBps??100,hermesApi:e?.hermesApi??tZ.PYTH_URLS,partner:e?.partner??eO,partnerCommissionBps:e?.partnerCommissionBps??0,tipBps:e?.tipBps??0},this.client=e.clients.grpc,this.jsonRpcClient=e.clients.jsonRpc}async getQuoteClient(e){let t=this.providers[e];if(t)return t;let o=this.options.providers[e];switch(rN.assert(!!o,`Provider not found: ${e}`,rk.PROVIDER_NOT_FOUND,{provider:e}),e){case"SEVENK":{let{Bluefin7kClient:e}=await Promise.resolve(re).catch(r6("SEVENK"));this.providers.SEVENK=new e(o,this.client);break}case"FLOWX":{let{FlowxClient:e}=await Promise.resolve(ro).catch(r6("FLOWX"));this.providers.FLOWX=new e(o);break}case"CETUS":{let{CetusClient:e}=await Promise.resolve(rt).catch(r6("CETUS"));this.providers.CETUS=new e(o,this.options,this.jsonRpcClient);break}default:throw new rN(`Provider not supported: ${e}`,rk.PROVIDER_NOT_SUPPORTED,{provider:e})}return this.providers[e]}async getQuoteByClient(e,t){return await rZ(async()=>{let o=await e.quote(t);return o?(o.amountOut=rV({amountOut:o.amountOut,partnerFeeBps:this.options.partnerCommissionBps,aggregatorFeeBps:this.options.tipBps}),o):null},t.timeout??2e3,`quote for ${e.kind} provider from ${t.coinTypeIn} to ${t.coinTypeOut}`)}async getQuote(e){let t={...e,coinTypeIn:_(e.coinTypeIn),coinTypeOut:_(e.coinTypeOut)};return(await Promise.allSettled(Object.entries(this.options.providers).filter(([e,t])=>!t.disabled).map(async([e])=>{let o=await this.getQuoteClient(e);return this.getQuoteByClient(o,t)}))).map(e=>"fulfilled"===e.status?e.value:(console.warn(e.reason),null)).filter(e=>null!==e)}async swap(e){let{quote:t,signer:o,tx:r,coinIn:a,slippageBps:n}=e,i=m(o);rN.assert(p(i),`Invalid signer address: ${o}`,rk.INVALID_SIGNER_ADDRESS,{signer:o}),r.setSender(i);let s=(n??this.options.slippageBps)/1e4,c=this.options.partner&&this.options.partner!==eO?this.options.partner:void 0,u=c&&this.options.partnerCommissionBps>0?this.options.partnerCommissionBps/1e4:void 0;return o7.buildTx({buildTxParam:{tx:r,inputCoin:a,expectedAmountOut:t.amountOut,slippagePercent:s,aggregatorFeeRatePercent:this.options.tipBps/1e4,aggregatorFeeRecipient:"0xdaf1c8ed29d89cd8f217f609bad0a668fa6f158c12000bfa5f93e670c99e24ff",partnerFeeRatePercent:u,partnerFeeRecipient:c,pythConnections:tZ.newPythConnections(this.options.hermesApi),pythClient:tZ.newPythClient(this.jsonRpcClient)},rawRouteParam:{...t}})}}let r6=e=>t=>{throw console.warn(`Please install ${{CETUS:"@cetusprotocol/aggregator-sdk",FLOWX:"@flowx-finance/sdk",SEVENK:"@bluefin-exchange/bluefin7k-aggregator-sdk"}[e]} to use ${e} provider`),t};class r3{sdk;_astrosAggregator;_aftermathAggregator;_sevenkAggregator;_cetusAggregator;_flowXAggregator;constructor(e){this.sdk=e,this._astrosAggregator=new rp({defaultTradeFee:e.options.tradeFee,astrosApiKey:e.options.astrosApiKey},e.suiJsonRpcClient),this._aftermathAggregator=new rd({defaultTradeFee:e.options.tradeFee,aftermathApiKey:e.options.aftermathApiKey,aftermathApiEndpoint:e.options.aftermathApiEndpoint},e.suiJsonRpcClient),this._sevenkAggregator=new rc({defaultTradeFee:e.options.tradeFee,sevenKApiKey:e.options.sevenKApiKey},e.suiClient),this._cetusAggregator=new r_({defaultTradeFee:e.options.tradeFee,cetusApiKey:e.options.cetusApiKey,cetusApiEndpoint:e.options.cetusApiEndpoint,cetusPartnerId:e.options.cetusPartnerId},e.suiJsonRpcClient),this._flowXAggregator=new rf({defaultTradeFee:e.options.tradeFee,flowxApiKey:e.options.flowxApiKey},e.suiClient)}get astrosAggregator(){return this._astrosAggregator}get aftermathAggregator(){return this._aftermathAggregator}get sevenkAggregator(){return this._sevenkAggregator}get cetusAggregator(){return this._cetusAggregator}get flowXAggregator(){return this._flowXAggregator}async getTradeRoute(e,t){let o;switch(e){case rm.ASTROS:{let e,r=await this._astrosAggregator.getTradeRoute(t);if(!r)return null;let a=rp.toCommonTradeRoutes(r,t.coinInType,t.coinOutType);if(!a)return null;e=t.tradeFee?t.tradeFee.tradeFeePercent:this.sdk.options.tradeFee.tradeFeePercent,a.amountOut=BigInt(new s(r.amount_out).multipliedBy(1-e).toFixed(0,3)),o={route:a,aggregatorRoute:r};break}case rm.AFTERMATH:{let e=await this._aftermathAggregator.getTradeRoute(t);if(!e)return null;let r=rd.toCommonTradeRoutes(e);if(!r)return null;o={route:r,aggregatorRoute:e};break}case rm.SEVENK:{let e=await this._sevenkAggregator.getTradeRoute(t);if(!e)return null;let r=rc.toCommonTradeRoutes(e);if(!r)return null;o={route:r,aggregatorRoute:e};break}case rm.CETUS:{let e=await this._cetusAggregator.getTradeRoute(t);if(!e)return null;let r=r_.toCommonTradeRoutes(e,t.coinInType,t.coinOutType);if(!r)return null;o={route:r,aggregatorRoute:e};break}case rm.FLOWX:{let e=await this._flowXAggregator.getTradeRoute(t);if(!e)return null;let r=rf.toCommonTradeRoutes(e);if(!r)return null;o={route:r,aggregatorRoute:e}}}return o}async getTransactionByRoute(e,t){switch(e){case rm.ASTROS:return this._astrosAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case rm.AFTERMATH:return this._aftermathAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage});case rm.SEVENK:return this._sevenkAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case rm.CETUS:return this._cetusAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case rm.FLOWX:return this._flowXAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee})}}async getTradeTransaction(e,t){let o=await this.getTradeRoute(e,{coinInAmount:t.coinInAmount,coinInType:t.coinInType,coinOutType:t.coinOutType,tradeFee:t.tradeFee,metaAggregator:t.metaAggregator});if(!o)return null;let r=await this.getTransactionByRoute(e,{walletAddress:t.walletAddress,completeRoute:o.aggregatorRoute,slippage:t.slippage,tradeFee:t.tradeFee});return{route:o.route,aggregatorRoute:o.aggregatorRoute,transaction:r}}async getTradeTransactionWithBestRate(e){let t=Object.keys(rm),o=await Promise.all(t.map(async t=>{try{return await this.getTradeRoute(t,e)}catch{return null}})),r=null,a=null;for(let e=0;e<o.length;e++){let n=o[e],i=t[e];if(n&&(!r||n.route.amountOut>r.route.amountOut)){r=n,a=i;continue}}if(!r||!a)return null;let n=await this.getTransactionByRoute(a,{walletAddress:e.walletAddress,completeRoute:r.aggregatorRoute,slippage:e.slippage,tradeFee:e.tradeFee});return{route:r.route,aggregatorRoute:r.aggregatorRoute,transaction:n}}async getAmountOut(e,t){let o=await this.getTradeRoute(e,t);return o?o.route.amountOut:null}async getBestAmountOut(e){let t=Object.keys(rm),o=null,r=null;for(let a of t){let t=await this.getAmountOut(a,e);null!==t&&(null===o||t>o)&&(o=t,r=a)}return null===o||null===r?null:{amountOut:o,aggregator:r}}}class r2{sdk;constructor(e){this.sdk=e}async getEstimatedAmountOut(e,t){let{coinInType:o,coinOutType:r}=t;c(o!==r,"coinInType and coinOutType must be different"),c(eI(o)||eI(r),"One of coinInType or coinOutType must be SUI");let a=eI(o);switch(e){case rD.MOONBAGS:if(a)return await tW.getCurveAmountAfterBuy({poolId:t.poolId,suiAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0},this.sdk.suiClient);return await tW.getSuiAmountAfterSell({poolId:t.poolId,curveAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0},this.sdk.suiClient);case rD.BLAST_FUN:if(a)return await tV.getCurveAmountAfterBuy({poolId:t.poolId,suiAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0});return await tV.getSuiAmountAfterSell({poolId:t.poolId,curveAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0});default:throw Error(`Unsupported bonding curve platform: ${e}`)}}async getTradeTransaction(e,t){let o,{coinInType:r,coinOutType:a}=t;c(r!==a,"coinInType and coinOutType must be different"),c(eI(r)||eI(a),"One of coinInType or coinOutType must be SUI");let n=eI(r);switch(e){case rD.MOONBAGS:o=n?await tz.getBuyTransaction(t,this.sdk.suiClient):await tz.getSellTransaction(t,this.sdk.suiClient);break;case rD.BLAST_FUN:o=n?await tJ.getBuyTransaction(t,this.sdk.suiClient):await tJ.getSellTransaction(t,this.sdk.suiClient);break;default:throw Error(`Unsupported bonding curve platform: ${e}`)}return o}}let r5={tradeFeePercent:.01,tradeFeeRecipientAddress:"0xdaf1c8ed29d89cd8f217f609bad0a668fa6f158c12000bfa5f93e670c99e24ff"};class r8{network;env;options;_suiGrpcClient;_suiJsonRpcClient;aggregatorModule;curveModule;constructor(e,t="mainnet",o="prod"){this.options=e,this.network=t,this.env=o,this._suiGrpcClient=e.clients.grpc,this._suiJsonRpcClient=e.clients.jsonRpc,this.aggregatorModule=new r3(this),this.curveModule=new r2(this)}get suiClient(){return this._suiGrpcClient}get suiJsonRpcClient(){return this._suiJsonRpcClient}}class r9{suiClient;constructor(e){this.suiClient=e}validatePrivateKey(e,t){c(e?.trim(),"Private key is required");let o=eu.fromSecretKey(e),r=o.getPublicKey().toSuiAddress();if(r!==t)throw Error(`Private key mismatch. Expected: ${t}, Got: ${r}`);return o}async createDraft(e,t,o){c(e?.trim(),"Sender address is required"),c(t?.trim(),"Recipient address is required"),c(e!==t,"Sender and recipient cannot be the same"),c(o>0n,"Transfer amount must be at least 1 MIST");try{let r=new i,[a]=r.splitCoins(r.gas,[o]);r.transferObjects([a],t),r.setSender(e);let{referenceGasPrice:n}=await this.suiClient.getReferenceGasPrice();r.setGasPrice(n);let s=await eT(this.suiClient,r,e,.1);r=await eC({inheritTx:r,sender:e,feeAmount:s,suiInputAmount:o},this.suiClient);let c=await r.build({client:this.suiClient}),u=Buffer.from(c).toString("base64"),l=await r.getDigest();return{sender:e,recipient:t,amountMIST:o,txDraftBase64:u,txDigest:l}}catch(e){throw Error(`Failed to create draft transaction: ${e instanceof Error?e.message:"Unknown error"}`)}}async execute(e,t){try{c(e,"Draft transaction is required"),c(e.txDraftBase64?.trim(),"Transaction data is required");let o=this.validatePrivateKey(t,e.sender),r=d(e.txDraftBase64),{signature:a}=await o.signTransaction(r),n=await this.suiClient.executeTransaction({transaction:r,signatures:[a],include:{effects:!0}}),i="Transaction"===n.$kind?n.Transaction:n.FailedTransaction,{status:s}=i;return{success:s.success,txDigest:i.digest,effects:i.effects,error:s.success?void 0:s.error.message}}catch(e){return{success:!1,error:e instanceof Error?e.message:"Unknown error occurred"}}}async getTransactionStatus(e){c(e?.trim(),"Transaction digest is required");try{let t=await this.suiClient.getTransaction({digest:e,include:{effects:!0}}),o="Transaction"===t.$kind?t.Transaction:t.FailedTransaction;if(!o.effects?.status)return"pending";return o.effects.status.success?"success":"failure"}catch(e){if(e instanceof Error&&(e.message.includes("not found")||e.message.includes("Could not find")))return"pending";return"failure"}}}var r7=1e4;export{ADMIN_CAP_ID,BOOSTING_PACKAGE_ID,BoostingModule,CLOCK_OBJECT_ID,CONFIG_ID,NATIVE_USDC_TOKEN_TYPE,NoodlesPaySdk,SUBSCRIPTION_CONFIG,SUI_ADDRESS_ZERO,SUI_FULL_TYPE,SUI_METADATA_OBJECT_ID,SUI_TYPE,SubscriptionModule,USDC_TOKEN_TYPE,addGasFee,getAmountAfterFee,getCoinObjectIdsByAmount,getNeededGasFee,getSplitCoinForTx,getSplitCoinsAfterFee,isSuiCoinType}from"./832.js";export{SuiGrpcClient}from"@mysten/sui/grpc";export{r3 as AggregatorModule,rT as BLUEFIN_PACKAGE_ID,r2 as CurveModule,r5 as DEFAULT_TRADE_FEE,r9 as DraftTransferTx,rN as MetaAgError,r4 as MetaClient,r8 as NoodlesSdk,el as SuiJsonRpcClient,rc as SevenKAggregator,rd as AftermathAggregator,t0 as AftermathCpmm,t4 as AftermathLsd,o7 as AggregatorConverter,rp as AstrosAggregator,t2 as Blastfun,rU as Bluefin7kClient,t$ as BluefinTx,t8 as BluefinClmm,t7 as BluemoveCpmm,ot as Bolt,tW as MoonbagsCalculation,r_ as CetusAggregator,tk as CetusAggregatorConverter,rG as CetusClient,or as CetusClmm,on as CetusDlmm,rn as checkIsSui,rm as SupportedAggregator,tU as BlastFunConstants,tH as MoonbagsConstants,tq as BlastFunCustomCalculation,tY as BlastFunCustomTransaction,os as DeepbookV3,ra as denormalizeTokenType,ou as DipCpmm,rk as MetaAgErrorCode,r7 as BASE_BPS,od as FerraClmm,o_ as FerraDlmm,rf as FlowXAggregator,tN as FlowXAggregatorConverter,rK as FlowxClient,oA as FlowxCpmm,oI as FullsailClmm,r0 as getExpectedReturn,rh as getGrpcFullnodeUrl,ry as getJsonRpcFullnodeUrl,rP as getMemezPumpSDK,rA as getMoveObject,rg as getMoveObjectContent,rS as getTransactionResultDigest,oh as HaedalLsdWal,oS as KriyaClmm,oB as MagmaAlmm,oR as MagmaClmm,o9 as MetaAggregator,tv as Metastable,oL as MomentumClmm,ok as Movepump,rr as normalizeTokenType,oU as Obric,tK as BlastFunPackage,tG as Bps,tj as MathUtils,tX as MoonbagsPackage,tQ as PythPrice,tZ as PythUtils,oG as Scallop,tV as BlastFunSDKCalculation,tJ as BlastFunSDKTransaction,tx as SevenKAggregatorConverter,oq as SevenkCpmm,oY as SevenkFun,rC as splitSuiCoinAfterFeeFromBuyTx,rO as splitSuiCoinAfterFeeFromSellTx,oH as SrmCpmm,oW as Steamm,oZ as TradeportClmm,tz as MoonbagsTransaction,o1 as TurbosClmm,o6 as TurbosFun,ri as AggregatorProtocol,rD as SupportedBondingCurve,tL as TradeFeeOptions,o8 as RouterUtils,rZ as timeout,o2 as Volo,oE as Walrus};
1
+ let e;import{__webpack_require__ as t}from"./0~rslib-runtime.js";import{BluefinXTx as o,Config as r,buildTx as a,getQuote as n}from"@bluefin-exchange/bluefin7k-aggregator-sdk";import{Transaction as i}from"@mysten/sui/transactions";import s from"bignumber.js";import c from"@minswap/tiny-invariant";import{SUI_CLOCK_OBJECT_ID as u,SUI_SYSTEM_STATE_OBJECT_ID as l,fromBase64 as d,isValidSuiAddress as p,normalizeStructTag as _,normalizeSuiAddress as m,parseStructTag as f,toHex as g}from"@mysten/sui/utils";import{Aftermath as A,AftermathApi as b,Helpers as I}from"aftermath-ts-sdk";import{AFSUI as T,AFTERMATH as C,ALPHAFI as O,AggregatorClient as M,BLUEFIN as E,BLUEMOVE as h,CETUS as y,CETUSDLMM as S,DEEPBOOKV3 as F,Env as P,FERRACLMM as B,FERRADLMM as w,FLOWXV2 as R,FLOWXV3 as D,FULLSAIL as x,HAEDAL as L,HAEDALHMMV2 as v,HAEDALPMM as k,HAWAL as N,KRIYA as U,KRIYAV3 as j,MAGMA as G,METASTABLE as K,MOMENTUM as q,OBRIC as $,SCALLOP as Y,SEVENK as V,SPRINGSUI as J,STEAMM as H,STEAMM_OMM as X,STEAMM_OMM_V2 as W,SUILEND as z,TURBOS as Q,VOLO as Z}from"@cetusprotocol/aggregator-sdk";import ee from"bn.js";import{AggregatorQuoter as et,Coin as eo,Commission as er,CommissionType as ea,Protocol as en,TradeBuilder as ei}from"@flowx-finance/sdk";import{bcs as es}from"@mysten/sui/bcs";import{Network as ec}from"@interest-protocol/sui-core-sdk";import{Ed25519Keypair as eu}from"@mysten/sui/keypairs/ed25519";import{SuiJsonRpcClient as el,getJsonRpcFullnodeUrl as ed}from"@mysten/sui/jsonRpc";import{SuiPriceServiceConnection as ep,SuiPythClient as e_}from"@pythnetwork/pyth-sui-js";import{getAmountAfterFee as em,getSplitCoinForTx as ef,CLOCK_OBJECT_ID as eg,SUI_METADATA_OBJECT_ID as eA,SUI_TYPE as eb,isSuiCoinType as eI,getNeededGasFee as eT,addGasFee as eC,SUI_ADDRESS_ZERO as eO,getSplitCoinsAfterFee as eM,SUI_FULL_TYPE as eE}from"./832.js";var eh,ey,eS,eF,eP,eB,ew,eR,eD,ex,eL,ev,ek,eN,eU,ej,eG,eK,eq,e$,eY,eV,eJ,eH,eX,eW,ez,eQ,eZ,e0,e1,e4,e6,e3,e2,e5,e8,e9,e7,te,tt,to,tr,ta,tn,ti,ts,tc,tu,tl,td,tp,t_,tm,tf,tg,tA,tb,tI,tT,tC,tO,tM,tE,th,ty,tS,tF,tP,tB,tw,tR,tD,tx,tL,tv,tk,tN,tU,tj,tG,tK,tq,t$,tY,tV,tJ,tH,tX,tW,tz,tQ,tZ,t0,t1,t4,t6,t3,t2,t5,t8,t9,t7,oe,ot,oo,or,oa,on,oi,os,oc,ou,ol,od,op,o_,om,of,og,oA,ob,oI,oT,oC,oO,oM,oE,oh,oy,oS,oF,oP,oB,ow,oR,oD,ox,oL,ov,ok,oN,oU,oj,oG,oK,oq,o$,oY,oV,oJ,oH,oX,oW,oz,oQ,oZ,o0,o1,o4,o6,o3,o2,o5,o8={};t.r(o8),t.d(o8,{Bluefin7kClient:()=>rv});var o9={};t.r(o9),t.d(o9,{CetusClient:()=>rN});var o7={};function re(e){return e===eb?eE:e}function rt(e){return e===eE?eb:e}function ro(e){return e===eE||e===eb}t.r(o7),t.d(o7,{FlowxClient:()=>rU}),(eh=tB||(tB={})).MAX_AMOUNT_IN="18446744073709551615",eh.LAST_PACKAGE_ID="0x7e57926855b32baa3b3cabed89380b8d415606fdedadc18e58bd1ef1e60aee48",eh.openSwap=function(e){let{tx:t,expectedAmountOut:o,minAmountOut:r,coinInType:a,coinOutType:n,inputCoin:i,aggregatorFeeBps:s,aggregatorFeeRecipient:c,partnerFeeRecipient:u,partnerFeeBps:l}=e,[d]=t.moveCall({target:`${eh.LAST_PACKAGE_ID}::aggregator::open_swap`,typeArguments:[a,n],arguments:[t.pure.u64(o),t.pure.u64(r),i,t.pure.u32(s),t.pure.address(c),t.pure.u32(l??0),t.pure.option("address",u)]});return d},eh.closeSwap=function(e){let{tx:t,coinOutType:o,swapSession:r}=e,[a]=t.moveCall({target:`${eh.LAST_PACKAGE_ID}::aggregator::close_swap`,typeArguments:[o],arguments:[r]});return a};var rr=((ey={}).AFTERMATH_CPMM="aftermath_cpmm",ey.AFTERMATH_LSD="aftermath_lsd",ey.ALPHAFI_LSD="alphafi_lsd",ey.BLASTFUN="blastfun",ey.BLUEFIN_CLMM="bluefin_clmm",ey.BLUEMOVE_CPMM="bluemove_cpmm",ey.BOLT="bolt",ey.CETUS_CLMM="cetus_clmm",ey.CETUS_DLMM="cetus_dlmm",ey.DEEPBOOK_V3="deepbook_v3",ey.DIP_CPMM="dip_cpmm",ey.FLOWX_CPMM="flowx_cpmm",ey.FLOWX_CLMM="flowx_clmm",ey.FULLSAIL_CLMM="fullsail_clmm",ey.FERRA_CLMM="ferra_clmm",ey.FERRA_DLMM="ferra_dlmm",ey.HAEDAL_CPMM="haedal_cpmm",ey.HAEDAL_CPMM_V2="haedal_cpmm_v2",ey.HAEDAL_LSD="haedal_lsd",ey.HAEDAL_LSD_WAL="haedal_lsd_wal",ey.KRIYA_CLMM="kriya_clmm",ey.KRIYA_CPMM="kriya_cpmm",ey.MAGMA_ALMM="magma_almm",ey.MAGMA_CLMM="magma_clmm",ey.METASTABLE="metastable",ey.MOMENTUM_CLMM="momentum_clmm",ey.MOVEPUMP="movepump",ey.OBRIC="obric",ey.SCALLOP="scallop",ey.SEVENK_CPMM="sevenk_cpmm",ey.SEVENK_FUN="sevenk_fun",ey.SPRINGSUI="springsui",ey.SRM_CPMM="srm_cpmm",ey.STEAMM_CPMM="steamm_cpmm",ey.SUISWAP_CPMM="suiswap_cpmm",ey.STEAMM_OMM="steamm_omm",ey.STEAMM_OMM_V2="steamm_omm_v2",ey.TRADEPORT_CLMM="tradeport_clmm",ey.TURBOS_CLMM="turbos_clmm",ey.TURBOS_FUN="turbos_fun",ey.VOLO="volo",ey);function ra(e,t){console.error(`NOODLES_SDK_AGGREGATOR_ROUTE_ERROR aggregator=${e} error=${function(e){if(e instanceof Error)return`${e.name}: ${e.message}`;if("string"==typeof e)return e;try{return JSON.stringify(e)}catch{return String(e)}}(t)}`)}!function(e){let t=new Set(["bluefinx","RFQ"]);e.SUPPORTED_PROTOCOLS=["suiswap","turbos","cetus","bluemove","kriya","kriya_v3","aftermath","deepbook_v3","flowx","flowx_v3","bluefin","springsui","obric","stsui","steamm","steamm_oracle_quoter","steamm_oracle_quoter_v2","magma","haedal_pmm","momentum","sevenk_v1","fullsail","cetus_dlmm","ferra_dlmm","ferra_clmm"];let o={aftermath:e=>{c(e.extra?.poolStructTag,"Aftermath protocol requires poolStructTag");let[t]=i(e.extra.poolStructTag);return{...n(e),protocol:rr.AFTERMATH_CPMM,coinLpType:t}},flowx_v3:e=>{c(e.extra?.swapFeeRate,"flowx_v3 protocol requires swapFeeRate");let t=e.extra.swapFeeRate;return{...n(e),protocol:rr.FLOWX_CLMM,poolFeeRate:t}},turbos:e=>{c(e.extra?.poolStructTag,"turbos protocol requires poolStructTag");let[t,o,r]=i(e.extra.poolStructTag);return{...n(e),protocol:rr.TURBOS_CLMM,coinFeeType:r}},obric:e=>(c(e.extra?.oracles,"obric protocol requires oracles"),{...n(e),protocol:rr.OBRIC,pythPriceFeedIdA:s(e.extra.oracles[0]),pythPriceFeedIdB:s(e.extra.oracles[1])}),haedal_pmm:e=>(c(e.extra.oracles,"haedal_pmm protocol requires oracles"),{...n(e),protocol:rr.HAEDAL_CPMM,pythPriceFeedIdA:s(e.extra.oracles[0]),pythPriceFeedIdB:s(e.extra.oracles[1])}),sevenk_v1:e=>{c(e.extra?.poolStructTag,"sevenk_v1 protocol requires poolStructTag"),c(e.extra?.oracleConfigX,"sevenk_v1 protocol requires oracleConfigX"),c(e.extra?.oracleConfigY,"sevenk_v1 protocol requires oracleConfigY");let t=e.extra.oracles?.[0]?.Pyth?.bytes,o=e.extra.oracles?.[1]?.Pyth?.bytes;c(t,"sevenk_v1 protocol requires pythPriceFeedIdA"),c(o,"sevenk_v1 protocol requires pythPriceFeedIdB");let[r,a,s]=i(e.extra.poolStructTag);return{...n(e),protocol:rr.SEVENK_CPMM,coinLpType:s,pythPriceFeedIdA:t,pythPriceFeedIdB:o,oracleConfigA:e.extra.oracleConfigX,oracleConfigB:e.extra.oracleConfigY}},steamm:e=>{c(e.extra?.poolStructTag,"steamm protocol requires poolStructTag"),c(e.extra?.bankAStructTag,"steamm protocol requires bankAStructTag"),c(e.extra?.lendingMarketA,"steamm protocol requires lendingMarketA"),c(e.extra?.bankA,"steamm protocol requires bankA"),c(e.extra?.bankB,"steamm protocol requires bankB");let[t,o,r,a]=i(e.extra.poolStructTag),[s,u,l]=i(e.extra.bankAStructTag);return{...n(e),protocol:rr.STEAMM_CPMM,bankAId:e.extra.bankA,bankBId:e.extra.bankB,lendingMarketId:e.extra.lendingMarketA,lendingMarketType:s,bCoinAType:t,bCoinBType:o,lpBCoinType:a}},steamm_oracle_quoter:e=>{c(e.extra?.poolStructTag,"steamm_oracle_quoter protocol requires poolStructTag"),c(e.extra?.bankAStructTag,"steamm_oracle_quoter protocol requires bankAStructTag"),c(e.extra?.lendingMarketA,"steamm_oracle_quoter protocol requires lendingMarketA"),c(e.extra?.oracleRegistry,"steamm_oracle_quoter protocol requires oracleRegistry"),c(e.extra?.bankA,"steamm_oracle_quoter protocol requires bankA"),c(e.extra?.bankB,"steamm_oracle_quoter protocol requires bankB"),c(e.extra?.oracleIndexes,"steamm_oracle_quoter protocol requires oracleIndexes"),c(e.extra?.oracles,"steamm_oracle_quoter protocol requires oracles");let[t,o,r,a]=i(e.extra?.poolStructTag),[u,l,d]=i(e.extra.bankAStructTag),[p,_]=e.extra.oracleIndexes;return{...n(e),protocol:rr.STEAMM_OMM,bankAId:e.extra.bankA,bankBId:e.extra.bankB,lendingMarketId:e.extra.lendingMarketA,lendingMarketType:u,bCoinAType:t,bCoinBType:o,lpBCoinType:a,pythPriceFeedIdA:s(e.extra.oracles[0]),pythPriceFeedIdB:s(e.extra.oracles[1]),oracleRegistryId:e.extra.oracleRegistry,oracleIndexA:p,oracleIndexB:_}},steamm_oracle_quoter_v2:e=>{c(e.extra?.poolStructTag,"steamm_oracle_quoter_v2 protocol requires poolStructTag"),c(e.extra?.bankAStructTag,"steamm_oracle_quoter_v2 protocol requires bankAStructTag"),c(e.extra?.lendingMarketA,"steamm_oracle_quoter_v2 protocol requires lendingMarketA"),c(e.extra?.oracleRegistry,"steamm_oracle_quoter_v2 protocol requires oracleRegistry"),c(e.extra?.bankA,"steamm_oracle_quoter_v2 protocol requires bankA"),c(e.extra?.bankB,"steamm_oracle_quoter_v2 protocol requires bankB"),c(e.extra?.oracleIndexes,"steamm_oracle_quoter_v2 protocol requires oracleIndexes"),c(e.extra?.oracles,"steamm_oracle_quoter_v2 protocol requires oracles");let[t,o,r,a]=i(e.extra?.poolStructTag),[u,l,d]=i(e.extra.bankAStructTag),[p,_]=e.extra.oracleIndexes;return{...n(e),protocol:rr.STEAMM_OMM_V2,bankAId:e.extra.bankA,bankBId:e.extra.bankB,lendingMarketId:e.extra.lendingMarketA,lendingMarketType:u,bCoinAType:t,bCoinBType:o,lpBCoinType:a,pythPriceFeedIdA:s(e.extra.oracles[0]),pythPriceFeedIdB:s(e.extra.oracles[1]),oracleRegistryId:e.extra.oracleRegistry,oracleIndexA:p,oracleIndexB:_}},cetus:e=>({...n(e),protocol:rr.CETUS_CLMM}),bluemove:e=>({...n(e),protocol:rr.BLUEMOVE_CPMM}),kriya:e=>({...n(e),protocol:rr.KRIYA_CPMM}),kriya_v3:e=>({...n(e),protocol:rr.KRIYA_CLMM}),deepbook_v3:e=>({...n(e),protocol:rr.DEEPBOOK_V3}),flowx:e=>({...n(e),protocol:rr.FLOWX_CPMM}),bluefin:e=>({...n(e),protocol:rr.BLUEFIN_CLMM}),springsui:e=>({...n(e),protocol:rr.SPRINGSUI}),magma:e=>({...n(e),protocol:rr.MAGMA_CLMM}),momentum:e=>({...n(e),protocol:rr.MOMENTUM_CLMM}),fullsail:e=>({...n(e),protocol:rr.FULLSAIL_CLMM}),stsui:e=>({...n(e),protocol:rr.ALPHAFI_LSD}),suiswap:e=>({...n(e),protocol:rr.SUISWAP_CPMM}),cetus_dlmm:e=>({...n(e),protocol:rr.CETUS_DLMM}),ferra_dlmm:e=>({...n(e),protocol:rr.FERRA_DLMM}),ferra_clmm:e=>({...n(e),protocol:rr.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=tB.MAX_AMOUNT_IN;return o}function n(e){return{poolId:e.poolId,coinInType:e.assetIn,coinOutType:e.assetOut,amountIn:e.amount,aToB:e.swapXtoY}}function i(e){return f(e||"").typeParams.map(_)}function s(e){let t=e?.Pyth?.bytes||e?.Pyth?.price_identifier?.bytes;return c(t,"Pyth price feed id is not found"),"0x"+g(Uint8Array.from(t))}e.toMetaAggregatorPath=r,e.toMetaAggregatorPaths=a,e.convert=function(e){var t,o,r;let n;c(e.routes,"Invalid raw route: routes is missing");let i=(t=e.routes,n={},t.forEach(e=>{e.hops.forEach(e=>{n[e.poolId]=e.pool})}),n),s=a((o=e.swaps,r=i,o.map(e=>{let t=r[e.poolId],o=rt(e.assetIn),a=rt(e.assetOut),n={type:rt(t?.allTokens?.[0]?.address),decimals:t?.allTokens?.[0]?.decimal},i={type:rt(t?.allTokens?.[1]?.address),decimals:t?.allTokens?.[0]?.decimal},s=o===n.type;return{...e,pool:t,assetIn:o,assetOut:a,coinX:n,coinY:i,swapXtoY:s}})));return{coinInType:e.tokenIn,coinOutType:e.tokenOut,amountOut:e.returnAmountWithDecimal,tradePaths:s}}}(tw||(tw={}));class rn{_config;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:a,metaAggregator:i,supportedProtocols:s}){try{this._config.sevenKApiKey&&r.setApiKey(this._config.sevenKApiKey);let c=a?a.tradeFeePercent:this._config.defaultTradeFee.tradeFeePercent,u=s??(i?tw.SUPPORTED_PROTOCOLS:void 0);return await n({tokenIn:t,tokenOut:o,amountIn:e.toString(),commissionBps:1e4*c,sources:u})}catch(e){return ra("sevenk",e),null}}async getTransaction({walletAddress:e,completeRoute:t,slippage:r,tradeFee:n}){let s,c;n?(s=n.tradeFeePercent,c=n.tradeFeeRecipientAddress):(s=this._config.defaultTradeFee.tradeFeePercent,c=this._config.defaultTradeFee.tradeFeeRecipientAddress);let u=await a({quoteResponse:t,slippage:r,accountAddress:e,commission:{partner:c,commissionBps:1e4*s}});return u.tx instanceof o?i.from(u.tx.txBytes).build({client:this._suiClient}):(u.tx.setSender(e),u.tx.build({client:this._suiClient}))}}function ri(e){return"bigint"==typeof e?e:"string"==typeof e&&/^\d+$/.test(e)?BigInt(e):e}function rs(e){return{...e,coinIn:e.coinIn?{...e.coinIn,amount:ri(e.coinIn.amount),tradeFee:ri(e.coinIn.tradeFee)}:e.coinIn,coinOut:e.coinOut?{...e.coinOut,amount:ri(e.coinOut.amount),tradeFee:ri(e.coinOut.tradeFee)}:e.coinOut}}(rn||(rn={})).toCommonTradeRoutes=function(e){let t=[];if(!e.routes||0===e.routes.length)return null;for(let o of e.routes){let e=[],r={};for(let t of o.hops){for(let e of t.pool.allTokens)r[e.address]=e.decimal;let o=r[t.tokenIn]??0,a=r[t.tokenOut]??0,n=BigInt(new s(t.tokenInAmount).multipliedBy(10**o).toFixed(0,3)),i=BigInt(new s(t.tokenOutAmount).multipliedBy(10**a).toFixed(0,3));e.push({poolAddress:t.poolId,coinIn:t.tokenIn,coinOut:t.tokenOut,amountIn:n,amountOut:i})}if(0===e.length)continue;let a=r[o.tokenIn]??0,n=r[o.tokenOut]??0,i=BigInt(new s(o.tokenInAmount).multipliedBy(10**a).toFixed(0,3)),c=BigInt(new s(o.tokenOutAmount).multipliedBy(10**n).toFixed(0,3));t.push({paths:e,coinIn:o.tokenIn,coinOut:o.tokenOut,amountIn:i,amountOut:c})}return 0===t.length?null:{coinIn:e.tokenIn,coinOut:e.tokenOut,amountIn:BigInt(e.swapAmountWithDecimal),amountOut:BigInt(e.returnAmountAfterCommissionWithDecimal),routes:t}};class rc{_config;_aftermathClient;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}async aftermathClient(){if(this._aftermathClient)return this._aftermathClient;let e=new A(this._config.aftermathApiEndpoint?this._config.aftermathApiEndpoint:"MAINNET"),t=await e.getAddresses();if(this._aftermathClient=new A(this._config.aftermathApiEndpoint??"MAINNET",new b(this._suiClient,t)),this._config.aftermathApiKey){let e=I.keypairFromPrivateKey(this._config.aftermathApiKey);await this._aftermathClient.Auth().init({async signMessageCallback({message:t}){let{signature:o}=await e.signPersonalMessage(t);return{signature:o}},walletAddress:e.toSuiAddress()})}return this._aftermathClient}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r}){try{let a;a=r?{recipient:r.tradeFeeRecipientAddress,feePercentage:r.tradeFeePercent}:{recipient:this._config.defaultTradeFee.tradeFeeRecipientAddress,feePercentage:this._config.defaultTradeFee.tradeFeePercent};let n=await this.aftermathClient();return await n.Router().getCompleteTradeRouteGivenAmountIn({coinInAmount:e,coinInType:t,coinOutType:o,externalFee:a})}catch(e){return ra("aftermath",e),null}}async getTransaction({completeRoute:e,walletAddress:t,slippage:o}){let r=await this.aftermathClient(),a=await r.Router().getTransactionForCompleteTradeRoute({completeRoute:function(e){if("object"!=typeof e||null===e)return e;let t=rs(e);return{...t,routes:Array.isArray(t.routes)?t.routes.map(e=>{let t=rs(e);return{...t,portion:ri(t.portion),paths:Array.isArray(t.paths)?t.paths.map(e=>rs(e)):t.paths}}):t.routes,feeBreakdown:Array.isArray(t.feeBreakdown)?t.feeBreakdown.map(e=>({...e,amount:ri(e.amount)})):t.feeBreakdown}}(e),walletAddress:t,slippage:o+(e.netTradeFeePercentage??0),isSponsoredTx:!1});return a.setSender(t),a.build({client:this._suiClient})}}(rc||(rc={})).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 ru{_config;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r}){try{let a;a=r?{fee:1e4*r.tradeFeePercent,receiverAddress:r.tradeFeeRecipientAddress}:{fee:1e4*this._config.defaultTradeFee.tradeFeePercent,receiverAddress:this._config.defaultTradeFee.tradeFeeRecipientAddress};let{getQuote:n}=await import("@naviprotocol/astros-aggregator-sdk");return await n(t,o,e,this._config.astrosApiKey,{byAmountIn:!0,serviceFee:a})}catch(e){return ra("astros",e),null}}returnMergedCoins(e,t,o){if(t.length<2)return e.object(t[0].coinObjectId);let r=0,a=[];t.sort((e,t)=>Number(t.balance)-Number(e.balance)).slice(1).forEach(e=>{r>=o||(r+=Number(e.balance),a.push(e.coinObjectId))});let n=t[0].coinObjectId;return e.mergeCoins(n,a),e.object(n)}async getTransaction({completeRoute:e,walletAddress:t,slippage:o,tradeFee:r}){var a;let n,c;n=r?{fee:r.tradeFeePercent,receiverAddress:r.tradeFeeRecipientAddress}:{fee:this._config.defaultTradeFee.tradeFeePercent,receiverAddress:this._config.defaultTradeFee.tradeFeeRecipientAddress};let u=new s(e.amount_out).multipliedBy(1-o-n.fee).toNumber(),l=new i,{buildSwapPTBFromQuote:d,getCoins:p}=await import("@naviprotocol/astros-aggregator-sdk"),_=this._suiClient;if("0x2::sui::SUI"===(a=e.from)||"0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI"===a)c=l.splitCoins(l.gas,[l.pure.u64(e.amount_in)]);else{let o=await p(_,t,e.from),r=this.returnMergedCoins(l,o.data,Number.parseFloat(e.amount_in));c=l.splitCoins(r,[l.pure.u64(e.amount_in)])}let m=await d(t,l,u,c,e,void 0,!1,this._config.astrosApiKey,{serviceFee:n});return l.transferObjects([m],t),l.setSender(t),l.build({client:this._suiClient})}}(ru||(ru={})).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}},(tR||(tR={})).equals=function(e,t){return e.tradeFeePercent===t.tradeFeePercent&&e.tradeFeeRecipientAddress===t.tradeFeeRecipientAddress},(eS=tD||(tD={})).UNIVERSAL_META_VAULT_INTEGRATION_PACKAGE_ID="0xfd12517a9fc87c6a1f2357ad13b3421fb27a8bd7ca07d5fd5934ac35733baa47",(eF=eS.MetaCoinType||(eS.MetaCoinType={})).SUPER_SUI="0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI",eF.MUSD="0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD",eF.METH="0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH",eS.VERSION_OBJ_ID="0x4696559327b35ff2ab26904e7426a1646312e9c836d5c6cff6709a5ccc30915c",eS.createCap=function(e){let t,{txb:o,coinType:r,metaCoin:a,createCapAllTypeParams:n,whitelistedAppId:i,poolId:s,pythInfoObjectIdMap:l,createCapPackageId:d,createCapModule:p,createCapFunc:_}=e,m=[a.toString()];switch(n&&m.push(r),e.metaCoin){case"0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI":t=[o.object(i),o.object(s),o.object(e.registryId)];break;case"0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD":{let r=l.get(e.pythPriceFeedIdMeta);c(r,"Not found priceMetaId in pythObjectIdMap"),t=[o.object(i),o.object(s),o.object(r),o.object(u)];break}case"0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH":{let r=l.get(e.pythPriceFeedIdMeta);c(r,"Not found priceId in pythObjectIdMap");let a=l.get(e.pythPriceFeedIdEth);c(a,"Not found priceEthFeedId in pythObjectIdMap"),t=[o.object(i),o.object(s),o.object(r),o.object(a),o.object(u)];break}default:throw Error("Invalid MetaCoin: "+a.toString())}return o.moveCall({target:`${d}::${p}::${_}`,typeArguments:m,arguments:t})},eS.getCreateCapModule=function(e){switch(e){case"0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI":return"exchange_rate";case"0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD":case"0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH":return"pyth";default:throw Error("Invalid MetaCoin: "+e)}},eS.isMetaCoinType=function(e){return Object.values(eS.MetaCoinType).map(e=>e.toString()).includes(e)},eS.getCreateCapAllTypeParams=function(e,t){switch(e){case"0x790f258062909e3a0ffc78b3c53ac2f62d7084c3bab95644bdeb05add7250001::super_sui::SUPER_SUI":return t===eS.UNIVERSAL_META_VAULT_INTEGRATION_PACKAGE_ID;case"0xe44df51c0b21a27ab915fa1fe2ca610cd3eaa6d9666fe5e62b988bf7f0bd8722::musd::MUSD":case"0xccd628c2334c5ed33e6c47d6c21bb664f8b6307b2ac32c2462a61f69a31ebcee::meth::METH":return!0;default:throw Error("Invalid MetaCoin: "+e)}},function(e){let t=[y,U,R,D,j,Q,C,L,Z,T,h,F,Y,z,E,k,O,J,H,K,$,N,X,q,W,G,V,v,x,S,w,B];e.SUPPORTED_PROTOCOLS=[...t];let o=new Set(t),r=e=>({poolId:e.id,coinInType:e.from,coinOutType:e.target,aToB:e.direction,amountIn:e.amountIn});function a(t){if(!o.has(t.provider))throw Error(`Unsupported or unknown provider: ${t.provider} for pool ${t.id}`);return(0,e.TO_META_AGGREGATOR_PATH_FN_MAP[t.provider])(t)}function n(e){let t=new Map;for(let[o,r]of e.paths.entries())t.set(r.from,o);let o=[];for(let r=0;r<e.paths.length;r++){let n=e.paths[r],i=a(n);t.get(n.from)===r&&(i.amountIn=tB.MAX_AMOUNT_IN),o.push(i)}return o}e.TO_META_AGGREGATOR_PATH_FN_MAP={[K]:e=>{let t=r(e),o=e.extendedDetails,a=e.direction?e.target:e.from;c(o&&void 0!==o.metastable_create_cap_pkg_id&&void 0!==o.metastable_create_cap_module&&void 0!==o.metastable_create_cap_all_type_params&&void 0!==o.metastable_whitelisted_app_id,`METASTABLE missing required extendedDetails for pool ${e.id}.`);let n={createCapPackageId:o.metastable_create_cap_pkg_id,createCapModule:o.metastable_create_cap_module,createCapAllTypeParams:o.metastable_create_cap_all_type_params,whitelistedAppId:o.metastable_whitelisted_app_id};switch(a){case tD.MetaCoinType.SUPER_SUI:return c(o.metastable_registry_id,`METASTABLE_SUPER_SUI protocol requires 'metastable_registry_id' in extendedDetails for pool ${e.id}.`),{...t,...n,protocol:rr.METASTABLE,metaCoin:a,registryId:o.metastable_registry_id};case tD.MetaCoinType.MUSD:return c(o.metastable_price_seed,`METASTABLE_MUSD protocol requires 'metastable_price_seed' in extendedDetails for pool ${e.id}.`),{...t,...n,protocol:rr.METASTABLE,metaCoin:a,pythPriceFeedIdMeta:o.metastable_price_seed};case tD.MetaCoinType.METH:return c(o.metastable_price_seed&&o.metastable_eth_price_seed,`METASTABLE_ETH protocol requires 'metastable_price_seed' and 'metastable_eth_price_seed' in extendedDetails for pool ${e.id}.`),{...t,...n,protocol:rr.METASTABLE,metaCoin:a,pythPriceFeedIdMeta:o.metastable_price_seed,pythPriceFeedIdEth:o.metastable_eth_price_seed};default:throw Error(`METASTABLE protocol does not support ${a} as metaCoin.`)}},[F]:e=>({...r(e),protocol:rr.DEEPBOOK_V3}),[C]:e=>{let t=e.extendedDetails;return c(t?.aftermath_lp_supply_type,`AFTERMATH_CPMM protocol requires 'aftermath_lp_type' in extendedDetails for pool ${e.id}.`),{...r(e),protocol:rr.AFTERMATH_CPMM,coinLpType:t.aftermath_lp_supply_type}},[D]:e=>({...r(e),protocol:rr.FLOWX_CLMM,poolFeeRate:String(1e6*e.feeRate)}),[k]:e=>{let t=e.extendedDetails;return c(t?.haedal_pmm_base_price_seed&&t?.haedal_pmm_quote_price_seed,`HAEDAL_CPMM protocol requires 'haedal_pyth_price_a_id' and 'haedal_pyth_price_b_id' in extendedDetails for pool ${e.id}.`),{...r(e),protocol:rr.HAEDAL_CPMM,pythPriceFeedIdA:t.haedal_pmm_base_price_seed,pythPriceFeedIdB:t.haedal_pmm_quote_price_seed}},[v]:e=>{let t=e.extendedDetails;return c(t?.haedalhmmv2_base_price_seed,`HAEDAL_CPMM_V2 protocol requires 'haedal_pyth_price_base_id' in extendedDetails for pool ${e.id}.`),{...r(e),protocol:rr.HAEDAL_CPMM_V2,pythPriceFeedIdBase:t.haedalhmmv2_base_price_seed}},[Y]:e=>(c(e.extendedDetails?.scallop_scoin_treasury,`SCALLOP protocol requires 'scallop_scoin_treasury' in extendedDetails for pool ${e.id}.`),{...r(e),protocol:rr.SCALLOP,scoinTreasury:e.extendedDetails.scallop_scoin_treasury}),[H]:e=>{let t=e.extendedDetails;return c(t?.steamm_bank_a&&t?.steamm_bank_b&&t?.steamm_lending_market&&t?.steamm_lending_market_type&&t?.steamm_btoken_a_type&&t?.steamm_btoken_b_type&&t?.steamm_lp_token_type,`STEAMM_CPMM protocol requires steamm fields in extendedDetails for pool ${e.id}.`),{...r(e),protocol:rr.STEAMM_CPMM,bankAId:t.steamm_bank_a,bankBId:t.steamm_bank_b,lendingMarketId:t.steamm_lending_market,lendingMarketType:t.steamm_lending_market_type,bCoinAType:t.steamm_btoken_a_type,bCoinBType:t.steamm_btoken_b_type,lpBCoinType:t.steamm_lp_token_type}},[X]:e=>{let t=e.extendedDetails;return c(t?.steamm_bank_a&&t?.steamm_bank_b&&t?.steamm_lending_market&&t?.steamm_lending_market_type&&t?.steamm_btoken_a_type&&t?.steamm_btoken_b_type&&t?.steamm_lp_token_type&&t?.steamm_oracle_pyth_price_seed_a&&t?.steamm_oracle_pyth_price_seed_b&&t?.steamm_oracle_registry_id&&t?.steamm_oracle_index_a&&t?.steamm_oracle_index_b,`STEAMM_OMM protocol requires steamm fields in extendedDetails for pool ${e.id}.`),{...r(e),protocol:rr.STEAMM_OMM,bankAId:t.steamm_bank_a,bankBId:t.steamm_bank_b,lendingMarketId:t.steamm_lending_market,lendingMarketType:t.steamm_lending_market_type,bCoinAType:t.steamm_btoken_a_type,bCoinBType:t.steamm_btoken_b_type,lpBCoinType:t.steamm_lp_token_type,pythPriceFeedIdA:t.steamm_oracle_pyth_price_seed_a,pythPriceFeedIdB:t.steamm_oracle_pyth_price_seed_b,oracleRegistryId:t.steamm_oracle_registry_id,oracleIndexA:String(t.steamm_oracle_index_a),oracleIndexB:String(t.steamm_oracle_index_b)}},[W]:e=>{let t=e.extendedDetails;return c(t?.steamm_bank_a&&t?.steamm_bank_b&&t?.steamm_lending_market&&t?.steamm_lending_market_type&&t?.steamm_btoken_a_type&&t?.steamm_btoken_b_type&&t?.steamm_lp_token_type&&t?.steamm_oracle_pyth_price_seed_a&&t?.steamm_oracle_pyth_price_seed_b&&t?.steamm_oracle_registry_id&&t?.steamm_oracle_index_a&&t?.steamm_oracle_index_b,`STEAMM_OMM_V2 protocol requires steamm fields in extendedDetails for pool ${e.id}.`),{...r(e),protocol:rr.STEAMM_OMM_V2,bankAId:t.steamm_bank_a,bankBId:t.steamm_bank_b,lendingMarketId:t.steamm_lending_market,lendingMarketType:t.steamm_lending_market_type,bCoinAType:t.steamm_btoken_a_type,bCoinBType:t.steamm_btoken_b_type,lpBCoinType:t.steamm_lp_token_type,pythPriceFeedIdA:t.steamm_oracle_pyth_price_seed_a,pythPriceFeedIdB:t.steamm_oracle_pyth_price_seed_b,oracleRegistryId:t.steamm_oracle_registry_id,oracleIndexA:String(t.steamm_oracle_index_a),oracleIndexB:String(t.steamm_oracle_index_b)}},[$]:e=>{let t=r(e);if(e.extendedDetails?.obric_coin_a_price_id&&e.extendedDetails?.obric_coin_b_price_id)return{...t,protocol:rr.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:rr.OBRIC,pythPriceFeedIdA:e.extendedDetails.obric_coin_a_price_seed,pythPriceFeedIdB:e.extendedDetails.obric_coin_b_price_seed};throw Error(`OBRIC protocol requires 'obric_coin_a_price_id' and 'obric_coin_b_price_id' in extendedDetails for pool ${e.id}.`)},[V]:e=>{let t=e.extendedDetails;return c(t?.sevenk_lp_cap_type&&t?.sevenk_coin_a_price_seed&&t?.sevenk_coin_b_price_seed&&t?.sevenk_oracle_config_a&&t?.sevenk_oracle_config_b,`SEVENK_CPMM protocol requires sevenk fields in extendedDetails for pool ${e.id}.`),{...r(e),protocol:rr.SEVENK_CPMM,coinLpType:t.sevenk_lp_cap_type,pythPriceFeedIdA:t.sevenk_coin_a_price_seed,pythPriceFeedIdB:t.sevenk_coin_b_price_seed,oracleConfigA:t.sevenk_oracle_config_a,oracleConfigB:t.sevenk_oracle_config_b}},[Q]:e=>(c(e.extendedDetails?.turbos_fee_type,`TURBOS_CLMM protocol requires 'coinFeeType' parameter for pool ${e.id}. Provide it via the parametersMap argument.`),{...r(e),protocol:rr.TURBOS_CLMM,coinFeeType:e.extendedDetails.turbos_fee_type}),[T]:e=>({...r(e),protocol:rr.AFTERMATH_LSD}),[O]:e=>({...r(e),protocol:rr.ALPHAFI_LSD}),[E]:e=>({...r(e),protocol:rr.BLUEFIN_CLMM}),[h]:e=>({...r(e),protocol:rr.BLUEMOVE_CPMM}),[y]:e=>({...r(e),protocol:rr.CETUS_CLMM}),[S]:e=>({...r(e),protocol:rr.CETUS_DLMM}),[B]:e=>({...r(e),protocol:rr.FERRA_CLMM}),[w]:e=>({...r(e),protocol:rr.FERRA_DLMM}),[R]:e=>({...r(e),protocol:rr.FLOWX_CPMM}),[x]:e=>({...r(e),protocol:rr.FULLSAIL_CLMM}),[L]:e=>({...r(e),protocol:rr.HAEDAL_LSD}),[N]:e=>({...r(e),protocol:rr.HAEDAL_LSD_WAL}),[U]:e=>({...r(e),protocol:rr.KRIYA_CPMM}),[j]:e=>({...r(e),protocol:rr.KRIYA_CLMM}),[G]:e=>({...r(e),protocol:rr.MAGMA_CLMM}),[q]:e=>({...r(e),protocol:rr.MOMENTUM_CLMM}),[z]:e=>({...r(e),protocol:rr.SPRINGSUI}),[J]:e=>({...r(e),protocol:rr.SPRINGSUI}),[Z]:e=>({...r(e),protocol:rr.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)}}}(tx||(tx={}));class rl{_config;_suiClient;_cetusClient;getCetusClientConfig({walletAddress:e,overlayFeeReceiver:t,overlayFeeRate:o}){return{client:this._suiClient,overlayFeeReceiver:t,overlayFeeRate:o,env:P.Mainnet,signer:e,...this._config.cetusApiKey&&this._config.cetusApiEndpoint?{apiKey:this._config.cetusApiKey,endpoint:this._config.cetusApiEndpoint}:{},partner:this._config.cetusPartnerId}}constructor(e,t){this._config=e,this._suiClient=t}cetusClient(e,t){return t&&!tR.equals(t,this._config.defaultTradeFee)?new M(this.getCetusClientConfig({walletAddress:e,overlayFeeReceiver:t.tradeFeeRecipientAddress,overlayFeeRate:t.tradeFeePercent})):(this._cetusClient||(this._cetusClient=new M(this.getCetusClientConfig({walletAddress:e,overlayFeeReceiver:this._config.defaultTradeFee.tradeFeeRecipientAddress,overlayFeeRate:this._config.defaultTradeFee.tradeFeePercent}))),this._cetusClient)}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r,metaAggregator:a,supportedProtocols:n}){try{let i=this.cetusClient(void 0,r),s=n??(a?tx.SUPPORTED_PROTOCOLS:void 0);return await i.findRouters({from:t,target:o,amount:new ee(e.toString()),byAmountIn:!0,providers:s})}catch(e){return ra("cetus",e),null}}async getTransaction({completeRoute:e,walletAddress:t,slippage:o,tradeFee:r}){let a=this.cetusClient(t,r),n=new i;return n.setSender(t),await a.fastRouterSwap({router:e,txb:n,slippage:o}),n.build({client:this._suiClient})}}(rl||(rl={})).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 rd=((eP={}).ASTROS="ASTROS",eP.AFTERMATH="AFTERMATH",eP.SEVENK="7K",eP.CETUS="CETUS",eP.FLOWX="FLOWX",eP);!function(e){let t=[en.HOP_FUN,en.FLOWX_PMM,en.DEEPBOOK,en.IPX_TIDE,en.METASTABLE];e.SUPPORTED_PROTOCOLS=Object.values(en).filter(e=>!t.includes(e));let o={[en.FLOWX_V2]:t=>({...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:rr.FLOWX_CPMM}),[en.FLOWX_V3]:t=>(c(void 0!==t.poolFee,`Pool fee is required for pool ${t.pool.id}`),c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rr.FLOWX_CLMM,poolFeeRate:t.poolFee.toString()}),[en.CETUS]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rr.CETUS_CLMM}),[en.CETUS_DLMM]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rr.CETUS_DLMM}),[en.AFTERMATH]:t=>(c(t.lpCoinType,`AFTERMATH protocol requires lpCoinType for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:rr.AFTERMATH_CPMM,coinLpType:t.lpCoinType}),[en.AFTERMATH_LSD]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:rr.AFTERMATH_LSD}),[en.ALPHA_FI]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:rr.ALPHAFI_LSD}),[en.BLUEFIN]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rr.BLUEFIN_CLMM}),[en.BLUEMOVE]:t=>({...e.toMetaAggregatorBasePath(t),aToB:!0,protocol:rr.BLUEMOVE_CPMM}),[en.DEEPBOOK_V3]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rr.DEEPBOOK_V3}),[en.FERRA_CLMM]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rr.FERRA_CLMM}),[en.FERRA_DLMM]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rr.FERRA_DLMM}),[en.FULL_SAIL]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rr.FULLSAIL_CLMM}),[en.HAEDAL]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:rr.HAEDAL_LSD}),[en.HAEDAL_PMM]:t=>{let o=t.oracles;return c(o&&o.length>=2,`HAEDAL_CPMM protocol requires oracle price feeds for pool ${t.pool.id}.`),c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rr.HAEDAL_CPMM,pythPriceFeedIdA:o[0].priceId,pythPriceFeedIdB:o[1].priceId}},[en.KRIYA_DEX]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rr.KRIYA_CPMM}),[en.KRIYA_V3]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rr.KRIYA_CLMM}),[en.MAGMA_FINANCE]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rr.MAGMA_CLMM}),[en.MAGMA_ALMM]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rr.MAGMA_ALMM}),[en.MOMENTUM_FINANCE]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rr.MOMENTUM_CLMM}),[en.OBRIC]:t=>(c(t.xPriceId&&t.yPriceId,`OBRIC protocol requires price feeds for pool ${t.pool.id}`),c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rr.OBRIC,priceInfoObjIdA:t.xPriceId,priceInfoObjIdB:t.yPriceId}),[en.SPRING_SUI]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:rr.SPRINGSUI}),[en.STEAMM]:t=>{c(void 0!==t.bankXInfo&&void 0!==t.bankYInfo,`STEAMM protocol requires bank info for pool ${t.pool.id}`),c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),c(void 0!==t.quoterType,`quoterType is required for pool ${t.pool.id}`),c(void 0!==t.poolInfo,`poolInfo is required for pool ${t.pool.id}`),c(void 0!==t.protocolConfig&&void 0!==t.protocolConfig.oracleRegistryId,`protocolConfig is required for pool ${t.pool.id}`);let o=t.oracles,r=e.toMetaAggregatorBasePath(t),a=t.xForY;switch(t.quoterType){case"constant_product":return{...r,aToB:a,protocol:rr.STEAMM_CPMM,bankAId:a?t.bankXInfo.bankId:t.bankYInfo.bankId,bankBId:a?t.bankYInfo.bankId:t.bankXInfo.bankId,lendingMarketId:t.bankXInfo.lendingMarketId,lendingMarketType:t.bankXInfo.lendingMarketType,bCoinAType:a?t.bankXInfo.bTokenType:t.bankYInfo.bTokenType,bCoinBType:a?t.bankYInfo.bTokenType:t.bankXInfo.bTokenType,lpBCoinType:t.poolInfo.lpTokenType};case"oracle":case"oracle_v2":{c(void 0!==o&&o.length>=2,`STEAMM_OMM protocol requires oracle price feeds for pool ${t.pool.id}.`);let e=o[0],n=o[1];return c(void 0!==e.oracleId&&void 0!==n.oracleId&&void 0!==e.oracleIndex&&void 0!==n.oracleIndex,`STEAMM_OMM protocol requires oracle ids for pool ${t.pool.id}.`),{...r,aToB:a,protocol:rr.STEAMM_OMM,bankAId:t.bankXInfo.bankId,bankBId:t.bankYInfo.bankId,lendingMarketId:t.bankXInfo.lendingMarketId,lendingMarketType:t.bankXInfo.lendingMarketType,bCoinAType:t.bankXInfo.bTokenType,bCoinBType:t.bankYInfo.bTokenType,lpBCoinType:t.poolInfo.lpTokenType,pythPriceFeedIdA:e.priceId,pythPriceFeedIdB:n.priceId,oracleRegistryId:t.protocolConfig.oracleRegistryId,oracleIndexA:e.oracleIndex.toString(),oracleIndexB:n.oracleIndex.toString()}}default:throw Error(`Unsupported quoter type: ${t.quoterType} for pool ${t.pool.id}`)}},[en.SEVENK_V1]:t=>{let o=t.oracles;return c(o&&o.length>=2,`SEVENK_CPMM protocol requires oracle price feeds for pool ${t.pool.id}.`),c(t.poolStructTag,`SEVENK_V1 protocol requires poolStructTag for pool ${t.pool.id}`),c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rr.SEVENK_CPMM,coinLpType:t.poolStructTag,pythPriceFeedIdA:o[0].priceId,pythPriceFeedIdB:o[1].priceId,oracleConfigA:o[0].oracleId??"",oracleConfigB:o[1].oracleId??""}},[en.SUI_REWARDS]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rr.SRM_CPMM}),[en.TURBOS_FIANCE]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rr.TURBOS_CLMM,coinFeeType:t.poolStructTag?t.poolStructTag.split("<")[1].split(",")[2].trim().replace(">",""):""}),[en.VOLO_LSD]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:!t.xForY,protocol:rr.VOLO}),[en.TRADEPORT]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),c(void 0!==t.poolFee,`Pool fee is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,poolFeeRate:t.poolFee.toString(),protocol:rr.TRADEPORT_CLMM}),[en.TURBOS_FUN]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rr.TURBOS_FUN}),[en.BLUEMOVE_FUN]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,expectedAmountOut:t.amountOut.toString(),protocol:rr.MOVEPUMP}),[en.SEVEN_K_FUN]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rr.SEVENK_FUN}),[en.DIPCOIN]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rr.DIP_CPMM}),[en.BOLT]:t=>(c(void 0!==t.xForY,`xForY is required for pool ${t.pool.id}`),{...e.toMetaAggregatorBasePath(t),aToB:t.xForY,protocol:rr.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=tB.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)}}}(tL||(tL={}));class rp{_config;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}getCommission(e,t){let o,r;return t?(o=t.tradeFeePercent,r=t.tradeFeeRecipientAddress):(o=this._config.defaultTradeFee.tradeFeePercent,r=this._config.defaultTradeFee.tradeFeeRecipientAddress),new er(r,new eo(e),ea.PERCENTAGE,1e6*o,!0)}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r,metaAggregator:a,supportedProtocols:n}){let i=new et("mainnet",this._config.flowxApiKey),s=n??(a?tL.SUPPORTED_PROTOCOLS:void 0);try{return await i.getRoutes({tokenIn:t,tokenOut:o,amountIn:e.toString(),commission:this.getCommission(t,r),includeSources:s})}catch(e){return ra("flowx",e),null}}async getTransaction({walletAddress:e,completeRoute:t,slippage:o,tradeFee:r}){return new ei("mainnet",t.routes).sender(e).slippage(1e6*o).commission(this.getCommission(t.coinIn.coinType,r)).build().buildTransaction({client:this._suiClient}).then(t=>(t.setSender(e),t.build({client:this._suiClient})))}}async function r_(e,t){return(await rm(e,t)).fields}async function rm(e,t){let o=(await e.getObject({objectId:t,include:{json:!0,objectBcs:!0}})).object;c(o,"Pool object not found or has no content"),c(o.json,"Pool object not found or has no content"),c(o.objectBcs,"Pool object not found or has no content");let r=es.Object.parse(o.objectBcs);return c("Move"===r.data.$kind,"Pool object is not a Move object"),{dataType:"moveObject",fields:o.json,hasPublicTransfer:r.data.Move.hasPublicTransfer,type:o.type}}(rp||(rp={})).toCommonTradeRoutes=function(e){if(0===e.routes.length)return null;let t=[];for(let o of e.routes){let e=[];for(let t of o.paths)e.push({amountIn:BigInt(t.amountIn.toString()),amountOut:BigInt(t.amountOut.toString()),coinIn:t.input.coinType,coinOut:t.output.coinType,poolAddress:t.pool.id});0!==e.length&&t.push({amountIn:BigInt(o.amountIn.toString()),amountOut:BigInt(o.amountOut.toString()),coinIn:o.input.coinType,coinOut:o.output.coinType,paths:e})}return 0===t.length?null:{coinIn:e.coinIn.coinType,coinOut:e.coinOut.coinType,amountIn:BigInt(e.amountIn.toString()),amountOut:BigInt(e.amountOut.toString()),routes:t}},(eB=tv||(tv={})).PACKAGE_ID_V4="0x7e6aa6e179466ab2814425a780b122575296d011119fa69d27f289f5a28814bd",eB.MEMEZ_AV_OBJECT_ID="0x2319e3e76dfad73d8f4684bdbf42be4f32d8ce4521dd61becc8261dc918d82c0",((ew=tk||(tk={})).U64||(ew.U64={})).mulDivUp=function(e,t,o){let r=BigInt(0);return e*t%o>BigInt(0)&&(r=BigInt(1)),e*t/o+r};var rf=tN||(tN={});function rg(e){return c(BigInt(e)<=BigInt(1e4),"Bps overflow"),BigInt(e)}rf.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},rf.sub=function(e,t){return c(BigInt(e.pos0)>=BigInt(t.pos0),"Bps underflow"),{pos0:(BigInt(e.pos0)-BigInt(t.pos0)).toString()}},rf.value=function(e){return BigInt(e.pos0)},rf.new_=function(e){return{pos0:rg(e).toString()}},rf.assertOverflow=rg,((eR=tU||(tU={})).MemezFun||(eR.MemezFun={})).isSniperProtectedMemezFun=async function(e,t){return(await r_(e,t)).public_key.length>0},(eD=eR.MemezFees||(eR.MemezFees={})).takeWithDiscount=function(e,t,o){if("Value"===e.variant){let o=BigInt(e.fields.pos0);if(o===BigInt(0))return BigInt(0);if(t>=o)return o;throw Error(`Insufficient amount to cover fee. Required: ${o}, provided: ${t}`)}if("Percentage"===e.variant){let r=e.fields.pos0.fields;if(BigInt(r.pos0)===BigInt(0))return BigInt(0);let a=tN.calcUp(tN.sub(r,o),t);if(t>=a)return a;throw Error(`Insufficient amount to cover fee. Required: ${a}, provided: ${t}`)}throw Error("Unknown fee variant")},eD.calculateWithDiscount=function(e,t,o){if("Value"===e.variant)return BigInt(e.fields.pos0);if("Percentage"===e.variant){let r=e.fields.pos0.fields;return tN.calcUp(tN.sub(r,t),o)}throw Error("Unknown fee variant")},(eR.MemezBurner||(eR.MemezBurner={})).calculate=function(e,t){if(tN.value(e.fee.fields)===BigInt(0)||t===BigInt(0)||t>=BigInt(e.target_liquidity))return tN.new_(0);let o=BigInt(1e4);return tN.new_(tk.U64.mulDivUp(tN.value(e.fee.fields),tk.U64.mulDivUp(t,o,BigInt(e.target_liquidity)),o))},(ex=eR.MemezPump||(eR.MemezPump={})).getPumpState=async function(e,t){return await r_(e,t.inner_state)},ex.pump=function(e,t){let o=e.constant_product.fields,r=eR.MemezFees.takeWithDiscount(o.quote_swap_fee,t,o.quote_referrer_fee.fields),a=t-r,n=BigInt(o.meme_balance),i=BigInt(o.quote_balance),s=n*a/(BigInt(o.virtual_liquidity)+i+a),c=eR.MemezFees.takeWithDiscount(o.meme_swap_fee,s,o.meme_referrer_fee.fields);return s-c},ex.dump=function(e,t){let o=e.constant_product.fields,r=eR.MemezFees.takeWithDiscount(o.meme_swap_fee,t,o.meme_referrer_fee.fields),a=t-r,n=BigInt(o.meme_balance),i=BigInt(o.quote_balance),s=BigInt(o.virtual_liquidity),c=eR.MemezBurner.calculate(o.burner.fields,i),u=tN.calcUp(c,a),l=a-(tN.value(c)!==BigInt(0)?u:BigInt(0)),d=(s+i)*l/(n+l);d>i&&(d=i);let p=eR.MemezFees.takeWithDiscount(o.quote_swap_fee,d,o.quote_referrer_fee.fields);return d-p},(eL=tj||(tj={})).getCurveAmountAfterBuy=async function(e,t){let{suiAmount:o,poolId:r,frontendFee:a}=e,n=await r_(t,r),i=await tU.MemezPump.getPumpState(t,n);return o=em(o,a),tU.MemezPump.pump(i,o)},eL.getSuiAmountAfterSell=async function(e,t){let{curveAmount:o,poolId:r,frontendFee:a}=e,n=await r_(t,r),i=await tU.MemezPump.getPumpState(t,n);return em(tU.MemezPump.dump(i,o),a)};let rA="0x62412b7268c35f3808336aee57a52836501f40b8ba5d936f8ad275e672befd04";async function rb(e,t){let o,r,{inputAmount:a,accountAddress:n,frontendFee:s,frontendFeeRecipient:u,extendTx:l,isSponsored:d}=e;c(e.inCoinType===eE||e.inCoinType===eb,"Input must be SUI");let{tx:p,coinIn:_}=l||{},m=eM(a,s||"0"),f=p||new i;if(_)o=f.splitCoins(_,m),tG.transferOrDestroyZeroCoin(f,eE,_,n);else{let{coinData:e}=await ef({account:n,amount:a,splits:m,coinType:eE,inheritTx:f,isSponsored:d||!1},t);o=e}if(s&&u){let[e,t]=o;r=e,f.transferObjects([t],f.pure.address(u||n))}else[r]=o;return{tx:f,coinOut:r}}async function rI(e,t,o){if(c(t.outCoinType===eE||t.outCoinType===eb,"Output must be SUI"),0>=Number(t.frontendFee||0))return{tx:e,coinOut:o};let r=e.moveCall({target:"0x2::coin::value",typeArguments:[t.outCoinType],arguments:[o]}),a=e.moveCall({target:`${rA}::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}}(tG||(tG={})).transferOrDestroyZeroCoin=function(e,t,o,r){e.moveCall({target:`${rA}::utils::transfer_or_destroy`,typeArguments:[t],arguments:[o,e.pure.address(r)]})};var rT=tK||(tK={});async function rC(e){let t=e||new i;return t.moveCall({target:`${tv.PACKAGE_ID_V4}::memez_allowed_versions::get_allowed_versions`,arguments:[t.object(tv.MEMEZ_AV_OBJECT_ID)],typeArguments:[]})}function rO(e){switch(e){case"mainnet":return"https://fullnode.mainnet.sui.io:443";case"testnet":return"https://fullnode.testnet.sui.io:443";case"devnet":return"https://fullnode.devnet.sui.io:443";case"localnet":return"http://127.0.0.1:9000";default:throw Error(`Unknown network: ${e}`)}}function rM(e){return rO(e)}function rE(e){return"Transaction"===e.$kind?e.Transaction.digest:e.FailedTransaction.digest}rT.getAllowedVersions=rC,rT.buildBuyTx=async function(e,t){c(!await tU.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 rb(e,t);c(r,"Coin out is required");let a=o.moveCall({target:`${tv.PACKAGE_ID_V4}::memez_pump::pump`,typeArguments:[e.outCoinType,eE],arguments:[o.object(e.poolId),r,o.pure.vector("address",[]),o.pure.vector("vector<u8>",[]),o.pure.u64(e.minAmountOut),await rC(o)]});return{tx:o,coinOut:a}},rT.buildSellTx=async function(e,t){c(e.outCoinType===eE||e.outCoinType===eb,"Output must be SUI");let o=await r_(t,e.poolId),{tx:r,coinData:a}=await ef({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[n]=a,[i]=r.moveCall({target:`${tv.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 rC(r)]});return await rI(r,e,i)};let rh={network:ec.MAINNET,fullNodeUrl:rO("mainnet")};async function ry(){if(!e){let{MemezPumpSDK:t}=await import("@interest-protocol/memez-fun-sdk");e=new t(rh)}return e}(ev=tq||(tq={})).getCurveAmountAfterBuy=async function(e){let{suiAmount:t,poolId:o,frontendFee:r}=e;t=em(t,r);let{memeAmountOut:a}=await (await ry()).quotePump({pool:o,amount:t});return a},ev.getSuiAmountAfterSell=async function(e){let{curveAmount:t,poolId:o,frontendFee:r}=e,{quoteAmountOut:a}=await (await ry()).quoteDump({pool:o,amount:t});return em(a,r)};var rS=t$||(t$={});async function rF(e,t){let{tx:o,coinOut:r}=await rb(e,t);c(r,"Coin out is required");let{memeCoin:a,tx:n}=await (await ry()).pump({pool:e.poolId,quoteCoin:r,minAmountOut:e.minAmountOut,tx:o});return{tx:n,coinOut:a}}async function rP(e,t){c(eI(e.outCoinType),"Output must be SUI");let{tx:o,coinData:r}=await ef({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[a]=r,{quoteCoin:n,tx:i}=await (await ry()).dump({pool:e.poolId,memeCoin:a,tx:o,minAmountOut:e.minAmountOut});return await rI(i,e,n)}rS.buildBuyTx=rF,rS.buildSellTx=rP,rS.getBuyTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:a,walletAddress:n,tradeFee:i},u){c(eI(t),"coinInType must be SUI for buy transaction"),c(o!==t,"coinOutType must be different from coinInType"),c(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),c(e>0,"coinInAmount must be greater than 0");let l=BigInt(new s((await tq.getCurveAmountAfterBuy({poolId:r,suiAmount:e,frontendFee:i?i.tradeFeePercent:void 0})).toString()).multipliedBy(1-a).toFixed(0,3)),{tx:d,coinOut:p}=await rF({accountAddress:n,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:l.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},u);c(p,"Coin out is required"),d.transferObjects([p],d.pure.address(n)),d.setSender(n);let _=await eT(u,d,n,0);return(d=await eC({inheritTx:d,sender:n,feeAmount:_,suiInputAmount:e},u)).build({client:u})},rS.getSellTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:a,walletAddress:n,tradeFee:i},u){c(eI(o),"coinOutType must be SUI for sell transaction"),c(o!==t,"coinOutType must be different from coinInType"),c(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),c(e>0,"coinInAmount must be greater than 0");let l=BigInt(new s((await tq.getSuiAmountAfterSell({poolId:r,curveAmount:e,frontendFee:i?i.tradeFeePercent:void 0})).toString()).multipliedBy(1-a).toFixed(0,3)),{tx:d,coinOut:p}=await rP({accountAddress:n,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:l.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},u);c(p,"Coin out is required"),d.transferObjects([p],d.pure.address(n)),d.setSender(n);let _=await eT(u,d,n,0);return(d=await eC({inheritTx:d,sender:n,feeAmount:_},u)).build({client:u})};var rB=((ek={}).BLAST_FUN="BLAST_FUN",ek.MOONBAGS="MOONBAGS",ek);(eN=tY||(tY={})).PACKAGE_ID="0xb8df325010942634a4afb3db3901ee215546af43a4ec4af781e7213b0bba7290",eN.CONFIG_OBJECT_ID="0x74aecf86067c6913960ba4925333aefd2b1f929cafca7e21fd55a8f244b70499",eN.LOCK_CONFIG_OBJECT_ID="0xfb09822d9808980abd04c51321adb850701f5f55535c6206658ef4d910c3e9be",eN.BURN_MANAGER_OBJECT_ID="0x1d94aa32518d0cb00f9de6ed60d450c9a2090761f326752ffad06b2e9404f845",eN.POOLS_OBJECT_ID="0xf699e7f2276f5c9a75944b37a0c5b5d9ddfd2471bf6242483b03ab2887d198d0",eN.GLOBAL_CONFIG_OBJECT_ID="0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f",eN.FEE_DENOMINATOR=BigInt(1e4),function(e){(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)};var t,o=e.Moonbags||(e.Moonbags={});function r(e){return"fields"in e?e.fields.balance:e.balance}o.getDynamicVirtualTokenReserves=async function(e,t){try{let o=await e.getDynamicField({parentId:t,name:{type:"vector<u8>",bcs:es.byteVector().serialize(new TextEncoder().encode("virtual_token_reserves")).toBytes()}});if(!o.dynamicField?.value)return;return BigInt(es.u64().parse(o.dynamicField.value.bcs))}catch(e){if("object"==typeof e&&null!==e&&"code"in e&&"dynamicFieldNotFound"===e.code)return;throw e}},o.buyExactInReturnsWithLock=function(t){let{inputAmount:o,amountIn:a,pool:n,config:i,dynamicVirtualTokenReserves:s}=t,u=BigInt(n.virtual_sui_reserves),l=BigInt(n.virtual_token_reserves),d=BigInt(r(n.remain_token_reserves)),p=e.Curves.calculateRemoveLiquidityReturn(u,l,a),_=l-(s||d),m=p,f=a;p>_&&(m=_,f=e.Curves.calculateAddLiquidityCost(u,l,_)+BigInt(1));let g=f*BigInt(i.platform_fee)/tY.FEE_DENOMINATOR;return c(o>=f+g,"Input amount is less than used SUI + fee"),{receivedCurve:m,receivedSui:o-f-g}},o.sellReturns=function(t){let{amountIn:o,pool:a,config:n}=t,i=BigInt(a.virtual_sui_reserves),s=BigInt(a.virtual_token_reserves),c=BigInt(r(a.real_sui_reserves)),u=e.Curves.calculateRemoveLiquidityReturn(s,i,o);u>c&&(u=c);let l=u*BigInt(n.platform_fee)/tY.FEE_DENOMINATOR,d=u-l;return{receivedCurve:BigInt(0),receivedSui:d}}}(tV||(tV={})),(eU=tJ||(tJ={})).getCurveAmountAfterBuy=async function(e,t){let{suiAmount:o,poolId:r,frontendFee:a}=e,[n,i,s]=await Promise.all([r_(t,r),r_(t,tY.CONFIG_OBJECT_ID),tV.Moonbags.getDynamicVirtualTokenReserves(t,r)]);void 0!==a&&(o=em(o,a));let c=o*tY.FEE_DENOMINATOR/(tY.FEE_DENOMINATOR+BigInt(i.platform_fee)),{receivedCurve:u}=tV.Moonbags.buyExactInReturnsWithLock({inputAmount:o,amountIn:c,pool:n,config:i,dynamicVirtualTokenReserves:s});return u},eU.getSuiAmountAfterSell=async function(e,t){let{curveAmount:o,poolId:r,frontendFee:a}=e,[n,i]=await Promise.all([r_(t,r),r_(t,tY.CONFIG_OBJECT_ID)]),{receivedSui:s}=tV.Moonbags.sellReturns({amountIn:o,pool:n,config:i});return void 0!==a?em(s,a):s},eU.getUsedSuiForTx=async function(e,t){let{suiAmount:o,frontendFee:r}=e,a=await r_(t,tY.CONFIG_OBJECT_ID);return void 0!==r&&(o=em(o,r)),o*tY.FEE_DENOMINATOR/(tY.FEE_DENOMINATOR+BigInt(a.platform_fee))};var rw=tH||(tH={});async function rR(e,t){let{tx:o,coinOut:r}=await rb(e,t);c(r,"Coin out is required");let a=await tJ.getUsedSuiForTx({suiAmount:BigInt(e.inputAmount),frontendFee:e.frontendFee},t),[n,i]=o.moveCall({target:`${tY.PACKAGE_ID}::moonbags::buy_exact_in_returns_with_lock`,typeArguments:[e.outCoinType],arguments:[o.object(tY.CONFIG_OBJECT_ID),o.object(tY.LOCK_CONFIG_OBJECT_ID),r,o.pure.u64(a),o.pure.u64(e.minAmountOut),o.object(tY.BURN_MANAGER_OBJECT_ID),o.object(tY.POOLS_OBJECT_ID),o.object(tY.GLOBAL_CONFIG_OBJECT_ID),o.object(eA),o.object(eg)]});return tG.transferOrDestroyZeroCoin(o,eE,n,e.accountAddress),{tx:o,coinOut:i}}async function rD(e,t){c(eI(e.outCoinType),"Output must be SUI");let{tx:o,coinData:r}=await ef({amount:e.inputAmount,coinType:e.inCoinType,inheritTx:e.extendTx?.tx,account:e.accountAddress,splits:[e.inputAmount]},t),[a]=r,[n,i]=o.moveCall({target:`${tY.PACKAGE_ID}::moonbags::sell_returns`,typeArguments:[e.inCoinType],arguments:[o.object(tY.CONFIG_OBJECT_ID),a,o.pure.u64(e.minAmountOut),o.object(eg)]});return tG.transferOrDestroyZeroCoin(o,e.inCoinType,i,e.accountAddress),await rI(o,e,n)}rw.buildBuyTx=rR,rw.buildSellTx=rD,rw.getBuyTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:a,walletAddress:n,tradeFee:i},u){c(eI(t),"coinInType must be SUI for buy transaction"),c(o!==t,"coinOutType must be different from coinInType"),c(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),c(e>0,"coinInAmount must be greater than 0");let l=BigInt(new s((await tJ.getCurveAmountAfterBuy({poolId:r,suiAmount:e,frontendFee:i?i.tradeFeePercent:void 0},u)).toString()).multipliedBy(1-a).toFixed(0,3)),{tx:d,coinOut:p}=await rR({accountAddress:n,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:l.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},u);c(p,"Coin out is required"),d.transferObjects([p],d.pure.address(n)),d.setSender(n);let _=await eT(u,d,n,0);return(d=await eC({inheritTx:d,sender:n,feeAmount:_,suiInputAmount:e},u)).build({client:u})},rw.getSellTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:a,walletAddress:n,tradeFee:i},u){c(eI(o),"coinOutType must be SUI for sell transaction"),c(o!==t,"coinOutType must be different from coinInType"),c(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),c(e>0,"coinInAmount must be greater than 0");let l=BigInt(new s((await tJ.getSuiAmountAfterSell({poolId:r,curveAmount:e,frontendFee:i?i.tradeFeePercent:void 0},u)).toString()).multipliedBy(1-a).toFixed(0,3)),{tx:d,coinOut:p}=await rD({accountAddress:n,inCoinType:t,outCoinType:o,inputAmount:e.toString(),minAmountOut:l.toString(),poolId:r,frontendFee:i?i.tradeFeePercent:void 0,frontendFeeRecipient:i?i.tradeFeeRecipientAddress:void 0,extendTx:void 0,isSponsored:!1},u);c(p,"Coin out is required"),d.transferObjects([p],d.pure.address(n)),d.setSender(n);let _=await eT(u,d,n,0);return(d=await eC({inheritTx:d,sender:n,feeAmount:_},u)).build({client:u})},(ej=tX||(tX={})).LAST_PACKAGE_ID="0x8c36ea167c5e6da8c3d60b4fc897416105dcb986471bd81cfbfd38720a4487c0",ej.newHolder=function(e){return e.moveCall({target:`${ej.LAST_PACKAGE_ID}::oracle::new_holder`,typeArguments:[],arguments:[]})},ej.getPrice=function(e){let{txb:t,coinOracleId:o,holder:r,coinPriceId:a}=e;t.moveCall({target:`${ej.LAST_PACKAGE_ID}::pyth::get_price`,typeArguments:[],arguments:[t.object(o),r,t.object(a),t.object(u)]})},(eG=tW||(tW={})).PYTH_URLS=["https://hermes.pyth.network"],eG.WORMHOLE_STATE_ID="0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",eG.PYTH_STATE_ID="0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",eG.newPythConnections=function(e){return e||(e=eG.PYTH_URLS),e.map(e=>new ep(e,{timeout:3e3}))},eG.newPythClient=function(e){return e||(e=new el({network:"mainnet",url:ed("mainnet")})),new e_(e,eG.PYTH_STATE_ID,eG.WORMHOLE_STATE_ID)},eG.updatePythPriceIDs=async function(e){let{priceFeedIds:t,txb:o,pythConnections:r,pythClient:a}=e;if(0===t.length)return new Map;let n=null,i=null;for(let e of r)try{n=await e.getPriceFeedsUpdateData(t);break}catch(e){i=e,console.log("Error: ",e)}if(null==n)throw Error(`All Pyth price nodes are unavailable. Cannot fetch price data. Please switch to or add new available Pyth nodes. Detailed error: ${i?.message}`);let s=[];try{s=await a.updatePriceFeeds(o,n,t)}catch(e){throw Error(`All Pyth price nodes are unavailable. Cannot fetch price data. Please switch to or add new available Pyth nodes in the pythUrls parameter when initializing AggregatorClient, for example: new AggregatorClient({ pythUrls: ["https://your-pyth-node-url"] }). Detailed error: ${e}`)}let c=new Map;for(let e=0;e<t.length;e++)c.set(t[e],s[e]);return c};var rx=((eK={})[eK.UNKNOWN=1e3]="UNKNOWN",eK[eK.TIMEOUT=1001]="TIMEOUT",eK[eK.PROVIDER_NOT_FOUND=1002]="PROVIDER_NOT_FOUND",eK[eK.PROVIDER_NOT_SUPPORTED=1003]="PROVIDER_NOT_SUPPORTED",eK[eK.INVALID_QUOTE=1004]="INVALID_QUOTE",eK[eK.QUOTE_NOT_FOUND=1005]="QUOTE_NOT_FOUND",eK[eK.INVALID_SIGNER_ADDRESS=1006]="INVALID_SIGNER_ADDRESS",eK[eK.PROVIDER_NOT_SUPPORT_SWAP=1007]="PROVIDER_NOT_SUPPORT_SWAP",eK[eK.SIMULATION_FAILED=1008]="SIMULATION_FAILED",eK);class rL extends Error{code;details;constructor(e,t,o){super(e),this.name="MetaAgError",this.code=t??1e3,this.details=o}static assert(e,t,o,r){if(!e)throw new rL(t??"Assertion failed",o,r)}}class rv{options;kind="SEVENK";constructor(e,t){this.options=e,e.apiKey&&r.setApiKey(e.apiKey),r.setSuiClient(t)}async quote(e){let t=[];if(this.options.sources)for(let e of this.options.sources)tw.SUPPORTED_PROTOCOLS.includes(e)&&t.push(e);else t.push(...tw.SUPPORTED_PROTOCOLS);let o=await n({tokenIn:e.coinTypeIn,tokenOut:e.coinTypeOut,amountIn:e.amountIn,sources:t,excludedPools:this.options.excludedPools,targetPools:this.options.targetPools});return rL.assert(!!o,"No quote found",rx.QUOTE_NOT_FOUND,{provider:this.kind}),{sourceRoute:"SEVENK",rawRoute:o,amountIn:o.swapAmountWithDecimal,amountOut:o.returnAmountWithDecimal,coinTypeIn:e.coinTypeIn,coinTypeOut:e.coinTypeOut}}}let rk=tW.PYTH_URLS;class rN{options;kind="CETUS";cetusClient;constructor(e,t,o){this.options=e,this.cetusClient=new M({apiKey:e.apiKey,client:o,endpoint:e.api,env:P.Mainnet,pythUrls:t.hermesApi?t.hermesApi:rk})}async quote(e){let t=[];if(this.options.sources)for(let e of this.options.sources)tx.SUPPORTED_PROTOCOLS.includes(e)&&t.push(e);else t.push(...tx.SUPPORTED_PROTOCOLS);let o=await this.cetusClient.findRouters({amount:e.amountIn,byAmountIn:!0,from:e.coinTypeIn,target:e.coinTypeOut,providers:t,splitCount:this.options.splitCount,splitAlgorithm:this.options.splitAlgorithm,splitFactor:this.options.splitFactor,depth:this.options.depth,liquidityChanges:this.options.liquidityChanges});return rL.assert(!!o,"No quote found",rx.QUOTE_NOT_FOUND,{provider:this.kind}),{sourceRoute:"CETUS",rawRoute:o,amountIn:o.amountIn.toString()||"0",amountOut:o.amountOut.toString()||"0",coinTypeIn:e.coinTypeIn,coinTypeOut:e.coinTypeOut}}}class rU{options;kind="FLOWX";quoter;constructor(e){this.options=e,this.quoter=new et("mainnet",e.apiKey)}async quote(e){let t=[];if(this.options.sources)for(let e of this.options.sources)tL.SUPPORTED_PROTOCOLS.includes(e)&&t.push(e);else t.push(...tL.SUPPORTED_PROTOCOLS);let o=await this.quoter.getRoutes({amountIn:e.amountIn,tokenIn:e.coinTypeIn,tokenOut:e.coinTypeOut,includeSources:t,excludePools:this.options.excludePools,excludeSources:this.options.excludeSources,maxHops:this.options.maxHops,splitDistributionPercent:this.options.splitDistributionPercent});return{sourceRoute:"FLOWX",rawRoute:o,amountIn:o.amountIn?.toString()??"0",amountOut:o.amountOut?.toString()??"0",coinTypeIn:e.coinTypeIn,coinTypeOut:e.coinTypeOut}}}(eq=tz||(tz={})).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",(e$=tQ||(tQ={})).LAST_PACKAGE_ID="0xf369250dc5a17e9d5a84a3b0cf5aea715c0682170e726dd601f03ade7ce4decb",e$.swap=function(e){c(e.protocol===rr.AFTERMATH_CPMM);let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:s,coinLpType:u,packageId:l}=e;t.moveCall({target:`${l??e$.LAST_PACKAGE_ID}::aftermath_cpmm_router::swap`,typeArguments:[i,s,u],arguments:[o,t.object(r),t.object(tz.POOL_REGISTRY_OBJ_ID),t.object(tz.PROTOCOL_FEE_VAULT_OBJ_ID),t.object(tz.TREASURY_OBJ_ID),t.object(tz.INSURANCE_FUND_OBJ_ID),t.object(tz.REFERRAL_VAULT_OBJ_ID),t.pure.bool(a),t.pure.u64(n)]})},(eY=tZ||(tZ={})).STAKED_SUI_VAULT_OBJ_ID="0x2f8f6d5da7f13ea37daa397724280483ed062769813b6f31e9788e59cc88994d",eY.SAFE_TREASURY_OBJECT_ID="0xeb685899830dd5837b47007809c76d91a098d52aabbf61e8ac467c59e5cc4610",eY.REFERRAL_VAULT_OBJ_ID="0x4ce9a19b594599536c53edb25d22532f82f18038dc8ef618afd00fbbfb9845ef",eY.VALIDATOR_ADDRESS="0xd30018ec3f5ff1a3c75656abf927a87d7f0529e6dc89c7ddd1bd27ecb05e3db2",(eV=t0||(t0={})).LAST_PACKAGE_ID="0x148c4e7ff5b308b2d520e050e6a21d986dd3eb203e0aa3eaaba28000977aebf1",eV.swap=function(e){let{txb:t,swapContext:o,aToB:r,amountIn:a,packageId:n}=e;if(!r)throw Error("AFSUI not support bToA swap");t.moveCall({target:`${n??eV.LAST_PACKAGE_ID}::aftermath_lsd_router::swap`,arguments:[o,t.object(tZ.STAKED_SUI_VAULT_OBJ_ID),t.object(tZ.SAFE_TREASURY_OBJECT_ID),t.object(l),t.object(tZ.REFERRAL_VAULT_OBJ_ID),t.pure.address(tZ.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:s}=e;t.moveCall({target:`${s??eJ.LAST_PACKAGE_ID}::alphafi_lsd_router::swap`,typeArguments:[i],arguments:[o,t.object(r),t.object(l),t.pure.bool(n),t.pure.u64(a)]})},(eH=t4||(t4={})).MEMEZ_AV_OBJ_ID="0x2319e3e76dfad73d8f4684bdbf42be4f32d8ce4521dd61becc8261dc918d82c0",eH.MEMEZ_FUN_OBJ_ID="0x943948644f06942b8b660ca541b10a05f6a7be23ce4069944a3665e7e698930d",eH.IPX_TREASURY_STANDARD_OBJ_ID="0x051e11b667659192917db94e5175fa066909d4dfc04d2663528f499c4afc6999",(eX=t6||(t6={})).LAST_PACKAGE_ID="0x8b1e84ed9bc79d31160600254d65810f6bc6d2352f174a60ed041017d0a2a87a",eX.swap=function(e){c(e.protocol===rr.BLASTFUN,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,packageId:s}=e;t.moveCall({target:`${s??eX.LAST_PACKAGE_ID}::blastfun_router::swap`,typeArguments:[r,a],arguments:[o,t.object(t4.MEMEZ_FUN_OBJ_ID),t.object(t4.IPX_TREASURY_STANDARD_OBJ_ID),t.object(t4.MEMEZ_AV_OBJ_ID),t.pure.bool(n),t.pure.u64(i)]})},(t3||(t3={})).GLOBAL_CONFIG_OBJ_ID="0x03db251ba509a8d5d8777b6338836082335d93eecbdd09a11e190a1cff51c352",(eW=t2||(t2={})).LAST_PACKAGE_ID="0x9f8397124b6bdb55aeb7b5e43761e0e4dc94b9e22e94b1b25d8211d99df422d5",eW.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinAType:i,coinBType:s,packageId:c}=e;t.moveCall({target:`${c??eW.LAST_PACKAGE_ID}::bluefin_clmm_router::swap`,typeArguments:[i,s],arguments:[o,t.object(t3.GLOBAL_CONFIG_OBJ_ID),t.object(r),t.pure.bool(n),t.pure.u64(a),t.object(u)]})},(t5||(t5={})).DEX_INFO_OBJ_ID="0x3f2d9f724f4a1ce5e71676448dc452be9a6243dac9c5b975a588c8c867066e92",(ez=t8||(t8={})).LAST_PACKAGE_ID="0xf52bdd65ee347e8994170f8c331cf0c23a55281b3282467f14ccbb3e2a7f928f",ez.swap=function(e){let{txb:t,swapContext:o,aToB:r,amountIn:a,coinAType:n,coinBType:i,packageId:s}=e;t.moveCall({target:`${s??ez.LAST_PACKAGE_ID}::bluemove_cpmm_router::swap`,typeArguments:[n,i],arguments:[o,t.object(t5.DEX_INFO_OBJ_ID),t.pure.bool(r),t.pure.u64(a)]})},(t9||(t9={})).ORACLE_OBJ_ID="0xfa3975b98f3d0e3df18ed88ae6e69db31836b3f4212df02fae144b1e5a89ca8e",(eQ=t7||(t7={})).LAST_PACKAGE_ID="0x2dd7b04509f332bdb93a8f228ab5c40b34baee4645b2ebe5e5fa2c3502b2c088",eQ.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??eQ.LAST_PACKAGE_ID}::bolt_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(t9.ORACLE_OBJ_ID),t.object(u),t.pure.u64(s),t.pure.bool(i)]})},(oe||(oe={})).GLOBAL_CONFIG="0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f",(eZ=ot||(ot={})).LAST_PACKAGE_ID="0xb3dbb229464cb14b9f8cfa087e5b162623c8f485395dc9b975e263a5ee7051e4",eZ.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??eZ.LAST_PACKAGE_ID}::cetus_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(oe.GLOBAL_CONFIG),t.object(n),t.pure.bool(i),t.pure.u64(s),t.object(u)]})},(e0=oo||(oo={})).GLOBAL_CONFIG_OBJ_ID="0xf31b605d117f959b9730e8c07b08b856cb05143c5e81d5751c90d2979e82f599",e0.VERSIONED_OBJ_ID="0x05370b2d656612dd5759cbe80463de301e3b94a921dfc72dd9daa2ecdeb2d0a8",(e1=or||(or={})).LAST_PACKAGE_ID="0x9ab3ba62b4327a7d90e4aed1c025b62736f035911ad7bab830c065ec84ef1ffa",e1.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinAType:i,coinBType:s,packageId:c}=e,l=[o,t.object(oo.GLOBAL_CONFIG_OBJ_ID),t.object(oo.VERSIONED_OBJ_ID),t.object(r),t.pure.bool(n),t.pure.u64(a),t.object(u)];t.moveCall({target:`${c??e1.LAST_PACKAGE_ID}::cetus_dlmm_router::swap`,typeArguments:[i,s],arguments:l})},(e4=oa||(oa={})).GLOBAL_CONFIG="0x699d455ab8c5e02075b4345ea1f91be55bf46064ae6026cc2528e701ce3ac135",e4.DEEP_TYPE="0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP",(e6=on||(on={})).LAST_PACKAGE_ID="0xff274b63c0f6e3a01f3dd0e923aefcb3146e05e2f6bef4ae339e2703b085f8ed",e6.swap=function(e){c(e.protocol===rr.DEEPBOOK_V3,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:s,deepFeeCoin:l,packageId:d}=e,p=l||t.moveCall({target:"0x2::coin::zero",typeArguments:[oa.DEEP_TYPE]});t.moveCall({target:`${d??e6.LAST_PACKAGE_ID}::deepbook_v3_router::swap`,typeArguments:[r,a],arguments:[o,t.object(oa.GLOBAL_CONFIG),t.object(n),t.pure.u64(s),t.pure.bool(i),p,t.object(u)]})},(oi||(oi={})).GLOBAL_OBJ_ID="0x935229a3c32399e9fb207ec8461a54f56c6af5744c64442435ac217ab28f0d59",(e3=os||(os={})).LAST_PACKAGE_ID="0xfd86c0308327eae31c04560460ee6190220e4ae1cdf5b999eef1110bf0b0f2b8",e3.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??e3.LAST_PACKAGE_ID}::dip_cpmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(oi.GLOBAL_OBJ_ID),t.object(r),t.pure.bool(i),t.pure.u64(s)]})},(oc||(oc={})).FERRA_GLOBAL_CONFIG_ID="0x2cd8382c19e6994f16df204e9b8cddd04bdc486c251de75ac66ac4e48e3e7081",(e2=ou||(ou={})).LAST_PACKAGE_ID="0x70c4318f67d88ebe4e83bacad15f9e2f5c8becd77695f63dc4bd9393730851cd",e2.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:s,packageId:c}=e;t.moveCall({target:`${c??e2.LAST_PACKAGE_ID}::ferra_clmm_router::swap`,typeArguments:[i,s],arguments:[o,t.object(oc.FERRA_GLOBAL_CONFIG_ID),t.object(r),t.pure.bool(a),t.pure.u64(n),t.object("0x6")]})},(ol||(ol={})).FERRA_GLOBAL_CONFIG_ID="0x5c9dacf5a678ea15b8569d65960330307e23d429289ca380e665b1aa175ebeca",(e5=od||(od={})).LAST_PACKAGE_ID="0x686e9eb19b04d46374c3fb82cb4ebb7b24ef8a9ae13f403915f4ae347e0f6593",e5.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:s,packageId:c}=e;t.moveCall({target:`${c??e5.LAST_PACKAGE_ID}::ferra_dlmm_router::swap`,typeArguments:[i,s],arguments:[o,t.object(ol.FERRA_GLOBAL_CONFIG_ID),t.object(r),t.pure.bool(a),t.pure.u64(n),t.object(u)]})},(e8=op||(op={})).POOL_REGISTRY_OBJ_ID="0x27565d24a4cd51127ac90e4074a841bbe356cca7bf5759ddc14a975be1632abc",e8.VERSIONED_OBJ_ID="0x67624a1533b5aff5d0dfcf5e598684350efd38134d2d245f475524c03a64e656",(e9=o_||(o_={})).LAST_PACKAGE_ID="0x350a752d3388165e578cc33a39655a6da83613cf4e58c8d9d0723711c2603e17",e9.swap=function(e){c(e.protocol===rr.FLOWX_CLMM);let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolFeeRate:n,amountIn:i,aToB:s,packageId:l}=e;t.moveCall({target:`${l??e9.LAST_PACKAGE_ID}::flowx_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(op.POOL_REGISTRY_OBJ_ID),t.object(op.VERSIONED_OBJ_ID),t.pure.u64(n),t.pure.u64(i),t.pure.bool(s),t.object(u)]})},(om||(om={})).CONTAINER_OBJ_ID="0xb65dcbf63fd3ad5d0ebfbf334780dc9f785eff38a4459e37ab08fa79576ee511",(e7=of||(of={})).LAST_PACKAGE_ID="0xd95b440ad340bb6cbf571897d312e43d4b6de37b60c69ef714c94b9835cb8866",e7.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,packageId:s}=e;t.moveCall({target:`${s??e7.LAST_PACKAGE_ID}::flowx_cpmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(om.CONTAINER_OBJ_ID),t.pure.bool(n),t.pure.u64(i)]})},(te=og||(og={})).GLOBAL_CONFIG_OBJ_ID="0xe93baa80cb570b3a494cbf0621b2ba96bc993926d34dc92508c9446f9a05d615",te.REWARDER_VAULT_OBJ_ID="0xfb971d3a2fb98bde74e1c30ba15a3d8bef60a02789e59ae0b91660aeed3e64e1",te.STATS_OBJ_ID="0x6822a33d1d971e040c32f7cc74507010d1fe786f7d06ab89135083ddb07d2dc2",te.PRICE_PROVIDER_OBJ_ID="0x854b2d2c0381bb656ec962f8b443eb082654384cf97885359d1956c7d76e33c9",(tt=oA||(oA={})).LAST_PACKAGE_ID="0xf0bf13b5baaf3d368f165e846b919294bed79a3ab3ab0c9bd1e75f23533e44a5",tt.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??tt.LAST_PACKAGE_ID}::fullsail_clmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(og.GLOBAL_CONFIG_OBJ_ID),t.object(og.REWARDER_VAULT_OBJ_ID),t.object(og.STATS_OBJ_ID),t.object(og.PRICE_PROVIDER_OBJ_ID),t.object(r),t.pure.bool(i),t.pure.u64(s),t.object(u)]})},(to=ob||(ob={})).LAST_PACKAGE_ID="0x8969ed3e56c1dbdaf9df52f812d69c6c45fe5a4bab7093c88f5a8697a409398e",to.swap=function(e){c(e.protocol===rr.HAEDAL_CPMM);let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,pythPriceFeedIdA:l,pythPriceFeedIdB:d,pythInfoObjectIdMap:p,packageId:_}=e,m=p.get(l),f=p.get(d);c(m,"Not found priceInfoAId in pythObjectIdMap"),c(f,"Not found priceInfoBId in pythObjectIdMap"),t.moveCall({target:`${_??to.LAST_PACKAGE_ID}::haedal_cpmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(m),t.object(f),t.pure.u64(s),t.pure.bool(i),t.object(u)]})},(tr=oI||(oI={})).LAST_PACKAGE_ID="0x5d01f22e5471a5912a88e15d62fdcb922beba65b8e8dfe1a715aebf743194f4a",tr.swap=function(e){c(e.protocol===rr.HAEDAL_CPMM_V2);let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,pythPriceFeedIdBase:l,pythInfoObjectIdMap:d,packageId:p}=e,_=d.get(l);c(_,"Not found pythPriceBaseId in pythObjectIdMap"),t.moveCall({target:`${p??tr.LAST_PACKAGE_ID}::haedal_cpmm_v2_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(_),t.pure.u64(s),t.pure.bool(i),t.object(u)]})},(ta=oT||(oT={})).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(l),t.pure.bool(r),t.pure.u64(a)]})},(oC||(oC={})).STAKING_OBJ_ID="0x10b9d30c28448939ce6c4d6c6e0ffce4a7f8a4ada8248bdad09ef8b70e4a3904",(oO||(oO={})).VALIDATOR_ID="0x7b3ba6de2ae58283f60d5b8dc04bb9e90e4796b3b2e0dea75569f491275242e7",(tn=oM||(oM={})).LAST_PACKAGE_ID="0x7be077dd73c85e788c2a49a51f0627066d81d3dc9982c268e3691265a81d544d",tn.swap=function(e){c(e.protocol===rr.HAEDAL_LSD_WAL),c(e.aToB,"HAEDAL_LSD_WAL does not support bToA swap");let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,packageId:i}=e;t.moveCall({target:`${i??tn.LAST_PACKAGE_ID}::haedal_wal_lsd_router::swap`,arguments:[o,t.object(oC.STAKING_OBJ_ID),t.object(r),t.pure.id(oO.VALIDATOR_ID),t.pure.bool(a),t.pure.u64(n)]})},(oE||(oE={})).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:s,packageId:c}=e;t.moveCall({target:`${c??ti.LAST_PACKAGE_ID}::kriya_clmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(oE.VERSION_OBJ_ID),t.pure.bool(i),t.pure.u64(s),t.object(u)]})},(ts=oy||(oy={})).LAST_PACKAGE_ID="0x50d37f46df75ef125ce656d4ac91b31b2cf0c1195752a96558561d163e45c223",ts.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??ts.LAST_PACKAGE_ID}::kriya_cpmm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.pure.bool(i),t.pure.u64(s)]})},(tc=oS||(oS={})).FACTORY_OBJ_ID="0xedb456e93e423dd75a8ddebedd9974bb661195043027e32ce01649d6ccee74cf",tc.GLOBAL_CONFIG_OBJ_ID="0x4c4e1402401f72c7d8533d0ed8d5f8949da363c7a3319ccef261ffe153d32f8a",(tu=oF||(oF={})).LAST_PACKAGE_ID="0x950f94d33060c0575389c9f84fabab1e140776c6c84389d4237a0c2687a7adc9",tu.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??tu.LAST_PACKAGE_ID}::magma_almm_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(oS.FACTORY_OBJ_ID),t.object(oS.GLOBAL_CONFIG_OBJ_ID),t.pure.u64(s),t.pure.bool(i),t.object(u)]})},(oP||(oP={})).GLOBAL_CONFIG="0x4c4e1402401f72c7d8533d0ed8d5f8949da363c7a3319ccef261ffe153d32f8a",(tl=oB||(oB={})).LAST_PACKAGE_ID="0xbe5f590339c55ca8ebbf93cedfb68aafd479d71e1c57043246f7dcf352745242",tl.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??tl.LAST_PACKAGE_ID}::magma_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(oP.GLOBAL_CONFIG),t.object(n),t.pure.bool(i),t.pure.u64(s),t.object(u)]})},(td=ow||(ow={})).LATEST_PACKAGE_ID="0xfab91518218f10204b083dba1e62c8bfc23f14fb87742158043e5faec4670ec4",td.swap=function(e){let t,o,r;c(e.protocol===rr.METASTABLE,"Invalid protocol");let{txb:a,swapContext:n,aToB:i,amountIn:s,coinAType:u,coinBType:l,poolId:d,metaCoin:p,packageId:_}=e,[m,f]=i?[u,l]:[l,u];m===p?(r="swap_from_meta_coin",t=[p,f],o=[tD.createCap({coinType:f,createCapFunc:"create_withdraw_cap",...e})]):f===p?(r="swap_to_meta_coin",t=[p,m],o=[tD.createCap({coinType:m,createCapFunc:"create_deposit_cap",...e})]):(r="swap",t=[p,m,f],o=[tD.createCap({coinType:m,createCapFunc:"create_deposit_cap",...e}),tD.createCap({coinType:f,createCapFunc:"create_withdraw_cap",...e})]),a.moveCall({target:`${_??td.LATEST_PACKAGE_ID}::metastable_router::${r}`,typeArguments:t,arguments:[n,a.object(d),a.object(tD.VERSION_OBJ_ID),...o,a.pure.u64(s)]})},(oR||(oR={})).VERSION_OBJ_ID="0x2375a0b1ec12010aaea3b2545acfa2ad34cfbba03ce4b59f4c39e1e25eed1b2a",(tp=oD||(oD={})).LAST_PACKAGE_ID="0xba7ab4c8c39024fa0052bb4f00548a2e7b60742bb4ed0b87bc1d945fd8209102",tp.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,poolId:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??tp.LAST_PACKAGE_ID}::momentum_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(n),t.pure.bool(i),t.pure.u64(s),t.object(oR.VERSION_OBJ_ID),t.object(u)]})},(ox||(ox={})).CONFIGURATION_OBJ_ID="0xd746495d04a6119987c2b9334c5fefd7d8cff52a8a02a3ea4e3995b9a041ace4",(t_=oL||(oL={})).LAST_PACKAGE_ID="0x5a259db4b1d17fafc09185c9a71bac36f25f9ee462e72894c8610e5a58b79f8f",t_.swap=function(e){c(e.protocol===rr.MOVEPUMP,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,expectedAmountOut:s,packageId:l}=e;t.moveCall({target:`${l??t_.LAST_PACKAGE_ID}::movepump_router::swap`,typeArguments:[n?a:r],arguments:[o,t.object(ox.CONFIGURATION_OBJ_ID),t.object(t5.DEX_INFO_OBJ_ID),t.object(u),t.pure.u64(s),t.pure.bool(n),t.pure.u64(i)]})},(ov||(ov={})).STATE_OBJ_ID="0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8",(tm=ok||(ok={})).LAST_PACKAGE_ID="0xd615fed37d692280047068e80d3a6bb685aa9d574608054c9df881d6a7378fab",tm.swap=function(e){let t,o;c(e.protocol===rr.OBRIC);let{txb:r,swapContext:a,poolId:n,coinAType:i,coinBType:s,aToB:l,amountIn:d,pythInfoObjectIdMap:p,packageId:_}=e;"priceInfoObjIdA"in e?(t=e.priceInfoObjIdA,o=e.priceInfoObjIdB):(t=p.get(e.pythPriceFeedIdA),o=p.get(e.pythPriceFeedIdB),c(t,"Not found priceInfoAId in pythObjectIdMap"),c(o,"Not found priceInfoBId in pythObjectIdMap")),r.moveCall({target:`${_??tm.LAST_PACKAGE_ID}::obric_router::swap`,typeArguments:[i,s],arguments:[a,r.object(n),r.pure.u64(d),r.pure.bool(l),r.object(ov.STATE_OBJ_ID),r.object(t),r.object(o),r.object(u)]})},(tf=oN||(oN={})).VERSION_OBJ_ID="0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7",tf.MARKET_OBJ_ID="0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9",(tg=oU||(oU={})).LAST_PACKAGE_ID="0xea409bb08c8a09e4127f859d9c36b8b62ca609282aa1e443091db6b7a7409ee7",tg.swap=function(e){c(e.protocol===rr.SCALLOP);let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,scoinTreasury:s,packageId:l}=e;t.moveCall({target:`${l??tg.LAST_PACKAGE_ID}::scallop_router::swap`,typeArguments:[r,a],arguments:[o,t.object(oN.VERSION_OBJ_ID),t.object(oN.MARKET_OBJ_ID),t.object(s),t.pure.u64(i),t.pure.bool(n),t.object(u)]})},(oj||(oj={})).ORACLE_HOLDER_OBJ_ID="0x8c36ea167c5e6da8c3d60b4fc897416105dcb986471bd81cfbfd38720a4487c0",(tA=oG||(oG={})).LAST_PACKAGE_ID="0x918a30e2a05d24ea9451e2d2900d055f74e6752f2e10251fa50c7175831b1958",tA.swap=function(e){c(e.protocol===rr.SEVENK_CPMM,"Invalid protocol for sevenk_cpmm_router swap");let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,coinLpType:u,oracleConfigA:l,oracleConfigB:d,pythPriceFeedIdA:p,pythPriceFeedIdB:_,pythInfoObjectIdMap:m,packageId:f}=e,g=m.get(p),A=m.get(_);c(g,"Not found priceInfoAId in pythObjectIdMap"),c(A,"Not found priceInfoBId in pythObjectIdMap");let b=tX.newHolder(t);tX.getPrice({txb:t,coinPriceId:p,holder:b,coinOracleId:l}),tX.getPrice({txb:t,coinPriceId:_,holder:b,coinOracleId:d}),t.moveCall({target:`${f??tA.LAST_PACKAGE_ID}::sevenk_cpmm_router::swap`,typeArguments:[a,n,u],arguments:[o,t.object(r),t.object(oj.ORACLE_HOLDER_OBJ_ID),t.pure.bool(i),t.pure.u64(s)]})},(oK||(oK={})).CONFIGURATION_OBJ_ID="0xe79fff6c77d81f9a8efb729e25bf0037deec42518d40b978f274a4915d7e1ec9",(tb=oq||(oq={})).LAST_PACKAGE_ID="0x0a5dc665dc3c1c846a6d1e00811c84cae3510c839ab4dc0873f85dc8908d0606",tb.swap=function(e){c(e.protocol===rr.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(oK.CONFIGURATION_OBJ_ID),t.object(om.CONTAINER_OBJ_ID),t.object(u),t.pure.bool(r),t.pure.u64(a)]})},(tI=o$||(o$={})).LAST_PACKAGE_ID="0xa6d129c0b314e85d1bc5aecf305d64212bdd5d466457531f4f624fef5f2e7751",tI.swap=function(e){let{txb:t,swapContext:o,poolId:r,amountIn:a,aToB:n,coinBType:i,packageId:s}=e;t.moveCall({target:`${s??tI.LAST_PACKAGE_ID}::springsui_router::swap`,typeArguments:[i],arguments:[o,t.object(r),t.object(l),t.pure.u64(a),t.pure.bool(n)]})},(oY||(oY={})).CONFIG_OBJ_ID="0x881fd0a12ca4fa48991f5c27ba57d17f1ec147fa15f43b3cb760cc3bd7ba9402",(tT=oV||(oV={})).LAST_PACKAGE_ID="0xa314a64962ed4b91a6b4085de4dff2e631fd4c731dbca671a74489955df322ef",tT.swap=function(e){let{txb:t,swapContext:o,poolId:r,aToB:a,amountIn:n,coinAType:i,coinBType:s,packageId:c}=e,u=[o,t.object(r),t.object(oY.CONFIG_OBJ_ID),t.pure.bool(a),t.pure.u64(n),t.object("0x6")];t.moveCall({target:`${c??tT.LAST_PACKAGE_ID}::srm_cpmm_router::swap`,typeArguments:[i,s],arguments:u})},(tO=(tC=oJ||(oJ={})).Oracle||(tC.Oracle={})).PACKAGE_ID="0xe84b649199654d18c38e727212f5d8dacfc3cf78d60d0a7fc85fd589f280eb2b",tO.getPythPrice=function(e){let{txb:t,oracleRegistryId:o,priceInfoId:r,oracleIndex:a}=e;return t.moveCall({target:`${tO.PACKAGE_ID}::oracles::get_pyth_price`,typeArguments:[],arguments:[t.object(o),t.object(r),t.pure.u64(a),t.object(u)]})};var rj=oH||(oH={});function rG(e,t){c(e.protocol===rr.STEAMM_OMM||e.protocol===rr.STEAMM_OMM_V2,"Invalid protocol for steamm _swapOmm swap");let{txb:o,swapContext:r,poolId:a,coinAType:n,coinBType:i,aToB:s,amountIn:l,bankAId:d,bankBId:p,lendingMarketId:_,lendingMarketType:m,bCoinAType:f,bCoinBType:g,lpBCoinType:A,pythPriceFeedIdA:b,pythPriceFeedIdB:I,pythInfoObjectIdMap:T,oracleRegistryId:C,oracleIndexA:O,oracleIndexB:M,packageId:E}=e,h=T.get(b),y=T.get(I);c(h,"Not found priceInfoAId in pythObjectIdMap"),c(y,"Not found priceInfoBId in pythObjectIdMap");let S=oJ.Oracle.getPythPrice({txb:o,oracleRegistryId:C,priceInfoId:h,oracleIndex:O}),F=oJ.Oracle.getPythPrice({txb:o,oracleRegistryId:C,priceInfoId:y,oracleIndex:M});o.moveCall({target:`${E??rj.LAST_PACKAGE_ID}::${rK(t)}::swap`,typeArguments:[m,n,i,f,g,A],arguments:[r,o.object(a),o.object(d),o.object(p),o.object(_),S,F,o.pure.bool(s),o.pure.u64(l),o.object(u)]})}function rK(e){switch(e){case 0:return"steamm_omm_router";case 1:return"steamm_omm_v2_router"}}function rq(e){let{amountOut:t,aggregatorFeeBps:o,partnerFeeBps:r}=e,a=r$(t,o);return r&&(a=r$(a,r)),a}function r$(e,t){let o=BigInt(e)*BigInt(t)/BigInt(1e4);return(BigInt(e)-o).toString()}function rY(e){return Math.floor(100*e)}rj.LAST_PACKAGE_ID="0xd606880d67c399f349758111a91582d5515f31dd051632402653d872818f594e",rj.swapCpmm=function(e){c(e.protocol===rr.STEAMM_CPMM,"Invalid protocol for steamm_cpmm_router swap");let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,bankAId:l,bankBId:d,lendingMarketId:p,lendingMarketType:_,bCoinAType:m,bCoinBType:f,lpBCoinType:g}=e;t.moveCall({target:`${rj.LAST_PACKAGE_ID}::steamm_cpmm_router::swap`,typeArguments:[_,a,n,m,f,g],arguments:[o,t.object(r),t.object(l),t.object(d),t.object(p),t.pure.bool(i),t.pure.u64(s),t.object(u)]})},rj.swapOmm=function(e){rG(e,0)},rj.swapOmmV2=function(e){rG(e,1)},rj.getOmmRouterModule=rK,(tM=oX||(oX={})).LAST_PACKAGE_ID="0x7a1cf89025a60161e84809784d772263231fad08a7cb76a88ca1ba69e0a656da",tM.swap=function(e){let{txb:t,swapContext:o,poolId:r,coinAType:a,coinBType:n,aToB:i,amountIn:s,packageId:c}=e;t.moveCall({target:`${c??tM.LAST_PACKAGE_ID}::suiswap_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.pure.bool(i),t.pure.u64(s),t.object(u)]})},(tE=oW||(oW={})).VERSIONED="0x0309b66202e9aaf470081fffee7ffc0fbd50e3b7400d4f56fd06502e4dbbd676",tE.POOL_REGISTRY="0xcd0a614c4cbbf173f59dee2602c43a1717f283215ed7a0bb1d55d786af16fbcd",(th=oz||(oz={})).LAST_PACKAGE_ID="0x79957062a7424ed9c2eb83932e4c4fcc3fee67ab3c8f6f874c54e417178bbb7a",th.swap=function(e){c(e.protocol===rr.TRADEPORT_CLMM,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,poolFeeRate:s,packageId:l}=e;t.moveCall({target:`${l??th.LAST_PACKAGE_ID}::tradeport_clmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(oW.POOL_REGISTRY),t.pure.u64(s),t.object(oW.VERSIONED),t.pure.bool(n),t.pure.u64(i),t.object(u)]})},(oQ||(oQ={})).POOL_VERSIONED="0xf1cf0e81048df168ebeb1b8030fad24b3e0b53ae827c25053fff0779c1445b6f",(ty=oZ||(oZ={})).LAST_PACKAGE_ID="0x512d63711ff38353fb167238b0529001b6871c1727c67ce3bf6ec23556b0f1da",ty.swap=function(e){c(e.protocol===rr.TURBOS_CLMM,"Invalid protocol");let{txb:t,swapContext:o,coinAType:r,coinBType:a,coinFeeType:n,poolId:i,aToB:s,amountIn:l,packageId:d}=e;t.moveCall({target:`${d??ty.LAST_PACKAGE_ID}::turbos_clmm_router::swap`,typeArguments:[r,a,n],arguments:[o,t.object(i),t.object(oQ.POOL_VERSIONED),t.pure.bool(s),t.pure.u64(l),t.object(u)]})},(o0||(o0={})).CONFIGURATION_OBJ_ID="0xd86685fc3c3d989385b9311ef55bfc01653105670209ac4276ebb6c83d7df928",(tS=o1||(o1={})).LAST_PACKAGE_ID="0x1fad13f09797aa87a4385d0b1efb2de963ba16742447b1ad5a3b0c5b1d1c588b",tS.swap=function(e){c(e.protocol===rr.TURBOS_FUN,"Invalid protocol");let{txb:t,swapContext:o,coinBType:r,aToB:a,amountIn:n,packageId:i}=e;t.moveCall({target:`${i??tS.LAST_PACKAGE_ID}::turbos_fun_router::swap`,typeArguments:[r],arguments:[o,t.object(o0.CONFIGURATION_OBJ_ID),t.object(u),t.pure.bool(a),t.pure.u64(n)]})},(o4||(o4={})).VOLO_CERT_METADATA_ID="0x680cd26af32b2bde8d3361e804c53ec1d1cfe24c7f039eb7f549e8dfde389a60",(tF=o6||(o6={})).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(o4.VOLO_CERT_METADATA_ID),t.object(l),t.pure.bool(a),t.pure.u64(n)]})},(tP=o3||(o3={})).RouterSwapFunctionMap={[rr.AFTERMATH_CPMM]:tQ.swap,[rr.AFTERMATH_LSD]:t0.swap,[rr.ALPHAFI_LSD]:t1.swap,[rr.BLASTFUN]:t6.swap,[rr.BLUEFIN_CLMM]:t2.swap,[rr.BLUEMOVE_CPMM]:t8.swap,[rr.BOLT]:t7.swap,[rr.CETUS_CLMM]:ot.swap,[rr.CETUS_DLMM]:or.swap,[rr.DEEPBOOK_V3]:on.swap,[rr.DIP_CPMM]:os.swap,[rr.FERRA_CLMM]:ou.swap,[rr.FERRA_DLMM]:od.swap,[rr.FLOWX_CPMM]:of.swap,[rr.FLOWX_CLMM]:o_.swap,[rr.FULLSAIL_CLMM]:oA.swap,[rr.HAEDAL_CPMM]:ob.swap,[rr.HAEDAL_CPMM_V2]:oI.swap,[rr.HAEDAL_LSD]:oT.swap,[rr.HAEDAL_LSD_WAL]:oM.swap,[rr.KRIYA_CLMM]:oh.swap,[rr.KRIYA_CPMM]:oy.swap,[rr.MAGMA_ALMM]:oF.swap,[rr.MAGMA_CLMM]:oB.swap,[rr.METASTABLE]:ow.swap,[rr.MOMENTUM_CLMM]:oD.swap,[rr.MOVEPUMP]:oL.swap,[rr.OBRIC]:ok.swap,[rr.SCALLOP]:oU.swap,[rr.SEVENK_CPMM]:oG.swap,[rr.SEVENK_FUN]:oq.swap,[rr.SPRINGSUI]:o$.swap,[rr.SRM_CPMM]:oV.swap,[rr.STEAMM_CPMM]:oH.swapCpmm,[rr.STEAMM_OMM]:oH.swapOmm,[rr.STEAMM_OMM_V2]:oH.swapOmmV2,[rr.SUISWAP_CPMM]:oX.swap,[rr.TRADEPORT_CLMM]:oz.swap,[rr.TURBOS_CLMM]:oZ.swap,[rr.TURBOS_FUN]:o1.swap,[rr.VOLO]:o6.swap},tP.swap=function(e){(0,tP.RouterSwapFunctionMap[e.protocol])(e)},(o2||(o2={})).buildAggregatorSwapTransaction=async function(e){let{tx:t,coinOutType:o,tradePaths:r,pythConnections:a,pythClient:n,packageIdMap:i}=e,s=tB.openSwap(e),c=await tW.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];o3.swap({...o,txb:t,swapContext:s,amountIn:o.amountIn,coinAType:a,coinBType:n,packageId:i?.get(o.protocol),pythInfoObjectIdMap:c})}return tB.closeSwap({tx:t,coinOutType:o,swapSession:s})};let rV=tW.newPythConnections(),rJ=tW.newPythClient();var rH=o5||(o5={});function rX(e){var t,o;let r,a,{buildTxParam:n,rawRouteParam:i}=e;switch(i.sourceRoute){case"CETUS":r=tx.convert(i.rawRoute);break;case"FLOWX":r=tL.convert(i.rawRoute);break;case"SEVENK":r=tw.convert(i.rawRoute);break;default:throw Error("Unsupported source route")}let s=rY(n.aggregatorFeeRatePercent),c=n.partnerFeeRatePercent?rY(n.partnerFeeRatePercent):void 0,u=n.expectedAmountOut??rq({amountOut:r.amountOut,aggregatorFeeBps:s,partnerFeeBps:c}),l=(o=(t=n.slippagePercent)?Math.floor(100*t):100,a=BigInt(u)*BigInt(o??100)/BigInt(1e4),(BigInt(u)-a).toString());return{...n,...r,expectedAmountOut:u,minAmountOut:l,aggregatorFeeBps:s,partnerFeeBps:c,pythConnections:n.pythConnections??rV,pythClient:n.pythClient??rJ}}rH.toMetaAggregatorBuildTxParams=rX,rH.buildTx=function(e){let t=rX(e);return o2.buildAggregatorSwapTransaction(t)};let rW=async(e,t,o)=>t<=0?e():new Promise((r,a)=>{let n=setTimeout(()=>a(new rL(`Timeout ${o??"operation"}`,rx.TIMEOUT,{timeout:t})),t);e().then(r).catch(a).finally(()=>clearTimeout(n))}),rz=(e,t,o,r=0)=>{if(t>1e4)throw Error("Slippage must be less than 100%");if(o>1e4)throw Error("Commission must be less than 100%");if(r>1e4)throw Error("Tip must be less than 100%");let a=BigInt(e),n=a*BigInt(r||0)/10000n,i=(a-n)*BigInt(o)/10000n,s=a-n-i;return{tipAmount:n,minAmount:s*BigInt(1e4-t)/10000n,commissionAmount:i,expectedAmount:s.toString(10)}},rQ={SEVENK:{},FLOWX:{},CETUS:{}};class rZ{client;jsonRpcClient;providers={};options;constructor(e){this.options={providers:{...rQ,...e?.providers},clients:e.clients,slippageBps:e?.slippageBps??100,hermesApi:e?.hermesApi??tW.PYTH_URLS,partner:e?.partner??eO,partnerCommissionBps:e?.partnerCommissionBps??0,tipBps:e?.tipBps??0},this.client=e.clients.grpc,this.jsonRpcClient=e.clients.jsonRpc}async getQuoteClient(e){let t=this.providers[e];if(t)return t;let o=this.options.providers[e];switch(rL.assert(!!o,`Provider not found: ${e}`,rx.PROVIDER_NOT_FOUND,{provider:e}),e){case"SEVENK":{let{Bluefin7kClient:e}=await Promise.resolve(o8).catch(r0("SEVENK"));this.providers.SEVENK=new e(o,this.client);break}case"FLOWX":{let{FlowxClient:e}=await Promise.resolve(o7).catch(r0("FLOWX"));this.providers.FLOWX=new e(o);break}case"CETUS":{let{CetusClient:e}=await Promise.resolve(o9).catch(r0("CETUS"));this.providers.CETUS=new e(o,this.options,this.jsonRpcClient);break}default:throw new rL(`Provider not supported: ${e}`,rx.PROVIDER_NOT_SUPPORTED,{provider:e})}return this.providers[e]}async getQuoteByClient(e,t){return await rW(async()=>{let o=await e.quote(t);return o?(o.amountOut=rq({amountOut:o.amountOut,partnerFeeBps:this.options.partnerCommissionBps,aggregatorFeeBps:this.options.tipBps}),o):null},t.timeout??2e3,`quote for ${e.kind} provider from ${t.coinTypeIn} to ${t.coinTypeOut}`)}async getQuote(e){let t={...e,coinTypeIn:_(e.coinTypeIn),coinTypeOut:_(e.coinTypeOut)};return(await Promise.allSettled(Object.entries(this.options.providers).filter(([e,t])=>!t.disabled).map(async([e])=>{let o=await this.getQuoteClient(e);return this.getQuoteByClient(o,t)}))).map(e=>"fulfilled"===e.status?e.value:(console.warn(e.reason),null)).filter(e=>null!==e)}async swap(e){let{quote:t,signer:o,tx:r,coinIn:a,slippageBps:n}=e,i=m(o);rL.assert(p(i),`Invalid signer address: ${o}`,rx.INVALID_SIGNER_ADDRESS,{signer:o}),r.setSender(i);let s=(n??this.options.slippageBps)/1e4,c=this.options.partner&&this.options.partner!==eO?this.options.partner:void 0,u=c&&this.options.partnerCommissionBps>0?this.options.partnerCommissionBps/1e4:void 0;return o5.buildTx({buildTxParam:{tx:r,inputCoin:a,expectedAmountOut:t.amountOut,slippagePercent:s,aggregatorFeeRatePercent:this.options.tipBps/1e4,aggregatorFeeRecipient:"0xdaf1c8ed29d89cd8f217f609bad0a668fa6f158c12000bfa5f93e670c99e24ff",partnerFeeRatePercent:u,partnerFeeRecipient:c,pythConnections:tW.newPythConnections(this.options.hermesApi),pythClient:tW.newPythClient(this.jsonRpcClient)},rawRouteParam:{...t}})}}let r0=e=>t=>{throw console.warn(`Please install ${{CETUS:"@cetusprotocol/aggregator-sdk",FLOWX:"@flowx-finance/sdk",SEVENK:"@bluefin-exchange/bluefin7k-aggregator-sdk"}[e]} to use ${e} provider`),t};class r1{sdk;_astrosAggregator;_aftermathAggregator;_sevenkAggregator;_cetusAggregator;_flowXAggregator;constructor(e){this.sdk=e,this._astrosAggregator=new ru({defaultTradeFee:e.options.tradeFee,astrosApiKey:e.options.astrosApiKey},e.suiJsonRpcClient),this._aftermathAggregator=new rc({defaultTradeFee:e.options.tradeFee,aftermathApiKey:e.options.aftermathApiKey,aftermathApiEndpoint:e.options.aftermathApiEndpoint},e.suiJsonRpcClient),this._sevenkAggregator=new rn({defaultTradeFee:e.options.tradeFee,sevenKApiKey:e.options.sevenKApiKey},e.suiClient),this._cetusAggregator=new rl({defaultTradeFee:e.options.tradeFee,cetusApiKey:e.options.cetusApiKey,cetusApiEndpoint:e.options.cetusApiEndpoint,cetusPartnerId:e.options.cetusPartnerId},e.suiJsonRpcClient),this._flowXAggregator=new rp({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 rd.ASTROS:{let e,r=await this._astrosAggregator.getTradeRoute(t);if(!r)return null;let a=ru.toCommonTradeRoutes(r,t.coinInType,t.coinOutType);if(!a)return null;e=t.tradeFee?t.tradeFee.tradeFeePercent:this.sdk.options.tradeFee.tradeFeePercent,a.amountOut=BigInt(new s(r.amount_out).multipliedBy(1-e).toFixed(0,3)),o={route:a,aggregatorRoute:r};break}case rd.AFTERMATH:{let e=await this._aftermathAggregator.getTradeRoute(t);if(!e)return null;let r=rc.toCommonTradeRoutes(e);if(!r)return null;o={route:r,aggregatorRoute:e};break}case rd.SEVENK:{let e=await this._sevenkAggregator.getTradeRoute(t);if(!e)return null;let r=rn.toCommonTradeRoutes(e);if(!r)return null;o={route:r,aggregatorRoute:e};break}case rd.CETUS:{let e=await this._cetusAggregator.getTradeRoute(t);if(!e)return null;let r=rl.toCommonTradeRoutes(e,t.coinInType,t.coinOutType);if(!r)return null;o={route:r,aggregatorRoute:e};break}case rd.FLOWX:{let e=await this._flowXAggregator.getTradeRoute(t);if(!e)return null;let r=rp.toCommonTradeRoutes(e);if(!r)return null;o={route:r,aggregatorRoute:e}}}return o}async getTransactionByRoute(e,t){switch(e){case rd.ASTROS:return this._astrosAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case rd.AFTERMATH:return this._aftermathAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage});case rd.SEVENK:return this._sevenkAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case rd.CETUS:return this._cetusAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case rd.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(rd),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(rd),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 r4{sdk;constructor(e){this.sdk=e}async getEstimatedAmountOut(e,t){let{coinInType:o,coinOutType:r}=t;c(o!==r,"coinInType and coinOutType must be different"),c(eI(o)||eI(r),"One of coinInType or coinOutType must be SUI");let a=eI(o);switch(e){case rB.MOONBAGS:if(a)return await tJ.getCurveAmountAfterBuy({poolId:t.poolId,suiAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0},this.sdk.suiClient);return await tJ.getSuiAmountAfterSell({poolId:t.poolId,curveAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0},this.sdk.suiClient);case rB.BLAST_FUN:if(a)return await tq.getCurveAmountAfterBuy({poolId:t.poolId,suiAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0});return await tq.getSuiAmountAfterSell({poolId:t.poolId,curveAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0});default:throw Error(`Unsupported bonding curve platform: ${e}`)}}async getTradeTransaction(e,t){let o,{coinInType:r,coinOutType:a}=t;c(r!==a,"coinInType and coinOutType must be different"),c(eI(r)||eI(a),"One of coinInType or coinOutType must be SUI");let n=eI(r);switch(e){case rB.MOONBAGS:o=n?await tH.getBuyTransaction(t,this.sdk.suiClient):await tH.getSellTransaction(t,this.sdk.suiClient);break;case rB.BLAST_FUN:o=n?await t$.getBuyTransaction(t,this.sdk.suiClient):await t$.getSellTransaction(t,this.sdk.suiClient);break;default:throw Error(`Unsupported bonding curve platform: ${e}`)}return o}}let r6={tradeFeePercent:.01,tradeFeeRecipientAddress:"0xdaf1c8ed29d89cd8f217f609bad0a668fa6f158c12000bfa5f93e670c99e24ff"};class r3{network;env;options;_suiGrpcClient;_suiJsonRpcClient;aggregatorModule;curveModule;constructor(e,t="mainnet",o="prod"){this.options=e,this.network=t,this.env=o,this._suiGrpcClient=e.clients.grpc,this._suiJsonRpcClient=e.clients.jsonRpc,this.aggregatorModule=new r1(this),this.curveModule=new r4(this)}get suiClient(){return this._suiGrpcClient}get suiJsonRpcClient(){return this._suiJsonRpcClient}}class r2{suiClient;constructor(e){this.suiClient=e}validatePrivateKey(e,t){c(e?.trim(),"Private key is required");let o=eu.fromSecretKey(e),r=o.getPublicKey().toSuiAddress();if(r!==t)throw Error(`Private key mismatch. Expected: ${t}, Got: ${r}`);return o}async createDraft(e,t,o){c(e?.trim(),"Sender address is required"),c(t?.trim(),"Recipient address is required"),c(e!==t,"Sender and recipient cannot be the same"),c(o>0n,"Transfer amount must be at least 1 MIST");try{let r=new i,[a]=r.splitCoins(r.gas,[o]);r.transferObjects([a],t),r.setSender(e);let{referenceGasPrice:n}=await this.suiClient.getReferenceGasPrice();r.setGasPrice(n);let s=await eT(this.suiClient,r,e,.1);r=await eC({inheritTx:r,sender:e,feeAmount:s,suiInputAmount:o},this.suiClient);let c=await r.build({client:this.suiClient}),u=Buffer.from(c).toString("base64"),l=await r.getDigest();return{sender:e,recipient:t,amountMIST:o,txDraftBase64:u,txDigest:l}}catch(e){throw Error(`Failed to create draft transaction: ${e instanceof Error?e.message:"Unknown error"}`)}}async execute(e,t){try{c(e,"Draft transaction is required"),c(e.txDraftBase64?.trim(),"Transaction data is required");let o=this.validatePrivateKey(t,e.sender),r=d(e.txDraftBase64),{signature:a}=await o.signTransaction(r),n=await this.suiClient.executeTransaction({transaction:r,signatures:[a],include:{effects:!0}}),i="Transaction"===n.$kind?n.Transaction:n.FailedTransaction,{status:s}=i;return{success:s.success,txDigest:i.digest,effects:i.effects,error:s.success?void 0:s.error.message}}catch(e){return{success:!1,error:e instanceof Error?e.message:"Unknown error occurred"}}}async getTransactionStatus(e){c(e?.trim(),"Transaction digest is required");try{let t=await this.suiClient.getTransaction({digest:e,include:{effects:!0}}),o="Transaction"===t.$kind?t.Transaction:t.FailedTransaction;if(!o.effects?.status)return"pending";return o.effects.status.success?"success":"failure"}catch(e){if(e instanceof Error&&(e.message.includes("not found")||e.message.includes("Could not find")))return"pending";return"failure"}}}var r5=1e4;export{ADMIN_CAP_ID,BOOSTING_PACKAGE_ID,BoostingModule,CLOCK_OBJECT_ID,CONFIG_ID,NATIVE_USDC_TOKEN_TYPE,NoodlesPaySdk,SUBSCRIPTION_CONFIG,SUI_ADDRESS_ZERO,SUI_FULL_TYPE,SUI_METADATA_OBJECT_ID,SUI_TYPE,SubscriptionModule,USDC_TOKEN_TYPE,addGasFee,getAmountAfterFee,getCoinObjectIdsByAmount,getNeededGasFee,getSplitCoinForTx,getSplitCoinsAfterFee,isSuiCoinType}from"./832.js";export{SuiGrpcClient}from"@mysten/sui/grpc";export{r1 as AggregatorModule,rA as BLUEFIN_PACKAGE_ID,r4 as CurveModule,r6 as DEFAULT_TRADE_FEE,r2 as DraftTransferTx,rL as MetaAgError,rZ as MetaClient,r3 as NoodlesSdk,el as SuiJsonRpcClient,rn as SevenKAggregator,rc as AftermathAggregator,tz as AftermathCpmm,tZ as AftermathLsd,o5 as AggregatorConverter,ru as AstrosAggregator,t4 as Blastfun,rv as Bluefin7kClient,tG as BluefinTx,t3 as BluefinClmm,t5 as BluemoveCpmm,t9 as Bolt,tJ as MoonbagsCalculation,rl as CetusAggregator,tx as CetusAggregatorConverter,rN as CetusClient,oe as CetusClmm,oo as CetusDlmm,ro as checkIsSui,rd as SupportedAggregator,tv as BlastFunConstants,tY as MoonbagsConstants,tj as BlastFunCustomCalculation,tK as BlastFunCustomTransaction,oa as DeepbookV3,rt as denormalizeTokenType,oi as DipCpmm,rx as MetaAgErrorCode,r5 as BASE_BPS,oc as FerraClmm,ol as FerraDlmm,rp as FlowXAggregator,tL as FlowXAggregatorConverter,rU as FlowxClient,om as FlowxCpmm,og as FullsailClmm,rz as getExpectedReturn,rO as getGrpcFullnodeUrl,rM as getJsonRpcFullnodeUrl,ry as getMemezPumpSDK,rm as getMoveObject,r_ as getMoveObjectContent,rE as getTransactionResultDigest,oO as HaedalLsdWal,oE as KriyaClmm,oS as MagmaAlmm,oP as MagmaClmm,o2 as MetaAggregator,tD as Metastable,oR as MomentumClmm,ox as Movepump,re as normalizeTokenType,ov as Obric,tU as BlastFunPackage,tN as Bps,tk as MathUtils,tV as MoonbagsPackage,tX as PythPrice,tW as PythUtils,oN as Scallop,tq as BlastFunSDKCalculation,t$ as BlastFunSDKTransaction,tw as SevenKAggregatorConverter,oj as SevenkCpmm,oK as SevenkFun,rb as splitSuiCoinAfterFeeFromBuyTx,rI as splitSuiCoinAfterFeeFromSellTx,oY as SrmCpmm,oJ as Steamm,oW as TradeportClmm,tH as MoonbagsTransaction,oQ as TurbosClmm,o0 as TurbosFun,rr as AggregatorProtocol,rB as SupportedBondingCurve,tR as TradeFeeOptions,o3 as RouterUtils,rW as timeout,o4 as Volo,oC as Walrus};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@minswap/noodles-sdk",
3
- "version": "0.0.65",
3
+ "version": "0.0.66",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "exports": {