fix bug in LibFractions reference function
This commit is contained in:
		@@ -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(
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user