@minswap/noodles-sdk 0.1.2 → 0.2.0

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":{(void 0===o||o.length<2)&&console.error("[FlowXAggregatorConverter][STEAMM_OMM] Missing oracle price feeds",{reason:"oracles is undefined or has less than 2 entries",...n(t)}),i()(void 0!==o&&o.length>=2,`STEAMM_OMM protocol requires oracle price feeds for pool ${t.pool.id}.`);let e=o[0],s=o[1],u=[void 0===e.oracleIndex?"oracles[0].oracleIndex":void 0,void 0===s.oracleIndex?"oracles[1].oracleIndex":void 0].filter(e=>void 0!==e);return u.length>0&&console.error("[FlowXAggregatorConverter][STEAMM_OMM] Missing oracle indexes",{reason:"STEAMM OMM requires oracleIndex for both oracle entries",missingFields:u,...n(t)}),i()(void 0!==e.oracleIndex&&void 0!==s.oracleIndex,`STEAMM_OMM protocol requires oracle indexes for pool ${t.pool.id}.`),{...r,aToB:a,protocol:"oracle_v2"===t.quoterType?c.S.STEAMM_OMM_V2: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:s.priceId,oracleRegistryId:t.protocolConfig.oracleRegistryId,oracleIndexA:e.oracleIndex.toString(),oracleIndexB:s.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((t,r)=>{try{return e.toMetaAggregatorPath(t)}catch(e){throw console.error("[FlowXAggregatorConverter] Failed to convert FlowX swap route",{routeIndex:r,routeCount:o.length,poolId:t.pool.id,protocol:t.protocol(),coinInType:t.input.coinType,coinOutType:t.output.coinType,amountIn:t.amountIn.toString(),amountOut:t.amountOut.toString(),error:e}),e}});for(let e of r.values())a[e].amountIn=s.u.MAX_AMOUNT_IN;return a}function n(e){return{poolId:e.pool.id,quoterType:e.quoterType,xForY:e.xForY,coinInType:e.input.coinType,coinOutType:e.output.coinType,amountIn:e.amountIn.toString(),amountOut:e.amountOut.toString(),oracleCount:e.oracles?.length??0,oracles:e.oracles?.map((e,t)=>({index:t,priceId:e.priceId,oracleId:e.oracleId,oracleIndex:e.oracleIndex,hasPriceId:void 0!==e.priceId&&""!==e.priceId,hasOracleId:void 0!==e.oracleId&&""!==e.oracleId,hasOracleIndex:void 0!==e.oracleIndex})),protocolConfig:{oracleRegistryId:e.protocolConfig?.oracleRegistryId,hasOracleRegistryId:e.protocolConfig?.oracleRegistryId!==void 0},bankXInfo:e.bankXInfo,bankYInfo:e.bankYInfo,poolInfo:e.poolInfo,poolStructTag:e.poolStructTag}}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:()=>o5,AftermathAggregator:()=>tq,AftermathCpmm:()=>eO,AftermathLsd:()=>ex,AggregatorConverter:()=>tB,AggregatorModule:()=>o4,AggregatorProtocol:()=>oR.S,AstrosAggregator:()=>tH,BASE_BPS:()=>1e4,BLUEFIN_PACKAGE_ID:()=>oc,BOOSTING_PACKAGE_ID:()=>o3,BlastFunConstants:()=>el,BlastFunCustomCalculation:()=>eg,BlastFunCustomTransaction:()=>ef,BlastFunPackage:()=>ed,BlastFunSDKCalculation:()=>eb,BlastFunSDKTransaction:()=>eA,Blastfun:()=>ey,Bluefin7kClient:()=>oF.Bluefin7kClient,BluefinClmm:()=>eP,BluefinTx:()=>em,BluemoveCpmm:()=>eB,Bolt:()=>ev,BoostingModule:()=>o7,Bps:()=>ep,CLOCK_OBJECT_ID:()=>oa.VV,CONFIG_ID:()=>o2,CetusAggregator:()=>tZ,CetusAggregatorConverter:()=>tQ.M,CetusClient:()=>oB.CetusClient,CetusClmm:()=>eR,CetusDlmm:()=>eU,CurveModule:()=>re,DEFAULT_TRADE_FEE:()=>ra,DeepbookV3:()=>ej,DipCpmm:()=>eG,DraftTransferTx:()=>rc,FerraClmm:()=>e$,FerraDlmm:()=>eY,FlowXAggregator:()=>t4,FlowXAggregatorConverter:()=>t1.m,FlowxClient:()=>ov.FlowxClient,FlowxCpmm:()=>eW,FullsailClmm:()=>eQ,HaedalLsdWal:()=>e3,KriyaClmm:()=>e5,MagmaAlmm:()=>e7,MagmaClmm:()=>tt,MathUtils:()=>e_,MetaAgError:()=>ok.u,MetaAgErrorCode:()=>ok.j,MetaAggregator:()=>tF,MetaClient:()=>oz,Metastable:()=>oL.b,MomentumClmm:()=>ta,MoonbagsCalculation:()=>eC,MoonbagsConstants:()=>eI,MoonbagsPackage:()=>eT,MoonbagsTransaction:()=>eS,Movepump:()=>ti,NATIVE_USDC_TOKEN_TYPE:()=>oa.lM,NoodlesPaySdk:()=>rr,NoodlesSdk:()=>rn,Obric:()=>tc,PythPrice:()=>ow.L,PythUtils:()=>ow.j,RouterUtils:()=>tP,SUBSCRIPTION_CONFIG:()=>rt,SUI_ADDRESS_ZERO:()=>oa.qb,SUI_FULL_TYPE:()=>oa.P9,SUI_METADATA_OBJECT_ID:()=>oa.IC,SUI_TYPE:()=>oa.nD,Scallop:()=>tl,SevenKAggregator:()=>tN,SevenKAggregatorConverter:()=>tL.m,SevenkCpmm:()=>tp,SevenkFun:()=>tg,SrmCpmm:()=>tb,Steamm:()=>tI,SubscriptionModule:()=>ro,SuiGrpcClient:()=>og.SuiGrpcClient,SuiJsonRpcClient:()=>om.SuiJsonRpcClient,SupportedAggregator:()=>t0,SupportedBondingCurve:()=>ox,TradeFeeOptions:()=>eu,TradeportClmm:()=>tS,TurbosClmm:()=>tM,TurbosFun:()=>tE,USDC_TOKEN_TYPE:()=>oa.N3,Volo:()=>ty,Walrus:()=>e4,addGasFee:()=>oC,checkIsSui:()=>oP.YY,denormalizeTokenType:()=>oP.eP,getAmountAfterFee:()=>oe,getCoinObjectIdsByAmount:()=>oi,getExpectedReturn:()=>oX,getGrpcFullnodeUrl:()=>of,getJsonRpcFullnodeUrl:()=>ob,getMemezPumpSDK:()=>oT,getMoveObject:()=>t9,getMoveObjectContent:()=>t8,getNeededGasFee:()=>ot,getSplitCoinForTx:()=>os,getSplitCoinsAfterFee:()=>t7,getTransactionResultDigest:()=>oA,isSuiCoinType:()=>oa.tC,normalizeTokenType:()=>oP.nr,splitSuiCoinAfterFeeFromBuyTx:()=>ou,splitSuiCoinAfterFeeFromSellTx:()=>ol,timeout:()=>oH});var t,o,r,a,n,i,s,c,u,l,_,p,d,g,m,f,b,A,I,T,C,S,O,M,x,E,h,y,w,P,F,B,k,v,D,R,L,U,N,j,K,G,q,$,V,Y,J,H,X,W,z,Q,Z,ee,et,eo,er,ea,en,ei,es,ec,eu,el,e_,ep,ed,eg,em,ef,eb,eA,eI,eT,eC,eS,eO,eM,ex,eE,eh,ey,ew,eP,eF,eB,ek,ev,eD,eR,eL,eU,eN,ej,eK,eG,eq,e$,eV,eY,eJ,eH,eX,eW,ez,eQ,eZ,e0,e6,e1,e4,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,tT,tC,tS,tO,tM,tx,tE,th,ty,tw,tP,tF,tB,tk=__webpack_require__("@bluefin-exchange/bluefin7k-aggregator-sdk");let tv=require("@mysten/sui/transactions"),tD=require("bignumber.js");var tR=__webpack_require__.n(tD),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=a?0: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,metaAggregator:a}){let n,i;a?(n=0,i=this._config.defaultTradeFee.tradeFeeRecipientAddress):r?(n=r.tradeFeePercent,i=r.tradeFeeRecipientAddress):(n=this._config.defaultTradeFee.tradeFeePercent,i=this._config.defaultTradeFee.tradeFeeRecipientAddress);let s=await (0,tk.buildTx)({quoteResponse:t,slippage:o,accountAddress:e,commission:{partner:i,commissionBps:1e4*n}});return s.tx instanceof tk.BluefinXTx?tv.Transaction.from(s.tx.txBytes).build({client:this._suiClient}):(s.tx.setSender(e),s.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=await tj.Aftermath.create({network:"MAINNET",baseUrl:this._config.aftermathApiEndpoint}),t=await e.getAddresses(),o=await tj.Aftermath.create({network:"MAINNET",baseUrl:this._config.aftermathApiEndpoint,api:new tj.AftermathApi(this._suiClient,t)});if(this._config.aftermathApiKey){let e=tj.Helpers.keypairFromPrivateKey(this._config.aftermathApiKey);await o.Auth().init({async signMessageCallback({message:t}){let{signature:o}=await e.signPersonalMessage(t);return{signature:o}},walletAddress:e.toSuiAddress()})}return this._aftermathClient=o,o}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}};let t$=require("@naviprotocol/astros-aggregator-sdk"),tV=new Set([t$.Dex.MAGMA]),tY=[t$.Dex.CETUS,t$.Dex.TURBOS,t$.Dex.KRIYA_V2,t$.Dex.KRIYA_V3,t$.Dex.AFTERMATH,t$.Dex.DEEPBOOK,t$.Dex.BLUEFIN,t$.Dex.VSUI,t$.Dex.HASUI,t$.Dex.MOMENTUM,t$.Dex.FLOWX,t$.Dex.MAGMA_ALMM];function tJ(e){return e.routes.some(e=>!!Array.isArray(e.path)&&e.path.some(e=>tV.has(e.provider??"")))}class tH{_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"),i=await n(t,o,e,this._config.astrosApiKey,{byAmountIn:!0,dexList:tY,serviceFee:a});if(tJ(i))throw Error("Astros returned a route with excluded provider: magma");return i}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;if(n=r?{fee:r.tradeFeePercent,receiverAddress:r.tradeFeeRecipientAddress}:{fee:this._config.defaultTradeFee.tradeFeePercent,receiverAddress:this._config.defaultTradeFee.tradeFeeRecipientAddress},tJ(e))throw Error("Astros quote contains excluded provider: magma");let s=new(tR())(e.amount_out).multipliedBy(1-o-n.fee).toNumber(),c=new tv.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,{dexList:tY,serviceFee:n});return c.transferObjects([p],t),c.setSender(t),c.build({client:this._suiClient})}}(tH||(tH={})).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 tX=__webpack_require__("@cetusprotocol/aggregator-sdk");let tW=require("bn.js");var tz=__webpack_require__.n(tW);(eu||(eu={})).equals=function(e,t){return e.tradeFeePercent===t.tradeFeePercent&&e.tradeFeeRecipientAddress===t.tradeFeeRecipientAddress};var tQ=__webpack_require__("./src/meta-aggregator/converter-route/cetus-aggregator-converter.ts");class tZ{_config;_suiClient;_cetusClient;getCetusClientConfig({walletAddress:e,overlayFeeReceiver:t,overlayFeeRate:o}){return{client:this._suiClient,overlayFeeReceiver:t,overlayFeeRate:o,env:tX.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,o){return o?new tX.AggregatorClient(this.getCetusClientConfig({walletAddress:e,overlayFeeReceiver:void 0,overlayFeeRate:void 0})):t&&!eu.equals(t,this._config.defaultTradeFee)?new tX.AggregatorClient(this.getCetusClientConfig({walletAddress:e,overlayFeeReceiver:t.tradeFeeRecipientAddress,overlayFeeRate:t.tradeFeePercent})):(this._cetusClient||(this._cetusClient=new tX.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,a),s=n??(a?tQ.M.SUPPORTED_PROTOCOLS:void 0);return await i.findRouters({from:t,target:o,amount:new(tz())(e.toString()),byAmountIn:!0,providers:s})}catch(e){return tU("cetus",e),null}}async getTransaction({completeRoute:e,walletAddress:t,slippage:o,tradeFee:r,metaAggregator:a}){let n=this.cetusClient(t,r,a),i=new tv.Transaction;return i.setSender(t),await n.fastRouterSwap({router:e,txb:i,slippage:o}),i.build({client:this._suiClient})}}(tZ||(tZ={})).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 t0=((t={}).ASTROS="ASTROS",t.AFTERMATH="AFTERMATH",t.SEVENK="7K",t.CETUS="CETUS",t.FLOWX="FLOWX",t),t6=__webpack_require__("@flowx-finance/sdk"),t1=__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,o){let r,a;if(!o)return t?(r=t.tradeFeePercent,a=t.tradeFeeRecipientAddress):(r=this._config.defaultTradeFee.tradeFeePercent,a=this._config.defaultTradeFee.tradeFeeRecipientAddress),new t6.Commission(a,new t6.Coin(e),t6.CommissionType.PERCENTAGE,1e6*r,!0)}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r,metaAggregator:a,supportedProtocols:n}){let i=new t6.AggregatorQuoter("mainnet",this._config.flowxApiKey),s=n??(a?t1.m.SUPPORTED_PROTOCOLS:void 0);try{return await i.getRoutes({tokenIn:t,tokenOut:o,amountIn:e.toString(),commission:this.getCommission(t,r,a),includeSources:s})}catch(e){return tU("flowx",e),null}}async getTransaction({walletAddress:e,completeRoute:t,slippage:o,tradeFee:r,metaAggregator:a}){let n=new t6.TradeBuilder("mainnet",t.routes).sender(e).slippage(1e6*o),i=this.getCommission(t.coinIn.coinType,r,a);return i&&(n=n.commission(i)),n.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=el||(el={})).PACKAGE_ID_V4="0x7e6aa6e179466ab2814425a780b122575296d011119fa69d27f289f5a28814bd",o.MEMEZ_AV_OBJECT_ID="0x2319e3e76dfad73d8f4684bdbf42be4f32d8ce4521dd61becc8261dc918d82c0";var t3=__webpack_require__("@minswap/tiny-invariant"),t2=__webpack_require__.n(t3);let t5=require("@mysten/sui/bcs");async function t8(e,t){return(await t9(e,t)).fields}async function t9(e,t){let o=(await e.getObject({objectId:t,include:{json:!0,objectBcs:!0}})).object;t2()(o,"Pool object not found or has no content"),t2()(o.json,"Pool object not found or has no content"),t2()(o.objectBcs,"Pool object not found or has no content");let r=t5.bcs.Object.parse(o.objectBcs);return t2()("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 t7(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 oe(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 ot(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 oo=ep||(ep={});function or(e){return t2()(BigInt(e)<=BigInt(1e4),"Bps overflow"),BigInt(e)}oo.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},oo.sub=function(e,t){return t2()(BigInt(e.pos0)>=BigInt(t.pos0),"Bps underflow"),{pos0:(BigInt(e.pos0)-BigInt(t.pos0)).toString()}},oo.value=function(e){return BigInt(e.pos0)},oo.new_=function(e){return{pos0:or(e).toString()}},oo.assertOverflow=or,((a=ed||(ed={})).MemezFun||(a.MemezFun={})).isSniperProtectedMemezFun=async function(e,t){return(await t8(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 t8(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 t8(t,r),i=await ed.MemezPump.getPumpState(t,n);return o=oe(o,a),ed.MemezPump.pump(i,o)},s.getSuiAmountAfterSell=async function(e,t){let{curveAmount:o,poolId:r,frontendFee:a}=e,n=await t8(t,r),i=await ed.MemezPump.getPumpState(t,n);return oe(ed.MemezPump.dump(i,o),a)};var oa=__webpack_require__("./src/constant/sui.ts"),on=__webpack_require__("@mysten/sui/utils");let oi=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 os(e,t){let{account:o,amount:r,splits:a,coinType:n,inheritTx:i,inspecTransaction:s,isSponsored:c=!1}=e,u=i??new tv.Transaction,{objectIds:l,balance:_}=await oi(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,on.normalizeStructTag)(n)===(0,on.normalizeStructTag)(oa.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 oc="0x62412b7268c35f3808336aee57a52836501f40b8ba5d936f8ad275e672befd04";async function ou(e,t){let o,r,{inputAmount:a,accountAddress:n,frontendFee:i,frontendFeeRecipient:s,extendTx:c,isSponsored:u}=e;t2()(e.inCoinType===oa.P9||e.inCoinType===oa.nD,"Input must be SUI");let{tx:l,coinIn:_}=c||{},p=t7(a,i||"0"),d=l||new tv.Transaction;if(_)o=d.splitCoins(_,p),em.transferOrDestroyZeroCoin(d,oa.P9,_,n);else{let{coinData:e}=await os({account:n,amount:a,splits:p,coinType:oa.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 ol(e,t,o){if(t2()(t.outCoinType===oa.P9||t.outCoinType===oa.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:`${oc}::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:`${oc}::utils::transfer_or_destroy`,typeArguments:[t],arguments:[o,e.pure.address(r)]})};var o_=ef||(ef={});async function op(e){let t=e||new tv.Transaction;return t.moveCall({target:`${el.PACKAGE_ID_V4}::memez_allowed_versions::get_allowed_versions`,arguments:[t.object(el.MEMEZ_AV_OBJECT_ID)],typeArguments:[]})}o_.getAllowedVersions=op,o_.buildBuyTx=async function(e,t){t2()(!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 ou(e,t);t2()(r,"Coin out is required");let a=o.moveCall({target:`${el.PACKAGE_ID_V4}::memez_pump::pump`,typeArguments:[e.outCoinType,oa.P9],arguments:[o.object(e.poolId),r,o.pure.vector("address",[]),o.pure.vector("vector<u8>",[]),o.pure.u64(e.minAmountOut),await op(o)]});return{tx:o,coinOut:a}},o_.buildSellTx=async function(e,t){t2()(e.outCoinType===oa.P9||e.outCoinType===oa.nD,"Output must be SUI");let o=await t8(t,e.poolId),{tx:r,coinData:a}=await os({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 op(r)]});return await ol(r,e,i)};let od=require("@interest-protocol/sui-core-sdk"),og=require("@mysten/sui/grpc");var om=__webpack_require__("@mysten/sui/jsonRpc");function of(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 ob(e){return of(e)}function oA(e){return"Transaction"===e.$kind?e.Transaction.digest:e.FailedTransaction.digest}let oI={network:od.Network.MAINNET,fullNodeUrl:of("mainnet")};async function oT(){if(!e){let{MemezPumpSDK:t}=await import("@interest-protocol/memez-fun-sdk");e=new t(oI)}return e}async function oC(e,t){let{inheritTx:o,sender:r,feeAmount:a,suiInputAmount:n}=e,i=o||new tv.Transaction;a>BigInt(0)&&i.setGasBudget(a);let{objectCoins:s}=await oi(t,r,(BigInt(n||"0")+a).toString(),oa.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=oe(t,r);let{memeAmountOut:a}=await (await oT()).quotePump({pool:o,amount:t});return a},c.getSuiAmountAfterSell=async function(e){let{curveAmount:t,poolId:o,frontendFee:r}=e,{quoteAmountOut:a}=await (await oT()).quoteDump({pool:o,amount:t});return oe(a,r)};var oS=eA||(eA={});async function oO(e,t){let{tx:o,coinOut:r}=await ou(e,t);t2()(r,"Coin out is required");let{memeCoin:a,tx:n}=await (await oT()).pump({pool:e.poolId,quoteCoin:r,minAmountOut:e.minAmountOut,tx:o});return{tx:n,coinOut:a}}async function oM(e,t){t2()((0,oa.tC)(e.outCoinType),"Output must be SUI");let{tx:o,coinData:r}=await os({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 oT()).dump({pool:e.poolId,memeCoin:a,tx:o,minAmountOut:e.minAmountOut});return await ol(i,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){t2()((0,oa.tC)(t),"coinInType must be SUI for buy transaction"),t2()(o!==t,"coinOutType must be different from coinInType"),t2()(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),t2()(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 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);t2()(_,"Coin out is required"),l.transferObjects([_],l.pure.address(n)),l.setSender(n);let p=await ot(s,l,n,0);return(l=await oC({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){t2()((0,oa.tC)(o),"coinOutType must be SUI for sell transaction"),t2()(o!==t,"coinOutType must be different from coinInType"),t2()(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),t2()(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 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);t2()(_,"Coin out is required"),l.transferObjects([_],l.pure.address(n)),l.setSender(n);let p=await ot(s,l,n,0);return(l=await oC({inheritTx:l,sender:n,feeAmount:p},s)).build({client:s})};var ox=((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:t5.bcs.byteVector().serialize(new TextEncoder().encode("virtual_token_reserves")).toBytes()}});if(!o.dynamicField?.value)return;return BigInt(t5.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 t2()(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:_}}}(eT||(eT={})),(_=eC||(eC={})).getCurveAmountAfterBuy=async function(e,t){let{suiAmount:o,poolId:r,frontendFee:a}=e,[n,i,s]=await Promise.all([t8(t,r),t8(t,eI.CONFIG_OBJECT_ID),eT.Moonbags.getDynamicVirtualTokenReserves(t,r)]);void 0!==a&&(o=oe(o,a));let c=o*eI.FEE_DENOMINATOR/(eI.FEE_DENOMINATOR+BigInt(i.platform_fee)),{receivedCurve:u}=eT.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([t8(t,r),t8(t,eI.CONFIG_OBJECT_ID)]),{receivedSui:s}=eT.Moonbags.sellReturns({amountIn:o,pool:n,config:i});return void 0!==a?oe(s,a):s},_.getUsedSuiForTx=async function(e,t){let{suiAmount:o,frontendFee:r}=e,a=await t8(t,eI.CONFIG_OBJECT_ID);return void 0!==r&&(o=oe(o,r)),o*eI.FEE_DENOMINATOR/(eI.FEE_DENOMINATOR+BigInt(a.platform_fee))};var oE=eS||(eS={});async function oh(e,t){let{tx:o,coinOut:r}=await ou(e,t);t2()(r,"Coin out is required");let a=await eC.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(oa.IC),o.object(oa.VV)]});return em.transferOrDestroyZeroCoin(o,oa.P9,n,e.accountAddress),{tx:o,coinOut:i}}async function oy(e,t){t2()((0,oa.tC)(e.outCoinType),"Output must be SUI");let{tx:o,coinData:r}=await os({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(oa.VV)]});return em.transferOrDestroyZeroCoin(o,e.inCoinType,i,e.accountAddress),await ol(o,e,n)}oE.buildBuyTx=oh,oE.buildSellTx=oy,oE.getBuyTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:a,walletAddress:n,tradeFee:i},s){t2()((0,oa.tC)(t),"coinInType must be SUI for buy transaction"),t2()(o!==t,"coinOutType must be different from coinInType"),t2()(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),t2()(e>0,"coinInAmount must be greater than 0");let c=await eC.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 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);t2()(_,"Coin out is required"),l.transferObjects([_],l.pure.address(n)),l.setSender(n);let p=await ot(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){t2()((0,oa.tC)(o),"coinOutType must be SUI for sell transaction"),t2()(o!==t,"coinOutType must be different from coinInType"),t2()(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),t2()(e>0,"coinInAmount must be greater than 0");let c=await eC.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 oy({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);t2()(_,"Coin out is required"),l.transferObjects([_],l.pure.address(n)),l.setSender(n);let p=await ot(s,l,n,0);return(l=await oC({inheritTx:l,sender:n,feeAmount:p},s)).build({client:s})};var ow=__webpack_require__("./src/libs/pyth.ts"),oP=__webpack_require__("./src/libs/token-type.ts"),oF=__webpack_require__("./src/meta-aggregator/client/bluefin7k-client.ts"),oB=__webpack_require__("./src/meta-aggregator/client/cetus-client.ts"),ok=__webpack_require__("./src/meta-aggregator/client/error.ts"),ov=__webpack_require__("./src/meta-aggregator/client/flowx-client.ts"),oD=__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 oR=__webpack_require__("./src/meta-aggregator/router/types.ts");(d=eM||(eM={})).LAST_PACKAGE_ID="0xf369250dc5a17e9d5a84a3b0cf5aea715c0682170e726dd601f03ade7ce4decb",d.swap=function(e){t2()(e.protocol===oR.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=ex||(ex={})).STAKED_SUI_VAULT_OBJ_ID="0x2f8f6d5da7f13ea37daa397724280483ed062769813b6f31e9788e59cc88994d",g.SAFE_TREASURY_OBJECT_ID="0xeb685899830dd5837b47007809c76d91a098d52aabbf61e8ac467c59e5cc4610",g.REFERRAL_VAULT_OBJ_ID="0x4ce9a19b594599536c53edb25d22532f82f18038dc8ef618afd00fbbfb9845ef",g.VALIDATOR_ADDRESS="0xd30018ec3f5ff1a3c75656abf927a87d7f0529e6dc89c7ddd1bd27ecb05e3db2",(m=eE||(eE={})).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(ex.STAKED_SUI_VAULT_OBJ_ID),t.object(ex.SAFE_TREASURY_OBJECT_ID),t.object(on.SUI_SYSTEM_STATE_OBJECT_ID),t.object(ex.REFERRAL_VAULT_OBJ_ID),t.pure.address(ex.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(on.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){t2()(e.protocol===oR.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=eF||(eF={})).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(on.SUI_CLOCK_OBJECT_ID)]})},(eB||(eB={})).DEX_INFO_OBJ_ID="0x3f2d9f724f4a1ce5e71676448dc452be9a6243dac9c5b975a588c8c867066e92",(T=ek||(ek={})).LAST_PACKAGE_ID="0xf52bdd65ee347e8994170f8c331cf0c23a55281b3282467f14ccbb3e2a7f928f",T.swap=function(e){let{txb:t,swapContext:o,aToB:r,amountIn:a,coinAType:n,coinBType:i,packageId:s}=e;t.moveCall({target:`${s??T.LAST_PACKAGE_ID}::bluemove_cpmm_router::swap`,typeArguments:[n,i],arguments:[o,t.object(eB.DEX_INFO_OBJ_ID),t.pure.bool(r),t.pure.u64(a)]})},(ev||(ev={})).ORACLE_OBJ_ID="0xfa3975b98f3d0e3df18ed88ae6e69db31836b3f4212df02fae144b1e5a89ca8e",(C=eD||(eD={})).LAST_PACKAGE_ID="0x2dd7b04509f332bdb93a8f228ab5c40b34baee4645b2ebe5e5fa2c3502b2c088",C.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??C.LAST_PACKAGE_ID}::bolt_router::swap`,typeArguments:[a,n],arguments:[o,t.object(r),t.object(ev.ORACLE_OBJ_ID),t.object(on.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(on.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(on.SUI_CLOCK_OBJECT_ID)];t.moveCall({target:`${c??M.LAST_PACKAGE_ID}::cetus_dlmm_router::swap`,typeArguments:[i,s],arguments:u})},(x=ej||(ej={})).GLOBAL_CONFIG="0x699d455ab8c5e02075b4345ea1f91be55bf46064ae6026cc2528e701ce3ac135",x.DEEP_TYPE="0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP",(E=eK||(eK={})).LAST_PACKAGE_ID="0xff274b63c0f6e3a01f3dd0e923aefcb3146e05e2f6bef4ae339e2703b085f8ed",E.swap=function(e){t2()(e.protocol===oR.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??E.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(on.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(on.SUI_CLOCK_OBJECT_ID)]})},(P=eH||(eH={})).POOL_REGISTRY_OBJ_ID="0x27565d24a4cd51127ac90e4074a841bbe356cca7bf5759ddc14a975be1632abc",P.VERSIONED_OBJ_ID="0x67624a1533b5aff5d0dfcf5e598684350efd38134d2d245f475524c03a64e656",(F=eX||(eX={})).LAST_PACKAGE_ID="0x350a752d3388165e578cc33a39655a6da83613cf4e58c8d9d0723711c2603e17",F.swap=function(e){t2()(e.protocol===oR.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??F.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(on.SUI_CLOCK_OBJECT_ID)]})},(eW||(eW={})).CONTAINER_OBJ_ID="0xb65dcbf63fd3ad5d0ebfbf334780dc9f785eff38a4459e37ab08fa79576ee511",(B=ez||(ez={})).LAST_PACKAGE_ID="0xd95b440ad340bb6cbf571897d312e43d4b6de37b60c69ef714c94b9835cb8866",B.swap=function(e){let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,packageId:s}=e;t.moveCall({target:`${s??B.LAST_PACKAGE_ID}::flowx_cpmm_router::swap`,typeArguments:[r,a],arguments:[o,t.object(eW.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",(v=eZ||(eZ={})).LAST_PACKAGE_ID="0xf0bf13b5baaf3d368f165e846b919294bed79a3ab3ab0c9bd1e75f23533e44a5",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}::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(on.SUI_CLOCK_OBJECT_ID)]})},(D=e0||(e0={})).LAST_PACKAGE_ID="0x8969ed3e56c1dbdaf9df52f812d69c6c45fe5a4bab7093c88f5a8697a409398e",D.swap=function(e){t2()(e.protocol===oR.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);t2()(p,"Not found priceInfoAId in pythObjectIdMap"),t2()(d,"Not found priceInfoBId in pythObjectIdMap"),t.moveCall({target:`${_??D.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(on.SUI_CLOCK_OBJECT_ID)]})},(R=e6||(e6={})).LAST_PACKAGE_ID="0x5d01f22e5471a5912a88e15d62fdcb922beba65b8e8dfe1a715aebf743194f4a",R.swap=function(e){t2()(e.protocol===oR.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);t2()(_,"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(on.SUI_CLOCK_OBJECT_ID)]})},(L=e1||(e1={})).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(on.SUI_SYSTEM_STATE_OBJECT_ID),t.pure.bool(r),t.pure.u64(a)]})},(e4||(e4={})).STAKING_OBJ_ID="0x10b9d30c28448939ce6c4d6c6e0ffce4a7f8a4ada8248bdad09ef8b70e4a3904",(e3||(e3={})).VALIDATOR_ID="0x7b3ba6de2ae58283f60d5b8dc04bb9e90e4796b3b2e0dea75569f491275242e7",(U=e2||(e2={})).LAST_PACKAGE_ID="0x7be077dd73c85e788c2a49a51f0627066d81d3dc9982c268e3691265a81d544d",U.swap=function(e){t2()(e.protocol===oR.S.HAEDAL_LSD_WAL),t2()(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(e4.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(on.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(on.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(on.SUI_CLOCK_OBJECT_ID)]})};var oL=__webpack_require__("./src/meta-aggregator/external/metastable.ts");($=tr||(tr={})).LATEST_PACKAGE_ID="0xfab91518218f10204b083dba1e62c8bfc23f14fb87742158043e5faec4670ec4",$.swap=function(e){let t,o,r;t2()(e.protocol===oR.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=[oL.b.createCap({coinType:g,createCapFunc:"create_withdraw_cap",...e})]):g===_?(r="swap_to_meta_coin",t=[_,d],o=[oL.b.createCap({coinType:d,createCapFunc:"create_deposit_cap",...e})]):(r="swap",t=[_,d,g],o=[oL.b.createCap({coinType:d,createCapFunc:"create_deposit_cap",...e}),oL.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(oL.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(on.SUI_CLOCK_OBJECT_ID)]})},(ti||(ti={})).CONFIGURATION_OBJ_ID="0xd746495d04a6119987c2b9334c5fefd7d8cff52a8a02a3ea4e3995b9a041ace4",(Y=ts||(ts={})).LAST_PACKAGE_ID="0x5a259db4b1d17fafc09185c9a71bac36f25f9ee462e72894c8610e5a58b79f8f",Y.swap=function(e){t2()(e.protocol===oR.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(eB.DEX_INFO_OBJ_ID),t.object(on.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;t2()(e.protocol===oR.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),t2()(t,"Not found priceInfoAId in pythObjectIdMap"),t2()(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(on.SUI_CLOCK_OBJECT_ID)]})},(H=tl||(tl={})).VERSION_OBJ_ID="0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7",H.MARKET_OBJ_ID="0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9",(X=t_||(t_={})).LAST_PACKAGE_ID="0xea409bb08c8a09e4127f859d9c36b8b62ca609282aa1e443091db6b7a7409ee7",X.swap=function(e){t2()(e.protocol===oR.S.SCALLOP);let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,scoinTreasury:s,packageId:c}=e;t.moveCall({target:`${c??X.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(on.SUI_CLOCK_OBJECT_ID)]})},(tp||(tp={})).ORACLE_HOLDER_OBJ_ID="0x8c36ea167c5e6da8c3d60b4fc897416105dcb986471bd81cfbfd38720a4487c0",(W=td||(td={})).LAST_PACKAGE_ID="0x918a30e2a05d24ea9451e2d2900d055f74e6752f2e10251fa50c7175831b1958",W.swap=function(e){t2()(e.protocol===oR.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);t2()(m,"Not found priceInfoAId in pythObjectIdMap"),t2()(f,"Not found priceInfoBId in pythObjectIdMap");let b=ow.L.newHolder(t);ow.L.getPrice({txb:t,coinPriceId:_,holder:b,coinOracleId:u}),ow.L.getPrice({txb:t,coinPriceId:p,holder:b,coinOracleId:l}),t.moveCall({target:`${g??W.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){t2()(e.protocol===oR.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(eW.CONTAINER_OBJ_ID),t.object(on.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(on.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(on.SUI_CLOCK_OBJECT_ID)]})};var oU=tT||(tT={});function oN(e,t){t2()(e.protocol===oR.S.STEAMM_OMM||e.protocol===oR.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:T,oracleIndexB:C,packageId:S}=e,O=A.get(f),M=A.get(b);t2()(O,"Not found priceInfoAId in pythObjectIdMap"),t2()(M,"Not found priceInfoBId in pythObjectIdMap");let x=tI.Oracle.getPythPrice({txb:o,oracleRegistryId:I,priceInfoId:O,oracleIndex:T}),E=tI.Oracle.getPythPrice({txb:o,oracleRegistryId:I,priceInfoId:M,oracleIndex:C});o.moveCall({target:`${S??oU.LAST_PACKAGE_ID}::${oj(t)}::swap`,typeArguments:[p,n,i,d,g,m],arguments:[r,o.object(a),o.object(u),o.object(l),o.object(_),x,E,o.pure.bool(s),o.pure.u64(c),o.object(on.SUI_CLOCK_OBJECT_ID)]})}function oj(e){switch(e){case 0:return"steamm_omm_router";case 1:return"steamm_omm_v2_router"}}function oK(e){let{amountOut:t,aggregatorFeeBps:o,partnerFeeBps:r}=e,a=oG(t,o);return r&&(a=oG(a,r)),a}function oG(e,t){let o=BigInt(e)*BigInt(t)/BigInt(1e4);return(BigInt(e)-o).toString()}function oq(e){return Math.floor(100*e)}oU.LAST_PACKAGE_ID="0xd606880d67c399f349758111a91582d5515f31dd051632402653d872818f594e",oU.swapCpmm=function(e){t2()(e.protocol===oR.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:`${oU.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(on.SUI_CLOCK_OBJECT_ID)]})},oU.swapOmm=function(e){oN(e,0)},oU.swapOmmV2=function(e){oN(e,1)},oU.getOmmRouterModule=oj,(eo=tC||(tC={})).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(on.SUI_CLOCK_OBJECT_ID)]})},(er=tS||(tS={})).VERSIONED="0x0309b66202e9aaf470081fffee7ffc0fbd50e3b7400d4f56fd06502e4dbbd676",er.POOL_REGISTRY="0xcd0a614c4cbbf173f59dee2602c43a1717f283215ed7a0bb1d55d786af16fbcd",(ea=tO||(tO={})).LAST_PACKAGE_ID="0x79957062a7424ed9c2eb83932e4c4fcc3fee67ab3c8f6f874c54e417178bbb7a",ea.swap=function(e){t2()(e.protocol===oR.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(on.SUI_CLOCK_OBJECT_ID)]})},(tM||(tM={})).POOL_VERSIONED="0xf1cf0e81048df168ebeb1b8030fad24b3e0b53ae827c25053fff0779c1445b6f",(en=tx||(tx={})).LAST_PACKAGE_ID="0x512d63711ff38353fb167238b0529001b6871c1727c67ce3bf6ec23556b0f1da",en.swap=function(e){t2()(e.protocol===oR.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(on.SUI_CLOCK_OBJECT_ID)]})},(tE||(tE={})).CONFIGURATION_OBJ_ID="0xd86685fc3c3d989385b9311ef55bfc01653105670209ac4276ebb6c83d7df928",(ei=th||(th={})).LAST_PACKAGE_ID="0x1fad13f09797aa87a4385d0b1efb2de963ba16742447b1ad5a3b0c5b1d1c588b",ei.swap=function(e){t2()(e.protocol===oR.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(tE.CONFIGURATION_OBJ_ID),t.object(on.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(on.SUI_SYSTEM_STATE_OBJECT_ID),t.pure.bool(a),t.pure.u64(n)]})},(ec=tP||(tP={})).RouterSwapFunctionMap={[oR.S.AFTERMATH_CPMM]:eM.swap,[oR.S.AFTERMATH_LSD]:eE.swap,[oR.S.ALPHAFI_LSD]:eh.swap,[oR.S.BLASTFUN]:ew.swap,[oR.S.BLUEFIN_CLMM]:eF.swap,[oR.S.BLUEMOVE_CPMM]:ek.swap,[oR.S.BOLT]:eD.swap,[oR.S.CETUS_CLMM]:eL.swap,[oR.S.CETUS_DLMM]:eN.swap,[oR.S.DEEPBOOK_V3]:eK.swap,[oR.S.DIP_CPMM]:eq.swap,[oR.S.FERRA_CLMM]:eV.swap,[oR.S.FERRA_DLMM]:eJ.swap,[oR.S.FLOWX_CPMM]:ez.swap,[oR.S.FLOWX_CLMM]:eX.swap,[oR.S.FULLSAIL_CLMM]:eZ.swap,[oR.S.HAEDAL_CPMM]:e0.swap,[oR.S.HAEDAL_CPMM_V2]:e6.swap,[oR.S.HAEDAL_LSD]:e1.swap,[oR.S.HAEDAL_LSD_WAL]:e2.swap,[oR.S.KRIYA_CLMM]:e8.swap,[oR.S.KRIYA_CPMM]:e9.swap,[oR.S.MAGMA_ALMM]:te.swap,[oR.S.MAGMA_CLMM]:to.swap,[oR.S.METASTABLE]:tr.swap,[oR.S.MOMENTUM_CLMM]:tn.swap,[oR.S.MOVEPUMP]:ts.swap,[oR.S.OBRIC]:tu.swap,[oR.S.SCALLOP]:t_.swap,[oR.S.SEVENK_CPMM]:td.swap,[oR.S.SEVENK_FUN]:tm.swap,[oR.S.SPRINGSUI]:tf.swap,[oR.S.SRM_CPMM]:tA.swap,[oR.S.STEAMM_CPMM]:tT.swapCpmm,[oR.S.STEAMM_OMM]:tT.swapOmm,[oR.S.STEAMM_OMM_V2]:tT.swapOmmV2,[oR.S.SUISWAP_CPMM]:tC.swap,[oR.S.TRADEPORT_CLMM]:tO.swap,[oR.S.TURBOS_CLMM]:tx.swap,[oR.S.TURBOS_FUN]:th.swap,[oR.S.VOLO]:tw.swap},ec.swap=function(e){(0,ec.RouterSwapFunctionMap[e.protocol])(e)},(tF||(tF={})).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 ow.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 oD.u.closeSwap({tx:t,coinOutType:o,swapSession:s})};let o$=ow.j.newPythConnections(),oV=ow.j.newPythClient();var oY=tB||(tB={});function oJ(e){var t,o,r;let a,n,{buildTxParam:i,rawRouteParam:s}=e;switch(s.sourceRoute){case"CETUS":a=tQ.M.convert(s.rawRoute);break;case"FLOWX":a=t1.m.convert(s.rawRoute);break;case"SEVENK":a=tL.m.convert(s.rawRoute);break;default:throw Error("Unsupported source route")}let c=oq(i.aggregatorFeeRatePercent),u=i.partnerFeeRatePercent?oq(i.partnerFeeRatePercent):void 0,l=i.expectedAmountOut??oK({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??o$,pythClient:i.pythClient??oV}}oY.toMetaAggregatorBuildTxParams=oJ,oY.buildTx=function(e){let t=oJ(e);return tF.buildAggregatorSwapTransaction(t)};let oH=async(e,t,o)=>t<=0?e():new Promise((r,a)=>{let n=setTimeout(()=>a(new ok.u(`Timeout ${o??"operation"}`,ok.j.TIMEOUT,{timeout:t})),t);e().then(r).catch(a).finally(()=>clearTimeout(n))}),oX=(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 oz{client;jsonRpcClient;providers={};options;constructor(e){this.options={providers:{...oW,...e?.providers},clients:e.clients,slippageBps:e?.slippageBps??100,hermesApi:e?.hermesApi??ow.j.PYTH_URLS,partner:e?.partner??oa.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(ok.u.assert(!!o,`Provider not found: ${e}`,ok.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(oQ("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(oQ("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(oQ("CETUS"));this.providers.CETUS=new e(o,this.options,this.client);break}default:throw new ok.u(`Provider not supported: ${e}`,ok.j.PROVIDER_NOT_SUPPORTED,{provider:e})}return this.providers[e]}async getQuoteByClient(e,t){return await oH(async()=>{let o=await e.quote(t);return o?(o.amountOut=oK({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,on.normalizeStructTag)(e.coinTypeIn),coinTypeOut:(0,on.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,on.normalizeSuiAddress)(o);ok.u.assert((0,on.isValidSuiAddress)(i),`Invalid signer address: ${o}`,ok.j.INVALID_SIGNER_ADDRESS,{signer:o}),r.setSender(i);let s=(n??this.options.slippageBps)/1e4,c=this.options.partner&&this.options.partner!==oa.qb?this.options.partner:void 0,u=c&&this.options.partnerCommissionBps>0?this.options.partnerCommissionBps/1e4:void 0;return tB.buildTx({buildTxParam:{tx:r,inputCoin:a,expectedAmountOut:t.amountOut,slippagePercent:s,aggregatorFeeRatePercent:this.options.tipBps/1e4,aggregatorFeeRecipient:"0xdaf1c8ed29d89cd8f217f609bad0a668fa6f158c12000bfa5f93e670c99e24ff",partnerFeeRatePercent:u,partnerFeeRecipient:c,pythConnections:ow.j.newPythConnections(this.options.hermesApi),pythClient:ow.j.newPythClient(this.jsonRpcClient)},rawRouteParam:{...t}})}}let oQ=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},oZ=new Set([t0.SEVENK,t0.CETUS,t0.FLOWX]);function o0(e){let t=Object.values(t0);return e?t.filter(e=>oZ.has(e)):t}function o6(e,t){return e?e.tradeFeePercent:t.tradeFeePercent}function o1(e,t){var o,r;o=e.amountOut,r=t,e.amountOut=BigInt(new(tR())(o.toString()).multipliedBy(1-r).toFixed(0,3))}class o4{sdk;_astrosAggregator;_aftermathAggregator;_sevenkAggregator;_cetusAggregator;_flowXAggregator;constructor(e){this.sdk=e,this._astrosAggregator=new tH({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 tZ({defaultTradeFee:e.options.tradeFee,cetusApiKey:e.options.cetusApiKey,cetusApiEndpoint:e.options.cetusApiEndpoint,cetusPartnerId:e.options.cetusPartnerId},e.suiClient),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 t0.ASTROS:{let e=await this._astrosAggregator.getTradeRoute(t);if(!e)return null;let r=tH.toCommonTradeRoutes(e,t.coinInType,t.coinOutType);if(!r)return null;o1(r,o6(t.tradeFee,this.sdk.options.tradeFee)),o={route:r,aggregatorRoute:e};break}case t0.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 t0.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},t.metaAggregator&&o1(o.route,o6(t.tradeFee,this.sdk.options.tradeFee));break}case t0.CETUS:{let e=await this._cetusAggregator.getTradeRoute(t);if(!e)return null;let r=tZ.toCommonTradeRoutes(e,t.coinInType,t.coinOutType);if(!r)return null;o={route:r,aggregatorRoute:e},t.metaAggregator&&o1(o.route,o6(t.tradeFee,this.sdk.options.tradeFee));break}case t0.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},t.metaAggregator&&o1(o.route,o6(t.tradeFee,this.sdk.options.tradeFee))}}return o}async getTransactionByRoute(e,t){switch(e){case t0.ASTROS:return this._astrosAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee});case t0.AFTERMATH:return this._aftermathAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage});case t0.SEVENK:return this._sevenkAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee,metaAggregator:t.metaAggregator});case t0.CETUS:return this._cetusAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee,metaAggregator:t.metaAggregator});case t0.FLOWX:return this._flowXAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee,metaAggregator:t.metaAggregator})}}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,metaAggregator:t.metaAggregator});return{route:o.route,aggregatorRoute:o.aggregatorRoute,transaction:r}}async getTradeTransactionWithBestRate(e){let t=o0(e.metaAggregator),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,metaAggregator:e.metaAggregator});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=o0(e.metaAggregator),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 o3="0x25fa0eb553dd69fa6a8028f73a38f1df7f289fa88a58ed3d7dc5a5360155bb19",o2="0x8b1a8ac6e34688cd8f8f8e5fefa9d5fb9e1ff74d2f132f8e208ae5ac9cc530bb",o5="0x13d101f44a0710a5475bec5f492a87b80e03d92d1cf540f26096f65850b23d26",o8=e=>e?.fields??e,o9=(e,t,o)=>{let r=o8(e),a=r?.[t];return t2()(null!=a,`${o} missing ${t}`),a};class o7{sdk;constructor(e){this.sdk=e}async getConfig(){var e;let t,o,r=await this.sdk.suiClient.getObject({objectId:o2,include:{json:!0}});t2()(r.object,"Config object not found"),t2()(r.object.json,"Config object has no content");let a=r.object.json,n="string"==typeof(e=a.id)?e:(t2()("string"==typeof e?.id,"Boosting config id is missing"),e.id),i=a.fee_receiver;t2()("string"==typeof i,"Boosting config fee_receiver is missing");let s=(t=o8(a.tiers),o=t?.contents,t2()(Array.isArray(o),"Boosting config tiers contents are missing"),o),c={};for(let e of s){let t=o9(e,"key","Boosting tier"),o=o9(e,"value","Boosting tier"),r=o9(o,"duration",`Boosting tier ${t}`),a=o9(o,"amount",`Boosting tier ${t}`),n=o9(o,"point",`Boosting tier ${t}`),i=o9(o,"original_amount",`Boosting tier ${t}`);c[t]={duration:BigInt(r),amount:BigInt(a),point:BigInt(n),originalAmount:BigInt(i)}}return{id:n,receiverAddress:i,tiers:c}}async buildPayBoostingTx({walletAddress:e,tierId:t,boostingCoinType:o,currentTx:r}){let a=await this.getConfig();t2()(t in a.tiers,"Invalid tier ID");let n=a.tiers[t].amount,i=r||new tv.Transaction,s=i.splitCoins(i.gas,[i.pure.u64(n)]);i.moveCall({target:`${o3}::boosting::pay`,typeArguments:[(0,on.normalizeStructTag)(o)],arguments:[i.object(o2),i.pure.u64(t),s]}),i.setSender(e);let c=await ot(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 tv.Transaction;s.moveCall({target:`${o3}::config::add_tier`,typeArguments:[],arguments:[s.object(o2),s.object(o5),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 ot(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 tv.Transaction;s.moveCall({target:`${o3}::config::update_tier`,typeArguments:[],arguments:[s.object(o2),s.object(o5),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 ot(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 tv.Transaction;r.moveCall({target:`${o3}::config::remove_tier`,typeArguments:[],arguments:[r.object(o2),r.object(o5),r.pure.u64(t)]}),r.setSender(e);let a=await ot(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 tv.Transaction;r.moveCall({target:`${o3}::config::update_fee_receiver`,typeArguments:[],arguments:[r.object(o2),r.object(o5),r.pure.address(t)]}),r.setSender(e);let a=await ot(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 tv.Transaction,i=n.splitCoins(n.gas,[n.pure.u64(o)]);n.moveCall({target:`${o3}::boosting::pay_with_admin`,typeArguments:[(0,on.normalizeStructTag)(r)],arguments:[n.object(o5),n.object(o2),n.pure.u64(t),n.pure.u64(o),i]}),n.setSender(e);let s=await ot(this.sdk.suiClient,n,e,0);return oC({inheritTx:n,sender:e,feeAmount:s},this.sdk.suiClient)}}class re{sdk;constructor(e){this.sdk=e}async getEstimatedAmountOut(e,t){let{coinInType:o,coinOutType:r}=t;t2()(o!==r,"coinInType and coinOutType must be different"),t2()((0,oa.tC)(o)||(0,oa.tC)(r),"One of coinInType or coinOutType must be SUI");let a=(0,oa.tC)(o);switch(e){case ox.MOONBAGS:if(a)return await eC.getCurveAmountAfterBuy({poolId:t.poolId,suiAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0},this.sdk.suiClient);return await eC.getSuiAmountAfterSell({poolId:t.poolId,curveAmount:t.coinInAmount,frontendFee:t.tradeFee?t.tradeFee.tradeFeePercent:void 0},this.sdk.suiClient);case ox.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;t2()(r!==a,"coinInType and coinOutType must be different"),t2()((0,oa.tC)(r)||(0,oa.tC)(a),"One of coinInType or coinOutType must be SUI");let n=(0,oa.tC)(r);switch(e){case ox.MOONBAGS:o=n?await eS.getBuyTransaction(t,this.sdk.suiClient):await eS.getSellTransaction(t,this.sdk.suiClient);break;case ox.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 rt={prod:{packageId:"0x3dd678c250a667f1551bc4b9e35fd070896f4775dd2900d5cb2910d2aea0b068",configId:"0x3eb7bd15f61b7cc1a9fd36151e9c3d05aa37bfadb0a58c3a26a6c02c2e99f3ca",adminCapId:"0xf375fcb3d95934143766cab2028ab49441fa04ef2ce27c08c01004c455bcbad4",paymentCoinType:"0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC"},staging:{packageId:"0xa83cd093ce5142649adae10d21fe87d55fa2df4e52a4292c77ba039bb12bfe67",configId:"0x19fb8f91946e58c068fa4238bdd7a531216a0c4dcfaa279a8a02c60cb02f6711",adminCapId:"0xd8139544d054702dfab6de4e9c55f162c8a6f30465935af56cffed99c5e1c2bd",paymentCoinType:"0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC"}};class ro{sdk;constructor(e){this.sdk=e}async getConfig(){let e=await this.sdk.suiClient.getObject({objectId:rt[this.sdk.env].configId,include:{json:!0}});t2()(e.object,"Config object not found"),t2()(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=rt[this.sdk.env].paymentCoinType,currentTx:a}){let n=await this.getConfig();t2()(!n.paused,"Contract is paused"),t2()(t in n.plans,"Invalid plan ID");let i=n.plans[t],s=i.price*BigInt(i.monthInterval),{tx:c,coinData:u}=await os({account:e,amount:s.toString(),splits:[s.toString()],coinType:r,inheritTx:a},this.sdk.suiClient);c.moveCall({target:`${rt[this.sdk.env].packageId}::subscription::subscribe_cycle_plan`,typeArguments:[r],arguments:[c.object(rt[this.sdk.env].configId),c.pure.u64(t),c.pure.string(o),u]}),c.setSender(e);let l=await ot(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=rt[this.sdk.env].paymentCoinType,currentTx:n}){let i=await this.getConfig();t2()(!i.paused,"Contract is paused"),t2()(t in i.plans,"Invalid plan ID");let{tx:s,coinData:c}=await os({account:e,amount:r.toString(),splits:[r.toString()],coinType:a,inheritTx:n},this.sdk.suiClient);s.moveCall({target:`${rt[this.sdk.env].packageId}::subscription::buy_more_cu`,typeArguments:[a],arguments:[s.object(rt[this.sdk.env].configId),s.pure.u64(t),s.pure.string(o),s.pure.u64(r),c]}),s.setSender(e);let u=await ot(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=rt[this.sdk.env].paymentCoinType,currentTx:n}){let i=await this.getConfig();t2()(!i.paused,"Contract is paused");let{tx:s,coinData:c}=await os({account:e,amount:r.toString(),splits:[r.toString()],coinType:a,inheritTx:n},this.sdk.suiClient);s.moveCall({target:`${rt[this.sdk.env].packageId}::subscription::subscribe_plan_with_admin`,typeArguments:[a],arguments:[s.object(rt[this.sdk.env].adminCapId),s.object(rt[this.sdk.env].configId),s.pure.u64(t),s.pure.string(o),s.pure.u64(r),c]}),s.setSender(e);let u=await ot(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 tv.Transaction;i.moveCall({target:`${rt[this.sdk.env].packageId}::config::add_plan`,typeArguments:[],arguments:[i.object(rt[this.sdk.env].configId),i.object(rt[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 ot(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 tv.Transaction;i.moveCall({target:`${rt[this.sdk.env].packageId}::config::update_plan`,typeArguments:[],arguments:[i.object(rt[this.sdk.env].configId),i.object(rt[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 ot(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 tv.Transaction;r.moveCall({target:`${rt[this.sdk.env].packageId}::config::remove_plan`,typeArguments:[],arguments:[r.object(rt[this.sdk.env].configId),r.object(rt[this.sdk.env].adminCapId),r.pure.u64(BigInt(t))]}),r.setSender(e);let a=await ot(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 tv.Transaction;r.moveCall({target:`${rt[this.sdk.env].packageId}::config::update_fee_receiver`,typeArguments:[],arguments:[r.object(rt[this.sdk.env].configId),r.object(rt[this.sdk.env].adminCapId),r.pure.address(t)]}),r.setSender(e);let a=await ot(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 tv.Transaction;r.moveCall({target:`${rt[this.sdk.env].packageId}::config::set_paused`,typeArguments:[],arguments:[r.object(rt[this.sdk.env].configId),r.object(rt[this.sdk.env].adminCapId),r.pure.bool(t)]}),r.setSender(e);let a=await ot(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 tv.Transaction;r.moveCall({target:`${rt[this.sdk.env].packageId}::config::set_accepted_payment_type`,typeArguments:[t],arguments:[r.object(rt[this.sdk.env].configId),r.object(rt[this.sdk.env].adminCapId)]}),r.setSender(e);let a=await ot(this.sdk.suiClient,r,e,0);return oC({inheritTx:r,sender:e,feeAmount:a},this.sdk.suiClient)}}class rr{network;env;_suiClient;boostingModule;subscriptionModule;constructor(e,t="mainnet",o="prod"){this.network=t,this.env=o,this._suiClient=e,this.subscriptionModule=new ro(this),this.boostingModule=new o7(this)}get suiClient(){return this._suiClient}}let ra={tradeFeePercent:.01,tradeFeeRecipientAddress:"0xdaf1c8ed29d89cd8f217f609bad0a668fa6f158c12000bfa5f93e670c99e24ff"};class rn{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 o4(this),this.curveModule=new re(this)}get suiClient(){return this._suiGrpcClient}get suiJsonRpcClient(){return this._suiJsonRpcClient}}let ri=require("@mysten/sui/keypairs/ed25519"),rs=.1;class rc{suiClient;constructor(e){this.suiClient=e}validatePrivateKey(e,t){t2()(e?.trim(),"Private key is required");let o=ri.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){t2()(e?.trim(),"Sender address is required"),t2()(t?.trim(),"Recipient address is required"),t2()(e!==t,"Sender and recipient cannot be the same"),t2()(o>0n,"Transfer amount must be at least 1 MIST");try{let r=new tv.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 ot(this.suiClient,r,e,rs);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{t2()(e,"Draft transaction is required"),t2()(e.txDraftBase64?.trim(),"Transaction data is required");let o=this.validatePrivateKey(t,e.sender),r=(0,on.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){t2()(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){let r="0x2::sui::SUI",a="0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI";function n(e){return e===r||e===a}o.d(t,{tC:()=>n},{IC:"0x9258181f5ceac8dbffb7030890243caed69a9599d2886d957a9cb7656af3bdb3",N3:"0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN",P9:a,VV:"0x0000000000000000000000000000000000000000000000000000000000000006",cN:"https://graphql.mainnet.sui.io/graphql",ez:"https://fullnode.mainnet.sui.io:443",lM:"0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC",nD:r,qb:"0x0000000000000000000000000000000000000000000000000000000000000000"})},"./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){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}o.d(t,{YY:()=>i,eP:()=>n,nr:()=>a})},"./src/meta-aggregator/aggregator/aggregator.ts"(e,t,o){var r,a;(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},o.d(t,{u:()=>r})},"./src/meta-aggregator/client/bluefin7k-client.ts"(e,t,o){o.r(t);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}}}o.d(t,{Bluefin7kClient:()=>i})},"./src/meta-aggregator/client/cetus-client.ts"(e,t,o){o.r(t);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}}}o.d(t,{CetusClient:()=>c})},"./src/meta-aggregator/client/error.ts"(e,t,o){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)}}o.d(t,{j:()=>a,u:()=>n})},"./src/meta-aggregator/client/flowx-client.ts"(e,t,o){o.r(t);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}}}o.d(t,{FlowxClient:()=>n})},"./src/meta-aggregator/converter-route/cetus-aggregator-converter.ts"(e,t,o){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={})),o.d(t,{M:()=>r})},"./src/meta-aggregator/converter-route/flowx-aggregator-converter.ts"(e,t,o){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":{(void 0===o||o.length<2)&&console.error("[FlowXAggregatorConverter][STEAMM_OMM] Missing oracle price feeds",{reason:"oracles is undefined or has less than 2 entries",...n(t)}),i()(void 0!==o&&o.length>=2,`STEAMM_OMM protocol requires oracle price feeds for pool ${t.pool.id}.`);let e=o[0],s=o[1],u=[void 0===e.oracleIndex?"oracles[0].oracleIndex":void 0,void 0===s.oracleIndex?"oracles[1].oracleIndex":void 0].filter(e=>void 0!==e);return u.length>0&&console.error("[FlowXAggregatorConverter][STEAMM_OMM] Missing oracle indexes",{reason:"STEAMM OMM requires oracleIndex for both oracle entries",missingFields:u,...n(t)}),i()(void 0!==e.oracleIndex&&void 0!==s.oracleIndex,`STEAMM_OMM protocol requires oracle indexes for pool ${t.pool.id}.`),{...r,aToB:a,protocol:"oracle_v2"===t.quoterType?c.S.STEAMM_OMM_V2: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:s.priceId,oracleRegistryId:t.protocolConfig.oracleRegistryId,oracleIndexA:e.oracleIndex.toString(),oracleIndexB:s.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((t,r)=>{try{return e.toMetaAggregatorPath(t)}catch(e){throw console.error("[FlowXAggregatorConverter] Failed to convert FlowX swap route",{routeIndex:r,routeCount:o.length,poolId:t.pool.id,protocol:t.protocol(),coinInType:t.input.coinType,coinOutType:t.output.coinType,amountIn:t.amountIn.toString(),amountOut:t.amountOut.toString(),error:e}),e}});for(let e of r.values())a[e].amountIn=s.u.MAX_AMOUNT_IN;return a}function n(e){return{poolId:e.pool.id,quoterType:e.quoterType,xForY:e.xForY,coinInType:e.input.coinType,coinOutType:e.output.coinType,amountIn:e.amountIn.toString(),amountOut:e.amountOut.toString(),oracleCount:e.oracles?.length??0,oracles:e.oracles?.map((e,t)=>({index:t,priceId:e.priceId,oracleId:e.oracleId,oracleIndex:e.oracleIndex,hasPriceId:void 0!==e.priceId&&""!==e.priceId,hasOracleId:void 0!==e.oracleId&&""!==e.oracleId,hasOracleIndex:void 0!==e.oracleIndex})),protocolConfig:{oracleRegistryId:e.protocolConfig?.oracleRegistryId,hasOracleRegistryId:e.protocolConfig?.oracleRegistryId!==void 0},bankXInfo:e.bankXInfo,bankYInfo:e.bankYInfo,poolInfo:e.poolInfo,poolStructTag:e.poolStructTag}}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={})),o.d(t,{m:()=>r})},"./src/meta-aggregator/converter-route/sevenk-aggregator-converter.ts"(e,t,o){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={})),o.d(t,{m:()=>r})},"./src/meta-aggregator/external/metastable.ts"(e,t,o){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)}},o.d(t,{b:()=>n})},"./src/meta-aggregator/router/types.ts"(e,t,o){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);o.d(t,{S:()=>a})},"@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,o)=>{var r=(t,o)=>{for(var r in t)__webpack_require__.o(t,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,[o]:t[r]})};r(t,"get"),r(o,"value")},__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:()=>tq,AftermathCpmm:()=>eO,AftermathLsd:()=>ex,AggregatorConverter:()=>tF,AggregatorModule:()=>oQ,AggregatorProtocol:()=>oB.S,BASE_BPS:()=>1e4,BLUEFIN_PACKAGE_ID:()=>or,BOOSTING_PACKAGE_ID:()=>oZ,BlastFunConstants:()=>el,BlastFunCustomCalculation:()=>eg,BlastFunCustomTransaction:()=>ef,BlastFunPackage:()=>ed,BlastFunSDKCalculation:()=>eb,BlastFunSDKTransaction:()=>eA,Blastfun:()=>ey,Bluefin7kClient:()=>oE.Bluefin7kClient,BluefinClmm:()=>eP,BluefinTx:()=>em,BluemoveCpmm:()=>eF,Bolt:()=>ev,BoostingModule:()=>o3,Bps:()=>ep,CLOCK_OBJECT_ID:()=>t7.VV,CONFIG_ID:()=>o0,CetusAggregator:()=>tH,CetusAggregatorConverter:()=>tJ.M,CetusClient:()=>oh.CetusClient,CetusClmm:()=>eL,CetusDlmm:()=>eU,CurveModule:()=>o2,DEFAULT_TRADE_FEE:()=>o7,DeepbookV3:()=>ej,DipCpmm:()=>eG,DraftTransferTx:()=>rr,FerraClmm:()=>e$,FerraDlmm:()=>eY,FlowXAggregator:()=>tQ,FlowXAggregatorConverter:()=>tz.m,FlowxClient:()=>ow.FlowxClient,FlowxCpmm:()=>eW,FullsailClmm:()=>eQ,HaedalLsdWal:()=>e3,KriyaClmm:()=>e5,MagmaAlmm:()=>e7,MagmaClmm:()=>tt,MathUtils:()=>e_,MetaAgError:()=>oy.u,MetaAgErrorCode:()=>oy.j,MetaAggregator:()=>tB,MetaClient:()=>oY,Metastable:()=>oF.b,MomentumClmm:()=>ta,MoonbagsCalculation:()=>eT,MoonbagsConstants:()=>eI,MoonbagsPackage:()=>eC,MoonbagsTransaction:()=>eS,Movepump:()=>ti,NATIVE_USDC_TOKEN_TYPE:()=>t7.lM,NoodlesPaySdk:()=>o9,NoodlesSdk:()=>re,Obric:()=>tc,PythPrice:()=>oM.L,PythUtils:()=>oM.j,RouterUtils:()=>tP,SUBSCRIPTION_CONFIG:()=>o5,SUI_ADDRESS_ZERO:()=>t7.qb,SUI_FULL_TYPE:()=>t7.P9,SUI_GRAPHQL_URL:()=>t7.cN,SUI_METADATA_OBJECT_ID:()=>t7.IC,SUI_RPC_URL:()=>t7.ez,SUI_TYPE:()=>t7.nD,Scallop:()=>tl,SevenKAggregator:()=>tN,SevenKAggregatorConverter:()=>tR.m,SevenkCpmm:()=>tp,SevenkFun:()=>tg,SrmCpmm:()=>tb,Steamm:()=>tI,SubscriptionModule:()=>o8,SuiGrpcClient:()=>ou.SuiGrpcClient,SuiJsonRpcClient:()=>ol.SuiJsonRpcClient,SupportedAggregator:()=>tX,SupportedBondingCurve:()=>oC,TradeFeeOptions:()=>eu,TradeportClmm:()=>tS,TurbosClmm:()=>tM,TurbosFun:()=>tE,USDC_TOKEN_TYPE:()=>t7.N3,Volo:()=>ty,Walrus:()=>e1,addGasFee:()=>of,checkIsSui:()=>ox.YY,denormalizeTokenType:()=>ox.eP,getAmountAfterFee:()=>t2,getCoinObjectIdsByAmount:()=>ot,getExpectedReturn:()=>o$,getGrpcFullnodeUrl:()=>o_,getJsonRpcFullnodeUrl:()=>op,getMemezPumpSDK:()=>om,getMoveObject:()=>t1,getMoveObjectContent:()=>t4,getNeededGasFee:()=>t5,getSplitCoinForTx:()=>oo,getSplitCoinsAfterFee:()=>t3,getTransactionResultDigest:()=>od,isSuiCoinType:()=>t7.tC,normalizeTokenType:()=>ox.nr,splitSuiCoinAfterFeeFromBuyTx:()=>oa,splitSuiCoinAfterFeeFromSellTx:()=>on,timeout:()=>oq});var t,o,r,a,n,i,s,c,u,l,_,p,d,g,m,f,b,A,I,C,T,S,O,M,x,E,h,y,w,P,B,F,k,v,D,L,R,U,N,j,K,G,q,$,V,Y,J,H,X,W,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,ex,eE,eh,ey,ew,eP,eB,eF,ek,ev,eD,eL,eR,eU,eN,ej,eK,eG,eq,e$,eV,eY,eJ,eH,eX,eW,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,tx,tE,th,ty,tw,tP,tB,tF,tk=__webpack_require__("@bluefin-exchange/bluefin7k-aggregator-sdk");let tv=require("@mysten/sui/transactions"),tD=require("bignumber.js");var tL=__webpack_require__.n(tD),tR=__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=a?0:r?r.tradeFeePercent:this._config.defaultTradeFee.tradeFeePercent,s=n??(a?tR.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,metaAggregator:a}){let n,i;a?(n=0,i=this._config.defaultTradeFee.tradeFeeRecipientAddress):r?(n=r.tradeFeePercent,i=r.tradeFeeRecipientAddress):(n=this._config.defaultTradeFee.tradeFeePercent,i=this._config.defaultTradeFee.tradeFeeRecipientAddress);let s=await (0,tk.buildTx)({quoteResponse:t,slippage:o,accountAddress:e,commission:{partner:i,commissionBps:1e4*n}});return s.tx instanceof tk.BluefinXTx?tv.Transaction.from(s.tx.txBytes).build({client:this._suiClient}):(s.tx.setSender(e),s.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(tL())(t.tokenInAmount).multipliedBy(10**o).toFixed(0,3)),i=BigInt(new(tL())(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(tL())(o.tokenInAmount).multipliedBy(10**a).toFixed(0,3)),s=BigInt(new(tL())(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=await tj.Aftermath.create({network:"MAINNET",baseUrl:this._config.aftermathApiEndpoint}),t=await e.getAddresses(),o=await tj.Aftermath.create({network:"MAINNET",baseUrl:this._config.aftermathApiEndpoint,api:new tj.AftermathApi(this._suiClient,t)});if(this._config.aftermathApiKey){let e=tj.Helpers.keypairFromPrivateKey(this._config.aftermathApiKey);await o.Auth().init({async signMessageCallback({message:t}){let{signature:o}=await e.signPersonalMessage(t);return{signature:o}},walletAddress:e.toSuiAddress()})}return this._aftermathClient=o,o}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}};var t$=__webpack_require__("@cetusprotocol/aggregator-sdk");let tV=require("bn.js");var tY=__webpack_require__.n(tV);(eu||(eu={})).equals=function(e,t){return e.tradeFeePercent===t.tradeFeePercent&&e.tradeFeeRecipientAddress===t.tradeFeeRecipientAddress};var tJ=__webpack_require__("./src/meta-aggregator/converter-route/cetus-aggregator-converter.ts");class tH{_config;_suiClient;_cetusClient;getCetusClientConfig({walletAddress:e,overlayFeeReceiver:t,overlayFeeRate:o}){return{client:this._suiClient,overlayFeeReceiver:t,overlayFeeRate:o,env:t$.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,o){return o?new t$.AggregatorClient(this.getCetusClientConfig({walletAddress:e,overlayFeeReceiver:void 0,overlayFeeRate:void 0})):t&&!eu.equals(t,this._config.defaultTradeFee)?new t$.AggregatorClient(this.getCetusClientConfig({walletAddress:e,overlayFeeReceiver:t.tradeFeeRecipientAddress,overlayFeeRate:t.tradeFeePercent})):(this._cetusClient||(this._cetusClient=new t$.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,a),s=n??(a?tJ.M.SUPPORTED_PROTOCOLS:void 0);return await i.findRouters({from:t,target:o,amount:new(tY())(e.toString()),byAmountIn:!0,providers:s})}catch(e){return tU("cetus",e),null}}async getTransaction({completeRoute:e,walletAddress:t,slippage:o,tradeFee:r,metaAggregator:a}){let n=this.cetusClient(t,r,a),i=new tv.Transaction;return i.setSender(t),await n.fastRouterSwap({router:e,txb:i,slippage:o}),i.build({client:this._suiClient})}}(tH||(tH={})).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={}).AFTERMATH="AFTERMATH",t.SEVENK="7K",t.CETUS="CETUS",t.FLOWX="FLOWX",t),tW=__webpack_require__("@flowx-finance/sdk"),tz=__webpack_require__("./src/meta-aggregator/converter-route/flowx-aggregator-converter.ts");class tQ{_config;_suiClient;constructor(e,t){this._config=e,this._suiClient=t}getCommission(e,t,o){let r,a;if(!o)return t?(r=t.tradeFeePercent,a=t.tradeFeeRecipientAddress):(r=this._config.defaultTradeFee.tradeFeePercent,a=this._config.defaultTradeFee.tradeFeeRecipientAddress),new tW.Commission(a,new tW.Coin(e),tW.CommissionType.PERCENTAGE,1e6*r,!0)}async getTradeRoute({coinInAmount:e,coinInType:t,coinOutType:o,tradeFee:r,metaAggregator:a,supportedProtocols:n}){let i=new tW.AggregatorQuoter("mainnet",this._config.flowxApiKey),s=n??(a?tz.m.SUPPORTED_PROTOCOLS:void 0);try{return await i.getRoutes({tokenIn:t,tokenOut:o,amountIn:e.toString(),commission:this.getCommission(t,r,a),includeSources:s})}catch(e){return tU("flowx",e),null}}async getTransaction({walletAddress:e,completeRoute:t,slippage:o,tradeFee:r,metaAggregator:a}){let n=new tW.TradeBuilder("mainnet",t.routes).sender(e).slippage(1e6*o),i=this.getCommission(t.coinIn.coinType,r,a);return i&&(n=n.commission(i)),n.build().buildTransaction({client:this._suiClient}).then(t=>(t.setSender(e),t.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({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 tZ=__webpack_require__("@minswap/tiny-invariant"),t0=__webpack_require__.n(tZ);let t6=require("@mysten/sui/bcs");async function t4(e,t){return(await t1(e,t)).fields}async function t1(e,t){let o=(await e.getObject({objectId:t,include:{json:!0,objectBcs:!0}})).object;t0()(o,"Pool object not found or has no content"),t0()(o.json,"Pool object not found or has no content"),t0()(o.objectBcs,"Pool object not found or has no content");let r=t6.bcs.Object.parse(o.objectBcs);return t0()("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 t3(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 t2(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 t5(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 t8=ep||(ep={});function t9(e){return t0()(BigInt(e)<=BigInt(1e4),"Bps overflow"),BigInt(e)}t8.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},t8.sub=function(e,t){return t0()(BigInt(e.pos0)>=BigInt(t.pos0),"Bps underflow"),{pos0:(BigInt(e.pos0)-BigInt(t.pos0)).toString()}},t8.value=function(e){return BigInt(e.pos0)},t8.new_=function(e){return{pos0:t9(e).toString()}},t8.assertOverflow=t9,((a=ed||(ed={})).MemezFun||(a.MemezFun={})).isSniperProtectedMemezFun=async function(e,t){return(await t4(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 t4(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 t4(t,r),i=await ed.MemezPump.getPumpState(t,n);return o=t2(o,a),ed.MemezPump.pump(i,o)},s.getSuiAmountAfterSell=async function(e,t){let{curveAmount:o,poolId:r,frontendFee:a}=e,n=await t4(t,r),i=await ed.MemezPump.getPumpState(t,n);return t2(ed.MemezPump.dump(i,o),a)};var t7=__webpack_require__("./src/constant/sui.ts"),oe=__webpack_require__("@mysten/sui/utils");let ot=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 oo(e,t){let{account:o,amount:r,splits:a,coinType:n,inheritTx:i,inspecTransaction:s,isSponsored:c=!1}=e,u=i??new tv.Transaction,{objectIds:l,balance:_}=await ot(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,oe.normalizeStructTag)(n)===(0,oe.normalizeStructTag)(t7.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 or="0x62412b7268c35f3808336aee57a52836501f40b8ba5d936f8ad275e672befd04";async function oa(e,t){let o,r,{inputAmount:a,accountAddress:n,frontendFee:i,frontendFeeRecipient:s,extendTx:c,isSponsored:u}=e;t0()(e.inCoinType===t7.P9||e.inCoinType===t7.nD,"Input must be SUI");let{tx:l,coinIn:_}=c||{},p=t3(a,i||"0"),d=l||new tv.Transaction;if(_)o=d.splitCoins(_,p),em.transferOrDestroyZeroCoin(d,t7.P9,_,n);else{let{coinData:e}=await oo({account:n,amount:a,splits:p,coinType:t7.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 on(e,t,o){if(t0()(t.outCoinType===t7.P9||t.outCoinType===t7.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:`${or}::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:`${or}::utils::transfer_or_destroy`,typeArguments:[t],arguments:[o,e.pure.address(r)]})};var oi=ef||(ef={});async function os(e){let t=e||new tv.Transaction;return t.moveCall({target:`${el.PACKAGE_ID_V4}::memez_allowed_versions::get_allowed_versions`,arguments:[t.object(el.MEMEZ_AV_OBJECT_ID)],typeArguments:[]})}oi.getAllowedVersions=os,oi.buildBuyTx=async function(e,t){t0()(!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 oa(e,t);t0()(r,"Coin out is required");let a=o.moveCall({target:`${el.PACKAGE_ID_V4}::memez_pump::pump`,typeArguments:[e.outCoinType,t7.P9],arguments:[o.object(e.poolId),r,o.pure.vector("address",[]),o.pure.vector("vector<u8>",[]),o.pure.u64(e.minAmountOut),await os(o)]});return{tx:o,coinOut:a}},oi.buildSellTx=async function(e,t){t0()(e.outCoinType===t7.P9||e.outCoinType===t7.nD,"Output must be SUI");let o=await t4(t,e.poolId),{tx:r,coinData:a}=await oo({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 os(r)]});return await on(r,e,i)};let oc=require("@interest-protocol/sui-core-sdk"),ou=require("@mysten/sui/grpc");var ol=__webpack_require__("@mysten/sui/jsonRpc");function o_(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 op(e){return o_(e)}function od(e){return"Transaction"===e.$kind?e.Transaction.digest:e.FailedTransaction.digest}let og={network:oc.Network.MAINNET,fullNodeUrl:o_("mainnet")};async function om(){if(!e){let{MemezPumpSDK:t}=await import("@interest-protocol/memez-fun-sdk");e=new t(og)}return e}async function of(e,t){let{inheritTx:o,sender:r,feeAmount:a,suiInputAmount:n}=e,i=o||new tv.Transaction;a>BigInt(0)&&i.setGasBudget(a);let{objectCoins:s}=await ot(t,r,(BigInt(n||"0")+a).toString(),t7.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=t2(t,r);let{memeAmountOut:a}=await (await om()).quotePump({pool:o,amount:t});return a},c.getSuiAmountAfterSell=async function(e){let{curveAmount:t,poolId:o,frontendFee:r}=e,{quoteAmountOut:a}=await (await om()).quoteDump({pool:o,amount:t});return t2(a,r)};var ob=eA||(eA={});async function oA(e,t){let{tx:o,coinOut:r}=await oa(e,t);t0()(r,"Coin out is required");let{memeCoin:a,tx:n}=await (await om()).pump({pool:e.poolId,quoteCoin:r,minAmountOut:e.minAmountOut,tx:o});return{tx:n,coinOut:a}}async function oI(e,t){t0()((0,t7.tC)(e.outCoinType),"Output must be SUI");let{tx:o,coinData:r}=await oo({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 om()).dump({pool:e.poolId,memeCoin:a,tx:o,minAmountOut:e.minAmountOut});return await on(i,e,n)}ob.buildBuyTx=oA,ob.buildSellTx=oI,ob.getBuyTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:a,walletAddress:n,tradeFee:i},s){t0()((0,t7.tC)(t),"coinInType must be SUI for buy transaction"),t0()(o!==t,"coinOutType must be different from coinInType"),t0()(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),t0()(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(tL())(c.toString()).multipliedBy(1-a).toFixed(0,3)),{tx:l,coinOut:_}=await oA({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);t0()(_,"Coin out is required"),l.transferObjects([_],l.pure.address(n)),l.setSender(n);let p=await t5(s,l,n,0);return(l=await of({inheritTx:l,sender:n,feeAmount:p,suiInputAmount:e},s)).build({client:s})},ob.getSellTransaction=async function({coinInAmount:e,coinInType:t,coinOutType:o,poolId:r,slippage:a,walletAddress:n,tradeFee:i},s){t0()((0,t7.tC)(o),"coinOutType must be SUI for sell transaction"),t0()(o!==t,"coinOutType must be different from coinInType"),t0()(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),t0()(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(tL())(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);t0()(_,"Coin out is required"),l.transferObjects([_],l.pure.address(n)),l.setSender(n);let p=await t5(s,l,n,0);return(l=await of({inheritTx:l,sender:n,feeAmount:p},s)).build({client:s})};var oC=((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:t6.bcs.byteVector().serialize(new TextEncoder().encode("virtual_token_reserves")).toBytes()}});if(!o.dynamicField?.value)return;return BigInt(t6.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 t0()(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([t4(t,r),t4(t,eI.CONFIG_OBJECT_ID),eC.Moonbags.getDynamicVirtualTokenReserves(t,r)]);void 0!==a&&(o=t2(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([t4(t,r),t4(t,eI.CONFIG_OBJECT_ID)]),{receivedSui:s}=eC.Moonbags.sellReturns({amountIn:o,pool:n,config:i});return void 0!==a?t2(s,a):s},_.getUsedSuiForTx=async function(e,t){let{suiAmount:o,frontendFee:r}=e,a=await t4(t,eI.CONFIG_OBJECT_ID);return void 0!==r&&(o=t2(o,r)),o*eI.FEE_DENOMINATOR/(eI.FEE_DENOMINATOR+BigInt(a.platform_fee))};var oT=eS||(eS={});async function oS(e,t){let{tx:o,coinOut:r}=await oa(e,t);t0()(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(t7.IC),o.object(t7.VV)]});return em.transferOrDestroyZeroCoin(o,t7.P9,n,e.accountAddress),{tx:o,coinOut:i}}async function oO(e,t){t0()((0,t7.tC)(e.outCoinType),"Output must be SUI");let{tx:o,coinData:r}=await oo({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(t7.VV)]});return em.transferOrDestroyZeroCoin(o,e.inCoinType,i,e.accountAddress),await on(o,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){t0()((0,t7.tC)(t),"coinInType must be SUI for buy transaction"),t0()(o!==t,"coinOutType must be different from coinInType"),t0()(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),t0()(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(tL())(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);t0()(_,"Coin out is required"),l.transferObjects([_],l.pure.address(n)),l.setSender(n);let p=await t5(s,l,n,0);return(l=await of({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){t0()((0,t7.tC)(o),"coinOutType must be SUI for sell transaction"),t0()(o!==t,"coinOutType must be different from coinInType"),t0()(a>=0&&a<1,"slippage must be between 0 (inclusive) and 1 (exclusive)"),t0()(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(tL())(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);t0()(_,"Coin out is required"),l.transferObjects([_],l.pure.address(n)),l.setSender(n);let p=await t5(s,l,n,0);return(l=await of({inheritTx:l,sender:n,feeAmount:p},s)).build({client:s})};var oM=__webpack_require__("./src/libs/pyth.ts"),ox=__webpack_require__("./src/libs/token-type.ts"),oE=__webpack_require__("./src/meta-aggregator/client/bluefin7k-client.ts"),oh=__webpack_require__("./src/meta-aggregator/client/cetus-client.ts"),oy=__webpack_require__("./src/meta-aggregator/client/error.ts"),ow=__webpack_require__("./src/meta-aggregator/client/flowx-client.ts"),oP=__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 oB=__webpack_require__("./src/meta-aggregator/router/types.ts");(d=eM||(eM={})).LAST_PACKAGE_ID="0xf369250dc5a17e9d5a84a3b0cf5aea715c0682170e726dd601f03ade7ce4decb",d.swap=function(e){t0()(e.protocol===oB.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=ex||(ex={})).STAKED_SUI_VAULT_OBJ_ID="0x2f8f6d5da7f13ea37daa397724280483ed062769813b6f31e9788e59cc88994d",g.SAFE_TREASURY_OBJECT_ID="0xeb685899830dd5837b47007809c76d91a098d52aabbf61e8ac467c59e5cc4610",g.REFERRAL_VAULT_OBJ_ID="0x4ce9a19b594599536c53edb25d22532f82f18038dc8ef618afd00fbbfb9845ef",g.VALIDATOR_ADDRESS="0xd30018ec3f5ff1a3c75656abf927a87d7f0529e6dc89c7ddd1bd27ecb05e3db2",(m=eE||(eE={})).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(ex.STAKED_SUI_VAULT_OBJ_ID),t.object(ex.SAFE_TREASURY_OBJECT_ID),t.object(oe.SUI_SYSTEM_STATE_OBJECT_ID),t.object(ex.REFERRAL_VAULT_OBJ_ID),t.pure.address(ex.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(oe.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){t0()(e.protocol===oB.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(oe.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)]})},(ev||(ev={})).ORACLE_OBJ_ID="0xfa3975b98f3d0e3df18ed88ae6e69db31836b3f4212df02fae144b1e5a89ca8e",(T=eD||(eD={})).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(ev.ORACLE_OBJ_ID),t.object(oe.SUI_CLOCK_OBJECT_ID),t.pure.u64(s),t.pure.bool(i)]})},(eL||(eL={})).GLOBAL_CONFIG="0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f",(S=eR||(eR={})).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(eL.GLOBAL_CONFIG),t.object(n),t.pure.bool(i),t.pure.u64(s),t.object(oe.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(oe.SUI_CLOCK_OBJECT_ID)];t.moveCall({target:`${c??M.LAST_PACKAGE_ID}::cetus_dlmm_router::swap`,typeArguments:[i,s],arguments:u})},(x=ej||(ej={})).GLOBAL_CONFIG="0x699d455ab8c5e02075b4345ea1f91be55bf46064ae6026cc2528e701ce3ac135",x.DEEP_TYPE="0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP",(E=eK||(eK={})).LAST_PACKAGE_ID="0xff274b63c0f6e3a01f3dd0e923aefcb3146e05e2f6bef4ae339e2703b085f8ed",E.swap=function(e){t0()(e.protocol===oB.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??E.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(oe.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(oe.SUI_CLOCK_OBJECT_ID)]})},(P=eH||(eH={})).POOL_REGISTRY_OBJ_ID="0x27565d24a4cd51127ac90e4074a841bbe356cca7bf5759ddc14a975be1632abc",P.VERSIONED_OBJ_ID="0x67624a1533b5aff5d0dfcf5e598684350efd38134d2d245f475524c03a64e656",(B=eX||(eX={})).LAST_PACKAGE_ID="0x350a752d3388165e578cc33a39655a6da83613cf4e58c8d9d0723711c2603e17",B.swap=function(e){t0()(e.protocol===oB.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(oe.SUI_CLOCK_OBJECT_ID)]})},(eW||(eW={})).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(eW.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",(v=eZ||(eZ={})).LAST_PACKAGE_ID="0xf0bf13b5baaf3d368f165e846b919294bed79a3ab3ab0c9bd1e75f23533e44a5",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}::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(oe.SUI_CLOCK_OBJECT_ID)]})},(D=e0||(e0={})).LAST_PACKAGE_ID="0x8969ed3e56c1dbdaf9df52f812d69c6c45fe5a4bab7093c88f5a8697a409398e",D.swap=function(e){t0()(e.protocol===oB.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);t0()(p,"Not found priceInfoAId in pythObjectIdMap"),t0()(d,"Not found priceInfoBId in pythObjectIdMap"),t.moveCall({target:`${_??D.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(oe.SUI_CLOCK_OBJECT_ID)]})},(L=e6||(e6={})).LAST_PACKAGE_ID="0x5d01f22e5471a5912a88e15d62fdcb922beba65b8e8dfe1a715aebf743194f4a",L.swap=function(e){t0()(e.protocol===oB.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);t0()(_,"Not found pythPriceBaseId in pythObjectIdMap"),t.moveCall({target:`${l??L.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(oe.SUI_CLOCK_OBJECT_ID)]})},(R=e4||(e4={})).LAST_PACKAGE_ID="0x1644956086caa5eb791eba152f3b69ba862b3a5382ef0e1d8a474ab158aafa1a",R.swap=function(e){let{txb:t,swapContext:o,aToB:r,amountIn:a,poolId:n,packageId:i}=e;t.moveCall({target:`${i??R.LAST_PACKAGE_ID}::haedal_lsd_router::swap`,arguments:[o,t.object(n),t.object(oe.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){t0()(e.protocol===oB.S.HAEDAL_LSD_WAL),t0()(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(oe.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(oe.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(oe.SUI_CLOCK_OBJECT_ID)]})};var oF=__webpack_require__("./src/meta-aggregator/external/metastable.ts");($=tr||(tr={})).LATEST_PACKAGE_ID="0xfab91518218f10204b083dba1e62c8bfc23f14fb87742158043e5faec4670ec4",$.swap=function(e){let t,o,r;t0()(e.protocol===oB.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=[oF.b.createCap({coinType:g,createCapFunc:"create_withdraw_cap",...e})]):g===_?(r="swap_to_meta_coin",t=[_,d],o=[oF.b.createCap({coinType:d,createCapFunc:"create_deposit_cap",...e})]):(r="swap",t=[_,d,g],o=[oF.b.createCap({coinType:d,createCapFunc:"create_deposit_cap",...e}),oF.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(oF.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(oe.SUI_CLOCK_OBJECT_ID)]})},(ti||(ti={})).CONFIGURATION_OBJ_ID="0xd746495d04a6119987c2b9334c5fefd7d8cff52a8a02a3ea4e3995b9a041ace4",(Y=ts||(ts={})).LAST_PACKAGE_ID="0x5a259db4b1d17fafc09185c9a71bac36f25f9ee462e72894c8610e5a58b79f8f",Y.swap=function(e){t0()(e.protocol===oB.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(oe.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;t0()(e.protocol===oB.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),t0()(t,"Not found priceInfoAId in pythObjectIdMap"),t0()(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(oe.SUI_CLOCK_OBJECT_ID)]})},(H=tl||(tl={})).VERSION_OBJ_ID="0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7",H.MARKET_OBJ_ID="0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9",(X=t_||(t_={})).LAST_PACKAGE_ID="0xea409bb08c8a09e4127f859d9c36b8b62ca609282aa1e443091db6b7a7409ee7",X.swap=function(e){t0()(e.protocol===oB.S.SCALLOP);let{txb:t,swapContext:o,coinAType:r,coinBType:a,aToB:n,amountIn:i,scoinTreasury:s,packageId:c}=e;t.moveCall({target:`${c??X.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(oe.SUI_CLOCK_OBJECT_ID)]})},(tp||(tp={})).ORACLE_HOLDER_OBJ_ID="0x8c36ea167c5e6da8c3d60b4fc897416105dcb986471bd81cfbfd38720a4487c0",(W=td||(td={})).LAST_PACKAGE_ID="0x918a30e2a05d24ea9451e2d2900d055f74e6752f2e10251fa50c7175831b1958",W.swap=function(e){t0()(e.protocol===oB.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);t0()(m,"Not found priceInfoAId in pythObjectIdMap"),t0()(f,"Not found priceInfoBId in pythObjectIdMap");let b=oM.L.newHolder(t);oM.L.getPrice({txb:t,coinPriceId:_,holder:b,coinOracleId:u}),oM.L.getPrice({txb:t,coinPriceId:p,holder:b,coinOracleId:l}),t.moveCall({target:`${g??W.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){t0()(e.protocol===oB.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(eW.CONTAINER_OBJ_ID),t.object(oe.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(oe.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(oe.SUI_CLOCK_OBJECT_ID)]})};var ok=tC||(tC={});function ov(e,t){t0()(e.protocol===oB.S.STEAMM_OMM||e.protocol===oB.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);t0()(O,"Not found priceInfoAId in pythObjectIdMap"),t0()(M,"Not found priceInfoBId in pythObjectIdMap");let x=tI.Oracle.getPythPrice({txb:o,oracleRegistryId:I,priceInfoId:O,oracleIndex:C}),E=tI.Oracle.getPythPrice({txb:o,oracleRegistryId:I,priceInfoId:M,oracleIndex:T});o.moveCall({target:`${S??ok.LAST_PACKAGE_ID}::${oD(t)}::swap`,typeArguments:[p,n,i,d,g,m],arguments:[r,o.object(a),o.object(u),o.object(l),o.object(_),x,E,o.pure.bool(s),o.pure.u64(c),o.object(oe.SUI_CLOCK_OBJECT_ID)]})}function oD(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=oR(t,o);return r&&(a=oR(a,r)),a}function oR(e,t){let o=BigInt(e)*BigInt(t)/BigInt(1e4);return(BigInt(e)-o).toString()}function oU(e){return Math.floor(100*e)}ok.LAST_PACKAGE_ID="0xd606880d67c399f349758111a91582d5515f31dd051632402653d872818f594e",ok.swapCpmm=function(e){t0()(e.protocol===oB.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:`${ok.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(oe.SUI_CLOCK_OBJECT_ID)]})},ok.swapOmm=function(e){ov(e,0)},ok.swapOmmV2=function(e){ov(e,1)},ok.getOmmRouterModule=oD,(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(oe.SUI_CLOCK_OBJECT_ID)]})},(er=tS||(tS={})).VERSIONED="0x0309b66202e9aaf470081fffee7ffc0fbd50e3b7400d4f56fd06502e4dbbd676",er.POOL_REGISTRY="0xcd0a614c4cbbf173f59dee2602c43a1717f283215ed7a0bb1d55d786af16fbcd",(ea=tO||(tO={})).LAST_PACKAGE_ID="0x79957062a7424ed9c2eb83932e4c4fcc3fee67ab3c8f6f874c54e417178bbb7a",ea.swap=function(e){t0()(e.protocol===oB.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(oe.SUI_CLOCK_OBJECT_ID)]})},(tM||(tM={})).POOL_VERSIONED="0xf1cf0e81048df168ebeb1b8030fad24b3e0b53ae827c25053fff0779c1445b6f",(en=tx||(tx={})).LAST_PACKAGE_ID="0x512d63711ff38353fb167238b0529001b6871c1727c67ce3bf6ec23556b0f1da",en.swap=function(e){t0()(e.protocol===oB.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(oe.SUI_CLOCK_OBJECT_ID)]})},(tE||(tE={})).CONFIGURATION_OBJ_ID="0xd86685fc3c3d989385b9311ef55bfc01653105670209ac4276ebb6c83d7df928",(ei=th||(th={})).LAST_PACKAGE_ID="0x1fad13f09797aa87a4385d0b1efb2de963ba16742447b1ad5a3b0c5b1d1c588b",ei.swap=function(e){t0()(e.protocol===oB.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(tE.CONFIGURATION_OBJ_ID),t.object(oe.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(oe.SUI_SYSTEM_STATE_OBJECT_ID),t.pure.bool(a),t.pure.u64(n)]})},(ec=tP||(tP={})).RouterSwapFunctionMap={[oB.S.AFTERMATH_CPMM]:eM.swap,[oB.S.AFTERMATH_LSD]:eE.swap,[oB.S.ALPHAFI_LSD]:eh.swap,[oB.S.BLASTFUN]:ew.swap,[oB.S.BLUEFIN_CLMM]:eB.swap,[oB.S.BLUEMOVE_CPMM]:ek.swap,[oB.S.BOLT]:eD.swap,[oB.S.CETUS_CLMM]:eR.swap,[oB.S.CETUS_DLMM]:eN.swap,[oB.S.DEEPBOOK_V3]:eK.swap,[oB.S.DIP_CPMM]:eq.swap,[oB.S.FERRA_CLMM]:eV.swap,[oB.S.FERRA_DLMM]:eJ.swap,[oB.S.FLOWX_CPMM]:ez.swap,[oB.S.FLOWX_CLMM]:eX.swap,[oB.S.FULLSAIL_CLMM]:eZ.swap,[oB.S.HAEDAL_CPMM]:e0.swap,[oB.S.HAEDAL_CPMM_V2]:e6.swap,[oB.S.HAEDAL_LSD]:e4.swap,[oB.S.HAEDAL_LSD_WAL]:e2.swap,[oB.S.KRIYA_CLMM]:e8.swap,[oB.S.KRIYA_CPMM]:e9.swap,[oB.S.MAGMA_ALMM]:te.swap,[oB.S.MAGMA_CLMM]:to.swap,[oB.S.METASTABLE]:tr.swap,[oB.S.MOMENTUM_CLMM]:tn.swap,[oB.S.MOVEPUMP]:ts.swap,[oB.S.OBRIC]:tu.swap,[oB.S.SCALLOP]:t_.swap,[oB.S.SEVENK_CPMM]:td.swap,[oB.S.SEVENK_FUN]:tm.swap,[oB.S.SPRINGSUI]:tf.swap,[oB.S.SRM_CPMM]:tA.swap,[oB.S.STEAMM_CPMM]:tC.swapCpmm,[oB.S.STEAMM_OMM]:tC.swapOmm,[oB.S.STEAMM_OMM_V2]:tC.swapOmmV2,[oB.S.SUISWAP_CPMM]:tT.swap,[oB.S.TRADEPORT_CLMM]:tO.swap,[oB.S.TURBOS_CLMM]:tx.swap,[oB.S.TURBOS_FUN]:th.swap,[oB.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=oP.u.openSwap(e),c=await oM.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 oP.u.closeSwap({tx:t,coinOutType:o,swapSession:s})};let oN=oM.j.newPythConnections(),oj=oM.j.newPythClient();var oK=tF||(tF={});function oG(e){var t,o,r;let a,n,{buildTxParam:i,rawRouteParam:s}=e;switch(s.sourceRoute){case"CETUS":a=tJ.M.convert(s.rawRoute);break;case"FLOWX":a=tz.m.convert(s.rawRoute);break;case"SEVENK":a=tR.m.convert(s.rawRoute);break;default:throw Error("Unsupported source route")}let c=oU(i.aggregatorFeeRatePercent),u=i.partnerFeeRatePercent?oU(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??oN,pythClient:i.pythClient??oj}}oK.toMetaAggregatorBuildTxParams=oG,oK.buildTx=function(e){let t=oG(e);return tB.buildAggregatorSwapTransaction(t)};let oq=async(e,t,o)=>t<=0?e():new Promise((r,a)=>{let n=setTimeout(()=>a(new oy.u(`Timeout ${o??"operation"}`,oy.j.TIMEOUT,{timeout:t})),t);e().then(r).catch(a).finally(()=>clearTimeout(n))}),o$=(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)}},oV={SEVENK:{},FLOWX:{},CETUS:{}};class oY{client;jsonRpcClient;providers={};options;constructor(e){this.options={providers:{...oV,...e?.providers},clients:e.clients,slippageBps:e?.slippageBps??100,hermesApi:e?.hermesApi??oM.j.PYTH_URLS,partner:e?.partner??t7.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(oy.u.assert(!!o,`Provider not found: ${e}`,oy.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(oJ("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(oJ("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(oJ("CETUS"));this.providers.CETUS=new e(o,this.options,this.client);break}default:throw new oy.u(`Provider not supported: ${e}`,oy.j.PROVIDER_NOT_SUPPORTED,{provider:e})}return this.providers[e]}async getQuoteByClient(e,t){return await oq(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,oe.normalizeStructTag)(e.coinTypeIn),coinTypeOut:(0,oe.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,oe.normalizeSuiAddress)(o);oy.u.assert((0,oe.isValidSuiAddress)(i),`Invalid signer address: ${o}`,oy.j.INVALID_SIGNER_ADDRESS,{signer:o}),r.setSender(i);let s=(n??this.options.slippageBps)/1e4,c=this.options.partner&&this.options.partner!==t7.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:oM.j.newPythConnections(this.options.hermesApi),pythClient:oM.j.newPythClient(this.jsonRpcClient)},rawRouteParam:{...t}})}}let oJ=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},oH=new Set([tX.SEVENK,tX.CETUS,tX.FLOWX]);function oX(e){let t=Object.values(tX);return e?t.filter(e=>oH.has(e)):t}function oW(e,t){return e?e.tradeFeePercent:t.tradeFeePercent}function oz(e,t){var o,r;o=e.amountOut,r=t,e.amountOut=BigInt(new(tL())(o.toString()).multipliedBy(1-r).toFixed(0,3))}class oQ{sdk;_aftermathAggregator;_sevenkAggregator;_cetusAggregator;_flowXAggregator;constructor(e){this.sdk=e,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 tH({defaultTradeFee:e.options.tradeFee,cetusApiKey:e.options.cetusApiKey,cetusApiEndpoint:e.options.cetusApiEndpoint,cetusPartnerId:e.options.cetusPartnerId},e.suiClient),this._flowXAggregator=new tQ({defaultTradeFee:e.options.tradeFee,flowxApiKey:e.options.flowxApiKey},e.suiClient)}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.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},t.metaAggregator&&oz(o.route,oW(t.tradeFee,this.sdk.options.tradeFee));break}case tX.CETUS:{let e=await this._cetusAggregator.getTradeRoute(t);if(!e)return null;let r=tH.toCommonTradeRoutes(e,t.coinInType,t.coinOutType);if(!r)return null;o={route:r,aggregatorRoute:e},t.metaAggregator&&oz(o.route,oW(t.tradeFee,this.sdk.options.tradeFee));break}case tX.FLOWX:{let e=await this._flowXAggregator.getTradeRoute(t);if(!e)return null;let r=tQ.toCommonTradeRoutes(e);if(!r)return null;o={route:r,aggregatorRoute:e},t.metaAggregator&&oz(o.route,oW(t.tradeFee,this.sdk.options.tradeFee))}}return o}async getTransactionByRoute(e,t){switch(e){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,metaAggregator:t.metaAggregator});case tX.CETUS:return this._cetusAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee,metaAggregator:t.metaAggregator});case tX.FLOWX:return this._flowXAggregator.getTransaction({walletAddress:t.walletAddress,completeRoute:t.completeRoute,slippage:t.slippage,tradeFee:t.tradeFee,metaAggregator:t.metaAggregator})}}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,metaAggregator:t.metaAggregator});return{route:o.route,aggregatorRoute:o.aggregatorRoute,transaction:r}}async getTradeTransactionWithBestRate(e){let t=oX(e.metaAggregator),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,metaAggregator:e.metaAggregator});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=oX(e.metaAggregator),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",o4=e=>e?.fields??e,o1=(e,t,o)=>{let r=o4(e),a=r?.[t];return t0()(null!=a,`${o} missing ${t}`),a};class o3{sdk;constructor(e){this.sdk=e}async getConfig(){var e;let t,o,r=await this.sdk.suiClient.getObject({objectId:o0,include:{json:!0}});t0()(r.object,"Config object not found"),t0()(r.object.json,"Config object has no content");let a=r.object.json,n="string"==typeof(e=a.id)?e:(t0()("string"==typeof e?.id,"Boosting config id is missing"),e.id),i=a.fee_receiver;t0()("string"==typeof i,"Boosting config fee_receiver is missing");let s=(t=o4(a.tiers),o=t?.contents,t0()(Array.isArray(o),"Boosting config tiers contents are missing"),o),c={};for(let e of s){let t=o1(e,"key","Boosting tier"),o=o1(e,"value","Boosting tier"),r=o1(o,"duration",`Boosting tier ${t}`),a=o1(o,"amount",`Boosting tier ${t}`),n=o1(o,"point",`Boosting tier ${t}`),i=o1(o,"original_amount",`Boosting tier ${t}`);c[t]={duration:BigInt(r),amount:BigInt(a),point:BigInt(n),originalAmount:BigInt(i)}}return{id:n,receiverAddress:i,tiers:c}}async buildPayBoostingTx({walletAddress:e,tierId:t,boostingCoinType:o,currentTx:r}){let a=await this.getConfig();t0()(t in a.tiers,"Invalid tier ID");let n=a.tiers[t].amount,i=r||new tv.Transaction,s=i.splitCoins(i.gas,[i.pure.u64(n)]);i.moveCall({target:`${oZ}::boosting::pay`,typeArguments:[(0,oe.normalizeStructTag)(o)],arguments:[i.object(o0),i.pure.u64(t),s]}),i.setSender(e);let c=await t5(this.sdk.suiClient,i,e,0);return of({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 tv.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 t5(this.sdk.suiClient,s,e,0);return of({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 tv.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 t5(this.sdk.suiClient,s,e,0);return of({inheritTx:s,sender:e,feeAmount:c},this.sdk.suiClient)}async buildRemoveTierTx({adminAddress:e,tierId:t,currentTx:o}){let r=o||new tv.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 t5(this.sdk.suiClient,r,e,0);return of({inheritTx:r,sender:e,feeAmount:a},this.sdk.suiClient)}async buildUpdateFeeReceiver({adminAddress:e,newReceiverAddress:t,currentTx:o}){let r=o||new tv.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 t5(this.sdk.suiClient,r,e,0);return of({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 tv.Transaction,i=n.splitCoins(n.gas,[n.pure.u64(o)]);n.moveCall({target:`${oZ}::boosting::pay_with_admin`,typeArguments:[(0,oe.normalizeStructTag)(r)],arguments:[n.object(o6),n.object(o0),n.pure.u64(t),n.pure.u64(o),i]}),n.setSender(e);let s=await t5(this.sdk.suiClient,n,e,0);return of({inheritTx:n,sender:e,feeAmount:s},this.sdk.suiClient)}}class o2{sdk;constructor(e){this.sdk=e}async getEstimatedAmountOut(e,t){let{coinInType:o,coinOutType:r}=t;t0()(o!==r,"coinInType and coinOutType must be different"),t0()((0,t7.tC)(o)||(0,t7.tC)(r),"One of coinInType or coinOutType must be SUI");let a=(0,t7.tC)(o);switch(e){case oC.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 oC.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;t0()(r!==a,"coinInType and coinOutType must be different"),t0()((0,t7.tC)(r)||(0,t7.tC)(a),"One of coinInType or coinOutType must be SUI");let n=(0,t7.tC)(r);switch(e){case oC.MOONBAGS:o=n?await eS.getBuyTransaction(t,this.sdk.suiClient):await eS.getSellTransaction(t,this.sdk.suiClient);break;case oC.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 o5={prod:{packageId:"0x3dd678c250a667f1551bc4b9e35fd070896f4775dd2900d5cb2910d2aea0b068",configId:"0x3eb7bd15f61b7cc1a9fd36151e9c3d05aa37bfadb0a58c3a26a6c02c2e99f3ca",adminCapId:"0xf375fcb3d95934143766cab2028ab49441fa04ef2ce27c08c01004c455bcbad4",paymentCoinType:"0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC"},staging:{packageId:"0xa83cd093ce5142649adae10d21fe87d55fa2df4e52a4292c77ba039bb12bfe67",configId:"0x19fb8f91946e58c068fa4238bdd7a531216a0c4dcfaa279a8a02c60cb02f6711",adminCapId:"0xd8139544d054702dfab6de4e9c55f162c8a6f30465935af56cffed99c5e1c2bd",paymentCoinType:"0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC"}};class o8{sdk;constructor(e){this.sdk=e}async getConfig(){let e=await this.sdk.suiClient.getObject({objectId:o5[this.sdk.env].configId,include:{json:!0}});t0()(e.object,"Config object not found"),t0()(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=o5[this.sdk.env].paymentCoinType,currentTx:a}){let n=await this.getConfig();t0()(!n.paused,"Contract is paused"),t0()(t in n.plans,"Invalid plan ID");let i=n.plans[t],s=i.price*BigInt(i.monthInterval),{tx:c,coinData:u}=await oo({account:e,amount:s.toString(),splits:[s.toString()],coinType:r,inheritTx:a},this.sdk.suiClient);c.moveCall({target:`${o5[this.sdk.env].packageId}::subscription::subscribe_cycle_plan`,typeArguments:[r],arguments:[c.object(o5[this.sdk.env].configId),c.pure.u64(t),c.pure.string(o),u]}),c.setSender(e);let l=await t5(this.sdk.suiClient,c,e,0);return of({inheritTx:c,sender:e,feeAmount:l},this.sdk.suiClient)}async buildBuyMoreCUPlanTx({walletAddress:e,planId:t,reference:o,paidAmount:r,paymentCoinType:a=o5[this.sdk.env].paymentCoinType,currentTx:n}){let i=await this.getConfig();t0()(!i.paused,"Contract is paused"),t0()(t in i.plans,"Invalid plan ID");let{tx:s,coinData:c}=await oo({account:e,amount:r.toString(),splits:[r.toString()],coinType:a,inheritTx:n},this.sdk.suiClient);s.moveCall({target:`${o5[this.sdk.env].packageId}::subscription::buy_more_cu`,typeArguments:[a],arguments:[s.object(o5[this.sdk.env].configId),s.pure.u64(t),s.pure.string(o),s.pure.u64(r),c]}),s.setSender(e);let u=await t5(this.sdk.suiClient,s,e,0);return of({inheritTx:s,sender:e,feeAmount:u},this.sdk.suiClient)}async buildSubscribePlanWithAdminTx({walletAddress:e,planId:t,reference:o,customAmount:r,paymentCoinType:a=o5[this.sdk.env].paymentCoinType,currentTx:n}){let i=await this.getConfig();t0()(!i.paused,"Contract is paused");let{tx:s,coinData:c}=await oo({account:e,amount:r.toString(),splits:[r.toString()],coinType:a,inheritTx:n},this.sdk.suiClient);s.moveCall({target:`${o5[this.sdk.env].packageId}::subscription::subscribe_plan_with_admin`,typeArguments:[a],arguments:[s.object(o5[this.sdk.env].adminCapId),s.object(o5[this.sdk.env].configId),s.pure.u64(t),s.pure.string(o),s.pure.u64(r),c]}),s.setSender(e);let u=await t5(this.sdk.suiClient,s,e,0);return of({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 tv.Transaction;i.moveCall({target:`${o5[this.sdk.env].packageId}::config::add_plan`,typeArguments:[],arguments:[i.object(o5[this.sdk.env].configId),i.object(o5[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 t5(this.sdk.suiClient,i,e,0);return of({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 tv.Transaction;i.moveCall({target:`${o5[this.sdk.env].packageId}::config::update_plan`,typeArguments:[],arguments:[i.object(o5[this.sdk.env].configId),i.object(o5[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 t5(this.sdk.suiClient,i,e,0);return of({inheritTx:i,sender:e,feeAmount:s},this.sdk.suiClient)}async buildRemovePlanTx({adminAddress:e,planId:t,currentTx:o}){let r=o||new tv.Transaction;r.moveCall({target:`${o5[this.sdk.env].packageId}::config::remove_plan`,typeArguments:[],arguments:[r.object(o5[this.sdk.env].configId),r.object(o5[this.sdk.env].adminCapId),r.pure.u64(BigInt(t))]}),r.setSender(e);let a=await t5(this.sdk.suiClient,r,e,0);return of({inheritTx:r,sender:e,feeAmount:a},this.sdk.suiClient)}async buildUpdateFeeReceiverWalletTx({adminAddress:e,newFeeReceiverWallet:t,currentTx:o}){let r=o||new tv.Transaction;r.moveCall({target:`${o5[this.sdk.env].packageId}::config::update_fee_receiver`,typeArguments:[],arguments:[r.object(o5[this.sdk.env].configId),r.object(o5[this.sdk.env].adminCapId),r.pure.address(t)]}),r.setSender(e);let a=await t5(this.sdk.suiClient,r,e,0);return of({inheritTx:r,sender:e,feeAmount:a},this.sdk.suiClient)}async buildSetPausedTx({adminAddress:e,paused:t,currentTx:o}){let r=o||new tv.Transaction;r.moveCall({target:`${o5[this.sdk.env].packageId}::config::set_paused`,typeArguments:[],arguments:[r.object(o5[this.sdk.env].configId),r.object(o5[this.sdk.env].adminCapId),r.pure.bool(t)]}),r.setSender(e);let a=await t5(this.sdk.suiClient,r,e,0);return of({inheritTx:r,sender:e,feeAmount:a},this.sdk.suiClient)}async buildSetAcceptedPaymentTypeTx({adminAddress:e,paymentCoinType:t,currentTx:o}){let r=o||new tv.Transaction;r.moveCall({target:`${o5[this.sdk.env].packageId}::config::set_accepted_payment_type`,typeArguments:[t],arguments:[r.object(o5[this.sdk.env].configId),r.object(o5[this.sdk.env].adminCapId)]}),r.setSender(e);let a=await t5(this.sdk.suiClient,r,e,0);return of({inheritTx:r,sender:e,feeAmount:a},this.sdk.suiClient)}}class o9{network;env;_suiClient;boostingModule;subscriptionModule;constructor(e,t="mainnet",o="prod"){this.network=t,this.env=o,this._suiClient=e,this.subscriptionModule=new o8(this),this.boostingModule=new o3(this)}get suiClient(){return this._suiClient}}let o7={tradeFeePercent:.01,tradeFeeRecipientAddress:"0xdaf1c8ed29d89cd8f217f609bad0a668fa6f158c12000bfa5f93e670c99e24ff"};class re{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;const r="testnet"===this.network?"testnet":"mainnet";this._suiJsonRpcClient=e.clients.jsonRpc??new ol.SuiJsonRpcClient({network:r,url:function(e){return o_(e)}(r)}),this.aggregatorModule=new oQ(this),this.curveModule=new o2(this)}get suiClient(){return this._suiGrpcClient}get suiJsonRpcClient(){return this._suiJsonRpcClient}}let rt=require("@mysten/sui/keypairs/ed25519"),ro=.1;class rr{suiClient;constructor(e){this.suiClient=e}validatePrivateKey(e,t){t0()(e?.trim(),"Private key is required");let o=rt.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){t0()(e?.trim(),"Sender address is required"),t0()(t?.trim(),"Recipient address is required"),t0()(e!==t,"Sender and recipient cannot be the same"),t0()(o>0n,"Transfer amount must be at least 1 MIST");try{let r=new tv.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 t5(this.suiClient,r,e,ro);r=await of({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{t0()(e,"Draft transaction is required"),t0()(e.txDraftBase64?.trim(),"Transaction data is required");let o=this.validatePrivateKey(t,e.sender),r=(0,oe.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){t0()(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.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_GRAPHQL_URL=__webpack_exports__.SUI_GRAPHQL_URL,exports.SUI_METADATA_OBJECT_ID=__webpack_exports__.SUI_METADATA_OBJECT_ID,exports.SUI_RPC_URL=__webpack_exports__.SUI_RPC_URL,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","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_GRAPHQL_URL","SUI_METADATA_OBJECT_ID","SUI_RPC_URL","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});