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