Releases: matter-labs/foundry-zksync
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... |