fix bug in LibFractions reference function
This commit is contained in:
parent
49538f272e
commit
e4a3b1cb05
@ -129,7 +129,7 @@ export const LibFractions = {
|
|||||||
normalize: (
|
normalize: (
|
||||||
numerator: BigNumber,
|
numerator: BigNumber,
|
||||||
denominator: BigNumber,
|
denominator: BigNumber,
|
||||||
maxValue: BigNumber = new BigNumber(2 ** 127),
|
maxValue: BigNumber = new BigNumber(2).exponentiatedBy(127),
|
||||||
): [BigNumber, BigNumber] => {
|
): [BigNumber, BigNumber] => {
|
||||||
if (numerator.isGreaterThan(maxValue) || denominator.isGreaterThan(maxValue)) {
|
if (numerator.isGreaterThan(maxValue) || denominator.isGreaterThan(maxValue)) {
|
||||||
let rescaleBase = numerator.isGreaterThanOrEqualTo(denominator) ? numerator : denominator;
|
let rescaleBase = numerator.isGreaterThanOrEqualTo(denominator) ? numerator : denominator;
|
||||||
|
@ -179,13 +179,7 @@ export function validFinalizePoolAssertion(
|
|||||||
beforeInfo.poolStats.membersStake,
|
beforeInfo.poolStats.membersStake,
|
||||||
);
|
);
|
||||||
[numerator, denominator] = ReferenceFunctions.LibFractions.normalize(numerator, denominator);
|
[numerator, denominator] = ReferenceFunctions.LibFractions.normalize(numerator, denominator);
|
||||||
// There's a bug in our reference functions, probably due to the fact that safeDiv in
|
expect(mostRecentCumulativeRewards).to.deep.equal({ numerator, denominator });
|
||||||
// Solidity truncates in bits, whereas the safeDiv reference function truncates in base 10.
|
|
||||||
assertRoughlyEquals(
|
|
||||||
mostRecentCumulativeRewards.numerator.dividedBy(mostRecentCumulativeRewards.denominator),
|
|
||||||
numerator.dividedBy(denominator),
|
|
||||||
PRECISION,
|
|
||||||
);
|
|
||||||
|
|
||||||
// Check that aggregated stats have been updated
|
// Check that aggregated stats have been updated
|
||||||
const aggregatedStats = AggregatedStats.fromArray(
|
const aggregatedStats = AggregatedStats.fromArray(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user