From e3099da15c2da5564a9c95aed9a16b7bb0ff6b05 Mon Sep 17 00:00:00 2001 From: grandizzy Date: Mon, 8 May 2023 10:29:20 +0300 Subject: [PATCH] Q-AJN-8: Old Version of Solidity - update pragmas to 0.8.18 - use preverando instead difficulty (need a version of foundry containing https://github.com/foundry-rs/foundry/pull/4856) --- .github/workflows/slither.yml | 2 +- script/GrantFund.s.sol | 2 +- src/grants/GrantFund.sol | 2 +- src/grants/base/ExtraordinaryFunding.sol | 2 +- src/grants/base/Funding.sol | 2 +- src/grants/base/StandardFunding.sol | 2 +- src/grants/interfaces/IExtraordinaryFunding.sol | 2 +- src/grants/interfaces/IFunding.sol | 2 +- src/grants/interfaces/IGrantFund.sol | 2 +- src/grants/interfaces/IStandardFunding.sol | 2 +- src/grants/libraries/Maths.sol | 2 +- test/interactions/DrainGrantFund.sol | 2 +- test/invariants/ExtraordinaryInvariant.t.sol | 2 +- test/invariants/StandardFinalizeInvariant.t.sol | 2 +- test/invariants/StandardFundingInvariant.t.sol | 2 +- .../StandardMultipleDistributionInvariant.t.sol | 2 +- test/invariants/StandardScreeningInvariant.t.sol | 2 +- test/invariants/base/ExtraordinaryTestBase.sol | 2 +- test/invariants/base/ITestBase.sol | 2 +- test/invariants/base/StandardTestBase.sol | 2 +- test/invariants/base/TestBase.sol | 2 +- test/invariants/handlers/ExtraordinaryHandler.sol | 2 +- test/invariants/handlers/Handler.sol | 4 ++-- test/invariants/handlers/StandardHandler.sol | 2 +- test/unit/ExtraordinaryFunding.t.sol | 2 +- test/unit/GrantFund.t.sol | 2 +- test/unit/Maths.t.sol | 2 +- test/unit/StandardFunding.t.sol | 2 +- test/utils/GrantFundTestHelper.sol | 8 ++++---- test/utils/IAjnaToken.sol | 2 +- 30 files changed, 34 insertions(+), 34 deletions(-) diff --git a/.github/workflows/slither.yml b/.github/workflows/slither.yml index c2310210..2179bf31 100644 --- a/.github/workflows/slither.yml +++ b/.github/workflows/slither.yml @@ -26,7 +26,7 @@ jobs: - name: Analyze GrantFund run: | - solc-select install 0.8.16 && solc-select use 0.8.16 + solc-select install 0.8.18 && solc-select use 0.8.18 slither src/grants/ continue-on-error: true id: fund_analyzer diff --git a/script/GrantFund.s.sol b/script/GrantFund.s.sol index 1ed4fa6e..4c184dbf 100644 --- a/script/GrantFund.s.sol +++ b/script/GrantFund.s.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.16; +pragma solidity 0.8.18; import { Script } from "forge-std/Script.sol"; import { console } from "forge-std/console.sol"; diff --git a/src/grants/GrantFund.sol b/src/grants/GrantFund.sol index 3d568b0e..c76703ad 100644 --- a/src/grants/GrantFund.sol +++ b/src/grants/GrantFund.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.16; +pragma solidity 0.8.18; import { IERC20 } from "@oz/token/ERC20/IERC20.sol"; import { SafeERC20 } from "@oz/token/ERC20/utils/SafeERC20.sol"; diff --git a/src/grants/base/ExtraordinaryFunding.sol b/src/grants/base/ExtraordinaryFunding.sol index 4a70abbf..34cef588 100644 --- a/src/grants/base/ExtraordinaryFunding.sol +++ b/src/grants/base/ExtraordinaryFunding.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.16; +pragma solidity 0.8.18; import { IERC20 } from "@oz/token/ERC20/IERC20.sol"; import { SafeCast } from "@oz/utils/math/SafeCast.sol"; diff --git a/src/grants/base/Funding.sol b/src/grants/base/Funding.sol index 72fafb9c..a518f269 100644 --- a/src/grants/base/Funding.sol +++ b/src/grants/base/Funding.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.16; +pragma solidity 0.8.18; import { Address } from "@oz/utils/Address.sol"; import { IVotes } from "@oz/governance/utils/IVotes.sol"; diff --git a/src/grants/base/StandardFunding.sol b/src/grants/base/StandardFunding.sol index 928b3370..5c4eaf2c 100644 --- a/src/grants/base/StandardFunding.sol +++ b/src/grants/base/StandardFunding.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.16; +pragma solidity 0.8.18; import { IERC20 } from "@oz/token/ERC20/IERC20.sol"; import { SafeCast } from "@oz/utils/math/SafeCast.sol"; diff --git a/src/grants/interfaces/IExtraordinaryFunding.sol b/src/grants/interfaces/IExtraordinaryFunding.sol index 8a394a35..19943707 100644 --- a/src/grants/interfaces/IExtraordinaryFunding.sol +++ b/src/grants/interfaces/IExtraordinaryFunding.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT //slither-disable-next-line solc-version -pragma solidity 0.8.16; +pragma solidity 0.8.18; /** * @title Ajna Grant Coordination Fund Extraordinary Proposal flow. diff --git a/src/grants/interfaces/IFunding.sol b/src/grants/interfaces/IFunding.sol index 23632c70..a442593c 100644 --- a/src/grants/interfaces/IFunding.sol +++ b/src/grants/interfaces/IFunding.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT //slither-disable-next-line solc-version -pragma solidity 0.8.16; +pragma solidity 0.8.18; /** * @title Ajna Grant Coordination Fund Extraordinary Proposal flow. diff --git a/src/grants/interfaces/IGrantFund.sol b/src/grants/interfaces/IGrantFund.sol index 45273639..c59f901f 100644 --- a/src/grants/interfaces/IGrantFund.sol +++ b/src/grants/interfaces/IGrantFund.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.16; +pragma solidity 0.8.18; import { IFunding } from "../interfaces/IFunding.sol"; import { IExtraordinaryFunding } from "../interfaces/IExtraordinaryFunding.sol"; diff --git a/src/grants/interfaces/IStandardFunding.sol b/src/grants/interfaces/IStandardFunding.sol index b7dfa0a6..850dc0bc 100644 --- a/src/grants/interfaces/IStandardFunding.sol +++ b/src/grants/interfaces/IStandardFunding.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT //slither-disable-next-line solc-version -pragma solidity 0.8.16; +pragma solidity 0.8.18; /** * @title Ajna Grant Coordination Fund Standard Proposal flow. diff --git a/src/grants/libraries/Maths.sol b/src/grants/libraries/Maths.sol index e5c82380..7e3687a5 100644 --- a/src/grants/libraries/Maths.sol +++ b/src/grants/libraries/Maths.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.16; +pragma solidity 0.8.18; library Maths { diff --git a/test/interactions/DrainGrantFund.sol b/test/interactions/DrainGrantFund.sol index 2e507da3..a046c355 100644 --- a/test/interactions/DrainGrantFund.sol +++ b/test/interactions/DrainGrantFund.sol @@ -1,4 +1,4 @@ -pragma solidity 0.8.16; +pragma solidity 0.8.18; import { IExtraordinaryFunding } from "src/grants/interfaces/IExtraordinaryFunding.sol"; import { IAjnaToken } from "../utils/IAjnaToken.sol"; diff --git a/test/invariants/ExtraordinaryInvariant.t.sol b/test/invariants/ExtraordinaryInvariant.t.sol index 4193bab9..c13bd7de 100644 --- a/test/invariants/ExtraordinaryInvariant.t.sol +++ b/test/invariants/ExtraordinaryInvariant.t.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.16; +pragma solidity 0.8.18; import { console } from "@std/console.sol"; import { SafeCast } from "@oz/utils/math/SafeCast.sol"; diff --git a/test/invariants/StandardFinalizeInvariant.t.sol b/test/invariants/StandardFinalizeInvariant.t.sol index 4e095ebc..2c299f01 100644 --- a/test/invariants/StandardFinalizeInvariant.t.sol +++ b/test/invariants/StandardFinalizeInvariant.t.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.16; +pragma solidity 0.8.18; import { console } from "@std/console.sol"; import { SafeCast } from "@oz/utils/math/SafeCast.sol"; diff --git a/test/invariants/StandardFundingInvariant.t.sol b/test/invariants/StandardFundingInvariant.t.sol index 2e7358b4..7e9b3a9d 100644 --- a/test/invariants/StandardFundingInvariant.t.sol +++ b/test/invariants/StandardFundingInvariant.t.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.16; +pragma solidity 0.8.18; import { console } from "@std/console.sol"; import { SafeCast } from "@oz/utils/math/SafeCast.sol"; diff --git a/test/invariants/StandardMultipleDistributionInvariant.t.sol b/test/invariants/StandardMultipleDistributionInvariant.t.sol index b94d895e..988c0cf4 100644 --- a/test/invariants/StandardMultipleDistributionInvariant.t.sol +++ b/test/invariants/StandardMultipleDistributionInvariant.t.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.16; +pragma solidity 0.8.18; import { console } from "@std/console.sol"; import { SafeCast } from "@oz/utils/math/SafeCast.sol"; diff --git a/test/invariants/StandardScreeningInvariant.t.sol b/test/invariants/StandardScreeningInvariant.t.sol index 64cc30d9..0cdc4737 100644 --- a/test/invariants/StandardScreeningInvariant.t.sol +++ b/test/invariants/StandardScreeningInvariant.t.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.16; +pragma solidity 0.8.18; import { console } from "@std/console.sol"; diff --git a/test/invariants/base/ExtraordinaryTestBase.sol b/test/invariants/base/ExtraordinaryTestBase.sol index 84ba155a..bc7d151b 100644 --- a/test/invariants/base/ExtraordinaryTestBase.sol +++ b/test/invariants/base/ExtraordinaryTestBase.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.16; +pragma solidity 0.8.18; import { console } from "@std/console.sol"; diff --git a/test/invariants/base/ITestBase.sol b/test/invariants/base/ITestBase.sol index c9499312..9e590339 100644 --- a/test/invariants/base/ITestBase.sol +++ b/test/invariants/base/ITestBase.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.16; +pragma solidity 0.8.18; interface ITestBase { diff --git a/test/invariants/base/StandardTestBase.sol b/test/invariants/base/StandardTestBase.sol index ff547944..f4b5d7f2 100644 --- a/test/invariants/base/StandardTestBase.sol +++ b/test/invariants/base/StandardTestBase.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.16; +pragma solidity 0.8.18; import { console } from "@std/console.sol"; diff --git a/test/invariants/base/TestBase.sol b/test/invariants/base/TestBase.sol index eb351b26..2028f350 100644 --- a/test/invariants/base/TestBase.sol +++ b/test/invariants/base/TestBase.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.16; +pragma solidity 0.8.18; import { Test } from "@std/Test.sol"; diff --git a/test/invariants/handlers/ExtraordinaryHandler.sol b/test/invariants/handlers/ExtraordinaryHandler.sol index 27e9bae0..1e8ed859 100644 --- a/test/invariants/handlers/ExtraordinaryHandler.sol +++ b/test/invariants/handlers/ExtraordinaryHandler.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.16; +pragma solidity 0.8.18; import { console } from "@std/console.sol"; import { Test } from "forge-std/Test.sol"; diff --git a/test/invariants/handlers/Handler.sol b/test/invariants/handlers/Handler.sol index 294a04e2..e67c2bc1 100644 --- a/test/invariants/handlers/Handler.sol +++ b/test/invariants/handlers/Handler.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.16; +pragma solidity 0.8.18; import { Test } from "forge-std/Test.sol"; import { Strings } from "@oz/utils/Strings.sol"; @@ -200,7 +200,7 @@ contract Handler is Test, GrantFundTestHelper { function randomSeed() internal returns (uint256) { counter++; - return uint256(keccak256(abi.encodePacked(block.number, block.difficulty, counter))); + return uint256(keccak256(abi.encodePacked(block.number, block.prevrandao, counter))); } function getActorsCount() public view returns(uint256) { diff --git a/test/invariants/handlers/StandardHandler.sol b/test/invariants/handlers/StandardHandler.sol index 1132736f..c14917c5 100644 --- a/test/invariants/handlers/StandardHandler.sol +++ b/test/invariants/handlers/StandardHandler.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.16; +pragma solidity 0.8.18; import { console } from "@std/console.sol"; import { Test } from "forge-std/Test.sol"; diff --git a/test/unit/ExtraordinaryFunding.t.sol b/test/unit/ExtraordinaryFunding.t.sol index 00ee99a4..a28f955e 100644 --- a/test/unit/ExtraordinaryFunding.t.sol +++ b/test/unit/ExtraordinaryFunding.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.16; +pragma solidity 0.8.18; import { GrantFund } from "../../src/grants/GrantFund.sol"; import { IExtraordinaryFunding } from "../../src/grants/interfaces/IExtraordinaryFunding.sol"; diff --git a/test/unit/GrantFund.t.sol b/test/unit/GrantFund.t.sol index 62242909..2a2107b9 100644 --- a/test/unit/GrantFund.t.sol +++ b/test/unit/GrantFund.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.16; +pragma solidity 0.8.18; import { GrantFund } from "../../src/grants/GrantFund.sol"; import { IFunding } from "../../src/grants/interfaces/IFunding.sol"; diff --git a/test/unit/Maths.t.sol b/test/unit/Maths.t.sol index 487ba5e0..d9c2ade6 100644 --- a/test/unit/Maths.t.sol +++ b/test/unit/Maths.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.16; +pragma solidity 0.8.18; import { Test } from "@std/Test.sol"; diff --git a/test/unit/StandardFunding.t.sol b/test/unit/StandardFunding.t.sol index 4a336998..c784d370 100644 --- a/test/unit/StandardFunding.t.sol +++ b/test/unit/StandardFunding.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.16; +pragma solidity 0.8.18; import { SafeCast } from "@oz/utils/math/SafeCast.sol"; diff --git a/test/utils/GrantFundTestHelper.sol b/test/utils/GrantFundTestHelper.sol index a43c8c03..19aef7e5 100644 --- a/test/utils/GrantFundTestHelper.sol +++ b/test/utils/GrantFundTestHelper.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.16; +pragma solidity 0.8.18; import { SafeCast } from "@oz/utils/math/SafeCast.sol"; import { Strings } from "@oz/utils/Strings.sol"; // used for createNProposals @@ -367,7 +367,7 @@ abstract contract GrantFundTestHelper is Test { // Returns a random proposal Index from all proposals function _getRandomProposal(uint256 noOfProposals_) internal returns(uint256 proposal_) { // calculate random proposal Index between 0 and noOfProposals_ - proposal_ = uint256(keccak256(abi.encodePacked(block.number, block.difficulty))) % noOfProposals_; + proposal_ = uint256(keccak256(abi.encodePacked(block.number, block.prevrandao))) % noOfProposals_; vm.roll(block.number + 1); } @@ -476,7 +476,7 @@ abstract contract GrantFundTestHelper is Test { descriptionPartTwo = string.concat(descriptionPartTwo, ", "); // generate a random nonce to add to the description string to avoid collisions - uint256 randomNonce = uint256(keccak256(abi.encodePacked(block.number, block.difficulty))) % 100; + uint256 randomNonce = uint256(keccak256(abi.encodePacked(block.number, block.prevrandao))) % 100; descriptionPartTwo = string.concat(descriptionPartTwo, Strings.toString(randomNonce)); } description_ = string(abi.encodePacked(descriptionPartOne, descriptionPartTwo)); @@ -661,7 +661,7 @@ abstract contract GrantFundTestHelper is Test { // Returns random votes for a user function _randomVote() internal returns (uint256 votes_) { // calculate random vote between 1 and 1.25 * 1e18 - votes_ = 1 + uint256(keccak256(abi.encodePacked(block.number, block.difficulty))) % (1.25 * 1e18); + votes_ = 1 + uint256(keccak256(abi.encodePacked(block.number, block.prevrandao))) % (1.25 * 1e18); vm.roll(block.number + 1); } diff --git a/test/utils/IAjnaToken.sol b/test/utils/IAjnaToken.sol index 4164b7cc..a1739a24 100644 --- a/test/utils/IAjnaToken.sol +++ b/test/utils/IAjnaToken.sol @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.16; +pragma solidity 0.8.18; import { IVotes } from "@oz/governance/utils/IVotes.sol"; import { IERC20 } from "@oz/token/ERC20/IERC20.sol";