matter-labs / foundry-zksync

Fork of Foundry tailored for zkSync environment
Apache License 2.0
295 stars 126 forks source link

Unable to specify custom zksolc compiler #449

Closed brotherlymite closed 2 months ago

brotherlymite commented 3 months ago

Component

Forge

Have you ensured that all of these are up to date?

What version of Foundry are you on?

No response

What command(s) is the bug in?

forge 0.0.2 (f505a536 2024-06-26T15:14:31.411368000Z)

Operating System

macOS (Apple Silicon)

Describe the bug

When trying to compile using custom zksolc compiler via using the flag forge build --zksync --zk-solc-path ./path-to-zksolc-compiler flag getting the following error Broken pipe (os error 32).

Also when trying to specify the zksolc compiler in foundry.toml like zksolc='./path-to-compiler', for example when specifying the v1.5.1 compiler executable path and running forge build --zksync v1.4.1 is being downloaded automatically in ~./zksync/ and is being used instead of the zksolc compiler specified.

Karrq commented 3 months ago

Hi! The zksync.solc configuration option (--zk-solc-path) is meant to specify a custom version of solc that zksolc will use, therefore please do not use it to specify a zksolc compiler, which should instead (as you pointed out also) be specified in zksync.zksolc.

We are investigating the issue in regards to v1.5.1 being ignored. We were able to use a specific zksolc by path and it worked without issues, also ensured that zksolc was not downloaded.

Could you check again, ensuring that the configuration looks something like the following?

[profile.default]
src = 'src'
solc='0.8.19'

[profile.default.zksync]
zksolc = "./local_zksolc"
compile = true
fallback_oz = true
mode = '3'

Thank you!

brotherlymite commented 2 months ago

Using [profile.default.zksync] in foundry.toml it worked fine for me. Thank you.