1- const ConversionRates = artifacts . require ( "ConversionRates.sol " ) ;
2- const EnhancedStepFunctions = artifacts . require ( "MockEnhancedStepFunctions.sol " ) ;
3- const TestToken = artifacts . require ( "TestToken.sol " ) ;
4- const Reserve = artifacts . require ( "KyberReserveHighRate.sol " ) ;
1+ const ConversionRates = artifacts . require ( "ConversionRates" ) ;
2+ const EnhancedStepFunctions = artifacts . require ( "MockEnhancedStepFunctions" ) ;
3+ const TestToken = artifacts . require ( "TestToken" ) ;
4+ const Reserve = artifacts . require ( "MockKyberReserveHighRate " ) ;
55const SanityRates = artifacts . require ( "SanityRates" ) ;
66
77const Helper = require ( "./helper.js" ) ;
@@ -14,6 +14,7 @@ const ethAddress = '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE';
1414const zeroAddress = '0x0000000000000000000000000000000000000000' ;
1515const precision = new BN ( 10 ) . pow ( new BN ( 18 ) ) ;
1616const maxAllowance = new BN ( 2 ) . pow ( new BN ( 255 ) ) ;
17+ const MAX_RATE = precisionUnits . mul ( new BN ( 10 ** 7 ) ) ;
1718
1819//balances
1920let expectedReserveBalanceWei = new BN ( 0 ) ;
@@ -237,6 +238,44 @@ contract('KyberReserveHighRate', function(accounts) {
237238 }
238239 } ) ;
239240
241+ it ( "test MAX_RATE as expected for internal calcDstQty" , async function ( ) {
242+ const srcQty = new BN ( 5000 ) ;
243+ const decimals = 18 ;
244+ let rate = MAX_RATE ;
245+
246+ const expectedDstQty = Helper . calcDstQty ( srcQty , decimals , decimals , rate ) ;
247+
248+ const rxDestQty = await reserveInst . MockCalcDstQty ( srcQty , decimals , decimals , rate ) ;
249+ Helper . assertEqual ( expectedDstQty , rxDestQty ) ;
250+
251+ rate = MAX_RATE . add ( new BN ( 1 ) ) ;
252+ try {
253+ await reserveInst . MockCalcDstQty ( srcQty , decimals , decimals , rate ) ;
254+ assert ( false , "shouldn't reach this line. expected line above to throw." )
255+ } catch ( e ) {
256+ assert ( Helper . isRevertErrorMessage ( e ) , "expected throw but got: " + e ) ;
257+ }
258+ } ) ;
259+
260+ it ( "test MAX_RATE as expected for internal calcSrcQty" , async function ( ) {
261+ const dstQty = new BN ( 50000000000 ) ;
262+ const decimals = 18 ;
263+ let rate = MAX_RATE ;
264+
265+ const expectedSrcQty = Helper . calcSrcQty ( dstQty , decimals , decimals , rate ) ;
266+
267+ const rxSrcQty = await reserveInst . MockCalcSrcQty ( dstQty , decimals , decimals , rate ) ;
268+ Helper . assertEqual ( expectedSrcQty , rxSrcQty ) ;
269+
270+ rate = MAX_RATE . add ( new BN ( 1 ) ) ;
271+ try {
272+ await reserveInst . MockCalcSrcQty ( dstQty , decimals , decimals , rate ) ;
273+ assert ( false , "shouldn't reach this line. expected line above to throw." )
274+ } catch ( e ) {
275+ assert ( Helper . isRevertErrorMessage ( e ) , "expected throw but got: " + e ) ;
276+ }
277+ } ) ;
278+
240279 it ( "should perform small buy (no steps) and check: balances changed, rate is expected rate." , async function ( ) {
241280 let tokenInd = 3 ;
242281 let token = tokens [ tokenInd ] ; //choose some token
0 commit comments