You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/00.build/40.tooling/20.hardhat/40.hardhat-zksync-solc.md
+13-6Lines changed: 13 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -68,8 +68,8 @@ zksolc: {
68
68
compilerPath: "zksolc", // optional. Ignored for compilerSource "docker". Can be used if compiler is located in a specific folder
69
69
libraries:{}, // optional. References to non-inlinable libraries
70
70
missingLibrariesPath: "./.zksolc-libraries-cache/missingLibraryDependencies.json", // optional. This path serves as a cache that stores all the libraries that are missing or have dependencies on other libraries. A `hardhat-zksync-deploy` plugin uses this cache later to compile and deploy the libraries, especially when the `deploy-zksync:libraries` task is executed
71
-
isSystem: false, // optional. Enables Yul instructions available only for ZKsync system contracts and libraries
72
-
forceEvmla: false, // optional. Falls back to EVM legacy assembly if there is a bug with Yul
71
+
enableEraVMExtensions: false, // optional. Enables Yul instructions available only for ZKsync system contracts and libraries
72
+
forceEVMLA: false, // optional. Falls back to EVM legacy assembly if there is a bug with Yul
73
73
optimizer: {
74
74
enabled: true, // optional. True by default
75
75
mode: '3', // optional. 3 by default, z to optimize bytecode size
@@ -100,8 +100,8 @@ Learn more about [compiling libraries here](compiling-libraries)
100
100
A `hardhat-zksync-deploy` plugin uses this cache later to compile and deploy the libraries,
101
101
especially when the `deploy-zksync:libraries` task is executed.
102
102
Defaults to `./.zksolc-libraries-cache/missingLibraryDependencies.json`.
103
-
-`isSystem` - required if contracts use enables Yul instructions available only for ZKsync system contracts and libraries
104
-
-`forceEvmla` - falls back to EVM legacy assembly if there is an issue with the Yul IR compilation pipeline.
103
+
-`enableEraVMExtensions` - required if contracts use enables Yul instructions available only for ZKsync system contracts and libraries
104
+
-`forceEVMLA` - falls back to EVM legacy assembly if there is an issue with the Yul IR compilation pipeline.
105
105
-`optimizer` - Compiler optimizations:
106
106
-`enabled`: `true` (default) or `false`.
107
107
-`mode`: `3` (default) recommended for most projects. Mode `z` reduces bytecode size for large projects that make heavy use of `keccak` and far calls.
@@ -114,9 +114,16 @@ The contract names do not necessarily need to be written in full qualified form.
114
114
The plugin will perform an include operation, attempting to match the provided contract names.
The `isSystem` and `forceEvmla` arguments are deprecated in favor of `enableEraVMExtensions` and `forceEVMLA`.
118
+
If the deprecated arguments are used, a warning will be displayed and they will be automatically switched to the new naming with the provided values.
118
119
119
-
Setting the `forceEvmla` field to true can have the following negative impacts:
120
+
Starting from zksolc version 1.5.0, the ZKSync Era Solidity Compiler will be used by default with the latest version if not specified in hardhat.config.ts
0 commit comments