Skip to content

Commit

Permalink
Fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
0xVolosnikov committed Dec 9, 2024
1 parent cc8ab6f commit f8c1e0e
Showing 1 changed file with 4 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -265,13 +265,15 @@ Contract bytecode cannot be accessed on zkEVM architecture. Only its size is acc

## `EXTCODEHASH`

Retrieving the code hash of a smart contract in the zkEVM protocol differs slightly from EVM. In EVM hash of non-existing account is always `0`, and hash of existing account is `keccak("")`. Nonexisting contracts have no code, and their nonce and balance are both zero.
Retrieving the code hash of a smart contract in the zkEVM protocol differs slightly from EVM. In EVM hash of non-existing account
is always `0`, and hash of existing account without code is `keccak("")`. Nonexisting contracts have no code, and their nonce and
balance are both zero.

In zkEVM `EXTCODEHASH` operation has the following differences:

- It doesn't check the balance of account.
- All contracts in precompiles space (plus `0x00`) are treated as existing empty accounts.


## `DATASIZE`, `DATAOFFSET`, `DATACOPY`

Contract deployment is handled by two parts of the zkEVM protocol: the compiler front end and the system contract called `ContractDeployer`.
Expand Down

0 comments on commit f8c1e0e

Please sign in to comment.