📋 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