const e=require(`../../types/ethereum-network.types.cjs`),t=require(`../../constants/protocol.constants.cjs`);require(`../../types/index.cjs`);const n=require(`../../API/callOneInchAPI.cjs`),r=require(`../../error-handling/error-codes.constants.cjs`),i=require(`./etherFunctions.cjs`);require(`../../constants/index.cjs`);const a=require(`../../error-handling/logger.cjs`),o=require(`./getContractMetadata.cjs`);require(`../../error-handling/index.cjs`);var s=async(s,c,l,u,d=.7)=>{try{let r=await n.callOneInchAPI(s,{fromTokenAddress:c.erc20TokenAddress===t.zeroAddress?t.oneInchZeroAddress:c.erc20TokenAddress,toTokenAddress:l.erc20TokenAddress===t.zeroAddress?t.oneInchZeroAddress:l.erc20TokenAddress,fromAddress:t.zeroAddress,destReceiver:o.getContractMetadata(e.ContractType.OneInchExternalActionContract,s).address,amount:i.getAmountInWei(c,u),slippage:d,disableEstimate:!0,allowPartialFill:!1});if(!r||!r.tx)throw Error(`OneInch API price fetch error`);return{outSwapAmountValue:BigInt(r.toAmount),oneInchDataValue:r.tx.data}}catch(e){throw a.Logger.log({error:e}),Error(r.transactionErrorCodes.NO_ONEINCH_PRICE)}};exports.getOneInchPrice=s;