diff --git a/.vscode/settings.json b/.vscode/settings.json index 9badf5e..1b0ce30 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -4,5 +4,5 @@ "solidity.packageDefaultDependenciesContractsDirectory": "src", "diffEditor.ignoreTrimWhitespace": false, "editor.trimAutoWhitespace": true, - "solidity.compileUsingRemoteVersion": "v0.8.17+commit.8df45f5f" + "solidity.compileUsingRemoteVersion": "v0.8.21+commit.d9974be" } diff --git a/foundry.toml b/foundry.toml index 3eee27c..d1f7bde 100644 --- a/foundry.toml +++ b/foundry.toml @@ -3,6 +3,10 @@ src = 'src' out = 'out' libs = ['lib'] verbosity = 3 +solc-version = '0.8.21' +via_ir = true +optimizer = true +optimizer_runs = 1000000000 remappings = [ 'forge-std/=lib/forge-std/src/', diff --git a/script/DeployCometWrapper.s.sol b/script/DeployCometWrapper.s.sol index 59a6886..b1522ae 100644 --- a/script/DeployCometWrapper.s.sol +++ b/script/DeployCometWrapper.s.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.21; import "forge-std/Script.sol"; import "forge-std/console.sol"; diff --git a/src/CometHelpers.sol b/src/CometHelpers.sol index 5a84ead..90edf15 100644 --- a/src/CometHelpers.sol +++ b/src/CometHelpers.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.21; import {CometMath} from "./vendor/CometMath.sol"; diff --git a/src/CometWrapper.sol b/src/CometWrapper.sol index 5100cb9..bce97af 100644 --- a/src/CometWrapper.sol +++ b/src/CometWrapper.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.21; import { ERC4626 } from "solmate/mixins/ERC4626.sol"; import { ERC20 } from "solmate/tokens/ERC20.sol"; diff --git a/src/vendor/CometExtInterface.sol b/src/vendor/CometExtInterface.sol index 14e32f5..836c8c4 100644 --- a/src/vendor/CometExtInterface.sol +++ b/src/vendor/CometExtInterface.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity 0.8.17; +pragma solidity 0.8.21; struct TotalsBasic { uint64 baseSupplyIndex; diff --git a/src/vendor/CometInterface.sol b/src/vendor/CometInterface.sol index ae7bd9d..e72456d 100644 --- a/src/vendor/CometInterface.sol +++ b/src/vendor/CometInterface.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity 0.8.17; +pragma solidity 0.8.21; import "./CometMainInterface.sol"; import "./CometExtInterface.sol"; diff --git a/src/vendor/CometMainInterface.sol b/src/vendor/CometMainInterface.sol index 41b1bc9..8ac65ed 100644 --- a/src/vendor/CometMainInterface.sol +++ b/src/vendor/CometMainInterface.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity 0.8.17; +pragma solidity 0.8.21; struct AssetInfo { uint8 offset; diff --git a/src/vendor/CometMath.sol b/src/vendor/CometMath.sol index 0dfe846..4baab1e 100644 --- a/src/vendor/CometMath.sol +++ b/src/vendor/CometMath.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity 0.8.17; +pragma solidity 0.8.21; /** * @title Compound's Comet Math Contract diff --git a/src/vendor/ICometConfigurator.sol b/src/vendor/ICometConfigurator.sol index d67e9cc..da41066 100644 --- a/src/vendor/ICometConfigurator.sol +++ b/src/vendor/ICometConfigurator.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.21; interface ICometConfigurator { struct Configuration { diff --git a/src/vendor/ICometRewards.sol b/src/vendor/ICometRewards.sol index ddce729..0c93bd4 100644 --- a/src/vendor/ICometRewards.sol +++ b/src/vendor/ICometRewards.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: ISC -pragma solidity 0.8.17; +pragma solidity 0.8.21; interface ICometRewards { struct RewardConfig { diff --git a/test/BaseUSDbCTest.t.sol b/test/BaseUSDbCTest.t.sol index cc1fb1c..99ca305 100644 --- a/test/BaseUSDbCTest.t.sol +++ b/test/BaseUSDbCTest.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.21; import { Test } from "forge-std/Test.sol"; import { CometWrapper, CometInterface, ICometRewards, CometHelpers, ERC20 } from "../src/CometWrapper.sol"; diff --git a/test/CometWrapper.t.sol b/test/CometWrapper.t.sol index 9eb2413..0ec80cf 100644 --- a/test/CometWrapper.t.sol +++ b/test/CometWrapper.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.21; import { CoreTest, CometHelpers, CometWrapper, ERC20, ICometRewards } from "./CoreTest.sol"; import { CometMath } from "../src/vendor/CometMath.sol"; @@ -950,5 +950,4 @@ abstract contract CometWrapperTest is CoreTest, CometMath { } // TODO: add fuzz testing for withdraw -// TODO: add tests for cWETHv3 decimals // TODO: add tests for max withdraw/redeem diff --git a/test/CometWrapperInvariant.t.sol b/test/CometWrapperInvariant.t.sol index 8502f0c..fa3a94a 100644 --- a/test/CometWrapperInvariant.t.sol +++ b/test/CometWrapperInvariant.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.21; import { CoreTest, CometHelpers, CometWrapper, ERC20, ICometRewards } from "./CoreTest.sol"; import { CometMath } from "../src/vendor/CometMath.sol"; diff --git a/test/CoreTest.sol b/test/CoreTest.sol index 90169b8..ea86764 100644 --- a/test/CoreTest.sol +++ b/test/CoreTest.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.21; import { Test } from "forge-std/Test.sol"; import { CometWrapper, CometInterface, ICometRewards, CometHelpers, ERC20 } from "../src/CometWrapper.sol"; diff --git a/test/MainnetUSDCTest.t.sol b/test/MainnetUSDCTest.t.sol index c0fe128..8f0b206 100644 --- a/test/MainnetUSDCTest.t.sol +++ b/test/MainnetUSDCTest.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.21; import { Test } from "forge-std/Test.sol"; import { CometWrapper, CometInterface, ICometRewards, CometHelpers, ERC20 } from "../src/CometWrapper.sol"; diff --git a/test/MainnetWETHTest.t.sol b/test/MainnetWETHTest.t.sol index 054d5cf..e7392cf 100644 --- a/test/MainnetWETHTest.t.sol +++ b/test/MainnetWETHTest.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.21; import { Test } from "forge-std/Test.sol"; import { CometWrapper, CometInterface, ICometRewards, CometHelpers, ERC20 } from "../src/CometWrapper.sol"; diff --git a/test/Rewards.t.sol b/test/Rewards.t.sol index 3ae2bd6..386e239 100644 --- a/test/Rewards.t.sol +++ b/test/Rewards.t.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.17; +pragma solidity 0.8.21; import { CoreTest } from "./CoreTest.sol"; import { CometWrapper, ICometRewards, CometHelpers, ERC20 } from "../src/CometWrapper.sol"; @@ -285,5 +285,3 @@ abstract contract RewardsTest is CoreTest { vm.stopPrank(); } } - -// TODO: test cWETHv3