All notable changes to the contracts will be documented in this file.
Version 4 is scheduled for upgrade.
- Multiple blocks can be committed, proven or executed with one transaction.
- Rollup block timestamp is added.
ChangePubKey
can be authorized without L1 transaction for smart-contract accounts that can be deployed using CREATE2 function with specific salt.- Block processing is split into three parts: commit, proving onchain, execution. Block is finalized when its executed.
- Governance now can pause deposits of some tokens.
- New events
Deposit(token, amount)
,Withdrawal(token, amount)
are added when funds are deposited or removed from the contract.
- Cost of
Deposit
andFullExit
for user is reduced significantly. - Priority queue storage format is changed for gas cost optimization.
- Block storage format is changed for gas cost optimization.
ChangePubKey
message that should be signed by ETH private key is changed.- Upgrade notice period is increased to 2 weeks.
ChangePubKey
with L2 public key that was authorized onchain can be reset if needed after waiting period of 1 day.- Maximum gas limit for ETH and ERC20 token withdrawal from zkSync contract is set to be 100k.
- Proof of the L2 funds in the exodus mode now can be provided by anyone on behalf of any user.
- Withdrawal from zkSync contract (funds that are withdrawn from L2 but failed to be pushed out of the zkSync contract) now can be done on behalf of any user.
- Some of the public variables are made internal.
- Withdraw from the zkSync contract now should be performed using
withdrawPendingBalance
instead of (withdrawETH
,withdrawERC20
). - Multiple functions and variables are renamed:
fullExit
->requestFullExit
exit
->performExodus
triggerExodusIfNeeded
->activateExodusMode
balanceToWithdraw
->pendingBalance
- Pending withdrawal queue is removed, instead we try to execute token transfers when we finalize block.
- All events for user operations (Deposit, Withdraw, etc.) are removed.
Version 3 is released.
ForcedExit
operation which allows user to force a withdrawal from another account that does not have signing key set and is older than 24h.
ChangePubKey
operation requires fee for processing.
Version 2 is released.
- Event denoting information about pending and completed withdrawals.
- Support for tokens that aren't fully compatible with ERC20.
- Block revert interval is 0 hours.
PRIORITY_EXPRIRATION_PERIOD
is reduced to 3 days.UPGRADE_NOTICE_PERIOD
is increased to 8 days.
- Redundant priority request check is removed from contract upgrade logic.