From 34c06c27a5658b6b65d80d64d9cc684f8e1eddf4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20=C5=9Aliwak?= Date: Mon, 28 Mar 2022 17:56:30 +0200 Subject: [PATCH 1/4] Downgrade ethers.js to 5.6.1 in ens, gnosis, euler, perpetual-pools and uniswap external tests --- test/externalTests/ens.sh | 4 ++++ test/externalTests/euler.sh | 4 ++++ test/externalTests/gnosis.sh | 4 ++++ test/externalTests/perpetual-pools.sh | 4 ++++ test/externalTests/uniswap.sh | 4 ++++ 5 files changed, 20 insertions(+) diff --git a/test/externalTests/ens.sh b/test/externalTests/ens.sh index e4edbf46c..bf018d0ce 100755 --- a/test/externalTests/ens.sh +++ b/test/externalTests/ens.sh @@ -65,6 +65,10 @@ function ens_test force_hardhat_compiler_settings "$config_file" "$(first_word "$SELECTED_PRESETS")" yarn install + # With ethers.js 5.6.2 many tests for revert messages fail. + # TODO: Remove when https://github.com/ethers-io/ethers.js/discussions/2849 is resolved. + yarn add ethers@5.6.1 + replace_version_pragmas neutralize_packaged_contracts diff --git a/test/externalTests/euler.sh b/test/externalTests/euler.sh index 39283bcd5..0d63ecd43 100755 --- a/test/externalTests/euler.sh +++ b/test/externalTests/euler.sh @@ -68,6 +68,10 @@ function euler_test force_hardhat_unlimited_contract_size "$config_file" npm install + # With ethers.js 5.6.2 many tests for revert messages fail. + # TODO: Remove when https://github.com/ethers-io/ethers.js/discussions/2849 is resolved. + npm install ethers@5.6.1 + replace_version_pragmas neutralize_packaged_contracts diff --git a/test/externalTests/gnosis.sh b/test/externalTests/gnosis.sh index ccfc6cf5c..b8553e4eb 100755 --- a/test/externalTests/gnosis.sh +++ b/test/externalTests/gnosis.sh @@ -81,6 +81,10 @@ function gnosis_safe_test npm install npm install hardhat-gas-reporter + # With ethers.js 5.6.2 many tests for revert messages fail. + # TODO: Remove when https://github.com/ethers-io/ethers.js/discussions/2849 is resolved. + npm install ethers@5.6.1 + replace_version_pragmas [[ $BINARY_TYPE == solcjs ]] && force_solc_modules "${DIR}/solc/dist" diff --git a/test/externalTests/perpetual-pools.sh b/test/externalTests/perpetual-pools.sh index 7e4289698..51d729d5d 100755 --- a/test/externalTests/perpetual-pools.sh +++ b/test/externalTests/perpetual-pools.sh @@ -71,6 +71,10 @@ function perpetual_pools_test # TODO: Remove when https://github.com/OpenZeppelin/openzeppelin-upgrades/issues/528 is fixed. yarn add hardhat@2.8.4 + # With ethers.js 5.6.2 many tests for revert messages fail. + # TODO: Remove when https://github.com/ethers-io/ethers.js/discussions/2849 is resolved. + yarn add ethers@5.6.1 + replace_version_pragmas for preset in $SELECTED_PRESETS; do diff --git a/test/externalTests/uniswap.sh b/test/externalTests/uniswap.sh index 2f94c6abd..efea480b6 100755 --- a/test/externalTests/uniswap.sh +++ b/test/externalTests/uniswap.sh @@ -77,6 +77,10 @@ function uniswap_test yarn install yarn add hardhat-gas-reporter + # With ethers.js 5.6.2 many tests for revert messages fail. + # TODO: Remove when https://github.com/ethers-io/ethers.js/discussions/2849 is resolved. + yarn add ethers@5.6.1 + replace_version_pragmas for preset in $SELECTED_PRESETS; do From b445e7e74c47d7627b55d59091d8fe27209a3a65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20=C5=9Aliwak?= Date: Mon, 28 Mar 2022 19:51:46 +0200 Subject: [PATCH 2/4] Revert "perpetual-pools: Use Hardhat 2.8.4 to work around @openzeppelin/hardhat-upgrades's problem with parallel compilation on Hardhat 2.9.0" This reverts commit 30008465bf095291b4ea222a9e5c77a97eb28ced. --- test/externalTests/perpetual-pools.sh | 5 ----- 1 file changed, 5 deletions(-) diff --git a/test/externalTests/perpetual-pools.sh b/test/externalTests/perpetual-pools.sh index 51d729d5d..1b54fc577 100755 --- a/test/externalTests/perpetual-pools.sh +++ b/test/externalTests/perpetual-pools.sh @@ -66,11 +66,6 @@ function perpetual_pools_test force_hardhat_unlimited_contract_size "$config_file" "$config_var" yarn install - # The project depends on @openzeppelin/hardhat-upgrades, which is currently not prepared - # for the parallel compilation introduced in Hardhat 2.9.0. - # TODO: Remove when https://github.com/OpenZeppelin/openzeppelin-upgrades/issues/528 is fixed. - yarn add hardhat@2.8.4 - # With ethers.js 5.6.2 many tests for revert messages fail. # TODO: Remove when https://github.com/ethers-io/ethers.js/discussions/2849 is resolved. yarn add ethers@5.6.1 From 5ef0048d85eff80c542a7946c441980890ac153a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20=C5=9Aliwak?= Date: Fri, 1 Apr 2022 22:27:33 +0200 Subject: [PATCH 3/4] zeppelin: Disable the newly added Polygon-Child test, failing via IR due to Hardhat heuristics --- test/externalTests/zeppelin.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/externalTests/zeppelin.sh b/test/externalTests/zeppelin.sh index ab79a8775..ccbf7595a 100755 --- a/test/externalTests/zeppelin.sh +++ b/test/externalTests/zeppelin.sh @@ -70,6 +70,8 @@ function zeppelin_test # In some cases Hardhat does not detect revert reasons properly via IR. # TODO: Remove this when https://github.com/NomicFoundation/hardhat/issues/2453 gets fixed. sed -i "s|it(\('reverts if the current value is 0'\)|it.skip(\1|g" test/utils/Counters.test.js + # TODO: Remove this when https://github.com/NomicFoundation/hardhat/issues/2115 gets fixed. + sed -i "s|describe\(('Polygon-Child'\)|describe.skip\1|g" test/crosschain/CrossChainEnabled.test.js neutralize_package_json_hooks force_hardhat_compiler_binary "$config_file" "$BINARY_TYPE" "$BINARY_PATH" From 73443c0ada55a7b3f941e034d207df22de2ceb3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20=C5=9Aliwak?= Date: Fri, 1 Apr 2022 22:53:59 +0200 Subject: [PATCH 4/4] elementfi: Switch all presets to compile-only --- test/externalTests/elementfi.sh | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/test/externalTests/elementfi.sh b/test/externalTests/elementfi.sh index 74ed93a5c..898627da8 100755 --- a/test/externalTests/elementfi.sh +++ b/test/externalTests/elementfi.sh @@ -42,9 +42,9 @@ function elementfi_test local config_file="hardhat.config.ts" local config_var=config - local compile_only_presets=() - local settings_presets=( - "${compile_only_presets[@]}" + local compile_only_presets=( + # ElementFi's test suite is hard-coded for mainnet forked via alchemy.io. + # Locally we can only compile. #ir-no-optimize # Compilation fails with "YulException: Variable var_amount_9311 is 10 slot(s) too deep inside the stack." #ir-optimize-evm-only # Compilation fails with "YulException: Variable var_amount_9311 is 10 slot(s) too deep inside the stack." ir-optimize-evm+yul @@ -52,6 +52,9 @@ function elementfi_test legacy-optimize-evm-only legacy-optimize-evm+yul ) + local settings_presets=( + "${compile_only_presets[@]}" + ) [[ $SELECTED_PRESETS != "" ]] || SELECTED_PRESETS=$(circleci_select_steps_multiarg "${settings_presets[@]}") print_presets_or_exit "$SELECTED_PRESETS"