Division by large numbers may result in the result being zero, due to solidity not supporting fractions.
File: contracts/libraries/LibAsset.sol
26: return uint256(s.asset[asset].resetLiquidationTime) / Constants.TWO_DECIMAL_PLACES;
37: uint256(s.asset[asset].secondLiquidationTime) / Constants.TWO_DECIMAL_PLACES;
47: return uint256(s.asset[asset].firstLiquidationTime) / Constants.TWO_DECIMAL_PLACES;
57: return (uint256(s.asset[asset].initialMargin) * 1 ether)
69: return (uint256(s.asset[asset].primaryLiquidationCR) * 1 ether)
81: return (uint256(s.asset[asset].secondaryLiquidationCR) * 1 ether)
93: return (uint256(s.asset[asset].forcedBidPriceBuffer) * 1 ether)
105: (uint256(s.asset[asset].minimumCR) * 1 ether) / Constants.TWO_DECIMAL_PLACES;
115: return (uint256(s.asset[asset].tappFeePct) * 1 ether)
126: return (uint256(s.asset[asset].callerFeePct) * 1 ether)
138: (uint256(s.asset[asset].minBidEth) * 1 ether) / Constants.THREE_DECIMAL_PLACES;
149: (uint256(s.asset[asset].minAskEth) * 1 ether) / Constants.THREE_DECIMAL_PLACES;
File: contracts/libraries/LibBridge.sol
20: return (uint256(s.bridge[bridge].withdrawalFee) * 1 ether)
26: return (uint256(s.bridge[bridge].unstakeFee) * 1 ether)
File: contracts/libraries/LibOracle.sol
85: uint256 twapPriceInEther = (twapPrice / Constants.DECIMAL_USDC) * 1 ether;
File: contracts/libraries/LibOrders.sol
35: return (uint256(cr) * 1 ether) / Constants.TWO_DECIMAL_PLACES;
Consider requiring a minimum amount for the numerator to ensure that it is always larger than the denominator