# exit 255 # stdout # stderr 'forge clean' running (wd: /tmp/audits/2026-03-intuition) 'forge config --json' running 'forge build --build-info src/protocol/curves/ProgressiveCurve.sol' running (wd: /tmp/audits/2026-03-intuition) INFO:Detectors: Detector: incorrect-exp FixedPointMathLib.fullMulDiv(uint256,uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#455-512) has bitwise-xor operator ^ instead of the exponentiation operator **: - inv_fullMulDiv_asm_0 = 2 ^ 3 * d (lib/solady/src/utils/FixedPointMathLib.sol#489) FixedPointMathLib.fullMulDivUnchecked(uint256,uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#517-542) has bitwise-xor operator ^ instead of the exponentiation operator **: - inv_fullMulDivUnchecked_asm_0 = 2 ^ 3 * d (lib/solady/src/utils/FixedPointMathLib.sol#530) FixedPointMathLib.cbrt(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#833-854) has bitwise-xor operator ^ instead of the exponentiation operator **: - z = 0xf << 0xf < x >> r_cbrt_asm_0 << r_cbrt_asm_0 / 3 / 7 ^ r_cbrt_asm_0 % 3 (lib/solady/src/utils/FixedPointMathLib.sol#842) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-exponentiation INFO:Detectors: Detector: incorrect-shift FixedPointMathLib.lnWad(int256) (lib/solady/src/utils/FixedPointMathLib.sol#277-347) contains an incorrect shift operation: r = r ^ byte(uint256,uint256)(0x1f & 0x8421084210842108cc6318c6db6d54be >> x >> r,0xf8f9f9faf9fdfafbf9fdfcfdfafbfcfef9fafdfafcfcfbfefafafcfbffffffff) (lib/solady/src/utils/FixedPointMathLib.sol#297-298) FixedPointMathLib.lambertW0Wad(int256) (lib/solady/src/utils/FixedPointMathLib.sol#353-434) contains an incorrect shift operation: l_lambertW0Wad_asm_0 = l_lambertW0Wad_asm_0 | byte(uint256,uint256)(0x1f & 0x8421084210842108cc6318c6db6d54be >> v_lambertW0Wad_asm_0 >> l_lambertW0Wad_asm_0,0x0706060506020504060203020504030106050205030304010505030400000000) + 49 (lib/solady/src/utils/FixedPointMathLib.sol#372-373) FixedPointMathLib.lambertW0Wad(int256) (lib/solady/src/utils/FixedPointMathLib.sol#353-434) contains an incorrect shift operation: w = 7 << l_lambertW0Wad_asm_0 /' byte(uint256,uint256)(l_lambertW0Wad_asm_0 - 31,0x0303030303030303040506080c13) (lib/solady/src/utils/FixedPointMathLib.sol#374) FixedPointMathLib.cbrt(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#833-854) contains an incorrect shift operation: z = 0xf << 0xf < x >> r_cbrt_asm_0 << r_cbrt_asm_0 / 3 / 7 ^ r_cbrt_asm_0 % 3 (lib/solady/src/utils/FixedPointMathLib.sol#842) FixedPointMathLib.log2(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#924-936) contains an incorrect shift operation: r = r | byte(uint256,uint256)(0x1f & 0x8421084210842108cc6318c6db6d54be >> x >> r,0x0706060506020504060203020504030106050205030304010505030400000000) (lib/solady/src/utils/FixedPointMathLib.sol#933-934) FixedPointMathLib.log2Up(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#940-946) contains an incorrect shift operation: r = r + 1 << r < x (lib/solady/src/utils/FixedPointMathLib.sol#944) FixedPointMathLib.log256Up(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#998-1004) contains an incorrect shift operation: r = r + 1 << r << 3 < x (lib/solady/src/utils/FixedPointMathLib.sol#1002) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-shift-in-assembly INFO:Detectors: Detector: divide-before-multiply FixedPointMathLib.expWad(int256) (lib/solady/src/utils/FixedPointMathLib.sol#207-272) performs a multiplication on the result of a division: - x = (x << 78) / 5 ** 18 (lib/solady/src/utils/FixedPointMathLib.sol#226) - y = ((y * x) >> 96) + 57155421227552351082224309758442 (lib/solady/src/utils/FixedPointMathLib.sol#239) FixedPointMathLib.expWad(int256) (lib/solady/src/utils/FixedPointMathLib.sol#207-272) performs a multiplication on the result of a division: - x = (x << 78) / 5 ** 18 (lib/solady/src/utils/FixedPointMathLib.sol#226) - p = p * x + (4385272521454847904659076985693276 << 96) (lib/solady/src/utils/FixedPointMathLib.sol#242) FixedPointMathLib.expWad(int256) (lib/solady/src/utils/FixedPointMathLib.sol#207-272) performs a multiplication on the result of a division: - x = (x << 78) / 5 ** 18 (lib/solady/src/utils/FixedPointMathLib.sol#226) - q = ((q * x) >> 96) + 50020603652535783019961831881945 (lib/solady/src/utils/FixedPointMathLib.sol#246) FixedPointMathLib.expWad(int256) (lib/solady/src/utils/FixedPointMathLib.sol#207-272) performs a multiplication on the result of a division: - x = (x << 78) / 5 ** 18 (lib/solady/src/utils/FixedPointMathLib.sol#226) - q = ((q * x) >> 96) - 533845033583426703283633433725380 (lib/solady/src/utils/FixedPointMathLib.sol#247) FixedPointMathLib.expWad(int256) (lib/solady/src/utils/FixedPointMathLib.sol#207-272) performs a multiplication on the result of a division: - x = (x << 78) / 5 ** 18 (lib/solady/src/utils/FixedPointMathLib.sol#226) - q = ((q * x) >> 96) + 3604857256930695427073651918091429 (lib/solady/src/utils/FixedPointMathLib.sol#248) FixedPointMathLib.expWad(int256) (lib/solady/src/utils/FixedPointMathLib.sol#207-272) performs a multiplication on the result of a division: - x = (x << 78) / 5 ** 18 (lib/solady/src/utils/FixedPointMathLib.sol#226) - q = ((q * x) >> 96) - 14423608567350463180887372962807573 (lib/solady/src/utils/FixedPointMathLib.sol#249) FixedPointMathLib.expWad(int256) (lib/solady/src/utils/FixedPointMathLib.sol#207-272) performs a multiplication on the result of a division: - x = (x << 78) / 5 ** 18 (lib/solady/src/utils/FixedPointMathLib.sol#226) - q = ((q * x) >> 96) + 26449188498355588339934803723976023 (lib/solady/src/utils/FixedPointMathLib.sol#250) FixedPointMathLib.lambertW0Wad(int256) (lib/solady/src/utils/FixedPointMathLib.sol#353-434) performs a multiplication on the result of a division: - t_lambertW0Wad_asm_2 = w * e / wad (lib/solady/src/utils/FixedPointMathLib.sol#392) FixedPointMathLib.fullMulDiv(uint256,uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#455-512) performs a multiplication on the result of a division: - d = d / t_fullMulDiv_asm_0 (lib/solady/src/utils/FixedPointMathLib.sol#483) - inv_fullMulDiv_asm_0 = 2 ^ 3 * d (lib/solady/src/utils/FixedPointMathLib.sol#489) FixedPointMathLib.fullMulDiv(uint256,uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#455-512) performs a multiplication on the result of a division: - d = d / t_fullMulDiv_asm_0 (lib/solady/src/utils/FixedPointMathLib.sol#483) - inv_fullMulDiv_asm_0 = inv_fullMulDiv_asm_0 * 2 - d * inv_fullMulDiv_asm_0 (lib/solady/src/utils/FixedPointMathLib.sol#493) FixedPointMathLib.fullMulDiv(uint256,uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#455-512) performs a multiplication on the result of a division: - d = d / t_fullMulDiv_asm_0 (lib/solady/src/utils/FixedPointMathLib.sol#483) - inv_fullMulDiv_asm_0 = inv_fullMulDiv_asm_0 * 2 - d * inv_fullMulDiv_asm_0 (lib/solady/src/utils/FixedPointMathLib.sol#494) FixedPointMathLib.fullMulDiv(uint256,uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#455-512) performs a multiplication on the result of a division: - d = d / t_fullMulDiv_asm_0 (lib/solady/src/utils/FixedPointMathLib.sol#483) - inv_fullMulDiv_asm_0 = inv_fullMulDiv_asm_0 * 2 - d * inv_fullMulDiv_asm_0 (lib/solady/src/utils/FixedPointMathLib.sol#495) FixedPointMathLib.fullMulDiv(uint256,uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#455-512) performs a multiplication on the result of a division: - d = d / t_fullMulDiv_asm_0 (lib/solady/src/utils/FixedPointMathLib.sol#483) - inv_fullMulDiv_asm_0 = inv_fullMulDiv_asm_0 * 2 - d * inv_fullMulDiv_asm_0 (lib/solady/src/utils/FixedPointMathLib.sol#496) FixedPointMathLib.fullMulDiv(uint256,uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#455-512) performs a multiplication on the result of a division: - d = d / t_fullMulDiv_asm_0 (lib/solady/src/utils/FixedPointMathLib.sol#483) - inv_fullMulDiv_asm_0 = inv_fullMulDiv_asm_0 * 2 - d * inv_fullMulDiv_asm_0 (lib/solady/src/utils/FixedPointMathLib.sol#497) FixedPointMathLib.fullMulDiv(uint256,uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#455-512) performs a multiplication on the result of a division: - d = d / t_fullMulDiv_asm_0 (lib/solady/src/utils/FixedPointMathLib.sol#483) - z = p1_fullMulDiv_asm_0 - r_fullMulDiv_asm_0 > z * 0 - t_fullMulDiv_asm_0 / t_fullMulDiv_asm_0 + 1 | z - r_fullMulDiv_asm_0 / t_fullMulDiv_asm_0 * 2 - d * inv_fullMulDiv_asm_0 * inv_fullMulDiv_asm_0 (lib/solady/src/utils/FixedPointMathLib.sol#498-505) FixedPointMathLib.fullMulDivUnchecked(uint256,uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#517-542) performs a multiplication on the result of a division: - d = d / t_fullMulDivUnchecked_asm_0 (lib/solady/src/utils/FixedPointMathLib.sol#529) - inv_fullMulDivUnchecked_asm_0 = 2 ^ 3 * d (lib/solady/src/utils/FixedPointMathLib.sol#530) FixedPointMathLib.fullMulDivUnchecked(uint256,uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#517-542) performs a multiplication on the result of a division: - d = d / t_fullMulDivUnchecked_asm_0 (lib/solady/src/utils/FixedPointMathLib.sol#529) - inv_fullMulDivUnchecked_asm_0 = inv_fullMulDivUnchecked_asm_0 * 2 - d * inv_fullMulDivUnchecked_asm_0 (lib/solady/src/utils/FixedPointMathLib.sol#531) FixedPointMathLib.fullMulDivUnchecked(uint256,uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#517-542) performs a multiplication on the result of a division: - d = d / t_fullMulDivUnchecked_asm_0 (lib/solady/src/utils/FixedPointMathLib.sol#529) - inv_fullMulDivUnchecked_asm_0 = inv_fullMulDivUnchecked_asm_0 * 2 - d * inv_fullMulDivUnchecked_asm_0 (lib/solady/src/utils/FixedPointMathLib.sol#532) FixedPointMathLib.fullMulDivUnchecked(uint256,uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#517-542) performs a multiplication on the result of a division: - d = d / t_fullMulDivUnchecked_asm_0 (lib/solady/src/utils/FixedPointMathLib.sol#529) - inv_fullMulDivUnchecked_asm_0 = inv_fullMulDivUnchecked_asm_0 * 2 - d * inv_fullMulDivUnchecked_asm_0 (lib/solady/src/utils/FixedPointMathLib.sol#533) FixedPointMathLib.fullMulDivUnchecked(uint256,uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#517-542) performs a multiplication on the result of a division: - d = d / t_fullMulDivUnchecked_asm_0 (lib/solady/src/utils/FixedPointMathLib.sol#529) - inv_fullMulDivUnchecked_asm_0 = inv_fullMulDivUnchecked_asm_0 * 2 - d * inv_fullMulDivUnchecked_asm_0 (lib/solady/src/utils/FixedPointMathLib.sol#534) FixedPointMathLib.fullMulDivUnchecked(uint256,uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#517-542) performs a multiplication on the result of a division: - d = d / t_fullMulDivUnchecked_asm_0 (lib/solady/src/utils/FixedPointMathLib.sol#529) - inv_fullMulDivUnchecked_asm_0 = inv_fullMulDivUnchecked_asm_0 * 2 - d * inv_fullMulDivUnchecked_asm_0 (lib/solady/src/utils/FixedPointMathLib.sol#535) FixedPointMathLib.fullMulDivUnchecked(uint256,uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#517-542) performs a multiplication on the result of a division: - d = d / t_fullMulDivUnchecked_asm_0 (lib/solady/src/utils/FixedPointMathLib.sol#529) - z = p1_fullMulDivUnchecked_asm_0 - r_fullMulDivUnchecked_asm_0 > z * 0 - t_fullMulDivUnchecked_asm_0 / t_fullMulDivUnchecked_asm_0 + 1 | z - r_fullMulDivUnchecked_asm_0 / t_fullMulDivUnchecked_asm_0 * 2 - d * inv_fullMulDivUnchecked_asm_0 * inv_fullMulDivUnchecked_asm_0 (lib/solady/src/utils/FixedPointMathLib.sol#536-540) FixedPointMathLib.invMod(uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#624-641) performs a multiplication on the result of a division: - q_invMod_asm_0 = g_invMod_asm_0 / r_invMod_asm_0 (lib/solady/src/utils/FixedPointMathLib.sol#630) - r_invMod_asm_0 = t_invMod_asm_0 - r_invMod_asm_0 * q_invMod_asm_0 (lib/solady/src/utils/FixedPointMathLib.sol#633) FixedPointMathLib.invMod(uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#624-641) performs a multiplication on the result of a division: - q_invMod_asm_0 = g_invMod_asm_0 / r_invMod_asm_0 (lib/solady/src/utils/FixedPointMathLib.sol#630) - y_invMod_asm_0 = u_invMod_asm_0 - y_invMod_asm_0 * q_invMod_asm_0 (lib/solady/src/utils/FixedPointMathLib.sol#636) FixedPointMathLib.rpow(uint256,uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#738-772) performs a multiplication on the result of a division: - x = xxRound_rpow_asm_0 / b (lib/solady/src/utils/FixedPointMathLib.sol#754) - zx_rpow_asm_0 = z * x (lib/solady/src/utils/FixedPointMathLib.sol#757) FixedPointMathLib.cbrt(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#833-854) performs a multiplication on the result of a division: - z = 0xf << 0xf < x >> r_cbrt_asm_0 << r_cbrt_asm_0 / 3 / 7 ^ r_cbrt_asm_0 % 3 (lib/solady/src/utils/FixedPointMathLib.sol#842) - z = x / z * z + z + z / 3 (lib/solady/src/utils/FixedPointMathLib.sol#844) FixedPointMathLib.cbrt(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#833-854) performs a multiplication on the result of a division: - z = x / z * z + z + z / 3 (lib/solady/src/utils/FixedPointMathLib.sol#844) - z = x / z * z + z + z / 3 (lib/solady/src/utils/FixedPointMathLib.sol#845) FixedPointMathLib.cbrt(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#833-854) performs a multiplication on the result of a division: - z = x / z * z + z + z / 3 (lib/solady/src/utils/FixedPointMathLib.sol#845) - z = x / z * z + z + z / 3 (lib/solady/src/utils/FixedPointMathLib.sol#846) FixedPointMathLib.cbrt(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#833-854) performs a multiplication on the result of a division: - z = x / z * z + z + z / 3 (lib/solady/src/utils/FixedPointMathLib.sol#846) - z = x / z * z + z + z / 3 (lib/solady/src/utils/FixedPointMathLib.sol#847) FixedPointMathLib.cbrt(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#833-854) performs a multiplication on the result of a division: - z = x / z * z + z + z / 3 (lib/solady/src/utils/FixedPointMathLib.sol#847) - z = x / z * z + z + z / 3 (lib/solady/src/utils/FixedPointMathLib.sol#848) FixedPointMathLib.cbrt(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#833-854) performs a multiplication on the result of a division: - z = x / z * z + z + z / 3 (lib/solady/src/utils/FixedPointMathLib.sol#848) - z = x / z * z + z + z / 3 (lib/solady/src/utils/FixedPointMathLib.sol#849) FixedPointMathLib.cbrt(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#833-854) performs a multiplication on the result of a division: - z = x / z * z + z + z / 3 (lib/solady/src/utils/FixedPointMathLib.sol#849) - z = x / z * z + z + z / 3 (lib/solady/src/utils/FixedPointMathLib.sol#850) FixedPointMathLib.cbrt(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#833-854) performs a multiplication on the result of a division: - z = x / z * z + z + z / 3 (lib/solady/src/utils/FixedPointMathLib.sol#850) - z = z - x / z * z < z (lib/solady/src/utils/FixedPointMathLib.sol#852) FixedPointMathLib.cbrtWad(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#872-896) performs a multiplication on the result of a division: - z = (fullMulDivUnchecked(x,10 ** 36,z * z) + z + z) / 3 (lib/solady/src/utils/FixedPointMathLib.sol#876) - t_cbrtWad_asm_0 = mulmod(uint256,uint256,uint256)(z * z,z,p_cbrtWad_asm_0) (lib/solady/src/utils/FixedPointMathLib.sol#893) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#divide-before-multiply INFO:Detectors: Detector: assembly Initializable._getInitializableStorage() (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#232-237) uses assembly - INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#234-236) FixedPointMathLib.mulWad(uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#64-76) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#66-75) FixedPointMathLib.sMulWad(int256,int256) (lib/solady/src/utils/FixedPointMathLib.sol#79-90) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#81-89) FixedPointMathLib.rawMulWad(uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#93-98) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#95-97) FixedPointMathLib.rawSMulWad(int256,int256) (lib/solady/src/utils/FixedPointMathLib.sol#101-106) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#103-105) FixedPointMathLib.mulWadUp(uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#109-122) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#111-121) FixedPointMathLib.rawMulWadUp(uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#125-130) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#127-129) FixedPointMathLib.divWad(uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#133-143) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#135-142) FixedPointMathLib.sDivWad(int256,int256) (lib/solady/src/utils/FixedPointMathLib.sol#146-157) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#148-156) FixedPointMathLib.rawDivWad(uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#160-165) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#162-164) FixedPointMathLib.rawSDivWad(int256,int256) (lib/solady/src/utils/FixedPointMathLib.sol#168-173) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#170-172) FixedPointMathLib.divWadUp(uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#176-186) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#178-185) FixedPointMathLib.rawDivWadUp(uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#189-194) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#191-193) FixedPointMathLib.expWad(int256) (lib/solady/src/utils/FixedPointMathLib.sol#207-272) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#214-221) - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#253-258) FixedPointMathLib.lnWad(int256) (lib/solady/src/utils/FixedPointMathLib.sol#277-347) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#279-346) FixedPointMathLib.lambertW0Wad(int256) (lib/solady/src/utils/FixedPointMathLib.sol#353-434) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#368-377) - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#381-386) - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#391-394) - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#399-401) - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#408-412) - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#417-419) - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#425-427) - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#430-432) FixedPointMathLib.fullMulEq(uint256,uint256,uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#441-450) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#447-449) FixedPointMathLib.fullMulDiv(uint256,uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#455-512) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#457-511) FixedPointMathLib.fullMulDivUnchecked(uint256,uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#517-542) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#523-541) FixedPointMathLib.fullMulDivUp(uint256,uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#548-560) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#551-559) FixedPointMathLib.fullMulDivN(uint256,uint256,uint8) (lib/solady/src/utils/FixedPointMathLib.sol#566-591) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#568-590) FixedPointMathLib.mulDiv(uint256,uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#595-606) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#597-605) FixedPointMathLib.mulDivUp(uint256,uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#610-621) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#612-620) FixedPointMathLib.invMod(uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#624-641) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#626-640) FixedPointMathLib.divUp(uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#645-654) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#647-653) FixedPointMathLib.zeroFloorSub(uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#657-662) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#659-661) FixedPointMathLib.saturatingSub(uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#665-670) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#667-669) FixedPointMathLib.saturatingAdd(uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#673-678) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#675-677) FixedPointMathLib.saturatingMul(uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#681-686) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#683-685) FixedPointMathLib.ternary(bool,uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#689-694) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#691-693) FixedPointMathLib.ternary(bool,bytes32,bytes32) (lib/solady/src/utils/FixedPointMathLib.sol#697-702) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#699-701) FixedPointMathLib.ternary(bool,address,address) (lib/solady/src/utils/FixedPointMathLib.sol#705-710) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#707-709) FixedPointMathLib.coalesce(uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#713-718) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#715-717) FixedPointMathLib.coalesce(bytes32,bytes32) (lib/solady/src/utils/FixedPointMathLib.sol#721-726) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#723-725) FixedPointMathLib.coalesce(address,address) (lib/solady/src/utils/FixedPointMathLib.sol#729-734) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#731-733) FixedPointMathLib.rpow(uint256,uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#738-772) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#740-771) FixedPointMathLib.sqrt(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#775-826) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#777-825) FixedPointMathLib.cbrt(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#833-854) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#835-853) FixedPointMathLib.sqrtWad(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#857-867) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#864-866) FixedPointMathLib.cbrtWad(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#872-896) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#879-895) FixedPointMathLib.factorial(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#909-919) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#911-918) FixedPointMathLib.log2(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#924-936) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#926-935) FixedPointMathLib.log2Up(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#940-946) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#943-945) FixedPointMathLib.log10(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#950-971) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#952-970) FixedPointMathLib.log10Up(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#975-981) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#978-980) FixedPointMathLib.log256(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#985-994) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#987-993) FixedPointMathLib.log256Up(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#998-1004) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#1001-1003) FixedPointMathLib.sci(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#1008-1043) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#1010-1042) FixedPointMathLib.packSci(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#1053-1063) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#1056-1062) FixedPointMathLib.dist(uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#1094-1099) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#1096-1098) FixedPointMathLib.dist(int256,int256) (lib/solady/src/utils/FixedPointMathLib.sol#1102-1107) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#1104-1106) FixedPointMathLib.min(uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#1110-1115) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#1112-1114) FixedPointMathLib.min(int256,int256) (lib/solady/src/utils/FixedPointMathLib.sol#1118-1123) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#1120-1122) FixedPointMathLib.max(uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#1126-1131) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#1128-1130) FixedPointMathLib.max(int256,int256) (lib/solady/src/utils/FixedPointMathLib.sol#1134-1139) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#1136-1138) FixedPointMathLib.clamp(uint256,uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#1142-1152) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#1148-1151) FixedPointMathLib.clamp(int256,int256,int256) (lib/solady/src/utils/FixedPointMathLib.sol#1155-1161) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#1157-1160) FixedPointMathLib.gcd(uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#1164-1173) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#1166-1172) FixedPointMathLib.rawDiv(uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#1266-1271) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#1268-1270) FixedPointMathLib.rawSDiv(int256,int256) (lib/solady/src/utils/FixedPointMathLib.sol#1274-1279) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#1276-1278) FixedPointMathLib.rawMod(uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#1282-1287) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#1284-1286) FixedPointMathLib.rawSMod(int256,int256) (lib/solady/src/utils/FixedPointMathLib.sol#1290-1295) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#1292-1294) FixedPointMathLib.rawAddMod(uint256,uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#1298-1303) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#1300-1302) FixedPointMathLib.rawMulMod(uint256,uint256,uint256) (lib/solady/src/utils/FixedPointMathLib.sol#1306-1311) uses assembly - INLINE ASM (lib/solady/src/utils/FixedPointMathLib.sol#1308-1310) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage INFO:Detectors: Detector: pragma 4 different versions of Solidity are used: - Version constraint ^0.8.20 is used by: -^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#4) - Version constraint >=0.8.19 is used by: ->=0.8.19 (lib/prb-math/src/Common.sol#2) ->=0.8.19 (lib/prb-math/src/UD60x18.sol#2) ->=0.8.19 (lib/prb-math/src/sd1x18/Casting.sol#2) ->=0.8.19 (lib/prb-math/src/sd1x18/Constants.sol#2) ->=0.8.19 (lib/prb-math/src/sd1x18/Errors.sol#2) ->=0.8.19 (lib/prb-math/src/sd1x18/ValueType.sol#2) ->=0.8.19 (lib/prb-math/src/sd21x18/Casting.sol#2) ->=0.8.19 (lib/prb-math/src/sd21x18/Constants.sol#2) ->=0.8.19 (lib/prb-math/src/sd21x18/Errors.sol#2) ->=0.8.19 (lib/prb-math/src/sd21x18/ValueType.sol#2) ->=0.8.19 (lib/prb-math/src/sd59x18/Casting.sol#2) ->=0.8.19 (lib/prb-math/src/sd59x18/Constants.sol#2) ->=0.8.19 (lib/prb-math/src/sd59x18/Errors.sol#2) ->=0.8.19 (lib/prb-math/src/sd59x18/Helpers.sol#2) ->=0.8.19 (lib/prb-math/src/sd59x18/Math.sol#2) ->=0.8.19 (lib/prb-math/src/sd59x18/ValueType.sol#2) ->=0.8.19 (lib/prb-math/src/ud21x18/Casting.sol#2) ->=0.8.19 (lib/prb-math/src/ud21x18/Constants.sol#2) ->=0.8.19 (lib/prb-math/src/ud21x18/Errors.sol#2) ->=0.8.19 (lib/prb-math/src/ud21x18/ValueType.sol#2) ->=0.8.19 (lib/prb-math/src/ud2x18/Casting.sol#2) ->=0.8.19 (lib/prb-math/src/ud2x18/Constants.sol#2) ->=0.8.19 (lib/prb-math/src/ud2x18/Errors.sol#2) ->=0.8.19 (lib/prb-math/src/ud2x18/ValueType.sol#2) ->=0.8.19 (lib/prb-math/src/ud60x18/Casting.sol#2) ->=0.8.19 (lib/prb-math/src/ud60x18/Constants.sol#2) ->=0.8.19 (lib/prb-math/src/ud60x18/Conversions.sol#2) ->=0.8.19 (lib/prb-math/src/ud60x18/Errors.sol#2) ->=0.8.19 (lib/prb-math/src/ud60x18/Helpers.sol#2) ->=0.8.19 (lib/prb-math/src/ud60x18/Math.sol#2) ->=0.8.19 (lib/prb-math/src/ud60x18/ValueType.sol#2) - Version constraint ^0.8.4 is used by: -^0.8.4 (lib/solady/src/utils/FixedPointMathLib.sol#2) - Version constraint 0.8.29 is used by: -0.8.29 (src/interfaces/IBaseCurve.sol#2) -0.8.29 (src/libraries/ProgressiveCurveMathLib.sol#2) -0.8.29 (src/protocol/curves/BaseCurve.sol#2) -0.8.29 (src/protocol/curves/ProgressiveCurve.sol#2) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#different-pragma-directives-are-used INFO:Detectors: Detector: cyclomatic-complexity exp2(uint256) (lib/prb-math/src/Common.sol#57-295) has a high cyclomatic complexity (73). log10(SD59x18) (lib/prb-math/src/sd59x18/Math.sol#371-467) has a high cyclomatic complexity (80). log10(UD60x18) (lib/prb-math/src/ud60x18/Math.sol#270-367) has a high cyclomatic complexity (81). Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#cyclomatic-complexity INFO:Detectors: Detector: dead-code abs(SD59x18) (lib/prb-math/src/sd59x18/Math.sol#34-40) is never used and should be removed add(SD59x18,SD59x18) (lib/prb-math/src/sd59x18/Helpers.sol#8-10) is never used and should be removed and(SD59x18,int256) (lib/prb-math/src/sd59x18/Helpers.sol#13-15) is never used and should be removed and(UD60x18,uint256) (lib/prb-math/src/ud60x18/Helpers.sol#13-15) is never used and should be removed and2(SD59x18,SD59x18) (lib/prb-math/src/sd59x18/Helpers.sol#18-20) is never used and should be removed and2(UD60x18,UD60x18) (lib/prb-math/src/ud60x18/Helpers.sol#18-20) is never used and should be removed avg(SD59x18,SD59x18) (lib/prb-math/src/sd59x18/Math.sol#51-70) is never used and should be removed avg(UD60x18,UD60x18) (lib/prb-math/src/ud60x18/Math.sol#48-54) is never used and should be removed ceil(SD59x18) (lib/prb-math/src/sd59x18/Math.sol#83-102) is never used and should be removed ceil(UD60x18) (lib/prb-math/src/ud60x18/Math.sol#67-83) is never used and should be removed convert(UD60x18) (lib/prb-math/src/ud60x18/Conversions.sol#12-14) is never used and should be removed convert(uint256) (lib/prb-math/src/ud60x18/Conversions.sol#23-30) is never used and should be removed div(SD59x18,SD59x18) (lib/prb-math/src/sd59x18/Math.sol#123-152) is never used and should be removed eq(SD59x18,SD59x18) (lib/prb-math/src/sd59x18/Helpers.sol#23-25) is never used and should be removed eq(UD60x18,UD60x18) (lib/prb-math/src/ud60x18/Helpers.sol#23-25) is never used and should be removed exp(SD59x18) (lib/prb-math/src/sd59x18/Math.sol#170-189) is never used and should be removed exp(UD60x18) (lib/prb-math/src/ud60x18/Math.sol#115-128) is never used and should be removed exp2(SD59x18) (lib/prb-math/src/sd59x18/Math.sol#209-235) is never used and should be removed exp2(UD60x18) (lib/prb-math/src/ud60x18/Math.sol#141-154) is never used and should be removed exp2(uint256) (lib/prb-math/src/Common.sol#57-295) is never used and should be removed floor(SD59x18) (lib/prb-math/src/sd59x18/Math.sol#248-267) is never used and should be removed floor(UD60x18) (lib/prb-math/src/ud60x18/Math.sol#162-170) is never used and should be removed frac(SD59x18) (lib/prb-math/src/sd59x18/Math.sol#274-276) is never used and should be removed frac(UD60x18) (lib/prb-math/src/ud60x18/Math.sol#177-181) is never used and should be removed gm(SD59x18,SD59x18) (lib/prb-math/src/sd59x18/Math.sol#291-315) is never used and should be removed gm(UD60x18,UD60x18) (lib/prb-math/src/ud60x18/Math.sol#192-210) is never used and should be removed gt(SD59x18,SD59x18) (lib/prb-math/src/sd59x18/Helpers.sol#28-30) is never used and should be removed gt(UD60x18,UD60x18) (lib/prb-math/src/ud60x18/Helpers.sol#28-30) is never used and should be removed gte(SD59x18,SD59x18) (lib/prb-math/src/sd59x18/Helpers.sol#33-35) is never used and should be removed gte(UD60x18,UD60x18) (lib/prb-math/src/ud60x18/Helpers.sol#33-35) is never used and should be removed intoInt256(SD59x18) (lib/prb-math/src/sd59x18/Casting.sol#19-21) is never used and should be removed intoSD1x18(SD59x18) (lib/prb-math/src/sd59x18/Casting.sol#27-36) is never used and should be removed intoSD1x18(UD60x18) (lib/prb-math/src/ud60x18/Casting.sol#21-27) is never used and should be removed intoSD21x18(SD59x18) (lib/prb-math/src/sd59x18/Casting.sol#42-51) is never used and should be removed intoSD21x18(UD60x18) (lib/prb-math/src/ud60x18/Casting.sol#32-38) is never used and should be removed intoSD59x18(SD1x18) (lib/prb-math/src/sd1x18/Casting.sol#12-14) is never used and should be removed intoSD59x18(SD21x18) (lib/prb-math/src/sd21x18/Casting.sol#12-14) is never used and should be removed intoSD59x18(UD21x18) (lib/prb-math/src/ud21x18/Casting.sol#12-14) is never used and should be removed intoSD59x18(UD2x18) (lib/prb-math/src/ud2x18/Casting.sol#12-14) is never used and should be removed intoSD59x18(UD60x18) (lib/prb-math/src/ud60x18/Casting.sol#65-71) is never used and should be removed intoUD21x18(SD59x18) (lib/prb-math/src/sd59x18/Casting.sol#72-81) is never used and should be removed intoUD21x18(UD60x18) (lib/prb-math/src/ud60x18/Casting.sol#54-60) is never used and should be removed intoUD2x18(SD59x18) (lib/prb-math/src/sd59x18/Casting.sol#57-66) is never used and should be removed intoUD2x18(UD60x18) (lib/prb-math/src/ud60x18/Casting.sol#43-49) is never used and should be removed intoUD60x18(SD1x18) (lib/prb-math/src/sd1x18/Casting.sol#19-25) is never used and should be removed intoUD60x18(SD21x18) (lib/prb-math/src/sd21x18/Casting.sol#19-25) is never used and should be removed intoUD60x18(SD59x18) (lib/prb-math/src/sd59x18/Casting.sol#86-92) is never used and should be removed intoUD60x18(UD21x18) (lib/prb-math/src/ud21x18/Casting.sol#18-20) is never used and should be removed intoUD60x18(UD2x18) (lib/prb-math/src/ud2x18/Casting.sol#18-20) is never used and should be removed intoUint128(SD1x18) (lib/prb-math/src/sd1x18/Casting.sol#30-36) is never used and should be removed intoUint128(SD21x18) (lib/prb-math/src/sd21x18/Casting.sol#30-36) is never used and should be removed intoUint128(SD59x18) (lib/prb-math/src/sd59x18/Casting.sol#109-118) is never used and should be removed intoUint128(UD21x18) (lib/prb-math/src/ud21x18/Casting.sol#24-26) is never used and should be removed intoUint128(UD2x18) (lib/prb-math/src/ud2x18/Casting.sol#24-26) is never used and should be removed intoUint128(UD60x18) (lib/prb-math/src/ud60x18/Casting.sol#82-88) is never used and should be removed intoUint256(SD1x18) (lib/prb-math/src/sd1x18/Casting.sol#41-47) is never used and should be removed intoUint256(SD21x18) (lib/prb-math/src/sd21x18/Casting.sol#41-47) is never used and should be removed intoUint256(SD59x18) (lib/prb-math/src/sd59x18/Casting.sol#97-103) is never used and should be removed intoUint256(UD21x18) (lib/prb-math/src/ud21x18/Casting.sol#30-32) is never used and should be removed intoUint256(UD2x18) (lib/prb-math/src/ud2x18/Casting.sol#30-32) is never used and should be removed intoUint256(UD60x18) (lib/prb-math/src/ud60x18/Casting.sol#75-77) is never used and should be removed intoUint40(SD1x18) (lib/prb-math/src/sd1x18/Casting.sol#53-62) is never used and should be removed intoUint40(SD21x18) (lib/prb-math/src/sd21x18/Casting.sol#53-62) is never used and should be removed intoUint40(SD59x18) (lib/prb-math/src/sd59x18/Casting.sol#124-133) is never used and should be removed intoUint40(UD21x18) (lib/prb-math/src/ud21x18/Casting.sol#37-43) is never used and should be removed intoUint40(UD2x18) (lib/prb-math/src/ud2x18/Casting.sol#37-43) is never used and should be removed intoUint40(UD60x18) (lib/prb-math/src/ud60x18/Casting.sol#93-99) is never used and should be removed inv(SD59x18) (lib/prb-math/src/sd59x18/Math.sol#328-330) is never used and should be removed inv(UD60x18) (lib/prb-math/src/ud60x18/Math.sol#223-227) is never used and should be removed isZero(SD59x18) (lib/prb-math/src/sd59x18/Helpers.sol#38-40) is never used and should be removed isZero(UD60x18) (lib/prb-math/src/ud60x18/Helpers.sol#38-41) is never used and should be removed ln(SD59x18) (lib/prb-math/src/sd59x18/Math.sol#348-352) is never used and should be removed ln(UD60x18) (lib/prb-math/src/ud60x18/Math.sol#245-251) is never used and should be removed log10(SD59x18) (lib/prb-math/src/sd59x18/Math.sol#371-467) is never used and should be removed log10(UD60x18) (lib/prb-math/src/ud60x18/Math.sol#270-367) is never used and should be removed log2(SD59x18) (lib/prb-math/src/sd59x18/Math.sol#492-541) is never used and should be removed log2(UD60x18) (lib/prb-math/src/ud60x18/Math.sol#392-432) is never used and should be removed lshift(SD59x18,uint256) (lib/prb-math/src/sd59x18/Helpers.sol#43-45) is never used and should be removed lshift(UD60x18,uint256) (lib/prb-math/src/ud60x18/Helpers.sol#44-46) is never used and should be removed lt(SD59x18,SD59x18) (lib/prb-math/src/sd59x18/Helpers.sol#48-50) is never used and should be removed lt(UD60x18,UD60x18) (lib/prb-math/src/ud60x18/Helpers.sol#49-51) is never used and should be removed lte(SD59x18,SD59x18) (lib/prb-math/src/sd59x18/Helpers.sol#53-55) is never used and should be removed lte(UD60x18,UD60x18) (lib/prb-math/src/ud60x18/Helpers.sol#54-56) is never used and should be removed mod(SD59x18,SD59x18) (lib/prb-math/src/sd59x18/Helpers.sol#58-60) is never used and should be removed mod(UD60x18,UD60x18) (lib/prb-math/src/ud60x18/Helpers.sol#59-61) is never used and should be removed msb(uint256) (lib/prb-math/src/Common.sol#323-372) is never used and should be removed mul(SD59x18,SD59x18) (lib/prb-math/src/sd59x18/Math.sol#557-586) is never used and should be removed mulDivSigned(int256,int256,int256) (lib/prb-math/src/Common.sol#548-585) is never used and should be removed neq(SD59x18,SD59x18) (lib/prb-math/src/sd59x18/Helpers.sol#63-65) is never used and should be removed neq(UD60x18,UD60x18) (lib/prb-math/src/ud60x18/Helpers.sol#64-66) is never used and should be removed not(SD59x18) (lib/prb-math/src/sd59x18/Helpers.sol#68-70) is never used and should be removed not(UD60x18) (lib/prb-math/src/ud60x18/Helpers.sol#69-71) is never used and should be removed or(SD59x18,SD59x18) (lib/prb-math/src/sd59x18/Helpers.sol#73-75) is never used and should be removed or(UD60x18,UD60x18) (lib/prb-math/src/ud60x18/Helpers.sol#74-76) is never used and should be removed pow(SD59x18,SD59x18) (lib/prb-math/src/sd59x18/Math.sol#605-629) is never used and should be removed pow(UD60x18,UD60x18) (lib/prb-math/src/ud60x18/Math.sol#481-513) is never used and should be removed powu(SD59x18,uint256) (lib/prb-math/src/sd59x18/Math.sol#648-679) is never used and should be removed powu(UD60x18,uint256) (lib/prb-math/src/ud60x18/Math.sol#531-546) is never used and should be removed rshift(SD59x18,uint256) (lib/prb-math/src/sd59x18/Helpers.sol#78-80) is never used and should be removed rshift(UD60x18,uint256) (lib/prb-math/src/ud60x18/Helpers.sol#79-81) is never used and should be removed sd(int256) (lib/prb-math/src/sd59x18/Casting.sol#136-138) is never used and should be removed sd1x18(int64) (lib/prb-math/src/sd1x18/Casting.sol#65-67) is never used and should be removed sd21x18(int128) (lib/prb-math/src/sd21x18/Casting.sol#65-67) is never used and should be removed sd59x18(int256) (lib/prb-math/src/sd59x18/Casting.sol#141-143) is never used and should be removed sqrt(SD59x18) (lib/prb-math/src/sd59x18/Math.sol#696-711) is never used and should be removed sub(SD59x18,SD59x18) (lib/prb-math/src/sd59x18/Helpers.sol#83-85) is never used and should be removed ud(uint256) (lib/prb-math/src/ud60x18/Casting.sol#102-104) is never used and should be removed ud21x18(uint128) (lib/prb-math/src/ud21x18/Casting.sol#46-48) is never used and should be removed ud2x18(uint64) (lib/prb-math/src/ud2x18/Casting.sol#46-48) is never used and should be removed ud60x18(uint256) (lib/prb-math/src/ud60x18/Casting.sol#107-109) is never used and should be removed unary(SD59x18) (lib/prb-math/src/sd59x18/Helpers.sol#88-90) is never used and should be removed uncheckedAdd(SD59x18,SD59x18) (lib/prb-math/src/sd59x18/Helpers.sol#93-97) is never used and should be removed uncheckedAdd(UD60x18,UD60x18) (lib/prb-math/src/ud60x18/Helpers.sol#89-93) is never used and should be removed uncheckedSub(SD59x18,SD59x18) (lib/prb-math/src/sd59x18/Helpers.sol#100-104) is never used and should be removed uncheckedSub(UD60x18,UD60x18) (lib/prb-math/src/ud60x18/Helpers.sol#96-100) is never used and should be removed uncheckedUnary(SD59x18) (lib/prb-math/src/sd59x18/Helpers.sol#107-111) is never used and should be removed unwrap(SD1x18) (lib/prb-math/src/sd1x18/Casting.sol#70-72) is never used and should be removed unwrap(SD21x18) (lib/prb-math/src/sd21x18/Casting.sol#70-72) is never used and should be removed unwrap(SD59x18) (lib/prb-math/src/sd59x18/Casting.sol#146-148) is never used and should be removed unwrap(UD21x18) (lib/prb-math/src/ud21x18/Casting.sol#51-53) is never used and should be removed unwrap(UD2x18) (lib/prb-math/src/ud2x18/Casting.sol#51-53) is never used and should be removed wrap(int128) (lib/prb-math/src/sd21x18/Casting.sol#75-77) is never used and should be removed wrap(int256) (lib/prb-math/src/sd59x18/Casting.sol#151-153) is never used and should be removed wrap(int64) (lib/prb-math/src/sd1x18/Casting.sol#75-77) is never used and should be removed wrap(uint128) (lib/prb-math/src/ud21x18/Casting.sol#56-58) is never used and should be removed wrap(uint64) (lib/prb-math/src/ud2x18/Casting.sol#56-58) is never used and should be removed xor(SD59x18,SD59x18) (lib/prb-math/src/sd59x18/Helpers.sol#114-116) is never used and should be removed xor(UD60x18,UD60x18) (lib/prb-math/src/ud60x18/Helpers.sol#103-105) is never used and should be removed Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code INFO:Detectors: Detector: solc-version Version constraint ^0.8.20 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html) - VerbatimInvalidDeduplication - FullInlinerNonExpressionSplitArgumentEvaluationOrder - MissingSideEffectsOnSelectorAccess. It is used by: - ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#4) Version constraint >=0.8.19 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html) - VerbatimInvalidDeduplication - FullInlinerNonExpressionSplitArgumentEvaluationOrder - MissingSideEffectsOnSelectorAccess. It is used by: - >=0.8.19 (lib/prb-math/src/Common.sol#2) - >=0.8.19 (lib/prb-math/src/UD60x18.sol#2) - >=0.8.19 (lib/prb-math/src/sd1x18/Casting.sol#2) - >=0.8.19 (lib/prb-math/src/sd1x18/Constants.sol#2) - >=0.8.19 (lib/prb-math/src/sd1x18/Errors.sol#2) - >=0.8.19 (lib/prb-math/src/sd1x18/ValueType.sol#2) - >=0.8.19 (lib/prb-math/src/sd21x18/Casting.sol#2) - >=0.8.19 (lib/prb-math/src/sd21x18/Constants.sol#2) - >=0.8.19 (lib/prb-math/src/sd21x18/Errors.sol#2) - >=0.8.19 (lib/prb-math/src/sd21x18/ValueType.sol#2) - >=0.8.19 (lib/prb-math/src/sd59x18/Casting.sol#2) - >=0.8.19 (lib/prb-math/src/sd59x18/Constants.sol#2) - >=0.8.19 (lib/prb-math/src/sd59x18/Errors.sol#2) - >=0.8.19 (lib/prb-math/src/sd59x18/Helpers.sol#2) - >=0.8.19 (lib/prb-math/src/sd59x18/Math.sol#2) - >=0.8.19 (lib/prb-math/src/sd59x18/ValueType.sol#2) - >=0.8.19 (lib/prb-math/src/ud21x18/Casting.sol#2) - >=0.8.19 (lib/prb-math/src/ud21x18/Constants.sol#2) - >=0.8.19 (lib/prb-math/src/ud21x18/Errors.sol#2) - >=0.8.19 (lib/prb-math/src/ud21x18/ValueType.sol#2) - >=0.8.19 (lib/prb-math/src/ud2x18/Casting.sol#2) - >=0.8.19 (lib/prb-math/src/ud2x18/Constants.sol#2) - >=0.8.19 (lib/prb-math/src/ud2x18/Errors.sol#2) - >=0.8.19 (lib/prb-math/src/ud2x18/ValueType.sol#2) - >=0.8.19 (lib/prb-math/src/ud60x18/Casting.sol#2) - >=0.8.19 (lib/prb-math/src/ud60x18/Constants.sol#2) - >=0.8.19 (lib/prb-math/src/ud60x18/Conversions.sol#2) - >=0.8.19 (lib/prb-math/src/ud60x18/Errors.sol#2) - >=0.8.19 (lib/prb-math/src/ud60x18/Helpers.sol#2) - >=0.8.19 (lib/prb-math/src/ud60x18/Math.sol#2) - >=0.8.19 (lib/prb-math/src/ud60x18/ValueType.sol#2) Version constraint ^0.8.4 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html) - FullInlinerNonExpressionSplitArgumentEvaluationOrder - MissingSideEffectsOnSelectorAccess - AbiReencodingHeadOverflowWithStaticArrayCleanup - DirtyBytesArrayToStorage - DataLocationChangeInInternalOverride - NestedCalldataArrayAbiReencodingSizeValidation - SignedImmutables. It is used by: - ^0.8.4 (lib/solady/src/utils/FixedPointMathLib.sol#2) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity INFO:Detectors: Detector: naming-convention Function BaseCurve.__BaseCurve_init(string) (src/protocol/curves/BaseCurve.sol#41-49) is not in mixedCase Parameter BaseCurve.__BaseCurve_init(string)._name (src/protocol/curves/BaseCurve.sol#41) is not in mixedCase Parameter ProgressiveCurve.initialize(string,uint256)._name (src/protocol/curves/ProgressiveCurve.sol#57) is not in mixedCase Variable ProgressiveCurve.SLOPE (src/protocol/curves/ProgressiveCurve.sol#22) is not in mixedCase Variable ProgressiveCurve.HALF_SLOPE (src/protocol/curves/ProgressiveCurve.sol#25) is not in mixedCase Variable ProgressiveCurve.MAX_SHARES (src/protocol/curves/ProgressiveCurve.sol#28) is not in mixedCase Variable ProgressiveCurve.MAX_ASSETS (src/protocol/curves/ProgressiveCurve.sol#31) is not in mixedCase Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions INFO:Detectors: Detector: too-many-digits FixedPointMathLib.lambertW0Wad(int256) (lib/solady/src/utils/FixedPointMathLib.sol#353-434) uses literals with too many digits: - - 0x4000000000000 <= w (lib/solady/src/utils/FixedPointMathLib.sol#361) FixedPointMathLib.lambertW0Wad(int256) (lib/solady/src/utils/FixedPointMathLib.sol#353-434) uses literals with too many digits: - l_lambertW0Wad_asm_0 = l_lambertW0Wad_asm_0 | byte(uint256,uint256)(0x1f & 0x8421084210842108cc6318c6db6d54be >> v_lambertW0Wad_asm_0 >> l_lambertW0Wad_asm_0,0x0706060506020504060203020504030106050205030304010505030400000000) + 49 (lib/solady/src/utils/FixedPointMathLib.sol#372-373) FixedPointMathLib.cbrtWad(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#872-896) uses literals with too many digits: - p_cbrtWad_asm_0 = p_cbrtWad_asm_0 * 100000000000000000 (lib/solady/src/utils/FixedPointMathLib.sol#884) FixedPointMathLib.cbrtWad(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#872-896) uses literals with too many digits: - p_cbrtWad_asm_0 = p_cbrtWad_asm_0 * 100000000 (lib/solady/src/utils/FixedPointMathLib.sol#887) FixedPointMathLib.log2(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#924-936) uses literals with too many digits: - r = r | byte(uint256,uint256)(0x1f & 0x8421084210842108cc6318c6db6d54be >> x >> r,0x0706060506020504060203020504030106050205030304010505030400000000) (lib/solady/src/utils/FixedPointMathLib.sol#933-934) FixedPointMathLib.log10(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#950-971) uses literals with too many digits: - ! x < 100000000000000000000000000000000000000 (lib/solady/src/utils/FixedPointMathLib.sol#953-956) FixedPointMathLib.log10(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#950-971) uses literals with too many digits: - x = x / 100000000000000000000000000000000000000 (lib/solady/src/utils/FixedPointMathLib.sol#954) FixedPointMathLib.log10(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#950-971) uses literals with too many digits: - ! x < 100000000000000000000 (lib/solady/src/utils/FixedPointMathLib.sol#957-960) FixedPointMathLib.log10(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#950-971) uses literals with too many digits: - x = x / 100000000000000000000 (lib/solady/src/utils/FixedPointMathLib.sol#958) FixedPointMathLib.log10(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#950-971) uses literals with too many digits: - ! x < 10000000000 (lib/solady/src/utils/FixedPointMathLib.sol#961-964) FixedPointMathLib.log10(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#950-971) uses literals with too many digits: - x = x / 10000000000 (lib/solady/src/utils/FixedPointMathLib.sol#962) FixedPointMathLib.log10(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#950-971) uses literals with too many digits: - ! x < 100000 (lib/solady/src/utils/FixedPointMathLib.sol#965-968) FixedPointMathLib.log10(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#950-971) uses literals with too many digits: - x = x / 100000 (lib/solady/src/utils/FixedPointMathLib.sol#966) FixedPointMathLib.sci(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#1008-1043) uses literals with too many digits: - ! mantissa % 1000000000000000000000000000000000 (lib/solady/src/utils/FixedPointMathLib.sol#1013-1016) FixedPointMathLib.sci(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#1008-1043) uses literals with too many digits: - mantissa = mantissa / 1000000000000000000000000000000000 (lib/solady/src/utils/FixedPointMathLib.sol#1014) FixedPointMathLib.sci(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#1008-1043) uses literals with too many digits: - ! mantissa % 10000000000000000000 (lib/solady/src/utils/FixedPointMathLib.sol#1017-1020) FixedPointMathLib.sci(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#1008-1043) uses literals with too many digits: - mantissa = mantissa / 10000000000000000000 (lib/solady/src/utils/FixedPointMathLib.sol#1018) FixedPointMathLib.sci(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#1008-1043) uses literals with too many digits: - ! mantissa % 1000000000000 (lib/solady/src/utils/FixedPointMathLib.sol#1021-1024) FixedPointMathLib.sci(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#1008-1043) uses literals with too many digits: - mantissa = mantissa / 1000000000000 (lib/solady/src/utils/FixedPointMathLib.sol#1022) FixedPointMathLib.sci(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#1008-1043) uses literals with too many digits: - ! mantissa % 1000000 (lib/solady/src/utils/FixedPointMathLib.sol#1025-1028) FixedPointMathLib.sci(uint256) (lib/solady/src/utils/FixedPointMathLib.sol#1008-1043) uses literals with too many digits: - mantissa = mantissa / 1000000 (lib/solady/src/utils/FixedPointMathLib.sol#1026) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#too-many-digits INFO:Slither:src/protocol/curves/ProgressiveCurve.sol analyzed (6 contracts with 101 detectors), 271 result(s) found