const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../error-handling/error-codes.constants.cjs`),r=require(`./etherFunctions.cjs`),i=require(`../../constants/lifi.constants.cjs`),a=require(`../../API/callLifiAPI.cjs`);var o=async(o,s,c,l,u,d)=>{try{let n=r.getAmountInWei(o,c),{lifiResponse:f}=await a.callLifiAPI({fromChain:i.getLifiChainId(o.chainId),toChain:i.getLifiChainId(s.chainId),fromToken:o.erc20TokenAddress,toToken:s.erc20TokenAddress,fromAddress:u,fromAmount:n.toString(),order:`FASTEST`,slippage:l,...d&&{toAddress:d}});if(e.isSolanaLike(o.chainId))return{lifiDataValue:f.transactionRequest.data,outSwapAmountValue:BigInt(f.estimate.toAmount),extraNativeTokenFee:0n};let p=BigInt(f.transactionRequest.value||`0`);return{lifiDataValue:f.transactionRequest.data,outSwapAmountValue:BigInt(f.estimate.toAmount),extraNativeTokenFee:o.erc20TokenAddress===t.zeroAddress?p-n:p}}catch{throw Error(n.transactionErrorCodes.NO_LIFI_PRICE)}};exports.getLifiPrice=o;