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