@@ -61,6 +61,9 @@ contract("SecurityTokenRegistry", async (accounts) => {
6161    let  I_MRProxied ; 
6262    let  I_STRGetter ; 
6363    let  I_Getter ; 
64+     let  I_USDOracle ; 
65+     let  I_POLYOracle ; 
66+     let  I_StablePOLYOracle ; 
6467
6568    // SecurityToken Details (Launched ST on the behalf of the issuer) 
6669    const  name  =  "Demo Token" ; 
@@ -120,7 +123,10 @@ contract("SecurityTokenRegistry", async (accounts) => {
120123            I_SecurityTokenRegistry , 
121124            I_SecurityTokenRegistryProxy , 
122125            I_STRProxied , 
123-             I_STRGetter 
126+             I_STRGetter , 
127+             I_USDOracle , 
128+             I_POLYOracle , 
129+             I_StablePOLYOracle 
124130        ]  =  instances ; 
125131
126132        // STEP 8: Deploy the CappedSTOFactory 
@@ -357,6 +363,59 @@ contract("SecurityTokenRegistry", async (accounts) => {
357363            assert . equal ( data [ 3 ] ,  "" ) ; 
358364        } ) ; 
359365
366+         it ( "Should change ticker price based on oracle" ,  async  ( )  =>  { 
367+             let  snap_Id  =  await  takeSnapshot ( ) ; 
368+             let  origPriceUSD  =  new  BN ( web3 . utils . toWei ( "250" ) ) ; 
369+             let  origPricePOLY  =  new  BN ( web3 . utils . toWei ( "1000" ) ) ; 
370+             let  currentRate  =  await  I_POLYOracle . getPrice . call ( ) ; 
371+             console . log ( "Current Rate: "  +  currentRate ) ; 
372+             let  feesTicker  =  await  I_STRProxied . getFees . call ( "0x2fcc69711628630fb5a42566c68bd1092bc4aa26826736293969fddcd11cb2d2" ) ; 
373+             let  feesToken  =  await  I_STRProxied . getFees . call ( "0x2fcc69711628630fb5a42566c68bd1092bc4aa26826736293969fddcd11cb2d2" ) ; 
374+             assert . equal ( feesTicker [ 0 ] . toString ( ) ,  origPriceUSD . toString ( ) ) ; 
375+             assert . equal ( feesTicker [ 1 ] . toString ( ) ,  origPricePOLY . toString ( ) ) ; 
376+             assert . equal ( feesToken [ 0 ] . toString ( ) ,  origPriceUSD . toString ( ) ) ; 
377+             assert . equal ( feesToken [ 1 ] . toString ( ) ,  origPricePOLY . toString ( ) ) ; 
378+             await  I_POLYOracle . changePrice ( new  BN ( 27 ) . mul ( new  BN ( 10 ) . pow ( new  BN ( 16 ) ) ) ) ; 
379+             await  I_STRProxied . getFees ( "0x2fcc69711628630fb5a42566c68bd1092bc4aa26826736293969fddcd11cb2d2" ) ; 
380+             feesTicker  =  await  I_STRProxied . getFees . call ( "0x2fcc69711628630fb5a42566c68bd1092bc4aa26826736293969fddcd11cb2d2" ) ; 
381+             feesToken  =  await  I_STRProxied . getFees . call ( "0x2fcc69711628630fb5a42566c68bd1092bc4aa26826736293969fddcd11cb2d2" ) ; 
382+             // No change as difference is less than 10% 
383+             assert . equal ( feesTicker [ 0 ] . toString ( ) ,  origPriceUSD . toString ( ) ) ; 
384+             assert . equal ( feesTicker [ 1 ] . toString ( ) ,  origPricePOLY . toString ( ) ) ; 
385+             assert . equal ( feesToken [ 0 ] . toString ( ) ,  origPriceUSD . toString ( ) ) ; 
386+             assert . equal ( feesToken [ 1 ] . toString ( ) ,  origPricePOLY . toString ( ) ) ; 
387+             await  I_POLYOracle . changePrice ( new  BN ( 20 ) . mul ( new  BN ( 10 ) . pow ( new  BN ( 16 ) ) ) ) ; 
388+             await  I_STRProxied . getFees ( "0x2fcc69711628630fb5a42566c68bd1092bc4aa26826736293969fddcd11cb2d2" ) ; 
389+             feesTicker  =  await  I_STRProxied . getFees . call ( "0x2fcc69711628630fb5a42566c68bd1092bc4aa26826736293969fddcd11cb2d2" ) ; 
390+             feesToken  =  await  I_STRProxied . getFees . call ( "0x2fcc69711628630fb5a42566c68bd1092bc4aa26826736293969fddcd11cb2d2" ) ; 
391+             let  newPricePOLY  =  new  BN ( web3 . utils . toWei ( "1250" ) ) ; 
392+             assert . equal ( feesTicker [ 0 ] . toString ( ) ,  origPriceUSD . toString ( ) ) ; 
393+             assert . equal ( feesTicker [ 1 ] . toString ( ) ,  newPricePOLY . toString ( ) ) ; 
394+             assert . equal ( feesToken [ 0 ] . toString ( ) ,  origPriceUSD . toString ( ) ) ; 
395+             assert . equal ( feesToken [ 1 ] . toString ( ) ,  newPricePOLY . toString ( ) ) ; 
396+             await  I_POLYOracle . changePrice ( new  BN ( 21 ) . mul ( new  BN ( 10 ) . pow ( new  BN ( 16 ) ) ) ) ; 
397+             await  I_STRProxied . getFees ( "0x2fcc69711628630fb5a42566c68bd1092bc4aa26826736293969fddcd11cb2d2" ) ; 
398+             feesTicker  =  await  I_STRProxied . getFees . call ( "0x2fcc69711628630fb5a42566c68bd1092bc4aa26826736293969fddcd11cb2d2" ) ; 
399+             feesToken  =  await  I_STRProxied . getFees . call ( "0x2fcc69711628630fb5a42566c68bd1092bc4aa26826736293969fddcd11cb2d2" ) ; 
400+             // No change as difference is less than 10% 
401+             assert . equal ( feesTicker [ 0 ] . toString ( ) ,  origPriceUSD . toString ( ) ) ; 
402+             assert . equal ( feesTicker [ 1 ] . toString ( ) ,  newPricePOLY . toString ( ) ) ; 
403+             assert . equal ( feesToken [ 0 ] . toString ( ) ,  origPriceUSD . toString ( ) ) ; 
404+             assert . equal ( feesToken [ 1 ] . toString ( ) ,  newPricePOLY . toString ( ) ) ; 
405+             await  I_StablePOLYOracle . changeEvictPercentage ( new  BN ( 10 ) . pow ( new  BN ( 16 ) ) ) ; 
406+             await  I_STRProxied . getFees ( "0x2fcc69711628630fb5a42566c68bd1092bc4aa26826736293969fddcd11cb2d2" ) ; 
407+             feesTicker  =  await  I_STRProxied . getFees . call ( "0x2fcc69711628630fb5a42566c68bd1092bc4aa26826736293969fddcd11cb2d2" ) ; 
408+             feesToken  =  await  I_STRProxied . getFees . call ( "0x2fcc69711628630fb5a42566c68bd1092bc4aa26826736293969fddcd11cb2d2" ) ; 
409+             // Change as eviction percentage updated 
410+             // newPricePOLY = new BN(web3.utils.toWei("1250")); 
411+             //1190.476190476190476190 = 250/0.21 
412+             assert . equal ( feesTicker [ 0 ] . toString ( ) ,  origPriceUSD . toString ( ) ) ; 
413+             assert . equal ( feesTicker [ 1 ] . toString ( ) ,  "1190476190476190476190" ) ; 
414+             assert . equal ( feesToken [ 0 ] . toString ( ) ,  origPriceUSD . toString ( ) ) ; 
415+             assert . equal ( feesToken [ 1 ] . toString ( ) ,  "1190476190476190476190" ) ; 
416+             await  revertToSnapshot ( snap_Id ) ; 
417+         } ) ; 
418+ 
360419        it ( "Should register the ticker when the tickerRegFee is 0" ,  async  ( )  =>  { 
361420            let  snap_Id  =  await  takeSnapshot ( ) ; 
362421            await  I_STRProxied . changeTickerRegistrationFee ( 0 ,  {  from : account_polymath  } ) ; 
0 commit comments