Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(gateway): Merge main into sync layer stable #3039

Open
wants to merge 20 commits into
base: sync-layer-stable
Choose a base branch
from

Conversation

StanislavBreadless
Copy link
Contributor

What ❔

Why ❔

Checklist

  • PR title corresponds to the body of PR (we generate changelog entries from PRs).
  • Tests for the changes have been added / updated.
  • Documentation comments have been added / updated.
  • Code has been formatted via zk_supervisor fmt and zk_supervisor lint.

artmakh and others added 20 commits October 2, 2024 15:39
…oundry (#3000)

## What ❔

Creation of empty dirs, to support building from both new
(foundry-built) and old contracts

## Why ❔

<!-- Why are these changes done? What goal do they contribute to? What
are the principles behind them? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [ ] Tests for the changes have been added / updated.
- [ ] Documentation comments have been added / updated.
- [ ] Code has been formatted via `zk_supervisor fmt` and `zk_supervisor
lint`.
🤖 I have created a release *beep* *boop*
---


##
[24.28.0](core-v24.27.0...core-v24.28.0)
(2024-10-02)


### Features

* **da-clients:** add secrets
([#2954](#2954))
([f4631e4](f4631e4))
* **eth-sender:** add a cap to time_in_mempool
([#2978](#2978))
([650d42f](650d42f))
* **eth-watch:** redesign to support multiple chains
([#2867](#2867))
([aa72d84](aa72d84))
* Expose http debug page
([#2952](#2952))
([e0b6488](e0b6488))
* **zk_toolbox:** add fees integration test to toolbox
([#2898](#2898))
([e7ead76](e7ead76))
* **zk_toolbox:** Add SQL format for zk supervisor
([#2950](#2950))
([540e5d7](540e5d7))


### Bug Fixes

* **api:** Fix batch fee input for `debug` namespace
([#2948](#2948))
([79b6fcf](79b6fcf))
* chainstack block limit exceeded
([#2974](#2974))
([4ffbf42](4ffbf42))
* **eth-watch:** add missing check that from_block is not larger than
finalized_block
([#2969](#2969))
([3f406c7](3f406c7))
* ignore unknown fields in rpc json response
([#2962](#2962))
([692ea73](692ea73))


### Performance Improvements

* **api:** More efficient gas estimation
([#2937](#2937))
([3b69e37](3b69e37))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: zksync-era-bot <[email protected]>
…2946)

## What ❔
Added subcommands:
`zki chain init configs` - just creates configs with an intention to run
chain initialization manually via subcommands
`zki chain register-chain` - runs steps from `RegisterHyperchain.s.sol`
`zki chain accept-chain-ownership` - accepts ownership for
`DiamondProxy`
`zki chain genesis database` - initializes database only, performs
migration (uses values from args or `secrets.yaml`)
`zki chain genesis server` - runs server --genesis

Added flags:
`zki ecosystem init --ecosystem-only` - runs `init` only for ecosystem
(skips `init` for chain)

Other changes:
* Fixed issue with `--wallet_path` value ignored
* Nullify database names if `zki ecosystem init` is used for multiple
chains
* Zeroify some addresses in `contracts.yaml` when copying from ecosystem
during init

## Why ❔
These changes allow us to run the chain registration process for
externally hosted chains.
Not ideal yet, but the process goes like this:
L1 side:
* Init ecosystem: `zki ecosystem create && zki ecosystem init
--ecosystem-only && zki chain init configs`
* Fill in wallets
* Register chain: `zki chain register-chain`
* Deploy L2 contracts: `zki chain deploy-l2-contracts`
* Share `contracts.yaml`

L2 side:
* Init ecosystem: `zki ecosystem create && zki ecosystem init
--ecosystem-only && zki chain init configs`
* Fill in wallets
* Copy `contracts.yaml`
* Accept ownership: `zki chain accept-chain-ownership`
* Initialize databases: `zki chain genesis database`
* Run server genesis: `zki chain genesis server`

## Checklist
- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [ ] Tests for the changes have been added / updated.
- [x] Documentation comments have been added / updated.
- [x] Code has been formatted via `zk fmt` and `zk lint`.
## What ❔

<!-- What are the changes this PR brings about? -->
<!-- Example: This PR adds a PR template to the repo. -->
<!-- (For bigger PRs adding more context is appreciated) -->

## Why ❔

<!-- Why are these changes done? What goal do they contribute to? What
are the principles behind them? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [ ] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [ ] Tests for the changes have been added / updated.
- [ ] Documentation comments have been added / updated.
- [ ] Code has been formatted via `zk_supervisor fmt` and `zk_supervisor
lint`.

Signed-off-by: Danil <[email protected]>
## What ❔

Add external-node build to Makefile

## Why ❔

<!-- Why are these changes done? What goal do they contribute to? What
are the principles behind them? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [ ] Tests for the changes have been added / updated.
- [x] Documentation comments have been added / updated.
- [ ] Code has been formatted via `zk_supervisor fmt` and `zk_supervisor
lint`.
## What ❔
Remove prover db from server init

## Why ❔

prover db is not needed in server init since prover db is initialized
with prover init
## What ❔

Ability to build zk-env with cuda not only from push to main branch

## Why ❔

<!-- Why are these changes done? What goal do they contribute to? What
are the principles behind them? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [ ] Tests for the changes have been added / updated.
- [ ] Documentation comments have been added / updated.
- [ ] Code has been formatted via `zk_supervisor fmt` and `zk_supervisor
lint`.
## What ❔

Periodically fetch bridge addresses

## Why ❔

Addresses will be changed during gateway upgrade

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [ ] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [ ] Tests for the changes have been added / updated.
- [ ] Documentation comments have been added / updated.
- [ ] Code has been formatted via `zk fmt` and `zk lint`.
## What ❔

<!-- What are the changes this PR brings about? -->
<!-- Example: This PR adds a PR template to the repo. -->
<!-- (For bigger PRs adding more context is appreciated) -->

## Why ❔

<!-- Why are these changes done? What goal do they contribute to? What
are the principles behind them? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [ ] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [ ] Tests for the changes have been added / updated.
- [ ] Documentation comments have been added / updated.
- [ ] Code has been formatted via `zk_supervisor fmt` and `zk_supervisor
lint`.
## What ❔

Covers more `TxSender` functionality with unit tests.

## Why ❔

More test coverage is good. Also, it will help with new VM integration
(by running the added tests with a shadowed VM).

## Checklist

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [x] Tests for the changes have been added / updated.
- [x] Code has been formatted via `zk_supervisor fmt` and `zk_supervisor
lint`.
Configuration parameter for time_in_mempool_cap, cap for time_in_mempool
in eth-sender fee model + default values for parameter_a and parameter_b
for GasAdjuster
## What ❔

`fmt --check` wasn't returning an error code when failing
## What ❔

<!-- What are the changes this PR brings about? -->
<!-- Example: This PR adds a PR template to the repo. -->
<!-- (For bigger PRs adding more context is appreciated) -->
Remove `generate-sk` subcommand which doesn’t exist anymore.

## Why ❔

<!-- Why are these changes done? What goal do they contribute to? What
are the principles behind them? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [x] Tests for the changes have been added / updated.
- [x] Documentation comments have been added / updated.
- [x] Code has been formatted via `zk_supervisor fmt` and `zk_supervisor
lint`.
## What ❔

Removes unit test files for old VM versions in the `multivm` crate.

## Why ❔

These tests are not built (not included into the module tree of the
crate), so they are just deadweight.

## Checklist

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
## What ❔

Brushes up the `eth_signer` crate so that its API is easier to use
(e.g., it doesn't require an async runtime).

## Why ❔

Improved DevEx.

## Checklist

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [x] Tests for the changes have been added / updated.
- [x] Documentation comments have been added / updated.
- [x] Code has been formatted via `zk_supervisor fmt` and `zk_supervisor
lint`.
)

## What ❔

Prepares the new VM for use in the API server (without tracers):

- Fills in more statistics
- Covers more statistic fields in divergence checks and fixes the
corresponding divergence in `pubdata_published`
- Fixes a divergence if revert reaches the bootloader call frame
(happens in the call execution mode)
- Fixes a panic in `ShadowVm` if the transaction hash is not set and
makes `impl Debug for Transaction` non-panicking. (A hash is not set if
a transaction is converted from a call.)

## Why ❔

Part of preparations for integrating the new VM into the API server.

## Checklist

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [x] Tests for the changes have been added / updated.
- [x] Documentation comments have been added / updated.
- [x] Code has been formatted via `zk fmt` and `zk lint`.

---------

Co-authored-by: Joonatan Saarhelo <[email protected]>
I don't know about other people's setup, but for me it is very flaky
with just 3s
Add a new metric to track custom base token to ETH ratio
@StanislavBreadless StanislavBreadless requested review from yorik, alexandrst88, artmakh, hatemosphere, onyxet, otani88 and iluwaa and removed request for a team October 8, 2024 15:05
@StanislavBreadless StanislavBreadless requested review from zksync-admin-bot2 and removed request for a team October 8, 2024 15:05
@StanislavBreadless StanislavBreadless changed the title Merge main into sync layer stable chore(gateway): Merge main into sync layer stable Oct 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.