@minswap/noodles-sdk 0.1.1-beta.2 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
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:()=>o3,AftermathAggregator:()=>tq,AftermathCpmm:()=>eO,AftermathLsd:()=>ex,AggregatorConverter:()=>tB,AggregatorModule:()=>o6,AggregatorProtocol:()=>oR.S,AstrosAggregator:()=>tH,BASE_BPS:()=>1e4,BLUEFIN_PACKAGE_ID:()=>oc,BOOSTING_PACKAGE_ID:()=>o1,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:()=>o2,Bps:()=>ep,CLOCK_OBJECT_ID:()=>oa.VV,CONFIG_ID:()=>o4,CetusAggregator:()=>tZ,CetusAggregatorConverter:()=>tQ.M,CetusClient:()=>oB.CetusClient,CetusClmm:()=>eR,CetusDlmm:()=>eU,CurveModule:()=>o5,DEFAULT_TRADE_FEE:()=>re,DeepbookV3:()=>ej,DipCpmm:()=>eG,DraftTransferTx:()=>ra,FerraClmm:()=>eV,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:()=>o7,NoodlesSdk:()=>rt,Obric:()=>tc,PythPrice:()=>ow.L,PythUtils:()=>ow.j,RouterUtils:()=>tP,SUBSCRIPTION_CONFIG:()=>o8,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:()=>o9,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,eV,e$,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 tV=require("@naviprotocol/astros-aggregator-sdk"),t$=new Set([tV.Dex.MAGMA]),tY=[tV.Dex.CETUS,tV.Dex.TURBOS,tV.Dex.KRIYA_V2,tV.Dex.KRIYA_V3,tV.Dex.AFTERMATH,tV.Dex.DEEPBOOK,tV.Dex.BLUEFIN,tV.Dex.VSUI,tV.Dex.HASUI,tV.Dex.MOMENTUM,tV.Dex.FLOWX,tV.Dex.MAGMA_ALMM];function tJ(e){return e.routes.some(e=>!!Array.isArray(e.path)&&e.path.some(e=>t$.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)]})},(eV||(eV={})).FERRA_GLOBAL_CONFIG_ID="0x2cd8382c19e6994f16df204e9b8cddd04bdc486c251de75ac66ac4e48e3e7081",(y=e$||(e$={})).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(eV.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");(V=tr||(tr={})).LATEST_PACKAGE_ID="0xfab91518218f10204b083dba1e62c8bfc23f14fb87742158043e5faec4670ec4",V.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??V.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",($=tn||(tn={})).LAST_PACKAGE_ID="0xba7ab4c8c39024fa0052bb4f00548a2e7b60742bb4ed0b87bc1d945fd8209102",$.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??$.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]:e$.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 oV=ow.j.newPythConnections(),o$=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??oV,pythClient:i.pythClient??o$}}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}class o6{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,r=await this._astrosAggregator.getTradeRoute(t);if(!r)return null;let a=tH.toCommonTradeRoutes(r,t.coinInType,t.coinOutType);if(!a)return null;e=t.tradeFee?t.tradeFee.tradeFeePercent:this.sdk.options.tradeFee.tradeFeePercent,a.amountOut=BigInt(new(tR())(r.amount_out).multipliedBy(1-e).toFixed(0,3)),o={route:a,aggregatorRoute:r};break}case 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};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};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}}}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 o1="0x25fa0eb553dd69fa6a8028f73a38f1df7f289fa88a58ed3d7dc5a5360155bb19",o4="0x8b1a8ac6e34688cd8f8f8e5fefa9d5fb9e1ff74d2f132f8e208ae5ac9cc530bb",o3="0x13d101f44a0710a5475bec5f492a87b80e03d92d1cf540f26096f65850b23d26";class o2{sdk;constructor(e){this.sdk=e}async getConfig(){let e=await this.sdk.suiClient.getObject({objectId:o4,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.tiers.fields.contents,n={};for(let e of a){let t=e.fields.key,o=e.fields.value.fields.duration,r=e.fields.value.fields.amount,a=e.fields.value.fields.point,i=e.fields.value.fields.original_amount;n[t]={duration:BigInt(o),amount:BigInt(r),point:BigInt(a),originalAmount:BigInt(i)}}return{id:o,receiverAddress:r,tiers:n}}async buildPayBoostingTx({walletAddress:e,tierId:t,boostingCoinType:o,currentTx:r}){let a=await this.getConfig();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:`${o1}::boosting::pay`,typeArguments:[(0,on.normalizeStructTag)(o)],arguments:[i.object(o4),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:`${o1}::config::add_tier`,typeArguments:[],arguments:[s.object(o4),s.object(o3),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:`${o1}::config::update_tier`,typeArguments:[],arguments:[s.object(o4),s.object(o3),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:`${o1}::config::remove_tier`,typeArguments:[],arguments:[r.object(o4),r.object(o3),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:`${o1}::config::update_fee_receiver`,typeArguments:[],arguments:[r.object(o4),r.object(o3),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:`${o1}::boosting::pay_with_admin`,typeArguments:[(0,on.normalizeStructTag)(r)],arguments:[n.object(o3),n.object(o4),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 o5{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 o8={prod:{packageId:"0x3dd678c250a667f1551bc4b9e35fd070896f4775dd2900d5cb2910d2aea0b068",configId:"0x3eb7bd15f61b7cc1a9fd36151e9c3d05aa37bfadb0a58c3a26a6c02c2e99f3ca",adminCapId:"0xf375fcb3d95934143766cab2028ab49441fa04ef2ce27c08c01004c455bcbad4",paymentCoinType:"0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC"},staging:{packageId:"0xa83cd093ce5142649adae10d21fe87d55fa2df4e52a4292c77ba039bb12bfe67",configId:"0x19fb8f91946e58c068fa4238bdd7a531216a0c4dcfaa279a8a02c60cb02f6711",adminCapId:"0xd8139544d054702dfab6de4e9c55f162c8a6f30465935af56cffed99c5e1c2bd",paymentCoinType:"0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC"}};class o9{sdk;constructor(e){this.sdk=e}async getConfig(){let e=await this.sdk.suiClient.getObject({objectId:o8[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=o8[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:`${o8[this.sdk.env].packageId}::subscription::subscribe_cycle_plan`,typeArguments:[r],arguments:[c.object(o8[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=o8[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:`${o8[this.sdk.env].packageId}::subscription::buy_more_cu`,typeArguments:[a],arguments:[s.object(o8[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=o8[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:`${o8[this.sdk.env].packageId}::subscription::subscribe_plan_with_admin`,typeArguments:[a],arguments:[s.object(o8[this.sdk.env].adminCapId),s.object(o8[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:`${o8[this.sdk.env].packageId}::config::add_plan`,typeArguments:[],arguments:[i.object(o8[this.sdk.env].configId),i.object(o8[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:`${o8[this.sdk.env].packageId}::config::update_plan`,typeArguments:[],arguments:[i.object(o8[this.sdk.env].configId),i.object(o8[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:`${o8[this.sdk.env].packageId}::config::remove_plan`,typeArguments:[],arguments:[r.object(o8[this.sdk.env].configId),r.object(o8[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:`${o8[this.sdk.env].packageId}::config::update_fee_receiver`,typeArguments:[],arguments:[r.object(o8[this.sdk.env].configId),r.object(o8[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:`${o8[this.sdk.env].packageId}::config::set_paused`,typeArguments:[],arguments:[r.object(o8[this.sdk.env].configId),r.object(o8[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:`${o8[this.sdk.env].packageId}::config::set_accepted_payment_type`,typeArguments:[t],arguments:[r.object(o8[this.sdk.env].configId),r.object(o8[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 o7{network;env;_suiClient;boostingModule;subscriptionModule;constructor(e,t="mainnet",o="prod"){this.network=t,this.env=o,this._suiClient=e,this.subscriptionModule=new o9(this),this.boostingModule=new o2(this)}get suiClient(){return this._suiClient}}let re={tradeFeePercent:.01,tradeFeeRecipientAddress:"0xdaf1c8ed29d89cd8f217f609bad0a668fa6f158c12000bfa5f93e670c99e24ff"};class rt{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 o6(this),this.curveModule=new o5(this)}get suiClient(){return this._suiGrpcClient}get suiJsonRpcClient(){return this._suiJsonRpcClient}}let ro=require("@mysten/sui/keypairs/ed25519"),rr=.1;class ra{suiClient;constructor(e){this.suiClient=e}validatePrivateKey(e,t){t2()(e?.trim(),"Private key is required");let o=ro.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,rr);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){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:()=>o8,Bps:()=>ep,CLOCK_OBJECT_ID:()=>oa.VV,CONFIG_ID:()=>o2,CetusAggregator:()=>tZ,CetusAggregatorConverter:()=>tQ.M,CetusClient:()=>oB.CetusClient,CetusClmm:()=>eR,CetusDlmm:()=>eU,CurveModule:()=>o9,DEFAULT_TRADE_FEE:()=>ro,DeepbookV3:()=>ej,DipCpmm:()=>eG,DraftTransferTx:()=>ri,FerraClmm:()=>eV,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:()=>rt,NoodlesSdk:()=>rr,Obric:()=>tc,PythPrice:()=>ow.L,PythUtils:()=>ow.j,RouterUtils:()=>tP,SUBSCRIPTION_CONFIG:()=>o7,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:()=>re,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,eV,e$,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 tV=require("@naviprotocol/astros-aggregator-sdk"),t$=new Set([tV.Dex.MAGMA]),tY=[tV.Dex.CETUS,tV.Dex.TURBOS,tV.Dex.KRIYA_V2,tV.Dex.KRIYA_V3,tV.Dex.AFTERMATH,tV.Dex.DEEPBOOK,tV.Dex.BLUEFIN,tV.Dex.VSUI,tV.Dex.HASUI,tV.Dex.MOMENTUM,tV.Dex.FLOWX,tV.Dex.MAGMA_ALMM];function tJ(e){return e.routes.some(e=>!!Array.isArray(e.path)&&e.path.some(e=>t$.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)]})},(eV||(eV={})).FERRA_GLOBAL_CONFIG_ID="0x2cd8382c19e6994f16df204e9b8cddd04bdc486c251de75ac66ac4e48e3e7081",(y=e$||(e$={})).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(eV.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");(V=tr||(tr={})).LATEST_PACKAGE_ID="0xfab91518218f10204b083dba1e62c8bfc23f14fb87742158043e5faec4670ec4",V.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??V.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",($=tn||(tn={})).LAST_PACKAGE_ID="0xba7ab4c8c39024fa0052bb4f00548a2e7b60742bb4ed0b87bc1d945fd8209102",$.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??$.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]:e$.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 oV=ow.j.newPythConnections(),o$=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??oV,pythClient:i.pythClient??o$}}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";class o8{sdk;constructor(e){this.sdk=e}async getConfig(){let e=await this.sdk.suiClient.getObject({objectId:o2,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.tiers.fields.contents,n={};for(let e of a){let t=e.fields.key,o=e.fields.value.fields.duration,r=e.fields.value.fields.amount,a=e.fields.value.fields.point,i=e.fields.value.fields.original_amount;n[t]={duration:BigInt(o),amount:BigInt(r),point:BigInt(a),originalAmount:BigInt(i)}}return{id:o,receiverAddress:r,tiers:n}}async buildPayBoostingTx({walletAddress:e,tierId:t,boostingCoinType:o,currentTx:r}){let a=await this.getConfig();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 o9{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 o7={prod:{packageId:"0x3dd678c250a667f1551bc4b9e35fd070896f4775dd2900d5cb2910d2aea0b068",configId:"0x3eb7bd15f61b7cc1a9fd36151e9c3d05aa37bfadb0a58c3a26a6c02c2e99f3ca",adminCapId:"0xf375fcb3d95934143766cab2028ab49441fa04ef2ce27c08c01004c455bcbad4",paymentCoinType:"0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC"},staging:{packageId:"0xa83cd093ce5142649adae10d21fe87d55fa2df4e52a4292c77ba039bb12bfe67",configId:"0x19fb8f91946e58c068fa4238bdd7a531216a0c4dcfaa279a8a02c60cb02f6711",adminCapId:"0xd8139544d054702dfab6de4e9c55f162c8a6f30465935af56cffed99c5e1c2bd",paymentCoinType:"0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC"}};class re{sdk;constructor(e){this.sdk=e}async getConfig(){let e=await this.sdk.suiClient.getObject({objectId:o7[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=o7[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:`${o7[this.sdk.env].packageId}::subscription::subscribe_cycle_plan`,typeArguments:[r],arguments:[c.object(o7[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=o7[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:`${o7[this.sdk.env].packageId}::subscription::buy_more_cu`,typeArguments:[a],arguments:[s.object(o7[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=o7[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:`${o7[this.sdk.env].packageId}::subscription::subscribe_plan_with_admin`,typeArguments:[a],arguments:[s.object(o7[this.sdk.env].adminCapId),s.object(o7[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:`${o7[this.sdk.env].packageId}::config::add_plan`,typeArguments:[],arguments:[i.object(o7[this.sdk.env].configId),i.object(o7[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:`${o7[this.sdk.env].packageId}::config::update_plan`,typeArguments:[],arguments:[i.object(o7[this.sdk.env].configId),i.object(o7[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:`${o7[this.sdk.env].packageId}::config::remove_plan`,typeArguments:[],arguments:[r.object(o7[this.sdk.env].configId),r.object(o7[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:`${o7[this.sdk.env].packageId}::config::update_fee_receiver`,typeArguments:[],arguments:[r.object(o7[this.sdk.env].configId),r.object(o7[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:`${o7[this.sdk.env].packageId}::config::set_paused`,typeArguments:[],arguments:[r.object(o7[this.sdk.env].configId),r.object(o7[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:`${o7[this.sdk.env].packageId}::config::set_accepted_payment_type`,typeArguments:[t],arguments:[r.object(o7[this.sdk.env].configId),r.object(o7[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 rt{network;env;_suiClient;boostingModule;subscriptionModule;constructor(e,t="mainnet",o="prod"){this.network=t,this.env=o,this._suiClient=e,this.subscriptionModule=new re(this),this.boostingModule=new o8(this)}get suiClient(){return this._suiClient}}let ro={tradeFeePercent:.01,tradeFeeRecipientAddress:"0xdaf1c8ed29d89cd8f217f609bad0a668fa6f158c12000bfa5f93e670c99e24ff"};class rr{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 o9(this)}get suiClient(){return this._suiGrpcClient}get suiJsonRpcClient(){return this._suiJsonRpcClient}}let ra=require("@mysten/sui/keypairs/ed25519"),rn=.1;class ri{suiClient;constructor(e){this.suiClient=e}validatePrivateKey(e,t){t2()(e?.trim(),"Private key is required");let o=ra.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,rn);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});
|