Skip to content

Incompatibilities with zkSync #351

@Karrq

Description

@Karrq

Hello! 👋

Our team here at Moonsong Labs has been working on adding support for zkSync on foundry & we have been cooperating with several of your repos to make sure all your tests are successful with our new implementation.

We are opening this issue today to inform you of a required action to ensure this repository's contracts are compatible with zkSync in the future.

In short, a refactor of these contracts will be needed as their bytecode size exceeds the limits of the zkEVM (docs).

We have ran your test suites and were unable to compile about 37 of your contracts.
We were able to compile an additional 13 contracts by using --fallback-oz true (which sets allowOptimizingForSize in the zksolc's settings), but this still leaves about 24 contracts unable to be compiled, thus those tests are not able to be ran.

The good news is that all tests that we were able to run so far have passed 🚀

List of contracts originally not being able to be compiled
ProtocolV3TestBase.sol
AaveV2Ethereum_TemporaryFreezeOfLongTailV2Assets_20240418.t.sol
AaveV2Avalanche_TemporaryFreezeOfLongTailV2Assets_20240418.t.sol
AaveV2Polygon_TemporaryFreezeOfLongTailV2Assets_20240418.t.sol
AaveV3Ethereum_LlamariskRiskProvider_20240421.t.sol
AaveV2Ethereum_AprilFinanceUpdate_20240421.t.sol
AaveV2Polygon_AprilFinanceUpdate_20240421.t.sol
AaveV3Gnosis_AprilFinanceUpdate_20240421.t.sol
AaveV3Ethereum_StkGHOIncentives_20240424.t.sol
AaveV2Avalanche_StablecoinIRUpdates_20240424.t.sol
AaveV2Ethereum_StablecoinIRUpdates_20240424.t.sol
AaveV3Arbitrum_StablecoinIRUpdates_20240424.t.sol
AaveV3Avalanche_StablecoinIRUpdates_20240424.t.sol
AaveV3BNB_StablecoinIRUpdates_20240424.t.sol
AaveV3Base_StablecoinIRUpdates_20240424.t.sol
AaveV3Ethereum_StablecoinIRUpdates_20240424.t.sol
AaveV3Gnosis_StablecoinIRUpdates_20240424.t.sol
AaveV3Optimism_StablecoinIRUpdates_20240424.t.sol
AaveV3Polygon_StablecoinIRUpdates_20240424.t.sol
AaveV3Scroll_StablecoinIRUpdates_20240424.t.sol
AaveV3Arbitrum_GeneralizedLTLTVReductionsOnAaveV3Step2_20240425.t.sol
AaveV3Avalanche_GeneralizedLTLTVReductionsOnAaveV3Step2_20240425.t.sol
AaveV3BNB_GeneralizedLTLTVReductionsOnAaveV3Step2_20240425.t.sol
AaveV3Base_GeneralizedLTLTVReductionsOnAaveV3Step2_20240425.t.sol
AaveV3Ethereum_GeneralizedLTLTVReductionsOnAaveV3Step2_20240425.t.sol
AaveV3Gnosis_GeneralizedLTLTVReductionsOnAaveV3Step2_20240425.t.sol
AaveV3Optimism_GeneralizedLTLTVReductionsOnAaveV3Step2_20240425.t.sol
AaveV3Polygon_GeneralizedLTLTVReductionsOnAaveV3Step2_20240425.t.sol
AaveV3Scroll_GeneralizedLTLTVReductionsOnAaveV3Step2_20240425.t.sol
AaveV3Ethereum_UpdatingWeETHRiskParameters_20240426.t.sol
20240429_AaveV2Ethereum_AAMPLSecondDistributionAaveV2Ethereum_AAMPLSecondDistribution_20240429.t.sol
AaveV1Ethereum_AaveV1Deprecation_20240502.t.sol
AaveV3Ethereum_AaveV31CantinaCompetition_20240503.t.sol
AaveV3Ethereum_ACIAdAstra_20240506.t.sol
AaveV2Avalanche_ReserveFactorUpgrades_20240506.t.sol
AaveV2Ethereum_ReserveFactorUpgrades_20240506.t.sol
AaveV3Optimism_SUSDRiskParametersUpdate_20240517.t.sol
List of contracts still unable to be compiled (even with --fallback-oz true)
AaveV3Ethereum_LlamariskRiskProvider_20240421.t.sol
AaveV3Gnosis_AprilFinanceUpdate_20240421.t.sol
AaveV3Arbitrum_StablecoinIRUpdates_20240424.t.sol
AaveV3Avalanche_StablecoinIRUpdates_20240424.t.sol
AaveV3BNB_StablecoinIRUpdates_20240424.t.sol
AaveV3Base_StablecoinIRUpdates_20240424.t.sol
AaveV3Ethereum_StablecoinIRUpdates_20240424.t.sol
AaveV3Gnosis_StablecoinIRUpdates_20240424.t.sol
AaveV3Optimism_StablecoinIRUpdates_20240424.t.sol
AaveV3Polygon_StablecoinIRUpdates_20240424.t.sol
AaveV3Scroll_StablecoinIRUpdates_20240424.t.sol
AaveV3Arbitrum_GeneralizedLTLTVReductionsOnAaveV3Step2_20240425.t.sol
AaveV3Avalanche_GeneralizedLTLTVReductionsOnAaveV3Step2_20240425.t.sol
AaveV3BNB_GeneralizedLTLTVReductionsOnAaveV3Step2_20240425.t.sol
AaveV3Base_GeneralizedLTLTVReductionsOnAaveV3Step2_20240425.t.sol
AaveV3Ethereum_GeneralizedLTLTVReductionsOnAaveV3Step2_20240425.t.sol
AaveV3Gnosis_GeneralizedLTLTVReductionsOnAaveV3Step2_20240425.t.sol
AaveV3Optimism_GeneralizedLTLTVReductionsOnAaveV3Step2_20240425.t.sol
AaveV3Polygon_GeneralizedLTLTVReductionsOnAaveV3Step2_20240425.t.sol
AaveV3Scroll_GeneralizedLTLTVReductionsOnAaveV3Step2_20240425.t.sol
AaveV3Ethereum_UpdatingWeETHRiskParameters_20240426.t.sol
AaveV3Ethereum_AaveV31CantinaCompetition_20240503.t.sol
AaveV3Ethereum_ACIAdAstra_20240506.t.sol
AaveV3Optimism_SUSDRiskParametersUpdate_20240517.t.sol
Here's the command to run the test suite, edit the value of --avoid-contracts to remove contracts that now fit the size requirements (or to try to see if they fit)
forge test --zksync --fallback-oz true --avoid-contracts '**/AaveV3Ethereum_LlamariskRiskProvider_20240421.t.sol,**/AaveV3Gnosis_AprilFinanceUpdate_20240421.t.sol,**/AaveV3Arbitrum_StablecoinIRUpdates_20240424.t.sol,**/AaveV3Avalanche_StablecoinIRUpdates_20240424.t.sol,**/AaveV3BNB_StablecoinIRUpdates_20240424.t.sol,**/AaveV3Base_StablecoinIRUpdates_20240424.t.sol,**/AaveV3Ethereum_StablecoinIRUpdates_20240424.t.sol,**/AaveV3Gnosis_StablecoinIRUpdates_20240424.t.sol,**/AaveV3Optimism_StablecoinIRUpdates_20240424.t.sol,**/AaveV3Polygon_StablecoinIRUpdates_20240424.t.sol,**/AaveV3Scroll_StablecoinIRUpdates_20240424.t.sol,**/AaveV3Arbitrum_GeneralizedLTLTVReductionsOnAaveV3Step2_20240425.t.sol,**/AaveV3Avalanche_GeneralizedLTLTVReductionsOnAaveV3Step2_20240425.t.sol,**/AaveV3BNB_GeneralizedLTLTVReductionsOnAaveV3Step2_20240425.t.sol,**/AaveV3Base_GeneralizedLTLTVReductionsOnAaveV3Step2_20240425.t.sol,**/AaveV3Ethereum_GeneralizedLTLTVReductionsOnAaveV3Step2_20240425.t.sol,**/AaveV3Gnosis_GeneralizedLTLTVReductionsOnAaveV3Step2_20240425.t.sol,**/AaveV3Optimism_GeneralizedLTLTVReductionsOnAaveV3Step2_20240425.t.sol,**/AaveV3Polygon_GeneralizedLTLTVReductionsOnAaveV3Step2_20240425.t.sol,**/AaveV3Scroll_GeneralizedLTLTVReductionsOnAaveV3Step2_20240425.t.sol,**/AaveV3Ethereum_UpdatingWeETHRiskParameters_20240426.t.sol,**/AaveV3Ethereum_AaveV31CantinaCompetition_20240503.t.sol,**/AaveV3Ethereum_ACIAdAstra_20240506.t.sol,**/AaveV3Optimism_SUSDRiskParametersUpdate_20240517.t.sol'
--- /cc @HermanObst @Jrigada @nbaztec

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions