Releases: matter-labs/foundry-zksync
foundry-zksync Nightly (2024-08-15)
foundry-zksync Nightly (2024-08-06)
- No changes
v0.0.3-alpha.1
What's Changed
- chore: foundry update 4af6cfa by @nbaztec in #445
- feat: disable batch factory deps by default by @nbaztec in #476
- fix(zk): propagate env during
transact
by @Karrq in #477 - fix: wrong gas parameters while broadcasting tx in script by @HermanObst in #473
- fix: add factory_deps to estimate_gas by @nbaztec in #486
Breaking Changes
- Deprecated support for deploying missing libraries. The feature was very fragile from the beginning and required considerable resources to be able to keep up with foundry's fast track updates. The current recommended way would be to run the
forge create
commands manually as they are printed in the output. Alternatively the known deployed libraries can be specified infoundry.toml
. There is an ongoing investigation on how to re-introduce this functionality in a way that is sustainable in the long run.
Full Changelog: nightly-ab00f2ea4a6bd2100b7fdb5f16687fd078a1f6f3...v0.0.3-alpha.1
v0.0.2-alpha.aave-2
What's Changed
- fix: resolve hashes always enabled by @nbaztec in #394
- test: add case for contracts w/ libraries by @Karrq in #387
- fix: use journaled state to read storage by @nbaztec in #393
- chore: add .zksolc-libraries-cache to .gitignore by @elfedy in #397
- feat: always get logs after zkvm execution by @Karrq in #396
- fix: add support for SELFBALANCE opcode by @Karrq in #395
- feat: compile zksync via foundry-compilers by @elfedy in #368
- docs: add notes solc version compatibility with zksolc by @elfedy in #399
- fix: use consistent chainId in zkEVM by @nbaztec in #398
- chore: remove contracts_to_compile from CompilerArgs by @elfedy in #401
- chore: update readme by @dutterbutter in #376
- fix: Override blockhash in zk context by @Jrigada in #400
- fix: Add handle expect emit on create by @Jrigada in #402
- feat: add zk-solc-path option by @elfedy in #406
- fix: allow install script in CI by @nbaztec in #370
- chore: add assert for bytecode word-size in etch by @nbaztec in #410
- feat: batch large factory_deps by @nbaztec in #412
- feat: create docker container by @ETeissonniere in #407
- chore: adds aave-governance-v3 test suite to CI by @HermanObst in #413
- chore: update foundry-compilers by @elfedy in #414
- chore: remove aave-governance-v3 test suite to CI by @Karrq in #417
- chore: update
LATEST_SOLC
const by @Karrq in #419 - chore: update foundry-compilers by @elfedy in #425
- refactor: only
build
/create
evm or zksync by @Karrq in #421 - refactor: improve
foundry_zksync_core::vm::runner
by @Karrq in #416 - chore: update zksync deps by @nbaztec in #404
- docs: update zksync links by @Karrq in #432
- refactor(config): split zk-related configuration by @Karrq in #430
- docs: zksync config by @Karrq in #437
- refactor: only
script
/test
evm or zksync by @Karrq in #435 - feat(create): empty constructor args warning by @Karrq in #436
- fix: Use zk_output to run Invariant tests by @Jrigada in #441
- feat(verify): zksync contract verification by @Karrq in #440
- fix: batch factory deps for broadcastable tx by @Karrq in #455
- feat: disable batch factory deps by default by @nbaztec in #476
- fix(zk): propagate env during
transact
by @Karrq in #477 - fix: wrong gas parameters while broadcasting tx in script by @HermanObst in #473
Full Changelog: v0.0.2-alpha.aave-1...v0.0.2-alpha.aave-2
foundry-zksync Nightly (2024-07-15)
- No changes
foundry-zksync Nightly (2024-06-04)
Other
- fix: Add handle expect emit on create (#402)
foundry-zksync Nightly (2024-05-23)
- No changes
[email protected]
📋 Summary
The latest version of [email protected]
, introduces a significant architectural overhaul compared to its previous releases, enhancing its compatibility and integration with zkSync environments. Here's a summary of the key changes:
- Compilation: Utilizes
solc
andzksolc
for bytecode generation, managed underDualCompiledContract
via anExecutor
andCheatcodeTracer
for improved debugging. - EVM Interactions: Maintains standard EVM calls with adaptations for
address.balance
andblock.timestamp
/block.number
to source data from zkSync's storage, ensuring consistency. - Transaction Handling: Transforms
CALL
andCREATE
operations into zkSync transactions, including bytecode retrieval, nonce management, and EOA marking to align with zkSync protocols. - Execution and State Management: Processes transactions through the zkSync VM, applying state changes to
journaled_state
, with results communicated back for verification. - Integration and Usage: Enables zkSync features in
forge
with the--zksync
flag and in tests viavm.zkVm(true)
, phasing outzkforge
andzkcast
for a unified toolset.
This update streamlines zkSync environment development, offering simplified command usage and enhanced compatibility.
🐛 Bug Fixes:
- fix: make ci work #308
- fix: use tx_nonce for transactions, handle multiple deploys for same bytecode #307
- fix: forge build, forge create, forge script and smoke tests #299
- fix: use real caller for zk transactions #293
✨ New Features:
- feat: add manual factory deps #310
⚠️ Breaking Changes:
- This release includes the re-architected implementation and considered a breaking change from previous releases.
📜 All Changes
- chore: remove prints #305
⭐ Contributors
- Agustin Aon
- Dustin Brickwood
- Juan Rigada
- Karrq
- Nisheeth Barthwal
- Herman Obst Demaestri
[email protected]
📋 Summary
Note: This release was made from main
branch. We are currently in the process of a preparing a new release from dev
that introduces new re-architected approach for Foundry support.
🐛 Bug Fixes:
- fix: flags for compiling with globset (#284)
- fix: update outdated links to external resources (#206)
- fix: script broadcast error and request memoization on zksolc (#269)
✨ New Features:
- feat: prank cheatcode (#265)
- feat: add deploy and rebuild on missing library dependencies (#274)
- feat: allow seamless switching between evm and zk-vm (#271)
- feat: update cheatcodes-test CI to use local era-test-node (#257)
- feat: Add contracts to compile flag to zksolcconfig (#253)
⚠️ Breaking Changes:
- TBD
📜 All Changes
- feat: prank cheatcode (#265)
- fix: flags for compiling with globset (#284)
- fix: update outdated links to external resources (#206)
- feat: add deploy and rebuild on missing library dependencies (#274)
- feat: allow seamless switching between evm and zk-vm (#271)
- chore: always upload era-test-node logs in ci (#273)
- fix: script broadcast error and request memoization on zksolc (#269)
- chore: update zksolc to latest
1.3.23
(#264) - chore: add explicit rust installation instructions to readme (#263)
- feat: update cheatcodes-test CI to use local era-test-node (#257)
- chore: adds zksolc 1.3.22 (#250)
- feat: Add contracts to compile flag to zksolcconfig (#253)
⭐ Contributors
- Agustin Aon ([email protected])
- Dustin Brickwood ([email protected])
- Juan Rigada ([email protected])
- Karrq ([email protected])
- Nisheeth Barthwal ([email protected])
- Peter Straus ([email protected])
[email protected]
📋 Summary
Welcome to the first release of our foundry-zksync
, enabling Foundry tools for Solidity development on zkSync Era. This alpha version offers features for compiling, deploying, testing, and interacting with smart contracts, with ongoing development to enhance functionality.
Please note that foundry-zksync
is still in its alpha stage. Some features might not be fully supported yet and may not work as intended. However, it is open-sourced, and contributions are welcome!
🐛 Bug Fixes:
- fix: improve script path detection by @aon in #243
- fix: update compiler setup to account for zksolc settings and consistent with test / build cmds by @nbaztec, @Jrigada in #244
- fix: zkforge script repeated deploys by @nbaztec in #242
- fix: allow deployment in scripting by @Karrq, @nbaztec, and @MexicanAce in #238
- fix: Log matching by @Jrigada in #237
- fix: zkforge script support by @Karrq in #211
- fix: persist bytecodes on fork by @nbaztec in #231
- fix: resolve issue with setting zksolc configuration values in .toml and update readme / docs by @dutterbutter in #225
- fix: adds optimization setting usage to handle large contract sizes and zksolc v1.3.21 by @dutterbutter and @nbaztec in #218
- fix: record modified storage in inspector by @nbaztec in #221
- fix: improve system context storage retrieval by @aon in #216
- fix: addresses compilation paths issue and correctly compiles all project files by @dutterbutter in #210
- fix: add back removed zksync zkcast subcommands by @dutterbutter in #254
✨ New Features:
- feat: add
vm.assume
cheatcode by @aon in #240 - feat: add mock call cheatcode by @nbaztec in #245
- feat: add vm.envUint and vm.setEnv cheatcodes by @aon in #239
- feat: Transact cheatcode by @Karrq, @aon, and @Jrigada in #228
- feat: Implement Sign cheatcode by @Jrigada in #234
- feat: Persistence cheatcodes by @Jrigada and @nbaztec in #227
- feat(test-node): remove era test node by @Deniallugo in #229
- feat: add roll fork cheatcode by @aon in #226
- feat: Refactor vm calls by @Jrigada and @nbaztec in #223
- feat: startBroadcast and stopBroadcast cheatcodes by @Karrq in #201
- feat: activeFork cheatcode implementation by @Jrigada in #220
- feat(era-cheatcodes): expectRevert cheatcode by @Karrq, @nbaztec, @Deniallugo in #200
- feat: ExpectEmit Implementation by @Jrigada, @nbaztec, @dutterbutter in #217
- feat: RpcUrls cheatcodes implementation by @Jrigada, @Deniallugo, @nbaztec in #214
- feat: add snapshot cheatcodes by @aon in #215
- feat(cheatcodes): fork cheatcode by @Deniallugo and @nbaztec in #205
- feat: add vm.expectCall cheatcode by @aon and @nbaztec in #212
- feat: adds latest zksolc compiler version by @dutterbutter in #209
- feat: add support for invariant testing by @nbaztec in #204
- feat: Implement log cheatcodes by @nbaztec in #197
- feat: add env cheatcodes by @aon in #251
🧺 Chores
- chore: updates cheat code support list and minor readme fixes by @dutterbutter in #241
- chore: enable vm.func() for cheatcodes by @nbaztec in #222
- chore: add test for create2 by @nbaztec in #219
📜 All Changes
- fix: improve script path detection by @aon in #243
- fix: update compiler setup to account for zksolc settings and consistent with test / build cmds by @nbaztec, @Jrigada in #244
- fix: zkforge script repeated deploys by @nbaztec in #242
- fix: allow deployment in scripting by @Karrq, @nbaztec, and @MexicanAce in #238
- fix: Log matching by @Jrigada in #237
- fix: zkforge script support by @Karrq in #211
- fix: persist bytecodes on fork by @nbaztec in #231
- fix: resolve issue with setting zksolc configuration values in .toml and update readme / docs by @dutterbutter in #225
- fix: adds optimization setting usage to handle large contract sizes and zksolc v1.3.21 by @dutterbutter and @nbaztec in #218
- fix: record modified storage in inspector by @nbaztec in #221
- fix: improve system context storage retrieval by @aon in #216
- fix: addresses compilation paths issue and correctly compiles all project files by @dutterbutter in #210
- fix: add back removed zksync zkcast subcommands by @dutterbutter in #254
- feat: add
vm.assume
cheatcode by @aon in #240 - feat: add mock call cheatcode by @nbaztec in #245
- feat: add vm.envUint and vm.setEnv cheatcodes by @aon in #239
- feat: Transact cheatcode by @Karrq, @aon, and @Jrigada in #228
- feat: Implement Sign cheatcode by @Jrigada in #234
- feat: Persistence cheatcodes by @Jrigada and @nbaztec in #227
- feat(test-node): remove era test node by @Deniallugo in #229
- feat: add roll fork cheatcode by @aon in #226
- feat: Refactor vm calls by @Jrigada and @nbaztec in #223
- feat: startBroadcast and stopBroadcast cheatcodes by @Karrq in #201
- feat: activeFork cheatcode implementation by @Jrigada in #220
- feat(era-cheatcodes): expectRevert cheatcode by @Karrq, @nbaztec, @Deniallugo in #200
- feat: ExpectEmit Implementation by @Jrigada, @nbaztec, @dutterbutter in #217
- feat: RpcUrls cheatcodes implementation by @Jrigada, @Deniallugo, @nbaztec in #214
- feat: add snapshot cheatcodes by @aon in #215
- feat(cheatcodes): fork cheatcode by @Deniallugo and @nbaztec in #205
- feat: add vm.expectCall cheatcode by @aon and @nbaztec in #212
- feat: adds latest zksolc compiler version by @dutterbutter in #209
- feat: add support for invariant testing by @nbaztec in #204
- feat: Implement log cheatcodes by @nbaztec in #197
- feat: add env cheatcodes by @aon in #251
- chore: updates cheat code support list and minor readme fixes by @dutterbutter in #241
- chore: enable vm.func() for cheatcodes by @nbaztec in #222
- chore: add test for create2 by @nbaztec in #219
📥 Binaries
System | Architecture | Binary |
---|---|---|
x86_64 | foundry-zksync-v0.0.1-alpha.1-x86_64-unknown-linux-gnu.tar.gz | |
x86_64 | [foundry-zksync-v0.0.1-alpha.1-x86_64-apple-darwin.tar.gz](https://github.com/matter-labs/foundry-zksync/releases... |