1
1
const UFragmentsPolicy = artifacts . require ( 'UFragmentsPolicy.sol' ) ;
2
2
const MockUFragments = artifacts . require ( 'MockUFragments.sol' ) ;
3
3
const MockOracle = artifacts . require ( 'MockOracle.sol' ) ;
4
+ const RebaseCallerContract = artifacts . require ( 'RebaseCallerContract.sol' ) ;
4
5
5
6
const encodeCall = require ( 'zos-lib/lib/helpers/encodeCall' ) . default ;
6
7
const BigNumber = web3 . BigNumber ;
@@ -12,7 +13,7 @@ require('chai')
12
13
. use ( require ( 'chai-bignumber' ) ( BigNumber ) )
13
14
. should ( ) ;
14
15
15
- let uFragmentsPolicy , mockUFragments , mockMarketOracle , mockCpiOracle ;
16
+ let uFragmentsPolicy , mockUFragments , mockMarketOracle , mockCpiOracle , rebaseCallerContract ;
16
17
let r , prevEpoch , prevTime ;
17
18
let deployer , user ;
18
19
@@ -45,6 +46,7 @@ async function setupContracts () {
45
46
} ) ;
46
47
await uFragmentsPolicy . setMarketOracle ( mockMarketOracle . address ) ;
47
48
await uFragmentsPolicy . setCpiOracle ( mockCpiOracle . address ) ;
49
+ rebaseCallerContract = await RebaseCallerContract . new ( uFragmentsPolicy . address ) ;
48
50
}
49
51
50
52
async function setupContractsWithOpenRebaseWindow ( ) {
@@ -268,6 +270,30 @@ contract('UFragments:setRebaseTimingParameters:accessControl', function (account
268
270
} ) ;
269
271
} ) ;
270
272
273
+ contract ( 'UFragmentsPolicy:Rebase:accessControl' , async function ( accounts ) {
274
+ before ( 'setup UFragmentsPolicy contract' , async function ( ) {
275
+ await setupContractsWithOpenRebaseWindow ( ) ;
276
+ await mockExternalData ( INITIAL_RATE_30P_MORE , INITIAL_CPI , 1000 , true ) ;
277
+ await chain . waitForSomeTime ( 60 ) ;
278
+ } ) ;
279
+
280
+ describe ( 'when rebase called by an EOA' , function ( ) {
281
+ it ( 'should succeed' , async function ( ) {
282
+ expect (
283
+ await chain . isEthException ( uFragmentsPolicy . rebase ( ) )
284
+ ) . to . be . false ;
285
+ } ) ;
286
+ } ) ;
287
+
288
+ describe ( 'when rebase called by a contract' , function ( ) {
289
+ it ( 'should fail' , async function ( ) {
290
+ expect (
291
+ await chain . isEthException ( rebaseCallerContract . callRebase ( ) )
292
+ ) . to . be . true ;
293
+ } ) ;
294
+ } ) ;
295
+ } ) ;
296
+
271
297
contract ( 'UFragmentsPolicy:Rebase' , async function ( accounts ) {
272
298
before ( 'setup UFragmentsPolicy contract' , setupContractsWithOpenRebaseWindow ) ;
273
299
0 commit comments