diff --git a/contracts/Orchestrator.sol b/contracts/Orchestrator.sol index f60c90e2..f05878cf 100644 --- a/contracts/Orchestrator.sol +++ b/contracts/Orchestrator.sol @@ -1,4 +1,4 @@ -pragma solidity 0.6.12; +pragma solidity 0.7.6; import "./_external/Ownable.sol"; diff --git a/contracts/UFragments.sol b/contracts/UFragments.sol index e29237a6..97d9076f 100644 --- a/contracts/UFragments.sol +++ b/contracts/UFragments.sol @@ -1,4 +1,4 @@ -pragma solidity 0.6.12; +pragma solidity 0.7.6; import "./_external/SafeMath.sol"; import "./_external/Ownable.sol"; diff --git a/contracts/UFragmentsPolicy.sol b/contracts/UFragmentsPolicy.sol index c084d506..54155540 100644 --- a/contracts/UFragmentsPolicy.sol +++ b/contracts/UFragmentsPolicy.sol @@ -1,4 +1,4 @@ -pragma solidity 0.6.12; +pragma solidity 0.7.6; import "./_external/SafeMath.sol"; import "./_external/Ownable.sol"; @@ -104,12 +104,13 @@ contract UFragmentsPolicy is Ownable { require(inRebaseWindow()); // This comparison also ensures there is no reentrancy. - require(lastRebaseTimestampSec.add(minRebaseTimeIntervalSec) < now); + require(lastRebaseTimestampSec.add(minRebaseTimeIntervalSec) < block.timestamp); // Snap the rebase time to the start of this window. - lastRebaseTimestampSec = now.sub(now.mod(minRebaseTimeIntervalSec)).add( - rebaseWindowOffsetSec - ); + lastRebaseTimestampSec = block + .timestamp + .sub(block.timestamp.mod(minRebaseTimeIntervalSec)) + .add(rebaseWindowOffsetSec); epoch = epoch.add(1); @@ -140,7 +141,7 @@ contract UFragmentsPolicy is Ownable { uint256 supplyAfterRebase = uFrags.rebase(epoch, supplyDelta); assert(supplyAfterRebase <= MAX_SUPPLY); - emit LogRebase(epoch, exchangeRate, cpi, supplyDelta, now); + emit LogRebase(epoch, exchangeRate, cpi, supplyDelta, block.timestamp); } /** @@ -259,8 +260,9 @@ contract UFragmentsPolicy is Ownable { * Otherwise, returns false. */ function inRebaseWindow() public view returns (bool) { - return (now.mod(minRebaseTimeIntervalSec) >= rebaseWindowOffsetSec && - now.mod(minRebaseTimeIntervalSec) < (rebaseWindowOffsetSec.add(rebaseWindowLengthSec))); + return (block.timestamp.mod(minRebaseTimeIntervalSec) >= rebaseWindowOffsetSec && + block.timestamp.mod(minRebaseTimeIntervalSec) < + (rebaseWindowOffsetSec.add(rebaseWindowLengthSec))); } /** diff --git a/contracts/_external/ERC20Detailed.sol b/contracts/_external/ERC20Detailed.sol index 26eaf05c..3b9b3d3c 100644 --- a/contracts/_external/ERC20Detailed.sol +++ b/contracts/_external/ERC20Detailed.sol @@ -1,4 +1,4 @@ -pragma solidity 0.6.12; +pragma solidity 0.7.6; import "./Initializable.sol"; import "./IERC20.sol"; diff --git a/contracts/_external/IERC20.sol b/contracts/_external/IERC20.sol index 5eb62978..a747a583 100644 --- a/contracts/_external/IERC20.sol +++ b/contracts/_external/IERC20.sol @@ -1,4 +1,4 @@ -pragma solidity 0.6.12; +pragma solidity 0.7.6; /** * @title ERC20 interface diff --git a/contracts/_external/Initializable.sol b/contracts/_external/Initializable.sol index 8f5c065b..b35d0d5d 100644 --- a/contracts/_external/Initializable.sol +++ b/contracts/_external/Initializable.sol @@ -1,4 +1,4 @@ -pragma solidity 0.6.12; +pragma solidity 0.7.6; /** * @title Initializable diff --git a/contracts/_external/Ownable.sol b/contracts/_external/Ownable.sol index da651ebc..92a8897f 100644 --- a/contracts/_external/Ownable.sol +++ b/contracts/_external/Ownable.sol @@ -1,4 +1,4 @@ -pragma solidity 0.6.12; +pragma solidity 0.7.6; import "./Initializable.sol"; diff --git a/contracts/_external/SafeMath.sol b/contracts/_external/SafeMath.sol index a3c80701..153eff73 100644 --- a/contracts/_external/SafeMath.sol +++ b/contracts/_external/SafeMath.sol @@ -1,4 +1,4 @@ -pragma solidity 0.6.12; +pragma solidity 0.7.6; /** * @title SafeMath diff --git a/contracts/lib/SafeMathInt.sol b/contracts/lib/SafeMathInt.sol index 71dccd21..3dbbdc5c 100644 --- a/contracts/lib/SafeMathInt.sol +++ b/contracts/lib/SafeMathInt.sol @@ -23,7 +23,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -pragma solidity 0.6.12; +pragma solidity 0.7.6; /** * @title SafeMathInt diff --git a/contracts/lib/UInt256Lib.sol b/contracts/lib/UInt256Lib.sol index 981de65b..15cc7994 100644 --- a/contracts/lib/UInt256Lib.sol +++ b/contracts/lib/UInt256Lib.sol @@ -1,4 +1,4 @@ -pragma solidity 0.6.12; +pragma solidity 0.7.6; /** * @title Various utilities useful for uint256. diff --git a/contracts/mocks/ConstructorRebaseCallerContract.sol b/contracts/mocks/ConstructorRebaseCallerContract.sol index fd07dc3c..0d83ae08 100644 --- a/contracts/mocks/ConstructorRebaseCallerContract.sol +++ b/contracts/mocks/ConstructorRebaseCallerContract.sol @@ -1,4 +1,4 @@ -pragma solidity 0.6.12; +pragma solidity 0.7.6; import "../Orchestrator.sol"; diff --git a/contracts/mocks/Mock.sol b/contracts/mocks/Mock.sol index fc60b07b..086597e0 100644 --- a/contracts/mocks/Mock.sol +++ b/contracts/mocks/Mock.sol @@ -1,4 +1,4 @@ -pragma solidity 0.6.12; +pragma solidity 0.7.6; contract Mock { event FunctionCalled(string instanceName, string functionName, address caller); diff --git a/contracts/mocks/MockDownstream.sol b/contracts/mocks/MockDownstream.sol index dfebeb83..d3856155 100644 --- a/contracts/mocks/MockDownstream.sol +++ b/contracts/mocks/MockDownstream.sol @@ -1,4 +1,4 @@ -pragma solidity 0.6.12; +pragma solidity 0.7.6; import "./Mock.sol"; diff --git a/contracts/mocks/MockOracle.sol b/contracts/mocks/MockOracle.sol index cdfd012c..af663b70 100644 --- a/contracts/mocks/MockOracle.sol +++ b/contracts/mocks/MockOracle.sol @@ -1,4 +1,4 @@ -pragma solidity 0.6.12; +pragma solidity 0.7.6; import "./Mock.sol"; diff --git a/contracts/mocks/MockUFragments.sol b/contracts/mocks/MockUFragments.sol index 83a1ad7f..59693b4e 100644 --- a/contracts/mocks/MockUFragments.sol +++ b/contracts/mocks/MockUFragments.sol @@ -1,4 +1,4 @@ -pragma solidity 0.6.12; +pragma solidity 0.7.6; import "./Mock.sol"; diff --git a/contracts/mocks/MockUFragmentsPolicy.sol b/contracts/mocks/MockUFragmentsPolicy.sol index 79b825eb..e5a8980a 100644 --- a/contracts/mocks/MockUFragmentsPolicy.sol +++ b/contracts/mocks/MockUFragmentsPolicy.sol @@ -1,4 +1,4 @@ -pragma solidity 0.6.12; +pragma solidity 0.7.6; import "./Mock.sol"; diff --git a/contracts/mocks/RebaseCallerContract.sol b/contracts/mocks/RebaseCallerContract.sol index bdd022cc..1c96650a 100644 --- a/contracts/mocks/RebaseCallerContract.sol +++ b/contracts/mocks/RebaseCallerContract.sol @@ -1,4 +1,4 @@ -pragma solidity 0.6.12; +pragma solidity 0.7.6; import "../Orchestrator.sol"; diff --git a/contracts/mocks/SafeMathIntMock.sol b/contracts/mocks/SafeMathIntMock.sol index 22db5275..386b06a7 100644 --- a/contracts/mocks/SafeMathIntMock.sol +++ b/contracts/mocks/SafeMathIntMock.sol @@ -1,4 +1,4 @@ -pragma solidity 0.6.12; +pragma solidity 0.7.6; import "./Mock.sol"; import "../lib/SafeMathInt.sol"; diff --git a/contracts/mocks/UInt256LibMock.sol b/contracts/mocks/UInt256LibMock.sol index 3948c601..58b31a58 100644 --- a/contracts/mocks/UInt256LibMock.sol +++ b/contracts/mocks/UInt256LibMock.sol @@ -1,4 +1,4 @@ -pragma solidity 0.6.12; +pragma solidity 0.7.6; import "./Mock.sol"; import "../lib/UInt256Lib.sol"; diff --git a/hardhat.config.ts b/hardhat.config.ts index e3d99094..e348ec06 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -12,7 +12,13 @@ export default { solidity: { compilers: [ { - version: '0.6.12', + version: '0.7.6', + settings: { + optimizer: { + enabled: true, + runs: 200, + }, + }, }, { version: '0.4.24', diff --git a/truffle.js b/truffle.js index 94a1c0ae..98e057f8 100644 --- a/truffle.js +++ b/truffle.js @@ -4,10 +4,11 @@ module.exports = { compilers: { solc: { - version: '0.6.12', + version: '0.7.6', settings: { optimizer: { - enabled: false + enabled: true, + runs: 200, } } }