All notable changes to the core components will be documented in this file.
- (
loadtest
):zksync_fee
has been moved to[main_wallet]
section from the[network]
section. - (
EthWatcher
): added processing of events about adding new tokens to the contract. - A special balancer for FeeTicker was replaced with a generic balancer.
- (
eth_client
):web3
field was made private inETHDirectClient
.testkit
andloadtest
don't use it directly now. - (
api_server
): Makesubmit_txs_batch
send only one signature request.
- (
loadtest
): Addedzksync_fee
option into the[scenario]
section to set fee for each scenario individually, addedfee_token
option into the[main_wallet]
section to set token that is used to pay fees for the main wallet operations. - (
TokenHandler
): Module for automatically adding a token to the database based on the received Ethereum event (NewTokenEvent
). - (
Notifier
): Module for sending notifications to third-party services. - (
eth_client
): Addedget_tx
,create_contract
methods toEthereumGateway
,get_web3_transport
method to ETHDirectClient. - (
api_server
): Support for accounts that don't have to pay fees (e.g. network service accounts) was added.
- Fix wrong block info cache behavior in the
api_server
.
- The token name is now set for each scenario separately instead of the network section of the loadtest configuration.
- Rejected transactions are now stored in the database for 2 weeks only.
- Added a stressing dev fee ticker scenario to the loadtest.
- Added a
--sloppy
mode to thedev-fee-ticker-server
to simulate bad networks with the random delays and fails. - Possibility to use CREATE2 ChangePubKey and Transfer in a single batch.
- Bug with the assignment of new account ids in the state.
MetricsCounter
structure was removed because it is not used.- The limit on the number of withdrawals in the block.
- Type aliases (
TokenId
,AccountId
,Nonce
,BlockNumber
,PriorityOpId
,EthBlockId
) are replaced with wrapper structures. prometheus_exporter
was made a library to be used by several crates.prover_run_for_next_commit
function uses a parameterized timeout instead of a hard-coded one.- (
storage
):action_type
column type in db is changed fromtext
toenum
for optimization. - (
FeeTicker
): Increased gas price estimate for transaction. - (
loadtest
): Scenario execution was made parallel. - Increased completeWithdrawal gas limit, that decreased the chance of the users to face the out-of-gas error
prometheus_exporter
is launched by every microservice.tokens_acceptable_for_fees
endpoint that returns the list of tokens acceptable for fees was added to REST API v0.1.
- (
FeeTicker
): Performance for getting the batch fee was heavily optimized.
gen_token_add_contract
crate is rewritten in ts.- Metrics were added to some functions from lib/storage.
get_tx_by_hash
function was simplified.
closest_greater_or_eq_packable_fee_amount
andclosest_greater_or_eq_packable_token_amount
functions.test_float_conversions
test was expanded.- Loadtest scenario for stressing transaction batches
- Sequential Sparse Merkle Tree implementation was removed because it has been replaced by the parallel implementation.
- Bug with
to_float
function. Now, it really rounds to the closest less or equal float number. - Wrong index type used in the database causing some queries to take too much time.
- A possibility to get an Ethereum tx hash for withdrawal operation.
- Support for non-standard Ethereum signatures.
- Robustness of the fee ticker's API interacting module was increased.
- Blocks that contain withdraw operations are sealed faster.
eth_sender
module now can be disabled.- Transfer to zero address (0x00..00) is now forbidden in zkSync.
- WebSocket server now uses more threads for handling incoming requests.
- Bug with delay between receiving a job and starting sending heartbeats.