Skip to content
This repository has been archived by the owner on Mar 25, 2024. It is now read-only.

Commit

Permalink
docs: readme updated
Browse files Browse the repository at this point in the history
  • Loading branch information
benceharomi committed Oct 12, 2023
1 parent d5788c0 commit 7d9770d
Showing 1 changed file with 14 additions and 8 deletions.
22 changes: 14 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ To keep the zero-knowledge circuits as simple as possible and enable simple exte
These are privileged special-purpose contracts that instantiate some recurring actions on the protocol level. Some of the
most commonly used contracts:

`ContractDeployer` This contract is used to deploy new smart contracts. Its job is to make sure that the bytecode for each deployed
contract is known. This contract also defines the derivation address. Whenever a contract is deployed, a ContractDeployed
`ContractDeployer` This contract is used to deploy new smart contracts. Its job is to make sure that the bytecode for each deployed
contract is known. This contract also defines the derivation address. Whenever a contract is deployed, a ContractDeployed
event is emitted.

`L1Messenger` This contract is used to send messages from zkSync to Ethereum. For each message sent, the L1MessageSent event is emitted.
Expand All @@ -23,18 +23,24 @@ event is emitted.
the deployment nonce are stored in a single place) and also for the ease of the operator.

`Bootloader` For greater extensibility and to lower the overhead, some parts of the protocol (e.g. account abstraction rules) were
moved to an ephemeral contract called a bootloader.
moved to an ephemeral contract called a bootloader.

We call it ephemeral because it is not physically deployed and cannot be called, but it has a formal address that is used
We call it ephemeral because it is not physically deployed and cannot be called, but it has a formal address that is used
on msg.sender, when it calls other contracts.

## Building

This repository is used as a submodule of the [zksync-2-dev](https://github.com/matter-labs/zksync-2-dev).

Build the solidity contracts: `yarn build`
Compile the solidity contracts: `yarn build`

Build the yul contracts: `yarn build-yul`
Run the bootloader preprocessor: `yarn preprocess`

Compile the yul contracts: `yarn compile-yul`

Check the system contracts hashes: `yarn calculate-hashes --check`

Update the system contracts hashes: `yarn calculate-hashes`

## Update Process

Expand All @@ -46,7 +52,7 @@ Here is an overview of the release process of the system contracts which is aime

The `main` branch contains the latest code that is ready to be deployed into production. It reflects the most stable and audited version of the protocol.

### `dev` branch
### `dev` branch

The `dev` branch is for active development & the latest code changes. Whenever a new PR with system contract changes is created it should be based on the `dev` branch.

Expand Down Expand Up @@ -79,4 +85,4 @@ See [LICENSE-MIT](LICENSE-MIT) for details.
zkSync Era has been through lots of testing and audits. Although it is live, it is still in alpha state and will go
through more audits and bug bounties programs. We would love to hear our community's thoughts and suggestions about it!
It is important to state that forking it now can potentially lead to missing important security updates, critical
features, and performance improvements.
features, and performance improvements.

0 comments on commit 7d9770d

Please sign in to comment.