Skip to content

Conversation

slowli
Copy link
Contributor

@slowli slowli commented Mar 25, 2025

What ❔

Allows to accept EVM bytecode overrides in the relevant API server methods like eth_call and eth_estimateGas.

Why ❔

With EVM emulator, we want to support EVM bytecodes everywhere, including in state overrides.

Is this a breaking change?

  • Yes
  • No

Technically, a highly unusual EraVM bytecode can be incorrectly detected as an EVM bytecode, but the possibility of this occurring in practice is vanishingly small. E.g., there doesn't seem to be a single functional "unusual" bytecode deployed on the Era mainnet.

Operational changes

No operational changes.

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 zkstack dev fmt and zkstack dev lint.

@slowli slowli marked this pull request as ready for review March 25, 2025 12:24
perekopskiy
perekopskiy previously approved these changes Mar 28, 2025
itegulov
itegulov previously approved these changes Apr 1, 2025
Copy link
Contributor

@itegulov itegulov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just want to highlight that IMHO we should not extend auto-detection any further and any additional bytecode kind we might accept in the future should be supplied with a marker. It's not ideal that we are baking this extra modification into an existing ETH method but I understand the reasoning behind it.

One extra thing I would love to see is metrics for bytecode kinds: specifically if the request contained a marker vs we had to detect one automatically (and what it resulted into). Assuming ZKsync tooling starts using markers as soon as this gets rolled out to the vast majority of envs, we will start seeing the gradual decline of auto-detections resulting into EraVM kind. And, at some point, we will (potentially) have an avenue of enforcing purely EVM bytecode in this endpoint (when no marker is supplied ofc).

But no strong opinion - leaving the decision on metrics up to you

@slowli slowli dismissed stale reviews from itegulov and perekopskiy via c4ebf40 April 1, 2025 07:17
@slowli slowli requested review from itegulov and perekopskiy April 1, 2025 08:09
@slowli slowli added this pull request to the merge queue Apr 1, 2025
Merged via the queue into main with commit 8aee9f8 Apr 1, 2025
37 checks passed
@slowli slowli deleted the aov-evm-962-allow-evm-bytecode-overrides-in-api-server branch April 1, 2025 09:41
github-merge-queue bot pushed a commit that referenced this pull request Apr 3, 2025
🤖 I have created a release *beep* *boop*
---


##
[27.2.0](core-v27.1.0...core-v27.2.0)
(2025-04-03)


### Features

* **api:** Allow EVM bytecode overrides
([#3761](#3761))
([8aee9f8](8aee9f8))
* **en:** Allow tree / state keeper cache recovery for genesis
([#3781](#3781))
([dd18c48](dd18c48))
* **eth_signer:** Support eip712 txs
([#3752](#3752))
([e278ab5](e278ab5))
* **gateway:** Handle server shutting down error
([#3777](#3777))
([8e11adc](8e11adc))
* **gateway:** Migration to Gateway
([#3654](#3654))
([2858ba0](2858ba0))
* **main:** Eigenda add custom quorum params
([#3719](#3719))
([dac58ad](dac58ad))
* Update zksync-protocol deps to 0.151.5
([#3790](#3790))
([92beffe](92beffe))
* **zkos:** remove prev index pointer from leaves
([#3771](#3771))
([5b8fd29](5b8fd29))


### Bug Fixes

* insert tokens without PG copy
([#3778](#3778))
([b7a8152](b7a8152))
* **prover:** Force set all the `prover_job` labels to 0
([#3787](#3787))
([3ecc8db](3ecc8db))
* **prover:** Reevaluation of 'heavy' jobs for WVG
([#3754](#3754))
([2a8d33b](2a8d33b))

---
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 <zksync-era-bot@users.noreply.github.com>
zkzoomer pushed a commit that referenced this pull request Jun 21, 2025
🤖 I have created a release *beep* *boop*
---


##
[27.2.0](core-v27.1.0...core-v27.2.0)
(2025-04-03)


### Features

* **api:** Allow EVM bytecode overrides
([#3761](#3761))
([8aee9f8](8aee9f8))
* **en:** Allow tree / state keeper cache recovery for genesis
([#3781](#3781))
([dd18c48](dd18c48))
* **eth_signer:** Support eip712 txs
([#3752](#3752))
([e278ab5](e278ab5))
* **gateway:** Handle server shutting down error
([#3777](#3777))
([8e11adc](8e11adc))
* **gateway:** Migration to Gateway
([#3654](#3654))
([c861ce1](c861ce1))
* **main:** Eigenda add custom quorum params
([#3719](#3719))
([dac58ad](dac58ad))
* Update zksync-protocol deps to 0.151.5
([#3790](#3790))
([92beffe](92beffe))
* **zkos:** remove prev index pointer from leaves
([#3771](#3771))
([5b8fd29](5b8fd29))


### Bug Fixes

* insert tokens without PG copy
([#3778](#3778))
([b7a8152](b7a8152))
* **prover:** Force set all the `prover_job` labels to 0
([#3787](#3787))
([3ecc8db](3ecc8db))
* **prover:** Reevaluation of 'heavy' jobs for WVG
([#3754](#3754))
([2a8d33b](2a8d33b))

---
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 <zksync-era-bot@users.noreply.github.com>
dutterbutter pushed a commit to dutterbutter/zkstack-cli that referenced this pull request Jul 3, 2025
🤖 I have created a release *beep* *boop*
---


##
[27.2.0](matter-labs/zksync-era@core-v27.1.0...core-v27.2.0)
(2025-04-03)


### Features

* **api:** Allow EVM bytecode overrides
([#3761](matter-labs/zksync-era#3761))
([8aee9f8](matter-labs/zksync-era@8aee9f8))
* **en:** Allow tree / state keeper cache recovery for genesis
([#3781](matter-labs/zksync-era#3781))
([dd18c48](matter-labs/zksync-era@dd18c48))
* **eth_signer:** Support eip712 txs
([#3752](matter-labs/zksync-era#3752))
([e278ab5](matter-labs/zksync-era@e278ab5))
* **gateway:** Handle server shutting down error
([#3777](matter-labs/zksync-era#3777))
([8e11adc](matter-labs/zksync-era@8e11adc))
* **gateway:** Migration to Gateway
([#3654](matter-labs/zksync-era#3654))
([3c5e3c1](matter-labs/zksync-era@3c5e3c1))
* **main:** Eigenda add custom quorum params
([#3719](matter-labs/zksync-era#3719))
([dac58ad](matter-labs/zksync-era@dac58ad))
* Update zksync-protocol deps to 0.151.5
([#3790](matter-labs/zksync-era#3790))
([92beffe](matter-labs/zksync-era@92beffe))
* **zkos:** remove prev index pointer from leaves
([#3771](matter-labs/zksync-era#3771))
([5b8fd29](matter-labs/zksync-era@5b8fd29))


### Bug Fixes

* insert tokens without PG copy
([#3778](matter-labs/zksync-era#3778))
([b7a8152](matter-labs/zksync-era@b7a8152))
* **prover:** Force set all the `prover_job` labels to 0
([#3787](matter-labs/zksync-era#3787))
([3ecc8db](matter-labs/zksync-era@3ecc8db))
* **prover:** Reevaluation of 'heavy' jobs for WVG
([#3754](matter-labs/zksync-era#3754))
([2a8d33b](matter-labs/zksync-era@2a8d33b))

---
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 <zksync-era-bot@users.noreply.github.com>
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.

3 participants