Fixed wad functions in WadRayMath

This commit is contained in:
The3D 2020-10-23 16:52:22 +02:00
parent 86d25393e9
commit 4e1a8c29bd

View File

@ -60,7 +60,7 @@ library WadRayMath {
uint256 result = a * b + halfWAD; uint256 result = a * b + halfWAD;
require((result - halfWAD) / a == b, Errors.MULTIPLICATION_OVERFLOW); require(result >= halfWAD && (result - halfWAD) / a == b, Errors.MULTIPLICATION_OVERFLOW);
return result / WAD; return result / WAD;
} }
@ -76,13 +76,9 @@ library WadRayMath {
uint256 halfB = b / 2; uint256 halfB = b / 2;
uint256 result = a * WAD; uint256 result = a * WAD + halfB;
require(result / WAD == a, Errors.MULTIPLICATION_OVERFLOW); require(result >= halfB && (result - halfB) / WAD == a, Errors.MULTIPLICATION_OVERFLOW);
result += halfB;
require(result >= halfB, Errors.ADDITION_OVERFLOW);
return result / b; return result / b;
} }