diff --git a/README.md b/README.md index 37e09d3f..57e1b38f 100644 --- a/README.md +++ b/README.md @@ -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. @@ -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 @@ -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. @@ -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. \ No newline at end of file