{"version":3,"sources":["../../../src/vaults/deposit/utils.ts"],"sourcesContent":["import { DEFAULT_DEPOSIT_SLIPPAGE } from \"../../constants\";\nimport { WAD } from \"../../utils/bigint\";\n\n/**\n * Calculates the minimum amount of tokens to mint based on deposit amount, rate, and slippage\n * @param depositAmount The amount being deposited (in base units)\n * @param rate The current exchange rate between deposit and mint tokens\n * @param slippage The maximum acceptable slippage as a decimal (e.g., 0.01 for 1%)\n * @returns The minimum amount of tokens that should be minted accounting for slippage\n */\nconst calculateMinimumMint = (\n  depositAmount: bigint,\n  rate: bigint,\n  slippage?: number // In bps (e.g., 50 for 0.5%)\n): bigint => {\n  const slippageValue = slippage ?? DEFAULT_DEPOSIT_SLIPPAGE;\n  // Convert bps to WAD format (multiply by WAD/10000)\n  const slippageAsBigInt = (BigInt(slippageValue) * WAD.bigint) / BigInt(10000);\n\n  // Calculate ideal mint amount without slippage\n  const minimumMint = (depositAmount * WAD.bigint) / rate;\n\n  // Calculate the amount to subtract for slippage tolerance\n  const slippageAmount = (minimumMint * slippageAsBigInt) / WAD.bigint;\n\n  // Return mint amount minus slippage buffer\n  return minimumMint - slippageAmount;\n};\n\nexport { calculateMinimumMint };\n"],"mappings":"AAAA,SAAS,gCAAgC;AACzC,SAAS,WAAW;AASpB,MAAM,uBAAuB,CAC3B,eACA,MACA,aACW;AACX,QAAM,gBAAgB,YAAY;AAElC,QAAM,mBAAoB,OAAO,aAAa,IAAI,IAAI,SAAU,OAAO,GAAK;AAG5E,QAAM,cAAe,gBAAgB,IAAI,SAAU;AAGnD,QAAM,iBAAkB,cAAc,mBAAoB,IAAI;AAG9D,SAAO,cAAc;AACvB;","names":[]}